@hashicorp/design-system-components 4.16.0 → 4.17.0
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/README.md +4 -8
- package/declarations/components/hds/advanced-table/expandable-tr-group.d.ts +2 -1
- package/declarations/components/hds/advanced-table/expandable-tr-group.d.ts.map +1 -1
- package/declarations/components/hds/advanced-table/index.d.ts +1 -2
- package/declarations/components/hds/advanced-table/index.d.ts.map +1 -1
- package/declarations/components/hds/advanced-table/td.d.ts +1 -3
- package/declarations/components/hds/advanced-table/td.d.ts.map +1 -1
- package/declarations/components/hds/advanced-table/th-sort.d.ts +1 -3
- package/declarations/components/hds/advanced-table/th-sort.d.ts.map +1 -1
- package/declarations/components/hds/advanced-table/th.d.ts +1 -3
- package/declarations/components/hds/advanced-table/th.d.ts.map +1 -1
- package/declarations/components/hds/alert/index.d.ts +2 -1
- package/declarations/components/hds/alert/index.d.ts.map +1 -1
- package/declarations/components/hds/app-footer/status-link.d.ts +3 -2
- package/declarations/components/hds/app-footer/status-link.d.ts.map +1 -1
- package/declarations/components/hds/app-header/index.d.ts +2 -1
- package/declarations/components/hds/app-header/index.d.ts.map +1 -1
- package/declarations/components/hds/app-side-nav/index.d.ts +2 -1
- package/declarations/components/hds/app-side-nav/index.d.ts.map +1 -1
- package/declarations/components/hds/app-side-nav/portal/target.d.ts.map +1 -1
- package/declarations/components/hds/breadcrumb/item.d.ts +1 -1
- package/declarations/components/hds/breadcrumb/item.d.ts.map +1 -1
- package/declarations/components/hds/code-block/copy-button.d.ts +5 -2
- package/declarations/components/hds/code-block/copy-button.d.ts.map +1 -1
- package/declarations/components/hds/code-block/index.d.ts +3 -0
- package/declarations/components/hds/code-block/index.d.ts.map +1 -1
- package/declarations/components/hds/code-editor/index.d.ts +6 -2
- package/declarations/components/hds/code-editor/index.d.ts.map +1 -1
- package/declarations/components/hds/code-editor/title.d.ts +1 -1
- package/declarations/components/hds/code-editor/title.d.ts.map +1 -1
- package/declarations/components/hds/dropdown/list-item/interactive.d.ts +2 -1
- package/declarations/components/hds/dropdown/list-item/interactive.d.ts.map +1 -1
- package/declarations/components/hds/dropdown/toggle/icon.d.ts +2 -1
- package/declarations/components/hds/dropdown/toggle/icon.d.ts.map +1 -1
- package/declarations/components/hds/flyout/body.d.ts +2 -1
- package/declarations/components/hds/flyout/body.d.ts.map +1 -1
- package/declarations/components/hds/flyout/description.d.ts +2 -1
- package/declarations/components/hds/flyout/description.d.ts.map +1 -1
- package/declarations/components/hds/flyout/footer.d.ts +2 -1
- package/declarations/components/hds/flyout/footer.d.ts.map +1 -1
- package/declarations/components/hds/flyout/header.d.ts +2 -1
- package/declarations/components/hds/flyout/header.d.ts.map +1 -1
- package/declarations/components/hds/form/masked-input/base.d.ts +5 -2
- package/declarations/components/hds/form/masked-input/base.d.ts.map +1 -1
- package/declarations/components/hds/form/super-select/multiple/base.d.ts +1 -1
- package/declarations/components/hds/form/super-select/multiple/base.d.ts.map +1 -1
- package/declarations/components/hds/form/super-select/single/base.d.ts +1 -1
- package/declarations/components/hds/form/super-select/single/base.d.ts.map +1 -1
- package/declarations/components/hds/form/text-input/field.d.ts +3 -2
- package/declarations/components/hds/form/text-input/field.d.ts.map +1 -1
- package/declarations/components/hds/icon/index.d.ts +2 -1
- package/declarations/components/hds/icon/index.d.ts.map +1 -1
- package/declarations/components/hds/interactive/index.d.ts +1 -1
- package/declarations/components/hds/interactive/index.d.ts.map +1 -1
- package/declarations/components/hds/link/inline.d.ts +2 -1
- package/declarations/components/hds/link/inline.d.ts.map +1 -1
- package/declarations/components/hds/link/standalone.d.ts +2 -1
- package/declarations/components/hds/link/standalone.d.ts.map +1 -1
- package/declarations/components/hds/menu-primitive/index.d.ts +2 -1
- package/declarations/components/hds/menu-primitive/index.d.ts.map +1 -1
- package/declarations/components/hds/modal/body.d.ts +2 -1
- package/declarations/components/hds/modal/body.d.ts.map +1 -1
- package/declarations/components/hds/modal/footer.d.ts +2 -1
- package/declarations/components/hds/modal/footer.d.ts.map +1 -1
- package/declarations/components/hds/modal/header.d.ts +2 -1
- package/declarations/components/hds/modal/header.d.ts.map +1 -1
- package/declarations/components/hds/pagination/compact/index.d.ts +2 -1
- package/declarations/components/hds/pagination/compact/index.d.ts.map +1 -1
- package/declarations/components/hds/pagination/numbered/index.d.ts +3 -2
- package/declarations/components/hds/pagination/numbered/index.d.ts.map +1 -1
- package/declarations/components/hds/popover-primitive/index.d.ts +2 -1
- package/declarations/components/hds/popover-primitive/index.d.ts.map +1 -1
- package/declarations/components/hds/side-nav/header/icon-button.d.ts +2 -1
- package/declarations/components/hds/side-nav/header/icon-button.d.ts.map +1 -1
- package/declarations/components/hds/side-nav/index.d.ts +2 -1
- package/declarations/components/hds/side-nav/index.d.ts.map +1 -1
- package/declarations/components/hds/side-nav/portal/target.d.ts.map +1 -1
- package/declarations/components/hds/stepper/task/indicator.d.ts +1 -1
- package/declarations/components/hds/table/index.d.ts +2 -1
- package/declarations/components/hds/table/index.d.ts.map +1 -1
- package/declarations/components/hds/table/th-selectable.d.ts +3 -3
- package/declarations/components/hds/table/th-selectable.d.ts.map +1 -1
- package/declarations/components/hds/tabs/index.d.ts +2 -1
- package/declarations/components/hds/tabs/index.d.ts.map +1 -1
- package/declarations/components/hds/tag/index.d.ts +16 -0
- package/declarations/components/hds/tag/index.d.ts.map +1 -1
- package/declarations/components/hds/tag/types.d.ts +15 -0
- package/declarations/components/hds/tag/types.d.ts.map +1 -1
- package/declarations/components/hds/time/index.d.ts.map +1 -1
- package/declarations/helpers/hds-format-date.d.ts +16 -3
- package/declarations/helpers/hds-format-date.d.ts.map +1 -1
- package/declarations/helpers/hds-format-relative.d.ts +9 -3
- package/declarations/helpers/hds-format-relative.d.ts.map +1 -1
- package/declarations/helpers/hds-link-to-models.d.ts +7 -1
- package/declarations/helpers/hds-link-to-models.d.ts.map +1 -1
- package/declarations/helpers/hds-link-to-query.d.ts +7 -1
- package/declarations/helpers/hds-link-to-query.d.ts.map +1 -1
- package/declarations/instance-initializers/load-sprite.d.ts.map +1 -1
- package/declarations/{components/hds/advanced-table/helpers.d.ts → modifiers/hds-advanced-table-cell/dom-management.d.ts} +3 -4
- package/declarations/modifiers/hds-advanced-table-cell/dom-management.d.ts.map +1 -0
- package/declarations/modifiers/hds-advanced-table-cell/keyboard-navigation.d.ts +6 -0
- package/declarations/modifiers/hds-advanced-table-cell/keyboard-navigation.d.ts.map +1 -0
- package/declarations/modifiers/hds-advanced-table-cell.d.ts +26 -0
- package/declarations/modifiers/hds-advanced-table-cell.d.ts.map +1 -0
- package/declarations/modifiers/hds-clipboard.d.ts.map +1 -1
- package/declarations/modifiers/hds-code-editor/languages/rego.d.ts +48 -0
- package/declarations/modifiers/hds-code-editor/languages/rego.d.ts.map +1 -0
- package/declarations/modifiers/hds-code-editor/languages/sentinel.d.ts +4 -0
- package/declarations/modifiers/hds-code-editor/languages/sentinel.d.ts.map +1 -1
- package/declarations/modifiers/hds-code-editor/types.d.ts +2 -0
- package/declarations/modifiers/hds-code-editor/types.d.ts.map +1 -1
- package/declarations/modifiers/hds-code-editor.d.ts +9 -5
- package/declarations/modifiers/hds-code-editor.d.ts.map +1 -1
- package/declarations/modifiers/hds-tooltip.d.ts +4 -2
- package/declarations/modifiers/hds-tooltip.d.ts.map +1 -1
- package/declarations/services/hds-time-types.d.ts +7 -7
- package/declarations/services/hds-time-types.d.ts.map +1 -1
- package/declarations/services/hds-time.d.ts +3 -3
- package/declarations/services/hds-time.d.ts.map +1 -1
- package/declarations/template-registry.d.ts +2 -0
- package/declarations/template-registry.d.ts.map +1 -1
- package/dist/README.md +4 -8
- package/dist/_app_/modifiers/hds-advanced-table-cell/dom-management.js +1 -0
- package/dist/_app_/modifiers/hds-advanced-table-cell/keyboard-navigation.js +1 -0
- package/dist/_app_/modifiers/hds-advanced-table-cell.js +1 -0
- package/dist/_app_/modifiers/hds-code-editor/languages/rego.js +1 -0
- package/dist/components/hds/accordion/index.js.map +1 -1
- package/dist/components/hds/accordion/item/button.js +11 -4
- package/dist/components/hds/accordion/item/button.js.map +1 -1
- package/dist/components/hds/accordion/item/index.js +12 -11
- package/dist/components/hds/accordion/item/index.js.map +1 -1
- package/dist/components/hds/advanced-table/expandable-tr-group.js +16 -12
- package/dist/components/hds/advanced-table/expandable-tr-group.js.map +1 -1
- package/dist/components/hds/advanced-table/index.js +69 -53
- package/dist/components/hds/advanced-table/index.js.map +1 -1
- package/dist/components/hds/advanced-table/td.js +30 -36
- package/dist/components/hds/advanced-table/td.js.map +1 -1
- package/dist/components/hds/advanced-table/th-button-expand.js +13 -9
- package/dist/components/hds/advanced-table/th-button-expand.js.map +1 -1
- package/dist/components/hds/advanced-table/th-button-sort.js +8 -7
- package/dist/components/hds/advanced-table/th-button-sort.js.map +1 -1
- package/dist/components/hds/advanced-table/th-button-tooltip.js +7 -6
- package/dist/components/hds/advanced-table/th-button-tooltip.js.map +1 -1
- package/dist/components/hds/advanced-table/th-selectable.js +25 -17
- package/dist/components/hds/advanced-table/th-selectable.js.map +1 -1
- package/dist/components/hds/advanced-table/th-sort.js +30 -37
- package/dist/components/hds/advanced-table/th-sort.js.map +1 -1
- package/dist/components/hds/advanced-table/th.js +29 -36
- package/dist/components/hds/advanced-table/th.js.map +1 -1
- package/dist/components/hds/advanced-table/tr.js.map +1 -1
- package/dist/components/hds/alert/description.js.map +1 -1
- package/dist/components/hds/alert/index.js +19 -16
- package/dist/components/hds/alert/index.js.map +1 -1
- package/dist/components/hds/alert/title.js.map +1 -1
- package/dist/components/hds/app-footer/copyright.js.map +1 -1
- package/dist/components/hds/app-footer/index.js.map +1 -1
- package/dist/components/hds/app-footer/item.js.map +1 -1
- package/dist/components/hds/app-footer/legal-links.js.map +1 -1
- package/dist/components/hds/app-footer/link.js.map +1 -1
- package/dist/components/hds/app-footer/status-link.js.map +1 -1
- package/dist/components/hds/app-frame/index.js.map +1 -1
- package/dist/components/hds/app-frame/parts/footer.js.map +1 -1
- package/dist/components/hds/app-frame/parts/header.js.map +1 -1
- package/dist/components/hds/app-frame/parts/main.js.map +1 -1
- package/dist/components/hds/app-frame/parts/modals.js.map +1 -1
- package/dist/components/hds/app-frame/parts/sidebar.js.map +1 -1
- package/dist/components/hds/app-header/home-link.js.map +1 -1
- package/dist/components/hds/app-header/index.js +42 -34
- package/dist/components/hds/app-header/index.js.map +1 -1
- package/dist/components/hds/app-header/menu-button.js +11 -4
- package/dist/components/hds/app-header/menu-button.js.map +1 -1
- package/dist/components/hds/app-side-nav/index.js +44 -31
- package/dist/components/hds/app-side-nav/index.js.map +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 +15 -13
- package/dist/components/hds/app-side-nav/list/index.js.map +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.map +1 -1
- package/dist/components/hds/app-side-nav/list/title.js +13 -9
- package/dist/components/hds/app-side-nav/list/title.js.map +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 +31 -28
- package/dist/components/hds/app-side-nav/portal/target.js.map +1 -1
- package/dist/components/hds/app-side-nav/toggle-button.js.map +1 -1
- package/dist/components/hds/application-state/body.js.map +1 -1
- package/dist/components/hds/application-state/footer.js.map +1 -1
- package/dist/components/hds/application-state/header.js.map +1 -1
- package/dist/components/hds/application-state/index.js.map +1 -1
- package/dist/components/hds/application-state/media.js.map +1 -1
- package/dist/components/hds/badge/index.js.map +1 -1
- package/dist/components/hds/badge-count/index.js.map +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.map +1 -1
- package/dist/components/hds/button/index.js.map +1 -1
- package/dist/components/hds/button-set/index.js.map +1 -1
- package/dist/components/hds/card/container.js.map +1 -1
- package/dist/components/hds/code-block/copy-button.js +9 -5
- package/dist/components/hds/code-block/copy-button.js.map +1 -1
- package/dist/components/hds/code-block/description.js.map +1 -1
- package/dist/components/hds/code-block/index.js +27 -21
- package/dist/components/hds/code-block/index.js.map +1 -1
- package/dist/components/hds/code-block/title.js.map +1 -1
- package/dist/components/hds/code-editor/description.js +6 -5
- package/dist/components/hds/code-editor/description.js.map +1 -1
- package/dist/components/hds/code-editor/full-screen-button.js.map +1 -1
- package/dist/components/hds/code-editor/generic.js.map +1 -1
- package/dist/components/hds/code-editor/index.js +67 -52
- package/dist/components/hds/code-editor/index.js.map +1 -1
- package/dist/components/hds/code-editor/title.js +6 -5
- package/dist/components/hds/code-editor/title.js.map +1 -1
- package/dist/components/hds/copy/button/index.js +23 -20
- package/dist/components/hds/copy/button/index.js.map +1 -1
- package/dist/components/hds/copy/snippet/index.js +23 -20
- package/dist/components/hds/copy/snippet/index.js.map +1 -1
- package/dist/components/hds/dialog-primitive/body.js.map +1 -1
- package/dist/components/hds/dialog-primitive/description.js.map +1 -1
- package/dist/components/hds/dialog-primitive/footer.js.map +1 -1
- package/dist/components/hds/dialog-primitive/header.js.map +1 -1
- package/dist/components/hds/dialog-primitive/overlay.js.map +1 -1
- package/dist/components/hds/dialog-primitive/wrapper.js.map +1 -1
- package/dist/components/hds/disclosure-primitive/index.js +27 -21
- package/dist/components/hds/disclosure-primitive/index.js.map +1 -1
- package/dist/components/hds/dismiss-button/index.js.map +1 -1
- package/dist/components/hds/dropdown/footer.js.map +1 -1
- package/dist/components/hds/dropdown/header.js.map +1 -1
- package/dist/components/hds/dropdown/index.js +12 -5
- package/dist/components/hds/dropdown/index.js.map +1 -1
- package/dist/components/hds/dropdown/list-item/checkbox.js.map +1 -1
- package/dist/components/hds/dropdown/list-item/checkmark.js.map +1 -1
- package/dist/components/hds/dropdown/list-item/copy-item.js.map +1 -1
- package/dist/components/hds/dropdown/list-item/description.js.map +1 -1
- package/dist/components/hds/dropdown/list-item/generic.js.map +1 -1
- package/dist/components/hds/dropdown/list-item/interactive.js.map +1 -1
- package/dist/components/hds/dropdown/list-item/radio.js.map +1 -1
- package/dist/components/hds/dropdown/list-item/separator.js.map +1 -1
- package/dist/components/hds/dropdown/list-item/title.js.map +1 -1
- package/dist/components/hds/dropdown/toggle/button.js +12 -10
- package/dist/components/hds/dropdown/toggle/button.js.map +1 -1
- package/dist/components/hds/dropdown/toggle/chevron.js.map +1 -1
- package/dist/components/hds/dropdown/toggle/icon.js +20 -12
- package/dist/components/hds/dropdown/toggle/icon.js.map +1 -1
- package/dist/components/hds/flyout/body.js +2 -1
- package/dist/components/hds/flyout/body.js.map +1 -1
- package/dist/components/hds/flyout/description.js +1 -0
- package/dist/components/hds/flyout/description.js.map +1 -1
- package/dist/components/hds/flyout/footer.js +2 -1
- package/dist/components/hds/flyout/footer.js.map +1 -1
- package/dist/components/hds/flyout/header.js +2 -1
- package/dist/components/hds/flyout/header.js.map +1 -1
- package/dist/components/hds/flyout/index.js +33 -18
- package/dist/components/hds/flyout/index.js.map +1 -1
- package/dist/components/hds/form/character-count/index.js.map +1 -1
- package/dist/components/hds/form/checkbox/base.js.map +1 -1
- package/dist/components/hds/form/checkbox/field.js.map +1 -1
- package/dist/components/hds/form/checkbox/group.js.map +1 -1
- package/dist/components/hds/form/error/index.js.map +1 -1
- package/dist/components/hds/form/error/message.js.map +1 -1
- package/dist/components/hds/form/field/index.js +15 -7
- package/dist/components/hds/form/field/index.js.map +1 -1
- package/dist/components/hds/form/fieldset/index.js +15 -7
- package/dist/components/hds/form/fieldset/index.js.map +1 -1
- package/dist/components/hds/form/file-input/base.js.map +1 -1
- package/dist/components/hds/form/file-input/field.js.map +1 -1
- package/dist/components/hds/form/helper-text/index.js.map +1 -1
- package/dist/components/hds/form/indicator/index.js.map +1 -1
- package/dist/components/hds/form/label/index.js.map +1 -1
- package/dist/components/hds/form/legend/index.js.map +1 -1
- package/dist/components/hds/form/masked-input/base.js +45 -15
- package/dist/components/hds/form/masked-input/base.js.map +1 -1
- package/dist/components/hds/form/masked-input/field.js.map +1 -1
- package/dist/components/hds/form/radio/base.js.map +1 -1
- package/dist/components/hds/form/radio/field.js.map +1 -1
- package/dist/components/hds/form/radio/group.js.map +1 -1
- package/dist/components/hds/form/radio-card/description.js.map +1 -1
- package/dist/components/hds/form/radio-card/group.js.map +1 -1
- package/dist/components/hds/form/radio-card/index.js.map +1 -1
- package/dist/components/hds/form/radio-card/label.js.map +1 -1
- package/dist/components/hds/form/select/base.js.map +1 -1
- package/dist/components/hds/form/select/field.js.map +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 +38 -28
- package/dist/components/hds/form/super-select/multiple/base.js.map +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 +11 -10
- package/dist/components/hds/form/super-select/option-group.js.map +1 -1
- package/dist/components/hds/form/super-select/placeholder.js.map +1 -1
- package/dist/components/hds/form/super-select/single/base.js +17 -12
- package/dist/components/hds/form/super-select/single/base.js.map +1 -1
- package/dist/components/hds/form/super-select/single/field.js.map +1 -1
- package/dist/components/hds/form/text-input/base.js.map +1 -1
- package/dist/components/hds/form/text-input/field.js +21 -18
- package/dist/components/hds/form/text-input/field.js.map +1 -1
- package/dist/components/hds/form/textarea/base.js.map +1 -1
- package/dist/components/hds/form/textarea/field.js.map +1 -1
- package/dist/components/hds/form/toggle/base.js.map +1 -1
- package/dist/components/hds/form/toggle/field.js.map +1 -1
- package/dist/components/hds/form/toggle/group.js.map +1 -1
- package/dist/components/hds/form/visibility-toggle/index.js.map +1 -1
- package/dist/components/hds/icon/index.js +7 -3
- package/dist/components/hds/icon/index.js.map +1 -1
- package/dist/components/hds/icon-tile/index.js.map +1 -1
- package/dist/components/hds/interactive/index.js +12 -5
- package/dist/components/hds/interactive/index.js.map +1 -1
- package/dist/components/hds/link/inline.js.map +1 -1
- package/dist/components/hds/link/standalone.js.map +1 -1
- package/dist/components/hds/menu-primitive/index.js +37 -24
- package/dist/components/hds/menu-primitive/index.js.map +1 -1
- package/dist/components/hds/modal/body.js +1 -0
- package/dist/components/hds/modal/body.js.map +1 -1
- package/dist/components/hds/modal/footer.js +2 -1
- package/dist/components/hds/modal/footer.js.map +1 -1
- package/dist/components/hds/modal/header.js +1 -0
- package/dist/components/hds/modal/header.js.map +1 -1
- package/dist/components/hds/modal/index.js +30 -16
- package/dist/components/hds/modal/index.js.map +1 -1
- package/dist/components/hds/page-header/actions.js.map +1 -1
- package/dist/components/hds/page-header/badges.js.map +1 -1
- package/dist/components/hds/page-header/description.js.map +1 -1
- package/dist/components/hds/page-header/index.js.map +1 -1
- package/dist/components/hds/page-header/subtitle.js.map +1 -1
- package/dist/components/hds/page-header/title.js.map +1 -1
- package/dist/components/hds/pagination/compact/index.js +31 -28
- package/dist/components/hds/pagination/compact/index.js.map +1 -1
- package/dist/components/hds/pagination/info/index.js.map +1 -1
- package/dist/components/hds/pagination/nav/arrow.js +10 -4
- package/dist/components/hds/pagination/nav/arrow.js.map +1 -1
- package/dist/components/hds/pagination/nav/ellipsis.js.map +1 -1
- package/dist/components/hds/pagination/nav/number.js +10 -4
- package/dist/components/hds/pagination/nav/number.js.map +1 -1
- package/dist/components/hds/pagination/numbered/index.js +44 -47
- package/dist/components/hds/pagination/numbered/index.js.map +1 -1
- package/dist/components/hds/pagination/size-selector/index.js +12 -8
- package/dist/components/hds/pagination/size-selector/index.js.map +1 -1
- package/dist/components/hds/popover-primitive/index.js +130 -103
- package/dist/components/hds/popover-primitive/index.js.map +1 -1
- package/dist/components/hds/reveal/index.js +26 -24
- package/dist/components/hds/reveal/index.js.map +1 -1
- package/dist/components/hds/reveal/toggle/button.js.map +1 -1
- package/dist/components/hds/rich-tooltip/bubble.js.map +1 -1
- package/dist/components/hds/rich-tooltip/index.js +8 -7
- package/dist/components/hds/rich-tooltip/index.js.map +1 -1
- package/dist/components/hds/rich-tooltip/toggle.js.map +1 -1
- package/dist/components/hds/segmented-group/index.js.map +1 -1
- package/dist/components/hds/separator/index.js.map +1 -1
- package/dist/components/hds/side-nav/base.js.map +1 -1
- package/dist/components/hds/side-nav/header/home-link.js.map +1 -1
- package/dist/components/hds/side-nav/header/icon-button.js +1 -0
- package/dist/components/hds/side-nav/header/icon-button.js.map +1 -1
- package/dist/components/hds/side-nav/header/index.js.map +1 -1
- package/dist/components/hds/side-nav/index.js +47 -34
- package/dist/components/hds/side-nav/index.js.map +1 -1
- package/dist/components/hds/side-nav/list/back-link.js.map +1 -1
- package/dist/components/hds/side-nav/list/index.js +15 -13
- package/dist/components/hds/side-nav/list/index.js.map +1 -1
- package/dist/components/hds/side-nav/list/item.js.map +1 -1
- package/dist/components/hds/side-nav/list/link.js.map +1 -1
- package/dist/components/hds/side-nav/list/title.js +13 -9
- package/dist/components/hds/side-nav/list/title.js.map +1 -1
- package/dist/components/hds/side-nav/portal/index.js.map +1 -1
- package/dist/components/hds/side-nav/portal/target.js +31 -28
- package/dist/components/hds/side-nav/portal/target.js.map +1 -1
- package/dist/components/hds/side-nav/toggle-button.js.map +1 -1
- package/dist/components/hds/stepper/step/indicator.js.map +1 -1
- package/dist/components/hds/stepper/task/indicator.js.map +1 -1
- package/dist/components/hds/table/index.js +54 -40
- package/dist/components/hds/table/index.js.map +1 -1
- package/dist/components/hds/table/td.js.map +1 -1
- package/dist/components/hds/table/th-button-sort.js +8 -7
- package/dist/components/hds/table/th-button-sort.js.map +1 -1
- package/dist/components/hds/table/th-button-tooltip.js +7 -6
- package/dist/components/hds/table/th-button-tooltip.js.map +1 -1
- package/dist/components/hds/table/th-selectable.js +24 -25
- package/dist/components/hds/table/th-selectable.js.map +1 -1
- package/dist/components/hds/table/th-sort.js +12 -10
- package/dist/components/hds/table/th-sort.js.map +1 -1
- package/dist/components/hds/table/th.js +12 -10
- package/dist/components/hds/table/th.js.map +1 -1
- package/dist/components/hds/table/tr.js.map +1 -1
- package/dist/components/hds/tabs/index.js +77 -54
- package/dist/components/hds/tabs/index.js.map +1 -1
- package/dist/components/hds/tabs/panel.js +21 -14
- package/dist/components/hds/tabs/panel.js.map +1 -1
- package/dist/components/hds/tabs/tab.js +29 -13
- package/dist/components/hds/tabs/tab.js.map +1 -1
- package/dist/components/hds/tag/index.js +43 -3
- package/dist/components/hds/tag/index.js.map +1 -1
- package/dist/components/hds/tag/types.js +16 -1
- package/dist/components/hds/tag/types.js.map +1 -1
- package/dist/components/hds/text/body.js.map +1 -1
- package/dist/components/hds/text/code.js.map +1 -1
- package/dist/components/hds/text/display.js.map +1 -1
- package/dist/components/hds/text/index.js.map +1 -1
- package/dist/components/hds/time/index.js +19 -14
- package/dist/components/hds/time/index.js.map +1 -1
- package/dist/components/hds/time/range.js +11 -12
- package/dist/components/hds/time/range.js.map +1 -1
- package/dist/components/hds/time/single.js.map +1 -1
- package/dist/components/hds/toast/index.js.map +1 -1
- package/dist/components/hds/tooltip-button/index.js.map +1 -1
- package/dist/components/hds/yield/index.js.map +1 -1
- package/dist/components.js +1 -1
- package/dist/helpers/hds-format-date.js.map +1 -1
- package/dist/helpers/hds-format-relative.js.map +1 -1
- package/dist/instance-initializers/load-sprite.js +3 -1
- package/dist/instance-initializers/load-sprite.js.map +1 -1
- package/dist/modifiers/hds-advanced-table-cell/dom-management.js +51 -0
- package/dist/modifiers/hds-advanced-table-cell/dom-management.js.map +1 -0
- package/dist/{components/hds/advanced-table/helpers.js → modifiers/hds-advanced-table-cell/keyboard-navigation.js} +5 -44
- package/dist/modifiers/hds-advanced-table-cell/keyboard-navigation.js.map +1 -0
- package/dist/modifiers/hds-advanced-table-cell.js +55 -0
- package/dist/modifiers/hds-advanced-table-cell.js.map +1 -0
- package/dist/modifiers/hds-clipboard.js +29 -35
- package/dist/modifiers/hds-clipboard.js.map +1 -1
- package/dist/modifiers/hds-code-editor/languages/rego.js +191 -0
- package/dist/modifiers/hds-code-editor/languages/rego.js.map +1 -0
- package/dist/modifiers/hds-code-editor/languages/sentinel.js +5 -0
- package/dist/modifiers/hds-code-editor/languages/sentinel.js.map +1 -1
- package/dist/modifiers/hds-code-editor/types.js +2 -0
- package/dist/modifiers/hds-code-editor/types.js.map +1 -1
- package/dist/modifiers/hds-code-editor.js +182 -155
- package/dist/modifiers/hds-code-editor.js.map +1 -1
- package/dist/modifiers/hds-tooltip.js +128 -108
- package/dist/modifiers/hds-tooltip.js.map +1 -1
- package/dist/services/hds-time.js +29 -23
- package/dist/services/hds-time.js.map +1 -1
- package/dist/styles/@hashicorp/design-system-components.css +94 -3
- package/dist/styles/components/advanced-table.scss +4 -0
- package/dist/styles/components/badge-count.scss +1 -1
- package/dist/styles/components/badge.scss +11 -1
- package/dist/styles/components/rich-tooltip.scss +3 -1
- package/dist/styles/components/tag.scss +28 -0
- package/dist/styles/components/time.scss +7 -0
- package/dist/styles/components/tooltip.scss +49 -0
- package/dist/utils/hds-aria-described-by.js +14 -17
- package/dist/utils/hds-aria-described-by.js.map +1 -1
- package/package.json +30 -31
- package/declarations/components/hds/advanced-table/helpers.d.ts.map +0 -1
- package/dist/_app_/components/hds/advanced-table/helpers.js +0 -1
- package/dist/_rollupPluginBabelHelpers-C_TsMG3M.js +0 -57
- package/dist/_rollupPluginBabelHelpers-C_TsMG3M.js.map +0 -1
- package/dist/components/hds/advanced-table/helpers.js.map +0 -1
|
@@ -1,32 +1,53 @@
|
|
|
1
|
-
import { _ as _applyDecoratedDescriptor, b as _initializerDefineProperty, a as _defineProperty } from '../../../_rollupPluginBabelHelpers-C_TsMG3M.js';
|
|
2
1
|
import Component from '@glimmer/component';
|
|
3
2
|
import { action } from '@ember/object';
|
|
4
3
|
import { assert } from '@ember/debug';
|
|
5
4
|
import { tracked } from '@glimmer/tracking';
|
|
6
5
|
import { guidFor } from '@ember/object/internals';
|
|
7
|
-
import
|
|
8
|
-
import { HdsAdvancedTableDensityValues, HdsAdvancedTableVerticalAlignmentValues
|
|
6
|
+
import { modifier } from 'ember-modifier';
|
|
7
|
+
import { HdsAdvancedTableThSortOrderValues, HdsAdvancedTableDensityValues, HdsAdvancedTableVerticalAlignmentValues } from './types.js';
|
|
9
8
|
import { precompileTemplate } from '@ember/template-compilation';
|
|
9
|
+
import { g, i, n } from 'decorator-transforms/runtime';
|
|
10
10
|
import { setComponentTemplate } from '@ember/component';
|
|
11
11
|
|
|
12
|
-
var TEMPLATE = precompileTemplate("{{!\n Copyright (c) HashiCorp, Inc.\n SPDX-License-Identifier: MPL-2.0\n}}\n\n<div\n class={{this.classNames}}\n ...attributes\n role=\"grid\"\n aria-describedby={{this._captionId}}\n {{style grid-template-columns=this.gridTemplateColumns}}\n {{
|
|
12
|
+
var TEMPLATE = precompileTemplate("{{!\n Copyright (c) HashiCorp, Inc.\n SPDX-License-Identifier: MPL-2.0\n}}\n\n<div\n class={{this.classNames}}\n ...attributes\n role=\"grid\"\n aria-describedby={{this._captionId}}\n {{style grid-template-columns=this.gridTemplateColumns}}\n {{this._setUpObserver}}\n>\n <div id={{this._captionId}} class=\"sr-only hds-advanced-table__caption\" aria-live=\"polite\">\n {{@caption}}\n {{this.sortedMessageText}}\n </div>\n <div class=\"hds-advanced-table__thead {{if @hasStickyHeader \'hds-advanced-table__thead--sticky\'}}\" role=\"rowgroup\">\n <Hds::AdvancedTable::Tr\n @selectionScope=\"col\"\n @onClickSortBySelected={{if @selectableColumnKey (fn this.setSortBy @selectableColumnKey)}}\n @sortBySelectedOrder={{if (eq this._sortBy @selectableColumnKey) this._sortOrder}}\n @isSelectable={{this.isSelectable}}\n @onSelectionChange={{this.onSelectionAllChange}}\n @didInsert={{this.didInsertSelectAllCheckbox}}\n @willDestroy={{this.willDestroySelectAllCheckbox}}\n @selectionAriaLabelSuffix=\"all rows\"\n >\n {{#each @columns as |column|}}\n {{#if column.isSortable}}\n <Hds::AdvancedTable::ThSort\n @sortOrder={{if (eq column.key this._sortBy) this._sortOrder}}\n @onClickSort={{fn this.setSortBy column.key}}\n @align={{column.align}}\n @tooltip={{column.tooltip}}\n >\n {{column.label}}\n </Hds::AdvancedTable::ThSort>\n {{else}}\n <Hds::AdvancedTable::Th\n @align={{column.align}}\n @tooltip={{column.tooltip}}\n @isVisuallyHidden={{column.isVisuallyHidden}}\n >{{column.label}}</Hds::AdvancedTable::Th>\n {{/if}}\n {{/each}}\n </Hds::AdvancedTable::Tr>\n </div>\n\n <div class=\"hds-advanced-table__tbody\" role=\"rowgroup\">\n {{! ----------------------------------------------------------------------------------------\n IMPORTANT: we loop on the `model` array and for each record\n we yield the Tr/Td/Th elements _and_ the record itself as `data`\n this means the consumer will *have to* use the `data` key to access it in their template\n -------------------------------------------------------------------------------------------- }}\n {{#each (sort-by this.getSortCriteria @model) key=this.identityKey as |record index|}}\n {{#if this.hasNestedRows}}\n <Hds::AdvancedTable::ExpandableTrGroup\n @record={{record}}\n @childrenKey={{this.childrenKey}}\n @rowIndex={{index}}\n as |T|\n >\n {{yield\n (hash\n Tr=(component \"hds/advanced-table/tr\" isParentRow=T.isExpandable depth=T.depth)\n Th=(component\n \"hds/advanced-table/th\"\n scope=\"row\"\n isExpandable=T.isExpandable\n newLabel=T.id\n parentId=T.parentId\n onClickToggle=T.onClickToggle\n isExpanded=T.isExpanded\n depth=T.depth\n )\n Td=(component \"hds/advanced-table/td\" align=@align)\n data=T.data\n isOpen=T.isExpanded\n rowIndex=T.rowIndex\n )\n to=\"body\"\n }}\n </Hds::AdvancedTable::ExpandableTrGroup>\n {{else}}\n {{yield\n (hash\n Tr=(component\n \"hds/advanced-table/tr\"\n selectionScope=\"row\"\n isSelectable=this.isSelectable\n onSelectionChange=this.onSelectionRowChange\n didInsert=this.didInsertRowCheckbox\n willDestroy=this.willDestroyRowCheckbox\n selectionAriaLabelSuffix=@selectionAriaLabelSuffix\n )\n Th=(component \"hds/advanced-table/th\" scope=\"row\")\n Td=(component \"hds/advanced-table/td\" align=@align)\n data=record\n rowIndex=index\n )\n to=\"body\"\n }}\n {{/if}}\n {{/each}}\n </div>\n</div>");
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Copyright (c) HashiCorp, Inc.
|
|
16
|
+
* SPDX-License-Identifier: MPL-2.0
|
|
17
|
+
*/
|
|
13
18
|
|
|
14
|
-
var _class, _descriptor, _descriptor2, _descriptor3, _descriptor4;
|
|
15
19
|
const DENSITIES = Object.values(HdsAdvancedTableDensityValues);
|
|
16
20
|
const DEFAULT_DENSITY = HdsAdvancedTableDensityValues.Medium;
|
|
17
21
|
const VALIGNMENTS = Object.values(HdsAdvancedTableVerticalAlignmentValues);
|
|
18
22
|
const DEFAULT_VALIGN = HdsAdvancedTableVerticalAlignmentValues.Top;
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
23
|
+
class HdsAdvancedTable extends Component {
|
|
24
|
+
static {
|
|
25
|
+
g(this.prototype, "_sortBy", [tracked], function () {
|
|
26
|
+
return this.args.sortBy ?? undefined;
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
#_sortBy = (i(this, "_sortBy"), undefined);
|
|
30
|
+
static {
|
|
31
|
+
g(this.prototype, "_sortOrder", [tracked], function () {
|
|
32
|
+
return this.args.sortOrder || HdsAdvancedTableThSortOrderValues.Asc;
|
|
33
|
+
});
|
|
29
34
|
}
|
|
35
|
+
#_sortOrder = (i(this, "_sortOrder"), undefined);
|
|
36
|
+
static {
|
|
37
|
+
g(this.prototype, "_selectAllCheckbox", [tracked], function () {
|
|
38
|
+
return undefined;
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
#_selectAllCheckbox = (i(this, "_selectAllCheckbox"), undefined);
|
|
42
|
+
static {
|
|
43
|
+
g(this.prototype, "_isSelectAllCheckboxSelected", [tracked], function () {
|
|
44
|
+
return undefined;
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
#_isSelectAllCheckboxSelected = (i(this, "_isSelectAllCheckboxSelected"), undefined);
|
|
48
|
+
_selectableRows = [];
|
|
49
|
+
_captionId = 'caption-' + guidFor(this);
|
|
50
|
+
_observer = undefined;
|
|
30
51
|
get getSortCriteria() {
|
|
31
52
|
// get the current column
|
|
32
53
|
const currentColumn = this.args?.columns?.find(column => column.key === this._sortBy);
|
|
@@ -178,21 +199,20 @@ let HdsAdvancedTable = (_class = class HdsAdvancedTable extends Component {
|
|
|
178
199
|
}
|
|
179
200
|
return classes.join(' ');
|
|
180
201
|
}
|
|
181
|
-
|
|
202
|
+
_setUpObserver = modifier(element => {
|
|
182
203
|
const stickyGridHeader = element.querySelector('.hds-advanced-table__thead.hds-advanced-table__thead--sticky');
|
|
183
|
-
if (stickyGridHeader !== null
|
|
204
|
+
if (stickyGridHeader !== null) {
|
|
184
205
|
this._observer = new IntersectionObserver(([element]) => element?.target.classList.toggle('hds-advanced-table__thead--is-pinned', element.intersectionRatio < 1), {
|
|
185
206
|
threshold: [1]
|
|
186
207
|
});
|
|
187
208
|
this._observer.observe(stickyGridHeader);
|
|
188
209
|
}
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
}
|
|
210
|
+
return () => {
|
|
211
|
+
if (this._observer) {
|
|
212
|
+
this._observer.disconnect();
|
|
213
|
+
}
|
|
214
|
+
};
|
|
215
|
+
});
|
|
196
216
|
setSortBy(column) {
|
|
197
217
|
if (this._sortBy === column) {
|
|
198
218
|
// check to see if the column is already sorted and invert the sort order if so
|
|
@@ -209,6 +229,9 @@ let HdsAdvancedTable = (_class = class HdsAdvancedTable extends Component {
|
|
|
209
229
|
onSort(this._sortBy, this._sortOrder);
|
|
210
230
|
}
|
|
211
231
|
}
|
|
232
|
+
static {
|
|
233
|
+
n(this.prototype, "setSortBy", [action]);
|
|
234
|
+
}
|
|
212
235
|
onSelectionChangeCallback(checkbox, selectionKey) {
|
|
213
236
|
const {
|
|
214
237
|
onSelectionChange
|
|
@@ -242,16 +265,28 @@ let HdsAdvancedTable = (_class = class HdsAdvancedTable extends Component {
|
|
|
242
265
|
this._isSelectAllCheckboxSelected = this._selectAllCheckbox?.checked ?? false;
|
|
243
266
|
this.onSelectionChangeCallback(this._selectAllCheckbox, 'all');
|
|
244
267
|
}
|
|
268
|
+
static {
|
|
269
|
+
n(this.prototype, "onSelectionAllChange", [action]);
|
|
270
|
+
}
|
|
245
271
|
onSelectionRowChange(checkbox, selectionKey) {
|
|
246
272
|
this.setSelectAllState();
|
|
247
273
|
this.onSelectionChangeCallback(checkbox, selectionKey);
|
|
248
274
|
}
|
|
275
|
+
static {
|
|
276
|
+
n(this.prototype, "onSelectionRowChange", [action]);
|
|
277
|
+
}
|
|
249
278
|
didInsertSelectAllCheckbox(checkbox) {
|
|
250
279
|
this._selectAllCheckbox = checkbox;
|
|
251
280
|
}
|
|
281
|
+
static {
|
|
282
|
+
n(this.prototype, "didInsertSelectAllCheckbox", [action]);
|
|
283
|
+
}
|
|
252
284
|
willDestroySelectAllCheckbox() {
|
|
253
285
|
this._selectAllCheckbox = undefined;
|
|
254
286
|
}
|
|
287
|
+
static {
|
|
288
|
+
n(this.prototype, "willDestroySelectAllCheckbox", [action]);
|
|
289
|
+
}
|
|
255
290
|
didInsertRowCheckbox(checkbox, selectionKey) {
|
|
256
291
|
if (selectionKey) {
|
|
257
292
|
this._selectableRows.push({
|
|
@@ -261,10 +296,16 @@ let HdsAdvancedTable = (_class = class HdsAdvancedTable extends Component {
|
|
|
261
296
|
}
|
|
262
297
|
this.setSelectAllState();
|
|
263
298
|
}
|
|
299
|
+
static {
|
|
300
|
+
n(this.prototype, "didInsertRowCheckbox", [action]);
|
|
301
|
+
}
|
|
264
302
|
willDestroyRowCheckbox(selectionKey) {
|
|
265
303
|
this._selectableRows = this._selectableRows.filter(row => row.selectionKey !== selectionKey);
|
|
266
304
|
this.setSelectAllState();
|
|
267
305
|
}
|
|
306
|
+
static {
|
|
307
|
+
n(this.prototype, "willDestroyRowCheckbox", [action]);
|
|
308
|
+
}
|
|
268
309
|
setSelectAllState() {
|
|
269
310
|
if (this._selectAllCheckbox) {
|
|
270
311
|
const selectableRowsCount = this._selectableRows.length;
|
|
@@ -277,35 +318,10 @@ let HdsAdvancedTable = (_class = class HdsAdvancedTable extends Component {
|
|
|
277
318
|
}));
|
|
278
319
|
}
|
|
279
320
|
}
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
initializer: function () {
|
|
285
|
-
return this.args.sortBy ?? undefined;
|
|
286
|
-
}
|
|
287
|
-
}), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "_sortOrder", [tracked], {
|
|
288
|
-
configurable: true,
|
|
289
|
-
enumerable: true,
|
|
290
|
-
writable: true,
|
|
291
|
-
initializer: function () {
|
|
292
|
-
return this.args.sortOrder || HdsAdvancedTableThSortOrderValues.Asc;
|
|
293
|
-
}
|
|
294
|
-
}), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, "_selectAllCheckbox", [tracked], {
|
|
295
|
-
configurable: true,
|
|
296
|
-
enumerable: true,
|
|
297
|
-
writable: true,
|
|
298
|
-
initializer: function () {
|
|
299
|
-
return undefined;
|
|
300
|
-
}
|
|
301
|
-
}), _descriptor4 = _applyDecoratedDescriptor(_class.prototype, "_isSelectAllCheckboxSelected", [tracked], {
|
|
302
|
-
configurable: true,
|
|
303
|
-
enumerable: true,
|
|
304
|
-
writable: true,
|
|
305
|
-
initializer: function () {
|
|
306
|
-
return undefined;
|
|
307
|
-
}
|
|
308
|
-
}), _applyDecoratedDescriptor(_class.prototype, "didInsert", [action], Object.getOwnPropertyDescriptor(_class.prototype, "didInsert"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "willDestroy", [action], Object.getOwnPropertyDescriptor(_class.prototype, "willDestroy"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "setSortBy", [action], Object.getOwnPropertyDescriptor(_class.prototype, "setSortBy"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "onSelectionAllChange", [action], Object.getOwnPropertyDescriptor(_class.prototype, "onSelectionAllChange"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "onSelectionRowChange", [action], Object.getOwnPropertyDescriptor(_class.prototype, "onSelectionRowChange"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "didInsertSelectAllCheckbox", [action], Object.getOwnPropertyDescriptor(_class.prototype, "didInsertSelectAllCheckbox"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "willDestroySelectAllCheckbox", [action], Object.getOwnPropertyDescriptor(_class.prototype, "willDestroySelectAllCheckbox"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "didInsertRowCheckbox", [action], Object.getOwnPropertyDescriptor(_class.prototype, "didInsertRowCheckbox"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "willDestroyRowCheckbox", [action], Object.getOwnPropertyDescriptor(_class.prototype, "willDestroyRowCheckbox"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "setSelectAllState", [action], Object.getOwnPropertyDescriptor(_class.prototype, "setSelectAllState"), _class.prototype), _class);
|
|
321
|
+
static {
|
|
322
|
+
n(this.prototype, "setSelectAllState", [action]);
|
|
323
|
+
}
|
|
324
|
+
}
|
|
309
325
|
setComponentTemplate(TEMPLATE, HdsAdvancedTable);
|
|
310
326
|
|
|
311
327
|
export { DEFAULT_DENSITY, DEFAULT_VALIGN, DENSITIES, VALIGNMENTS, HdsAdvancedTable as default };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/components/hds/advanced-table/index.hbs","../../../../src/components/hds/advanced-table/index.ts"],"sourcesContent":["import { precompileTemplate } from \"@ember/template-compilation\";\nexport default precompileTemplate(\"{{!\\n Copyright (c) HashiCorp, Inc.\\n SPDX-License-Identifier: MPL-2.0\\n}}\\n\\n<div\\n class={{this.classNames}}\\n ...attributes\\n role=\\\"grid\\\"\\n aria-describedby={{this._captionId}}\\n {{style grid-template-columns=this.gridTemplateColumns}}\\n {{did-insert this.didInsert}}\\n {{will-destroy this.willDestroy}}\\n>\\n <div id={{this._captionId}} class=\\\"sr-only hds-advanced-table__caption\\\" aria-live=\\\"polite\\\">\\n {{@caption}}\\n {{this.sortedMessageText}}\\n </div>\\n <div class=\\\"hds-advanced-table__thead {{if @hasStickyHeader \\'hds-advanced-table__thead--sticky\\'}}\\\" role=\\\"rowgroup\\\">\\n <Hds::AdvancedTable::Tr\\n @selectionScope=\\\"col\\\"\\n @onClickSortBySelected={{if @selectableColumnKey (fn this.setSortBy @selectableColumnKey)}}\\n @sortBySelectedOrder={{if (eq this._sortBy @selectableColumnKey) this._sortOrder}}\\n @isSelectable={{this.isSelectable}}\\n @onSelectionChange={{this.onSelectionAllChange}}\\n @didInsert={{this.didInsertSelectAllCheckbox}}\\n @willDestroy={{this.willDestroySelectAllCheckbox}}\\n @selectionAriaLabelSuffix=\\\"all rows\\\"\\n >\\n {{#each @columns as |column|}}\\n {{#if column.isSortable}}\\n <Hds::AdvancedTable::ThSort\\n @sortOrder={{if (eq column.key this._sortBy) this._sortOrder}}\\n @onClickSort={{fn this.setSortBy column.key}}\\n @align={{column.align}}\\n @tooltip={{column.tooltip}}\\n >\\n {{column.label}}\\n </Hds::AdvancedTable::ThSort>\\n {{else}}\\n <Hds::AdvancedTable::Th\\n @align={{column.align}}\\n @tooltip={{column.tooltip}}\\n @isVisuallyHidden={{column.isVisuallyHidden}}\\n >{{column.label}}</Hds::AdvancedTable::Th>\\n {{/if}}\\n {{/each}}\\n </Hds::AdvancedTable::Tr>\\n </div>\\n\\n <div class=\\\"hds-advanced-table__tbody\\\" role=\\\"rowgroup\\\">\\n {{! ----------------------------------------------------------------------------------------\\n IMPORTANT: we loop on the `model` array and for each record\\n we yield the Tr/Td/Th elements _and_ the record itself as `data`\\n this means the consumer will *have to* use the `data` key to access it in their template\\n -------------------------------------------------------------------------------------------- }}\\n {{#each (sort-by this.getSortCriteria @model) key=this.identityKey as |record index|}}\\n {{#if this.hasNestedRows}}\\n <Hds::AdvancedTable::ExpandableTrGroup\\n @record={{record}}\\n @childrenKey={{this.childrenKey}}\\n @rowIndex={{index}}\\n as |T|\\n >\\n {{yield\\n (hash\\n Tr=(component \\\"hds/advanced-table/tr\\\" isParentRow=T.isExpandable depth=T.depth)\\n Th=(component\\n \\\"hds/advanced-table/th\\\"\\n scope=\\\"row\\\"\\n isExpandable=T.isExpandable\\n newLabel=T.id\\n parentId=T.parentId\\n onClickToggle=T.onClickToggle\\n isExpanded=T.isExpanded\\n depth=T.depth\\n )\\n Td=(component \\\"hds/advanced-table/td\\\" align=@align)\\n data=T.data\\n isOpen=T.isExpanded\\n rowIndex=T.rowIndex\\n )\\n to=\\\"body\\\"\\n }}\\n </Hds::AdvancedTable::ExpandableTrGroup>\\n {{else}}\\n {{yield\\n (hash\\n Tr=(component\\n \\\"hds/advanced-table/tr\\\"\\n selectionScope=\\\"row\\\"\\n isSelectable=this.isSelectable\\n onSelectionChange=this.onSelectionRowChange\\n didInsert=this.didInsertRowCheckbox\\n willDestroy=this.willDestroyRowCheckbox\\n selectionAriaLabelSuffix=@selectionAriaLabelSuffix\\n )\\n Th=(component \\\"hds/advanced-table/th\\\" scope=\\\"row\\\")\\n Td=(component \\\"hds/advanced-table/td\\\" align=@align)\\n data=record\\n rowIndex=index\\n )\\n to=\\\"body\\\"\\n }}\\n {{/if}}\\n {{/each}}\\n </div>\\n</div>\")","/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { action } from '@ember/object';\nimport { assert } from '@ember/debug';\nimport { tracked } from '@glimmer/tracking';\nimport type { ComponentLike } from '@glint/template';\nimport { guidFor } from '@ember/object/internals';\nimport config from 'ember-get-config';\n\nimport {\n HdsAdvancedTableDensityValues,\n HdsAdvancedTableThSortOrderValues,\n HdsAdvancedTableVerticalAlignmentValues,\n} from './types.ts';\nimport type {\n HdsAdvancedTableColumn,\n HdsAdvancedTableDensities,\n HdsAdvancedTableHorizontalAlignment,\n HdsAdvancedTableOnSelectionChangeSignature,\n HdsAdvancedTableSelectableRow,\n HdsAdvancedTableSortingFunction,\n HdsAdvancedTableThSortOrder,\n HdsAdvancedTableVerticalAlignment,\n HdsAdvancedTableModel,\n} from './types.ts';\nimport type { HdsFormCheckboxBaseSignature } from '../form/checkbox/base.ts';\nimport type { HdsAdvancedTableTdSignature } from './td.ts';\nimport type { HdsAdvancedTableThSignature } from './th.ts';\nimport type { HdsAdvancedTableTrSignature } from './tr.ts';\n\nexport const DENSITIES: HdsAdvancedTableDensities[] = Object.values(\n HdsAdvancedTableDensityValues\n);\nexport const DEFAULT_DENSITY = HdsAdvancedTableDensityValues.Medium;\n\nexport const VALIGNMENTS: HdsAdvancedTableVerticalAlignment[] = Object.values(\n HdsAdvancedTableVerticalAlignmentValues\n);\nexport const DEFAULT_VALIGN = HdsAdvancedTableVerticalAlignmentValues.Top;\n\nexport interface HdsAdvancedTableSignature {\n Args: {\n align?: HdsAdvancedTableHorizontalAlignment;\n caption?: string;\n columns: HdsAdvancedTableColumn[];\n density?: HdsAdvancedTableDensities;\n identityKey?: string;\n isSelectable?: boolean;\n isStriped?: boolean;\n model: HdsAdvancedTableModel;\n onSelectionChange?: (\n selection: HdsAdvancedTableOnSelectionChangeSignature\n ) => void;\n onSort?: (sortBy: string, sortOrder: HdsAdvancedTableThSortOrder) => void;\n selectionAriaLabelSuffix?: string;\n sortBy?: string;\n selectableColumnKey?: string;\n sortedMessageText?: string;\n sortOrder?: HdsAdvancedTableThSortOrder;\n valign?: HdsAdvancedTableVerticalAlignment;\n hasStickyHeader?: boolean;\n childrenKey?: string;\n };\n Blocks: {\n body?: [\n {\n Td?: ComponentLike<HdsAdvancedTableTdSignature>;\n Tr?: ComponentLike<HdsAdvancedTableTrSignature>;\n Th?: ComponentLike<HdsAdvancedTableThSignature>;\n data?: Record<string, unknown>;\n rowIndex?: number | string;\n isOpen?: boolean;\n },\n ];\n };\n Element: HTMLDivElement;\n}\n\nexport default class HdsAdvancedTable extends Component<HdsAdvancedTableSignature> {\n @tracked private _sortBy = this.args.sortBy ?? undefined;\n @tracked private _sortOrder =\n this.args.sortOrder || HdsAdvancedTableThSortOrderValues.Asc;\n @tracked\n private _selectAllCheckbox?: HdsFormCheckboxBaseSignature['Element'] =\n undefined;\n @tracked private _isSelectAllCheckboxSelected?: boolean = undefined;\n\n private _selectableRows: HdsAdvancedTableSelectableRow[] = [];\n private _captionId = 'caption-' + guidFor(this);\n private _observer: IntersectionObserver | undefined = undefined;\n\n get getSortCriteria(): string | HdsAdvancedTableSortingFunction<unknown> {\n // get the current column\n const currentColumn = this.args?.columns?.find(\n (column) => column.key === this._sortBy\n );\n if (\n // check if there is a custom sorting function associated with the current `sortBy` column (we assume the column has `isSortable`)\n currentColumn?.sortingFunction &&\n typeof currentColumn.sortingFunction === 'function'\n ) {\n return currentColumn.sortingFunction;\n } else {\n // otherwise fallback to the default format \"sortBy:sortOrder\"\n return `${this._sortBy}:${this._sortOrder}`;\n }\n }\n\n get columnWidths(): string[] | undefined {\n const { columns } = this.args;\n const widths: string[] = new Array(columns.length);\n let hasCustomColumnWidth = false;\n\n for (let i = 0; i < columns.length; i++) {\n const column = columns[i];\n\n if (column?.['width']) {\n widths[i] = column.width;\n if (!hasCustomColumnWidth) hasCustomColumnWidth = true;\n }\n }\n\n return hasCustomColumnWidth ? widths : undefined;\n }\n\n get identityKey(): string | undefined {\n // we have to provide a way for the consumer to pass undefined because Ember tries to interpret undefined as missing an arg and therefore falls back to the default\n if (this.args.identityKey === 'none') {\n return undefined;\n } else {\n return this.args.identityKey ?? '@identity';\n }\n }\n\n get childrenKey(): string {\n const { childrenKey = 'children' } = this.args;\n\n return childrenKey;\n }\n\n get hasNestedRows(): boolean {\n const { model, columns } = this.args;\n let hasNestedRows = false;\n let isSortable = false;\n const sortableColumns: string[] = [];\n\n // if the model is not an array, assume there are no nested rows\n if (!Array.isArray(model)) return false;\n\n for (const column of columns) {\n if (column.isSortable) {\n isSortable = true;\n sortableColumns.push(column.label);\n }\n }\n\n for (const obj of model) {\n if (this.childrenKey in obj) {\n hasNestedRows = true;\n break;\n }\n }\n\n if (hasNestedRows) {\n assert(\n `Cannot have sortable columns if there are nested rows. Sortable columns are ${sortableColumns.toString()}`,\n !isSortable\n );\n }\n\n return hasNestedRows;\n }\n\n get sortedMessageText(): string {\n if (this.args.sortedMessageText) {\n return this.args.sortedMessageText;\n } else if (this._sortBy && this._sortOrder) {\n // we should allow the user to define a custom value here (e.g., for i18n) - tracked with HDS-965\n return `Sorted by ${this._sortBy} ${this._sortOrder}ending`;\n } else {\n return '';\n }\n }\n\n get isSelectable(): boolean {\n const { isSelectable = false } = this.args;\n\n if (this.hasNestedRows) {\n assert(\n '@isSelectable must not be true if there are nested rows.',\n !isSelectable\n );\n return isSelectable;\n }\n\n return isSelectable;\n }\n\n get isStriped(): boolean {\n const { isStriped = false } = this.args;\n\n if (this.hasNestedRows) {\n assert(\n '@isStriped must not be true if there are nested rows.',\n !isStriped\n );\n return isStriped;\n }\n\n return isStriped;\n }\n\n get density(): HdsAdvancedTableDensities {\n const { density = DEFAULT_DENSITY } = this.args;\n\n assert(\n `@density for \"Hds::Table\" must be one of the following: ${DENSITIES.join(\n ', '\n )}; received: ${density}`,\n DENSITIES.includes(density)\n );\n\n return density;\n }\n\n get valign(): HdsAdvancedTableVerticalAlignment {\n const { valign = DEFAULT_VALIGN } = this.args;\n\n assert(\n `@valign for \"Hds::Table\" must be one of the following: ${VALIGNMENTS.join(\n ', '\n )}; received: ${valign}`,\n VALIGNMENTS.includes(valign)\n );\n\n return valign;\n }\n\n // returns the grid-template-columns CSS attribute for the grid\n get gridTemplateColumns(): string {\n const { isSelectable, columns } = this.args;\n\n // if there is no custom column widths, each column is the same width and they take up the available space (except the select checkbox)\n if (!this.columnWidths) {\n return `${isSelectable ? 'auto ' : ''}repeat(${columns.length}, 1fr)`;\n }\n\n // if there is a select checkbox, the first column is 'auto' width to hug the checkbox content\n let style = isSelectable ? 'auto' : '';\n\n // check the custom column widths, if the current column has a custom width use the custom width. otherwise take the available space.\n for (let i = 0; i < this.columnWidths.length; i++) {\n style += ` ${this.columnWidths[i] ? this.columnWidths[i] : '1fr'}`;\n }\n\n return style;\n }\n\n get classNames(): string {\n const classes = ['hds-advanced-table'];\n\n if (this.isStriped) {\n classes.push('hds-advanced-table--striped');\n }\n\n if (this.density) {\n classes.push(`hds-advanced-table--density-${this.density}`);\n }\n\n if (this.valign) {\n classes.push(`hds-advanced-table--valign-${this.valign}`);\n }\n\n if (this.hasNestedRows) {\n classes.push(`hds-advanced-table--nested`);\n }\n\n return classes.join(' ');\n }\n\n @action didInsert(element: HTMLDivElement): void {\n const stickyGridHeader = element.querySelector(\n '.hds-advanced-table__thead.hds-advanced-table__thead--sticky'\n );\n\n if (stickyGridHeader !== null && config.environment !== 'test') {\n this._observer = new IntersectionObserver(\n ([element]) =>\n element?.target.classList.toggle(\n 'hds-advanced-table__thead--is-pinned',\n element.intersectionRatio < 1\n ),\n { threshold: [1] }\n );\n\n this._observer.observe(stickyGridHeader);\n }\n }\n\n @action willDestroy() {\n super.willDestroy();\n if (this._observer) {\n this._observer.disconnect();\n }\n }\n\n @action\n setSortBy(column: string): void {\n if (this._sortBy === column) {\n // check to see if the column is already sorted and invert the sort order if so\n this._sortOrder =\n this._sortOrder === HdsAdvancedTableThSortOrderValues.Asc\n ? HdsAdvancedTableThSortOrderValues.Desc\n : HdsAdvancedTableThSortOrderValues.Asc;\n } else {\n // otherwise, set the sort order to ascending\n this._sortBy = column;\n this._sortOrder = HdsAdvancedTableThSortOrderValues.Asc;\n }\n\n const { onSort } = this.args;\n\n if (typeof onSort === 'function') {\n onSort(this._sortBy, this._sortOrder);\n }\n }\n\n onSelectionChangeCallback(\n checkbox?: HdsFormCheckboxBaseSignature['Element'],\n selectionKey?: string\n ): void {\n const { onSelectionChange } = this.args;\n\n if (typeof onSelectionChange !== 'function') return;\n\n onSelectionChange({\n selectionKey: selectionKey,\n selectionCheckboxElement: checkbox,\n selectedRowsKeys: this._selectableRows.reduce<string[]>((acc, row) => {\n if (row.checkbox.checked) {\n acc.push(row.selectionKey);\n }\n return acc;\n }, []),\n selectableRowsStates: this._selectableRows.reduce(\n (\n acc: { selectionKey: string; isSelected: boolean | undefined }[],\n row\n ) => {\n acc.push({\n selectionKey: row.selectionKey,\n isSelected: row.checkbox.checked,\n });\n return acc;\n },\n []\n ),\n });\n }\n\n @action\n onSelectionAllChange(): void {\n this._selectableRows.forEach((row) => {\n row.checkbox.checked = this._selectAllCheckbox?.checked ?? false;\n row.checkbox.dispatchEvent(new Event('toggle', { bubbles: false }));\n });\n this._isSelectAllCheckboxSelected =\n this._selectAllCheckbox?.checked ?? false;\n this.onSelectionChangeCallback(this._selectAllCheckbox, 'all');\n }\n\n @action\n onSelectionRowChange(\n checkbox?: HdsFormCheckboxBaseSignature['Element'],\n selectionKey?: string\n ): void {\n this.setSelectAllState();\n this.onSelectionChangeCallback(checkbox, selectionKey);\n }\n\n @action\n didInsertSelectAllCheckbox(\n checkbox: HdsFormCheckboxBaseSignature['Element']\n ): void {\n this._selectAllCheckbox = checkbox;\n }\n\n @action\n willDestroySelectAllCheckbox(): void {\n this._selectAllCheckbox = undefined;\n }\n\n @action\n didInsertRowCheckbox(\n checkbox: HdsFormCheckboxBaseSignature['Element'],\n selectionKey?: string\n ): void {\n if (selectionKey) {\n this._selectableRows.push({ selectionKey, checkbox });\n }\n this.setSelectAllState();\n }\n\n @action\n willDestroyRowCheckbox(selectionKey?: string): void {\n this._selectableRows = this._selectableRows.filter(\n (row) => row.selectionKey !== selectionKey\n );\n this.setSelectAllState();\n }\n\n @action\n setSelectAllState(): void {\n if (this._selectAllCheckbox) {\n const selectableRowsCount = this._selectableRows.length;\n const selectedRowsCount = this._selectableRows.filter(\n (row) => row.checkbox.checked\n ).length;\n\n this._selectAllCheckbox.checked =\n selectedRowsCount === selectableRowsCount;\n this._selectAllCheckbox.indeterminate =\n selectedRowsCount > 0 && selectedRowsCount < selectableRowsCount;\n this._isSelectAllCheckboxSelected = this._selectAllCheckbox.checked;\n this._selectAllCheckbox.dispatchEvent(\n new Event('toggle', { bubbles: false })\n );\n }\n }\n}\n"],"names":["DENSITIES","Object","values","HdsAdvancedTableDensityValues","DEFAULT_DENSITY","Medium","VALIGNMENTS","HdsAdvancedTableVerticalAlignmentValues","DEFAULT_VALIGN","Top","HdsAdvancedTable","_class","Component","constructor","args","_initializerDefineProperty","_descriptor","_descriptor2","_descriptor3","_descriptor4","_defineProperty","guidFor","undefined","getSortCriteria","currentColumn","columns","find","column","key","_sortBy","sortingFunction","_sortOrder","columnWidths","widths","Array","length","hasCustomColumnWidth","i","width","identityKey","childrenKey","hasNestedRows","model","isSortable","sortableColumns","isArray","push","label","obj","assert","toString","sortedMessageText","isSelectable","isStriped","density","join","includes","valign","gridTemplateColumns","style","classNames","classes","didInsert","element","stickyGridHeader","querySelector","config","environment","_observer","IntersectionObserver","target","classList","toggle","intersectionRatio","threshold","observe","willDestroy","disconnect","setSortBy","HdsAdvancedTableThSortOrderValues","Asc","Desc","onSort","onSelectionChangeCallback","checkbox","selectionKey","onSelectionChange","selectionCheckboxElement","selectedRowsKeys","_selectableRows","reduce","acc","row","checked","selectableRowsStates","isSelected","onSelectionAllChange","forEach","_selectAllCheckbox","dispatchEvent","Event","bubbles","_isSelectAllCheckboxSelected","onSelectionRowChange","setSelectAllState","didInsertSelectAllCheckbox","willDestroySelectAllCheckbox","didInsertRowCheckbox","willDestroyRowCheckbox","filter","selectableRowsCount","selectedRowsCount","indeterminate","_applyDecoratedDescriptor","prototype","tracked","configurable","enumerable","writable","initializer","sortBy","sortOrder","action","getOwnPropertyDescriptor","setComponentTemplate","TEMPLATE"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/components/hds/advanced-table/index.ts"],"sourcesContent":["/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { action } from '@ember/object';\nimport { assert } from '@ember/debug';\nimport { tracked } from '@glimmer/tracking';\nimport type { ComponentLike } from '@glint/template';\nimport { guidFor } from '@ember/object/internals';\nimport { modifier } from 'ember-modifier';\n\nimport {\n HdsAdvancedTableDensityValues,\n HdsAdvancedTableThSortOrderValues,\n HdsAdvancedTableVerticalAlignmentValues,\n} from './types.ts';\nimport type {\n HdsAdvancedTableColumn,\n HdsAdvancedTableDensities,\n HdsAdvancedTableHorizontalAlignment,\n HdsAdvancedTableOnSelectionChangeSignature,\n HdsAdvancedTableSelectableRow,\n HdsAdvancedTableSortingFunction,\n HdsAdvancedTableThSortOrder,\n HdsAdvancedTableVerticalAlignment,\n HdsAdvancedTableModel,\n} from './types.ts';\nimport type { HdsFormCheckboxBaseSignature } from '../form/checkbox/base.ts';\nimport type { HdsAdvancedTableTdSignature } from './td.ts';\nimport type { HdsAdvancedTableThSignature } from './th.ts';\nimport type { HdsAdvancedTableTrSignature } from './tr.ts';\n\nexport const DENSITIES: HdsAdvancedTableDensities[] = Object.values(\n HdsAdvancedTableDensityValues\n);\nexport const DEFAULT_DENSITY = HdsAdvancedTableDensityValues.Medium;\n\nexport const VALIGNMENTS: HdsAdvancedTableVerticalAlignment[] = Object.values(\n HdsAdvancedTableVerticalAlignmentValues\n);\nexport const DEFAULT_VALIGN = HdsAdvancedTableVerticalAlignmentValues.Top;\n\nexport interface HdsAdvancedTableSignature {\n Args: {\n align?: HdsAdvancedTableHorizontalAlignment;\n caption?: string;\n columns: HdsAdvancedTableColumn[];\n density?: HdsAdvancedTableDensities;\n identityKey?: string;\n isSelectable?: boolean;\n isStriped?: boolean;\n model: HdsAdvancedTableModel;\n onSelectionChange?: (\n selection: HdsAdvancedTableOnSelectionChangeSignature\n ) => void;\n onSort?: (sortBy: string, sortOrder: HdsAdvancedTableThSortOrder) => void;\n selectionAriaLabelSuffix?: string;\n sortBy?: string;\n selectableColumnKey?: string;\n sortedMessageText?: string;\n sortOrder?: HdsAdvancedTableThSortOrder;\n valign?: HdsAdvancedTableVerticalAlignment;\n hasStickyHeader?: boolean;\n childrenKey?: string;\n };\n Blocks: {\n body?: [\n {\n Td?: ComponentLike<HdsAdvancedTableTdSignature>;\n Tr?: ComponentLike<HdsAdvancedTableTrSignature>;\n Th?: ComponentLike<HdsAdvancedTableThSignature>;\n data?: Record<string, unknown>;\n rowIndex?: number | string;\n isOpen?: boolean;\n },\n ];\n };\n Element: HTMLDivElement;\n}\n\nexport default class HdsAdvancedTable extends Component<HdsAdvancedTableSignature> {\n @tracked private _sortBy = this.args.sortBy ?? undefined;\n @tracked private _sortOrder =\n this.args.sortOrder || HdsAdvancedTableThSortOrderValues.Asc;\n @tracked\n private _selectAllCheckbox?: HdsFormCheckboxBaseSignature['Element'] =\n undefined;\n @tracked private _isSelectAllCheckboxSelected?: boolean = undefined;\n\n private _selectableRows: HdsAdvancedTableSelectableRow[] = [];\n private _captionId = 'caption-' + guidFor(this);\n private _observer: IntersectionObserver | undefined = undefined;\n\n get getSortCriteria(): string | HdsAdvancedTableSortingFunction<unknown> {\n // get the current column\n const currentColumn = this.args?.columns?.find(\n (column) => column.key === this._sortBy\n );\n if (\n // check if there is a custom sorting function associated with the current `sortBy` column (we assume the column has `isSortable`)\n currentColumn?.sortingFunction &&\n typeof currentColumn.sortingFunction === 'function'\n ) {\n return currentColumn.sortingFunction;\n } else {\n // otherwise fallback to the default format \"sortBy:sortOrder\"\n return `${this._sortBy}:${this._sortOrder}`;\n }\n }\n\n get columnWidths(): string[] | undefined {\n const { columns } = this.args;\n const widths: string[] = new Array(columns.length);\n let hasCustomColumnWidth = false;\n\n for (let i = 0; i < columns.length; i++) {\n const column = columns[i];\n\n if (column?.['width']) {\n widths[i] = column.width;\n if (!hasCustomColumnWidth) hasCustomColumnWidth = true;\n }\n }\n\n return hasCustomColumnWidth ? widths : undefined;\n }\n\n get identityKey(): string | undefined {\n // we have to provide a way for the consumer to pass undefined because Ember tries to interpret undefined as missing an arg and therefore falls back to the default\n if (this.args.identityKey === 'none') {\n return undefined;\n } else {\n return this.args.identityKey ?? '@identity';\n }\n }\n\n get childrenKey(): string {\n const { childrenKey = 'children' } = this.args;\n\n return childrenKey;\n }\n\n get hasNestedRows(): boolean {\n const { model, columns } = this.args;\n let hasNestedRows = false;\n let isSortable = false;\n const sortableColumns: string[] = [];\n\n // if the model is not an array, assume there are no nested rows\n if (!Array.isArray(model)) return false;\n\n for (const column of columns) {\n if (column.isSortable) {\n isSortable = true;\n sortableColumns.push(column.label);\n }\n }\n\n for (const obj of model) {\n if (this.childrenKey in obj) {\n hasNestedRows = true;\n break;\n }\n }\n\n if (hasNestedRows) {\n assert(\n `Cannot have sortable columns if there are nested rows. Sortable columns are ${sortableColumns.toString()}`,\n !isSortable\n );\n }\n\n return hasNestedRows;\n }\n\n get sortedMessageText(): string {\n if (this.args.sortedMessageText) {\n return this.args.sortedMessageText;\n } else if (this._sortBy && this._sortOrder) {\n // we should allow the user to define a custom value here (e.g., for i18n) - tracked with HDS-965\n return `Sorted by ${this._sortBy} ${this._sortOrder}ending`;\n } else {\n return '';\n }\n }\n\n get isSelectable(): boolean {\n const { isSelectable = false } = this.args;\n\n if (this.hasNestedRows) {\n assert(\n '@isSelectable must not be true if there are nested rows.',\n !isSelectable\n );\n return isSelectable;\n }\n\n return isSelectable;\n }\n\n get isStriped(): boolean {\n const { isStriped = false } = this.args;\n\n if (this.hasNestedRows) {\n assert(\n '@isStriped must not be true if there are nested rows.',\n !isStriped\n );\n return isStriped;\n }\n\n return isStriped;\n }\n\n get density(): HdsAdvancedTableDensities {\n const { density = DEFAULT_DENSITY } = this.args;\n\n assert(\n `@density for \"Hds::Table\" must be one of the following: ${DENSITIES.join(\n ', '\n )}; received: ${density}`,\n DENSITIES.includes(density)\n );\n\n return density;\n }\n\n get valign(): HdsAdvancedTableVerticalAlignment {\n const { valign = DEFAULT_VALIGN } = this.args;\n\n assert(\n `@valign for \"Hds::Table\" must be one of the following: ${VALIGNMENTS.join(\n ', '\n )}; received: ${valign}`,\n VALIGNMENTS.includes(valign)\n );\n\n return valign;\n }\n\n // returns the grid-template-columns CSS attribute for the grid\n get gridTemplateColumns(): string {\n const { isSelectable, columns } = this.args;\n\n // if there is no custom column widths, each column is the same width and they take up the available space (except the select checkbox)\n if (!this.columnWidths) {\n return `${isSelectable ? 'auto ' : ''}repeat(${columns.length}, 1fr)`;\n }\n\n // if there is a select checkbox, the first column is 'auto' width to hug the checkbox content\n let style = isSelectable ? 'auto' : '';\n\n // check the custom column widths, if the current column has a custom width use the custom width. otherwise take the available space.\n for (let i = 0; i < this.columnWidths.length; i++) {\n style += ` ${this.columnWidths[i] ? this.columnWidths[i] : '1fr'}`;\n }\n\n return style;\n }\n\n get classNames(): string {\n const classes = ['hds-advanced-table'];\n\n if (this.isStriped) {\n classes.push('hds-advanced-table--striped');\n }\n\n if (this.density) {\n classes.push(`hds-advanced-table--density-${this.density}`);\n }\n\n if (this.valign) {\n classes.push(`hds-advanced-table--valign-${this.valign}`);\n }\n\n if (this.hasNestedRows) {\n classes.push(`hds-advanced-table--nested`);\n }\n\n return classes.join(' ');\n }\n\n private _setUpObserver = modifier((element: HTMLElement) => {\n const stickyGridHeader = element.querySelector(\n '.hds-advanced-table__thead.hds-advanced-table__thead--sticky'\n );\n\n if (stickyGridHeader !== null) {\n this._observer = new IntersectionObserver(\n ([element]) =>\n element?.target.classList.toggle(\n 'hds-advanced-table__thead--is-pinned',\n element.intersectionRatio < 1\n ),\n { threshold: [1] }\n );\n\n this._observer.observe(stickyGridHeader);\n }\n\n return () => {\n if (this._observer) {\n this._observer.disconnect();\n }\n };\n });\n\n @action\n setSortBy(column: string): void {\n if (this._sortBy === column) {\n // check to see if the column is already sorted and invert the sort order if so\n this._sortOrder =\n this._sortOrder === HdsAdvancedTableThSortOrderValues.Asc\n ? HdsAdvancedTableThSortOrderValues.Desc\n : HdsAdvancedTableThSortOrderValues.Asc;\n } else {\n // otherwise, set the sort order to ascending\n this._sortBy = column;\n this._sortOrder = HdsAdvancedTableThSortOrderValues.Asc;\n }\n\n const { onSort } = this.args;\n\n if (typeof onSort === 'function') {\n onSort(this._sortBy, this._sortOrder);\n }\n }\n\n onSelectionChangeCallback(\n checkbox?: HdsFormCheckboxBaseSignature['Element'],\n selectionKey?: string\n ): void {\n const { onSelectionChange } = this.args;\n\n if (typeof onSelectionChange !== 'function') return;\n\n onSelectionChange({\n selectionKey: selectionKey,\n selectionCheckboxElement: checkbox,\n selectedRowsKeys: this._selectableRows.reduce<string[]>((acc, row) => {\n if (row.checkbox.checked) {\n acc.push(row.selectionKey);\n }\n return acc;\n }, []),\n selectableRowsStates: this._selectableRows.reduce(\n (\n acc: { selectionKey: string; isSelected: boolean | undefined }[],\n row\n ) => {\n acc.push({\n selectionKey: row.selectionKey,\n isSelected: row.checkbox.checked,\n });\n return acc;\n },\n []\n ),\n });\n }\n\n @action\n onSelectionAllChange(): void {\n this._selectableRows.forEach((row) => {\n row.checkbox.checked = this._selectAllCheckbox?.checked ?? false;\n row.checkbox.dispatchEvent(new Event('toggle', { bubbles: false }));\n });\n this._isSelectAllCheckboxSelected =\n this._selectAllCheckbox?.checked ?? false;\n this.onSelectionChangeCallback(this._selectAllCheckbox, 'all');\n }\n\n @action\n onSelectionRowChange(\n checkbox?: HdsFormCheckboxBaseSignature['Element'],\n selectionKey?: string\n ): void {\n this.setSelectAllState();\n this.onSelectionChangeCallback(checkbox, selectionKey);\n }\n\n @action\n didInsertSelectAllCheckbox(\n checkbox: HdsFormCheckboxBaseSignature['Element']\n ): void {\n this._selectAllCheckbox = checkbox;\n }\n\n @action\n willDestroySelectAllCheckbox(): void {\n this._selectAllCheckbox = undefined;\n }\n\n @action\n didInsertRowCheckbox(\n checkbox: HdsFormCheckboxBaseSignature['Element'],\n selectionKey?: string\n ): void {\n if (selectionKey) {\n this._selectableRows.push({ selectionKey, checkbox });\n }\n this.setSelectAllState();\n }\n\n @action\n willDestroyRowCheckbox(selectionKey?: string): void {\n this._selectableRows = this._selectableRows.filter(\n (row) => row.selectionKey !== selectionKey\n );\n this.setSelectAllState();\n }\n\n @action\n setSelectAllState(): void {\n if (this._selectAllCheckbox) {\n const selectableRowsCount = this._selectableRows.length;\n const selectedRowsCount = this._selectableRows.filter(\n (row) => row.checkbox.checked\n ).length;\n\n this._selectAllCheckbox.checked =\n selectedRowsCount === selectableRowsCount;\n this._selectAllCheckbox.indeterminate =\n selectedRowsCount > 0 && selectedRowsCount < selectableRowsCount;\n this._isSelectAllCheckboxSelected = this._selectAllCheckbox.checked;\n this._selectAllCheckbox.dispatchEvent(\n new Event('toggle', { bubbles: false })\n );\n }\n }\n}\n"],"names":["DENSITIES","Object","values","HdsAdvancedTableDensityValues","DEFAULT_DENSITY","Medium","VALIGNMENTS","HdsAdvancedTableVerticalAlignmentValues","DEFAULT_VALIGN","Top","HdsAdvancedTable","Component","g","prototype","tracked","args","sortBy","undefined","i","void 0","sortOrder","HdsAdvancedTableThSortOrderValues","Asc","_selectableRows","_captionId","guidFor","_observer","getSortCriteria","currentColumn","columns","find","column","key","_sortBy","sortingFunction","_sortOrder","columnWidths","widths","Array","length","hasCustomColumnWidth","width","identityKey","childrenKey","hasNestedRows","model","isSortable","sortableColumns","isArray","push","label","obj","assert","toString","sortedMessageText","isSelectable","isStriped","density","join","includes","valign","gridTemplateColumns","style","classNames","classes","_setUpObserver","modifier","element","stickyGridHeader","querySelector","IntersectionObserver","target","classList","toggle","intersectionRatio","threshold","observe","disconnect","setSortBy","Desc","onSort","n","action","onSelectionChangeCallback","checkbox","selectionKey","onSelectionChange","selectionCheckboxElement","selectedRowsKeys","reduce","acc","row","checked","selectableRowsStates","isSelected","onSelectionAllChange","forEach","_selectAllCheckbox","dispatchEvent","Event","bubbles","_isSelectAllCheckboxSelected","onSelectionRowChange","setSelectAllState","didInsertSelectAllCheckbox","willDestroySelectAllCheckbox","didInsertRowCheckbox","willDestroyRowCheckbox","filter","selectableRowsCount","selectedRowsCount","indeterminate","setComponentTemplate","TEMPLATE"],"mappings":"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"}
|
|
@@ -1,26 +1,32 @@
|
|
|
1
|
-
import { _ as _applyDecoratedDescriptor, b as _initializerDefineProperty, a as _defineProperty } from '../../../_rollupPluginBabelHelpers-C_TsMG3M.js';
|
|
2
1
|
import Component from '@glimmer/component';
|
|
3
2
|
import { assert } from '@ember/debug';
|
|
4
3
|
import { action } from '@ember/object';
|
|
5
4
|
import { tracked } from '@glimmer/tracking';
|
|
6
5
|
import { focusable } from 'tabbable';
|
|
7
6
|
import { HdsAdvancedTableHorizontalAlignmentValues } from './types.js';
|
|
8
|
-
import { onFocusTrapDeactivate
|
|
7
|
+
import { onFocusTrapDeactivate } from '../../../modifiers/hds-advanced-table-cell/dom-management.js';
|
|
9
8
|
import { precompileTemplate } from '@ember/template-compilation';
|
|
9
|
+
import { g, i, n } from 'decorator-transforms/runtime';
|
|
10
10
|
import { setComponentTemplate } from '@ember/component';
|
|
11
11
|
|
|
12
|
-
var TEMPLATE = precompileTemplate("{{!\n Copyright (c) HashiCorp, Inc.\n SPDX-License-Identifier: MPL-2.0\n}}\n<div\n class={{this.classNames}}\n role=\"gridcell\"\n aria-rowspan={{@rowspan}}\n aria-colspan={{@colspan}}\n {{style grid-row=this.rowspan grid-column=this.colspan}}\n {{
|
|
12
|
+
var TEMPLATE = precompileTemplate("{{!\n Copyright (c) HashiCorp, Inc.\n SPDX-License-Identifier: MPL-2.0\n}}\n<div\n class={{this.classNames}}\n role=\"gridcell\"\n aria-rowspan={{@rowspan}}\n aria-colspan={{@colspan}}\n {{style grid-row=this.rowspan grid-column=this.colspan}}\n {{hds-advanced-table-cell\n handleEnableFocusTrap=this.enableFocusTrap\n shouldTrapFocus=this._shouldTrapFocus\n setCellElement=this.setElement\n }}\n {{! @glint-expect-error - https://github.com/josemarluedke/ember-focus-trap/issues/86 }}\n {{focus-trap\n isActive=this._shouldTrapFocus\n focusTrapOptions=(hash\n onDeactivate=this.onFocusTrapDeactivate initialFocus=this.getInitialFocus clickOutsideDeactivates=true\n )\n }}\n ...attributes\n>\n {{yield}}\n</div>");
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Copyright (c) HashiCorp, Inc.
|
|
16
|
+
* SPDX-License-Identifier: MPL-2.0
|
|
17
|
+
*/
|
|
13
18
|
|
|
14
|
-
var _class, _descriptor;
|
|
15
19
|
const ALIGNMENTS = Object.values(HdsAdvancedTableHorizontalAlignmentValues);
|
|
16
20
|
const DEFAULT_ALIGN = HdsAdvancedTableHorizontalAlignmentValues.Left;
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
_defineProperty(this, "_observer", undefined);
|
|
21
|
+
class HdsAdvancedTableTd extends Component {
|
|
22
|
+
static {
|
|
23
|
+
g(this.prototype, "_shouldTrapFocus", [tracked], function () {
|
|
24
|
+
return false;
|
|
25
|
+
});
|
|
23
26
|
}
|
|
27
|
+
#_shouldTrapFocus = (i(this, "_shouldTrapFocus"), undefined);
|
|
28
|
+
_element;
|
|
29
|
+
|
|
24
30
|
// rowspan and colspan have to return 'auto' if not defined because otherwise the style modifier sets grid-area: undefined on the cell, which breaks the grid styles
|
|
25
31
|
get rowspan() {
|
|
26
32
|
if (this.args.rowspan) {
|
|
@@ -42,7 +48,7 @@ let HdsAdvancedTableTd = (_class = class HdsAdvancedTableTd extends Component {
|
|
|
42
48
|
return align;
|
|
43
49
|
}
|
|
44
50
|
get classNames() {
|
|
45
|
-
const classes = ['hds-advanced-table__td'
|
|
51
|
+
const classes = ['hds-advanced-table__td'];
|
|
46
52
|
|
|
47
53
|
// add a class based on the @align argument
|
|
48
54
|
if (this.align) {
|
|
@@ -54,41 +60,29 @@ let HdsAdvancedTableTd = (_class = class HdsAdvancedTableTd extends Component {
|
|
|
54
60
|
this._shouldTrapFocus = false;
|
|
55
61
|
onFocusTrapDeactivate(this._element);
|
|
56
62
|
}
|
|
63
|
+
static {
|
|
64
|
+
n(this.prototype, "onFocusTrapDeactivate", [action]);
|
|
65
|
+
}
|
|
57
66
|
enableFocusTrap() {
|
|
58
67
|
this._shouldTrapFocus = true;
|
|
59
68
|
}
|
|
69
|
+
static {
|
|
70
|
+
n(this.prototype, "enableFocusTrap", [action]);
|
|
71
|
+
}
|
|
60
72
|
getInitialFocus() {
|
|
61
73
|
const cellFocusableElements = focusable(this._element);
|
|
62
74
|
return cellFocusableElements[0];
|
|
63
75
|
}
|
|
64
|
-
|
|
65
|
-
this.
|
|
66
|
-
didInsertGridCell(element);
|
|
67
|
-
element.addEventListener('keydown', event => {
|
|
68
|
-
handleGridCellKeyPress(event, this.enableFocusTrap);
|
|
69
|
-
});
|
|
70
|
-
this._observer = new MutationObserver(() => {
|
|
71
|
-
updateTabbableChildren(this._element, this._shouldTrapFocus);
|
|
72
|
-
});
|
|
73
|
-
this._observer.observe(this._element, {
|
|
74
|
-
childList: true,
|
|
75
|
-
subtree: true
|
|
76
|
-
});
|
|
76
|
+
static {
|
|
77
|
+
n(this.prototype, "getInitialFocus", [action]);
|
|
77
78
|
}
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
if (this._observer) {
|
|
81
|
-
this._observer.disconnect();
|
|
82
|
-
}
|
|
79
|
+
setElement(element) {
|
|
80
|
+
this._element = element;
|
|
83
81
|
}
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
enumerable: true,
|
|
87
|
-
writable: true,
|
|
88
|
-
initializer: function () {
|
|
89
|
-
return false;
|
|
82
|
+
static {
|
|
83
|
+
n(this.prototype, "setElement", [action]);
|
|
90
84
|
}
|
|
91
|
-
}
|
|
85
|
+
}
|
|
92
86
|
setComponentTemplate(TEMPLATE, HdsAdvancedTableTd);
|
|
93
87
|
|
|
94
88
|
export { ALIGNMENTS, DEFAULT_ALIGN, HdsAdvancedTableTd as default };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"td.js","sources":["../../../../src/components/hds/advanced-table/td.
|
|
1
|
+
{"version":3,"file":"td.js","sources":["../../../../src/components/hds/advanced-table/td.ts"],"sourcesContent":["/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { assert } from '@ember/debug';\nimport { action } from '@ember/object';\nimport { tracked } from '@glimmer/tracking';\nimport { focusable, type FocusableElement } from 'tabbable';\n\nimport type { HdsAdvancedTableHorizontalAlignment } from './types.ts';\nimport { HdsAdvancedTableHorizontalAlignmentValues } from './types.ts';\nimport { onFocusTrapDeactivate } from '../../../modifiers/hds-advanced-table-cell/dom-management.ts';\n\nexport const ALIGNMENTS: string[] = Object.values(\n HdsAdvancedTableHorizontalAlignmentValues\n);\nexport const DEFAULT_ALIGN = HdsAdvancedTableHorizontalAlignmentValues.Left;\n\nexport interface HdsAdvancedTableTdSignature {\n Args: {\n align?: HdsAdvancedTableHorizontalAlignment;\n rowspan?: number;\n colspan?: number;\n };\n Blocks: {\n default?: [];\n };\n Element: HTMLDivElement;\n}\nexport default class HdsAdvancedTableTd extends Component<HdsAdvancedTableTdSignature> {\n @tracked private _shouldTrapFocus = false;\n private _element!: HTMLDivElement;\n\n // rowspan and colspan have to return 'auto' if not defined because otherwise the style modifier sets grid-area: undefined on the cell, which breaks the grid styles\n get rowspan(): string {\n if (this.args.rowspan) {\n return `span ${this.args.rowspan}`;\n }\n return 'auto';\n }\n\n get colspan(): string | undefined {\n if (this.args.colspan) {\n return `span ${this.args.colspan}`;\n }\n return 'auto';\n }\n\n get align(): HdsAdvancedTableHorizontalAlignment {\n const { align = DEFAULT_ALIGN } = this.args;\n\n assert(\n `@align for \"Hds::AdvancedTable::Td\" must be one of the following: ${ALIGNMENTS.join(\n ', '\n )}; received: ${align}`,\n ALIGNMENTS.includes(align)\n );\n return align;\n }\n\n get classNames(): string {\n const classes = ['hds-advanced-table__td'];\n\n // add a class based on the @align argument\n if (this.align) {\n classes.push(`hds-advanced-table__td--align-${this.align}`);\n }\n\n return classes.join(' ');\n }\n\n @action onFocusTrapDeactivate(): void {\n this._shouldTrapFocus = false;\n onFocusTrapDeactivate(this._element);\n }\n\n @action enableFocusTrap(): void {\n this._shouldTrapFocus = true;\n }\n\n @action getInitialFocus(): FocusableElement | undefined {\n const cellFocusableElements = focusable(this._element);\n return cellFocusableElements[0];\n }\n\n @action setElement(element: HTMLDivElement): void {\n this._element = element;\n }\n}\n"],"names":["ALIGNMENTS","Object","values","HdsAdvancedTableHorizontalAlignmentValues","DEFAULT_ALIGN","Left","HdsAdvancedTableTd","Component","g","prototype","tracked","i","void 0","_element","rowspan","args","colspan","align","assert","join","includes","classNames","classes","push","onFocusTrapDeactivate","_shouldTrapFocus","n","action","enableFocusTrap","getInitialFocus","cellFocusableElements","focusable","setElement","element","setComponentTemplate","TEMPLATE"],"mappings":";;;;;;;;;;;;;AAAA;AACA;AACA;AACA;;AAYO,MAAMA,UAAoB,GAAGC,MAAM,CAACC,MAAM,CAC/CC,yCACF;AACaC,MAAAA,aAAa,GAAGD,yCAAyC,CAACE;AAaxD,MAAMC,kBAAkB,SAASC,SAAS,CAA8B;AAAA,EAAA;IAAAC,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,kBAAA,EAAA,CACpFC,OAAO,CAAA,EAAA,YAAA;AAAA,MAAA,OAA4B,KAAK;AAAA,KAAA,CAAA;AAAA;AAAA,EAAA,iBAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,kBAAA,CAAA,EAAAC,SAAA;EACjCC,QAAQ;;AAEhB;EACA,IAAIC,OAAOA,GAAW;AACpB,IAAA,IAAI,IAAI,CAACC,IAAI,CAACD,OAAO,EAAE;AACrB,MAAA,OAAO,QAAQ,IAAI,CAACC,IAAI,CAACD,OAAO,CAAE,CAAA;AACpC;AACA,IAAA,OAAO,MAAM;AACf;EAEA,IAAIE,OAAOA,GAAuB;AAChC,IAAA,IAAI,IAAI,CAACD,IAAI,CAACC,OAAO,EAAE;AACrB,MAAA,OAAO,QAAQ,IAAI,CAACD,IAAI,CAACC,OAAO,CAAE,CAAA;AACpC;AACA,IAAA,OAAO,MAAM;AACf;EAEA,IAAIC,KAAKA,GAAwC;IAC/C,MAAM;AAAEA,MAAAA,KAAK,GAAGb;KAAe,GAAG,IAAI,CAACW,IAAI;AAE3CG,IAAAA,MAAM,CACJ,CAAqElB,kEAAAA,EAAAA,UAAU,CAACmB,IAAI,CAClF,IACF,CAAC,CAAA,YAAA,EAAeF,KAAK,CAAA,CAAE,EACvBjB,UAAU,CAACoB,QAAQ,CAACH,KAAK,CAC3B,CAAC;AACD,IAAA,OAAOA,KAAK;AACd;EAEA,IAAII,UAAUA,GAAW;AACvB,IAAA,MAAMC,OAAO,GAAG,CAAC,wBAAwB,CAAC;;AAE1C;IACA,IAAI,IAAI,CAACL,KAAK,EAAE;MACdK,OAAO,CAACC,IAAI,CAAC,CAAA,8BAAA,EAAiC,IAAI,CAACN,KAAK,EAAE,CAAC;AAC7D;AAEA,IAAA,OAAOK,OAAO,CAACH,IAAI,CAAC,GAAG,CAAC;AAC1B;AAEQK,EAAAA,qBAAqBA,GAAS;IACpC,IAAI,CAACC,gBAAgB,GAAG,KAAK;AAC7BD,IAAAA,qBAAqB,CAAC,IAAI,CAACX,QAAQ,CAAC;AACtC;AAAC,EAAA;IAAAa,CAAA,CAAA,IAAA,CAAAjB,SAAA,EAAA,uBAAA,EAAA,CAHAkB,MAAM,CAAA,CAAA;AAAA;AAKCC,EAAAA,eAAeA,GAAS;IAC9B,IAAI,CAACH,gBAAgB,GAAG,IAAI;AAC9B;AAAC,EAAA;IAAAC,CAAA,CAAA,IAAA,CAAAjB,SAAA,EAAA,iBAAA,EAAA,CAFAkB,MAAM,CAAA,CAAA;AAAA;AAICE,EAAAA,eAAeA,GAAiC;AACtD,IAAA,MAAMC,qBAAqB,GAAGC,SAAS,CAAC,IAAI,CAAClB,QAAQ,CAAC;IACtD,OAAOiB,qBAAqB,CAAC,CAAC,CAAC;AACjC;AAAC,EAAA;IAAAJ,CAAA,CAAA,IAAA,CAAAjB,SAAA,EAAA,iBAAA,EAAA,CAHAkB,MAAM,CAAA,CAAA;AAAA;EAKCK,UAAUA,CAACC,OAAuB,EAAQ;IAChD,IAAI,CAACpB,QAAQ,GAAGoB,OAAO;AACzB;AAAC,EAAA;IAAAP,CAAA,CAAA,IAAA,CAAAjB,SAAA,EAAA,YAAA,EAAA,CAFAkB,MAAM,CAAA,CAAA;AAAA;AAGT;AAACO,oBAAA,CAAAC,QAAA,EA3DoB7B,kBAAkB,CAAA;;;;"}
|
|
@@ -1,20 +1,21 @@
|
|
|
1
|
-
import { _ as _applyDecoratedDescriptor, a as _defineProperty } from '../../../_rollupPluginBabelHelpers-C_TsMG3M.js';
|
|
2
1
|
import Component from '@glimmer/component';
|
|
3
2
|
import { guidFor } from '@ember/object/internals';
|
|
4
3
|
import { action } from '@ember/object';
|
|
5
4
|
import { HdsAdvancedTableThExpandIconValues } from './types.js';
|
|
6
5
|
import { precompileTemplate } from '@ember/template-compilation';
|
|
6
|
+
import { n } from 'decorator-transforms/runtime';
|
|
7
7
|
import { setComponentTemplate } from '@ember/component';
|
|
8
8
|
|
|
9
9
|
var TEMPLATE = precompileTemplate("{{!\n Copyright (c) HashiCorp, Inc.\n SPDX-License-Identifier: MPL-2.0\n}}\n{{! template-lint-disable no-unsupported-role-attributes }}\n{{! ember template lint doesnt support ARIA 1.3 yet, including aria-description - https://github.com/A11yance/aria-query/pull/557 }}\n<button\n type=\"button\"\n class={{this.classNames}}\n {{on \"click\" this.onClick}}\n aria-labelledby=\"{{this._prefixLabelId}} {{@labelId}}\"\n aria-expanded=\"{{this.isExpanded}}\"\n aria-description=\"Toggle the visibility of the related rows.\"\n ...attributes\n>\n {{! template-lint-enable no-unsupported-role-attributes}}\n <span id={{this._prefixLabelId}} class=\"hds-advanced-table__th-button-aria-label-hidden-segment\">Toggle</span>\n <Hds::Icon @name={{this.icon}} />\n</button>");
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
11
|
+
/**
|
|
12
|
+
* Copyright (c) HashiCorp, Inc.
|
|
13
|
+
* SPDX-License-Identifier: MPL-2.0
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
class HdsAdvancedTableThButtonExpand extends Component {
|
|
17
|
+
// Generates a unique ID for the (hidden) "label prefix" <span> element
|
|
18
|
+
_prefixLabelId = 'prefix-' + guidFor(this);
|
|
18
19
|
get isExpanded() {
|
|
19
20
|
const {
|
|
20
21
|
isExpanded = false
|
|
@@ -33,6 +34,9 @@ let HdsAdvancedTableThButtonExpand = (_class = class HdsAdvancedTableThButtonExp
|
|
|
33
34
|
this.args.onToggle();
|
|
34
35
|
}
|
|
35
36
|
}
|
|
37
|
+
static {
|
|
38
|
+
n(this.prototype, "onClick", [action]);
|
|
39
|
+
}
|
|
36
40
|
get classNames() {
|
|
37
41
|
const classes = ['hds-advanced-table__th-button', 'hds-advanced-table__th-button--expand'];
|
|
38
42
|
|
|
@@ -42,7 +46,7 @@ let HdsAdvancedTableThButtonExpand = (_class = class HdsAdvancedTableThButtonExp
|
|
|
42
46
|
}
|
|
43
47
|
return classes.join(' ');
|
|
44
48
|
}
|
|
45
|
-
}
|
|
49
|
+
}
|
|
46
50
|
setComponentTemplate(TEMPLATE, HdsAdvancedTableThButtonExpand);
|
|
47
51
|
|
|
48
52
|
export { HdsAdvancedTableThButtonExpand as default };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"th-button-expand.js","sources":["../../../../src/components/hds/advanced-table/th-button-expand.
|
|
1
|
+
{"version":3,"file":"th-button-expand.js","sources":["../../../../src/components/hds/advanced-table/th-button-expand.ts"],"sourcesContent":["/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { guidFor } from '@ember/object/internals';\nimport { action } from '@ember/object';\n\nimport { HdsAdvancedTableThExpandIconValues } from './types.ts';\nimport type { HdsAdvancedTableThSortExpandIcons } from './types.ts';\nexport interface HdsAdvancedTableThButtonExpandSignature {\n Args: {\n labelId?: string;\n isExpanded?: boolean;\n onToggle?: () => void;\n };\n Element: HTMLButtonElement;\n}\n\nexport default class HdsAdvancedTableThButtonExpand extends Component<HdsAdvancedTableThButtonExpandSignature> {\n // Generates a unique ID for the (hidden) \"label prefix\" <span> element\n private _prefixLabelId = 'prefix-' + guidFor(this);\n\n get isExpanded(): boolean {\n const { isExpanded = false } = this.args;\n\n return isExpanded;\n }\n\n get icon(): HdsAdvancedTableThSortExpandIcons {\n if (this.isExpanded) {\n return HdsAdvancedTableThExpandIconValues.ChevronDown;\n } else {\n return HdsAdvancedTableThExpandIconValues.ChevronRight;\n }\n }\n\n @action onClick() {\n if (this.args.onToggle) {\n this.args.onToggle();\n }\n }\n\n get classNames(): string {\n const classes = [\n 'hds-advanced-table__th-button',\n 'hds-advanced-table__th-button--expand',\n ];\n\n // add a class based on the isExpanded state\n if (this.args.isExpanded) {\n classes.push(`hds-advanced-table__th-button--is-expanded`);\n }\n\n return classes.join(' ');\n }\n}\n"],"names":["HdsAdvancedTableThButtonExpand","Component","_prefixLabelId","guidFor","isExpanded","args","icon","HdsAdvancedTableThExpandIconValues","ChevronDown","ChevronRight","onClick","onToggle","n","prototype","action","classNames","classes","push","join","setComponentTemplate","TEMPLATE"],"mappings":";;;;;;;;;;AAAA;AACA;AACA;AACA;;AAiBe,MAAMA,8BAA8B,SAASC,SAAS,CAA0C;AAC7G;AACQC,EAAAA,cAAc,GAAG,SAAS,GAAGC,OAAO,CAAC,IAAI,CAAC;EAElD,IAAIC,UAAUA,GAAY;IACxB,MAAM;AAAEA,MAAAA,UAAU,GAAG;KAAO,GAAG,IAAI,CAACC,IAAI;AAExC,IAAA,OAAOD,UAAU;AACnB;EAEA,IAAIE,IAAIA,GAAsC;IAC5C,IAAI,IAAI,CAACF,UAAU,EAAE;MACnB,OAAOG,kCAAkC,CAACC,WAAW;AACvD,KAAC,MAAM;MACL,OAAOD,kCAAkC,CAACE,YAAY;AACxD;AACF;AAEQC,EAAAA,OAAOA,GAAG;AAChB,IAAA,IAAI,IAAI,CAACL,IAAI,CAACM,QAAQ,EAAE;AACtB,MAAA,IAAI,CAACN,IAAI,CAACM,QAAQ,EAAE;AACtB;AACF;AAAC,EAAA;IAAAC,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,SAAA,EAAA,CAJAC,MAAM,CAAA,CAAA;AAAA;EAMP,IAAIC,UAAUA,GAAW;AACvB,IAAA,MAAMC,OAAO,GAAG,CACd,+BAA+B,EAC/B,uCAAuC,CACxC;;AAED;AACA,IAAA,IAAI,IAAI,CAACX,IAAI,CAACD,UAAU,EAAE;AACxBY,MAAAA,OAAO,CAACC,IAAI,CAAC,CAAA,0CAAA,CAA4C,CAAC;AAC5D;AAEA,IAAA,OAAOD,OAAO,CAACE,IAAI,CAAC,GAAG,CAAC;AAC1B;AACF;AAACC,oBAAA,CAAAC,QAAA,EArCoBpB,8BAA8B,CAAA;;;;"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { a as _defineProperty } from '../../../_rollupPluginBabelHelpers-C_TsMG3M.js';
|
|
2
1
|
import Component from '@glimmer/component';
|
|
3
2
|
import { guidFor } from '@ember/object/internals';
|
|
4
3
|
import { HdsAdvancedTableThSortOrderIconValues, HdsAdvancedTableThSortOrderValues, HdsAdvancedTableThSortOrderLabelValues } from './types.js';
|
|
@@ -7,14 +6,16 @@ import { setComponentTemplate } from '@ember/component';
|
|
|
7
6
|
|
|
8
7
|
var TEMPLATE = precompileTemplate("{{!\n Copyright (c) HashiCorp, Inc.\n SPDX-License-Identifier: MPL-2.0\n}}\n<button\n type=\"button\"\n class={{this.classNames}}\n {{on \"click\" this.onClick}}\n aria-labelledby=\"{{this._prefixLabelId}} {{@labelId}} {{this._suffixLabelId}}\"\n ...attributes\n>\n <span id={{this._prefixLabelId}} class=\"hds-advanced-table__th-button-aria-label-hidden-segment\">Sort by</span>\n <span\n id={{this._suffixLabelId}}\n class=\"hds-advanced-table__th-button-aria-label-hidden-segment\"\n >{{this.sortOrderLabel}}</span>\n <Hds::Icon @name={{this.icon}} />\n</button>");
|
|
9
8
|
|
|
9
|
+
/**
|
|
10
|
+
* Copyright (c) HashiCorp, Inc.
|
|
11
|
+
* SPDX-License-Identifier: MPL-2.0
|
|
12
|
+
*/
|
|
13
|
+
|
|
10
14
|
const NOOP = () => {};
|
|
11
15
|
class HdsAdvancedTableThButtonSort extends Component {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
_defineProperty(this, "_prefixLabelId", 'prefix-' + guidFor(this));
|
|
16
|
-
_defineProperty(this, "_suffixLabelId", 'suffix-' + guidFor(this));
|
|
17
|
-
}
|
|
16
|
+
// Generates a unique ID for the (hidden) "label prefix/suffix" <span> elements
|
|
17
|
+
_prefixLabelId = 'prefix-' + guidFor(this);
|
|
18
|
+
_suffixLabelId = 'suffix-' + guidFor(this);
|
|
18
19
|
get icon() {
|
|
19
20
|
switch (this.args.sortOrder) {
|
|
20
21
|
case HdsAdvancedTableThSortOrderValues.Asc:
|