Class: BaseComponent
- Inherits:
-
ViewComponent::Base
- Object
- ViewComponent::Base
- BaseComponent
- Defined in:
- app/components/base_component.rb
Overview
Base component.
Direct Known Subclasses
SdrViewComponents::Elements::AlertComponent, SdrViewComponents::Elements::BannerComponent, SdrViewComponents::Elements::BreadcrumbComponent, SdrViewComponents::Elements::BreadcrumbNavComponent, SdrViewComponents::Elements::ButtonComponent, SdrViewComponents::Elements::ButtonFormComponent, SdrViewComponents::Elements::ButtonLinkComponent, SdrViewComponents::Elements::CardComponent, SdrViewComponents::Elements::CardComponent::SectionComponent, SdrViewComponents::Elements::HeadingComponent, SdrViewComponents::Elements::HorizontalRuleComponent, SdrViewComponents::Elements::IconButtonComponent, SdrViewComponents::Elements::IconButtonLinkComponent, SdrViewComponents::Elements::ModalComponent, SdrViewComponents::Elements::Navigation::DropdownMenuComponent, SdrViewComponents::Elements::Navigation::NavItemComponent, SdrViewComponents::Elements::ProgressBarComponent, SdrViewComponents::Elements::SkipLinksComponent, SdrViewComponents::Elements::SpinnerComponent, SdrViewComponents::Elements::Tabs::PaneComponent, SdrViewComponents::Elements::Tabs::TabComponent, SdrViewComponents::Elements::Tabs::TabListComponent, SdrViewComponents::Elements::ToastComponent, SdrViewComponents::Elements::TooltipComponent, SdrViewComponents::Forms::BasicComponent, SdrViewComponents::Forms::FieldComponent, SdrViewComponents::Forms::HelpTextComponent, SdrViewComponents::Forms::InvalidFeedbackComponent, SdrViewComponents::Forms::LabelComponent, SdrViewComponents::Forms::SubmitComponent, SdrViewComponents::Forms::ToggleOptionComponent, SdrViewComponents::Structure::FooterComponent, SdrViewComponents::Structure::HeaderComponent, SdrViewComponents::Structure::HeaderRosetteComponent, SdrViewComponents::Structure::HeaderSubtitleComponent, SdrViewComponents::Structure::HeaderSulLogoComponent, SdrViewComponents::Structure::HeaderTitleComponent, SdrViewComponents::Structure::StyleOverrideDarkComponent, SdrViewComponents::Structure::StyleOverrideLightComponent, SdrViewComponents::TabForm::HiddenFieldsFormComponent, SdrViewComponents::TabForm::PaneComponent, SdrViewComponents::TabForm::TabComponent, SdrViewComponents::TabForm::TabListComponent, SdrViewComponents::Tables::BaseTableComponent, SdrViewComponents::Tables::CellComponent, SdrViewComponents::Tables::HeaderComponent, SdrViewComponents::Tables::ListCellComponent, SdrViewComponents::Tables::RowComponent
Instance Method Summary collapse
-
#args_for(args:, prefix:) ⇒ Hash
Extract args with a given prefix.
-
#mark_label_required(label:, mark_required: false, hidden_label: 'required') ⇒ String
Append a required-field marker to a label.
-
#merge_actions ⇒ String
Merge data-actions together.
-
#merge_classes ⇒ String
Merge classes together.
Instance Method Details
#args_for(args:, prefix:) ⇒ Hash
Extract args with a given prefix.
26 27 28 29 30 |
# File 'app/components/base_component.rb', line 26 def args_for(args:, prefix:) args.each_with_object({}) do |(key, value), h| h[key.to_s.delete_prefix(prefix).to_sym] = value if key.to_s.start_with?(prefix) end end |
#mark_label_required(label:, mark_required: false, hidden_label: 'required') ⇒ String
Append a required-field marker to a label.
38 39 40 41 42 43 44 |
# File 'app/components/base_component.rb', line 38 def mark_label_required(label:, mark_required: false, hidden_label: 'required') label.to_s.dup.tap do |label_text| if mark_required label_text << " <span class=\"required\">*</span><span class=\"visually-hidden\"> (#{hidden_label})</span>".html_safe # rubocop:disable Rails/OutputSafety, Layout/LineLength end end.html_safe # rubocop:disable Rails/OutputSafety end |
#merge_actions ⇒ String
Merge data-actions together.
17 18 19 |
# File 'app/components/base_component.rb', line 17 def merge_actions(*) ComponentSupport::CssClasses.merge(*) end |
#merge_classes ⇒ String
Merge classes together.
9 10 11 |
# File 'app/components/base_component.rb', line 9 def merge_classes(*) ComponentSupport::CssClasses.merge(*) end |