@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,36 +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 { inject } from '@ember/service';
|
|
4
3
|
import { tracked } from '@glimmer/tracking';
|
|
5
4
|
import { action } from '@ember/object';
|
|
6
|
-
import { DEBUG } from '@glimmer/env';
|
|
7
5
|
import { macroCondition, isTesting } from '@embroider/macros';
|
|
8
6
|
import { precompileTemplate } from '@ember/template-compilation';
|
|
7
|
+
import { g, i, n } from 'decorator-transforms/runtime';
|
|
9
8
|
import { setComponentTemplate } from '@ember/component';
|
|
10
9
|
|
|
11
10
|
var TEMPLATE = precompileTemplate("{{!\n Copyright (c) HashiCorp, Inc.\n SPDX-License-Identifier: MPL-2.0\n}}\n\n<div class=\"hds-side-nav__content\" ...attributes>\n <PortalTarget\n @multiple={{true}}\n @onChange={{this.panelsChanged}}\n @name={{if @targetName @targetName \"hds-side-nav-portal-target\"}}\n class=\"hds-side-nav__content-panels hds-side-nav-hide-when-minimized\"\n {{did-update this.didUpdateSubnav this.numSubnavs}}\n />\n</div>");
|
|
12
11
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
12
|
+
/**
|
|
13
|
+
* Copyright (c) HashiCorp, Inc.
|
|
14
|
+
* SPDX-License-Identifier: MPL-2.0
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
class HdsSideNavPortalTarget extends Component {
|
|
18
|
+
static {
|
|
19
|
+
g(this.prototype, "router", [inject]);
|
|
20
|
+
}
|
|
21
|
+
#router = (i(this, "router"), undefined);
|
|
22
|
+
static {
|
|
23
|
+
g(this.prototype, "numSubnavs", [tracked], function () {
|
|
24
|
+
return 0;
|
|
25
|
+
});
|
|
21
26
|
}
|
|
27
|
+
#numSubnavs = (i(this, "numSubnavs"), undefined);
|
|
28
|
+
static {
|
|
29
|
+
g(this.prototype, "lastPanelEl", [tracked]);
|
|
30
|
+
}
|
|
31
|
+
#lastPanelEl = (i(this, "lastPanelEl"), undefined);
|
|
22
32
|
static get prefersReducedMotionOverride() {
|
|
23
33
|
return macroCondition(isTesting()) ? true : false;
|
|
24
34
|
}
|
|
35
|
+
prefersReducedMotionMQ = window.matchMedia('(prefers-reduced-motion: reduce)');
|
|
25
36
|
get prefersReducedMotion() {
|
|
26
37
|
return HdsSideNavPortalTarget.prefersReducedMotionOverride || this.prefersReducedMotionMQ && this.prefersReducedMotionMQ.matches;
|
|
27
38
|
}
|
|
28
39
|
panelsChanged(portalCount) {
|
|
29
40
|
this.numSubnavs = portalCount;
|
|
30
41
|
}
|
|
42
|
+
static {
|
|
43
|
+
n(this.prototype, "panelsChanged", [action]);
|
|
44
|
+
}
|
|
31
45
|
didUpdateSubnav(element, [count]) {
|
|
32
46
|
this.animateSubnav(element, [count]);
|
|
33
47
|
}
|
|
48
|
+
static {
|
|
49
|
+
n(this.prototype, "didUpdateSubnav", [action]);
|
|
50
|
+
}
|
|
34
51
|
animateSubnav(element, [count]) {
|
|
35
52
|
/*
|
|
36
53
|
* Here is what the layout looks like for this setup
|
|
@@ -111,7 +128,7 @@ let HdsSideNavPortalTarget = (_class = class HdsSideNavPortalTarget extends Comp
|
|
|
111
128
|
}
|
|
112
129
|
}
|
|
113
130
|
// Notice: we don't add the styles by default because it writes a `style` attribute to the element and it causes an additional re-render
|
|
114
|
-
if (
|
|
131
|
+
if (macroCondition(isTesting())) {
|
|
115
132
|
// Check the visibility of the element before attempting to commitStyles.
|
|
116
133
|
if (targetElement.offsetParent !== null) {
|
|
117
134
|
anim.commitStyles();
|
|
@@ -149,24 +166,10 @@ let HdsSideNavPortalTarget = (_class = class HdsSideNavPortalTarget extends Comp
|
|
|
149
166
|
});
|
|
150
167
|
}
|
|
151
168
|
}
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
enumerable: true,
|
|
155
|
-
writable: true,
|
|
156
|
-
initializer: null
|
|
157
|
-
}), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "numSubnavs", [tracked], {
|
|
158
|
-
configurable: true,
|
|
159
|
-
enumerable: true,
|
|
160
|
-
writable: true,
|
|
161
|
-
initializer: function () {
|
|
162
|
-
return 0;
|
|
169
|
+
static {
|
|
170
|
+
n(this.prototype, "animateSubnav", [action]);
|
|
163
171
|
}
|
|
164
|
-
}
|
|
165
|
-
configurable: true,
|
|
166
|
-
enumerable: true,
|
|
167
|
-
writable: true,
|
|
168
|
-
initializer: null
|
|
169
|
-
}), _applyDecoratedDescriptor(_class.prototype, "panelsChanged", [action], Object.getOwnPropertyDescriptor(_class.prototype, "panelsChanged"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "didUpdateSubnav", [action], Object.getOwnPropertyDescriptor(_class.prototype, "didUpdateSubnav"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "animateSubnav", [action], Object.getOwnPropertyDescriptor(_class.prototype, "animateSubnav"), _class.prototype), _class);
|
|
172
|
+
}
|
|
170
173
|
setComponentTemplate(TEMPLATE, HdsSideNavPortalTarget);
|
|
171
174
|
|
|
172
175
|
export { HdsSideNavPortalTarget as default };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"target.js","sources":["../../../../../src/components/hds/side-nav/portal/target.hbs","../../../../../src/components/hds/side-nav/portal/target.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 class=\\\"hds-side-nav__content\\\" ...attributes>\\n <PortalTarget\\n @multiple={{true}}\\n @onChange={{this.panelsChanged}}\\n @name={{if @targetName @targetName \\\"hds-side-nav-portal-target\\\"}}\\n class=\\\"hds-side-nav__content-panels hds-side-nav-hide-when-minimized\\\"\\n {{did-update this.didUpdateSubnav this.numSubnavs}}\\n />\\n</div>\")","/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { inject as service } from '@ember/service';\nimport { tracked } from '@glimmer/tracking';\nimport { action } from '@ember/object';\nimport { DEBUG } from '@glimmer/env';\nimport { macroCondition, isTesting } from '@embroider/macros';\n\nimport type { HdsSideNavPortalSignature } from './index';\n\n// import { PortalTargetSignature } from 'ember-stargate/components/portal-target';\nexport interface PortalTargetSignature {\n Element: HTMLDivElement;\n Args: {\n name: string;\n multiple?: boolean;\n onChange?: (count: number) => void;\n };\n Blocks: {\n default: [number];\n };\n}\n\nimport type { Registry as Services } from '@ember/service';\n\nexport interface HdsSideNavPortalTargetSignature {\n Args: PortalTargetSignature['Args'] & {\n targetName?: HdsSideNavPortalSignature['Args']['targetName'];\n };\n Element: HTMLDivElement;\n}\n\nexport default class HdsSideNavPortalTarget extends Component<HdsSideNavPortalTargetSignature> {\n @service router!: Services['router'];\n\n @tracked numSubnavs = 0;\n @tracked lastPanelEl: Element | undefined;\n\n static get prefersReducedMotionOverride(): boolean {\n return macroCondition(isTesting()) ? true : false;\n }\n\n prefersReducedMotionMQ = window.matchMedia(\n '(prefers-reduced-motion: reduce)'\n );\n\n get prefersReducedMotion(): boolean {\n return (\n HdsSideNavPortalTarget.prefersReducedMotionOverride ||\n (this.prefersReducedMotionMQ && this.prefersReducedMotionMQ.matches)\n );\n }\n\n @action\n panelsChanged(portalCount: number): void {\n this.numSubnavs = portalCount;\n }\n\n @action\n didUpdateSubnav(element: HTMLElement, [count]: [number]): void {\n this.animateSubnav(element, [count]);\n }\n\n @action\n animateSubnav(element: HTMLElement, [count]: [number]): void {\n /*\n * Here is what the layout looks like for this setup\n *\n\n SideNav\n +----------------------+\n | +------------------+ |\n | | (\"header\") | |\n | +------------------+ |\n | |\n | +------------------+ |\n | | (\"body\") | |\n (PortalTarget) | | | |\n +----------------------------------------------+ | |\n | +----------+ +----------+ | +----------+ | | |\n | | (Portal) | | (Portal) | | (Portal) | | | |\n | | | | | | | | | | |\n | | hidden | | hidden | | *active* | | | |\n | | panel | | panel | | | panel | | | |\n | | | | | | | | | |\n | | | | | | | | | | |\n | | | | | | | | | |\n | | | | | | | | | | |\n | | | | | | | | | |\n | | | | | | | | | | |\n | | | | | | | | | |\n | +----------+ +----------+ | +----------+ | | |\n +----------------------------------------------+ | |\n | | | |\n | +------------------+ |\n | |\n | +------------------+ |\n | | (\"footer\") | |\n | +------------------+ |\n +----------------------+\n\n *\n * every time `HcAppFrame::SideNav::Portal` renders, it contains a portaled \"panel\"\n * that is rendered into the `hds-side-nav__content-panels` (inside the PortalTarget).\n *\n * Rendering or unrendering other `HcAppFrame::SideNav::Portal`s triggers the number of\n * subnavs to change (via `numSubnavs`), so this function runs and slides\n * `hds-side-nav__content-panels` left or right using the `element.animate` api.\n *\n * */\n\n const activeIndex = count - 1;\n const targetElement = element;\n const { prefersReducedMotion } = this;\n\n const styles = getComputedStyle(targetElement);\n const columnWidth = styles.getPropertyValue(\n '--hds-app-sidenav-width-expanded'\n );\n const slideDuration = prefersReducedMotion ? 0 : 150;\n let fadeDuration = prefersReducedMotion ? 0 : 175;\n let fadeDelay = prefersReducedMotion ? 0 : 50;\n\n // slide entire parent panel\n const start = styles.transform;\n const end = `translateX(-${activeIndex * parseInt(columnWidth, 10)}px)`;\n const anim = targetElement.animate(\n [{ transform: start }, { transform: end }],\n {\n duration: slideDuration,\n easing: 'cubic-bezier(0.65, 0, 0.35, 1)',\n fill: 'forwards',\n }\n );\n\n anim.finished.then((): void => {\n // uncomment this if we need/want to scroll the element to the top\n // targetElement.scrollIntoView(true);\n if (activeIndex > 0) {\n const allPrev = Array.from(targetElement.children).slice(\n 0,\n activeIndex\n ) as HTMLElement[];\n for (const ele of allPrev) {\n ele.ariaHidden = 'true';\n ele.style.setProperty('visibility', 'hidden');\n ele.style.setProperty('opacity', '0');\n }\n }\n // Notice: we don't add the styles by default because it writes a `style` attribute to the element and it causes an additional re-render\n if (DEBUG) {\n // Check the visibility of the element before attempting to commitStyles.\n if (targetElement.offsetParent !== null) {\n anim.commitStyles();\n }\n }\n });\n\n // fade in next panel\n const nextPanelEl = targetElement.children[activeIndex] as HTMLElement;\n\n // get reference to last child panel\n const lastPanelEl = targetElement.children[\n targetElement.children.length - 1\n ] as HTMLElement;\n\n if (nextPanelEl) {\n nextPanelEl.ariaHidden = 'false';\n nextPanelEl.style.setProperty('visibility', 'visible');\n // this eliminates a flicker if there's only one subnav rendering or if we\n // already just rendered this panel.\n if (this.lastPanelEl) {\n if (activeIndex === 0 || nextPanelEl.isSameNode(this.lastPanelEl)) {\n fadeDelay = 0;\n fadeDuration = 0;\n }\n }\n\n // remember the last panel\n this.lastPanelEl = lastPanelEl;\n\n nextPanelEl.animate([{ opacity: '0' }, { opacity: '1' }], {\n delay: fadeDelay,\n duration: fadeDuration,\n fill: 'forwards',\n });\n }\n }\n}\n"],"names":["HdsSideNavPortalTarget","_class","Component","constructor","args","_initializerDefineProperty","_descriptor","_descriptor2","_descriptor3","_defineProperty","window","matchMedia","prefersReducedMotionOverride","macroCondition","isTesting","prefersReducedMotion","prefersReducedMotionMQ","matches","panelsChanged","portalCount","numSubnavs","didUpdateSubnav","element","count","animateSubnav","activeIndex","targetElement","styles","getComputedStyle","columnWidth","getPropertyValue","slideDuration","fadeDuration","fadeDelay","start","transform","end","parseInt","anim","animate","duration","easing","fill","finished","then","allPrev","Array","from","children","slice","ele","ariaHidden","style","setProperty","DEBUG","offsetParent","commitStyles","nextPanelEl","lastPanelEl","length","isSameNode","opacity","delay","_applyDecoratedDescriptor","prototype","service","configurable","enumerable","writable","initializer","tracked","action","Object","getOwnPropertyDescriptor","setComponentTemplate","TEMPLATE"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"target.js","sources":["../../../../../src/components/hds/side-nav/portal/target.ts"],"sourcesContent":["/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { inject as service } from '@ember/service';\nimport { tracked } from '@glimmer/tracking';\nimport { action } from '@ember/object';\nimport { macroCondition, isTesting } from '@embroider/macros';\n\nimport type { HdsSideNavPortalSignature } from './index';\n\n// import { PortalTargetSignature } from 'ember-stargate/components/portal-target';\nexport interface PortalTargetSignature {\n Element: HTMLDivElement;\n Args: {\n name: string;\n multiple?: boolean;\n onChange?: (count: number) => void;\n };\n Blocks: {\n default: [number];\n };\n}\n\nimport type { Registry as Services } from '@ember/service';\n\nexport interface HdsSideNavPortalTargetSignature {\n Args: PortalTargetSignature['Args'] & {\n targetName?: HdsSideNavPortalSignature['Args']['targetName'];\n };\n Element: HTMLDivElement;\n}\n\nexport default class HdsSideNavPortalTarget extends Component<HdsSideNavPortalTargetSignature> {\n @service router!: Services['router'];\n\n @tracked numSubnavs = 0;\n @tracked lastPanelEl: Element | undefined;\n\n static get prefersReducedMotionOverride(): boolean {\n return macroCondition(isTesting()) ? true : false;\n }\n\n prefersReducedMotionMQ = window.matchMedia(\n '(prefers-reduced-motion: reduce)'\n );\n\n get prefersReducedMotion(): boolean {\n return (\n HdsSideNavPortalTarget.prefersReducedMotionOverride ||\n (this.prefersReducedMotionMQ && this.prefersReducedMotionMQ.matches)\n );\n }\n\n @action\n panelsChanged(portalCount: number): void {\n this.numSubnavs = portalCount;\n }\n\n @action\n didUpdateSubnav(element: HTMLElement, [count]: [number]): void {\n this.animateSubnav(element, [count]);\n }\n\n @action\n animateSubnav(element: HTMLElement, [count]: [number]): void {\n /*\n * Here is what the layout looks like for this setup\n *\n\n SideNav\n +----------------------+\n | +------------------+ |\n | | (\"header\") | |\n | +------------------+ |\n | |\n | +------------------+ |\n | | (\"body\") | |\n (PortalTarget) | | | |\n +----------------------------------------------+ | |\n | +----------+ +----------+ | +----------+ | | |\n | | (Portal) | | (Portal) | | (Portal) | | | |\n | | | | | | | | | | |\n | | hidden | | hidden | | *active* | | | |\n | | panel | | panel | | | panel | | | |\n | | | | | | | | | |\n | | | | | | | | | | |\n | | | | | | | | | |\n | | | | | | | | | | |\n | | | | | | | | | |\n | | | | | | | | | | |\n | | | | | | | | | |\n | +----------+ +----------+ | +----------+ | | |\n +----------------------------------------------+ | |\n | | | |\n | +------------------+ |\n | |\n | +------------------+ |\n | | (\"footer\") | |\n | +------------------+ |\n +----------------------+\n\n *\n * every time `HcAppFrame::SideNav::Portal` renders, it contains a portaled \"panel\"\n * that is rendered into the `hds-side-nav__content-panels` (inside the PortalTarget).\n *\n * Rendering or unrendering other `HcAppFrame::SideNav::Portal`s triggers the number of\n * subnavs to change (via `numSubnavs`), so this function runs and slides\n * `hds-side-nav__content-panels` left or right using the `element.animate` api.\n *\n * */\n\n const activeIndex = count - 1;\n const targetElement = element;\n const { prefersReducedMotion } = this;\n\n const styles = getComputedStyle(targetElement);\n const columnWidth = styles.getPropertyValue(\n '--hds-app-sidenav-width-expanded'\n );\n const slideDuration = prefersReducedMotion ? 0 : 150;\n let fadeDuration = prefersReducedMotion ? 0 : 175;\n let fadeDelay = prefersReducedMotion ? 0 : 50;\n\n // slide entire parent panel\n const start = styles.transform;\n const end = `translateX(-${activeIndex * parseInt(columnWidth, 10)}px)`;\n const anim = targetElement.animate(\n [{ transform: start }, { transform: end }],\n {\n duration: slideDuration,\n easing: 'cubic-bezier(0.65, 0, 0.35, 1)',\n fill: 'forwards',\n }\n );\n\n anim.finished.then((): void => {\n // uncomment this if we need/want to scroll the element to the top\n // targetElement.scrollIntoView(true);\n if (activeIndex > 0) {\n const allPrev = Array.from(targetElement.children).slice(\n 0,\n activeIndex\n ) as HTMLElement[];\n for (const ele of allPrev) {\n ele.ariaHidden = 'true';\n ele.style.setProperty('visibility', 'hidden');\n ele.style.setProperty('opacity', '0');\n }\n }\n // Notice: we don't add the styles by default because it writes a `style` attribute to the element and it causes an additional re-render\n if (macroCondition(isTesting())) {\n // Check the visibility of the element before attempting to commitStyles.\n if (targetElement.offsetParent !== null) {\n anim.commitStyles();\n }\n }\n });\n\n // fade in next panel\n const nextPanelEl = targetElement.children[activeIndex] as HTMLElement;\n\n // get reference to last child panel\n const lastPanelEl = targetElement.children[\n targetElement.children.length - 1\n ] as HTMLElement;\n\n if (nextPanelEl) {\n nextPanelEl.ariaHidden = 'false';\n nextPanelEl.style.setProperty('visibility', 'visible');\n // this eliminates a flicker if there's only one subnav rendering or if we\n // already just rendered this panel.\n if (this.lastPanelEl) {\n if (activeIndex === 0 || nextPanelEl.isSameNode(this.lastPanelEl)) {\n fadeDelay = 0;\n fadeDuration = 0;\n }\n }\n\n // remember the last panel\n this.lastPanelEl = lastPanelEl;\n\n nextPanelEl.animate([{ opacity: '0' }, { opacity: '1' }], {\n delay: fadeDelay,\n duration: fadeDuration,\n fill: 'forwards',\n });\n }\n }\n}\n"],"names":["HdsSideNavPortalTarget","Component","g","prototype","service","i","void 0","tracked","prefersReducedMotionOverride","macroCondition","isTesting","prefersReducedMotionMQ","window","matchMedia","prefersReducedMotion","matches","panelsChanged","portalCount","numSubnavs","n","action","didUpdateSubnav","element","count","animateSubnav","activeIndex","targetElement","styles","getComputedStyle","columnWidth","getPropertyValue","slideDuration","fadeDuration","fadeDelay","start","transform","end","parseInt","anim","animate","duration","easing","fill","finished","then","allPrev","Array","from","children","slice","ele","ariaHidden","style","setProperty","offsetParent","commitStyles","nextPanelEl","lastPanelEl","length","isSameNode","opacity","delay","setComponentTemplate","TEMPLATE"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toggle-button.js","sources":["../../../../src/components/hds/side-nav/toggle-button.
|
|
1
|
+
{"version":3,"file":"toggle-button.js","sources":["../../../../src/components/hds/side-nav/toggle-button.ts"],"sourcesContent":["/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport TemplateOnlyComponent from '@ember/component/template-only';\n\nimport type { HdsIconSignature } from '../icon';\n\nexport interface HdsSideNavToggleButtonSignature {\n Args: {\n icon: HdsIconSignature['Args']['name'];\n };\n Element: HTMLButtonElement;\n}\n\nconst HdsSideNavToggleButton =\n TemplateOnlyComponent<HdsSideNavToggleButtonSignature>();\n\nexport default HdsSideNavToggleButton;\n"],"names":["HdsSideNavToggleButton","TemplateOnlyComponent","setComponentTemplate","TEMPLATE"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;;AAaA,MAAMA,sBAAsB,GAC1BC,qBAAqB,EAAmC;AAE1D,mBAAAC,oBAAA,CAAAC,QAAA,EAAeH,sBAAsB,CAAA;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"indicator.js","sources":["../../../../../src/components/hds/stepper/step/indicator.
|
|
1
|
+
{"version":3,"file":"indicator.js","sources":["../../../../../src/components/hds/stepper/step/indicator.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';\n\nimport { HdsStepperStatusesValues } from '../types.ts';\nimport type { HdsStepperStatuses } from '../types.ts';\n\nexport const DEFAULT_STATUS = HdsStepperStatusesValues.Incomplete;\nexport const STATUSES: string[] = Object.values(HdsStepperStatusesValues);\n\nexport interface HdsStepperStepIndicatorSignature {\n Args: {\n status?: HdsStepperStatuses;\n isInteractive?: boolean;\n text?: string;\n };\n Element: HTMLDivElement;\n}\n\nexport default class HdsStepperStepIndicator extends Component<HdsStepperStepIndicatorSignature> {\n /**\n * @param status\n * @type {string}\n * @default \"incomplete\"\n */\n\n get status(): HdsStepperStatuses {\n const { status = DEFAULT_STATUS } = this.args;\n\n assert(\n `@status for \"Hds::Stepper::Step::Indicator\" must be one of the following: ${STATUSES.join(\n ', '\n )}; received: ${status}`,\n STATUSES.includes(status)\n );\n\n return status;\n }\n\n /**\n * @param isInteractive\n * @type {boolean}\n * @default false\n */\n\n get isInteractive(): boolean {\n return this.args.isInteractive || false;\n }\n\n /**\n * Get the class names to apply to the component.\n * @method IndicatorStep#classNames\n * @return {string} The \"class\" attribute to apply to the component.\n */\n get classNames(): string {\n const classes = ['hds-stepper-indicator-step'];\n\n // Based on the @status arg\n classes.push(`hds-stepper-indicator-step--status-${this.status}`);\n\n if (this.isInteractive) {\n classes.push(`hds-stepper-indicator-step--is-interactive`);\n }\n\n return classes.join(' ');\n }\n}\n"],"names":["DEFAULT_STATUS","HdsStepperStatusesValues","Incomplete","STATUSES","Object","values","HdsStepperStepIndicator","Component","status","args","assert","join","includes","isInteractive","classNames","classes","push","setComponentTemplate","TEMPLATE"],"mappings":";;;;;;;;AAAA;AACA;AACA;AACA;;AAQaA,MAAAA,cAAc,GAAGC,wBAAwB,CAACC;AAChD,MAAMC,QAAkB,GAAGC,MAAM,CAACC,MAAM,CAACJ,wBAAwB;AAWzD,MAAMK,uBAAuB,SAASC,SAAS,CAAmC;AAC/F;AACF;AACA;AACA;AACA;;EAEE,IAAIC,MAAMA,GAAuB;IAC/B,MAAM;AAAEA,MAAAA,MAAM,GAAGR;KAAgB,GAAG,IAAI,CAACS,IAAI;AAE7CC,IAAAA,MAAM,CACJ,CAA6EP,0EAAAA,EAAAA,QAAQ,CAACQ,IAAI,CACxF,IACF,CAAC,CAAA,YAAA,EAAeH,MAAM,CAAA,CAAE,EACxBL,QAAQ,CAACS,QAAQ,CAACJ,MAAM,CAC1B,CAAC;AAED,IAAA,OAAOA,MAAM;AACf;;AAEA;AACF;AACA;AACA;AACA;;EAEE,IAAIK,aAAaA,GAAY;AAC3B,IAAA,OAAO,IAAI,CAACJ,IAAI,CAACI,aAAa,IAAI,KAAK;AACzC;;AAEA;AACF;AACA;AACA;AACA;EACE,IAAIC,UAAUA,GAAW;AACvB,IAAA,MAAMC,OAAO,GAAG,CAAC,4BAA4B,CAAC;;AAE9C;IACAA,OAAO,CAACC,IAAI,CAAC,CAAA,mCAAA,EAAsC,IAAI,CAACR,MAAM,EAAE,CAAC;IAEjE,IAAI,IAAI,CAACK,aAAa,EAAE;AACtBE,MAAAA,OAAO,CAACC,IAAI,CAAC,CAAA,0CAAA,CAA4C,CAAC;AAC5D;AAEA,IAAA,OAAOD,OAAO,CAACJ,IAAI,CAAC,GAAG,CAAC;AAC1B;AACF;AAACM,oBAAA,CAAAC,QAAA,EA/CoBZ,uBAAuB,CAAA;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"indicator.js","sources":["../../../../../src/components/hds/stepper/task/indicator.
|
|
1
|
+
{"version":3,"file":"indicator.js","sources":["../../../../../src/components/hds/stepper/task/indicator.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';\n\nimport {\n HdsStepperStatusesValues,\n HdsStepperStatusToIconsValues,\n} from '../types.ts';\nimport type { HdsIconSignature } from '../../icon';\nimport type { HdsStepperStatuses } from '../types.ts';\n\nexport const DEFAULT_STATUS = HdsStepperStatusesValues.Incomplete;\nexport const STATUSES: string[] = Object.values(HdsStepperStatusesValues);\n\nexport const MAPPING_STATUS_TO_ICONS = HdsStepperStatusToIconsValues;\n\nexport interface HdsStepperTaskIndicatorSignature {\n Args: {\n status?: HdsStepperStatuses;\n isInteractive?: boolean;\n };\n Element: HTMLDivElement;\n}\n\nexport default class HdsStepperTaskIndicator extends Component<HdsStepperTaskIndicatorSignature> {\n /**\n * @param status\n * @type {string}\n * @default \"incomplete\"\n */\n\n get status(): HdsStepperStatuses {\n const { status = DEFAULT_STATUS } = this.args;\n\n assert(\n `@status for \"Hds::Stepper::Task::Indicator\" must be one of the following: ${STATUSES.join(\n ', '\n )}; received: ${status}`,\n STATUSES.includes(status)\n );\n\n return status;\n }\n\n /**\n * @param isInteractive\n * @type {boolean}\n * @default false\n */\n\n get isInteractive(): boolean {\n return this.args.isInteractive || false;\n }\n\n /**\n * @param iconName\n * @type {string}\n */\n\n get iconName(): HdsIconSignature['Args']['name'] {\n return MAPPING_STATUS_TO_ICONS[this.status];\n }\n\n /**\n * Get the class names to apply to the component.\n * @method IndicatorTask#classNames\n * @return {string} The \"class\" attribute to apply to the component.\n */\n get classNames(): string {\n const classes = ['hds-stepper-indicator-task'];\n\n // Based on the @status arg\n classes.push(`hds-stepper-indicator-task--status-${this.status}`);\n\n if (this.isInteractive) {\n classes.push(`hds-stepper-indicator-task--is-interactive`);\n }\n\n return classes.join(' ');\n }\n}\n"],"names":["DEFAULT_STATUS","HdsStepperStatusesValues","Incomplete","STATUSES","Object","values","MAPPING_STATUS_TO_ICONS","HdsStepperStatusToIconsValues","HdsStepperTaskIndicator","Component","status","args","assert","join","includes","isInteractive","iconName","classNames","classes","push","setComponentTemplate","TEMPLATE"],"mappings":";;;;;;;;AAAA;AACA;AACA;AACA;;AAYaA,MAAAA,cAAc,GAAGC,wBAAwB,CAACC;AAChD,MAAMC,QAAkB,GAAGC,MAAM,CAACC,MAAM,CAACJ,wBAAwB;AAEjE,MAAMK,uBAAuB,GAAGC;AAUxB,MAAMC,uBAAuB,SAASC,SAAS,CAAmC;AAC/F;AACF;AACA;AACA;AACA;;EAEE,IAAIC,MAAMA,GAAuB;IAC/B,MAAM;AAAEA,MAAAA,MAAM,GAAGV;KAAgB,GAAG,IAAI,CAACW,IAAI;AAE7CC,IAAAA,MAAM,CACJ,CAA6ET,0EAAAA,EAAAA,QAAQ,CAACU,IAAI,CACxF,IACF,CAAC,CAAA,YAAA,EAAeH,MAAM,CAAA,CAAE,EACxBP,QAAQ,CAACW,QAAQ,CAACJ,MAAM,CAC1B,CAAC;AAED,IAAA,OAAOA,MAAM;AACf;;AAEA;AACF;AACA;AACA;AACA;;EAEE,IAAIK,aAAaA,GAAY;AAC3B,IAAA,OAAO,IAAI,CAACJ,IAAI,CAACI,aAAa,IAAI,KAAK;AACzC;;AAEA;AACF;AACA;AACA;;EAEE,IAAIC,QAAQA,GAAqC;AAC/C,IAAA,OAAOV,uBAAuB,CAAC,IAAI,CAACI,MAAM,CAAC;AAC7C;;AAEA;AACF;AACA;AACA;AACA;EACE,IAAIO,UAAUA,GAAW;AACvB,IAAA,MAAMC,OAAO,GAAG,CAAC,4BAA4B,CAAC;;AAE9C;IACAA,OAAO,CAACC,IAAI,CAAC,CAAA,mCAAA,EAAsC,IAAI,CAACT,MAAM,EAAE,CAAC;IAEjE,IAAI,IAAI,CAACK,aAAa,EAAE;AACtBG,MAAAA,OAAO,CAACC,IAAI,CAAC,CAAA,0CAAA,CAA4C,CAAC;AAC5D;AAEA,IAAA,OAAOD,OAAO,CAACL,IAAI,CAAC,GAAG,CAAC;AAC1B;AACF;AAACO,oBAAA,CAAAC,QAAA,EAxDoBb,uBAAuB,CAAA;;;;"}
|
|
@@ -1,27 +1,47 @@
|
|
|
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
|
-
import { HdsTableDensityValues, HdsTableVerticalAlignmentValues
|
|
5
|
+
import { HdsTableThSortOrderValues, HdsTableDensityValues, HdsTableVerticalAlignmentValues } from './types.js';
|
|
7
6
|
import { precompileTemplate } from '@ember/template-compilation';
|
|
7
|
+
import { g, i, n } from 'decorator-transforms/runtime';
|
|
8
8
|
import { setComponentTemplate } from '@ember/component';
|
|
9
9
|
|
|
10
10
|
var TEMPLATE = precompileTemplate("{{!\n Copyright (c) HashiCorp, Inc.\n SPDX-License-Identifier: MPL-2.0\n}}\n\n<table class={{this.classNames}} ...attributes>\n {{#if @columns}}\n <caption class=\"sr-only\" aria-live=\"polite\">{{@caption}} {{this.sortedMessageText}}</caption>\n {{else if @caption}}\n <caption class=\"sr-only\">{{@caption}}</caption>\n {{/if}}\n\n <thead class=\"hds-table__thead\">\n {{#if @columns}}\n <Hds::Table::Tr\n @selectionScope=\"col\"\n @onClickSortBySelected={{if @selectableColumnKey (fn this.setSortBy @selectableColumnKey)}}\n @sortBySelectedOrder={{if (eq this.sortBy @selectableColumnKey) this.sortOrder}}\n @isSelectable={{@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::Table::ThSort\n @sortOrder={{if (eq column.key this.sortBy) this.sortOrder}}\n @onClickSort={{fn this.setSortBy column.key}}\n @align={{column.align}}\n @width={{column.width}}\n @tooltip={{column.tooltip}}\n >\n {{column.label}}\n </Hds::Table::ThSort>\n {{else}}\n <Hds::Table::Th\n @align={{column.align}}\n @width={{column.width}}\n @tooltip={{column.tooltip}}\n @isVisuallyHidden={{column.isVisuallyHidden}}\n >{{column.label}}</Hds::Table::Th>\n {{/if}}\n {{/each}}\n </Hds::Table::Tr>\n {{else}}\n {{yield\n (hash\n Tr=(component\n \"hds/table/tr\"\n selectionScope=\"col\"\n isSelectable=@isSelectable\n onSelectionChange=this.onSelectionAllChange\n didInsert=this.didInsertSelectAllCheckbox\n willDestroy=this.willDestroySelectAllCheckbox\n selectionAriaLabelSuffix=\"all rows\"\n onClickSortBySelected=(if @selectableColumnKey (fn this.setSortBy @selectableColumnKey))\n sortBySelectedOrder=(if (eq this.sortBy @selectableColumnKey) this.sortOrder)\n )\n Th=(component \"hds/table/th\")\n ThSort=(component \"hds/table/th-sort\")\n sortBy=this.sortBy\n sortOrder=this.sortOrder\n setSortBy=this.setSortBy\n )\n to=\"head\"\n }}\n {{/if}}\n </thead>\n\n <tbody class=\"hds-table__tbody\">\n {{#if @columns}}\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 {{yield\n (hash\n Tr=(component\n \"hds/table/tr\"\n selectionScope=\"row\"\n isSelectable=@isSelectable\n onSelectionChange=this.onSelectionRowChange\n didInsert=this.didInsertRowCheckbox\n willDestroy=this.willDestroyRowCheckbox\n selectionAriaLabelSuffix=@selectionAriaLabelSuffix\n )\n Th=(component \"hds/table/th\" scope=\"row\")\n Td=(component \"hds/table/td\" align=@align)\n data=record\n rowIndex=index\n )\n to=\"body\"\n }}\n {{/each}}\n {{else}}\n {{yield\n (hash\n Tr=(component\n \"hds/table/tr\"\n selectionScope=\"row\"\n isSelectable=@isSelectable\n onSelectionChange=this.onSelectionRowChange\n didInsert=this.didInsertRowCheckbox\n willDestroy=this.willDestroyRowCheckbox\n selectionAriaLabelSuffix=@selectionAriaLabelSuffix\n )\n Th=(component \"hds/table/th\" scope=\"row\")\n Td=(component \"hds/table/td\" align=@align)\n sortBy=this.sortBy\n sortOrder=this.sortOrder\n )\n to=\"body\"\n }}\n {{/if}}\n </tbody>\n</table>");
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
/**
|
|
13
|
+
* Copyright (c) HashiCorp, Inc.
|
|
14
|
+
* SPDX-License-Identifier: MPL-2.0
|
|
15
|
+
*/
|
|
16
|
+
|
|
13
17
|
const DENSITIES = Object.values(HdsTableDensityValues);
|
|
14
18
|
const DEFAULT_DENSITY = HdsTableDensityValues.Medium;
|
|
15
19
|
const VALIGNMENTS = Object.values(HdsTableVerticalAlignmentValues);
|
|
16
20
|
const DEFAULT_VALIGN = HdsTableVerticalAlignmentValues.Top;
|
|
17
|
-
|
|
21
|
+
class HdsTable extends Component {
|
|
22
|
+
static {
|
|
23
|
+
g(this.prototype, "sortBy", [tracked]);
|
|
24
|
+
}
|
|
25
|
+
#sortBy = (i(this, "sortBy"), undefined);
|
|
26
|
+
static {
|
|
27
|
+
g(this.prototype, "sortOrder", [tracked]);
|
|
28
|
+
}
|
|
29
|
+
#sortOrder = (i(this, "sortOrder"), undefined);
|
|
30
|
+
static {
|
|
31
|
+
g(this.prototype, "_selectAllCheckbox", [tracked], function () {
|
|
32
|
+
return undefined;
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
#_selectAllCheckbox = (i(this, "_selectAllCheckbox"), undefined);
|
|
36
|
+
_selectableRows = [];
|
|
37
|
+
static {
|
|
38
|
+
g(this.prototype, "_isSelectAllCheckboxSelected", [tracked], function () {
|
|
39
|
+
return undefined;
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
#_isSelectAllCheckboxSelected = (i(this, "_isSelectAllCheckboxSelected"), undefined);
|
|
18
43
|
constructor(owner, args) {
|
|
19
44
|
super(owner, args);
|
|
20
|
-
_initializerDefineProperty(this, "sortBy", _descriptor, this);
|
|
21
|
-
_initializerDefineProperty(this, "sortOrder", _descriptor2, this);
|
|
22
|
-
_initializerDefineProperty(this, "_selectAllCheckbox", _descriptor3, this);
|
|
23
|
-
_defineProperty(this, "_selectableRows", []);
|
|
24
|
-
_initializerDefineProperty(this, "_isSelectAllCheckboxSelected", _descriptor4, this);
|
|
25
45
|
this.sortBy = this.args.sortBy ?? undefined;
|
|
26
46
|
this.sortOrder = this.args.sortOrder ?? HdsTableThSortOrderValues.Asc;
|
|
27
47
|
}
|
|
@@ -115,6 +135,9 @@ let HdsTable = (_class = class HdsTable extends Component {
|
|
|
115
135
|
onSort(this.sortBy, this.sortOrder);
|
|
116
136
|
}
|
|
117
137
|
}
|
|
138
|
+
static {
|
|
139
|
+
n(this.prototype, "setSortBy", [action]);
|
|
140
|
+
}
|
|
118
141
|
onSelectionChangeCallback(checkbox, selectionKey) {
|
|
119
142
|
const {
|
|
120
143
|
onSelectionChange
|
|
@@ -142,23 +165,32 @@ let HdsTable = (_class = class HdsTable extends Component {
|
|
|
142
165
|
onSelectionAllChange() {
|
|
143
166
|
this._selectableRows.forEach(row => {
|
|
144
167
|
row.checkbox.checked = this._selectAllCheckbox?.checked ?? false;
|
|
145
|
-
row.checkbox.dispatchEvent(new Event('toggle', {
|
|
146
|
-
bubbles: false
|
|
147
|
-
}));
|
|
148
168
|
});
|
|
149
169
|
this._isSelectAllCheckboxSelected = this._selectAllCheckbox?.checked ?? false;
|
|
150
170
|
this.onSelectionChangeCallback(this._selectAllCheckbox, 'all');
|
|
151
171
|
}
|
|
172
|
+
static {
|
|
173
|
+
n(this.prototype, "onSelectionAllChange", [action]);
|
|
174
|
+
}
|
|
152
175
|
onSelectionRowChange(checkbox, selectionKey) {
|
|
153
176
|
this.setSelectAllState();
|
|
154
177
|
this.onSelectionChangeCallback(checkbox, selectionKey);
|
|
155
178
|
}
|
|
179
|
+
static {
|
|
180
|
+
n(this.prototype, "onSelectionRowChange", [action]);
|
|
181
|
+
}
|
|
156
182
|
didInsertSelectAllCheckbox(checkbox) {
|
|
157
183
|
this._selectAllCheckbox = checkbox;
|
|
158
184
|
}
|
|
185
|
+
static {
|
|
186
|
+
n(this.prototype, "didInsertSelectAllCheckbox", [action]);
|
|
187
|
+
}
|
|
159
188
|
willDestroySelectAllCheckbox() {
|
|
160
189
|
this._selectAllCheckbox = undefined;
|
|
161
190
|
}
|
|
191
|
+
static {
|
|
192
|
+
n(this.prototype, "willDestroySelectAllCheckbox", [action]);
|
|
193
|
+
}
|
|
162
194
|
didInsertRowCheckbox(checkbox, selectionKey) {
|
|
163
195
|
if (selectionKey) {
|
|
164
196
|
this._selectableRows.push({
|
|
@@ -168,10 +200,16 @@ let HdsTable = (_class = class HdsTable extends Component {
|
|
|
168
200
|
}
|
|
169
201
|
this.setSelectAllState();
|
|
170
202
|
}
|
|
203
|
+
static {
|
|
204
|
+
n(this.prototype, "didInsertRowCheckbox", [action]);
|
|
205
|
+
}
|
|
171
206
|
willDestroyRowCheckbox(selectionKey) {
|
|
172
207
|
this._selectableRows = this._selectableRows.filter(row => row.selectionKey !== selectionKey);
|
|
173
208
|
this.setSelectAllState();
|
|
174
209
|
}
|
|
210
|
+
static {
|
|
211
|
+
n(this.prototype, "willDestroyRowCheckbox", [action]);
|
|
212
|
+
}
|
|
175
213
|
setSelectAllState() {
|
|
176
214
|
if (this._selectAllCheckbox) {
|
|
177
215
|
const selectableRowsCount = this._selectableRows.length;
|
|
@@ -179,36 +217,12 @@ let HdsTable = (_class = class HdsTable extends Component {
|
|
|
179
217
|
this._selectAllCheckbox.checked = selectedRowsCount === selectableRowsCount;
|
|
180
218
|
this._selectAllCheckbox.indeterminate = selectedRowsCount > 0 && selectedRowsCount < selectableRowsCount;
|
|
181
219
|
this._isSelectAllCheckboxSelected = this._selectAllCheckbox.checked;
|
|
182
|
-
this._selectAllCheckbox.dispatchEvent(new Event('toggle', {
|
|
183
|
-
bubbles: false
|
|
184
|
-
}));
|
|
185
220
|
}
|
|
186
221
|
}
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
initializer: null
|
|
192
|
-
}), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "sortOrder", [tracked], {
|
|
193
|
-
configurable: true,
|
|
194
|
-
enumerable: true,
|
|
195
|
-
writable: true,
|
|
196
|
-
initializer: null
|
|
197
|
-
}), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, "_selectAllCheckbox", [tracked], {
|
|
198
|
-
configurable: true,
|
|
199
|
-
enumerable: true,
|
|
200
|
-
writable: true,
|
|
201
|
-
initializer: function () {
|
|
202
|
-
return undefined;
|
|
203
|
-
}
|
|
204
|
-
}), _descriptor4 = _applyDecoratedDescriptor(_class.prototype, "_isSelectAllCheckboxSelected", [tracked], {
|
|
205
|
-
configurable: true,
|
|
206
|
-
enumerable: true,
|
|
207
|
-
writable: true,
|
|
208
|
-
initializer: function () {
|
|
209
|
-
return undefined;
|
|
210
|
-
}
|
|
211
|
-
}), _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);
|
|
222
|
+
static {
|
|
223
|
+
n(this.prototype, "setSelectAllState", [action]);
|
|
224
|
+
}
|
|
225
|
+
}
|
|
212
226
|
setComponentTemplate(TEMPLATE, HdsTable);
|
|
213
227
|
|
|
214
228
|
export { DEFAULT_DENSITY, DEFAULT_VALIGN, DENSITIES, VALIGNMENTS, HdsTable as default };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/components/hds/table/index.hbs","../../../../src/components/hds/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<table class={{this.classNames}} ...attributes>\\n {{#if @columns}}\\n <caption class=\\\"sr-only\\\" aria-live=\\\"polite\\\">{{@caption}} {{this.sortedMessageText}}</caption>\\n {{else if @caption}}\\n <caption class=\\\"sr-only\\\">{{@caption}}</caption>\\n {{/if}}\\n\\n <thead class=\\\"hds-table__thead\\\">\\n {{#if @columns}}\\n <Hds::Table::Tr\\n @selectionScope=\\\"col\\\"\\n @onClickSortBySelected={{if @selectableColumnKey (fn this.setSortBy @selectableColumnKey)}}\\n @sortBySelectedOrder={{if (eq this.sortBy @selectableColumnKey) this.sortOrder}}\\n @isSelectable={{@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::Table::ThSort\\n @sortOrder={{if (eq column.key this.sortBy) this.sortOrder}}\\n @onClickSort={{fn this.setSortBy column.key}}\\n @align={{column.align}}\\n @width={{column.width}}\\n @tooltip={{column.tooltip}}\\n >\\n {{column.label}}\\n </Hds::Table::ThSort>\\n {{else}}\\n <Hds::Table::Th\\n @align={{column.align}}\\n @width={{column.width}}\\n @tooltip={{column.tooltip}}\\n @isVisuallyHidden={{column.isVisuallyHidden}}\\n >{{column.label}}</Hds::Table::Th>\\n {{/if}}\\n {{/each}}\\n </Hds::Table::Tr>\\n {{else}}\\n {{yield\\n (hash\\n Tr=(component\\n \\\"hds/table/tr\\\"\\n selectionScope=\\\"col\\\"\\n isSelectable=@isSelectable\\n onSelectionChange=this.onSelectionAllChange\\n didInsert=this.didInsertSelectAllCheckbox\\n willDestroy=this.willDestroySelectAllCheckbox\\n selectionAriaLabelSuffix=\\\"all rows\\\"\\n onClickSortBySelected=(if @selectableColumnKey (fn this.setSortBy @selectableColumnKey))\\n sortBySelectedOrder=(if (eq this.sortBy @selectableColumnKey) this.sortOrder)\\n )\\n Th=(component \\\"hds/table/th\\\")\\n ThSort=(component \\\"hds/table/th-sort\\\")\\n sortBy=this.sortBy\\n sortOrder=this.sortOrder\\n setSortBy=this.setSortBy\\n )\\n to=\\\"head\\\"\\n }}\\n {{/if}}\\n </thead>\\n\\n <tbody class=\\\"hds-table__tbody\\\">\\n {{#if @columns}}\\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 {{yield\\n (hash\\n Tr=(component\\n \\\"hds/table/tr\\\"\\n selectionScope=\\\"row\\\"\\n isSelectable=@isSelectable\\n onSelectionChange=this.onSelectionRowChange\\n didInsert=this.didInsertRowCheckbox\\n willDestroy=this.willDestroyRowCheckbox\\n selectionAriaLabelSuffix=@selectionAriaLabelSuffix\\n )\\n Th=(component \\\"hds/table/th\\\" scope=\\\"row\\\")\\n Td=(component \\\"hds/table/td\\\" align=@align)\\n data=record\\n rowIndex=index\\n )\\n to=\\\"body\\\"\\n }}\\n {{/each}}\\n {{else}}\\n {{yield\\n (hash\\n Tr=(component\\n \\\"hds/table/tr\\\"\\n selectionScope=\\\"row\\\"\\n isSelectable=@isSelectable\\n onSelectionChange=this.onSelectionRowChange\\n didInsert=this.didInsertRowCheckbox\\n willDestroy=this.willDestroyRowCheckbox\\n selectionAriaLabelSuffix=@selectionAriaLabelSuffix\\n )\\n Th=(component \\\"hds/table/th\\\" scope=\\\"row\\\")\\n Td=(component \\\"hds/table/td\\\" align=@align)\\n sortBy=this.sortBy\\n sortOrder=this.sortOrder\\n )\\n to=\\\"body\\\"\\n }}\\n {{/if}}\\n </tbody>\\n</table>\")","/**\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';\n\nimport {\n HdsTableDensityValues,\n HdsTableThSortOrderValues,\n HdsTableVerticalAlignmentValues,\n} from './types.ts';\nimport type {\n HdsTableColumn,\n HdsTableDensities,\n HdsTableHorizontalAlignment,\n HdsTableOnSelectionChangeSignature,\n HdsTableSelectableRow,\n HdsTableSortingFunction,\n HdsTableThSortOrder,\n HdsTableVerticalAlignment,\n HdsTableModel,\n} from './types';\nimport type { HdsFormCheckboxBaseSignature } from '../form/checkbox/base';\nimport type { HdsTableTdSignature } from './td.ts';\nimport type { HdsTableThSignature } from './th.ts';\nimport type { HdsTableThSortSignature } from './th-sort.ts';\nimport type { HdsTableTrSignature } from './tr.ts';\n\nexport const DENSITIES: HdsTableDensities[] = Object.values(\n HdsTableDensityValues\n);\nexport const DEFAULT_DENSITY = HdsTableDensityValues.Medium;\n\nexport const VALIGNMENTS: HdsTableVerticalAlignment[] = Object.values(\n HdsTableVerticalAlignmentValues\n);\nexport const DEFAULT_VALIGN = HdsTableVerticalAlignmentValues.Top;\n\nexport interface HdsTableSignature {\n Args: {\n align?: HdsTableHorizontalAlignment;\n caption?: string;\n columns?: HdsTableColumn[];\n density?: HdsTableDensities;\n identityKey?: string;\n isFixedLayout?: boolean;\n isSelectable?: boolean;\n isStriped?: boolean;\n model?: HdsTableModel;\n onSelectionChange?: (selection: HdsTableOnSelectionChangeSignature) => void;\n onSort?: (sortBy: string, sortOrder: HdsTableThSortOrder) => void;\n selectionAriaLabelSuffix?: string;\n sortBy?: string;\n selectableColumnKey?: string;\n sortedMessageText?: string;\n sortOrder?: HdsTableThSortOrder;\n valign?: HdsTableVerticalAlignment;\n };\n Blocks: {\n head?: [\n {\n Tr?: ComponentLike<HdsTableTrSignature>;\n Th?: ComponentLike<HdsTableThSignature>;\n ThSort?: ComponentLike<HdsTableThSortSignature>;\n sortBy?: string;\n sortOrder?: HdsTableThSortOrder;\n setSortBy?: (column: string) => void;\n },\n ];\n body?: [\n {\n Td?: ComponentLike<HdsTableTdSignature>;\n Tr?: ComponentLike<HdsTableTrSignature>;\n Th?: ComponentLike<HdsTableThSignature>;\n data?: Record<string, unknown>;\n rowIndex?: number;\n sortBy?: string;\n sortOrder?: HdsTableThSortOrder;\n },\n ];\n };\n Element: HTMLTableElement;\n}\n\nexport default class HdsTable extends Component<HdsTableSignature> {\n @tracked sortBy;\n @tracked sortOrder;\n @tracked\n private _selectAllCheckbox?: HdsFormCheckboxBaseSignature['Element'] =\n undefined;\n private _selectableRows: HdsTableSelectableRow[] = [];\n @tracked private _isSelectAllCheckboxSelected?: boolean = undefined;\n\n constructor(owner: unknown, args: HdsTableSignature['Args']) {\n super(owner, args);\n this.sortBy = this.args.sortBy ?? undefined;\n this.sortOrder = this.args.sortOrder ?? HdsTableThSortOrderValues.Asc;\n }\n\n get getSortCriteria(): string | HdsTableSortingFunction<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 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 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 isStriped(): boolean {\n return this.args.isStriped ?? false;\n }\n\n get isFixedLayout(): boolean {\n return this.args.isFixedLayout ?? false;\n }\n\n get density(): HdsTableDensities {\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(): HdsTableVerticalAlignment {\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 get classNames(): string {\n const classes = ['hds-table'];\n\n // add a class based on the @isStriped argument\n if (this.isStriped) {\n classes.push('hds-table--striped');\n }\n\n // add a class based on the @isFixedLayout argument\n if (this.isFixedLayout) {\n classes.push('hds-table--layout-fixed');\n }\n\n // add a class based on the @density argument\n if (this.density) {\n classes.push(`hds-table--density-${this.density}`);\n }\n\n // add a class based on the @valign argument\n if (this.valign) {\n classes.push(`hds-table--valign-${this.valign}`);\n }\n\n return classes.join(' ');\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 === HdsTableThSortOrderValues.Asc\n ? HdsTableThSortOrderValues.Desc\n : HdsTableThSortOrderValues.Asc;\n } else {\n // otherwise, set the sort order to ascending\n this.sortBy = column;\n this.sortOrder = HdsTableThSortOrderValues.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 if (typeof onSelectionChange === 'function') {\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\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","HdsTableDensityValues","DEFAULT_DENSITY","Medium","VALIGNMENTS","HdsTableVerticalAlignmentValues","DEFAULT_VALIGN","Top","HdsTable","_class","Component","constructor","owner","args","_initializerDefineProperty","_descriptor","_descriptor2","_descriptor3","_defineProperty","_descriptor4","sortBy","undefined","sortOrder","HdsTableThSortOrderValues","Asc","getSortCriteria","currentColumn","columns","find","column","key","sortingFunction","identityKey","sortedMessageText","isStriped","isFixedLayout","density","assert","join","includes","valign","classNames","classes","push","setSortBy","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","length","selectedRowsCount","indeterminate","_applyDecoratedDescriptor","prototype","tracked","configurable","enumerable","writable","initializer","action","getOwnPropertyDescriptor","setComponentTemplate","TEMPLATE"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/components/hds/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';\n\nimport {\n HdsTableDensityValues,\n HdsTableThSortOrderValues,\n HdsTableVerticalAlignmentValues,\n} from './types.ts';\nimport type {\n HdsTableColumn,\n HdsTableDensities,\n HdsTableHorizontalAlignment,\n HdsTableOnSelectionChangeSignature,\n HdsTableSelectableRow,\n HdsTableSortingFunction,\n HdsTableThSortOrder,\n HdsTableVerticalAlignment,\n HdsTableModel,\n} from './types';\nimport type { HdsFormCheckboxBaseSignature } from '../form/checkbox/base';\nimport type { HdsTableTdSignature } from './td.ts';\nimport type { HdsTableThSignature } from './th.ts';\nimport type { HdsTableThSortSignature } from './th-sort.ts';\nimport type { HdsTableTrSignature } from './tr.ts';\nimport type Owner from '@ember/owner';\n\nexport const DENSITIES: HdsTableDensities[] = Object.values(\n HdsTableDensityValues\n);\nexport const DEFAULT_DENSITY = HdsTableDensityValues.Medium;\n\nexport const VALIGNMENTS: HdsTableVerticalAlignment[] = Object.values(\n HdsTableVerticalAlignmentValues\n);\nexport const DEFAULT_VALIGN = HdsTableVerticalAlignmentValues.Top;\n\nexport interface HdsTableSignature {\n Args: {\n align?: HdsTableHorizontalAlignment;\n caption?: string;\n columns?: HdsTableColumn[];\n density?: HdsTableDensities;\n identityKey?: string;\n isFixedLayout?: boolean;\n isSelectable?: boolean;\n isStriped?: boolean;\n model?: HdsTableModel;\n onSelectionChange?: (selection: HdsTableOnSelectionChangeSignature) => void;\n onSort?: (sortBy: string, sortOrder: HdsTableThSortOrder) => void;\n selectionAriaLabelSuffix?: string;\n sortBy?: string;\n selectableColumnKey?: string;\n sortedMessageText?: string;\n sortOrder?: HdsTableThSortOrder;\n valign?: HdsTableVerticalAlignment;\n };\n Blocks: {\n head?: [\n {\n Tr?: ComponentLike<HdsTableTrSignature>;\n Th?: ComponentLike<HdsTableThSignature>;\n ThSort?: ComponentLike<HdsTableThSortSignature>;\n sortBy?: string;\n sortOrder?: HdsTableThSortOrder;\n setSortBy?: (column: string) => void;\n },\n ];\n body?: [\n {\n Td?: ComponentLike<HdsTableTdSignature>;\n Tr?: ComponentLike<HdsTableTrSignature>;\n Th?: ComponentLike<HdsTableThSignature>;\n data?: Record<string, unknown>;\n rowIndex?: number;\n sortBy?: string;\n sortOrder?: HdsTableThSortOrder;\n },\n ];\n };\n Element: HTMLTableElement;\n}\n\nexport default class HdsTable extends Component<HdsTableSignature> {\n @tracked sortBy;\n @tracked sortOrder;\n @tracked\n private _selectAllCheckbox?: HdsFormCheckboxBaseSignature['Element'] =\n undefined;\n private _selectableRows: HdsTableSelectableRow[] = [];\n @tracked private _isSelectAllCheckboxSelected?: boolean = undefined;\n\n constructor(owner: Owner, args: HdsTableSignature['Args']) {\n super(owner, args);\n this.sortBy = this.args.sortBy ?? undefined;\n this.sortOrder = this.args.sortOrder ?? HdsTableThSortOrderValues.Asc;\n }\n\n get getSortCriteria(): string | HdsTableSortingFunction<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 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 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 isStriped(): boolean {\n return this.args.isStriped ?? false;\n }\n\n get isFixedLayout(): boolean {\n return this.args.isFixedLayout ?? false;\n }\n\n get density(): HdsTableDensities {\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(): HdsTableVerticalAlignment {\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 get classNames(): string {\n const classes = ['hds-table'];\n\n // add a class based on the @isStriped argument\n if (this.isStriped) {\n classes.push('hds-table--striped');\n }\n\n // add a class based on the @isFixedLayout argument\n if (this.isFixedLayout) {\n classes.push('hds-table--layout-fixed');\n }\n\n // add a class based on the @density argument\n if (this.density) {\n classes.push(`hds-table--density-${this.density}`);\n }\n\n // add a class based on the @valign argument\n if (this.valign) {\n classes.push(`hds-table--valign-${this.valign}`);\n }\n\n return classes.join(' ');\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 === HdsTableThSortOrderValues.Asc\n ? HdsTableThSortOrderValues.Desc\n : HdsTableThSortOrderValues.Asc;\n } else {\n // otherwise, set the sort order to ascending\n this.sortBy = column;\n this.sortOrder = HdsTableThSortOrderValues.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 if (typeof onSelectionChange === 'function') {\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\n @action\n onSelectionAllChange(): void {\n this._selectableRows.forEach((row) => {\n row.checkbox.checked = this._selectAllCheckbox?.checked ?? 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 }\n }\n}\n"],"names":["DENSITIES","Object","values","HdsTableDensityValues","DEFAULT_DENSITY","Medium","VALIGNMENTS","HdsTableVerticalAlignmentValues","DEFAULT_VALIGN","Top","HdsTable","Component","g","prototype","tracked","i","void 0","undefined","_selectableRows","constructor","owner","args","sortBy","sortOrder","HdsTableThSortOrderValues","Asc","getSortCriteria","currentColumn","columns","find","column","key","sortingFunction","identityKey","sortedMessageText","isStriped","isFixedLayout","density","assert","join","includes","valign","classNames","classes","push","setSortBy","Desc","onSort","n","action","onSelectionChangeCallback","checkbox","selectionKey","onSelectionChange","selectionCheckboxElement","selectedRowsKeys","reduce","acc","row","checked","selectableRowsStates","isSelected","onSelectionAllChange","forEach","_selectAllCheckbox","_isSelectAllCheckboxSelected","onSelectionRowChange","setSelectAllState","didInsertSelectAllCheckbox","willDestroySelectAllCheckbox","didInsertRowCheckbox","willDestroyRowCheckbox","filter","selectableRowsCount","length","selectedRowsCount","indeterminate","setComponentTemplate","TEMPLATE"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"td.js","sources":["../../../../src/components/hds/table/td.
|
|
1
|
+
{"version":3,"file":"td.js","sources":["../../../../src/components/hds/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';\n\nimport type { HdsTableHorizontalAlignment } from './types.ts';\nimport { HdsTableHorizontalAlignmentValues } from './types.ts';\n\nexport const ALIGNMENTS: string[] = Object.values(\n HdsTableHorizontalAlignmentValues\n);\nexport const DEFAULT_ALIGN = HdsTableHorizontalAlignmentValues.Left;\n\nexport interface HdsTableTdSignature {\n Args: {\n align?: HdsTableHorizontalAlignment;\n };\n Blocks: {\n default: [];\n };\n Element: HTMLTableCellElement;\n}\nexport default class HdsTableTd extends Component<HdsTableTdSignature> {\n /**\n * @param align\n * @type {string}\n * @default left\n * @description Determines the text alignment of the header or cell content. Options are: \"left\", \"center\", \"right\". If no align is defined, \"left\" is used.\n */\n get align(): HdsTableHorizontalAlignment {\n const { align = DEFAULT_ALIGN } = this.args;\n\n assert(\n `@align for \"Hds::Table::Td\" must be one of the following: ${ALIGNMENTS.join(\n ', '\n )}; received: ${align}`,\n ALIGNMENTS.includes(align)\n );\n return align;\n }\n\n /**\n * Get the class names to apply to the component.\n * @method classNames\n * @return {string} The \"class\" attribute to apply to the component.\n */\n get classNames(): string {\n const classes = [\n 'hds-table__td',\n 'hds-typography-body-200',\n 'hds-font-weight-regular',\n ];\n\n // add a class based on the @align argument\n if (this.align) {\n classes.push(`hds-table__td--align-${this.align}`);\n }\n\n return classes.join(' ');\n }\n}\n"],"names":["ALIGNMENTS","Object","values","HdsTableHorizontalAlignmentValues","DEFAULT_ALIGN","Left","HdsTableTd","Component","align","args","assert","join","includes","classNames","classes","push","setComponentTemplate","TEMPLATE"],"mappings":";;;;;;;;AAAA;AACA;AACA;AACA;;AAQO,MAAMA,UAAoB,GAAGC,MAAM,CAACC,MAAM,CAC/CC,iCACF;AACaC,MAAAA,aAAa,GAAGD,iCAAiC,CAACE;AAWhD,MAAMC,UAAU,SAASC,SAAS,CAAsB;AACrE;AACF;AACA;AACA;AACA;AACA;EACE,IAAIC,KAAKA,GAAgC;IACvC,MAAM;AAAEA,MAAAA,KAAK,GAAGJ;KAAe,GAAG,IAAI,CAACK,IAAI;AAE3CC,IAAAA,MAAM,CACJ,CAA6DV,0DAAAA,EAAAA,UAAU,CAACW,IAAI,CAC1E,IACF,CAAC,CAAA,YAAA,EAAeH,KAAK,CAAA,CAAE,EACvBR,UAAU,CAACY,QAAQ,CAACJ,KAAK,CAC3B,CAAC;AACD,IAAA,OAAOA,KAAK;AACd;;AAEA;AACF;AACA;AACA;AACA;EACE,IAAIK,UAAUA,GAAW;IACvB,MAAMC,OAAO,GAAG,CACd,eAAe,EACf,yBAAyB,EACzB,yBAAyB,CAC1B;;AAED;IACA,IAAI,IAAI,CAACN,KAAK,EAAE;MACdM,OAAO,CAACC,IAAI,CAAC,CAAA,qBAAA,EAAwB,IAAI,CAACP,KAAK,EAAE,CAAC;AACpD;AAEA,IAAA,OAAOM,OAAO,CAACH,IAAI,CAAC,GAAG,CAAC;AAC1B;AACF;AAACK,oBAAA,CAAAC,QAAA,EAtCoBX,UAAU,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 { HdsTableThSortOrderIconValues, HdsTableThSortOrderValues, HdsTableThSortOrderLabelValues } 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-table__th-button-aria-label-hidden-segment\">Sort by</span>\n <span id={{this._suffixLabelId}} class=\"hds-table__th-button-aria-label-hidden-segment\">{{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 HdsTableThButtonSort 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 HdsTableThSortOrderValues.Asc:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"th-button-sort.js","sources":["../../../../src/components/hds/table/th-button-sort.
|
|
1
|
+
{"version":3,"file":"th-button-sort.js","sources":["../../../../src/components/hds/table/th-button-sort.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 {\n HdsTableThSortOrderIconValues,\n HdsTableThSortOrderLabelValues,\n HdsTableThSortOrderValues,\n} from './types.ts';\nimport type {\n HdsTableThSortOrder,\n HdsTableThSortOrderIcons,\n HdsTableThSortOrderLabels,\n} from './types.ts';\nexport interface HdsTableThButtonSortSignature {\n Args: {\n labelId?: string;\n onClick?: () => void;\n sortOrder?: HdsTableThSortOrder;\n };\n Element: HTMLButtonElement;\n}\n\nconst NOOP = () => {};\n\nexport default class HdsTableThButtonSort extends Component<HdsTableThButtonSortSignature> {\n // Generates a unique ID for the (hidden) \"label prefix/suffix\" <span> elements\n private _prefixLabelId = 'prefix-' + guidFor(this);\n private _suffixLabelId = 'suffix-' + guidFor(this);\n\n get icon(): HdsTableThSortOrderIcons {\n switch (this.args.sortOrder) {\n case HdsTableThSortOrderValues.Asc:\n return HdsTableThSortOrderIconValues.ArrowUp;\n case HdsTableThSortOrderValues.Desc:\n return HdsTableThSortOrderIconValues.ArrowDown;\n default:\n return HdsTableThSortOrderIconValues.SwapVertical;\n }\n }\n\n // Determines the label (suffix) to use in the `aria-labelledby` attribute of the button,\n // used to indicate what will happen if the user clicks on the button\n get sortOrderLabel(): HdsTableThSortOrderLabels {\n return this.args.sortOrder === HdsTableThSortOrderValues.Asc\n ? HdsTableThSortOrderLabelValues.Desc\n : HdsTableThSortOrderLabelValues.Asc;\n }\n\n get onClick(): () => void {\n const { onClick } = this.args;\n\n if (typeof onClick === 'function') {\n return onClick;\n } else {\n return NOOP;\n }\n }\n\n get classNames(): string {\n const classes = ['hds-table__th-button', 'hds-table__th-button--sort'];\n\n // add a class based on the @sortOrder argument\n if (\n this.args.sortOrder === HdsTableThSortOrderValues.Asc ||\n this.args.sortOrder === HdsTableThSortOrderValues.Desc\n ) {\n classes.push(`hds-table__th-button--is-sorted`);\n }\n\n return classes.join(' ');\n }\n}\n"],"names":["NOOP","HdsTableThButtonSort","Component","_prefixLabelId","guidFor","_suffixLabelId","icon","args","sortOrder","HdsTableThSortOrderValues","Asc","HdsTableThSortOrderIconValues","ArrowUp","Desc","ArrowDown","SwapVertical","sortOrderLabel","HdsTableThSortOrderLabelValues","onClick","classNames","classes","push","join","setComponentTemplate","TEMPLATE"],"mappings":";;;;;;;;AAAA;AACA;AACA;AACA;;AAuBA,MAAMA,IAAI,GAAGA,MAAM,EAAE;AAEN,MAAMC,oBAAoB,SAASC,SAAS,CAAgC;AACzF;AACQC,EAAAA,cAAc,GAAG,SAAS,GAAGC,OAAO,CAAC,IAAI,CAAC;AAC1CC,EAAAA,cAAc,GAAG,SAAS,GAAGD,OAAO,CAAC,IAAI,CAAC;EAElD,IAAIE,IAAIA,GAA6B;AACnC,IAAA,QAAQ,IAAI,CAACC,IAAI,CAACC,SAAS;MACzB,KAAKC,yBAAyB,CAACC,GAAG;QAChC,OAAOC,6BAA6B,CAACC,OAAO;MAC9C,KAAKH,yBAAyB,CAACI,IAAI;QACjC,OAAOF,6BAA6B,CAACG,SAAS;AAChD,MAAA;QACE,OAAOH,6BAA6B,CAACI,YAAY;AACrD;AACF;;AAEA;AACA;EACA,IAAIC,cAAcA,GAA8B;AAC9C,IAAA,OAAO,IAAI,CAACT,IAAI,CAACC,SAAS,KAAKC,yBAAyB,CAACC,GAAG,GACxDO,8BAA8B,CAACJ,IAAI,GACnCI,8BAA8B,CAACP,GAAG;AACxC;EAEA,IAAIQ,OAAOA,GAAe;IACxB,MAAM;AAAEA,MAAAA;KAAS,GAAG,IAAI,CAACX,IAAI;AAE7B,IAAA,IAAI,OAAOW,OAAO,KAAK,UAAU,EAAE;AACjC,MAAA,OAAOA,OAAO;AAChB,KAAC,MAAM;AACL,MAAA,OAAOlB,IAAI;AACb;AACF;EAEA,IAAImB,UAAUA,GAAW;AACvB,IAAA,MAAMC,OAAO,GAAG,CAAC,sBAAsB,EAAE,4BAA4B,CAAC;;AAEtE;AACA,IAAA,IACE,IAAI,CAACb,IAAI,CAACC,SAAS,KAAKC,yBAAyB,CAACC,GAAG,IACrD,IAAI,CAACH,IAAI,CAACC,SAAS,KAAKC,yBAAyB,CAACI,IAAI,EACtD;AACAO,MAAAA,OAAO,CAACC,IAAI,CAAC,CAAA,+BAAA,CAAiC,CAAC;AACjD;AAEA,IAAA,OAAOD,OAAO,CAACE,IAAI,CAAC,GAAG,CAAC;AAC1B;AACF;AAACC,oBAAA,CAAAC,QAAA,EA/CoBvB,oBAAoB,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 { assert } from '@ember/debug';
|
|
4
3
|
import { guidFor } from '@ember/object/internals';
|
|
@@ -7,12 +6,14 @@ 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\n<button\n type=\"button\"\n class={{this.classNames}}\n {{hds-tooltip this.tooltip}}\n aria-labelledby=\"{{this._prefixLabelId}} {{@labelId}}\"\n ...attributes\n>\n <span id={{this._prefixLabelId}} class=\"hds-table__th-button-aria-label-hidden-segment\">More information for</span>\n <Hds::Icon @name=\"info\" />\n</button>");
|
|
9
8
|
|
|
9
|
+
/**
|
|
10
|
+
* Copyright (c) HashiCorp, Inc.
|
|
11
|
+
* SPDX-License-Identifier: MPL-2.0
|
|
12
|
+
*/
|
|
13
|
+
|
|
10
14
|
class HdsTableThButtonTooltip extends Component {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
// Generates a unique ID for the (hidden) "label prefix" <span> element
|
|
14
|
-
_defineProperty(this, "_prefixLabelId", guidFor(this));
|
|
15
|
-
}
|
|
15
|
+
// Generates a unique ID for the (hidden) "label prefix" <span> element
|
|
16
|
+
_prefixLabelId = guidFor(this);
|
|
16
17
|
get tooltip() {
|
|
17
18
|
assert(`@tooltip for "HdsTableThButtonTooltip" must be a string`, typeof this.args.tooltip === 'string');
|
|
18
19
|
return this.args.tooltip;
|