@carbon/web-components 2.11.1 → 2.12.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/dist/16-486ace1a.js +1 -1
- package/dist/16-51a594ce.js +1 -1
- package/dist/16-656090c0.js +1 -1
- package/dist/16-71872213.js +1 -1
- package/dist/16-730a41a2.js +1 -1
- package/dist/16-83a1cd89.js +1 -1
- package/dist/16-b73c677b.js +1 -1
- package/dist/16-d1c73001.js +1 -1
- package/dist/20-d069d8da.js +1 -1
- package/dist/accordion.min.js +8 -14
- package/dist/ai-skeleton.min.js +1 -1
- package/dist/breadcrumb.min.js +4 -4
- package/dist/button-21c75bab.js +1 -1
- package/dist/{button-set-69863a24.js → button-set-984abad1.js} +2 -2
- package/dist/button-skeleton-1abc1fd8.js +1 -1
- package/dist/button.min.js +2 -2
- package/dist/carbon-element-4ca9803f.js +1 -1
- package/dist/chat-button.min.js +1 -1
- package/dist/checkbox-dc5fcaff.js +109 -0
- package/dist/checkbox.min.js +4 -4
- package/dist/class-map-5edb95da.js +1 -1
- package/dist/code-snippet.min.js +3 -3
- package/dist/collection-helpers-4e32fe16.js +1 -1
- package/dist/combo-box.min.js +3 -3
- package/dist/{content-switcher-item-5b8dd42f.js → content-switcher-item-62392ba8.js} +1 -1
- package/dist/content-switcher.min.js +2 -2
- package/dist/{copy-button-d673538b.js → copy-button-8ae404e7.js} +3 -3
- package/dist/copy-button.min.js +2 -2
- package/dist/data-table.min.js +9 -9
- package/dist/date-picker.min.js +6 -6
- package/dist/defineProperty-e448b551.js +1 -1
- package/dist/directive-e2d48b9c.js +1 -1
- package/dist/dropdown-item-8284b402.js +148 -0
- package/dist/dropdown.min.js +2 -2
- package/dist/file-uploader.min.js +2 -2
- package/dist/{floating-menu-46199beb.js → floating-menu-4fdda50e.js} +1 -1
- package/dist/floating-menu.min.js +2 -2
- package/dist/focus-e70d1cbe.js +1 -1
- package/dist/form-group.min.js +3 -3
- package/dist/form.min.js +2 -2
- package/dist/get-52a048b1.js +1 -1
- package/dist/host-listener-b6a3d690.js +1 -1
- package/dist/{icon-button-09275c70.js → icon-button-9889b58b.js} +4 -4
- package/dist/icon-button.min.js +2 -2
- package/dist/if-defined-2e09d22b.js +1 -1
- package/dist/if-non-empty-20ce3c96.js +1 -1
- package/dist/inline-loading.min.js +5 -5
- package/dist/{layer-5f257c4a.js → layer-ee2a047c.js} +1 -1
- package/dist/layer.min.js +2 -2
- package/dist/{link-dc6f9b4e.js → link-c2b4e683.js} +1 -1
- package/dist/link.min.js +2 -2
- package/dist/list.min.js +4 -4
- package/dist/loading-2604f4ad.js +1 -1
- package/dist/loading-icon-85b7e502.js +1 -1
- package/dist/loading.min.js +1 -1
- package/dist/{modal-label-d53c98de.js → modal-label-9ee331a4.js} +1 -1
- package/dist/modal.min.js +2 -2
- package/dist/multi-select.min.js +4 -4
- package/dist/notification.min.js +5 -5
- package/dist/number-input.min.js +4 -4
- package/dist/objectSpread2-46e4de7a.js +1 -1
- package/dist/on-6c264d49.js +1 -1
- package/dist/overflow-menu.min.js +5 -5
- package/dist/pagination.min.js +5 -5
- package/dist/{popover-content-08cf10b0.js → popover-content-d6f3bde5.js} +2 -2
- package/dist/popover-controller-486f0f75.js +73 -0
- package/dist/popover.min.js +2 -2
- package/dist/progress-bar.min.js +1 -1
- package/dist/progress-indicator.min.js +3 -3
- package/dist/query-5f833318.js +1 -1
- package/dist/query-assigned-elements-73bd2544.js +1 -1
- package/dist/radio-button.min.js +2 -2
- package/dist/radio-group-manager-de7f9ab3.js +1 -1
- package/dist/search-09497355.js +102 -0
- package/dist/search.min.js +2 -2
- package/dist/select-95272984.js +141 -0
- package/dist/select.min.js +3 -71
- package/dist/settings-97cd1c3a.js +1 -1
- package/dist/shared-enums-c6fe8c39.js +1 -1
- package/dist/side-panel.min.js +11 -11
- package/dist/skeleton-icon-bfc7d5c8.js +1 -1
- package/dist/skeleton-icon.min.js +1 -1
- package/dist/skeleton-placeholder-403f26a3.js +1 -1
- package/dist/skeleton-placeholder.min.js +1 -1
- package/dist/skeleton-text-9d02604f.js +1 -1
- package/dist/skeleton-text.min.js +1 -1
- package/dist/skip-to-content.min.js +2 -2
- package/dist/slider.min.js +4 -4
- package/dist/slug.min.js +3 -3
- package/dist/spread-d515f3f1.js +1 -1
- package/dist/stack.min.js +1 -1
- package/dist/state-ddd29b9d.js +1 -1
- package/dist/structured-list.min.js +5 -5
- package/dist/tabs.min.js +5 -5
- package/dist/tag.min.js +5 -5
- package/dist/tearsheet.min.js +10 -10
- package/dist/text-input-5ebf4917.js +142 -0
- package/dist/text-input.min.js +2 -2
- package/dist/textarea.min.js +6 -6
- package/dist/tile.min.js +3 -3
- package/dist/toggle-tip.min.js +2 -2
- package/dist/toggle.min.js +2 -2
- package/dist/{toggletip-f95c53b0.js → toggletip-1ef069a9.js} +2 -2
- package/dist/{tooltip-content-d784ae2b.js → tooltip-content-a75c5632.js} +3 -3
- package/dist/tooltip.min.js +2 -2
- package/dist/ui-shell.min.js +14 -14
- package/dist/validity-d86ffa4f.js +1 -1
- package/es/components/accordion/accordion-item-skeleton.js.map +1 -1
- package/es/components/accordion/accordion-item.js +8 -7
- package/es/components/accordion/accordion-item.js.map +1 -1
- package/es/components/accordion/accordion-skeleton.d.ts +1 -1
- package/es/components/accordion/accordion-skeleton.js +5 -6
- package/es/components/accordion/accordion-skeleton.js.map +1 -1
- package/es/components/accordion/accordion.css.js +1 -1
- package/es/components/accordion/accordion.js +4 -3
- package/es/components/accordion/accordion.js.map +1 -1
- package/es/components/ai-skeleton/ai-skeleton-icon.js.map +1 -1
- package/es/components/ai-skeleton/ai-skeleton-placeholder.js.map +1 -1
- package/es/components/ai-skeleton/ai-skeleton-text.js.map +1 -1
- package/es/components/breadcrumb/breadcrumb-item.js +3 -2
- package/es/components/breadcrumb/breadcrumb-item.js.map +1 -1
- package/es/components/breadcrumb/breadcrumb-link.js +3 -2
- package/es/components/breadcrumb/breadcrumb-link.js.map +1 -1
- package/es/components/breadcrumb/breadcrumb-overflow-menu.js.map +1 -1
- package/es/components/breadcrumb/breadcrumb-skeleton.js.map +1 -1
- package/es/components/breadcrumb/breadcrumb.js +3 -2
- package/es/components/breadcrumb/breadcrumb.js.map +1 -1
- package/es/components/button/button-set-base.js +3 -2
- package/es/components/button/button-set-base.js.map +1 -1
- package/es/components/button/button-set.js +1 -1
- package/es/components/button/button-set.js.map +1 -1
- package/es/components/button/button-skeleton.js.map +1 -1
- package/es/components/button/button.js.map +1 -1
- package/es/components/chat-button/chat-button-skeleton.js.map +1 -1
- package/es/components/chat-button/chat-button.js.map +1 -1
- package/es/components/checkbox/checkbox-group.js +2 -2
- package/es/components/checkbox/checkbox-group.js.map +1 -1
- package/es/components/checkbox/checkbox-skeleton.js.map +1 -1
- package/es/components/checkbox/checkbox.css.js +1 -1
- package/es/components/checkbox/checkbox.js +2 -2
- package/es/components/checkbox/checkbox.js.map +1 -1
- package/es/components/code-snippet/code-snippet-skeleton.js.map +1 -1
- package/es/components/code-snippet/code-snippet.js +3 -2
- package/es/components/code-snippet/code-snippet.js.map +1 -1
- package/es/components/combo-box/combo-box.css.js +1 -1
- package/es/components/combo-box/combo-box.js +14 -13
- package/es/components/combo-box/combo-box.js.map +1 -1
- package/es/components/content-switcher/content-switcher-item.js.map +1 -1
- package/es/components/content-switcher/content-switcher.js +6 -6
- package/es/components/content-switcher/content-switcher.js.map +1 -1
- package/es/components/copy/copy.d.ts +1 -1
- package/es/components/copy/copy.js +5 -4
- package/es/components/copy/copy.js.map +1 -1
- package/es/components/copy-button/copy-button.d.ts +1 -1
- package/es/components/copy-button/copy-button.js +1 -1
- package/es/components/copy-button/copy-button.js.map +1 -1
- package/es/components/data-table/data-table.css.js +1 -1
- package/es/components/data-table/table-batch-actions.js +2 -2
- package/es/components/data-table/table-batch-actions.js.map +1 -1
- package/es/components/data-table/table-body.js +3 -2
- package/es/components/data-table/table-body.js.map +1 -1
- package/es/components/data-table/table-cell-content.js.map +1 -1
- package/es/components/data-table/table-cell.js +3 -2
- package/es/components/data-table/table-cell.js.map +1 -1
- package/es/components/data-table/table-expanded-row.js +1 -1
- package/es/components/data-table/table-expanded-row.js.map +1 -1
- package/es/components/data-table/table-head.js +3 -2
- package/es/components/data-table/table-head.js.map +1 -1
- package/es/components/data-table/table-header-cell.js +5 -4
- package/es/components/data-table/table-header-cell.js.map +1 -1
- package/es/components/data-table/table-header-description.js.map +1 -1
- package/es/components/data-table/table-header-row.js +1 -1
- package/es/components/data-table/table-header-row.js.map +1 -1
- package/es/components/data-table/table-header-title.js.map +1 -1
- package/es/components/data-table/table-row.js +12 -11
- package/es/components/data-table/table-row.js.map +1 -1
- package/es/components/data-table/table-skeleton.js +3 -2
- package/es/components/data-table/table-skeleton.js.map +1 -1
- package/es/components/data-table/table-toolbar-content.js.map +1 -1
- package/es/components/data-table/table-toolbar-search.js +5 -4
- package/es/components/data-table/table-toolbar-search.js.map +1 -1
- package/es/components/data-table/table-toolbar.js +4 -3
- package/es/components/data-table/table-toolbar.js.map +1 -1
- package/es/components/data-table/table.js +28 -27
- package/es/components/data-table/table.js.map +1 -1
- package/es/components/date-picker/date-picker-input-skeleton.js.map +1 -1
- package/es/components/date-picker/date-picker-input.js +2 -2
- package/es/components/date-picker/date-picker-input.js.map +1 -1
- package/es/components/date-picker/date-picker.css.js +1 -1
- package/es/components/date-picker/date-picker.js +20 -19
- package/es/components/date-picker/date-picker.js.map +1 -1
- package/es/components/dropdown/dropdown-item.js +3 -2
- package/es/components/dropdown/dropdown-item.js.map +1 -1
- package/es/components/dropdown/dropdown-skeleton.js.map +1 -1
- package/es/components/dropdown/dropdown.css.js +1 -1
- package/es/components/dropdown/dropdown.js +9 -9
- package/es/components/dropdown/dropdown.js.map +1 -1
- package/es/components/file-uploader/demo-file-uploader.js.map +1 -1
- package/es/components/file-uploader/file-uploader-button.js +2 -2
- package/es/components/file-uploader/file-uploader-button.js.map +1 -1
- package/es/components/file-uploader/file-uploader-drop-container.js +2 -2
- package/es/components/file-uploader/file-uploader-drop-container.js.map +1 -1
- package/es/components/file-uploader/file-uploader-item.js +2 -2
- package/es/components/file-uploader/file-uploader-item.js.map +1 -1
- package/es/components/file-uploader/file-uploader-skeleton.js.map +1 -1
- package/es/components/file-uploader/file-uploader.css.js +1 -1
- package/es/components/file-uploader/file-uploader.js +1 -1
- package/es/components/file-uploader/file-uploader.js.map +1 -1
- package/es/components/floating-menu/floating-menu.js +3 -3
- package/es/components/floating-menu/floating-menu.js.map +1 -1
- package/es/components/form/form-item.css.js +1 -1
- package/es/components/form/form-item.js.map +1 -1
- package/es/components/form-group/form-group.css.js +1 -1
- package/es/components/form-group/form-group.js.map +1 -1
- package/es/components/icon-button/icon-button.js +3 -2
- package/es/components/icon-button/icon-button.js.map +1 -1
- package/es/components/inline-loading/inline-loading.js +3 -2
- package/es/components/inline-loading/inline-loading.js.map +1 -1
- package/es/components/layer/layer.js +2 -2
- package/es/components/layer/layer.js.map +1 -1
- package/es/components/link/link.js +1 -1
- package/es/components/link/link.js.map +1 -1
- package/es/components/list/list-item.js +4 -3
- package/es/components/list/list-item.js.map +1 -1
- package/es/components/list/ordered-list.js.map +1 -1
- package/es/components/list/unordered-list.js +4 -3
- package/es/components/list/unordered-list.js.map +1 -1
- package/es/components/loading/loading.js.map +1 -1
- package/es/components/modal/modal-body-content.js.map +1 -1
- package/es/components/modal/modal-body.js.map +1 -1
- package/es/components/modal/modal-close-button.js.map +1 -1
- package/es/components/modal/modal-footer.js +1 -1
- package/es/components/modal/modal-footer.js.map +1 -1
- package/es/components/modal/modal-header.js +1 -1
- package/es/components/modal/modal-header.js.map +1 -1
- package/es/components/modal/modal-heading.js.map +1 -1
- package/es/components/modal/modal-label.js.map +1 -1
- package/es/components/modal/modal.js +8 -8
- package/es/components/modal/modal.js.map +1 -1
- package/es/components/multi-select/multi-select-item.js +1 -1
- 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.js +18 -17
- package/es/components/multi-select/multi-select.js.map +1 -1
- package/es/components/notification/actionable-notification-button.js +3 -2
- package/es/components/notification/actionable-notification-button.js.map +1 -1
- package/es/components/notification/actionable-notification.js +5 -4
- package/es/components/notification/actionable-notification.js.map +1 -1
- package/es/components/notification/inline-notification.js +5 -4
- package/es/components/notification/inline-notification.js.map +1 -1
- package/es/components/notification/toast-notification.js.map +1 -1
- package/es/components/number-input/number-input-skeleton.js.map +1 -1
- package/es/components/number-input/number-input.css.js +1 -1
- package/es/components/number-input/number-input.js +10 -9
- package/es/components/number-input/number-input.js.map +1 -1
- package/es/components/overflow-menu/overflow-menu-body.js +6 -5
- package/es/components/overflow-menu/overflow-menu-body.js.map +1 -1
- package/es/components/overflow-menu/overflow-menu-item.js +3 -2
- package/es/components/overflow-menu/overflow-menu-item.js.map +1 -1
- package/es/components/overflow-menu/overflow-menu.js +6 -5
- package/es/components/overflow-menu/overflow-menu.js.map +1 -1
- package/es/components/pagination/index.d.ts +2 -1
- package/es/components/pagination/index.js +2 -1
- package/es/components/pagination/index.js.map +1 -1
- package/es/components/pagination/pagination.css.js +1 -1
- package/es/components/pagination/pagination.js +4 -4
- package/es/components/pagination/pagination.js.map +1 -1
- package/es/components/popover/popover-content.js.map +1 -1
- package/es/components/popover/popover.js +3 -3
- package/es/components/popover/popover.js.map +1 -1
- package/es/components/progress-bar/progress-bar.js +1 -1
- package/es/components/progress-bar/progress-bar.js.map +1 -1
- package/es/components/progress-indicator/progress-indicator-skeleton.js +1 -1
- package/es/components/progress-indicator/progress-indicator-skeleton.js.map +1 -1
- package/es/components/progress-indicator/progress-indicator.js +4 -3
- package/es/components/progress-indicator/progress-indicator.js.map +1 -1
- package/es/components/progress-indicator/progress-step-skeleton.js.map +1 -1
- package/es/components/progress-indicator/progress-step.js +3 -2
- package/es/components/progress-indicator/progress-step.js.map +1 -1
- package/es/components/radio-button/radio-button-group.js +4 -4
- package/es/components/radio-button/radio-button-group.js.map +1 -1
- package/es/components/radio-button/radio-button-skeleton.js.map +1 -1
- package/es/components/radio-button/radio-button.css.js +1 -1
- package/es/components/radio-button/radio-button.js +5 -4
- package/es/components/radio-button/radio-button.js.map +1 -1
- package/es/components/search/search-skeleton.js.map +1 -1
- package/es/components/search/search.css.js +1 -1
- package/es/components/search/search.js +1 -1
- package/es/components/search/search.js.map +1 -1
- package/es/components/select/select-skeleton.js.map +1 -1
- package/es/components/select/select.css.js +1 -1
- package/es/components/select/select.js +14 -13
- package/es/components/select/select.js.map +1 -1
- package/es/components/side-panel/side-panel.css.js +1 -1
- package/es/components/side-panel/side-panel.js +10 -9
- package/es/components/side-panel/side-panel.js.map +1 -1
- package/es/components/skeleton-placeholder/skeleton-placeholder.js.map +1 -1
- package/es/components/skeleton-text/skeleton-text.js.map +1 -1
- package/es/components/skip-to-content/skip-to-content.js +3 -2
- package/es/components/skip-to-content/skip-to-content.js.map +1 -1
- package/es/components/slider/slider-input.js +8 -8
- package/es/components/slider/slider-input.js.map +1 -1
- package/es/components/slider/slider-skeleton.js.map +1 -1
- package/es/components/slider/slider.css.js +1 -1
- package/es/components/slider/slider.js +17 -16
- package/es/components/slider/slider.js.map +1 -1
- package/es/components/slug/slug.css.js +1 -1
- package/es/components/slug/slug.js +3 -2
- package/es/components/slug/slug.js.map +1 -1
- package/es/components/stack/stack.js.map +1 -1
- package/es/components/structured-list/structured-list-body.js +3 -2
- package/es/components/structured-list/structured-list-body.js.map +1 -1
- package/es/components/structured-list/structured-list-cell.js +3 -2
- package/es/components/structured-list/structured-list-cell.js.map +1 -1
- package/es/components/structured-list/structured-list-head.js +3 -2
- package/es/components/structured-list/structured-list-head.js.map +1 -1
- package/es/components/structured-list/structured-list-header-cell-skeleton.js.map +1 -1
- package/es/components/structured-list/structured-list-header-cell.js +3 -2
- package/es/components/structured-list/structured-list-header-cell.js.map +1 -1
- package/es/components/structured-list/structured-list-header-row.js +3 -2
- package/es/components/structured-list/structured-list-header-row.js.map +1 -1
- package/es/components/structured-list/structured-list-row.js +4 -3
- package/es/components/structured-list/structured-list-row.js.map +1 -1
- package/es/components/structured-list/structured-list.js +3 -2
- package/es/components/structured-list/structured-list.js.map +1 -1
- package/es/components/tabs/tab-skeleton.js.map +1 -1
- package/es/components/tabs/tab.js +3 -2
- package/es/components/tabs/tab.js.map +1 -1
- package/es/components/tabs/tabs-skeleton.js.map +1 -1
- package/es/components/tabs/tabs.js +13 -12
- package/es/components/tabs/tabs.js.map +1 -1
- package/es/components/tag/tag.css.js +1 -1
- package/es/components/tag/tag.js +3 -3
- package/es/components/tag/tag.js.map +1 -1
- package/es/components/tearsheet/tearsheet.js +11 -10
- package/es/components/tearsheet/tearsheet.js.map +1 -1
- package/es/components/text-input/text-input-skeleton.js.map +1 -1
- package/es/components/text-input/text-input.css.js +1 -1
- package/es/components/text-input/text-input.js +5 -5
- package/es/components/text-input/text-input.js.map +1 -1
- package/es/components/textarea/textarea-skeleton.js.map +1 -1
- package/es/components/textarea/textarea.css.js +1 -1
- package/es/components/textarea/textarea.js.map +1 -1
- package/es/components/tile/clickable-tile.js +5 -4
- package/es/components/tile/clickable-tile.js.map +1 -1
- package/es/components/tile/expandable-tile.js +3 -3
- package/es/components/tile/expandable-tile.js.map +1 -1
- package/es/components/tile/radio-tile.js +1 -1
- package/es/components/tile/radio-tile.js.map +1 -1
- package/es/components/tile/selectable-tile.js +2 -2
- package/es/components/tile/selectable-tile.js.map +1 -1
- package/es/components/tile/tile-group.js +4 -4
- package/es/components/tile/tile-group.js.map +1 -1
- package/es/components/tile/tile.css.js +1 -1
- package/es/components/tile/tile.js +1 -1
- package/es/components/tile/tile.js.map +1 -1
- package/es/components/toggle/toggle.js +1 -1
- package/es/components/toggle/toggle.js.map +1 -1
- package/es/components/toggle-tip/toggletip.js +3 -3
- package/es/components/toggle-tip/toggletip.js.map +1 -1
- package/es/components/tooltip/tooltip-content.js +3 -2
- package/es/components/tooltip/tooltip-content.js.map +1 -1
- package/es/components/tooltip/tooltip.js +8 -7
- package/es/components/tooltip/tooltip.js.map +1 -1
- package/es/components/ui-shell/header-global-action.js +3 -2
- package/es/components/ui-shell/header-global-action.js.map +1 -1
- package/es/components/ui-shell/header-menu-button.js +1 -1
- package/es/components/ui-shell/header-menu-button.js.map +1 -1
- package/es/components/ui-shell/header-menu.js +4 -3
- package/es/components/ui-shell/header-menu.js.map +1 -1
- package/es/components/ui-shell/header-name.js.map +1 -1
- package/es/components/ui-shell/header-nav-item.js.map +1 -1
- package/es/components/ui-shell/header-nav.js +3 -2
- package/es/components/ui-shell/header-nav.js.map +1 -1
- package/es/components/ui-shell/header-panel.js.map +1 -1
- package/es/components/ui-shell/header-side-nav-items.js +3 -2
- package/es/components/ui-shell/header-side-nav-items.js.map +1 -1
- package/es/components/ui-shell/header.js +3 -2
- package/es/components/ui-shell/header.js.map +1 -1
- package/es/components/ui-shell/side-nav-divider.js +3 -2
- package/es/components/ui-shell/side-nav-divider.js.map +1 -1
- package/es/components/ui-shell/side-nav-items.js +3 -2
- package/es/components/ui-shell/side-nav-items.js.map +1 -1
- package/es/components/ui-shell/side-nav-link.js +3 -2
- package/es/components/ui-shell/side-nav-link.js.map +1 -1
- package/es/components/ui-shell/side-nav-menu-item.js +4 -3
- package/es/components/ui-shell/side-nav-menu-item.js.map +1 -1
- package/es/components/ui-shell/side-nav-menu.js +6 -5
- package/es/components/ui-shell/side-nav-menu.js.map +1 -1
- package/es/components/ui-shell/side-nav.js +9 -8
- package/es/components/ui-shell/side-nav.js.map +1 -1
- package/es/components/ui-shell/switcher-divider.js +3 -2
- package/es/components/ui-shell/switcher-divider.js.map +1 -1
- package/es/components/ui-shell/switcher-item.js +3 -2
- package/es/components/ui-shell/switcher-item.js.map +1 -1
- package/es/components/ui-shell/switcher.js +3 -2
- package/es/components/ui-shell/switcher.js.map +1 -1
- package/package.json +6 -6
- package/dist/checkbox-d0a3a79f.js +0 -109
- package/dist/dropdown-item-91b3dc95.js +0 -148
- package/dist/popover-controller-cc6ccb74.js +0 -73
- package/dist/search-23232b04.js +0 -102
- package/dist/select-item-4ebf72a0.js +0 -73
- package/dist/text-input-ead65188.js +0 -142
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import _decorate from "@babel/runtime/helpers/esm/decorate";
|
|
2
|
-
import _get from "@babel/runtime/helpers/esm/get";
|
|
3
2
|
import _getPrototypeOf from "@babel/runtime/helpers/esm/getPrototypeOf";
|
|
3
|
+
import _get from "@babel/runtime/helpers/esm/get";
|
|
4
4
|
let _ = t => t,
|
|
5
5
|
_t,
|
|
6
6
|
_t2;
|
|
7
|
+
function _superPropGet(t, e, r, o) { var p = _get(_getPrototypeOf(1 & o ? t.prototype : t), e, r); return 2 & o ? function (t) { return p.apply(r, t); } : p; }
|
|
7
8
|
/**
|
|
8
9
|
* @license
|
|
9
10
|
*
|
|
@@ -171,7 +172,7 @@ let CDSComboBox = _decorate([customElement(`${prefix}-combo-box`)], function (_i
|
|
|
171
172
|
if ((_this$_selectionButto = this._selectionButtonNode) !== null && _this$_selectionButto !== void 0 && _this$_selectionButto.contains(target)) {
|
|
172
173
|
this._handleUserInitiatedClearInput();
|
|
173
174
|
} else {
|
|
174
|
-
|
|
175
|
+
_superPropGet(CDSComboBox, "_handleClickInner", this, 3)([event]);
|
|
175
176
|
}
|
|
176
177
|
}
|
|
177
178
|
}, {
|
|
@@ -191,7 +192,7 @@ let CDSComboBox = _decorate([customElement(`${prefix}-combo-box`)], function (_i
|
|
|
191
192
|
action === TRIGGERING || key === ' ')) {
|
|
192
193
|
this._handleUserInitiatedClearInput();
|
|
193
194
|
} else {
|
|
194
|
-
|
|
195
|
+
_superPropGet(CDSComboBox, "_handleKeypressInner", this, 3)([event]);
|
|
195
196
|
}
|
|
196
197
|
}
|
|
197
198
|
|
|
@@ -226,7 +227,7 @@ let CDSComboBox = _decorate([customElement(`${prefix}-combo-box`)], function (_i
|
|
|
226
227
|
this.open = false;
|
|
227
228
|
this.requestUpdate();
|
|
228
229
|
}
|
|
229
|
-
|
|
230
|
+
_superPropGet(CDSComboBox, "_handleUserInitiatedSelectItem", this, 3)([item]);
|
|
230
231
|
}
|
|
231
232
|
}, {
|
|
232
233
|
kind: "method",
|
|
@@ -353,7 +354,7 @@ let CDSComboBox = _decorate([customElement(`${prefix}-combo-box`)], function (_i
|
|
|
353
354
|
* The custom item matching callback.
|
|
354
355
|
*/
|
|
355
356
|
function shouldUpdate(changedProperties) {
|
|
356
|
-
|
|
357
|
+
_superPropGet(CDSComboBox, "shouldUpdate", this, 3)([changedProperties]);
|
|
357
358
|
const {
|
|
358
359
|
_selectedItemContent: selectedItemContent
|
|
359
360
|
} = this;
|
|
@@ -366,7 +367,7 @@ let CDSComboBox = _decorate([customElement(`${prefix}-combo-box`)], function (_i
|
|
|
366
367
|
kind: "method",
|
|
367
368
|
key: "updated",
|
|
368
369
|
value: function updated(changedProperties) {
|
|
369
|
-
|
|
370
|
+
_superPropGet(CDSComboBox, "updated", this, 3)([changedProperties]);
|
|
370
371
|
const {
|
|
371
372
|
_listBoxNode: listBoxNode
|
|
372
373
|
} = this;
|
|
@@ -391,7 +392,7 @@ let CDSComboBox = _decorate([customElement(`${prefix}-combo-box`)], function (_i
|
|
|
391
392
|
/**
|
|
392
393
|
* A selector that will return highlighted items.
|
|
393
394
|
*/
|
|
394
|
-
function
|
|
395
|
+
function () {
|
|
395
396
|
return `${prefix}-combo-box-item[highlighted]`;
|
|
396
397
|
}
|
|
397
398
|
|
|
@@ -402,7 +403,7 @@ let CDSComboBox = _decorate([customElement(`${prefix}-combo-box`)], function (_i
|
|
|
402
403
|
kind: "get",
|
|
403
404
|
static: true,
|
|
404
405
|
key: "selectorItem",
|
|
405
|
-
value: function
|
|
406
|
+
value: function () {
|
|
406
407
|
return `${prefix}-combo-box-item`;
|
|
407
408
|
}
|
|
408
409
|
|
|
@@ -413,7 +414,7 @@ let CDSComboBox = _decorate([customElement(`${prefix}-combo-box`)], function (_i
|
|
|
413
414
|
kind: "get",
|
|
414
415
|
static: true,
|
|
415
416
|
key: "selectorItemSelected",
|
|
416
|
-
value: function
|
|
417
|
+
value: function () {
|
|
417
418
|
return `${prefix}-combo-box-item[selected]`;
|
|
418
419
|
}
|
|
419
420
|
|
|
@@ -425,7 +426,7 @@ let CDSComboBox = _decorate([customElement(`${prefix}-combo-box`)], function (_i
|
|
|
425
426
|
kind: "get",
|
|
426
427
|
static: true,
|
|
427
428
|
key: "eventBeforeToggle",
|
|
428
|
-
value: function
|
|
429
|
+
value: function () {
|
|
429
430
|
return `${prefix}-combo-box-beingtoggled`;
|
|
430
431
|
}
|
|
431
432
|
|
|
@@ -436,7 +437,7 @@ let CDSComboBox = _decorate([customElement(`${prefix}-combo-box`)], function (_i
|
|
|
436
437
|
kind: "get",
|
|
437
438
|
static: true,
|
|
438
439
|
key: "eventToggle",
|
|
439
|
-
value: function
|
|
440
|
+
value: function () {
|
|
440
441
|
return `${prefix}-combo-box-toggled`;
|
|
441
442
|
}
|
|
442
443
|
|
|
@@ -448,7 +449,7 @@ let CDSComboBox = _decorate([customElement(`${prefix}-combo-box`)], function (_i
|
|
|
448
449
|
kind: "get",
|
|
449
450
|
static: true,
|
|
450
451
|
key: "eventBeforeSelect",
|
|
451
|
-
value: function
|
|
452
|
+
value: function () {
|
|
452
453
|
return `${prefix}-combo-box-beingselected`;
|
|
453
454
|
}
|
|
454
455
|
|
|
@@ -459,7 +460,7 @@ let CDSComboBox = _decorate([customElement(`${prefix}-combo-box`)], function (_i
|
|
|
459
460
|
kind: "get",
|
|
460
461
|
static: true,
|
|
461
462
|
key: "eventSelect",
|
|
462
|
-
value: function
|
|
463
|
+
value: function () {
|
|
463
464
|
return `${prefix}-combo-box-selected`;
|
|
464
465
|
}
|
|
465
466
|
}, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"combo-box.js","names":["classMap","html","property","query","Close16","prefix","findIndex","forEach","CDSDropdown","DROPDOWN_KEYBOARD_ACTION","styles","carbonElement","customElement","ifDefined","ifNonEmpty","DROPDOWN_DIRECTION","DROPDOWN_SIZE","CDSComboBox","_decorate","_initialize","_CDSDropdown","constructor","args","F","d","kind","key","value","decorators","_testItemWithQueryText","item","itemMatches","_defaultItemMatches","_filterInputNode","queryText","textContent","toLowerCase","indexOf","_handleInput","_filterInputValue","length","setAttribute","removeAttribute","items","querySelectorAll","selectorItem","index","i","_this$_itemMenu","menuRect","_itemMenu","getBoundingClientRect","itemRect","isViewable","top","bottom","clientHeight","scrollTop","scrollBot","Math","abs","highlighted","filterInput","open","requestUpdate","_handleClickInner","event","_this$_selectionButto","target","_selectionButtonNode","contains","_handleUserInitiatedClearInput","_get","_getPrototypeOf","prototype","call","_handleKeypressInner","_this$_selectionButto2","action","getAction","TRIGGERING","focus","_handleUserInitiatedSelectItem","_selectionShouldChange","_selectionDidChange","itemToSelect","selectorItemSelected","selected","_handleUserInitiatedToggle","_renderLabel","disabled","inputLabel","label","readOnly","_activeDescendant","activeDescendant","filterInputValue","handleInput","inputClasses","activeDescendantFallback","_items$","id","_t","_","String","_renderFollowingLabel","clearSelectionLabel","undefined","_t2","attribute","shouldUpdate","changedProperties","_selectedItemContent","selectedItemContent","has","updated","_listBoxNode","listBoxNode","classList","add","static","Set","selectorItemHighlighted","eventBeforeToggle","eventToggle","eventBeforeSelect","eventSelect"],"sources":["components/combo-box/combo-box.ts"],"sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2019, 2024\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 { classMap } from 'lit/directives/class-map.js';\nimport { TemplateResult, html } from 'lit';\nimport { property, query } from 'lit/decorators.js';\nimport Close16 from '@carbon/icons/lib/close/16';\nimport { prefix } from '../../globals/settings';\nimport { findIndex, forEach } from '../../globals/internal/collection-helpers';\nimport CDSDropdown, { DROPDOWN_KEYBOARD_ACTION } from '../dropdown/dropdown';\nimport CDSComboBoxItem from './combo-box-item';\nimport styles from './combo-box.scss';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport ifNonEmpty from '../../globals/directives/if-non-empty';\n\nexport { DROPDOWN_DIRECTION, DROPDOWN_SIZE } from '../dropdown/dropdown';\n\n/**\n * Combo box.\n *\n * @element cds-combo-box\n * @fires cds-combo-box-beingselected\n * The custom event fired before a combo box item is selected upon a user gesture.\n * Cancellation of this event stops changing the user-initiated selection.\n * @fires cds-combo-box-beingtoggled\n * The custom event fired before the open state of this combo box is toggled upon a user gesture.\n * Cancellation of this event stops the user-initiated toggling.\n * @fires cds-combo-box-selected - The custom event fired after a combo box item is selected upon a user gesture.\n * @fires cds-combo-box-toggled - The custom event fired after the open state of this combo box is toggled upon a user gesture.\n */\n@customElement(`${prefix}-combo-box`)\nclass CDSComboBox extends CDSDropdown {\n /**\n * The text content that should be set to the `<input>` for filtering.\n */\n protected _filterInputValue = '';\n\n protected _shouldTriggerBeFocusable = false;\n\n /**\n * The `<input>` for filtering.\n */\n @query('input')\n private _filterInputNode!: HTMLInputElement;\n\n /**\n * The menu containing all selectable items.\n */\n @query('#menu-body')\n private _itemMenu!: HTMLElement;\n\n /**\n * The selection button.\n */\n @query('#selection-button')\n private _selectionButtonNode!: HTMLElement;\n\n /**\n * @param item A combo box item.\n * @returns `true` if the given combo box item matches the query text user types.\n */\n protected _testItemWithQueryText(item) {\n return (this.itemMatches || this._defaultItemMatches)(\n item,\n this._filterInputNode.value\n );\n }\n\n /* eslint-disable class-methods-use-this */\n /**\n * The default item matching callback.\n *\n * @param item The combo box item.\n * @param queryText The query text user types.\n * @returns `true` if the given combo box item matches the given query text.\n */\n protected _defaultItemMatches(\n item: CDSComboBoxItem,\n queryText: string\n ): boolean {\n return (\n item.textContent!.toLowerCase().indexOf(queryText.toLowerCase()) >= 0\n );\n }\n /* eslint-enable class-methods-use-this */\n\n /**\n * Handles `input` event on the `<input>` for filtering.\n */\n protected _handleInput() {\n if (this._filterInputValue.length != 0) {\n this.setAttribute('isClosable', '');\n } else {\n this.removeAttribute('isClosable');\n }\n\n const items = this.querySelectorAll(\n (this.constructor as typeof CDSComboBox).selectorItem\n );\n const index = !this._filterInputNode.value\n ? -1\n : findIndex(items, this._testItemWithQueryText, this);\n forEach(items, (item, i) => {\n if (i === index) {\n const menuRect = this._itemMenu?.getBoundingClientRect();\n const itemRect = item.getBoundingClientRect();\n\n if (menuRect && itemRect) {\n const isViewable =\n menuRect!.top <= itemRect?.top &&\n itemRect?.bottom <= menuRect?.top + this._itemMenu!.clientHeight;\n if (!isViewable) {\n const scrollTop = itemRect?.top - menuRect?.top;\n const scrollBot = itemRect?.bottom - menuRect?.bottom;\n\n if (Math.abs(scrollTop) < Math.abs(scrollBot)) {\n this._itemMenu!.scrollTop += scrollTop;\n } else {\n this._itemMenu!.scrollTop += scrollBot;\n }\n }\n }\n }\n (item as CDSComboBoxItem).highlighted = i === index;\n });\n const { _filterInputNode: filterInput } = this;\n this._filterInputValue = !filterInput ? '' : filterInput.value;\n this.open = true;\n this.requestUpdate(); // If the only change is to `_filterInputValue`, auto-update doesn't happen\n }\n\n protected _handleClickInner(event: MouseEvent) {\n const { target } = event as any;\n if (this._selectionButtonNode?.contains(target)) {\n this._handleUserInitiatedClearInput();\n } else {\n super._handleClickInner(event);\n }\n }\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 if (\n this._selectionButtonNode?.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 {\n super._handleKeypressInner(event);\n }\n }\n\n /**\n * Handles user-initiated clearing the `<input>` for filtering.\n */\n protected _handleUserInitiatedClearInput() {\n forEach(\n this.querySelectorAll(\n (this.constructor as typeof CDSComboBox).selectorItem\n ),\n (item) => {\n (item as CDSComboBoxItem).highlighted = false;\n }\n );\n this._filterInputValue = '';\n this._filterInputNode.focus();\n this._handleUserInitiatedSelectItem();\n }\n\n protected _handleUserInitiatedSelectItem(item?: CDSComboBoxItem) {\n if (item && !this._selectionShouldChange(item)) {\n // Escape hatch for `shouldUpdate()` logic that updates `._filterInputValue()` when selection changes,\n // given we want to update the `<input>` and close the dropdown even if selection doesn't update.\n // Use case:\n // 1. Select the 2nd item in combo box drop down\n // 2. Type some text in the `<input>`\n // 3. Re-select the 2nd item in combo box drop down,\n // the `<input>` has to updated with the 2nd item and the dropdown should be closed,\n // even if there is no change in the selected value\n this._filterInputValue = item.textContent || '';\n this.open = false;\n this.requestUpdate();\n }\n super._handleUserInitiatedSelectItem(item);\n }\n\n protected _selectionDidChange(itemToSelect?: CDSComboBoxItem) {\n this.value = !itemToSelect ? '' : itemToSelect.value;\n forEach(\n this.querySelectorAll(\n (this.constructor as typeof CDSDropdown).selectorItemSelected\n ),\n (item) => {\n (item as CDSComboBoxItem).selected = false;\n item.setAttribute('aria-selected', 'false');\n }\n );\n if (itemToSelect) {\n itemToSelect.selected = true;\n itemToSelect.setAttribute('aria-selected', 'true');\n }\n this._handleUserInitiatedToggle(false);\n }\n\n protected _renderLabel(): TemplateResult {\n const {\n disabled,\n inputLabel,\n label,\n open,\n readOnly,\n value,\n _activeDescendant: activeDescendant,\n _filterInputValue: filterInputValue,\n _handleInput: handleInput,\n } = this;\n\n const inputClasses = classMap({\n [`${prefix}--text-input`]: true,\n [`${prefix}--text-input--empty`]: !value,\n });\n\n let activeDescendantFallback: string | undefined;\n if (open && !activeDescendant) {\n const constructor = this.constructor as typeof CDSDropdown;\n const items = this.querySelectorAll(constructor.selectorItem);\n activeDescendantFallback = items[0]?.id;\n }\n\n return html`\n <input\n id=\"trigger-button\"\n class=\"${inputClasses}\"\n ?disabled=${disabled}\n placeholder=\"${label}\"\n .value=${filterInputValue}\n role=\"combobox\"\n aria-label=\"${ifNonEmpty(inputLabel)}\"\n aria-controls=\"menu-body\"\n aria-haspopup=\"listbox\"\n aria-autocomplete=\"list\"\n aria-expanded=\"${String(open)}\"\n aria-activedescendant=\"${ifDefined(\n open ? activeDescendant ?? activeDescendantFallback : ''\n )}\"\n ?readonly=${readOnly}\n @input=${handleInput} />\n `;\n }\n\n protected _renderFollowingLabel(): TemplateResult | void {\n const { clearSelectionLabel, _filterInputValue: filterInputValue } = this;\n\n if (filterInputValue.length != 0) {\n this.setAttribute('isClosable', '');\n } else {\n this.removeAttribute('isClosable');\n }\n\n return filterInputValue.length === 0\n ? undefined\n : html`\n <div\n id=\"selection-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 }\n\n /**\n * The `aria-label` attribute for the icon to clear selection.\n */\n @property({ attribute: 'clear-selection-label' })\n clearSelectionLabel = 'Clear selection';\n\n /**\n * The `aria-label` attribute for the `<input>` for filtering.\n */\n @property({ attribute: 'input-label' })\n inputLabel = '';\n\n /**\n * The custom item matching callback.\n */\n @property({ attribute: false })\n itemMatches!: (item: CDSComboBoxItem, queryText: string) => boolean;\n\n shouldUpdate(changedProperties) {\n super.shouldUpdate(changedProperties);\n const { _selectedItemContent: selectedItemContent } = this;\n if (selectedItemContent && changedProperties.has('value')) {\n this._filterInputValue = selectedItemContent?.textContent || '';\n }\n return true;\n }\n\n updated(changedProperties) {\n super.updated(changedProperties);\n const { _listBoxNode: listBoxNode } = this;\n if (listBoxNode) {\n listBoxNode.classList.add(`${prefix}--combo-box`);\n }\n }\n\n // For combo box, open/selection with space key is disabled given the input box should take it over\n static TRIGGER_KEYS = new Set(['Enter']);\n\n /**\n * A selector that will return highlighted items.\n */\n static get selectorItemHighlighted() {\n return `${prefix}-combo-box-item[highlighted]`;\n }\n\n /**\n * A selector that will return combo box items.\n */\n static get selectorItem() {\n return `${prefix}-combo-box-item`;\n }\n\n /**\n * A selector that will return selected items.\n */\n static get selectorItemSelected() {\n return `${prefix}-combo-box-item[selected]`;\n }\n\n /**\n * The name of the custom event fired before this combo box item is being toggled upon a user gesture.\n * Cancellation of this event stops the user-initiated action of toggling this combo box item.\n */\n static get eventBeforeToggle() {\n return `${prefix}-combo-box-beingtoggled`;\n }\n\n /**\n * The name of the custom event fired after this combo box item is toggled upon a user gesture.\n */\n static get eventToggle() {\n return `${prefix}-combo-box-toggled`;\n }\n\n /**\n * The name of the custom event fired before a combo box 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}-combo-box-beingselected`;\n }\n\n /**\n * The name of the custom event fired after a a combo box item is selected upon a user gesture.\n */\n static get eventSelect() {\n return `${prefix}-combo-box-selected`;\n }\n\n static styles = styles;\n}\n\nexport default CDSComboBox;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"combo-box.js","names":["classMap","html","property","query","Close16","prefix","findIndex","forEach","CDSDropdown","DROPDOWN_KEYBOARD_ACTION","styles","carbonElement","customElement","ifDefined","ifNonEmpty","DROPDOWN_DIRECTION","DROPDOWN_SIZE","CDSComboBox","_decorate","_initialize","_CDSDropdown","constructor","args","F","d","kind","key","value","decorators","_testItemWithQueryText","item","itemMatches","_defaultItemMatches","_filterInputNode","queryText","textContent","toLowerCase","indexOf","_handleInput","_filterInputValue","length","setAttribute","removeAttribute","items","querySelectorAll","selectorItem","index","i","_this$_itemMenu","menuRect","_itemMenu","getBoundingClientRect","itemRect","isViewable","top","bottom","clientHeight","scrollTop","scrollBot","Math","abs","highlighted","filterInput","open","requestUpdate","_handleClickInner","event","_this$_selectionButto","target","_selectionButtonNode","contains","_handleUserInitiatedClearInput","_superPropGet","_handleKeypressInner","_this$_selectionButto2","action","getAction","TRIGGERING","focus","_handleUserInitiatedSelectItem","_selectionShouldChange","_selectionDidChange","itemToSelect","selectorItemSelected","selected","_handleUserInitiatedToggle","_renderLabel","disabled","inputLabel","label","readOnly","_activeDescendant","activeDescendant","filterInputValue","handleInput","inputClasses","activeDescendantFallback","_items$","id","_t","_","String","_renderFollowingLabel","clearSelectionLabel","undefined","_t2","attribute","shouldUpdate","changedProperties","_selectedItemContent","selectedItemContent","has","updated","_listBoxNode","listBoxNode","classList","add","static","Set"],"sources":["components/combo-box/combo-box.ts"],"sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2019, 2024\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 { classMap } from 'lit/directives/class-map.js';\nimport { TemplateResult, html } from 'lit';\nimport { property, query } from 'lit/decorators.js';\nimport Close16 from '@carbon/icons/lib/close/16';\nimport { prefix } from '../../globals/settings';\nimport { findIndex, forEach } from '../../globals/internal/collection-helpers';\nimport CDSDropdown, { DROPDOWN_KEYBOARD_ACTION } from '../dropdown/dropdown';\nimport CDSComboBoxItem from './combo-box-item';\nimport styles from './combo-box.scss';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport ifNonEmpty from '../../globals/directives/if-non-empty';\n\nexport { DROPDOWN_DIRECTION, DROPDOWN_SIZE } from '../dropdown/dropdown';\n\n/**\n * Combo box.\n *\n * @element cds-combo-box\n * @fires cds-combo-box-beingselected\n * The custom event fired before a combo box item is selected upon a user gesture.\n * Cancellation of this event stops changing the user-initiated selection.\n * @fires cds-combo-box-beingtoggled\n * The custom event fired before the open state of this combo box is toggled upon a user gesture.\n * Cancellation of this event stops the user-initiated toggling.\n * @fires cds-combo-box-selected - The custom event fired after a combo box item is selected upon a user gesture.\n * @fires cds-combo-box-toggled - The custom event fired after the open state of this combo box is toggled upon a user gesture.\n */\n@customElement(`${prefix}-combo-box`)\nclass CDSComboBox extends CDSDropdown {\n /**\n * The text content that should be set to the `<input>` for filtering.\n */\n protected _filterInputValue = '';\n\n protected _shouldTriggerBeFocusable = false;\n\n /**\n * The `<input>` for filtering.\n */\n @query('input')\n private _filterInputNode!: HTMLInputElement;\n\n /**\n * The menu containing all selectable items.\n */\n @query('#menu-body')\n private _itemMenu!: HTMLElement;\n\n /**\n * The selection button.\n */\n @query('#selection-button')\n private _selectionButtonNode!: HTMLElement;\n\n /**\n * @param item A combo box item.\n * @returns `true` if the given combo box item matches the query text user types.\n */\n protected _testItemWithQueryText(item) {\n return (this.itemMatches || this._defaultItemMatches)(\n item,\n this._filterInputNode.value\n );\n }\n\n /* eslint-disable class-methods-use-this */\n /**\n * The default item matching callback.\n *\n * @param item The combo box item.\n * @param queryText The query text user types.\n * @returns `true` if the given combo box item matches the given query text.\n */\n protected _defaultItemMatches(\n item: CDSComboBoxItem,\n queryText: string\n ): boolean {\n return (\n item.textContent!.toLowerCase().indexOf(queryText.toLowerCase()) >= 0\n );\n }\n /* eslint-enable class-methods-use-this */\n\n /**\n * Handles `input` event on the `<input>` for filtering.\n */\n protected _handleInput() {\n if (this._filterInputValue.length != 0) {\n this.setAttribute('isClosable', '');\n } else {\n this.removeAttribute('isClosable');\n }\n\n const items = this.querySelectorAll(\n (this.constructor as typeof CDSComboBox).selectorItem\n );\n const index = !this._filterInputNode.value\n ? -1\n : findIndex(items, this._testItemWithQueryText, this);\n forEach(items, (item, i) => {\n if (i === index) {\n const menuRect = this._itemMenu?.getBoundingClientRect();\n const itemRect = item.getBoundingClientRect();\n\n if (menuRect && itemRect) {\n const isViewable =\n menuRect!.top <= itemRect?.top &&\n itemRect?.bottom <= menuRect?.top + this._itemMenu!.clientHeight;\n if (!isViewable) {\n const scrollTop = itemRect?.top - menuRect?.top;\n const scrollBot = itemRect?.bottom - menuRect?.bottom;\n\n if (Math.abs(scrollTop) < Math.abs(scrollBot)) {\n this._itemMenu!.scrollTop += scrollTop;\n } else {\n this._itemMenu!.scrollTop += scrollBot;\n }\n }\n }\n }\n (item as CDSComboBoxItem).highlighted = i === index;\n });\n const { _filterInputNode: filterInput } = this;\n this._filterInputValue = !filterInput ? '' : filterInput.value;\n this.open = true;\n this.requestUpdate(); // If the only change is to `_filterInputValue`, auto-update doesn't happen\n }\n\n protected _handleClickInner(event: MouseEvent) {\n const { target } = event as any;\n if (this._selectionButtonNode?.contains(target)) {\n this._handleUserInitiatedClearInput();\n } else {\n super._handleClickInner(event);\n }\n }\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 if (\n this._selectionButtonNode?.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 {\n super._handleKeypressInner(event);\n }\n }\n\n /**\n * Handles user-initiated clearing the `<input>` for filtering.\n */\n protected _handleUserInitiatedClearInput() {\n forEach(\n this.querySelectorAll(\n (this.constructor as typeof CDSComboBox).selectorItem\n ),\n (item) => {\n (item as CDSComboBoxItem).highlighted = false;\n }\n );\n this._filterInputValue = '';\n this._filterInputNode.focus();\n this._handleUserInitiatedSelectItem();\n }\n\n protected _handleUserInitiatedSelectItem(item?: CDSComboBoxItem) {\n if (item && !this._selectionShouldChange(item)) {\n // Escape hatch for `shouldUpdate()` logic that updates `._filterInputValue()` when selection changes,\n // given we want to update the `<input>` and close the dropdown even if selection doesn't update.\n // Use case:\n // 1. Select the 2nd item in combo box drop down\n // 2. Type some text in the `<input>`\n // 3. Re-select the 2nd item in combo box drop down,\n // the `<input>` has to updated with the 2nd item and the dropdown should be closed,\n // even if there is no change in the selected value\n this._filterInputValue = item.textContent || '';\n this.open = false;\n this.requestUpdate();\n }\n super._handleUserInitiatedSelectItem(item);\n }\n\n protected _selectionDidChange(itemToSelect?: CDSComboBoxItem) {\n this.value = !itemToSelect ? '' : itemToSelect.value;\n forEach(\n this.querySelectorAll(\n (this.constructor as typeof CDSDropdown).selectorItemSelected\n ),\n (item) => {\n (item as CDSComboBoxItem).selected = false;\n item.setAttribute('aria-selected', 'false');\n }\n );\n if (itemToSelect) {\n itemToSelect.selected = true;\n itemToSelect.setAttribute('aria-selected', 'true');\n }\n this._handleUserInitiatedToggle(false);\n }\n\n protected _renderLabel(): TemplateResult {\n const {\n disabled,\n inputLabel,\n label,\n open,\n readOnly,\n value,\n _activeDescendant: activeDescendant,\n _filterInputValue: filterInputValue,\n _handleInput: handleInput,\n } = this;\n\n const inputClasses = classMap({\n [`${prefix}--text-input`]: true,\n [`${prefix}--text-input--empty`]: !value,\n });\n\n let activeDescendantFallback: string | undefined;\n if (open && !activeDescendant) {\n const constructor = this.constructor as typeof CDSDropdown;\n const items = this.querySelectorAll(constructor.selectorItem);\n activeDescendantFallback = items[0]?.id;\n }\n\n return html`\n <input\n id=\"trigger-button\"\n class=\"${inputClasses}\"\n ?disabled=${disabled}\n placeholder=\"${label}\"\n .value=${filterInputValue}\n role=\"combobox\"\n aria-label=\"${ifNonEmpty(inputLabel)}\"\n aria-controls=\"menu-body\"\n aria-haspopup=\"listbox\"\n aria-autocomplete=\"list\"\n aria-expanded=\"${String(open)}\"\n aria-activedescendant=\"${ifDefined(\n open ? activeDescendant ?? activeDescendantFallback : ''\n )}\"\n ?readonly=${readOnly}\n @input=${handleInput} />\n `;\n }\n\n protected _renderFollowingLabel(): TemplateResult | void {\n const { clearSelectionLabel, _filterInputValue: filterInputValue } = this;\n\n if (filterInputValue.length != 0) {\n this.setAttribute('isClosable', '');\n } else {\n this.removeAttribute('isClosable');\n }\n\n return filterInputValue.length === 0\n ? undefined\n : html`\n <div\n id=\"selection-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 }\n\n /**\n * The `aria-label` attribute for the icon to clear selection.\n */\n @property({ attribute: 'clear-selection-label' })\n clearSelectionLabel = 'Clear selection';\n\n /**\n * The `aria-label` attribute for the `<input>` for filtering.\n */\n @property({ attribute: 'input-label' })\n inputLabel = '';\n\n /**\n * The custom item matching callback.\n */\n @property({ attribute: false })\n itemMatches!: (item: CDSComboBoxItem, queryText: string) => boolean;\n\n shouldUpdate(changedProperties) {\n super.shouldUpdate(changedProperties);\n const { _selectedItemContent: selectedItemContent } = this;\n if (selectedItemContent && changedProperties.has('value')) {\n this._filterInputValue = selectedItemContent?.textContent || '';\n }\n return true;\n }\n\n updated(changedProperties) {\n super.updated(changedProperties);\n const { _listBoxNode: listBoxNode } = this;\n if (listBoxNode) {\n listBoxNode.classList.add(`${prefix}--combo-box`);\n }\n }\n\n // For combo box, open/selection with space key is disabled given the input box should take it over\n static TRIGGER_KEYS = new Set(['Enter']);\n\n /**\n * A selector that will return highlighted items.\n */\n static get selectorItemHighlighted() {\n return `${prefix}-combo-box-item[highlighted]`;\n }\n\n /**\n * A selector that will return combo box items.\n */\n static get selectorItem() {\n return `${prefix}-combo-box-item`;\n }\n\n /**\n * A selector that will return selected items.\n */\n static get selectorItemSelected() {\n return `${prefix}-combo-box-item[selected]`;\n }\n\n /**\n * The name of the custom event fired before this combo box item is being toggled upon a user gesture.\n * Cancellation of this event stops the user-initiated action of toggling this combo box item.\n */\n static get eventBeforeToggle() {\n return `${prefix}-combo-box-beingtoggled`;\n }\n\n /**\n * The name of the custom event fired after this combo box item is toggled upon a user gesture.\n */\n static get eventToggle() {\n return `${prefix}-combo-box-toggled`;\n }\n\n /**\n * The name of the custom event fired before a combo box 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}-combo-box-beingselected`;\n }\n\n /**\n * The name of the custom event fired after a a combo box item is selected upon a user gesture.\n */\n static get eventSelect() {\n return `${prefix}-combo-box-selected`;\n }\n\n static styles = styles;\n}\n\nexport default CDSComboBox;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content-switcher-item.js","names":["classMap","ifDefined","LitElement","html","property","prefix","FocusMixin","styles","carbonElement","customElement","CDSContentSwitcherItem","_decorate","_initialize","_FocusMixin","constructor","args","F","d","kind","decorators","type","Boolean","reflect","key","value","attribute","String","updated","changedProperties","_this$shadowRoot","shadowRoot","querySelector","classList","add","_renderTooltipContent","_t","_","shouldUpdate","has","selected","target","doc","getRootNode","targetNode","getElementById","toggleAttribute","render","disabled","className","switcherItem","_t2","icon","align","closeOnActivation","enterDelayMs","leaveDelayMs","_t3","static","_objectSpread","shadowRootOptions","delegatesFocus","default"],"sources":["components/content-switcher/content-switcher-item.ts"],"sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2019, 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 { classMap } from 'lit/directives/class-map.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { LitElement, html } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { prefix } from '../../globals/settings';\nimport FocusMixin from '../../globals/mixins/focus';\nimport styles from './content-switcher.scss';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\n/**\n * Content switcher button.\n *\n * @element cds-content-switcher-item\n */\n@customElement(`${prefix}-content-switcher-item`)\nexport default class CDSContentSwitcherItem extends FocusMixin(LitElement) {\n /**\n * `true` if this content switcher item should be disabled.\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * `true` to hide the divider at the left.\n *\n * @private\n */\n @property({ type: Boolean, reflect: true, attribute: 'hide-divider' })\n hideDivider = false;\n\n /**\n * `true` if the content switcher button should be selected.\n *\n * @private\n */\n @property({ type: Boolean, reflect: true })\n selected = false;\n\n /**\n * The element ID of target panel.\n */\n @property()\n target!: string;\n\n /**\n * The `value` attribute that is set to the parent `<cds-content-switcher>`\n * when this content switcher item is selected.\n */\n @property()\n value = '';\n\n /**\n * `true` if the content switcher button should be icon-only.\n */\n @property({ type: Boolean, reflect: true })\n icon = false;\n\n /**\n * Specify how the trigger should align with the tooltip for icon-only\n * switcher item\n */\n @property({ reflect: true, type: String })\n align = 'top';\n\n /**\n * Determines whether the tooltip should close when inner content is\n * activated (click, Enter or Space)\n */\n @property({ attribute: 'close-on-activation', reflect: true, type: Boolean })\n closeOnActivation = true;\n\n /**\n * Specify the duration in milliseconds to delay before displaying the\n * tooltip for icon-only switcher item\n */\n enterDelayMs = 100;\n\n /**\n * Specify the duration in milliseconds to delay before hiding the tooltip\n * for icon-only switcher-item\n *\n * TODO: match upstream value once #10471 is resolved\n */\n leaveDelayMs = 100;\n\n updated(changedProperties) {\n if (changedProperties) {\n this.shadowRoot\n ?.querySelector(`${prefix}-tooltip`)\n ?.shadowRoot?.querySelector(`.${prefix}--tooltip`)\n ?.classList.add(`${prefix}--icon-tooltip`);\n }\n }\n\n // eslint-disable-next-line class-methods-use-this\n protected _renderTooltipContent() {\n return html`\n <cds-tooltip-content>\n <slot name=\"tooltip-content\"></slot>\n </cds-tooltip-content>\n `;\n }\n\n shouldUpdate(changedProperties) {\n if (changedProperties.has('selected') || changedProperties.has('target')) {\n const { selected, target } = this;\n if (target) {\n const doc = this.getRootNode() as HTMLDocument;\n // `doc` can be an element if such element is orphaned\n const targetNode = doc?.getElementById(target);\n targetNode?.toggleAttribute('hidden', !selected);\n }\n }\n return true;\n }\n\n render() {\n const { disabled, selected, target } = this;\n const className = classMap({\n [`${prefix}--content-switcher-btn`]: true,\n [`${prefix}--content-switcher--selected`]: selected,\n });\n const switcherItem = html`<button\n type=\"button\"\n role=\"tab\"\n class=\"${className}\"\n ?disabled=\"${disabled}\"\n tabindex=\"${selected ? '0' : '-1'}\"\n aria-controls=\"${ifDefined(target)}\"\n aria-selected=\"${Boolean(selected)}\">\n <span class=\"${prefix}--content-switcher__label\"><slot></slot></span>\n </button>`;\n\n if (this.icon) {\n const { align, closeOnActivation, enterDelayMs, leaveDelayMs } = this;\n return html`<cds-tooltip\n align=${align}\n close-on-activation=\"${closeOnActivation}\"\n enter-delay-ms=${enterDelayMs}\n leave-delay-ms=${leaveDelayMs}>\n ${switcherItem} ${this._renderTooltipContent()}\n </cds-tooltip>`;\n }\n return switcherItem;\n }\n\n static shadowRootOptions = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n };\n static styles = styles;\n}\n"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,QAAQ,QAAQ,6BAA6B;AACtD,SAASC,SAAS,QAAQ,8BAA8B;AACxD,SAASC,UAAU,EAAEC,IAAI,QAAQ,KAAK;AACtC,SAASC,QAAQ,QAAQ,mBAAmB;AAC5C,SAASC,MAAM,QAAQ,wBAAwB;AAC/C,OAAOC,UAAU,MAAM,4BAA4B;AACnD,OAAOC,MAAM,MAAM,6BAAyB;AAC5C,SAASC,aAAa,IAAIC,aAAa,QAAQ,yCAAyC;;AAExF;AACA;AACA;AACA;AACA;AAJA,IAMqBC,sBAAsB,GAAAC,SAAA,EAD1CF,aAAa,CAAC,GAAGJ,MAAM,wBAAwB,CAAC,aAAAO,WAAA,EAAAC,WAAA;EAAjD,MACqBH,sBAAsB,SAAAG,WAAA,CAAgC;IAAAC,YAAA,GAAAC,IAAA;MAAA,SAAAA,IAAA;MAAAH,WAAA;IAAA;EAwI3E;EAAC;IAAAI,CAAA,EAxIoBN,sBAAsB;IAAAO,CAAA;MAAAC,IAAA;MAAAC,UAAA,GAIxCf,QAAQ,CAAC;QAAEgB,IAAI,EAAEC,OAAO;QAAEC,OAAO,EAAE;MAAK,CAAC,CAAC;MAAAC,GAAA;MAAAC,MAAA;QAAA,OAChC,KAAK;MAAA;IAAA;MAAAN,IAAA;MAAAC,UAAA,GAOff,QAAQ,CAAC;QAAEgB,IAAI,EAAEC,OAAO;QAAEC,OAAO,EAAE,IAAI;QAAEG,SAAS,EAAE;MAAe,CAAC,CAAC;MAAAF,GAAA;MAAAC,MAAA;QAAA,OACxD,KAAK;MAAA;IAAA;MAAAN,IAAA;MAAAC,UAAA,GAOlBf,QAAQ,CAAC;QAAEgB,IAAI,EAAEC,OAAO;QAAEC,OAAO,EAAE;MAAK,CAAC,CAAC;MAAAC,GAAA;MAAAC,MAAA;QAAA,OAChC,KAAK;MAAA;IAAA;MAAAN,IAAA;MAAAC,UAAA,GAKff,QAAQ,CAAC,CAAC;MAAAmB,GAAA;MAAAC,KAAA;IAAA;MAAAN,IAAA;MAAAC,UAAA,GAOVf,QAAQ,CAAC,CAAC;MAAAmB,GAAA;MAAAC,MAAA;QAAA,OACH,EAAE;MAAA;IAAA;MAAAN,IAAA;MAAAC,UAAA,GAKTf,QAAQ,CAAC;QAAEgB,IAAI,EAAEC,OAAO;QAAEC,OAAO,EAAE;MAAK,CAAC,CAAC;MAAAC,GAAA;MAAAC,MAAA;QAAA,OACpC,KAAK;MAAA;IAAA;MAAAN,IAAA;MAAAC,UAAA,GAMXf,QAAQ,CAAC;QAAEkB,OAAO,EAAE,IAAI;QAAEF,IAAI,EAAEM;MAAO,CAAC,CAAC;MAAAH,GAAA;MAAAC,MAAA;QAAA,OAClC,KAAK;MAAA;IAAA;MAAAN,IAAA;MAAAC,UAAA,GAMZf,QAAQ,CAAC;QAAEqB,SAAS,EAAE,qBAAqB;QAAEH,OAAO,EAAE,IAAI;QAAEF,IAAI,EAAEC;MAAQ,CAAC,CAAC;MAAAE,GAAA;MAAAC,MAAA;QAAA,OACzD,IAAI;MAAA;IAAA;MAAAN,IAAA;MAAAK,GAAA;MAAAC,MAAA;QAAA,OAMT,GAAG;MAAA;IAAA;MAAAN,IAAA;MAAAK,GAAA;MAAAC,MAAA;QAAA,OAQH,GAAG;MAAA;IAAA;MAAAN,IAAA;MAAAK,GAAA;MAAAC,KAAA;MAnElB;AACF;AACA;;MAIE;AACF;AACA;AACA;AACA;;MAIE;AACF;AACA;AACA;AACA;;MAIE;AACF;AACA;;MAIE;AACF;AACA;AACA;;MAIE;AACF;AACA;;MAIE;AACF;AACA;AACA;;MAIE;AACF;AACA;AACA;;MAIE;AACF;AACA;AACA;;MAGE;AACF;AACA;AACA;AACA;AACA;;MAGE,SAAAG,
|
|
1
|
+
{"version":3,"file":"content-switcher-item.js","names":["classMap","ifDefined","LitElement","html","property","prefix","FocusMixin","styles","carbonElement","customElement","CDSContentSwitcherItem","_decorate","_initialize","_FocusMixin","constructor","args","F","d","kind","decorators","type","Boolean","reflect","key","value","attribute","String","updated","changedProperties","_this$shadowRoot","shadowRoot","querySelector","classList","add","_renderTooltipContent","_t","_","shouldUpdate","has","selected","target","doc","getRootNode","targetNode","getElementById","toggleAttribute","render","disabled","className","switcherItem","_t2","icon","align","closeOnActivation","enterDelayMs","leaveDelayMs","_t3","static","_objectSpread","shadowRootOptions","delegatesFocus","default"],"sources":["components/content-switcher/content-switcher-item.ts"],"sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2019, 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 { classMap } from 'lit/directives/class-map.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { LitElement, html } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { prefix } from '../../globals/settings';\nimport FocusMixin from '../../globals/mixins/focus';\nimport styles from './content-switcher.scss';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\n/**\n * Content switcher button.\n *\n * @element cds-content-switcher-item\n */\n@customElement(`${prefix}-content-switcher-item`)\nexport default class CDSContentSwitcherItem extends FocusMixin(LitElement) {\n /**\n * `true` if this content switcher item should be disabled.\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * `true` to hide the divider at the left.\n *\n * @private\n */\n @property({ type: Boolean, reflect: true, attribute: 'hide-divider' })\n hideDivider = false;\n\n /**\n * `true` if the content switcher button should be selected.\n *\n * @private\n */\n @property({ type: Boolean, reflect: true })\n selected = false;\n\n /**\n * The element ID of target panel.\n */\n @property()\n target!: string;\n\n /**\n * The `value` attribute that is set to the parent `<cds-content-switcher>`\n * when this content switcher item is selected.\n */\n @property()\n value = '';\n\n /**\n * `true` if the content switcher button should be icon-only.\n */\n @property({ type: Boolean, reflect: true })\n icon = false;\n\n /**\n * Specify how the trigger should align with the tooltip for icon-only\n * switcher item\n */\n @property({ reflect: true, type: String })\n align = 'top';\n\n /**\n * Determines whether the tooltip should close when inner content is\n * activated (click, Enter or Space)\n */\n @property({ attribute: 'close-on-activation', reflect: true, type: Boolean })\n closeOnActivation = true;\n\n /**\n * Specify the duration in milliseconds to delay before displaying the\n * tooltip for icon-only switcher item\n */\n enterDelayMs = 100;\n\n /**\n * Specify the duration in milliseconds to delay before hiding the tooltip\n * for icon-only switcher-item\n *\n * TODO: match upstream value once #10471 is resolved\n */\n leaveDelayMs = 100;\n\n updated(changedProperties) {\n if (changedProperties) {\n this.shadowRoot\n ?.querySelector(`${prefix}-tooltip`)\n ?.shadowRoot?.querySelector(`.${prefix}--tooltip`)\n ?.classList.add(`${prefix}--icon-tooltip`);\n }\n }\n\n // eslint-disable-next-line class-methods-use-this\n protected _renderTooltipContent() {\n return html`\n <cds-tooltip-content>\n <slot name=\"tooltip-content\"></slot>\n </cds-tooltip-content>\n `;\n }\n\n shouldUpdate(changedProperties) {\n if (changedProperties.has('selected') || changedProperties.has('target')) {\n const { selected, target } = this;\n if (target) {\n const doc = this.getRootNode() as HTMLDocument;\n // `doc` can be an element if such element is orphaned\n const targetNode = doc?.getElementById(target);\n targetNode?.toggleAttribute('hidden', !selected);\n }\n }\n return true;\n }\n\n render() {\n const { disabled, selected, target } = this;\n const className = classMap({\n [`${prefix}--content-switcher-btn`]: true,\n [`${prefix}--content-switcher--selected`]: selected,\n });\n const switcherItem = html`<button\n type=\"button\"\n role=\"tab\"\n class=\"${className}\"\n ?disabled=\"${disabled}\"\n tabindex=\"${selected ? '0' : '-1'}\"\n aria-controls=\"${ifDefined(target)}\"\n aria-selected=\"${Boolean(selected)}\">\n <span class=\"${prefix}--content-switcher__label\"><slot></slot></span>\n </button>`;\n\n if (this.icon) {\n const { align, closeOnActivation, enterDelayMs, leaveDelayMs } = this;\n return html`<cds-tooltip\n align=${align}\n close-on-activation=\"${closeOnActivation}\"\n enter-delay-ms=${enterDelayMs}\n leave-delay-ms=${leaveDelayMs}>\n ${switcherItem} ${this._renderTooltipContent()}\n </cds-tooltip>`;\n }\n return switcherItem;\n }\n\n static shadowRootOptions = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n };\n static styles = styles;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -313,7 +313,7 @@ let CDSContentSwitcher = _decorate([customElement(`${prefix}-content-switcher`)]
|
|
|
313
313
|
kind: "get",
|
|
314
314
|
static: true,
|
|
315
315
|
key: "selectorItem",
|
|
316
|
-
value: function
|
|
316
|
+
value: function () {
|
|
317
317
|
return `${prefix}-content-switcher-item`;
|
|
318
318
|
}
|
|
319
319
|
|
|
@@ -324,7 +324,7 @@ let CDSContentSwitcher = _decorate([customElement(`${prefix}-content-switcher`)]
|
|
|
324
324
|
kind: "get",
|
|
325
325
|
static: true,
|
|
326
326
|
key: "selectorIconItem",
|
|
327
|
-
value: function
|
|
327
|
+
value: function () {
|
|
328
328
|
return `${prefix}-content-switcher-item[icon]`;
|
|
329
329
|
}
|
|
330
330
|
|
|
@@ -335,7 +335,7 @@ let CDSContentSwitcher = _decorate([customElement(`${prefix}-content-switcher`)]
|
|
|
335
335
|
kind: "get",
|
|
336
336
|
static: true,
|
|
337
337
|
key: "selectorItemEnabled",
|
|
338
|
-
value: function
|
|
338
|
+
value: function () {
|
|
339
339
|
return `${prefix}-content-switcher-item:not([disabled])`;
|
|
340
340
|
}
|
|
341
341
|
|
|
@@ -346,7 +346,7 @@ let CDSContentSwitcher = _decorate([customElement(`${prefix}-content-switcher`)]
|
|
|
346
346
|
kind: "get",
|
|
347
347
|
static: true,
|
|
348
348
|
key: "selectorItemSelected",
|
|
349
|
-
value: function
|
|
349
|
+
value: function () {
|
|
350
350
|
return `${prefix}-content-switcher-item[selected]`;
|
|
351
351
|
}
|
|
352
352
|
|
|
@@ -358,7 +358,7 @@ let CDSContentSwitcher = _decorate([customElement(`${prefix}-content-switcher`)]
|
|
|
358
358
|
kind: "get",
|
|
359
359
|
static: true,
|
|
360
360
|
key: "eventBeforeSelect",
|
|
361
|
-
value: function
|
|
361
|
+
value: function () {
|
|
362
362
|
return `${prefix}-content-switcher-beingselected`;
|
|
363
363
|
}
|
|
364
364
|
|
|
@@ -369,7 +369,7 @@ let CDSContentSwitcher = _decorate([customElement(`${prefix}-content-switcher`)]
|
|
|
369
369
|
kind: "get",
|
|
370
370
|
static: true,
|
|
371
371
|
key: "eventSelect",
|
|
372
|
-
value: function
|
|
372
|
+
value: function () {
|
|
373
373
|
return `${prefix}-content-switcher-selected`;
|
|
374
374
|
}
|
|
375
375
|
}, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content-switcher.js","names":["LitElement","html","property","prefix","forEach","indexOf","NAVIGATION_DIRECTION","CONTENT_SWITCHER_SIZE","styles","carbonElement","customElement","capIndex","index","length","CDSContentSwitcher","_decorate","_initialize","_LitElement","constructor","args","F","d","kind","key","value","_handleHover","target","type","selectorItem","items","querySelectorAll","closest","nextIndex","elem","i","hideDivider","selectorItemSelected","selectedItem","querySelector","nextItem","_getNextItem","_getCurrentItem","_items$index","selectorItemEnabled","containerItem","currentItem","direction","currentIndex","_handleClick","_handleUserInitiatedSelectItem","_handleKeydown","_navigate","item","disabled","init","bubbles","composed","detail","beforeSelectEvent","CustomEvent","eventBeforeSelect","_objectSpread","cancelable","dispatchEvent","_selectionDidChange","afterSelectEvent","eventSelect","requestUpdate","itemToSelect","selected","Promise","resolve","then","focus","decorators","reflect","REGULAR","Boolean","attribute","shouldUpdate","changedProperties","has","selectorIconItem","iconOnly","_handleSlotchange","static","render","handleHover","handleKeydown","handleSlotchange","_t","_","default"],"sources":["components/content-switcher/content-switcher.ts"],"sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2019, 2024\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 { LitElement, html } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { prefix } from '../../globals/settings';\nimport { forEach, indexOf } from '../../globals/internal/collection-helpers';\nimport { NAVIGATION_DIRECTION, CONTENT_SWITCHER_SIZE } from './defs';\nimport CDSContentSwitcherItem from './content-switcher-item';\nimport styles from './content-switcher.scss';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\nexport { NAVIGATION_DIRECTION, CONTENT_SWITCHER_SIZE };\n\n/**\n * @param index The index\n * @param length The length of the array.\n * @returns The new index, adjusting overflow/underflow.\n */\nconst capIndex = (index: number, length: number) => {\n if (index < 0) {\n return length - 1;\n }\n if (index >= length) {\n return 0;\n }\n return index;\n};\n\n/**\n * Content switcher.\n *\n * @element cds-content-switcher\n * @fires cds-content-switcher-beingselected\n * The custom event fired before a content switcher item is selected upon a user gesture.\n * Cancellation of this event stops changing the user-initiated selection.\n * @fires cds-content-switcher-selected - The custom event fired after a a content switcher item is selected upon a user gesture.\n */\n@customElement(`${prefix}-content-switcher`)\nexport default class CDSContentSwitcher extends LitElement {\n /**\n * Handles `mouseover`/`mouseout` events on `<slot>`.\n *\n * @param event The event.\n * @param event.target The event target.\n * @param event.type The event type.\n */\n private _handleHover({ target, type }: MouseEvent) {\n const { selectorItem } = this.constructor as typeof CDSContentSwitcher;\n const items = this.querySelectorAll(selectorItem);\n const index =\n type !== 'mouseover'\n ? -1\n : indexOf(items, (target as Element).closest(selectorItem)!);\n const nextIndex = index < 0 ? index : index + 1;\n forEach(this.querySelectorAll(selectorItem), (elem, i) => {\n // Specifies child `<cds-content-switcher-item>` to hide its divider instead of using CSS,\n // until `:host-context()` gets supported in all major browsers\n (elem as CDSContentSwitcherItem).hideDivider = i === nextIndex;\n });\n\n const { selectorItemSelected } = this\n .constructor as typeof CDSContentSwitcher;\n const selectedItem = this.querySelector(selectorItemSelected);\n const nextItem = this._getNextItem(\n selectedItem as CDSContentSwitcherItem,\n 1\n );\n (nextItem as CDSContentSwitcherItem).hideDivider = true;\n }\n\n /**\n * @param target The current event target.\n * @returns The item to be selected.\n */\n protected _getCurrentItem(target: HTMLElement) {\n const items = this.querySelectorAll(\n (this.constructor as typeof CDSContentSwitcher).selectorItemEnabled\n );\n const { selectorItem } = this.constructor as typeof CDSContentSwitcher;\n const containerItem = target.closest(\n selectorItem\n ) as CDSContentSwitcherItem;\n const index = indexOf(items, containerItem);\n return items[index] ?? null;\n }\n\n /**\n * @param currentItem The currently selected item.\n * @param direction The navigation direction.\n * @returns The item to be selected.\n */\n protected _getNextItem(\n currentItem: CDSContentSwitcherItem,\n direction: number\n ) {\n const items = this.querySelectorAll(\n (this.constructor as typeof CDSContentSwitcher).selectorItemEnabled\n );\n const currentIndex = indexOf(items, currentItem);\n const nextIndex = capIndex(currentIndex + direction, items.length);\n return nextIndex === currentIndex ? null : items[nextIndex];\n }\n\n /**\n * Handles `click` event on content switcher item.\n *\n * @param event The event.\n * @param event.target The event target.\n */\n protected _handleClick({ target }: MouseEvent) {\n const currentItem = this._getCurrentItem(target as HTMLElement);\n this._handleUserInitiatedSelectItem(currentItem as CDSContentSwitcherItem);\n }\n\n /**\n * Handles `keydown` event on the top-level element in the shadow DOM.\n *\n * @param event The event.\n * @param event.key The event key.\n */\n protected _handleKeydown({ key }: KeyboardEvent) {\n if (key in NAVIGATION_DIRECTION) {\n this._navigate(NAVIGATION_DIRECTION[key]);\n }\n }\n\n /**\n * Handles user-initiated selection of a content switcher item.\n *\n * @param [item] The content switcher item user wants to select.\n */\n protected _handleUserInitiatedSelectItem(item: CDSContentSwitcherItem) {\n if (!item.disabled && item.value !== this.value) {\n const init = {\n bubbles: true,\n composed: true,\n detail: {\n item,\n },\n };\n const constructor = this.constructor as typeof CDSContentSwitcher;\n const beforeSelectEvent = new CustomEvent(constructor.eventBeforeSelect, {\n ...init,\n cancelable: true,\n });\n if (this.dispatchEvent(beforeSelectEvent)) {\n this._selectionDidChange(item);\n const afterSelectEvent = new CustomEvent(constructor.eventSelect, init);\n this.dispatchEvent(afterSelectEvent);\n }\n }\n }\n\n /**\n * Navigates through content switcher items.\n *\n * @param direction `-1` to navigate backward, `1` to navigate forward.\n */\n protected _navigate(direction: number) {\n const { selectorItemSelected } = this\n .constructor as typeof CDSContentSwitcher;\n const nextItem = this._getNextItem(\n this.querySelector(selectorItemSelected) as CDSContentSwitcherItem,\n direction\n );\n if (nextItem) {\n this._handleUserInitiatedSelectItem(nextItem as CDSContentSwitcherItem);\n this.requestUpdate();\n }\n }\n\n /**\n * A callback that runs after change in content switcher selection upon user interaction is confirmed.\n *\n * @param itemToSelect A content switcher item.\n */\n protected _selectionDidChange(itemToSelect: CDSContentSwitcherItem) {\n this.value = itemToSelect.value;\n forEach(\n this.querySelectorAll(\n (this.constructor as typeof CDSContentSwitcher).selectorItemSelected\n ),\n (item) => {\n (item as CDSContentSwitcherItem).selected = false;\n }\n );\n itemToSelect.selected = true;\n // Waits for rendering with the new state that updates `tabindex`\n Promise.resolve().then(() => {\n itemToSelect.focus();\n\n const { selectorItem } = this.constructor as typeof CDSContentSwitcher;\n const items = this.querySelectorAll(selectorItem);\n const index = indexOf(\n items,\n (itemToSelect as Element).closest(selectorItem)!\n );\n const nextIndex = index < 0 ? index : index + 1;\n forEach(this.querySelectorAll(selectorItem), (elem, i) => {\n // Specifies child `<cds-content-switcher-item>` to hide its divider instead of using CSS,\n // until `:host-context()` gets supported in all major browsers\n (elem as CDSContentSwitcherItem).hideDivider = i === nextIndex;\n });\n });\n }\n\n /**\n * The value of the selected item.\n */\n @property({ reflect: true })\n value = '';\n\n /**\n * Content switcher size.\n */\n @property({ reflect: true })\n size = CONTENT_SWITCHER_SIZE.REGULAR;\n\n /**\n * Icon only.\n */\n @property({ type: Boolean, reflect: true, attribute: 'icon' })\n iconOnly = false;\n\n shouldUpdate(changedProperties) {\n if (changedProperties.has('value')) {\n const { selectorItem } = this.constructor as typeof CDSContentSwitcher;\n forEach(this.querySelectorAll(selectorItem), (elem) => {\n (elem as CDSContentSwitcherItem).selected =\n (elem as CDSContentSwitcherItem).value === this.value;\n });\n }\n const { selectorIconItem } = this.constructor as typeof CDSContentSwitcher;\n if (this.querySelector(selectorIconItem)) {\n this.iconOnly = true;\n }\n return true;\n }\n\n _handleSlotchange() {\n const { selectorItemSelected } = this\n .constructor as typeof CDSContentSwitcher;\n const selectedItem = this.querySelector(selectorItemSelected);\n const nextItem = this._getNextItem(\n selectedItem as CDSContentSwitcherItem,\n 1\n );\n\n // Specifies child `<cds-content-switcher-item>` to hide its divider instead of using CSS,\n // until `:host-context()` gets supported in all major browsers\n (nextItem as CDSContentSwitcherItem).hideDivider = true;\n }\n\n /**\n * A selector that will return content switcher items.\n */\n static get selectorItem() {\n return `${prefix}-content-switcher-item`;\n }\n\n /**\n * A selector that will return content switcher icon items.\n */\n static get selectorIconItem() {\n return `${prefix}-content-switcher-item[icon]`;\n }\n\n /**\n * A selector that will return enabled content switcher items.\n */\n static get selectorItemEnabled() {\n return `${prefix}-content-switcher-item:not([disabled])`;\n }\n\n /**\n * A selector that will return selected items.\n */\n static get selectorItemSelected() {\n return `${prefix}-content-switcher-item[selected]`;\n }\n\n /**\n * The name of the custom event fired before a content switcher 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}-content-switcher-beingselected`;\n }\n\n /**\n * The name of the custom event fired after a a content switcher item is selected upon a user gesture.\n */\n static get eventSelect() {\n return `${prefix}-content-switcher-selected`;\n }\n\n render() {\n const {\n _handleHover: handleHover,\n _handleKeydown: handleKeydown,\n _handleSlotchange: handleSlotchange,\n } = this;\n return html`\n <slot\n @click=\"${this._handleClick}\"\n @keydown=\"${handleKeydown}\"\n @mouseover=\"${handleHover}\"\n @mouseout=\"${handleHover}\"\n @slotchange=${handleSlotchange}></slot>\n `;\n }\n\n static styles = styles;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"content-switcher.js","names":["LitElement","html","property","prefix","forEach","indexOf","NAVIGATION_DIRECTION","CONTENT_SWITCHER_SIZE","styles","carbonElement","customElement","capIndex","index","length","CDSContentSwitcher","_decorate","_initialize","_LitElement","constructor","args","F","d","kind","key","value","_handleHover","target","type","selectorItem","items","querySelectorAll","closest","nextIndex","elem","i","hideDivider","selectorItemSelected","selectedItem","querySelector","nextItem","_getNextItem","_getCurrentItem","_items$index","selectorItemEnabled","containerItem","currentItem","direction","currentIndex","_handleClick","_handleUserInitiatedSelectItem","_handleKeydown","_navigate","item","disabled","init","bubbles","composed","detail","beforeSelectEvent","CustomEvent","eventBeforeSelect","_objectSpread","cancelable","dispatchEvent","_selectionDidChange","afterSelectEvent","eventSelect","requestUpdate","itemToSelect","selected","Promise","resolve","then","focus","decorators","reflect","REGULAR","Boolean","attribute","shouldUpdate","changedProperties","has","selectorIconItem","iconOnly","_handleSlotchange","static","render","handleHover","handleKeydown","handleSlotchange","_t","_","default"],"sources":["components/content-switcher/content-switcher.ts"],"sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2019, 2024\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 { LitElement, html } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { prefix } from '../../globals/settings';\nimport { forEach, indexOf } from '../../globals/internal/collection-helpers';\nimport { NAVIGATION_DIRECTION, CONTENT_SWITCHER_SIZE } from './defs';\nimport CDSContentSwitcherItem from './content-switcher-item';\nimport styles from './content-switcher.scss';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\nexport { NAVIGATION_DIRECTION, CONTENT_SWITCHER_SIZE };\n\n/**\n * @param index The index\n * @param length The length of the array.\n * @returns The new index, adjusting overflow/underflow.\n */\nconst capIndex = (index: number, length: number) => {\n if (index < 0) {\n return length - 1;\n }\n if (index >= length) {\n return 0;\n }\n return index;\n};\n\n/**\n * Content switcher.\n *\n * @element cds-content-switcher\n * @fires cds-content-switcher-beingselected\n * The custom event fired before a content switcher item is selected upon a user gesture.\n * Cancellation of this event stops changing the user-initiated selection.\n * @fires cds-content-switcher-selected - The custom event fired after a a content switcher item is selected upon a user gesture.\n */\n@customElement(`${prefix}-content-switcher`)\nexport default class CDSContentSwitcher extends LitElement {\n /**\n * Handles `mouseover`/`mouseout` events on `<slot>`.\n *\n * @param event The event.\n * @param event.target The event target.\n * @param event.type The event type.\n */\n private _handleHover({ target, type }: MouseEvent) {\n const { selectorItem } = this.constructor as typeof CDSContentSwitcher;\n const items = this.querySelectorAll(selectorItem);\n const index =\n type !== 'mouseover'\n ? -1\n : indexOf(items, (target as Element).closest(selectorItem)!);\n const nextIndex = index < 0 ? index : index + 1;\n forEach(this.querySelectorAll(selectorItem), (elem, i) => {\n // Specifies child `<cds-content-switcher-item>` to hide its divider instead of using CSS,\n // until `:host-context()` gets supported in all major browsers\n (elem as CDSContentSwitcherItem).hideDivider = i === nextIndex;\n });\n\n const { selectorItemSelected } = this\n .constructor as typeof CDSContentSwitcher;\n const selectedItem = this.querySelector(selectorItemSelected);\n const nextItem = this._getNextItem(\n selectedItem as CDSContentSwitcherItem,\n 1\n );\n (nextItem as CDSContentSwitcherItem).hideDivider = true;\n }\n\n /**\n * @param target The current event target.\n * @returns The item to be selected.\n */\n protected _getCurrentItem(target: HTMLElement) {\n const items = this.querySelectorAll(\n (this.constructor as typeof CDSContentSwitcher).selectorItemEnabled\n );\n const { selectorItem } = this.constructor as typeof CDSContentSwitcher;\n const containerItem = target.closest(\n selectorItem\n ) as CDSContentSwitcherItem;\n const index = indexOf(items, containerItem);\n return items[index] ?? null;\n }\n\n /**\n * @param currentItem The currently selected item.\n * @param direction The navigation direction.\n * @returns The item to be selected.\n */\n protected _getNextItem(\n currentItem: CDSContentSwitcherItem,\n direction: number\n ) {\n const items = this.querySelectorAll(\n (this.constructor as typeof CDSContentSwitcher).selectorItemEnabled\n );\n const currentIndex = indexOf(items, currentItem);\n const nextIndex = capIndex(currentIndex + direction, items.length);\n return nextIndex === currentIndex ? null : items[nextIndex];\n }\n\n /**\n * Handles `click` event on content switcher item.\n *\n * @param event The event.\n * @param event.target The event target.\n */\n protected _handleClick({ target }: MouseEvent) {\n const currentItem = this._getCurrentItem(target as HTMLElement);\n this._handleUserInitiatedSelectItem(currentItem as CDSContentSwitcherItem);\n }\n\n /**\n * Handles `keydown` event on the top-level element in the shadow DOM.\n *\n * @param event The event.\n * @param event.key The event key.\n */\n protected _handleKeydown({ key }: KeyboardEvent) {\n if (key in NAVIGATION_DIRECTION) {\n this._navigate(NAVIGATION_DIRECTION[key]);\n }\n }\n\n /**\n * Handles user-initiated selection of a content switcher item.\n *\n * @param [item] The content switcher item user wants to select.\n */\n protected _handleUserInitiatedSelectItem(item: CDSContentSwitcherItem) {\n if (!item.disabled && item.value !== this.value) {\n const init = {\n bubbles: true,\n composed: true,\n detail: {\n item,\n },\n };\n const constructor = this.constructor as typeof CDSContentSwitcher;\n const beforeSelectEvent = new CustomEvent(constructor.eventBeforeSelect, {\n ...init,\n cancelable: true,\n });\n if (this.dispatchEvent(beforeSelectEvent)) {\n this._selectionDidChange(item);\n const afterSelectEvent = new CustomEvent(constructor.eventSelect, init);\n this.dispatchEvent(afterSelectEvent);\n }\n }\n }\n\n /**\n * Navigates through content switcher items.\n *\n * @param direction `-1` to navigate backward, `1` to navigate forward.\n */\n protected _navigate(direction: number) {\n const { selectorItemSelected } = this\n .constructor as typeof CDSContentSwitcher;\n const nextItem = this._getNextItem(\n this.querySelector(selectorItemSelected) as CDSContentSwitcherItem,\n direction\n );\n if (nextItem) {\n this._handleUserInitiatedSelectItem(nextItem as CDSContentSwitcherItem);\n this.requestUpdate();\n }\n }\n\n /**\n * A callback that runs after change in content switcher selection upon user interaction is confirmed.\n *\n * @param itemToSelect A content switcher item.\n */\n protected _selectionDidChange(itemToSelect: CDSContentSwitcherItem) {\n this.value = itemToSelect.value;\n forEach(\n this.querySelectorAll(\n (this.constructor as typeof CDSContentSwitcher).selectorItemSelected\n ),\n (item) => {\n (item as CDSContentSwitcherItem).selected = false;\n }\n );\n itemToSelect.selected = true;\n // Waits for rendering with the new state that updates `tabindex`\n Promise.resolve().then(() => {\n itemToSelect.focus();\n\n const { selectorItem } = this.constructor as typeof CDSContentSwitcher;\n const items = this.querySelectorAll(selectorItem);\n const index = indexOf(\n items,\n (itemToSelect as Element).closest(selectorItem)!\n );\n const nextIndex = index < 0 ? index : index + 1;\n forEach(this.querySelectorAll(selectorItem), (elem, i) => {\n // Specifies child `<cds-content-switcher-item>` to hide its divider instead of using CSS,\n // until `:host-context()` gets supported in all major browsers\n (elem as CDSContentSwitcherItem).hideDivider = i === nextIndex;\n });\n });\n }\n\n /**\n * The value of the selected item.\n */\n @property({ reflect: true })\n value = '';\n\n /**\n * Content switcher size.\n */\n @property({ reflect: true })\n size = CONTENT_SWITCHER_SIZE.REGULAR;\n\n /**\n * Icon only.\n */\n @property({ type: Boolean, reflect: true, attribute: 'icon' })\n iconOnly = false;\n\n shouldUpdate(changedProperties) {\n if (changedProperties.has('value')) {\n const { selectorItem } = this.constructor as typeof CDSContentSwitcher;\n forEach(this.querySelectorAll(selectorItem), (elem) => {\n (elem as CDSContentSwitcherItem).selected =\n (elem as CDSContentSwitcherItem).value === this.value;\n });\n }\n const { selectorIconItem } = this.constructor as typeof CDSContentSwitcher;\n if (this.querySelector(selectorIconItem)) {\n this.iconOnly = true;\n }\n return true;\n }\n\n _handleSlotchange() {\n const { selectorItemSelected } = this\n .constructor as typeof CDSContentSwitcher;\n const selectedItem = this.querySelector(selectorItemSelected);\n const nextItem = this._getNextItem(\n selectedItem as CDSContentSwitcherItem,\n 1\n );\n\n // Specifies child `<cds-content-switcher-item>` to hide its divider instead of using CSS,\n // until `:host-context()` gets supported in all major browsers\n (nextItem as CDSContentSwitcherItem).hideDivider = true;\n }\n\n /**\n * A selector that will return content switcher items.\n */\n static get selectorItem() {\n return `${prefix}-content-switcher-item`;\n }\n\n /**\n * A selector that will return content switcher icon items.\n */\n static get selectorIconItem() {\n return `${prefix}-content-switcher-item[icon]`;\n }\n\n /**\n * A selector that will return enabled content switcher items.\n */\n static get selectorItemEnabled() {\n return `${prefix}-content-switcher-item:not([disabled])`;\n }\n\n /**\n * A selector that will return selected items.\n */\n static get selectorItemSelected() {\n return `${prefix}-content-switcher-item[selected]`;\n }\n\n /**\n * The name of the custom event fired before a content switcher 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}-content-switcher-beingselected`;\n }\n\n /**\n * The name of the custom event fired after a a content switcher item is selected upon a user gesture.\n */\n static get eventSelect() {\n return `${prefix}-content-switcher-selected`;\n }\n\n render() {\n const {\n _handleHover: handleHover,\n _handleKeydown: handleKeydown,\n _handleSlotchange: handleSlotchange,\n } = this;\n return html`\n <slot\n @click=\"${this._handleClick}\"\n @keydown=\"${handleKeydown}\"\n @mouseover=\"${handleHover}\"\n @mouseout=\"${handleHover}\"\n @slotchange=${handleSlotchange}></slot>\n `;\n }\n\n static styles = styles;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import _decorate from "@babel/runtime/helpers/esm/decorate";
|
|
2
|
-
import _get from "@babel/runtime/helpers/esm/get";
|
|
3
2
|
import _getPrototypeOf from "@babel/runtime/helpers/esm/getPrototypeOf";
|
|
3
|
+
import _get from "@babel/runtime/helpers/esm/get";
|
|
4
4
|
let _ = t => t,
|
|
5
5
|
_t,
|
|
6
6
|
_t2;
|
|
7
|
+
function _superPropGet(t, e, r, o) { var p = _get(_getPrototypeOf(1 & o ? t.prototype : t), e, r); return 2 & o ? function (t) { return p.apply(r, t); } : p; }
|
|
7
8
|
/**
|
|
8
9
|
* @license
|
|
9
10
|
*
|
|
10
|
-
* Copyright IBM Corp. 2019,
|
|
11
|
+
* Copyright IBM Corp. 2019, 2023
|
|
11
12
|
*
|
|
12
13
|
* This source code is licensed under the Apache-2.0 license found in the
|
|
13
14
|
* LICENSE file in the root directory of this source tree.
|
|
@@ -145,7 +146,7 @@ let CDSCopy = _decorate([customElement(`${prefix}-copy`)], function (_initialize
|
|
|
145
146
|
this.closeOnActivation = false;
|
|
146
147
|
this.align = 'bottom';
|
|
147
148
|
this.addEventListener('click', this._handleClickButton);
|
|
148
|
-
|
|
149
|
+
_superPropGet(CDSCopy, "connectedCallback", this, 3)([]);
|
|
149
150
|
}
|
|
150
151
|
}, {
|
|
151
152
|
kind: "method",
|
|
@@ -161,7 +162,7 @@ let CDSCopy = _decorate([customElement(`${prefix}-copy`)], function (_initialize
|
|
|
161
162
|
this._animation = '';
|
|
162
163
|
}
|
|
163
164
|
});
|
|
164
|
-
|
|
165
|
+
_superPropGet(CDSCopy, "updated", this, 3)([changedProperties]);
|
|
165
166
|
(_this$shadowRoot4 = this.shadowRoot) === null || _this$shadowRoot4 === void 0 || (_this$shadowRoot4 = _this$shadowRoot4.querySelector('button') // @ts-ignore: TS thinks `host` doesn't exist on `parentNode`
|
|
166
167
|
) === null || _this$shadowRoot4 === void 0 || _this$shadowRoot4.setAttribute('aria-label', (_this$parentNode = this.parentNode) === null || _this$parentNode === void 0 ? void 0 : _this$parentNode.host.textContent);
|
|
167
168
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"copy.js","names":["html","property","prefix","styles","CDSIconButton","carbonElement","customElement","CDSCopy","_decorate","_initialize","_CDSIconButton","constructor","args","F","d","kind","key","value","timeoutId","timeout","_this$shadowRoot","buttonClasses","shadowRoot","querySelector","classList","clearTimeout","undefined","_showFeedback","add","_animation","requestUpdate","setTimeout","remove","_createHandleFeedbackTooltip","_handleClickButton","_handleFeedbackTooltip","feedbackTimeout","decorators","type","Number","attribute","_renderTooltipContent","_t","_","feedback","_t2","connectedCallback","closeOnActivation","align","addEventListener","
|
|
1
|
+
{"version":3,"file":"copy.js","names":["html","property","prefix","styles","CDSIconButton","carbonElement","customElement","CDSCopy","_decorate","_initialize","_CDSIconButton","constructor","args","F","d","kind","key","value","timeoutId","timeout","_this$shadowRoot","buttonClasses","shadowRoot","querySelector","classList","clearTimeout","undefined","_showFeedback","add","_animation","requestUpdate","setTimeout","remove","_createHandleFeedbackTooltip","_handleClickButton","_handleFeedbackTooltip","feedbackTimeout","decorators","type","Number","attribute","_renderTooltipContent","_t","_","feedback","_t2","connectedCallback","closeOnActivation","align","addEventListener","_superPropGet","updated","changedProperties","_this$shadowRoot2","_this$shadowRoot4","_this$parentNode","_this$shadowRoot3","setAttribute","parentNode","host","textContent","static"],"sources":["components/copy/copy.ts"],"sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2019, 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 } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { prefix } from '../../globals/settings';\nimport styles from '../copy-button/copy-button.scss';\nimport CDSIconButton from '../icon-button/icon-button';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\n/**\n * Copy.\n *\n * @element cds-copy\n */\n@customElement(`${prefix}-copy`)\nclass CDSCopy extends CDSIconButton {\n /**\n * `true` to show the feedback tooltip.\n */\n private _showFeedback = false;\n\n /**\n * `true` to show the feedback tooltip.\n */\n private _animation = '';\n\n private _createHandleFeedbackTooltip = () => {\n let timeoutId: number | void;\n return (timeout: number) => {\n const buttonClasses = this.shadowRoot?.querySelector('button')?.classList;\n\n if (timeoutId) {\n clearTimeout(timeoutId);\n timeoutId = undefined;\n }\n this._showFeedback = true;\n buttonClasses?.add(`${prefix}--copy-btn--animating`);\n this._animation = 'fade-in';\n buttonClasses?.add(`${prefix}--copy-btn--${this._animation}`);\n this.requestUpdate();\n timeoutId = setTimeout(() => {\n this._showFeedback = false;\n this._animation = 'fade-out';\n buttonClasses?.remove(`${prefix}--copy-btn--fade-in`);\n buttonClasses?.add(`${prefix}--copy-btn--${this._animation}`);\n this.requestUpdate();\n }, timeout) as unknown as number;\n };\n };\n\n /**\n * Handles showing/hiding the feedback tooltip.\n */\n private _handleFeedbackTooltip = this._createHandleFeedbackTooltip();\n\n /**\n * Handles `click` event on the copy button.\n */\n private _handleClickButton() {\n this._handleFeedbackTooltip(this.feedbackTimeout);\n }\n\n /**\n * Specify the string that is displayed when the button is clicked and the content is copi\n */\n @property()\n feedback = 'Copied!';\n\n /**\n * The number in milliseconds to determine how long the tooltip should remain.\n */\n @property({ type: Number, attribute: 'feedback-timeout' })\n feedbackTimeout = 2000;\n\n // eslint-disable-next-line class-methods-use-this\n protected _renderTooltipContent() {\n return html`\n <cds-tooltip-content>\n ${this._showFeedback\n ? this.feedback\n : html`<slot name=\"tooltip-content\"></slot>`}\n </cds-tooltip-content>\n `;\n }\n\n connectedCallback() {\n this.closeOnActivation = false;\n this.align = 'bottom';\n\n this.addEventListener('click', this._handleClickButton);\n\n super.connectedCallback();\n }\n\n updated(changedProperties) {\n this.shadowRoot\n ?.querySelector('button')\n ?.addEventListener('animationend', () => {\n if (this._animation === 'fade-out') {\n const buttonClasses =\n this.shadowRoot?.querySelector('button')?.classList;\n buttonClasses?.remove(`${prefix}--copy-btn--animating`);\n buttonClasses?.remove(`${prefix}--copy-btn--${this._animation}`);\n this._animation = '';\n }\n });\n\n super.updated(changedProperties);\n\n this.shadowRoot\n ?.querySelector('button') // @ts-ignore: TS thinks `host` doesn't exist on `parentNode`\n ?.setAttribute('aria-label', this.parentNode?.host.textContent);\n }\n\n static styles = styles;\n}\n\nexport default CDSCopy;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"copy-button.js","names":["LitElement","html","property","Copy16","carbonElement","customElement","prefix","FocusMixin","styles","CDSCopyButton","_decorate","_initialize","_FocusMixin","constructor","args","F","d","kind","decorators","reflect","attribute","key","value","type","Boolean","Number","render","buttonClassName","disabled","feedback","feedbackTimeout","classes","_t","_","slot","class","static"],"sources":["components/copy-button/copy-button.ts"],"sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2019,
|
|
1
|
+
{"version":3,"file":"copy-button.js","names":["LitElement","html","property","Copy16","carbonElement","customElement","prefix","FocusMixin","styles","CDSCopyButton","_decorate","_initialize","_FocusMixin","constructor","args","F","d","kind","decorators","reflect","attribute","key","value","type","Boolean","Number","render","buttonClassName","disabled","feedback","feedbackTimeout","classes","_t","_","slot","class","static"],"sources":["components/copy-button/copy-button.ts"],"sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2019, 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 { LitElement, html } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport Copy16 from '@carbon/icons/lib/copy/16';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport { prefix } from '../../globals/settings';\nimport FocusMixin from '../../globals/mixins/focus';\nimport styles from './copy-button.scss';\nimport '../copy/copy';\n\n/**\n * Copy button.\n *\n * @element cds-copy-button\n */\n@customElement(`${prefix}-copy-button`)\nclass CDSCopyButton extends FocusMixin(LitElement) {\n /**\n * Specify an optional className to be added to your Button\n */\n @property({ reflect: true, attribute: 'button-class-name' })\n buttonClassName;\n\n /**\n * `true` if the button should be disabled.\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * Specify the string that is displayed when the button is clicked and the content is copi\n */\n @property()\n feedback = 'Copied!';\n\n /**\n * The number in milliseconds to determine how long the tooltip should remain.\n */\n @property({ type: Number, attribute: 'feedback-timeout' })\n feedbackTimeout = 2000;\n\n render() {\n const { buttonClassName, disabled, feedback, feedbackTimeout } = this;\n\n let classes = `${prefix}--copy-btn`;\n\n if (buttonClassName) {\n classes += ` ${buttonClassName}`;\n }\n\n return html`\n <cds-copy\n ?disabled=${disabled}\n feedback=${feedback}\n feedback-timeout=${feedbackTimeout}\n button-class-name=${classes}>\n ${Copy16({ slot: 'icon', class: `${prefix}--snippet__icon` })}\n <slot slot=\"tooltip-content\"></slot>\n </cds-copy>\n `;\n }\n\n static styles = styles;\n}\n\nexport default CDSCopyButton;\n"],"mappings":";;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,UAAU,EAAEC,IAAI,QAAQ,KAAK;AACtC,SAASC,QAAQ,QAAQ,mBAAmB;AAC5C,OAAOC,MAAM,MAAM,qBAA2B;AAC9C,SAASC,aAAa,IAAIC,aAAa,QAAQ,yCAAyC;AACxF,SAASC,MAAM,QAAQ,wBAAwB;AAC/C,OAAOC,UAAU,MAAM,4BAA4B;AACnD,OAAOC,MAAM,MAAM,wBAAoB;AACvC,OAAO,cAAc;;AAErB;AACA;AACA;AACA;AACA;AAJA,IAMMC,aAAa,GAAAC,SAAA,EADlBL,aAAa,CAAC,GAAGC,MAAM,cAAc,CAAC,aAAAK,WAAA,EAAAC,WAAA;EAAvC,MACMH,aAAa,SAAAG,WAAA,CAAgC;IAAAC,YAAA,GAAAC,IAAA;MAAA,SAAAA,IAAA;MAAAH,WAAA;IAAA;EA+CnD;EAAC;IAAAI,CAAA,EA/CKN,aAAa;IAAAO,CAAA;MAAAC,IAAA;MAAAC,UAAA,GAIhBhB,QAAQ,CAAC;QAAEiB,OAAO,EAAE,IAAI;QAAEC,SAAS,EAAE;MAAoB,CAAC,CAAC;MAAAC,GAAA;MAAAC,KAAA;IAAA;MAAAL,IAAA;MAAAC,UAAA,GAM3DhB,QAAQ,CAAC;QAAEqB,IAAI,EAAEC,OAAO;QAAEL,OAAO,EAAE;MAAK,CAAC,CAAC;MAAAE,GAAA;MAAAC,MAAA;QAAA,OAChC,KAAK;MAAA;IAAA;MAAAL,IAAA;MAAAC,UAAA,GAKfhB,QAAQ,CAAC,CAAC;MAAAmB,GAAA;MAAAC,MAAA;QAAA,OACA,SAAS;MAAA;IAAA;MAAAL,IAAA;MAAAC,UAAA,GAKnBhB,QAAQ,CAAC;QAAEqB,IAAI,EAAEE,MAAM;QAAEL,SAAS,EAAE;MAAmB,CAAC,CAAC;MAAAC,GAAA;MAAAC,MAAA;QAAA,OACxC,IAAI;MAAA;IAAA;MAAAL,IAAA;MAAAI,GAAA;MAAAC,KAAA;MAtBtB;AACF;AACA;;MAIE;AACF;AACA;;MAIE;AACF;AACA;;MAIE;AACF;AACA;;MAIE,SAAAI,MAAMA,CAAA,EAAG;QACP,MAAM;UAAEC,eAAe;UAAEC,QAAQ;UAAEC,QAAQ;UAAEC;QAAgB,CAAC,GAAG,IAAI;QAErE,IAAIC,OAAO,GAAG,GAAGzB,MAAM,YAAY;QAEnC,IAAIqB,eAAe,EAAE;UACnBI,OAAO,IAAI,IAAIJ,eAAe,EAAE;QAClC;QAEA,OAAO1B,IAAI,CAAA+B,EAAA,KAAAA,EAAA,GAAAC,CAAA;AACf;AACA,oBAFe;AACf,mBADe;AACf,2BADe;AACf,4BADe;AACf,UADe;AACf;AACA;AACA,KAHe,GAEKL,QAAQ,EACTC,QAAQ,EACAC,eAAe,EACdC,OAAO,EACzB5B,MAAM,CAAC;UAAE+B,IAAI,EAAE,MAAM;UAAEC,KAAK,EAAE,GAAG7B,MAAM;QAAkB,CAAC,CAAC;MAInE;IAAC;MAAAW,IAAA;MAAAmB,MAAA;MAAAf,GAAA;MAAAC,MAAA;QAAA,OAEed,MAAM;MAAA;IAAA;EAAA;AAAA,GA9CID,UAAU,CAACP,UAAU,CAAC;AAiDlD,eAAeS,aAAa","ignoreList":[]}
|