@carbon/web-components 2.0.0-beta.3 → 2.0.0-beta.4
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 +9 -9
- package/custom-elements.json +4026 -1801
- package/es/components/breadcrumb/breadcrumb.css.js +1 -1
- package/es/components/breadcrumb/breadcrumb.rtl.css.js +1 -1
- package/es/components/button/button.css.js +1 -1
- package/es/components/button/button.d.ts +12 -4
- package/es/components/button/button.d.ts.map +1 -1
- package/es/components/button/button.js +57 -19
- package/es/components/button/button.js.map +1 -1
- package/es/components/button/button.rtl.css.js +1 -1
- package/es/components/checkbox/checkbox.css.js +1 -1
- package/es/components/checkbox/checkbox.d.ts +9 -0
- package/es/components/checkbox/checkbox.d.ts.map +1 -1
- package/es/components/checkbox/checkbox.js +32 -1
- package/es/components/checkbox/checkbox.js.map +1 -1
- package/es/components/checkbox/checkbox.rtl.css.js +1 -1
- package/es/components/code-snippet/code-snippet-skeleton.d.ts +2 -2
- package/es/components/code-snippet/code-snippet-skeleton.d.ts.map +1 -1
- package/es/components/code-snippet/code-snippet-skeleton.js +4 -4
- package/es/components/code-snippet/code-snippet-skeleton.js.map +1 -1
- package/es/components/code-snippet/code-snippet.css.js +1 -1
- package/es/components/code-snippet/code-snippet.d.ts +75 -29
- package/es/components/code-snippet/code-snippet.d.ts.map +1 -1
- package/es/components/code-snippet/code-snippet.js +370 -164
- package/es/components/code-snippet/code-snippet.js.map +1 -1
- package/es/components/code-snippet/code-snippet.rtl.css.js +1 -1
- package/es/components/copy/copy.d.ts +1 -2
- package/es/components/copy/copy.d.ts.map +1 -1
- package/es/components/copy/copy.js +6 -13
- package/es/components/copy/copy.js.map +1 -1
- package/es/components/copy-button/copy-button.css.js +1 -1
- package/es/components/copy-button/copy-button.d.ts +8 -0
- package/es/components/copy-button/copy-button.d.ts.map +1 -1
- package/es/components/copy-button/copy-button.js +38 -2
- package/es/components/copy-button/copy-button.js.map +1 -1
- package/es/components/copy-button/copy-button.rtl.css.js +1 -1
- package/es/components/data-table/data-table.css.js +1 -1
- package/es/components/data-table/data-table.rtl.css.js +1 -1
- package/es/components/data-table/defs.d.ts +0 -13
- package/es/components/data-table/defs.d.ts.map +1 -1
- package/es/components/data-table/defs.js +0 -9
- package/es/components/data-table/defs.js.map +1 -1
- package/es/components/data-table/index.d.ts +6 -5
- package/es/components/data-table/index.d.ts.map +1 -1
- package/es/components/data-table/index.js +6 -5
- package/es/components/data-table/index.js.map +1 -1
- package/es/components/data-table/table-batch-actions.d.ts +7 -2
- package/es/components/data-table/table-batch-actions.d.ts.map +1 -1
- package/es/components/data-table/table-batch-actions.js +25 -6
- package/es/components/data-table/table-batch-actions.js.map +1 -1
- package/es/components/data-table/table-body.d.ts +8 -4
- package/es/components/data-table/table-body.d.ts.map +1 -1
- package/es/components/data-table/table-body.js +21 -14
- package/es/components/data-table/table-body.js.map +1 -1
- package/es/components/data-table/table-cell-content.d.ts +21 -0
- package/es/components/data-table/table-cell-content.d.ts.map +1 -0
- package/es/components/data-table/table-cell-content.js +53 -0
- package/es/components/data-table/table-cell-content.js.map +1 -0
- package/es/components/data-table/table-cell.d.ts +15 -2
- package/es/components/data-table/table-cell.d.ts.map +1 -1
- package/es/components/data-table/table-cell.js +43 -8
- package/es/components/data-table/table-cell.js.map +1 -1
- package/es/components/data-table/table-expanded-row.d.ts +336 -2
- package/es/components/data-table/table-expanded-row.d.ts.map +1 -1
- package/es/components/data-table/table-expanded-row.js +69 -16
- package/es/components/data-table/table-expanded-row.js.map +1 -1
- package/es/components/data-table/table-head.d.ts +7 -2
- package/es/components/data-table/table-head.d.ts.map +1 -1
- package/es/components/data-table/table-head.js +15 -6
- package/es/components/data-table/table-head.js.map +1 -1
- package/es/components/data-table/table-header-cell.d.ts +21 -3
- package/es/components/data-table/table-header-cell.d.ts.map +1 -1
- package/es/components/data-table/table-header-cell.js +67 -10
- package/es/components/data-table/table-header-cell.js.map +1 -1
- package/es/components/data-table/table-header-description.d.ts +21 -0
- package/es/components/data-table/table-header-description.d.ts.map +1 -0
- package/es/components/data-table/table-header-description.js +53 -0
- package/es/components/data-table/table-header-description.js.map +1 -0
- package/es/components/data-table/table-header-row.d.ts +3 -3
- package/es/components/data-table/table-header-row.d.ts.map +1 -1
- package/es/components/data-table/table-header-row.js +6 -6
- package/es/components/data-table/table-header-row.js.map +1 -1
- package/es/components/data-table/table-header-title.d.ts +21 -0
- package/es/components/data-table/table-header-title.d.ts.map +1 -0
- package/es/components/data-table/table-header-title.js +53 -0
- package/es/components/data-table/table-header-title.js.map +1 -0
- package/es/components/data-table/table-row.d.ts +413 -5
- package/es/components/data-table/table-row.d.ts.map +1 -1
- package/es/components/data-table/table-row.js +386 -45
- package/es/components/data-table/table-row.js.map +1 -1
- package/es/components/data-table/table-skeleton.d.ts +59 -0
- package/es/components/data-table/table-skeleton.d.ts.map +1 -0
- package/es/components/data-table/table-skeleton.js +259 -0
- package/es/components/data-table/table-skeleton.js.map +1 -0
- package/es/components/data-table/table-toolbar-content.d.ts +6 -2
- package/es/components/data-table/table-toolbar-content.d.ts.map +1 -1
- package/es/components/data-table/table-toolbar-content.js +21 -4
- package/es/components/data-table/table-toolbar-content.js.map +1 -1
- package/es/components/data-table/table-toolbar-search.d.ts +7 -3
- package/es/components/data-table/table-toolbar-search.d.ts.map +1 -1
- package/es/components/data-table/table-toolbar-search.js +25 -8
- package/es/components/data-table/table-toolbar-search.js.map +1 -1
- package/es/components/data-table/table-toolbar.d.ts +19 -2
- package/es/components/data-table/table-toolbar.d.ts.map +1 -1
- package/es/components/data-table/table-toolbar.js +68 -13
- package/es/components/data-table/table-toolbar.js.map +1 -1
- package/es/components/data-table/table.d.ts +556 -6
- package/es/components/data-table/table.d.ts.map +1 -1
- package/es/components/data-table/table.js +1012 -15
- package/es/components/data-table/table.js.map +1 -1
- package/es/components/dropdown/defs.d.ts +6 -6
- package/es/components/dropdown/defs.d.ts.map +1 -1
- package/es/components/dropdown/defs.js +2 -2
- package/es/components/dropdown/defs.js.map +1 -1
- package/es/components/dropdown/dropdown-item.d.ts.map +1 -1
- package/es/components/dropdown/dropdown-item.js +1 -1
- package/es/components/dropdown/dropdown-item.js.map +1 -1
- package/es/components/dropdown/dropdown.d.ts +9 -2
- package/es/components/dropdown/dropdown.d.ts.map +1 -1
- package/es/components/dropdown/dropdown.js +83 -62
- package/es/components/dropdown/dropdown.js.map +1 -1
- package/es/components/file-uploader/demo-file-uploader.d.ts +1 -1
- package/es/components/file-uploader/demo-file-uploader.d.ts.map +1 -1
- package/es/components/file-uploader/demo-file-uploader.js +38 -4
- package/es/components/file-uploader/demo-file-uploader.js.map +1 -1
- package/es/components/floating-menu/defs.d.ts +1 -39
- package/es/components/floating-menu/defs.d.ts.map +1 -1
- package/es/components/floating-menu/defs.js +2 -23
- package/es/components/floating-menu/defs.js.map +1 -1
- package/es/components/floating-menu/floating-menu-trigger.d.ts +3 -3
- package/es/components/floating-menu/floating-menu-trigger.d.ts.map +1 -1
- package/es/components/floating-menu/floating-menu.d.ts +11 -13
- package/es/components/floating-menu/floating-menu.d.ts.map +1 -1
- package/es/components/floating-menu/floating-menu.js +44 -54
- package/es/components/floating-menu/floating-menu.js.map +1 -1
- package/es/components/form/form-item.d.ts +2 -2
- package/es/components/form/form-item.d.ts.map +1 -1
- package/es/components/form/form-item.js +4 -4
- package/es/components/form/form-item.js.map +1 -1
- package/es/components/form-group/form-group.css.js +12 -0
- package/es/components/form-group/form-group.d.ts +44 -0
- package/es/components/form-group/form-group.d.ts.map +1 -0
- package/es/components/form-group/form-group.js +141 -0
- package/es/components/form-group/form-group.js.map +1 -0
- package/es/components/form-group/form-group.rtl.css.js +12 -0
- package/es/components/form-group/index.d.ts +11 -0
- package/es/components/form-group/index.d.ts.map +1 -0
- package/es/components/form-group/index.js +11 -0
- package/es/components/form-group/index.js.map +1 -0
- package/es/components/icon-button/icon-button.css.js +1 -1
- package/es/components/icon-button/icon-button.d.ts +1 -1
- package/es/components/icon-button/icon-button.d.ts.map +1 -1
- package/es/components/icon-button/icon-button.js +5 -3
- package/es/components/icon-button/icon-button.js.map +1 -1
- package/es/components/icon-button/icon-button.rtl.css.js +1 -1
- package/es/components/list/list.css.js +1 -1
- package/es/components/list/list.rtl.css.js +1 -1
- package/es/components/modal/defs.d.ts +3 -3
- package/es/components/modal/defs.d.ts.map +1 -1
- package/es/components/modal/defs.js +2 -2
- package/es/components/modal/defs.js.map +1 -1
- package/es/components/modal/index.d.ts +2 -1
- package/es/components/modal/index.d.ts.map +1 -1
- package/es/components/modal/index.js +2 -1
- package/es/components/modal/index.js.map +1 -1
- package/es/components/modal/modal-body-content.d.ts +21 -0
- package/es/components/modal/modal-body-content.d.ts.map +1 -0
- package/es/components/modal/modal-body-content.js +53 -0
- package/es/components/modal/modal-body-content.js.map +1 -0
- package/es/components/modal/modal-body.d.ts +2 -2
- package/es/components/modal/modal-body.d.ts.map +1 -1
- package/es/components/modal/modal-body.js +4 -4
- package/es/components/modal/modal-body.js.map +1 -1
- package/es/components/modal/modal-close-button.d.ts +5 -5
- package/es/components/modal/modal-close-button.d.ts.map +1 -1
- package/es/components/modal/modal-close-button.js +9 -9
- package/es/components/modal/modal-close-button.js.map +1 -1
- package/es/components/modal/modal-footer.d.ts +3 -3
- package/es/components/modal/modal-footer.d.ts.map +1 -1
- package/es/components/modal/modal-footer.js +13 -21
- package/es/components/modal/modal-footer.js.map +1 -1
- package/es/components/modal/modal-header.d.ts +2 -2
- package/es/components/modal/modal-header.d.ts.map +1 -1
- package/es/components/modal/modal-header.js +4 -4
- package/es/components/modal/modal-header.js.map +1 -1
- package/es/components/modal/modal-heading.d.ts +2 -2
- package/es/components/modal/modal-heading.d.ts.map +1 -1
- package/es/components/modal/modal-heading.js +4 -4
- package/es/components/modal/modal-heading.js.map +1 -1
- package/es/components/modal/modal-label.d.ts +2 -2
- package/es/components/modal/modal-label.d.ts.map +1 -1
- package/es/components/modal/modal-label.js +4 -4
- package/es/components/modal/modal-label.js.map +1 -1
- package/es/components/modal/modal.css.js +1 -1
- package/es/components/modal/modal.d.ts +33 -3
- package/es/components/modal/modal.d.ts.map +1 -1
- package/es/components/modal/modal.js +121 -14
- package/es/components/modal/modal.js.map +1 -1
- package/es/components/modal/modal.rtl.css.js +1 -1
- package/es/components/multi-select/defs.d.ts +27 -0
- package/es/components/multi-select/defs.d.ts.map +1 -0
- package/es/components/multi-select/defs.js +19 -0
- package/es/components/multi-select/defs.js.map +1 -0
- package/es/components/multi-select/multi-select-item.d.ts.map +1 -1
- package/es/components/multi-select/multi-select-item.js +9 -14
- package/es/components/multi-select/multi-select-item.js.map +1 -1
- package/es/components/multi-select/multi-select.css.js +1 -1
- package/es/components/multi-select/multi-select.d.ts +44 -5
- package/es/components/multi-select/multi-select.d.ts.map +1 -1
- package/es/components/multi-select/multi-select.js +250 -32
- package/es/components/multi-select/multi-select.js.map +1 -1
- package/es/components/multi-select/multi-select.rtl.css.js +1 -1
- package/es/components/number-input/number-input.css.js +1 -1
- package/es/components/number-input/number-input.d.ts.map +1 -1
- package/es/components/number-input/number-input.js +1 -1
- package/es/components/number-input/number-input.js.map +1 -1
- package/es/components/number-input/number-input.rtl.css.js +1 -1
- package/es/components/overflow-menu/defs.d.ts +4 -9
- package/es/components/overflow-menu/defs.d.ts.map +1 -1
- package/es/components/overflow-menu/defs.js +1 -4
- package/es/components/overflow-menu/defs.js.map +1 -1
- package/es/components/overflow-menu/overflow-menu-body.d.ts +16 -15
- package/es/components/overflow-menu/overflow-menu-body.d.ts.map +1 -1
- package/es/components/overflow-menu/overflow-menu-body.js +49 -28
- package/es/components/overflow-menu/overflow-menu-body.js.map +1 -1
- package/es/components/overflow-menu/overflow-menu-item.d.ts +12 -3
- package/es/components/overflow-menu/overflow-menu-item.d.ts.map +1 -1
- package/es/components/overflow-menu/overflow-menu-item.js +44 -12
- package/es/components/overflow-menu/overflow-menu-item.js.map +1 -1
- package/es/components/overflow-menu/overflow-menu.css.js +1 -1
- package/es/components/overflow-menu/overflow-menu.d.ts +22 -10
- package/es/components/overflow-menu/overflow-menu.d.ts.map +1 -1
- package/es/components/overflow-menu/overflow-menu.js +89 -40
- package/es/components/overflow-menu/overflow-menu.js.map +1 -1
- package/es/components/overflow-menu/overflow-menu.rtl.css.js +1 -1
- package/es/components/pagination/defs.d.ts +27 -0
- package/es/components/pagination/defs.d.ts.map +1 -0
- package/es/components/pagination/defs.js +19 -0
- package/es/components/pagination/defs.js.map +1 -0
- package/es/components/pagination/index.d.ts +1 -3
- package/es/components/pagination/index.d.ts.map +1 -1
- package/es/components/pagination/index.js +1 -3
- package/es/components/pagination/index.js.map +1 -1
- package/es/components/pagination/pagination.css.js +1 -1
- package/es/components/pagination/pagination.d.ts +55 -20
- package/es/components/pagination/pagination.d.ts.map +1 -1
- package/es/components/pagination/pagination.js +303 -123
- package/es/components/pagination/pagination.js.map +1 -1
- package/es/components/pagination/pagination.rtl.css.js +1 -1
- package/es/components/progress-indicator/progress-indicator-skeleton.d.ts +1 -2
- package/es/components/progress-indicator/progress-indicator-skeleton.d.ts.map +1 -1
- package/es/components/progress-indicator/progress-indicator-skeleton.js +5 -5
- package/es/components/progress-indicator/progress-indicator-skeleton.js.map +1 -1
- package/es/components/progress-indicator/progress-indicator.css.js +1 -1
- package/es/components/progress-indicator/progress-indicator.d.ts +8 -3
- package/es/components/progress-indicator/progress-indicator.d.ts.map +1 -1
- package/es/components/progress-indicator/progress-indicator.js +35 -8
- package/es/components/progress-indicator/progress-indicator.js.map +1 -1
- package/es/components/progress-indicator/progress-indicator.rtl.css.js +1 -1
- package/es/components/progress-indicator/progress-step-skeleton.d.ts +2 -2
- package/es/components/progress-indicator/progress-step-skeleton.d.ts.map +1 -1
- package/es/components/progress-indicator/progress-step-skeleton.js +12 -12
- package/es/components/progress-indicator/progress-step-skeleton.js.map +1 -1
- package/es/components/progress-indicator/progress-step.d.ts +11 -3
- package/es/components/progress-indicator/progress-step.d.ts.map +1 -1
- package/es/components/progress-indicator/progress-step.js +65 -24
- package/es/components/progress-indicator/progress-step.js.map +1 -1
- package/es/components/radio-button/radio-button.css.js +1 -1
- package/es/components/radio-button/radio-button.d.ts +4 -0
- package/es/components/radio-button/radio-button.d.ts.map +1 -1
- package/es/components/radio-button/radio-button.js +22 -0
- package/es/components/radio-button/radio-button.js.map +1 -1
- package/es/components/radio-button/radio-button.rtl.css.js +1 -1
- package/es/components/select/select.css.js +1 -1
- package/es/components/select/select.d.ts.map +1 -1
- package/es/components/select/select.js +3 -1
- package/es/components/select/select.js.map +1 -1
- package/es/components/select/select.rtl.css.js +1 -1
- package/es/components/slider/slider.css.js +1 -1
- package/es/components/slider/slider.rtl.css.js +1 -1
- package/es/components/stack/defs.d.ts +29 -0
- package/es/components/stack/defs.d.ts.map +1 -0
- package/es/components/stack/defs.js +31 -0
- package/es/components/stack/defs.js.map +1 -0
- package/es/components/stack/index.d.ts +11 -0
- package/es/components/stack/index.d.ts.map +1 -0
- package/es/components/stack/index.js +11 -0
- package/es/components/stack/index.js.map +1 -0
- package/es/components/stack/stack.css.js +12 -0
- package/es/components/stack/stack.d.ts +46 -0
- package/es/components/stack/stack.d.ts.map +1 -0
- package/es/components/stack/stack.js +116 -0
- package/es/components/stack/stack.js.map +1 -0
- package/es/components/stack/stack.rtl.css.js +12 -0
- package/es/components/structured-list/structured-list.css.js +1 -1
- package/es/components/structured-list/structured-list.d.ts +9 -0
- package/es/components/structured-list/structured-list.d.ts.map +1 -1
- package/es/components/structured-list/structured-list.js +47 -1
- package/es/components/structured-list/structured-list.js.map +1 -1
- package/es/components/structured-list/structured-list.rtl.css.js +1 -1
- package/es/components/tabs/tabs.css.js +1 -1
- package/es/components/tabs/tabs.rtl.css.js +1 -1
- package/es/components/text-input/defs.d.ts +38 -0
- package/es/components/text-input/defs.d.ts.map +1 -1
- package/es/components/text-input/defs.js +24 -3
- package/es/components/text-input/defs.js.map +1 -1
- package/es/components/text-input/text-input.d.ts +4 -5
- package/es/components/text-input/text-input.d.ts.map +1 -1
- package/es/components/text-input/text-input.js +5 -6
- package/es/components/text-input/text-input.js.map +1 -1
- package/es/components/textarea/textarea.d.ts.map +1 -1
- package/es/components/textarea/textarea.js +1 -1
- package/es/components/textarea/textarea.js.map +1 -1
- package/es/components/tile/expandable-tile.d.ts +1 -3
- package/es/components/tile/expandable-tile.d.ts.map +1 -1
- package/es/components/tile/expandable-tile.js +1 -1
- package/es/components/tile/expandable-tile.js.map +1 -1
- package/es/components/tile/radio-tile.d.ts.map +1 -1
- package/es/components/tile/radio-tile.js +2 -2
- package/es/components/tile/radio-tile.js.map +1 -1
- package/es/components/toggle-tip/toggletip.d.ts +1 -1
- package/es/components/toggle-tip/toggletip.d.ts.map +1 -1
- package/es/components/toggle-tip/toggletip.js +28 -3
- package/es/components/toggle-tip/toggletip.js.map +1 -1
- package/es/components/tooltip/tooltip.css.js +1 -1
- package/es/components/tooltip/tooltip.d.ts +12 -1
- package/es/components/tooltip/tooltip.d.ts.map +1 -1
- package/es/components/tooltip/tooltip.js +47 -1
- package/es/components/tooltip/tooltip.js.map +1 -1
- package/es/components/tooltip/tooltip.rtl.css.js +1 -1
- package/es/components/ui-shell/header-global-action.d.ts +31 -0
- package/es/components/ui-shell/header-global-action.d.ts.map +1 -0
- package/es/components/ui-shell/header-global-action.js +88 -0
- package/es/components/ui-shell/header-global-action.js.map +1 -0
- package/es/components/ui-shell/header-menu-button.d.ts +6 -6
- package/es/components/ui-shell/header-menu-button.d.ts.map +1 -1
- package/es/components/ui-shell/header-menu-button.js +10 -10
- package/es/components/ui-shell/header-menu-button.js.map +1 -1
- package/es/components/ui-shell/header-menu-item.d.ts +3 -3
- package/es/components/ui-shell/header-menu-item.d.ts.map +1 -1
- package/es/components/ui-shell/header-menu-item.js +6 -6
- package/es/components/ui-shell/header-menu-item.js.map +1 -1
- package/es/components/ui-shell/header-menu.d.ts +11 -3
- package/es/components/ui-shell/header-menu.d.ts.map +1 -1
- package/es/components/ui-shell/header-menu.js +47 -7
- package/es/components/ui-shell/header-menu.js.map +1 -1
- package/es/components/ui-shell/header-name.d.ts +3 -3
- package/es/components/ui-shell/header-name.d.ts.map +1 -1
- package/es/components/ui-shell/header-name.js +4 -4
- package/es/components/ui-shell/header-name.js.map +1 -1
- package/es/components/ui-shell/header-nav-item.d.ts +11 -3
- package/es/components/ui-shell/header-nav-item.d.ts.map +1 -1
- package/es/components/ui-shell/header-nav-item.js +39 -6
- package/es/components/ui-shell/header-nav-item.js.map +1 -1
- package/es/components/ui-shell/header-nav.d.ts +2 -2
- package/es/components/ui-shell/header-nav.d.ts.map +1 -1
- package/es/components/ui-shell/header-nav.js +5 -5
- package/es/components/ui-shell/header-nav.js.map +1 -1
- package/es/components/ui-shell/header-panel.d.ts +30 -0
- package/es/components/ui-shell/header-panel.d.ts.map +1 -0
- package/es/components/ui-shell/header-panel.js +72 -0
- package/es/components/ui-shell/header-panel.js.map +1 -0
- package/es/components/ui-shell/header-side-nav-items.d.ts +27 -0
- package/es/components/ui-shell/header-side-nav-items.d.ts.map +1 -0
- package/es/components/ui-shell/header-side-nav-items.js +80 -0
- package/es/components/ui-shell/header-side-nav-items.js.map +1 -0
- package/es/components/ui-shell/header.css.js +1 -1
- package/es/components/ui-shell/header.d.ts +2 -2
- package/es/components/ui-shell/header.d.ts.map +1 -1
- package/es/components/ui-shell/header.js +5 -5
- package/es/components/ui-shell/header.js.map +1 -1
- package/es/components/ui-shell/header.rtl.css.js +1 -1
- package/es/components/ui-shell/index.d.ts +5 -0
- package/es/components/ui-shell/index.d.ts.map +1 -1
- package/es/components/ui-shell/index.js +5 -0
- package/es/components/ui-shell/index.js.map +1 -1
- package/es/components/ui-shell/side-nav-divider.d.ts +2 -2
- package/es/components/ui-shell/side-nav-divider.d.ts.map +1 -1
- package/es/components/ui-shell/side-nav-divider.js +5 -5
- package/es/components/ui-shell/side-nav-divider.js.map +1 -1
- package/es/components/ui-shell/side-nav-items.d.ts +2 -2
- package/es/components/ui-shell/side-nav-items.d.ts.map +1 -1
- package/es/components/ui-shell/side-nav-items.js +6 -6
- package/es/components/ui-shell/side-nav-items.js.map +1 -1
- package/es/components/ui-shell/side-nav-link.d.ts +7 -3
- package/es/components/ui-shell/side-nav-link.d.ts.map +1 -1
- package/es/components/ui-shell/side-nav-link.js +18 -5
- package/es/components/ui-shell/side-nav-link.js.map +1 -1
- package/es/components/ui-shell/side-nav-menu-item.d.ts +3 -3
- package/es/components/ui-shell/side-nav-menu-item.d.ts.map +1 -1
- package/es/components/ui-shell/side-nav-menu-item.js +4 -4
- package/es/components/ui-shell/side-nav-menu-item.js.map +1 -1
- package/es/components/ui-shell/side-nav-menu.d.ts +7 -3
- package/es/components/ui-shell/side-nav-menu.d.ts.map +1 -1
- package/es/components/ui-shell/side-nav-menu.js +18 -5
- package/es/components/ui-shell/side-nav-menu.js.map +1 -1
- package/es/components/ui-shell/side-nav.css.js +1 -1
- package/es/components/ui-shell/side-nav.d.ts +35 -13
- package/es/components/ui-shell/side-nav.d.ts.map +1 -1
- package/es/components/ui-shell/side-nav.js +142 -48
- package/es/components/ui-shell/side-nav.js.map +1 -1
- package/es/components/ui-shell/side-nav.rtl.css.js +1 -1
- package/es/components/ui-shell/switcher-divider.d.ts +21 -0
- package/es/components/ui-shell/switcher-divider.d.ts.map +1 -0
- package/es/components/ui-shell/switcher-divider.js +56 -0
- package/es/components/ui-shell/switcher-divider.js.map +1 -0
- package/es/components/{pagination/page-sizes-select.d.ts → ui-shell/switcher-item.d.ts} +18 -22
- package/es/components/ui-shell/switcher-item.d.ts.map +1 -0
- package/es/components/ui-shell/switcher-item.js +162 -0
- package/es/components/ui-shell/switcher-item.js.map +1 -0
- package/es/components/ui-shell/switcher.d.ts +35 -0
- package/es/components/ui-shell/switcher.d.ts.map +1 -0
- package/es/components/ui-shell/switcher.js +95 -0
- package/es/components/ui-shell/switcher.js.map +1 -0
- package/es/components-react/code-snippet/code-snippet-skeleton.d.ts +2 -2
- package/es/components-react/code-snippet/code-snippet.d.ts +2 -2
- package/es/components-react/data-table/table-batch-actions.d.ts +2 -2
- package/es/components-react/data-table/table-body.d.ts +2 -2
- package/es/components-react/{pagination/pages-select.d.ts → data-table/table-cell-content.d.ts} +2 -6
- package/es/components-react/{pagination/pages-select.js → data-table/table-cell-content.js} +4 -10
- package/es/components-react/data-table/table-cell.d.ts +2 -2
- package/es/components-react/data-table/table-expanded-row.d.ts +2 -2
- package/es/components-react/data-table/table-head.d.ts +2 -2
- package/es/components-react/data-table/table-header-cell.d.ts +2 -2
- package/es/components-react/{pagination/page-sizes-select.d.ts → data-table/table-header-description.d.ts} +2 -6
- package/es/components-react/{pagination/page-sizes-select.js → data-table/table-header-description.js} +4 -10
- package/es/components-react/data-table/table-header-row.d.ts +2 -2
- package/es/components-react/data-table/table-header-title.d.ts +15 -0
- package/es/components-react/data-table/{table-header-cell-skeleton.js → table-header-title.js} +4 -6
- package/es/components-react/data-table/table-row.d.ts +19 -2
- package/es/components-react/data-table/table-row.js +16 -0
- package/es/components-react/data-table/table-skeleton.d.ts +15 -0
- package/es/components-react/data-table/table-skeleton.js +21 -0
- package/es/components-react/data-table/table-toolbar-content.d.ts +2 -2
- package/es/components-react/data-table/table-toolbar-search.d.ts +2 -2
- package/es/components-react/data-table/table-toolbar.d.ts +2 -2
- package/es/components-react/data-table/table.d.ts +44 -2
- package/es/components-react/data-table/table.js +45 -3
- package/es/components-react/file-uploader/demo-file-uploader.d.ts +0 -49
- package/es/components-react/file-uploader/demo-file-uploader.js +3 -51
- package/es/components-react/floating-menu/floating-menu.d.ts +2 -2
- package/es/components-react/floating-menu/floating-menu.js +0 -2
- package/es/components-react/form/form-item.d.ts +2 -2
- package/es/components-react/form-group/form-group.d.ts +15 -0
- package/es/components-react/form-group/form-group.js +21 -0
- package/es/components-react/form-group/index.d.ts +14 -0
- package/es/components-react/form-group/index.js +8 -0
- package/es/components-react/modal/modal-body-content.d.ts +15 -0
- package/es/components-react/modal/modal-body-content.js +21 -0
- package/es/components-react/modal/modal-body.d.ts +2 -2
- package/es/components-react/modal/modal-close-button.d.ts +2 -2
- package/es/components-react/modal/modal-footer.d.ts +2 -2
- package/es/components-react/modal/modal-header.d.ts +2 -2
- package/es/components-react/modal/modal-heading.d.ts +2 -2
- package/es/components-react/modal/modal-label.d.ts +2 -2
- package/es/components-react/modal/modal.d.ts +2 -2
- package/es/components-react/multi-select/defs.d.ts +14 -0
- package/es/components-react/multi-select/defs.js +9 -0
- package/es/components-react/multi-select/multi-select.js +6 -1
- package/es/components-react/overflow-menu/overflow-menu-body.d.ts +2 -2
- package/es/components-react/overflow-menu/overflow-menu-item.d.ts +2 -2
- package/es/components-react/overflow-menu/overflow-menu.d.ts +4 -5
- package/es/components-react/overflow-menu/overflow-menu.js +5 -3
- package/es/components-react/pagination/defs.d.ts +14 -0
- package/es/components-react/pagination/defs.js +9 -0
- package/es/components-react/pagination/pagination.d.ts +3 -7
- package/es/components-react/pagination/pagination.js +3 -7
- package/es/components-react/progress-indicator/progress-indicator-skeleton.d.ts +2 -3
- package/es/components-react/progress-indicator/progress-indicator.d.ts +2 -3
- package/es/components-react/progress-indicator/progress-step-skeleton.d.ts +2 -3
- package/es/components-react/progress-indicator/progress-step.d.ts +2 -3
- package/es/components-react/stack/defs.d.ts +14 -0
- package/es/components-react/stack/defs.js +9 -0
- package/es/components-react/stack/index.d.ts +14 -0
- package/es/components-react/stack/index.js +8 -0
- package/es/components-react/stack/stack.d.ts +15 -0
- package/es/components-react/stack/stack.js +22 -0
- package/es/components-react/text-input/text-input.js +7 -1
- package/es/components-react/toggle-tip/toggletip.d.ts +0 -5
- package/es/components-react/toggle-tip/toggletip.js +3 -13
- package/es/components-react/{data-table/table-cell-skeleton.d.ts → ui-shell/header-global-action.d.ts} +3 -3
- package/es/components-react/{data-table/table-cell-skeleton.js → ui-shell/header-global-action.js} +4 -4
- package/es/components-react/ui-shell/header-menu-button.d.ts +2 -2
- package/es/components-react/ui-shell/header-menu-item.d.ts +2 -2
- package/es/components-react/ui-shell/header-menu.d.ts +2 -2
- package/es/components-react/ui-shell/header-name.d.ts +2 -2
- package/es/components-react/ui-shell/header-nav-item.d.ts +2 -2
- package/es/components-react/ui-shell/header-nav.d.ts +2 -2
- package/es/components-react/ui-shell/header-panel.d.ts +15 -0
- package/es/components-react/ui-shell/header-panel.js +21 -0
- package/es/components-react/ui-shell/header-side-nav-items.d.ts +15 -0
- package/es/components-react/ui-shell/header-side-nav-items.js +21 -0
- package/es/components-react/ui-shell/header.d.ts +2 -2
- package/es/components-react/ui-shell/side-nav-divider.d.ts +2 -2
- package/es/components-react/ui-shell/side-nav-items.d.ts +2 -2
- package/es/components-react/ui-shell/side-nav-link.d.ts +2 -2
- package/es/components-react/ui-shell/side-nav-menu-item.d.ts +2 -2
- package/es/components-react/ui-shell/side-nav-menu.d.ts +2 -2
- package/es/components-react/ui-shell/side-nav.d.ts +2 -2
- package/es/components-react/ui-shell/switcher-divider.d.ts +15 -0
- package/es/components-react/ui-shell/switcher-divider.js +21 -0
- package/es/components-react/ui-shell/switcher-item.d.ts +15 -0
- package/es/components-react/ui-shell/switcher-item.js +21 -0
- package/es/components-react/ui-shell/switcher.d.ts +15 -0
- package/es/components-react/ui-shell/switcher.js +21 -0
- package/es/icons/arrow--down/16.js +1 -1
- package/es/icons/arrow--down/32.js +1 -1
- package/es/icons/arrows--vertical/16.js +1 -1
- package/es/icons/arrows--vertical/32.js +1 -1
- package/es/icons/overflow-menu--vertical/16.js +1 -1
- package/es/index.d.ts +12 -2
- package/es/index.d.ts.map +1 -1
- package/es/index.js +12 -2
- package/es/index.js.map +1 -1
- package/lib/components/data-table/defs.js +1 -10
- package/lib/components/data-table/defs.js.map +1 -1
- package/lib/components/dropdown/defs.js +2 -2
- package/lib/components/dropdown/defs.js.map +1 -1
- package/lib/components/floating-menu/defs.js +3 -24
- package/lib/components/floating-menu/defs.js.map +1 -1
- package/lib/components/modal/defs.js +2 -2
- package/lib/components/modal/defs.js.map +1 -1
- package/lib/components/multi-select/defs.js +25 -0
- package/lib/components/multi-select/defs.js.map +1 -0
- package/lib/components/overflow-menu/defs.js +2 -11
- package/lib/components/overflow-menu/defs.js.map +1 -1
- package/lib/components/pagination/defs.js +25 -0
- package/lib/components/pagination/defs.js.map +1 -0
- package/lib/components/stack/defs.js +36 -0
- package/lib/components/stack/defs.js.map +1 -0
- package/lib/components/text-input/defs.js +25 -4
- package/lib/components/text-input/defs.js.map +1 -1
- package/lib/components-react-node/{pagination/pages-select.js → data-table/table-cell-content.js} +3 -9
- package/lib/components-react-node/{pagination/page-sizes-select.js → data-table/table-header-description.js} +3 -9
- package/lib/components-react-node/data-table/{table-cell-skeleton.js → table-header-title.js} +3 -4
- package/lib/components-react-node/data-table/table-row.js +16 -0
- package/lib/components-react-node/data-table/{table-header-cell-skeleton.js → table-skeleton.js} +3 -4
- package/lib/components-react-node/data-table/table.js +44 -8
- package/lib/components-react-node/file-uploader/demo-file-uploader.js +3 -89
- package/lib/components-react-node/floating-menu/floating-menu.js +0 -12
- package/lib/components-react-node/form-group/form-group.js +36 -0
- package/lib/components-react-node/form-group/index.js +9 -0
- package/lib/components-react-node/modal/modal-body-content.js +36 -0
- package/lib/components-react-node/multi-select/defs.js +24 -0
- package/lib/components-react-node/multi-select/multi-select.js +13 -0
- package/lib/components-react-node/overflow-menu/overflow-menu.js +3 -8
- package/lib/components-react-node/pagination/defs.js +24 -0
- package/lib/components-react-node/pagination/pagination.js +3 -7
- package/lib/components-react-node/stack/defs.js +24 -0
- package/lib/components-react-node/stack/index.js +9 -0
- package/lib/components-react-node/stack/stack.js +49 -0
- package/lib/components-react-node/text-input/text-input.js +12 -0
- package/lib/components-react-node/toggle-tip/toggletip.js +3 -51
- package/lib/components-react-node/ui-shell/header-global-action.js +37 -0
- package/lib/components-react-node/ui-shell/header-panel.js +36 -0
- package/lib/components-react-node/ui-shell/header-side-nav-items.js +36 -0
- package/lib/components-react-node/ui-shell/switcher-divider.js +36 -0
- package/lib/components-react-node/ui-shell/switcher-item.js +36 -0
- package/lib/components-react-node/ui-shell/switcher.js +36 -0
- package/package.json +6 -7
- package/scss/components/button/button.scss +48 -1
- package/scss/components/checkbox/checkbox.scss +16 -0
- package/scss/components/code-snippet/code-snippet.scss +82 -101
- package/scss/components/copy-button/copy-button.scss +17 -0
- package/scss/components/data-table/_table-action.scss +50 -32
- package/scss/components/data-table/_table-core.scss +253 -29
- package/scss/components/data-table/_table-expandable.scss +25 -32
- package/scss/components/data-table/_table-selection.scss +36 -20
- package/scss/components/data-table/_table-sizes.scss +162 -20
- package/scss/components/data-table/_table-sort.scss +5 -21
- package/scss/components/data-table/data-table.scss +4 -3
- package/scss/components/form-group/form-group.scss +23 -0
- package/scss/components/modal/modal.scss +61 -87
- package/scss/components/multi-select/multi-select.scss +54 -19
- package/scss/components/overflow-menu/overflow-menu.scss +21 -9
- package/scss/components/pagination/pagination.scss +0 -66
- package/scss/components/progress-indicator/progress-indicator.scss +11 -10
- package/scss/components/radio-button/radio-button.scss +11 -1
- package/scss/components/select/select.scss +28 -1
- package/scss/components/stack/stack.scss +33 -0
- package/scss/components/structured-list/structured-list.scss +90 -20
- package/scss/components/tooltip/tooltip.scss +26 -0
- package/scss/components/ui-shell/header.scss +69 -0
- package/scss/components/ui-shell/side-nav.scss +27 -49
- package/es/components/data-table/table-cell-skeleton.d.ts +0 -20
- package/es/components/data-table/table-cell-skeleton.d.ts.map +0 -1
- package/es/components/data-table/table-cell-skeleton.js +0 -42
- package/es/components/data-table/table-cell-skeleton.js.map +0 -1
- package/es/components/data-table/table-expand-row.d.ts +0 -371
- package/es/components/data-table/table-expand-row.d.ts.map +0 -1
- package/es/components/data-table/table-expand-row.js +0 -192
- package/es/components/data-table/table-expand-row.js.map +0 -1
- package/es/components/data-table/table-header-cell-skeleton.d.ts +0 -19
- package/es/components/data-table/table-header-cell-skeleton.d.ts.map +0 -1
- package/es/components/data-table/table-header-cell-skeleton.js +0 -33
- package/es/components/data-table/table-header-cell-skeleton.js.map +0 -1
- package/es/components/data-table/table-header-expand-row.d.ts +0 -33
- package/es/components/data-table/table-header-expand-row.d.ts.map +0 -1
- package/es/components/data-table/table-header-expand-row.js +0 -68
- package/es/components/data-table/table-header-expand-row.js.map +0 -1
- package/es/components/pagination/page-sizes-select.d.ts.map +0 -1
- package/es/components/pagination/page-sizes-select.js +0 -172
- package/es/components/pagination/page-sizes-select.js.map +0 -1
- package/es/components/pagination/pages-select.d.ts +0 -362
- package/es/components/pagination/pages-select.d.ts.map +0 -1
- package/es/components/pagination/pages-select.js +0 -185
- package/es/components/pagination/pages-select.js.map +0 -1
- package/es/components-react/data-table/table-expand-row.d.ts +0 -24
- package/es/components-react/data-table/table-expand-row.js +0 -33
- package/es/components-react/data-table/table-header-cell-skeleton.d.ts +0 -14
- package/es/components-react/data-table/table-header-expand-row.d.ts +0 -29
- package/es/components-react/data-table/table-header-expand-row.js +0 -37
- package/lib/components-react-node/data-table/table-expand-row.js +0 -47
- package/lib/components-react-node/data-table/table-header-expand-row.js +0 -51
- package/scss/components/data-table/_table-skeleton.scss +0 -27
|
@@ -5,7 +5,9 @@ let _ = t => t,
|
|
|
5
5
|
_t,
|
|
6
6
|
_t2,
|
|
7
7
|
_t3,
|
|
8
|
-
_t4
|
|
8
|
+
_t4,
|
|
9
|
+
_t5,
|
|
10
|
+
_t6;
|
|
9
11
|
/**
|
|
10
12
|
* @license
|
|
11
13
|
*
|
|
@@ -17,12 +19,15 @@ let _ = t => t,
|
|
|
17
19
|
|
|
18
20
|
import { html } from 'lit';
|
|
19
21
|
import { property, customElement, query } from 'lit/decorators.js';
|
|
22
|
+
import { classMap } from 'lit/directives/class-map.js';
|
|
20
23
|
import Close16 from "../../icons/close/16";
|
|
21
24
|
import { prefix } from '../../globals/settings';
|
|
22
25
|
import { filter, forEach, indexOf } from '../../globals/internal/collection-helpers';
|
|
23
|
-
import CDSDropdown, { DROPDOWN_KEYBOARD_ACTION } from '../dropdown/dropdown';
|
|
26
|
+
import CDSDropdown, { DROPDOWN_KEYBOARD_ACTION, DROPDOWN_TYPE } from '../dropdown/dropdown';
|
|
27
|
+
import { SELECTION_FEEDBACK_OPTION } from './defs';
|
|
24
28
|
import styles from "././multi-select.css.js";
|
|
25
|
-
export { DROPDOWN_SIZE, DROPDOWN_TYPE } from '../dropdown/dropdown';
|
|
29
|
+
export { DROPDOWN_SIZE, DROPDOWN_TYPE, DROPDOWN_DIRECTION } from '../dropdown/dropdown';
|
|
30
|
+
export { SELECTION_FEEDBACK_OPTION };
|
|
26
31
|
|
|
27
32
|
/**
|
|
28
33
|
* Multi select.
|
|
@@ -70,6 +75,11 @@ let CDSMultiSelect = _decorate([customElement(`${prefix}-multi-select`)], functi
|
|
|
70
75
|
decorators: [query('#selection-button')],
|
|
71
76
|
key: "_selectionButtonNode",
|
|
72
77
|
value: void 0
|
|
78
|
+
}, {
|
|
79
|
+
kind: "field",
|
|
80
|
+
decorators: [query('#menu-body')],
|
|
81
|
+
key: "_menuBodyNode",
|
|
82
|
+
value: void 0
|
|
73
83
|
}, {
|
|
74
84
|
kind: "field",
|
|
75
85
|
decorators: [query('input')],
|
|
@@ -96,6 +106,10 @@ let CDSMultiSelect = _decorate([customElement(`${prefix}-multi-select`)], functi
|
|
|
96
106
|
* The selection button.
|
|
97
107
|
*/
|
|
98
108
|
|
|
109
|
+
/**
|
|
110
|
+
* The menu body.
|
|
111
|
+
*/
|
|
112
|
+
|
|
99
113
|
/**
|
|
100
114
|
* The `<input>` for filtering.
|
|
101
115
|
*/
|
|
@@ -130,7 +144,7 @@ let CDSMultiSelect = _decorate([customElement(`${prefix}-multi-select`)], functi
|
|
|
130
144
|
key: "_handleClickInner",
|
|
131
145
|
value: function _handleClickInner(event) {
|
|
132
146
|
var _this$_selectionButto, _this$_clearButtonNod;
|
|
133
|
-
if ((_this$_selectionButto = this._selectionButtonNode) !== null && _this$_selectionButto !== void 0 && _this$_selectionButto.contains(event.target)) {
|
|
147
|
+
if ((_this$_selectionButto = this._selectionButtonNode) !== null && _this$_selectionButto !== void 0 && _this$_selectionButto.contains(event.target) && !this.readOnly) {
|
|
134
148
|
this._handleUserInitiatedSelectItem();
|
|
135
149
|
if (this.filterable) {
|
|
136
150
|
this._filterInputNode.focus();
|
|
@@ -140,10 +154,7 @@ let CDSMultiSelect = _decorate([customElement(`${prefix}-multi-select`)], functi
|
|
|
140
154
|
} else if ((_this$_clearButtonNod = this._clearButtonNode) !== null && _this$_clearButtonNod !== void 0 && _this$_clearButtonNod.contains(event.target)) {
|
|
141
155
|
this._handleUserInitiatedClearInput();
|
|
142
156
|
} else {
|
|
143
|
-
|
|
144
|
-
if (!event.composedPath().some(shouldIgnoreClickInner)) {
|
|
145
|
-
_get(_getPrototypeOf(CDSMultiSelect.prototype), "_handleClickInner", this).call(this, event);
|
|
146
|
-
}
|
|
157
|
+
_get(_getPrototypeOf(CDSMultiSelect.prototype), "_handleClickInner", this).call(this, event);
|
|
147
158
|
if (this.filterable) this._filterInputNode.focus();
|
|
148
159
|
}
|
|
149
160
|
}
|
|
@@ -222,24 +233,73 @@ let CDSMultiSelect = _decorate([customElement(`${prefix}-multi-select`)], functi
|
|
|
222
233
|
}
|
|
223
234
|
}, {
|
|
224
235
|
kind: "method",
|
|
225
|
-
key: "
|
|
226
|
-
value: function
|
|
236
|
+
key: "_renderTitleLabel",
|
|
237
|
+
value: function _renderTitleLabel() {
|
|
227
238
|
const {
|
|
239
|
+
clearSelectionDescription,
|
|
240
|
+
clearSelectionText,
|
|
241
|
+
disabled,
|
|
242
|
+
hideLabel,
|
|
243
|
+
titleText,
|
|
244
|
+
_selectedItemsCount: selectedItemsCount,
|
|
245
|
+
_slotTitleTextNode: slotTitleTextNode,
|
|
246
|
+
_handleSlotchangeLabelText: handleSlotchangeLabelText
|
|
247
|
+
} = this;
|
|
248
|
+
const labelClasses = classMap({
|
|
249
|
+
[`${prefix}--label`]: true,
|
|
250
|
+
[`${prefix}--label--disabled`]: disabled,
|
|
251
|
+
[`${prefix}--visually-hidden`]: hideLabel
|
|
252
|
+
});
|
|
253
|
+
const hasTitleText = titleText || slotTitleTextNode && slotTitleTextNode.assignedNodes().length > 0;
|
|
254
|
+
return html(_t || (_t = _`
|
|
255
|
+
<label
|
|
256
|
+
part="title-text"
|
|
257
|
+
class="${0}"
|
|
258
|
+
?hidden="${0}">
|
|
259
|
+
<slot name="title-text" @slotchange="${0}"
|
|
260
|
+
>${0}</slot
|
|
261
|
+
>
|
|
262
|
+
${0}
|
|
263
|
+
</label>
|
|
264
|
+
`), labelClasses, !hasTitleText, handleSlotchangeLabelText, titleText, selectedItemsCount > 0 ? html(_t2 || (_t2 = _`
|
|
265
|
+
<span class="${0}--visually-hidden">
|
|
266
|
+
${0} ${0},
|
|
267
|
+
${0}
|
|
268
|
+
</span>
|
|
269
|
+
`), prefix, clearSelectionDescription, selectedItemsCount, clearSelectionText) : null);
|
|
270
|
+
}
|
|
271
|
+
}, {
|
|
272
|
+
kind: "method",
|
|
273
|
+
key: "_renderPrecedingLabel",
|
|
274
|
+
value: function _renderPrecedingLabel() {
|
|
275
|
+
const {
|
|
276
|
+
disabled,
|
|
277
|
+
readOnly,
|
|
228
278
|
clearSelectionLabel,
|
|
229
279
|
_selectedItemsCount: selectedItemsCount
|
|
230
280
|
} = this;
|
|
231
|
-
|
|
281
|
+
const selectionButtonClasses = classMap({
|
|
282
|
+
[`${prefix}--list-box__selection`]: true,
|
|
283
|
+
[`${prefix}--list-box__selection--multi`]: true,
|
|
284
|
+
[`${prefix}--tag`]: true,
|
|
285
|
+
[`${prefix}--tag--filter`]: true,
|
|
286
|
+
[`${prefix}--tag--high-contrast`]: true,
|
|
287
|
+
[`${prefix}--tag--disabled`]: disabled
|
|
288
|
+
});
|
|
289
|
+
return selectedItemsCount === 0 ? undefined : html(_t3 || (_t3 = _`
|
|
232
290
|
<div
|
|
233
291
|
id="selection-button"
|
|
234
292
|
role="button"
|
|
235
|
-
class="${0}
|
|
236
|
-
tabindex="
|
|
293
|
+
class="${0}"
|
|
294
|
+
tabindex="-1"
|
|
295
|
+
aria-disabled=${0}
|
|
237
296
|
title="${0}">
|
|
238
297
|
${0}
|
|
239
298
|
${0}
|
|
240
299
|
</div>
|
|
241
|
-
`),
|
|
242
|
-
'aria-label': clearSelectionLabel
|
|
300
|
+
`), selectionButtonClasses, readOnly, clearSelectionLabel, selectedItemsCount, Close16({
|
|
301
|
+
'aria-label': clearSelectionLabel,
|
|
302
|
+
class: `${prefix}--tag__close-icon`
|
|
243
303
|
}));
|
|
244
304
|
}
|
|
245
305
|
|
|
@@ -254,11 +314,11 @@ let CDSMultiSelect = _decorate([customElement(`${prefix}-multi-select`)], functi
|
|
|
254
314
|
label,
|
|
255
315
|
_selectedItemContent: selectedItemContent
|
|
256
316
|
} = this;
|
|
257
|
-
return !this.filterable ? html(
|
|
317
|
+
return !this.filterable ? html(_t4 || (_t4 = _`
|
|
258
318
|
<span id="trigger-label" class="${0}--list-box__label"
|
|
259
319
|
>${0}</span
|
|
260
320
|
>
|
|
261
|
-
`), prefix, selectedItemContent || label) : html(
|
|
321
|
+
`), prefix, selectedItemContent || label) : html(_t5 || (_t5 = _`
|
|
262
322
|
<input
|
|
263
323
|
id="trigger-label"
|
|
264
324
|
class="${0}--text-input"
|
|
@@ -277,7 +337,7 @@ let CDSMultiSelect = _decorate([customElement(`${prefix}-multi-select`)], functi
|
|
|
277
337
|
clearSelectionLabel,
|
|
278
338
|
_filterInputNode: filterInputNode
|
|
279
339
|
} = this;
|
|
280
|
-
return filterInputNode && filterInputNode.value.length > 0 && this.filterable ? html(
|
|
340
|
+
return filterInputNode && filterInputNode.value.length > 0 && this.filterable ? html(_t6 || (_t6 = _`
|
|
281
341
|
<div
|
|
282
342
|
id="clear-button"
|
|
283
343
|
role="button"
|
|
@@ -323,7 +383,6 @@ let CDSMultiSelect = _decorate([customElement(`${prefix}-multi-select`)], functi
|
|
|
323
383
|
key: "_navigate",
|
|
324
384
|
value: function _navigate(direction) {
|
|
325
385
|
if (!this.filterable) {
|
|
326
|
-
this._triggerNode.focus();
|
|
327
386
|
_get(_getPrototypeOf(CDSMultiSelect.prototype), "_navigate", this).call(this, direction);
|
|
328
387
|
} else {
|
|
329
388
|
// only navigate through remaining item
|
|
@@ -373,6 +432,31 @@ let CDSMultiSelect = _decorate([customElement(`${prefix}-multi-select`)], functi
|
|
|
373
432
|
value() {
|
|
374
433
|
return '';
|
|
375
434
|
}
|
|
435
|
+
}, {
|
|
436
|
+
kind: "field",
|
|
437
|
+
decorators: [property({
|
|
438
|
+
attribute: 'clear-selection-description'
|
|
439
|
+
})],
|
|
440
|
+
key: "clearSelectionDescription",
|
|
441
|
+
value() {
|
|
442
|
+
return 'Total items selected: ';
|
|
443
|
+
}
|
|
444
|
+
}, {
|
|
445
|
+
kind: "field",
|
|
446
|
+
decorators: [property({
|
|
447
|
+
attribute: 'clear-selection-text'
|
|
448
|
+
})],
|
|
449
|
+
key: "clearSelectionText",
|
|
450
|
+
value() {
|
|
451
|
+
return 'To clear selection, press Delete or Backspace.';
|
|
452
|
+
}
|
|
453
|
+
}, {
|
|
454
|
+
kind: "field",
|
|
455
|
+
decorators: [property()],
|
|
456
|
+
key: "locale",
|
|
457
|
+
value() {
|
|
458
|
+
return 'en';
|
|
459
|
+
}
|
|
376
460
|
}, {
|
|
377
461
|
kind: "field",
|
|
378
462
|
decorators: [property({
|
|
@@ -392,49 +476,183 @@ let CDSMultiSelect = _decorate([customElement(`${prefix}-multi-select`)], functi
|
|
|
392
476
|
return 'Unselected all items.';
|
|
393
477
|
}
|
|
394
478
|
}, {
|
|
395
|
-
kind: "
|
|
396
|
-
|
|
479
|
+
kind: "field",
|
|
480
|
+
decorators: [property({
|
|
481
|
+
attribute: 'selection-feedback'
|
|
482
|
+
})],
|
|
483
|
+
key: "selectionFeedback",
|
|
484
|
+
value() {
|
|
485
|
+
return SELECTION_FEEDBACK_OPTION.TOP_AFTER_REOPEN;
|
|
486
|
+
}
|
|
487
|
+
}, {
|
|
488
|
+
kind: "get",
|
|
489
|
+
key: "_classes",
|
|
397
490
|
value:
|
|
491
|
+
/**
|
|
492
|
+
* Specify the text that should be read for screen readers that describes total items selected
|
|
493
|
+
*/
|
|
494
|
+
/**
|
|
495
|
+
* Specify the text that should be read for screen readers to clear selection.
|
|
496
|
+
*/
|
|
497
|
+
/**
|
|
498
|
+
* Specify the locale of the control. Used for the default compareItems used for sorting the list of items in the control.
|
|
499
|
+
*/
|
|
398
500
|
/**
|
|
399
501
|
* An assistive text for screen reader to announce, telling that an item is unselected.
|
|
400
502
|
*/
|
|
401
503
|
/**
|
|
402
504
|
* An assistive text for screen reader to announce, telling that all items are unselected.
|
|
403
505
|
*/
|
|
404
|
-
|
|
506
|
+
/**
|
|
507
|
+
* Specify feedback (mode) of the selection.
|
|
508
|
+
* `top`: selected item jumps to top
|
|
509
|
+
* `fixed`: selected item stays at it's position
|
|
510
|
+
* `top-after-reopen`: selected item jump to top after reopen dropdown
|
|
511
|
+
*/
|
|
512
|
+
/**
|
|
513
|
+
* The CSS class list for multi-select listbox
|
|
514
|
+
*/
|
|
515
|
+
function _classes() {
|
|
516
|
+
const {
|
|
517
|
+
disabled,
|
|
518
|
+
size,
|
|
519
|
+
type,
|
|
520
|
+
invalid,
|
|
521
|
+
readOnly,
|
|
522
|
+
open,
|
|
523
|
+
warn,
|
|
524
|
+
_selectedItemsCount: selectedItemsCount
|
|
525
|
+
} = this;
|
|
526
|
+
const inline = type === DROPDOWN_TYPE.INLINE;
|
|
527
|
+
return classMap({
|
|
528
|
+
[`${prefix}--multi-select`]: true,
|
|
529
|
+
[`${prefix}--list-box`]: true,
|
|
530
|
+
[`${prefix}--list-box--disabled`]: disabled,
|
|
531
|
+
[`${prefix}--list-box--inline`]: inline,
|
|
532
|
+
[`${prefix}--list-box--expanded`]: open,
|
|
533
|
+
[`${prefix}--list-box--${size}`]: size,
|
|
534
|
+
[`${prefix}--multi-select--invalid`]: invalid,
|
|
535
|
+
[`${prefix}--multi-select--warn`]: warn,
|
|
536
|
+
[`${prefix}--multi-select--inline`]: inline,
|
|
537
|
+
[`${prefix}--list-box--inline`]: inline,
|
|
538
|
+
[`${prefix}--multi-select--readonly`]: readOnly,
|
|
539
|
+
[`${prefix}--multi-select--selected`]: selectedItemsCount > 0
|
|
540
|
+
});
|
|
541
|
+
}
|
|
542
|
+
}, {
|
|
543
|
+
kind: "field",
|
|
544
|
+
key: "compareItems",
|
|
545
|
+
value() {
|
|
546
|
+
return (itemA, itemB, {
|
|
547
|
+
locale
|
|
548
|
+
}) => {
|
|
549
|
+
itemA.localeCompare(itemB, locale, {
|
|
550
|
+
numeric: true
|
|
551
|
+
});
|
|
552
|
+
};
|
|
553
|
+
}
|
|
554
|
+
}, {
|
|
555
|
+
kind: "field",
|
|
556
|
+
key: "sortItems",
|
|
557
|
+
value() {
|
|
558
|
+
return (menuItems, {
|
|
559
|
+
values,
|
|
560
|
+
compareItems,
|
|
561
|
+
locale: _locale = 'en'
|
|
562
|
+
}) => {
|
|
563
|
+
const menuItemsArray = Array.from(menuItems);
|
|
564
|
+
const sortedArray = menuItemsArray.sort((itemA, itemB) => {
|
|
565
|
+
const hasItemA = values.includes(itemA.value);
|
|
566
|
+
const hasItemB = values.includes(itemB.value);
|
|
567
|
+
|
|
568
|
+
// Prefer whichever item is in the `value` array first
|
|
569
|
+
if (hasItemA && !hasItemB) {
|
|
570
|
+
return -1;
|
|
571
|
+
}
|
|
572
|
+
if (hasItemB && !hasItemA) {
|
|
573
|
+
return 1;
|
|
574
|
+
}
|
|
575
|
+
return compareItems(itemA.value, itemB.value, {
|
|
576
|
+
locale: _locale
|
|
577
|
+
});
|
|
578
|
+
});
|
|
579
|
+
return sortedArray;
|
|
580
|
+
};
|
|
581
|
+
}
|
|
582
|
+
}, {
|
|
583
|
+
kind: "method",
|
|
584
|
+
key: "shouldUpdate",
|
|
585
|
+
value: function shouldUpdate(changedProperties) {
|
|
405
586
|
const {
|
|
406
587
|
selectorItem
|
|
407
588
|
} = this.constructor;
|
|
589
|
+
const items = this.querySelectorAll(selectorItem);
|
|
590
|
+
const {
|
|
591
|
+
value,
|
|
592
|
+
locale
|
|
593
|
+
} = this;
|
|
594
|
+
const values = !value ? [] : value.split(',');
|
|
408
595
|
if (changedProperties.has('size')) {
|
|
409
596
|
forEach(this.querySelectorAll(selectorItem), elem => {
|
|
410
597
|
elem.size = this.size;
|
|
411
598
|
});
|
|
412
599
|
}
|
|
413
600
|
if (changedProperties.has('value')) {
|
|
414
|
-
const {
|
|
415
|
-
value
|
|
416
|
-
} = this;
|
|
417
|
-
const values = !value ? [] : value.split(',');
|
|
418
601
|
// Updates selection beforehand because our rendering logic for `<cds-multi-select>` looks for selected items via `qSA()`
|
|
419
|
-
const items = this.querySelectorAll(selectorItem);
|
|
420
602
|
forEach(items, elem => {
|
|
421
603
|
elem.selected = values.indexOf(elem.value) >= 0;
|
|
422
604
|
});
|
|
423
605
|
this._selectedItemsCount = filter(items, elem => values.indexOf(elem.value) >= 0).length;
|
|
606
|
+
if (this.selectionFeedback === SELECTION_FEEDBACK_OPTION.TOP) {
|
|
607
|
+
const sortedMenuItems = this.sortItems(items, {
|
|
608
|
+
values,
|
|
609
|
+
compareItems: this.compareItems,
|
|
610
|
+
locale
|
|
611
|
+
});
|
|
612
|
+
this.replaceChildren(...sortedMenuItems);
|
|
613
|
+
}
|
|
614
|
+
}
|
|
615
|
+
if (changedProperties.has('open')) {
|
|
616
|
+
if (this.selectionFeedback === SELECTION_FEEDBACK_OPTION.TOP_AFTER_REOPEN) {
|
|
617
|
+
const sortedMenuItems = this.sortItems(items, {
|
|
618
|
+
values,
|
|
619
|
+
compareItems: this.compareItems,
|
|
620
|
+
locale
|
|
621
|
+
});
|
|
622
|
+
this.replaceChildren(...sortedMenuItems);
|
|
623
|
+
}
|
|
424
624
|
}
|
|
425
625
|
return true;
|
|
426
626
|
}
|
|
627
|
+
}, {
|
|
628
|
+
kind: "method",
|
|
629
|
+
key: "updated",
|
|
630
|
+
value: function updated(changedProperties) {
|
|
631
|
+
if (changedProperties.has('open') && this.open && !this.filterable) {
|
|
632
|
+
// move focus to menu body when open for non-filterable mulit-select
|
|
633
|
+
this._menuBodyNode.focus();
|
|
634
|
+
}
|
|
635
|
+
}
|
|
636
|
+
}, {
|
|
637
|
+
kind: "method",
|
|
638
|
+
key: "connectedCallback",
|
|
639
|
+
value: function connectedCallback() {
|
|
640
|
+
_get(_getPrototypeOf(CDSMultiSelect.prototype), "connectedCallback", this).call(this);
|
|
641
|
+
/**
|
|
642
|
+
* Detect if multi-select already has initially selected items
|
|
643
|
+
*/
|
|
644
|
+
this.value = filter(this.querySelectorAll(this.constructor.selectorItem), item => item.selected).map(item => item.value).join(',');
|
|
645
|
+
}
|
|
427
646
|
|
|
428
647
|
/**
|
|
429
|
-
* A selector
|
|
430
|
-
* Primary for the checkbox label where the `click` event will happen from the associated check box.
|
|
648
|
+
* A selector that will return menu body.
|
|
431
649
|
*/
|
|
432
650
|
}, {
|
|
433
651
|
kind: "get",
|
|
434
652
|
static: true,
|
|
435
|
-
key: "
|
|
436
|
-
value: function
|
|
437
|
-
return
|
|
653
|
+
key: "selectorMenuBody",
|
|
654
|
+
value: function selectorMenuBody() {
|
|
655
|
+
return `div[part="menu-body"]`;
|
|
438
656
|
}
|
|
439
657
|
|
|
440
658
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multi-select.js","names":["html","property","customElement","query","Close16","prefix","filter","forEach","indexOf","CDSDropdown","DROPDOWN_KEYBOARD_ACTION","styles","DROPDOWN_SIZE","DROPDOWN_TYPE","CDSMultiSelect","_decorate","_initialize","_CDSDropdown","constructor","args","F","d","kind","decorators","type","Boolean","key","value","_selectionShouldChange","itemToSelect","_selectionDidChange","selected","_assistiveStatusText","selectedItemAssistiveText","unselectedItemAssistiveText","querySelectorAll","selectorItemSelected","item","_handleUserInitiatedToggle","unselectedAllAssistiveText","selectorItem","map","join","_handleClickInner","event","_this$_selectionButto","_this$_clearButtonNod","_selectionButtonNode","contains","target","_handleUserInitiatedSelectItem","filterable","_filterInputNode","focus","_triggerNode","_clearButtonNode","_handleUserInitiatedClearInput","shouldIgnoreClickInner","elem","closest","selectorIgnoreClickInner","composedPath","some","_get","_getPrototypeOf","prototype","call","_handleKeypressInner","_this$_clearButtonNod2","_this$_selectionButto2","action","getAction","TRIGGERING","open","_handleKeypressInnerFlterable","highlightedItem","querySelector","selectorItemHighlighted","_renderPrecedingTriggerContent","clearSelectionLabel","_selectedItemsCount","selectedItemsCount","undefined","_t","_","_renderLabel","label","_selectedItemContent","selectedItemContent","_t2","_t3","_handleInput","_renderFollowingLabel","filterInputNode","length","_t4","items","inputValue","toLocaleLowerCase","itemValue","innerText","includes","setAttribute","removeAttribute","requestUpdate","_navigate","direction","selectorItemResults","highlightedIndex","nextIndex","i","highlighted","selectorItemFiltered","attribute","shouldUpdate","changedProperties","has","size","values","split","static","eventBeforeToggle","eventToggle","eventBeforeSelect","eventSelect"],"sources":["components/multi-select/multi-select.ts"],"sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2020, 2023\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { html, TemplateResult } from 'lit';\nimport { property, customElement, query } from 'lit/decorators.js';\nimport Close16 from '@carbon/icons/lib/close/16';\nimport { prefix } from '../../globals/settings';\nimport {\n filter,\n forEach,\n indexOf,\n} from '../../globals/internal/collection-helpers';\nimport CDSDropdown, { DROPDOWN_KEYBOARD_ACTION } from '../dropdown/dropdown';\nimport CDSMultiSelectItem from './multi-select-item';\nimport styles from './multi-select.scss';\n\nexport { DROPDOWN_SIZE, DROPDOWN_TYPE } from '../dropdown/dropdown';\n\n/**\n * Multi select.\n *\n * @element cds-multi-select\n * @fires cds-multi-select-beingselected\n * The custom event fired before a multi select item is selected upon a user gesture.\n * Cancellation of this event stops changing the user-initiated selection.\n * @fires cds-multi-select-selected - The custom event fired after a multi select item is selected upon a user gesture.\n * @fires cds-multi-select-beingtoggled\n * The custom event fired before the open state of this multi select is toggled upon a user gesture.\n * Cancellation of this event stops the user-initiated toggling.\n * @fires cds-multi-select-toggled\n * The custom event fired after the open state of this multi select is toggled upon a user gesture.\n */\n@customElement(`${prefix}-multi-select`)\nclass CDSMultiSelect extends CDSDropdown {\n @property({ type: Boolean })\n filterable;\n\n /**\n * The count of selected items.\n */\n private _selectedItemsCount = 0;\n\n /**\n * The clear button.\n */\n @query('#clear-button')\n private _clearButtonNode!: HTMLElement;\n\n /**\n * The selection button.\n */\n @query('#selection-button')\n private _selectionButtonNode!: HTMLElement;\n\n /**\n * The `<input>` for filtering.\n */\n @query('input')\n private _filterInputNode!: HTMLInputElement;\n\n /**\n * The trigger button.\n */\n @query(`.${prefix}--list-box__field`)\n private _triggerNode!: HTMLElement;\n\n protected _selectionShouldChange(itemToSelect?: CDSMultiSelectItem) {\n // If we are selecting an item, assumes we always toggle\n return Boolean(this.value || itemToSelect);\n }\n\n protected _selectionDidChange(itemToSelect?: CDSMultiSelectItem) {\n if (itemToSelect) {\n itemToSelect.selected = !itemToSelect.selected;\n this._assistiveStatusText = itemToSelect.selected\n ? this.selectedItemAssistiveText\n : this.unselectedItemAssistiveText;\n } else {\n forEach(\n this.querySelectorAll(\n (this.constructor as typeof CDSMultiSelect).selectorItemSelected\n ),\n (item) => {\n (item as CDSMultiSelectItem).selected = false;\n }\n );\n this._handleUserInitiatedToggle(false);\n this._assistiveStatusText = this.unselectedAllAssistiveText;\n }\n // Change in `.selected` hasn't been reflected to the corresponding attribute yet\n this.value = filter(\n this.querySelectorAll(\n (this.constructor as typeof CDSMultiSelect).selectorItem\n ),\n (item) => (item as CDSMultiSelectItem).selected\n )\n .map((item) => (item as CDSMultiSelectItem).value)\n .join(',');\n }\n\n protected _handleClickInner(event: MouseEvent) {\n if (this._selectionButtonNode?.contains(event.target as Node)) {\n this._handleUserInitiatedSelectItem();\n if (this.filterable) {\n this._filterInputNode.focus();\n } else {\n this._triggerNode.focus();\n }\n } else if (this._clearButtonNode?.contains(event.target as Node)) {\n this._handleUserInitiatedClearInput();\n } else {\n const shouldIgnoreClickInner = (elem) =>\n elem.closest &&\n elem.closest(\n (this.constructor as typeof CDSMultiSelect).selectorIgnoreClickInner\n );\n if (!event.composedPath().some(shouldIgnoreClickInner)) {\n super._handleClickInner(event);\n }\n if (this.filterable) this._filterInputNode.focus();\n }\n }\n\n /**\n * Handler for the `keypress` event, ensures filter still works upon entering space\n */\n protected _handleKeypressInner(event: KeyboardEvent) {\n const { key } = event;\n const action = (this.constructor as typeof CDSDropdown).getAction(key);\n const { TRIGGERING } = DROPDOWN_KEYBOARD_ACTION;\n\n if (\n this._clearButtonNode?.contains(event.target as Node) &&\n // Space key should be handled by `<input>` unless \"clear selection\" button has focus\n (action === TRIGGERING || key === ' ')\n ) {\n this._handleUserInitiatedClearInput();\n } else if (this._selectionButtonNode?.contains(event.target as Node)) {\n this._handleUserInitiatedSelectItem();\n this.open = true;\n if (this.filterable) {\n this._filterInputNode.focus();\n } else {\n this._triggerNode.focus();\n }\n } else if (this.filterable) {\n this._handleKeypressInnerFlterable(event);\n } else {\n super._handleKeypressInner(event);\n }\n }\n\n /**\n * Special andler for the `keypress` event, ensures space selection for filterable\n * variation is disabled\n */\n\n protected _handleKeypressInnerFlterable(event: KeyboardEvent) {\n const { key } = event;\n const action = (this.constructor as typeof CDSDropdown).getAction(key);\n if (!this.open) {\n switch (action) {\n case DROPDOWN_KEYBOARD_ACTION.TRIGGERING:\n this._handleUserInitiatedToggle(true);\n break;\n default:\n break;\n }\n } else {\n switch (key) {\n case 'Enter':\n {\n const constructor = this.constructor as typeof CDSDropdown;\n const highlightedItem = this.querySelector(\n constructor.selectorItemHighlighted\n ) as CDSMultiSelectItem;\n if (highlightedItem) {\n this._handleUserInitiatedSelectItem(highlightedItem);\n } else {\n this._handleUserInitiatedToggle(false);\n }\n }\n break;\n default:\n break;\n }\n }\n }\n\n protected _renderPrecedingTriggerContent() {\n const { clearSelectionLabel, _selectedItemsCount: selectedItemsCount } =\n this;\n return selectedItemsCount === 0\n ? undefined\n : html`\n <div\n id=\"selection-button\"\n role=\"button\"\n class=\"${prefix}--list-box__selection ${prefix}--list-box__selection--multi ${prefix}--tag--filter\"\n tabindex=\"0\"\n title=\"${clearSelectionLabel}\">\n ${selectedItemsCount}\n ${Close16({ 'aria-label': clearSelectionLabel })}\n </div>\n `;\n }\n\n /**\n @returns The main content of the trigger button.\n */\n protected _renderLabel(): TemplateResult {\n const { label, _selectedItemContent: selectedItemContent } = this;\n return !this.filterable\n ? html`\n <span id=\"trigger-label\" class=\"${prefix}--list-box__label\"\n >${selectedItemContent || label}</span\n >\n `\n : html`\n <input\n id=\"trigger-label\"\n class=\"${prefix}--text-input\"\n placeholder=\"${label}\"\n role=\"combobox\"\n aria-controls=\"menu-body\"\n aria-autocomplete=\"list\"\n @input=\"${this._handleInput}\" />\n `;\n }\n\n protected _renderFollowingLabel(): TemplateResult | void {\n const { clearSelectionLabel, _filterInputNode: filterInputNode } = this;\n return filterInputNode &&\n filterInputNode.value.length > 0 &&\n this.filterable\n ? html`\n <div\n id=\"clear-button\"\n role=\"button\"\n class=\"${prefix}--list-box__selection\"\n tabindex=\"0\"\n title=\"${clearSelectionLabel}\">\n ${Close16({ 'aria-label': clearSelectionLabel })}\n </div>\n `\n : undefined;\n }\n\n /**\n * Handles `input` event on the `<input>` for filtering.\n */\n protected _handleInput() {\n const items = this.querySelectorAll(\n (this.constructor as typeof CDSMultiSelect).selectorItem\n );\n const inputValue = this._filterInputNode.value.toLocaleLowerCase();\n\n if (!this.open) this.open = true;\n\n forEach(items, (item) => {\n const itemValue = (item as HTMLElement).innerText.toLocaleLowerCase();\n\n if (!itemValue.includes(inputValue)) {\n (item as CDSMultiSelectItem).setAttribute('filtered', '');\n (item as CDSMultiSelectItem).removeAttribute('highlighted');\n } else {\n (item as CDSMultiSelectItem).removeAttribute('filtered');\n }\n });\n\n this.requestUpdate();\n }\n\n /**\n * Navigate through dropdown items.\n *\n * @param direction `-1` to navigate backward, `1` to navigate forward.\n */\n protected _navigate(direction: number) {\n if (!this.filterable) {\n this._triggerNode.focus();\n super._navigate(direction);\n } else {\n // only navigate through remaining item\n const constructor = this.constructor as typeof CDSMultiSelect;\n const items = this.querySelectorAll(constructor.selectorItemResults);\n const highlightedItem = this.querySelector(\n constructor.selectorItemHighlighted\n );\n const highlightedIndex = indexOf(items, highlightedItem!);\n\n let nextIndex = highlightedIndex + direction;\n if (nextIndex < 0) {\n nextIndex = items.length - 1;\n }\n if (nextIndex >= items.length) {\n nextIndex = 0;\n }\n forEach(items, (item, i) => {\n (item as CDSMultiSelectItem).highlighted = i === nextIndex;\n });\n }\n }\n\n /**\n * Handles user-initiated clearing the `<input>` for filtering.\n */\n protected _handleUserInitiatedClearInput() {\n const constructor = this.constructor as typeof CDSMultiSelect;\n const items = this.querySelectorAll(constructor.selectorItemFiltered);\n this._filterInputNode.value = '';\n this.open = true;\n this._filterInputNode.focus();\n forEach(items, (item) => {\n (item as CDSMultiSelectItem).removeAttribute('filtered');\n });\n }\n\n /**\n * The `aria-label` attribute for the icon to clear selection.\n */\n @property({ attribute: 'clear-selection-label' })\n clearSelectionLabel = '';\n\n /**\n * An assistive text for screen reader to announce, telling that an item is unselected.\n */\n @property({ attribute: 'unselected-item-assistive-text' })\n unselectedItemAssistiveText = 'Unselected an item.';\n\n /**\n * An assistive text for screen reader to announce, telling that all items are unselected.\n */\n @property({ attribute: 'unselected-all-assistive-text' })\n unselectedAllAssistiveText = 'Unselected all items.';\n\n shouldUpdate(changedProperties) {\n const { selectorItem } = this.constructor as typeof CDSMultiSelect;\n if (changedProperties.has('size')) {\n forEach(this.querySelectorAll(selectorItem), (elem) => {\n (elem as CDSMultiSelectItem).size = this.size;\n });\n }\n if (changedProperties.has('value')) {\n const { value } = this;\n const values = !value ? [] : value.split(',');\n // Updates selection beforehand because our rendering logic for `<cds-multi-select>` looks for selected items via `qSA()`\n const items = this.querySelectorAll(selectorItem);\n forEach(items, (elem) => {\n (elem as CDSMultiSelectItem).selected =\n values.indexOf((elem as CDSMultiSelectItem).value) >= 0;\n });\n this._selectedItemsCount = filter(\n items,\n (elem) => values.indexOf((elem as CDSMultiSelectItem).value) >= 0\n ).length;\n }\n return true;\n }\n\n /**\n * A selector to ignore the `click` events from.\n * Primary for the checkbox label where the `click` event will happen from the associated check box.\n */\n private static get selectorIgnoreClickInner() {\n return `.${prefix}--checkbox-label`;\n }\n\n /**\n * A selector that will return highlighted items.\n */\n static get selectorItemHighlighted() {\n return `${prefix}-multi-select-item[highlighted]`;\n }\n\n /**\n * A selector that will return multi select items.\n * We use a separate property from `.itemTagName` due to the nature in difference of tag name vs. selector.\n */\n static get selectorItem() {\n return `${prefix}-multi-select-item`;\n }\n\n /**\n * A selector that will return remaining items after a filter.\n */\n static get selectorItemFiltered() {\n return `${prefix}-multi-select-item[filtered]`;\n }\n\n /**\n * A selector that will return remaining items after a filter.\n */\n static get selectorItemResults() {\n return `${prefix}-multi-select-item:not([filtered])`;\n }\n\n /**\n * A selector that will return selected items.\n */\n static get selectorItemSelected() {\n return `${prefix}-multi-select-item[selected]`;\n }\n\n /**\n * The name of the custom event fired before this multi select item is being toggled upon a user gesture.\n * Cancellation of this event stops the user-initiated action of toggling this multi select item.\n */\n static get eventBeforeToggle() {\n return `${prefix}-multi-select-beingtoggled`;\n }\n\n /**\n * The name of the custom event fired after this multi select item is toggled upon a user gesture.\n */\n static get eventToggle() {\n return `${prefix}-multi-select-toggled`;\n }\n\n /**\n * The name of the custom event fired before a multi select item is selected upon a user gesture.\n * Cancellation of this event stops changing the user-initiated selection.\n */\n static get eventBeforeSelect() {\n return `${prefix}-multi-select-beingselected`;\n }\n\n /**\n * The name of the custom event fired after a a multi select item is selected upon a user gesture.\n */\n static get eventSelect() {\n return `${prefix}-multi-select-selected`;\n }\n\n static styles = styles;\n}\n\nexport default CDSMultiSelect;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"multi-select.js","names":["html","property","customElement","query","classMap","Close16","prefix","filter","forEach","indexOf","CDSDropdown","DROPDOWN_KEYBOARD_ACTION","DROPDOWN_TYPE","SELECTION_FEEDBACK_OPTION","styles","DROPDOWN_SIZE","DROPDOWN_DIRECTION","CDSMultiSelect","_decorate","_initialize","_CDSDropdown","constructor","args","F","d","kind","decorators","type","Boolean","key","value","_selectionShouldChange","itemToSelect","_selectionDidChange","selected","_assistiveStatusText","selectedItemAssistiveText","unselectedItemAssistiveText","querySelectorAll","selectorItemSelected","item","_handleUserInitiatedToggle","unselectedAllAssistiveText","selectorItem","map","join","_handleClickInner","event","_this$_selectionButto","_this$_clearButtonNod","_selectionButtonNode","contains","target","readOnly","_handleUserInitiatedSelectItem","filterable","_filterInputNode","focus","_triggerNode","_clearButtonNode","_handleUserInitiatedClearInput","_get","_getPrototypeOf","prototype","call","_handleKeypressInner","_this$_clearButtonNod2","_this$_selectionButto2","action","getAction","TRIGGERING","open","_handleKeypressInnerFlterable","highlightedItem","querySelector","selectorItemHighlighted","_renderTitleLabel","clearSelectionDescription","clearSelectionText","disabled","hideLabel","titleText","_selectedItemsCount","selectedItemsCount","_slotTitleTextNode","slotTitleTextNode","_handleSlotchangeLabelText","handleSlotchangeLabelText","labelClasses","hasTitleText","assignedNodes","length","_t","_","_t2","_renderPrecedingLabel","clearSelectionLabel","selectionButtonClasses","undefined","_t3","class","_renderLabel","label","_selectedItemContent","selectedItemContent","_t4","_t5","_handleInput","_renderFollowingLabel","filterInputNode","_t6","items","inputValue","toLocaleLowerCase","itemValue","innerText","includes","setAttribute","removeAttribute","requestUpdate","_navigate","direction","selectorItemResults","highlightedIndex","nextIndex","i","highlighted","selectorItemFiltered","attribute","TOP_AFTER_REOPEN","_classes","size","invalid","warn","inline","INLINE","itemA","itemB","locale","localeCompare","numeric","menuItems","values","compareItems","menuItemsArray","Array","from","sortedArray","sort","hasItemA","hasItemB","shouldUpdate","changedProperties","split","has","elem","selectionFeedback","TOP","sortedMenuItems","sortItems","replaceChildren","updated","_menuBodyNode","connectedCallback","static","selectorMenuBody","eventBeforeToggle","eventToggle","eventBeforeSelect","eventSelect"],"sources":["components/multi-select/multi-select.ts"],"sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2020, 2023\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { html, TemplateResult } from 'lit';\nimport { property, customElement, query } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport Close16 from '@carbon/icons/lib/close/16';\nimport { prefix } from '../../globals/settings';\nimport {\n filter,\n forEach,\n indexOf,\n} from '../../globals/internal/collection-helpers';\nimport CDSDropdown, {\n DROPDOWN_KEYBOARD_ACTION,\n DROPDOWN_TYPE,\n} from '../dropdown/dropdown';\nimport { SELECTION_FEEDBACK_OPTION } from './defs';\nimport CDSMultiSelectItem from './multi-select-item';\nimport styles from './multi-select.scss';\n\nexport {\n DROPDOWN_SIZE,\n DROPDOWN_TYPE,\n DROPDOWN_DIRECTION,\n} from '../dropdown/dropdown';\n\nexport { SELECTION_FEEDBACK_OPTION };\n\n/**\n * Multi select.\n *\n * @element cds-multi-select\n * @fires cds-multi-select-beingselected\n * The custom event fired before a multi select item is selected upon a user gesture.\n * Cancellation of this event stops changing the user-initiated selection.\n * @fires cds-multi-select-selected - The custom event fired after a multi select item is selected upon a user gesture.\n * @fires cds-multi-select-beingtoggled\n * The custom event fired before the open state of this multi select is toggled upon a user gesture.\n * Cancellation of this event stops the user-initiated toggling.\n * @fires cds-multi-select-toggled\n * The custom event fired after the open state of this multi select is toggled upon a user gesture.\n */\n@customElement(`${prefix}-multi-select`)\nclass CDSMultiSelect extends CDSDropdown {\n @property({ type: Boolean })\n filterable;\n\n /**\n * The count of selected items.\n */\n private _selectedItemsCount = 0;\n\n /**\n * The clear button.\n */\n @query('#clear-button')\n private _clearButtonNode!: HTMLElement;\n\n /**\n * The selection button.\n */\n @query('#selection-button')\n private _selectionButtonNode!: HTMLElement;\n\n /**\n * The menu body.\n */\n @query('#menu-body')\n private _menuBodyNode!: HTMLElement;\n\n /**\n * The `<input>` for filtering.\n */\n @query('input')\n private _filterInputNode!: HTMLInputElement;\n\n /**\n * The trigger button.\n */\n @query(`.${prefix}--list-box__field`)\n private _triggerNode!: HTMLElement;\n\n protected _selectionShouldChange(itemToSelect?: CDSMultiSelectItem) {\n // If we are selecting an item, assumes we always toggle\n return Boolean(this.value || itemToSelect);\n }\n\n protected _selectionDidChange(itemToSelect?: CDSMultiSelectItem) {\n if (itemToSelect) {\n itemToSelect.selected = !itemToSelect.selected;\n this._assistiveStatusText = itemToSelect.selected\n ? this.selectedItemAssistiveText\n : this.unselectedItemAssistiveText;\n } else {\n forEach(\n this.querySelectorAll(\n (this.constructor as typeof CDSMultiSelect).selectorItemSelected\n ),\n (item) => {\n (item as CDSMultiSelectItem).selected = false;\n }\n );\n this._handleUserInitiatedToggle(false);\n this._assistiveStatusText = this.unselectedAllAssistiveText;\n }\n // Change in `.selected` hasn't been reflected to the corresponding attribute yet\n this.value = filter(\n this.querySelectorAll(\n (this.constructor as typeof CDSMultiSelect).selectorItem\n ),\n (item) => (item as CDSMultiSelectItem).selected\n )\n .map((item) => (item as CDSMultiSelectItem).value)\n .join(',');\n }\n\n protected _handleClickInner(event: MouseEvent) {\n if (\n this._selectionButtonNode?.contains(event.target as Node) &&\n !this.readOnly\n ) {\n this._handleUserInitiatedSelectItem();\n if (this.filterable) {\n this._filterInputNode.focus();\n } else {\n this._triggerNode.focus();\n }\n } else if (this._clearButtonNode?.contains(event.target as Node)) {\n this._handleUserInitiatedClearInput();\n } else {\n super._handleClickInner(event);\n if (this.filterable) this._filterInputNode.focus();\n }\n }\n\n /**\n * Handler for the `keypress` event, ensures filter still works upon entering space\n */\n protected _handleKeypressInner(event: KeyboardEvent) {\n const { key } = event;\n const action = (this.constructor as typeof CDSDropdown).getAction(key);\n const { TRIGGERING } = DROPDOWN_KEYBOARD_ACTION;\n\n if (\n this._clearButtonNode?.contains(event.target as Node) &&\n // Space key should be handled by `<input>` unless \"clear selection\" button has focus\n (action === TRIGGERING || key === ' ')\n ) {\n this._handleUserInitiatedClearInput();\n } else if (this._selectionButtonNode?.contains(event.target as Node)) {\n this._handleUserInitiatedSelectItem();\n this.open = true;\n if (this.filterable) {\n this._filterInputNode.focus();\n } else {\n this._triggerNode.focus();\n }\n } else if (this.filterable) {\n this._handleKeypressInnerFlterable(event);\n } else {\n super._handleKeypressInner(event);\n }\n }\n\n /**\n * Special andler for the `keypress` event, ensures space selection for filterable\n * variation is disabled\n */\n\n protected _handleKeypressInnerFlterable(event: KeyboardEvent) {\n const { key } = event;\n const action = (this.constructor as typeof CDSDropdown).getAction(key);\n if (!this.open) {\n switch (action) {\n case DROPDOWN_KEYBOARD_ACTION.TRIGGERING:\n this._handleUserInitiatedToggle(true);\n break;\n default:\n break;\n }\n } else {\n switch (key) {\n case 'Enter':\n {\n const constructor = this.constructor as typeof CDSDropdown;\n const highlightedItem = this.querySelector(\n constructor.selectorItemHighlighted\n ) as CDSMultiSelectItem;\n if (highlightedItem) {\n this._handleUserInitiatedSelectItem(highlightedItem);\n } else {\n this._handleUserInitiatedToggle(false);\n }\n }\n break;\n default:\n break;\n }\n }\n }\n\n protected _renderTitleLabel() {\n const {\n clearSelectionDescription,\n clearSelectionText,\n disabled,\n hideLabel,\n titleText,\n _selectedItemsCount: selectedItemsCount,\n _slotTitleTextNode: slotTitleTextNode,\n _handleSlotchangeLabelText: handleSlotchangeLabelText,\n } = this;\n\n const labelClasses = classMap({\n [`${prefix}--label`]: true,\n [`${prefix}--label--disabled`]: disabled,\n [`${prefix}--visually-hidden`]: hideLabel,\n });\n\n const hasTitleText =\n titleText ||\n (slotTitleTextNode && slotTitleTextNode.assignedNodes().length > 0);\n\n return html`\n <label\n part=\"title-text\"\n class=\"${labelClasses}\"\n ?hidden=\"${!hasTitleText}\">\n <slot name=\"title-text\" @slotchange=\"${handleSlotchangeLabelText}\"\n >${titleText}</slot\n >\n ${selectedItemsCount > 0\n ? html`\n <span class=\"${prefix}--visually-hidden\">\n ${clearSelectionDescription} ${selectedItemsCount},\n ${clearSelectionText}\n </span>\n `\n : null}\n </label>\n `;\n }\n\n protected _renderPrecedingLabel() {\n const {\n disabled,\n readOnly,\n clearSelectionLabel,\n _selectedItemsCount: selectedItemsCount,\n } = this;\n\n const selectionButtonClasses = classMap({\n [`${prefix}--list-box__selection`]: true,\n [`${prefix}--list-box__selection--multi`]: true,\n [`${prefix}--tag`]: true,\n [`${prefix}--tag--filter`]: true,\n [`${prefix}--tag--high-contrast`]: true,\n [`${prefix}--tag--disabled`]: disabled,\n });\n return selectedItemsCount === 0\n ? undefined\n : html`\n <div\n id=\"selection-button\"\n role=\"button\"\n class=\"${selectionButtonClasses}\"\n tabindex=\"-1\"\n aria-disabled=${readOnly}\n title=\"${clearSelectionLabel}\">\n ${selectedItemsCount}\n ${Close16({\n 'aria-label': clearSelectionLabel,\n class: `${prefix}--tag__close-icon`,\n })}\n </div>\n `;\n }\n\n /**\n @returns The main content of the trigger button.\n */\n protected _renderLabel(): TemplateResult {\n const { label, _selectedItemContent: selectedItemContent } = this;\n return !this.filterable\n ? html`\n <span id=\"trigger-label\" class=\"${prefix}--list-box__label\"\n >${selectedItemContent || label}</span\n >\n `\n : html`\n <input\n id=\"trigger-label\"\n class=\"${prefix}--text-input\"\n placeholder=\"${label}\"\n role=\"combobox\"\n aria-controls=\"menu-body\"\n aria-autocomplete=\"list\"\n @input=\"${this._handleInput}\" />\n `;\n }\n\n protected _renderFollowingLabel(): TemplateResult | void {\n const { clearSelectionLabel, _filterInputNode: filterInputNode } = this;\n return filterInputNode &&\n filterInputNode.value.length > 0 &&\n this.filterable\n ? html`\n <div\n id=\"clear-button\"\n role=\"button\"\n class=\"${prefix}--list-box__selection\"\n tabindex=\"0\"\n title=\"${clearSelectionLabel}\">\n ${Close16({ 'aria-label': clearSelectionLabel })}\n </div>\n `\n : undefined;\n }\n\n /**\n * Handles `input` event on the `<input>` for filtering.\n */\n protected _handleInput() {\n const items = this.querySelectorAll(\n (this.constructor as typeof CDSMultiSelect).selectorItem\n );\n const inputValue = this._filterInputNode.value.toLocaleLowerCase();\n\n if (!this.open) this.open = true;\n\n forEach(items, (item) => {\n const itemValue = (item as HTMLElement).innerText.toLocaleLowerCase();\n\n if (!itemValue.includes(inputValue)) {\n (item as CDSMultiSelectItem).setAttribute('filtered', '');\n (item as CDSMultiSelectItem).removeAttribute('highlighted');\n } else {\n (item as CDSMultiSelectItem).removeAttribute('filtered');\n }\n });\n\n this.requestUpdate();\n }\n\n /**\n * Navigate through dropdown items.\n *\n * @param direction `-1` to navigate backward, `1` to navigate forward.\n */\n protected _navigate(direction: number) {\n if (!this.filterable) {\n super._navigate(direction);\n } else {\n // only navigate through remaining item\n const constructor = this.constructor as typeof CDSMultiSelect;\n const items = this.querySelectorAll(constructor.selectorItemResults);\n const highlightedItem = this.querySelector(\n constructor.selectorItemHighlighted\n );\n const highlightedIndex = indexOf(items, highlightedItem!);\n\n let nextIndex = highlightedIndex + direction;\n if (nextIndex < 0) {\n nextIndex = items.length - 1;\n }\n if (nextIndex >= items.length) {\n nextIndex = 0;\n }\n forEach(items, (item, i) => {\n (item as CDSMultiSelectItem).highlighted = i === nextIndex;\n });\n }\n }\n\n /**\n * Handles user-initiated clearing the `<input>` for filtering.\n */\n protected _handleUserInitiatedClearInput() {\n const constructor = this.constructor as typeof CDSMultiSelect;\n const items = this.querySelectorAll(constructor.selectorItemFiltered);\n this._filterInputNode.value = '';\n this.open = true;\n this._filterInputNode.focus();\n forEach(items, (item) => {\n (item as CDSMultiSelectItem).removeAttribute('filtered');\n });\n }\n\n /**\n * The `aria-label` attribute for the icon to clear selection.\n */\n @property({ attribute: 'clear-selection-label' })\n clearSelectionLabel = '';\n\n /**\n * Specify the text that should be read for screen readers that describes total items selected\n */\n @property({ attribute: 'clear-selection-description' })\n clearSelectionDescription = 'Total items selected: ';\n\n /**\n * Specify the text that should be read for screen readers to clear selection.\n */\n @property({ attribute: 'clear-selection-text' })\n clearSelectionText = 'To clear selection, press Delete or Backspace.';\n\n /**\n * Specify the locale of the control. Used for the default compareItems used for sorting the list of items in the control.\n */\n @property()\n locale = 'en';\n\n /**\n * An assistive text for screen reader to announce, telling that an item is unselected.\n */\n @property({ attribute: 'unselected-item-assistive-text' })\n unselectedItemAssistiveText = 'Unselected an item.';\n\n /**\n * An assistive text for screen reader to announce, telling that all items are unselected.\n */\n @property({ attribute: 'unselected-all-assistive-text' })\n unselectedAllAssistiveText = 'Unselected all items.';\n\n /**\n * Specify feedback (mode) of the selection.\n * `top`: selected item jumps to top\n * `fixed`: selected item stays at it's position\n * `top-after-reopen`: selected item jump to top after reopen dropdown\n */\n @property({ attribute: 'selection-feedback' })\n selectionFeedback = SELECTION_FEEDBACK_OPTION.TOP_AFTER_REOPEN;\n\n /**\n * The CSS class list for multi-select listbox\n */\n protected get _classes() {\n const {\n disabled,\n size,\n type,\n invalid,\n readOnly,\n open,\n warn,\n _selectedItemsCount: selectedItemsCount,\n } = this;\n const inline = type === DROPDOWN_TYPE.INLINE;\n\n return classMap({\n [`${prefix}--multi-select`]: true,\n [`${prefix}--list-box`]: true,\n [`${prefix}--list-box--disabled`]: disabled,\n [`${prefix}--list-box--inline`]: inline,\n [`${prefix}--list-box--expanded`]: open,\n [`${prefix}--list-box--${size}`]: size,\n [`${prefix}--multi-select--invalid`]: invalid,\n [`${prefix}--multi-select--warn`]: warn,\n [`${prefix}--multi-select--inline`]: inline,\n [`${prefix}--list-box--inline`]: inline,\n [`${prefix}--multi-select--readonly`]: readOnly,\n [`${prefix}--multi-select--selected`]: selectedItemsCount > 0,\n });\n }\n\n protected compareItems = (itemA, itemB, { locale }) => {\n itemA.localeCompare(itemB, locale, { numeric: true });\n };\n\n protected sortItems = (\n menuItems: NodeList,\n { values, compareItems, locale = 'en' }\n ) => {\n const menuItemsArray = Array.from(menuItems);\n\n const sortedArray = menuItemsArray.sort((itemA, itemB) => {\n const hasItemA = values.includes((itemA as HTMLInputElement).value);\n const hasItemB = values.includes((itemB as HTMLInputElement).value);\n\n // Prefer whichever item is in the `value` array first\n if (hasItemA && !hasItemB) {\n return -1;\n }\n\n if (hasItemB && !hasItemA) {\n return 1;\n }\n\n return compareItems(\n (itemA as HTMLInputElement).value,\n (itemB as HTMLInputElement).value,\n {\n locale,\n }\n );\n });\n\n return sortedArray;\n };\n\n shouldUpdate(changedProperties) {\n const { selectorItem } = this.constructor as typeof CDSMultiSelect;\n const items = this.querySelectorAll(selectorItem);\n\n const { value, locale } = this;\n const values = !value ? [] : value.split(',');\n\n if (changedProperties.has('size')) {\n forEach(this.querySelectorAll(selectorItem), (elem) => {\n (elem as CDSMultiSelectItem).size = this.size;\n });\n }\n if (changedProperties.has('value')) {\n // Updates selection beforehand because our rendering logic for `<cds-multi-select>` looks for selected items via `qSA()`\n forEach(items, (elem) => {\n (elem as CDSMultiSelectItem).selected =\n values.indexOf((elem as CDSMultiSelectItem).value) >= 0;\n });\n this._selectedItemsCount = filter(\n items,\n (elem) => values.indexOf((elem as CDSMultiSelectItem).value) >= 0\n ).length;\n\n if (this.selectionFeedback === SELECTION_FEEDBACK_OPTION.TOP) {\n const sortedMenuItems = this.sortItems(items, {\n values,\n compareItems: this.compareItems,\n locale,\n });\n\n this.replaceChildren(...sortedMenuItems);\n }\n }\n if (changedProperties.has('open')) {\n if (\n this.selectionFeedback === SELECTION_FEEDBACK_OPTION.TOP_AFTER_REOPEN\n ) {\n const sortedMenuItems = this.sortItems(items, {\n values,\n compareItems: this.compareItems,\n locale,\n });\n\n this.replaceChildren(...sortedMenuItems);\n }\n }\n return true;\n }\n\n updated(changedProperties) {\n if (changedProperties.has('open') && this.open && !this.filterable) {\n // move focus to menu body when open for non-filterable mulit-select\n this._menuBodyNode.focus();\n }\n }\n\n connectedCallback() {\n super.connectedCallback();\n /**\n * Detect if multi-select already has initially selected items\n */\n this.value = filter(\n this.querySelectorAll(\n (this.constructor as typeof CDSMultiSelect).selectorItem\n ),\n (item) => (item as CDSMultiSelectItem).selected\n )\n .map((item) => (item as CDSMultiSelectItem).value)\n .join(',');\n }\n\n /**\n * A selector that will return menu body.\n */\n static get selectorMenuBody() {\n return `div[part=\"menu-body\"]`;\n }\n\n /**\n * A selector that will return highlighted items.\n */\n static get selectorItemHighlighted() {\n return `${prefix}-multi-select-item[highlighted]`;\n }\n\n /**\n * A selector that will return multi select items.\n * We use a separate property from `.itemTagName` due to the nature in difference of tag name vs. selector.\n */\n static get selectorItem() {\n return `${prefix}-multi-select-item`;\n }\n\n /**\n * A selector that will return remaining items after a filter.\n */\n static get selectorItemFiltered() {\n return `${prefix}-multi-select-item[filtered]`;\n }\n\n /**\n * A selector that will return remaining items after a filter.\n */\n static get selectorItemResults() {\n return `${prefix}-multi-select-item:not([filtered])`;\n }\n\n /**\n * A selector that will return selected items.\n */\n static get selectorItemSelected() {\n return `${prefix}-multi-select-item[selected]`;\n }\n\n /**\n * The name of the custom event fired before this multi select item is being toggled upon a user gesture.\n * Cancellation of this event stops the user-initiated action of toggling this multi select item.\n */\n static get eventBeforeToggle() {\n return `${prefix}-multi-select-beingtoggled`;\n }\n\n /**\n * The name of the custom event fired after this multi select item is toggled upon a user gesture.\n */\n static get eventToggle() {\n return `${prefix}-multi-select-toggled`;\n }\n\n /**\n * The name of the custom event fired before a multi select item is selected upon a user gesture.\n * Cancellation of this event stops changing the user-initiated selection.\n */\n static get eventBeforeSelect() {\n return `${prefix}-multi-select-beingselected`;\n }\n\n /**\n * The name of the custom event fired after a a multi select item is selected upon a user gesture.\n */\n static get eventSelect() {\n return `${prefix}-multi-select-selected`;\n }\n\n static styles = styles;\n}\n\nexport default CDSMultiSelect;\n"],"mappings":"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"}
|