@infineon/infineon-design-system-stencil 37.4.1--canary.1723.20aa14de714201b254aaf31a0daf8258349d096d.0 → 37.4.1--canary.1962.d99402e47a30d63875011931a45602d82ca31449.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/framework-detection-39905fc2.js +155 -0
- package/dist/cjs/framework-detection-39905fc2.js.map +1 -0
- package/dist/cjs/ifx-accordion_2.cjs.entry.js +4 -4
- package/dist/cjs/ifx-accordion_2.cjs.entry.js.map +1 -1
- package/dist/cjs/ifx-alert_2.cjs.entry.js +4 -2
- package/dist/cjs/ifx-alert_2.cjs.entry.js.map +1 -1
- package/dist/cjs/ifx-badge.cjs.entry.js +4 -4
- package/dist/cjs/ifx-badge.cjs.entry.js.map +1 -1
- package/dist/cjs/ifx-basic-table.cjs.entry.js +7 -7
- package/dist/cjs/ifx-basic-table.cjs.entry.js.map +1 -1
- package/dist/cjs/ifx-breadcrumb.cjs.entry.js +4 -6
- package/dist/cjs/ifx-breadcrumb.cjs.entry.js.map +1 -1
- package/dist/cjs/ifx-button.cjs.entry.js +5 -3
- package/dist/cjs/ifx-button.cjs.entry.js.map +1 -1
- package/dist/cjs/ifx-card.cjs.entry.js +7 -5
- package/dist/cjs/ifx-card.cjs.entry.js.map +1 -1
- package/dist/cjs/ifx-checkbox-group.cjs.entry.js +5 -3
- package/dist/cjs/ifx-checkbox-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ifx-checkbox.cjs.entry.js +7 -5
- package/dist/cjs/ifx-checkbox.cjs.entry.js.map +1 -1
- package/dist/cjs/ifx-chip_3.cjs.entry.js +18 -16
- package/dist/cjs/ifx-chip_3.cjs.entry.js.map +1 -1
- package/dist/cjs/ifx-content-switcher.cjs.entry.js +5 -3
- package/dist/cjs/ifx-content-switcher.cjs.entry.js.map +1 -1
- package/dist/cjs/ifx-date-picker.cjs.entry.js +5 -7
- package/dist/cjs/ifx-date-picker.cjs.entry.js.map +1 -1
- package/dist/cjs/ifx-dropdown.cjs.entry.js +5 -3
- package/dist/cjs/ifx-dropdown.cjs.entry.js.map +1 -1
- package/dist/cjs/ifx-file-upload.cjs.entry.js +5 -7
- package/dist/cjs/ifx-file-upload.cjs.entry.js.map +1 -1
- package/dist/cjs/ifx-footer.cjs.entry.js +8 -6
- package/dist/cjs/ifx-footer.cjs.entry.js.map +1 -1
- package/dist/cjs/ifx-icon-button.cjs.entry.js +5 -3
- package/dist/cjs/ifx-icon-button.cjs.entry.js.map +1 -1
- package/dist/cjs/ifx-icon.cjs.entry.js +5 -3
- package/dist/cjs/ifx-icon.cjs.entry.js.map +1 -1
- package/dist/cjs/ifx-indicator.cjs.entry.js +6 -4
- package/dist/cjs/ifx-indicator.cjs.entry.js.map +1 -1
- package/dist/cjs/ifx-link.cjs.entry.js +4 -4
- package/dist/cjs/ifx-link.cjs.entry.js.map +1 -1
- package/dist/cjs/ifx-modal.cjs.entry.js +5 -7
- package/dist/cjs/ifx-modal.cjs.entry.js.map +1 -1
- package/dist/cjs/ifx-multiselect_2.cjs.entry.js +6 -6
- package/dist/cjs/ifx-multiselect_2.cjs.entry.js.map +1 -1
- package/dist/cjs/ifx-navbar.cjs.entry.js +7 -7
- package/dist/cjs/ifx-navbar.cjs.entry.js.map +1 -1
- package/dist/cjs/ifx-notification.cjs.entry.js +5 -5
- package/dist/cjs/ifx-notification.cjs.entry.js.map +1 -1
- package/dist/cjs/ifx-progress-bar.cjs.entry.js +6 -4
- package/dist/cjs/ifx-progress-bar.cjs.entry.js.map +1 -1
- package/dist/cjs/ifx-radio-button-group.cjs.entry.js +6 -4
- package/dist/cjs/ifx-radio-button-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ifx-radio-button.cjs.entry.js +9 -7
- package/dist/cjs/ifx-radio-button.cjs.entry.js.map +1 -1
- package/dist/cjs/ifx-search-bar.cjs.entry.js +7 -5
- package/dist/cjs/ifx-search-bar.cjs.entry.js.map +1 -1
- package/dist/cjs/ifx-search-field.cjs.entry.js +4 -4
- package/dist/cjs/ifx-search-field.cjs.entry.js.map +1 -1
- package/dist/cjs/ifx-segmented-control.cjs.entry.js +5 -7
- package/dist/cjs/ifx-segmented-control.cjs.entry.js.map +1 -1
- package/dist/cjs/ifx-select.cjs.entry.js +8 -8
- package/dist/cjs/ifx-select.cjs.entry.js.map +1 -1
- package/dist/cjs/ifx-sidebar.cjs.entry.js +9 -9
- package/dist/cjs/ifx-sidebar.cjs.entry.js.map +1 -1
- package/dist/cjs/ifx-slider.cjs.entry.js +8 -8
- package/dist/cjs/ifx-slider.cjs.entry.js.map +1 -1
- package/dist/cjs/ifx-spinner_2.cjs.entry.js +13 -11
- package/dist/cjs/ifx-spinner_2.cjs.entry.js.map +1 -1
- package/dist/cjs/ifx-status.cjs.entry.js +4 -4
- package/dist/cjs/ifx-status.cjs.entry.js.map +1 -1
- package/dist/cjs/ifx-stepper.cjs.entry.js +8 -8
- package/dist/cjs/ifx-stepper.cjs.entry.js.map +1 -1
- package/dist/cjs/ifx-switch.cjs.entry.js +7 -7
- package/dist/cjs/ifx-switch.cjs.entry.js.map +1 -1
- package/dist/cjs/ifx-table.cjs.entry.js +8 -8
- package/dist/cjs/ifx-table.cjs.entry.js.map +1 -1
- package/dist/cjs/ifx-tabs.cjs.entry.js +8 -8
- package/dist/cjs/ifx-tabs.cjs.entry.js.map +1 -1
- package/dist/cjs/ifx-tag.cjs.entry.js +4 -4
- package/dist/cjs/ifx-tag.cjs.entry.js.map +1 -1
- package/dist/cjs/ifx-textarea.cjs.entry.js +6 -4
- package/dist/cjs/ifx-textarea.cjs.entry.js.map +1 -1
- package/dist/cjs/ifx-tooltip.cjs.entry.js +10 -10
- package/dist/cjs/ifx-tooltip.cjs.entry.js.map +1 -1
- package/dist/cjs/ifx-tree-view.cjs.entry.js +4 -4
- package/dist/cjs/ifx-tree-view.cjs.entry.js.map +1 -1
- package/dist/collection/components/accordion/accordion.js +3 -3
- package/dist/collection/components/accordion/accordion.js.map +1 -1
- package/dist/collection/components/alert/alert.js +3 -1
- package/dist/collection/components/alert/alert.js.map +1 -1
- package/dist/collection/components/badge/badge.js +3 -3
- package/dist/collection/components/badge/badge.js.map +1 -1
- package/dist/collection/components/breadcrumb/breadcrumb.js +3 -5
- package/dist/collection/components/breadcrumb/breadcrumb.js.map +1 -1
- package/dist/collection/components/button/button.js +4 -2
- package/dist/collection/components/button/button.js.map +1 -1
- package/dist/collection/components/card/card.js +6 -4
- package/dist/collection/components/card/card.js.map +1 -1
- package/dist/collection/components/checkbox/checkbox.js +6 -4
- package/dist/collection/components/checkbox/checkbox.js.map +1 -1
- package/dist/collection/components/checkbox-group/checkbox-group.js +4 -2
- package/dist/collection/components/checkbox-group/checkbox-group.js.map +1 -1
- package/dist/collection/components/chip/chip.js +11 -9
- package/dist/collection/components/chip/chip.js.map +1 -1
- package/dist/collection/components/content-switcher/content-switcher.js +4 -2
- package/dist/collection/components/content-switcher/content-switcher.js.map +1 -1
- package/dist/collection/components/date-picker/date-picker.js +4 -6
- package/dist/collection/components/date-picker/date-picker.js.map +1 -1
- package/dist/collection/components/dropdown/dropdown.js +4 -2
- package/dist/collection/components/dropdown/dropdown.js.map +1 -1
- package/dist/collection/components/file-upload/file-upload.js +4 -6
- package/dist/collection/components/file-upload/file-upload.js.map +1 -1
- package/dist/collection/components/footer/footer.js +7 -5
- package/dist/collection/components/footer/footer.js.map +1 -1
- package/dist/collection/components/icon/infineonIconStencil.js +4 -2
- package/dist/collection/components/icon/infineonIconStencil.js.map +1 -1
- package/dist/collection/components/icon-button/icon-button.js +4 -2
- package/dist/collection/components/icon-button/icon-button.js.map +1 -1
- package/dist/collection/components/indicator/indicator.js +5 -3
- package/dist/collection/components/indicator/indicator.js.map +1 -1
- package/dist/collection/components/link/link.js +3 -3
- package/dist/collection/components/link/link.js.map +1 -1
- package/dist/collection/components/modal/modal.js +4 -6
- package/dist/collection/components/modal/modal.js.map +1 -1
- package/dist/collection/components/navigation/navbar/navbar.js +6 -6
- package/dist/collection/components/navigation/navbar/navbar.js.map +1 -1
- package/dist/collection/components/navigation/sidebar/sidebar.js +8 -8
- package/dist/collection/components/navigation/sidebar/sidebar.js.map +1 -1
- package/dist/collection/components/notification/notification.js +4 -4
- package/dist/collection/components/notification/notification.js.map +1 -1
- package/dist/collection/components/pagination/pagination.js +6 -6
- package/dist/collection/components/pagination/pagination.js.map +1 -1
- package/dist/collection/components/progress-bar/progress-bar.js +5 -3
- package/dist/collection/components/progress-bar/progress-bar.js.map +1 -1
- package/dist/collection/components/radio-button/radio-button.js +8 -6
- package/dist/collection/components/radio-button/radio-button.js.map +1 -1
- package/dist/collection/components/radio-button-group/radio-button-group.js +5 -3
- package/dist/collection/components/radio-button-group/radio-button-group.js.map +1 -1
- package/dist/collection/components/search-bar/search-bar.js +6 -4
- package/dist/collection/components/search-bar/search-bar.js.map +1 -1
- package/dist/collection/components/search-field/search-field.js +3 -3
- package/dist/collection/components/search-field/search-field.js.map +1 -1
- package/dist/collection/components/segmented-control/segmented-control.js +4 -6
- package/dist/collection/components/segmented-control/segmented-control.js.map +1 -1
- package/dist/collection/components/select/multi-select/multiselect.js +5 -5
- package/dist/collection/components/select/multi-select/multiselect.js.map +1 -1
- package/dist/collection/components/select/single-select/select.js +7 -7
- package/dist/collection/components/select/single-select/select.js.map +1 -1
- package/dist/collection/components/slider/slider.js +7 -7
- package/dist/collection/components/slider/slider.js.map +1 -1
- package/dist/collection/components/spinner/spinner.js +4 -4
- package/dist/collection/components/spinner/spinner.js.map +1 -1
- package/dist/collection/components/status/status.js +3 -3
- package/dist/collection/components/status/status.js.map +1 -1
- package/dist/collection/components/stepper/stepper.js +7 -7
- package/dist/collection/components/stepper/stepper.js.map +1 -1
- package/dist/collection/components/switch/switch.js +6 -6
- package/dist/collection/components/switch/switch.js.map +1 -1
- package/dist/collection/components/table-advanced-version/table.js +7 -7
- package/dist/collection/components/table-advanced-version/table.js.map +1 -1
- package/dist/collection/components/table-basic-version/table.js +6 -6
- package/dist/collection/components/table-basic-version/table.js.map +1 -1
- package/dist/collection/components/tabs/tabs.js +7 -7
- package/dist/collection/components/tabs/tabs.js.map +1 -1
- package/dist/collection/components/tag/tag.js +3 -3
- package/dist/collection/components/tag/tag.js.map +1 -1
- package/dist/collection/components/text-field/text-field.js +8 -6
- package/dist/collection/components/text-field/text-field.js.map +1 -1
- package/dist/collection/components/textarea/textarea.js +5 -3
- package/dist/collection/components/textarea/textarea.js.map +1 -1
- package/dist/collection/components/tooltip/tooltip.js +9 -9
- package/dist/collection/components/tooltip/tooltip.js.map +1 -1
- package/dist/collection/components/tree-view/tree-view.js +3 -3
- package/dist/collection/components/tree-view/tree-view.js.map +1 -1
- package/dist/collection/global/utils/dom-ready.js +15 -0
- package/dist/collection/global/utils/dom-ready.js.map +1 -0
- package/dist/collection/global/utils/framework-detection.js +58 -33
- package/dist/collection/global/utils/framework-detection.js.map +1 -1
- package/dist/collection/global/utils/tracking.js +26 -3
- package/dist/collection/global/utils/tracking.js.map +1 -1
- package/dist/components/ifx-accordion-item.js +1 -1
- package/dist/components/ifx-accordion.js +1 -1
- package/dist/components/ifx-alert.js +1 -1
- package/dist/components/ifx-badge.js +4 -4
- package/dist/components/ifx-badge.js.map +1 -1
- package/dist/components/ifx-basic-table.js +7 -7
- package/dist/components/ifx-basic-table.js.map +1 -1
- package/dist/components/ifx-breadcrumb-item-label.js +1 -1
- package/dist/components/ifx-breadcrumb.js +4 -6
- package/dist/components/ifx-breadcrumb.js.map +1 -1
- package/dist/components/ifx-button.js +1 -1
- package/dist/components/ifx-card.js +7 -5
- package/dist/components/ifx-card.js.map +1 -1
- package/dist/components/ifx-checkbox-group.js +6 -4
- package/dist/components/ifx-checkbox-group.js.map +1 -1
- package/dist/components/ifx-checkbox.js +1 -1
- package/dist/components/ifx-chip-item.js +1 -1
- package/dist/components/ifx-chip.js +1 -1
- package/dist/components/ifx-content-switcher.js +5 -3
- package/dist/components/ifx-content-switcher.js.map +1 -1
- package/dist/components/ifx-date-picker.js +6 -8
- package/dist/components/ifx-date-picker.js.map +1 -1
- package/dist/components/ifx-download.js +1 -1
- package/dist/components/ifx-dropdown-item.js +1 -1
- package/dist/components/ifx-dropdown-trigger-button.js +2 -2
- package/dist/components/ifx-dropdown.js +5 -3
- package/dist/components/ifx-dropdown.js.map +1 -1
- package/dist/components/ifx-faq.js +3 -3
- package/dist/components/ifx-file-upload.js +9 -11
- package/dist/components/ifx-file-upload.js.map +1 -1
- package/dist/components/ifx-filter-accordion.js +2 -2
- package/dist/components/ifx-filter-bar.js +2 -2
- package/dist/components/ifx-filter-search.js +2 -2
- package/dist/components/ifx-footer.js +8 -6
- package/dist/components/ifx-footer.js.map +1 -1
- package/dist/components/ifx-icon-button.js +1 -1
- package/dist/components/ifx-icon.js +1 -1
- package/dist/components/ifx-icons-preview.js +4 -4
- package/dist/components/ifx-indicator.js +1 -1
- package/dist/components/ifx-link.js +1 -1
- package/dist/components/ifx-list-entry.js +3 -3
- package/dist/components/ifx-list.js +2 -2
- package/dist/components/ifx-modal.js +7 -9
- package/dist/components/ifx-modal.js.map +1 -1
- package/dist/components/ifx-multiselect-option.js +1 -1
- package/dist/components/ifx-multiselect.js +1 -1
- package/dist/components/ifx-navbar-item.js +2 -2
- package/dist/components/ifx-navbar.js +8 -8
- package/dist/components/ifx-navbar.js.map +1 -1
- package/dist/components/ifx-notification.js +1 -1
- package/dist/components/ifx-overview-table.js +3 -3
- package/dist/components/ifx-pagination.js +1 -1
- package/dist/components/ifx-progress-bar.js +1 -1
- package/dist/components/ifx-radio-button-group.js +7 -5
- package/dist/components/ifx-radio-button-group.js.map +1 -1
- package/dist/components/ifx-radio-button.js +1 -1
- package/dist/components/ifx-search-bar.js +9 -7
- package/dist/components/ifx-search-bar.js.map +1 -1
- package/dist/components/ifx-search-field.js +1 -1
- package/dist/components/ifx-segment.js +1 -1
- package/dist/components/ifx-segmented-control.js +6 -8
- package/dist/components/ifx-segmented-control.js.map +1 -1
- package/dist/components/ifx-select.js +1 -1
- package/dist/components/ifx-set-filter.js +7 -7
- package/dist/components/ifx-sidebar-item.js +2 -2
- package/dist/components/ifx-sidebar.js +9 -9
- package/dist/components/ifx-sidebar.js.map +1 -1
- package/dist/components/ifx-slider.js +9 -9
- package/dist/components/ifx-slider.js.map +1 -1
- package/dist/components/ifx-spinner.js +1 -1
- package/dist/components/ifx-status.js +4 -4
- package/dist/components/ifx-status.js.map +1 -1
- package/dist/components/ifx-step.js +1 -1
- package/dist/components/ifx-stepper.js +8 -8
- package/dist/components/ifx-stepper.js.map +1 -1
- package/dist/components/ifx-switch.js +7 -7
- package/dist/components/ifx-switch.js.map +1 -1
- package/dist/components/ifx-table.js +17 -17
- package/dist/components/ifx-table.js.map +1 -1
- package/dist/components/ifx-tabs.js +9 -9
- package/dist/components/ifx-tabs.js.map +1 -1
- package/dist/components/ifx-tag.js +5 -5
- package/dist/components/ifx-tag.js.map +1 -1
- package/dist/components/ifx-template.js +1 -1
- package/dist/components/ifx-templates-ui.js +8 -8
- package/dist/components/ifx-text-field.js +1 -1
- package/dist/components/ifx-textarea.js +6 -4
- package/dist/components/ifx-textarea.js.map +1 -1
- package/dist/components/ifx-tooltip.js +11 -11
- package/dist/components/ifx-tooltip.js.map +1 -1
- package/dist/components/ifx-tree-view-item.js +2 -2
- package/dist/components/ifx-tree-view.js +4 -4
- package/dist/components/ifx-tree-view.js.map +1 -1
- package/dist/components/p-08c92877.js +152 -0
- package/dist/components/p-08c92877.js.map +1 -0
- package/dist/components/{p-58b34e7f.js → p-17dcae95.js} +2 -2
- package/dist/components/{p-58b34e7f.js.map → p-17dcae95.js.map} +1 -1
- package/dist/components/{p-554fc743.js → p-213e359c.js} +7 -5
- package/dist/components/p-213e359c.js.map +1 -0
- package/dist/components/{p-80bd74d1.js → p-2d712043.js} +5 -5
- package/dist/components/p-2d712043.js.map +1 -0
- package/dist/components/{p-39116717.js → p-33d2bbd3.js} +6 -4
- package/dist/components/p-33d2bbd3.js.map +1 -0
- package/dist/components/{p-d1692201.js → p-4366492e.js} +3 -3
- package/dist/components/{p-d1692201.js.map → p-4366492e.js.map} +1 -1
- package/dist/components/{p-2ddcc02e.js → p-46f5d4b5.js} +10 -10
- package/dist/components/p-46f5d4b5.js.map +1 -0
- package/dist/components/{p-ecd4fa31.js → p-47ff96df.js} +15 -13
- package/dist/components/p-47ff96df.js.map +1 -0
- package/dist/components/{p-ed0f491c.js → p-4f7fbf98.js} +6 -6
- package/dist/components/p-4f7fbf98.js.map +1 -0
- package/dist/components/{p-6f1114a1.js → p-60294bc5.js} +10 -10
- package/dist/components/p-60294bc5.js.map +1 -0
- package/dist/components/{p-88385a57.js → p-612f4440.js} +7 -5
- package/dist/components/p-612f4440.js.map +1 -0
- package/dist/components/{p-b695e1f1.js → p-627ff0cb.js} +6 -4
- package/dist/components/p-627ff0cb.js.map +1 -0
- package/dist/components/{p-e7f270c1.js → p-6462dfec.js} +6 -4
- package/dist/components/p-6462dfec.js.map +1 -0
- package/dist/components/{p-65c39c71.js → p-6c5a97b1.js} +3 -3
- package/dist/components/{p-65c39c71.js.map → p-6c5a97b1.js.map} +1 -1
- package/dist/components/{p-29a39b8c.js → p-76f13a4a.js} +5 -5
- package/dist/components/p-76f13a4a.js.map +1 -0
- package/dist/components/{p-9bc468b4.js → p-a96d43ef.js} +6 -6
- package/dist/components/{p-9bc468b4.js.map → p-a96d43ef.js.map} +1 -1
- package/dist/components/{p-63e4dfb7.js → p-b56aae98.js} +11 -9
- package/dist/components/p-b56aae98.js.map +1 -0
- package/dist/components/{p-4c62f9ef.js → p-bf74ceb8.js} +6 -6
- package/dist/components/p-bf74ceb8.js.map +1 -0
- package/dist/components/{p-353138d9.js → p-c2ab000f.js} +11 -11
- package/dist/components/p-c2ab000f.js.map +1 -0
- package/dist/components/{p-bfd161fb.js → p-ca7642c5.js} +10 -8
- package/dist/components/p-ca7642c5.js.map +1 -0
- package/dist/components/{p-45c73d0e.js → p-de8f0703.js} +8 -8
- package/dist/components/p-de8f0703.js.map +1 -0
- package/dist/components/{p-af53698c.js → p-e59e03ff.js} +9 -7
- package/dist/components/p-e59e03ff.js.map +1 -0
- package/dist/components/{p-bb9b541f.js → p-f27f2aad.js} +7 -5
- package/dist/components/p-f27f2aad.js.map +1 -0
- package/dist/esm/framework-detection-1487baf5.js +152 -0
- package/dist/esm/framework-detection-1487baf5.js.map +1 -0
- package/dist/esm/ifx-accordion_2.entry.js +4 -4
- package/dist/esm/ifx-accordion_2.entry.js.map +1 -1
- package/dist/esm/ifx-alert_2.entry.js +4 -2
- package/dist/esm/ifx-alert_2.entry.js.map +1 -1
- package/dist/esm/ifx-badge.entry.js +4 -4
- package/dist/esm/ifx-badge.entry.js.map +1 -1
- package/dist/esm/ifx-basic-table.entry.js +7 -7
- package/dist/esm/ifx-basic-table.entry.js.map +1 -1
- package/dist/esm/ifx-breadcrumb.entry.js +4 -6
- package/dist/esm/ifx-breadcrumb.entry.js.map +1 -1
- package/dist/esm/ifx-button.entry.js +5 -3
- package/dist/esm/ifx-button.entry.js.map +1 -1
- package/dist/esm/ifx-card.entry.js +7 -5
- package/dist/esm/ifx-card.entry.js.map +1 -1
- package/dist/esm/ifx-checkbox-group.entry.js +5 -3
- package/dist/esm/ifx-checkbox-group.entry.js.map +1 -1
- package/dist/esm/ifx-checkbox.entry.js +7 -5
- package/dist/esm/ifx-checkbox.entry.js.map +1 -1
- package/dist/esm/ifx-chip_3.entry.js +18 -16
- package/dist/esm/ifx-chip_3.entry.js.map +1 -1
- package/dist/esm/ifx-content-switcher.entry.js +5 -3
- package/dist/esm/ifx-content-switcher.entry.js.map +1 -1
- package/dist/esm/ifx-date-picker.entry.js +5 -7
- package/dist/esm/ifx-date-picker.entry.js.map +1 -1
- package/dist/esm/ifx-dropdown.entry.js +5 -3
- package/dist/esm/ifx-dropdown.entry.js.map +1 -1
- package/dist/esm/ifx-file-upload.entry.js +5 -7
- package/dist/esm/ifx-file-upload.entry.js.map +1 -1
- package/dist/esm/ifx-footer.entry.js +8 -6
- package/dist/esm/ifx-footer.entry.js.map +1 -1
- package/dist/esm/ifx-icon-button.entry.js +5 -3
- package/dist/esm/ifx-icon-button.entry.js.map +1 -1
- package/dist/esm/ifx-icon.entry.js +5 -3
- package/dist/esm/ifx-icon.entry.js.map +1 -1
- package/dist/esm/ifx-indicator.entry.js +6 -4
- package/dist/esm/ifx-indicator.entry.js.map +1 -1
- package/dist/esm/ifx-link.entry.js +4 -4
- package/dist/esm/ifx-link.entry.js.map +1 -1
- package/dist/esm/ifx-modal.entry.js +5 -7
- package/dist/esm/ifx-modal.entry.js.map +1 -1
- package/dist/esm/ifx-multiselect_2.entry.js +6 -6
- package/dist/esm/ifx-multiselect_2.entry.js.map +1 -1
- package/dist/esm/ifx-navbar.entry.js +7 -7
- package/dist/esm/ifx-navbar.entry.js.map +1 -1
- package/dist/esm/ifx-notification.entry.js +5 -5
- package/dist/esm/ifx-notification.entry.js.map +1 -1
- package/dist/esm/ifx-progress-bar.entry.js +6 -4
- package/dist/esm/ifx-progress-bar.entry.js.map +1 -1
- package/dist/esm/ifx-radio-button-group.entry.js +6 -4
- package/dist/esm/ifx-radio-button-group.entry.js.map +1 -1
- package/dist/esm/ifx-radio-button.entry.js +9 -7
- package/dist/esm/ifx-radio-button.entry.js.map +1 -1
- package/dist/esm/ifx-search-bar.entry.js +7 -5
- package/dist/esm/ifx-search-bar.entry.js.map +1 -1
- package/dist/esm/ifx-search-field.entry.js +4 -4
- package/dist/esm/ifx-search-field.entry.js.map +1 -1
- package/dist/esm/ifx-segmented-control.entry.js +5 -7
- package/dist/esm/ifx-segmented-control.entry.js.map +1 -1
- package/dist/esm/ifx-select.entry.js +8 -8
- package/dist/esm/ifx-select.entry.js.map +1 -1
- package/dist/esm/ifx-sidebar.entry.js +9 -9
- package/dist/esm/ifx-sidebar.entry.js.map +1 -1
- package/dist/esm/ifx-slider.entry.js +8 -8
- package/dist/esm/ifx-slider.entry.js.map +1 -1
- package/dist/esm/ifx-spinner_2.entry.js +13 -11
- package/dist/esm/ifx-spinner_2.entry.js.map +1 -1
- package/dist/esm/ifx-status.entry.js +4 -4
- package/dist/esm/ifx-status.entry.js.map +1 -1
- package/dist/esm/ifx-stepper.entry.js +8 -8
- package/dist/esm/ifx-stepper.entry.js.map +1 -1
- package/dist/esm/ifx-switch.entry.js +7 -7
- package/dist/esm/ifx-switch.entry.js.map +1 -1
- package/dist/esm/ifx-table.entry.js +8 -8
- package/dist/esm/ifx-table.entry.js.map +1 -1
- package/dist/esm/ifx-tabs.entry.js +8 -8
- package/dist/esm/ifx-tabs.entry.js.map +1 -1
- package/dist/esm/ifx-tag.entry.js +4 -4
- package/dist/esm/ifx-tag.entry.js.map +1 -1
- package/dist/esm/ifx-textarea.entry.js +6 -4
- package/dist/esm/ifx-textarea.entry.js.map +1 -1
- package/dist/esm/ifx-tooltip.entry.js +10 -10
- package/dist/esm/ifx-tooltip.entry.js.map +1 -1
- package/dist/esm/ifx-tree-view.entry.js +4 -4
- package/dist/esm/ifx-tree-view.entry.js.map +1 -1
- package/dist/infineon-design-system-stencil/infineon-design-system-stencil.esm.js +1 -1
- package/dist/infineon-design-system-stencil/{p-51a70ef9.entry.js → p-012129b3.entry.js} +2 -2
- package/dist/infineon-design-system-stencil/{p-51a70ef9.entry.js.map → p-012129b3.entry.js.map} +1 -1
- package/dist/infineon-design-system-stencil/p-01dd9ab5.entry.js +2 -0
- package/dist/infineon-design-system-stencil/p-01dd9ab5.entry.js.map +1 -0
- package/dist/infineon-design-system-stencil/p-08c92877.js +2 -0
- package/dist/infineon-design-system-stencil/p-08c92877.js.map +1 -0
- package/dist/infineon-design-system-stencil/{p-29f36497.entry.js → p-0d8a16ab.entry.js} +2 -2
- package/dist/infineon-design-system-stencil/p-0d8a16ab.entry.js.map +1 -0
- package/dist/infineon-design-system-stencil/p-26863a9f.entry.js +2 -0
- package/dist/infineon-design-system-stencil/p-26863a9f.entry.js.map +1 -0
- package/dist/infineon-design-system-stencil/p-28bd7e9d.entry.js +2 -0
- package/dist/infineon-design-system-stencil/p-28bd7e9d.entry.js.map +1 -0
- package/dist/infineon-design-system-stencil/p-2facce0d.entry.js +2 -0
- package/dist/infineon-design-system-stencil/p-2facce0d.entry.js.map +1 -0
- package/dist/infineon-design-system-stencil/p-3b22661a.entry.js +2 -0
- package/dist/infineon-design-system-stencil/p-3b22661a.entry.js.map +1 -0
- package/dist/infineon-design-system-stencil/{p-61ddb367.entry.js → p-4097932f.entry.js} +2 -2
- package/dist/infineon-design-system-stencil/p-4097932f.entry.js.map +1 -0
- package/dist/infineon-design-system-stencil/p-4e633224.entry.js +2 -0
- package/dist/infineon-design-system-stencil/p-4e633224.entry.js.map +1 -0
- package/dist/infineon-design-system-stencil/{p-77cbcda1.entry.js → p-54e6a8d8.entry.js} +2 -2
- package/dist/infineon-design-system-stencil/{p-77cbcda1.entry.js.map → p-54e6a8d8.entry.js.map} +1 -1
- package/dist/infineon-design-system-stencil/{p-5976c2b0.entry.js → p-577289c5.entry.js} +2 -2
- package/dist/infineon-design-system-stencil/p-577289c5.entry.js.map +1 -0
- package/dist/infineon-design-system-stencil/p-5df65d62.entry.js +2 -0
- package/dist/infineon-design-system-stencil/p-5df65d62.entry.js.map +1 -0
- package/dist/infineon-design-system-stencil/p-5ecccc37.entry.js +2 -0
- package/dist/infineon-design-system-stencil/p-5ecccc37.entry.js.map +1 -0
- package/dist/infineon-design-system-stencil/{p-0b4463ab.entry.js → p-5f5b1808.entry.js} +2 -2
- package/dist/infineon-design-system-stencil/p-5f5b1808.entry.js.map +1 -0
- package/dist/infineon-design-system-stencil/{p-507107be.entry.js → p-64ad0475.entry.js} +2 -2
- package/dist/infineon-design-system-stencil/p-64ad0475.entry.js.map +1 -0
- package/dist/infineon-design-system-stencil/{p-5c2386f1.entry.js → p-67c9a9c0.entry.js} +3 -3
- package/dist/infineon-design-system-stencil/{p-5c2386f1.entry.js.map → p-67c9a9c0.entry.js.map} +1 -1
- package/dist/infineon-design-system-stencil/{p-754c7267.entry.js → p-68f56cf8.entry.js} +2 -2
- package/dist/infineon-design-system-stencil/p-68f56cf8.entry.js.map +1 -0
- package/dist/infineon-design-system-stencil/p-6a3029da.entry.js +2 -0
- package/dist/infineon-design-system-stencil/p-6a3029da.entry.js.map +1 -0
- package/dist/infineon-design-system-stencil/p-7311a88d.entry.js +2 -0
- package/dist/infineon-design-system-stencil/p-7311a88d.entry.js.map +1 -0
- package/dist/infineon-design-system-stencil/p-7322471e.entry.js +2 -0
- package/dist/infineon-design-system-stencil/p-7322471e.entry.js.map +1 -0
- package/dist/infineon-design-system-stencil/p-81b6afb3.entry.js +2 -0
- package/dist/infineon-design-system-stencil/p-81b6afb3.entry.js.map +1 -0
- package/dist/infineon-design-system-stencil/{p-9f4f024a.entry.js → p-8a72f8dc.entry.js} +2 -2
- package/dist/infineon-design-system-stencil/p-8a72f8dc.entry.js.map +1 -0
- package/dist/infineon-design-system-stencil/{p-7097e349.entry.js → p-91212f3d.entry.js} +2 -2
- package/dist/infineon-design-system-stencil/p-91212f3d.entry.js.map +1 -0
- package/dist/infineon-design-system-stencil/p-9176214d.entry.js +2 -0
- package/dist/infineon-design-system-stencil/p-9176214d.entry.js.map +1 -0
- package/dist/infineon-design-system-stencil/{p-8f3c079e.entry.js → p-966548e9.entry.js} +2 -2
- package/dist/infineon-design-system-stencil/p-966548e9.entry.js.map +1 -0
- package/dist/infineon-design-system-stencil/p-9675a12a.entry.js +2 -0
- package/dist/infineon-design-system-stencil/p-9675a12a.entry.js.map +1 -0
- package/dist/infineon-design-system-stencil/{p-13ae34b7.entry.js → p-98ab1c07.entry.js} +2 -2
- package/dist/infineon-design-system-stencil/p-98ab1c07.entry.js.map +1 -0
- package/dist/infineon-design-system-stencil/{p-a1d02e8e.entry.js → p-9beae589.entry.js} +2 -2
- package/dist/infineon-design-system-stencil/p-9beae589.entry.js.map +1 -0
- package/dist/infineon-design-system-stencil/p-a3514856.entry.js +2 -0
- package/dist/infineon-design-system-stencil/p-a3514856.entry.js.map +1 -0
- package/dist/infineon-design-system-stencil/{p-89b4ee40.entry.js → p-a37a61e0.entry.js} +2 -2
- package/dist/infineon-design-system-stencil/p-a37a61e0.entry.js.map +1 -0
- package/dist/infineon-design-system-stencil/p-a799d7df.entry.js +2 -0
- package/dist/infineon-design-system-stencil/p-a799d7df.entry.js.map +1 -0
- package/dist/infineon-design-system-stencil/{p-2a4642d0.entry.js → p-b4caad8b.entry.js} +2 -2
- package/dist/infineon-design-system-stencil/p-b4caad8b.entry.js.map +1 -0
- package/dist/infineon-design-system-stencil/{p-44a61708.entry.js → p-bc8806e6.entry.js} +2 -2
- package/dist/infineon-design-system-stencil/{p-44a61708.entry.js.map → p-bc8806e6.entry.js.map} +1 -1
- package/dist/infineon-design-system-stencil/p-c5a68671.entry.js +2 -0
- package/dist/infineon-design-system-stencil/p-c5a68671.entry.js.map +1 -0
- package/dist/infineon-design-system-stencil/p-c5de05c9.entry.js +2 -0
- package/dist/infineon-design-system-stencil/p-c5de05c9.entry.js.map +1 -0
- package/dist/infineon-design-system-stencil/p-cf7cf03b.entry.js +2 -0
- package/dist/infineon-design-system-stencil/p-cf7cf03b.entry.js.map +1 -0
- package/dist/infineon-design-system-stencil/p-d5200119.entry.js +2 -0
- package/dist/infineon-design-system-stencil/p-d5200119.entry.js.map +1 -0
- package/dist/infineon-design-system-stencil/{p-c3acb336.entry.js → p-daca9ec0.entry.js} +2 -2
- package/dist/infineon-design-system-stencil/p-daca9ec0.entry.js.map +1 -0
- package/dist/infineon-design-system-stencil/p-e5e7a3d5.entry.js +2 -0
- package/dist/infineon-design-system-stencil/p-e5e7a3d5.entry.js.map +1 -0
- package/dist/infineon-design-system-stencil/p-e9241ef3.entry.js +2 -0
- package/dist/infineon-design-system-stencil/p-e9241ef3.entry.js.map +1 -0
- package/dist/infineon-design-system-stencil/{p-bba99322.entry.js → p-fb954440.entry.js} +2 -2
- package/dist/infineon-design-system-stencil/p-fb954440.entry.js.map +1 -0
- package/dist/infineon-design-system-stencil/{p-431d50b8.entry.js → p-ffd08fd5.entry.js} +2 -2
- package/dist/infineon-design-system-stencil/p-ffd08fd5.entry.js.map +1 -0
- package/dist/types/components/accordion/accordion.d.ts +1 -1
- package/dist/types/components/alert/alert.d.ts +1 -0
- package/dist/types/components/badge/badge.d.ts +1 -1
- package/dist/types/components/breadcrumb/breadcrumb.d.ts +1 -2
- package/dist/types/components/button/button.d.ts +1 -0
- package/dist/types/components/card/card.d.ts +1 -0
- package/dist/types/components/checkbox/checkbox.d.ts +1 -0
- package/dist/types/components/checkbox-group/checkbox-group.d.ts +1 -0
- package/dist/types/components/chip/chip.d.ts +1 -0
- package/dist/types/components/content-switcher/content-switcher.d.ts +1 -0
- package/dist/types/components/date-picker/date-picker.d.ts +1 -2
- package/dist/types/components/dropdown/dropdown.d.ts +1 -0
- package/dist/types/components/file-upload/file-upload.d.ts +1 -2
- package/dist/types/components/footer/footer.d.ts +1 -0
- package/dist/types/components/icon/infineonIconStencil.d.ts +1 -0
- package/dist/types/components/icon-button/icon-button.d.ts +1 -0
- package/dist/types/components/indicator/indicator.d.ts +1 -0
- package/dist/types/components/link/link.d.ts +1 -1
- package/dist/types/components/modal/modal.d.ts +1 -2
- package/dist/types/components/navigation/navbar/navbar.d.ts +1 -1
- package/dist/types/components/navigation/sidebar/sidebar.d.ts +1 -1
- package/dist/types/components/notification/notification.d.ts +1 -1
- package/dist/types/components/pagination/pagination.d.ts +1 -1
- package/dist/types/components/progress-bar/progress-bar.d.ts +1 -0
- package/dist/types/components/radio-button/radio-button.d.ts +1 -0
- package/dist/types/components/radio-button-group/radio-button-group.d.ts +1 -0
- package/dist/types/components/search-bar/search-bar.d.ts +1 -0
- package/dist/types/components/search-field/search-field.d.ts +1 -1
- package/dist/types/components/segmented-control/segmented-control.d.ts +1 -2
- package/dist/types/components/select/multi-select/multiselect.d.ts +1 -1
- package/dist/types/components/select/single-select/select.d.ts +1 -1
- package/dist/types/components/slider/slider.d.ts +1 -1
- package/dist/types/components/spinner/spinner.d.ts +1 -1
- package/dist/types/components/status/status.d.ts +1 -1
- package/dist/types/components/stepper/stepper.d.ts +1 -1
- package/dist/types/components/switch/switch.d.ts +1 -1
- package/dist/types/components/table-advanced-version/table.d.ts +1 -1
- package/dist/types/components/table-basic-version/table.d.ts +1 -1
- package/dist/types/components/tabs/tabs.d.ts +1 -1
- package/dist/types/components/tag/tag.d.ts +1 -1
- package/dist/types/components/text-field/text-field.d.ts +1 -0
- package/dist/types/components/textarea/textarea.d.ts +1 -0
- package/dist/types/components/tooltip/tooltip.d.ts +1 -1
- package/dist/types/components/tree-view/tree-view.d.ts +1 -1
- package/dist/types/global/utils/dom-ready.d.ts +1 -0
- package/dist/types/global/utils/framework-detection.d.ts +1 -1
- package/dist/types/global/utils/tracking.d.ts +1 -0
- package/package.json +1 -1
- package/dist/cjs/framework-detection-78986016.js +0 -93
- package/dist/cjs/framework-detection-78986016.js.map +0 -1
- package/dist/components/p-29a39b8c.js.map +0 -1
- package/dist/components/p-2ddcc02e.js.map +0 -1
- package/dist/components/p-353138d9.js.map +0 -1
- package/dist/components/p-39116717.js.map +0 -1
- package/dist/components/p-45c73d0e.js.map +0 -1
- package/dist/components/p-4c62f9ef.js.map +0 -1
- package/dist/components/p-554fc743.js.map +0 -1
- package/dist/components/p-63e4dfb7.js.map +0 -1
- package/dist/components/p-6f1114a1.js.map +0 -1
- package/dist/components/p-80bd74d1.js.map +0 -1
- package/dist/components/p-88385a57.js.map +0 -1
- package/dist/components/p-af53698c.js.map +0 -1
- package/dist/components/p-b695e1f1.js.map +0 -1
- package/dist/components/p-bb9b541f.js.map +0 -1
- package/dist/components/p-bfd161fb.js.map +0 -1
- package/dist/components/p-e7f270c1.js.map +0 -1
- package/dist/components/p-e8504e6b.js +0 -90
- package/dist/components/p-e8504e6b.js.map +0 -1
- package/dist/components/p-ecd4fa31.js.map +0 -1
- package/dist/components/p-ed0f491c.js.map +0 -1
- package/dist/esm/framework-detection-198a17af.js +0 -90
- package/dist/esm/framework-detection-198a17af.js.map +0 -1
- package/dist/infineon-design-system-stencil/p-0b4463ab.entry.js.map +0 -1
- package/dist/infineon-design-system-stencil/p-0feebdea.entry.js +0 -2
- package/dist/infineon-design-system-stencil/p-0feebdea.entry.js.map +0 -1
- package/dist/infineon-design-system-stencil/p-13ae34b7.entry.js.map +0 -1
- package/dist/infineon-design-system-stencil/p-218c8275.entry.js +0 -2
- package/dist/infineon-design-system-stencil/p-218c8275.entry.js.map +0 -1
- package/dist/infineon-design-system-stencil/p-24fa4b84.entry.js +0 -2
- package/dist/infineon-design-system-stencil/p-24fa4b84.entry.js.map +0 -1
- package/dist/infineon-design-system-stencil/p-29f36497.entry.js.map +0 -1
- package/dist/infineon-design-system-stencil/p-2a4642d0.entry.js.map +0 -1
- package/dist/infineon-design-system-stencil/p-2b6fa7ea.entry.js +0 -2
- package/dist/infineon-design-system-stencil/p-2b6fa7ea.entry.js.map +0 -1
- package/dist/infineon-design-system-stencil/p-40be6362.entry.js +0 -2
- package/dist/infineon-design-system-stencil/p-40be6362.entry.js.map +0 -1
- package/dist/infineon-design-system-stencil/p-431d50b8.entry.js.map +0 -1
- package/dist/infineon-design-system-stencil/p-47e35811.entry.js +0 -2
- package/dist/infineon-design-system-stencil/p-47e35811.entry.js.map +0 -1
- package/dist/infineon-design-system-stencil/p-486f1f73.entry.js +0 -2
- package/dist/infineon-design-system-stencil/p-486f1f73.entry.js.map +0 -1
- package/dist/infineon-design-system-stencil/p-507107be.entry.js.map +0 -1
- package/dist/infineon-design-system-stencil/p-5976c2b0.entry.js.map +0 -1
- package/dist/infineon-design-system-stencil/p-5f433868.entry.js +0 -2
- package/dist/infineon-design-system-stencil/p-5f433868.entry.js.map +0 -1
- package/dist/infineon-design-system-stencil/p-61ddb367.entry.js.map +0 -1
- package/dist/infineon-design-system-stencil/p-6417bc5b.entry.js +0 -2
- package/dist/infineon-design-system-stencil/p-6417bc5b.entry.js.map +0 -1
- package/dist/infineon-design-system-stencil/p-7097e349.entry.js.map +0 -1
- package/dist/infineon-design-system-stencil/p-74190965.entry.js +0 -2
- package/dist/infineon-design-system-stencil/p-74190965.entry.js.map +0 -1
- package/dist/infineon-design-system-stencil/p-754c7267.entry.js.map +0 -1
- package/dist/infineon-design-system-stencil/p-7f9e8260.entry.js +0 -2
- package/dist/infineon-design-system-stencil/p-7f9e8260.entry.js.map +0 -1
- package/dist/infineon-design-system-stencil/p-816d8d89.entry.js +0 -2
- package/dist/infineon-design-system-stencil/p-816d8d89.entry.js.map +0 -1
- package/dist/infineon-design-system-stencil/p-89b4ee40.entry.js.map +0 -1
- package/dist/infineon-design-system-stencil/p-8f3c079e.entry.js.map +0 -1
- package/dist/infineon-design-system-stencil/p-97c37974.entry.js +0 -2
- package/dist/infineon-design-system-stencil/p-97c37974.entry.js.map +0 -1
- package/dist/infineon-design-system-stencil/p-9e9f166d.entry.js +0 -2
- package/dist/infineon-design-system-stencil/p-9e9f166d.entry.js.map +0 -1
- package/dist/infineon-design-system-stencil/p-9f4f024a.entry.js.map +0 -1
- package/dist/infineon-design-system-stencil/p-a1d02e8e.entry.js.map +0 -1
- package/dist/infineon-design-system-stencil/p-b1f276a9.entry.js +0 -2
- package/dist/infineon-design-system-stencil/p-b1f276a9.entry.js.map +0 -1
- package/dist/infineon-design-system-stencil/p-b51937f3.entry.js +0 -2
- package/dist/infineon-design-system-stencil/p-b51937f3.entry.js.map +0 -1
- package/dist/infineon-design-system-stencil/p-b7c74d53.entry.js +0 -2
- package/dist/infineon-design-system-stencil/p-b7c74d53.entry.js.map +0 -1
- package/dist/infineon-design-system-stencil/p-bb8d7729.entry.js +0 -2
- package/dist/infineon-design-system-stencil/p-bb8d7729.entry.js.map +0 -1
- package/dist/infineon-design-system-stencil/p-bba99322.entry.js.map +0 -1
- package/dist/infineon-design-system-stencil/p-bc216f6d.entry.js +0 -2
- package/dist/infineon-design-system-stencil/p-bc216f6d.entry.js.map +0 -1
- package/dist/infineon-design-system-stencil/p-c3acb336.entry.js.map +0 -1
- package/dist/infineon-design-system-stencil/p-d448d22c.entry.js +0 -2
- package/dist/infineon-design-system-stencil/p-d448d22c.entry.js.map +0 -1
- package/dist/infineon-design-system-stencil/p-e8504e6b.js +0 -2
- package/dist/infineon-design-system-stencil/p-e8504e6b.js.map +0 -1
- package/dist/infineon-design-system-stencil/p-ef7802f4.entry.js +0 -2
- package/dist/infineon-design-system-stencil/p-ef7802f4.entry.js.map +0 -1
- package/dist/infineon-design-system-stencil/p-f47071d5.entry.js +0 -2
- package/dist/infineon-design-system-stencil/p-f47071d5.entry.js.map +0 -1
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"multiselect.js","sourceRoot":"","sources":["../../../../src/components/select/multi-select/multiselect.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Prop, State, Event, EventEmitter, Element, h, Watch, AttachInternals, Method } from '@stencil/core';\nimport { trackComponent } from '../../../global/utils/tracking'; \nimport { isNestedInIfxComponent } from '../../../global/utils/dom-utils';\nimport { detectFramework } from '../../../global/utils/framework-detection';\nimport { Option } from './interfaces';\n\nfunction debounce(func, wait) {\n let timeout;\n return function executedFunction(...args) {\n const later = () => {\n clearTimeout(timeout);\n func(...args);\n };\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n };\n}\n\n@Component({\n tag: 'ifx-multiselect',\n styleUrl: 'multiselect.scss',\n shadow: true,\n formAssociated: true\n})\n\nexport class Multiselect {\n @Prop() name: string;\n @Prop() disabled: boolean = false;\n @Prop() error: boolean = false;\n @Prop() errorMessage: string = \"Error\";\n @Prop() label: string = \"\";\n @Prop() placeholder: string = \"\";\n @Prop() showSearch: boolean = true;\n @Prop() showSelectAll: boolean = true;\n @Prop() showClearButton: boolean = true;\n @Prop() showExpandCollapse: boolean = true;\n @Prop() noResultsMessage: string = \"No results found.\";\n @Prop() showNoResultsMessage: boolean = true;\n @Prop() searchPlaceholder: string = \"Search\";\n @Prop() selectAllLabel: string = \"Select all\";\n @Prop() expandLabel: string = \"Expand\";\n @Prop() collapseLabel: string = \"Collapse\";\n @Prop() ariaMultiSelectLabel: string = \"Multi-select dropdown\";\n @Prop() ariaMultiSelectLabelledBy: string = \"\";\n @Prop() ariaMultiSelectDescribedBy: string = \"\";\n @Prop() ariaSearchLabel: string = \"Search options\";\n @Prop() ariaClearLabel: string = \"Clear all selections\";\n @Prop() ariaToggleLabel: string = \"Toggle dropdown\";\n @Prop() ariaSelectAllLabel: string = \"Select all options\";\n @Prop() ariaExpandAllLabel: string = \"Expand all categories\";\n @Prop() ariaCollapseAllLabel: string = \"Collapse all categories\";\n\n @State() internalError: boolean = false;\n @State() internalErrorMessage: string;\n @State() persistentSelectedOptions: Option[] = [];\n @State() dropdownOpen = false;\n @State() dropdownFlipped: boolean;\n @State() searchTerm: string = '';\n\n @Event() ifxSelect: EventEmitter;\n @Event() ifxOpen: EventEmitter;\n\n @Element() el: HTMLElement;\n dropdownElement!: HTMLElement;\n\n @AttachInternals() internals: ElementInternals;\n private parseChildOptions(): Option[] {\n const options: Option[] = [];\n const childElements = Array.from(this.el.children);\n\n childElements.forEach((child, index) => {\n if (child.tagName === 'IFX-MULTISELECT-OPTION') {\n const option = this.parseOptionElement(child as HTMLElement, index);\n if (option) {\n options.push(option);\n }\n }\n });\n\n return options;\n }\n\n private parseOptionElement(element: HTMLElement, index: number): Option | null {\n const value = element.getAttribute('value') || `option-${index}`;\n const selected = element.hasAttribute('selected');\n const disabled = element.hasAttribute('disabled');\n const indeterminate = element.hasAttribute('indeterminate');\n\n const option: Option = {\n value,\n selected,\n disabled,\n indeterminate\n };\n\n const nestedOptions = Array.from(element.children)\n .filter(child => child.tagName === 'IFX-MULTISELECT-OPTION')\n .map((child, childIndex) => this.parseOptionElement(child as HTMLElement, childIndex))\n .filter(opt => opt !== null) as Option[];\n\n if (nestedOptions.length > 0) {\n option.children = nestedOptions;\n }\n\n return option;\n }\n\n loadInitialOptions() {\n this.internalError = this.error;\n this.internalErrorMessage = this.errorMessage;\n\n const allOptions = this.parseChildOptions();\n const initiallySelected = this.collectSelectedOptions(allOptions);\n const initiallySelectedNotInState = initiallySelected.filter(init =>\n !this.persistentSelectedOptions.some(opt => opt.value == init.value)\n );\n this.persistentSelectedOptions = [...this.persistentSelectedOptions, ...initiallySelectedNotInState];\n }\n\n private collectSelectedOptions(options: Option[]): Option[] {\n let selectedOptions: Option[] = [];\n\n for (const option of options) {\n if (option.selected) {\n if (option.children && option.children.length > 0) {\n selectedOptions = selectedOptions.concat(this.collectLeafOptions(option.children));\n } else {\n if (!selectedOptions.some(existingOption => existingOption.value === option.value)) {\n selectedOptions.push(option);\n }\n }\n } else {\n if (option.children && option.children.length > 0) {\n selectedOptions = selectedOptions.concat(this.collectSelectedOptions(option.children));\n }\n }\n }\n\n return selectedOptions;\n }\n\n private collectLeafOptions(children: Option[]): Option[] {\n let leafOptions = [];\n\n for (const child of children) {\n if (child.children && child.children.length > 0) {\n leafOptions = leafOptions.concat(this.collectLeafOptions(child.children));\n } else {\n leafOptions.push(child);\n }\n }\n return leafOptions;\n }\n\n handleSearch = debounce((targetElement: HTMLInputElement) => {\n const searchTerm = targetElement.value.toLowerCase();\n const isSearchActive = searchTerm !== '';\n\n this.searchTerm = searchTerm;\n\n const wrapper = this.el.shadowRoot.querySelector('.ifx-multiselect-wrapper');\n if (wrapper) {\n if (isSearchActive) {\n wrapper.classList.remove('active');\n } else {\n const searchField = this.el.shadowRoot.querySelector('ifx-search-field');\n const searchFieldHasFocus = searchField && searchField.matches(':focus-within');\n if (!searchFieldHasFocus) {\n wrapper.classList.add('active');\n }\n }\n }\n\n const optionsContainer = this.el.shadowRoot.querySelector('.ifx-multiselect-options');\n if (optionsContainer) {\n if (isSearchActive) {\n optionsContainer.classList.add('has-search-filter');\n } else {\n optionsContainer.classList.remove('has-search-filter');\n }\n }\n\n requestAnimationFrame(() => {\n const allOptions = this.el.querySelectorAll('ifx-multiselect-option');\n allOptions.forEach(option => {\n const searchEvent = new CustomEvent('ifx-search-filter', {\n detail: { searchTerm, isActive: isSearchActive }\n });\n option.dispatchEvent(searchEvent);\n });\n\n if (isSearchActive) {\n setTimeout(() => {\n const allOptions = this.el.querySelectorAll('ifx-multiselect-option');\n let visibleCount = 0;\n\n allOptions.forEach(option => {\n const style = window.getComputedStyle(option);\n const rect = option.getBoundingClientRect();\n\n if (style.display !== 'none' &&\n style.visibility !== 'hidden' &&\n style.opacity !== '0' &&\n rect.height > 0) {\n visibleCount++;\n }\n });\n\n const optionsContainer = this.el.shadowRoot.querySelector('.ifx-multiselect-options');\n if (optionsContainer) {\n if (visibleCount === 0) {\n optionsContainer.classList.add('show-no-results');\n } else {\n optionsContainer.classList.remove('show-no-results');\n }\n }\n }, 200);\n } else {\n const optionsContainer = this.el.shadowRoot.querySelector('.ifx-multiselect-options');\n if (optionsContainer) {\n optionsContainer.classList.remove('show-no-results');\n }\n }\n });\n }, 150);\n\n private handleSearchFocus(hasFocus: boolean) {\n const wrapper = this.el.shadowRoot.querySelector('.ifx-multiselect-wrapper');\n if (wrapper) {\n if (hasFocus || this.searchTerm !== '') {\n wrapper.classList.remove('active');\n } else {\n wrapper.classList.add('active');\n }\n }\n }\n\n positionDropdown() {\n const wrapperRect = this.el.shadowRoot.querySelector('.ifx-multiselect-wrapper')?.getBoundingClientRect();\n const spaceBelow = window.innerHeight - wrapperRect.bottom;\n const spaceAbove = wrapperRect.top;\n\n if ((spaceAbove > spaceBelow && wrapperRect.height > spaceBelow) || (wrapperRect.bottom > window.innerHeight)) {\n this.dropdownFlipped = true;\n } else {\n this.dropdownFlipped = false;\n }\n }\n\n private pendingSelectionUpdate = false;\n public updateSlotBasedSelections(emitEvent: boolean = false) {\n const allOptionElements = this.el.querySelectorAll('ifx-multiselect-option');\n const selectedLeafOptions: Option[] = [];\n\n allOptionElements.forEach((optionEl: any) => {\n const instance = optionEl['__stencil_instance'];\n if (instance && instance.selected && !instance.hasChildren) {\n selectedLeafOptions.push({\n value: instance.value,\n selected: true,\n disabled: instance.disabled\n });\n }\n });\n\n this.persistentSelectedOptions = selectedLeafOptions;\n\n if (emitEvent) {\n this.ifxSelect.emit(this.persistentSelectedOptions);\n }\n }\n\n private updateInitialParentStates() {\n const allOptionElements = this.el.querySelectorAll('ifx-multiselect-option');\n const optionsByDepth = Array.from(allOptionElements)\n .map(el => ({\n element: el,\n instance: (el as any)['__stencil_instance'],\n depth: parseInt(el.getAttribute('data-level') || '0')\n }))\n .filter(item => item.instance)\n .sort((a, b) => b.depth - a.depth);\n\n optionsByDepth.forEach(({ instance }) => {\n if (instance.hasChildren) {\n this.updateParentState(instance);\n }\n });\n }\n\n private updateParentState(parentInstance: any) {\n const directChildren = Array.from(parentInstance.el.children as HTMLCollection)\n .filter((child: Element) => child.tagName === 'IFX-MULTISELECT-OPTION')\n .map(child => (child as any)['__stencil_instance'])\n .filter(instance => instance !== null);\n\n const selectedCount = directChildren.filter(child => child.selected).length;\n const indeterminateCount = directChildren.filter(child => child.indeterminate).length;\n const totalCount = directChildren.length;\n\n if (selectedCount === totalCount && indeterminateCount === 0) {\n parentInstance.selected = true;\n parentInstance.indeterminate = false;\n } else if (selectedCount === 0 && indeterminateCount === 0) {\n parentInstance.selected = false;\n parentInstance.indeterminate = false;\n } else {\n parentInstance.selected = false;\n parentInstance.indeterminate = true;\n }\n }\n\n componentDidLoad() {\n setTimeout(() => {\n this.positionDropdown();\n }, 500);\n\n this.el.addEventListener('ifx-option-changed', () => {\n if (!this.pendingSelectionUpdate) {\n this.pendingSelectionUpdate = true;\n requestAnimationFrame(() => {\n this.updateSlotBasedSelections(true);\n setTimeout(() => {\n this.pendingSelectionUpdate = false;\n }, 0);\n });\n }\n });\n\n setTimeout(() => {\n this.updateSlotBasedSelections(false);\n this.updateInitialParentStates();\n }, 100);\n }\n\n componentWillLoad() {\n if(!isNestedInIfxComponent(this.el)) { \n const framework = detectFramework();\n trackComponent('ifx-multiselect', framework)\n }\n this.loadInitialOptions();\n }\n\n @Watch('error')\n updateInternalError() {\n this.internalError = this.error;\n }\n\n @Watch('errorMessage')\n updateInternalErrorMessage() {\n this.internalErrorMessage = this.errorMessage;\n }\n\n @Watch('persistentSelectedOptions')\n onSelectionChange(newValue: Option[], _: Option[]) {\n const formData = new FormData();\n newValue.forEach(option => formData.append(this.name, option.value));\n this.internals.setFormValue(formData);\n }\n collapseAll() {\n const allOptionElements = this.el.querySelectorAll('ifx-multiselect-option');\n allOptionElements.forEach((optionEl: any) => {\n const instance = optionEl['__stencil_instance'];\n if (instance && instance.hasChildren) {\n instance.isExpanded = false;\n }\n });\n }\n\n expandAll() {\n const allOptionElements = this.el.querySelectorAll('ifx-multiselect-option');\n allOptionElements.forEach((optionEl: any) => {\n const instance = optionEl['__stencil_instance'];\n if (instance && instance.hasChildren) {\n instance.isExpanded = true;\n }\n });\n }\n\n selectAll() {\n this.resetSearch();\n\n const allOptionElements = this.el.querySelectorAll('ifx-multiselect-option');\n\n allOptionElements.forEach((optionEl: any) => {\n const instance = optionEl['__stencil_instance'];\n if (instance) {\n if (instance.hasChildren) {\n instance.isExpanded = true;\n } else {\n instance.selected = true;\n }\n }\n });\n\n setTimeout(() => {\n this.updateInitialParentStates();\n this.updateSlotBasedSelections(false);\n this.ifxSelect.emit(this.persistentSelectedOptions);\n }, 0);\n }\n\n @Method()\n async clearSelection() {\n const allOptionElements = this.el.querySelectorAll('ifx-multiselect-option');\n allOptionElements.forEach((optionEl: any) => {\n const instance = optionEl['__stencil_instance'];\n if (instance) {\n instance.selected = false;\n instance.indeterminate = false;\n if (instance.hasChildren) {\n instance.isExpanded = false;\n }\n }\n });\n\n this.persistentSelectedOptions = [];\n\n setTimeout(() => {\n this.updateSlotBasedSelections(false);\n this.ifxSelect.emit(this.persistentSelectedOptions);\n }, 0);\n }\n\n handleDocumentClick = (event: Event) => {\n const path = event.composedPath();\n if (!path.includes(this.dropdownElement)) {\n this.dropdownOpen = false;\n document.removeEventListener('click', this.handleDocumentClick);\n this.resetSearch();\n this.ifxOpen.emit(this.dropdownOpen);\n }\n }\n\n toggleDropdown() {\n this.dropdownOpen = !this.dropdownOpen;\n setTimeout(() => {\n if (this.dropdownOpen) {\n document.addEventListener('click', this.handleDocumentClick);\n } else {\n this.resetSearch();\n }\n this.ifxOpen.emit(this.dropdownOpen);\n }, 0);\n }\n\n private resetSearch() {\n this.searchTerm = '';\n\n const searchField = this.el.shadowRoot.querySelector('ifx-search-field') as any;\n if (searchField) {\n searchField.value = '';\n }\n\n const optionsContainer = this.el.shadowRoot.querySelector('.ifx-multiselect-options');\n if (optionsContainer) {\n optionsContainer.classList.remove('has-search-filter');\n }\n\n const allOptions = this.el.querySelectorAll('ifx-multiselect-option');\n allOptions.forEach(option => {\n const searchEvent = new CustomEvent('ifx-search-filter', {\n detail: { searchTerm: '', isActive: false }\n });\n option.dispatchEvent(searchEvent);\n });\n }\n\n handleWrapperClick(event: MouseEvent) {\n this.positionDropdown();\n\n if (event.currentTarget === event.target) {\n this.toggleDropdown();\n }\n }\n\n handleKeyDown(event: KeyboardEvent) {\n if (this.disabled) return;\n\n // If dropdown is closed, only allow opening\n if (!this.dropdownOpen) {\n switch (event.code) {\n case 'Enter':\n case 'Space':\n case 'ArrowDown':\n event.preventDefault();\n this.toggleDropdown();\n break;\n }\n return;\n }\n\n // Dropdown is open - handle navigation and controls\n switch (event.code) {\n case 'Escape':\n event.preventDefault();\n this.toggleDropdown();\n break;\n case 'Enter':\n case 'Space':\n // Don't close dropdown when pressing space/enter in controls area\n const target = event.target as HTMLElement;\n if (!target.closest('.ifx-multiselect-dropdown-functions')) {\n event.preventDefault();\n this.toggleDropdown();\n }\n break;\n case 'ArrowDown':\n case 'ArrowUp':\n // Focus first/last option for navigation\n event.preventDefault();\n this.focusFirstOption();\n break;\n }\n }\n\n private focusFirstOption() {\n const firstOption = this.el.querySelector('ifx-multiselect-option:not(.search-hidden)');\n if (firstOption) {\n const labelElement = firstOption.shadowRoot?.querySelector('.option-label') as HTMLElement;\n labelElement?.focus();\n }\n }\n\n private renderSelectAll() {\n const allOptionElements = this.el.querySelectorAll('ifx-multiselect-option');\n const leafOptions = Array.from(allOptionElements).filter((el: any) => !el.hasChildren);\n const selectedLeafOptions = Array.from(allOptionElements).filter((el: any) => !el.hasChildren && el.selected);\n\n const allSelected = leafOptions.length > 0 && selectedLeafOptions.length === leafOptions.length;\n\n const toggleSelectAll = (event?: Event) => {\n if (event) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n if (allSelected) {\n this.clearSelection();\n } else {\n this.selectAll();\n }\n };\n\n return (\n <div class=\"select-all-wrapper\">\n <ifx-checkbox\n id='selectAll'\n checked={allSelected}\n size=\"s\"\n aria-label={this.ariaSelectAllLabel}\n onClick={toggleSelectAll}\n onKeyDown={(e) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n e.stopPropagation();\n toggleSelectAll(e);\n }\n }}\n >\n {this.selectAllLabel}\n </ifx-checkbox>\n </div>\n );\n }\n\n private renderNoResultsMessage() {\n return (\n <div class=\"ifx-multiselect-no-results\">\n <div class=\"no-results-content\">\n <span class=\"no-results-text\">{this.noResultsMessage}</span>\n </div>\n </div>\n );\n }\n\n render() {\n const selectedOptionsLabels = this.persistentSelectedOptions\n .map((option) => {\n const optionElement = this.el.querySelector(`ifx-multiselect-option[value=\"${option.value}\"]`);\n return optionElement?.textContent?.trim() || option.value;\n })\n .join(', ');\n\n const hasSelections = this.persistentSelectedOptions.length > 0;\n\n let isFlatMultiselect = false;\n const allOptionElements = this.el.querySelectorAll('ifx-multiselect-option');\n if (allOptionElements.length > 0) {\n isFlatMultiselect = Array.from(allOptionElements).every(option => option.children.length === 0);\n }\n\n return (\n <div class={`ifx-multiselect-container`} ref={el => this.dropdownElement = el as HTMLElement}>\n {\n this.label ?\n <div class=\"ifx-label-wrapper\">\n <span>{this.label}</span>\n </div> : null\n }\n <div class={`ifx-multiselect-wrapper\n ${this.dropdownOpen ? 'active' : ''}\n ${this.dropdownFlipped ? 'is-flipped' : ''}\n ${this.internalError ? 'error' : \"\"}\n ${this.disabled ? 'disabled' : \"\"}`}\n role=\"combobox\"\n aria-label={this.ariaMultiSelectLabel}\n aria-labelledby={this.ariaMultiSelectLabelledBy || undefined}\n aria-describedby={this.ariaMultiSelectDescribedBy || undefined}\n aria-expanded={this.dropdownOpen}\n aria-haspopup=\"listbox\"\n aria-disabled={this.disabled}\n tabindex=\"0\"\n onClick={this.disabled ? undefined : (event) => this.handleWrapperClick(event)}\n onKeyDown={this.disabled ? undefined : (event) => this.handleKeyDown(event)} >\n <div class={`ifx-multiselect-input\n ${hasSelections ? '' : 'placeholder'}\n `}\n onClick={this.disabled ? undefined : () => this.toggleDropdown()}\n >\n {hasSelections ? selectedOptionsLabels : this.placeholder}\n </div>\n {this.dropdownOpen && (\n <div class=\"ifx-multiselect-dropdown-menu\">\n\n {(this.showSearch || this.showSelectAll || (this.showExpandCollapse && !isFlatMultiselect)) && (\n <div class=\"ifx-multiselect-dropdown-functions\" onClick={(e) => e.stopPropagation()}>\n {this.showSearch && (\n <div class=\"ifx-multiselect-dropdown-search\">\n <ifx-search-field\n class=\"search-input\"\n placeholder={this.searchPlaceholder}\n size=\"s\"\n show-delete-icon=\"true\"\n aria-label={this.ariaSearchLabel}\n onKeyDown={(e) => { e.stopPropagation() }}\n onIfxInput={(event) => this.handleSearch(event.target)}\n onFocus={() => this.handleSearchFocus(true)}\n onBlur={() => this.handleSearchFocus(false)}\n ></ifx-search-field>\n </div>\n )}\n\n <div class=\"ifx-multiselect-dropdown-controls\">\n {this.showSelectAll && this.renderSelectAll()}\n {this.showExpandCollapse && !isFlatMultiselect && (\n <div class=\"expand-collapse-controls\">\n <span\n class=\"control-item\"\n role=\"button\"\n tabIndex={0}\n aria-label={this.ariaExpandAllLabel}\n onClick={(e) => { e.stopPropagation(); this.expandAll(); }}\n onKeyDown={(e) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n e.stopPropagation();\n this.expandAll();\n }\n }}\n >\n {this.expandLabel}\n </span>\n <span\n class=\"control-item\"\n role=\"button\"\n tabIndex={0}\n aria-label={this.ariaCollapseAllLabel}\n onClick={(e) => { e.stopPropagation(); this.collapseAll(); }}\n onKeyDown={(e) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n e.stopPropagation();\n this.collapseAll();\n }\n }}\n >\n {this.collapseLabel}\n </span>\n </div>\n )}\n </div>\n </div>\n )}\n\n <div class=\"ifx-multiselect-options\" role=\"listbox\" aria-multiselectable=\"true\">\n <slot />\n {this.searchTerm && this.showNoResultsMessage && this.renderNoResultsMessage()}\n </div>\n </div>\n )}\n <div class='ifx-multiselect-icon-container'>\n\n {/* Clear Button - will show only if there's a selection */}\n {this.persistentSelectedOptions.length > 0 && (\n <div class={`ifx-clear-button ${!this.showClearButton ? 'hide' : ''}`} onClick={this.disabled ? undefined : () => this.clearSelection()}>\n <ifx-icon icon=\"cRemove16\"></ifx-icon>\n </div>\n )}\n <div class=\"icon-wrapper-up\" onClick={this.disabled ? undefined : () => this.toggleDropdown()}>\n <ifx-icon\n key='icon-up'\n icon='chevron-up-16'></ifx-icon>\n </div>\n <div class=\"icon-wrapper-down\" onClick={this.disabled ? undefined : () => this.toggleDropdown()}>\n <ifx-icon\n key='icon-down'\n icon='chevron-down-16'></ifx-icon>\n </div>\n </div>\n\n </div>\n {\n this.internalError ?\n <div class=\"ifx-error-message-wrapper\">\n <span>{this.internalErrorMessage}</span>\n </div> : null\n }\n </div>\n );\n }\n}\n"]}
|
1
|
+
{"version":3,"file":"multiselect.js","sourceRoot":"","sources":["../../../../src/components/select/multi-select/multiselect.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAgB,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACxH,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAC;AAG5E,SAAS,QAAQ,CAAC,IAAI,EAAE,IAAI;IAC1B,IAAI,OAAO,CAAC;IACZ,OAAO,SAAS,gBAAgB,CAAC,GAAG,IAAI;QACtC,MAAM,KAAK,GAAG,GAAG,EAAE;YACjB,YAAY,CAAC,OAAO,CAAC,CAAC;YACtB,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;QAChB,CAAC,CAAC;QACF,YAAY,CAAC,OAAO,CAAC,CAAC;QACtB,OAAO,GAAG,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACpC,CAAC,CAAC;AACJ,CAAC;AASD,MAAM,OAAO,WAAW;IAPxB;QASU,aAAQ,GAAY,KAAK,CAAC;QAC1B,UAAK,GAAY,KAAK,CAAC;QACvB,iBAAY,GAAW,OAAO,CAAC;QAC/B,UAAK,GAAW,EAAE,CAAC;QACnB,gBAAW,GAAW,EAAE,CAAC;QACzB,eAAU,GAAY,IAAI,CAAC;QAC3B,kBAAa,GAAY,IAAI,CAAC;QAC9B,oBAAe,GAAY,IAAI,CAAC;QAChC,uBAAkB,GAAY,IAAI,CAAC;QACnC,qBAAgB,GAAW,mBAAmB,CAAC;QAC/C,yBAAoB,GAAY,IAAI,CAAC;QACrC,sBAAiB,GAAW,QAAQ,CAAC;QACrC,mBAAc,GAAW,YAAY,CAAC;QACtC,gBAAW,GAAW,QAAQ,CAAC;QAC/B,kBAAa,GAAW,UAAU,CAAC;QACnC,yBAAoB,GAAW,uBAAuB,CAAC;QACvD,8BAAyB,GAAW,EAAE,CAAC;QACvC,+BAA0B,GAAW,EAAE,CAAC;QACxC,oBAAe,GAAW,gBAAgB,CAAC;QAC3C,mBAAc,GAAW,sBAAsB,CAAC;QAChD,oBAAe,GAAW,iBAAiB,CAAC;QAC5C,uBAAkB,GAAW,oBAAoB,CAAC;QAClD,uBAAkB,GAAW,uBAAuB,CAAC;QACrD,yBAAoB,GAAW,yBAAyB,CAAC;QAExD,kBAAa,GAAY,KAAK,CAAC;QAE/B,8BAAyB,GAAa,EAAE,CAAC;QACzC,iBAAY,GAAG,KAAK,CAAC;QAErB,eAAU,GAAW,EAAE,CAAC;QAiGjC,iBAAY,GAAG,QAAQ,CAAC,CAAC,aAA+B,EAAE,EAAE;YAC1D,MAAM,UAAU,GAAG,aAAa,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;YACrD,MAAM,cAAc,GAAG,UAAU,KAAK,EAAE,CAAC;YAEzC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;YAE7B,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,0BAA0B,CAAC,CAAC;YAC7E,IAAI,OAAO,EAAE,CAAC;gBACZ,IAAI,cAAc,EAAE,CAAC;oBACnB,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gBACrC,CAAC;qBAAM,CAAC;oBACN,MAAM,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC;oBACzE,MAAM,mBAAmB,GAAG,WAAW,IAAI,WAAW,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;oBAChF,IAAI,CAAC,mBAAmB,EAAE,CAAC;wBACzB,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;oBAClC,CAAC;gBACH,CAAC;YACH,CAAC;YAED,MAAM,gBAAgB,GAAG,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,0BAA0B,CAAC,CAAC;YACtF,IAAI,gBAAgB,EAAE,CAAC;gBACrB,IAAI,cAAc,EAAE,CAAC;oBACnB,gBAAgB,CAAC,SAAS,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;gBACtD,CAAC;qBAAM,CAAC;oBACN,gBAAgB,CAAC,SAAS,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;gBACzD,CAAC;YACH,CAAC;YAED,qBAAqB,CAAC,GAAG,EAAE;gBACzB,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,wBAAwB,CAAC,CAAC;gBACtE,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;oBAC1B,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,mBAAmB,EAAE;wBACvD,MAAM,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE;qBACjD,CAAC,CAAC;oBACH,MAAM,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;gBACpC,CAAC,CAAC,CAAC;gBAEH,IAAI,cAAc,EAAE,CAAC;oBACnB,UAAU,CAAC,GAAG,EAAE;wBACd,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,wBAAwB,CAAC,CAAC;wBACtE,IAAI,YAAY,GAAG,CAAC,CAAC;wBAErB,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;4BAC1B,MAAM,KAAK,GAAG,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;4BAC9C,MAAM,IAAI,GAAG,MAAM,CAAC,qBAAqB,EAAE,CAAC;4BAE5C,IAAI,KAAK,CAAC,OAAO,KAAK,MAAM;gCACxB,KAAK,CAAC,UAAU,KAAK,QAAQ;gCAC7B,KAAK,CAAC,OAAO,KAAK,GAAG;gCACrB,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gCACpB,YAAY,EAAE,CAAC;4BACjB,CAAC;wBACH,CAAC,CAAC,CAAC;wBAEH,MAAM,gBAAgB,GAAG,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,0BAA0B,CAAC,CAAC;wBACtF,IAAI,gBAAgB,EAAE,CAAC;4BACrB,IAAI,YAAY,KAAK,CAAC,EAAE,CAAC;gCACvB,gBAAgB,CAAC,SAAS,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;4BACpD,CAAC;iCAAM,CAAC;gCACN,gBAAgB,CAAC,SAAS,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;4BACvD,CAAC;wBACH,CAAC;oBACH,CAAC,EAAE,GAAG,CAAC,CAAC;gBACV,CAAC;qBAAM,CAAC;oBACN,MAAM,gBAAgB,GAAG,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,0BAA0B,CAAC,CAAC;oBACtF,IAAI,gBAAgB,EAAE,CAAC;wBACrB,gBAAgB,CAAC,SAAS,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;oBACvD,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,EAAE,GAAG,CAAC,CAAC;QAyBA,2BAAsB,GAAG,KAAK,CAAC;QA+KvC,wBAAmB,GAAG,CAAC,KAAY,EAAE,EAAE;YACrC,MAAM,IAAI,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC;YAClC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC;gBACzC,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;gBAC1B,QAAQ,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;gBAChE,IAAI,CAAC,WAAW,EAAE,CAAC;gBACnB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACvC,CAAC;QACH,CAAC,CAAA;KAiSF;IA/oBS,iBAAiB;QACvB,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,MAAM,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;QAEnD,aAAa,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YACrC,IAAI,KAAK,CAAC,OAAO,KAAK,wBAAwB,EAAE,CAAC;gBAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAoB,EAAE,KAAK,CAAC,CAAC;gBACpE,IAAI,MAAM,EAAE,CAAC;oBACX,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACvB,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,kBAAkB,CAAC,OAAoB,EAAE,KAAa;QAC5D,MAAM,KAAK,GAAG,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,UAAU,KAAK,EAAE,CAAC;QACjE,MAAM,QAAQ,GAAG,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;QAClD,MAAM,QAAQ,GAAG,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;QAClD,MAAM,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;QAE5D,MAAM,MAAM,GAAW;YACrB,KAAK;YACL,QAAQ;YACR,QAAQ;YACR,aAAa;SACd,CAAC;QAEF,MAAM,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;aAC/C,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,KAAK,wBAAwB,CAAC;aAC3D,GAAG,CAAC,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAoB,EAAE,UAAU,CAAC,CAAC;aACrF,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,IAAI,CAAa,CAAC;QAE3C,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,MAAM,CAAC,QAAQ,GAAG,aAAa,CAAC;QAClC,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,kBAAkB;QAChB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC;QAChC,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,YAAY,CAAC;QAE9C,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC5C,MAAM,iBAAiB,GAAG,IAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC,CAAC;QAClE,MAAM,2BAA2B,GAAG,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAClE,CAAC,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,CACrE,CAAC;QACF,IAAI,CAAC,yBAAyB,GAAG,CAAC,GAAG,IAAI,CAAC,yBAAyB,EAAE,GAAG,2BAA2B,CAAC,CAAC;IACvG,CAAC;IAEO,sBAAsB,CAAC,OAAiB;QAC9C,IAAI,eAAe,GAAa,EAAE,CAAC;QAEnC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACpB,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAClD,eAAe,GAAG,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACrF,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,cAAc,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;wBACnF,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBAC/B,CAAC;gBACH,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAClD,eAAe,GAAG,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACzF,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,eAAe,CAAC;IACzB,CAAC;IAEO,kBAAkB,CAAC,QAAkB;QAC3C,IAAI,WAAW,GAAG,EAAE,CAAC;QAErB,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;YAC7B,IAAI,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChD,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC5E,CAAC;iBAAM,CAAC;gBACN,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;QACD,OAAO,WAAW,CAAC;IACrB,CAAC;IA0EO,iBAAiB,CAAC,QAAiB;QACzC,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,0BAA0B,CAAC,CAAC;QAC7E,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,QAAQ,IAAI,IAAI,CAAC,UAAU,KAAK,EAAE,EAAE,CAAC;gBACvC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACrC,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAClC,CAAC;QACH,CAAC;IACH,CAAC;IAED,gBAAgB;;QACd,MAAM,WAAW,GAAG,MAAA,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,0BAA0B,CAAC,0CAAE,qBAAqB,EAAE,CAAC;QAC1G,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC;QAC3D,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC;QAEnC,IAAI,CAAC,UAAU,GAAG,UAAU,IAAI,WAAW,CAAC,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC;YAC9G,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC9B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAC/B,CAAC;IACH,CAAC;IAGM,yBAAyB,CAAC,YAAqB,KAAK;QACzD,MAAM,iBAAiB,GAAG,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,wBAAwB,CAAC,CAAC;QAC7E,MAAM,mBAAmB,GAAa,EAAE,CAAC;QAEzC,iBAAiB,CAAC,OAAO,CAAC,CAAC,QAAa,EAAE,EAAE;YAC1C,MAAM,QAAQ,GAAG,QAAQ,CAAC,oBAAoB,CAAC,CAAC;YAChD,IAAI,QAAQ,IAAI,QAAQ,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;gBAC3D,mBAAmB,CAAC,IAAI,CAAC;oBACvB,KAAK,EAAE,QAAQ,CAAC,KAAK;oBACrB,QAAQ,EAAE,IAAI;oBACd,QAAQ,EAAE,QAAQ,CAAC,QAAQ;iBAC5B,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,yBAAyB,GAAG,mBAAmB,CAAC;QAErD,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;IAEO,yBAAyB;QAC/B,MAAM,iBAAiB,GAAG,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,wBAAwB,CAAC,CAAC;QAC7E,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC;aACjD,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACV,OAAO,EAAE,EAAE;YACX,QAAQ,EAAG,EAAU,CAAC,oBAAoB,CAAC;YAC3C,KAAK,EAAE,QAAQ,CAAC,EAAE,CAAC,YAAY,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC;SACtD,CAAC,CAAC;aACF,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC;aAC7B,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;QAErC,cAAc,CAAC,OAAO,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;YACtC,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC;gBACzB,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;YACnC,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,iBAAiB,CAAC,cAAmB;QAC3C,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,QAA0B,CAAC;aAC5E,MAAM,CAAC,CAAC,KAAc,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,KAAK,wBAAwB,CAAC;aACtE,GAAG,CAAC,KAAK,CAAC,EAAE,CAAE,KAAa,CAAC,oBAAoB,CAAC,CAAC;aAClD,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC;QAEzC,MAAM,aAAa,GAAG,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC;QAC5E,MAAM,kBAAkB,GAAG,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC;QACtF,MAAM,UAAU,GAAG,cAAc,CAAC,MAAM,CAAC;QAEzC,IAAI,aAAa,KAAK,UAAU,IAAI,kBAAkB,KAAK,CAAC,EAAE,CAAC;YAC7D,cAAc,CAAC,QAAQ,GAAG,IAAI,CAAC;YAC/B,cAAc,CAAC,aAAa,GAAG,KAAK,CAAC;QACvC,CAAC;aAAM,IAAI,aAAa,KAAK,CAAC,IAAI,kBAAkB,KAAK,CAAC,EAAE,CAAC;YAC3D,cAAc,CAAC,QAAQ,GAAG,KAAK,CAAC;YAChC,cAAc,CAAC,aAAa,GAAG,KAAK,CAAC;QACvC,CAAC;aAAM,CAAC;YACN,cAAc,CAAC,QAAQ,GAAG,KAAK,CAAC;YAChC,cAAc,CAAC,aAAa,GAAG,IAAI,CAAC;QACtC,CAAC;IACH,CAAC;IAED,KAAK,CAAC,gBAAgB;QACpB,IAAG,CAAC,sBAAsB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;YACpC,MAAM,SAAS,GAAG,eAAe,EAAE,CAAC;YACpC,cAAc,CAAC,iBAAiB,EAAE,MAAM,SAAS,CAAC,CAAA;QACpD,CAAC;QACD,UAAU,CAAC,GAAG,EAAE;YACd,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC1B,CAAC,EAAE,GAAG,CAAC,CAAC;QAER,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,oBAAoB,EAAE,GAAG,EAAE;YAClD,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC;gBACjC,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;gBACnC,qBAAqB,CAAC,GAAG,EAAE;oBACzB,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC;oBACrC,UAAU,CAAC,GAAG,EAAE;wBACd,IAAI,CAAC,sBAAsB,GAAG,KAAK,CAAC;oBACtC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACR,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,UAAU,CAAC,GAAG,EAAE;YACd,IAAI,CAAC,yBAAyB,CAAC,KAAK,CAAC,CAAC;YACtC,IAAI,CAAC,yBAAyB,EAAE,CAAC;QACnC,CAAC,EAAE,GAAG,CAAC,CAAC;IACV,CAAC;IAED,iBAAiB;QACf,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC5B,CAAC;IAGD,mBAAmB;QACjB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC;IAClC,CAAC;IAGD,0BAA0B;QACxB,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,YAAY,CAAC;IAChD,CAAC;IAGD,iBAAiB,CAAC,QAAkB,EAAE,CAAW;QAC/C,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;QAChC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACrE,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IACxC,CAAC;IACD,WAAW;QACT,MAAM,iBAAiB,GAAG,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,wBAAwB,CAAC,CAAC;QAC7E,iBAAiB,CAAC,OAAO,CAAC,CAAC,QAAa,EAAE,EAAE;YAC1C,MAAM,QAAQ,GAAG,QAAQ,CAAC,oBAAoB,CAAC,CAAC;YAChD,IAAI,QAAQ,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC;gBACrC,QAAQ,CAAC,UAAU,GAAG,KAAK,CAAC;YAC9B,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,SAAS;QACP,MAAM,iBAAiB,GAAG,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,wBAAwB,CAAC,CAAC;QAC7E,iBAAiB,CAAC,OAAO,CAAC,CAAC,QAAa,EAAE,EAAE;YAC1C,MAAM,QAAQ,GAAG,QAAQ,CAAC,oBAAoB,CAAC,CAAC;YAChD,IAAI,QAAQ,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC;gBACrC,QAAQ,CAAC,UAAU,GAAG,IAAI,CAAC;YAC7B,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,SAAS;QACP,IAAI,CAAC,WAAW,EAAE,CAAC;QAEnB,MAAM,iBAAiB,GAAG,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,wBAAwB,CAAC,CAAC;QAE7E,iBAAiB,CAAC,OAAO,CAAC,CAAC,QAAa,EAAE,EAAE;YAC1C,MAAM,QAAQ,GAAG,QAAQ,CAAC,oBAAoB,CAAC,CAAC;YAChD,IAAI,QAAQ,EAAE,CAAC;gBACb,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC;oBACzB,QAAQ,CAAC,UAAU,GAAG,IAAI,CAAC;gBAC7B,CAAC;qBAAM,CAAC;oBACN,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC;gBAC3B,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,UAAU,CAAC,GAAG,EAAE;YACd,IAAI,CAAC,yBAAyB,EAAE,CAAC;YACjC,IAAI,CAAC,yBAAyB,CAAC,KAAK,CAAC,CAAC;YACtC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QACtD,CAAC,EAAE,CAAC,CAAC,CAAC;IACR,CAAC;IAGD,KAAK,CAAC,cAAc;QAClB,MAAM,iBAAiB,GAAG,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,wBAAwB,CAAC,CAAC;QAC7E,iBAAiB,CAAC,OAAO,CAAC,CAAC,QAAa,EAAE,EAAE;YAC1C,MAAM,QAAQ,GAAG,QAAQ,CAAC,oBAAoB,CAAC,CAAC;YAChD,IAAI,QAAQ,EAAE,CAAC;gBACb,QAAQ,CAAC,QAAQ,GAAG,KAAK,CAAC;gBAC1B,QAAQ,CAAC,aAAa,GAAG,KAAK,CAAC;gBAC/B,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC;oBACzB,QAAQ,CAAC,UAAU,GAAG,KAAK,CAAC;gBAC9B,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,yBAAyB,GAAG,EAAE,CAAC;QAEpC,UAAU,CAAC,GAAG,EAAE;YACd,IAAI,CAAC,yBAAyB,CAAC,KAAK,CAAC,CAAC;YACtC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QACtD,CAAC,EAAE,CAAC,CAAC,CAAC;IACR,CAAC;IAYD,cAAc;QACZ,IAAI,CAAC,YAAY,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC;QACvC,UAAU,CAAC,GAAG,EAAE;YACd,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;gBACtB,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;YAC/D,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,CAAC;YACD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACvC,CAAC,EAAE,CAAC,CAAC,CAAC;IACR,CAAC;IAEO,WAAW;QACjB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QAErB,MAAM,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,kBAAkB,CAAQ,CAAC;QAChF,IAAI,WAAW,EAAE,CAAC;YAChB,WAAW,CAAC,KAAK,GAAG,EAAE,CAAC;QACzB,CAAC;QAED,MAAM,gBAAgB,GAAG,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,0BAA0B,CAAC,CAAC;QACtF,IAAI,gBAAgB,EAAE,CAAC;YACrB,gBAAgB,CAAC,SAAS,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;QACzD,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,wBAAwB,CAAC,CAAC;QACtE,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YAC1B,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,mBAAmB,EAAE;gBACvD,MAAM,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE;aAC5C,CAAC,CAAC;YACH,MAAM,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,kBAAkB,CAAC,KAAiB;QAClC,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAExB,IAAI,KAAK,CAAC,aAAa,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;YACzC,IAAI,CAAC,cAAc,EAAE,CAAC;QACxB,CAAC;IACH,CAAC;IAED,aAAa,CAAC,KAAoB;QAChC,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO;QAE1B,4CAA4C;QAC5C,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;gBACnB,KAAK,OAAO,CAAC;gBACb,KAAK,OAAO,CAAC;gBACb,KAAK,WAAW;oBACd,KAAK,CAAC,cAAc,EAAE,CAAC;oBACvB,IAAI,CAAC,cAAc,EAAE,CAAC;oBACtB,MAAM;YACV,CAAC;YACD,OAAO;QACT,CAAC;QAED,oDAAoD;QACpD,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;YACnB,KAAK,QAAQ;gBACX,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,IAAI,CAAC,cAAc,EAAE,CAAC;gBACtB,MAAM;YACR,KAAK,OAAO,CAAC;YACb,KAAK,OAAO;gBACV,kEAAkE;gBAClE,MAAM,MAAM,GAAG,KAAK,CAAC,MAAqB,CAAC;gBAC3C,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,qCAAqC,CAAC,EAAE,CAAC;oBAC3D,KAAK,CAAC,cAAc,EAAE,CAAC;oBACvB,IAAI,CAAC,cAAc,EAAE,CAAC;gBACxB,CAAC;gBACD,MAAM;YACR,KAAK,WAAW,CAAC;YACjB,KAAK,SAAS;gBACZ,yCAAyC;gBACzC,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACxB,MAAM;QACV,CAAC;IACH,CAAC;IAEO,gBAAgB;;QACtB,MAAM,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,4CAA4C,CAAC,CAAC;QACxF,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,YAAY,GAAG,MAAA,WAAW,CAAC,UAAU,0CAAE,aAAa,CAAC,eAAe,CAAgB,CAAC;YAC3F,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,KAAK,EAAE,CAAC;QACxB,CAAC;IACH,CAAC;IAEO,eAAe;QACrB,MAAM,iBAAiB,GAAG,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,wBAAwB,CAAC,CAAC;QAC7E,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC,EAAO,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC;QACvF,MAAM,mBAAmB,GAAG,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC,EAAO,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,WAAW,IAAI,EAAE,CAAC,QAAQ,CAAC,CAAC;QAE9G,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,mBAAmB,CAAC,MAAM,KAAK,WAAW,CAAC,MAAM,CAAC;QAEhG,MAAM,eAAe,GAAG,CAAC,KAAa,EAAE,EAAE;YACxC,IAAI,KAAK,EAAE,CAAC;gBACV,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,KAAK,CAAC,eAAe,EAAE,CAAC;YAC1B,CAAC;YAED,IAAI,WAAW,EAAE,CAAC;gBAChB,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,CAAC;QACH,CAAC,CAAC;QAEF,OAAO,CACL,WAAK,KAAK,EAAC,oBAAoB;YAC7B,oBACE,EAAE,EAAC,WAAW,EACd,OAAO,EAAE,WAAW,EACpB,IAAI,EAAC,GAAG,gBACI,IAAI,CAAC,kBAAkB,EACnC,OAAO,EAAE,eAAe,EACxB,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE;oBACf,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC;wBACvC,CAAC,CAAC,cAAc,EAAE,CAAC;wBACnB,CAAC,CAAC,eAAe,EAAE,CAAC;wBACpB,eAAe,CAAC,CAAC,CAAC,CAAC;oBACrB,CAAC;gBACH,CAAC,IAEA,IAAI,CAAC,cAAc,CACP,CACX,CACP,CAAC;IACJ,CAAC;IAEO,sBAAsB;QAC5B,OAAO,CACL,WAAK,KAAK,EAAC,4BAA4B;YACrC,WAAK,KAAK,EAAC,oBAAoB;gBAC7B,YAAM,KAAK,EAAC,iBAAiB,IAAE,IAAI,CAAC,gBAAgB,CAAQ,CACxD,CACF,CACP,CAAC;IACJ,CAAC;IAED,MAAM;QACJ,MAAM,qBAAqB,GAAG,IAAI,CAAC,yBAAyB;aACzD,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;;YACd,MAAM,aAAa,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,iCAAiC,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC;YAC/F,OAAO,CAAA,MAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,WAAW,0CAAE,IAAI,EAAE,KAAI,MAAM,CAAC,KAAK,CAAC;QAC5D,CAAC,CAAC;aACD,IAAI,CAAC,IAAI,CAAC,CAAC;QAEd,MAAM,aAAa,GAAG,IAAI,CAAC,yBAAyB,CAAC,MAAM,GAAG,CAAC,CAAC;QAEhE,IAAI,iBAAiB,GAAG,KAAK,CAAC;QAC9B,MAAM,iBAAiB,GAAG,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,wBAAwB,CAAC,CAAC;QAC7E,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjC,iBAAiB,GAAG,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC;QAClG,CAAC;QAED,OAAO,CACL,WAAK,KAAK,EAAE,2BAA2B,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,eAAe,GAAG,EAAiB;YAExF,IAAI,CAAC,KAAK,CAAC,CAAC;gBACV,WAAK,KAAK,EAAC,mBAAmB;oBAC5B,gBAAO,IAAI,CAAC,KAAK,CAAQ,CACrB,CAAC,CAAC,CAAC,IAAI;YAEjB,WAAK,KAAK,EAAE;UACV,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;UACjC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE;UACxC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;UACjC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,EACjC,IAAI,EAAC,UAAU,gBACH,IAAI,CAAC,oBAAoB,qBACpB,IAAI,CAAC,yBAAyB,IAAI,SAAS,sBAC1C,IAAI,CAAC,0BAA0B,IAAI,SAAS,mBAC/C,IAAI,CAAC,YAAY,mBAClB,SAAS,mBACR,IAAI,CAAC,QAAQ,EAC5B,QAAQ,EAAC,GAAG,EACZ,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAC9E,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;gBAC3E,WAAK,KAAK,EAAE;YACV,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa;WACnC,EACC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE,IAE/D,aAAa,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CACrD;gBACL,IAAI,CAAC,YAAY,IAAI,CACpB,WAAK,KAAK,EAAC,+BAA+B;oBAEvC,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,kBAAkB,IAAI,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAC7F,WAAK,KAAK,EAAC,oCAAoC,EAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,EAAE;wBAChF,IAAI,CAAC,UAAU,IAAI,CAClB,WAAK,KAAK,EAAC,iCAAiC;4BAC1C,wBACE,KAAK,EAAC,cAAc,EACpB,WAAW,EAAE,IAAI,CAAC,iBAAiB,EACnC,IAAI,EAAC,GAAG,sBACS,MAAM,gBACX,IAAI,CAAC,eAAe,EAChC,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,eAAe,EAAE,CAAA,CAAC,CAAC,EACzC,UAAU,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,EACtD,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAC3C,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,GACzB,CAChB,CACP;wBAED,WAAK,KAAK,EAAC,mCAAmC;4BAC3C,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,eAAe,EAAE;4BAC5C,IAAI,CAAC,kBAAkB,IAAI,CAAC,iBAAiB,IAAI,CAChD,WAAK,KAAK,EAAC,0BAA0B;gCACnC,YACE,KAAK,EAAC,cAAc,EACpB,IAAI,EAAC,QAAQ,EACb,QAAQ,EAAE,CAAC,gBACC,IAAI,CAAC,kBAAkB,EACnC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAC1D,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE;wCACf,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC;4CACvC,CAAC,CAAC,cAAc,EAAE,CAAC;4CACnB,CAAC,CAAC,eAAe,EAAE,CAAC;4CACpB,IAAI,CAAC,SAAS,EAAE,CAAC;wCACnB,CAAC;oCACH,CAAC,IAEA,IAAI,CAAC,WAAW,CACZ;gCACP,YACE,KAAK,EAAC,cAAc,EACpB,IAAI,EAAC,QAAQ,EACb,QAAQ,EAAE,CAAC,gBACC,IAAI,CAAC,oBAAoB,EACrC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAC5D,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE;wCACf,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC;4CACvC,CAAC,CAAC,cAAc,EAAE,CAAC;4CACnB,CAAC,CAAC,eAAe,EAAE,CAAC;4CACpB,IAAI,CAAC,WAAW,EAAE,CAAC;wCACrB,CAAC;oCACH,CAAC,IAEA,IAAI,CAAC,aAAa,CACd,CACH,CACP,CACG,CACF,CACP;oBAED,WAAK,KAAK,EAAC,yBAAyB,EAAC,IAAI,EAAC,SAAS,0BAAsB,MAAM;wBAC7E,eAAQ;wBACP,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,oBAAoB,IAAI,IAAI,CAAC,sBAAsB,EAAE,CAC1E,CACF,CACP;gBACD,WAAK,KAAK,EAAC,gCAAgC;oBAGxC,IAAI,CAAC,yBAAyB,CAAC,MAAM,GAAG,CAAC,IAAI,CAC5C,WAAK,KAAK,EAAE,oBAAoB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE;wBACrI,gBAAU,IAAI,EAAC,WAAW,GAAY,CAClC,CACP;oBACD,WAAK,KAAK,EAAC,iBAAiB,EAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE;wBAC3F,gBACE,GAAG,EAAC,SAAS,EACb,IAAI,EAAC,eAAe,GAAY,CAC9B;oBACN,WAAK,KAAK,EAAC,mBAAmB,EAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE;wBAC7F,gBACE,GAAG,EAAC,WAAW,EACf,IAAI,EAAC,iBAAiB,GAAY,CAChC,CACF,CAEF;YAEJ,IAAI,CAAC,aAAa,CAAC,CAAC;gBAClB,WAAK,KAAK,EAAC,2BAA2B;oBACpC,gBAAO,IAAI,CAAC,oBAAoB,CAAQ,CACpC,CAAC,CAAC,CAAC,IAAI,CAEb,CACP,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Prop, State, Event, EventEmitter, Element, h, Watch, AttachInternals, Method } from '@stencil/core';\nimport { trackComponent } from '../../../global/utils/tracking'; \nimport { isNestedInIfxComponent } from '../../../global/utils/dom-utils';\nimport { detectFramework } from '../../../global/utils/framework-detection';\nimport { Option } from './interfaces';\n\nfunction debounce(func, wait) {\n let timeout;\n return function executedFunction(...args) {\n const later = () => {\n clearTimeout(timeout);\n func(...args);\n };\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n };\n}\n\n@Component({\n tag: 'ifx-multiselect',\n styleUrl: 'multiselect.scss',\n shadow: true,\n formAssociated: true\n})\n\nexport class Multiselect {\n @Prop() name: string;\n @Prop() disabled: boolean = false;\n @Prop() error: boolean = false;\n @Prop() errorMessage: string = \"Error\";\n @Prop() label: string = \"\";\n @Prop() placeholder: string = \"\";\n @Prop() showSearch: boolean = true;\n @Prop() showSelectAll: boolean = true;\n @Prop() showClearButton: boolean = true;\n @Prop() showExpandCollapse: boolean = true;\n @Prop() noResultsMessage: string = \"No results found.\";\n @Prop() showNoResultsMessage: boolean = true;\n @Prop() searchPlaceholder: string = \"Search\";\n @Prop() selectAllLabel: string = \"Select all\";\n @Prop() expandLabel: string = \"Expand\";\n @Prop() collapseLabel: string = \"Collapse\";\n @Prop() ariaMultiSelectLabel: string = \"Multi-select dropdown\";\n @Prop() ariaMultiSelectLabelledBy: string = \"\";\n @Prop() ariaMultiSelectDescribedBy: string = \"\";\n @Prop() ariaSearchLabel: string = \"Search options\";\n @Prop() ariaClearLabel: string = \"Clear all selections\";\n @Prop() ariaToggleLabel: string = \"Toggle dropdown\";\n @Prop() ariaSelectAllLabel: string = \"Select all options\";\n @Prop() ariaExpandAllLabel: string = \"Expand all categories\";\n @Prop() ariaCollapseAllLabel: string = \"Collapse all categories\";\n\n @State() internalError: boolean = false;\n @State() internalErrorMessage: string;\n @State() persistentSelectedOptions: Option[] = [];\n @State() dropdownOpen = false;\n @State() dropdownFlipped: boolean;\n @State() searchTerm: string = '';\n\n @Event() ifxSelect: EventEmitter;\n @Event() ifxOpen: EventEmitter;\n\n @Element() el: HTMLElement;\n dropdownElement!: HTMLElement;\n\n @AttachInternals() internals: ElementInternals;\n private parseChildOptions(): Option[] {\n const options: Option[] = [];\n const childElements = Array.from(this.el.children);\n\n childElements.forEach((child, index) => {\n if (child.tagName === 'IFX-MULTISELECT-OPTION') {\n const option = this.parseOptionElement(child as HTMLElement, index);\n if (option) {\n options.push(option);\n }\n }\n });\n\n return options;\n }\n\n private parseOptionElement(element: HTMLElement, index: number): Option | null {\n const value = element.getAttribute('value') || `option-${index}`;\n const selected = element.hasAttribute('selected');\n const disabled = element.hasAttribute('disabled');\n const indeterminate = element.hasAttribute('indeterminate');\n\n const option: Option = {\n value,\n selected,\n disabled,\n indeterminate\n };\n\n const nestedOptions = Array.from(element.children)\n .filter(child => child.tagName === 'IFX-MULTISELECT-OPTION')\n .map((child, childIndex) => this.parseOptionElement(child as HTMLElement, childIndex))\n .filter(opt => opt !== null) as Option[];\n\n if (nestedOptions.length > 0) {\n option.children = nestedOptions;\n }\n\n return option;\n }\n\n loadInitialOptions() {\n this.internalError = this.error;\n this.internalErrorMessage = this.errorMessage;\n\n const allOptions = this.parseChildOptions();\n const initiallySelected = this.collectSelectedOptions(allOptions);\n const initiallySelectedNotInState = initiallySelected.filter(init =>\n !this.persistentSelectedOptions.some(opt => opt.value == init.value)\n );\n this.persistentSelectedOptions = [...this.persistentSelectedOptions, ...initiallySelectedNotInState];\n }\n\n private collectSelectedOptions(options: Option[]): Option[] {\n let selectedOptions: Option[] = [];\n\n for (const option of options) {\n if (option.selected) {\n if (option.children && option.children.length > 0) {\n selectedOptions = selectedOptions.concat(this.collectLeafOptions(option.children));\n } else {\n if (!selectedOptions.some(existingOption => existingOption.value === option.value)) {\n selectedOptions.push(option);\n }\n }\n } else {\n if (option.children && option.children.length > 0) {\n selectedOptions = selectedOptions.concat(this.collectSelectedOptions(option.children));\n }\n }\n }\n\n return selectedOptions;\n }\n\n private collectLeafOptions(children: Option[]): Option[] {\n let leafOptions = [];\n\n for (const child of children) {\n if (child.children && child.children.length > 0) {\n leafOptions = leafOptions.concat(this.collectLeafOptions(child.children));\n } else {\n leafOptions.push(child);\n }\n }\n return leafOptions;\n }\n\n handleSearch = debounce((targetElement: HTMLInputElement) => {\n const searchTerm = targetElement.value.toLowerCase();\n const isSearchActive = searchTerm !== '';\n\n this.searchTerm = searchTerm;\n\n const wrapper = this.el.shadowRoot.querySelector('.ifx-multiselect-wrapper');\n if (wrapper) {\n if (isSearchActive) {\n wrapper.classList.remove('active');\n } else {\n const searchField = this.el.shadowRoot.querySelector('ifx-search-field');\n const searchFieldHasFocus = searchField && searchField.matches(':focus-within');\n if (!searchFieldHasFocus) {\n wrapper.classList.add('active');\n }\n }\n }\n\n const optionsContainer = this.el.shadowRoot.querySelector('.ifx-multiselect-options');\n if (optionsContainer) {\n if (isSearchActive) {\n optionsContainer.classList.add('has-search-filter');\n } else {\n optionsContainer.classList.remove('has-search-filter');\n }\n }\n\n requestAnimationFrame(() => {\n const allOptions = this.el.querySelectorAll('ifx-multiselect-option');\n allOptions.forEach(option => {\n const searchEvent = new CustomEvent('ifx-search-filter', {\n detail: { searchTerm, isActive: isSearchActive }\n });\n option.dispatchEvent(searchEvent);\n });\n\n if (isSearchActive) {\n setTimeout(() => {\n const allOptions = this.el.querySelectorAll('ifx-multiselect-option');\n let visibleCount = 0;\n\n allOptions.forEach(option => {\n const style = window.getComputedStyle(option);\n const rect = option.getBoundingClientRect();\n\n if (style.display !== 'none' &&\n style.visibility !== 'hidden' &&\n style.opacity !== '0' &&\n rect.height > 0) {\n visibleCount++;\n }\n });\n\n const optionsContainer = this.el.shadowRoot.querySelector('.ifx-multiselect-options');\n if (optionsContainer) {\n if (visibleCount === 0) {\n optionsContainer.classList.add('show-no-results');\n } else {\n optionsContainer.classList.remove('show-no-results');\n }\n }\n }, 200);\n } else {\n const optionsContainer = this.el.shadowRoot.querySelector('.ifx-multiselect-options');\n if (optionsContainer) {\n optionsContainer.classList.remove('show-no-results');\n }\n }\n });\n }, 150);\n\n private handleSearchFocus(hasFocus: boolean) {\n const wrapper = this.el.shadowRoot.querySelector('.ifx-multiselect-wrapper');\n if (wrapper) {\n if (hasFocus || this.searchTerm !== '') {\n wrapper.classList.remove('active');\n } else {\n wrapper.classList.add('active');\n }\n }\n }\n\n positionDropdown() {\n const wrapperRect = this.el.shadowRoot.querySelector('.ifx-multiselect-wrapper')?.getBoundingClientRect();\n const spaceBelow = window.innerHeight - wrapperRect.bottom;\n const spaceAbove = wrapperRect.top;\n\n if ((spaceAbove > spaceBelow && wrapperRect.height > spaceBelow) || (wrapperRect.bottom > window.innerHeight)) {\n this.dropdownFlipped = true;\n } else {\n this.dropdownFlipped = false;\n }\n }\n\n private pendingSelectionUpdate = false;\n public updateSlotBasedSelections(emitEvent: boolean = false) {\n const allOptionElements = this.el.querySelectorAll('ifx-multiselect-option');\n const selectedLeafOptions: Option[] = [];\n\n allOptionElements.forEach((optionEl: any) => {\n const instance = optionEl['__stencil_instance'];\n if (instance && instance.selected && !instance.hasChildren) {\n selectedLeafOptions.push({\n value: instance.value,\n selected: true,\n disabled: instance.disabled\n });\n }\n });\n\n this.persistentSelectedOptions = selectedLeafOptions;\n\n if (emitEvent) {\n this.ifxSelect.emit(this.persistentSelectedOptions);\n }\n }\n\n private updateInitialParentStates() {\n const allOptionElements = this.el.querySelectorAll('ifx-multiselect-option');\n const optionsByDepth = Array.from(allOptionElements)\n .map(el => ({\n element: el,\n instance: (el as any)['__stencil_instance'],\n depth: parseInt(el.getAttribute('data-level') || '0')\n }))\n .filter(item => item.instance)\n .sort((a, b) => b.depth - a.depth);\n\n optionsByDepth.forEach(({ instance }) => {\n if (instance.hasChildren) {\n this.updateParentState(instance);\n }\n });\n }\n\n private updateParentState(parentInstance: any) {\n const directChildren = Array.from(parentInstance.el.children as HTMLCollection)\n .filter((child: Element) => child.tagName === 'IFX-MULTISELECT-OPTION')\n .map(child => (child as any)['__stencil_instance'])\n .filter(instance => instance !== null);\n\n const selectedCount = directChildren.filter(child => child.selected).length;\n const indeterminateCount = directChildren.filter(child => child.indeterminate).length;\n const totalCount = directChildren.length;\n\n if (selectedCount === totalCount && indeterminateCount === 0) {\n parentInstance.selected = true;\n parentInstance.indeterminate = false;\n } else if (selectedCount === 0 && indeterminateCount === 0) {\n parentInstance.selected = false;\n parentInstance.indeterminate = false;\n } else {\n parentInstance.selected = false;\n parentInstance.indeterminate = true;\n }\n }\n\n async componentDidLoad() {\n if(!isNestedInIfxComponent(this.el)) { \n const framework = detectFramework();\n trackComponent('ifx-multiselect', await framework)\n }\n setTimeout(() => {\n this.positionDropdown();\n }, 500);\n\n this.el.addEventListener('ifx-option-changed', () => {\n if (!this.pendingSelectionUpdate) {\n this.pendingSelectionUpdate = true;\n requestAnimationFrame(() => {\n this.updateSlotBasedSelections(true);\n setTimeout(() => {\n this.pendingSelectionUpdate = false;\n }, 0);\n });\n }\n });\n\n setTimeout(() => {\n this.updateSlotBasedSelections(false);\n this.updateInitialParentStates();\n }, 100);\n }\n\n componentWillLoad() {\n this.loadInitialOptions();\n }\n\n @Watch('error')\n updateInternalError() {\n this.internalError = this.error;\n }\n\n @Watch('errorMessage')\n updateInternalErrorMessage() {\n this.internalErrorMessage = this.errorMessage;\n }\n\n @Watch('persistentSelectedOptions')\n onSelectionChange(newValue: Option[], _: Option[]) {\n const formData = new FormData();\n newValue.forEach(option => formData.append(this.name, option.value));\n this.internals.setFormValue(formData);\n }\n collapseAll() {\n const allOptionElements = this.el.querySelectorAll('ifx-multiselect-option');\n allOptionElements.forEach((optionEl: any) => {\n const instance = optionEl['__stencil_instance'];\n if (instance && instance.hasChildren) {\n instance.isExpanded = false;\n }\n });\n }\n\n expandAll() {\n const allOptionElements = this.el.querySelectorAll('ifx-multiselect-option');\n allOptionElements.forEach((optionEl: any) => {\n const instance = optionEl['__stencil_instance'];\n if (instance && instance.hasChildren) {\n instance.isExpanded = true;\n }\n });\n }\n\n selectAll() {\n this.resetSearch();\n\n const allOptionElements = this.el.querySelectorAll('ifx-multiselect-option');\n\n allOptionElements.forEach((optionEl: any) => {\n const instance = optionEl['__stencil_instance'];\n if (instance) {\n if (instance.hasChildren) {\n instance.isExpanded = true;\n } else {\n instance.selected = true;\n }\n }\n });\n\n setTimeout(() => {\n this.updateInitialParentStates();\n this.updateSlotBasedSelections(false);\n this.ifxSelect.emit(this.persistentSelectedOptions);\n }, 0);\n }\n\n @Method()\n async clearSelection() {\n const allOptionElements = this.el.querySelectorAll('ifx-multiselect-option');\n allOptionElements.forEach((optionEl: any) => {\n const instance = optionEl['__stencil_instance'];\n if (instance) {\n instance.selected = false;\n instance.indeterminate = false;\n if (instance.hasChildren) {\n instance.isExpanded = false;\n }\n }\n });\n\n this.persistentSelectedOptions = [];\n\n setTimeout(() => {\n this.updateSlotBasedSelections(false);\n this.ifxSelect.emit(this.persistentSelectedOptions);\n }, 0);\n }\n\n handleDocumentClick = (event: Event) => {\n const path = event.composedPath();\n if (!path.includes(this.dropdownElement)) {\n this.dropdownOpen = false;\n document.removeEventListener('click', this.handleDocumentClick);\n this.resetSearch();\n this.ifxOpen.emit(this.dropdownOpen);\n }\n }\n\n toggleDropdown() {\n this.dropdownOpen = !this.dropdownOpen;\n setTimeout(() => {\n if (this.dropdownOpen) {\n document.addEventListener('click', this.handleDocumentClick);\n } else {\n this.resetSearch();\n }\n this.ifxOpen.emit(this.dropdownOpen);\n }, 0);\n }\n\n private resetSearch() {\n this.searchTerm = '';\n\n const searchField = this.el.shadowRoot.querySelector('ifx-search-field') as any;\n if (searchField) {\n searchField.value = '';\n }\n\n const optionsContainer = this.el.shadowRoot.querySelector('.ifx-multiselect-options');\n if (optionsContainer) {\n optionsContainer.classList.remove('has-search-filter');\n }\n\n const allOptions = this.el.querySelectorAll('ifx-multiselect-option');\n allOptions.forEach(option => {\n const searchEvent = new CustomEvent('ifx-search-filter', {\n detail: { searchTerm: '', isActive: false }\n });\n option.dispatchEvent(searchEvent);\n });\n }\n\n handleWrapperClick(event: MouseEvent) {\n this.positionDropdown();\n\n if (event.currentTarget === event.target) {\n this.toggleDropdown();\n }\n }\n\n handleKeyDown(event: KeyboardEvent) {\n if (this.disabled) return;\n\n // If dropdown is closed, only allow opening\n if (!this.dropdownOpen) {\n switch (event.code) {\n case 'Enter':\n case 'Space':\n case 'ArrowDown':\n event.preventDefault();\n this.toggleDropdown();\n break;\n }\n return;\n }\n\n // Dropdown is open - handle navigation and controls\n switch (event.code) {\n case 'Escape':\n event.preventDefault();\n this.toggleDropdown();\n break;\n case 'Enter':\n case 'Space':\n // Don't close dropdown when pressing space/enter in controls area\n const target = event.target as HTMLElement;\n if (!target.closest('.ifx-multiselect-dropdown-functions')) {\n event.preventDefault();\n this.toggleDropdown();\n }\n break;\n case 'ArrowDown':\n case 'ArrowUp':\n // Focus first/last option for navigation\n event.preventDefault();\n this.focusFirstOption();\n break;\n }\n }\n\n private focusFirstOption() {\n const firstOption = this.el.querySelector('ifx-multiselect-option:not(.search-hidden)');\n if (firstOption) {\n const labelElement = firstOption.shadowRoot?.querySelector('.option-label') as HTMLElement;\n labelElement?.focus();\n }\n }\n\n private renderSelectAll() {\n const allOptionElements = this.el.querySelectorAll('ifx-multiselect-option');\n const leafOptions = Array.from(allOptionElements).filter((el: any) => !el.hasChildren);\n const selectedLeafOptions = Array.from(allOptionElements).filter((el: any) => !el.hasChildren && el.selected);\n\n const allSelected = leafOptions.length > 0 && selectedLeafOptions.length === leafOptions.length;\n\n const toggleSelectAll = (event?: Event) => {\n if (event) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n if (allSelected) {\n this.clearSelection();\n } else {\n this.selectAll();\n }\n };\n\n return (\n <div class=\"select-all-wrapper\">\n <ifx-checkbox\n id='selectAll'\n checked={allSelected}\n size=\"s\"\n aria-label={this.ariaSelectAllLabel}\n onClick={toggleSelectAll}\n onKeyDown={(e) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n e.stopPropagation();\n toggleSelectAll(e);\n }\n }}\n >\n {this.selectAllLabel}\n </ifx-checkbox>\n </div>\n );\n }\n\n private renderNoResultsMessage() {\n return (\n <div class=\"ifx-multiselect-no-results\">\n <div class=\"no-results-content\">\n <span class=\"no-results-text\">{this.noResultsMessage}</span>\n </div>\n </div>\n );\n }\n\n render() {\n const selectedOptionsLabels = this.persistentSelectedOptions\n .map((option) => {\n const optionElement = this.el.querySelector(`ifx-multiselect-option[value=\"${option.value}\"]`);\n return optionElement?.textContent?.trim() || option.value;\n })\n .join(', ');\n\n const hasSelections = this.persistentSelectedOptions.length > 0;\n\n let isFlatMultiselect = false;\n const allOptionElements = this.el.querySelectorAll('ifx-multiselect-option');\n if (allOptionElements.length > 0) {\n isFlatMultiselect = Array.from(allOptionElements).every(option => option.children.length === 0);\n }\n\n return (\n <div class={`ifx-multiselect-container`} ref={el => this.dropdownElement = el as HTMLElement}>\n {\n this.label ?\n <div class=\"ifx-label-wrapper\">\n <span>{this.label}</span>\n </div> : null\n }\n <div class={`ifx-multiselect-wrapper\n ${this.dropdownOpen ? 'active' : ''}\n ${this.dropdownFlipped ? 'is-flipped' : ''}\n ${this.internalError ? 'error' : \"\"}\n ${this.disabled ? 'disabled' : \"\"}`}\n role=\"combobox\"\n aria-label={this.ariaMultiSelectLabel}\n aria-labelledby={this.ariaMultiSelectLabelledBy || undefined}\n aria-describedby={this.ariaMultiSelectDescribedBy || undefined}\n aria-expanded={this.dropdownOpen}\n aria-haspopup=\"listbox\"\n aria-disabled={this.disabled}\n tabindex=\"0\"\n onClick={this.disabled ? undefined : (event) => this.handleWrapperClick(event)}\n onKeyDown={this.disabled ? undefined : (event) => this.handleKeyDown(event)} >\n <div class={`ifx-multiselect-input\n ${hasSelections ? '' : 'placeholder'}\n `}\n onClick={this.disabled ? undefined : () => this.toggleDropdown()}\n >\n {hasSelections ? selectedOptionsLabels : this.placeholder}\n </div>\n {this.dropdownOpen && (\n <div class=\"ifx-multiselect-dropdown-menu\">\n\n {(this.showSearch || this.showSelectAll || (this.showExpandCollapse && !isFlatMultiselect)) && (\n <div class=\"ifx-multiselect-dropdown-functions\" onClick={(e) => e.stopPropagation()}>\n {this.showSearch && (\n <div class=\"ifx-multiselect-dropdown-search\">\n <ifx-search-field\n class=\"search-input\"\n placeholder={this.searchPlaceholder}\n size=\"s\"\n show-delete-icon=\"true\"\n aria-label={this.ariaSearchLabel}\n onKeyDown={(e) => { e.stopPropagation() }}\n onIfxInput={(event) => this.handleSearch(event.target)}\n onFocus={() => this.handleSearchFocus(true)}\n onBlur={() => this.handleSearchFocus(false)}\n ></ifx-search-field>\n </div>\n )}\n\n <div class=\"ifx-multiselect-dropdown-controls\">\n {this.showSelectAll && this.renderSelectAll()}\n {this.showExpandCollapse && !isFlatMultiselect && (\n <div class=\"expand-collapse-controls\">\n <span\n class=\"control-item\"\n role=\"button\"\n tabIndex={0}\n aria-label={this.ariaExpandAllLabel}\n onClick={(e) => { e.stopPropagation(); this.expandAll(); }}\n onKeyDown={(e) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n e.stopPropagation();\n this.expandAll();\n }\n }}\n >\n {this.expandLabel}\n </span>\n <span\n class=\"control-item\"\n role=\"button\"\n tabIndex={0}\n aria-label={this.ariaCollapseAllLabel}\n onClick={(e) => { e.stopPropagation(); this.collapseAll(); }}\n onKeyDown={(e) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n e.stopPropagation();\n this.collapseAll();\n }\n }}\n >\n {this.collapseLabel}\n </span>\n </div>\n )}\n </div>\n </div>\n )}\n\n <div class=\"ifx-multiselect-options\" role=\"listbox\" aria-multiselectable=\"true\">\n <slot />\n {this.searchTerm && this.showNoResultsMessage && this.renderNoResultsMessage()}\n </div>\n </div>\n )}\n <div class='ifx-multiselect-icon-container'>\n\n {/* Clear Button - will show only if there's a selection */}\n {this.persistentSelectedOptions.length > 0 && (\n <div class={`ifx-clear-button ${!this.showClearButton ? 'hide' : ''}`} onClick={this.disabled ? undefined : () => this.clearSelection()}>\n <ifx-icon icon=\"cRemove16\"></ifx-icon>\n </div>\n )}\n <div class=\"icon-wrapper-up\" onClick={this.disabled ? undefined : () => this.toggleDropdown()}>\n <ifx-icon\n key='icon-up'\n icon='chevron-up-16'></ifx-icon>\n </div>\n <div class=\"icon-wrapper-down\" onClick={this.disabled ? undefined : () => this.toggleDropdown()}>\n <ifx-icon\n key='icon-down'\n icon='chevron-down-16'></ifx-icon>\n </div>\n </div>\n\n </div>\n {\n this.internalError ?\n <div class=\"ifx-error-message-wrapper\">\n <span>{this.internalErrorMessage}</span>\n </div> : null\n }\n </div>\n );\n }\n}\n"]}
|
@@ -166,10 +166,6 @@ export class Choices {
|
|
166
166
|
}
|
167
167
|
}
|
168
168
|
componentWillLoad() {
|
169
|
-
if (!isNestedInIfxComponent(this.root)) {
|
170
|
-
const framework = detectFramework();
|
171
|
-
trackComponent('ifx-select', framework);
|
172
|
-
}
|
173
169
|
this.handleCloseButton();
|
174
170
|
}
|
175
171
|
componentWillUpdate() {
|
@@ -190,8 +186,12 @@ export class Choices {
|
|
190
186
|
const componentWrapper = this.root.querySelector('.ifx-choices__wrapper');
|
191
187
|
this.resizeObserver.observe(componentWrapper);
|
192
188
|
}
|
193
|
-
componentDidLoad() {
|
189
|
+
async componentDidLoad() {
|
194
190
|
this.init();
|
191
|
+
if (!isNestedInIfxComponent(this.root)) {
|
192
|
+
const framework = detectFramework();
|
193
|
+
trackComponent('ifx-select', await framework);
|
194
|
+
}
|
195
195
|
this.addEventListenersToHandleCustomFocusAndActiveState();
|
196
196
|
this.handleDeleteIcon();
|
197
197
|
this.addResizeObserver();
|
@@ -226,9 +226,9 @@ export class Choices {
|
|
226
226
|
// destroy choices element to restore previous dom structure
|
227
227
|
// so vdom can replace the element correctly
|
228
228
|
this.destroy();
|
229
|
-
return (h("div", { key: '
|
229
|
+
return (h("div", { key: '5316c6053e572cd8acce284c09bc937b55fea6ed', class: `ifx-select-container` }, this.label ? (h("div", { class: "ifx-label-wrapper" }, h("span", null, this.label))) : null, h("div", { key: '04b50b42bd3ca900ffb302ae0a0799d736f4b24d', class: `${choicesWrapperClass}
|
230
230
|
${this.disabled ? 'disabled' : ''}
|
231
|
-
${this.error ? 'error' : ''}`, onClick: this.disabled ? undefined : (e) => this.handleWrapperClick(e), onKeyDown: event => this.handleKeyDown(event) }, h("select", Object.assign({ key: '
|
231
|
+
${this.error ? 'error' : ''}`, onClick: this.disabled ? undefined : (e) => this.handleWrapperClick(e), onKeyDown: event => this.handleKeyDown(event) }, h("select", Object.assign({ key: '48c9eaf9da4ae1633f3f197f8f64c3df67647da1', class: 'single__select-input-field', disabled: this.disabled }, attributes, { "data-trigger": true, onChange: () => this.handleChange() }), this.createSelectOptions(this.options)), h("div", { key: '9756bf23cb0b95f646f560b56772ea691e8da6bc', class: 'single__select-icon-container' }, this.optionIsSelected && (h("div", { key: '0abc1ff9e01aec2e91d3ca1dc143c5c882a97980', class: `ifx-choices__icon-wrapper-delete ${!this.showClearButton ? 'hide' : ''}` }, h("ifx-icon", { key: '29411d95be9e12e90d48303238342e54f567de6b', icon: "cRemove16", onClick: () => this.clearSelection() }))), h("div", { key: '878eecbe35f881a895f8a5222ecb463d2e5b3d16', class: "ifx-choices__icon-wrapper-up" }, h("ifx-icon", { key: "icon-up", icon: "chevron-up-16" })), h("div", { key: '3a2bb1f1fa2075784e54f19f0b951036636e7622', class: "ifx-choices__icon-wrapper-down" }, h("ifx-icon", { key: "icon-down", icon: "chevron-down-16" })))), this.error ? (h("div", { class: "ifx-error-message-wrapper" }, h("span", null, this.errorMessage))) : null));
|
232
232
|
}
|
233
233
|
toggleDropdown() {
|
234
234
|
const div = this.root.querySelector('.ifx-choices__wrapper');
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"select.js","sourceRoot":"","sources":["../../../../src/components/select/single-select/select.tsx"],"names":[],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { h, Component, Element, Method, Prop, Event, EventEmitter, State } from '@stencil/core';\nimport { trackComponent } from '../../../global/utils/tracking'; \nimport { isNestedInIfxComponent } from '../../../global/utils/dom-utils';\nimport { detectFramework } from '../../../global/utils/framework-detection';\nimport { HTMLStencilElement, Listen, Watch } from '@stencil/core/internal';\nimport ChoicesJs from 'choices.js';\n\nimport {\n AjaxFn,\n ClassNames,\n FuseOptions,\n IChoicesProps,\n IChoicesMethods,\n ItemFilterFn,\n NoResultsTextFn,\n NoChoicesTextFn,\n AddItemTextFn,\n MaxItemTextFn,\n SortFn,\n OnInit,\n OnCreateTemplates,\n UniqueItemText,\n ValueCompareFunction,\n CustomAddItemText,\n} from './interfaces';\nimport { filterObject, isDefined, isJSONParseable } from './utils';\n\n@Component({\n tag: 'ifx-select',\n styleUrl: 'select.scss',\n // shadow: true, //with shadow dom enabled, styles to the external choicesJs library cant be applied.\n})\nexport class Choices implements IChoicesProps, IChoicesMethods {\n @Prop() public value: string;\n @Prop() public name: string;\n @Prop() public items: Array<any>;\n @Prop() public choices: Array<any> | string;\n @Prop() public renderChoiceLimit: number;\n @Prop() public maxItemCount: number;\n @Prop() public addItems: boolean;\n @Prop() public removeItems: boolean;\n @Prop() public removeItemButton: boolean;\n @Prop() public editItems: boolean;\n @Prop() public duplicateItemsAllowed: boolean;\n @Prop() public delimiter: string;\n @Prop() public paste: boolean;\n @Prop() public showSearch: boolean;\n @Prop() public searchChoices: boolean;\n @Prop() public searchFields: Array<string> | string;\n @Prop() public searchFloor: number;\n @Prop() public searchResultLimit: number;\n @Prop() public position: 'auto' | 'top' | 'bottom';\n @Prop() public resetScrollPosition: boolean;\n @Prop() public shouldSort: boolean;\n @Prop() public shouldSortItems: boolean;\n @Prop() public sorter: SortFn;\n @Prop() public placeholder: boolean | string;\n @Prop() public searchPlaceholderValue: string;\n @Prop() public prependValue: string;\n @Prop() public appendValue: string;\n @Prop() public renderSelectedChoices: 'always' | 'auto';\n @Prop() public loadingText: string;\n @Prop() public noResultsText: string | NoResultsTextFn;\n @Prop() public noChoicesText: string | NoChoicesTextFn;\n @Prop() public itemSelectText: '';\n @Prop() public addItemText: string | AddItemTextFn;\n @Prop() public maxItemText: string | MaxItemTextFn;\n @Prop() public uniqueItemText: UniqueItemText;\n @Prop() public classNames: ClassNames;\n @Prop() public fuseOptions: FuseOptions;\n @Prop() public addItemFilter: string | RegExp | ItemFilterFn;\n @Prop() public customAddItemText: CustomAddItemText;\n @Prop() public callbackOnInit: OnInit;\n @Prop() public callbackOnCreateTemplates: OnCreateTemplates;\n @Prop() public valueComparer: ValueCompareFunction;\n //custom ifx props\n @Prop() error: boolean = false;\n @Prop() errorMessage: string = 'Error';\n @Prop() label: string = '';\n @Prop() disabled: boolean = false;\n @Prop() placeholderValue: string = 'Placeholder';\n @Event() ifxSelect: EventEmitter<CustomEvent>;\n @Event() ifxInput: EventEmitter<CustomEvent>;\n @Prop({ mutable: true }) options: any[] | string;\n @Prop() size: string = 'medium (40px)';\n @State() selectedOption: any | null = null;\n @State() optionIsSelected: boolean = false;\n @Prop() showClearButton: boolean = true;\n\n private resizeObserver: ResizeObserver;\n private previousOptions: any[] = [];\n\n @Element() private readonly root: HTMLElement;\n private choice;\n private element;\n\n @Watch('disabled')\n watchDisabled(newValue: boolean) {\n if (newValue) {\n this.choice.disable();\n } else {\n this.choice.enable();\n }\n }\n\n @Method()\n async clearSelection() {\n this.clearInput()\n this.clearSelectField()\n this.setPreSelected(null);\n this.closeDropdown();\n this.optionIsSelected = false;\n }\n\n clearSelectField() { \n this.selectedOption = null;\n this.ifxSelect.emit(null);\n }\n\n @Method()\n async handleChange() {\n this.ifxSelect.emit(this.choice.getValue());\n this.selectedOption = this.choice.getValue(); //store the selected option to reflect it in the template function\n this.setPreSelected(this.selectedOption.value); //set previously selected items from the input array to false and the new selection to true\n this.closeDropdown();\n }\n\n @Method()\n public async highlightItem(item: HTMLElement, runEvent?: boolean) {\n this.choice.highlightItem(item, runEvent);\n\n return this;\n }\n\n @Method()\n public async unhighlightItem(item: HTMLElement) {\n this.choice.unhighlightItem(item);\n\n return this;\n }\n\n @Method()\n public async highlightAll() {\n this.choice.highlightAll();\n\n return this;\n }\n\n @Method()\n public async unhighlightAll() {\n this.choice.unhighlightAll();\n\n return this;\n }\n\n @Method()\n public async removeActiveItemsByValue(value: string) {\n this.choice.removeActiveItemsByValue(value);\n return this;\n }\n\n @Method()\n public async removeActiveItems(excludedId?: number) {\n this.choice.removeActiveItems(excludedId);\n\n return this;\n }\n\n @Method()\n public async removeHighlightedItems(runEvent?: boolean) {\n this.choice.removeHighlightedItems(runEvent);\n\n return this;\n }\n\n @Method()\n public async showDropdown(focusInput?: boolean) {\n this.choice.showDropdown(focusInput);\n return this;\n }\n\n @Method()\n public async hideDropdown(blurInput?: boolean) {\n this.choice.hideDropdown(blurInput);\n\n return this;\n }\n\n @Method()\n public async getValue(valueOnly?: boolean): Promise<string | Array<string>> {\n return this.choice.getValue(valueOnly);\n }\n\n @Method()\n public async setValue(args: Array<any>) {\n this.choice.setValue(args);\n\n return this;\n }\n\n @Method()\n public async setChoiceByValue(value: string | Array<string>) {\n this.choice.setChoiceByValue(value);\n\n return this;\n }\n\n @Method()\n public async setChoices(choices: any[] | string, value: string, label: string, replaceChoices?: boolean) {\n let listOfChoices;\n if (typeof choices === 'string') {\n try {\n if (!isJSONParseable(choices)) {\n //meaning the input string comes from storybook as a non valid json string to be displayed in a beautified version on storybook\n choices = choices\n .replace(/'/g, '\"')\n .replace(/\"false\"/g, 'false')\n .replace(/\"true\"/g, 'true');\n }\n listOfChoices = [...JSON.parse(choices)];\n } catch (err) {\n console.error('Failed to parse choices:', err);\n }\n } else if (Array.isArray(choices) || typeof choices === 'object') {\n listOfChoices = [...choices];\n } else {\n console.error('Unexpected value for choices:', this.options);\n }\n\n this.choice.setChoices(listOfChoices, value, label, replaceChoices);\n return this;\n }\n\n @Method()\n public async clearChoices() {\n this.choice.clearChoices();\n\n return this;\n }\n\n @Method()\n public async clearStore() {\n this.choice.clearStore();\n\n return this;\n }\n\n @Method()\n public async clearInput() {\n this.choice.clearInput();\n\n return this;\n }\n\n @Method()\n public async ajax(fn: AjaxFn) {\n this.choice.ajax(fn);\n\n return this;\n }\n\n @Method()\n async handleDeleteIcon() {\n const width = this.root.offsetWidth;\n const deleteIconWrapper = this.root.querySelector('.ifx-choices__icon-wrapper-delete');\n if(deleteIconWrapper) { \n if (width <= 180) {\n deleteIconWrapper.classList.add('hide')\n } else if(this.showClearButton) { \n deleteIconWrapper.classList.remove('hide')\n }\n }\n }\n\n\n handleCloseButton() { \n if(typeof this.options === 'string') { \n const optionsToArray = JSON.parse(this.options);\n const optionIsSelected = optionsToArray.find(option => option.selected === true)\n if(optionIsSelected) { \n this.optionIsSelected = true;\n } else { \n this.optionIsSelected = false;\n }\n } else if(this.options && Array.isArray(this.options)) { \n const optionIsSelected = this.options.find(option => option.selected === true)\n if(optionIsSelected) { \n this.optionIsSelected = true;\n } else { \n this.optionIsSelected = false;\n }\n }\n }\n\n protected componentWillLoad() {\n if(!isNestedInIfxComponent(this.root)) { \n const framework = detectFramework();\n trackComponent('ifx-select', framework)\n }\n this.handleCloseButton()\n }\n\n protected componentWillUpdate() { \n this.handleCloseButton()\n this.previousOptions = [...this.options];\n const optionsAreEqual = this.isEqual(this.options, this.previousOptions);\n if (this.options && !optionsAreEqual) {\n this.clearSelectField();\n }\n }\n\n isEqual(a: any, b: any[]) {\n return JSON.stringify(a) === JSON.stringify(b);\n }\n\n\n addResizeObserver() { \n this.resizeObserver = new ResizeObserver(() => {\n this.handleDeleteIcon();\n });\n \n const componentWrapper = this.root.querySelector('.ifx-choices__wrapper');\n this.resizeObserver.observe(componentWrapper);\n }\n\n protected componentDidLoad() {\n this.init();\n this.addEventListenersToHandleCustomFocusAndActiveState();\n this.handleDeleteIcon();\n this.addResizeObserver()\n }\n\n protected componentDidUpdate() {\n this.init();\n this.handleDeleteIcon()\n }\n\n protected disconnectedCallback() {\n this.destroy();\n\n if (this.resizeObserver) {\n this.resizeObserver.disconnect();\n this.resizeObserver = null;\n }\n }\n\n private handleWrapperClick(event: MouseEvent) {\n const target = event.target as HTMLElement;\n const isSearchInput = target.classList.contains('choices__input') || target.closest('.choices__input');\n const isDropdownItem = target.closest('.choices__list--dropdown .choices__item');\n \n // Only toggle dropdown if clicking on wrapper itself\n if (!isSearchInput && !isDropdownItem) {\n this.toggleDropdown();\n }\n }\n\n protected render(): any {\n const attributes = {\n 'data-selector': 'root',\n 'name': this.name || null,\n // 'remove-item-button': false,\n };\n const choicesWrapperClass = `ifx-choices__wrapper ${this.getSizeClass()}`;\n\n // destroy choices element to restore previous dom structure\n // so vdom can replace the element correctly\n this.destroy();\n\n return (\n <div class={`ifx-select-container`}>\n {this.label ? (\n <div class=\"ifx-label-wrapper\">\n <span>{this.label}</span>\n </div>\n ) : null}\n <div\n class={`${choicesWrapperClass} \n ${this.disabled ? 'disabled' : ''} \n ${this.error ? 'error' : ''}`}\n onClick={this.disabled ? undefined : (e) => this.handleWrapperClick(e)}\n onKeyDown={event => this.handleKeyDown(event)}\n >\n <select class='single__select-input-field' disabled = {this.disabled} {...attributes} data-trigger onChange={() => this.handleChange()}>\n {this.createSelectOptions(this.options)}\n </select>\n\n <div class='single__select-icon-container'>\n { this.optionIsSelected && (\n <div class={`ifx-choices__icon-wrapper-delete ${!this.showClearButton ? 'hide' : ''}`}>\n <ifx-icon icon=\"cRemove16\" onClick={() => this.clearSelection()}></ifx-icon>\n </div>\n )}\n <div class=\"ifx-choices__icon-wrapper-up\">\n <ifx-icon key=\"icon-up\" icon=\"chevron-up-16\"></ifx-icon>\n </div>\n <div class=\"ifx-choices__icon-wrapper-down\">\n <ifx-icon key=\"icon-down\" icon=\"chevron-down-16\"></ifx-icon>\n </div>\n </div>\n </div>\n {this.error ? (\n <div class=\"ifx-error-message-wrapper\">\n <span>{this.errorMessage}</span>\n </div>\n ) : null}\n </div>\n );\n }\n\n toggleDropdown() {\n const div = this.root.querySelector('.ifx-choices__wrapper') as HTMLDivElement;\n if (div.classList.contains('active') || this.choice.dropdown.isActive) {\n this.hideDropdown();\n div.classList.remove('active');\n } else {\n this.choice.showDropdown();\n div.classList.add('active');\n }\n const choicesElement = this.root.querySelector('.choices');\n choicesElement.classList.add('is-focused'); // Add the 'is-focused' class, cause a click on the wrapper (and not the embedded select element) doesnt add this automatically to the choices instance\n }\n\n closeDropdown() {\n const ifxChoicesWrapper = this.root.querySelector('.ifx-choices__wrapper') as HTMLDivElement;\n ifxChoicesWrapper.classList.remove('active');\n }\n\n @Listen('mousedown', { target: 'document' })\n handleOutsideClick(event: MouseEvent) {\n const path = event.composedPath();\n const ifxChoicesContainer = this.root.querySelector('.ifx-choices__wrapper') as HTMLDivElement;\n\n if (!path.includes(this.root)) {\n ifxChoicesContainer.classList.remove('active');\n }\n }\n\n handleKeyDown(event: KeyboardEvent) {\n if (this.disabled) return;\n\n const isSearchInput = (event.target as HTMLElement).classList.contains('choices__input');\n\n // If the event originated from the search input and the key is 'Space', do nothing.\n if (isSearchInput && event.code === 'Space') {\n return;\n }\n\n if (event.code === 'Enter' || (event.code === 'Space' && !isSearchInput)) {\n this.toggleDropdown();\n }\n\n // Only prevent default space behavior when it's not from the search input.\n if (event.code === 'Space' && !isSearchInput) {\n event.preventDefault(); // Prevent default page scrolling.\n }\n }\n\n getSizeClass() {\n return `${this.size}` === 's' ? 'small-select' : 'medium-select';\n }\n\n private init() {\n const props = {\n allowHTML: true,\n items: this.items,\n choices: this.choices,\n renderChoiceLimit: this.renderChoiceLimit,\n maxItemCount: this.maxItemCount,\n addItems: this.addItems,\n removeItems: this.removeItems,\n removeItemButton: this.removeItemButton,\n editItems: this.editItems,\n duplicateItemsAllowed: this.duplicateItemsAllowed,\n delimiter: this.delimiter,\n paste: this.paste,\n searchEnabled: this.showSearch,\n searchChoices: this.searchChoices,\n searchFields: this.searchFields,\n searchFloor: this.searchFloor,\n searchResultLimit: this.searchResultLimit,\n position: this.position,\n resetScrollPosition: this.resetScrollPosition,\n shouldSort: false, // choices/groups will appear in the order they were given.\n shouldSortItems: this.shouldSortItems,\n sorter: this.sorter,\n placeholder: this.placeholder,\n searchPlaceholderValue: this.searchPlaceholderValue,\n prependValue: this.prependValue,\n appendValue: this.appendValue,\n renderSelectedChoices: this.renderSelectedChoices,\n loadingText: this.loadingText,\n noResultsText: this.noResultsText,\n noChoicesText: this.noChoicesText,\n itemSelectText: this.itemSelectText,\n addItemText: this.addItemText,\n maxItemText: this.maxItemText,\n uniqueItemText: this.uniqueItemText,\n classNames: this.classNames,\n fuseOptions: this.fuseOptions,\n callbackOnInit: this.callbackOnInit,\n callbackOnCreateTemplates: this.callbackOnCreateTemplates,\n valueComparer: this.valueComparer,\n addItemFilter: this.addItemFilter,\n customAddItemText: this.customAddItemText,\n };\n\n const settings = filterObject(props, isDefined);\n\n //type check\n const element = this.root.querySelector('[data-selector=\"root\"]');\n if (element instanceof HTMLInputElement || element instanceof HTMLSelectElement) {\n // this.choice = new ChoicesJs(element, settings); //standard, without using custom templates\n const self = this; // save the context of this in a variable outside of the function to access it in the following\n\n this.choice = new ChoicesJs(\n element,\n Object.assign({}, settings, {\n callbackOnCreateTemplates: function (template) {\n return {\n //modifying the selected item template\n item: ({ classNames }, data) => {\n let removeButtonHTML = '';\n\n if (data.placeholder && !self.selectedOption?.value) {\n // For placeholders, use data-id=\"placeholder\"\n return template(`\n <div class=\"choices__placeholder\" data-item data-id=\"${data.id}\" data-value=\"${data.value}\" ${data.disabled ? 'aria-disabled=\"true\"' : ''}>\n ${data.label === undefined ? this.placeholderValue : data.label}\n ${removeButtonHTML}\n </div>\n `);\n } else {\n // For non-placeholder items, use the actual data ID\n return template(`\n <div class=\"${classNames.item} ${data.highlighted ? classNames.highlightedState : classNames.itemSelectable}\" \n data-item \n data-id=\"${self.selectedOption?.id !== undefined ? self.selectedOption?.id : self.choice.getValue().id}\" \n data-value=\"${self.selectedOption?.value !== undefined ? self.selectedOption?.value : self.choice.getValue().value}\" \n ${data.disabled ? 'aria-disabled=\"true\"' : ''}>\n <span>${self.selectedOption?.label !== undefined ? self.selectedOption?.label : self.choice.getValue().label}</span>\n <!-- Add your remove button here if needed -->\n </div>\n `);\n }\n },\n input: ({ classNames }) => {\n return template(`\n <input type=\"search\"\n class=\"${classNames.input} ${classNames.inputCloned} ${self.getSizeClass()}\"\n autocomplete=\"off\"\n autocapitalize=\"off\"\n spellcheck=\"false\"\n role=\"textbox\"\n aria-autocomplete=\"list\"\n aria-label=\"${this.showSearch ? this.searchPlaceholderValue : ''}\" > \n `);\n },\n\n //modifying the template of each item in the options list\n choice: ({ classNames }, data) => {\n return template(`\n <div class=\"${classNames.item} ${classNames.itemChoice} ${self.getSizeClass()} \n ${data.selected || self.selectedOption?.value === data.value || self.getPreSelected(self)?.value === data.value ? 'selected' : ''} \n ${data.placeholder ? classNames.placeholder : ''} \n ${data.disabled ? classNames.itemDisabled : classNames.itemSelectable} \n role=\"${data.groupId && data.groupId > 0 ? 'treeitem' : 'option'}\"\n data-choice ${data.disabled ? 'data-choice-disabled aria-disabled=\"true\"' : 'data-choice-selectable'} data-id=\"${data.id}\"\n data-value=\"${data.value}\"\n data-select-text=\"${this.config.itemSelectText}\">\n <span>${data.label}</span>\n ${data.selected || self.selectedOption?.value === data.value || self.getPreSelected(self)?.value === data.value ? '<ifx-icon icon=\"check16\"></ifx-icon>' : ''}\n </div>\n `);\n },\n };\n },\n }),\n );\n\n //set select options\n this.setChoices(this.options, 'value', 'label', true);\n //set custom event listener to listen for search input\n self.addSearchEventListener(self, this.choice);\n } else {\n // handle the case when the element is neither an HTMLInputElement nor an HTMLSelectElement\n }\n }\n\n private addEventListenersToHandleCustomFocusAndActiveState() {\n const div = this.root.querySelector('.ifx-choices__wrapper') as HTMLDivElement;\n\n if (!div) {\n console.error('.ifx-choices__wrapper not found');\n return;\n }\n\n div.tabIndex = 0;\n\n div.addEventListener('focus', function () {\n if (!this.classList.contains('disabled')) {\n this.classList.add('focus');\n }\n });\n\n div.addEventListener('blur', function () {\n this.classList.remove('focus');\n });\n }\n\n private addSearchEventListener(self, choiceElement: ChoicesJs) {\n choiceElement.passedElement.element.addEventListener(\n 'search',\n function (event: CustomEvent) {\n self.ifxInput.emit(event.detail.value);\n },\n false,\n );\n return choiceElement;\n }\n\n private destroy() {\n if (this.element) {\n this.element = null;\n }\n\n if (this.choice) {\n this.choice.destroy();\n this.choice = null;\n }\n }\n\n //get selected values from input array\n private getPreSelected(self) {\n const optionsArray: any[] = Array.isArray(self.options) ? self.options : JSON.parse(self.options);\n return optionsArray.find(option => option.selected === true) || null;\n }\n\n //set previously marked as selected items in the input array to unselected and select new ones\n private setPreSelected(newValue) {\n const optionsArray: any[] = Array.isArray(this.options) ? this.options : JSON.parse(this.options);\n\n this.options = optionsArray.map(obj => {\n return {\n ...obj,\n selected: obj.value === newValue\n };\n });\n }\n\n //setting the value that gets displayed in the select at component start (either the value prop or a placeholder)\n private createSelectOptions(ifxOptions): Array<HTMLStencilElement> {\n if (this.value !== 'undefined' || this.selectedOption?.value !== '') {\n let options;\n if (isJSONParseable(ifxOptions)) {\n options = [...JSON.parse(ifxOptions)];\n } else if (Array.isArray(ifxOptions) || typeof ifxOptions === 'object') {\n options = [...ifxOptions];\n }\n const optionValueBasedOnAvailableOptions = options?.find(option => option.value === this.value || this.selectedOption?.value);\n\n if (optionValueBasedOnAvailableOptions) {\n return [<option value={optionValueBasedOnAvailableOptions.value}>{optionValueBasedOnAvailableOptions.label}</option>];\n }\n }\n\n // Assign a unique id for the placeholder\n return this.placeholder !== 'false' ? [<option value=\"\">{this.placeholderValue}</option>] : [<option value=\"\"></option>];\n }\n}"]}
|
1
|
+
{"version":3,"file":"select.js","sourceRoot":"","sources":["../../../../src/components/select/single-select/select.tsx"],"names":[],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { h, Component, Element, Method, Prop, Event, EventEmitter, State } from '@stencil/core';\nimport { trackComponent } from '../../../global/utils/tracking'; \nimport { isNestedInIfxComponent } from '../../../global/utils/dom-utils';\nimport { detectFramework } from '../../../global/utils/framework-detection';\nimport { HTMLStencilElement, Listen, Watch } from '@stencil/core/internal';\nimport ChoicesJs from 'choices.js';\n\nimport {\n AjaxFn,\n ClassNames,\n FuseOptions,\n IChoicesProps,\n IChoicesMethods,\n ItemFilterFn,\n NoResultsTextFn,\n NoChoicesTextFn,\n AddItemTextFn,\n MaxItemTextFn,\n SortFn,\n OnInit,\n OnCreateTemplates,\n UniqueItemText,\n ValueCompareFunction,\n CustomAddItemText,\n} from './interfaces';\nimport { filterObject, isDefined, isJSONParseable } from './utils';\n\n@Component({\n tag: 'ifx-select',\n styleUrl: 'select.scss',\n // shadow: true, //with shadow dom enabled, styles to the external choicesJs library cant be applied.\n})\nexport class Choices implements IChoicesProps, IChoicesMethods {\n @Prop() public value: string;\n @Prop() public name: string;\n @Prop() public items: Array<any>;\n @Prop() public choices: Array<any> | string;\n @Prop() public renderChoiceLimit: number;\n @Prop() public maxItemCount: number;\n @Prop() public addItems: boolean;\n @Prop() public removeItems: boolean;\n @Prop() public removeItemButton: boolean;\n @Prop() public editItems: boolean;\n @Prop() public duplicateItemsAllowed: boolean;\n @Prop() public delimiter: string;\n @Prop() public paste: boolean;\n @Prop() public showSearch: boolean;\n @Prop() public searchChoices: boolean;\n @Prop() public searchFields: Array<string> | string;\n @Prop() public searchFloor: number;\n @Prop() public searchResultLimit: number;\n @Prop() public position: 'auto' | 'top' | 'bottom';\n @Prop() public resetScrollPosition: boolean;\n @Prop() public shouldSort: boolean;\n @Prop() public shouldSortItems: boolean;\n @Prop() public sorter: SortFn;\n @Prop() public placeholder: boolean | string;\n @Prop() public searchPlaceholderValue: string;\n @Prop() public prependValue: string;\n @Prop() public appendValue: string;\n @Prop() public renderSelectedChoices: 'always' | 'auto';\n @Prop() public loadingText: string;\n @Prop() public noResultsText: string | NoResultsTextFn;\n @Prop() public noChoicesText: string | NoChoicesTextFn;\n @Prop() public itemSelectText: '';\n @Prop() public addItemText: string | AddItemTextFn;\n @Prop() public maxItemText: string | MaxItemTextFn;\n @Prop() public uniqueItemText: UniqueItemText;\n @Prop() public classNames: ClassNames;\n @Prop() public fuseOptions: FuseOptions;\n @Prop() public addItemFilter: string | RegExp | ItemFilterFn;\n @Prop() public customAddItemText: CustomAddItemText;\n @Prop() public callbackOnInit: OnInit;\n @Prop() public callbackOnCreateTemplates: OnCreateTemplates;\n @Prop() public valueComparer: ValueCompareFunction;\n //custom ifx props\n @Prop() error: boolean = false;\n @Prop() errorMessage: string = 'Error';\n @Prop() label: string = '';\n @Prop() disabled: boolean = false;\n @Prop() placeholderValue: string = 'Placeholder';\n @Event() ifxSelect: EventEmitter<CustomEvent>;\n @Event() ifxInput: EventEmitter<CustomEvent>;\n @Prop({ mutable: true }) options: any[] | string;\n @Prop() size: string = 'medium (40px)';\n @State() selectedOption: any | null = null;\n @State() optionIsSelected: boolean = false;\n @Prop() showClearButton: boolean = true;\n\n private resizeObserver: ResizeObserver;\n private previousOptions: any[] = [];\n\n @Element() private readonly root: HTMLElement;\n private choice;\n private element;\n\n @Watch('disabled')\n watchDisabled(newValue: boolean) {\n if (newValue) {\n this.choice.disable();\n } else {\n this.choice.enable();\n }\n }\n\n @Method()\n async clearSelection() {\n this.clearInput()\n this.clearSelectField()\n this.setPreSelected(null);\n this.closeDropdown();\n this.optionIsSelected = false;\n }\n\n clearSelectField() { \n this.selectedOption = null;\n this.ifxSelect.emit(null);\n }\n\n @Method()\n async handleChange() {\n this.ifxSelect.emit(this.choice.getValue());\n this.selectedOption = this.choice.getValue(); //store the selected option to reflect it in the template function\n this.setPreSelected(this.selectedOption.value); //set previously selected items from the input array to false and the new selection to true\n this.closeDropdown();\n }\n\n @Method()\n public async highlightItem(item: HTMLElement, runEvent?: boolean) {\n this.choice.highlightItem(item, runEvent);\n\n return this;\n }\n\n @Method()\n public async unhighlightItem(item: HTMLElement) {\n this.choice.unhighlightItem(item);\n\n return this;\n }\n\n @Method()\n public async highlightAll() {\n this.choice.highlightAll();\n\n return this;\n }\n\n @Method()\n public async unhighlightAll() {\n this.choice.unhighlightAll();\n\n return this;\n }\n\n @Method()\n public async removeActiveItemsByValue(value: string) {\n this.choice.removeActiveItemsByValue(value);\n return this;\n }\n\n @Method()\n public async removeActiveItems(excludedId?: number) {\n this.choice.removeActiveItems(excludedId);\n\n return this;\n }\n\n @Method()\n public async removeHighlightedItems(runEvent?: boolean) {\n this.choice.removeHighlightedItems(runEvent);\n\n return this;\n }\n\n @Method()\n public async showDropdown(focusInput?: boolean) {\n this.choice.showDropdown(focusInput);\n return this;\n }\n\n @Method()\n public async hideDropdown(blurInput?: boolean) {\n this.choice.hideDropdown(blurInput);\n\n return this;\n }\n\n @Method()\n public async getValue(valueOnly?: boolean): Promise<string | Array<string>> {\n return this.choice.getValue(valueOnly);\n }\n\n @Method()\n public async setValue(args: Array<any>) {\n this.choice.setValue(args);\n\n return this;\n }\n\n @Method()\n public async setChoiceByValue(value: string | Array<string>) {\n this.choice.setChoiceByValue(value);\n\n return this;\n }\n\n @Method()\n public async setChoices(choices: any[] | string, value: string, label: string, replaceChoices?: boolean) {\n let listOfChoices;\n if (typeof choices === 'string') {\n try {\n if (!isJSONParseable(choices)) {\n //meaning the input string comes from storybook as a non valid json string to be displayed in a beautified version on storybook\n choices = choices\n .replace(/'/g, '\"')\n .replace(/\"false\"/g, 'false')\n .replace(/\"true\"/g, 'true');\n }\n listOfChoices = [...JSON.parse(choices)];\n } catch (err) {\n console.error('Failed to parse choices:', err);\n }\n } else if (Array.isArray(choices) || typeof choices === 'object') {\n listOfChoices = [...choices];\n } else {\n console.error('Unexpected value for choices:', this.options);\n }\n\n this.choice.setChoices(listOfChoices, value, label, replaceChoices);\n return this;\n }\n\n @Method()\n public async clearChoices() {\n this.choice.clearChoices();\n\n return this;\n }\n\n @Method()\n public async clearStore() {\n this.choice.clearStore();\n\n return this;\n }\n\n @Method()\n public async clearInput() {\n this.choice.clearInput();\n\n return this;\n }\n\n @Method()\n public async ajax(fn: AjaxFn) {\n this.choice.ajax(fn);\n\n return this;\n }\n\n @Method()\n async handleDeleteIcon() {\n const width = this.root.offsetWidth;\n const deleteIconWrapper = this.root.querySelector('.ifx-choices__icon-wrapper-delete');\n if(deleteIconWrapper) { \n if (width <= 180) {\n deleteIconWrapper.classList.add('hide')\n } else if(this.showClearButton) { \n deleteIconWrapper.classList.remove('hide')\n }\n }\n }\n\n\n handleCloseButton() { \n if(typeof this.options === 'string') { \n const optionsToArray = JSON.parse(this.options);\n const optionIsSelected = optionsToArray.find(option => option.selected === true)\n if(optionIsSelected) { \n this.optionIsSelected = true;\n } else { \n this.optionIsSelected = false;\n }\n } else if(this.options && Array.isArray(this.options)) { \n const optionIsSelected = this.options.find(option => option.selected === true)\n if(optionIsSelected) { \n this.optionIsSelected = true;\n } else { \n this.optionIsSelected = false;\n }\n }\n }\n\n protected componentWillLoad() {\n this.handleCloseButton()\n }\n\n protected componentWillUpdate() { \n this.handleCloseButton()\n this.previousOptions = [...this.options];\n const optionsAreEqual = this.isEqual(this.options, this.previousOptions);\n if (this.options && !optionsAreEqual) {\n this.clearSelectField();\n }\n }\n\n isEqual(a: any, b: any[]) {\n return JSON.stringify(a) === JSON.stringify(b);\n }\n\n\n addResizeObserver() { \n this.resizeObserver = new ResizeObserver(() => {\n this.handleDeleteIcon();\n });\n \n const componentWrapper = this.root.querySelector('.ifx-choices__wrapper');\n this.resizeObserver.observe(componentWrapper);\n }\n\n protected async componentDidLoad() {\n this.init();\n if(!isNestedInIfxComponent(this.root)) { \n const framework = detectFramework();\n trackComponent('ifx-select', await framework)\n }\n this.addEventListenersToHandleCustomFocusAndActiveState();\n this.handleDeleteIcon();\n this.addResizeObserver()\n }\n\n protected componentDidUpdate() {\n this.init();\n this.handleDeleteIcon()\n }\n\n protected disconnectedCallback() {\n this.destroy();\n\n if (this.resizeObserver) {\n this.resizeObserver.disconnect();\n this.resizeObserver = null;\n }\n }\n\n private handleWrapperClick(event: MouseEvent) {\n const target = event.target as HTMLElement;\n const isSearchInput = target.classList.contains('choices__input') || target.closest('.choices__input');\n const isDropdownItem = target.closest('.choices__list--dropdown .choices__item');\n \n // Only toggle dropdown if clicking on wrapper itself\n if (!isSearchInput && !isDropdownItem) {\n this.toggleDropdown();\n }\n }\n\n protected render(): any {\n const attributes = {\n 'data-selector': 'root',\n 'name': this.name || null,\n // 'remove-item-button': false,\n };\n const choicesWrapperClass = `ifx-choices__wrapper ${this.getSizeClass()}`;\n\n // destroy choices element to restore previous dom structure\n // so vdom can replace the element correctly\n this.destroy();\n\n return (\n <div class={`ifx-select-container`}>\n {this.label ? (\n <div class=\"ifx-label-wrapper\">\n <span>{this.label}</span>\n </div>\n ) : null}\n <div\n class={`${choicesWrapperClass} \n ${this.disabled ? 'disabled' : ''} \n ${this.error ? 'error' : ''}`}\n onClick={this.disabled ? undefined : (e) => this.handleWrapperClick(e)}\n onKeyDown={event => this.handleKeyDown(event)}\n >\n <select class='single__select-input-field' disabled = {this.disabled} {...attributes} data-trigger onChange={() => this.handleChange()}>\n {this.createSelectOptions(this.options)}\n </select>\n\n <div class='single__select-icon-container'>\n { this.optionIsSelected && (\n <div class={`ifx-choices__icon-wrapper-delete ${!this.showClearButton ? 'hide' : ''}`}>\n <ifx-icon icon=\"cRemove16\" onClick={() => this.clearSelection()}></ifx-icon>\n </div>\n )}\n <div class=\"ifx-choices__icon-wrapper-up\">\n <ifx-icon key=\"icon-up\" icon=\"chevron-up-16\"></ifx-icon>\n </div>\n <div class=\"ifx-choices__icon-wrapper-down\">\n <ifx-icon key=\"icon-down\" icon=\"chevron-down-16\"></ifx-icon>\n </div>\n </div>\n </div>\n {this.error ? (\n <div class=\"ifx-error-message-wrapper\">\n <span>{this.errorMessage}</span>\n </div>\n ) : null}\n </div>\n );\n }\n\n toggleDropdown() {\n const div = this.root.querySelector('.ifx-choices__wrapper') as HTMLDivElement;\n if (div.classList.contains('active') || this.choice.dropdown.isActive) {\n this.hideDropdown();\n div.classList.remove('active');\n } else {\n this.choice.showDropdown();\n div.classList.add('active');\n }\n const choicesElement = this.root.querySelector('.choices');\n choicesElement.classList.add('is-focused'); // Add the 'is-focused' class, cause a click on the wrapper (and not the embedded select element) doesnt add this automatically to the choices instance\n }\n\n closeDropdown() {\n const ifxChoicesWrapper = this.root.querySelector('.ifx-choices__wrapper') as HTMLDivElement;\n ifxChoicesWrapper.classList.remove('active');\n }\n\n @Listen('mousedown', { target: 'document' })\n handleOutsideClick(event: MouseEvent) {\n const path = event.composedPath();\n const ifxChoicesContainer = this.root.querySelector('.ifx-choices__wrapper') as HTMLDivElement;\n\n if (!path.includes(this.root)) {\n ifxChoicesContainer.classList.remove('active');\n }\n }\n\n handleKeyDown(event: KeyboardEvent) {\n if (this.disabled) return;\n\n const isSearchInput = (event.target as HTMLElement).classList.contains('choices__input');\n\n // If the event originated from the search input and the key is 'Space', do nothing.\n if (isSearchInput && event.code === 'Space') {\n return;\n }\n\n if (event.code === 'Enter' || (event.code === 'Space' && !isSearchInput)) {\n this.toggleDropdown();\n }\n\n // Only prevent default space behavior when it's not from the search input.\n if (event.code === 'Space' && !isSearchInput) {\n event.preventDefault(); // Prevent default page scrolling.\n }\n }\n\n getSizeClass() {\n return `${this.size}` === 's' ? 'small-select' : 'medium-select';\n }\n\n private init() {\n const props = {\n allowHTML: true,\n items: this.items,\n choices: this.choices,\n renderChoiceLimit: this.renderChoiceLimit,\n maxItemCount: this.maxItemCount,\n addItems: this.addItems,\n removeItems: this.removeItems,\n removeItemButton: this.removeItemButton,\n editItems: this.editItems,\n duplicateItemsAllowed: this.duplicateItemsAllowed,\n delimiter: this.delimiter,\n paste: this.paste,\n searchEnabled: this.showSearch,\n searchChoices: this.searchChoices,\n searchFields: this.searchFields,\n searchFloor: this.searchFloor,\n searchResultLimit: this.searchResultLimit,\n position: this.position,\n resetScrollPosition: this.resetScrollPosition,\n shouldSort: false, // choices/groups will appear in the order they were given.\n shouldSortItems: this.shouldSortItems,\n sorter: this.sorter,\n placeholder: this.placeholder,\n searchPlaceholderValue: this.searchPlaceholderValue,\n prependValue: this.prependValue,\n appendValue: this.appendValue,\n renderSelectedChoices: this.renderSelectedChoices,\n loadingText: this.loadingText,\n noResultsText: this.noResultsText,\n noChoicesText: this.noChoicesText,\n itemSelectText: this.itemSelectText,\n addItemText: this.addItemText,\n maxItemText: this.maxItemText,\n uniqueItemText: this.uniqueItemText,\n classNames: this.classNames,\n fuseOptions: this.fuseOptions,\n callbackOnInit: this.callbackOnInit,\n callbackOnCreateTemplates: this.callbackOnCreateTemplates,\n valueComparer: this.valueComparer,\n addItemFilter: this.addItemFilter,\n customAddItemText: this.customAddItemText,\n };\n\n const settings = filterObject(props, isDefined);\n\n //type check\n const element = this.root.querySelector('[data-selector=\"root\"]');\n if (element instanceof HTMLInputElement || element instanceof HTMLSelectElement) {\n // this.choice = new ChoicesJs(element, settings); //standard, without using custom templates\n const self = this; // save the context of this in a variable outside of the function to access it in the following\n\n this.choice = new ChoicesJs(\n element,\n Object.assign({}, settings, {\n callbackOnCreateTemplates: function (template) {\n return {\n //modifying the selected item template\n item: ({ classNames }, data) => {\n let removeButtonHTML = '';\n\n if (data.placeholder && !self.selectedOption?.value) {\n // For placeholders, use data-id=\"placeholder\"\n return template(`\n <div class=\"choices__placeholder\" data-item data-id=\"${data.id}\" data-value=\"${data.value}\" ${data.disabled ? 'aria-disabled=\"true\"' : ''}>\n ${data.label === undefined ? this.placeholderValue : data.label}\n ${removeButtonHTML}\n </div>\n `);\n } else {\n // For non-placeholder items, use the actual data ID\n return template(`\n <div class=\"${classNames.item} ${data.highlighted ? classNames.highlightedState : classNames.itemSelectable}\" \n data-item \n data-id=\"${self.selectedOption?.id !== undefined ? self.selectedOption?.id : self.choice.getValue().id}\" \n data-value=\"${self.selectedOption?.value !== undefined ? self.selectedOption?.value : self.choice.getValue().value}\" \n ${data.disabled ? 'aria-disabled=\"true\"' : ''}>\n <span>${self.selectedOption?.label !== undefined ? self.selectedOption?.label : self.choice.getValue().label}</span>\n <!-- Add your remove button here if needed -->\n </div>\n `);\n }\n },\n input: ({ classNames }) => {\n return template(`\n <input type=\"search\"\n class=\"${classNames.input} ${classNames.inputCloned} ${self.getSizeClass()}\"\n autocomplete=\"off\"\n autocapitalize=\"off\"\n spellcheck=\"false\"\n role=\"textbox\"\n aria-autocomplete=\"list\"\n aria-label=\"${this.showSearch ? this.searchPlaceholderValue : ''}\" > \n `);\n },\n\n //modifying the template of each item in the options list\n choice: ({ classNames }, data) => {\n return template(`\n <div class=\"${classNames.item} ${classNames.itemChoice} ${self.getSizeClass()} \n ${data.selected || self.selectedOption?.value === data.value || self.getPreSelected(self)?.value === data.value ? 'selected' : ''} \n ${data.placeholder ? classNames.placeholder : ''} \n ${data.disabled ? classNames.itemDisabled : classNames.itemSelectable} \n role=\"${data.groupId && data.groupId > 0 ? 'treeitem' : 'option'}\"\n data-choice ${data.disabled ? 'data-choice-disabled aria-disabled=\"true\"' : 'data-choice-selectable'} data-id=\"${data.id}\"\n data-value=\"${data.value}\"\n data-select-text=\"${this.config.itemSelectText}\">\n <span>${data.label}</span>\n ${data.selected || self.selectedOption?.value === data.value || self.getPreSelected(self)?.value === data.value ? '<ifx-icon icon=\"check16\"></ifx-icon>' : ''}\n </div>\n `);\n },\n };\n },\n }),\n );\n\n //set select options\n this.setChoices(this.options, 'value', 'label', true);\n //set custom event listener to listen for search input\n self.addSearchEventListener(self, this.choice);\n } else {\n // handle the case when the element is neither an HTMLInputElement nor an HTMLSelectElement\n }\n }\n\n private addEventListenersToHandleCustomFocusAndActiveState() {\n const div = this.root.querySelector('.ifx-choices__wrapper') as HTMLDivElement;\n\n if (!div) {\n console.error('.ifx-choices__wrapper not found');\n return;\n }\n\n div.tabIndex = 0;\n\n div.addEventListener('focus', function () {\n if (!this.classList.contains('disabled')) {\n this.classList.add('focus');\n }\n });\n\n div.addEventListener('blur', function () {\n this.classList.remove('focus');\n });\n }\n\n private addSearchEventListener(self, choiceElement: ChoicesJs) {\n choiceElement.passedElement.element.addEventListener(\n 'search',\n function (event: CustomEvent) {\n self.ifxInput.emit(event.detail.value);\n },\n false,\n );\n return choiceElement;\n }\n\n private destroy() {\n if (this.element) {\n this.element = null;\n }\n\n if (this.choice) {\n this.choice.destroy();\n this.choice = null;\n }\n }\n\n //get selected values from input array\n private getPreSelected(self) {\n const optionsArray: any[] = Array.isArray(self.options) ? self.options : JSON.parse(self.options);\n return optionsArray.find(option => option.selected === true) || null;\n }\n\n //set previously marked as selected items in the input array to unselected and select new ones\n private setPreSelected(newValue) {\n const optionsArray: any[] = Array.isArray(this.options) ? this.options : JSON.parse(this.options);\n\n this.options = optionsArray.map(obj => {\n return {\n ...obj,\n selected: obj.value === newValue\n };\n });\n }\n\n //setting the value that gets displayed in the select at component start (either the value prop or a placeholder)\n private createSelectOptions(ifxOptions): Array<HTMLStencilElement> {\n if (this.value !== 'undefined' || this.selectedOption?.value !== '') {\n let options;\n if (isJSONParseable(ifxOptions)) {\n options = [...JSON.parse(ifxOptions)];\n } else if (Array.isArray(ifxOptions) || typeof ifxOptions === 'object') {\n options = [...ifxOptions];\n }\n const optionValueBasedOnAvailableOptions = options?.find(option => option.value === this.value || this.selectedOption?.value);\n\n if (optionValueBasedOnAvailableOptions) {\n return [<option value={optionValueBasedOnAvailableOptions.value}>{optionValueBasedOnAvailableOptions.label}</option>];\n }\n }\n\n // Assign a unique id for the placeholder\n return this.placeholder !== 'false' ? [<option value=\"\">{this.placeholderValue}</option>] : [<option value=\"\"></option>];\n }\n}"]}
|
@@ -119,10 +119,6 @@ export class IfxSlider {
|
|
119
119
|
}
|
120
120
|
}
|
121
121
|
componentWillLoad() {
|
122
|
-
if (!isNestedInIfxComponent(this.el)) {
|
123
|
-
const framework = detectFramework();
|
124
|
-
trackComponent('ifx-slider', framework);
|
125
|
-
}
|
126
122
|
if (this.value === undefined) {
|
127
123
|
this.internalValue = (this.max - this.min) / 2;
|
128
124
|
}
|
@@ -139,14 +135,18 @@ export class IfxSlider {
|
|
139
135
|
else
|
140
136
|
this.internalMaxValue = this.max;
|
141
137
|
}
|
142
|
-
componentDidLoad() {
|
138
|
+
async componentDidLoad() {
|
139
|
+
if (!isNestedInIfxComponent(this.el)) {
|
140
|
+
const framework = detectFramework();
|
141
|
+
trackComponent('ifx-slider', await framework);
|
142
|
+
}
|
143
143
|
this.updateValuePercent();
|
144
144
|
}
|
145
145
|
render() {
|
146
|
-
return (h("div", { key: '
|
146
|
+
return (h("div", { key: 'ff3c40899b2e05636fb6f7ea79527b01cb401ad9', class: "ifx-slider" }, this.leftText && (h("span", { key: '3baec228b5c07dcbb3647dd97876c90c7797f1ee', class: `left-text` }, this.leftText)), this.leftIcon && (h("ifx-icon", { key: '9a96cd6332fb7be8d0ce1b92f4ee1fba75da12b3', icon: this.leftIcon, class: `left-icon${this.disabled ? ' disabled' : ''}` })), (this.type !== 'double') ?
|
147
147
|
h("input", { type: "range", min: this.min, max: this.max, step: this.step, value: this.internalValue, disabled: this.disabled, ref: (el) => (this.inputRef = el), onInput: (event) => this.handleInputChange(event), "aria-label": 'a slider', "aria-value": this.value, "aria-disabled": this.disabled })
|
148
148
|
:
|
149
|
-
h("div", { class: 'range-slider__wrapper', "aria-label": 'a range slider', "aria-value": this.value, "aria-disabled": this.disabled }, h("input", { id: 'min-slider', type: 'range', min: this.min, max: this.max, step: this.step, value: this.internalMinValue, disabled: this.disabled, ref: (el) => (this.minInputRef = el), onInput: (event) => this.handleInputChangeOfRangeSlider(event), onMouseUp: (event) => this.handleOnMouseLeaveOfRangeSlider(event) }), h("input", { id: 'max-slider', type: 'range', min: this.min, max: this.max, step: this.step, value: this.internalMaxValue, disabled: this.disabled, ref: (el) => (this.maxInputRef = el), onInput: (event) => this.handleInputChangeOfRangeSlider(event), onMouseUp: (event) => this.handleOnMouseLeaveOfRangeSlider(event) })), this.rightIcon && (h("ifx-icon", { key: '
|
149
|
+
h("div", { class: 'range-slider__wrapper', "aria-label": 'a range slider', "aria-value": this.value, "aria-disabled": this.disabled }, h("input", { id: 'min-slider', type: 'range', min: this.min, max: this.max, step: this.step, value: this.internalMinValue, disabled: this.disabled, ref: (el) => (this.minInputRef = el), onInput: (event) => this.handleInputChangeOfRangeSlider(event), onMouseUp: (event) => this.handleOnMouseLeaveOfRangeSlider(event) }), h("input", { id: 'max-slider', type: 'range', min: this.min, max: this.max, step: this.step, value: this.internalMaxValue, disabled: this.disabled, ref: (el) => (this.maxInputRef = el), onInput: (event) => this.handleInputChangeOfRangeSlider(event), onMouseUp: (event) => this.handleOnMouseLeaveOfRangeSlider(event) })), this.rightIcon && (h("ifx-icon", { key: 'd3f68ac4993a1237566c2bb244ab003bb4c13c31', icon: this.rightIcon, class: `right-icon${this.disabled ? ' disabled' : ''}` })), this.rightText && (h("span", { key: 'c5de67ea034d390f5e80cbc344ee674408294701', class: `right-text${this.disabled ? ' disabled' : ''}` }, this.rightText)), this.showPercentage && (this.type !== "double") && (h("span", { key: '30790091e000ca3d4d0db206aa32a2a53b4f6cbf', class: `percentage-display${this.disabled ? ' disabled' : ''}` }, this.percentage, "%"))));
|
150
150
|
}
|
151
151
|
static get is() { return "ifx-slider"; }
|
152
152
|
static get encapsulation() { return "shadow"; }
|