@carbon/web-components 2.39.1 → 2.40.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 +115 -50
- package/dist/accordion.min.js +2 -2
- package/dist/ai-label.min.js +2 -2
- package/dist/ai-skeleton.min.js +2 -2
- package/dist/badge-indicator.min.js +2 -2
- package/dist/breadcrumb.min.js +8 -8
- package/dist/button-Co3aPX0Y.js +93 -0
- package/dist/{button-skeleton-DdBk5C_N.js → button-skeleton-DKiPqzwa.js} +2 -2
- package/dist/button.min.js +2 -2
- package/dist/chat-button.min.js +4 -4
- package/dist/{checkbox-DIG0hVuh.js → checkbox-DVx3ui3h.js} +2 -2
- package/dist/checkbox.min.js +2 -2
- package/dist/{class-map-n49vbqqp.js → class-map-CJoc5JjN.js} +2 -2
- package/dist/code-snippet.min.js +14 -14
- package/dist/combo-box.min.js +2 -2
- package/dist/combo-button.min.js +3 -3
- package/dist/content-switcher-item-BDJMJLCb.js +54 -0
- package/dist/content-switcher.min.js +2 -2
- package/dist/copy-button.min.js +2 -2
- package/dist/data-table.min.js +2 -2
- package/dist/date-picker.min.js +2 -2
- package/dist/{dropdown-item-PvWtkb2E.js → dropdown-item-B6uTaLa3.js} +2 -2
- package/dist/dropdown.min.js +2 -2
- package/dist/feature-flags.min.js +2 -2
- package/dist/file-uploader.min.js +8 -8
- package/dist/floating-menu.min.js +2 -2
- package/dist/fluid-text-input.min.js +2 -2
- package/dist/{focus-CAqkEBYM.js → focus-JSuV9CsT.js} +2 -2
- package/dist/{form-BNblI_Op.js → form-BaYTr2z0.js} +2 -2
- package/dist/form-group.min.js +2 -2
- package/dist/form.min.js +2 -2
- package/dist/grid.min.js +2 -2
- package/dist/heading.min.js +2 -2
- package/dist/{host-listener-mPtggheY.js → host-listener-BJsBtsIt.js} +2 -2
- package/dist/icon-button.min.js +2 -2
- package/dist/icon-indicator.min.js +2 -2
- package/dist/{icon-loader-3bNrhxYK.js → icon-loader-CqB9WRMP.js} +2 -2
- package/dist/{icon-loader-utils-C4QltTKl.js → icon-loader-utils-DUl0vwdh.js} +2 -2
- package/dist/icon.min.js +2 -2
- package/dist/{if-defined-exabhQMq.js → if-defined-IxozbDOJ.js} +2 -2
- package/dist/{if-non-empty-DV7gZi2W.js → if-non-empty-CqQHBHdQ.js} +2 -2
- package/dist/inline-loading.min.js +2 -2
- package/dist/layer.min.js +2 -2
- package/dist/link.min.js +2 -2
- package/dist/list.min.js +2 -2
- package/dist/{loading-icon-CIx9N4-w.js → loading-icon-DCf6kyWs.js} +2 -2
- package/dist/loading.min.js +2 -2
- package/dist/menu-button.min.js +3 -3
- package/dist/menu.min.js +2 -2
- package/dist/modal.min.js +9 -9
- package/dist/multi-select.min.js +2 -2
- package/dist/notification.min.js +4 -4
- package/dist/number-input.min.js +2 -2
- package/dist/overflow-menu.min.js +3 -3
- package/dist/page-header.min.js +2 -2
- package/dist/pagination.min.js +17 -25
- package/dist/password-input.min.js +2 -2
- package/dist/popover.min.js +2 -2
- package/dist/progress-bar.min.js +2 -2
- package/dist/progress-indicator.min.js +16 -10
- package/dist/{property-lZbmspq2.js → property-B_F7V5eB.js} +2 -2
- package/dist/{query-assigned-elements-DkjA2wnD.js → query-assigned-elements-DeMmXVMb.js} +2 -2
- package/dist/radio-button.min.js +2 -2
- package/dist/{search-xhqtCabY.js → search-DRY-RtlJ.js} +2 -2
- package/dist/search.min.js +2 -2
- package/dist/{select-CL5lr0mN.js → select-9WcKYA1M.js} +17 -16
- package/dist/select.min.js +2 -2
- package/dist/shape-indicator.min.js +2 -2
- package/dist/side-panel.min.js +2 -2
- package/dist/skeleton-icon.min.js +2 -2
- package/dist/skeleton-placeholder.min.js +2 -2
- package/dist/skeleton-text.min.js +2 -2
- package/dist/skip-to-content.min.js +2 -2
- package/dist/slider.min.js +2 -2
- package/dist/slug.min.js +2 -2
- package/dist/stack.min.js +2 -2
- package/dist/{state-CocwM4nH.js → state-CJQmj6wG.js} +2 -2
- package/dist/structured-list.min.js +2 -2
- package/dist/tabs.min.js +6 -6
- package/dist/tag.min.js +17 -17
- package/dist/tearsheet.min.js +2 -2
- package/dist/{text-input-rzf9bVlH.js → text-input-B80oQMaX.js} +2 -2
- package/dist/text-input.min.js +2 -2
- package/dist/textarea.min.js +2 -2
- package/dist/tile.min.js +2 -2
- package/dist/time-picker.min.js +2 -2
- package/dist/toggle-tip.min.js +4 -4
- package/dist/toggle.min.js +5 -5
- package/dist/tooltip-content-BZBP-szv.js +30 -0
- package/dist/tooltip.min.js +2 -2
- package/dist/tree-view.min.js +2 -2
- package/dist/ui-shell.min.js +2 -2
- package/dist/{unsafe-html-B5l1xysL.js → unsafe-html-Dqv0UqC_.js} +2 -2
- package/es/components/accordion/accordion-item.js +4 -4
- 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 +1 -1
- package/es/components/accordion/accordion.js.map +1 -1
- package/es/components/ai-label/ai-label.js +2 -2
- package/es/components/ai-label/ai-label.js.map +1 -1
- package/es/components/ai-label/ai-label.scss.js +1 -1
- package/es/components/breadcrumb/breadcrumb-item.js +1 -1
- package/es/components/breadcrumb/breadcrumb-item.js.map +1 -1
- package/es/components/breadcrumb/breadcrumb.js +1 -1
- package/es/components/breadcrumb/breadcrumb.js.map +1 -1
- package/es/components/breadcrumb/breadcrumb.scss.js +1 -1
- package/es/components/button/button.js +7 -7
- 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.js +1 -1
- package/es/components/chat-button/chat-button.js.map +1 -1
- package/es/components/chat-button/chat-button.scss.js +1 -1
- package/es/components/checkbox/checkbox.js +1 -1
- package/es/components/checkbox/checkbox.js.map +1 -1
- package/es/components/code-snippet/code-snippet.js +16 -16
- package/es/components/code-snippet/code-snippet.js.map +1 -1
- package/es/components/code-snippet/code-snippet.scss.js +1 -1
- package/es/components/combo-box/combo-box.js +7 -7
- package/es/components/combo-box/combo-box.js.map +1 -1
- package/es/components/combo-button/combo-button.js +2 -2
- package/es/components/combo-button/combo-button.js.map +1 -1
- package/es/components/combo-button/combo-button.scss.js +1 -1
- package/es/components/combo-button/defs.d.ts +4 -0
- package/es/components/combo-button/defs.js +4 -0
- package/es/components/combo-button/defs.js.map +1 -1
- package/es/components/content-switcher/content-switcher.js +2 -2
- package/es/components/content-switcher/content-switcher.js.map +1 -1
- package/es/components/content-switcher/content-switcher.scss.js +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.scss.js +1 -1
- package/es/components/data-table/data-table.scss.js +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-row.js +2 -2
- package/es/components/data-table/table-row.js.map +1 -1
- package/es/components/data-table/table.js +20 -20
- package/es/components/data-table/table.js.map +1 -1
- package/es/components/date-picker/append-to-plugin.js +3 -3
- package/es/components/date-picker/append-to-plugin.js.map +1 -1
- package/es/components/date-picker/css-class-plugin.js +2 -2
- package/es/components/date-picker/css-class-plugin.js.map +1 -1
- package/es/components/date-picker/date-picker-input.js +1 -1
- package/es/components/date-picker/date-picker-input.js.map +1 -1
- package/es/components/date-picker/date-picker.js +5 -5
- package/es/components/date-picker/date-picker.js.map +1 -1
- package/es/components/date-picker/fix-events-plugin.js +1 -1
- package/es/components/date-picker/fix-events-plugin.js.map +1 -1
- package/es/components/date-picker/range-plugin.js +2 -2
- package/es/components/date-picker/range-plugin.js.map +1 -1
- package/es/components/date-picker/shadow-dom-events-plugin.js +10 -10
- package/es/components/date-picker/shadow-dom-events-plugin.js.map +1 -1
- package/es/components/dropdown/dropdown-item.js +1 -1
- package/es/components/dropdown/dropdown-item.js.map +1 -1
- package/es/components/dropdown/dropdown.js +8 -8
- package/es/components/dropdown/dropdown.js.map +1 -1
- package/es/components/feature-flags/index.d.ts +4 -0
- package/es/components/feature-flags/index.js +20 -9
- package/es/components/feature-flags/index.js.map +1 -1
- package/es/components/file-uploader/file-uploader-drop-container.js +1 -1
- package/es/components/file-uploader/file-uploader-drop-container.js.map +1 -1
- package/es/components/file-uploader/file-uploader.scss.js +1 -1
- package/es/components/floating-menu/floating-menu.js +9 -9
- package/es/components/floating-menu/floating-menu.js.map +1 -1
- package/es/components/icon-button/icon-button.scss.js +1 -1
- package/es/components/link/link.js +2 -2
- package/es/components/link/link.js.map +1 -1
- package/es/components/menu/menu-context.js.map +1 -1
- package/es/components/menu/menu-item.js +1 -1
- package/es/components/menu/menu-item.js.map +1 -1
- package/es/components/menu/menu.js +1 -1
- package/es/components/menu/menu.js.map +1 -1
- package/es/components/menu-button/menu-button.js +2 -2
- package/es/components/menu-button/menu-button.js.map +1 -1
- package/es/components/menu-button/menu-button.scss.js +1 -1
- package/es/components/modal/modal.js +8 -8
- package/es/components/modal/modal.js.map +1 -1
- package/es/components/modal/modal.scss.js +1 -1
- package/es/components/multi-select/multi-select.js +8 -8
- package/es/components/multi-select/multi-select.js.map +1 -1
- package/es/components/notification/actionable-notification-button.js +1 -1
- package/es/components/notification/actionable-notification-button.js.map +1 -1
- package/es/components/notification/actionable-notification.js +5 -5
- package/es/components/notification/actionable-notification.js.map +1 -1
- package/es/components/notification/actionable-notification.scss.js +1 -1
- package/es/components/notification/inline-notification.scss.js +1 -1
- package/es/components/notification/toast-notification.scss.js +1 -1
- package/es/components/overflow-menu/defs.d.ts +4 -0
- package/es/components/overflow-menu/defs.js +4 -0
- package/es/components/overflow-menu/defs.js.map +1 -1
- package/es/components/overflow-menu/overflow-menu-body.js +2 -2
- package/es/components/overflow-menu/overflow-menu-body.js.map +1 -1
- package/es/components/overflow-menu/overflow-menu.js +4 -8
- package/es/components/overflow-menu/overflow-menu.js.map +1 -1
- package/es/components/overflow-menu/overflow-menu.scss.js +1 -1
- package/es/components/page-header/page-header-tabs.js.map +1 -1
- package/es/components/page-header/page-header.js.map +1 -1
- package/es/components/pagination/pagination.d.ts +1 -1
- package/es/components/pagination/pagination.js +86 -56
- package/es/components/pagination/pagination.js.map +1 -1
- package/es/components/pagination/pagination.scss.js +1 -1
- package/es/components/popover/popover.js +2 -2
- package/es/components/popover/popover.js.map +1 -1
- package/es/components/popover/popover.scss.js +1 -1
- package/es/components/progress-bar/progress-bar.js +1 -1
- package/es/components/progress-bar/progress-bar.js.map +1 -1
- package/es/components/progress-indicator/progress-indicator.d.ts +16 -2
- package/es/components/progress-indicator/progress-indicator.js +75 -4
- package/es/components/progress-indicator/progress-indicator.js.map +1 -1
- package/es/components/progress-indicator/progress-indicator.scss.js +1 -1
- package/es/components/progress-indicator/progress-step.d.ts +34 -9
- package/es/components/progress-indicator/progress-step.js +100 -16
- package/es/components/progress-indicator/progress-step.js.map +1 -1
- package/es/components/radio-button/radio-button-group.js +1 -1
- package/es/components/radio-button/radio-button-group.js.map +1 -1
- package/es/components/radio-button/radio-button.js +5 -5
- package/es/components/radio-button/radio-button.js.map +1 -1
- package/es/components/search/search.js +4 -4
- package/es/components/search/search.js.map +1 -1
- package/es/components/select/select.js +15 -8
- package/es/components/select/select.js.map +1 -1
- package/es/components/select/select.scss.js +1 -1
- package/es/components/side-panel/side-panel.js +6 -6
- package/es/components/side-panel/side-panel.js.map +1 -1
- package/es/components/skip-to-content/skip-to-content.scss.js +1 -1
- package/es/components/slider/slider.js +7 -7
- package/es/components/slider/slider.js.map +1 -1
- package/es/components/slug/slug.js +2 -2
- package/es/components/slug/slug.js.map +1 -1
- package/es/components/slug/slug.scss.js +1 -1
- package/es/components/structured-list/structured-list-row.js +2 -2
- package/es/components/structured-list/structured-list-row.js.map +1 -1
- package/es/components/structured-list/structured-list.js +1 -1
- package/es/components/structured-list/structured-list.js.map +1 -1
- package/es/components/tabs/tabs.js +12 -12
- 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 +2 -2
- 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.js +2 -2
- package/es/components/tag/tag.js.map +1 -1
- package/es/components/tag/tag.scss.js +1 -1
- package/es/components/tearsheet/tearsheet.js +10 -10
- package/es/components/tearsheet/tearsheet.js.map +1 -1
- package/es/components/tile/clickable-tile.js +1 -1
- package/es/components/tile/clickable-tile.js.map +1 -1
- package/es/components/tile/expandable-tile.js +2 -2
- package/es/components/tile/expandable-tile.js.map +1 -1
- package/es/components/tile/tile-group.js +2 -2
- package/es/components/tile/tile-group.js.map +1 -1
- package/es/components/time-picker/time-picker-select.js +1 -1
- package/es/components/time-picker/time-picker-select.js.map +1 -1
- package/es/components/time-picker/time-picker.js +2 -2
- package/es/components/time-picker/time-picker.js.map +1 -1
- package/es/components/toggle/toggle.d.ts +20 -3
- package/es/components/toggle/toggle.js +47 -10
- package/es/components/toggle/toggle.js.map +1 -1
- package/es/components/toggle/toggle.scss.js +1 -1
- package/es/components/toggle-tip/toggletip.js +3 -3
- package/es/components/toggle-tip/toggletip.js.map +1 -1
- package/es/components/toggle-tip/toggletip.scss.js +1 -1
- package/es/components/tooltip/tooltip.js +4 -4
- package/es/components/tooltip/tooltip.js.map +1 -1
- package/es/components/tooltip/tooltip.scss.js +1 -1
- package/es/components/tree-view/tree-node.js +1 -1
- package/es/components/tree-view/tree-node.js.map +1 -1
- package/es/components/tree-view/tree-view.js +7 -7
- package/es/components/tree-view/tree-view.js.map +1 -1
- package/es/components/ui-shell/header-global-action.js +3 -3
- package/es/components/ui-shell/header-global-action.js.map +1 -1
- package/es/components/ui-shell/header-menu.js +2 -2
- package/es/components/ui-shell/header-menu.js.map +1 -1
- package/es/components/ui-shell/header.scss.js +1 -1
- package/es/components/ui-shell/side-nav.js +1 -1
- package/es/components/ui-shell/side-nav.js.map +1 -1
- package/es/globals/controllers/floating-controller.js +2 -2
- package/es/globals/controllers/floating-controller.js.map +1 -1
- package/es/globals/decorators/carbon-element.js +4 -4
- package/es/globals/decorators/carbon-element.js.map +1 -1
- package/es/globals/decorators/host-listener.js +2 -2
- package/es/globals/decorators/host-listener.js.map +1 -1
- package/es/globals/internal/collection-helpers.js +4 -4
- package/es/globals/internal/collection-helpers.js.map +1 -1
- package/es/globals/internal/feature-flags.js +2 -2
- package/es/globals/internal/feature-flags.js.map +1 -1
- package/es/globals/mixins/focus.js +2 -2
- package/es/globals/mixins/focus.js.map +1 -1
- package/es/globals/mixins/host-listener.js +1 -1
- package/es/globals/mixins/host-listener.js.map +1 -1
- package/es/globals/mixins/on.js +1 -1
- package/es/globals/mixins/on.js.map +1 -1
- package/es-custom/components/accordion/accordion-item.js +4 -4
- 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 +1 -1
- package/es-custom/components/accordion/accordion.js.map +1 -1
- package/es-custom/components/ai-label/ai-label.js +2 -2
- package/es-custom/components/ai-label/ai-label.js.map +1 -1
- package/es-custom/components/ai-label/ai-label.scss.js +1 -1
- package/es-custom/components/breadcrumb/breadcrumb-item.js +1 -1
- package/es-custom/components/breadcrumb/breadcrumb-item.js.map +1 -1
- package/es-custom/components/breadcrumb/breadcrumb.js +1 -1
- package/es-custom/components/breadcrumb/breadcrumb.js.map +1 -1
- package/es-custom/components/breadcrumb/breadcrumb.scss.js +1 -1
- package/es-custom/components/button/button.js +7 -7
- 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.js +1 -1
- package/es-custom/components/chat-button/chat-button.js.map +1 -1
- package/es-custom/components/chat-button/chat-button.scss.js +1 -1
- package/es-custom/components/checkbox/checkbox.js +1 -1
- package/es-custom/components/checkbox/checkbox.js.map +1 -1
- package/es-custom/components/code-snippet/code-snippet.js +16 -16
- package/es-custom/components/code-snippet/code-snippet.js.map +1 -1
- package/es-custom/components/code-snippet/code-snippet.scss.js +1 -1
- package/es-custom/components/combo-box/combo-box.js +7 -7
- package/es-custom/components/combo-box/combo-box.js.map +1 -1
- package/es-custom/components/combo-button/combo-button.js +2 -2
- package/es-custom/components/combo-button/combo-button.js.map +1 -1
- package/es-custom/components/combo-button/combo-button.scss.js +1 -1
- package/es-custom/components/combo-button/defs.d.ts +4 -0
- package/es-custom/components/combo-button/defs.js +4 -0
- package/es-custom/components/combo-button/defs.js.map +1 -1
- package/es-custom/components/content-switcher/content-switcher.js +2 -2
- package/es-custom/components/content-switcher/content-switcher.js.map +1 -1
- package/es-custom/components/content-switcher/content-switcher.scss.js +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.scss.js +1 -1
- package/es-custom/components/data-table/data-table.scss.js +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-row.js +2 -2
- package/es-custom/components/data-table/table-row.js.map +1 -1
- package/es-custom/components/data-table/table.js +20 -20
- package/es-custom/components/data-table/table.js.map +1 -1
- package/es-custom/components/date-picker/append-to-plugin.js +3 -3
- package/es-custom/components/date-picker/append-to-plugin.js.map +1 -1
- package/es-custom/components/date-picker/css-class-plugin.js +2 -2
- package/es-custom/components/date-picker/css-class-plugin.js.map +1 -1
- package/es-custom/components/date-picker/date-picker-input.js +1 -1
- package/es-custom/components/date-picker/date-picker-input.js.map +1 -1
- package/es-custom/components/date-picker/date-picker.js +5 -5
- package/es-custom/components/date-picker/date-picker.js.map +1 -1
- package/es-custom/components/date-picker/fix-events-plugin.js +1 -1
- package/es-custom/components/date-picker/fix-events-plugin.js.map +1 -1
- package/es-custom/components/date-picker/range-plugin.js +2 -2
- package/es-custom/components/date-picker/range-plugin.js.map +1 -1
- package/es-custom/components/date-picker/shadow-dom-events-plugin.js +10 -10
- package/es-custom/components/date-picker/shadow-dom-events-plugin.js.map +1 -1
- package/es-custom/components/dropdown/dropdown-item.js +1 -1
- package/es-custom/components/dropdown/dropdown-item.js.map +1 -1
- package/es-custom/components/dropdown/dropdown.js +8 -8
- package/es-custom/components/dropdown/dropdown.js.map +1 -1
- package/es-custom/components/feature-flags/index.d.ts +4 -0
- package/es-custom/components/feature-flags/index.js +20 -9
- package/es-custom/components/feature-flags/index.js.map +1 -1
- package/es-custom/components/file-uploader/file-uploader-drop-container.js +1 -1
- package/es-custom/components/file-uploader/file-uploader-drop-container.js.map +1 -1
- package/es-custom/components/file-uploader/file-uploader.scss.js +1 -1
- package/es-custom/components/floating-menu/floating-menu.js +9 -9
- package/es-custom/components/floating-menu/floating-menu.js.map +1 -1
- package/es-custom/components/icon-button/icon-button.scss.js +1 -1
- package/es-custom/components/link/link.js +2 -2
- package/es-custom/components/link/link.js.map +1 -1
- package/es-custom/components/menu/menu-context.js.map +1 -1
- package/es-custom/components/menu/menu-item.js +1 -1
- package/es-custom/components/menu/menu-item.js.map +1 -1
- package/es-custom/components/menu/menu.js +1 -1
- package/es-custom/components/menu/menu.js.map +1 -1
- package/es-custom/components/menu-button/menu-button.js +2 -2
- package/es-custom/components/menu-button/menu-button.js.map +1 -1
- package/es-custom/components/menu-button/menu-button.scss.js +1 -1
- package/es-custom/components/modal/modal.js +8 -8
- package/es-custom/components/modal/modal.js.map +1 -1
- package/es-custom/components/modal/modal.scss.js +1 -1
- package/es-custom/components/multi-select/multi-select.js +8 -8
- package/es-custom/components/multi-select/multi-select.js.map +1 -1
- package/es-custom/components/notification/actionable-notification-button.js +1 -1
- package/es-custom/components/notification/actionable-notification-button.js.map +1 -1
- package/es-custom/components/notification/actionable-notification.js +5 -5
- package/es-custom/components/notification/actionable-notification.js.map +1 -1
- package/es-custom/components/notification/actionable-notification.scss.js +1 -1
- package/es-custom/components/notification/inline-notification.scss.js +1 -1
- package/es-custom/components/notification/toast-notification.scss.js +1 -1
- package/es-custom/components/overflow-menu/defs.d.ts +4 -0
- package/es-custom/components/overflow-menu/defs.js +4 -0
- package/es-custom/components/overflow-menu/defs.js.map +1 -1
- package/es-custom/components/overflow-menu/overflow-menu-body.js +2 -2
- package/es-custom/components/overflow-menu/overflow-menu-body.js.map +1 -1
- package/es-custom/components/overflow-menu/overflow-menu.js +4 -8
- package/es-custom/components/overflow-menu/overflow-menu.js.map +1 -1
- package/es-custom/components/overflow-menu/overflow-menu.scss.js +1 -1
- package/es-custom/components/page-header/page-header-tabs.js.map +1 -1
- package/es-custom/components/page-header/page-header.js.map +1 -1
- package/es-custom/components/pagination/pagination.d.ts +1 -1
- package/es-custom/components/pagination/pagination.js +86 -56
- package/es-custom/components/pagination/pagination.js.map +1 -1
- package/es-custom/components/pagination/pagination.scss.js +1 -1
- package/es-custom/components/popover/popover.js +2 -2
- package/es-custom/components/popover/popover.js.map +1 -1
- package/es-custom/components/popover/popover.scss.js +1 -1
- package/es-custom/components/progress-bar/progress-bar.js +1 -1
- package/es-custom/components/progress-bar/progress-bar.js.map +1 -1
- package/es-custom/components/progress-indicator/progress-indicator.d.ts +16 -2
- package/es-custom/components/progress-indicator/progress-indicator.js +75 -4
- package/es-custom/components/progress-indicator/progress-indicator.js.map +1 -1
- package/es-custom/components/progress-indicator/progress-indicator.scss.js +1 -1
- package/es-custom/components/progress-indicator/progress-step.d.ts +34 -9
- package/es-custom/components/progress-indicator/progress-step.js +100 -16
- package/es-custom/components/progress-indicator/progress-step.js.map +1 -1
- package/es-custom/components/radio-button/radio-button-group.js +1 -1
- package/es-custom/components/radio-button/radio-button-group.js.map +1 -1
- package/es-custom/components/radio-button/radio-button.js +5 -5
- package/es-custom/components/radio-button/radio-button.js.map +1 -1
- package/es-custom/components/search/search.js +4 -4
- package/es-custom/components/search/search.js.map +1 -1
- package/es-custom/components/select/select.js +15 -8
- package/es-custom/components/select/select.js.map +1 -1
- package/es-custom/components/select/select.scss.js +1 -1
- package/es-custom/components/side-panel/side-panel.js +6 -6
- package/es-custom/components/side-panel/side-panel.js.map +1 -1
- package/es-custom/components/skip-to-content/skip-to-content.scss.js +1 -1
- package/es-custom/components/slider/slider.js +7 -7
- package/es-custom/components/slider/slider.js.map +1 -1
- package/es-custom/components/slug/slug.js +2 -2
- package/es-custom/components/slug/slug.js.map +1 -1
- package/es-custom/components/slug/slug.scss.js +1 -1
- package/es-custom/components/structured-list/structured-list-row.js +2 -2
- package/es-custom/components/structured-list/structured-list-row.js.map +1 -1
- package/es-custom/components/structured-list/structured-list.js +1 -1
- package/es-custom/components/structured-list/structured-list.js.map +1 -1
- package/es-custom/components/tabs/tabs.js +12 -12
- 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 +2 -2
- 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.js +2 -2
- package/es-custom/components/tag/tag.js.map +1 -1
- package/es-custom/components/tag/tag.scss.js +1 -1
- package/es-custom/components/tearsheet/tearsheet.js +10 -10
- package/es-custom/components/tearsheet/tearsheet.js.map +1 -1
- package/es-custom/components/tile/clickable-tile.js +1 -1
- package/es-custom/components/tile/clickable-tile.js.map +1 -1
- package/es-custom/components/tile/expandable-tile.js +2 -2
- package/es-custom/components/tile/expandable-tile.js.map +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/time-picker/time-picker-select.js +1 -1
- package/es-custom/components/time-picker/time-picker-select.js.map +1 -1
- package/es-custom/components/time-picker/time-picker.js +2 -2
- package/es-custom/components/time-picker/time-picker.js.map +1 -1
- package/es-custom/components/toggle/toggle.d.ts +20 -3
- package/es-custom/components/toggle/toggle.js +47 -10
- package/es-custom/components/toggle/toggle.js.map +1 -1
- package/es-custom/components/toggle/toggle.scss.js +1 -1
- package/es-custom/components/toggle-tip/toggletip.js +3 -3
- package/es-custom/components/toggle-tip/toggletip.js.map +1 -1
- package/es-custom/components/toggle-tip/toggletip.scss.js +1 -1
- package/es-custom/components/tooltip/tooltip.js +4 -4
- package/es-custom/components/tooltip/tooltip.js.map +1 -1
- package/es-custom/components/tooltip/tooltip.scss.js +1 -1
- package/es-custom/components/tree-view/tree-node.js +1 -1
- package/es-custom/components/tree-view/tree-node.js.map +1 -1
- package/es-custom/components/tree-view/tree-view.js +7 -7
- package/es-custom/components/tree-view/tree-view.js.map +1 -1
- package/es-custom/components/ui-shell/header-global-action.js +3 -3
- package/es-custom/components/ui-shell/header-global-action.js.map +1 -1
- package/es-custom/components/ui-shell/header-menu.js +2 -2
- package/es-custom/components/ui-shell/header-menu.js.map +1 -1
- package/es-custom/components/ui-shell/header.scss.js +1 -1
- package/es-custom/components/ui-shell/side-nav.js +1 -1
- package/es-custom/components/ui-shell/side-nav.js.map +1 -1
- package/es-custom/globals/controllers/floating-controller.js +2 -2
- package/es-custom/globals/controllers/floating-controller.js.map +1 -1
- package/es-custom/globals/decorators/carbon-element.js +4 -4
- package/es-custom/globals/decorators/carbon-element.js.map +1 -1
- package/es-custom/globals/decorators/host-listener.js +2 -2
- package/es-custom/globals/decorators/host-listener.js.map +1 -1
- package/es-custom/globals/internal/collection-helpers.js +4 -4
- package/es-custom/globals/internal/collection-helpers.js.map +1 -1
- package/es-custom/globals/internal/feature-flags.js +2 -2
- package/es-custom/globals/internal/feature-flags.js.map +1 -1
- package/es-custom/globals/mixins/focus.js +2 -2
- package/es-custom/globals/mixins/focus.js.map +1 -1
- package/es-custom/globals/mixins/host-listener.js +1 -1
- package/es-custom/globals/mixins/host-listener.js.map +1 -1
- package/es-custom/globals/mixins/on.js +1 -1
- package/es-custom/globals/mixins/on.js.map +1 -1
- package/lib/components/combo-button/defs.d.ts +4 -0
- package/lib/components/combo-button/defs.js +4 -0
- package/lib/components/combo-button/defs.js.map +1 -1
- package/lib/components/feature-flags/index.d.ts +4 -0
- package/lib/components/overflow-menu/defs.d.ts +4 -0
- package/lib/components/overflow-menu/defs.js +4 -0
- package/lib/components/overflow-menu/defs.js.map +1 -1
- package/lib/components/pagination/pagination.d.ts +1 -1
- package/lib/components/progress-indicator/progress-indicator.d.ts +16 -2
- package/lib/components/progress-indicator/progress-step.d.ts +34 -9
- package/lib/components/toggle/toggle.d.ts +20 -3
- package/lib/globals/controllers/floating-controller.js +2 -2
- package/lib/globals/controllers/floating-controller.js.map +1 -1
- package/package.json +7 -7
- package/scss/components/button/button.scss +1 -1
- package/scss/components/overflow-menu/overflow-menu.scss +13 -0
- package/scss/components/progress-indicator/progress-indicator.scss +27 -6
- package/scss/components/select/select.scss +1 -0
- package/scss/components/toggle/toggle.scss +7 -0
- package/telemetry.yml +7 -9
- package/dist/button-CZUc-YJY.js +0 -93
- package/dist/content-switcher-item-BwX297Wt.js +0 -54
- package/dist/tooltip-content-Dpafcwrj.js +0 -30
- package/dist/{16-mnk48Km_.js → 16-B3Yskhl0.js} +1 -1
- package/dist/{16-Dm1C38gy.js → 16-B46MLj4i.js} +1 -1
- package/dist/{16-D7S2mZfx.js → 16-B7MRS_3W.js} +1 -1
- package/dist/{16-D5qURVFK.js → 16-BWlgPBcu.js} +1 -1
- package/dist/{16-_VZZTjD5.js → 16-Bf2P7KMJ.js} +1 -1
- package/dist/{16-CsCwHiDB.js → 16-Bxm7Omxq.js} +1 -1
- package/dist/{16-CBMBwbRd.js → 16-CJNlj_0b.js} +1 -1
- package/dist/{16-CUSZxKi3.js → 16-CdxGkvXO.js} +1 -1
- package/dist/{16-CpQfhph0.js → 16-DTvjc9uv.js} +1 -1
- package/dist/{16-qteMrX0q.js → 16-DhAznVKm.js} +1 -1
- package/dist/{16-CvYO9Wcs.js → 16-DoN7q01_.js} +1 -1
- package/dist/{16-CDsZibnu.js → 16-GKRs-ALp.js} +1 -1
- package/dist/{20-CxH6T12Q.js → 20-CuEbZLGA.js} +1 -1
- package/dist/{20-D2L4OBED.js → 20-DlknbFYR.js} +1 -1
- package/dist/{carbon-element-Bz4hUejX.js → carbon-element-DDrYm3XO.js} +1 -1
- package/dist/{collection-helpers-rDLReFyQ.js → collection-helpers-BslvaZFE.js} +1 -1
- package/dist/{consume-D-Uxx41O.js → consume-BeeFGGfo.js} +1 -1
- package/dist/{defs-B8Ti5atv.js → defs-CBJRLDfw.js} +1 -1
- package/dist/{directive-BnmT0ewj.js → directive-Dlo2OKiC.js} +1 -1
- package/dist/{floating-controller-C6KWPbMX.js → floating-controller-CnuSelc_.js} +1 -1
- package/dist/{host-listener-DtqTZPgM.js → host-listener-BCnAWDV7.js} +1 -1
- package/dist/{lit-element-ClYpehYk.js → lit-element-eFlPHqE1.js} +1 -1
- package/dist/{on-DsfjLQFb.js → on-DvnWS_DB.js} +1 -1
- package/dist/{query-C6TAHe0V.js → query-BdmT5Ln1.js} +1 -1
- package/dist/{radio-group-manager-dJ3qt5K5.js → radio-group-manager-B_pENWmT.js} +1 -1
- package/dist/{settings-BPpYX8TV.js → settings-FSuH8xHs.js} +1 -1
- package/dist/{shared-enums-DUU0Uftc.js → shared-enums-D8TrS6Ts.js} +1 -1
- package/dist/{validity-j3foP4ed.js → validity-BUGyJDQ6.js} +1 -1
|
@@ -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/20071\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/20071\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/20071\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/20071\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/20071\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":"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"}
|
|
@@ -30,7 +30,7 @@ var fixEventsPlugin = (config) => (fp) => {
|
|
|
30
30
|
// Makes sure the hitting enter key picks up pending values of both `<input>`
|
|
31
31
|
// Workaround for: https://github.com/flatpickr/flatpickr/issues/1942
|
|
32
32
|
fp.setDate(
|
|
33
|
-
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- https://github.com/carbon-design-system/carbon/issues/
|
|
33
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- https://github.com/carbon-design-system/carbon/issues/20452
|
|
34
34
|
[inputFrom.value, (inputTo && inputTo.value)], true, fp.config.dateFormat);
|
|
35
35
|
event.stopPropagation();
|
|
36
36
|
break;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fix-events-plugin.js","sources":["../../../src/components/date-picker/fix-events-plugin.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2019, 2023\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { Instance as FlatpickrInstance } from 'flatpickr/dist/types/instance';\nimport { Plugin } from 'flatpickr/dist/types/options';\nimport on from '../../globals/mixins/on';\nimport Handle from '../../globals/internal/handle';\nimport CDSDatePickerInput from './date-picker-input';\n\n/**\n * The configuration for the Flatpickr plugin to fix Flatpickr's behavior of certain events.\n */\nexport interface DatePickerFixEventsPluginConfig {\n /**\n * The input box to enter starting date.\n */\n inputFrom: CDSDatePickerInput;\n\n /**\n * The input box to enter end date.\n */\n inputTo?: CDSDatePickerInput;\n}\n\n/**\n * `FlatpickrInstance` with additional properties used for `carbonFlatpickrFixEventsPlugin`.\n */\nexport interface ExtendedFlatpickrInstanceFixEventsPlugin\n extends FlatpickrInstance {\n /**\n * The handle for `keydown` event handler in the `<input>` for the starting date.\n */\n _hCDSCEDatePickerFixEventsPluginKeydownFrom?: Handle | null;\n\n /**\n * The handle for `keydown` event handler in the `<input>` for the end date.\n */\n _hCDSCEDatePickerFixEventsPluginKeydownTo?: Handle | null;\n}\n\n/**\n * @param config Plugin configuration.\n * @returns A Flatpickr plugin to fix Flatpickr's behavior of certain events.\n */\nexport default (config: DatePickerFixEventsPluginConfig): Plugin =>\n (fp: ExtendedFlatpickrInstanceFixEventsPlugin) => {\n /**\n * Handles `keydown` event.\n */\n const handleKeydown = (event: KeyboardEvent) => {\n const { inputFrom, inputTo } = config;\n const { key, target } = event;\n if (inputFrom === target || inputTo === target) {\n switch (key) {\n case 'Enter':\n // Makes sure the hitting enter key picks up pending values of both `<input>`\n // Workaround for: https://github.com/flatpickr/flatpickr/issues/1942\n fp.setDate(\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- https://github.com/carbon-design-system/carbon/issues/
|
|
1
|
+
{"version":3,"file":"fix-events-plugin.js","sources":["../../../src/components/date-picker/fix-events-plugin.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2019, 2023\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { Instance as FlatpickrInstance } from 'flatpickr/dist/types/instance';\nimport { Plugin } from 'flatpickr/dist/types/options';\nimport on from '../../globals/mixins/on';\nimport Handle from '../../globals/internal/handle';\nimport CDSDatePickerInput from './date-picker-input';\n\n/**\n * The configuration for the Flatpickr plugin to fix Flatpickr's behavior of certain events.\n */\nexport interface DatePickerFixEventsPluginConfig {\n /**\n * The input box to enter starting date.\n */\n inputFrom: CDSDatePickerInput;\n\n /**\n * The input box to enter end date.\n */\n inputTo?: CDSDatePickerInput;\n}\n\n/**\n * `FlatpickrInstance` with additional properties used for `carbonFlatpickrFixEventsPlugin`.\n */\nexport interface ExtendedFlatpickrInstanceFixEventsPlugin\n extends FlatpickrInstance {\n /**\n * The handle for `keydown` event handler in the `<input>` for the starting date.\n */\n _hCDSCEDatePickerFixEventsPluginKeydownFrom?: Handle | null;\n\n /**\n * The handle for `keydown` event handler in the `<input>` for the end date.\n */\n _hCDSCEDatePickerFixEventsPluginKeydownTo?: Handle | null;\n}\n\n/**\n * @param config Plugin configuration.\n * @returns A Flatpickr plugin to fix Flatpickr's behavior of certain events.\n */\nexport default (config: DatePickerFixEventsPluginConfig): Plugin =>\n (fp: ExtendedFlatpickrInstanceFixEventsPlugin) => {\n /**\n * Handles `keydown` event.\n */\n const handleKeydown = (event: KeyboardEvent) => {\n const { inputFrom, inputTo } = config;\n const { key, target } = event;\n if (inputFrom === target || inputTo === target) {\n switch (key) {\n case 'Enter':\n // Makes sure the hitting enter key picks up pending values of both `<input>`\n // Workaround for: https://github.com/flatpickr/flatpickr/issues/1942\n fp.setDate(\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- https://github.com/carbon-design-system/carbon/issues/20452\n [inputFrom.value!, (inputTo && inputTo.value)!],\n true,\n fp.config.dateFormat\n );\n event.stopPropagation();\n break;\n case 'ArrowLeft':\n case 'Left':\n case 'ArrowRight':\n case 'Right':\n // Prevents Flatpickr code from canceling the event if left/right arrow keys are hit on `<input>`,\n // so user can move the keyboard cursor for editing dates\n // Workaround for: https://github.com/flatpickr/flatpickr/issues/1943\n event.stopPropagation();\n break;\n default:\n break;\n }\n }\n };\n\n /**\n * Releases event listeners used in this Flatpickr plugin.\n */\n const release = () => {\n if (fp._hCDSCEDatePickerFixEventsPluginKeydownTo) {\n fp._hCDSCEDatePickerFixEventsPluginKeydownTo =\n fp._hCDSCEDatePickerFixEventsPluginKeydownTo.release();\n }\n if (fp._hCDSCEDatePickerFixEventsPluginKeydownFrom) {\n fp._hCDSCEDatePickerFixEventsPluginKeydownFrom =\n fp._hCDSCEDatePickerFixEventsPluginKeydownFrom.release();\n }\n };\n\n /**\n * Sets up event listeners used for this Flatpickr plugin.\n */\n const init = () => {\n release();\n const { inputFrom, inputTo } = config;\n fp._hCDSCEDatePickerFixEventsPluginKeydownFrom = on(\n inputFrom,\n 'keydown',\n handleKeydown,\n true\n );\n if (inputTo) {\n fp._hCDSCEDatePickerFixEventsPluginKeydownTo = on(\n inputTo,\n 'keydown',\n handleKeydown,\n true\n );\n }\n };\n\n /**\n * Registers this Flatpickr plugin.\n */\n const register = () => {\n fp.loadedPlugins.push('carbonFlatpickrFixEventsPlugin');\n };\n\n return {\n onReady: [register, init],\n onDestroy: [release],\n };\n };\n"],"names":[],"mappings":";;;;;;;;;AAAA;;;;;AAKG;AAuCH;;;AAGG;AACH,sBAAe,CAAC,MAAuC,KACrD,CAAC,EAA4C,KAAI;AAC/C;;AAEG;AACH,IAAA,MAAM,aAAa,GAAG,CAAC,KAAoB,KAAI;AAC7C,QAAA,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,MAAM;AACrC,QAAA,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,KAAK;QAC7B,IAAI,SAAS,KAAK,MAAM,IAAI,OAAO,KAAK,MAAM,EAAE;YAC9C,QAAQ,GAAG;AACT,gBAAA,KAAK,OAAO;;;AAGV,oBAAA,EAAE,CAAC,OAAO;;oBAER,CAAC,SAAS,CAAC,KAAM,GAAG,OAAO,IAAI,OAAO,CAAC,KAAK,EAAG,EAC/C,IAAI,EACJ,EAAE,CAAC,MAAM,CAAC,UAAU,CACrB;oBACD,KAAK,CAAC,eAAe,EAAE;oBACvB;AACF,gBAAA,KAAK,WAAW;AAChB,gBAAA,KAAK,MAAM;AACX,gBAAA,KAAK,YAAY;AACjB,gBAAA,KAAK,OAAO;;;;oBAIV,KAAK,CAAC,eAAe,EAAE;oBACvB;;;AAKR,KAAC;AAED;;AAEG;IACH,MAAM,OAAO,GAAG,MAAK;AACnB,QAAA,IAAI,EAAE,CAAC,yCAAyC,EAAE;AAChD,YAAA,EAAE,CAAC,yCAAyC;AAC1C,gBAAA,EAAE,CAAC,yCAAyC,CAAC,OAAO,EAAE;;AAE1D,QAAA,IAAI,EAAE,CAAC,2CAA2C,EAAE;AAClD,YAAA,EAAE,CAAC,2CAA2C;AAC5C,gBAAA,EAAE,CAAC,2CAA2C,CAAC,OAAO,EAAE;;AAE9D,KAAC;AAED;;AAEG;IACH,MAAM,IAAI,GAAG,MAAK;AAChB,QAAA,OAAO,EAAE;AACT,QAAA,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,MAAM;AACrC,QAAA,EAAE,CAAC,2CAA2C,GAAG,EAAE,CACjD,SAAS,EACT,SAAS,EACT,aAAa,EACb,IAAI,CACL;QACD,IAAI,OAAO,EAAE;AACX,YAAA,EAAE,CAAC,yCAAyC,GAAG,EAAE,CAC/C,OAAO,EACP,SAAS,EACT,aAAa,EACb,IAAI,CACL;;AAEL,KAAC;AAED;;AAEG;IACH,MAAM,QAAQ,GAAG,MAAK;AACpB,QAAA,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,gCAAgC,CAAC;AACzD,KAAC;IAED,OAAO;AACL,QAAA,OAAO,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC;QACzB,SAAS,EAAE,CAAC,OAAO,CAAC;KACrB;AACH,CAAC;;;;"}
|
|
@@ -14,7 +14,7 @@ import on from '../../globals/mixins/on.js';
|
|
|
14
14
|
* This source code is licensed under the Apache-2.0 license found in the
|
|
15
15
|
* LICENSE file in the root directory of this source tree.
|
|
16
16
|
*/
|
|
17
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment -- https://github.com/carbon-design-system/carbon/issues/
|
|
17
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment -- https://github.com/carbon-design-system/carbon/issues/20452
|
|
18
18
|
// @ts-nocheck
|
|
19
19
|
/**
|
|
20
20
|
* @param config Plugin configuration.
|
|
@@ -80,7 +80,7 @@ var rangePlugin = (config) => {
|
|
|
80
80
|
origOnReady.call(this);
|
|
81
81
|
const { ignoredFocusElements } = fp.config;
|
|
82
82
|
ignoredFocusElements.push(...ignoredFocusElements
|
|
83
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- https://github.com/carbon-design-system/carbon/issues/
|
|
83
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- https://github.com/carbon-design-system/carbon/issues/20452
|
|
84
84
|
.map((elem) => elem.shadowRoot)
|
|
85
85
|
.filter(Boolean));
|
|
86
86
|
// Setup event listeners for the blur even on both inputs. In the case
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"range-plugin.js","sources":["../../../src/components/date-picker/range-plugin.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\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment -- https://github.com/carbon-design-system/carbon/issues/
|
|
1
|
+
{"version":3,"file":"range-plugin.js","sources":["../../../src/components/date-picker/range-plugin.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\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment -- https://github.com/carbon-design-system/carbon/issues/20452\n// @ts-nocheck\nimport rangePlugin, { Config } from 'flatpickr/dist/plugins/rangePlugin.js';\nimport { Instance as FlatpickrInstance } from 'flatpickr/dist/types/instance';\nimport { Plugin } from 'flatpickr/dist/types/options';\nimport on from '../../globals/mixins/on';\nimport Handle from '../../globals/internal/handle';\n\n/**\n * `FlatpickrInstance` with additional properties used for `range` plugin.\n */\nexport interface ExtendedFlatpickrInstanceRangePlugin\n extends FlatpickrInstance {\n /**\n * The handle for `blur` event handler for from date range input.\n */\n _hBXCEDatePickerRangePluginOnBlurFrom?: Handle | null;\n\n /**\n * The handle for `blur` event handler for to date range input.\n */\n _hBXCEDatePickerRangePluginOnBlurTo?: Handle | null;\n}\n\n/**\n * @param config Plugin configuration.\n * @returns\n * An extension of Flatpickr `rangePlugin` that does the following:\n *\n * Better ensures the calendar dropdown is always aligned to the `<input>` for the starting date.\n * Workaround for: https://github.com/flatpickr/flatpickr/issues/1944\n * Disables the logic in Flatpickr `rangePlugin` that calculates the new range with the old selected date\n * when user selects a date from calendar dropdown.\n * We'd like to reset the selection when user re-opens calendar dropdown and re-selects a date.\n * Workaround for: https://github.com/flatpickr/flatpickr/issues/1958\n * Disables the logic in Flatpickr `rangePlugin` that closes the calendar dropdown\n * when it's launched from the `<input>` for the end date and user selects a date.\n * Workaround for: https://github.com/flatpickr/flatpickr/issues/1958\n * Ensures that the `<input>` in shadow DOM is treated as part of Flatpickr UI,\n * by ensuring such `<input>` hits `.contains()` search from `fp.config.ignoredFocusElements`.\n * Without that, Flatpickr clears the `<input>` when end date hasn't been selected yet (which we don't want).\n */\nexport default (config: Config): Plugin => {\n const factory = rangePlugin({ position: 'left', ...config });\n return (fp: ExtendedFlatpickrInstanceRangePlugin) => {\n const origRangePlugin = factory(fp);\n const { onReady: origOnReady } = origRangePlugin;\n\n const getDateStrFromInputs = (dates: Array<string>) => {\n return dates\n .filter((value) => value)\n .filter(\n (d, i, arr) =>\n fp.config.mode !== 'range' ||\n fp.config.enableTime ||\n arr.indexOf(d) === i\n )\n .join(\n fp.config.mode !== 'range'\n ? fp.config.conjunction\n : fp.l10n.rangeSeparator\n );\n };\n\n const handleBlur = (event: FocusEvent) => {\n event.stopPropagation();\n const firstInput = fp._input;\n const secondInput = config.input as HTMLInputElement;\n const isInput =\n event.target === firstInput || event.target === secondInput;\n const valueChanged =\n getDateStrFromInputs([firstInput.value, secondInput.value]) !==\n fp.getDateStr();\n const relatedTargetIsCalendar =\n event.relatedTarget &&\n event.relatedTarget instanceof Node &&\n fp.calendarContainer.contains(event.relatedTarget);\n\n if (isInput && valueChanged && !relatedTargetIsCalendar) {\n fp.setDate(\n [firstInput.value, secondInput.value],\n true,\n firstInput === fp.altInput\n ? fp.config.altFormat\n : fp.config.dateFormat\n );\n }\n };\n\n const release = () => {\n if (fp._hBXCEDatePickerRangePluginOnBlurFrom) {\n fp._hBXCEDatePickerRangePluginOnBlurFrom =\n fp._hBXCEDatePickerRangePluginOnBlurFrom.release();\n }\n if (fp._hBXCEDatePickerRangePluginOnBlurTo) {\n fp._hBXCEDatePickerRangePluginOnBlurTo =\n fp._hBXCEDatePickerRangePluginOnBlurTo.release();\n }\n };\n return Object.assign(origRangePlugin, {\n onReady() {\n origOnReady.call(this);\n const { ignoredFocusElements } = fp.config;\n ignoredFocusElements.push(\n ...ignoredFocusElements\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- https://github.com/carbon-design-system/carbon/issues/20452\n .map((elem) => elem.shadowRoot as any)\n .filter(Boolean)\n );\n\n // Setup event listeners for the blur even on both inputs. In the case\n // of the first input, we're overriding the blur event handler from\n // the library to fix it by setting it on the capture phase and then\n // stopping propagation. This is necessary b/c the library does not take\n // the range plugin into consideration when it calls setDate.\n // Workaround for: https://github.com/flatpickr/flatpickr/issues/2918\n release();\n if (fp.config.allowInput) {\n fp._hBXCEDatePickerRangePluginOnBlurFrom = on(\n fp._input,\n 'blur',\n handleBlur,\n { capture: true }\n );\n fp._hBXCEDatePickerRangePluginOnBlurTo = on(\n config.input as HTMLInputElement,\n 'blur',\n handleBlur,\n { capture: true }\n );\n }\n },\n });\n };\n};\n"],"names":["rangePlugin"],"mappings":"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"}
|
|
@@ -63,9 +63,9 @@ const adjustDate = (localDate, { date: moveDate = 0 }) => {
|
|
|
63
63
|
*/
|
|
64
64
|
var shadowDOMEventPlugin = () => (fp) => {
|
|
65
65
|
const getDateElem = (localDate) => find(
|
|
66
|
-
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- https://github.com/carbon-design-system/carbon/issues/
|
|
66
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- https://github.com/carbon-design-system/carbon/issues/20452
|
|
67
67
|
fp.daysContainer.firstElementChild.children,
|
|
68
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- https://github.com/carbon-design-system/carbon/issues/
|
|
68
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- https://github.com/carbon-design-system/carbon/issues/20452
|
|
69
69
|
({ dateObj }) => localDate.getTime() === dateObj.getTime());
|
|
70
70
|
/**
|
|
71
71
|
* Handles `keydown` event.
|
|
@@ -73,13 +73,13 @@ var shadowDOMEventPlugin = () => (fp) => {
|
|
|
73
73
|
const handleKeydown = (event) => {
|
|
74
74
|
const { ctrlKey, key, target } = event;
|
|
75
75
|
if (key === 'Enter') {
|
|
76
|
-
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- https://github.com/carbon-design-system/carbon/issues/
|
|
76
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- https://github.com/carbon-design-system/carbon/issues/20452
|
|
77
77
|
target.dispatchEvent(Object.assign(new CustomEvent('mousedown', { bubbles: true }), {
|
|
78
78
|
which: 1,
|
|
79
79
|
}));
|
|
80
80
|
}
|
|
81
81
|
else if (!ctrlKey && key in moveDateForKeys) {
|
|
82
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- https://github.com/carbon-design-system/carbon/issues/
|
|
82
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- https://github.com/carbon-design-system/carbon/issues/20452
|
|
83
83
|
const { dateObj } = target;
|
|
84
84
|
const movedDate = adjustDate(dateObj, { date: moveDateForKeys[key] });
|
|
85
85
|
const movedDateElem = getDateElem(movedDate);
|
|
@@ -87,22 +87,22 @@ var shadowDOMEventPlugin = () => (fp) => {
|
|
|
87
87
|
movedDateElem.focus();
|
|
88
88
|
}
|
|
89
89
|
else {
|
|
90
|
-
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- https://github.com/carbon-design-system/carbon/issues/
|
|
90
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- https://github.com/carbon-design-system/carbon/issues/20452
|
|
91
91
|
const innerDaysContainer = fp.daysContainer.firstElementChild;
|
|
92
92
|
if (movedDate.getTime() <
|
|
93
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- https://github.com/carbon-design-system/carbon/issues/
|
|
93
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- https://github.com/carbon-design-system/carbon/issues/20452
|
|
94
94
|
innerDaysContainer.firstElementChild.dateObj.getTime()) {
|
|
95
95
|
fp.changeMonth(-1);
|
|
96
96
|
// `fp.daysContainer` is updated by `fp.changeMonth()`
|
|
97
|
-
fp.daysContainer.firstElementChild // eslint-disable-line @typescript-eslint/no-non-null-assertion -- https://github.com/carbon-design-system/carbon/issues/
|
|
97
|
+
fp.daysContainer.firstElementChild // eslint-disable-line @typescript-eslint/no-non-null-assertion -- https://github.com/carbon-design-system/carbon/issues/20452
|
|
98
98
|
.lastElementChild.focus();
|
|
99
99
|
}
|
|
100
100
|
else if (movedDate.getTime() >
|
|
101
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- https://github.com/carbon-design-system/carbon/issues/
|
|
101
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- https://github.com/carbon-design-system/carbon/issues/20452
|
|
102
102
|
innerDaysContainer.lastElementChild.dateObj.getTime()) {
|
|
103
103
|
fp.changeMonth(1);
|
|
104
104
|
// `fp.daysContainer` is updated by `fp.changeMonth()`
|
|
105
|
-
fp.daysContainer.firstElementChild // eslint-disable-line @typescript-eslint/no-non-null-assertion -- https://github.com/carbon-design-system/carbon/issues/
|
|
105
|
+
fp.daysContainer.firstElementChild // eslint-disable-line @typescript-eslint/no-non-null-assertion -- https://github.com/carbon-design-system/carbon/issues/20452
|
|
106
106
|
.firstElementChild.focus();
|
|
107
107
|
}
|
|
108
108
|
}
|
|
@@ -110,7 +110,7 @@ var shadowDOMEventPlugin = () => (fp) => {
|
|
|
110
110
|
}
|
|
111
111
|
else if (ctrlKey && key in moveMonthForKeys) {
|
|
112
112
|
fp.changeMonth(moveMonthForKeys[key]);
|
|
113
|
-
fp.daysContainer.firstElementChild.firstElementChild // eslint-disable-line @typescript-eslint/no-non-null-assertion -- https://github.com/carbon-design-system/carbon/issues/
|
|
113
|
+
fp.daysContainer.firstElementChild.firstElementChild // eslint-disable-line @typescript-eslint/no-non-null-assertion -- https://github.com/carbon-design-system/carbon/issues/20452
|
|
114
114
|
.focus();
|
|
115
115
|
event.preventDefault();
|
|
116
116
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shadow-dom-events-plugin.js","sources":["../../../src/components/date-picker/shadow-dom-events-plugin.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 { Instance as FlatpickrInstance } from 'flatpickr/dist/types/instance';\nimport { Plugin } from 'flatpickr/dist/types/options';\nimport on from '../../globals/mixins/on';\nimport Handle from '../../globals/internal/handle';\nimport { find } from '../../globals/internal/collection-helpers';\n\n/**\n * `FlatpickrInstance` with additional properties used for `carbonFlatpickrShadowDOMEventsPlugin`.\n */\nexport interface ExtendedFlatpickrInstanceShadowDOMEventsPlugin\n extends FlatpickrInstance {\n /**\n * The handle for `keydown` event handler in calendar dropdown.\n */\n _hCDSCEDatePickerShadowDOMEventsPluginKeydown?: Handle | null;\n}\n\n/**\n * The amount of days to adjust, keyed by the key code.\n */\nconst moveDateForKeys = {\n ArrowLeft: -1,\n Left: -1,\n ArrowUp: -7,\n Up: -7,\n ArrowRight: 1,\n Right: 1,\n ArrowDown: 7,\n Down: 7,\n};\n\n/**\n * The amount of months to adjust, keyed by the key code. Used with Ctrl modifier key.\n */\nconst moveMonthForKeys = {\n ArrowLeft: -1,\n Left: -1,\n ArrowUp: -12,\n Up: -12,\n ArrowRight: 1,\n Right: 1,\n ArrowDown: 12,\n Down: 12,\n};\n\n/**\n * The number of milliseconds per day.\n */\nconst MILLISECONDS_IN_DAY = 86400000;\n\n/**\n * Adjusts the date with the given amount of days.\n *\n * @param localDate The original date.\n * @param options The options.\n * @param [options.date=0] The amount of days to adjust.\n */\nconst adjustDate = (\n localDate: Date,\n { date: moveDate = 0 }: { date?: number }\n) => {\n const utcDate = new Date(\n Date.UTC(\n localDate.getFullYear(),\n localDate.getMonth(),\n localDate.getDate()\n ) +\n moveDate * MILLISECONDS_IN_DAY\n );\n return new Date(\n utcDate.getUTCFullYear(),\n utcDate.getUTCMonth(),\n utcDate.getUTCDate()\n );\n};\n\n/**\n * @returns\n * A Flatpickr plugin to handle events.\n * Some event handlers in Flatpickr won't work is the calendar dropdown is put in shadow DOM, due to event retargetting.\n */\nexport default (): Plugin =>\n (fp: ExtendedFlatpickrInstanceShadowDOMEventsPlugin) => {\n const getDateElem = (localDate) =>\n find(\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- https://github.com/carbon-design-system/carbon/issues/
|
|
1
|
+
{"version":3,"file":"shadow-dom-events-plugin.js","sources":["../../../src/components/date-picker/shadow-dom-events-plugin.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 { Instance as FlatpickrInstance } from 'flatpickr/dist/types/instance';\nimport { Plugin } from 'flatpickr/dist/types/options';\nimport on from '../../globals/mixins/on';\nimport Handle from '../../globals/internal/handle';\nimport { find } from '../../globals/internal/collection-helpers';\n\n/**\n * `FlatpickrInstance` with additional properties used for `carbonFlatpickrShadowDOMEventsPlugin`.\n */\nexport interface ExtendedFlatpickrInstanceShadowDOMEventsPlugin\n extends FlatpickrInstance {\n /**\n * The handle for `keydown` event handler in calendar dropdown.\n */\n _hCDSCEDatePickerShadowDOMEventsPluginKeydown?: Handle | null;\n}\n\n/**\n * The amount of days to adjust, keyed by the key code.\n */\nconst moveDateForKeys = {\n ArrowLeft: -1,\n Left: -1,\n ArrowUp: -7,\n Up: -7,\n ArrowRight: 1,\n Right: 1,\n ArrowDown: 7,\n Down: 7,\n};\n\n/**\n * The amount of months to adjust, keyed by the key code. Used with Ctrl modifier key.\n */\nconst moveMonthForKeys = {\n ArrowLeft: -1,\n Left: -1,\n ArrowUp: -12,\n Up: -12,\n ArrowRight: 1,\n Right: 1,\n ArrowDown: 12,\n Down: 12,\n};\n\n/**\n * The number of milliseconds per day.\n */\nconst MILLISECONDS_IN_DAY = 86400000;\n\n/**\n * Adjusts the date with the given amount of days.\n *\n * @param localDate The original date.\n * @param options The options.\n * @param [options.date=0] The amount of days to adjust.\n */\nconst adjustDate = (\n localDate: Date,\n { date: moveDate = 0 }: { date?: number }\n) => {\n const utcDate = new Date(\n Date.UTC(\n localDate.getFullYear(),\n localDate.getMonth(),\n localDate.getDate()\n ) +\n moveDate * MILLISECONDS_IN_DAY\n );\n return new Date(\n utcDate.getUTCFullYear(),\n utcDate.getUTCMonth(),\n utcDate.getUTCDate()\n );\n};\n\n/**\n * @returns\n * A Flatpickr plugin to handle events.\n * Some event handlers in Flatpickr won't work is the calendar dropdown is put in shadow DOM, due to event retargetting.\n */\nexport default (): Plugin =>\n (fp: ExtendedFlatpickrInstanceShadowDOMEventsPlugin) => {\n const getDateElem = (localDate) =>\n find(\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- https://github.com/carbon-design-system/carbon/issues/20452\n fp.daysContainer!.firstElementChild!.children,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- https://github.com/carbon-design-system/carbon/issues/20452\n ({ dateObj }: any) => localDate.getTime() === dateObj.getTime()\n );\n\n /**\n * Handles `keydown` event.\n */\n const handleKeydown = (event: KeyboardEvent) => {\n const { ctrlKey, key, target } = event;\n if (key === 'Enter') {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- https://github.com/carbon-design-system/carbon/issues/20452\n target!.dispatchEvent(\n Object.assign(new CustomEvent('mousedown', { bubbles: true }), {\n which: 1,\n })\n );\n } else if (!ctrlKey && key in moveDateForKeys) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- https://github.com/carbon-design-system/carbon/issues/20452\n const { dateObj } = target as any;\n const movedDate = adjustDate(dateObj, { date: moveDateForKeys[key] });\n const movedDateElem = getDateElem(movedDate);\n if (movedDateElem) {\n movedDateElem.focus();\n } else {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- https://github.com/carbon-design-system/carbon/issues/20452\n const innerDaysContainer = fp.daysContainer!.firstElementChild!;\n if (\n movedDate.getTime() <\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- https://github.com/carbon-design-system/carbon/issues/20452\n (innerDaysContainer.firstElementChild as any).dateObj.getTime()\n ) {\n fp.changeMonth(-1);\n // `fp.daysContainer` is updated by `fp.changeMonth()`\n (\n fp.daysContainer!.firstElementChild! // eslint-disable-line @typescript-eslint/no-non-null-assertion -- https://github.com/carbon-design-system/carbon/issues/20452\n .lastElementChild as HTMLElement\n ).focus();\n } else if (\n movedDate.getTime() >\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- https://github.com/carbon-design-system/carbon/issues/20452\n (innerDaysContainer.lastElementChild as any).dateObj.getTime()\n ) {\n fp.changeMonth(1);\n // `fp.daysContainer` is updated by `fp.changeMonth()`\n (\n fp.daysContainer!.firstElementChild! // eslint-disable-line @typescript-eslint/no-non-null-assertion -- https://github.com/carbon-design-system/carbon/issues/20452\n .firstElementChild as HTMLElement\n ).focus();\n }\n }\n event.preventDefault();\n } else if (ctrlKey && key in moveMonthForKeys) {\n fp.changeMonth(moveMonthForKeys[key]);\n (fp.daysContainer!.firstElementChild!.firstElementChild as HTMLElement) // eslint-disable-line @typescript-eslint/no-non-null-assertion -- https://github.com/carbon-design-system/carbon/issues/20452\n .focus();\n event.preventDefault();\n }\n };\n\n /**\n * Releases event listeners used in this Flatpickr plugin.\n */\n const release = () => {\n if (fp._hCDSCEDatePickerShadowDOMEventsPluginKeydown) {\n fp._hCDSCEDatePickerShadowDOMEventsPluginKeydown =\n fp._hCDSCEDatePickerShadowDOMEventsPluginKeydown.release();\n }\n };\n\n /**\n * Sets up event listeners used for this Flatpickr plugin.\n */\n const init = () => {\n release();\n fp._hCDSCEDatePickerShadowDOMEventsPluginKeydown = on(\n fp.calendarContainer,\n 'keydown',\n handleKeydown\n );\n };\n\n /**\n * Registers this Flatpickr plugin.\n */\n const register = () => {\n fp.loadedPlugins.push('carbonFlatpickrShadowDOMEventsPlugin');\n };\n\n return {\n onReady: [register, init],\n onDestroy: [release],\n };\n };\n"],"names":[],"mappings":"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"}
|
|
@@ -81,7 +81,7 @@ let CDSDropdownItem = class CDSDropdownItem extends LitElement {
|
|
|
81
81
|
_handleSlotChange({ target }) {
|
|
82
82
|
var _a;
|
|
83
83
|
const text = target.assignedNodes().filter(
|
|
84
|
-
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- https://github.com/carbon-design-system/carbon/issues/
|
|
84
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- https://github.com/carbon-design-system/carbon/issues/20452
|
|
85
85
|
(node) => node.nodeType !== Node.TEXT_NODE || node.textContent.trim());
|
|
86
86
|
const textContainer = (_a = this.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector(`.${prefix}--list-box__menu-item__option`);
|
|
87
87
|
if (!textContainer || this._hasEllipsisApplied === true)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dropdown-item.js","sources":["../../../src/components/dropdown/dropdown-item.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 { LitElement, html } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nimport { prefix } from '../../globals/settings';\nimport { iconLoader } from '../../globals/internal/icon-loader';\nimport Checkmark16 from '@carbon/icons/es/checkmark/16.js';\nimport { DROPDOWN_SIZE } from './dropdown';\nimport styles from './dropdown.scss?lit';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\n/**\n * Dropdown item.\n *\n * @element cds-dropdown-item\n * @csspart selected-icon The selected icon.\n */\n@customElement(`${prefix}-dropdown-item`)\nclass CDSDropdownItem extends LitElement {\n /**\n * `true` if this dropdown item should be disabled.\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * `true` if this dropdown item should be highlighted.\n * If `true`, parent `<dropdown>` selects/deselects this dropdown item upon keyboard interaction.\n *\n * @private\n */\n @property({ type: Boolean, reflect: true })\n highlighted = false;\n\n /**\n * `true` if this dropdown item should be selected.\n *\n * @private\n */\n @property({ type: Boolean, reflect: true })\n selected = false;\n\n /**\n * Dropdown size.\n */\n @property({ reflect: true })\n size = DROPDOWN_SIZE.MEDIUM;\n\n /**\n * The `value` attribute that is set to the parent `<cds-dropdown>` when this dropdown item is selected.\n */\n @property()\n value = '';\n\n /**\n * true if menu item has ellipsis applied\n */\n @state()\n _hasEllipsisApplied = false;\n\n connectedCallback() {\n super.connectedCallback();\n if (!this.hasAttribute('role')) {\n this.setAttribute('role', 'option');\n }\n if (!this.hasAttribute('id')) {\n this.setAttribute(\n 'id',\n `${prefix}-dropdown-item-${(this.constructor as typeof CDSDropdownItem)\n .id++}`\n );\n }\n this.setAttribute('aria-selected', String(this.selected));\n }\n\n /**\n * Handles `slotchange` event.\n *\n * Adds the `title` property to its parent element so the native\n * browser tooltip appears for menu items that result in ellipsis\n */\n protected _handleSlotChange({ target }: Event) {\n const text = (target as HTMLSlotElement).assignedNodes().filter(\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- https://github.com/carbon-design-system/carbon/issues/
|
|
1
|
+
{"version":3,"file":"dropdown-item.js","sources":["../../../src/components/dropdown/dropdown-item.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 { LitElement, html } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nimport { prefix } from '../../globals/settings';\nimport { iconLoader } from '../../globals/internal/icon-loader';\nimport Checkmark16 from '@carbon/icons/es/checkmark/16.js';\nimport { DROPDOWN_SIZE } from './dropdown';\nimport styles from './dropdown.scss?lit';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\n/**\n * Dropdown item.\n *\n * @element cds-dropdown-item\n * @csspart selected-icon The selected icon.\n */\n@customElement(`${prefix}-dropdown-item`)\nclass CDSDropdownItem extends LitElement {\n /**\n * `true` if this dropdown item should be disabled.\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * `true` if this dropdown item should be highlighted.\n * If `true`, parent `<dropdown>` selects/deselects this dropdown item upon keyboard interaction.\n *\n * @private\n */\n @property({ type: Boolean, reflect: true })\n highlighted = false;\n\n /**\n * `true` if this dropdown item should be selected.\n *\n * @private\n */\n @property({ type: Boolean, reflect: true })\n selected = false;\n\n /**\n * Dropdown size.\n */\n @property({ reflect: true })\n size = DROPDOWN_SIZE.MEDIUM;\n\n /**\n * The `value` attribute that is set to the parent `<cds-dropdown>` when this dropdown item is selected.\n */\n @property()\n value = '';\n\n /**\n * true if menu item has ellipsis applied\n */\n @state()\n _hasEllipsisApplied = false;\n\n connectedCallback() {\n super.connectedCallback();\n if (!this.hasAttribute('role')) {\n this.setAttribute('role', 'option');\n }\n if (!this.hasAttribute('id')) {\n this.setAttribute(\n 'id',\n `${prefix}-dropdown-item-${(this.constructor as typeof CDSDropdownItem)\n .id++}`\n );\n }\n this.setAttribute('aria-selected', String(this.selected));\n }\n\n /**\n * Handles `slotchange` event.\n *\n * Adds the `title` property to its parent element so the native\n * browser tooltip appears for menu items that result in ellipsis\n */\n protected _handleSlotChange({ target }: Event) {\n const text = (target as HTMLSlotElement).assignedNodes().filter(\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- https://github.com/carbon-design-system/carbon/issues/20452\n (node) => node.nodeType !== Node.TEXT_NODE || node!.textContent!.trim()\n );\n\n const textContainer = this.shadowRoot?.querySelector(\n `.${prefix}--list-box__menu-item__option`\n );\n\n if (!textContainer || this._hasEllipsisApplied === true) return;\n\n const observer = new ResizeObserver(() => {\n this._hasEllipsisApplied =\n textContainer.scrollWidth > textContainer.clientWidth;\n\n if (this._hasEllipsisApplied) {\n textContainer.setAttribute('title', text[0].textContent ?? '');\n }\n });\n\n observer.observe(textContainer);\n }\n\n render() {\n const { selected, _handleSlotChange: handleSlotChange } = this;\n return html`\n <div class=\"${prefix}--list-box__menu-item__option\" part=\"menu-item\">\n <slot @slotchange=${handleSlotChange}></slot>\n ${!selected\n ? undefined\n : iconLoader(Checkmark16, {\n part: 'selected-icon',\n class: `${prefix}--list-box__menu-item__selected-icon`,\n })}\n </div>\n `;\n }\n\n /**\n * Store an identifier for use in composing this item's id.\n *\n * Auto-increments anytime a new dropdown-item appears.\n */\n static id = 0;\n\n static styles = styles;\n}\n\nexport default CDSDropdownItem;\n"],"names":["customElement"],"mappings":"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"}
|
|
@@ -191,7 +191,7 @@ let CDSDropdown = class CDSDropdown extends ValidityMixin(HostListenerMixin(Form
|
|
|
191
191
|
if (this.readOnly) {
|
|
192
192
|
return;
|
|
193
193
|
}
|
|
194
|
-
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- https://github.com/carbon-design-system/carbon/issues/
|
|
194
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- https://github.com/carbon-design-system/carbon/issues/20452
|
|
195
195
|
if (this.shadowRoot.contains(event.target)) {
|
|
196
196
|
this._handleUserInitiatedToggle();
|
|
197
197
|
}
|
|
@@ -370,7 +370,7 @@ let CDSDropdown = class CDSDropdown extends ValidityMixin(HostListenerMixin(Form
|
|
|
370
370
|
const constructor = this.constructor;
|
|
371
371
|
const items = this.querySelectorAll(constructor.selectorItem);
|
|
372
372
|
const highlightedItem = this.querySelector(constructor.selectorItemHighlighted);
|
|
373
|
-
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- https://github.com/carbon-design-system/carbon/issues/
|
|
373
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- https://github.com/carbon-design-system/carbon/issues/20452
|
|
374
374
|
const highlightedIndex = indexOf(items, highlightedItem);
|
|
375
375
|
let nextIndex = highlightedIndex + direction;
|
|
376
376
|
if ((_a = items[nextIndex]) === null || _a === void 0 ? void 0 : _a.hasAttribute('disabled')) {
|
|
@@ -398,7 +398,7 @@ let CDSDropdown = class CDSDropdown extends ValidityMixin(HostListenerMixin(Form
|
|
|
398
398
|
/**
|
|
399
399
|
* @returns The content preceding the trigger button.
|
|
400
400
|
*/
|
|
401
|
-
// eslint-disable-next-line @typescript-eslint/no-invalid-void-type -- https://github.com/carbon-design-system/carbon/issues/
|
|
401
|
+
// eslint-disable-next-line @typescript-eslint/no-invalid-void-type -- https://github.com/carbon-design-system/carbon/issues/20452
|
|
402
402
|
_renderPrecedingLabel() {
|
|
403
403
|
return undefined;
|
|
404
404
|
}
|
|
@@ -441,7 +441,7 @@ let CDSDropdown = class CDSDropdown extends ValidityMixin(HostListenerMixin(Form
|
|
|
441
441
|
/**
|
|
442
442
|
* @returns The content following the trigger button.
|
|
443
443
|
*/
|
|
444
|
-
// eslint-disable-next-line @typescript-eslint/no-invalid-void-type -- https://github.com/carbon-design-system/carbon/issues/
|
|
444
|
+
// eslint-disable-next-line @typescript-eslint/no-invalid-void-type -- https://github.com/carbon-design-system/carbon/issues/20452
|
|
445
445
|
_renderFollowingLabel() {
|
|
446
446
|
return undefined;
|
|
447
447
|
}
|
|
@@ -491,7 +491,7 @@ let CDSDropdown = class CDSDropdown extends ValidityMixin(HostListenerMixin(Form
|
|
|
491
491
|
});
|
|
492
492
|
const item = find(this.querySelectorAll(selectorItem), (elem) => elem.value === this.value);
|
|
493
493
|
if (item) {
|
|
494
|
-
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- https://github.com/carbon-design-system/carbon/issues/
|
|
494
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- https://github.com/carbon-design-system/carbon/issues/20452
|
|
495
495
|
const range = this.ownerDocument.createRange();
|
|
496
496
|
range.selectNodeContents(item);
|
|
497
497
|
this._selectedItemContent = range.cloneContents();
|
|
@@ -505,7 +505,7 @@ let CDSDropdown = class CDSDropdown extends ValidityMixin(HostListenerMixin(Form
|
|
|
505
505
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
506
506
|
updated(_changedProperties) {
|
|
507
507
|
var _a, _b, _c, _d, _e;
|
|
508
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-expressions -- https://github.com/carbon-design-system/carbon/issues/
|
|
508
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-expressions -- https://github.com/carbon-design-system/carbon/issues/20452
|
|
509
509
|
this._hasAILabel
|
|
510
510
|
? this.setAttribute('ai-label', '')
|
|
511
511
|
: this.removeAttribute('ai-label');
|
|
@@ -520,7 +520,7 @@ let CDSDropdown = class CDSDropdown extends ValidityMixin(HostListenerMixin(Form
|
|
|
520
520
|
/**
|
|
521
521
|
* The CSS class list for dropdown listbox
|
|
522
522
|
*/
|
|
523
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- https://github.com/carbon-design-system/carbon/issues/
|
|
523
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- https://github.com/carbon-design-system/carbon/issues/20452
|
|
524
524
|
get _classes() {
|
|
525
525
|
const { disabled, size, type, invalid, open, warn } = this;
|
|
526
526
|
const inline = type === DROPDOWN_TYPE.INLINE;
|
|
@@ -724,7 +724,7 @@ __decorate([
|
|
|
724
724
|
], CDSDropdown.prototype, "_slotTitleTextNode", void 0);
|
|
725
725
|
__decorate([
|
|
726
726
|
HostListener('focusout')
|
|
727
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment -- https://github.com/carbon-design-system/carbon/issues/
|
|
727
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment -- https://github.com/carbon-design-system/carbon/issues/20452
|
|
728
728
|
// @ts-ignore: The decorator refers to this method but TS thinks this method is not referred to
|
|
729
729
|
], CDSDropdown.prototype, "_handleFocusOut", null);
|
|
730
730
|
__decorate([
|