@hashicorp/design-system-components 6.2.0 → 6.3.0-rc-20260514101332
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/declarations/components/hds/accordion/index.d.ts +1 -1
- package/declarations/components/hds/accordion/item/button.d.ts +1 -1
- package/declarations/components/hds/accordion/item/index.d.ts +1 -1
- package/declarations/components/hds/advanced-table/body.d.ts +4 -0
- package/declarations/components/hds/advanced-table/column-manager/index.d.ts +1 -1
- package/declarations/components/hds/advanced-table/column-manager/order.d.ts +4 -0
- package/declarations/components/hds/advanced-table/column-manager/width.d.ts +4 -0
- package/declarations/components/hds/advanced-table/index.d.ts +1 -1
- package/declarations/components/hds/advanced-table/td.d.ts +1 -1
- package/declarations/components/hds/advanced-table/th-button-expand.d.ts +1 -1
- package/declarations/components/hds/advanced-table/th-button-sort.d.ts +1 -1
- package/declarations/components/hds/advanced-table/th-button-tooltip.d.ts +1 -1
- package/declarations/components/hds/advanced-table/th-context-menu.d.ts +1 -1
- package/declarations/components/hds/advanced-table/th-reorder-drop-target.d.ts +1 -1
- package/declarations/components/hds/advanced-table/th-reorder-handle.d.ts +1 -1
- package/declarations/components/hds/advanced-table/th-resize-handle.d.ts +1 -1
- package/declarations/components/hds/advanced-table/th-selectable.d.ts +1 -1
- package/declarations/components/hds/advanced-table/th.d.ts +1 -1
- package/declarations/components/hds/advanced-table/tr.d.ts +1 -1
- package/declarations/components/hds/advanced-table/types.d.ts +1 -1
- package/declarations/components/hds/advanced-table/utils.d.ts +1 -1
- package/declarations/components/hds/alert/description.d.ts +1 -1
- package/declarations/components/hds/alert/index.d.ts +10 -1
- package/declarations/components/hds/alert/title.d.ts +1 -1
- package/declarations/components/hds/app-footer/copyright.d.ts +1 -1
- package/declarations/components/hds/app-footer/index.d.ts +1 -1
- package/declarations/components/hds/app-footer/item.d.ts +1 -1
- package/declarations/components/hds/app-footer/legal-links.d.ts +1 -1
- package/declarations/components/hds/app-footer/link.d.ts +1 -1
- package/declarations/components/hds/app-footer/status-link.d.ts +2 -2
- package/declarations/components/hds/app-footer/types.d.ts +1 -1
- package/declarations/components/hds/app-frame/index.d.ts +1 -1
- package/declarations/components/hds/app-frame/parts/footer.d.ts +1 -1
- package/declarations/components/hds/app-frame/parts/header.d.ts +1 -1
- package/declarations/components/hds/app-frame/parts/main.d.ts +1 -1
- package/declarations/components/hds/app-frame/parts/modals.d.ts +1 -1
- package/declarations/components/hds/app-frame/parts/sidebar.d.ts +1 -1
- package/declarations/components/hds/app-header/home-link.d.ts +1 -1
- package/declarations/components/hds/app-header/index.d.ts +1 -1
- package/declarations/components/hds/app-header/menu-button.d.ts +1 -1
- package/declarations/components/hds/app-side-nav/index.d.ts +1 -1
- package/declarations/components/hds/app-side-nav/list/back-link.d.ts +1 -1
- package/declarations/components/hds/app-side-nav/list/index.d.ts +1 -1
- package/declarations/components/hds/app-side-nav/list/item.d.ts +1 -1
- package/declarations/components/hds/app-side-nav/list/link.d.ts +1 -1
- package/declarations/components/hds/app-side-nav/list/title.d.ts +1 -1
- package/declarations/components/hds/app-side-nav/portal/index.d.ts +1 -1
- package/declarations/components/hds/app-side-nav/portal/target.d.ts +1 -1
- package/declarations/components/hds/app-side-nav/toggle-button.d.ts +1 -1
- package/declarations/components/hds/application-state/body.d.ts +1 -1
- package/declarations/components/hds/application-state/footer.d.ts +1 -1
- package/declarations/components/hds/application-state/header.d.ts +1 -1
- package/declarations/components/hds/application-state/index.d.ts +1 -1
- package/declarations/components/hds/application-state/media.d.ts +1 -1
- package/declarations/components/hds/badge/index.d.ts +1 -1
- package/declarations/components/hds/badge-count/index.d.ts +1 -1
- package/declarations/components/hds/breadcrumb/index.d.ts +1 -1
- package/declarations/components/hds/breadcrumb/item.d.ts +1 -1
- package/declarations/components/hds/breadcrumb/truncation.d.ts +1 -1
- package/declarations/components/hds/button/index.d.ts +3 -1
- package/declarations/components/hds/button-set/index.d.ts +1 -1
- package/declarations/components/hds/card/container.d.ts +1 -1
- package/declarations/components/hds/code-block/copy-button.d.ts +1 -1
- package/declarations/components/hds/code-block/description.d.ts +1 -1
- package/declarations/components/hds/code-block/index.d.ts +1 -1
- package/declarations/components/hds/code-block/title.d.ts +1 -1
- package/declarations/components/hds/code-editor/description.d.ts +1 -1
- package/declarations/components/hds/code-editor/full-screen-button.d.ts +1 -1
- package/declarations/components/hds/code-editor/generic.d.ts +1 -1
- package/declarations/components/hds/code-editor/index.d.ts +1 -1
- package/declarations/components/hds/code-editor/title.d.ts +1 -1
- package/declarations/components/hds/composite/index.d.ts +4 -0
- package/declarations/components/hds/composite/navigation.d.ts +4 -0
- package/declarations/components/hds/composite/types.d.ts +4 -0
- package/declarations/components/hds/copy/button/index.d.ts +1 -1
- package/declarations/components/hds/copy/snippet/index.d.ts +1 -1
- package/declarations/components/hds/dialog-primitive/body.d.ts +1 -1
- package/declarations/components/hds/dialog-primitive/description.d.ts +1 -1
- package/declarations/components/hds/dialog-primitive/footer.d.ts +1 -1
- package/declarations/components/hds/dialog-primitive/header.d.ts +1 -1
- package/declarations/components/hds/dialog-primitive/overlay.d.ts +1 -1
- package/declarations/components/hds/dialog-primitive/wrapper.d.ts +1 -1
- package/declarations/components/hds/disclosure-primitive/index.d.ts +1 -1
- package/declarations/components/hds/dismiss-button/index.d.ts +1 -1
- package/declarations/components/hds/dropdown/footer.d.ts +1 -1
- package/declarations/components/hds/dropdown/header.d.ts +1 -1
- package/declarations/components/hds/dropdown/index.d.ts +1 -1
- package/declarations/components/hds/dropdown/list-item/checkbox.d.ts +1 -1
- package/declarations/components/hds/dropdown/list-item/checkmark.d.ts +1 -1
- package/declarations/components/hds/dropdown/list-item/copy-item.d.ts +1 -1
- package/declarations/components/hds/dropdown/list-item/description.d.ts +1 -1
- package/declarations/components/hds/dropdown/list-item/generic.d.ts +1 -1
- package/declarations/components/hds/dropdown/list-item/interactive.d.ts +1 -1
- package/declarations/components/hds/dropdown/list-item/radio.d.ts +1 -1
- package/declarations/components/hds/dropdown/list-item/separator.d.ts +1 -1
- package/declarations/components/hds/dropdown/list-item/title.d.ts +1 -1
- package/declarations/components/hds/dropdown/toggle/button.d.ts +1 -1
- package/declarations/components/hds/dropdown/toggle/chevron.d.ts +1 -1
- package/declarations/components/hds/dropdown/toggle/icon.d.ts +1 -1
- package/declarations/components/hds/filter-bar/actions-dropdown.d.ts +1 -1
- package/declarations/components/hds/filter-bar/applied-filters.d.ts +1 -1
- package/declarations/components/hds/filter-bar/filter-group/checkbox.d.ts +1 -1
- package/declarations/components/hds/filter-bar/filter-group/clear-button.d.ts +1 -1
- package/declarations/components/hds/filter-bar/filter-group/date.d.ts +1 -1
- package/declarations/components/hds/filter-bar/filter-group/generic.d.ts +1 -1
- package/declarations/components/hds/filter-bar/filter-group/index.d.ts +1 -1
- package/declarations/components/hds/filter-bar/filter-group/numerical.d.ts +1 -1
- package/declarations/components/hds/filter-bar/filter-group/radio.d.ts +1 -1
- package/declarations/components/hds/filter-bar/filters-dropdown.d.ts +1 -1
- package/declarations/components/hds/filter-bar/index.d.ts +1 -1
- package/declarations/components/hds/filter-bar/tabs/index.d.ts +1 -1
- package/declarations/components/hds/filter-bar/tabs/panel.d.ts +1 -1
- package/declarations/components/hds/filter-bar/tabs/tab.d.ts +1 -1
- package/declarations/components/hds/filter-bar/types.d.ts +1 -1
- package/declarations/components/hds/flyout/index.d.ts +1 -1
- package/declarations/components/hds/form/character-count/index.d.ts +1 -1
- package/declarations/components/hds/form/checkbox/base.d.ts +1 -1
- package/declarations/components/hds/form/checkbox/field.d.ts +1 -1
- package/declarations/components/hds/form/checkbox/group.d.ts +1 -1
- package/declarations/components/hds/form/error/index.d.ts +1 -1
- package/declarations/components/hds/form/error/message.d.ts +1 -1
- package/declarations/components/hds/form/field/index.d.ts +1 -1
- package/declarations/components/hds/form/fieldset/index.d.ts +1 -1
- package/declarations/components/hds/form/file-input/base.d.ts +1 -1
- package/declarations/components/hds/form/file-input/field.d.ts +1 -1
- package/declarations/components/hds/form/footer/index.d.ts +1 -1
- package/declarations/components/hds/form/header/description.d.ts +1 -1
- package/declarations/components/hds/form/header/index.d.ts +1 -1
- package/declarations/components/hds/form/header/title.d.ts +1 -1
- package/declarations/components/hds/form/helper-text/index.d.ts +1 -1
- package/declarations/components/hds/form/index.d.ts +1 -1
- package/declarations/components/hds/form/indicator/index.d.ts +1 -1
- package/declarations/components/hds/form/key-value-inputs/add-row-button.d.ts +1 -1
- package/declarations/components/hds/form/key-value-inputs/delete-row-button.d.ts +1 -1
- package/declarations/components/hds/form/key-value-inputs/field.d.ts +1 -1
- package/declarations/components/hds/form/key-value-inputs/generic.d.ts +1 -1
- package/declarations/components/hds/form/key-value-inputs/index.d.ts +1 -1
- package/declarations/components/hds/form/label/index.d.ts +1 -1
- package/declarations/components/hds/form/legend/index.d.ts +1 -1
- package/declarations/components/hds/form/masked-input/base.d.ts +1 -1
- package/declarations/components/hds/form/masked-input/field.d.ts +1 -1
- package/declarations/components/hds/form/radio/base.d.ts +1 -1
- package/declarations/components/hds/form/radio/field.d.ts +1 -1
- package/declarations/components/hds/form/radio/group.d.ts +1 -1
- package/declarations/components/hds/form/radio-card/description.d.ts +1 -1
- package/declarations/components/hds/form/radio-card/group.d.ts +1 -1
- package/declarations/components/hds/form/radio-card/index.d.ts +1 -1
- package/declarations/components/hds/form/radio-card/label.d.ts +1 -1
- package/declarations/components/hds/form/section/header.d.ts +1 -1
- package/declarations/components/hds/form/section/index.d.ts +1 -1
- package/declarations/components/hds/form/section/multi-field-group/index.d.ts +1 -1
- package/declarations/components/hds/form/section/multi-field-group/item.d.ts +1 -1
- package/declarations/components/hds/form/select/base.d.ts +1 -1
- package/declarations/components/hds/form/select/field.d.ts +1 -1
- package/declarations/components/hds/form/separator/index.d.ts +1 -1
- package/declarations/components/hds/form/super-select/after-options.d.ts +1 -1
- package/declarations/components/hds/form/super-select/multiple/base.d.ts +1 -1
- package/declarations/components/hds/form/super-select/multiple/field.d.ts +1 -1
- package/declarations/components/hds/form/super-select/option-group.d.ts +1 -1
- package/declarations/components/hds/form/super-select/placeholder.d.ts +1 -1
- package/declarations/components/hds/form/super-select/single/base.d.ts +1 -1
- package/declarations/components/hds/form/super-select/single/field.d.ts +1 -1
- package/declarations/components/hds/form/text-input/base.d.ts +1 -1
- package/declarations/components/hds/form/text-input/field.d.ts +2 -2
- package/declarations/components/hds/form/textarea/base.d.ts +1 -1
- package/declarations/components/hds/form/textarea/field.d.ts +1 -1
- package/declarations/components/hds/form/toggle/base.d.ts +1 -1
- package/declarations/components/hds/form/toggle/field.d.ts +1 -1
- package/declarations/components/hds/form/toggle/group.d.ts +1 -1
- package/declarations/components/hds/form/visibility-toggle/index.d.ts +1 -1
- package/declarations/components/hds/icon/index.d.ts +21 -5
- package/declarations/components/hds/icon/types.d.ts +7 -0
- package/declarations/components/hds/icon-tile/index.d.ts +1 -1
- package/declarations/components/hds/interactive/index.d.ts +1 -1
- package/declarations/components/hds/layout/flex/index.d.ts +1 -1
- package/declarations/components/hds/layout/flex/item.d.ts +1 -1
- package/declarations/components/hds/layout/grid/index.d.ts +1 -1
- package/declarations/components/hds/layout/grid/item.d.ts +1 -1
- package/declarations/components/hds/link/inline.d.ts +1 -1
- package/declarations/components/hds/link/standalone.d.ts +1 -1
- package/declarations/components/hds/modal/index.d.ts +1 -1
- package/declarations/components/hds/page-header/actions.d.ts +1 -1
- package/declarations/components/hds/page-header/badges.d.ts +1 -1
- package/declarations/components/hds/page-header/description.d.ts +1 -1
- package/declarations/components/hds/page-header/index.d.ts +1 -1
- package/declarations/components/hds/page-header/subtitle.d.ts +1 -1
- package/declarations/components/hds/page-header/title.d.ts +1 -1
- package/declarations/components/hds/pagination/compact/index.d.ts +1 -1
- package/declarations/components/hds/pagination/info/index.d.ts +1 -1
- package/declarations/components/hds/pagination/nav/arrow.d.ts +1 -1
- package/declarations/components/hds/pagination/nav/ellipsis.d.ts +1 -1
- package/declarations/components/hds/pagination/nav/number.d.ts +1 -1
- package/declarations/components/hds/pagination/numbered/index.d.ts +1 -1
- package/declarations/components/hds/pagination/size-selector/index.d.ts +1 -1
- package/declarations/components/hds/pagination/types.d.ts +1 -1
- package/declarations/components/hds/popover-primitive/index.d.ts +1 -1
- package/declarations/components/hds/reveal/index.d.ts +1 -1
- package/declarations/components/hds/reveal/toggle/button.d.ts +1 -1
- package/declarations/components/hds/rich-tooltip/bubble.d.ts +1 -1
- package/declarations/components/hds/rich-tooltip/index.d.ts +1 -1
- package/declarations/components/hds/rich-tooltip/toggle.d.ts +1 -1
- package/declarations/components/hds/segmented-group/index.d.ts +1 -1
- package/declarations/components/hds/separator/index.d.ts +1 -1
- package/declarations/components/hds/stepper/list/index.d.ts +1 -1
- package/declarations/components/hds/stepper/list/step.d.ts +1 -1
- package/declarations/components/hds/stepper/nav/index.d.ts +1 -1
- package/declarations/components/hds/stepper/nav/panel.d.ts +1 -1
- package/declarations/components/hds/stepper/nav/step.d.ts +1 -1
- package/declarations/components/hds/stepper/step/indicator.d.ts +1 -1
- package/declarations/components/hds/stepper/task/indicator.d.ts +2 -2
- package/declarations/components/hds/stepper/types.d.ts +1 -1
- package/declarations/components/hds/table/index.d.ts +1 -1
- package/declarations/components/hds/table/td.d.ts +1 -1
- package/declarations/components/hds/table/th-button-sort.d.ts +1 -1
- package/declarations/components/hds/table/th-button-tooltip.d.ts +1 -1
- package/declarations/components/hds/table/th-selectable.d.ts +1 -1
- package/declarations/components/hds/table/th-sort.d.ts +1 -1
- package/declarations/components/hds/table/th.d.ts +1 -1
- package/declarations/components/hds/table/tr.d.ts +1 -1
- package/declarations/components/hds/table/types.d.ts +1 -1
- package/declarations/components/hds/tabs/index.d.ts +1 -1
- package/declarations/components/hds/tabs/panel.d.ts +1 -1
- package/declarations/components/hds/tabs/tab.d.ts +1 -1
- package/declarations/components/hds/tag/index.d.ts +1 -1
- package/declarations/components/hds/text/body.d.ts +1 -1
- package/declarations/components/hds/text/code.d.ts +1 -1
- package/declarations/components/hds/text/display.d.ts +1 -1
- package/declarations/components/hds/text/index.d.ts +1 -1
- package/declarations/components/hds/theme-context/index.d.ts +24 -0
- package/declarations/components/hds/theme-context/types.d.ts +19 -0
- package/declarations/components/hds/theme-switcher/index.d.ts +43 -0
- package/declarations/components/hds/time/index.d.ts +1 -1
- package/declarations/components/hds/time/range.d.ts +1 -1
- package/declarations/components/hds/time/single.d.ts +1 -1
- package/declarations/components/hds/toast/index.d.ts +1 -1
- package/declarations/components/hds/tooltip-button/index.d.ts +1 -1
- package/declarations/components/hds/yield/index.d.ts +1 -1
- package/declarations/components.d.ts +3 -1
- package/declarations/helpers/hds-t.d.ts +1 -1
- package/declarations/instance-initializers/load-sprite-empty.d.ts +10 -0
- package/declarations/modifiers/hds-advanced-table-cell/dom-management.d.ts +1 -1
- package/declarations/modifiers/hds-advanced-table-cell.d.ts +1 -1
- package/declarations/modifiers/hds-anchored-position.d.ts +1 -1
- package/declarations/modifiers/hds-code-editor/highlight-styles/{hds-dark-highlight-style.d.ts → hds-highlight-style.d.ts} +2 -2
- package/declarations/modifiers/hds-code-editor/themes/hds-theme.d.ts +6 -0
- package/declarations/modifiers/hds-code-editor.d.ts +1 -1
- package/declarations/modifiers/hds-scroll-into-view-on-focus.d.ts +1 -1
- package/declarations/modifiers/hds-tooltip.d.ts +1 -1
- package/declarations/re-exports/codemirror.d.ts +4 -0
- package/declarations/services/hds-icon-registry.d.ts +31 -0
- package/declarations/services/hds-intl.d.ts +1 -1
- package/declarations/services/hds-theming.d.ts +54 -0
- package/declarations/services.d.ts +1 -0
- package/declarations/template-registry.d.ts +7 -1
- package/declarations/utils/hds-aria-described-by.d.ts +1 -1
- package/declarations/utils/hds-link-to-external.d.ts +4 -0
- package/dist/_app_/components/hds/theme-context.js +1 -0
- package/dist/_app_/components/hds/theme-switcher.js +1 -0
- package/dist/_app_/instance-initializers/load-sprite-empty.js +1 -0
- package/dist/_app_/modifiers/hds-code-editor/{palettes/hds-dark-palette.js → highlight-styles/hds-highlight-style.js} +1 -1
- package/dist/_app_/modifiers/hds-code-editor/themes/{hds-dark-theme.js → hds-theme.js} +1 -1
- package/dist/_app_/services/hds-icon-registry.js +1 -0
- package/dist/_app_/services/hds-theming.js +1 -0
- package/dist/components/hds/accordion/index.js +1 -1
- package/dist/components/hds/accordion/index.js.map +1 -1
- package/dist/components/hds/accordion/item/button.js +1 -1
- package/dist/components/hds/accordion/item/button.js.map +1 -1
- package/dist/components/hds/accordion/item/index.js +1 -1
- package/dist/components/hds/accordion/item/index.js.map +1 -1
- package/dist/components/hds/advanced-table/body.js +4 -0
- package/dist/components/hds/advanced-table/body.js.map +1 -1
- package/dist/components/hds/advanced-table/column-manager/index.js +1 -1
- package/dist/components/hds/advanced-table/column-manager/index.js.map +1 -1
- package/dist/components/hds/advanced-table/column-manager/order.js +4 -0
- package/dist/components/hds/advanced-table/column-manager/order.js.map +1 -1
- package/dist/components/hds/advanced-table/column-manager/width.js +4 -0
- package/dist/components/hds/advanced-table/column-manager/width.js.map +1 -1
- package/dist/components/hds/advanced-table/index.js +1 -1
- package/dist/components/hds/advanced-table/td.js +1 -1
- package/dist/components/hds/advanced-table/td.js.map +1 -1
- package/dist/components/hds/advanced-table/th-button-expand.js +1 -1
- package/dist/components/hds/advanced-table/th-button-expand.js.map +1 -1
- package/dist/components/hds/advanced-table/th-button-sort.js +1 -1
- package/dist/components/hds/advanced-table/th-button-sort.js.map +1 -1
- package/dist/components/hds/advanced-table/th-button-tooltip.js +1 -1
- package/dist/components/hds/advanced-table/th-button-tooltip.js.map +1 -1
- package/dist/components/hds/advanced-table/th-context-menu.js +1 -1
- package/dist/components/hds/advanced-table/th-context-menu.js.map +1 -1
- package/dist/components/hds/advanced-table/th-reorder-drop-target.js +1 -1
- package/dist/components/hds/advanced-table/th-reorder-handle.js +1 -1
- package/dist/components/hds/advanced-table/th-reorder-handle.js.map +1 -1
- package/dist/components/hds/advanced-table/th-resize-handle.js +1 -1
- package/dist/components/hds/advanced-table/th-selectable.js +1 -1
- package/dist/components/hds/advanced-table/th.js +1 -1
- package/dist/components/hds/advanced-table/tr.js +1 -1
- package/dist/components/hds/advanced-table/types.js +1 -1
- package/dist/components/hds/advanced-table/types.js.map +1 -1
- package/dist/components/hds/advanced-table/utils.js +1 -1
- package/dist/components/hds/advanced-table/utils.js.map +1 -1
- package/dist/components/hds/alert/description.js +1 -1
- package/dist/components/hds/alert/description.js.map +1 -1
- package/dist/components/hds/alert/index.js +18 -3
- package/dist/components/hds/alert/index.js.map +1 -1
- package/dist/components/hds/alert/title.js +1 -1
- package/dist/components/hds/alert/title.js.map +1 -1
- package/dist/components/hds/app-footer/copyright.js +1 -1
- package/dist/components/hds/app-footer/copyright.js.map +1 -1
- package/dist/components/hds/app-footer/index.js +1 -1
- package/dist/components/hds/app-footer/index.js.map +1 -1
- package/dist/components/hds/app-footer/item.js +1 -1
- package/dist/components/hds/app-footer/item.js.map +1 -1
- package/dist/components/hds/app-footer/legal-links.js +1 -1
- package/dist/components/hds/app-footer/legal-links.js.map +1 -1
- package/dist/components/hds/app-footer/link.js +1 -1
- package/dist/components/hds/app-footer/link.js.map +1 -1
- package/dist/components/hds/app-footer/status-link.js +1 -1
- package/dist/components/hds/app-footer/status-link.js.map +1 -1
- package/dist/components/hds/app-footer/types.js +1 -1
- package/dist/components/hds/app-footer/types.js.map +1 -1
- package/dist/components/hds/app-frame/index.js +1 -1
- package/dist/components/hds/app-frame/index.js.map +1 -1
- package/dist/components/hds/app-frame/parts/footer.js +1 -1
- package/dist/components/hds/app-frame/parts/footer.js.map +1 -1
- package/dist/components/hds/app-frame/parts/header.js +1 -1
- package/dist/components/hds/app-frame/parts/header.js.map +1 -1
- package/dist/components/hds/app-frame/parts/main.js +1 -1
- package/dist/components/hds/app-frame/parts/main.js.map +1 -1
- package/dist/components/hds/app-frame/parts/modals.js +1 -1
- package/dist/components/hds/app-frame/parts/modals.js.map +1 -1
- package/dist/components/hds/app-frame/parts/sidebar.js +1 -1
- package/dist/components/hds/app-frame/parts/sidebar.js.map +1 -1
- package/dist/components/hds/app-header/home-link.js +1 -1
- package/dist/components/hds/app-header/home-link.js.map +1 -1
- package/dist/components/hds/app-header/index.js +1 -1
- package/dist/components/hds/app-header/index.js.map +1 -1
- package/dist/components/hds/app-header/menu-button.js +1 -1
- package/dist/components/hds/app-header/menu-button.js.map +1 -1
- package/dist/components/hds/app-side-nav/index.js +1 -1
- package/dist/components/hds/app-side-nav/index.js.map +1 -1
- package/dist/components/hds/app-side-nav/list/back-link.js +1 -1
- package/dist/components/hds/app-side-nav/list/back-link.js.map +1 -1
- package/dist/components/hds/app-side-nav/list/index.js +1 -1
- package/dist/components/hds/app-side-nav/list/index.js.map +1 -1
- package/dist/components/hds/app-side-nav/list/item.js +1 -1
- package/dist/components/hds/app-side-nav/list/item.js.map +1 -1
- package/dist/components/hds/app-side-nav/list/link.js +1 -1
- package/dist/components/hds/app-side-nav/list/link.js.map +1 -1
- package/dist/components/hds/app-side-nav/list/title.js +1 -1
- package/dist/components/hds/app-side-nav/list/title.js.map +1 -1
- package/dist/components/hds/app-side-nav/portal/index.js +1 -1
- package/dist/components/hds/app-side-nav/portal/index.js.map +1 -1
- package/dist/components/hds/app-side-nav/portal/target.js +1 -1
- package/dist/components/hds/app-side-nav/portal/target.js.map +1 -1
- package/dist/components/hds/app-side-nav/toggle-button.js +1 -1
- package/dist/components/hds/app-side-nav/toggle-button.js.map +1 -1
- package/dist/components/hds/application-state/body.js +1 -1
- package/dist/components/hds/application-state/body.js.map +1 -1
- package/dist/components/hds/application-state/footer.js +1 -1
- package/dist/components/hds/application-state/footer.js.map +1 -1
- package/dist/components/hds/application-state/header.js +1 -1
- package/dist/components/hds/application-state/header.js.map +1 -1
- package/dist/components/hds/application-state/index.js +1 -1
- package/dist/components/hds/application-state/index.js.map +1 -1
- package/dist/components/hds/application-state/media.js +1 -1
- package/dist/components/hds/application-state/media.js.map +1 -1
- package/dist/components/hds/badge/index.js +1 -1
- package/dist/components/hds/badge/index.js.map +1 -1
- package/dist/components/hds/badge-count/index.js +1 -1
- package/dist/components/hds/badge-count/index.js.map +1 -1
- package/dist/components/hds/breadcrumb/index.js +1 -1
- package/dist/components/hds/breadcrumb/index.js.map +1 -1
- package/dist/components/hds/breadcrumb/item.js +1 -1
- package/dist/components/hds/breadcrumb/item.js.map +1 -1
- package/dist/components/hds/breadcrumb/truncation.js +1 -1
- package/dist/components/hds/breadcrumb/truncation.js.map +1 -1
- package/dist/components/hds/button/index.js +9 -2
- package/dist/components/hds/button/index.js.map +1 -1
- package/dist/components/hds/button-set/index.js +1 -1
- package/dist/components/hds/button-set/index.js.map +1 -1
- package/dist/components/hds/card/container.js +1 -1
- package/dist/components/hds/card/container.js.map +1 -1
- package/dist/components/hds/code-block/copy-button.js +1 -1
- package/dist/components/hds/code-block/copy-button.js.map +1 -1
- package/dist/components/hds/code-block/description.js +1 -1
- package/dist/components/hds/code-block/description.js.map +1 -1
- package/dist/components/hds/code-block/index.js +1 -1
- package/dist/components/hds/code-block/index.js.map +1 -1
- package/dist/components/hds/code-block/title.js +1 -1
- package/dist/components/hds/code-block/title.js.map +1 -1
- package/dist/components/hds/code-editor/description.js +1 -1
- package/dist/components/hds/code-editor/description.js.map +1 -1
- package/dist/components/hds/code-editor/full-screen-button.js +1 -1
- package/dist/components/hds/code-editor/full-screen-button.js.map +1 -1
- package/dist/components/hds/code-editor/generic.js +1 -1
- package/dist/components/hds/code-editor/generic.js.map +1 -1
- package/dist/components/hds/code-editor/index.js +1 -1
- package/dist/components/hds/code-editor/index.js.map +1 -1
- package/dist/components/hds/code-editor/title.js +1 -1
- package/dist/components/hds/code-editor/title.js.map +1 -1
- package/dist/components/hds/composite/index.js +4 -0
- package/dist/components/hds/composite/index.js.map +1 -1
- package/dist/components/hds/composite/navigation.js +5 -0
- package/dist/components/hds/composite/navigation.js.map +1 -1
- package/dist/components/hds/copy/button/index.js +1 -1
- package/dist/components/hds/copy/button/index.js.map +1 -1
- package/dist/components/hds/copy/snippet/index.js +1 -1
- package/dist/components/hds/copy/snippet/index.js.map +1 -1
- package/dist/components/hds/dialog-primitive/body.js +1 -1
- package/dist/components/hds/dialog-primitive/body.js.map +1 -1
- package/dist/components/hds/dialog-primitive/description.js +1 -1
- package/dist/components/hds/dialog-primitive/description.js.map +1 -1
- package/dist/components/hds/dialog-primitive/footer.js +1 -1
- package/dist/components/hds/dialog-primitive/footer.js.map +1 -1
- package/dist/components/hds/dialog-primitive/header.js +2 -6
- package/dist/components/hds/dialog-primitive/header.js.map +1 -1
- package/dist/components/hds/dialog-primitive/overlay.js +1 -1
- package/dist/components/hds/dialog-primitive/overlay.js.map +1 -1
- package/dist/components/hds/dialog-primitive/wrapper.js +1 -1
- package/dist/components/hds/dialog-primitive/wrapper.js.map +1 -1
- package/dist/components/hds/disclosure-primitive/index.js +1 -1
- package/dist/components/hds/disclosure-primitive/index.js.map +1 -1
- package/dist/components/hds/dismiss-button/index.js +1 -1
- package/dist/components/hds/dismiss-button/index.js.map +1 -1
- package/dist/components/hds/dropdown/footer.js +1 -1
- package/dist/components/hds/dropdown/footer.js.map +1 -1
- package/dist/components/hds/dropdown/header.js +1 -1
- package/dist/components/hds/dropdown/header.js.map +1 -1
- package/dist/components/hds/dropdown/index.js +1 -1
- package/dist/components/hds/dropdown/index.js.map +1 -1
- package/dist/components/hds/dropdown/list-item/checkbox.js +1 -1
- package/dist/components/hds/dropdown/list-item/checkbox.js.map +1 -1
- package/dist/components/hds/dropdown/list-item/checkmark.js +1 -1
- package/dist/components/hds/dropdown/list-item/checkmark.js.map +1 -1
- package/dist/components/hds/dropdown/list-item/copy-item.js +1 -1
- package/dist/components/hds/dropdown/list-item/copy-item.js.map +1 -1
- package/dist/components/hds/dropdown/list-item/description.js +1 -1
- package/dist/components/hds/dropdown/list-item/description.js.map +1 -1
- package/dist/components/hds/dropdown/list-item/generic.js +1 -1
- package/dist/components/hds/dropdown/list-item/generic.js.map +1 -1
- package/dist/components/hds/dropdown/list-item/interactive.js +1 -1
- package/dist/components/hds/dropdown/list-item/interactive.js.map +1 -1
- package/dist/components/hds/dropdown/list-item/radio.js +1 -1
- package/dist/components/hds/dropdown/list-item/radio.js.map +1 -1
- package/dist/components/hds/dropdown/list-item/separator.js +1 -1
- package/dist/components/hds/dropdown/list-item/separator.js.map +1 -1
- package/dist/components/hds/dropdown/list-item/title.js +1 -1
- package/dist/components/hds/dropdown/list-item/title.js.map +1 -1
- package/dist/components/hds/dropdown/toggle/button.js +1 -1
- package/dist/components/hds/dropdown/toggle/button.js.map +1 -1
- package/dist/components/hds/dropdown/toggle/chevron.js +1 -1
- package/dist/components/hds/dropdown/toggle/chevron.js.map +1 -1
- package/dist/components/hds/dropdown/toggle/icon.js +1 -1
- package/dist/components/hds/dropdown/toggle/icon.js.map +1 -1
- package/dist/components/hds/filter-bar/actions-dropdown.js +1 -1
- package/dist/components/hds/filter-bar/actions-dropdown.js.map +1 -1
- package/dist/components/hds/filter-bar/applied-filters.js +1 -1
- package/dist/components/hds/filter-bar/applied-filters.js.map +1 -1
- package/dist/components/hds/filter-bar/filter-group/checkbox.js +1 -1
- package/dist/components/hds/filter-bar/filter-group/checkbox.js.map +1 -1
- package/dist/components/hds/filter-bar/filter-group/clear-button.js +1 -1
- package/dist/components/hds/filter-bar/filter-group/clear-button.js.map +1 -1
- package/dist/components/hds/filter-bar/filter-group/date.js +1 -1
- package/dist/components/hds/filter-bar/filter-group/date.js.map +1 -1
- package/dist/components/hds/filter-bar/filter-group/generic.js +1 -1
- package/dist/components/hds/filter-bar/filter-group/generic.js.map +1 -1
- package/dist/components/hds/filter-bar/filter-group/index.js +1 -1
- package/dist/components/hds/filter-bar/filter-group/index.js.map +1 -1
- package/dist/components/hds/filter-bar/filter-group/numerical.js +1 -1
- package/dist/components/hds/filter-bar/filter-group/numerical.js.map +1 -1
- package/dist/components/hds/filter-bar/filter-group/radio.js +1 -1
- package/dist/components/hds/filter-bar/filter-group/radio.js.map +1 -1
- package/dist/components/hds/filter-bar/filters-dropdown.js +1 -1
- package/dist/components/hds/filter-bar/filters-dropdown.js.map +1 -1
- package/dist/components/hds/filter-bar/index.js +1 -1
- package/dist/components/hds/filter-bar/index.js.map +1 -1
- package/dist/components/hds/filter-bar/tabs/index.js +1 -1
- package/dist/components/hds/filter-bar/tabs/index.js.map +1 -1
- package/dist/components/hds/filter-bar/tabs/panel.js +1 -1
- package/dist/components/hds/filter-bar/tabs/panel.js.map +1 -1
- package/dist/components/hds/filter-bar/tabs/tab.js +1 -1
- package/dist/components/hds/filter-bar/tabs/tab.js.map +1 -1
- package/dist/components/hds/filter-bar/types.js +1 -1
- package/dist/components/hds/filter-bar/types.js.map +1 -1
- package/dist/components/hds/flyout/index.js +1 -1
- package/dist/components/hds/flyout/index.js.map +1 -1
- package/dist/components/hds/form/character-count/index.js +1 -1
- package/dist/components/hds/form/character-count/index.js.map +1 -1
- package/dist/components/hds/form/checkbox/base.js +1 -1
- package/dist/components/hds/form/checkbox/base.js.map +1 -1
- package/dist/components/hds/form/checkbox/field.js +1 -1
- package/dist/components/hds/form/checkbox/field.js.map +1 -1
- package/dist/components/hds/form/checkbox/group.js +1 -1
- package/dist/components/hds/form/checkbox/group.js.map +1 -1
- package/dist/components/hds/form/error/index.js +1 -1
- package/dist/components/hds/form/error/index.js.map +1 -1
- package/dist/components/hds/form/error/message.js +1 -1
- package/dist/components/hds/form/error/message.js.map +1 -1
- package/dist/components/hds/form/field/index.js +1 -1
- package/dist/components/hds/form/field/index.js.map +1 -1
- package/dist/components/hds/form/fieldset/index.js +1 -1
- package/dist/components/hds/form/fieldset/index.js.map +1 -1
- package/dist/components/hds/form/file-input/base.js +1 -1
- package/dist/components/hds/form/file-input/base.js.map +1 -1
- package/dist/components/hds/form/file-input/field.js +1 -1
- package/dist/components/hds/form/file-input/field.js.map +1 -1
- package/dist/components/hds/form/footer/index.js +1 -1
- package/dist/components/hds/form/footer/index.js.map +1 -1
- package/dist/components/hds/form/header/description.js +1 -1
- package/dist/components/hds/form/header/description.js.map +1 -1
- package/dist/components/hds/form/header/index.js +1 -1
- package/dist/components/hds/form/header/index.js.map +1 -1
- package/dist/components/hds/form/header/title.js +1 -1
- package/dist/components/hds/form/header/title.js.map +1 -1
- package/dist/components/hds/form/helper-text/index.js +1 -1
- package/dist/components/hds/form/helper-text/index.js.map +1 -1
- package/dist/components/hds/form/index.js +1 -1
- package/dist/components/hds/form/index.js.map +1 -1
- package/dist/components/hds/form/indicator/index.js +1 -1
- package/dist/components/hds/form/indicator/index.js.map +1 -1
- package/dist/components/hds/form/key-value-inputs/add-row-button.js +1 -1
- package/dist/components/hds/form/key-value-inputs/add-row-button.js.map +1 -1
- package/dist/components/hds/form/key-value-inputs/delete-row-button.js +1 -1
- package/dist/components/hds/form/key-value-inputs/delete-row-button.js.map +1 -1
- package/dist/components/hds/form/key-value-inputs/field.js +1 -1
- package/dist/components/hds/form/key-value-inputs/field.js.map +1 -1
- package/dist/components/hds/form/key-value-inputs/generic.js +1 -1
- package/dist/components/hds/form/key-value-inputs/generic.js.map +1 -1
- package/dist/components/hds/form/key-value-inputs/index.js +1 -1
- package/dist/components/hds/form/key-value-inputs/index.js.map +1 -1
- package/dist/components/hds/form/label/index.js +1 -1
- package/dist/components/hds/form/label/index.js.map +1 -1
- package/dist/components/hds/form/legend/index.js +1 -1
- package/dist/components/hds/form/legend/index.js.map +1 -1
- package/dist/components/hds/form/masked-input/base.js +1 -1
- package/dist/components/hds/form/masked-input/base.js.map +1 -1
- package/dist/components/hds/form/masked-input/field.js +1 -1
- package/dist/components/hds/form/masked-input/field.js.map +1 -1
- package/dist/components/hds/form/radio/base.js +1 -1
- package/dist/components/hds/form/radio/base.js.map +1 -1
- package/dist/components/hds/form/radio/field.js +1 -1
- package/dist/components/hds/form/radio/field.js.map +1 -1
- package/dist/components/hds/form/radio/group.js +1 -1
- package/dist/components/hds/form/radio/group.js.map +1 -1
- package/dist/components/hds/form/radio-card/description.js +1 -1
- package/dist/components/hds/form/radio-card/description.js.map +1 -1
- package/dist/components/hds/form/radio-card/group.js +1 -1
- package/dist/components/hds/form/radio-card/group.js.map +1 -1
- package/dist/components/hds/form/radio-card/index.js +1 -1
- package/dist/components/hds/form/radio-card/index.js.map +1 -1
- package/dist/components/hds/form/radio-card/label.js +1 -1
- package/dist/components/hds/form/radio-card/label.js.map +1 -1
- package/dist/components/hds/form/section/header.js +1 -1
- package/dist/components/hds/form/section/header.js.map +1 -1
- package/dist/components/hds/form/section/index.js +1 -1
- package/dist/components/hds/form/section/index.js.map +1 -1
- package/dist/components/hds/form/section/multi-field-group/index.js +1 -1
- package/dist/components/hds/form/section/multi-field-group/index.js.map +1 -1
- package/dist/components/hds/form/section/multi-field-group/item.js +1 -1
- package/dist/components/hds/form/section/multi-field-group/item.js.map +1 -1
- package/dist/components/hds/form/select/base.js +1 -1
- package/dist/components/hds/form/select/base.js.map +1 -1
- package/dist/components/hds/form/select/field.js +1 -1
- package/dist/components/hds/form/select/field.js.map +1 -1
- package/dist/components/hds/form/separator/index.js +1 -1
- package/dist/components/hds/form/separator/index.js.map +1 -1
- package/dist/components/hds/form/super-select/after-options.js +1 -1
- package/dist/components/hds/form/super-select/after-options.js.map +1 -1
- package/dist/components/hds/form/super-select/multiple/base.js +1 -1
- package/dist/components/hds/form/super-select/multiple/base.js.map +1 -1
- package/dist/components/hds/form/super-select/multiple/field.js +1 -1
- package/dist/components/hds/form/super-select/multiple/field.js.map +1 -1
- package/dist/components/hds/form/super-select/option-group.js +1 -1
- package/dist/components/hds/form/super-select/option-group.js.map +1 -1
- package/dist/components/hds/form/super-select/placeholder.js +1 -1
- package/dist/components/hds/form/super-select/placeholder.js.map +1 -1
- package/dist/components/hds/form/super-select/single/base.js +1 -1
- package/dist/components/hds/form/super-select/single/base.js.map +1 -1
- package/dist/components/hds/form/super-select/single/field.js +1 -1
- package/dist/components/hds/form/super-select/single/field.js.map +1 -1
- package/dist/components/hds/form/text-input/base.js +1 -1
- package/dist/components/hds/form/text-input/base.js.map +1 -1
- package/dist/components/hds/form/text-input/field.js +1 -1
- package/dist/components/hds/form/text-input/field.js.map +1 -1
- package/dist/components/hds/form/textarea/base.js +1 -1
- package/dist/components/hds/form/textarea/base.js.map +1 -1
- package/dist/components/hds/form/textarea/field.js +1 -1
- package/dist/components/hds/form/textarea/field.js.map +1 -1
- package/dist/components/hds/form/toggle/base.js +1 -1
- package/dist/components/hds/form/toggle/base.js.map +1 -1
- package/dist/components/hds/form/toggle/field.js +1 -1
- package/dist/components/hds/form/toggle/field.js.map +1 -1
- package/dist/components/hds/form/toggle/group.js +1 -1
- package/dist/components/hds/form/toggle/group.js.map +1 -1
- package/dist/components/hds/form/visibility-toggle/index.js +1 -1
- package/dist/components/hds/form/visibility-toggle/index.js.map +1 -1
- package/dist/components/hds/icon/index.js +46 -11
- package/dist/components/hds/icon/index.js.map +1 -1
- package/dist/components/hds/icon/types.js +6 -1
- package/dist/components/hds/icon/types.js.map +1 -1
- package/dist/components/hds/icon-tile/index.js +2 -3
- package/dist/components/hds/icon-tile/index.js.map +1 -1
- package/dist/components/hds/interactive/index.js +1 -1
- package/dist/components/hds/interactive/index.js.map +1 -1
- package/dist/components/hds/layout/flex/index.js +1 -1
- package/dist/components/hds/layout/flex/index.js.map +1 -1
- package/dist/components/hds/layout/flex/item.js +1 -1
- package/dist/components/hds/layout/flex/item.js.map +1 -1
- package/dist/components/hds/layout/grid/index.js +1 -1
- package/dist/components/hds/layout/grid/index.js.map +1 -1
- package/dist/components/hds/layout/grid/item.js +1 -1
- package/dist/components/hds/layout/grid/item.js.map +1 -1
- package/dist/components/hds/link/inline.js +1 -1
- package/dist/components/hds/link/inline.js.map +1 -1
- package/dist/components/hds/link/standalone.js +1 -1
- package/dist/components/hds/link/standalone.js.map +1 -1
- package/dist/components/hds/modal/index.js +1 -1
- package/dist/components/hds/modal/index.js.map +1 -1
- package/dist/components/hds/page-header/actions.js +1 -1
- package/dist/components/hds/page-header/actions.js.map +1 -1
- package/dist/components/hds/page-header/badges.js +1 -1
- package/dist/components/hds/page-header/badges.js.map +1 -1
- package/dist/components/hds/page-header/description.js +1 -1
- package/dist/components/hds/page-header/description.js.map +1 -1
- package/dist/components/hds/page-header/index.js +1 -1
- package/dist/components/hds/page-header/index.js.map +1 -1
- package/dist/components/hds/page-header/subtitle.js +1 -1
- package/dist/components/hds/page-header/subtitle.js.map +1 -1
- package/dist/components/hds/page-header/title.js +1 -1
- package/dist/components/hds/page-header/title.js.map +1 -1
- package/dist/components/hds/pagination/compact/index.js +2 -2
- package/dist/components/hds/pagination/compact/index.js.map +1 -1
- package/dist/components/hds/pagination/info/index.js +1 -1
- package/dist/components/hds/pagination/info/index.js.map +1 -1
- package/dist/components/hds/pagination/nav/arrow.js +1 -1
- package/dist/components/hds/pagination/nav/arrow.js.map +1 -1
- package/dist/components/hds/pagination/nav/ellipsis.js +1 -1
- package/dist/components/hds/pagination/nav/ellipsis.js.map +1 -1
- package/dist/components/hds/pagination/nav/number.js +2 -2
- package/dist/components/hds/pagination/nav/number.js.map +1 -1
- package/dist/components/hds/pagination/numbered/index.js +2 -2
- package/dist/components/hds/pagination/numbered/index.js.map +1 -1
- package/dist/components/hds/pagination/size-selector/index.js +2 -2
- package/dist/components/hds/pagination/size-selector/index.js.map +1 -1
- package/dist/components/hds/pagination/types.js +1 -1
- package/dist/components/hds/pagination/types.js.map +1 -1
- package/dist/components/hds/popover-primitive/index.js +1 -1
- package/dist/components/hds/popover-primitive/index.js.map +1 -1
- package/dist/components/hds/reveal/index.js +1 -1
- package/dist/components/hds/reveal/index.js.map +1 -1
- package/dist/components/hds/reveal/toggle/button.js +1 -1
- package/dist/components/hds/reveal/toggle/button.js.map +1 -1
- package/dist/components/hds/rich-tooltip/bubble.js +1 -1
- package/dist/components/hds/rich-tooltip/bubble.js.map +1 -1
- package/dist/components/hds/rich-tooltip/index.js +1 -1
- package/dist/components/hds/rich-tooltip/index.js.map +1 -1
- package/dist/components/hds/rich-tooltip/toggle.js +1 -1
- package/dist/components/hds/rich-tooltip/toggle.js.map +1 -1
- package/dist/components/hds/segmented-group/index.js +1 -1
- package/dist/components/hds/segmented-group/index.js.map +1 -1
- package/dist/components/hds/separator/index.js +1 -1
- package/dist/components/hds/separator/index.js.map +1 -1
- package/dist/components/hds/stepper/list/index.js +1 -1
- package/dist/components/hds/stepper/list/index.js.map +1 -1
- package/dist/components/hds/stepper/list/step.js +1 -1
- package/dist/components/hds/stepper/list/step.js.map +1 -1
- package/dist/components/hds/stepper/nav/index.js +1 -1
- package/dist/components/hds/stepper/nav/index.js.map +1 -1
- package/dist/components/hds/stepper/nav/panel.js +1 -1
- package/dist/components/hds/stepper/nav/panel.js.map +1 -1
- package/dist/components/hds/stepper/nav/step.js +1 -1
- package/dist/components/hds/stepper/nav/step.js.map +1 -1
- package/dist/components/hds/stepper/step/indicator.js +1 -1
- package/dist/components/hds/stepper/step/indicator.js.map +1 -1
- package/dist/components/hds/stepper/task/indicator.js +1 -1
- package/dist/components/hds/stepper/task/indicator.js.map +1 -1
- package/dist/components/hds/stepper/types.js +1 -1
- package/dist/components/hds/stepper/types.js.map +1 -1
- package/dist/components/hds/table/index.js +1 -1
- package/dist/components/hds/table/index.js.map +1 -1
- package/dist/components/hds/table/td.js +1 -1
- package/dist/components/hds/table/td.js.map +1 -1
- package/dist/components/hds/table/th-button-sort.js +1 -1
- package/dist/components/hds/table/th-button-sort.js.map +1 -1
- package/dist/components/hds/table/th-button-tooltip.js +1 -1
- package/dist/components/hds/table/th-button-tooltip.js.map +1 -1
- package/dist/components/hds/table/th-selectable.js +1 -1
- package/dist/components/hds/table/th-selectable.js.map +1 -1
- package/dist/components/hds/table/th-sort.js +1 -1
- package/dist/components/hds/table/th-sort.js.map +1 -1
- package/dist/components/hds/table/th.js +1 -1
- package/dist/components/hds/table/th.js.map +1 -1
- package/dist/components/hds/table/tr.js +1 -1
- package/dist/components/hds/table/tr.js.map +1 -1
- package/dist/components/hds/table/types.js +1 -1
- package/dist/components/hds/table/types.js.map +1 -1
- package/dist/components/hds/tabs/index.js +1 -1
- package/dist/components/hds/tabs/index.js.map +1 -1
- package/dist/components/hds/tabs/panel.js +1 -1
- package/dist/components/hds/tabs/panel.js.map +1 -1
- package/dist/components/hds/tabs/tab.js +1 -1
- package/dist/components/hds/tabs/tab.js.map +1 -1
- package/dist/components/hds/tag/index.js +10 -1
- package/dist/components/hds/tag/index.js.map +1 -1
- package/dist/components/hds/text/body.js +1 -1
- package/dist/components/hds/text/body.js.map +1 -1
- package/dist/components/hds/text/code.js +1 -1
- package/dist/components/hds/text/code.js.map +1 -1
- package/dist/components/hds/text/display.js +1 -1
- package/dist/components/hds/text/display.js.map +1 -1
- package/dist/components/hds/text/index.js +1 -1
- package/dist/components/hds/text/index.js.map +1 -1
- package/dist/components/hds/theme-context/index.js +44 -0
- package/dist/components/hds/theme-context/index.js.map +1 -0
- package/dist/components/hds/theme-context/types.js +27 -0
- package/dist/components/hds/theme-context/types.js.map +1 -0
- package/dist/components/hds/theme-switcher/index.js +107 -0
- package/dist/components/hds/theme-switcher/index.js.map +1 -0
- package/dist/components/hds/time/index.js +1 -1
- package/dist/components/hds/time/index.js.map +1 -1
- package/dist/components/hds/time/range.js +1 -1
- package/dist/components/hds/time/range.js.map +1 -1
- package/dist/components/hds/time/single.js +1 -1
- package/dist/components/hds/time/single.js.map +1 -1
- package/dist/components/hds/toast/index.js +1 -1
- package/dist/components/hds/toast/index.js.map +1 -1
- package/dist/components/hds/tooltip-button/index.js +1 -1
- package/dist/components/hds/tooltip-button/index.js.map +1 -1
- package/dist/components/hds/yield/index.js +1 -1
- package/dist/components/hds/yield/index.js.map +1 -1
- package/dist/components.js +4 -2
- package/dist/components.js.map +1 -1
- package/dist/helpers/hds-t.js +1 -1
- package/dist/helpers/hds-t.js.map +1 -1
- package/dist/{index-B9OqWZ9U.js → index-DtMB-P9m.js} +7 -7
- package/dist/{index-B9OqWZ9U.js.map → index-DtMB-P9m.js.map} +1 -1
- package/dist/instance-initializers/load-sprite-empty.js +45 -0
- package/dist/instance-initializers/load-sprite-empty.js.map +1 -0
- package/dist/modifiers/hds-advanced-table-cell/dom-management.js +1 -1
- package/dist/modifiers/hds-advanced-table-cell/dom-management.js.map +1 -1
- package/dist/modifiers/hds-advanced-table-cell.js +1 -1
- package/dist/modifiers/hds-advanced-table-cell.js.map +1 -1
- package/dist/modifiers/hds-code-editor/highlight-styles/hds-highlight-style.js +107 -0
- package/dist/modifiers/hds-code-editor/highlight-styles/hds-highlight-style.js.map +1 -0
- package/dist/modifiers/hds-code-editor/themes/{hds-dark-theme.js → hds-theme.js} +41 -40
- package/dist/modifiers/hds-code-editor/themes/hds-theme.js.map +1 -0
- package/dist/modifiers/hds-code-editor.js +4 -4
- package/dist/modifiers/hds-code-editor.js.map +1 -1
- package/dist/modifiers/hds-scroll-into-view-on-focus.js +1 -1
- package/dist/modifiers/hds-scroll-into-view-on-focus.js.map +1 -1
- package/dist/modifiers/hds-tooltip.js +2 -5
- package/dist/modifiers/hds-tooltip.js.map +1 -1
- package/dist/public/assets/fonts/LICENSE.txt +93 -0
- package/dist/public/assets/fonts/complete/woff2/IBMPlexMono-Italic.woff2 +0 -0
- package/dist/public/assets/fonts/complete/woff2/IBMPlexMono-Regular.woff2 +0 -0
- package/dist/public/assets/fonts/complete/woff2/IBMPlexMono-SemiBold.woff2 +0 -0
- package/dist/public/assets/fonts/complete/woff2/IBMPlexMono-SemiBoldItalic.woff2 +0 -0
- package/dist/public/assets/fonts/complete/woff2/IBMPlexSans-Italic.woff2 +0 -0
- package/dist/public/assets/fonts/complete/woff2/IBMPlexSans-Regular.woff2 +0 -0
- package/dist/public/assets/fonts/complete/woff2/IBMPlexSans-SemiBold.woff2 +0 -0
- package/dist/public/assets/fonts/complete/woff2/IBMPlexSans-SemiBoldItalic.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexMono-Italic-Cyrillic.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexMono-Italic-Latin1.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexMono-Italic-Latin2.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexMono-Italic-Latin3.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexMono-Italic-Pi.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexMono-Regular-Cyrillic.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexMono-Regular-Latin1.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexMono-Regular-Latin2.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexMono-Regular-Latin3.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexMono-Regular-Pi.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexMono-SemiBold-Cyrillic.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexMono-SemiBold-Latin1.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexMono-SemiBold-Latin2.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexMono-SemiBold-Latin3.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexMono-SemiBold-Pi.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexMono-SemiBoldItalic-Cyrillic.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexMono-SemiBoldItalic-Latin1.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexMono-SemiBoldItalic-Latin2.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexMono-SemiBoldItalic-Latin3.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexMono-SemiBoldItalic-Pi.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexSans-Italic-Cyrillic.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexSans-Italic-Greek.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexSans-Italic-Latin1.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexSans-Italic-Latin2.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexSans-Italic-Latin3.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexSans-Italic-Pi.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexSans-Regular-Cyrillic.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexSans-Regular-Greek.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexSans-Regular-Latin1.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexSans-Regular-Latin2.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexSans-Regular-Latin3.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexSans-Regular-Pi.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexSans-SemiBold-Cyrillic.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexSans-SemiBold-Greek.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexSans-SemiBold-Latin1.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexSans-SemiBold-Latin2.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexSans-SemiBold-Latin3.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexSans-SemiBold-Pi.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexSans-SemiBoldItalic-Cyrillic.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexSans-SemiBoldItalic-Greek.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexSans-SemiBoldItalic-Latin1.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexSans-SemiBoldItalic-Latin2.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexSans-SemiBoldItalic-Latin3.woff2 +0 -0
- package/dist/public/assets/fonts/split/woff2/IBMPlexSans-SemiBoldItalic-Pi.woff2 +0 -0
- package/dist/services/hds-icon-registry.js +436 -0
- package/dist/services/hds-icon-registry.js.map +1 -0
- package/dist/services/hds-intl.js +1 -1
- package/dist/services/hds-intl.js.map +1 -1
- package/dist/services/hds-theming.js +150 -0
- package/dist/services/hds-theming.js.map +1 -0
- package/dist/services.js +1 -1
- package/dist/styles/@hashicorp/design-system-components-common.css +10170 -0
- package/dist/styles/@hashicorp/design-system-components-common.css.map +1 -0
- package/dist/styles/@hashicorp/design-system-components-common.scss +1 -1
- package/dist/styles/@hashicorp/design-system-components.css +2083 -896
- package/dist/styles/@hashicorp/design-system-components.css.map +1 -1
- package/dist/styles/@hashicorp/design-system-components.scss +1 -1
- package/dist/styles/@hashicorp/design-system-ember-a11y-refocus.scss +5 -0
- package/dist/styles/@hashicorp/design-system-plex-fonts.css +362 -0
- package/dist/styles/@hashicorp/design-system-plex-fonts.css.map +1 -0
- package/dist/styles/@hashicorp/design-system-plex-fonts.scss +62 -0
- package/dist/styles/@hashicorp/design-system-power-select-overrides.css +3 -3
- package/dist/styles/@hashicorp/design-system-power-select-overrides.scss +3 -3
- package/dist/styles/components/advanced-table.scss +1 -1
- package/dist/styles/components/alert.scss +73 -94
- package/dist/styles/components/app-footer.scss +6 -4
- package/dist/styles/components/app-header.scss +134 -15
- package/dist/styles/components/app-side-nav/content.scss +30 -15
- package/dist/styles/components/app-side-nav/main.scss +2 -2
- package/dist/styles/components/app-side-nav/toggle-button.scss +17 -9
- package/dist/styles/components/app-side-nav/vars.scss +1 -1
- package/dist/styles/components/badge-count.scss +27 -76
- package/dist/styles/components/badge.scss +32 -131
- package/dist/styles/components/breadcrumb.scss +108 -21
- package/dist/styles/components/button.scss +5 -0
- package/dist/styles/components/card/container.scss +10 -5
- package/dist/styles/components/code-block/index.scss +54 -33
- package/dist/styles/components/code-block/theme.scss +44 -90
- package/dist/styles/components/code-editor/index.scss +43 -23
- package/dist/styles/components/copy/button.scss +17 -3
- package/dist/styles/components/copy/snippet.scss +17 -0
- package/dist/styles/components/dialog-primitive.scss +50 -10
- package/dist/styles/components/dismiss-button.scss +19 -14
- package/dist/styles/components/dropdown.scss +145 -43
- package/dist/styles/components/filter-bar.scss +1 -1
- package/dist/styles/components/flyout.scss +2 -5
- package/dist/styles/components/form/file-input.scss +2 -2
- package/dist/styles/components/form/key-value-inputs.scss +2 -4
- package/dist/styles/components/form/radio-card.scss +1 -1
- package/dist/styles/components/form/select.scss +1 -1
- package/dist/styles/components/form/super-select.scss +6 -6
- package/dist/styles/components/form/text-input.scss +2 -2
- package/dist/styles/components/form/textarea.scss +2 -2
- package/dist/styles/components/icon-tile.scss +18 -11
- package/dist/styles/components/index.scss +2 -1
- package/dist/styles/components/layout/grid.scss +1 -1
- package/dist/styles/components/link/inline.scss +10 -4
- package/dist/styles/components/link/standalone.scss +17 -80
- package/dist/styles/components/modal.scss +14 -10
- package/dist/styles/components/pagination.scss +104 -8
- package/dist/styles/components/reveal.scss +28 -0
- package/dist/styles/components/rich-tooltip.scss +53 -22
- package/dist/styles/components/tabs.scss +45 -8
- package/dist/styles/components/tag.scss +96 -34
- package/dist/styles/components/theme-context.scss +12 -0
- package/dist/styles/components/tooltip.scss +56 -26
- package/dist/styles/mixins/_button.scss +84 -130
- package/dist/styles/mixins/_carbonization.scss +43 -0
- package/dist/styles/mixins/_focus-ring.scss +2 -2
- package/dist/utils/hds-aria-described-by.js +1 -1
- package/dist/utils/hds-aria-described-by.js.map +1 -1
- package/dist/utils/hds-link-to-external.js +5 -0
- package/dist/utils/hds-link-to-external.js.map +1 -1
- package/package.json +67 -6
- package/declarations/modifiers/hds-code-editor/palettes/hds-dark-palette.d.ts +0 -21
- package/declarations/modifiers/hds-code-editor/themes/hds-dark-theme.d.ts +0 -6
- package/dist/_app_/modifiers/hds-code-editor/highlight-styles/hds-dark-highlight-style.js +0 -1
- package/dist/modifiers/hds-code-editor/highlight-styles/hds-dark-highlight-style.js +0 -108
- package/dist/modifiers/hds-code-editor/highlight-styles/hds-dark-highlight-style.js.map +0 -1
- package/dist/modifiers/hds-code-editor/palettes/hds-dark-palette.js +0 -25
- package/dist/modifiers/hds-code-editor/palettes/hds-dark-palette.js.map +0 -1
- package/dist/modifiers/hds-code-editor/themes/hds-dark-theme.js.map +0 -1
- package/dist/styles/components/code-editor/theme.scss +0 -23
- package/dist/styles/mixins/_interactive-dark-theme.scss +0 -109
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"applied-filters.js","sources":["../../../../src/components/hds/filter-bar/applied-filters.gts"],"sourcesContent":["/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { service } from '@ember/service';\nimport { isArray } from '@ember/array';\nimport { fn } from '@ember/helper';\n\nimport { NUMERICAL_SELECTORS_TEXT } from './filter-group/numerical.gts';\nimport { DATE_SELECTORS_TEXT } from './filter-group/date.gts';\nimport hdsT from '../../../helpers/hds-t.ts';\nimport HdsTag from '../tag/index.gts';\n\nimport type HdsIntlService from '../../../services/hds-intl.ts';\nimport type {\n HdsFilterBarFilters,\n HdsFilterBarFilter,\n HdsFilterBarFilterType,\n HdsFilterBarData,\n HdsFilterBarGenericFilterData,\n} from './types.ts';\n\nexport interface HdsFilterBarAppliedFiltersSignature {\n Args: {\n filters: HdsFilterBarFilters;\n onFilterDismiss?: (key: string, filterValue?: unknown) => void;\n };\n Element: HTMLDivElement;\n}\n\nexport default class HdsFilterBarAppliedFilters extends Component<HdsFilterBarAppliedFiltersSignature> {\n @service hdsIntl!: HdsIntlService;\n\n private _isArrayFilter = (filter: HdsFilterBarFilter): boolean => {\n return (\n filter.type === 'multi-select' ||\n (filter.type === 'generic' && isArray(filter.data))\n );\n };\n\n private _onFilterDismiss = (key: string, filterValue?: unknown): void => {\n const { onFilterDismiss } = this.args;\n\n if (onFilterDismiss && typeof onFilterDismiss === 'function') {\n onFilterDismiss(key, filterValue);\n }\n };\n\n private _filterData = (\n data: HdsFilterBarData\n ): HdsFilterBarGenericFilterData => {\n const result = {\n value: '',\n } as HdsFilterBarGenericFilterData;\n if ('value' in data) {\n result.value = data.value;\n }\n if ('label' in data) {\n result.label = data.label;\n }\n if ('dismissTagText' in data) {\n result.dismissTagText = data.dismissTagText;\n }\n return result;\n };\n\n private _filterText = (key: string, filter: HdsFilterBarFilter): string => {\n const valueText = this._filterValueText(filter);\n const keyText = this._filterKeyText(key, filter);\n const separatorText = this._filterSeparatorText(filter);\n return `${keyText}${separatorText} ${valueText}`;\n };\n\n private _arrayFilterText = (\n key: string,\n filter: HdsFilterBarFilter,\n item: HdsFilterBarGenericFilterData\n ): string => {\n const keyText = this._filterKeyText(key, filter);\n if (\n filter.type === 'generic' &&\n 'dismissTagText' in item &&\n item.dismissTagText\n ) {\n return `${keyText} ${item.dismissTagText}`;\n } else {\n const valueText = item.label ?? String(item.value);\n return `${keyText}: ${valueText}`;\n }\n };\n\n private _filterValueText = (filter: HdsFilterBarFilter): string => {\n if (filter.type === 'numerical') {\n return this._numericalFilterValueText(filter);\n } else if (\n filter.type === 'date' ||\n filter.type === 'datetime' ||\n filter.type === 'time'\n ) {\n return this._dateFilterValueText(filter);\n } else if (filter.type === 'generic') {\n return this._genericFilterValueText(filter);\n } else {\n const result = this._filterData(filter.data);\n const resultLabel = result?.label as string;\n const resultValue = result?.value as string;\n return resultLabel ?? resultValue;\n }\n };\n\n private _filterKeyText = (key: string, data: HdsFilterBarFilter): string => {\n if (data.text) {\n return data.text;\n } else {\n return key;\n }\n };\n\n private _numericalFilterValueText = (filter: HdsFilterBarFilter): string => {\n const data = filter.data;\n\n if (filter.type === 'numerical' && 'selector' in data && 'value' in data) {\n const selector = data.selector as keyof typeof NUMERICAL_SELECTORS_TEXT;\n if (\n selector === 'between' &&\n typeof data.value === 'object' &&\n data.value !== null\n ) {\n const separatorText = this.hdsIntl.t(\n 'hds.components.filter-bar.tag.numerical-filter.separator',\n {\n default: 'and',\n }\n );\n return `${NUMERICAL_SELECTORS_TEXT[selector]} ${data.value.start} ${separatorText} ${data.value.end}`;\n } else if (typeof data.value !== 'object') {\n return `${NUMERICAL_SELECTORS_TEXT[selector]} ${data.value}`;\n }\n return '';\n } else {\n return '';\n }\n };\n\n private _dateFilterValueText = (filter: HdsFilterBarFilter): string => {\n const data = filter.data;\n\n if (\n (filter.type === 'date' ||\n filter.type === 'datetime' ||\n filter.type === 'time') &&\n 'selector' in data &&\n 'value' in data\n ) {\n const selector = data.selector as keyof typeof DATE_SELECTORS_TEXT;\n if (\n selector === 'between' &&\n typeof data.value === 'object' &&\n data.value !== null\n ) {\n const separatorText = this.hdsIntl.t(\n 'hds.components.filter-bar.tag.date-filter.separator',\n {\n default: 'and',\n }\n );\n const startDateText = this._formatDateFilterText(\n data.value.start as string,\n filter.type\n );\n const endDateText = this._formatDateFilterText(\n data.value.end as string,\n filter.type\n );\n return `${DATE_SELECTORS_TEXT[selector]} ${startDateText} ${separatorText} ${endDateText}`;\n } else if (data.value !== null && typeof data.value !== 'object') {\n const dateText = this._formatDateFilterText(\n data.value as string,\n filter.type\n );\n return `${DATE_SELECTORS_TEXT[selector]} ${dateText}`;\n }\n return '';\n } else {\n return '';\n }\n };\n\n private _formatDateFilterText = (\n dateString: string,\n filterType: HdsFilterBarFilterType\n ): string => {\n let date;\n if (filterType === 'time') {\n date = new Date(`1970-01-01T${dateString}`);\n } else if (filterType === 'date') {\n // Parse YYYY-MM-DD as a local date to avoid timezone shifts\n const m = /^(\\d{4})-(\\d{2})-(\\d{2})$/.exec(dateString);\n if (m) {\n const year = Number(m[1]);\n const month = Number(m[2]) - 1;\n const day = Number(m[3]);\n date = new Date(year, month, day);\n } else {\n date = new Date(dateString);\n }\n } else {\n date = new Date(dateString);\n }\n\n let options = {};\n if (filterType === 'date') {\n options = { dateStyle: 'short' };\n } else if (filterType === 'time') {\n options = { timeStyle: 'short' };\n } else {\n options = { dateStyle: 'short', timeStyle: 'short' };\n }\n\n // Use the intl service if available for consistent localization, and fall back to the native Intl API\n if (this.hdsIntl.intl) {\n return this.hdsIntl.intl.formatDate(date, options);\n } else {\n const newDate = new Intl.DateTimeFormat(undefined, options);\n return newDate.format(date);\n }\n };\n\n private _genericFilterValueText = (filter: HdsFilterBarFilter): string => {\n if ('dismissTagText' in filter) {\n return filter.dismissTagText ?? '';\n } else {\n const result = this._filterData(filter.data);\n const resultLabel = result?.label as string;\n const resultValue = result?.value as string;\n return resultLabel ?? resultValue;\n }\n };\n\n private _arrayFilterData = (\n data: HdsFilterBarData\n ): { value: unknown; label?: string; dismissTagText?: string }[] => {\n if (isArray(data)) {\n return data.map((item) => this._filterData(item));\n }\n return [];\n };\n\n private _filterSeparatorText = (filter: HdsFilterBarFilter): string => {\n return filter.type === 'single-select' ||\n filter.type === 'multi-select' ||\n filter.type === 'search' ||\n (filter.type === 'generic' && !filter.dismissTagText)\n ? ':'\n : '';\n };\n\n <template>\n <div class=\"hds-filter-bar__applied-filters\" ...attributes>\n {{#each-in @filters as |key filter|}}\n {{#if filter.data}}\n {{#if (this._isArrayFilter filter)}}\n {{#each (this._arrayFilterData filter.data) as |item|}}\n <HdsTag\n @text=\"{{this._arrayFilterText key filter item}}\"\n @ariaLabel={{hdsT\n \"hds.components.filter-bar.applied-filters.tag.aria-label\"\n default=\"Clear filter\"\n }}\n @onDismiss={{fn this._onFilterDismiss key item.value}}\n />\n {{/each}}\n {{else}}\n <HdsTag\n @text={{this._filterText key filter}}\n @ariaLabel={{hdsT\n \"hds.components.filter-bar.applied-filters.tag.aria-label\"\n default=\"Clear filter\"\n }}\n @onDismiss={{fn this._onFilterDismiss key}}\n />\n {{/if}}\n {{/if}}\n {{/each-in}}\n </div>\n </template>\n}\n"],"names":["HdsFilterBarAppliedFilters","Component","g","prototype","service","i","_isArrayFilter","filter","type","isArray","data","_onFilterDismiss","key","filterValue","onFilterDismiss","args","_filterData","result","value","label","dismissTagText","_filterText","valueText","_filterValueText","keyText","_filterKeyText","separatorText","_filterSeparatorText","_arrayFilterText","item","String","_numericalFilterValueText","_dateFilterValueText","_genericFilterValueText","resultLabel","resultValue","text","selector","hdsIntl","t","default","NUMERICAL_SELECTORS_TEXT","start","end","startDateText","_formatDateFilterText","endDateText","DATE_SELECTORS_TEXT","dateText","dateString","filterType","date","Date","m","exec","year","Number","month","day","options","dateStyle","timeStyle","intl","formatDate","newDate","Intl","DateTimeFormat","undefined","format","_arrayFilterData","map","setComponentTemplate","precompileTemplate","strictMode","scope","HdsTag","hdsT","fn"],"mappings":";;;;;;;;;;;;AAAA;;;AAGC;AA6Bc,MAAMA,mCAAmCC,SAAA,CAAU;AAAA,EAAA;IAAAC,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,SAAA,EAAA,CAC/DC,OAAA,CAAA,CAAA;AAAA;EAAA,QAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,SAAA,CAAA,EAAA,MAAA;EAEOC,cAAA,GAAkBC,MAAQ,IAA4B;AAC5D,IAAA,OACEA,MAAA,CAAOC,IAAI,KAAK,kBACfD,MAAA,CAAOC,IAAI,KAAK,SAAA,IAAaC,OAAA,CAAQF,MAAA,CAAOG,IAAI,CACnD;EACF,CAAA;AAEQC,EAAAA,gBAAA,GAAmBA,CAACC,GAAW,EAAEC,WAAqB,KAAO;IACnE,MAAM;AAAEC,MAAAA;KAAiB,GAAG,IAAI,CAACC,IAAI;AAErC,IAAA,IAAID,eAAA,IAAmB,OAAOA,eAAA,KAAoB,UAAA,EAAY;AAC5DA,MAAAA,eAAA,CAAgBF,GAAA,EAAKC,WAAA,CAAA;AACvB,IAAA;EACF,CAAA;EAEQG,WAAA,GACNN,IAAM,IACL;AACD,IAAA,MAAMO,MAAA,GAAS;AACbC,MAAAA,KAAA,EAAO;KACJ;IACL,IAAI,WAAWR,IAAA,EAAM;AACnBO,MAAAA,MAAA,CAAOC,KAAK,GAAGR,IAAA,CAAKQ,KAAK;AAC3B,IAAA;IACA,IAAI,WAAWR,IAAA,EAAM;AACnBO,MAAAA,MAAA,CAAOE,KAAK,GAAGT,IAAA,CAAKS,KAAK;AAC3B,IAAA;IACA,IAAI,oBAAoBT,IAAA,EAAM;AAC5BO,MAAAA,MAAA,CAAOG,cAAc,GAAGV,IAAA,CAAKU,cAAc;AAC7C,IAAA;AACA,IAAA,OAAOH,MAAA;EACT,CAAA;AAEQI,EAAAA,cAAcA,CAACT,GAAW,EAAEL,WAAmC;AACrE,IAAA,MAAMe,SAAA,GAAY,IAAI,CAACC,gBAAgB,CAAChB,MAAA,CAAA;IACxC,MAAMiB,OAAA,GAAU,IAAI,CAACC,cAAc,CAACb,GAAA,EAAKL,MAAA,CAAA;AACzC,IAAA,MAAMmB,aAAA,GAAgB,IAAI,CAACC,oBAAoB,CAACpB,MAAA,CAAA;AAChD,IAAA,OAAO,GAAGiB,OAAA,CAAA,EAAUE,iBAAiBJ,WAAW;EAClD,CAAA;AAEQM,EAAAA,gBAAA,GAAmBA,CACzBhB,GAAW,EACXL,MAAQ,EACRsB,IAAM,KACC;IACP,MAAML,OAAA,GAAU,IAAI,CAACC,cAAc,CAACb,GAAA,EAAKL,MAAA,CAAA;AACzC,IAAA,IACEA,MAAA,CAAOC,IAAI,KAAK,SAAA,IAChB,oBAAoBqB,IAAA,IACpBA,IAAA,CAAKT,cAAc,EACnB;AACA,MAAA,OAAO,GAAGI,OAAA,CAAA,CAAA,EAAWK,IAAA,CAAKT,cAAc,CAAA,CAAE;AAC5C,IAAA,CAAA,MAAO;MACL,MAAME,YAAYO,IAAA,CAAKV,KAAK,IAAIW,MAAA,CAAOD,KAAKX,KAAK,CAAA;AACjD,MAAA,OAAO,CAAA,EAAGM,OAAA,CAAA,EAAA,EAAYF,WAAW;AACnC,IAAA;EACF,CAAA;EAEQC,gBAAA,GAAoBhB,MAAQ,IAA2B;AAC7D,IAAA,IAAIA,MAAA,CAAOC,IAAI,KAAK,WAAA,EAAa;AAC/B,MAAA,OAAO,IAAI,CAACuB,yBAAyB,CAACxB,MAAA,CAAA;AACxC,IAAA,CAAA,MAAO,IACLA,MAAA,CAAOC,IAAI,KAAK,MAAA,IAChBD,MAAA,CAAOC,IAAI,KAAK,UAAA,IAChBD,MAAA,CAAOC,IAAI,KAAK,MAAA,EAChB;AACA,MAAA,OAAO,IAAI,CAACwB,oBAAoB,CAACzB,MAAA,CAAA;AACnC,IAAA,CAAA,MAAO,IAAIA,MAAA,CAAOC,IAAI,KAAK,SAAA,EAAW;AACpC,MAAA,OAAO,IAAI,CAACyB,uBAAuB,CAAC1B,MAAA,CAAA;AACtC,IAAA,CAAA,MAAO;MACL,MAAMU,SAAS,IAAI,CAACD,WAAW,CAACT,OAAOG,IAAI,CAAA;AAC3C,MAAA,MAAMwB,WAAA,GAAcjB,MAAA,EAAQE,KAAe;AAC3C,MAAA,MAAMgB,WAAA,GAAclB,MAAA,EAAQC,KAAe;MAC3C,OAAOgB,WAAA,IAAeC,WAAA;AACxB,IAAA;EACF,CAAA;AAEQV,EAAAA,iBAAiBA,CAACb,GAAW,EAAEF,SAAiC;IACtE,IAAIA,IAAA,CAAK0B,IAAI,EAAE;MACb,OAAO1B,KAAK0B,IAAI;AAClB,IAAA,CAAA,MAAO;AACL,MAAA,OAAOxB,GAAA;AACT,IAAA;EACF,CAAA;EAEQmB,yBAAA,GAA6BxB,MAAQ,IAA2B;AACtE,IAAA,MAAMG,IAAA,GAAOH,OAAOG,IAAI;AAExB,IAAA,IAAIH,OAAOC,IAAI,KAAK,eAAe,UAAA,IAAcE,IAAA,IAAQ,WAAWA,IAAA,EAAM;AACxE,MAAA,MAAM2B,QAAA,GAAW3B,IAAA,CAAK2B,QAAyB;AAC/C,MAAA,IACEA,QAAA,KAAa,SAAA,IACb,OAAO3B,IAAA,CAAKQ,KAAK,KAAK,QAAA,IACtBR,IAAA,CAAKQ,KAAK,KAAK,IAAA,EACf;QACA,MAAMQ,gBAAgB,IAAI,CAACY,OAAO,CAACC,CAAC,CAClC,0DAAA,EACA;AACEC,UAAAA,OAAA,EAAS;AACX,SAAA,CAAA;AAEF,QAAA,OAAO,GAAGC,wBAAwB,CAACJ,SAAS,CAAA,CAAA,EAAI3B,IAAA,CAAKQ,KAAK,CAACwB,KAAK,CAAA,CAAA,EAAIhB,aAAA,CAAA,CAAA,EAAiBhB,KAAKQ,KAAK,CAACyB,GAAG,CAAA,CAAE;MACvG,CAAA,MAAO,IAAI,OAAOjC,IAAA,CAAKQ,KAAK,KAAK,QAAA,EAAU;QACzC,OAAO,CAAA,EAAGuB,wBAAwB,CAACJ,QAAA,CAAS,CAAA,CAAA,EAAI3B,IAAA,CAAKQ,KAAK,CAAA,CAAE;AAC9D,MAAA;AACA,MAAA,OAAO,EAAA;AACT,IAAA,CAAA,MAAO;AACL,MAAA,OAAO,EAAA;AACT,IAAA;EACF,CAAA;EAEQc,oBAAA,GAAwBzB,MAAQ,IAA2B;AACjE,IAAA,MAAMG,IAAA,GAAOH,OAAOG,IAAI;IAExB,IACE,CAACH,MAAA,CAAOC,IAAI,KAAK,MAAA,IACfD,OAAOC,IAAI,KAAK,UAAA,IAChBD,MAAA,CAAOC,IAAI,KAAK,MAAM,KACxB,UAAA,IAAcE,IAAA,IACd,WAAWA,IAAA,EACX;AACA,MAAA,MAAM2B,QAAA,GAAW3B,IAAA,CAAK2B,QAAyB;AAC/C,MAAA,IACEA,QAAA,KAAa,SAAA,IACb,OAAO3B,IAAA,CAAKQ,KAAK,KAAK,QAAA,IACtBR,IAAA,CAAKQ,KAAK,KAAK,IAAA,EACf;QACA,MAAMQ,gBAAgB,IAAI,CAACY,OAAO,CAACC,CAAC,CAClC,qDAAA,EACA;AACEC,UAAAA,OAAA,EAAS;AACX,SAAA,CAAA;AAEF,QAAA,MAAMI,aAAA,GAAgB,IAAI,CAACC,qBAAqB,CAC9CnC,IAAA,CAAKQ,KAAK,CAACwB,KAAK,EAChBnC,OAAOC,IAAI,CAAA;AAEb,QAAA,MAAMsC,WAAA,GAAc,IAAI,CAACD,qBAAqB,CAC5CnC,IAAA,CAAKQ,KAAK,CAACyB,GAAG,EACdpC,OAAOC,IAAI,CAAA;QAEb,OAAO,CAAA,EAAGuC,mBAAmB,CAACV,SAAS,CAAA,CAAA,EAAIO,aAAA,CAAA,CAAA,EAAiBlB,aAAA,CAAA,CAAA,EAAiBoB,aAAa;AAC5F,MAAA,CAAA,MAAO,IAAIpC,KAAKQ,KAAK,KAAK,QAAQ,OAAOR,IAAA,CAAKQ,KAAK,KAAK,QAAA,EAAU;AAChE,QAAA,MAAM8B,QAAA,GAAW,IAAI,CAACH,qBAAqB,CACzCnC,IAAA,CAAKQ,KAAK,EACVX,MAAA,CAAOC,IAAI,CAAA;AAEb,QAAA,OAAO,GAAGuC,mBAAmB,CAACV,SAAS,CAAA,CAAA,EAAIW,QAAA,CAAA,CAAU;AACvD,MAAA;AACA,MAAA,OAAO,EAAA;AACT,IAAA,CAAA,MAAO;AACL,MAAA,OAAO,EAAA;AACT,IAAA;EACF,CAAA;AAEQH,EAAAA,wBAAwBA,CAC9BI,UAAkB,EAClBC,eACO;AACP,IAAA,IAAIC,IAAA;IACJ,IAAID,eAAe,MAAA,EAAQ;AACzBC,MAAAA,IAAA,GAAO,IAAIC,IAAA,CAAK,CAAA,WAAA,EAAcH,YAAY,CAAA;AAC5C,IAAA,CAAA,MAAO,IAAIC,eAAe,MAAA,EAAQ;AAChC;AACA,MAAA,MAAMG,CAAA,GAAI,2BAAA,CAA4BC,IAAI,CAACL,UAAA,CAAA;AAC3C,MAAA,IAAII,CAAA,EAAG;QACL,MAAME,IAAA,GAAOC,MAAA,CAAOH,CAAC,CAAC,CAAA,CAAE,CAAA;QACxB,MAAMI,KAAA,GAAQD,MAAA,CAAOH,CAAC,CAAC,EAAE,CAAA,GAAI,CAAA;QAC7B,MAAMK,GAAA,GAAMF,MAAA,CAAOH,CAAC,CAAC,CAAA,CAAE,CAAA;QACvBF,IAAA,GAAO,IAAIC,IAAA,CAAKG,IAAA,EAAME,KAAA,EAAOC,GAAA,CAAA;AAC/B,MAAA,CAAA,MAAO;AACLP,QAAAA,IAAA,GAAO,IAAIC,IAAA,CAAKH,UAAA,CAAA;AAClB,MAAA;AACF,IAAA,CAAA,MAAO;AACLE,MAAAA,IAAA,GAAO,IAAIC,IAAA,CAAKH,UAAA,CAAA;AAClB,IAAA;IAEA,IAAIU,UAAU,EAAC;IACf,IAAIT,eAAe,MAAA,EAAQ;AACzBS,MAAAA,OAAA,GAAU;AAAEC,QAAAA,SAAA,EAAW;OAAQ;AACjC,IAAA,CAAA,MAAO,IAAIV,eAAe,MAAA,EAAQ;AAChCS,MAAAA,OAAA,GAAU;AAAEE,QAAAA,SAAA,EAAW;OAAQ;AACjC,IAAA,CAAA,MAAO;AACLF,MAAAA,OAAA,GAAU;AAAEC,QAAAA,SAAA,EAAW,OAAA;AAASC,QAAAA,SAAA,EAAW;OAAQ;AACrD,IAAA;AAEA;AACA,IAAA,IAAI,IAAI,CAACvB,OAAO,CAACwB,IAAI,EAAE;MACrB,OAAO,IAAI,CAACxB,OAAO,CAACwB,IAAI,CAACC,UAAU,CAACZ,IAAA,EAAMQ,OAAA,CAAA;AAC5C,IAAA,CAAA,MAAO;MACL,MAAMK,OAAA,GAAU,IAAIC,IAAA,CAAKC,cAAc,CAACC,SAAA,EAAWR,OAAA,CAAA;AACnD,MAAA,OAAOK,OAAA,CAAQI,MAAM,CAACjB,IAAA,CAAA;AACxB,IAAA;EACF,CAAA;EAEQlB,uBAAA,GAA2B1B,MAAQ,IAA2B;IACpE,IAAI,oBAAoBA,MAAA,EAAQ;AAC9B,MAAA,OAAOA,MAAA,CAAOa,cAAc,IAAI,EAAA;AAClC,IAAA,CAAA,MAAO;MACL,MAAMH,SAAS,IAAI,CAACD,WAAW,CAACT,OAAOG,IAAI,CAAA;AAC3C,MAAA,MAAMwB,WAAA,GAAcjB,MAAA,EAAQE,KAAe;AAC3C,MAAA,MAAMgB,WAAA,GAAclB,MAAA,EAAQC,KAAe;MAC3C,OAAOgB,WAAA,IAAeC,WAAA;AACxB,IAAA;EACF,CAAA;EAEQkC,gBAAA,GACN3D,IAAM;AAEN,IAAA,IAAID,QAAQC,IAAA,CAAA,EAAO;AACjB,MAAA,OAAOA,IAAA,CAAK4D,GAAG,CAAEzC,QAAS,IAAI,CAACb,WAAW,CAACa,IAAA,CAAA,CAAA;AAC7C,IAAA;AACA,IAAA,OAAO,EAAE;EACX,CAAA;EAEQF,oBAAA,GAAwBpB,MAAQ,IAA2B;AACjE,IAAA,OAAOA,MAAA,CAAOC,IAAI,KAAK,eAAA,IACrBD,OAAOC,IAAI,KAAK,kBAChBD,MAAA,CAAOC,IAAI,KAAK,QAAA,IACfD,OAAOC,IAAI,KAAK,aAAa,CAACD,MAAA,CAAOa,cAAc,GAClD,GAAA,GACA,EAAA;EACN,CAAA;AAEA,EAAA;IAAAmD,oBAAA,CAAAC,kBAAA,CAAA,gwBAAA,EA4BA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,MAAA;cAAAC,UAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
|
|
1
|
+
{"version":3,"file":"applied-filters.js","sources":["../../../../src/components/hds/filter-bar/applied-filters.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2026\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { service } from '@ember/service';\nimport { isArray } from '@ember/array';\nimport { fn } from '@ember/helper';\n\nimport { NUMERICAL_SELECTORS_TEXT } from './filter-group/numerical.gts';\nimport { DATE_SELECTORS_TEXT } from './filter-group/date.gts';\nimport hdsT from '../../../helpers/hds-t.ts';\nimport HdsTag from '../tag/index.gts';\n\nimport type HdsIntlService from '../../../services/hds-intl.ts';\nimport type {\n HdsFilterBarFilters,\n HdsFilterBarFilter,\n HdsFilterBarFilterType,\n HdsFilterBarData,\n HdsFilterBarGenericFilterData,\n} from './types.ts';\n\nexport interface HdsFilterBarAppliedFiltersSignature {\n Args: {\n filters: HdsFilterBarFilters;\n onFilterDismiss?: (key: string, filterValue?: unknown) => void;\n };\n Element: HTMLDivElement;\n}\n\nexport default class HdsFilterBarAppliedFilters extends Component<HdsFilterBarAppliedFiltersSignature> {\n @service hdsIntl!: HdsIntlService;\n\n private _isArrayFilter = (filter: HdsFilterBarFilter): boolean => {\n return (\n filter.type === 'multi-select' ||\n (filter.type === 'generic' && isArray(filter.data))\n );\n };\n\n private _onFilterDismiss = (key: string, filterValue?: unknown): void => {\n const { onFilterDismiss } = this.args;\n\n if (onFilterDismiss && typeof onFilterDismiss === 'function') {\n onFilterDismiss(key, filterValue);\n }\n };\n\n private _filterData = (\n data: HdsFilterBarData\n ): HdsFilterBarGenericFilterData => {\n const result = {\n value: '',\n } as HdsFilterBarGenericFilterData;\n if ('value' in data) {\n result.value = data.value;\n }\n if ('label' in data) {\n result.label = data.label;\n }\n if ('dismissTagText' in data) {\n result.dismissTagText = data.dismissTagText;\n }\n return result;\n };\n\n private _filterText = (key: string, filter: HdsFilterBarFilter): string => {\n const valueText = this._filterValueText(filter);\n const keyText = this._filterKeyText(key, filter);\n const separatorText = this._filterSeparatorText(filter);\n return `${keyText}${separatorText} ${valueText}`;\n };\n\n private _arrayFilterText = (\n key: string,\n filter: HdsFilterBarFilter,\n item: HdsFilterBarGenericFilterData\n ): string => {\n const keyText = this._filterKeyText(key, filter);\n if (\n filter.type === 'generic' &&\n 'dismissTagText' in item &&\n item.dismissTagText\n ) {\n return `${keyText} ${item.dismissTagText}`;\n } else {\n const valueText = item.label ?? String(item.value);\n return `${keyText}: ${valueText}`;\n }\n };\n\n private _filterValueText = (filter: HdsFilterBarFilter): string => {\n if (filter.type === 'numerical') {\n return this._numericalFilterValueText(filter);\n } else if (\n filter.type === 'date' ||\n filter.type === 'datetime' ||\n filter.type === 'time'\n ) {\n return this._dateFilterValueText(filter);\n } else if (filter.type === 'generic') {\n return this._genericFilterValueText(filter);\n } else {\n const result = this._filterData(filter.data);\n const resultLabel = result?.label as string;\n const resultValue = result?.value as string;\n return resultLabel ?? resultValue;\n }\n };\n\n private _filterKeyText = (key: string, data: HdsFilterBarFilter): string => {\n if (data.text) {\n return data.text;\n } else {\n return key;\n }\n };\n\n private _numericalFilterValueText = (filter: HdsFilterBarFilter): string => {\n const data = filter.data;\n\n if (filter.type === 'numerical' && 'selector' in data && 'value' in data) {\n const selector = data.selector as keyof typeof NUMERICAL_SELECTORS_TEXT;\n if (\n selector === 'between' &&\n typeof data.value === 'object' &&\n data.value !== null\n ) {\n const separatorText = this.hdsIntl.t(\n 'hds.components.filter-bar.tag.numerical-filter.separator',\n {\n default: 'and',\n }\n );\n return `${NUMERICAL_SELECTORS_TEXT[selector]} ${data.value.start} ${separatorText} ${data.value.end}`;\n } else if (typeof data.value !== 'object') {\n return `${NUMERICAL_SELECTORS_TEXT[selector]} ${data.value}`;\n }\n return '';\n } else {\n return '';\n }\n };\n\n private _dateFilterValueText = (filter: HdsFilterBarFilter): string => {\n const data = filter.data;\n\n if (\n (filter.type === 'date' ||\n filter.type === 'datetime' ||\n filter.type === 'time') &&\n 'selector' in data &&\n 'value' in data\n ) {\n const selector = data.selector as keyof typeof DATE_SELECTORS_TEXT;\n if (\n selector === 'between' &&\n typeof data.value === 'object' &&\n data.value !== null\n ) {\n const separatorText = this.hdsIntl.t(\n 'hds.components.filter-bar.tag.date-filter.separator',\n {\n default: 'and',\n }\n );\n const startDateText = this._formatDateFilterText(\n data.value.start as string,\n filter.type\n );\n const endDateText = this._formatDateFilterText(\n data.value.end as string,\n filter.type\n );\n return `${DATE_SELECTORS_TEXT[selector]} ${startDateText} ${separatorText} ${endDateText}`;\n } else if (data.value !== null && typeof data.value !== 'object') {\n const dateText = this._formatDateFilterText(\n data.value as string,\n filter.type\n );\n return `${DATE_SELECTORS_TEXT[selector]} ${dateText}`;\n }\n return '';\n } else {\n return '';\n }\n };\n\n private _formatDateFilterText = (\n dateString: string,\n filterType: HdsFilterBarFilterType\n ): string => {\n let date;\n if (filterType === 'time') {\n date = new Date(`1970-01-01T${dateString}`);\n } else if (filterType === 'date') {\n // Parse YYYY-MM-DD as a local date to avoid timezone shifts\n const m = /^(\\d{4})-(\\d{2})-(\\d{2})$/.exec(dateString);\n if (m) {\n const year = Number(m[1]);\n const month = Number(m[2]) - 1;\n const day = Number(m[3]);\n date = new Date(year, month, day);\n } else {\n date = new Date(dateString);\n }\n } else {\n date = new Date(dateString);\n }\n\n let options = {};\n if (filterType === 'date') {\n options = { dateStyle: 'short' };\n } else if (filterType === 'time') {\n options = { timeStyle: 'short' };\n } else {\n options = { dateStyle: 'short', timeStyle: 'short' };\n }\n\n // Use the intl service if available for consistent localization, and fall back to the native Intl API\n if (this.hdsIntl.intl) {\n return this.hdsIntl.intl.formatDate(date, options);\n } else {\n const newDate = new Intl.DateTimeFormat(undefined, options);\n return newDate.format(date);\n }\n };\n\n private _genericFilterValueText = (filter: HdsFilterBarFilter): string => {\n if ('dismissTagText' in filter) {\n return filter.dismissTagText ?? '';\n } else {\n const result = this._filterData(filter.data);\n const resultLabel = result?.label as string;\n const resultValue = result?.value as string;\n return resultLabel ?? resultValue;\n }\n };\n\n private _arrayFilterData = (\n data: HdsFilterBarData\n ): { value: unknown; label?: string; dismissTagText?: string }[] => {\n if (isArray(data)) {\n return data.map((item) => this._filterData(item));\n }\n return [];\n };\n\n private _filterSeparatorText = (filter: HdsFilterBarFilter): string => {\n return filter.type === 'single-select' ||\n filter.type === 'multi-select' ||\n filter.type === 'search' ||\n (filter.type === 'generic' && !filter.dismissTagText)\n ? ':'\n : '';\n };\n\n <template>\n <div class=\"hds-filter-bar__applied-filters\" ...attributes>\n {{#each-in @filters as |key filter|}}\n {{#if filter.data}}\n {{#if (this._isArrayFilter filter)}}\n {{#each (this._arrayFilterData filter.data) as |item|}}\n <HdsTag\n @text=\"{{this._arrayFilterText key filter item}}\"\n @ariaLabel={{hdsT\n \"hds.components.filter-bar.applied-filters.tag.aria-label\"\n default=\"Clear filter\"\n }}\n @onDismiss={{fn this._onFilterDismiss key item.value}}\n />\n {{/each}}\n {{else}}\n <HdsTag\n @text={{this._filterText key filter}}\n @ariaLabel={{hdsT\n \"hds.components.filter-bar.applied-filters.tag.aria-label\"\n default=\"Clear filter\"\n }}\n @onDismiss={{fn this._onFilterDismiss key}}\n />\n {{/if}}\n {{/if}}\n {{/each-in}}\n </div>\n </template>\n}\n"],"names":["HdsFilterBarAppliedFilters","Component","g","prototype","service","i","_isArrayFilter","filter","type","isArray","data","_onFilterDismiss","key","filterValue","onFilterDismiss","args","_filterData","result","value","label","dismissTagText","_filterText","valueText","_filterValueText","keyText","_filterKeyText","separatorText","_filterSeparatorText","_arrayFilterText","item","String","_numericalFilterValueText","_dateFilterValueText","_genericFilterValueText","resultLabel","resultValue","text","selector","hdsIntl","t","default","NUMERICAL_SELECTORS_TEXT","start","end","startDateText","_formatDateFilterText","endDateText","DATE_SELECTORS_TEXT","dateText","dateString","filterType","date","Date","m","exec","year","Number","month","day","options","dateStyle","timeStyle","intl","formatDate","newDate","Intl","DateTimeFormat","undefined","format","_arrayFilterData","map","setComponentTemplate","precompileTemplate","strictMode","scope","HdsTag","hdsT","fn"],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@ import { precompileTemplate } from '@ember/template-compilation';
|
|
|
7
7
|
import { setComponentTemplate } from '@ember/component';
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
|
-
* Copyright
|
|
10
|
+
* Copyright IBM Corp. 2021, 2026
|
|
11
11
|
* SPDX-License-Identifier: MPL-2.0
|
|
12
12
|
*/
|
|
13
13
|
class HdsFilterBarFilterGroupCheckbox extends Component {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkbox.js","sources":["../../../../../src/components/hds/filter-bar/filter-group/checkbox.gts"],"sourcesContent":["/**\n * Copyright
|
|
1
|
+
{"version":3,"file":"checkbox.js","sources":["../../../../../src/components/hds/filter-bar/filter-group/checkbox.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2026\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { guidFor } from '@ember/object/internals';\nimport { on } from '@ember/modifier';\n\nimport HdsFormCheckboxBase from '../../form/checkbox/base.gts';\nimport HdsTextBody from '../../text/body.gts';\n\nimport type { HdsFilterBarFilter } from '../types.ts';\n\nexport interface HdsFilterBarFilterGroupCheckboxSignature {\n Args: {\n value: string;\n label: string;\n name: string;\n searchValue?: string;\n keyFilter?: HdsFilterBarFilter;\n onChange?: (event: Event, label?: string) => void;\n };\n Blocks: {\n default: [];\n };\n Element: HTMLLabelElement;\n}\n\nexport default class HdsFilterBarFilterGroupCheckbox extends Component<HdsFilterBarFilterGroupCheckboxSignature> {\n private _elementId = 'checkbox' + guidFor(this);\n\n get isChecked(): boolean {\n const { keyFilter, value } = this.args;\n if (keyFilter && Array.isArray(keyFilter.data)) {\n return keyFilter.data.some((filter) => filter.value === value);\n }\n return false;\n }\n\n get isHidden(): boolean {\n const { searchValue, label } = this.args;\n if (searchValue && searchValue.length > 0) {\n return !label.toLowerCase().includes(searchValue.toLowerCase());\n }\n return false;\n }\n\n get classNames(): string {\n const classes = [\n 'hds-filter-bar__filter-group__checkbox',\n 'hds-filter-bar__filter-group__selection-option',\n 'hds-typography-body-200',\n ];\n\n if (this.isHidden) {\n classes.push(`hds-filter-bar__filter-group__selection-option--hidden`);\n }\n\n return classes.join(' ');\n }\n\n onChange = (event: Event): void => {\n const { onChange, label } = this.args;\n if (onChange && typeof onChange === 'function') {\n onChange(event, label);\n }\n };\n\n <template>\n <label class={{this.classNames}} ...attributes for={{this._elementId}}>\n <HdsFormCheckboxBase\n class=\"hds-filter-bar__filter-group__selection-option__control\"\n id={{this._elementId}}\n name={{@name}}\n checked={{this.isChecked}}\n @value={{@value}}\n {{on \"change\" this.onChange}}\n />\n <HdsTextBody\n @tag=\"span\"\n @size=\"200\"\n @weight=\"medium\"\n class=\"hds-filter-bar__filter-group__selection-option__text-content\"\n >{{@label}}</HdsTextBody>\n </label>\n </template>\n}\n"],"names":["HdsFilterBarFilterGroupCheckbox","Component","_elementId","guidFor","isChecked","keyFilter","value","args","Array","isArray","data","some","filter","isHidden","searchValue","label","length","toLowerCase","includes","classNames","classes","push","join","onChange","event","setComponentTemplate","precompileTemplate","strictMode","scope","HdsFormCheckboxBase","on","HdsTextBody"],"mappings":";;;;;;;;AAAA;;;AAGC;AA0Bc,MAAMA,wCAAwCC,SAAA,CAAU;AAC7DC,EAAAA,UAAA,GAAa,UAAA,GAAaC,OAAA,CAAQ,IAAI,CAAA;EAE9C,IAAIC,SAAAA,GAAqB;IACvB,MAAM;MAAEC,SAAS;AAAEC,MAAAA;KAAO,GAAG,IAAI,CAACC,IAAI;IACtC,IAAIF,aAAaG,KAAA,CAAMC,OAAO,CAACJ,SAAA,CAAUK,IAAI,CAAA,EAAG;AAC9C,MAAA,OAAOL,SAAA,CAAUK,IAAI,CAACC,IAAI,CAAEC,MAAA,IAAWA,MAAA,CAAON,KAAK,KAAKA,KAAA,CAAA;AAC1D,IAAA;AACA,IAAA,OAAO,KAAA;AACT,EAAA;EAEA,IAAIO,QAAAA,GAAoB;IACtB,MAAM;MAAEC,WAAW;AAAEC,MAAAA;KAAO,GAAG,IAAI,CAACR,IAAI;AACxC,IAAA,IAAIO,WAAA,IAAeA,WAAA,CAAYE,MAAM,GAAG,CAAA,EAAG;AACzC,MAAA,OAAO,CAACD,KAAA,CAAME,WAAW,GAAGC,QAAQ,CAACJ,YAAYG,WAAW,EAAA,CAAA;AAC9D,IAAA;AACA,IAAA,OAAO,KAAA;AACT,EAAA;EAEA,IAAIE,UAAAA,GAAqB;IACvB,MAAMC,OAAA,GAAU,CACd,wCAAA,EACA,gDAAA,EACA,yBAAA,CACD;IAED,IAAI,IAAI,CAACP,QAAQ,EAAE;AACjBO,MAAAA,OAAA,CAAQC,IAAI,CAAC,CAAA,sDAAA,CAAwD,CAAA;AACvE,IAAA;AAEA,IAAA,OAAOD,OAAA,CAAQE,IAAI,CAAC,GAAA,CAAA;AACtB,EAAA;EAEAC,QAAA,GAAYC,KAAO,IAAY;IAC7B,MAAM;MAAED,QAAQ;AAAER,MAAAA;KAAO,GAAG,IAAI,CAACR,IAAI;AACrC,IAAA,IAAIgB,QAAA,IAAY,OAAOA,QAAA,KAAa,UAAA,EAAY;AAC9CA,MAAAA,QAAA,CAASC,KAAA,EAAOT,KAAA,CAAA;AAClB,IAAA;EACF,CAAA;AAEA,EAAA;IAAAU,oBAAA,CAAAC,kBAAA,CAAA,kcAAA,EAiBA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,mBAAA;QAAAC,EAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clear-button.js","sources":["../../../../../src/components/hds/filter-bar/filter-group/clear-button.gts"],"sourcesContent":["/**\n * Copyright
|
|
1
|
+
{"version":3,"file":"clear-button.js","sources":["../../../../../src/components/hds/filter-bar/filter-group/clear-button.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2026\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport type { TemplateOnlyComponent } from '@ember/component/template-only';\n\nimport HdsButton from '../../button/index.gts';\n\nimport type { HdsButtonSignature } from '../../button/index.gts';\n\nexport interface HdsFilterBarFilterGroupClearButtonSignature {\n Args: {\n text: string;\n };\n Blocks: {\n default: [];\n };\n Element: HdsButtonSignature['Element'];\n}\n\nconst HdsFilterBarFilterGroupClearButton: TemplateOnlyComponent<HdsFilterBarFilterGroupClearButtonSignature> =\n <template>\n <HdsButton\n @text={{@text}}\n @color=\"tertiary\"\n @size=\"small\"\n @icon=\"rotate-ccw\"\n ...attributes\n class=\"hds-filter-bar__filter-group__clear-button\"\n />\n </template>;\n\nexport default HdsFilterBarFilterGroupClearButton;\n"],"names":["HdsFilterBarFilterGroupClearButton","setComponentTemplate","precompileTemplate","strictMode","scope","HdsButton","templateOnly"],"mappings":";;;;;AAAA;;;AAGC;;AAkBD,MAAMA,kCAA0D,GAAAC,oBAAA,CAC9DC,kBAAA,CAAA,2JAAA,EASA;EAAAC,UAAA,EAAA,IAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;AAAAC,IAAAA;AAAA,GAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA;;;;"}
|
|
@@ -16,7 +16,7 @@ import { setComponentTemplate } from '@ember/component';
|
|
|
16
16
|
import { g, i } from 'decorator-transforms/runtime';
|
|
17
17
|
|
|
18
18
|
/**
|
|
19
|
-
* Copyright
|
|
19
|
+
* Copyright IBM Corp. 2021, 2026
|
|
20
20
|
* SPDX-License-Identifier: MPL-2.0
|
|
21
21
|
*/
|
|
22
22
|
const DATE_SELECTORS = Object.values(HdsFilterBarDateFilterSelectorValues);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"date.js","sources":["../../../../../src/components/hds/filter-bar/filter-group/date.gts"],"sourcesContent":["/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { guidFor } from '@ember/object/internals';\nimport { service } from '@ember/service';\nimport { on } from '@ember/modifier';\nimport { concat, fn } from '@ember/helper';\nimport { eq } from 'ember-truth-helpers';\n\nimport hdsT from '../../../../helpers/hds-t.ts';\nimport HdsFormSelectField from '../../form/select/field.gts';\nimport HdsFormTextInputBase from '../../form/text-input/base.gts';\nimport HdsLayoutFlex from '../../layout/flex/index.gts';\nimport HdsFilterBarFilterGroupGeneric from './generic.gts';\n\nimport type { HdsFilterBarFilterGroupGenericSignature } from './generic.gts';\nimport type HdsIntlService from '../../../../services/hds-intl.ts';\nimport type { HdsFormTextInputTypes } from '../../form/text-input/types.ts';\n\nimport type {\n HdsFilterBarFilter,\n HdsFilterBarDateFilterData,\n HdsFilterBarDateFilterSelector,\n HdsFilterBarFilterGroupDateType,\n} from '../types.ts';\nimport {\n HdsFilterBarDateFilterSelectorValues,\n HdsFilterBarFilterGroupDateTypeValues,\n} from '../types.ts';\n\nexport const DATE_SELECTORS: HdsFilterBarDateFilterSelector[] = Object.values(\n HdsFilterBarDateFilterSelectorValues\n);\n\nexport const DATE_SELECTORS_TEXT: Record<\n HdsFilterBarDateFilterSelector,\n string\n> = {\n [HdsFilterBarDateFilterSelectorValues.before]: 'before',\n [HdsFilterBarDateFilterSelectorValues.exactly]: 'exactly',\n [HdsFilterBarDateFilterSelectorValues.after]: 'after',\n [HdsFilterBarDateFilterSelectorValues.between]: 'between',\n};\n\nexport const DATE_SELECTORS_INPUT_TEXT: Record<\n HdsFilterBarDateFilterSelector,\n string\n> = {\n [HdsFilterBarDateFilterSelectorValues.before]: 'Before',\n [HdsFilterBarDateFilterSelectorValues.exactly]: 'Exactly',\n [HdsFilterBarDateFilterSelectorValues.after]: 'After',\n [HdsFilterBarDateFilterSelectorValues.between]: 'Between',\n};\n\nexport const DATE_FILTER_GROUP_TYPES: HdsFilterBarFilterGroupDateType[] =\n Object.values(HdsFilterBarFilterGroupDateTypeValues);\n\nexport interface HdsFilterBarFilterGroupDateSignature {\n Args: {\n key: string;\n keyFilter?: HdsFilterBarFilter;\n type?: HdsFilterBarFilterGroupDateType;\n text?: string;\n onChange?: (filter: HdsFilterBarFilter) => void;\n };\n Blocks: {\n default: [];\n };\n Element: HdsFilterBarFilterGroupGenericSignature['Element'];\n}\n\nexport default class HdsFilterBarFilterGroupDate extends Component<HdsFilterBarFilterGroupDateSignature> {\n @service hdsIntl!: HdsIntlService;\n\n @tracked private _selectorInputValue:\n | HdsFilterBarDateFilterSelector\n | undefined;\n @tracked private _valueInputValue: string | undefined;\n @tracked private _betweenValueStartInputValue: string | undefined;\n @tracked private _betweenValueEndInputValue: string | undefined;\n\n private _selectorValues = DATE_SELECTORS;\n private _selectorInputId = 'selector-input-' + guidFor(this);\n private _valueInputId = 'value-input-' + guidFor(this);\n private _betweenValueStartInputId =\n 'between-value-start-input-' + guidFor(this);\n private _betweenValueEndInputId = 'between-value-end-input-' + guidFor(this);\n\n get type(): 'date' | 'time' | 'datetime' {\n return this.args.type || 'date';\n }\n\n get inputType(): HdsFormTextInputTypes {\n if (this.type === 'datetime') {\n return 'datetime-local';\n }\n return this.type;\n }\n\n get selectorLabelText(): string {\n return this.hdsIntl.t(\n `hds.components.filter-bar.filter-group.date.${this.type}.label`,\n {\n default: 'Date is',\n }\n );\n }\n\n get keyFilterData(): HdsFilterBarDateFilterData | undefined {\n const { keyFilter } = this.args;\n if (\n keyFilter &&\n (keyFilter.type === 'date' ||\n keyFilter.type === 'time' ||\n keyFilter.type === 'datetime')\n ) {\n return keyFilter.data;\n }\n return undefined;\n }\n\n get selector(): HdsFilterBarDateFilterSelector | undefined {\n if (this._selectorInputValue !== undefined) {\n return this._selectorInputValue;\n } else if (this.keyFilterData) {\n return this.keyFilterData.selector;\n }\n }\n\n get value(): string | undefined {\n if (this._valueInputValue !== undefined) {\n return this._valueInputValue;\n } else if (this.keyFilterData) {\n if (this.keyFilterData.selector !== 'between') {\n return this.keyFilterData.value as string;\n }\n }\n }\n\n get betweenValueStart(): string | undefined {\n if (this._betweenValueStartInputValue !== undefined) {\n return this._betweenValueStartInputValue;\n } else if (this.keyFilterData) {\n if (\n this.keyFilterData.selector === 'between' &&\n typeof this.keyFilterData.value === 'object'\n ) {\n return this.keyFilterData.value.start;\n }\n }\n }\n\n get betweenValueEnd(): string | undefined {\n if (this._betweenValueEndInputValue !== undefined) {\n return this._betweenValueEndInputValue;\n } else if (this.keyFilterData) {\n if (\n this.keyFilterData.selector === 'between' &&\n typeof this.keyFilterData.value === 'object'\n ) {\n return this.keyFilterData.value.end;\n }\n }\n }\n\n onSelectorChange = (\n updateFilter: (filter: HdsFilterBarFilter) => void,\n event: Event\n ): void => {\n const select = event.target as HTMLSelectElement;\n this._selectorInputValue = select.value as HdsFilterBarDateFilterSelector;\n if (this._selectorInputValue === 'between') {\n this._valueInputValue = undefined;\n } else {\n this._betweenValueStartInputValue = undefined;\n this._betweenValueEndInputValue = undefined;\n }\n this._updateFilter(updateFilter);\n };\n\n onValueChange = (\n updateFilter: (filter: HdsFilterBarFilter) => void,\n event: Event\n ): void => {\n const input = event.target as HTMLInputElement;\n this._valueInputValue = input.value;\n this._updateFilter(updateFilter);\n };\n\n onBetweenValueStartChange = (\n updateFilter: (filter: HdsFilterBarFilter) => void,\n event: Event\n ): void => {\n const input = event.target as HTMLInputElement;\n this._betweenValueStartInputValue = input.value;\n this._updateFilter(updateFilter);\n };\n\n onBetweenValueEndChange = (\n updateFilter: (filter: HdsFilterBarFilter) => void,\n event: Event\n ): void => {\n const input = event.target as HTMLInputElement;\n this._betweenValueEndInputValue = input.value;\n this._updateFilter(updateFilter);\n };\n\n onChange = (filter: HdsFilterBarFilter): void => {\n const { onChange } = this.args;\n if (onChange && typeof onChange === 'function') {\n onChange(filter);\n }\n };\n\n private _updateFilter = (\n updateFilter: (filter: HdsFilterBarFilter) => void\n ): void => {\n const addFilter = (): HdsFilterBarFilter => {\n const value =\n this._selectorInputValue === 'between'\n ? {\n start: this._betweenValueStartInputValue,\n end: this._betweenValueEndInputValue,\n }\n : this._valueInputValue;\n const newFilter = {\n type: this.type,\n text: this.args.text,\n data: {\n selector: this._selectorInputValue,\n value: value,\n },\n } as HdsFilterBarFilter;\n return newFilter;\n };\n\n if (this._isFormCompleted()) {\n updateFilter(addFilter());\n }\n };\n\n private _isFormCompleted = (): boolean => {\n if (this._selectorInputValue === 'between') {\n return (\n this._betweenValueStartInputValue !== undefined &&\n this._betweenValueEndInputValue !== undefined\n );\n } else {\n return (\n this._selectorInputValue !== undefined &&\n this._valueInputValue !== undefined\n );\n }\n };\n\n private _getSelectorText = (\n selector: HdsFilterBarDateFilterSelector\n ): string => {\n return this.hdsIntl.t(\n `hds.components.filter-bar.filter-group.date.selector-input.${selector}`,\n {\n default: DATE_SELECTORS_INPUT_TEXT[selector],\n }\n );\n };\n\n <template>\n <HdsFilterBarFilterGroupGeneric\n class=\"hds-filter-bar__filter-group__date\"\n @onChange={{this.onChange}}\n ...attributes\n as |G|\n >\n <fieldset class=\"hds-filter-bar__filter-group__fieldset\">\n <legend class=\"sr-only\">\n {{hdsT\n \"hds.components.filter-bar.filter-group.date.legend\"\n text=@text\n default=\"Filter by date\"\n }}\n </legend>\n <HdsFormSelectField\n @id={{this._selectorInputId}}\n name={{concat @key \"-selector\"}}\n {{on \"change\" (fn this.onSelectorChange G.updateFilter)}}\n class=\"hds-filter-bar__filter-group__field\"\n as |F|\n >\n <F.Label>{{this.selectorLabelText}}</F.Label>\n <F.Options>\n <option value=\"\">{{hdsT\n \"hds.components.filter-bar.filter-group.date.selector-input.default-value\"\n default=\"Pick a selector\"\n }}</option>\n {{#each this._selectorValues as |selectorValue|}}\n <option\n value={{selectorValue}}\n selected={{eq selectorValue this.selector}}\n >{{this._getSelectorText selectorValue}}</option>\n {{/each}}\n </F.Options>\n </HdsFormSelectField>\n {{#if (eq this.selector \"between\")}}\n <HdsLayoutFlex\n @gap=\"8\"\n @direction={{if (eq @type \"datetime\") \"column\" \"row\"}}\n >\n <HdsFormTextInputBase\n @id={{this._betweenValueStartInputId}}\n @type={{this.inputType}}\n @value={{this.betweenValueStart}}\n name={{concat @key \"-between-start\"}}\n aria-label={{hdsT\n \"hds.components.filter-bar.filter-group.date.between-value-inputs.start.aria-label\"\n type=this.type\n default=\"Date start value\"\n }}\n placeholder={{hdsT\n \"hds.components.filter-bar.filter-group.date.between-value-inputs.start.placeholder\"\n default=\"Start\"\n }}\n class=\"hds-filter-bar__filter-group__field hds-filter-bar__filter-group__field--between\"\n {{on \"change\" (fn this.onBetweenValueStartChange G.updateFilter)}}\n />\n <HdsFormTextInputBase\n @id={{this._betweenValueEndInputId}}\n @type={{this.inputType}}\n @value={{this.betweenValueEnd}}\n name={{concat @key \"-between-end\"}}\n aria-label={{hdsT\n \"hds.components.filter-bar.filter-group.date.between-value-inputs.end.aria-label\"\n type=this.type\n default=\"Date end value\"\n }}\n placeholder={{hdsT\n \"hds.components.filter-bar.filter-group.date.between-value-inputs.end.placeholder\"\n default=\"End\"\n }}\n class=\"hds-filter-bar__filter-group__field hds-filter-bar__filter-group__field--between\"\n {{on \"change\" (fn this.onBetweenValueEndChange G.updateFilter)}}\n />\n </HdsLayoutFlex>\n {{else}}\n <HdsFormTextInputBase\n @id={{this._valueInputId}}\n @type={{this.inputType}}\n @value={{this.value}}\n name={{concat @key \"-value\"}}\n aria-label={{hdsT\n \"hds.components.filter-bar.filter-group.date.value-input.aria-label\"\n type=this.type\n default=\"Date value\"\n }}\n class=\"hds-filter-bar__filter-group__field\"\n {{on \"change\" (fn this.onValueChange G.updateFilter)}}\n />\n {{/if}}\n </fieldset>\n </HdsFilterBarFilterGroupGeneric>\n </template>\n}\n"],"names":["DATE_SELECTORS","Object","values","HdsFilterBarDateFilterSelectorValues","DATE_SELECTORS_TEXT","before","exactly","after","between","DATE_SELECTORS_INPUT_TEXT","DATE_FILTER_GROUP_TYPES","HdsFilterBarFilterGroupDateTypeValues","HdsFilterBarFilterGroupDate","Component","g","prototype","service","i","tracked","_selectorValues","_selectorInputId","guidFor","_valueInputId","_betweenValueStartInputId","_betweenValueEndInputId","type","args","inputType","selectorLabelText","hdsIntl","t","default","keyFilterData","keyFilter","data","undefined","selector","_selectorInputValue","value","_valueInputValue","betweenValueStart","_betweenValueStartInputValue","start","betweenValueEnd","_betweenValueEndInputValue","end","onSelectorChange","updateFilter","event","select","target","_updateFilter","onValueChange","input","onBetweenValueStartChange","onBetweenValueEndChange","onChange","filter","addFilter","newFilter","text","_isFormCompleted","_getSelectorText","setComponentTemplate","precompileTemplate","strictMode","scope","HdsFilterBarFilterGroupGeneric","hdsT","HdsFormSelectField","concat","on","fn","eq","HdsLayoutFlex","HdsFormTextInputBase"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"date.js","sources":["../../../../../src/components/hds/filter-bar/filter-group/date.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2026\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { guidFor } from '@ember/object/internals';\nimport { service } from '@ember/service';\nimport { on } from '@ember/modifier';\nimport { concat, fn } from '@ember/helper';\nimport { eq } from 'ember-truth-helpers';\n\nimport hdsT from '../../../../helpers/hds-t.ts';\nimport HdsFormSelectField from '../../form/select/field.gts';\nimport HdsFormTextInputBase from '../../form/text-input/base.gts';\nimport HdsLayoutFlex from '../../layout/flex/index.gts';\nimport HdsFilterBarFilterGroupGeneric from './generic.gts';\n\nimport type { HdsFilterBarFilterGroupGenericSignature } from './generic.gts';\nimport type HdsIntlService from '../../../../services/hds-intl.ts';\nimport type { HdsFormTextInputTypes } from '../../form/text-input/types.ts';\n\nimport type {\n HdsFilterBarFilter,\n HdsFilterBarDateFilterData,\n HdsFilterBarDateFilterSelector,\n HdsFilterBarFilterGroupDateType,\n} from '../types.ts';\nimport {\n HdsFilterBarDateFilterSelectorValues,\n HdsFilterBarFilterGroupDateTypeValues,\n} from '../types.ts';\n\nexport const DATE_SELECTORS: HdsFilterBarDateFilterSelector[] = Object.values(\n HdsFilterBarDateFilterSelectorValues\n);\n\nexport const DATE_SELECTORS_TEXT: Record<\n HdsFilterBarDateFilterSelector,\n string\n> = {\n [HdsFilterBarDateFilterSelectorValues.before]: 'before',\n [HdsFilterBarDateFilterSelectorValues.exactly]: 'exactly',\n [HdsFilterBarDateFilterSelectorValues.after]: 'after',\n [HdsFilterBarDateFilterSelectorValues.between]: 'between',\n};\n\nexport const DATE_SELECTORS_INPUT_TEXT: Record<\n HdsFilterBarDateFilterSelector,\n string\n> = {\n [HdsFilterBarDateFilterSelectorValues.before]: 'Before',\n [HdsFilterBarDateFilterSelectorValues.exactly]: 'Exactly',\n [HdsFilterBarDateFilterSelectorValues.after]: 'After',\n [HdsFilterBarDateFilterSelectorValues.between]: 'Between',\n};\n\nexport const DATE_FILTER_GROUP_TYPES: HdsFilterBarFilterGroupDateType[] =\n Object.values(HdsFilterBarFilterGroupDateTypeValues);\n\nexport interface HdsFilterBarFilterGroupDateSignature {\n Args: {\n key: string;\n keyFilter?: HdsFilterBarFilter;\n type?: HdsFilterBarFilterGroupDateType;\n text?: string;\n onChange?: (filter: HdsFilterBarFilter) => void;\n };\n Blocks: {\n default: [];\n };\n Element: HdsFilterBarFilterGroupGenericSignature['Element'];\n}\n\nexport default class HdsFilterBarFilterGroupDate extends Component<HdsFilterBarFilterGroupDateSignature> {\n @service hdsIntl!: HdsIntlService;\n\n @tracked private _selectorInputValue:\n | HdsFilterBarDateFilterSelector\n | undefined;\n @tracked private _valueInputValue: string | undefined;\n @tracked private _betweenValueStartInputValue: string | undefined;\n @tracked private _betweenValueEndInputValue: string | undefined;\n\n private _selectorValues = DATE_SELECTORS;\n private _selectorInputId = 'selector-input-' + guidFor(this);\n private _valueInputId = 'value-input-' + guidFor(this);\n private _betweenValueStartInputId =\n 'between-value-start-input-' + guidFor(this);\n private _betweenValueEndInputId = 'between-value-end-input-' + guidFor(this);\n\n get type(): 'date' | 'time' | 'datetime' {\n return this.args.type || 'date';\n }\n\n get inputType(): HdsFormTextInputTypes {\n if (this.type === 'datetime') {\n return 'datetime-local';\n }\n return this.type;\n }\n\n get selectorLabelText(): string {\n return this.hdsIntl.t(\n `hds.components.filter-bar.filter-group.date.${this.type}.label`,\n {\n default: 'Date is',\n }\n );\n }\n\n get keyFilterData(): HdsFilterBarDateFilterData | undefined {\n const { keyFilter } = this.args;\n if (\n keyFilter &&\n (keyFilter.type === 'date' ||\n keyFilter.type === 'time' ||\n keyFilter.type === 'datetime')\n ) {\n return keyFilter.data;\n }\n return undefined;\n }\n\n get selector(): HdsFilterBarDateFilterSelector | undefined {\n if (this._selectorInputValue !== undefined) {\n return this._selectorInputValue;\n } else if (this.keyFilterData) {\n return this.keyFilterData.selector;\n }\n }\n\n get value(): string | undefined {\n if (this._valueInputValue !== undefined) {\n return this._valueInputValue;\n } else if (this.keyFilterData) {\n if (this.keyFilterData.selector !== 'between') {\n return this.keyFilterData.value as string;\n }\n }\n }\n\n get betweenValueStart(): string | undefined {\n if (this._betweenValueStartInputValue !== undefined) {\n return this._betweenValueStartInputValue;\n } else if (this.keyFilterData) {\n if (\n this.keyFilterData.selector === 'between' &&\n typeof this.keyFilterData.value === 'object'\n ) {\n return this.keyFilterData.value.start;\n }\n }\n }\n\n get betweenValueEnd(): string | undefined {\n if (this._betweenValueEndInputValue !== undefined) {\n return this._betweenValueEndInputValue;\n } else if (this.keyFilterData) {\n if (\n this.keyFilterData.selector === 'between' &&\n typeof this.keyFilterData.value === 'object'\n ) {\n return this.keyFilterData.value.end;\n }\n }\n }\n\n onSelectorChange = (\n updateFilter: (filter: HdsFilterBarFilter) => void,\n event: Event\n ): void => {\n const select = event.target as HTMLSelectElement;\n this._selectorInputValue = select.value as HdsFilterBarDateFilterSelector;\n if (this._selectorInputValue === 'between') {\n this._valueInputValue = undefined;\n } else {\n this._betweenValueStartInputValue = undefined;\n this._betweenValueEndInputValue = undefined;\n }\n this._updateFilter(updateFilter);\n };\n\n onValueChange = (\n updateFilter: (filter: HdsFilterBarFilter) => void,\n event: Event\n ): void => {\n const input = event.target as HTMLInputElement;\n this._valueInputValue = input.value;\n this._updateFilter(updateFilter);\n };\n\n onBetweenValueStartChange = (\n updateFilter: (filter: HdsFilterBarFilter) => void,\n event: Event\n ): void => {\n const input = event.target as HTMLInputElement;\n this._betweenValueStartInputValue = input.value;\n this._updateFilter(updateFilter);\n };\n\n onBetweenValueEndChange = (\n updateFilter: (filter: HdsFilterBarFilter) => void,\n event: Event\n ): void => {\n const input = event.target as HTMLInputElement;\n this._betweenValueEndInputValue = input.value;\n this._updateFilter(updateFilter);\n };\n\n onChange = (filter: HdsFilterBarFilter): void => {\n const { onChange } = this.args;\n if (onChange && typeof onChange === 'function') {\n onChange(filter);\n }\n };\n\n private _updateFilter = (\n updateFilter: (filter: HdsFilterBarFilter) => void\n ): void => {\n const addFilter = (): HdsFilterBarFilter => {\n const value =\n this._selectorInputValue === 'between'\n ? {\n start: this._betweenValueStartInputValue,\n end: this._betweenValueEndInputValue,\n }\n : this._valueInputValue;\n const newFilter = {\n type: this.type,\n text: this.args.text,\n data: {\n selector: this._selectorInputValue,\n value: value,\n },\n } as HdsFilterBarFilter;\n return newFilter;\n };\n\n if (this._isFormCompleted()) {\n updateFilter(addFilter());\n }\n };\n\n private _isFormCompleted = (): boolean => {\n if (this._selectorInputValue === 'between') {\n return (\n this._betweenValueStartInputValue !== undefined &&\n this._betweenValueEndInputValue !== undefined\n );\n } else {\n return (\n this._selectorInputValue !== undefined &&\n this._valueInputValue !== undefined\n );\n }\n };\n\n private _getSelectorText = (\n selector: HdsFilterBarDateFilterSelector\n ): string => {\n return this.hdsIntl.t(\n `hds.components.filter-bar.filter-group.date.selector-input.${selector}`,\n {\n default: DATE_SELECTORS_INPUT_TEXT[selector],\n }\n );\n };\n\n <template>\n <HdsFilterBarFilterGroupGeneric\n class=\"hds-filter-bar__filter-group__date\"\n @onChange={{this.onChange}}\n ...attributes\n as |G|\n >\n <fieldset class=\"hds-filter-bar__filter-group__fieldset\">\n <legend class=\"sr-only\">\n {{hdsT\n \"hds.components.filter-bar.filter-group.date.legend\"\n text=@text\n default=\"Filter by date\"\n }}\n </legend>\n <HdsFormSelectField\n @id={{this._selectorInputId}}\n name={{concat @key \"-selector\"}}\n {{on \"change\" (fn this.onSelectorChange G.updateFilter)}}\n class=\"hds-filter-bar__filter-group__field\"\n as |F|\n >\n <F.Label>{{this.selectorLabelText}}</F.Label>\n <F.Options>\n <option value=\"\">{{hdsT\n \"hds.components.filter-bar.filter-group.date.selector-input.default-value\"\n default=\"Pick a selector\"\n }}</option>\n {{#each this._selectorValues as |selectorValue|}}\n <option\n value={{selectorValue}}\n selected={{eq selectorValue this.selector}}\n >{{this._getSelectorText selectorValue}}</option>\n {{/each}}\n </F.Options>\n </HdsFormSelectField>\n {{#if (eq this.selector \"between\")}}\n <HdsLayoutFlex\n @gap=\"8\"\n @direction={{if (eq @type \"datetime\") \"column\" \"row\"}}\n >\n <HdsFormTextInputBase\n @id={{this._betweenValueStartInputId}}\n @type={{this.inputType}}\n @value={{this.betweenValueStart}}\n name={{concat @key \"-between-start\"}}\n aria-label={{hdsT\n \"hds.components.filter-bar.filter-group.date.between-value-inputs.start.aria-label\"\n type=this.type\n default=\"Date start value\"\n }}\n placeholder={{hdsT\n \"hds.components.filter-bar.filter-group.date.between-value-inputs.start.placeholder\"\n default=\"Start\"\n }}\n class=\"hds-filter-bar__filter-group__field hds-filter-bar__filter-group__field--between\"\n {{on \"change\" (fn this.onBetweenValueStartChange G.updateFilter)}}\n />\n <HdsFormTextInputBase\n @id={{this._betweenValueEndInputId}}\n @type={{this.inputType}}\n @value={{this.betweenValueEnd}}\n name={{concat @key \"-between-end\"}}\n aria-label={{hdsT\n \"hds.components.filter-bar.filter-group.date.between-value-inputs.end.aria-label\"\n type=this.type\n default=\"Date end value\"\n }}\n placeholder={{hdsT\n \"hds.components.filter-bar.filter-group.date.between-value-inputs.end.placeholder\"\n default=\"End\"\n }}\n class=\"hds-filter-bar__filter-group__field hds-filter-bar__filter-group__field--between\"\n {{on \"change\" (fn this.onBetweenValueEndChange G.updateFilter)}}\n />\n </HdsLayoutFlex>\n {{else}}\n <HdsFormTextInputBase\n @id={{this._valueInputId}}\n @type={{this.inputType}}\n @value={{this.value}}\n name={{concat @key \"-value\"}}\n aria-label={{hdsT\n \"hds.components.filter-bar.filter-group.date.value-input.aria-label\"\n type=this.type\n default=\"Date value\"\n }}\n class=\"hds-filter-bar__filter-group__field\"\n {{on \"change\" (fn this.onValueChange G.updateFilter)}}\n />\n {{/if}}\n </fieldset>\n </HdsFilterBarFilterGroupGeneric>\n </template>\n}\n"],"names":["DATE_SELECTORS","Object","values","HdsFilterBarDateFilterSelectorValues","DATE_SELECTORS_TEXT","before","exactly","after","between","DATE_SELECTORS_INPUT_TEXT","DATE_FILTER_GROUP_TYPES","HdsFilterBarFilterGroupDateTypeValues","HdsFilterBarFilterGroupDate","Component","g","prototype","service","i","tracked","_selectorValues","_selectorInputId","guidFor","_valueInputId","_betweenValueStartInputId","_betweenValueEndInputId","type","args","inputType","selectorLabelText","hdsIntl","t","default","keyFilterData","keyFilter","data","undefined","selector","_selectorInputValue","value","_valueInputValue","betweenValueStart","_betweenValueStartInputValue","start","betweenValueEnd","_betweenValueEndInputValue","end","onSelectorChange","updateFilter","event","select","target","_updateFilter","onValueChange","input","onBetweenValueStartChange","onBetweenValueEndChange","onChange","filter","addFilter","newFilter","text","_isFormCompleted","_getSelectorText","setComponentTemplate","precompileTemplate","strictMode","scope","HdsFilterBarFilterGroupGeneric","hdsT","HdsFormSelectField","concat","on","fn","eq","HdsLayoutFlex","HdsFormTextInputBase"],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ import { precompileTemplate } from '@ember/template-compilation';
|
|
|
4
4
|
import { setComponentTemplate } from '@ember/component';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
|
-
* Copyright
|
|
7
|
+
* Copyright IBM Corp. 2021, 2026
|
|
8
8
|
* SPDX-License-Identifier: MPL-2.0
|
|
9
9
|
*/
|
|
10
10
|
class HdsFilterBarFilterGroupGeneric extends Component {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generic.js","sources":["../../../../../src/components/hds/filter-bar/filter-group/generic.gts"],"sourcesContent":["/**\n * Copyright
|
|
1
|
+
{"version":3,"file":"generic.js","sources":["../../../../../src/components/hds/filter-bar/filter-group/generic.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2026\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { hash } from '@ember/helper';\n\nimport type { HdsFilterBarFilter } from '../types.ts';\n\nexport interface HdsFilterBarFilterGroupGenericSignature {\n Args: {\n onChange?: (filter: HdsFilterBarFilter) => void;\n };\n Blocks: {\n default: [\n {\n updateFilter: (filter: HdsFilterBarFilter) => void;\n },\n ];\n };\n Element: HTMLDivElement;\n}\n\nexport default class HdsFilterBarFilterGroupGeneric extends Component<HdsFilterBarFilterGroupGenericSignature> {\n updateFilter = (filter: HdsFilterBarFilter): void => {\n const { onChange } = this.args;\n if (onChange && typeof onChange === 'function') {\n onChange(filter);\n }\n };\n\n <template>\n <div class=\"hds-filter-bar__filter-group__generic\" ...attributes>\n {{yield (hash updateFilter=this.updateFilter)}}\n </div>\n </template>\n}\n"],"names":["HdsFilterBarFilterGroupGeneric","Component","updateFilter","filter","onChange","args","setComponentTemplate","precompileTemplate","strictMode","scope","hash"],"mappings":";;;;;AAAA;;;AAGC;AAqBc,MAAMA,uCAAuCC,SAAA,CAAU;EACpEC,YAAA,GAAgBC,MAAQ,IAAyB;IAC/C,MAAM;AAAEC,MAAAA;KAAU,GAAG,IAAI,CAACC,IAAI;AAC9B,IAAA,IAAID,QAAA,IAAY,OAAOA,QAAA,KAAa,UAAA,EAAY;MAC9CA,QAAA,CAASD,MAAA,CAAA;AACX,IAAA;EACF,CAAA;AAEA,EAAA;IAAAG,oBAAA,CAAAC,kBAAA,CAAA,gIAAA,EAIA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
|
|
@@ -19,7 +19,7 @@ import { setComponentTemplate } from '@ember/component';
|
|
|
19
19
|
import { g, i } from 'decorator-transforms/runtime';
|
|
20
20
|
|
|
21
21
|
/**
|
|
22
|
-
* Copyright
|
|
22
|
+
* Copyright IBM Corp. 2021, 2026
|
|
23
23
|
* SPDX-License-Identifier: MPL-2.0
|
|
24
24
|
*/
|
|
25
25
|
class HdsFilterBarFilterGroup extends Component {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../../src/components/hds/filter-bar/filter-group/index.gts"],"sourcesContent":["/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { modifier } from 'ember-modifier';\nimport { on } from '@ember/modifier';\nimport { eq, or } from 'ember-truth-helpers';\nimport { hash } from '@ember/helper';\n\nimport type { WithBoundArgs } from '@glint/template';\n\nimport hdsT from '../../../../helpers/hds-t.ts';\nimport HdsFilterBarTabsTab from '../tabs/tab.gts';\nimport HdsFilterBarTabsPanel from '../tabs/panel.gts';\nimport HdsFilterBarFilterGroupGeneric from './generic.gts';\nimport HdsFilterBarFilterGroupCheckbox from './checkbox.gts';\nimport HdsFilterBarFilterGroupRadio from './radio.gts';\nimport HdsFilterBarFilterGroupClearButton from './clear-button.gts';\nimport HdsFilterBarFilterGroupDate from './date.gts';\nimport HdsFilterBarFilterGroupNumerical from './numerical.gts';\nimport HdsFormTextInputBase from '../../form/text-input/base.gts';\n\nimport type {\n HdsFilterBarFilter,\n HdsFilterBarFilters,\n HdsFilterBarFilterType,\n HdsFilterBarData,\n HdsFilterBarGenericFilterData,\n} from '../types.ts';\n\nexport interface HdsFilterBarFilterGroupSignature {\n Args: {\n tab?: WithBoundArgs<typeof HdsFilterBarTabsTab, never>;\n panel?: WithBoundArgs<typeof HdsFilterBarTabsPanel, never>;\n key: string;\n text: string;\n type: HdsFilterBarFilterType;\n filters: HdsFilterBarFilters;\n searchEnabled?: boolean;\n onChange: (key: string, keyFilter?: HdsFilterBarFilter) => void;\n onClear?: (key: string) => void;\n };\n Blocks: {\n default: [\n {\n Generic?: WithBoundArgs<\n typeof HdsFilterBarFilterGroupGeneric,\n 'onChange'\n >;\n Checkbox?: WithBoundArgs<\n typeof HdsFilterBarFilterGroupCheckbox,\n 'keyFilter' | 'name' | 'searchValue' | 'onChange'\n >;\n Radio?: WithBoundArgs<\n typeof HdsFilterBarFilterGroupRadio,\n 'keyFilter' | 'name' | 'searchValue' | 'onChange'\n >;\n },\n ];\n };\n}\n\nexport default class HdsFilterBarFilterGroup extends Component<HdsFilterBarFilterGroupSignature> {\n @tracked internalFilters: HdsFilterBarData | undefined = undefined;\n @tracked searchValue: string | undefined = undefined;\n\n private _setUpFilterPanel = modifier(() => {\n // Note: Due to the filters being an Ember object, structuredClone cannot be used here.\n // Further investigation will be done in a follow-up task: https://hashicorp.atlassian.net/browse/HDS-5907\n if (this.keyFilter) {\n this.internalFilters = JSON.parse(\n JSON.stringify(this.keyFilter.data)\n ) as HdsFilterBarData;\n }\n });\n\n get keyFilter(): HdsFilterBarFilter | undefined {\n const { filters, key } = this.args;\n\n if (!filters) {\n return undefined;\n }\n return filters[key];\n }\n\n get numFilters(): number {\n const { filters, key } = this.args;\n if (filters && key in filters) {\n const keyFilters = filters[key]?.data;\n if (Array.isArray(keyFilters)) {\n return keyFilters.length;\n } else if (keyFilters) {\n return 1;\n }\n }\n return 0;\n }\n\n get formattedFilters(): HdsFilterBarFilter | undefined {\n const { type, text } = this.args;\n if (\n this.internalFilters === undefined ||\n (Array.isArray(this.internalFilters) && this.internalFilters.length === 0)\n ) {\n return undefined;\n }\n return {\n type: type,\n text: text,\n data: this.internalFilters,\n } as HdsFilterBarFilter;\n }\n\n onSelectionChange = (event: Event, label?: string): void => {\n const { type } = this.args;\n\n const addFilter = (value: unknown): void => {\n const newFilter = {\n value: value,\n label: label,\n } as HdsFilterBarGenericFilterData;\n if (type === 'multi-select') {\n if (Array.isArray(this.internalFilters)) {\n this.internalFilters = [...this.internalFilters, newFilter];\n } else {\n this.internalFilters = [newFilter];\n }\n } else {\n this.internalFilters = newFilter;\n }\n };\n\n const removeFilter = (value: string): void => {\n if (type === 'multi-select' && Array.isArray(this.internalFilters)) {\n const newFilter = [] as HdsFilterBarGenericFilterData[];\n this.internalFilters.forEach((filter) => {\n if (filter.value != value) {\n newFilter.push(filter);\n }\n });\n this.internalFilters = newFilter;\n } else {\n this.internalFilters = undefined;\n }\n };\n\n const input = event.target as HTMLInputElement;\n\n if (input.checked) {\n addFilter(input.value);\n } else {\n removeFilter(input.value);\n }\n\n const { onChange } = this.args;\n if (onChange && typeof onChange === 'function') {\n onChange(this.args.key, this.formattedFilters);\n }\n };\n\n onGenericChange = (filter: HdsFilterBarFilter): void => {\n this.internalFilters = filter.data;\n filter.text = this.args.text;\n\n const { onChange } = this.args;\n if (onChange && typeof onChange === 'function') {\n onChange(this.args.key, filter);\n }\n };\n\n onClear = (): void => {\n this.internalFilters = undefined;\n const { onChange, onClear } = this.args;\n\n if (onClear && typeof onClear === 'function') {\n onClear(this.args.key);\n }\n\n if (onChange && typeof onChange === 'function') {\n onChange(this.args.key);\n }\n };\n\n private _onSearch = (event: Event) => {\n const input = event.target as HTMLInputElement;\n this.searchValue = input.value;\n };\n\n <template>\n {{#let @tab as |Tab|}}\n <Tab @numFilters={{this.numFilters}}>\n {{@text}}\n </Tab>\n {{/let}}\n {{#let @panel as |Panel|}}\n <Panel {{this._setUpFilterPanel}}>\n {{#if @searchEnabled}}\n <div class=\"hds-filter-bar__filter-group__search\">\n <HdsFormTextInputBase\n @type=\"search\"\n aria-label={{hdsT\n \"components.filter-bar.filter-group.search-input.aria-label\"\n default=\"Search filter options\"\n }}\n aria-description={{hdsT\n \"hds.components.filter-bar.filter-group.search-input.aria-description\"\n default=\"Search will be performed automatically as you type\"\n }}\n placeholder={{hdsT\n \"hds.components.filter-bar.filter-group.search-input.placeholder\"\n default=\"Search\"\n }}\n {{on \"input\" this._onSearch}}\n />\n </div>\n {{/if}}\n {{#if\n (or\n (eq @type \"numerical\")\n (eq @type \"date\")\n (eq @type \"datetime\")\n (eq @type \"time\")\n (eq @type \"generic\")\n )\n }}\n {{#if (eq @type \"numerical\")}}\n <HdsFilterBarFilterGroupNumerical\n @key={{@key}}\n @keyFilter={{this.keyFilter}}\n @text={{@text}}\n @onChange={{this.onGenericChange}}\n />\n {{else if (eq @type \"date\")}}\n <HdsFilterBarFilterGroupDate\n @key={{@key}}\n @keyFilter={{this.keyFilter}}\n @text={{@text}}\n @onChange={{this.onGenericChange}}\n @type=\"date\"\n />\n {{else if (eq @type \"datetime\")}}\n <HdsFilterBarFilterGroupDate\n @key={{@key}}\n @keyFilter={{this.keyFilter}}\n @text={{@text}}\n @onChange={{this.onGenericChange}}\n @type=\"datetime\"\n />\n {{else if (eq @type \"time\")}}\n <HdsFilterBarFilterGroupDate\n @key={{@key}}\n @keyFilter={{this.keyFilter}}\n @text={{@text}}\n @onChange={{this.onGenericChange}}\n @type=\"time\"\n />\n {{else if (eq @type \"generic\")}}\n {{yield\n (hash\n Generic=(component\n HdsFilterBarFilterGroupGeneric onChange=this.onGenericChange\n )\n )\n }}\n {{/if}}\n <HdsFilterBarFilterGroupClearButton\n @text={{hdsT\n \"hds.components.filter-bar.filter-group.values-list.clear-filter\"\n default=\"Clear filter\"\n }}\n {{on \"click\" this.onClear}}\n />\n {{else if (or (eq @type \"single-select\") (eq @type \"multi-select\"))}}\n <div class=\"hds-filter-bar__filter-group__values-list\">\n <HdsFilterBarFilterGroupClearButton\n @text={{hdsT\n \"hds.components.filter-bar.filter-group.values-list.clear-selection\"\n default=\"Clear selection\"\n }}\n {{on \"click\" this.onClear}}\n />\n <fieldset class=\"hds-filter-bar__filter-group__list\">\n <legend class=\"sr-only\">\n {{hdsT\n \"hds.components.filter-bar.filter-group.values-list.legend\"\n text=@text\n default=\"Filter by options\"\n }}\n </legend>\n {{#if (eq @type \"single-select\")}}\n {{yield\n (hash\n Radio=(component\n HdsFilterBarFilterGroupRadio\n keyFilter=this.keyFilter\n name=@key\n searchValue=this.searchValue\n onChange=this.onSelectionChange\n )\n )\n }}\n {{else if (eq @type \"multi-select\")}}\n {{yield\n (hash\n Checkbox=(component\n HdsFilterBarFilterGroupCheckbox\n keyFilter=this.keyFilter\n name=@key\n searchValue=this.searchValue\n onChange=this.onSelectionChange\n )\n )\n }}\n {{/if}}\n </fieldset>\n </div>\n {{/if}}\n </Panel>\n {{/let}}\n </template>\n}\n"],"names":["HdsFilterBarFilterGroup","Component","g","prototype","tracked","undefined","i","_setUpFilterPanel","modifier","keyFilter","internalFilters","JSON","parse","stringify","data","filters","key","args","numFilters","keyFilters","Array","isArray","length","formattedFilters","type","text","onSelectionChange","event","label","addFilter","value","newFilter","removeFilter","forEach","filter","push","input","target","checked","onChange","onGenericChange","onClear","_onSearch","searchValue","setComponentTemplate","precompileTemplate","strictMode","scope","HdsFormTextInputBase","hdsT","on","or","eq","HdsFilterBarFilterGroupNumerical","HdsFilterBarFilterGroupDate","hash","HdsFilterBarFilterGroupGeneric","HdsFilterBarFilterGroupClearButton","HdsFilterBarFilterGroupRadio","HdsFilterBarFilterGroupCheckbox"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;;;AAGC;AA8Dc,MAAMA,gCAAgCC,SAAA,CAAU;AAAA,EAAA;IAAAC,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,iBAAA,EAAA,CAC5DC,OAAA,CAAA,EAAA,YAAA;AAAA,MAAA,OAAwDC,SAAA;AAAA,IAAA,CAAA,CAAA;AAAA;EAAA,gBAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,iBAAA,CAAA,EAAA,MAAA;AAAA,EAAA;IAAAJ,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,aAAA,EAAA,CACxDC,OAAA,CAAA,EAAA,YAAA;AAAA,MAAA,OAA0CC,SAAA;AAAA,IAAA,CAAA,CAAA;AAAA;EAAA,YAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,aAAA,CAAA,EAAA,MAAA;EAEnCC,oBAAoBC,QAAA,CAAS,MAAA;AACnC;AACA;IACA,IAAI,IAAI,CAACC,SAAS,EAAE;AAClB,MAAA,IAAI,CAACC,eAAe,GAAGC,IAAA,CAAKC,KAAK,CAC/BD,IAAA,CAAKE,SAAS,CAAC,IAAI,CAACJ,SAAS,CAACK,IAAI,CAAA,CAC/B;AACP,IAAA;AACF,EAAA,CAAA,CAAA;EAEA,IAAIL,SAAAA,GAA4C;IAC9C,MAAM;MAAEM,OAAO;AAAEC,MAAAA;KAAK,GAAG,IAAI,CAACC,IAAI;IAElC,IAAI,CAACF,OAAA,EAAS;AACZ,MAAA,OAAOV,SAAA;AACT,IAAA;IACA,OAAOU,OAAO,CAACC,GAAA,CAAI;AACrB,EAAA;EAEA,IAAIE,UAAAA,GAAqB;IACvB,MAAM;MAAEH,OAAO;AAAEC,MAAAA;KAAK,GAAG,IAAI,CAACC,IAAI;AAClC,IAAA,IAAIF,OAAA,IAAWC,OAAOD,OAAA,EAAS;AAC7B,MAAA,MAAMI,UAAA,GAAaJ,OAAO,CAACC,GAAA,CAAI,EAAEF,IAAA;AACjC,MAAA,IAAIM,KAAA,CAAMC,OAAO,CAACF,UAAA,CAAA,EAAa;QAC7B,OAAOA,WAAWG,MAAM;MAC1B,CAAA,MAAO,IAAIH,UAAA,EAAY;AACrB,QAAA,OAAO,CAAA;AACT,MAAA;AACF,IAAA;AACA,IAAA,OAAO,CAAA;AACT,EAAA;EAEA,IAAII,gBAAAA,GAAmD;IACrD,MAAM;MAAEC,IAAI;AAAEC,MAAAA;KAAM,GAAG,IAAI,CAACR,IAAI;IAChC,IACE,IAAI,CAACP,eAAe,KAAKL,aACxBe,KAAA,CAAMC,OAAO,CAAC,IAAI,CAACX,eAAe,CAAA,IAAK,IAAI,CAACA,eAAe,CAACY,MAAM,KAAK,CAAC,EACzE;AACA,MAAA,OAAOjB,SAAA;AACT,IAAA;IACA,OAAO;AACLmB,MAAAA,IAAA,EAAMA,IAAA;AACNC,MAAAA,IAAA,EAAMA,IAAA;MACNX,IAAA,EAAM,IAAI,CAACJ;KACb;AACF,EAAA;AAEAgB,EAAAA,iBAAA,GAAoBA,CAACC,KAAO,EAAOC,KAAc,KAAO;IACtD,MAAM;AAAEJ,MAAAA;KAAM,GAAG,IAAI,CAACP,IAAI;IAE1B,MAAMY,SAAA,GAAaC,KAAc,IAAO;AACtC,MAAA,MAAMC,SAAA,GAAY;AAChBD,QAAAA,KAAA,EAAOA,KAAA;AACPF,QAAAA,KAAA,EAAOA;OACJ;MACL,IAAIJ,SAAS,cAAA,EAAgB;QAC3B,IAAIJ,MAAMC,OAAO,CAAC,IAAI,CAACX,eAAe,CAAA,EAAG;UACvC,IAAI,CAACA,eAAe,GAAG,CAAI,GAAA,IAAI,CAACA,eAAe,EAAEqB,SAAA,CAAU;AAC7D,QAAA,CAAA,MAAO;AACL,UAAA,IAAI,CAACrB,eAAe,GAAG,CAACqB,SAAA,CAAU;AACpC,QAAA;AACF,MAAA,CAAA,MAAO;QACL,IAAI,CAACrB,eAAe,GAAGqB,SAAA;AACzB,MAAA;IACF,CAAA;IAEA,MAAMC,YAAA,GAAgBF,KAAa,IAAO;AACxC,MAAA,IAAIN,IAAA,KAAS,kBAAkBJ,KAAA,CAAMC,OAAO,CAAC,IAAI,CAACX,eAAe,CAAA,EAAG;QAClE,MAAMqB,SAAA,GAAY,EAAM;AACxB,QAAA,IAAI,CAACrB,eAAe,CAACuB,OAAO,CAAEC,MAAA,IAAA;AAC5B,UAAA,IAAIA,MAAA,CAAOJ,KAAK,IAAIA,KAAA,EAAO;AACzBC,YAAAA,SAAA,CAAUI,IAAI,CAACD,MAAA,CAAA;AACjB,UAAA;AACF,QAAA,CAAA,CAAA;QACA,IAAI,CAACxB,eAAe,GAAGqB,SAAA;AACzB,MAAA,CAAA,MAAO;QACL,IAAI,CAACrB,eAAe,GAAGL,SAAA;AACzB,MAAA;IACF,CAAA;AAEA,IAAA,MAAM+B,KAAA,GAAQT,KAAA,CAAMU,MAAU;IAE9B,IAAID,KAAA,CAAME,OAAO,EAAE;AACjBT,MAAAA,SAAA,CAAUO,MAAMN,KAAK,CAAA;AACvB,IAAA,CAAA,MAAO;AACLE,MAAAA,YAAA,CAAaI,MAAMN,KAAK,CAAA;AAC1B,IAAA;IAEA,MAAM;AAAES,MAAAA;KAAU,GAAG,IAAI,CAACtB,IAAI;AAC9B,IAAA,IAAIsB,QAAA,IAAY,OAAOA,QAAA,KAAa,UAAA,EAAY;MAC9CA,QAAA,CAAS,IAAI,CAACtB,IAAI,CAACD,GAAG,EAAE,IAAI,CAACO,gBAAgB,CAAA;AAC/C,IAAA;EACF,CAAA;EAEAiB,eAAA,GAAmBN,MAAQ,IAAyB;AAClD,IAAA,IAAI,CAACxB,eAAe,GAAGwB,MAAA,CAAOpB,IAAI;AAClCoB,IAAAA,MAAA,CAAOT,IAAI,GAAG,IAAI,CAACR,IAAI,CAACQ,IAAI;IAE5B,MAAM;AAAEc,MAAAA;KAAU,GAAG,IAAI,CAACtB,IAAI;AAC9B,IAAA,IAAIsB,QAAA,IAAY,OAAOA,QAAA,KAAa,UAAA,EAAY;MAC9CA,QAAA,CAAS,IAAI,CAACtB,IAAI,CAACD,GAAG,EAAEkB,MAAA,CAAA;AAC1B,IAAA;EACF,CAAA;EAEAO,OAAA,GAAUA,MAAQ;IAChB,IAAI,CAAC/B,eAAe,GAAGL,SAAA;IACvB,MAAM;MAAEkC,QAAQ;AAAEE,MAAAA;KAAS,GAAG,IAAI,CAACxB,IAAI;AAEvC,IAAA,IAAIwB,OAAA,IAAW,OAAOA,OAAA,KAAY,UAAA,EAAY;AAC5CA,MAAAA,OAAA,CAAQ,IAAI,CAACxB,IAAI,CAACD,GAAG,CAAA;AACvB,IAAA;AAEA,IAAA,IAAIuB,QAAA,IAAY,OAAOA,QAAA,KAAa,UAAA,EAAY;AAC9CA,MAAAA,QAAA,CAAS,IAAI,CAACtB,IAAI,CAACD,GAAG,CAAA;AACxB,IAAA;EACF,CAAA;EAEQ0B,SAAA,GAAaf,KAAO,IAAA;AAC1B,IAAA,MAAMS,KAAA,GAAQT,KAAA,CAAMU,MAAU;AAC9B,IAAA,IAAI,CAACM,WAAW,GAAGP,KAAA,CAAMN,KAAK;EAChC,CAAA;AAEA,EAAA;IAAAc,oBAAA,CAAAC,kBAAA,CAAA,yiGAAA,EAmIA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,oBAAA;cAAAC,UAAA;QAAAC,EAAA;QAAAC,EAAA;QAAAC,EAAA;QAAAC,gCAAA;QAAAC,2BAAA;QAAAC,IAAA;QAAAC,8BAAA;QAAAC,kCAAA;QAAAC,4BAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../src/components/hds/filter-bar/filter-group/index.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2026\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { modifier } from 'ember-modifier';\nimport { on } from '@ember/modifier';\nimport { eq, or } from 'ember-truth-helpers';\nimport { hash } from '@ember/helper';\n\nimport type { WithBoundArgs } from '@glint/template';\n\nimport hdsT from '../../../../helpers/hds-t.ts';\nimport HdsFilterBarTabsTab from '../tabs/tab.gts';\nimport HdsFilterBarTabsPanel from '../tabs/panel.gts';\nimport HdsFilterBarFilterGroupGeneric from './generic.gts';\nimport HdsFilterBarFilterGroupCheckbox from './checkbox.gts';\nimport HdsFilterBarFilterGroupRadio from './radio.gts';\nimport HdsFilterBarFilterGroupClearButton from './clear-button.gts';\nimport HdsFilterBarFilterGroupDate from './date.gts';\nimport HdsFilterBarFilterGroupNumerical from './numerical.gts';\nimport HdsFormTextInputBase from '../../form/text-input/base.gts';\n\nimport type {\n HdsFilterBarFilter,\n HdsFilterBarFilters,\n HdsFilterBarFilterType,\n HdsFilterBarData,\n HdsFilterBarGenericFilterData,\n} from '../types.ts';\n\nexport interface HdsFilterBarFilterGroupSignature {\n Args: {\n tab?: WithBoundArgs<typeof HdsFilterBarTabsTab, never>;\n panel?: WithBoundArgs<typeof HdsFilterBarTabsPanel, never>;\n key: string;\n text: string;\n type: HdsFilterBarFilterType;\n filters: HdsFilterBarFilters;\n searchEnabled?: boolean;\n onChange: (key: string, keyFilter?: HdsFilterBarFilter) => void;\n onClear?: (key: string) => void;\n };\n Blocks: {\n default: [\n {\n Generic?: WithBoundArgs<\n typeof HdsFilterBarFilterGroupGeneric,\n 'onChange'\n >;\n Checkbox?: WithBoundArgs<\n typeof HdsFilterBarFilterGroupCheckbox,\n 'keyFilter' | 'name' | 'searchValue' | 'onChange'\n >;\n Radio?: WithBoundArgs<\n typeof HdsFilterBarFilterGroupRadio,\n 'keyFilter' | 'name' | 'searchValue' | 'onChange'\n >;\n },\n ];\n };\n}\n\nexport default class HdsFilterBarFilterGroup extends Component<HdsFilterBarFilterGroupSignature> {\n @tracked internalFilters: HdsFilterBarData | undefined = undefined;\n @tracked searchValue: string | undefined = undefined;\n\n private _setUpFilterPanel = modifier(() => {\n // Note: Due to the filters being an Ember object, structuredClone cannot be used here.\n // Further investigation will be done in a follow-up task: https://hashicorp.atlassian.net/browse/HDS-5907\n if (this.keyFilter) {\n this.internalFilters = JSON.parse(\n JSON.stringify(this.keyFilter.data)\n ) as HdsFilterBarData;\n }\n });\n\n get keyFilter(): HdsFilterBarFilter | undefined {\n const { filters, key } = this.args;\n\n if (!filters) {\n return undefined;\n }\n return filters[key];\n }\n\n get numFilters(): number {\n const { filters, key } = this.args;\n if (filters && key in filters) {\n const keyFilters = filters[key]?.data;\n if (Array.isArray(keyFilters)) {\n return keyFilters.length;\n } else if (keyFilters) {\n return 1;\n }\n }\n return 0;\n }\n\n get formattedFilters(): HdsFilterBarFilter | undefined {\n const { type, text } = this.args;\n if (\n this.internalFilters === undefined ||\n (Array.isArray(this.internalFilters) && this.internalFilters.length === 0)\n ) {\n return undefined;\n }\n return {\n type: type,\n text: text,\n data: this.internalFilters,\n } as HdsFilterBarFilter;\n }\n\n onSelectionChange = (event: Event, label?: string): void => {\n const { type } = this.args;\n\n const addFilter = (value: unknown): void => {\n const newFilter = {\n value: value,\n label: label,\n } as HdsFilterBarGenericFilterData;\n if (type === 'multi-select') {\n if (Array.isArray(this.internalFilters)) {\n this.internalFilters = [...this.internalFilters, newFilter];\n } else {\n this.internalFilters = [newFilter];\n }\n } else {\n this.internalFilters = newFilter;\n }\n };\n\n const removeFilter = (value: string): void => {\n if (type === 'multi-select' && Array.isArray(this.internalFilters)) {\n const newFilter = [] as HdsFilterBarGenericFilterData[];\n this.internalFilters.forEach((filter) => {\n if (filter.value != value) {\n newFilter.push(filter);\n }\n });\n this.internalFilters = newFilter;\n } else {\n this.internalFilters = undefined;\n }\n };\n\n const input = event.target as HTMLInputElement;\n\n if (input.checked) {\n addFilter(input.value);\n } else {\n removeFilter(input.value);\n }\n\n const { onChange } = this.args;\n if (onChange && typeof onChange === 'function') {\n onChange(this.args.key, this.formattedFilters);\n }\n };\n\n onGenericChange = (filter: HdsFilterBarFilter): void => {\n this.internalFilters = filter.data;\n filter.text = this.args.text;\n\n const { onChange } = this.args;\n if (onChange && typeof onChange === 'function') {\n onChange(this.args.key, filter);\n }\n };\n\n onClear = (): void => {\n this.internalFilters = undefined;\n const { onChange, onClear } = this.args;\n\n if (onClear && typeof onClear === 'function') {\n onClear(this.args.key);\n }\n\n if (onChange && typeof onChange === 'function') {\n onChange(this.args.key);\n }\n };\n\n private _onSearch = (event: Event) => {\n const input = event.target as HTMLInputElement;\n this.searchValue = input.value;\n };\n\n <template>\n {{#let @tab as |Tab|}}\n <Tab @numFilters={{this.numFilters}}>\n {{@text}}\n </Tab>\n {{/let}}\n {{#let @panel as |Panel|}}\n <Panel {{this._setUpFilterPanel}}>\n {{#if @searchEnabled}}\n <div class=\"hds-filter-bar__filter-group__search\">\n <HdsFormTextInputBase\n @type=\"search\"\n aria-label={{hdsT\n \"components.filter-bar.filter-group.search-input.aria-label\"\n default=\"Search filter options\"\n }}\n aria-description={{hdsT\n \"hds.components.filter-bar.filter-group.search-input.aria-description\"\n default=\"Search will be performed automatically as you type\"\n }}\n placeholder={{hdsT\n \"hds.components.filter-bar.filter-group.search-input.placeholder\"\n default=\"Search\"\n }}\n {{on \"input\" this._onSearch}}\n />\n </div>\n {{/if}}\n {{#if\n (or\n (eq @type \"numerical\")\n (eq @type \"date\")\n (eq @type \"datetime\")\n (eq @type \"time\")\n (eq @type \"generic\")\n )\n }}\n {{#if (eq @type \"numerical\")}}\n <HdsFilterBarFilterGroupNumerical\n @key={{@key}}\n @keyFilter={{this.keyFilter}}\n @text={{@text}}\n @onChange={{this.onGenericChange}}\n />\n {{else if (eq @type \"date\")}}\n <HdsFilterBarFilterGroupDate\n @key={{@key}}\n @keyFilter={{this.keyFilter}}\n @text={{@text}}\n @onChange={{this.onGenericChange}}\n @type=\"date\"\n />\n {{else if (eq @type \"datetime\")}}\n <HdsFilterBarFilterGroupDate\n @key={{@key}}\n @keyFilter={{this.keyFilter}}\n @text={{@text}}\n @onChange={{this.onGenericChange}}\n @type=\"datetime\"\n />\n {{else if (eq @type \"time\")}}\n <HdsFilterBarFilterGroupDate\n @key={{@key}}\n @keyFilter={{this.keyFilter}}\n @text={{@text}}\n @onChange={{this.onGenericChange}}\n @type=\"time\"\n />\n {{else if (eq @type \"generic\")}}\n {{yield\n (hash\n Generic=(component\n HdsFilterBarFilterGroupGeneric onChange=this.onGenericChange\n )\n )\n }}\n {{/if}}\n <HdsFilterBarFilterGroupClearButton\n @text={{hdsT\n \"hds.components.filter-bar.filter-group.values-list.clear-filter\"\n default=\"Clear filter\"\n }}\n {{on \"click\" this.onClear}}\n />\n {{else if (or (eq @type \"single-select\") (eq @type \"multi-select\"))}}\n <div class=\"hds-filter-bar__filter-group__values-list\">\n <HdsFilterBarFilterGroupClearButton\n @text={{hdsT\n \"hds.components.filter-bar.filter-group.values-list.clear-selection\"\n default=\"Clear selection\"\n }}\n {{on \"click\" this.onClear}}\n />\n <fieldset class=\"hds-filter-bar__filter-group__list\">\n <legend class=\"sr-only\">\n {{hdsT\n \"hds.components.filter-bar.filter-group.values-list.legend\"\n text=@text\n default=\"Filter by options\"\n }}\n </legend>\n {{#if (eq @type \"single-select\")}}\n {{yield\n (hash\n Radio=(component\n HdsFilterBarFilterGroupRadio\n keyFilter=this.keyFilter\n name=@key\n searchValue=this.searchValue\n onChange=this.onSelectionChange\n )\n )\n }}\n {{else if (eq @type \"multi-select\")}}\n {{yield\n (hash\n Checkbox=(component\n HdsFilterBarFilterGroupCheckbox\n keyFilter=this.keyFilter\n name=@key\n searchValue=this.searchValue\n onChange=this.onSelectionChange\n )\n )\n }}\n {{/if}}\n </fieldset>\n </div>\n {{/if}}\n </Panel>\n {{/let}}\n </template>\n}\n"],"names":["HdsFilterBarFilterGroup","Component","g","prototype","tracked","undefined","i","_setUpFilterPanel","modifier","keyFilter","internalFilters","JSON","parse","stringify","data","filters","key","args","numFilters","keyFilters","Array","isArray","length","formattedFilters","type","text","onSelectionChange","event","label","addFilter","value","newFilter","removeFilter","forEach","filter","push","input","target","checked","onChange","onGenericChange","onClear","_onSearch","searchValue","setComponentTemplate","precompileTemplate","strictMode","scope","HdsFormTextInputBase","hdsT","on","or","eq","HdsFilterBarFilterGroupNumerical","HdsFilterBarFilterGroupDate","hash","HdsFilterBarFilterGroupGeneric","HdsFilterBarFilterGroupClearButton","HdsFilterBarFilterGroupRadio","HdsFilterBarFilterGroupCheckbox"],"mappings":"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"}
|
|
@@ -16,7 +16,7 @@ import { setComponentTemplate } from '@ember/component';
|
|
|
16
16
|
import { g, i } from 'decorator-transforms/runtime';
|
|
17
17
|
|
|
18
18
|
/**
|
|
19
|
-
* Copyright
|
|
19
|
+
* Copyright IBM Corp. 2021, 2026
|
|
20
20
|
* SPDX-License-Identifier: MPL-2.0
|
|
21
21
|
*/
|
|
22
22
|
const NUMERICAL_SELECTORS = Object.values(HdsFilterBarNumericalFilterSelectorValues);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"numerical.js","sources":["../../../../../src/components/hds/filter-bar/filter-group/numerical.gts"],"sourcesContent":["/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { guidFor } from '@ember/object/internals';\nimport { service } from '@ember/service';\nimport { concat, fn } from '@ember/helper';\nimport { on } from '@ember/modifier';\nimport { eq } from 'ember-truth-helpers';\n\nimport { HdsFilterBarNumericalFilterSelectorValues } from '../types.ts';\nimport hdsT from '../../../../helpers/hds-t.ts';\nimport HdsFilterBarFilterGroupGeneric from './generic.gts';\nimport HdsFormSelectField from '../../form/select/field.gts';\nimport HdsLayoutFlex from '../../layout/flex/index.gts';\nimport HdsFormTextInputBase from '../../form/text-input/base.gts';\n\nimport type { HdsFilterBarFilterGroupGenericSignature } from './generic.gts';\nimport type HdsIntlService from '../../../../services/hds-intl.ts';\nimport type {\n HdsFilterBarFilter,\n HdsFilterBarNumericalFilterData,\n HdsFilterBarNumericalFilterSelector,\n} from '../types.ts';\n\nexport const NUMERICAL_SELECTORS: HdsFilterBarNumericalFilterSelector[] =\n Object.values(HdsFilterBarNumericalFilterSelectorValues);\n\nexport const NUMERICAL_SELECTORS_TEXT: Record<\n HdsFilterBarNumericalFilterSelector,\n string\n> = {\n [HdsFilterBarNumericalFilterSelectorValues.lessThan]: '<',\n [HdsFilterBarNumericalFilterSelectorValues.lessThanOrEqualTo]: '≤',\n [HdsFilterBarNumericalFilterSelectorValues.equalTo]: '=',\n [HdsFilterBarNumericalFilterSelectorValues.greaterThanOrEqualTo]: '≥',\n [HdsFilterBarNumericalFilterSelectorValues.greaterThan]: '>',\n [HdsFilterBarNumericalFilterSelectorValues.between]: 'between',\n};\n\nexport const NUMERICAL_SELECTORS_INPUT_TEXT: Record<\n HdsFilterBarNumericalFilterSelector,\n string\n> = {\n [HdsFilterBarNumericalFilterSelectorValues.lessThan]: 'Less than (<)',\n [HdsFilterBarNumericalFilterSelectorValues.lessThanOrEqualTo]:\n 'Less than or equal to (≤)',\n [HdsFilterBarNumericalFilterSelectorValues.equalTo]: 'Equal to (=)',\n [HdsFilterBarNumericalFilterSelectorValues.greaterThanOrEqualTo]:\n 'Greater than or equal to (≥)',\n [HdsFilterBarNumericalFilterSelectorValues.greaterThan]: 'Greater than (>)',\n [HdsFilterBarNumericalFilterSelectorValues.between]: 'Between',\n};\n\nexport interface HdsFilterBarFilterGroupNumericalSignature {\n Args: {\n key: string;\n keyFilter?: HdsFilterBarFilter;\n text?: string;\n onChange?: (filter: HdsFilterBarFilter) => void;\n };\n Blocks: {\n default: [];\n };\n Element: HdsFilterBarFilterGroupGenericSignature['Element'];\n}\n\nexport default class HdsFilterBarFilterGroupNumerical extends Component<HdsFilterBarFilterGroupNumericalSignature> {\n @service hdsIntl!: HdsIntlService;\n\n @tracked private _selectorInputValue:\n | HdsFilterBarNumericalFilterSelector\n | undefined;\n @tracked private _valueInputValue: number | undefined;\n @tracked private _betweenValueStartInputValue: number | undefined;\n @tracked private _betweenValueEndInputValue: number | undefined;\n\n private _selectorValues = NUMERICAL_SELECTORS;\n private _selectorInputId = 'selector-input-' + guidFor(this);\n private _valueInputId = 'value-input-' + guidFor(this);\n private _betweenValueStartInputId =\n 'between-value-start-input-' + guidFor(this);\n private _betweenValueEndInputId = 'between-value-end-input-' + guidFor(this);\n\n get keyFilterData(): HdsFilterBarNumericalFilterData | undefined {\n const { keyFilter } = this.args;\n if (keyFilter && keyFilter.type === 'numerical') {\n return keyFilter.data;\n }\n return undefined;\n }\n\n get selector(): HdsFilterBarNumericalFilterSelector | undefined {\n if (this._selectorInputValue !== undefined) {\n return this._selectorInputValue;\n } else if (this.keyFilterData) {\n return this.keyFilterData.selector;\n }\n }\n\n get value(): number | undefined {\n if (this._valueInputValue !== undefined) {\n return this._valueInputValue;\n } else if (this.keyFilterData) {\n if (this.keyFilterData.selector !== 'between') {\n return Number(this.keyFilterData.value);\n }\n }\n }\n\n get betweenValueStart(): number | undefined {\n if (this._betweenValueStartInputValue !== undefined) {\n return this._betweenValueStartInputValue;\n } else if (this.keyFilterData) {\n if (\n this.keyFilterData.selector === 'between' &&\n typeof this.keyFilterData.value === 'object'\n ) {\n return Number(this.keyFilterData.value.start);\n }\n }\n }\n\n get betweenValueEnd(): number | undefined {\n if (this._betweenValueEndInputValue !== undefined) {\n return this._betweenValueEndInputValue;\n } else if (this.keyFilterData) {\n if (\n this.keyFilterData.selector === 'between' &&\n typeof this.keyFilterData.value === 'object'\n ) {\n return Number(this.keyFilterData.value.end);\n }\n }\n }\n\n get stringValue(): string | undefined {\n return this.value !== undefined ? this.value.toString() : undefined;\n }\n\n get stringBetweenValueStart(): string | undefined {\n return this.betweenValueStart !== undefined\n ? this.betweenValueStart.toString()\n : undefined;\n }\n\n get stringBetweenValueEnd(): string | undefined {\n return this.betweenValueEnd !== undefined\n ? this.betweenValueEnd.toString()\n : undefined;\n }\n\n onSelectorChange = (\n updateFilter: (filter: HdsFilterBarFilter) => void,\n event: Event\n ): void => {\n const select = event.target as HTMLSelectElement;\n this._selectorInputValue =\n select.value as HdsFilterBarNumericalFilterSelector;\n if (this._selectorInputValue === 'between') {\n this._valueInputValue = undefined;\n } else {\n this._betweenValueStartInputValue = undefined;\n this._betweenValueEndInputValue = undefined;\n }\n this._updateFilter(updateFilter);\n };\n\n onValueChange = (\n updateFilter: (filter: HdsFilterBarFilter) => void,\n event: Event\n ): void => {\n const input = event.target as HTMLInputElement;\n this._valueInputValue = parseFloat(input.value);\n this._updateFilter(updateFilter);\n };\n\n onBetweenValueStartChange = (\n updateFilter: (filter: HdsFilterBarFilter) => void,\n event: Event\n ): void => {\n const input = event.target as HTMLInputElement;\n this._betweenValueStartInputValue = parseFloat(input.value);\n this._updateFilter(updateFilter);\n };\n\n onBetweenValueEndChange = (\n updateFilter: (filter: HdsFilterBarFilter) => void,\n event: Event\n ): void => {\n const input = event.target as HTMLInputElement;\n this._betweenValueEndInputValue = parseFloat(input.value);\n this._updateFilter(updateFilter);\n };\n\n onChange = (filter: HdsFilterBarFilter): void => {\n const { onChange } = this.args;\n if (onChange && typeof onChange === 'function') {\n onChange(filter);\n }\n };\n\n private _updateFilter = (\n updateFilter: (filter: HdsFilterBarFilter) => void\n ): void => {\n const addFilter = (): HdsFilterBarFilter => {\n const value =\n this._selectorInputValue === 'between'\n ? {\n start: this._betweenValueStartInputValue,\n end: this._betweenValueEndInputValue,\n }\n : this._valueInputValue;\n const newFilter = {\n type: 'numerical',\n text: this.args.text,\n data: {\n selector: this._selectorInputValue,\n value: value,\n },\n } as HdsFilterBarFilter;\n return newFilter;\n };\n\n if (this._isFormCompleted()) {\n updateFilter(addFilter());\n }\n };\n\n private _isFormCompleted = (): boolean => {\n if (this._selectorInputValue === 'between') {\n return (\n this._betweenValueStartInputValue !== undefined &&\n this._betweenValueEndInputValue !== undefined\n );\n } else {\n return (\n this._selectorInputValue !== undefined &&\n this._valueInputValue !== undefined\n );\n }\n };\n\n private _getSelectorText = (\n selector: HdsFilterBarNumericalFilterSelector\n ): string => {\n return this.hdsIntl.t(\n `hds.components.filter-bar.filter-group.numerical.selector-input.${selector}`,\n {\n default: NUMERICAL_SELECTORS_INPUT_TEXT[selector],\n }\n );\n };\n\n <template>\n <HdsFilterBarFilterGroupGeneric\n class=\"hds-filter-bar__filter-group__numerical\"\n @onChange={{this.onChange}}\n ...attributes\n as |G|\n >\n <fieldset class=\"hds-filter-bar__filter-group__fieldset\">\n <legend class=\"sr-only\">\n {{hdsT\n \"hds.components.filter-bar.filter-group.numerical.legend\"\n text=@text\n default=\"Filter by number\"\n }}\n </legend>\n <HdsFormSelectField\n @id={{this._selectorInputId}}\n name={{concat @key \"-selector\"}}\n class=\"hds-filter-bar__filter-group__field\"\n {{on \"change\" (fn this.onSelectorChange G.updateFilter)}}\n as |F|\n >\n <F.Label>\n {{hdsT\n \"hds.components.filter-bar.filter-group.numerical.label\"\n default=\"Number is\"\n }}\n </F.Label>\n <F.Options>\n <option value=\"\">{{hdsT\n \"hds.components.filter-bar.filter-group.numerical.selector-input.default-value\"\n default=\"Pick a selector\"\n }}</option>\n {{#each this._selectorValues as |selectorValue|}}\n <option\n value={{selectorValue}}\n selected={{eq selectorValue this.selector}}\n >{{this._getSelectorText selectorValue}}</option>\n {{/each}}\n </F.Options>\n </HdsFormSelectField>\n {{#if (eq this.selector \"between\")}}\n <HdsLayoutFlex @gap=\"8\">\n <HdsFormTextInputBase\n @id={{this._betweenValueStartInputId}}\n @type=\"text\"\n @value={{this.stringBetweenValueStart}}\n name={{concat @key \"-between-start\"}}\n aria-label={{hdsT\n \"hds.components.filter-bar.between-value-inputs.start.aria-label\"\n default=\"Number start value\"\n }}\n placeholder={{hdsT\n \"hds.components.filter-bar.between-value-inputs.start.placeholder\"\n default=\"Start\"\n }}\n class=\"hds-filter-bar__filter-group__field hds-filter-bar__filter-group__field--between\"\n {{on \"change\" (fn this.onBetweenValueStartChange G.updateFilter)}}\n />\n <HdsFormTextInputBase\n @id={{this._betweenValueEndInputId}}\n @type=\"text\"\n @value={{this.stringBetweenValueEnd}}\n name={{concat @key \"-between-end\"}}\n aria-label={{hdsT\n \"hds.components.filter-bar.between-value-inputs.end.aria-label\"\n default=\"Number end value\"\n }}\n placeholder={{hdsT\n \"hds.components.filter-bar.between-value-inputs.end.placeholder\"\n default=\"End\"\n }}\n class=\"hds-filter-bar__filter-group__field hds-filter-bar__filter-group__field--between\"\n {{on \"change\" (fn this.onBetweenValueEndChange G.updateFilter)}}\n />\n </HdsLayoutFlex>\n {{else}}\n <HdsFormTextInputBase\n @id={{this._valueInputId}}\n @type=\"text\"\n @value={{this.stringValue}}\n name={{concat @key \"-value\"}}\n aria-label={{hdsT\n \"hds.components.filter-bar.filter-group.numerical.value-input.aria-label\"\n default=\"Number value\"\n }}\n placeholder={{hdsT\n \"hds.components.filter-bar.filter-group.numerical.value-input.placeholder\"\n default=\"Enter a value\"\n }}\n class=\"hds-filter-bar__filter-group__field\"\n {{on \"change\" (fn this.onValueChange G.updateFilter)}}\n />\n {{/if}}\n </fieldset>\n </HdsFilterBarFilterGroupGeneric>\n </template>\n}\n"],"names":["NUMERICAL_SELECTORS","Object","values","HdsFilterBarNumericalFilterSelectorValues","NUMERICAL_SELECTORS_TEXT","lessThan","lessThanOrEqualTo","equalTo","greaterThanOrEqualTo","greaterThan","between","NUMERICAL_SELECTORS_INPUT_TEXT","HdsFilterBarFilterGroupNumerical","Component","g","prototype","service","i","tracked","_selectorValues","_selectorInputId","guidFor","_valueInputId","_betweenValueStartInputId","_betweenValueEndInputId","keyFilterData","keyFilter","args","type","data","undefined","selector","_selectorInputValue","value","_valueInputValue","Number","betweenValueStart","_betweenValueStartInputValue","start","betweenValueEnd","_betweenValueEndInputValue","end","stringValue","toString","stringBetweenValueStart","stringBetweenValueEnd","onSelectorChange","updateFilter","event","select","target","_updateFilter","onValueChange","input","parseFloat","onBetweenValueStartChange","onBetweenValueEndChange","onChange","filter","addFilter","newFilter","text","_isFormCompleted","_getSelectorText","hdsIntl","t","default","setComponentTemplate","precompileTemplate","strictMode","scope","HdsFilterBarFilterGroupGeneric","hdsT","HdsFormSelectField","concat","on","fn","eq","HdsLayoutFlex","HdsFormTextInputBase"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"numerical.js","sources":["../../../../../src/components/hds/filter-bar/filter-group/numerical.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2026\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { guidFor } from '@ember/object/internals';\nimport { service } from '@ember/service';\nimport { concat, fn } from '@ember/helper';\nimport { on } from '@ember/modifier';\nimport { eq } from 'ember-truth-helpers';\n\nimport { HdsFilterBarNumericalFilterSelectorValues } from '../types.ts';\nimport hdsT from '../../../../helpers/hds-t.ts';\nimport HdsFilterBarFilterGroupGeneric from './generic.gts';\nimport HdsFormSelectField from '../../form/select/field.gts';\nimport HdsLayoutFlex from '../../layout/flex/index.gts';\nimport HdsFormTextInputBase from '../../form/text-input/base.gts';\n\nimport type { HdsFilterBarFilterGroupGenericSignature } from './generic.gts';\nimport type HdsIntlService from '../../../../services/hds-intl.ts';\nimport type {\n HdsFilterBarFilter,\n HdsFilterBarNumericalFilterData,\n HdsFilterBarNumericalFilterSelector,\n} from '../types.ts';\n\nexport const NUMERICAL_SELECTORS: HdsFilterBarNumericalFilterSelector[] =\n Object.values(HdsFilterBarNumericalFilterSelectorValues);\n\nexport const NUMERICAL_SELECTORS_TEXT: Record<\n HdsFilterBarNumericalFilterSelector,\n string\n> = {\n [HdsFilterBarNumericalFilterSelectorValues.lessThan]: '<',\n [HdsFilterBarNumericalFilterSelectorValues.lessThanOrEqualTo]: '≤',\n [HdsFilterBarNumericalFilterSelectorValues.equalTo]: '=',\n [HdsFilterBarNumericalFilterSelectorValues.greaterThanOrEqualTo]: '≥',\n [HdsFilterBarNumericalFilterSelectorValues.greaterThan]: '>',\n [HdsFilterBarNumericalFilterSelectorValues.between]: 'between',\n};\n\nexport const NUMERICAL_SELECTORS_INPUT_TEXT: Record<\n HdsFilterBarNumericalFilterSelector,\n string\n> = {\n [HdsFilterBarNumericalFilterSelectorValues.lessThan]: 'Less than (<)',\n [HdsFilterBarNumericalFilterSelectorValues.lessThanOrEqualTo]:\n 'Less than or equal to (≤)',\n [HdsFilterBarNumericalFilterSelectorValues.equalTo]: 'Equal to (=)',\n [HdsFilterBarNumericalFilterSelectorValues.greaterThanOrEqualTo]:\n 'Greater than or equal to (≥)',\n [HdsFilterBarNumericalFilterSelectorValues.greaterThan]: 'Greater than (>)',\n [HdsFilterBarNumericalFilterSelectorValues.between]: 'Between',\n};\n\nexport interface HdsFilterBarFilterGroupNumericalSignature {\n Args: {\n key: string;\n keyFilter?: HdsFilterBarFilter;\n text?: string;\n onChange?: (filter: HdsFilterBarFilter) => void;\n };\n Blocks: {\n default: [];\n };\n Element: HdsFilterBarFilterGroupGenericSignature['Element'];\n}\n\nexport default class HdsFilterBarFilterGroupNumerical extends Component<HdsFilterBarFilterGroupNumericalSignature> {\n @service hdsIntl!: HdsIntlService;\n\n @tracked private _selectorInputValue:\n | HdsFilterBarNumericalFilterSelector\n | undefined;\n @tracked private _valueInputValue: number | undefined;\n @tracked private _betweenValueStartInputValue: number | undefined;\n @tracked private _betweenValueEndInputValue: number | undefined;\n\n private _selectorValues = NUMERICAL_SELECTORS;\n private _selectorInputId = 'selector-input-' + guidFor(this);\n private _valueInputId = 'value-input-' + guidFor(this);\n private _betweenValueStartInputId =\n 'between-value-start-input-' + guidFor(this);\n private _betweenValueEndInputId = 'between-value-end-input-' + guidFor(this);\n\n get keyFilterData(): HdsFilterBarNumericalFilterData | undefined {\n const { keyFilter } = this.args;\n if (keyFilter && keyFilter.type === 'numerical') {\n return keyFilter.data;\n }\n return undefined;\n }\n\n get selector(): HdsFilterBarNumericalFilterSelector | undefined {\n if (this._selectorInputValue !== undefined) {\n return this._selectorInputValue;\n } else if (this.keyFilterData) {\n return this.keyFilterData.selector;\n }\n }\n\n get value(): number | undefined {\n if (this._valueInputValue !== undefined) {\n return this._valueInputValue;\n } else if (this.keyFilterData) {\n if (this.keyFilterData.selector !== 'between') {\n return Number(this.keyFilterData.value);\n }\n }\n }\n\n get betweenValueStart(): number | undefined {\n if (this._betweenValueStartInputValue !== undefined) {\n return this._betweenValueStartInputValue;\n } else if (this.keyFilterData) {\n if (\n this.keyFilterData.selector === 'between' &&\n typeof this.keyFilterData.value === 'object'\n ) {\n return Number(this.keyFilterData.value.start);\n }\n }\n }\n\n get betweenValueEnd(): number | undefined {\n if (this._betweenValueEndInputValue !== undefined) {\n return this._betweenValueEndInputValue;\n } else if (this.keyFilterData) {\n if (\n this.keyFilterData.selector === 'between' &&\n typeof this.keyFilterData.value === 'object'\n ) {\n return Number(this.keyFilterData.value.end);\n }\n }\n }\n\n get stringValue(): string | undefined {\n return this.value !== undefined ? this.value.toString() : undefined;\n }\n\n get stringBetweenValueStart(): string | undefined {\n return this.betweenValueStart !== undefined\n ? this.betweenValueStart.toString()\n : undefined;\n }\n\n get stringBetweenValueEnd(): string | undefined {\n return this.betweenValueEnd !== undefined\n ? this.betweenValueEnd.toString()\n : undefined;\n }\n\n onSelectorChange = (\n updateFilter: (filter: HdsFilterBarFilter) => void,\n event: Event\n ): void => {\n const select = event.target as HTMLSelectElement;\n this._selectorInputValue =\n select.value as HdsFilterBarNumericalFilterSelector;\n if (this._selectorInputValue === 'between') {\n this._valueInputValue = undefined;\n } else {\n this._betweenValueStartInputValue = undefined;\n this._betweenValueEndInputValue = undefined;\n }\n this._updateFilter(updateFilter);\n };\n\n onValueChange = (\n updateFilter: (filter: HdsFilterBarFilter) => void,\n event: Event\n ): void => {\n const input = event.target as HTMLInputElement;\n this._valueInputValue = parseFloat(input.value);\n this._updateFilter(updateFilter);\n };\n\n onBetweenValueStartChange = (\n updateFilter: (filter: HdsFilterBarFilter) => void,\n event: Event\n ): void => {\n const input = event.target as HTMLInputElement;\n this._betweenValueStartInputValue = parseFloat(input.value);\n this._updateFilter(updateFilter);\n };\n\n onBetweenValueEndChange = (\n updateFilter: (filter: HdsFilterBarFilter) => void,\n event: Event\n ): void => {\n const input = event.target as HTMLInputElement;\n this._betweenValueEndInputValue = parseFloat(input.value);\n this._updateFilter(updateFilter);\n };\n\n onChange = (filter: HdsFilterBarFilter): void => {\n const { onChange } = this.args;\n if (onChange && typeof onChange === 'function') {\n onChange(filter);\n }\n };\n\n private _updateFilter = (\n updateFilter: (filter: HdsFilterBarFilter) => void\n ): void => {\n const addFilter = (): HdsFilterBarFilter => {\n const value =\n this._selectorInputValue === 'between'\n ? {\n start: this._betweenValueStartInputValue,\n end: this._betweenValueEndInputValue,\n }\n : this._valueInputValue;\n const newFilter = {\n type: 'numerical',\n text: this.args.text,\n data: {\n selector: this._selectorInputValue,\n value: value,\n },\n } as HdsFilterBarFilter;\n return newFilter;\n };\n\n if (this._isFormCompleted()) {\n updateFilter(addFilter());\n }\n };\n\n private _isFormCompleted = (): boolean => {\n if (this._selectorInputValue === 'between') {\n return (\n this._betweenValueStartInputValue !== undefined &&\n this._betweenValueEndInputValue !== undefined\n );\n } else {\n return (\n this._selectorInputValue !== undefined &&\n this._valueInputValue !== undefined\n );\n }\n };\n\n private _getSelectorText = (\n selector: HdsFilterBarNumericalFilterSelector\n ): string => {\n return this.hdsIntl.t(\n `hds.components.filter-bar.filter-group.numerical.selector-input.${selector}`,\n {\n default: NUMERICAL_SELECTORS_INPUT_TEXT[selector],\n }\n );\n };\n\n <template>\n <HdsFilterBarFilterGroupGeneric\n class=\"hds-filter-bar__filter-group__numerical\"\n @onChange={{this.onChange}}\n ...attributes\n as |G|\n >\n <fieldset class=\"hds-filter-bar__filter-group__fieldset\">\n <legend class=\"sr-only\">\n {{hdsT\n \"hds.components.filter-bar.filter-group.numerical.legend\"\n text=@text\n default=\"Filter by number\"\n }}\n </legend>\n <HdsFormSelectField\n @id={{this._selectorInputId}}\n name={{concat @key \"-selector\"}}\n class=\"hds-filter-bar__filter-group__field\"\n {{on \"change\" (fn this.onSelectorChange G.updateFilter)}}\n as |F|\n >\n <F.Label>\n {{hdsT\n \"hds.components.filter-bar.filter-group.numerical.label\"\n default=\"Number is\"\n }}\n </F.Label>\n <F.Options>\n <option value=\"\">{{hdsT\n \"hds.components.filter-bar.filter-group.numerical.selector-input.default-value\"\n default=\"Pick a selector\"\n }}</option>\n {{#each this._selectorValues as |selectorValue|}}\n <option\n value={{selectorValue}}\n selected={{eq selectorValue this.selector}}\n >{{this._getSelectorText selectorValue}}</option>\n {{/each}}\n </F.Options>\n </HdsFormSelectField>\n {{#if (eq this.selector \"between\")}}\n <HdsLayoutFlex @gap=\"8\">\n <HdsFormTextInputBase\n @id={{this._betweenValueStartInputId}}\n @type=\"text\"\n @value={{this.stringBetweenValueStart}}\n name={{concat @key \"-between-start\"}}\n aria-label={{hdsT\n \"hds.components.filter-bar.between-value-inputs.start.aria-label\"\n default=\"Number start value\"\n }}\n placeholder={{hdsT\n \"hds.components.filter-bar.between-value-inputs.start.placeholder\"\n default=\"Start\"\n }}\n class=\"hds-filter-bar__filter-group__field hds-filter-bar__filter-group__field--between\"\n {{on \"change\" (fn this.onBetweenValueStartChange G.updateFilter)}}\n />\n <HdsFormTextInputBase\n @id={{this._betweenValueEndInputId}}\n @type=\"text\"\n @value={{this.stringBetweenValueEnd}}\n name={{concat @key \"-between-end\"}}\n aria-label={{hdsT\n \"hds.components.filter-bar.between-value-inputs.end.aria-label\"\n default=\"Number end value\"\n }}\n placeholder={{hdsT\n \"hds.components.filter-bar.between-value-inputs.end.placeholder\"\n default=\"End\"\n }}\n class=\"hds-filter-bar__filter-group__field hds-filter-bar__filter-group__field--between\"\n {{on \"change\" (fn this.onBetweenValueEndChange G.updateFilter)}}\n />\n </HdsLayoutFlex>\n {{else}}\n <HdsFormTextInputBase\n @id={{this._valueInputId}}\n @type=\"text\"\n @value={{this.stringValue}}\n name={{concat @key \"-value\"}}\n aria-label={{hdsT\n \"hds.components.filter-bar.filter-group.numerical.value-input.aria-label\"\n default=\"Number value\"\n }}\n placeholder={{hdsT\n \"hds.components.filter-bar.filter-group.numerical.value-input.placeholder\"\n default=\"Enter a value\"\n }}\n class=\"hds-filter-bar__filter-group__field\"\n {{on \"change\" (fn this.onValueChange G.updateFilter)}}\n />\n {{/if}}\n </fieldset>\n </HdsFilterBarFilterGroupGeneric>\n </template>\n}\n"],"names":["NUMERICAL_SELECTORS","Object","values","HdsFilterBarNumericalFilterSelectorValues","NUMERICAL_SELECTORS_TEXT","lessThan","lessThanOrEqualTo","equalTo","greaterThanOrEqualTo","greaterThan","between","NUMERICAL_SELECTORS_INPUT_TEXT","HdsFilterBarFilterGroupNumerical","Component","g","prototype","service","i","tracked","_selectorValues","_selectorInputId","guidFor","_valueInputId","_betweenValueStartInputId","_betweenValueEndInputId","keyFilterData","keyFilter","args","type","data","undefined","selector","_selectorInputValue","value","_valueInputValue","Number","betweenValueStart","_betweenValueStartInputValue","start","betweenValueEnd","_betweenValueEndInputValue","end","stringValue","toString","stringBetweenValueStart","stringBetweenValueEnd","onSelectorChange","updateFilter","event","select","target","_updateFilter","onValueChange","input","parseFloat","onBetweenValueStartChange","onBetweenValueEndChange","onChange","filter","addFilter","newFilter","text","_isFormCompleted","_getSelectorText","hdsIntl","t","default","setComponentTemplate","precompileTemplate","strictMode","scope","HdsFilterBarFilterGroupGeneric","hdsT","HdsFormSelectField","concat","on","fn","eq","HdsLayoutFlex","HdsFormTextInputBase"],"mappings":";;;;;;;;;;;;;;;;;AAAA;;;AAGC;AAyBM,MAAMA,mBAAqB,GAChCC,MAAA,CAAOC,MAAM,CAACC,yCAAA;AAET,MAAMC,wBAEL,GACJ;AACF,EAAA,CAACD,yCAAA,CAA0CE,QAAQ,GAAG,GAAA;AACtD,EAAA,CAACF,yCAAA,CAA0CG,iBAAiB,GAAG,GAAA;AAC/D,EAAA,CAACH,yCAAA,CAA0CI,OAAO,GAAG,GAAA;AACrD,EAAA,CAACJ,yCAAA,CAA0CK,oBAAoB,GAAG,GAAA;AAClE,EAAA,CAACL,yCAAA,CAA0CM,WAAW,GAAG,GAAA;EACzD,CAACN,yCAAA,CAA0CO,OAAO,GAAG;AACvD;AAEO,MAAMC,8BAEL,GACJ;AACF,EAAA,CAACR,yCAAA,CAA0CE,QAAQ,GAAG,eAAA;AACtD,EAAA,CAACF,yCAAA,CAA0CG,iBAAiB,GAC1D,2BAAA;AACF,EAAA,CAACH,yCAAA,CAA0CI,OAAO,GAAG,cAAA;AACrD,EAAA,CAACJ,yCAAA,CAA0CK,oBAAoB,GAC7D,8BAAA;AACF,EAAA,CAACL,yCAAA,CAA0CM,WAAW,GAAG,kBAAA;EACzD,CAACN,yCAAA,CAA0CO,OAAO,GAAG;AACvD;AAee,MAAME,yCAAyCC,SAAA,CAAU;AAAA,EAAA;IAAAC,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,SAAA,EAAA,CACrEC,OAAA,CAAA,CAAA;AAAA;EAAA,QAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,SAAA,CAAA,EAAA,MAAA;AAAA,EAAA;IAAAH,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,qBAAA,EAAA,CAEAG,OAAA,CAAA,CAAA;AAAA;EAAA,oBAAA,IAAAD,CAAA,CAAA,IAAA,EAAA,qBAAA,CAAA,EAAA,MAAA;AAAA,EAAA;IAAAH,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,kBAAA,EAAA,CAGAG,OAAA,CAAA,CAAA;AAAA;EAAA,iBAAA,IAAAD,CAAA,CAAA,IAAA,EAAA,kBAAA,CAAA,EAAA,MAAA;AAAA,EAAA;IAAAH,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,8BAAA,EAAA,CACAG,OAAA,CAAA,CAAA;AAAA;EAAA,6BAAA,IAAAD,CAAA,CAAA,IAAA,EAAA,8BAAA,CAAA,EAAA,MAAA;AAAA,EAAA;IAAAH,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,4BAAA,EAAA,CACAG,OAAA,CAAA,CAAA;AAAA;EAAA,2BAAA,IAAAD,CAAA,CAAA,IAAA,EAAA,4BAAA,CAAA,EAAA,MAAA;AAEOE,EAAAA,kBAAkBnB,mBAAA;AAClBoB,EAAAA,gBAAA,GAAmB,iBAAA,GAAoBC,OAAA,CAAQ,IAAI,CAAA;AACnDC,EAAAA,aAAA,GAAgB,cAAA,GAAiBD,OAAA,CAAQ,IAAI,CAAA;AAC7CE,EAAAA,yBAAA,GACN,4BAAA,GAA+BF,OAAA,CAAQ,IAAI,CAAA;AACrCG,EAAAA,uBAAA,GAA0B,0BAAA,GAA6BH,OAAA,CAAQ,IAAI,CAAA;EAE3E,IAAII,aAAAA,GAA6D;IAC/D,MAAM;AAAEC,MAAAA;KAAW,GAAG,IAAI,CAACC,IAAI;AAC/B,IAAA,IAAID,SAAA,IAAaA,SAAA,CAAUE,IAAI,KAAK,WAAA,EAAa;MAC/C,OAAOF,UAAUG,IAAI;AACvB,IAAA;AACA,IAAA,OAAOC,SAAA;AACT,EAAA;EAEA,IAAIC,QAAAA,GAA4D;AAC9D,IAAA,IAAI,IAAI,CAACC,mBAAmB,KAAKF,SAAA,EAAW;MAC1C,OAAO,IAAI,CAACE,mBAAmB;AACjC,IAAA,CAAA,MAAO,IAAI,IAAI,CAACP,aAAa,EAAE;AAC7B,MAAA,OAAO,IAAI,CAACA,aAAa,CAACM,QAAQ;AACpC,IAAA;AACF,EAAA;EAEA,IAAIE,KAAAA,GAA4B;AAC9B,IAAA,IAAI,IAAI,CAACC,gBAAgB,KAAKJ,SAAA,EAAW;MACvC,OAAO,IAAI,CAACI,gBAAgB;AAC9B,IAAA,CAAA,MAAO,IAAI,IAAI,CAACT,aAAa,EAAE;AAC7B,MAAA,IAAI,IAAI,CAACA,aAAa,CAACM,QAAQ,KAAK,SAAA,EAAW;AAC7C,QAAA,OAAOI,MAAA,CAAO,IAAI,CAACV,aAAa,CAACQ,KAAK,CAAA;AACxC,MAAA;AACF,IAAA;AACF,EAAA;EAEA,IAAIG,iBAAAA,GAAwC;AAC1C,IAAA,IAAI,IAAI,CAACC,4BAA4B,KAAKP,SAAA,EAAW;MACnD,OAAO,IAAI,CAACO,4BAA4B;AAC1C,IAAA,CAAA,MAAO,IAAI,IAAI,CAACZ,aAAa,EAAE;AAC7B,MAAA,IACE,IAAI,CAACA,aAAa,CAACM,QAAQ,KAAK,SAAA,IAChC,OAAO,IAAI,CAACN,aAAa,CAACQ,KAAK,KAAK,QAAA,EACpC;QACA,OAAOE,OAAO,IAAI,CAACV,aAAa,CAACQ,KAAK,CAACK,KAAK,CAAA;AAC9C,MAAA;AACF,IAAA;AACF,EAAA;EAEA,IAAIC,eAAAA,GAAsC;AACxC,IAAA,IAAI,IAAI,CAACC,0BAA0B,KAAKV,SAAA,EAAW;MACjD,OAAO,IAAI,CAACU,0BAA0B;AACxC,IAAA,CAAA,MAAO,IAAI,IAAI,CAACf,aAAa,EAAE;AAC7B,MAAA,IACE,IAAI,CAACA,aAAa,CAACM,QAAQ,KAAK,SAAA,IAChC,OAAO,IAAI,CAACN,aAAa,CAACQ,KAAK,KAAK,QAAA,EACpC;QACA,OAAOE,OAAO,IAAI,CAACV,aAAa,CAACQ,KAAK,CAACQ,GAAG,CAAA;AAC5C,MAAA;AACF,IAAA;AACF,EAAA;EAEA,IAAIC,WAAAA,GAAkC;AACpC,IAAA,OAAO,IAAI,CAACT,KAAK,KAAKH,SAAA,GAAY,IAAI,CAACG,KAAK,CAACU,QAAQ,EAAA,GAAKb,SAAA;AAC5D,EAAA;EAEA,IAAIc,uBAAAA,GAA8C;AAChD,IAAA,OAAO,IAAI,CAACR,iBAAiB,KAAKN,SAAA,GAC9B,IAAI,CAACM,iBAAiB,CAACO,QAAQ,EAAA,GAC/Bb,SAAA;AACN,EAAA;EAEA,IAAIe,qBAAAA,GAA4C;AAC9C,IAAA,OAAO,IAAI,CAACN,eAAe,KAAKT,SAAA,GAC5B,IAAI,CAACS,eAAe,CAACI,QAAQ,EAAA,GAC7Bb,SAAA;AACN,EAAA;AAEAgB,EAAAA,gBAAA,GAAmBA,CACjBC,YAAkD,EAClDC,UACK;AACL,IAAA,MAAMC,MAAA,GAASD,KAAA,CAAME,MAAU;AAC/B,IAAA,IAAI,CAAClB,mBAAmB,GACtBiB,MAAA,CAAOhB,KAAS;AAClB,IAAA,IAAI,IAAI,CAACD,mBAAmB,KAAK,SAAA,EAAW;MAC1C,IAAI,CAACE,gBAAgB,GAAGJ,SAAA;AAC1B,IAAA,CAAA,MAAO;MACL,IAAI,CAACO,4BAA4B,GAAGP,SAAA;MACpC,IAAI,CAACU,0BAA0B,GAAGV,SAAA;AACpC,IAAA;AACA,IAAA,IAAI,CAACqB,aAAa,CAACJ,YAAA,CAAA;EACrB,CAAA;AAEAK,EAAAA,aAAA,GAAgBA,CACdL,YAAkD,EAClDC,UACK;AACL,IAAA,MAAMK,KAAA,GAAQL,KAAA,CAAME,MAAU;IAC9B,IAAI,CAAChB,gBAAgB,GAAGoB,UAAA,CAAWD,MAAMpB,KAAK,CAAA;AAC9C,IAAA,IAAI,CAACkB,aAAa,CAACJ,YAAA,CAAA;EACrB,CAAA;AAEAQ,EAAAA,yBAAA,GAA4BA,CAC1BR,YAAkD,EAClDC,UACK;AACL,IAAA,MAAMK,KAAA,GAAQL,KAAA,CAAME,MAAU;IAC9B,IAAI,CAACb,4BAA4B,GAAGiB,UAAA,CAAWD,MAAMpB,KAAK,CAAA;AAC1D,IAAA,IAAI,CAACkB,aAAa,CAACJ,YAAA,CAAA;EACrB,CAAA;AAEAS,EAAAA,uBAAA,GAA0BA,CACxBT,YAAkD,EAClDC,UACK;AACL,IAAA,MAAMK,KAAA,GAAQL,KAAA,CAAME,MAAU;IAC9B,IAAI,CAACV,0BAA0B,GAAGc,UAAA,CAAWD,MAAMpB,KAAK,CAAA;AACxD,IAAA,IAAI,CAACkB,aAAa,CAACJ,YAAA,CAAA;EACrB,CAAA;EAEAU,QAAA,GAAYC,MAAQ,IAAyB;IAC3C,MAAM;AAAED,MAAAA;KAAU,GAAG,IAAI,CAAC9B,IAAI;AAC9B,IAAA,IAAI8B,QAAA,IAAY,OAAOA,QAAA,KAAa,UAAA,EAAY;MAC9CA,QAAA,CAASC,MAAA,CAAA;AACX,IAAA;EACF,CAAA;EAEQP,gBACNJ,YAAkD,IAC7C;IACL,MAAMY,YAAYA,MAAI;AACpB,MAAA,MAAM1B,KAAA,GACJ,IAAI,CAACD,mBAAmB,KAAK,SAAA,GACzB;QACEM,KAAA,EAAO,IAAI,CAACD,4BAA4B;QACxCI,GAAA,EAAK,IAAI,CAACD;OACZ,GACA,IAAI,CAACN,gBAAgB;AAC3B,MAAA,MAAM0B,SAAA,GAAY;AAChBhC,QAAAA,IAAA,EAAM,WAAA;AACNiC,QAAAA,IAAA,EAAM,IAAI,CAAClC,IAAI,CAACkC,IAAI;AACpBhC,QAAAA,IAAA,EAAM;UACJE,QAAA,EAAU,IAAI,CAACC,mBAAmB;AAClCC,UAAAA,KAAA,EAAOA;AACT;OACG;AACL,MAAA,OAAO2B,SAAA;IACT,CAAA;AAEA,IAAA,IAAI,IAAI,CAACE,gBAAgB,EAAA,EAAI;AAC3Bf,MAAAA,YAAA,CAAaY,SAAA,EAAA,CAAA;AACf,IAAA;EACF,CAAA;EAEQG,gBAAA,GAAmBA,MAAW;AACpC,IAAA,IAAI,IAAI,CAAC9B,mBAAmB,KAAK,SAAA,EAAW;MAC1C,OACE,IAAI,CAACK,4BAA4B,KAAKP,aACtC,IAAI,CAACU,0BAA0B,KAAKV,SACtC;AACF,IAAA,CAAA,MAAO;MACL,OACE,IAAI,CAACE,mBAAmB,KAAKF,aAC7B,IAAI,CAACI,gBAAgB,KAAKJ,SAC5B;AACF,IAAA;EACF,CAAA;EAEQiC,gBAAA,GACNhC,QAAU,IACH;IACP,OAAO,IAAI,CAACiC,OAAO,CAACC,CAAC,CACnB,CAAA,gEAAA,EAAmElC,QAAA,CAAA,CAAU,EAC7E;MACEmC,OAAA,EAASvD,8BAA8B,CAACoB,QAAA;AAC1C,KAAA,CAAA;EAEJ,CAAA;AAEA,EAAA;IAAAoC,oBAAA,CAAAC,kBAAA,CAAA,m0FAAA,EAgGA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,8BAAA;cAAAC,UAAA;QAAAC,kBAAA;QAAAC,MAAA;QAAAC,EAAA;QAAAC,EAAA;QAAAC,EAAA;QAAAC,aAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
|
|
@@ -7,7 +7,7 @@ import { precompileTemplate } from '@ember/template-compilation';
|
|
|
7
7
|
import { setComponentTemplate } from '@ember/component';
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
|
-
* Copyright
|
|
10
|
+
* Copyright IBM Corp. 2021, 2026
|
|
11
11
|
* SPDX-License-Identifier: MPL-2.0
|
|
12
12
|
*/
|
|
13
13
|
class HdsFilterBarFilterGroupRadio extends Component {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"radio.js","sources":["../../../../../src/components/hds/filter-bar/filter-group/radio.gts"],"sourcesContent":["/**\n * Copyright
|
|
1
|
+
{"version":3,"file":"radio.js","sources":["../../../../../src/components/hds/filter-bar/filter-group/radio.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2026\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { guidFor } from '@ember/object/internals';\nimport { on } from '@ember/modifier';\n\nimport HdsFormRadioBase from '../../form/radio/base.gts';\nimport HdsTextBody from '../../text/body.gts';\n\nimport type { HdsFilterBarFilter } from '../types.ts';\n\nexport interface HdsFilterBarFilterGroupRadioSignature {\n Args: {\n value: string;\n label: string;\n name: string;\n searchValue?: string;\n keyFilter?: HdsFilterBarFilter;\n onChange?: (event: Event, label?: string) => void;\n };\n Blocks: {\n default: [];\n };\n Element: HTMLLabelElement;\n}\n\nexport default class HdsFilterBarFilterGroupRadio extends Component<HdsFilterBarFilterGroupRadioSignature> {\n private _elementId = 'radio' + guidFor(this);\n\n onChange = (event: Event): void => {\n const { onChange, label } = this.args;\n if (onChange && typeof onChange === 'function') {\n onChange(event, label);\n }\n };\n\n get isChecked(): boolean {\n const { keyFilter, value } = this.args;\n if (\n keyFilter &&\n keyFilter.type === 'single-select' &&\n value &&\n 'value' in keyFilter.data\n ) {\n return keyFilter.data.value === value;\n }\n return false;\n }\n\n get isHidden(): boolean {\n const { searchValue, label } = this.args;\n if (searchValue && searchValue.length > 0) {\n return !label.toLowerCase().includes(searchValue.toLowerCase());\n }\n return false;\n }\n\n get classNames(): string {\n const classes = [\n 'hds-filter-bar__filter-group__radio',\n 'hds-filter-bar__filter-group__selection-option',\n 'hds-typography-body-200',\n ];\n\n if (this.isHidden) {\n classes.push(`hds-filter-bar__filter-group__selection-option--hidden`);\n }\n\n return classes.join(' ');\n }\n\n <template>\n <label class={{this.classNames}} ...attributes for={{this._elementId}}>\n <HdsFormRadioBase\n class=\"hds-filter-bar__filter-group__selection-option__control\"\n id={{this._elementId}}\n name={{@name}}\n checked={{this.isChecked}}\n @value={{@value}}\n {{on \"change\" this.onChange}}\n />\n <HdsTextBody\n @tag=\"span\"\n @size=\"200\"\n @weight=\"medium\"\n class=\"hds-filter-bar__filter-group__selection-option__text-content\"\n >{{@label}}</HdsTextBody>\n </label>\n </template>\n}\n"],"names":["HdsFilterBarFilterGroupRadio","Component","_elementId","guidFor","onChange","event","label","args","isChecked","keyFilter","value","type","data","isHidden","searchValue","length","toLowerCase","includes","classNames","classes","push","join","setComponentTemplate","precompileTemplate","strictMode","scope","HdsFormRadioBase","on","HdsTextBody"],"mappings":";;;;;;;;AAAA;;;AAGC;AA0Bc,MAAMA,qCAAqCC,SAAA,CAAU;AAC1DC,EAAAA,UAAA,GAAa,OAAA,GAAUC,OAAA,CAAQ,IAAI,CAAA;EAE3CC,QAAA,GAAYC,KAAO,IAAY;IAC7B,MAAM;MAAED,QAAQ;AAAEE,MAAAA;KAAO,GAAG,IAAI,CAACC,IAAI;AACrC,IAAA,IAAIH,QAAA,IAAY,OAAOA,QAAA,KAAa,UAAA,EAAY;AAC9CA,MAAAA,QAAA,CAASC,KAAA,EAAOC,KAAA,CAAA;AAClB,IAAA;EACF,CAAA;EAEA,IAAIE,SAAAA,GAAqB;IACvB,MAAM;MAAEC,SAAS;AAAEC,MAAAA;KAAO,GAAG,IAAI,CAACH,IAAI;AACtC,IAAA,IACEE,SAAA,IACAA,UAAUE,IAAI,KAAK,mBACnBD,KAAA,IACA,OAAA,IAAWD,SAAA,CAAUG,IAAI,EACzB;AACA,MAAA,OAAOH,SAAA,CAAUG,IAAI,CAACF,KAAK,KAAKA,KAAA;AAClC,IAAA;AACA,IAAA,OAAO,KAAA;AACT,EAAA;EAEA,IAAIG,QAAAA,GAAoB;IACtB,MAAM;MAAEC,WAAW;AAAER,MAAAA;KAAO,GAAG,IAAI,CAACC,IAAI;AACxC,IAAA,IAAIO,WAAA,IAAeA,WAAA,CAAYC,MAAM,GAAG,CAAA,EAAG;AACzC,MAAA,OAAO,CAACT,KAAA,CAAMU,WAAW,GAAGC,QAAQ,CAACH,YAAYE,WAAW,EAAA,CAAA;AAC9D,IAAA;AACA,IAAA,OAAO,KAAA;AACT,EAAA;EAEA,IAAIE,UAAAA,GAAqB;IACvB,MAAMC,OAAA,GAAU,CACd,qCAAA,EACA,gDAAA,EACA,yBAAA,CACD;IAED,IAAI,IAAI,CAACN,QAAQ,EAAE;AACjBM,MAAAA,OAAA,CAAQC,IAAI,CAAC,CAAA,sDAAA,CAAwD,CAAA;AACvE,IAAA;AAEA,IAAA,OAAOD,OAAA,CAAQE,IAAI,CAAC,GAAA,CAAA;AACtB,EAAA;AAEA,EAAA;IAAAC,oBAAA,CAAAC,kBAAA,CAAA,+bAAA,EAiBA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,gBAAA;QAAAC,EAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
|
|
@@ -15,7 +15,7 @@ import { setComponentTemplate } from '@ember/component';
|
|
|
15
15
|
import { g, i } from 'decorator-transforms/runtime';
|
|
16
16
|
|
|
17
17
|
/**
|
|
18
|
-
* Copyright
|
|
18
|
+
* Copyright IBM Corp. 2021, 2026
|
|
19
19
|
* SPDX-License-Identifier: MPL-2.0
|
|
20
20
|
*/
|
|
21
21
|
const DEFAULT_DROPDOWN_HEIGHT = '600px';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filters-dropdown.js","sources":["../../../../src/components/hds/filter-bar/filters-dropdown.gts"],"sourcesContent":["/**\n * Copyright
|
|
1
|
+
{"version":3,"file":"filters-dropdown.js","sources":["../../../../src/components/hds/filter-bar/filters-dropdown.gts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2021, 2026\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { modifier } from 'ember-modifier';\nimport style from 'ember-style-modifier';\nimport { hash, fn } from '@ember/helper';\nimport { on } from '@ember/modifier';\n\nimport type { WithBoundArgs } from '@glint/template';\n\nimport hdsT from '../../../helpers/hds-t.ts';\nimport HdsDropdown from '../dropdown/index.gts';\nimport HdsFilterBarFilterGroup from './filter-group/index.gts';\nimport HdsFilterBarTabs from './tabs/index.gts';\nimport HdsButtonSet from '../button-set/index.gts';\nimport HdsButton from '../button/index.gts';\n\nimport type { HdsFilterBarFilters, HdsFilterBarFilter } from './types.ts';\nimport type { HdsDropdownSignature } from '../dropdown/index.gts';\n\nexport const DEFAULT_DROPDOWN_HEIGHT = '600px';\n\nexport interface HdsFilterBarFiltersDropdownSignature {\n Args: {\n filters: HdsFilterBarFilters;\n isLiveFilter?: boolean;\n height?: string;\n onFilter?: (filters: HdsFilterBarFilters) => void;\n onFocusOut?: HdsDropdownSignature['Args']['onFocusOut'];\n };\n Blocks: {\n default: [\n {\n FilterGroup?: WithBoundArgs<\n typeof HdsFilterBarFilterGroup,\n 'tab' | 'panel' | 'filters' | 'onChange'\n >;\n close: HdsDropdownSignature['Blocks']['default'][0]['close'];\n },\n ];\n };\n Element: HdsDropdownSignature['Element'];\n}\n\nexport default class HdsFilterBarFiltersDropdown extends Component<HdsFilterBarFiltersDropdownSignature> {\n @tracked internalFilters: HdsFilterBarFilters = {};\n\n private _syncFilters = modifier(() => {\n const { filters } = this.args;\n if (filters) {\n this.internalFilters = this._copyFilters(filters);\n } else {\n this.internalFilters = {};\n }\n });\n\n get isLiveFilter(): boolean {\n return this.args.isLiveFilter ?? false;\n }\n\n get dropdownHeightStyle(): Record<string, string> {\n const heightStyle: { [key: string]: string } = {};\n heightStyle['--filter-bar-filters-dropdown-height'] =\n this.args.height ?? DEFAULT_DROPDOWN_HEIGHT;\n return heightStyle;\n }\n\n onFilter = (key: string, keyFilter?: HdsFilterBarFilter): void => {\n this.internalFilters = this._updateFilter(key, keyFilter);\n\n if (this.isLiveFilter) {\n this._applyFilters();\n }\n };\n\n onApply = (closeDropdown: () => void): void => {\n this._applyFilters(closeDropdown);\n };\n\n onClear = (closeDropdown: () => void): void => {\n const { onFilter } = this.args;\n this.internalFilters = {};\n\n if (onFilter && typeof onFilter === 'function') {\n onFilter(this.internalFilters);\n }\n\n if (closeDropdown && typeof closeDropdown === 'function') {\n closeDropdown();\n }\n };\n\n private _copyFilters = (\n filters: HdsFilterBarFilters\n ): HdsFilterBarFilters => {\n const newFilters = {} as HdsFilterBarFilters;\n\n // Note: Due to the filters being an Ember object, structuredClone cannot be used here.\n // Further investigation will be done in a follow-up task: https://hashicorp.atlassian.net/browse/HDS-5907\n Object.keys(filters).forEach((k) => {\n newFilters[k] = JSON.parse(\n JSON.stringify(filters[k])\n ) as HdsFilterBarFilter;\n });\n\n return newFilters;\n };\n\n private _updateFilter = (\n key: string,\n keyFilter?: HdsFilterBarFilter\n ): HdsFilterBarFilters => {\n const newFilters = this._copyFilters(this.internalFilters);\n if (keyFilter === undefined) {\n delete newFilters[key];\n } else {\n Object.assign(newFilters, { [key]: keyFilter });\n }\n\n return { ...newFilters };\n };\n\n private _applyFilters = (closeDropdown?: () => void): void => {\n const { onFilter } = this.args;\n if (onFilter && typeof onFilter === 'function') {\n onFilter(this.internalFilters);\n }\n\n if (closeDropdown && typeof closeDropdown === 'function') {\n closeDropdown();\n }\n };\n\n <template>\n <HdsDropdown\n @listPosition=\"bottom-left\"\n @width=\"600px\"\n @onFocusOut={{@onFocusOut}}\n ...attributes\n class=\"hds-filter-bar__filters-dropdown\"\n {{style this.dropdownHeightStyle}}\n {{this._syncFilters}}\n as |D|\n >\n <D.ToggleButton\n @icon=\"filter\"\n @text={{hdsT\n \"hds.components.filter-bar.filters-dropdown.toggle-button\"\n default=\"Filters\"\n }}\n @color=\"secondary\"\n @size=\"small\"\n />\n <D.Generic>\n <HdsFilterBarTabs as |T|>\n {{yield\n (hash\n FilterGroup=(component\n HdsFilterBarFilterGroup\n tab=T.Tab\n panel=T.Panel\n onChange=this.onFilter\n filters=this.internalFilters\n )\n close=D.close\n )\n }}\n </HdsFilterBarTabs>\n </D.Generic>\n <D.Footer @hasDivider={{true}}>\n <HdsButtonSet>\n {{#unless this.isLiveFilter}}\n <HdsButton\n @text={{hdsT\n \"hds.components.filter-bar.filters-dropdown.apply\"\n default=\"Apply filters\"\n }}\n @size=\"small\"\n {{on \"click\" (fn this.onApply D.close)}}\n />\n {{/unless}}\n <HdsButton\n @text={{hdsT\n \"hds.components.filter-bar.filters-dropdown.clear\"\n default=\"Clear all filters\"\n }}\n @color=\"secondary\"\n @size=\"small\"\n {{on \"click\" (fn this.onClear D.close)}}\n />\n </HdsButtonSet>\n </D.Footer>\n </HdsDropdown>\n </template>\n}\n"],"names":["DEFAULT_DROPDOWN_HEIGHT","HdsFilterBarFiltersDropdown","Component","g","prototype","tracked","i","_syncFilters","modifier","filters","args","internalFilters","_copyFilters","isLiveFilter","dropdownHeightStyle","heightStyle","height","onFilter","key","keyFilter","_updateFilter","_applyFilters","onApply","closeDropdown","onClear","newFilters","Object","keys","forEach","k","JSON","parse","stringify","undefined","assign","setComponentTemplate","precompileTemplate","strictMode","scope","HdsDropdown","style","hdsT","HdsFilterBarTabs","hash","HdsFilterBarFilterGroup","HdsButtonSet","HdsButton","on","fn"],"mappings":"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"}
|