@carbon/web-components 2.49.0 → 2.50.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/custom-elements.json +278 -228
- package/es/components/accordion/accordion-item-skeleton.js +3 -3
- package/es/components/accordion/accordion-item-skeleton.js.map +1 -1
- package/es/components/accordion/accordion-item.js +3 -3
- package/es/components/accordion/accordion-item.js.map +1 -1
- package/es/components/accordion/accordion-skeleton.js +3 -3
- package/es/components/accordion/accordion-skeleton.js.map +1 -1
- package/es/components/accordion/accordion.js +2 -2
- package/es/components/accordion/accordion.js.map +1 -1
- package/es/components/ai-label/ai-label-action-button.js +2 -2
- package/es/components/ai-label/ai-label-action-button.js.map +1 -1
- package/es/components/ai-label/ai-label.js +3 -3
- package/es/components/ai-label/ai-label.js.map +1 -1
- package/es/components/ai-skeleton/ai-skeleton-icon.js +2 -2
- package/es/components/ai-skeleton/ai-skeleton-icon.js.map +1 -1
- package/es/components/ai-skeleton/ai-skeleton-placeholder.js +2 -2
- package/es/components/ai-skeleton/ai-skeleton-placeholder.js.map +1 -1
- package/es/components/ai-skeleton/ai-skeleton-text.js +2 -2
- package/es/components/ai-skeleton/ai-skeleton-text.js.map +1 -1
- package/es/components/badge-indicator/badge-indicator.js +2 -2
- package/es/components/badge-indicator/badge-indicator.js.map +1 -1
- package/es/components/breadcrumb/breadcrumb-item.d.ts +1 -1
- package/es/components/breadcrumb/breadcrumb-item.js +15 -12
- package/es/components/breadcrumb/breadcrumb-item.js.map +1 -1
- package/es/components/breadcrumb/breadcrumb-link.js +2 -2
- package/es/components/breadcrumb/breadcrumb-link.js.map +1 -1
- package/es/components/breadcrumb/breadcrumb-overflow-menu.js +3 -3
- package/es/components/breadcrumb/breadcrumb-overflow-menu.js.map +1 -1
- package/es/components/breadcrumb/breadcrumb-skeleton.js +2 -2
- package/es/components/breadcrumb/breadcrumb-skeleton.js.map +1 -1
- package/es/components/breadcrumb/breadcrumb.js +2 -2
- package/es/components/breadcrumb/breadcrumb.js.map +1 -1
- package/es/components/button/button-set.js +2 -2
- package/es/components/button/button-set.js.map +1 -1
- package/es/components/button/button-skeleton.js +3 -2
- package/es/components/button/button-skeleton.js.map +1 -1
- package/es/components/button/button.d.ts +14 -16
- package/es/components/button/button.js +27 -24
- package/es/components/button/button.js.map +1 -1
- package/es/components/button/button.scss.js +1 -1
- package/es/components/chat-button/chat-button-skeleton.js +2 -2
- package/es/components/chat-button/chat-button-skeleton.js.map +1 -1
- package/es/components/chat-button/chat-button.js +2 -2
- package/es/components/chat-button/chat-button.js.map +1 -1
- package/es/components/checkbox/checkbox-group.js +3 -3
- package/es/components/checkbox/checkbox-group.js.map +1 -1
- package/es/components/checkbox/checkbox-skeleton.js +2 -2
- package/es/components/checkbox/checkbox-skeleton.js.map +1 -1
- package/es/components/checkbox/checkbox.js +1 -1
- package/es/components/code-snippet/code-snippet-skeleton.js +2 -2
- package/es/components/code-snippet/code-snippet-skeleton.js.map +1 -1
- package/es/components/code-snippet/code-snippet.js +3 -3
- package/es/components/code-snippet/code-snippet.js.map +1 -1
- package/es/components/combo-box/combo-box-item.js +2 -2
- package/es/components/combo-box/combo-box-item.js.map +1 -1
- package/es/components/combo-box/combo-box.js +16 -8
- package/es/components/combo-box/combo-box.js.map +1 -1
- package/es/components/combo-button/combo-button.js +3 -3
- package/es/components/combo-button/combo-button.js.map +1 -1
- package/es/components/contained-list/contained-list-description.js +2 -2
- package/es/components/contained-list/contained-list-description.js.map +1 -1
- package/es/components/contained-list/contained-list-item.js +2 -2
- package/es/components/contained-list/contained-list-item.js.map +1 -1
- package/es/components/contained-list/contained-list.js +2 -2
- package/es/components/contained-list/contained-list.js.map +1 -1
- package/es/components/copy/copy.js +2 -2
- package/es/components/copy/copy.js.map +1 -1
- package/es/components/copy-button/copy-button.js +3 -3
- package/es/components/copy-button/copy-button.js.map +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 +2 -2
- package/es/components/data-table/table-body.js.map +1 -1
- package/es/components/data-table/table-cell-content.js +2 -2
- package/es/components/data-table/table-cell-content.js.map +1 -1
- package/es/components/data-table/table-cell.js +2 -2
- package/es/components/data-table/table-cell.js.map +1 -1
- package/es/components/data-table/table-expanded-row.js +2 -2
- package/es/components/data-table/table-expanded-row.js.map +1 -1
- package/es/components/data-table/table-head.js +2 -2
- package/es/components/data-table/table-head.js.map +1 -1
- package/es/components/data-table/table-header-cell.js +3 -3
- package/es/components/data-table/table-header-cell.js.map +1 -1
- package/es/components/data-table/table-header-description.js +2 -2
- package/es/components/data-table/table-header-description.js.map +1 -1
- package/es/components/data-table/table-header-row.js +2 -2
- package/es/components/data-table/table-header-row.js.map +1 -1
- package/es/components/data-table/table-header-title.js +2 -2
- package/es/components/data-table/table-header-title.js.map +1 -1
- package/es/components/data-table/table-row.js +1 -1
- package/es/components/data-table/table-skeleton.js +2 -2
- package/es/components/data-table/table-skeleton.js.map +1 -1
- package/es/components/data-table/table-toolbar-content.js +2 -2
- package/es/components/data-table/table-toolbar-content.js.map +1 -1
- package/es/components/data-table/table-toolbar-search.js +2 -2
- package/es/components/data-table/table-toolbar-search.js.map +1 -1
- package/es/components/data-table/table-toolbar.js +2 -2
- package/es/components/data-table/table-toolbar.js.map +1 -1
- package/es/components/data-table/table.js +2 -2
- package/es/components/data-table/table.js.map +1 -1
- package/es/components/date-picker/date-picker-input-skeleton.js +2 -2
- package/es/components/date-picker/date-picker-input-skeleton.js.map +1 -1
- package/es/components/date-picker/date-picker-input.js +1 -1
- package/es/components/date-picker/date-picker.js +2 -2
- package/es/components/date-picker/date-picker.js.map +1 -1
- package/es/components/date-picker/icon-plugin.js +1 -1
- package/es/components/dropdown/dropdown-item.js +1 -1
- package/es/components/dropdown/dropdown-skeleton.js +2 -2
- package/es/components/dropdown/dropdown-skeleton.js.map +1 -1
- package/es/components/dropdown/dropdown.js +1 -1
- package/es/components/feature-flags/index.d.ts +1 -1
- package/es/components/feature-flags/index.js +7 -4
- package/es/components/feature-flags/index.js.map +1 -1
- package/es/components/file-uploader/demo-file-uploader.js +2 -2
- 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 +3 -3
- package/es/components/file-uploader/file-uploader-item.js.map +1 -1
- package/es/components/file-uploader/file-uploader-skeleton.js +2 -2
- package/es/components/file-uploader/file-uploader-skeleton.js.map +1 -1
- package/es/components/file-uploader/file-uploader.js +2 -2
- package/es/components/file-uploader/file-uploader.js.map +1 -1
- package/es/components/floating-menu/defs.d.ts +10 -2
- package/es/components/floating-menu/defs.js +9 -1
- package/es/components/floating-menu/defs.js.map +1 -1
- package/es/components/floating-menu/floating-menu.d.ts +31 -1
- package/es/components/floating-menu/floating-menu.js +110 -43
- package/es/components/floating-menu/floating-menu.js.map +1 -1
- package/es/components/fluid-number-input/fluid-number-input-skeleton.js +2 -2
- package/es/components/fluid-number-input/fluid-number-input-skeleton.js.map +1 -1
- package/es/components/fluid-number-input/fluid-number-input.js +2 -2
- package/es/components/fluid-number-input/fluid-number-input.js.map +1 -1
- package/es/components/fluid-search/fluid-search-skeleton.js +2 -2
- package/es/components/fluid-search/fluid-search-skeleton.js.map +1 -1
- package/es/components/fluid-search/fluid-search.js +2 -2
- package/es/components/fluid-search/fluid-search.js.map +1 -1
- package/es/components/fluid-select/fluid-select-skeleton.js +2 -2
- package/es/components/fluid-select/fluid-select-skeleton.js.map +1 -1
- package/es/components/fluid-text-input/fluid-text-input-skeleton.js +2 -2
- package/es/components/fluid-text-input/fluid-text-input-skeleton.js.map +1 -1
- package/es/components/fluid-text-input/fluid-text-input.js +2 -2
- package/es/components/fluid-text-input/fluid-text-input.js.map +1 -1
- package/es/components/fluid-textarea/fluid-textarea-skeleton.js +2 -2
- package/es/components/fluid-textarea/fluid-textarea-skeleton.js.map +1 -1
- package/es/components/fluid-textarea/fluid-textarea.js +2 -2
- package/es/components/fluid-textarea/fluid-textarea.js.map +1 -1
- package/es/components/fluid-time-picker/fluid-time-picker-select.js +2 -2
- package/es/components/fluid-time-picker/fluid-time-picker-select.js.map +1 -1
- package/es/components/fluid-time-picker/fluid-time-picker-skeleton.js +2 -2
- package/es/components/fluid-time-picker/fluid-time-picker-skeleton.js.map +1 -1
- package/es/components/fluid-time-picker/fluid-time-picker.js +3 -3
- package/es/components/fluid-time-picker/fluid-time-picker.js.map +1 -1
- package/es/components/form/form-item.js +2 -2
- package/es/components/form/form-item.js.map +1 -1
- package/es/components/form/form.js +2 -2
- package/es/components/form/form.js.map +1 -1
- package/es/components/form-group/form-group.js +2 -2
- package/es/components/form-group/form-group.js.map +1 -1
- package/es/components/grid/column-hang.js +2 -2
- package/es/components/grid/column-hang.js.map +1 -1
- package/es/components/grid/column.js +2 -2
- package/es/components/grid/column.js.map +1 -1
- package/es/components/grid/grid.js +2 -2
- package/es/components/grid/grid.js.map +1 -1
- package/es/components/heading/heading.js +2 -2
- package/es/components/heading/heading.js.map +1 -1
- package/es/components/icon/icon.js +2 -2
- package/es/components/icon/icon.js.map +1 -1
- package/es/components/icon-indicator/icon-indicator.js +3 -3
- package/es/components/icon-indicator/icon-indicator.js.map +1 -1
- package/es/components/inline-loading/inline-loading.js +3 -3
- 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/list/list-item.js +2 -2
- package/es/components/list/list-item.js.map +1 -1
- package/es/components/list/ordered-list.js +2 -2
- package/es/components/list/ordered-list.js.map +1 -1
- package/es/components/loading/loading.js +2 -2
- package/es/components/loading/loading.js.map +1 -1
- package/es/components/menu/menu-item-divider.js +2 -2
- package/es/components/menu/menu-item-divider.js.map +1 -1
- package/es/components/menu/menu-item-group.js +2 -2
- package/es/components/menu/menu-item-group.js.map +1 -1
- package/es/components/menu/menu-item-radio-group.js +2 -2
- package/es/components/menu/menu-item-radio-group.js.map +1 -1
- package/es/components/menu/menu-item-selectable.js +2 -2
- package/es/components/menu/menu-item-selectable.js.map +1 -1
- package/es/components/menu/menu-item.js +3 -3
- package/es/components/menu/menu-item.js.map +1 -1
- package/es/components/menu/menu.js +2 -2
- package/es/components/menu/menu.js.map +1 -1
- package/es/components/menu-button/menu-button.js +3 -3
- package/es/components/menu-button/menu-button.js.map +1 -1
- package/es/components/modal/modal-body-content.js +2 -2
- package/es/components/modal/modal-body-content.js.map +1 -1
- package/es/components/modal/modal-body.js +2 -2
- package/es/components/modal/modal-body.js.map +1 -1
- package/es/components/modal/modal-close-button.js +3 -3
- package/es/components/modal/modal-close-button.js.map +1 -1
- package/es/components/modal/modal-footer-button.js +2 -2
- package/es/components/modal/modal-footer-button.js.map +1 -1
- package/es/components/modal/modal-footer.js +2 -2
- package/es/components/modal/modal-footer.js.map +1 -1
- package/es/components/modal/modal-header.js +2 -2
- package/es/components/modal/modal-header.js.map +1 -1
- package/es/components/modal/modal-heading.js +2 -2
- package/es/components/modal/modal-heading.js.map +1 -1
- package/es/components/modal/modal-label.js +2 -2
- package/es/components/modal/modal-label.js.map +1 -1
- package/es/components/modal/modal.js +2 -2
- package/es/components/modal/modal.js.map +1 -1
- package/es/components/multi-select/multi-select-item.js +2 -2
- package/es/components/multi-select/multi-select-item.js.map +1 -1
- package/es/components/multi-select/multi-select.d.ts +9 -0
- package/es/components/multi-select/multi-select.js +58 -11
- package/es/components/multi-select/multi-select.js.map +1 -1
- package/es/components/notification/actionable-notification-button.js +2 -2
- package/es/components/notification/actionable-notification-button.js.map +1 -1
- package/es/components/notification/actionable-notification.js +1 -1
- package/es/components/notification/callout-notification.js +3 -3
- package/es/components/notification/callout-notification.js.map +1 -1
- package/es/components/notification/inline-notification.js +1 -1
- package/es/components/notification/toast-notification.js +2 -2
- package/es/components/notification/toast-notification.js.map +1 -1
- package/es/components/number-input/number-input.js +1 -1
- package/es/components/overflow-menu/overflow-menu-body.d.ts +18 -2
- package/es/components/overflow-menu/overflow-menu-body.js +25 -4
- package/es/components/overflow-menu/overflow-menu-body.js.map +1 -1
- package/es/components/overflow-menu/overflow-menu-item.js +2 -2
- package/es/components/overflow-menu/overflow-menu-item.js.map +1 -1
- package/es/components/overflow-menu/overflow-menu.scss.js +1 -1
- package/es/components/page-header/page-header-breadcrumb.js +2 -2
- package/es/components/page-header/page-header-breadcrumb.js.map +1 -1
- package/es/components/page-header/page-header-content-text.js +2 -2
- package/es/components/page-header/page-header-content-text.js.map +1 -1
- package/es/components/page-header/page-header-content.js +2 -2
- package/es/components/page-header/page-header-content.js.map +1 -1
- package/es/components/page-header/page-header-hero-image.js +2 -2
- package/es/components/page-header/page-header-hero-image.js.map +1 -1
- package/es/components/page-header/page-header-tabs.js +2 -2
- package/es/components/page-header/page-header-tabs.js.map +1 -1
- package/es/components/page-header/page-header.js +2 -2
- package/es/components/page-header/page-header.js.map +1 -1
- package/es/components/pagination/pagination.js +4 -4
- package/es/components/pagination/pagination.js.map +1 -1
- package/es/components/pagination-nav/pagination-nav.js +3 -3
- package/es/components/pagination-nav/pagination-nav.js.map +1 -1
- package/es/components/password-input/password-input-skeleton.js +2 -2
- package/es/components/password-input/password-input-skeleton.js.map +1 -1
- package/es/components/password-input/password-input.js +3 -3
- package/es/components/password-input/password-input.js.map +1 -1
- package/es/components/progress-bar/progress-bar.js +3 -3
- package/es/components/progress-bar/progress-bar.js.map +1 -1
- package/es/components/progress-indicator/progress-indicator-skeleton.js +2 -2
- package/es/components/progress-indicator/progress-indicator-skeleton.js.map +1 -1
- package/es/components/progress-indicator/progress-indicator.js +2 -2
- package/es/components/progress-indicator/progress-indicator.js.map +1 -1
- package/es/components/progress-indicator/progress-step-skeleton.js +3 -3
- package/es/components/progress-indicator/progress-step-skeleton.js.map +1 -1
- package/es/components/progress-indicator/progress-step.js +3 -3
- package/es/components/progress-indicator/progress-step.js.map +1 -1
- package/es/components/radio-button/radio-button-group.js +3 -3
- package/es/components/radio-button/radio-button-group.js.map +1 -1
- package/es/components/radio-button/radio-button-skeleton.js +2 -2
- package/es/components/radio-button/radio-button-skeleton.js.map +1 -1
- package/es/components/radio-button/radio-button.js +2 -2
- package/es/components/radio-button/radio-button.js.map +1 -1
- package/es/components/search/search.js +1 -1
- package/es/components/select/select-item-group.js +2 -2
- package/es/components/select/select-item-group.js.map +1 -1
- package/es/components/select/select-item.js +2 -2
- package/es/components/select/select-item.js.map +1 -1
- package/es/components/select/select.js +1 -1
- package/es/components/shape-indicator/shape-indicator.js +3 -3
- package/es/components/shape-indicator/shape-indicator.js.map +1 -1
- package/es/components/side-panel/side-panel.js +3 -3
- package/es/components/side-panel/side-panel.js.map +1 -1
- package/es/components/skeleton-icon/skeleton-icon.js +2 -2
- package/es/components/skeleton-icon/skeleton-icon.js.map +1 -1
- package/es/components/skeleton-placeholder/skeleton-placeholder.js +2 -2
- package/es/components/skeleton-placeholder/skeleton-placeholder.js.map +1 -1
- package/es/components/skeleton-text/skeleton-text.js +2 -2
- package/es/components/skeleton-text/skeleton-text.js.map +1 -1
- package/es/components/skip-to-content/skip-to-content.js +2 -2
- package/es/components/skip-to-content/skip-to-content.js.map +1 -1
- package/es/components/slider/slider-input.js +3 -3
- package/es/components/slider/slider-input.js.map +1 -1
- package/es/components/slider/slider-skeleton.js +2 -2
- package/es/components/slider/slider-skeleton.js.map +1 -1
- package/es/components/slider/slider.js +2 -2
- package/es/components/slider/slider.js.map +1 -1
- package/es/components/slug/slug-action-button.js +2 -2
- package/es/components/slug/slug-action-button.js.map +1 -1
- package/es/components/slug/slug.js +3 -3
- package/es/components/slug/slug.js.map +1 -1
- package/es/components/stack/stack.js +2 -2
- package/es/components/stack/stack.js.map +1 -1
- package/es/components/structured-list/structured-list-body.js +2 -2
- package/es/components/structured-list/structured-list-body.js.map +1 -1
- package/es/components/structured-list/structured-list-cell.js +2 -2
- package/es/components/structured-list/structured-list-cell.js.map +1 -1
- package/es/components/structured-list/structured-list-head.js +2 -2
- package/es/components/structured-list/structured-list-head.js.map +1 -1
- package/es/components/structured-list/structured-list-header-cell-skeleton.js +2 -2
- package/es/components/structured-list/structured-list-header-cell-skeleton.js.map +1 -1
- package/es/components/structured-list/structured-list-header-cell.js +2 -2
- package/es/components/structured-list/structured-list-header-cell.js.map +1 -1
- package/es/components/structured-list/structured-list-header-row.js +2 -2
- package/es/components/structured-list/structured-list-header-row.js.map +1 -1
- package/es/components/structured-list/structured-list-row.js +3 -3
- package/es/components/structured-list/structured-list-row.js.map +1 -1
- package/es/components/structured-list/structured-list.js +2 -2
- package/es/components/structured-list/structured-list.js.map +1 -1
- package/es/components/tabs/tab-skeleton.js +2 -2
- package/es/components/tabs/tab-skeleton.js.map +1 -1
- package/es/components/tabs/tab.js +2 -2
- package/es/components/tabs/tab.js.map +1 -1
- package/es/components/tabs/tabs-skeleton.js +2 -2
- package/es/components/tabs/tabs-skeleton.js.map +1 -1
- package/es/components/tabs/tabs.js +3 -3
- package/es/components/tabs/tabs.js.map +1 -1
- package/es/components/tabs/tabs.scss.js +1 -1
- package/es/components/tag/dismissible-tag.js +3 -3
- package/es/components/tag/dismissible-tag.js.map +1 -1
- package/es/components/tag/operational-tag.js +2 -2
- package/es/components/tag/operational-tag.js.map +1 -1
- package/es/components/tag/selectable-tag.js +2 -2
- package/es/components/tag/selectable-tag.js.map +1 -1
- package/es/components/tag/tag-skeleton.js +2 -2
- package/es/components/tag/tag-skeleton.js.map +1 -1
- package/es/components/tag/tag.js +1 -1
- package/es/components/tearsheet/tearsheet.js +2 -2
- package/es/components/tearsheet/tearsheet.js.map +1 -1
- package/es/components/text-input/text-input.js +1 -1
- package/es/components/textarea/textarea.js +1 -1
- package/es/components/tile/clickable-tile.js +3 -3
- 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 +3 -3
- package/es/components/tile/radio-tile.js.map +1 -1
- package/es/components/tile/selectable-tile.js +1 -1
- package/es/components/tile/tile-group.js +2 -2
- package/es/components/tile/tile-group.js.map +1 -1
- package/es/components/tile/tile.js +2 -2
- package/es/components/tile/tile.js.map +1 -1
- package/es/components/time-picker/time-picker-select.js +3 -3
- package/es/components/time-picker/time-picker-select.js.map +1 -1
- package/es/components/time-picker/time-picker.js +1 -1
- package/es/components/toggle/toggle-skeleton.js +2 -2
- package/es/components/toggle/toggle-skeleton.js.map +1 -1
- package/es/components/toggle/toggle.js +2 -2
- package/es/components/toggle/toggle.js.map +1 -1
- package/es/components/toggle-tip/toggletip.js +1 -1
- package/es/components/tooltip/definition-tooltip.js +2 -2
- package/es/components/tooltip/definition-tooltip.js.map +1 -1
- package/es/components/tooltip/tooltip-content.js +2 -2
- package/es/components/tooltip/tooltip-content.js.map +1 -1
- package/es/components/tooltip/tooltip.js +2 -2
- package/es/components/tooltip/tooltip.js.map +1 -1
- package/es/components/tree-view/tree-node.js +3 -3
- package/es/components/tree-view/tree-node.js.map +1 -1
- package/es/components/tree-view/tree-view.js +2 -2
- package/es/components/tree-view/tree-view.js.map +1 -1
- package/es/components/ui-shell/header-global-action.js +2 -2
- package/es/components/ui-shell/header-global-action.js.map +1 -1
- package/es/components/ui-shell/header-menu-button.js +3 -3
- package/es/components/ui-shell/header-menu-button.js.map +1 -1
- package/es/components/ui-shell/header-menu-item.js +2 -2
- package/es/components/ui-shell/header-menu-item.js.map +1 -1
- package/es/components/ui-shell/header-menu.js +3 -3
- package/es/components/ui-shell/header-menu.js.map +1 -1
- package/es/components/ui-shell/header-name.js +2 -2
- package/es/components/ui-shell/header-name.js.map +1 -1
- package/es/components/ui-shell/header-nav.js +2 -2
- package/es/components/ui-shell/header-nav.js.map +1 -1
- package/es/components/ui-shell/header-panel.js +2 -2
- package/es/components/ui-shell/header-panel.js.map +1 -1
- package/es/components/ui-shell/header-side-nav-items.js +2 -2
- package/es/components/ui-shell/header-side-nav-items.js.map +1 -1
- package/es/components/ui-shell/header.js +2 -2
- package/es/components/ui-shell/header.js.map +1 -1
- package/es/components/ui-shell/side-nav-divider.js +2 -2
- package/es/components/ui-shell/side-nav-divider.js.map +1 -1
- package/es/components/ui-shell/side-nav-items.js +2 -2
- package/es/components/ui-shell/side-nav-items.js.map +1 -1
- package/es/components/ui-shell/side-nav-link.js +2 -2
- package/es/components/ui-shell/side-nav-link.js.map +1 -1
- package/es/components/ui-shell/side-nav-menu-item.js +2 -2
- package/es/components/ui-shell/side-nav-menu-item.js.map +1 -1
- package/es/components/ui-shell/side-nav-menu.js +3 -3
- package/es/components/ui-shell/side-nav-menu.js.map +1 -1
- package/es/components/ui-shell/side-nav.js +2 -2
- package/es/components/ui-shell/side-nav.js.map +1 -1
- package/es/components/ui-shell/switcher-divider.js +2 -2
- package/es/components/ui-shell/switcher-divider.js.map +1 -1
- package/es/components/ui-shell/switcher-item.js +2 -2
- package/es/components/ui-shell/switcher-item.js.map +1 -1
- package/es/components/ui-shell/switcher.js +2 -2
- package/es/components/ui-shell/switcher.js.map +1 -1
- package/es/feature-flags/es/index.js +153 -144
- package/es/feature-flags/es/index.js.map +1 -1
- package/es-custom/components/accordion/accordion-item-skeleton.js +3 -3
- package/es-custom/components/accordion/accordion-item-skeleton.js.map +1 -1
- package/es-custom/components/accordion/accordion-item.js +3 -3
- package/es-custom/components/accordion/accordion-item.js.map +1 -1
- package/es-custom/components/accordion/accordion-skeleton.js +3 -3
- package/es-custom/components/accordion/accordion-skeleton.js.map +1 -1
- package/es-custom/components/accordion/accordion.js +2 -2
- package/es-custom/components/accordion/accordion.js.map +1 -1
- package/es-custom/components/ai-label/ai-label-action-button.js +2 -2
- package/es-custom/components/ai-label/ai-label-action-button.js.map +1 -1
- package/es-custom/components/ai-label/ai-label.js +3 -3
- package/es-custom/components/ai-label/ai-label.js.map +1 -1
- package/es-custom/components/ai-skeleton/ai-skeleton-icon.js +2 -2
- package/es-custom/components/ai-skeleton/ai-skeleton-icon.js.map +1 -1
- package/es-custom/components/ai-skeleton/ai-skeleton-placeholder.js +2 -2
- package/es-custom/components/ai-skeleton/ai-skeleton-placeholder.js.map +1 -1
- package/es-custom/components/ai-skeleton/ai-skeleton-text.js +2 -2
- package/es-custom/components/ai-skeleton/ai-skeleton-text.js.map +1 -1
- package/es-custom/components/badge-indicator/badge-indicator.js +2 -2
- package/es-custom/components/badge-indicator/badge-indicator.js.map +1 -1
- package/es-custom/components/breadcrumb/breadcrumb-item.d.ts +1 -1
- package/es-custom/components/breadcrumb/breadcrumb-item.js +15 -12
- package/es-custom/components/breadcrumb/breadcrumb-item.js.map +1 -1
- package/es-custom/components/breadcrumb/breadcrumb-link.js +2 -2
- package/es-custom/components/breadcrumb/breadcrumb-link.js.map +1 -1
- package/es-custom/components/breadcrumb/breadcrumb-overflow-menu.js +3 -3
- package/es-custom/components/breadcrumb/breadcrumb-overflow-menu.js.map +1 -1
- package/es-custom/components/breadcrumb/breadcrumb-skeleton.js +2 -2
- package/es-custom/components/breadcrumb/breadcrumb-skeleton.js.map +1 -1
- package/es-custom/components/breadcrumb/breadcrumb.js +2 -2
- package/es-custom/components/breadcrumb/breadcrumb.js.map +1 -1
- package/es-custom/components/button/button-set.js +2 -2
- package/es-custom/components/button/button-set.js.map +1 -1
- package/es-custom/components/button/button-skeleton.js +3 -2
- package/es-custom/components/button/button-skeleton.js.map +1 -1
- package/es-custom/components/button/button.d.ts +14 -16
- package/es-custom/components/button/button.js +27 -24
- package/es-custom/components/button/button.js.map +1 -1
- package/es-custom/components/button/button.scss.js +1 -1
- package/es-custom/components/chat-button/chat-button-skeleton.js +2 -2
- package/es-custom/components/chat-button/chat-button-skeleton.js.map +1 -1
- package/es-custom/components/chat-button/chat-button.js +2 -2
- package/es-custom/components/chat-button/chat-button.js.map +1 -1
- package/es-custom/components/checkbox/checkbox-group.js +3 -3
- package/es-custom/components/checkbox/checkbox-group.js.map +1 -1
- package/es-custom/components/checkbox/checkbox-skeleton.js +2 -2
- package/es-custom/components/checkbox/checkbox-skeleton.js.map +1 -1
- package/es-custom/components/checkbox/checkbox.js +1 -1
- package/es-custom/components/code-snippet/code-snippet-skeleton.js +2 -2
- package/es-custom/components/code-snippet/code-snippet-skeleton.js.map +1 -1
- package/es-custom/components/code-snippet/code-snippet.js +3 -3
- package/es-custom/components/code-snippet/code-snippet.js.map +1 -1
- package/es-custom/components/combo-box/combo-box-item.js +2 -2
- package/es-custom/components/combo-box/combo-box-item.js.map +1 -1
- package/es-custom/components/combo-box/combo-box.js +16 -8
- package/es-custom/components/combo-box/combo-box.js.map +1 -1
- package/es-custom/components/combo-button/combo-button.js +3 -3
- package/es-custom/components/combo-button/combo-button.js.map +1 -1
- package/es-custom/components/contained-list/contained-list-description.js +2 -2
- package/es-custom/components/contained-list/contained-list-description.js.map +1 -1
- package/es-custom/components/contained-list/contained-list-item.js +2 -2
- package/es-custom/components/contained-list/contained-list-item.js.map +1 -1
- package/es-custom/components/contained-list/contained-list.js +2 -2
- package/es-custom/components/contained-list/contained-list.js.map +1 -1
- package/es-custom/components/copy/copy.js +2 -2
- package/es-custom/components/copy/copy.js.map +1 -1
- package/es-custom/components/copy-button/copy-button.js +3 -3
- package/es-custom/components/copy-button/copy-button.js.map +1 -1
- package/es-custom/components/data-table/table-batch-actions.js +2 -2
- package/es-custom/components/data-table/table-batch-actions.js.map +1 -1
- package/es-custom/components/data-table/table-body.js +2 -2
- package/es-custom/components/data-table/table-body.js.map +1 -1
- package/es-custom/components/data-table/table-cell-content.js +2 -2
- package/es-custom/components/data-table/table-cell-content.js.map +1 -1
- package/es-custom/components/data-table/table-cell.js +2 -2
- package/es-custom/components/data-table/table-cell.js.map +1 -1
- package/es-custom/components/data-table/table-expanded-row.js +2 -2
- package/es-custom/components/data-table/table-expanded-row.js.map +1 -1
- package/es-custom/components/data-table/table-head.js +2 -2
- package/es-custom/components/data-table/table-head.js.map +1 -1
- package/es-custom/components/data-table/table-header-cell.js +3 -3
- package/es-custom/components/data-table/table-header-cell.js.map +1 -1
- package/es-custom/components/data-table/table-header-description.js +2 -2
- package/es-custom/components/data-table/table-header-description.js.map +1 -1
- package/es-custom/components/data-table/table-header-row.js +2 -2
- package/es-custom/components/data-table/table-header-row.js.map +1 -1
- package/es-custom/components/data-table/table-header-title.js +2 -2
- package/es-custom/components/data-table/table-header-title.js.map +1 -1
- package/es-custom/components/data-table/table-row.js +1 -1
- package/es-custom/components/data-table/table-skeleton.js +2 -2
- package/es-custom/components/data-table/table-skeleton.js.map +1 -1
- package/es-custom/components/data-table/table-toolbar-content.js +2 -2
- package/es-custom/components/data-table/table-toolbar-content.js.map +1 -1
- package/es-custom/components/data-table/table-toolbar-search.js +2 -2
- package/es-custom/components/data-table/table-toolbar-search.js.map +1 -1
- package/es-custom/components/data-table/table-toolbar.js +2 -2
- package/es-custom/components/data-table/table-toolbar.js.map +1 -1
- package/es-custom/components/data-table/table.js +2 -2
- package/es-custom/components/data-table/table.js.map +1 -1
- package/es-custom/components/date-picker/date-picker-input-skeleton.js +2 -2
- package/es-custom/components/date-picker/date-picker-input-skeleton.js.map +1 -1
- package/es-custom/components/date-picker/date-picker-input.js +1 -1
- package/es-custom/components/date-picker/date-picker.js +2 -2
- package/es-custom/components/date-picker/date-picker.js.map +1 -1
- package/es-custom/components/date-picker/icon-plugin.js +1 -1
- package/es-custom/components/dropdown/dropdown-item.js +1 -1
- package/es-custom/components/dropdown/dropdown-skeleton.js +2 -2
- package/es-custom/components/dropdown/dropdown-skeleton.js.map +1 -1
- package/es-custom/components/dropdown/dropdown.js +1 -1
- package/es-custom/components/feature-flags/index.d.ts +1 -1
- package/es-custom/components/feature-flags/index.js +7 -4
- package/es-custom/components/feature-flags/index.js.map +1 -1
- package/es-custom/components/file-uploader/demo-file-uploader.js +2 -2
- package/es-custom/components/file-uploader/demo-file-uploader.js.map +1 -1
- package/es-custom/components/file-uploader/file-uploader-button.js +2 -2
- package/es-custom/components/file-uploader/file-uploader-button.js.map +1 -1
- package/es-custom/components/file-uploader/file-uploader-drop-container.js +2 -2
- package/es-custom/components/file-uploader/file-uploader-drop-container.js.map +1 -1
- package/es-custom/components/file-uploader/file-uploader-item.js +3 -3
- package/es-custom/components/file-uploader/file-uploader-item.js.map +1 -1
- package/es-custom/components/file-uploader/file-uploader-skeleton.js +2 -2
- package/es-custom/components/file-uploader/file-uploader-skeleton.js.map +1 -1
- package/es-custom/components/file-uploader/file-uploader.js +2 -2
- package/es-custom/components/file-uploader/file-uploader.js.map +1 -1
- package/es-custom/components/floating-menu/defs.d.ts +10 -2
- package/es-custom/components/floating-menu/defs.js +9 -1
- package/es-custom/components/floating-menu/defs.js.map +1 -1
- package/es-custom/components/floating-menu/floating-menu.d.ts +31 -1
- package/es-custom/components/floating-menu/floating-menu.js +110 -43
- package/es-custom/components/floating-menu/floating-menu.js.map +1 -1
- package/es-custom/components/fluid-number-input/fluid-number-input-skeleton.js +2 -2
- package/es-custom/components/fluid-number-input/fluid-number-input-skeleton.js.map +1 -1
- package/es-custom/components/fluid-number-input/fluid-number-input.js +2 -2
- package/es-custom/components/fluid-number-input/fluid-number-input.js.map +1 -1
- package/es-custom/components/fluid-search/fluid-search-skeleton.js +2 -2
- package/es-custom/components/fluid-search/fluid-search-skeleton.js.map +1 -1
- package/es-custom/components/fluid-search/fluid-search.js +2 -2
- package/es-custom/components/fluid-search/fluid-search.js.map +1 -1
- package/es-custom/components/fluid-select/fluid-select-skeleton.js +2 -2
- package/es-custom/components/fluid-select/fluid-select-skeleton.js.map +1 -1
- package/es-custom/components/fluid-text-input/fluid-text-input-skeleton.js +2 -2
- package/es-custom/components/fluid-text-input/fluid-text-input-skeleton.js.map +1 -1
- package/es-custom/components/fluid-text-input/fluid-text-input.js +2 -2
- package/es-custom/components/fluid-text-input/fluid-text-input.js.map +1 -1
- package/es-custom/components/fluid-textarea/fluid-textarea-skeleton.js +2 -2
- package/es-custom/components/fluid-textarea/fluid-textarea-skeleton.js.map +1 -1
- package/es-custom/components/fluid-textarea/fluid-textarea.js +2 -2
- package/es-custom/components/fluid-textarea/fluid-textarea.js.map +1 -1
- package/es-custom/components/fluid-time-picker/fluid-time-picker-select.js +2 -2
- package/es-custom/components/fluid-time-picker/fluid-time-picker-select.js.map +1 -1
- package/es-custom/components/fluid-time-picker/fluid-time-picker-skeleton.js +2 -2
- package/es-custom/components/fluid-time-picker/fluid-time-picker-skeleton.js.map +1 -1
- package/es-custom/components/fluid-time-picker/fluid-time-picker.js +3 -3
- package/es-custom/components/fluid-time-picker/fluid-time-picker.js.map +1 -1
- package/es-custom/components/form/form-item.js +2 -2
- package/es-custom/components/form/form-item.js.map +1 -1
- package/es-custom/components/form/form.js +2 -2
- package/es-custom/components/form/form.js.map +1 -1
- package/es-custom/components/form-group/form-group.js +2 -2
- package/es-custom/components/form-group/form-group.js.map +1 -1
- package/es-custom/components/grid/column-hang.js +2 -2
- package/es-custom/components/grid/column-hang.js.map +1 -1
- package/es-custom/components/grid/column.js +2 -2
- package/es-custom/components/grid/column.js.map +1 -1
- package/es-custom/components/grid/grid.js +2 -2
- package/es-custom/components/grid/grid.js.map +1 -1
- package/es-custom/components/heading/heading.js +2 -2
- package/es-custom/components/heading/heading.js.map +1 -1
- package/es-custom/components/icon/icon.js +2 -2
- package/es-custom/components/icon/icon.js.map +1 -1
- package/es-custom/components/icon-indicator/icon-indicator.js +3 -3
- package/es-custom/components/icon-indicator/icon-indicator.js.map +1 -1
- package/es-custom/components/inline-loading/inline-loading.js +3 -3
- package/es-custom/components/inline-loading/inline-loading.js.map +1 -1
- package/es-custom/components/layer/layer.js +2 -2
- package/es-custom/components/layer/layer.js.map +1 -1
- package/es-custom/components/list/list-item.js +2 -2
- package/es-custom/components/list/list-item.js.map +1 -1
- package/es-custom/components/list/ordered-list.js +2 -2
- package/es-custom/components/list/ordered-list.js.map +1 -1
- package/es-custom/components/loading/loading.js +2 -2
- package/es-custom/components/loading/loading.js.map +1 -1
- package/es-custom/components/menu/menu-item-divider.js +2 -2
- package/es-custom/components/menu/menu-item-divider.js.map +1 -1
- package/es-custom/components/menu/menu-item-group.js +2 -2
- package/es-custom/components/menu/menu-item-group.js.map +1 -1
- package/es-custom/components/menu/menu-item-radio-group.js +2 -2
- package/es-custom/components/menu/menu-item-radio-group.js.map +1 -1
- package/es-custom/components/menu/menu-item-selectable.js +2 -2
- package/es-custom/components/menu/menu-item-selectable.js.map +1 -1
- package/es-custom/components/menu/menu-item.js +3 -3
- package/es-custom/components/menu/menu-item.js.map +1 -1
- package/es-custom/components/menu/menu.js +2 -2
- package/es-custom/components/menu/menu.js.map +1 -1
- package/es-custom/components/menu-button/menu-button.js +3 -3
- package/es-custom/components/menu-button/menu-button.js.map +1 -1
- package/es-custom/components/modal/modal-body-content.js +2 -2
- package/es-custom/components/modal/modal-body-content.js.map +1 -1
- package/es-custom/components/modal/modal-body.js +2 -2
- package/es-custom/components/modal/modal-body.js.map +1 -1
- package/es-custom/components/modal/modal-close-button.js +3 -3
- package/es-custom/components/modal/modal-close-button.js.map +1 -1
- package/es-custom/components/modal/modal-footer-button.js +2 -2
- package/es-custom/components/modal/modal-footer-button.js.map +1 -1
- package/es-custom/components/modal/modal-footer.js +2 -2
- package/es-custom/components/modal/modal-footer.js.map +1 -1
- package/es-custom/components/modal/modal-header.js +2 -2
- package/es-custom/components/modal/modal-header.js.map +1 -1
- package/es-custom/components/modal/modal-heading.js +2 -2
- package/es-custom/components/modal/modal-heading.js.map +1 -1
- package/es-custom/components/modal/modal-label.js +2 -2
- package/es-custom/components/modal/modal-label.js.map +1 -1
- package/es-custom/components/modal/modal.js +2 -2
- package/es-custom/components/modal/modal.js.map +1 -1
- package/es-custom/components/multi-select/multi-select-item.js +2 -2
- package/es-custom/components/multi-select/multi-select-item.js.map +1 -1
- package/es-custom/components/multi-select/multi-select.d.ts +9 -0
- package/es-custom/components/multi-select/multi-select.js +58 -11
- package/es-custom/components/multi-select/multi-select.js.map +1 -1
- package/es-custom/components/notification/actionable-notification-button.js +2 -2
- package/es-custom/components/notification/actionable-notification-button.js.map +1 -1
- package/es-custom/components/notification/actionable-notification.js +1 -1
- package/es-custom/components/notification/callout-notification.js +3 -3
- package/es-custom/components/notification/callout-notification.js.map +1 -1
- package/es-custom/components/notification/inline-notification.js +1 -1
- package/es-custom/components/notification/toast-notification.js +2 -2
- package/es-custom/components/notification/toast-notification.js.map +1 -1
- package/es-custom/components/number-input/number-input.js +1 -1
- package/es-custom/components/overflow-menu/overflow-menu-body.d.ts +18 -2
- package/es-custom/components/overflow-menu/overflow-menu-body.js +25 -4
- package/es-custom/components/overflow-menu/overflow-menu-body.js.map +1 -1
- package/es-custom/components/overflow-menu/overflow-menu-item.js +2 -2
- package/es-custom/components/overflow-menu/overflow-menu-item.js.map +1 -1
- package/es-custom/components/overflow-menu/overflow-menu.scss.js +1 -1
- package/es-custom/components/page-header/page-header-breadcrumb.js +2 -2
- package/es-custom/components/page-header/page-header-breadcrumb.js.map +1 -1
- package/es-custom/components/page-header/page-header-content-text.js +2 -2
- package/es-custom/components/page-header/page-header-content-text.js.map +1 -1
- package/es-custom/components/page-header/page-header-content.js +2 -2
- package/es-custom/components/page-header/page-header-content.js.map +1 -1
- package/es-custom/components/page-header/page-header-hero-image.js +2 -2
- package/es-custom/components/page-header/page-header-hero-image.js.map +1 -1
- package/es-custom/components/page-header/page-header-tabs.js +2 -2
- package/es-custom/components/page-header/page-header-tabs.js.map +1 -1
- package/es-custom/components/page-header/page-header.js +2 -2
- package/es-custom/components/page-header/page-header.js.map +1 -1
- package/es-custom/components/pagination/pagination.js +4 -4
- package/es-custom/components/pagination/pagination.js.map +1 -1
- package/es-custom/components/pagination-nav/pagination-nav.js +3 -3
- package/es-custom/components/pagination-nav/pagination-nav.js.map +1 -1
- package/es-custom/components/password-input/password-input-skeleton.js +2 -2
- package/es-custom/components/password-input/password-input-skeleton.js.map +1 -1
- package/es-custom/components/password-input/password-input.js +3 -3
- package/es-custom/components/password-input/password-input.js.map +1 -1
- package/es-custom/components/progress-bar/progress-bar.js +3 -3
- package/es-custom/components/progress-bar/progress-bar.js.map +1 -1
- package/es-custom/components/progress-indicator/progress-indicator-skeleton.js +2 -2
- package/es-custom/components/progress-indicator/progress-indicator-skeleton.js.map +1 -1
- package/es-custom/components/progress-indicator/progress-indicator.js +2 -2
- package/es-custom/components/progress-indicator/progress-indicator.js.map +1 -1
- package/es-custom/components/progress-indicator/progress-step-skeleton.js +3 -3
- package/es-custom/components/progress-indicator/progress-step-skeleton.js.map +1 -1
- package/es-custom/components/progress-indicator/progress-step.js +3 -3
- package/es-custom/components/progress-indicator/progress-step.js.map +1 -1
- package/es-custom/components/radio-button/radio-button-group.js +3 -3
- package/es-custom/components/radio-button/radio-button-group.js.map +1 -1
- package/es-custom/components/radio-button/radio-button-skeleton.js +2 -2
- package/es-custom/components/radio-button/radio-button-skeleton.js.map +1 -1
- package/es-custom/components/radio-button/radio-button.js +2 -2
- package/es-custom/components/radio-button/radio-button.js.map +1 -1
- package/es-custom/components/search/search.js +1 -1
- package/es-custom/components/select/select-item-group.js +2 -2
- package/es-custom/components/select/select-item-group.js.map +1 -1
- package/es-custom/components/select/select-item.js +2 -2
- package/es-custom/components/select/select-item.js.map +1 -1
- package/es-custom/components/select/select.js +1 -1
- package/es-custom/components/shape-indicator/shape-indicator.js +3 -3
- package/es-custom/components/shape-indicator/shape-indicator.js.map +1 -1
- package/es-custom/components/side-panel/side-panel.js +3 -3
- package/es-custom/components/side-panel/side-panel.js.map +1 -1
- package/es-custom/components/skeleton-icon/skeleton-icon.js +2 -2
- package/es-custom/components/skeleton-icon/skeleton-icon.js.map +1 -1
- package/es-custom/components/skeleton-placeholder/skeleton-placeholder.js +2 -2
- package/es-custom/components/skeleton-placeholder/skeleton-placeholder.js.map +1 -1
- package/es-custom/components/skeleton-text/skeleton-text.js +2 -2
- package/es-custom/components/skeleton-text/skeleton-text.js.map +1 -1
- package/es-custom/components/skip-to-content/skip-to-content.js +2 -2
- package/es-custom/components/skip-to-content/skip-to-content.js.map +1 -1
- package/es-custom/components/slider/slider-input.js +3 -3
- package/es-custom/components/slider/slider-input.js.map +1 -1
- package/es-custom/components/slider/slider-skeleton.js +2 -2
- package/es-custom/components/slider/slider-skeleton.js.map +1 -1
- package/es-custom/components/slider/slider.js +2 -2
- package/es-custom/components/slider/slider.js.map +1 -1
- package/es-custom/components/slug/slug-action-button.js +2 -2
- package/es-custom/components/slug/slug-action-button.js.map +1 -1
- package/es-custom/components/slug/slug.js +3 -3
- package/es-custom/components/slug/slug.js.map +1 -1
- package/es-custom/components/stack/stack.js +2 -2
- package/es-custom/components/stack/stack.js.map +1 -1
- package/es-custom/components/structured-list/structured-list-body.js +2 -2
- package/es-custom/components/structured-list/structured-list-body.js.map +1 -1
- package/es-custom/components/structured-list/structured-list-cell.js +2 -2
- package/es-custom/components/structured-list/structured-list-cell.js.map +1 -1
- package/es-custom/components/structured-list/structured-list-head.js +2 -2
- package/es-custom/components/structured-list/structured-list-head.js.map +1 -1
- package/es-custom/components/structured-list/structured-list-header-cell-skeleton.js +2 -2
- package/es-custom/components/structured-list/structured-list-header-cell-skeleton.js.map +1 -1
- package/es-custom/components/structured-list/structured-list-header-cell.js +2 -2
- package/es-custom/components/structured-list/structured-list-header-cell.js.map +1 -1
- package/es-custom/components/structured-list/structured-list-header-row.js +2 -2
- package/es-custom/components/structured-list/structured-list-header-row.js.map +1 -1
- package/es-custom/components/structured-list/structured-list-row.js +3 -3
- package/es-custom/components/structured-list/structured-list-row.js.map +1 -1
- package/es-custom/components/structured-list/structured-list.js +2 -2
- package/es-custom/components/structured-list/structured-list.js.map +1 -1
- package/es-custom/components/tabs/tab-skeleton.js +2 -2
- package/es-custom/components/tabs/tab-skeleton.js.map +1 -1
- package/es-custom/components/tabs/tab.js +2 -2
- package/es-custom/components/tabs/tab.js.map +1 -1
- package/es-custom/components/tabs/tabs-skeleton.js +2 -2
- package/es-custom/components/tabs/tabs-skeleton.js.map +1 -1
- package/es-custom/components/tabs/tabs.js +3 -3
- package/es-custom/components/tabs/tabs.js.map +1 -1
- package/es-custom/components/tabs/tabs.scss.js +1 -1
- package/es-custom/components/tag/dismissible-tag.js +3 -3
- package/es-custom/components/tag/dismissible-tag.js.map +1 -1
- package/es-custom/components/tag/operational-tag.js +2 -2
- package/es-custom/components/tag/operational-tag.js.map +1 -1
- package/es-custom/components/tag/selectable-tag.js +2 -2
- package/es-custom/components/tag/selectable-tag.js.map +1 -1
- package/es-custom/components/tag/tag-skeleton.js +2 -2
- package/es-custom/components/tag/tag-skeleton.js.map +1 -1
- package/es-custom/components/tag/tag.js +1 -1
- package/es-custom/components/tearsheet/tearsheet.js +2 -2
- package/es-custom/components/tearsheet/tearsheet.js.map +1 -1
- package/es-custom/components/text-input/text-input.js +1 -1
- package/es-custom/components/textarea/textarea.js +1 -1
- package/es-custom/components/tile/clickable-tile.js +3 -3
- package/es-custom/components/tile/clickable-tile.js.map +1 -1
- package/es-custom/components/tile/expandable-tile.js +3 -3
- package/es-custom/components/tile/expandable-tile.js.map +1 -1
- package/es-custom/components/tile/radio-tile.js +3 -3
- package/es-custom/components/tile/radio-tile.js.map +1 -1
- package/es-custom/components/tile/selectable-tile.js +1 -1
- package/es-custom/components/tile/tile-group.js +2 -2
- package/es-custom/components/tile/tile-group.js.map +1 -1
- package/es-custom/components/tile/tile.js +2 -2
- package/es-custom/components/tile/tile.js.map +1 -1
- package/es-custom/components/time-picker/time-picker-select.js +3 -3
- package/es-custom/components/time-picker/time-picker-select.js.map +1 -1
- package/es-custom/components/time-picker/time-picker.js +1 -1
- package/es-custom/components/toggle/toggle-skeleton.js +2 -2
- package/es-custom/components/toggle/toggle-skeleton.js.map +1 -1
- package/es-custom/components/toggle/toggle.js +2 -2
- package/es-custom/components/toggle/toggle.js.map +1 -1
- package/es-custom/components/toggle-tip/toggletip.js +1 -1
- package/es-custom/components/tooltip/definition-tooltip.js +2 -2
- package/es-custom/components/tooltip/definition-tooltip.js.map +1 -1
- package/es-custom/components/tooltip/tooltip-content.js +2 -2
- package/es-custom/components/tooltip/tooltip-content.js.map +1 -1
- package/es-custom/components/tooltip/tooltip.js +2 -2
- package/es-custom/components/tooltip/tooltip.js.map +1 -1
- package/es-custom/components/tree-view/tree-node.js +3 -3
- package/es-custom/components/tree-view/tree-node.js.map +1 -1
- package/es-custom/components/tree-view/tree-view.js +2 -2
- package/es-custom/components/tree-view/tree-view.js.map +1 -1
- package/es-custom/components/ui-shell/header-global-action.js +2 -2
- package/es-custom/components/ui-shell/header-global-action.js.map +1 -1
- package/es-custom/components/ui-shell/header-menu-button.js +3 -3
- package/es-custom/components/ui-shell/header-menu-button.js.map +1 -1
- package/es-custom/components/ui-shell/header-menu-item.js +2 -2
- package/es-custom/components/ui-shell/header-menu-item.js.map +1 -1
- package/es-custom/components/ui-shell/header-menu.js +3 -3
- package/es-custom/components/ui-shell/header-menu.js.map +1 -1
- package/es-custom/components/ui-shell/header-name.js +2 -2
- package/es-custom/components/ui-shell/header-name.js.map +1 -1
- package/es-custom/components/ui-shell/header-nav.js +2 -2
- package/es-custom/components/ui-shell/header-nav.js.map +1 -1
- package/es-custom/components/ui-shell/header-panel.js +2 -2
- package/es-custom/components/ui-shell/header-panel.js.map +1 -1
- package/es-custom/components/ui-shell/header-side-nav-items.js +2 -2
- package/es-custom/components/ui-shell/header-side-nav-items.js.map +1 -1
- package/es-custom/components/ui-shell/header.js +2 -2
- package/es-custom/components/ui-shell/header.js.map +1 -1
- package/es-custom/components/ui-shell/side-nav-divider.js +2 -2
- package/es-custom/components/ui-shell/side-nav-divider.js.map +1 -1
- package/es-custom/components/ui-shell/side-nav-items.js +2 -2
- package/es-custom/components/ui-shell/side-nav-items.js.map +1 -1
- package/es-custom/components/ui-shell/side-nav-link.js +2 -2
- package/es-custom/components/ui-shell/side-nav-link.js.map +1 -1
- package/es-custom/components/ui-shell/side-nav-menu-item.js +2 -2
- package/es-custom/components/ui-shell/side-nav-menu-item.js.map +1 -1
- package/es-custom/components/ui-shell/side-nav-menu.js +3 -3
- package/es-custom/components/ui-shell/side-nav-menu.js.map +1 -1
- package/es-custom/components/ui-shell/side-nav.js +2 -2
- package/es-custom/components/ui-shell/side-nav.js.map +1 -1
- package/es-custom/components/ui-shell/switcher-divider.js +2 -2
- package/es-custom/components/ui-shell/switcher-divider.js.map +1 -1
- package/es-custom/components/ui-shell/switcher-item.js +2 -2
- package/es-custom/components/ui-shell/switcher-item.js.map +1 -1
- package/es-custom/components/ui-shell/switcher.js +2 -2
- package/es-custom/components/ui-shell/switcher.js.map +1 -1
- package/es-custom/feature-flags/es/index.js +153 -144
- package/es-custom/feature-flags/es/index.js.map +1 -1
- package/lib/components/breadcrumb/breadcrumb-item.d.ts +1 -1
- package/lib/components/button/button.d.ts +14 -16
- package/lib/components/feature-flags/index.d.ts +1 -1
- package/lib/components/floating-menu/defs.d.ts +10 -2
- package/lib/components/floating-menu/defs.js +9 -1
- package/lib/components/floating-menu/defs.js.map +1 -1
- package/lib/components/floating-menu/floating-menu.d.ts +31 -1
- package/lib/components/multi-select/multi-select.d.ts +9 -0
- package/lib/components/overflow-menu/overflow-menu-body.d.ts +18 -2
- package/package.json +3 -3
- package/scss/components/button/button.scss +2 -0
- package/scss/components/overflow-menu/overflow-menu.scss +7 -1
- package/scss/components/tabs/tabs-story.scss +15 -1
- package/scss/components/tabs/tabs.scss +16 -3
- package/telemetry.yml +2 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"date-picker.js","sources":["../../../src/components/date-picker/date-picker.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2019, 2025\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, query } from 'lit/decorators.js';\nimport flatpickr from 'flatpickr';\nimport { Instance as FlatpickrInstance } from 'flatpickr/dist/types/instance';\nimport { Locale as FlatpickrLocale } from 'flatpickr/dist/types/locale';\nimport {\n Options as FlatpickrOptions,\n Plugin as FlatpickrPlugin,\n} from 'flatpickr/dist/types/options';\nimport { prefix } from '../../globals/settings';\nimport FormMixin from '../../globals/mixins/form';\nimport HostListenerMixin from '../../globals/mixins/host-listener';\nimport HostListener from '../../globals/decorators/host-listener';\nimport { getISODateString, parseISODateString } from './iso-date';\nimport CDSDatePickerInput from './date-picker-input';\nimport appendToPlugin from './append-to-plugin';\nimport cssClassPlugin from './css-class-plugin';\nimport fixEventsPlugin from './fix-events-plugin';\nimport focusPlugin from './focus-plugin';\nimport iconPlugin from './icon-plugin';\nimport monthSelectPlugin from './month-select-plugin';\nimport rangePlugin from './range-plugin';\nimport shadowDOMEventPlugin from './shadow-dom-events-plugin';\nimport stateHandshakePlugin from './state-handshake-plugin';\nimport styles from './date-picker.scss?lit';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\n/**\n * Date picker modes.\n */\nenum DATE_PICKER_MODE {\n /**\n * Simple mode, without calendar dropdown.\n */\n SIMPLE = 'simple',\n\n /**\n * Single date mode.\n */\n SINGLE = 'single',\n\n /**\n * Range mode.\n */\n RANGE = 'range',\n}\n\n// Weekdays shorthand for english locale\n// eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- https://github.com/carbon-design-system/carbon/issues/20452\nflatpickr!.l10ns!.en!.weekdays.shorthand.forEach((_day, index) => {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- https://github.com/carbon-design-system/carbon/issues/20452\n const currentDay = flatpickr!.l10ns!.en!.weekdays.shorthand;\n if (currentDay[index] === 'Thu' || currentDay[index] === 'Th') {\n currentDay[index] = 'Th';\n } else {\n currentDay[index] = currentDay[index].charAt(0);\n }\n});\n\n/**\n * Date picker.\n *\n * @element cds-date-picker\n * @fires cds-date-picker-changed - The custom event fired on this element when Flatpickr updates its value.\n * @fires cds-date-picker-flatpickr-error\n * The name of the custom event when Flatpickr throws an error.\n */\n@customElement(`${prefix}-date-picker`)\nclass CDSDatePicker extends HostListenerMixin(FormMixin(LitElement)) {\n /**\n * The slotted `<cds-date-input kind=\"from\">`.\n */\n private _dateInteractNode: CDSDatePickerInput | null = null;\n\n /**\n * The element to put calendar dropdown in.\n */\n @query('#floating-menu-container')\n private _floatingMenuContainerNode!: HTMLDivElement;\n\n /**\n * The internal placeholder for the `value` property.\n */\n private _value!: string;\n\n /**\n * @returns The effective date picker mode, determined by the child `<cds-date-picker-input>`.\n */\n private get _mode() {\n const { selectorInputTo } = this.constructor as typeof CDSDatePicker;\n if (this.querySelector(selectorInputTo)) {\n return DATE_PICKER_MODE.RANGE;\n }\n if (this.querySelector(`${prefix}-date-picker-input[kind=\"single\"]`)) {\n return DATE_PICKER_MODE.SINGLE;\n }\n return DATE_PICKER_MODE.SIMPLE;\n }\n\n /**\n * @returns The Flatpickr plugins to use.\n */\n private get _datePickerPlugins(): FlatpickrPlugin[] {\n const {\n classCalendarContainer,\n classMonth,\n classWeekdays,\n classDays,\n classWeekday,\n classDay,\n classNoBorder,\n selectorInputFrom,\n selectorInputTo,\n _selectorFlatpickrMonthYearContainer: selectorFlatpickrMonthYearContainer,\n _selectorFlatpickrYearContainer: selectorFlatpickrYearContainer,\n _selectorFlatpickrCurrentMonth: selectorFlatpickrCurrentMonth,\n _selectorFlatpickrMonth: selectorFlatpickrMonth,\n _selectorFlatpickrWeekdays: selectorFlatpickrWeekdays,\n _selectorFlatpickrDays: selectorFlatpickrDays,\n _selectorFlatpickrWeekday: selectorFlatpickrWeekday,\n _selectorFlatpickrDay: selectorFlatpickrDay,\n _classFlatpickrCurrentMonth: classFlatpickrCurrentMonth,\n _classFlatpickrToday: classFlatpickrToday,\n } = this.constructor as typeof CDSDatePicker;\n const {\n _floatingMenuContainerNode: floatingMenuContainerNode,\n _mode: mode,\n } = this;\n const inputFrom = this.querySelector(selectorInputFrom);\n const inputTo = this.querySelector(selectorInputTo);\n const plugins = [\n appendToPlugin({ appendTo: floatingMenuContainerNode }),\n cssClassPlugin({\n classCalendarContainer,\n classMonth,\n classWeekdays,\n classDays,\n classWeekday,\n classDay,\n classNoBorder,\n selectorFlatpickrMonth,\n selectorFlatpickrWeekdays,\n selectorFlatpickrDays,\n selectorFlatpickrWeekday,\n selectorFlatpickrDay,\n classFlatpickrToday,\n }),\n fixEventsPlugin({\n inputFrom: inputFrom as CDSDatePickerInput,\n inputTo: inputTo as CDSDatePickerInput,\n }),\n focusPlugin({\n inputFrom: inputFrom as CDSDatePickerInput,\n inputTo: inputTo as CDSDatePickerInput,\n }),\n iconPlugin(),\n monthSelectPlugin({\n selectorFlatpickrMonthYearContainer,\n selectorFlatpickrYearContainer,\n selectorFlatpickrCurrentMonth,\n classFlatpickrCurrentMonth,\n }),\n shadowDOMEventPlugin(),\n stateHandshakePlugin(this),\n ];\n if (mode === DATE_PICKER_MODE.RANGE) {\n // Flatpickr runs event handlers of last registered plugins first.\n // Ensures `onValueUpdate` of `rangePlugin` runs first\n // given Flatpickr puts `01/01/1970 to 01/02/1970` to from date\n // where `rangePlugin` overrides it to separate them to from/to dates.\n // We want to ensure our handler of `onValueUpdate` (notably one in `<cds-date-picker-input>`)\n // gets the `<input>` value set by `rangePlugin` instead of Flatpickr core.\n plugins.push(rangePlugin({ input: inputTo as HTMLInputElement }));\n }\n return plugins;\n }\n\n /**\n * @returns The options to instantiate Flatpickr with.\n */\n private get _datePickerOptions(): FlatpickrOptions {\n const {\n locale = (this.constructor as typeof CDSDatePicker).defaultLocale,\n enabledRange,\n _dateInteractNode: dateInteractNode,\n _datePickerPlugins: plugins,\n _handleFlatpickrError: handleFlatpickrError,\n } = this;\n // We use `<cds-date-picker-input>` to communicate values/events with Flatpickr,\n // but want to use `<input>` in shadow DOM to base the calendar dropdown's position on\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- https://github.com/carbon-design-system/carbon/issues/20452\n const { input: positionElement } = dateInteractNode!;\n const [minDate = undefined, maxDate = undefined] = !enabledRange\n ? []\n : enabledRange.split('/');\n return {\n allowInput: this.allowInput,\n closeOnSelect: this.closeOnSelect,\n dateFormat:\n this.dateFormat ??\n (this.constructor as typeof CDSDatePicker).defaultDateFormat,\n disableMobile: true,\n errorHandler: handleFlatpickrError,\n locale,\n maxDate,\n minDate,\n positionElement,\n plugins,\n };\n }\n\n /**\n * Handles `${prefix}-date-picker-changed` event on this element.\n */\n @HostListener('eventChange')\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- https://github.com/carbon-design-system/carbon/issues/20452\n // @ts-ignore: The decorator refers to this method but TS thinks this method is not referred to\n private _handleChange = ({ detail }: CustomEvent) => {\n this._value = detail.selectedDates\n .map((date) => getISODateString(date))\n .join('/');\n };\n\n _handleFormdata(event: FormDataEvent) {\n const { formData } = event;\n const { disabled, name, value } = this;\n if (!disabled) {\n formData.append(name, value);\n }\n }\n\n /**\n * Handles `slotchange` event in the `<slot>`.\n */\n private _handleSlotChange({ target }: Event) {\n const { _dateInteractNode: oldDateInteractNode } = this;\n const dateInteractNode = (target as HTMLSlotElement)\n .assignedNodes()\n .find(\n (node) =>\n node.nodeType === Node.ELEMENT_NODE &&\n (node as HTMLElement).matches(\n (this.constructor as typeof CDSDatePicker).selectorInputFrom\n )\n );\n if (oldDateInteractNode !== dateInteractNode) {\n this._dateInteractNode = dateInteractNode as CDSDatePickerInput;\n this._instantiateDatePicker();\n }\n }\n\n /**\n * Fires a custom event to notify an error in Flatpickr.\n */\n private _handleFlatpickrError = (error: Error) => {\n this.dispatchEvent(\n new CustomEvent(\n (this.constructor as typeof CDSDatePicker).eventFlatpickrError,\n {\n bubbles: true,\n cancelable: false,\n composed: true,\n detail: {\n error,\n },\n }\n )\n );\n };\n\n /**\n * Sets calendar options\n * @param property property to set\n * @param calendar calendar object\n */\n private _setCalendar(property, calendar) {\n const { disabled, dateFormat, open, readonly, minDate, maxDate, value } =\n this;\n\n const { selectorInputFrom, selectorInputTo } = this\n .constructor as typeof CDSDatePicker;\n const inputFrom = this.querySelector(\n selectorInputFrom\n ) as CDSDatePickerInput;\n const inputTo = this.querySelector(selectorInputTo) as CDSDatePickerInput;\n\n if (property === 'dateFormat') {\n calendar.set({ dateFormat });\n }\n if (property === 'date') {\n if (!parseISODateString(minDate)) {\n // Allows empty start/end\n throw new Error(\n `Wrong date format found in \\`minDate\\` property: ${minDate}`\n );\n }\n if (!parseISODateString(maxDate)) {\n // Allows empty start/end\n throw new Error(\n `Wrong date format found in \\`maxDate\\` property: ${maxDate}`\n );\n }\n if (minDate && maxDate && minDate > maxDate) {\n throw new Error(\n `\\`maxDate\\` property, shouldn't be smaller than the \\`minDate\\` property. You have: minDate: ${minDate}, maxDate: ${maxDate}`\n );\n }\n calendar.set({ minDate, maxDate });\n }\n if (property === 'open') {\n if (open && !readonly) {\n calendar.open();\n } else {\n calendar.close();\n }\n }\n if (property === 'disabled') {\n [inputFrom, inputTo].forEach((input) => {\n if (input) {\n input.disabled = disabled;\n input.readonly = readonly;\n }\n });\n }\n if (property === 'value') {\n const dates = value\n .split('/')\n .filter(Boolean)\n .map((item) => parseISODateString(item));\n if (dates.some((item) => isNaN(Number(item)))) {\n throw new Error(\n `Wrong date format found in \\`value\\` property: ${value}`\n );\n }\n const [startDate, endDate] = dates;\n if (startDate && endDate && startDate > endDate) {\n throw new Error(\n `In \\`value\\` property, the end date shouldn't be smaller than the start date. You have: ${value}`\n );\n }\n if (calendar) {\n calendar.setDate(dates);\n [inputFrom, inputTo].forEach((input, i) => {\n if (input) {\n input.value = !dates[i]\n ? ''\n : calendar.formatDate(\n new Date(dates[i]),\n calendar.config.dateFormat\n );\n }\n });\n }\n }\n return calendar;\n }\n\n /**\n * Instantiates Flatpickr.\n *\n * @returns The Flatpickr instance.\n */\n private _instantiateDatePicker() {\n this._releaseDatePicker();\n const { _dateInteractNode: dateInteractNode } = this;\n // do not instantiate Flatpickr in \"simple\" mode\n if (dateInteractNode && dateInteractNode.input && this._mode !== 'simple') {\n this.calendar = flatpickr(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- https://github.com/carbon-design-system/carbon/issues/20452\n dateInteractNode.input as any,\n this._datePickerOptions\n );\n }\n\n const {\n calendar,\n disabled,\n dateFormat,\n open,\n readonly,\n minDate,\n maxDate,\n value,\n } = this;\n\n if (calendar) {\n if (dateFormat) {\n this._setCalendar('dateFormat', calendar);\n }\n\n if (minDate || maxDate) {\n this._setCalendar('date', calendar);\n }\n\n if (open) {\n this._setCalendar('open', calendar);\n }\n\n if (disabled || readonly) {\n this._setCalendar('disabled', calendar);\n }\n if (value) {\n this._setCalendar('value', calendar);\n }\n }\n return calendar;\n }\n\n /**\n * Releases Flatpickr instances.\n */\n private _releaseDatePicker() {\n if (this.calendar) {\n this.calendar.destroy();\n this.calendar = null;\n }\n return this.calendar;\n }\n\n /**\n * The Flatpickr instance.\n */\n calendar: FlatpickrInstance | null = null;\n\n /**\n * flatpickr prop passthrough. Allows the user to enter a date directly into the input field\n */\n @property({ type: Boolean, reflect: true, attribute: 'allow-input' })\n allowInput = true;\n\n /**\n * flatpickr prop passthrough. Controls whether the calendar dropdown closes upon selection.\n */\n @property({ type: Boolean, reflect: true, attribute: 'close-on-select' })\n closeOnSelect = true;\n\n /**\n * The date format to let Flatpickr use.\n */\n @property({ attribute: 'date-format' })\n dateFormat!: string;\n\n /**\n * Controls the disabled state of the input\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * The date range that a user can pick in calendar dropdown.\n */\n @property({ attribute: 'enabled-range' })\n enabledRange!: string;\n\n /**\n * The localization data.\n */\n @property({ attribute: false })\n locale!: FlatpickrLocale;\n\n /**\n * The maximum date that a user can start picking from.\n */\n @property({ attribute: 'max-date' })\n maxDate!: string;\n\n /**\n * The minimum date that a user can start picking from.\n */\n @property({ attribute: 'min-date' })\n minDate!: string;\n\n /**\n * Name for the input in the `FormData`\n */\n @property()\n name = '';\n\n /**\n * `true` if the date picker should be open.\n */\n @property({ type: Boolean, reflect: true })\n open = false;\n\n /**\n * Specify if the component should be read-only\n */\n @property({ type: Boolean, reflect: true })\n readonly = false;\n\n /**\n * The date(s) in ISO8601 format (date portion only), for range mode, '/' is used for separate start/end dates.\n */\n @property()\n get value() {\n return this._value;\n }\n\n set value(value: string) {\n const { _value: oldValue } = this;\n this._value = value;\n this.requestUpdate('value', oldValue);\n }\n\n connectedCallback() {\n super.connectedCallback();\n this._instantiateDatePicker();\n }\n\n disconnectedCallback() {\n this._releaseDatePicker();\n super.disconnectedCallback();\n }\n\n updated(changedProperties) {\n const { calendar } = this;\n if (calendar) {\n if (changedProperties.has('dateFormat')) {\n this._setCalendar('dateFormat', calendar);\n }\n if (\n changedProperties.has('minDate') ||\n changedProperties.has('maxDate')\n ) {\n this._setCalendar('date', calendar);\n }\n\n if (changedProperties.has('open')) {\n this._setCalendar('open', calendar);\n }\n if (\n changedProperties.has('disabled') ||\n changedProperties.has('readonly')\n ) {\n this._setCalendar('disabled', calendar);\n }\n if (changedProperties.has('value')) {\n this._setCalendar('value', calendar);\n }\n }\n }\n\n render() {\n const { _handleSlotChange: handleSlotChange } = this;\n return html`\n <a\n class=\"${prefix}--visually-hidden\"\n href=\"javascript:void 0\"\n role=\"navigation\"\n tabindex=\"-1\"></a>\n <slot @slotchange=\"${handleSlotChange}\"></slot>\n <div id=\"floating-menu-container\"></div>\n <a\n class=\"${prefix}--visually-hidden\"\n href=\"javascript:void 0\"\n role=\"navigation\"\n tabindex=\"-1\"></a>\n `;\n }\n\n /**\n * The CSS selector for Flatpickr's month/year portion.\n */\n private static _selectorFlatpickrMonthYearContainer =\n '.flatpickr-current-month';\n\n /**\n * The CSS selector for Flatpickr's year portion.\n */\n private static _selectorFlatpickrYearContainer = '.numInputWrapper';\n\n /**\n * The CSS selector for the inner element of Flatpickr's month portion.\n */\n private static _selectorFlatpickrCurrentMonth = '.cur-month';\n\n /**\n * The CSS selector for Flatpickr's month navigator.\n */\n private static _selectorFlatpickrMonth = '.flatpickr-month';\n\n /**\n * The CSS selector for Flatpickr's container of the weekdays.\n */\n private static _selectorFlatpickrWeekdays = '.flatpickr-weekdays';\n\n /**\n * The CSS selector for Flatpickr's container of the days.\n */\n private static _selectorFlatpickrDays = '.flatpickr-days';\n\n /**\n * The CSS selector applied to Flatpickr's each weekdays.\n */\n private static _selectorFlatpickrWeekday = '.flatpickr-weekday';\n\n /**\n * The CSS selector applied to Flatpickr's each days.\n */\n private static _selectorFlatpickrDay = '.flatpickr-day';\n\n /**\n * The CSS class for the inner element of Flatpickr's month portion.\n */\n private static _classFlatpickrCurrentMonth = 'cur-month';\n\n /**\n * The CSS class applied to Flatpickr's \"today\" highlight.\n */\n private static _classFlatpickrToday = 'today';\n\n /**\n * The CSS class for the calendar dropdown.\n */\n static get classCalendarContainer() {\n return `${prefix}--date-picker__calendar`;\n }\n\n /**\n * The CSS class for the month navigator.\n */\n static get classMonth() {\n return `${prefix}--date-picker__month`;\n }\n\n /**\n * The CSS class for the container of the weekdays.\n */\n static get classWeekdays() {\n return `${prefix}--date-picker__weekdays`;\n }\n\n /**\n * The CSS class for the container of the days.\n */\n static get classDays() {\n return `${prefix}--date-picker__days`;\n }\n\n /**\n * The CSS class applied to each weekdays.\n */\n static get classWeekday() {\n return `${prefix}--date-picker__weekday`;\n }\n\n /**\n * The CSS class applied to each days.\n */\n static get classDay() {\n return `${prefix}--date-picker__day`;\n }\n\n /**\n * The CSS class applied to the \"today\" highlight if there are any dates selected.\n */\n static classNoBorder = 'no-border';\n\n /**\n * The default date format.\n */\n static defaultDateFormat = 'm/d/Y';\n\n /**\n * The default localization data.\n */\n static defaultLocale = flatpickr.l10ns.default;\n\n /**\n * A selector that will return the `<input>` to enter starting date.\n */\n static get selectorInputFrom() {\n return `${prefix}-date-picker-input,${prefix}-date-picker-input[kind=\"from\"]`;\n }\n\n /**\n * A selector that will return the `<input>` to enter end date.\n */\n static get selectorInputTo() {\n return `${prefix}-date-picker-input[kind=\"to\"]`;\n }\n\n /**\n * The name of the custom event when Flatpickr throws an error.\n */\n static get eventFlatpickrError() {\n return `${prefix}-date-picker-flatpickr-error`;\n }\n\n /**\n * The name of the custom event fired on this element when Flatpickr updates its value.\n */\n static get eventChange() {\n return `${prefix}-date-picker-changed`;\n }\n\n static styles = styles;\n}\n\nexport default CDSDatePicker;\n"],"names":["customElement"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"date-picker.js","sources":["../../../src/components/date-picker/date-picker.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2019, 2025\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, query } from 'lit/decorators.js';\nimport flatpickr from 'flatpickr';\nimport { Instance as FlatpickrInstance } from 'flatpickr/dist/types/instance';\nimport { Locale as FlatpickrLocale } from 'flatpickr/dist/types/locale';\nimport {\n Options as FlatpickrOptions,\n Plugin as FlatpickrPlugin,\n} from 'flatpickr/dist/types/options';\nimport { prefix } from '../../globals/settings';\nimport FormMixin from '../../globals/mixins/form';\nimport HostListenerMixin from '../../globals/mixins/host-listener';\nimport HostListener from '../../globals/decorators/host-listener';\nimport { getISODateString, parseISODateString } from './iso-date';\nimport CDSDatePickerInput from './date-picker-input';\nimport appendToPlugin from './append-to-plugin';\nimport cssClassPlugin from './css-class-plugin';\nimport fixEventsPlugin from './fix-events-plugin';\nimport focusPlugin from './focus-plugin';\nimport iconPlugin from './icon-plugin';\nimport monthSelectPlugin from './month-select-plugin';\nimport rangePlugin from './range-plugin';\nimport shadowDOMEventPlugin from './shadow-dom-events-plugin';\nimport stateHandshakePlugin from './state-handshake-plugin';\nimport styles from './date-picker.scss?lit';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\n/**\n * Date picker modes.\n */\nenum DATE_PICKER_MODE {\n /**\n * Simple mode, without calendar dropdown.\n */\n SIMPLE = 'simple',\n\n /**\n * Single date mode.\n */\n SINGLE = 'single',\n\n /**\n * Range mode.\n */\n RANGE = 'range',\n}\n\n// Weekdays shorthand for english locale\n// eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- https://github.com/carbon-design-system/carbon/issues/20452\nflatpickr!.l10ns!.en!.weekdays.shorthand.forEach((_day, index) => {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- https://github.com/carbon-design-system/carbon/issues/20452\n const currentDay = flatpickr!.l10ns!.en!.weekdays.shorthand;\n if (currentDay[index] === 'Thu' || currentDay[index] === 'Th') {\n currentDay[index] = 'Th';\n } else {\n currentDay[index] = currentDay[index].charAt(0);\n }\n});\n\n/**\n * Date picker.\n *\n * @element cds-date-picker\n * @fires cds-date-picker-changed - The custom event fired on this element when Flatpickr updates its value.\n * @fires cds-date-picker-flatpickr-error\n * The name of the custom event when Flatpickr throws an error.\n */\n@customElement(`${prefix}-date-picker`)\nclass CDSDatePicker extends HostListenerMixin(FormMixin(LitElement)) {\n /**\n * The slotted `<cds-date-input kind=\"from\">`.\n */\n private _dateInteractNode: CDSDatePickerInput | null = null;\n\n /**\n * The element to put calendar dropdown in.\n */\n @query('#floating-menu-container')\n private _floatingMenuContainerNode!: HTMLDivElement;\n\n /**\n * The internal placeholder for the `value` property.\n */\n private _value!: string;\n\n /**\n * @returns The effective date picker mode, determined by the child `<cds-date-picker-input>`.\n */\n private get _mode() {\n const { selectorInputTo } = this.constructor as typeof CDSDatePicker;\n if (this.querySelector(selectorInputTo)) {\n return DATE_PICKER_MODE.RANGE;\n }\n if (this.querySelector(`${prefix}-date-picker-input[kind=\"single\"]`)) {\n return DATE_PICKER_MODE.SINGLE;\n }\n return DATE_PICKER_MODE.SIMPLE;\n }\n\n /**\n * @returns The Flatpickr plugins to use.\n */\n private get _datePickerPlugins(): FlatpickrPlugin[] {\n const {\n classCalendarContainer,\n classMonth,\n classWeekdays,\n classDays,\n classWeekday,\n classDay,\n classNoBorder,\n selectorInputFrom,\n selectorInputTo,\n _selectorFlatpickrMonthYearContainer: selectorFlatpickrMonthYearContainer,\n _selectorFlatpickrYearContainer: selectorFlatpickrYearContainer,\n _selectorFlatpickrCurrentMonth: selectorFlatpickrCurrentMonth,\n _selectorFlatpickrMonth: selectorFlatpickrMonth,\n _selectorFlatpickrWeekdays: selectorFlatpickrWeekdays,\n _selectorFlatpickrDays: selectorFlatpickrDays,\n _selectorFlatpickrWeekday: selectorFlatpickrWeekday,\n _selectorFlatpickrDay: selectorFlatpickrDay,\n _classFlatpickrCurrentMonth: classFlatpickrCurrentMonth,\n _classFlatpickrToday: classFlatpickrToday,\n } = this.constructor as typeof CDSDatePicker;\n const {\n _floatingMenuContainerNode: floatingMenuContainerNode,\n _mode: mode,\n } = this;\n const inputFrom = this.querySelector(selectorInputFrom);\n const inputTo = this.querySelector(selectorInputTo);\n const plugins = [\n appendToPlugin({ appendTo: floatingMenuContainerNode }),\n cssClassPlugin({\n classCalendarContainer,\n classMonth,\n classWeekdays,\n classDays,\n classWeekday,\n classDay,\n classNoBorder,\n selectorFlatpickrMonth,\n selectorFlatpickrWeekdays,\n selectorFlatpickrDays,\n selectorFlatpickrWeekday,\n selectorFlatpickrDay,\n classFlatpickrToday,\n }),\n fixEventsPlugin({\n inputFrom: inputFrom as CDSDatePickerInput,\n inputTo: inputTo as CDSDatePickerInput,\n }),\n focusPlugin({\n inputFrom: inputFrom as CDSDatePickerInput,\n inputTo: inputTo as CDSDatePickerInput,\n }),\n iconPlugin(),\n monthSelectPlugin({\n selectorFlatpickrMonthYearContainer,\n selectorFlatpickrYearContainer,\n selectorFlatpickrCurrentMonth,\n classFlatpickrCurrentMonth,\n }),\n shadowDOMEventPlugin(),\n stateHandshakePlugin(this),\n ];\n if (mode === DATE_PICKER_MODE.RANGE) {\n // Flatpickr runs event handlers of last registered plugins first.\n // Ensures `onValueUpdate` of `rangePlugin` runs first\n // given Flatpickr puts `01/01/1970 to 01/02/1970` to from date\n // where `rangePlugin` overrides it to separate them to from/to dates.\n // We want to ensure our handler of `onValueUpdate` (notably one in `<cds-date-picker-input>`)\n // gets the `<input>` value set by `rangePlugin` instead of Flatpickr core.\n plugins.push(rangePlugin({ input: inputTo as HTMLInputElement }));\n }\n return plugins;\n }\n\n /**\n * @returns The options to instantiate Flatpickr with.\n */\n private get _datePickerOptions(): FlatpickrOptions {\n const {\n locale = (this.constructor as typeof CDSDatePicker).defaultLocale,\n enabledRange,\n _dateInteractNode: dateInteractNode,\n _datePickerPlugins: plugins,\n _handleFlatpickrError: handleFlatpickrError,\n } = this;\n // We use `<cds-date-picker-input>` to communicate values/events with Flatpickr,\n // but want to use `<input>` in shadow DOM to base the calendar dropdown's position on\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- https://github.com/carbon-design-system/carbon/issues/20452\n const { input: positionElement } = dateInteractNode!;\n const [minDate = undefined, maxDate = undefined] = !enabledRange\n ? []\n : enabledRange.split('/');\n return {\n allowInput: this.allowInput,\n closeOnSelect: this.closeOnSelect,\n dateFormat:\n this.dateFormat ??\n (this.constructor as typeof CDSDatePicker).defaultDateFormat,\n disableMobile: true,\n errorHandler: handleFlatpickrError,\n locale,\n maxDate,\n minDate,\n positionElement,\n plugins,\n };\n }\n\n /**\n * Handles `${prefix}-date-picker-changed` event on this element.\n */\n @HostListener('eventChange')\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- https://github.com/carbon-design-system/carbon/issues/20452\n // @ts-ignore: The decorator refers to this method but TS thinks this method is not referred to\n private _handleChange = ({ detail }: CustomEvent) => {\n this._value = detail.selectedDates\n .map((date) => getISODateString(date))\n .join('/');\n };\n\n _handleFormdata(event: FormDataEvent) {\n const { formData } = event;\n const { disabled, name, value } = this;\n if (!disabled) {\n formData.append(name, value);\n }\n }\n\n /**\n * Handles `slotchange` event in the `<slot>`.\n */\n private _handleSlotChange({ target }: Event) {\n const { _dateInteractNode: oldDateInteractNode } = this;\n const dateInteractNode = (target as HTMLSlotElement)\n .assignedNodes()\n .find(\n (node) =>\n node.nodeType === Node.ELEMENT_NODE &&\n (node as HTMLElement).matches(\n (this.constructor as typeof CDSDatePicker).selectorInputFrom\n )\n );\n if (oldDateInteractNode !== dateInteractNode) {\n this._dateInteractNode = dateInteractNode as CDSDatePickerInput;\n this._instantiateDatePicker();\n }\n }\n\n /**\n * Fires a custom event to notify an error in Flatpickr.\n */\n private _handleFlatpickrError = (error: Error) => {\n this.dispatchEvent(\n new CustomEvent(\n (this.constructor as typeof CDSDatePicker).eventFlatpickrError,\n {\n bubbles: true,\n cancelable: false,\n composed: true,\n detail: {\n error,\n },\n }\n )\n );\n };\n\n /**\n * Sets calendar options\n * @param property property to set\n * @param calendar calendar object\n */\n private _setCalendar(property, calendar) {\n const { disabled, dateFormat, open, readonly, minDate, maxDate, value } =\n this;\n\n const { selectorInputFrom, selectorInputTo } = this\n .constructor as typeof CDSDatePicker;\n const inputFrom = this.querySelector(\n selectorInputFrom\n ) as CDSDatePickerInput;\n const inputTo = this.querySelector(selectorInputTo) as CDSDatePickerInput;\n\n if (property === 'dateFormat') {\n calendar.set({ dateFormat });\n }\n if (property === 'date') {\n if (!parseISODateString(minDate)) {\n // Allows empty start/end\n throw new Error(\n `Wrong date format found in \\`minDate\\` property: ${minDate}`\n );\n }\n if (!parseISODateString(maxDate)) {\n // Allows empty start/end\n throw new Error(\n `Wrong date format found in \\`maxDate\\` property: ${maxDate}`\n );\n }\n if (minDate && maxDate && minDate > maxDate) {\n throw new Error(\n `\\`maxDate\\` property, shouldn't be smaller than the \\`minDate\\` property. You have: minDate: ${minDate}, maxDate: ${maxDate}`\n );\n }\n calendar.set({ minDate, maxDate });\n }\n if (property === 'open') {\n if (open && !readonly) {\n calendar.open();\n } else {\n calendar.close();\n }\n }\n if (property === 'disabled') {\n [inputFrom, inputTo].forEach((input) => {\n if (input) {\n input.disabled = disabled;\n input.readonly = readonly;\n }\n });\n }\n if (property === 'value') {\n const dates = value\n .split('/')\n .filter(Boolean)\n .map((item) => parseISODateString(item));\n if (dates.some((item) => isNaN(Number(item)))) {\n throw new Error(\n `Wrong date format found in \\`value\\` property: ${value}`\n );\n }\n const [startDate, endDate] = dates;\n if (startDate && endDate && startDate > endDate) {\n throw new Error(\n `In \\`value\\` property, the end date shouldn't be smaller than the start date. You have: ${value}`\n );\n }\n if (calendar) {\n calendar.setDate(dates);\n [inputFrom, inputTo].forEach((input, i) => {\n if (input) {\n input.value = !dates[i]\n ? ''\n : calendar.formatDate(\n new Date(dates[i]),\n calendar.config.dateFormat\n );\n }\n });\n }\n }\n return calendar;\n }\n\n /**\n * Instantiates Flatpickr.\n *\n * @returns The Flatpickr instance.\n */\n private _instantiateDatePicker() {\n this._releaseDatePicker();\n const { _dateInteractNode: dateInteractNode } = this;\n // do not instantiate Flatpickr in \"simple\" mode\n if (dateInteractNode && dateInteractNode.input && this._mode !== 'simple') {\n this.calendar = flatpickr(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- https://github.com/carbon-design-system/carbon/issues/20452\n dateInteractNode.input as any,\n this._datePickerOptions\n );\n }\n\n const {\n calendar,\n disabled,\n dateFormat,\n open,\n readonly,\n minDate,\n maxDate,\n value,\n } = this;\n\n if (calendar) {\n if (dateFormat) {\n this._setCalendar('dateFormat', calendar);\n }\n\n if (minDate || maxDate) {\n this._setCalendar('date', calendar);\n }\n\n if (open) {\n this._setCalendar('open', calendar);\n }\n\n if (disabled || readonly) {\n this._setCalendar('disabled', calendar);\n }\n if (value) {\n this._setCalendar('value', calendar);\n }\n }\n return calendar;\n }\n\n /**\n * Releases Flatpickr instances.\n */\n private _releaseDatePicker() {\n if (this.calendar) {\n this.calendar.destroy();\n this.calendar = null;\n }\n return this.calendar;\n }\n\n /**\n * The Flatpickr instance.\n */\n calendar: FlatpickrInstance | null = null;\n\n /**\n * flatpickr prop passthrough. Allows the user to enter a date directly into the input field\n */\n @property({ type: Boolean, reflect: true, attribute: 'allow-input' })\n allowInput = true;\n\n /**\n * flatpickr prop passthrough. Controls whether the calendar dropdown closes upon selection.\n */\n @property({ type: Boolean, reflect: true, attribute: 'close-on-select' })\n closeOnSelect = true;\n\n /**\n * The date format to let Flatpickr use.\n */\n @property({ attribute: 'date-format' })\n dateFormat!: string;\n\n /**\n * Controls the disabled state of the input\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * The date range that a user can pick in calendar dropdown.\n */\n @property({ attribute: 'enabled-range' })\n enabledRange!: string;\n\n /**\n * The localization data.\n */\n @property({ attribute: false })\n locale!: FlatpickrLocale;\n\n /**\n * The maximum date that a user can start picking from.\n */\n @property({ attribute: 'max-date' })\n maxDate!: string;\n\n /**\n * The minimum date that a user can start picking from.\n */\n @property({ attribute: 'min-date' })\n minDate!: string;\n\n /**\n * Name for the input in the `FormData`\n */\n @property()\n name = '';\n\n /**\n * `true` if the date picker should be open.\n */\n @property({ type: Boolean, reflect: true })\n open = false;\n\n /**\n * Specify if the component should be read-only\n */\n @property({ type: Boolean, reflect: true })\n readonly = false;\n\n /**\n * The date(s) in ISO8601 format (date portion only), for range mode, '/' is used for separate start/end dates.\n */\n @property()\n get value() {\n return this._value;\n }\n\n set value(value: string) {\n const { _value: oldValue } = this;\n this._value = value;\n this.requestUpdate('value', oldValue);\n }\n\n connectedCallback() {\n super.connectedCallback();\n this._instantiateDatePicker();\n }\n\n disconnectedCallback() {\n this._releaseDatePicker();\n super.disconnectedCallback();\n }\n\n updated(changedProperties) {\n const { calendar } = this;\n if (calendar) {\n if (changedProperties.has('dateFormat')) {\n this._setCalendar('dateFormat', calendar);\n }\n if (\n changedProperties.has('minDate') ||\n changedProperties.has('maxDate')\n ) {\n this._setCalendar('date', calendar);\n }\n\n if (changedProperties.has('open')) {\n this._setCalendar('open', calendar);\n }\n if (\n changedProperties.has('disabled') ||\n changedProperties.has('readonly')\n ) {\n this._setCalendar('disabled', calendar);\n }\n if (changedProperties.has('value')) {\n this._setCalendar('value', calendar);\n }\n }\n }\n\n render() {\n const { _handleSlotChange: handleSlotChange } = this;\n return html`\n <a\n class=\"${prefix}--visually-hidden\"\n href=\"javascript:void 0\"\n role=\"navigation\"\n tabindex=\"-1\"></a>\n <slot @slotchange=\"${handleSlotChange}\"></slot>\n <div id=\"floating-menu-container\"></div>\n <a\n class=\"${prefix}--visually-hidden\"\n href=\"javascript:void 0\"\n role=\"navigation\"\n tabindex=\"-1\"></a>\n `;\n }\n\n /**\n * The CSS selector for Flatpickr's month/year portion.\n */\n private static _selectorFlatpickrMonthYearContainer =\n '.flatpickr-current-month';\n\n /**\n * The CSS selector for Flatpickr's year portion.\n */\n private static _selectorFlatpickrYearContainer = '.numInputWrapper';\n\n /**\n * The CSS selector for the inner element of Flatpickr's month portion.\n */\n private static _selectorFlatpickrCurrentMonth = '.cur-month';\n\n /**\n * The CSS selector for Flatpickr's month navigator.\n */\n private static _selectorFlatpickrMonth = '.flatpickr-month';\n\n /**\n * The CSS selector for Flatpickr's container of the weekdays.\n */\n private static _selectorFlatpickrWeekdays = '.flatpickr-weekdays';\n\n /**\n * The CSS selector for Flatpickr's container of the days.\n */\n private static _selectorFlatpickrDays = '.flatpickr-days';\n\n /**\n * The CSS selector applied to Flatpickr's each weekdays.\n */\n private static _selectorFlatpickrWeekday = '.flatpickr-weekday';\n\n /**\n * The CSS selector applied to Flatpickr's each days.\n */\n private static _selectorFlatpickrDay = '.flatpickr-day';\n\n /**\n * The CSS class for the inner element of Flatpickr's month portion.\n */\n private static _classFlatpickrCurrentMonth = 'cur-month';\n\n /**\n * The CSS class applied to Flatpickr's \"today\" highlight.\n */\n private static _classFlatpickrToday = 'today';\n\n /**\n * The CSS class for the calendar dropdown.\n */\n static get classCalendarContainer() {\n return `${prefix}--date-picker__calendar`;\n }\n\n /**\n * The CSS class for the month navigator.\n */\n static get classMonth() {\n return `${prefix}--date-picker__month`;\n }\n\n /**\n * The CSS class for the container of the weekdays.\n */\n static get classWeekdays() {\n return `${prefix}--date-picker__weekdays`;\n }\n\n /**\n * The CSS class for the container of the days.\n */\n static get classDays() {\n return `${prefix}--date-picker__days`;\n }\n\n /**\n * The CSS class applied to each weekdays.\n */\n static get classWeekday() {\n return `${prefix}--date-picker__weekday`;\n }\n\n /**\n * The CSS class applied to each days.\n */\n static get classDay() {\n return `${prefix}--date-picker__day`;\n }\n\n /**\n * The CSS class applied to the \"today\" highlight if there are any dates selected.\n */\n static classNoBorder = 'no-border';\n\n /**\n * The default date format.\n */\n static defaultDateFormat = 'm/d/Y';\n\n /**\n * The default localization data.\n */\n static defaultLocale = flatpickr.l10ns.default;\n\n /**\n * A selector that will return the `<input>` to enter starting date.\n */\n static get selectorInputFrom() {\n return `${prefix}-date-picker-input,${prefix}-date-picker-input[kind=\"from\"]`;\n }\n\n /**\n * A selector that will return the `<input>` to enter end date.\n */\n static get selectorInputTo() {\n return `${prefix}-date-picker-input[kind=\"to\"]`;\n }\n\n /**\n * The name of the custom event when Flatpickr throws an error.\n */\n static get eventFlatpickrError() {\n return `${prefix}-date-picker-flatpickr-error`;\n }\n\n /**\n * The name of the custom event fired on this element when Flatpickr updates its value.\n */\n static get eventChange() {\n return `${prefix}-date-picker-changed`;\n }\n\n static styles = styles;\n}\n\nexport default CDSDatePicker;\n"],"names":["customElement"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;AAKG;AA6BH;;AAEG;AACH,IAAK,gBAeJ;AAfD,CAAA,UAAK,gBAAgB,EAAA;AACnB;;AAEG;AACH,IAAA,gBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AAEjB;;AAEG;AACH,IAAA,gBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AAEjB;;AAEG;AACH,IAAA,gBAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACjB,CAAC,EAfI,gBAAgB,KAAhB,gBAAgB,GAAA,EAAA,CAAA,CAAA;AAiBrB;AACA;AACA,SAAU,CAAC,KAAM,CAAC,EAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,KAAI;;IAE/D,MAAM,UAAU,GAAG,SAAU,CAAC,KAAM,CAAC,EAAG,CAAC,QAAQ,CAAC,SAAS;AAC3D,IAAA,IAAI,UAAU,CAAC,KAAK,CAAC,KAAK,KAAK,IAAI,UAAU,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE;AAC7D,QAAA,UAAU,CAAC,KAAK,CAAC,GAAG,IAAI;IAC1B;SAAO;AACL,QAAA,UAAU,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IACjD;AACF,CAAC,CAAC;AAEF;;;;;;;AAOG;AAEH,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,iBAAiB,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAA;AAApE,IAAA,WAAA,GAAA;;AACE;;AAEG;QACK,IAAA,CAAA,iBAAiB,GAA8B,IAAI;AA2I3D;;AAEG;AAIK,QAAA,IAAA,CAAA,aAAa,GAAG,CAAC,EAAE,MAAM,EAAe,KAAI;AAClD,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;iBAClB,GAAG,CAAC,CAAC,IAAI,KAAK,gBAAgB,CAAC,IAAI,CAAC;iBACpC,IAAI,CAAC,GAAG,CAAC;AACd,QAAA,CAAC;AA8BD;;AAEG;AACK,QAAA,IAAA,CAAA,qBAAqB,GAAG,CAAC,KAAY,KAAI;YAC/C,IAAI,CAAC,aAAa,CAChB,IAAI,WAAW,CACZ,IAAI,CAAC,WAAoC,CAAC,mBAAmB,EAC9D;AACE,gBAAA,OAAO,EAAE,IAAI;AACb,gBAAA,UAAU,EAAE,KAAK;AACjB,gBAAA,QAAQ,EAAE,IAAI;AACd,gBAAA,MAAM,EAAE;oBACN,KAAK;AACN,iBAAA;AACF,aAAA,CACF,CACF;AACH,QAAA,CAAC;AAuJD;;AAEG;QACH,IAAA,CAAA,QAAQ,GAA6B,IAAI;AAEzC;;AAEG;QAEH,IAAA,CAAA,UAAU,GAAG,IAAI;AAEjB;;AAEG;QAEH,IAAA,CAAA,aAAa,GAAG,IAAI;AAQpB;;AAEG;QAEH,IAAA,CAAA,QAAQ,GAAG,KAAK;AA0BhB;;AAEG;QAEH,IAAA,CAAA,IAAI,GAAG,EAAE;AAET;;AAEG;QAEH,IAAA,CAAA,IAAI,GAAG,KAAK;AAEZ;;AAEG;QAEH,IAAA,CAAA,QAAQ,GAAG,KAAK;IAiNlB;AApmBE;;AAEG;AACH,IAAA,IAAY,KAAK,GAAA;AACf,QAAA,MAAM,EAAE,eAAe,EAAE,GAAG,IAAI,CAAC,WAAmC;AACpE,QAAA,IAAI,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,EAAE;YACvC,OAAO,gBAAgB,CAAC,KAAK;QAC/B;QACA,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,MAAM,CAAA,iCAAA,CAAmC,CAAC,EAAE;YACpE,OAAO,gBAAgB,CAAC,MAAM;QAChC;QACA,OAAO,gBAAgB,CAAC,MAAM;IAChC;AAEA;;AAEG;AACH,IAAA,IAAY,kBAAkB,GAAA;AAC5B,QAAA,MAAM,EACJ,sBAAsB,EACtB,UAAU,EACV,aAAa,EACb,SAAS,EACT,YAAY,EACZ,QAAQ,EACR,aAAa,EACb,iBAAiB,EACjB,eAAe,EACf,oCAAoC,EAAE,mCAAmC,EACzE,+BAA+B,EAAE,8BAA8B,EAC/D,8BAA8B,EAAE,6BAA6B,EAC7D,uBAAuB,EAAE,sBAAsB,EAC/C,0BAA0B,EAAE,yBAAyB,EACrD,sBAAsB,EAAE,qBAAqB,EAC7C,yBAAyB,EAAE,wBAAwB,EACnD,qBAAqB,EAAE,oBAAoB,EAC3C,2BAA2B,EAAE,0BAA0B,EACvD,oBAAoB,EAAE,mBAAmB,GAC1C,GAAG,IAAI,CAAC,WAAmC;QAC5C,MAAM,EACJ,0BAA0B,EAAE,yBAAyB,EACrD,KAAK,EAAE,IAAI,GACZ,GAAG,IAAI;QACR,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC;QACvD,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC;AACnD,QAAA,MAAM,OAAO,GAAG;AACd,YAAA,cAAc,CAAC,EAAE,QAAQ,EAAE,yBAAyB,EAAE,CAAC;AACvD,YAAA,cAAc,CAAC;gBACb,sBAAsB;gBACtB,UAAU;gBACV,aAAa;gBACb,SAAS;gBACT,YAAY;gBACZ,QAAQ;gBACR,aAAa;gBACb,sBAAsB;gBACtB,yBAAyB;gBACzB,qBAAqB;gBACrB,wBAAwB;gBACxB,oBAAoB;gBACpB,mBAAmB;aACpB,CAAC;AACF,YAAA,eAAe,CAAC;AACd,gBAAA,SAAS,EAAE,SAA+B;AAC1C,gBAAA,OAAO,EAAE,OAA6B;aACvC,CAAC;AACF,YAAA,WAAW,CAAC;AACV,gBAAA,SAAS,EAAE,SAA+B;AAC1C,gBAAA,OAAO,EAAE,OAA6B;aACvC,CAAC;AACF,YAAA,UAAU,EAAE;AACZ,YAAA,iBAAiB,CAAC;gBAChB,mCAAmC;gBACnC,8BAA8B;gBAC9B,6BAA6B;gBAC7B,0BAA0B;aAC3B,CAAC;AACF,YAAA,oBAAoB,EAAE;YACtB,oBAAoB,CAAC,IAAI,CAAC;SAC3B;AACD,QAAA,IAAI,IAAI,KAAK,gBAAgB,CAAC,KAAK,EAAE;;;;;;;AAOnC,YAAA,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,OAA2B,EAAE,CAAC,CAAC;QACnE;AACA,QAAA,OAAO,OAAO;IAChB;AAEA;;AAEG;AACH,IAAA,IAAY,kBAAkB,GAAA;;QAC5B,MAAM,EACJ,MAAM,GAAI,IAAI,CAAC,WAAoC,CAAC,aAAa,EACjE,YAAY,EACZ,iBAAiB,EAAE,gBAAgB,EACnC,kBAAkB,EAAE,OAAO,EAC3B,qBAAqB,EAAE,oBAAoB,GAC5C,GAAG,IAAI;;;;AAIR,QAAA,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE,GAAG,gBAAiB;QACpD,MAAM,CAAC,OAAO,GAAG,SAAS,EAAE,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC;AAClD,cAAE;AACF,cAAE,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC;QAC3B,OAAO;YACL,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,UAAU,EACR,CAAA,EAAA,GAAA,IAAI,CAAC,UAAU,mCACd,IAAI,CAAC,WAAoC,CAAC,iBAAiB;AAC9D,YAAA,aAAa,EAAE,IAAI;AACnB,YAAA,YAAY,EAAE,oBAAoB;YAClC,MAAM;YACN,OAAO;YACP,OAAO;YACP,eAAe;YACf,OAAO;SACR;IACH;AAcA,IAAA,eAAe,CAAC,KAAoB,EAAA;AAClC,QAAA,MAAM,EAAE,QAAQ,EAAE,GAAG,KAAK;QAC1B,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,IAAI;QACtC,IAAI,CAAC,QAAQ,EAAE;AACb,YAAA,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC;QAC9B;IACF;AAEA;;AAEG;IACK,iBAAiB,CAAC,EAAE,MAAM,EAAS,EAAA;AACzC,QAAA,MAAM,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,GAAG,IAAI;QACvD,MAAM,gBAAgB,GAAI;AACvB,aAAA,aAAa;AACb,aAAA,IAAI,CACH,CAAC,IAAI,KACH,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,YAAY;YAClC,IAAoB,CAAC,OAAO,CAC1B,IAAI,CAAC,WAAoC,CAAC,iBAAiB,CAC7D,CACJ;AACH,QAAA,IAAI,mBAAmB,KAAK,gBAAgB,EAAE;AAC5C,YAAA,IAAI,CAAC,iBAAiB,GAAG,gBAAsC;YAC/D,IAAI,CAAC,sBAAsB,EAAE;QAC/B;IACF;AAqBA;;;;AAIG;IACK,YAAY,CAAC,QAAQ,EAAE,QAAQ,EAAA;AACrC,QAAA,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,GACrE,IAAI;AAEN,QAAA,MAAM,EAAE,iBAAiB,EAAE,eAAe,EAAE,GAAG;AAC5C,aAAA,WAAmC;QACtC,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAClC,iBAAiB,CACI;QACvB,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,CAAuB;AAEzE,QAAA,IAAI,QAAQ,KAAK,YAAY,EAAE;AAC7B,YAAA,QAAQ,CAAC,GAAG,CAAC,EAAE,UAAU,EAAE,CAAC;QAC9B;AACA,QAAA,IAAI,QAAQ,KAAK,MAAM,EAAE;AACvB,YAAA,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE;;AAEhC,gBAAA,MAAM,IAAI,KAAK,CACb,oDAAoD,OAAO,CAAA,CAAE,CAC9D;YACH;AACA,YAAA,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE;;AAEhC,gBAAA,MAAM,IAAI,KAAK,CACb,oDAAoD,OAAO,CAAA,CAAE,CAC9D;YACH;YACA,IAAI,OAAO,IAAI,OAAO,IAAI,OAAO,GAAG,OAAO,EAAE;gBAC3C,MAAM,IAAI,KAAK,CACb,CAAA,6FAAA,EAAgG,OAAO,CAAA,WAAA,EAAc,OAAO,CAAA,CAAE,CAC/H;YACH;YACA,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;QACpC;AACA,QAAA,IAAI,QAAQ,KAAK,MAAM,EAAE;AACvB,YAAA,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACrB,QAAQ,CAAC,IAAI,EAAE;YACjB;iBAAO;gBACL,QAAQ,CAAC,KAAK,EAAE;YAClB;QACF;AACA,QAAA,IAAI,QAAQ,KAAK,UAAU,EAAE;YAC3B,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,KAAI;gBACrC,IAAI,KAAK,EAAE;AACT,oBAAA,KAAK,CAAC,QAAQ,GAAG,QAAQ;AACzB,oBAAA,KAAK,CAAC,QAAQ,GAAG,QAAQ;gBAC3B;AACF,YAAA,CAAC,CAAC;QACJ;AACA,QAAA,IAAI,QAAQ,KAAK,OAAO,EAAE;YACxB,MAAM,KAAK,GAAG;iBACX,KAAK,CAAC,GAAG;iBACT,MAAM,CAAC,OAAO;iBACd,GAAG,CAAC,CAAC,IAAI,KAAK,kBAAkB,CAAC,IAAI,CAAC,CAAC;AAC1C,YAAA,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;AAC7C,gBAAA,MAAM,IAAI,KAAK,CACb,kDAAkD,KAAK,CAAA,CAAE,CAC1D;YACH;AACA,YAAA,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,GAAG,KAAK;YAClC,IAAI,SAAS,IAAI,OAAO,IAAI,SAAS,GAAG,OAAO,EAAE;AAC/C,gBAAA,MAAM,IAAI,KAAK,CACb,2FAA2F,KAAK,CAAA,CAAE,CACnG;YACH;YACA,IAAI,QAAQ,EAAE;AACZ,gBAAA,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC;AACvB,gBAAA,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC,KAAI;oBACxC,IAAI,KAAK,EAAE;AACT,wBAAA,KAAK,CAAC,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC;AACpB,8BAAE;8BACA,QAAQ,CAAC,UAAU,CACjB,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAClB,QAAQ,CAAC,MAAM,CAAC,UAAU,CAC3B;oBACP;AACF,gBAAA,CAAC,CAAC;YACJ;QACF;AACA,QAAA,OAAO,QAAQ;IACjB;AAEA;;;;AAIG;IACK,sBAAsB,GAAA;QAC5B,IAAI,CAAC,kBAAkB,EAAE;AACzB,QAAA,MAAM,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,GAAG,IAAI;;AAEpD,QAAA,IAAI,gBAAgB,IAAI,gBAAgB,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE;YACzE,IAAI,CAAC,QAAQ,GAAG,SAAS;;AAEvB,YAAA,gBAAgB,CAAC,KAAY,EAC7B,IAAI,CAAC,kBAAkB,CACxB;QACH;AAEA,QAAA,MAAM,EACJ,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,IAAI,EACJ,QAAQ,EACR,OAAO,EACP,OAAO,EACP,KAAK,GACN,GAAG,IAAI;QAER,IAAI,QAAQ,EAAE;YACZ,IAAI,UAAU,EAAE;AACd,gBAAA,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,QAAQ,CAAC;YAC3C;AAEA,YAAA,IAAI,OAAO,IAAI,OAAO,EAAE;AACtB,gBAAA,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC;YACrC;YAEA,IAAI,IAAI,EAAE;AACR,gBAAA,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC;YACrC;AAEA,YAAA,IAAI,QAAQ,IAAI,QAAQ,EAAE;AACxB,gBAAA,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,QAAQ,CAAC;YACzC;YACA,IAAI,KAAK,EAAE;AACT,gBAAA,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC;YACtC;QACF;AACA,QAAA,OAAO,QAAQ;IACjB;AAEA;;AAEG;IACK,kBAAkB,GAAA;AACxB,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,YAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;AACvB,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;QACtB;QACA,OAAO,IAAI,CAAC,QAAQ;IACtB;AAyEA;;AAEG;AAEH,IAAA,IAAI,KAAK,GAAA;QACP,OAAO,IAAI,CAAC,MAAM;IACpB;IAEA,IAAI,KAAK,CAAC,KAAa,EAAA;AACrB,QAAA,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI;AACjC,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK;AACnB,QAAA,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,QAAQ,CAAC;IACvC;IAEA,iBAAiB,GAAA;QACf,KAAK,CAAC,iBAAiB,EAAE;QACzB,IAAI,CAAC,sBAAsB,EAAE;IAC/B;IAEA,oBAAoB,GAAA;QAClB,IAAI,CAAC,kBAAkB,EAAE;QACzB,KAAK,CAAC,oBAAoB,EAAE;IAC9B;AAEA,IAAA,OAAO,CAAC,iBAAiB,EAAA;AACvB,QAAA,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI;QACzB,IAAI,QAAQ,EAAE;AACZ,YAAA,IAAI,iBAAiB,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE;AACvC,gBAAA,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,QAAQ,CAAC;YAC3C;AACA,YAAA,IACE,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC;AAChC,gBAAA,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,EAChC;AACA,gBAAA,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC;YACrC;AAEA,YAAA,IAAI,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;AACjC,gBAAA,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC;YACrC;AACA,YAAA,IACE,iBAAiB,CAAC,GAAG,CAAC,UAAU,CAAC;AACjC,gBAAA,iBAAiB,CAAC,GAAG,CAAC,UAAU,CAAC,EACjC;AACA,gBAAA,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,QAAQ,CAAC;YACzC;AACA,YAAA,IAAI,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;AAClC,gBAAA,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC;YACtC;QACF;IACF;IAEA,MAAM,GAAA;AACJ,QAAA,MAAM,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,GAAG,IAAI;AACpD,QAAA,OAAO,IAAI,CAAA;;iBAEE,MAAM,CAAA;;;;2BAII,gBAAgB,CAAA;;;iBAG1B,MAAM,CAAA;;;;KAIlB;IACH;AAqDA;;AAEG;AACH,IAAA,WAAW,sBAAsB,GAAA;QAC/B,OAAO,CAAA,EAAG,MAAM,CAAA,uBAAA,CAAyB;IAC3C;AAEA;;AAEG;AACH,IAAA,WAAW,UAAU,GAAA;QACnB,OAAO,CAAA,EAAG,MAAM,CAAA,oBAAA,CAAsB;IACxC;AAEA;;AAEG;AACH,IAAA,WAAW,aAAa,GAAA;QACtB,OAAO,CAAA,EAAG,MAAM,CAAA,uBAAA,CAAyB;IAC3C;AAEA;;AAEG;AACH,IAAA,WAAW,SAAS,GAAA;QAClB,OAAO,CAAA,EAAG,MAAM,CAAA,mBAAA,CAAqB;IACvC;AAEA;;AAEG;AACH,IAAA,WAAW,YAAY,GAAA;QACrB,OAAO,CAAA,EAAG,MAAM,CAAA,sBAAA,CAAwB;IAC1C;AAEA;;AAEG;AACH,IAAA,WAAW,QAAQ,GAAA;QACjB,OAAO,CAAA,EAAG,MAAM,CAAA,kBAAA,CAAoB;IACtC;AAiBA;;AAEG;AACH,IAAA,WAAW,iBAAiB,GAAA;AAC1B,QAAA,OAAO,CAAA,EAAG,MAAM,CAAA,mBAAA,EAAsB,MAAM,iCAAiC;IAC/E;AAEA;;AAEG;AACH,IAAA,WAAW,eAAe,GAAA;QACxB,OAAO,CAAA,EAAG,MAAM,CAAA,6BAAA,CAA+B;IACjD;AAEA;;AAEG;AACH,IAAA,WAAW,mBAAmB,GAAA;QAC5B,OAAO,CAAA,EAAG,MAAM,CAAA,4BAAA,CAA8B;IAChD;AAEA;;AAEG;AACH,IAAA,WAAW,WAAW,GAAA;QACpB,OAAO,CAAA,EAAG,MAAM,CAAA,oBAAA,CAAsB;IACxC;;AAtIA;;AAEG;AACY,aAAA,CAAA,oCAAoC,GACjD,0BADiD;AAGnD;;AAEG;AACY,aAAA,CAAA,+BAA+B,GAAG,kBAAH;AAE9C;;AAEG;AACY,aAAA,CAAA,8BAA8B,GAAG,YAAH;AAE7C;;AAEG;AACY,aAAA,CAAA,uBAAuB,GAAG,kBAAH;AAEtC;;AAEG;AACY,aAAA,CAAA,0BAA0B,GAAG,qBAAH;AAEzC;;AAEG;AACY,aAAA,CAAA,sBAAsB,GAAG,iBAAH;AAErC;;AAEG;AACY,aAAA,CAAA,yBAAyB,GAAG,oBAAH;AAExC;;AAEG;AACY,aAAA,CAAA,qBAAqB,GAAG,gBAAH;AAEpC;;AAEG;AACY,aAAA,CAAA,2BAA2B,GAAG,WAAH;AAE1C;;AAEG;AACY,aAAA,CAAA,oBAAoB,GAAG,OAAH;AA4CnC;;AAEG;AACI,aAAA,CAAA,aAAa,GAAG,WAAH;AAEpB;;AAEG;AACI,aAAA,CAAA,iBAAiB,GAAG,OAAH;AAExB;;AAEG;AACI,aAAA,CAAA,aAAa,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO;AA8BvC,aAAA,CAAA,MAAM,GAAG,MAAH;AA1mBL,UAAA,CAAA;IADP,KAAK,CAAC,0BAA0B;AACmB,CAAA,EAAA,aAAA,CAAA,SAAA,EAAA,4BAAA,EAAA,MAAA,CAAA;AA2I5C,UAAA,CAAA;IAHP,YAAY,CAAC,aAAa;;;AAOzB,CAAA,EAAA,aAAA,CAAA,SAAA,EAAA,eAAA,EAAA,MAAA,CAAA;AA+MF,UAAA,CAAA;AADC,IAAA,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,aAAa,EAAE;AAClD,CAAA,EAAA,aAAA,CAAA,SAAA,EAAA,YAAA,EAAA,MAAA,CAAA;AAMlB,UAAA,CAAA;AADC,IAAA,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,iBAAiB,EAAE;AACnD,CAAA,EAAA,aAAA,CAAA,SAAA,EAAA,eAAA,EAAA,MAAA,CAAA;AAMrB,UAAA,CAAA;AADC,IAAA,QAAQ,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE;AAClB,CAAA,EAAA,aAAA,CAAA,SAAA,EAAA,YAAA,EAAA,MAAA,CAAA;AAMpB,UAAA,CAAA;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE;AACzB,CAAA,EAAA,aAAA,CAAA,SAAA,EAAA,UAAA,EAAA,MAAA,CAAA;AAMjB,UAAA,CAAA;AADC,IAAA,QAAQ,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE;AAClB,CAAA,EAAA,aAAA,CAAA,SAAA,EAAA,cAAA,EAAA,MAAA,CAAA;AAMtB,UAAA,CAAA;AADC,IAAA,QAAQ,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE;AACL,CAAA,EAAA,aAAA,CAAA,SAAA,EAAA,QAAA,EAAA,MAAA,CAAA;AAMzB,UAAA,CAAA;AADC,IAAA,QAAQ,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE;AAClB,CAAA,EAAA,aAAA,CAAA,SAAA,EAAA,SAAA,EAAA,MAAA,CAAA;AAMjB,UAAA,CAAA;AADC,IAAA,QAAQ,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE;AAClB,CAAA,EAAA,aAAA,CAAA,SAAA,EAAA,SAAA,EAAA,MAAA,CAAA;AAMjB,UAAA,CAAA;AADC,IAAA,QAAQ;AACC,CAAA,EAAA,aAAA,CAAA,SAAA,EAAA,MAAA,EAAA,MAAA,CAAA;AAMV,UAAA,CAAA;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE;AAC7B,CAAA,EAAA,aAAA,CAAA,SAAA,EAAA,MAAA,EAAA,MAAA,CAAA;AAMb,UAAA,CAAA;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE;AACzB,CAAA,EAAA,aAAA,CAAA,SAAA,EAAA,UAAA,EAAA,MAAA,CAAA;AAMjB,UAAA,CAAA;AADC,IAAA,QAAQ;AAGR,CAAA,EAAA,aAAA,CAAA,SAAA,EAAA,OAAA,EAAA,IAAA,CAAA;AA5aG,aAAa,GAAA,UAAA,CAAA;AADlB,IAAAA,aAAa,CAAC,CAAA,EAAG,MAAM,CAAA,YAAA,CAAc;AAChC,CAAA,EAAA,aAAa,CAqnBlB;AAED,4BAAe,aAAa;;;;"}
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
import { render } from 'lit';
|
|
9
9
|
import ChevronLeft16 from '@carbon/icons/es/chevron--left/16.js';
|
|
10
10
|
import ChevronRight16 from '@carbon/icons/es/chevron--right/16.js';
|
|
11
|
-
import
|
|
11
|
+
import iconLoader from '../../globals/internal/icon-loader.js';
|
|
12
12
|
|
|
13
13
|
/**
|
|
14
14
|
* Copyright IBM Corp. 2019, 2024
|
|
@@ -9,7 +9,7 @@ import { __decorate } from 'tslib';
|
|
|
9
9
|
import { LitElement, html } from 'lit';
|
|
10
10
|
import { property, state } from 'lit/decorators.js';
|
|
11
11
|
import { prefix } from '../../globals/settings.js';
|
|
12
|
-
import
|
|
12
|
+
import iconLoader from '../../globals/internal/icon-loader.js';
|
|
13
13
|
import Checkmark16 from '@carbon/icons/es/checkmark/16.js';
|
|
14
14
|
import './dropdown.js';
|
|
15
15
|
import styles from './dropdown.scss.js';
|
|
@@ -60,7 +60,7 @@ __decorate([
|
|
|
60
60
|
CDSDropdownSkeleton = __decorate([
|
|
61
61
|
carbonElement(`${prefix}-dropdown-skeleton`)
|
|
62
62
|
], CDSDropdownSkeleton);
|
|
63
|
-
var
|
|
63
|
+
var CDSDropdownSkeleton_default = CDSDropdownSkeleton;
|
|
64
64
|
|
|
65
|
-
export {
|
|
65
|
+
export { CDSDropdownSkeleton_default as default };
|
|
66
66
|
//# sourceMappingURL=dropdown-skeleton.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dropdown-skeleton.js","sources":["../../../src/components/dropdown/dropdown-skeleton.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2019, 2025\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 { classMap } from 'lit/directives/class-map.js';\nimport { property } from 'lit/decorators.js';\nimport { prefix } from '../../globals/settings';\nimport { DROPDOWN_SIZE } from './defs';\nimport styles from './dropdown.scss?lit';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\n/**\n * Skeleton version of dropdown.\n */\n@customElement(`${prefix}-dropdown-skeleton`)\nclass CDSDropdownSkeleton extends LitElement {\n /**\n * Specify whether the label should be hidden, or not.\n */\n @property({ type: Boolean, reflect: true, attribute: 'hide-label' })\n hideLabel = false;\n\n /**\n * Specify the size of the ListBox.\n */\n @property({ reflect: true })\n size = DROPDOWN_SIZE.MEDIUM;\n\n render() {\n const { hideLabel, size } = this;\n const classes = classMap({\n [`${prefix}--skeleton`]: true,\n [`${prefix}--dropdown`]: true,\n [`${prefix}--list-box--${size}`]: Boolean(size),\n });\n\n return html`\n ${!hideLabel\n ? html`<span class=\"${prefix}--label ${prefix}--skeleton\"></span>`\n : null}\n <div class=${classes}></div>\n `;\n }\n\n static styles = styles;\n}\n\nexport default CDSDropdownSkeleton;\n"],"names":["customElement"],"mappings":";;;;;;;;;;;;;;;;AAAA;;;;;AAKG;AAUH;;AAEG;AAEH,IAAM,mBAAmB,GAAzB,MAAM,mBAAoB,SAAQ,UAAU,CAAA;AAA5C,IAAA,WAAA,GAAA;;AACE;;AAEG;QAEH,IAAA,CAAA,SAAS,GAAG,KAAK;AAEjB;;AAEG;AAEH,QAAA,IAAA,CAAA,IAAI,GAAG,aAAa,CAAC,MAAM;IAmB7B;IAjBE,MAAM,GAAA;AACJ,QAAA,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,IAAI;QAChC,MAAM,OAAO,GAAG,QAAQ,CAAC;AACvB,YAAA,CAAC,CAAA,EAAG,MAAM,CAAA,UAAA,CAAY,GAAG,IAAI;AAC7B,YAAA,CAAC,CAAA,EAAG,MAAM,CAAA,UAAA,CAAY,GAAG,IAAI;YAC7B,CAAC,CAAA,EAAG,MAAM,CAAA,YAAA,EAAe,IAAI,CAAA,CAAE,GAAG,OAAO,CAAC,IAAI,CAAC;AAChD,SAAA,CAAC;AAEF,QAAA,OAAO,IAAI,CAAA;AACP,MAAA,EAAA,CAAC;AACD,cAAE,IAAI,CAAA,gBAAgB,MAAM,CAAA,QAAA,EAAW,MAAM,CAAA,mBAAA;AAC7C,cAAE,IAAI;mBACK,OAAO,CAAA;KACrB;IACH;;AAEO,mBAAA,CAAA,MAAM,GAAG,MAAH;AAxBb,UAAA,CAAA;AADC,IAAA,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE;AACjD,CAAA,EAAA,mBAAA,CAAA,SAAA,EAAA,WAAA,EAAA,MAAA,CAAA;AAMlB,UAAA,CAAA;AADC,IAAA,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE;AACC,CAAA,EAAA,mBAAA,CAAA,SAAA,EAAA,MAAA,EAAA,MAAA,CAAA;AAXxB,mBAAmB,GAAA,UAAA,CAAA;AADxB,IAAAA,aAAa,CAAC,CAAA,EAAG,MAAM,CAAA,kBAAA,CAAoB;AACtC,CAAA,EAAA,mBAAmB,CA8BxB;AAED,
|
|
1
|
+
{"version":3,"file":"dropdown-skeleton.js","sources":["../../../src/components/dropdown/dropdown-skeleton.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2019, 2025\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 { classMap } from 'lit/directives/class-map.js';\nimport { property } from 'lit/decorators.js';\nimport { prefix } from '../../globals/settings';\nimport { DROPDOWN_SIZE } from './defs';\nimport styles from './dropdown.scss?lit';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\n/**\n * Skeleton version of dropdown.\n */\n@customElement(`${prefix}-dropdown-skeleton`)\nclass CDSDropdownSkeleton extends LitElement {\n /**\n * Specify whether the label should be hidden, or not.\n */\n @property({ type: Boolean, reflect: true, attribute: 'hide-label' })\n hideLabel = false;\n\n /**\n * Specify the size of the ListBox.\n */\n @property({ reflect: true })\n size = DROPDOWN_SIZE.MEDIUM;\n\n render() {\n const { hideLabel, size } = this;\n const classes = classMap({\n [`${prefix}--skeleton`]: true,\n [`${prefix}--dropdown`]: true,\n [`${prefix}--list-box--${size}`]: Boolean(size),\n });\n\n return html`\n ${!hideLabel\n ? html`<span class=\"${prefix}--label ${prefix}--skeleton\"></span>`\n : null}\n <div class=${classes}></div>\n `;\n }\n\n static styles = styles;\n}\n\nexport default CDSDropdownSkeleton;\n"],"names":["customElement"],"mappings":";;;;;;;;;;;;;;;;AAAA;;;;;AAKG;AAUH;;AAEG;AAEH,IAAM,mBAAmB,GAAzB,MAAM,mBAAoB,SAAQ,UAAU,CAAA;AAA5C,IAAA,WAAA,GAAA;;AACE;;AAEG;QAEH,IAAA,CAAA,SAAS,GAAG,KAAK;AAEjB;;AAEG;AAEH,QAAA,IAAA,CAAA,IAAI,GAAG,aAAa,CAAC,MAAM;IAmB7B;IAjBE,MAAM,GAAA;AACJ,QAAA,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,IAAI;QAChC,MAAM,OAAO,GAAG,QAAQ,CAAC;AACvB,YAAA,CAAC,CAAA,EAAG,MAAM,CAAA,UAAA,CAAY,GAAG,IAAI;AAC7B,YAAA,CAAC,CAAA,EAAG,MAAM,CAAA,UAAA,CAAY,GAAG,IAAI;YAC7B,CAAC,CAAA,EAAG,MAAM,CAAA,YAAA,EAAe,IAAI,CAAA,CAAE,GAAG,OAAO,CAAC,IAAI,CAAC;AAChD,SAAA,CAAC;AAEF,QAAA,OAAO,IAAI,CAAA;AACP,MAAA,EAAA,CAAC;AACD,cAAE,IAAI,CAAA,gBAAgB,MAAM,CAAA,QAAA,EAAW,MAAM,CAAA,mBAAA;AAC7C,cAAE,IAAI;mBACK,OAAO,CAAA;KACrB;IACH;;AAEO,mBAAA,CAAA,MAAM,GAAG,MAAH;AAxBb,UAAA,CAAA;AADC,IAAA,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE;AACjD,CAAA,EAAA,mBAAA,CAAA,SAAA,EAAA,WAAA,EAAA,MAAA,CAAA;AAMlB,UAAA,CAAA;AADC,IAAA,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE;AACC,CAAA,EAAA,mBAAA,CAAA,SAAA,EAAA,MAAA,EAAA,MAAA,CAAA;AAXxB,mBAAmB,GAAA,UAAA,CAAA;AADxB,IAAAA,aAAa,CAAC,CAAA,EAAG,MAAM,CAAA,kBAAA,CAAoB;AACtC,CAAA,EAAA,mBAAmB,CA8BxB;AAED,kCAAe,mBAAmB;;;;"}
|
|
@@ -11,7 +11,7 @@ import { ifDefined } from 'lit/directives/if-defined.js';
|
|
|
11
11
|
import { LitElement, html } from 'lit';
|
|
12
12
|
import { state, query, property } from 'lit/decorators.js';
|
|
13
13
|
import { prefix } from '../../globals/settings.js';
|
|
14
|
-
import
|
|
14
|
+
import iconLoader from '../../globals/internal/icon-loader.js';
|
|
15
15
|
import WarningFilled16 from '@carbon/icons/es/warning--filled/16.js';
|
|
16
16
|
import WarningAltFilled16 from '@carbon/icons/es/warning--alt--filled/16.js';
|
|
17
17
|
import ChevronDown16 from '@carbon/icons/es/chevron--down/16.js';
|
|
@@ -11,7 +11,7 @@ import { carbonElement } from '../../globals/decorators/carbon-element.js';
|
|
|
11
11
|
import { LitElement, html } from 'lit';
|
|
12
12
|
|
|
13
13
|
/**
|
|
14
|
-
* Copyright IBM Corp. 2025,
|
|
14
|
+
* Copyright IBM Corp. 2025, 2026
|
|
15
15
|
*
|
|
16
16
|
* This source code is licensed under the Apache-2.0 license found in the
|
|
17
17
|
* LICENSE file in the root directory of this source tree.
|
|
@@ -36,6 +36,7 @@ import { LitElement, html } from 'lit';
|
|
|
36
36
|
* Returns true if the flag is enabled in the nearest <feature-flags> ancestor
|
|
37
37
|
*/
|
|
38
38
|
var FeatureFlagsElement_1;
|
|
39
|
+
const hasOwn = (obj, key) => Object.prototype.hasOwnProperty.call(obj, key);
|
|
39
40
|
let FeatureFlagsElement = FeatureFlagsElement_1 = class FeatureFlagsElement extends LitElement {
|
|
40
41
|
static get observedAttributes() {
|
|
41
42
|
return Object.keys(FeatureFlagsElement_1.flagComponentMap);
|
|
@@ -55,7 +56,9 @@ let FeatureFlagsElement = FeatureFlagsElement_1 = class FeatureFlagsElement exte
|
|
|
55
56
|
const value = newVal === 'true';
|
|
56
57
|
this.flags[name] = value;
|
|
57
58
|
// Set feature flag to top component level
|
|
58
|
-
const relatedComponent = FeatureFlagsElement_1.flagComponentMap
|
|
59
|
+
const relatedComponent = hasOwn(FeatureFlagsElement_1.flagComponentMap, name)
|
|
60
|
+
? FeatureFlagsElement_1.flagComponentMap[name]
|
|
61
|
+
: 'unknown';
|
|
59
62
|
if (((_a = this.firstElementChild) === null || _a === void 0 ? void 0 : _a.tagName) === relatedComponent) {
|
|
60
63
|
this.firstElementChild.setAttribute(name, '');
|
|
61
64
|
}
|
|
@@ -106,7 +109,7 @@ FeatureFlagsElement.flagComponentMap = {
|
|
|
106
109
|
FeatureFlagsElement = FeatureFlagsElement_1 = __decorate([
|
|
107
110
|
carbonElement('feature-flags')
|
|
108
111
|
], FeatureFlagsElement);
|
|
109
|
-
var
|
|
112
|
+
var FeatureFlagsElement_default = FeatureFlagsElement;
|
|
110
113
|
// Utility functions
|
|
111
114
|
// Function to find the nearest parent FeatureFlagsElement
|
|
112
115
|
function findParentFeatureFlags(el) {
|
|
@@ -126,5 +129,5 @@ function isFeatureFlagEnabled(flag, context) {
|
|
|
126
129
|
return (_a = instance === null || instance === void 0 ? void 0 : instance.isFeatureFlagEnabled(flag)) !== null && _a !== void 0 ? _a : false;
|
|
127
130
|
}
|
|
128
131
|
|
|
129
|
-
export {
|
|
132
|
+
export { FeatureFlagsElement_default as default, findParentFeatureFlags, isFeatureFlagEnabled };
|
|
130
133
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../src/components/feature-flags/index.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2025,
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/components/feature-flags/index.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2025, 2026\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/**\n * <feature-flags> provides scoped feature flags to child components.\n *\n * Usage:\n * Wrap any child components inside <feature-flags> to provide scoped feature flags like this:\n * <feature-flags enable-dialog-element=\"true\">\n * <component></component>\n * </feature-flags>\n *\n * Available flags:\n * - enable-dialog-element\n * - enable-treeview-controllable\n * - ... (and others listed in observedAttributes)\n *\n * How to check a Flag in your component:\n * import { isFeatureFlagEnabled } from './feature-flags';\n * isFeatureFlagEnabled('enable-dialog-element', this)\n * Returns true if the flag is enabled in the nearest <feature-flags> ancestor\n */\n\nimport {\n FeatureFlags as GlobalFeatureFlags,\n createScope,\n} from '@carbon/feature-flags';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport { LitElement, html } from 'lit';\n\n/**\n * Feature Flags\n *\n * @element feature-flags\n */\ntype FeatureFlags = Record<string, boolean>;\n\nconst hasOwn = <T extends object>(obj: T, key: PropertyKey): key is keyof T =>\n Object.prototype.hasOwnProperty.call(obj, key);\n\n@customElement('feature-flags')\nclass FeatureFlagsElement extends LitElement {\n private scope = GlobalFeatureFlags;\n private flags: FeatureFlags = {};\n\n /**\n * Mapping of feature flag attributes to their related component names.\n */\n private static readonly flagComponentMap = {\n 'enable-v12-tile-default-icons': 'CDS-TILE',\n 'enable-v12-tile-radio-icons': 'CDS-TILE',\n 'enable-v12-overflowmenu': 'CDS-OVERFLOW-MENU',\n 'enable-treeview-controllable': 'CDS-TREEVIEW',\n 'enable-experimental-focus-wrap-without-sentinels': 'CDS-FOCUS-WRAP',\n 'enable-focus-wrap-without-sentinels': 'CDS-FOCUS-WRAP',\n 'enable-dialog-element': 'CDS-DIALOG',\n 'enable-v12-dynamic-floating-styles': 'CDS-FLOATING',\n 'enable-v12-toggle-reduced-label-spacing': 'CDS-TOGGLE',\n } as const;\n\n static get observedAttributes() {\n return Object.keys(FeatureFlagsElement.flagComponentMap);\n }\n\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n }\n\n connectedCallback() {\n super.connectedCallback();\n this.updateScope();\n }\n\n attributeChangedCallback(\n name: string,\n _oldVal: string | null,\n newVal: string | null\n ) {\n const value = newVal === 'true';\n this.flags[name] = value;\n\n // Set feature flag to top component level\n const relatedComponent = hasOwn(FeatureFlagsElement.flagComponentMap, name)\n ? FeatureFlagsElement.flagComponentMap[name]\n : 'unknown';\n if (this.firstElementChild?.tagName === relatedComponent) {\n this.firstElementChild.setAttribute(name, '');\n }\n\n this.updateScope();\n }\n\n private getParentScope() {\n let parent = this.parentNode;\n while (parent) {\n if (parent instanceof FeatureFlagsElement) {\n return parent.getScope();\n }\n parent = parent.parentNode;\n }\n return null;\n }\n\n private updateScope() {\n const newScope = createScope(this.flags);\n const parentScope = this.getParentScope() || GlobalFeatureFlags;\n if (parentScope) {\n newScope.mergeWithScope(parentScope);\n }\n this.scope = newScope;\n }\n\n render() {\n return html` <slot></slot> `;\n }\n\n public isFeatureFlagEnabled(flag: string) {\n return this.scope.enabled(flag);\n }\n\n private getScope() {\n return this.scope;\n }\n}\n\nexport default FeatureFlagsElement;\n\n// Utility functions\n\n// Function to find the nearest parent FeatureFlagsElement\nexport function findParentFeatureFlags(\n el: HTMLElement\n): FeatureFlagsElement | null {\n let parent = el.parentNode;\n while (parent) {\n if (parent instanceof FeatureFlagsElement) {\n return parent;\n }\n parent = (parent as HTMLElement).parentNode;\n }\n return null;\n}\n\n// function to check if a feature flag is enabled in components\nexport function isFeatureFlagEnabled(\n flag: string,\n context: HTMLElement\n): boolean {\n const instance = findParentFeatureFlags(context);\n return instance?.isFeatureFlagEnabled(flag) ?? false;\n}\n"],"names":["GlobalFeatureFlags","customElement"],"mappings":";;;;;;;;;;;;AAAA;;;;;AAKG;AACH;;;;;;;;;;;;;;;;;;AAkBG;;AAgBH,MAAM,MAAM,GAAG,CAAmB,GAAM,EAAE,GAAgB,KACxD,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;AAGhD,IAAM,mBAAmB,GAAA,qBAAA,GAAzB,MAAM,mBAAoB,SAAQ,UAAU,CAAA;AAmB1C,IAAA,WAAW,kBAAkB,GAAA;QAC3B,OAAO,MAAM,CAAC,IAAI,CAAC,qBAAmB,CAAC,gBAAgB,CAAC;IAC1D;AAEA,IAAA,WAAA,GAAA;AACE,QAAA,KAAK,EAAE;QAvBD,IAAA,CAAA,KAAK,GAAGA,YAAkB;QAC1B,IAAA,CAAA,KAAK,GAAiB,EAAE;QAuB9B,IAAI,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IACrC;IAEA,iBAAiB,GAAA;QACf,KAAK,CAAC,iBAAiB,EAAE;QACzB,IAAI,CAAC,WAAW,EAAE;IACpB;AAEA,IAAA,wBAAwB,CACtB,IAAY,EACZ,OAAsB,EACtB,MAAqB,EAAA;;AAErB,QAAA,MAAM,KAAK,GAAG,MAAM,KAAK,MAAM;AAC/B,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK;;QAGxB,MAAM,gBAAgB,GAAG,MAAM,CAAC,qBAAmB,CAAC,gBAAgB,EAAE,IAAI;AACxE,cAAE,qBAAmB,CAAC,gBAAgB,CAAC,IAAI;cACzC,SAAS;QACb,IAAI,CAAA,CAAA,EAAA,GAAA,IAAI,CAAC,iBAAiB,0CAAE,OAAO,MAAK,gBAAgB,EAAE;YACxD,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC;QAC/C;QAEA,IAAI,CAAC,WAAW,EAAE;IACpB;IAEQ,cAAc,GAAA;AACpB,QAAA,IAAI,MAAM,GAAG,IAAI,CAAC,UAAU;QAC5B,OAAO,MAAM,EAAE;AACb,YAAA,IAAI,MAAM,YAAY,qBAAmB,EAAE;AACzC,gBAAA,OAAO,MAAM,CAAC,QAAQ,EAAE;YAC1B;AACA,YAAA,MAAM,GAAG,MAAM,CAAC,UAAU;QAC5B;AACA,QAAA,OAAO,IAAI;IACb;IAEQ,WAAW,GAAA;QACjB,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC;QACxC,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,IAAIA,YAAkB;QAC/D,IAAI,WAAW,EAAE;AACf,YAAA,QAAQ,CAAC,cAAc,CAAC,WAAW,CAAC;QACtC;AACA,QAAA,IAAI,CAAC,KAAK,GAAG,QAAQ;IACvB;IAEA,MAAM,GAAA;QACJ,OAAO,IAAI,CAAA,CAAA,eAAA,CAAiB;IAC9B;AAEO,IAAA,oBAAoB,CAAC,IAAY,EAAA;QACtC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;IACjC;IAEQ,QAAQ,GAAA;QACd,OAAO,IAAI,CAAC,KAAK;IACnB;;AA9EA;;AAEG;AACqB,mBAAA,CAAA,gBAAgB,GAAG;AACzC,IAAA,+BAA+B,EAAE,UAAU;AAC3C,IAAA,6BAA6B,EAAE,UAAU;AACzC,IAAA,yBAAyB,EAAE,mBAAmB;AAC9C,IAAA,8BAA8B,EAAE,cAAc;AAC9C,IAAA,kDAAkD,EAAE,gBAAgB;AACpE,IAAA,qCAAqC,EAAE,gBAAgB;AACvD,IAAA,uBAAuB,EAAE,YAAY;AACrC,IAAA,oCAAoC,EAAE,cAAc;AACpD,IAAA,yCAAyC,EAAE,YAAY;AAC/C,CAV8B;AAPpC,mBAAmB,GAAA,qBAAA,GAAA,UAAA,CAAA;IADxBC,aAAa,CAAC,eAAe;AACxB,CAAA,EAAA,mBAAmB,CAmFxB;AAED,kCAAe,mBAAmB;AAElC;AAEA;AACM,SAAU,sBAAsB,CACpC,EAAe,EAAA;AAEf,IAAA,IAAI,MAAM,GAAG,EAAE,CAAC,UAAU;IAC1B,OAAO,MAAM,EAAE;AACb,QAAA,IAAI,MAAM,YAAY,mBAAmB,EAAE;AACzC,YAAA,OAAO,MAAM;QACf;AACA,QAAA,MAAM,GAAI,MAAsB,CAAC,UAAU;IAC7C;AACA,IAAA,OAAO,IAAI;AACb;AAEA;AACM,SAAU,oBAAoB,CAClC,IAAY,EACZ,OAAoB,EAAA;;AAEpB,IAAA,MAAM,QAAQ,GAAG,sBAAsB,CAAC,OAAO,CAAC;AAChD,IAAA,OAAO,CAAA,EAAA,GAAA,QAAQ,KAAA,IAAA,IAAR,QAAQ,KAAA,MAAA,GAAA,MAAA,GAAR,QAAQ,CAAE,oBAAoB,CAAC,IAAI,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,KAAK;AACtD;;;;"}
|
|
@@ -232,7 +232,7 @@ __decorate([
|
|
|
232
232
|
CDSCEDemoFileUploader = __decorate([
|
|
233
233
|
carbonElement(`${prefix}-ce-demo-file-uploader`)
|
|
234
234
|
], CDSCEDemoFileUploader);
|
|
235
|
-
var
|
|
235
|
+
var CDSCEDemoFileUploader_default = CDSCEDemoFileUploader;
|
|
236
236
|
|
|
237
|
-
export {
|
|
237
|
+
export { CDSCEDemoFileUploader_default as default };
|
|
238
238
|
//# sourceMappingURL=demo-file-uploader.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"demo-file-uploader.js","sources":["../../../src/components/file-uploader/demo-file-uploader.ts"],"sourcesContent":["/**\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 { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\nimport { prefix } from '../../globals/settings';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport './index';\nimport { FILE_UPLOADER_ITEM_STATE } from './file-uploader-item';\nimport { BUTTON_SIZE } from '../button/button';\nimport { FileData } from './stories/types';\n\n/**\n * A class to manage file uploading states, like sending file contents to server.\n * DEMONSTRATION-PURPOSE ONLY.\n * Data/state handling in file uploading tends to involve lots of application-specific logics\n * and thus abstracting everything in a library won't be a good return on investment\n * vs. letting users copy code here and implement features that fit their needs.\n */\n@customElement(`${prefix}-ce-demo-file-uploader`)\nexport default class CDSCEDemoFileUploader extends LitElement {\n /**\n * The files being uploaded.\n */\n private _files: FileData[] = [];\n\n /**\n * Handles `cds-drop-container-changed` on `<cds-file-drop-container>`.\n *\n * @param event The event.\n */\n private _handleChange(event: CustomEvent) {\n const { addedFiles } = event.detail;\n const newFiles: FileData[] = addedFiles.map(\n (item) =>\n ({\n id: Math.random().toString(36).slice(2),\n file: item,\n state: FILE_UPLOADER_ITEM_STATE.UPLOADING,\n }) as FileData\n );\n const { multiple, _files: files, _simulateUpload: simulateUpload } = this;\n if (multiple) {\n this._files = files.concat(newFiles);\n this.requestUpdate();\n newFiles.forEach(simulateUpload, this);\n } else if (addedFiles.length > 0) {\n this._files = files.concat(newFiles[0]);\n this.requestUpdate();\n this._simulateUpload(newFiles[0]);\n }\n }\n\n /**\n * Handles `cds-file-uploader-item-deleted` on `<cds-file-uploader-item>`.\n *\n * @param event The event.\n */\n private _handleDelete(event: CustomEvent) {\n const { fileId: idToDelete } = (event.target as HTMLElement).dataset;\n this._files = this._files.filter(({ id }) => idToDelete !== id);\n this.requestUpdate();\n }\n\n /**\n * Simulates updating file.\n *\n * @param data The data of the file being uploaded.\n */\n private async _simulateUpload(data: FileData) {\n const { id, file } = data;\n if (file.size > 524288) {\n this._files = this._files.map((item) =>\n id !== item.id\n ? item\n : {\n ...item,\n state: FILE_UPLOADER_ITEM_STATE.EDIT,\n invalid: true,\n errorSubject: 'File size exceeds limit',\n errorBody:\n '500kb max file size. Select a new file and try again.',\n }\n );\n this.requestUpdate();\n } else {\n // Simulates network request time\n const rand = Math.random() * 1000;\n await new Promise((t) => setTimeout(t, rand));\n this._files = this._files.map((item) =>\n id !== item.id\n ? item\n : {\n ...item,\n state: FILE_UPLOADER_ITEM_STATE.COMPLETE,\n }\n );\n this.requestUpdate();\n // Shows x icon after 1 second\n await new Promise((t) => setTimeout(t, 1000));\n this._files = this._files.map((item) =>\n id !== item.id\n ? item\n : {\n ...item,\n state: FILE_UPLOADER_ITEM_STATE.EDIT,\n }\n );\n this.requestUpdate();\n }\n }\n\n /**\n * The file types the file input should accept, separated by space.\n */\n @property()\n accept = '';\n\n /**\n * `true` if the drop container should be disabled.\n */\n @property({ type: Boolean, reflect: true })\n button = false;\n\n /**\n * Button kind.\n */\n @property({ attribute: 'button-kind' })\n buttonKind = 'primary';\n\n /**\n * Button label.\n */\n @property({ attribute: 'button-label' })\n buttonLabel = 'Add file';\n\n /**\n * `true` if the drop container should be disabled.\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * Icon description.\n */\n @property({ attribute: 'icon-description' })\n iconDescription = '';\n\n /**\n * The input name.\n */\n @property({ attribute: 'input-name' })\n inputName = '';\n\n /**\n * The label description text.\n */\n @property({ attribute: 'label-description' })\n labelDescription = '';\n\n /**\n * The label title.\n */\n @property({ attribute: 'label-title' })\n labelTitle = '';\n\n /**\n * `true` if the drop container should accept more than one files at once.\n * Note that even with `false` set here, user _can_ select multiple files one by one.\n */\n @property({ type: Boolean, reflect: true })\n multiple = false;\n\n /**\n * The size of the button item.\n */\n @property({ reflect: true })\n size = BUTTON_SIZE.MEDIUM;\n\n /**\n * The state of this file uploader item.\n */\n @property({ reflect: true, attribute: 'input-state' })\n inputState = '';\n\n render() {\n const {\n accept,\n button,\n buttonKind,\n buttonLabel,\n disabled,\n labelDescription,\n labelTitle,\n multiple,\n size,\n inputState,\n iconDescription,\n _files: files,\n _handleChange: handleChange,\n _handleDelete: handleDelete,\n } = this;\n return html`\n <cds-file-uploader\n label-description=\"${ifDefined(labelDescription)}\"\n label-title=\"${ifDefined(labelTitle)}\"\n ?disabled=\"${disabled}\">\n ${!button\n ? html` <cds-file-uploader-drop-container\n accept=\"${ifDefined(accept)}\"\n ?multiple=\"${multiple}\"\n name=\"${ifDefined(this.inputName)}\"\n @cds-file-uploader-drop-container-changed=\"${handleChange}\">\n Drag and drop files here or click to upload\n </cds-file-uploader-drop-container>`\n : html` <cds-file-uploader-button\n size=\"${ifDefined(size)}\"\n button-kind=\"${buttonKind}\"\n accept=\"${ifDefined(accept)}\"\n name=\"${ifDefined(this.inputName)}\"\n ?multiple=\"${multiple}\"\n @cds-file-uploader-button-changed=\"${handleChange}\">\n ${buttonLabel}\n </cds-file-uploader-button>`}\n ${files.map(\n ({ id, invalid, file, state, errorSubject, errorBody }) => html`\n <cds-file-uploader-item\n data-file-id=\"${id}\"\n ?invalid=\"${invalid}\"\n state=\"${inputState || ifDefined(state)}\"\n icon-description=\"${ifDefined(iconDescription)}\"\n error-subject=\"${ifDefined(errorSubject)}\"\n error-body=\"${ifDefined(errorBody)}\"\n @cds-file-uploader-item-deleted=\"${handleDelete}\">\n ${file.name}\n </cds-file-uploader-item>\n `\n )}\n </cds-file-uploader>\n `;\n }\n}\n"],"names":["customElement"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"demo-file-uploader.js","sources":["../../../src/components/file-uploader/demo-file-uploader.ts"],"sourcesContent":["/**\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 { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\nimport { prefix } from '../../globals/settings';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport './index';\nimport { FILE_UPLOADER_ITEM_STATE } from './file-uploader-item';\nimport { BUTTON_SIZE } from '../button/button';\nimport { FileData } from './stories/types';\n\n/**\n * A class to manage file uploading states, like sending file contents to server.\n * DEMONSTRATION-PURPOSE ONLY.\n * Data/state handling in file uploading tends to involve lots of application-specific logics\n * and thus abstracting everything in a library won't be a good return on investment\n * vs. letting users copy code here and implement features that fit their needs.\n */\n@customElement(`${prefix}-ce-demo-file-uploader`)\nexport default class CDSCEDemoFileUploader extends LitElement {\n /**\n * The files being uploaded.\n */\n private _files: FileData[] = [];\n\n /**\n * Handles `cds-drop-container-changed` on `<cds-file-drop-container>`.\n *\n * @param event The event.\n */\n private _handleChange(event: CustomEvent) {\n const { addedFiles } = event.detail;\n const newFiles: FileData[] = addedFiles.map(\n (item) =>\n ({\n id: Math.random().toString(36).slice(2),\n file: item,\n state: FILE_UPLOADER_ITEM_STATE.UPLOADING,\n }) as FileData\n );\n const { multiple, _files: files, _simulateUpload: simulateUpload } = this;\n if (multiple) {\n this._files = files.concat(newFiles);\n this.requestUpdate();\n newFiles.forEach(simulateUpload, this);\n } else if (addedFiles.length > 0) {\n this._files = files.concat(newFiles[0]);\n this.requestUpdate();\n this._simulateUpload(newFiles[0]);\n }\n }\n\n /**\n * Handles `cds-file-uploader-item-deleted` on `<cds-file-uploader-item>`.\n *\n * @param event The event.\n */\n private _handleDelete(event: CustomEvent) {\n const { fileId: idToDelete } = (event.target as HTMLElement).dataset;\n this._files = this._files.filter(({ id }) => idToDelete !== id);\n this.requestUpdate();\n }\n\n /**\n * Simulates updating file.\n *\n * @param data The data of the file being uploaded.\n */\n private async _simulateUpload(data: FileData) {\n const { id, file } = data;\n if (file.size > 524288) {\n this._files = this._files.map((item) =>\n id !== item.id\n ? item\n : {\n ...item,\n state: FILE_UPLOADER_ITEM_STATE.EDIT,\n invalid: true,\n errorSubject: 'File size exceeds limit',\n errorBody:\n '500kb max file size. Select a new file and try again.',\n }\n );\n this.requestUpdate();\n } else {\n // Simulates network request time\n const rand = Math.random() * 1000;\n await new Promise((t) => setTimeout(t, rand));\n this._files = this._files.map((item) =>\n id !== item.id\n ? item\n : {\n ...item,\n state: FILE_UPLOADER_ITEM_STATE.COMPLETE,\n }\n );\n this.requestUpdate();\n // Shows x icon after 1 second\n await new Promise((t) => setTimeout(t, 1000));\n this._files = this._files.map((item) =>\n id !== item.id\n ? item\n : {\n ...item,\n state: FILE_UPLOADER_ITEM_STATE.EDIT,\n }\n );\n this.requestUpdate();\n }\n }\n\n /**\n * The file types the file input should accept, separated by space.\n */\n @property()\n accept = '';\n\n /**\n * `true` if the drop container should be disabled.\n */\n @property({ type: Boolean, reflect: true })\n button = false;\n\n /**\n * Button kind.\n */\n @property({ attribute: 'button-kind' })\n buttonKind = 'primary';\n\n /**\n * Button label.\n */\n @property({ attribute: 'button-label' })\n buttonLabel = 'Add file';\n\n /**\n * `true` if the drop container should be disabled.\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * Icon description.\n */\n @property({ attribute: 'icon-description' })\n iconDescription = '';\n\n /**\n * The input name.\n */\n @property({ attribute: 'input-name' })\n inputName = '';\n\n /**\n * The label description text.\n */\n @property({ attribute: 'label-description' })\n labelDescription = '';\n\n /**\n * The label title.\n */\n @property({ attribute: 'label-title' })\n labelTitle = '';\n\n /**\n * `true` if the drop container should accept more than one files at once.\n * Note that even with `false` set here, user _can_ select multiple files one by one.\n */\n @property({ type: Boolean, reflect: true })\n multiple = false;\n\n /**\n * The size of the button item.\n */\n @property({ reflect: true })\n size = BUTTON_SIZE.MEDIUM;\n\n /**\n * The state of this file uploader item.\n */\n @property({ reflect: true, attribute: 'input-state' })\n inputState = '';\n\n render() {\n const {\n accept,\n button,\n buttonKind,\n buttonLabel,\n disabled,\n labelDescription,\n labelTitle,\n multiple,\n size,\n inputState,\n iconDescription,\n _files: files,\n _handleChange: handleChange,\n _handleDelete: handleDelete,\n } = this;\n return html`\n <cds-file-uploader\n label-description=\"${ifDefined(labelDescription)}\"\n label-title=\"${ifDefined(labelTitle)}\"\n ?disabled=\"${disabled}\">\n ${!button\n ? html` <cds-file-uploader-drop-container\n accept=\"${ifDefined(accept)}\"\n ?multiple=\"${multiple}\"\n name=\"${ifDefined(this.inputName)}\"\n @cds-file-uploader-drop-container-changed=\"${handleChange}\">\n Drag and drop files here or click to upload\n </cds-file-uploader-drop-container>`\n : html` <cds-file-uploader-button\n size=\"${ifDefined(size)}\"\n button-kind=\"${buttonKind}\"\n accept=\"${ifDefined(accept)}\"\n name=\"${ifDefined(this.inputName)}\"\n ?multiple=\"${multiple}\"\n @cds-file-uploader-button-changed=\"${handleChange}\">\n ${buttonLabel}\n </cds-file-uploader-button>`}\n ${files.map(\n ({ id, invalid, file, state, errorSubject, errorBody }) => html`\n <cds-file-uploader-item\n data-file-id=\"${id}\"\n ?invalid=\"${invalid}\"\n state=\"${inputState || ifDefined(state)}\"\n icon-description=\"${ifDefined(iconDescription)}\"\n error-subject=\"${ifDefined(errorSubject)}\"\n error-body=\"${ifDefined(errorBody)}\"\n @cds-file-uploader-item-deleted=\"${handleDelete}\">\n ${file.name}\n </cds-file-uploader-item>\n `\n )}\n </cds-file-uploader>\n `;\n }\n}\n"],"names":["customElement"],"mappings":"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"}
|
|
@@ -202,7 +202,7 @@ __decorate([
|
|
|
202
202
|
CDSFileUploaderButton = __decorate([
|
|
203
203
|
carbonElement(`${prefix}-file-uploader-button`)
|
|
204
204
|
], CDSFileUploaderButton);
|
|
205
|
-
var
|
|
205
|
+
var CDSFileUploaderButton_default = CDSFileUploaderButton;
|
|
206
206
|
|
|
207
|
-
export {
|
|
207
|
+
export { CDSFileUploaderButton_default as default };
|
|
208
208
|
//# sourceMappingURL=file-uploader-button.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-uploader-button.js","sources":["../../../src/components/file-uploader/file-uploader-button.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2020, 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 { LitElement, html } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport { prefix } from '../../globals/settings';\nimport HostListenerMixin from '../../globals/mixins/host-listener';\nimport ifNonEmpty from '../../globals/directives/if-non-empty';\nimport styles from './file-uploader.scss?lit';\nimport { BUTTON_KIND, BUTTON_SIZE } from '../button/defs';\n\nexport { FORM_ELEMENT_COLOR_SCHEME as TILE_COLOR_SCHEME } from '../../globals/shared-enums';\n\n/**\n * File uploader button .\n *\n * @element cds-file-uploader-button\n * @fires cds-file-uploader-button-changed The custom event fired when there is a user gesture to select files to upload.\n */\n@customElement(`${prefix}-file-uploader-button`)\nclass CDSFileUploaderButton extends HostListenerMixin(LitElement) {\n /**\n * Handles `click` event on the button.\n */\n private _handleClick(event) {\n event.target.value = null;\n const { selectorInput } = this.constructor as typeof CDSFileUploaderButton;\n this?.shadowRoot?.querySelector(selectorInput)?.setAttribute('value', '');\n (this?.shadowRoot?.querySelector(selectorInput) as HTMLElement).click();\n }\n\n /**\n * Handles `keydown` event on the button.\n */\n private _handleKeyDown(event) {\n const { selectorInput } = this.constructor as typeof CDSFileUploaderButton;\n if (event.key === 'Enter' || event.key === 'Space') {\n this?.shadowRoot?.querySelector(selectorInput)?.setAttribute('value', '');\n (this?.shadowRoot?.querySelector(selectorInput) as HTMLElement).click();\n }\n }\n\n /**\n * Handles user gesture to select files to upload.\n *\n * @param event The event.\n */\n private _handleChange(event: Event | DragEvent) {\n const addedFiles = this._getFiles(event);\n const { eventChange, selectorInput } = this\n .constructor as typeof CDSFileUploaderButton;\n this.dispatchEvent(\n new CustomEvent(eventChange, {\n bubbles: true,\n composed: true,\n detail: {\n addedFiles,\n },\n })\n );\n\n const fileInput = this?.shadowRoot?.querySelector(selectorInput);\n if (fileInput) {\n (fileInput as HTMLInputElement).value = '';\n }\n }\n\n /**\n * @param event The event.\n * @returns The list of files user chose to upload.\n */\n private _getFiles(event: Event | DragEvent) {\n const { files } =\n (event.type === 'drop'\n ? (event as DragEvent).dataTransfer\n : (event.target as HTMLInputElement)) ?? {};\n const { accept } = this;\n if (!accept || !/^(change|drop)$/.test(event.type)) {\n return Array.from(files ?? []);\n }\n const acceptedTypes = new Set(accept.split(' '));\n return Array.prototype.filter.call(\n files,\n ({ name, type: mimeType = '' }) => {\n const fileExtensionRegExp = /\\.[^.]+$/;\n const hasFileExtension = fileExtensionRegExp.test(name);\n const [fileExtension] = !hasFileExtension\n ? [undefined]\n : (fileExtensionRegExp.exec(name) ?? []);\n\n return (\n acceptedTypes.has(mimeType) ||\n (fileExtension && acceptedTypes.has(fileExtension))\n );\n }\n ) as File[];\n }\n\n /**\n * Button kind.\n */\n @property({ reflect: true, attribute: 'button-kind' })\n buttonKind = BUTTON_KIND.PRIMARY;\n\n /**\n * Button size.\n */\n @property({ reflect: true })\n size = BUTTON_SIZE.MEDIUM;\n\n /**\n * The file types the file input should accept, separated by space.\n */\n @property()\n accept = '';\n\n /**\n * `true` if this drop container should be disabled.\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * `true` if this drop container should accept more than one files at once.\n * Note that even with `false` set here, user _can_ select multiple files one by one.\n */\n @property({ type: Boolean, reflect: true })\n multiple = false;\n\n /**\n * The name of the input.\n */\n @property({ reflect: true })\n name = '';\n\n /**\n * The shadow DOM slot to put this drop container in.\n */\n @property({ reflect: true })\n slot = 'drop-container';\n\n render() {\n const {\n accept,\n disabled,\n multiple,\n name,\n buttonKind,\n size,\n _handleChange: handleChange,\n } = this;\n\n const labelClasses = classMap({\n [`${prefix}--file-browse-btn`]: true,\n [`${prefix}--file-browse-btn--disabled`]: disabled,\n });\n const buttonClasses = classMap({\n [`${prefix}--btn`]: true,\n [`${prefix}--btn--${buttonKind}`]: buttonKind,\n [`${prefix}--layout--size-${size}`]: size,\n [`${prefix}--btn--disabled`]: disabled,\n [`${prefix}--btn--${size}`]: size,\n });\n return html`\n <button\n type=\"button\"\n class=\"${buttonClasses}\"\n @click=\"${this._handleClick}\"\n @keydown=\"${this._handleKeyDown}\">\n <slot></slot>\n </button>\n <label class=\"${labelClasses}\" for=\"file\"> </label>\n <input\n id=\"file\"\n type=\"file\"\n class=\"${prefix}--file-input\"\n tabindex=\"-1\"\n accept=\"${ifNonEmpty(accept)}\"\n ?disabled=\"${disabled}\"\n ?multiple=\"${multiple}\"\n name=\"${ifNonEmpty(name)}\"\n @change=\"${handleChange}\" />\n `;\n }\n\n /**\n * The name of the custom event fired when there is a user gesture to select files to upload.\n */\n static get eventChange() {\n return `${prefix}-file-uploader-button-changed`;\n }\n\n /**\n * A selector that will return the file `input`.\n */\n static get selectorInput() {\n return `.${prefix}--file-input`;\n }\n\n static styles = styles;\n}\n\nexport default CDSFileUploaderButton;\n"],"names":["customElement"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;;;;;AAKG;AAcH;;;;;AAKG;AAEH,IAAM,qBAAqB,GAA3B,MAAM,qBAAsB,SAAQ,iBAAiB,CAAC,UAAU,CAAC,CAAA;AAAjE,IAAA,WAAA,GAAA;;AA8EE;;AAEG;AAEH,QAAA,IAAA,CAAA,UAAU,GAAG,WAAW,CAAC,OAAO;AAEhC;;AAEG;AAEH,QAAA,IAAA,CAAA,IAAI,GAAG,WAAW,CAAC,MAAM;AAEzB;;AAEG;QAEH,IAAA,CAAA,MAAM,GAAG,EAAE;AAEX;;AAEG;QAEH,IAAA,CAAA,QAAQ,GAAG,KAAK;AAEhB;;;AAGG;QAEH,IAAA,CAAA,QAAQ,GAAG,KAAK;AAEhB;;AAEG;QAEH,IAAA,CAAA,IAAI,GAAG,EAAE;AAET;;AAEG;QAEH,IAAA,CAAA,IAAI,GAAG,gBAAgB;IA6DzB;AAnLE;;AAEG;AACK,IAAA,YAAY,CAAC,KAAK,EAAA;;AACxB,QAAA,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI;AACzB,QAAA,MAAM,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC,WAA2C;QAC1E,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,KAAA,IAAA,IAAJ,IAAI,uBAAJ,IAAI,CAAE,UAAU,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,aAAa,CAAC,aAAa,CAAC,0CAAE,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC;AACzE,QAAA,CAAC,MAAA,IAAI,KAAA,IAAA,IAAJ,IAAI,KAAA,MAAA,GAAA,MAAA,GAAJ,IAAI,CAAE,UAAU,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,aAAa,CAAC,aAAa,CAAiB,EAAC,KAAK,EAAE;IACzE;AAEA;;AAEG;AACK,IAAA,cAAc,CAAC,KAAK,EAAA;;AAC1B,QAAA,MAAM,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC,WAA2C;AAC1E,QAAA,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,EAAE;YAClD,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,KAAA,IAAA,IAAJ,IAAI,uBAAJ,IAAI,CAAE,UAAU,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,aAAa,CAAC,aAAa,CAAC,0CAAE,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC;AACzE,YAAA,CAAC,MAAA,IAAI,KAAA,IAAA,IAAJ,IAAI,KAAA,MAAA,GAAA,MAAA,GAAJ,IAAI,CAAE,UAAU,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,aAAa,CAAC,aAAa,CAAiB,EAAC,KAAK,EAAE;QACzE;IACF;AAEA;;;;AAIG;AACK,IAAA,aAAa,CAAC,KAAwB,EAAA;;QAC5C,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;AACxC,QAAA,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,GAAG;AACpC,aAAA,WAA2C;AAC9C,QAAA,IAAI,CAAC,aAAa,CAChB,IAAI,WAAW,CAAC,WAAW,EAAE;AAC3B,YAAA,OAAO,EAAE,IAAI;AACb,YAAA,QAAQ,EAAE,IAAI;AACd,YAAA,MAAM,EAAE;gBACN,UAAU;AACX,aAAA;AACF,SAAA,CAAC,CACH;AAED,QAAA,MAAM,SAAS,GAAG,CAAA,EAAA,GAAA,IAAI,aAAJ,IAAI,KAAA,MAAA,GAAA,MAAA,GAAJ,IAAI,CAAE,UAAU,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,aAAa,CAAC,aAAa,CAAC;QAChE,IAAI,SAAS,EAAE;AACZ,YAAA,SAA8B,CAAC,KAAK,GAAG,EAAE;QAC5C;IACF;AAEA;;;AAGG;AACK,IAAA,SAAS,CAAC,KAAwB,EAAA;;QACxC,MAAM,EAAE,KAAK,EAAE,GACb,CAAA,EAAA,IAAC,KAAK,CAAC,IAAI,KAAK;cACX,KAAmB,CAAC;AACvB,cAAG,KAAK,CAAC,MAA2B,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,EAAE;AAC/C,QAAA,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI;AACvB,QAAA,IAAI,CAAC,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;AAClD,YAAA,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,KAAA,IAAA,IAAL,KAAK,KAAA,MAAA,GAAL,KAAK,GAAI,EAAE,CAAC;QAChC;AACA,QAAA,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAChD,OAAO,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAChC,KAAK,EACL,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,GAAG,EAAE,EAAE,KAAI;;YAChC,MAAM,mBAAmB,GAAG,UAAU;YACtC,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC;AACvD,YAAA,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC;kBACrB,CAAC,SAAS;AACZ,mBAAG,CAAA,EAAA,GAAA,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,EAAE,CAAC;AAE1C,YAAA,QACE,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC;iBAC1B,aAAa,IAAI,aAAa,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;AAEvD,QAAA,CAAC,CACQ;IACb;IA6CA,MAAM,GAAA;AACJ,QAAA,MAAM,EACJ,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,IAAI,EACJ,UAAU,EACV,IAAI,EACJ,aAAa,EAAE,YAAY,GAC5B,GAAG,IAAI;QAER,MAAM,YAAY,GAAG,QAAQ,CAAC;AAC5B,YAAA,CAAC,CAAA,EAAG,MAAM,CAAA,iBAAA,CAAmB,GAAG,IAAI;AACpC,YAAA,CAAC,CAAA,EAAG,MAAM,CAAA,2BAAA,CAA6B,GAAG,QAAQ;AACnD,SAAA,CAAC;QACF,MAAM,aAAa,GAAG,QAAQ,CAAC;AAC7B,YAAA,CAAC,CAAA,EAAG,MAAM,CAAA,KAAA,CAAO,GAAG,IAAI;AACxB,YAAA,CAAC,GAAG,MAAM,CAAA,OAAA,EAAU,UAAU,CAAA,CAAE,GAAG,UAAU;AAC7C,YAAA,CAAC,GAAG,MAAM,CAAA,eAAA,EAAkB,IAAI,CAAA,CAAE,GAAG,IAAI;AACzC,YAAA,CAAC,CAAA,EAAG,MAAM,CAAA,eAAA,CAAiB,GAAG,QAAQ;AACtC,YAAA,CAAC,GAAG,MAAM,CAAA,OAAA,EAAU,IAAI,CAAA,CAAE,GAAG,IAAI;AAClC,SAAA,CAAC;AACF,QAAA,OAAO,IAAI,CAAA;;;iBAGE,aAAa,CAAA;AACZ,gBAAA,EAAA,IAAI,CAAC,YAAY,CAAA;AACf,kBAAA,EAAA,IAAI,CAAC,cAAc,CAAA;;;sBAGjB,YAAY,CAAA;;;;iBAIjB,MAAM,CAAA;;kBAEL,UAAU,CAAC,MAAM,CAAC,CAAA;qBACf,QAAQ,CAAA;qBACR,QAAQ,CAAA;gBACb,UAAU,CAAC,IAAI,CAAC,CAAA;mBACb,YAAY,CAAA;KAC1B;IACH;AAEA;;AAEG;AACH,IAAA,WAAW,WAAW,GAAA;QACpB,OAAO,CAAA,EAAG,MAAM,CAAA,6BAAA,CAA+B;IACjD;AAEA;;AAEG;AACH,IAAA,WAAW,aAAa,GAAA;QACtB,OAAO,CAAA,CAAA,EAAI,MAAM,CAAA,YAAA,CAAc;IACjC;;AAEO,qBAAA,CAAA,MAAM,GAAG,MAAH;AAjGb,UAAA,CAAA;IADC,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,aAAa,EAAE;AACpB,CAAA,EAAA,qBAAA,CAAA,SAAA,EAAA,YAAA,EAAA,MAAA,CAAA;AAMjC,UAAA,CAAA;AADC,IAAA,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE;AACD,CAAA,EAAA,qBAAA,CAAA,SAAA,EAAA,MAAA,EAAA,MAAA,CAAA;AAM1B,UAAA,CAAA;AADC,IAAA,QAAQ;AACG,CAAA,EAAA,qBAAA,CAAA,SAAA,EAAA,QAAA,EAAA,MAAA,CAAA;AAMZ,UAAA,CAAA;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE;AACzB,CAAA,EAAA,qBAAA,CAAA,SAAA,EAAA,UAAA,EAAA,MAAA,CAAA;AAOjB,UAAA,CAAA;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE;AACzB,CAAA,EAAA,qBAAA,CAAA,SAAA,EAAA,UAAA,EAAA,MAAA,CAAA;AAMjB,UAAA,CAAA;AADC,IAAA,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE;AACjB,CAAA,EAAA,qBAAA,CAAA,SAAA,EAAA,MAAA,EAAA,MAAA,CAAA;AAMV,UAAA,CAAA;AADC,IAAA,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE;AACH,CAAA,EAAA,qBAAA,CAAA,SAAA,EAAA,MAAA,EAAA,MAAA,CAAA;AAvHpB,qBAAqB,GAAA,UAAA,CAAA;AAD1B,IAAAA,aAAa,CAAC,CAAA,EAAG,MAAM,CAAA,qBAAA,CAAuB;AACzC,CAAA,EAAA,qBAAqB,CAoL1B;AAED,8BAAe,qBAAqB;;;;"}
|
|
1
|
+
{"version":3,"file":"file-uploader-button.js","sources":["../../../src/components/file-uploader/file-uploader-button.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2020, 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 { LitElement, html } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport { prefix } from '../../globals/settings';\nimport HostListenerMixin from '../../globals/mixins/host-listener';\nimport ifNonEmpty from '../../globals/directives/if-non-empty';\nimport styles from './file-uploader.scss?lit';\nimport { BUTTON_KIND, BUTTON_SIZE } from '../button/defs';\n\nexport { FORM_ELEMENT_COLOR_SCHEME as TILE_COLOR_SCHEME } from '../../globals/shared-enums';\n\n/**\n * File uploader button .\n *\n * @element cds-file-uploader-button\n * @fires cds-file-uploader-button-changed The custom event fired when there is a user gesture to select files to upload.\n */\n@customElement(`${prefix}-file-uploader-button`)\nclass CDSFileUploaderButton extends HostListenerMixin(LitElement) {\n /**\n * Handles `click` event on the button.\n */\n private _handleClick(event) {\n event.target.value = null;\n const { selectorInput } = this.constructor as typeof CDSFileUploaderButton;\n this?.shadowRoot?.querySelector(selectorInput)?.setAttribute('value', '');\n (this?.shadowRoot?.querySelector(selectorInput) as HTMLElement).click();\n }\n\n /**\n * Handles `keydown` event on the button.\n */\n private _handleKeyDown(event) {\n const { selectorInput } = this.constructor as typeof CDSFileUploaderButton;\n if (event.key === 'Enter' || event.key === 'Space') {\n this?.shadowRoot?.querySelector(selectorInput)?.setAttribute('value', '');\n (this?.shadowRoot?.querySelector(selectorInput) as HTMLElement).click();\n }\n }\n\n /**\n * Handles user gesture to select files to upload.\n *\n * @param event The event.\n */\n private _handleChange(event: Event | DragEvent) {\n const addedFiles = this._getFiles(event);\n const { eventChange, selectorInput } = this\n .constructor as typeof CDSFileUploaderButton;\n this.dispatchEvent(\n new CustomEvent(eventChange, {\n bubbles: true,\n composed: true,\n detail: {\n addedFiles,\n },\n })\n );\n\n const fileInput = this?.shadowRoot?.querySelector(selectorInput);\n if (fileInput) {\n (fileInput as HTMLInputElement).value = '';\n }\n }\n\n /**\n * @param event The event.\n * @returns The list of files user chose to upload.\n */\n private _getFiles(event: Event | DragEvent) {\n const { files } =\n (event.type === 'drop'\n ? (event as DragEvent).dataTransfer\n : (event.target as HTMLInputElement)) ?? {};\n const { accept } = this;\n if (!accept || !/^(change|drop)$/.test(event.type)) {\n return Array.from(files ?? []);\n }\n const acceptedTypes = new Set(accept.split(' '));\n return Array.prototype.filter.call(\n files,\n ({ name, type: mimeType = '' }) => {\n const fileExtensionRegExp = /\\.[^.]+$/;\n const hasFileExtension = fileExtensionRegExp.test(name);\n const [fileExtension] = !hasFileExtension\n ? [undefined]\n : (fileExtensionRegExp.exec(name) ?? []);\n\n return (\n acceptedTypes.has(mimeType) ||\n (fileExtension && acceptedTypes.has(fileExtension))\n );\n }\n ) as File[];\n }\n\n /**\n * Button kind.\n */\n @property({ reflect: true, attribute: 'button-kind' })\n buttonKind = BUTTON_KIND.PRIMARY;\n\n /**\n * Button size.\n */\n @property({ reflect: true })\n size = BUTTON_SIZE.MEDIUM;\n\n /**\n * The file types the file input should accept, separated by space.\n */\n @property()\n accept = '';\n\n /**\n * `true` if this drop container should be disabled.\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * `true` if this drop container should accept more than one files at once.\n * Note that even with `false` set here, user _can_ select multiple files one by one.\n */\n @property({ type: Boolean, reflect: true })\n multiple = false;\n\n /**\n * The name of the input.\n */\n @property({ reflect: true })\n name = '';\n\n /**\n * The shadow DOM slot to put this drop container in.\n */\n @property({ reflect: true })\n slot = 'drop-container';\n\n render() {\n const {\n accept,\n disabled,\n multiple,\n name,\n buttonKind,\n size,\n _handleChange: handleChange,\n } = this;\n\n const labelClasses = classMap({\n [`${prefix}--file-browse-btn`]: true,\n [`${prefix}--file-browse-btn--disabled`]: disabled,\n });\n const buttonClasses = classMap({\n [`${prefix}--btn`]: true,\n [`${prefix}--btn--${buttonKind}`]: buttonKind,\n [`${prefix}--layout--size-${size}`]: size,\n [`${prefix}--btn--disabled`]: disabled,\n [`${prefix}--btn--${size}`]: size,\n });\n return html`\n <button\n type=\"button\"\n class=\"${buttonClasses}\"\n @click=\"${this._handleClick}\"\n @keydown=\"${this._handleKeyDown}\">\n <slot></slot>\n </button>\n <label class=\"${labelClasses}\" for=\"file\"> </label>\n <input\n id=\"file\"\n type=\"file\"\n class=\"${prefix}--file-input\"\n tabindex=\"-1\"\n accept=\"${ifNonEmpty(accept)}\"\n ?disabled=\"${disabled}\"\n ?multiple=\"${multiple}\"\n name=\"${ifNonEmpty(name)}\"\n @change=\"${handleChange}\" />\n `;\n }\n\n /**\n * The name of the custom event fired when there is a user gesture to select files to upload.\n */\n static get eventChange() {\n return `${prefix}-file-uploader-button-changed`;\n }\n\n /**\n * A selector that will return the file `input`.\n */\n static get selectorInput() {\n return `.${prefix}--file-input`;\n }\n\n static styles = styles;\n}\n\nexport default CDSFileUploaderButton;\n"],"names":["customElement"],"mappings":"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"}
|
|
@@ -199,7 +199,7 @@ __decorate([
|
|
|
199
199
|
CDSFileUploaderDropContainer = __decorate([
|
|
200
200
|
carbonElement(`${prefix}-file-uploader-drop-container`)
|
|
201
201
|
], CDSFileUploaderDropContainer);
|
|
202
|
-
var
|
|
202
|
+
var CDSFileUploaderDropContainer_default = CDSFileUploaderDropContainer;
|
|
203
203
|
|
|
204
|
-
export {
|
|
204
|
+
export { CDSFileUploaderDropContainer_default as default };
|
|
205
205
|
//# sourceMappingURL=file-uploader-drop-container.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-uploader-drop-container.js","sources":["../../../src/components/file-uploader/file-uploader-drop-container.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2020, 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 { LitElement, html } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { prefix } from '../../globals/settings';\nimport HostListenerMixin from '../../globals/mixins/host-listener';\nimport HostListener from '../../globals/decorators/host-listener';\nimport ifNonEmpty from '../../globals/directives/if-non-empty';\nimport styles from './file-uploader.scss?lit';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\nexport { FORM_ELEMENT_COLOR_SCHEME as TILE_COLOR_SCHEME } from '../../globals/shared-enums';\n\n/**\n * The value to set to `event.dataTransfer.dropEffect`, keyed by the event nane.\n */\nconst dropEffects = {\n dragover: 'copy',\n dragleave: 'move',\n};\n\n/**\n * File uploader drop container.\n *\n * @element cds-file-uploader-drop-container\n * @fires cds-file-uploader-drop-container-changed The custom event fired when there is a user gesture to select files to upload.\n */\n@customElement(`${prefix}-file-uploader-drop-container`)\nclass CDSFileUploaderDropContainer extends HostListenerMixin(LitElement) {\n /**\n * `true` to show the active state of this UI.\n */\n private _active = false;\n\n /**\n * Handles user gesture to select files to upload.\n *\n * @param event The event.\n */\n private _handleChange(event: Event | DragEvent) {\n const { eventChange, selectorInput } = this\n .constructor as typeof CDSFileUploaderDropContainer;\n const { files } =\n (event.type === 'drop'\n ? (event as DragEvent).dataTransfer\n : (event.target as HTMLInputElement)) ?? {};\n const addedFiles = this._getFiles(event, files);\n\n this.dispatchEvent(\n new CustomEvent(eventChange, {\n bubbles: true,\n composed: true,\n detail: {\n addedFiles,\n },\n })\n );\n\n const fileInput = this?.shadowRoot?.querySelector(selectorInput);\n if (fileInput) {\n (fileInput as HTMLInputElement).value = ''; // carbon-web-components#904\n }\n }\n\n /**\n * Handles `dragover`, `dragleave` and `drop` events.\n *\n * @param event The event.\n */\n @HostListener('dragover')\n @HostListener('dragleave')\n @HostListener('drop')\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- https://github.com/carbon-design-system/carbon/issues/20452\n // @ts-ignore: The decorator refers to this method but TS thinks this method is not referred to\n private _handleDrag(event: DragEvent) {\n event.preventDefault(); // Prevents page navigation upon dropping\n if (this.disabled) {\n return;\n }\n const { dataTransfer, type } = event;\n const dropEffect = dropEffects[type];\n if (dataTransfer && dropEffect) {\n dataTransfer.dropEffect = dropEffect;\n }\n this._active = type === 'dragover';\n if (type === 'drop') {\n this._handleChange(event);\n }\n this.requestUpdate();\n }\n\n /**\n * @param event The event.\n * @returns The list of files user chose to upload.\n */\n private _getFiles(event, files) {\n const { accept } = this;\n if (!accept || !/^(change|drop)$/.test(event.type)) {\n return Array.from(files ?? []);\n }\n const acceptedTypes = new Set(accept.split(' '));\n return Array.prototype.filter.call(\n files,\n ({ name, type: mimeType = '' }) => {\n const fileExtensionRegExp = /\\.[^.]+$/;\n const hasFileExtension = fileExtensionRegExp.test(name);\n const [fileExtension] = !hasFileExtension\n ? [undefined]\n : (fileExtensionRegExp.exec(name) ?? []);\n\n return (\n acceptedTypes.has(mimeType) ||\n (fileExtension && acceptedTypes.has(fileExtension))\n );\n }\n ) as File[];\n }\n\n /**\n * The file types the file input should accept, separated by space.\n */\n @property()\n accept = '';\n\n /**\n * `true` if this drop container should be disabled.\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * `true` if this drop container should accept more than one files at once.\n * Note that even with `false` set here, user _can_ select multiple files one by one.\n */\n @property({ type: Boolean, reflect: true })\n multiple = false;\n\n /**\n * The name of the input.\n */\n @property({ reflect: true })\n name = '';\n\n /**\n * The shadow DOM slot to put this drop container in.\n */\n @property({ reflect: true })\n slot = 'drop-container';\n\n render() {\n const {\n accept,\n disabled,\n multiple,\n name,\n _active: active,\n _handleChange: handleChange,\n } = this;\n const labelClasses = classMap({\n [`${prefix}--file-browse-btn`]: true,\n [`${prefix}--file-browse-btn--disabled`]: disabled,\n });\n const dropareaClasses = classMap({\n [`${prefix}--file__drop-container`]: true,\n [`${prefix}--file__drop-container--drag-over`]: active,\n });\n return html`\n <label class=\"${labelClasses}\" for=\"file\" tabindex=\"0\">\n <div class=\"${dropareaClasses}\" role=\"button\">\n <slot></slot>\n <input\n id=\"file\"\n type=\"file\"\n name=\"${ifNonEmpty(name)}\"\n class=\"${prefix}--file-input\"\n tabindex=\"-1\"\n accept=\"${ifNonEmpty(accept)}\"\n ?disabled=\"${disabled}\"\n ?multiple=\"${multiple}\"\n @change=\"${handleChange}\" />\n </div>\n </label>\n `;\n }\n\n /**\n * The name of the custom event fired when there is a user gesture to select files to upload.\n */\n static get eventChange() {\n return `${prefix}-file-uploader-drop-container-changed`;\n }\n\n /**\n * A selector that will return the file `input`.\n */\n static get selectorInput() {\n return `.${prefix}--file-input`;\n }\n\n static styles = styles;\n}\n\nexport default CDSFileUploaderDropContainer;\n"],"names":["customElement"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"file-uploader-drop-container.js","sources":["../../../src/components/file-uploader/file-uploader-drop-container.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2020, 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 { LitElement, html } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { prefix } from '../../globals/settings';\nimport HostListenerMixin from '../../globals/mixins/host-listener';\nimport HostListener from '../../globals/decorators/host-listener';\nimport ifNonEmpty from '../../globals/directives/if-non-empty';\nimport styles from './file-uploader.scss?lit';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\nexport { FORM_ELEMENT_COLOR_SCHEME as TILE_COLOR_SCHEME } from '../../globals/shared-enums';\n\n/**\n * The value to set to `event.dataTransfer.dropEffect`, keyed by the event nane.\n */\nconst dropEffects = {\n dragover: 'copy',\n dragleave: 'move',\n};\n\n/**\n * File uploader drop container.\n *\n * @element cds-file-uploader-drop-container\n * @fires cds-file-uploader-drop-container-changed The custom event fired when there is a user gesture to select files to upload.\n */\n@customElement(`${prefix}-file-uploader-drop-container`)\nclass CDSFileUploaderDropContainer extends HostListenerMixin(LitElement) {\n /**\n * `true` to show the active state of this UI.\n */\n private _active = false;\n\n /**\n * Handles user gesture to select files to upload.\n *\n * @param event The event.\n */\n private _handleChange(event: Event | DragEvent) {\n const { eventChange, selectorInput } = this\n .constructor as typeof CDSFileUploaderDropContainer;\n const { files } =\n (event.type === 'drop'\n ? (event as DragEvent).dataTransfer\n : (event.target as HTMLInputElement)) ?? {};\n const addedFiles = this._getFiles(event, files);\n\n this.dispatchEvent(\n new CustomEvent(eventChange, {\n bubbles: true,\n composed: true,\n detail: {\n addedFiles,\n },\n })\n );\n\n const fileInput = this?.shadowRoot?.querySelector(selectorInput);\n if (fileInput) {\n (fileInput as HTMLInputElement).value = ''; // carbon-web-components#904\n }\n }\n\n /**\n * Handles `dragover`, `dragleave` and `drop` events.\n *\n * @param event The event.\n */\n @HostListener('dragover')\n @HostListener('dragleave')\n @HostListener('drop')\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- https://github.com/carbon-design-system/carbon/issues/20452\n // @ts-ignore: The decorator refers to this method but TS thinks this method is not referred to\n private _handleDrag(event: DragEvent) {\n event.preventDefault(); // Prevents page navigation upon dropping\n if (this.disabled) {\n return;\n }\n const { dataTransfer, type } = event;\n const dropEffect = dropEffects[type];\n if (dataTransfer && dropEffect) {\n dataTransfer.dropEffect = dropEffect;\n }\n this._active = type === 'dragover';\n if (type === 'drop') {\n this._handleChange(event);\n }\n this.requestUpdate();\n }\n\n /**\n * @param event The event.\n * @returns The list of files user chose to upload.\n */\n private _getFiles(event, files) {\n const { accept } = this;\n if (!accept || !/^(change|drop)$/.test(event.type)) {\n return Array.from(files ?? []);\n }\n const acceptedTypes = new Set(accept.split(' '));\n return Array.prototype.filter.call(\n files,\n ({ name, type: mimeType = '' }) => {\n const fileExtensionRegExp = /\\.[^.]+$/;\n const hasFileExtension = fileExtensionRegExp.test(name);\n const [fileExtension] = !hasFileExtension\n ? [undefined]\n : (fileExtensionRegExp.exec(name) ?? []);\n\n return (\n acceptedTypes.has(mimeType) ||\n (fileExtension && acceptedTypes.has(fileExtension))\n );\n }\n ) as File[];\n }\n\n /**\n * The file types the file input should accept, separated by space.\n */\n @property()\n accept = '';\n\n /**\n * `true` if this drop container should be disabled.\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * `true` if this drop container should accept more than one files at once.\n * Note that even with `false` set here, user _can_ select multiple files one by one.\n */\n @property({ type: Boolean, reflect: true })\n multiple = false;\n\n /**\n * The name of the input.\n */\n @property({ reflect: true })\n name = '';\n\n /**\n * The shadow DOM slot to put this drop container in.\n */\n @property({ reflect: true })\n slot = 'drop-container';\n\n render() {\n const {\n accept,\n disabled,\n multiple,\n name,\n _active: active,\n _handleChange: handleChange,\n } = this;\n const labelClasses = classMap({\n [`${prefix}--file-browse-btn`]: true,\n [`${prefix}--file-browse-btn--disabled`]: disabled,\n });\n const dropareaClasses = classMap({\n [`${prefix}--file__drop-container`]: true,\n [`${prefix}--file__drop-container--drag-over`]: active,\n });\n return html`\n <label class=\"${labelClasses}\" for=\"file\" tabindex=\"0\">\n <div class=\"${dropareaClasses}\" role=\"button\">\n <slot></slot>\n <input\n id=\"file\"\n type=\"file\"\n name=\"${ifNonEmpty(name)}\"\n class=\"${prefix}--file-input\"\n tabindex=\"-1\"\n accept=\"${ifNonEmpty(accept)}\"\n ?disabled=\"${disabled}\"\n ?multiple=\"${multiple}\"\n @change=\"${handleChange}\" />\n </div>\n </label>\n `;\n }\n\n /**\n * The name of the custom event fired when there is a user gesture to select files to upload.\n */\n static get eventChange() {\n return `${prefix}-file-uploader-drop-container-changed`;\n }\n\n /**\n * A selector that will return the file `input`.\n */\n static get selectorInput() {\n return `.${prefix}--file-input`;\n }\n\n static styles = styles;\n}\n\nexport default CDSFileUploaderDropContainer;\n"],"names":["customElement"],"mappings":"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"}
|
|
@@ -9,7 +9,7 @@ import { __decorate } from 'tslib';
|
|
|
9
9
|
import { LitElement, html } from 'lit';
|
|
10
10
|
import { property } from 'lit/decorators.js';
|
|
11
11
|
import { prefix } from '../../globals/settings.js';
|
|
12
|
-
import
|
|
12
|
+
import iconLoader from '../../globals/internal/icon-loader.js';
|
|
13
13
|
import WarningFilled16 from '@carbon/icons/es/warning--filled/16.js';
|
|
14
14
|
import Close16 from '@carbon/icons/es/close/16.js';
|
|
15
15
|
import CheckmarkFilled16 from '@carbon/icons/es/checkmark--filled/16.js';
|
|
@@ -187,7 +187,7 @@ __decorate([
|
|
|
187
187
|
CDSFileUploaderItem = __decorate([
|
|
188
188
|
carbonElement(`${prefix}-file-uploader-item`)
|
|
189
189
|
], CDSFileUploaderItem);
|
|
190
|
-
var
|
|
190
|
+
var CDSFileUploaderItem_default = CDSFileUploaderItem;
|
|
191
191
|
|
|
192
|
-
export { FILE_UPLOADER_ITEM_SIZE, FILE_UPLOADER_ITEM_STATE,
|
|
192
|
+
export { FILE_UPLOADER_ITEM_SIZE, FILE_UPLOADER_ITEM_STATE, CDSFileUploaderItem_default as default };
|
|
193
193
|
//# sourceMappingURL=file-uploader-item.js.map
|