@infineon/infineon-design-system-stencil 35.4.3--canary.1904.5a44a0d8adfddd7b335befcf9a46cca6dc9a338d.0 → 35.4.3--canary.1941.c9a5e850bd5cf754cf4864a37f2bcf38ec080efe.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/{icons-2cd72a7d.js → icons-0d4d096d.js} +1 -4
- package/dist/cjs/icons-0d4d096d.js.map +1 -0
- package/dist/cjs/ifx-accordion_2.cjs.entry.js +1 -8
- package/dist/cjs/ifx-accordion_2.cjs.entry.js.map +1 -1
- package/dist/cjs/ifx-alert_2.cjs.entry.js +0 -6
- package/dist/cjs/ifx-alert_2.cjs.entry.js.map +1 -1
- package/dist/cjs/ifx-badge.cjs.entry.js +1 -9
- package/dist/cjs/ifx-badge.cjs.entry.js.map +1 -1
- package/dist/cjs/ifx-basic-table.cjs.entry.js +1 -6
- package/dist/cjs/ifx-basic-table.cjs.entry.js.map +1 -1
- package/dist/cjs/ifx-breadcrumb.cjs.entry.js +1 -8
- package/dist/cjs/ifx-breadcrumb.cjs.entry.js.map +1 -1
- package/dist/cjs/ifx-button.cjs.entry.js +1 -6
- package/dist/cjs/ifx-button.cjs.entry.js.map +1 -1
- package/dist/cjs/ifx-card.cjs.entry.js +3 -8
- package/dist/cjs/ifx-card.cjs.entry.js.map +1 -1
- package/dist/cjs/ifx-checkbox-group.cjs.entry.js +1 -6
- package/dist/cjs/ifx-checkbox-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ifx-checkbox.cjs.entry.js +3 -8
- package/dist/cjs/ifx-checkbox.cjs.entry.js.map +1 -1
- package/dist/cjs/ifx-chip_3.cjs.entry.js +9 -17
- package/dist/cjs/ifx-chip_3.cjs.entry.js.map +1 -1
- package/dist/cjs/ifx-content-switcher.cjs.entry.js +1 -6
- package/dist/cjs/ifx-content-switcher.cjs.entry.js.map +1 -1
- package/dist/cjs/ifx-date-picker.cjs.entry.js +2 -9
- package/dist/cjs/ifx-date-picker.cjs.entry.js.map +1 -1
- package/dist/cjs/ifx-dropdown.cjs.entry.js +1 -6
- package/dist/cjs/ifx-dropdown.cjs.entry.js.map +1 -1
- package/dist/cjs/ifx-file-upload.cjs.entry.js +2 -9
- package/dist/cjs/ifx-file-upload.cjs.entry.js.map +1 -1
- package/dist/cjs/ifx-footer.cjs.entry.js +4 -9
- package/dist/cjs/ifx-footer.cjs.entry.js.map +1 -1
- package/dist/cjs/ifx-icon-button.cjs.entry.js +1 -6
- package/dist/cjs/ifx-icon-button.cjs.entry.js.map +1 -1
- package/dist/cjs/ifx-icon.cjs.entry.js +2 -32
- package/dist/cjs/ifx-icon.cjs.entry.js.map +1 -1
- package/dist/cjs/ifx-icons-preview.cjs.entry.js +1 -1
- package/dist/cjs/ifx-indicator.cjs.entry.js +2 -7
- package/dist/cjs/ifx-indicator.cjs.entry.js.map +1 -1
- package/dist/cjs/ifx-link.cjs.entry.js +1 -9
- package/dist/cjs/ifx-link.cjs.entry.js.map +1 -1
- package/dist/cjs/ifx-modal.cjs.entry.js +2 -9
- package/dist/cjs/ifx-modal.cjs.entry.js.map +1 -1
- package/dist/cjs/ifx-multiselect.cjs.entry.js +0 -5
- package/dist/cjs/ifx-multiselect.cjs.entry.js.map +1 -1
- package/dist/cjs/ifx-navbar.cjs.entry.js +3 -5
- package/dist/cjs/ifx-navbar.cjs.entry.js.map +1 -1
- package/dist/cjs/ifx-notification.cjs.entry.js +2 -10
- package/dist/cjs/ifx-notification.cjs.entry.js.map +1 -1
- package/dist/cjs/ifx-progress-bar.cjs.entry.js +1 -7
- package/dist/cjs/ifx-progress-bar.cjs.entry.js.map +1 -1
- package/dist/cjs/ifx-radio-button-group.cjs.entry.js +1 -6
- package/dist/cjs/ifx-radio-button-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ifx-radio-button.cjs.entry.js +2 -7
- package/dist/cjs/ifx-radio-button.cjs.entry.js.map +1 -1
- package/dist/cjs/ifx-search-bar.cjs.entry.js +1 -6
- package/dist/cjs/ifx-search-bar.cjs.entry.js.map +1 -1
- package/dist/cjs/ifx-search-field.cjs.entry.js +1 -9
- package/dist/cjs/ifx-search-field.cjs.entry.js.map +1 -1
- package/dist/cjs/ifx-segmented-control.cjs.entry.js +2 -9
- package/dist/cjs/ifx-segmented-control.cjs.entry.js.map +1 -1
- package/dist/cjs/ifx-select.cjs.entry.js +2 -7
- package/dist/cjs/ifx-select.cjs.entry.js.map +1 -1
- package/dist/cjs/ifx-sidebar.cjs.entry.js +5 -7
- package/dist/cjs/ifx-sidebar.cjs.entry.js.map +1 -1
- package/dist/cjs/ifx-slider.cjs.entry.js +2 -7
- package/dist/cjs/ifx-slider.cjs.entry.js.map +1 -1
- package/dist/cjs/ifx-spinner_2.cjs.entry.js +6 -17
- package/dist/cjs/ifx-spinner_2.cjs.entry.js.map +1 -1
- package/dist/cjs/ifx-status.cjs.entry.js +1 -9
- package/dist/cjs/ifx-status.cjs.entry.js.map +1 -1
- package/dist/cjs/ifx-stepper.cjs.entry.js +2 -7
- package/dist/cjs/ifx-stepper.cjs.entry.js.map +1 -1
- package/dist/cjs/ifx-switch.cjs.entry.js +1 -6
- package/dist/cjs/ifx-switch.cjs.entry.js.map +1 -1
- package/dist/cjs/ifx-table.cjs.entry.js +2 -7
- package/dist/cjs/ifx-table.cjs.entry.js.map +1 -1
- package/dist/cjs/ifx-tabs.cjs.entry.js +2 -7
- package/dist/cjs/ifx-tabs.cjs.entry.js.map +1 -1
- package/dist/cjs/ifx-tag.cjs.entry.js +1 -9
- package/dist/cjs/ifx-tag.cjs.entry.js.map +1 -1
- package/dist/cjs/ifx-textarea.cjs.entry.js +1 -6
- package/dist/cjs/ifx-textarea.cjs.entry.js.map +1 -1
- package/dist/cjs/ifx-tooltip.cjs.entry.js +4 -9
- package/dist/cjs/ifx-tooltip.cjs.entry.js.map +1 -1
- package/dist/cjs/ifx-tree-view.cjs.entry.js +1 -9
- package/dist/cjs/ifx-tree-view.cjs.entry.js.map +1 -1
- package/dist/collection/components/accordion/accordion.js +2 -8
- package/dist/collection/components/accordion/accordion.js.map +1 -1
- package/dist/collection/components/alert/alert.js +0 -6
- package/dist/collection/components/alert/alert.js.map +1 -1
- package/dist/collection/components/badge/badge.js +1 -9
- package/dist/collection/components/badge/badge.js.map +1 -1
- package/dist/collection/components/breadcrumb/breadcrumb.js +1 -8
- package/dist/collection/components/breadcrumb/breadcrumb.js.map +1 -1
- package/dist/collection/components/button/button.js +1 -6
- package/dist/collection/components/button/button.js.map +1 -1
- package/dist/collection/components/card/card.js +3 -8
- package/dist/collection/components/card/card.js.map +1 -1
- package/dist/collection/components/checkbox/checkbox.js +3 -8
- package/dist/collection/components/checkbox/checkbox.js.map +1 -1
- package/dist/collection/components/checkbox-group/checkbox-group.js +1 -6
- package/dist/collection/components/checkbox-group/checkbox-group.js.map +1 -1
- package/dist/collection/components/chip/chip.js +8 -13
- package/dist/collection/components/chip/chip.js.map +1 -1
- package/dist/collection/components/content-switcher/content-switcher.js +1 -6
- package/dist/collection/components/content-switcher/content-switcher.js.map +1 -1
- package/dist/collection/components/date-picker/date-picker.js +2 -9
- package/dist/collection/components/date-picker/date-picker.js.map +1 -1
- package/dist/collection/components/dropdown/dropdown.js +1 -6
- package/dist/collection/components/dropdown/dropdown.js.map +1 -1
- package/dist/collection/components/file-upload/file-upload.js +2 -9
- package/dist/collection/components/file-upload/file-upload.js.map +1 -1
- package/dist/collection/components/footer/footer.js +4 -9
- package/dist/collection/components/footer/footer.js.map +1 -1
- package/dist/collection/components/icon/infineonIconStencil.js +1 -31
- package/dist/collection/components/icon/infineonIconStencil.js.map +1 -1
- package/dist/collection/components/icon-button/icon-button.js +1 -6
- package/dist/collection/components/icon-button/icon-button.js.map +1 -1
- package/dist/collection/components/indicator/indicator.js +2 -7
- package/dist/collection/components/indicator/indicator.js.map +1 -1
- package/dist/collection/components/link/link.js +1 -9
- package/dist/collection/components/link/link.js.map +1 -1
- package/dist/collection/components/modal/modal.js +2 -9
- package/dist/collection/components/modal/modal.js.map +1 -1
- package/dist/collection/components/navigation/navbar/navbar.js +3 -5
- package/dist/collection/components/navigation/navbar/navbar.js.map +1 -1
- package/dist/collection/components/navigation/sidebar/sidebar.js +5 -7
- package/dist/collection/components/navigation/sidebar/sidebar.js.map +1 -1
- package/dist/collection/components/notification/notification.js +2 -10
- package/dist/collection/components/notification/notification.js.map +1 -1
- package/dist/collection/components/pagination/pagination.js +1 -6
- package/dist/collection/components/pagination/pagination.js.map +1 -1
- package/dist/collection/components/progress-bar/progress-bar.js +1 -7
- package/dist/collection/components/progress-bar/progress-bar.js.map +1 -1
- package/dist/collection/components/radio-button/radio-button.js +2 -7
- package/dist/collection/components/radio-button/radio-button.js.map +1 -1
- package/dist/collection/components/radio-button-group/radio-button-group.js +1 -6
- package/dist/collection/components/radio-button-group/radio-button-group.js.map +1 -1
- package/dist/collection/components/search-bar/search-bar.js +1 -6
- package/dist/collection/components/search-bar/search-bar.js.map +1 -1
- package/dist/collection/components/search-field/search-field.js +1 -9
- package/dist/collection/components/search-field/search-field.js.map +1 -1
- package/dist/collection/components/segmented-control/segmented-control.js +2 -9
- package/dist/collection/components/segmented-control/segmented-control.js.map +1 -1
- package/dist/collection/components/select/multi-select/multiselect.js +0 -5
- package/dist/collection/components/select/multi-select/multiselect.js.map +1 -1
- package/dist/collection/components/select/single-select/select.js +2 -7
- package/dist/collection/components/select/single-select/select.js.map +1 -1
- package/dist/collection/components/slider/slider.js +2 -7
- package/dist/collection/components/slider/slider.js.map +1 -1
- package/dist/collection/components/spinner/spinner.js +2 -10
- package/dist/collection/components/spinner/spinner.js.map +1 -1
- package/dist/collection/components/status/status.js +1 -9
- package/dist/collection/components/status/status.js.map +1 -1
- package/dist/collection/components/stepper/stepper.js +2 -7
- package/dist/collection/components/stepper/stepper.js.map +1 -1
- package/dist/collection/components/switch/switch.js +1 -6
- package/dist/collection/components/switch/switch.js.map +1 -1
- package/dist/collection/components/table-advanced-version/table.js +2 -7
- package/dist/collection/components/table-advanced-version/table.js.map +1 -1
- package/dist/collection/components/table-basic-version/table.js +1 -6
- package/dist/collection/components/table-basic-version/table.js.map +1 -1
- package/dist/collection/components/tabs/tabs.js +3 -7
- package/dist/collection/components/tabs/tabs.js.map +1 -1
- package/dist/collection/components/tag/tag.js +1 -9
- package/dist/collection/components/tag/tag.js.map +1 -1
- package/dist/collection/components/text-field/text-field.js +4 -9
- package/dist/collection/components/text-field/text-field.js.map +1 -1
- package/dist/collection/components/textarea/textarea.js +1 -6
- package/dist/collection/components/textarea/textarea.js.map +1 -1
- package/dist/collection/components/tooltip/tooltip.js +4 -9
- package/dist/collection/components/tooltip/tooltip.js.map +1 -1
- package/dist/collection/components/tree-view/tree-view.js +1 -9
- package/dist/collection/components/tree-view/tree-view.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 +1 -9
- package/dist/components/ifx-badge.js.map +1 -1
- package/dist/components/ifx-basic-table.js +1 -6
- 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 +1 -8
- package/dist/components/ifx-breadcrumb.js.map +1 -1
- package/dist/components/ifx-button.js +1 -1
- package/dist/components/ifx-card.js +3 -8
- package/dist/components/ifx-card.js.map +1 -1
- package/dist/components/ifx-checkbox-group.js +2 -7
- 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 +1 -6
- package/dist/components/ifx-content-switcher.js.map +1 -1
- package/dist/components/ifx-date-picker.js +3 -10
- 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 +1 -6
- package/dist/components/ifx-dropdown.js.map +1 -1
- package/dist/components/ifx-faq.js +3 -3
- package/dist/components/ifx-file-upload.js +6 -13
- 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 +4 -9
- 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 +4 -11
- package/dist/components/ifx-modal.js.map +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 +4 -6
- 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 +2 -7
- 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 +3 -8
- 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 +3 -10
- 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 +5 -5
- package/dist/components/ifx-sidebar-item.js +2 -2
- package/dist/components/ifx-sidebar.js +5 -7
- package/dist/components/ifx-sidebar.js.map +1 -1
- package/dist/components/ifx-slider.js +3 -8
- package/dist/components/ifx-slider.js.map +1 -1
- package/dist/components/ifx-spinner.js +1 -1
- package/dist/components/ifx-status.js +1 -9
- package/dist/components/ifx-status.js.map +1 -1
- package/dist/components/ifx-step.js +1 -1
- package/dist/components/ifx-stepper.js +2 -7
- package/dist/components/ifx-stepper.js.map +1 -1
- package/dist/components/ifx-switch.js +1 -6
- package/dist/components/ifx-switch.js.map +1 -1
- package/dist/components/ifx-table.js +11 -16
- package/dist/components/ifx-table.js.map +1 -1
- package/dist/components/ifx-tabs.js +3 -8
- package/dist/components/ifx-tabs.js.map +1 -1
- package/dist/components/ifx-tag.js +2 -10
- 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 +1 -6
- package/dist/components/ifx-textarea.js.map +1 -1
- package/dist/components/ifx-tooltip.js +5 -10
- 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 +1 -9
- package/dist/components/ifx-tree-view.js.map +1 -1
- package/dist/components/{p-0d6ca0f6.js → p-0c449780.js} +3 -8
- package/dist/components/p-0c449780.js.map +1 -0
- package/dist/components/{p-816b2612.js → p-17df0350.js} +2 -7
- package/dist/components/p-17df0350.js.map +1 -0
- package/dist/components/{p-13126216.js → p-186dacc8.js} +5 -10
- package/dist/components/p-186dacc8.js.map +1 -0
- package/dist/components/{p-13578a85.js → p-2a65d85a.js} +6 -6
- package/dist/components/{p-13578a85.js.map → p-2a65d85a.js.map} +1 -1
- package/dist/components/{p-54b39a91.js → p-357107c5.js} +3 -8
- package/dist/components/p-357107c5.js.map +1 -0
- package/dist/components/{p-465d3172.js → p-38396fe7.js} +3 -11
- package/dist/components/p-38396fe7.js.map +1 -0
- package/dist/components/{p-9ea9e274.js → p-53d4339c.js} +2 -10
- package/dist/components/p-53d4339c.js.map +1 -0
- package/dist/components/{p-6d95b3c1.js → p-5e9d3450.js} +2 -8
- package/dist/components/p-5e9d3450.js.map +1 -0
- package/dist/components/{p-24382260.js → p-67573b5f.js} +6 -11
- package/dist/components/p-67573b5f.js.map +1 -0
- package/dist/components/{p-8cb991f4.js → p-6d12f845.js} +5 -13
- package/dist/components/p-6d12f845.js.map +1 -0
- package/dist/components/{p-94da6823.js → p-9142f93b.js} +3 -8
- package/dist/components/p-9142f93b.js.map +1 -0
- package/dist/components/{p-e126ea6f.js → p-a4922416.js} +3 -11
- package/dist/components/p-a4922416.js.map +1 -0
- package/dist/components/{p-0905733d.js → p-a8d0ef73.js} +11 -16
- package/dist/components/p-a8d0ef73.js.map +1 -0
- package/dist/components/{p-830057b3.js → p-b0039ef1.js} +2 -8
- package/dist/components/p-b0039ef1.js.map +1 -0
- package/dist/components/{p-4fc475c9.js → p-bb4de57d.js} +2 -35
- package/dist/components/p-bb4de57d.js.map +1 -0
- package/dist/components/{p-1ad917f9.js → p-c9aec5fa.js} +4 -9
- package/dist/components/p-c9aec5fa.js.map +1 -0
- package/dist/components/{p-cf109552.js → p-cc5bd74b.js} +5 -10
- package/dist/components/p-cc5bd74b.js.map +1 -0
- package/dist/components/{p-347a1b14.js → p-cd833a9b.js} +3 -8
- package/dist/components/p-cd833a9b.js.map +1 -0
- package/dist/components/{p-ee0f87ac.js → p-cd913238.js} +3 -3
- package/dist/components/{p-ee0f87ac.js.map → p-cd913238.js.map} +1 -1
- package/dist/components/{p-fe90e932.js → p-d1790232.js} +2 -2
- package/dist/components/{p-fe90e932.js.map → p-d1790232.js.map} +1 -1
- package/dist/components/{p-cca71d97.js → p-ed739e86.js} +2 -9
- package/dist/components/p-ed739e86.js.map +1 -0
- package/dist/esm/{icons-75858876.js → icons-788fe290.js} +1 -4
- package/dist/esm/icons-788fe290.js.map +1 -0
- package/dist/esm/ifx-accordion_2.entry.js +1 -8
- package/dist/esm/ifx-accordion_2.entry.js.map +1 -1
- package/dist/esm/ifx-alert_2.entry.js +0 -6
- package/dist/esm/ifx-alert_2.entry.js.map +1 -1
- package/dist/esm/ifx-badge.entry.js +2 -10
- package/dist/esm/ifx-badge.entry.js.map +1 -1
- package/dist/esm/ifx-basic-table.entry.js +1 -6
- package/dist/esm/ifx-basic-table.entry.js.map +1 -1
- package/dist/esm/ifx-breadcrumb.entry.js +1 -8
- package/dist/esm/ifx-breadcrumb.entry.js.map +1 -1
- package/dist/esm/ifx-button.entry.js +1 -6
- package/dist/esm/ifx-button.entry.js.map +1 -1
- package/dist/esm/ifx-card.entry.js +3 -8
- package/dist/esm/ifx-card.entry.js.map +1 -1
- package/dist/esm/ifx-checkbox-group.entry.js +1 -6
- package/dist/esm/ifx-checkbox-group.entry.js.map +1 -1
- package/dist/esm/ifx-checkbox.entry.js +3 -8
- package/dist/esm/ifx-checkbox.entry.js.map +1 -1
- package/dist/esm/ifx-chip_3.entry.js +9 -17
- package/dist/esm/ifx-chip_3.entry.js.map +1 -1
- package/dist/esm/ifx-content-switcher.entry.js +1 -6
- package/dist/esm/ifx-content-switcher.entry.js.map +1 -1
- package/dist/esm/ifx-date-picker.entry.js +2 -9
- package/dist/esm/ifx-date-picker.entry.js.map +1 -1
- package/dist/esm/ifx-dropdown.entry.js +1 -6
- package/dist/esm/ifx-dropdown.entry.js.map +1 -1
- package/dist/esm/ifx-file-upload.entry.js +2 -9
- package/dist/esm/ifx-file-upload.entry.js.map +1 -1
- package/dist/esm/ifx-footer.entry.js +4 -9
- package/dist/esm/ifx-footer.entry.js.map +1 -1
- package/dist/esm/ifx-icon-button.entry.js +1 -6
- package/dist/esm/ifx-icon-button.entry.js.map +1 -1
- package/dist/esm/ifx-icon.entry.js +3 -33
- package/dist/esm/ifx-icon.entry.js.map +1 -1
- package/dist/esm/ifx-icons-preview.entry.js +1 -1
- package/dist/esm/ifx-indicator.entry.js +2 -7
- package/dist/esm/ifx-indicator.entry.js.map +1 -1
- package/dist/esm/ifx-link.entry.js +2 -10
- package/dist/esm/ifx-link.entry.js.map +1 -1
- package/dist/esm/ifx-modal.entry.js +2 -9
- package/dist/esm/ifx-modal.entry.js.map +1 -1
- package/dist/esm/ifx-multiselect.entry.js +0 -5
- package/dist/esm/ifx-multiselect.entry.js.map +1 -1
- package/dist/esm/ifx-navbar.entry.js +3 -5
- package/dist/esm/ifx-navbar.entry.js.map +1 -1
- package/dist/esm/ifx-notification.entry.js +3 -11
- package/dist/esm/ifx-notification.entry.js.map +1 -1
- package/dist/esm/ifx-progress-bar.entry.js +2 -8
- package/dist/esm/ifx-progress-bar.entry.js.map +1 -1
- package/dist/esm/ifx-radio-button-group.entry.js +1 -6
- package/dist/esm/ifx-radio-button-group.entry.js.map +1 -1
- package/dist/esm/ifx-radio-button.entry.js +2 -7
- package/dist/esm/ifx-radio-button.entry.js.map +1 -1
- package/dist/esm/ifx-search-bar.entry.js +1 -6
- package/dist/esm/ifx-search-bar.entry.js.map +1 -1
- package/dist/esm/ifx-search-field.entry.js +2 -10
- package/dist/esm/ifx-search-field.entry.js.map +1 -1
- package/dist/esm/ifx-segmented-control.entry.js +2 -9
- package/dist/esm/ifx-segmented-control.entry.js.map +1 -1
- package/dist/esm/ifx-select.entry.js +2 -7
- package/dist/esm/ifx-select.entry.js.map +1 -1
- package/dist/esm/ifx-sidebar.entry.js +5 -7
- package/dist/esm/ifx-sidebar.entry.js.map +1 -1
- package/dist/esm/ifx-slider.entry.js +2 -7
- package/dist/esm/ifx-slider.entry.js.map +1 -1
- package/dist/esm/ifx-spinner_2.entry.js +7 -18
- package/dist/esm/ifx-spinner_2.entry.js.map +1 -1
- package/dist/esm/ifx-status.entry.js +2 -10
- package/dist/esm/ifx-status.entry.js.map +1 -1
- package/dist/esm/ifx-stepper.entry.js +2 -7
- package/dist/esm/ifx-stepper.entry.js.map +1 -1
- package/dist/esm/ifx-switch.entry.js +1 -6
- package/dist/esm/ifx-switch.entry.js.map +1 -1
- package/dist/esm/ifx-table.entry.js +2 -7
- package/dist/esm/ifx-table.entry.js.map +1 -1
- package/dist/esm/ifx-tabs.entry.js +2 -7
- package/dist/esm/ifx-tabs.entry.js.map +1 -1
- package/dist/esm/ifx-tag.entry.js +2 -10
- package/dist/esm/ifx-tag.entry.js.map +1 -1
- package/dist/esm/ifx-textarea.entry.js +1 -6
- package/dist/esm/ifx-textarea.entry.js.map +1 -1
- package/dist/esm/ifx-tooltip.entry.js +4 -9
- package/dist/esm/ifx-tooltip.entry.js.map +1 -1
- package/dist/esm/ifx-tree-view.entry.js +2 -10
- 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-061bfdb1.entry.js +2 -0
- package/dist/infineon-design-system-stencil/p-061bfdb1.entry.js.map +1 -0
- package/dist/infineon-design-system-stencil/p-06bfabcf.entry.js +2 -0
- package/dist/infineon-design-system-stencil/p-06bfabcf.entry.js.map +1 -0
- package/dist/infineon-design-system-stencil/{p-76914839.entry.js → p-0d3e5a0d.entry.js} +2 -2
- package/dist/infineon-design-system-stencil/p-0d3e5a0d.entry.js.map +1 -0
- package/dist/infineon-design-system-stencil/p-1048ee19.entry.js +2 -0
- package/dist/infineon-design-system-stencil/p-1048ee19.entry.js.map +1 -0
- package/dist/infineon-design-system-stencil/p-142878ee.entry.js +2 -0
- package/dist/infineon-design-system-stencil/p-142878ee.entry.js.map +1 -0
- package/dist/infineon-design-system-stencil/p-17f3f2f5.entry.js +2 -0
- package/dist/infineon-design-system-stencil/p-17f3f2f5.entry.js.map +1 -0
- package/dist/infineon-design-system-stencil/p-2006c7a0.entry.js +2 -0
- package/dist/infineon-design-system-stencil/p-2006c7a0.entry.js.map +1 -0
- package/dist/infineon-design-system-stencil/{p-4d96fed0.js → p-27d2afb4.js} +2 -2
- package/dist/infineon-design-system-stencil/p-27d2afb4.js.map +1 -0
- package/dist/infineon-design-system-stencil/p-292cff35.entry.js +2 -0
- package/dist/infineon-design-system-stencil/p-292cff35.entry.js.map +1 -0
- package/dist/infineon-design-system-stencil/p-2d89c5e0.entry.js +2 -0
- package/dist/infineon-design-system-stencil/p-2d89c5e0.entry.js.map +1 -0
- package/dist/infineon-design-system-stencil/p-33a4fd0a.entry.js +2 -0
- package/dist/infineon-design-system-stencil/p-33a4fd0a.entry.js.map +1 -0
- package/dist/infineon-design-system-stencil/p-37d6c639.entry.js +2 -0
- package/dist/infineon-design-system-stencil/p-37d6c639.entry.js.map +1 -0
- package/dist/infineon-design-system-stencil/p-3d23deba.entry.js +2 -0
- package/dist/infineon-design-system-stencil/p-3d23deba.entry.js.map +1 -0
- package/dist/infineon-design-system-stencil/p-3ff96710.entry.js +2 -0
- package/dist/infineon-design-system-stencil/p-3ff96710.entry.js.map +1 -0
- package/dist/infineon-design-system-stencil/p-47a3e831.entry.js +2 -0
- package/dist/infineon-design-system-stencil/p-47a3e831.entry.js.map +1 -0
- package/dist/infineon-design-system-stencil/p-487d2155.entry.js +2 -0
- package/dist/infineon-design-system-stencil/p-487d2155.entry.js.map +1 -0
- package/dist/infineon-design-system-stencil/p-49252616.entry.js +2 -0
- package/dist/infineon-design-system-stencil/p-49252616.entry.js.map +1 -0
- package/dist/infineon-design-system-stencil/p-5b5c144f.entry.js +2 -0
- package/dist/infineon-design-system-stencil/p-5b5c144f.entry.js.map +1 -0
- package/dist/infineon-design-system-stencil/p-65fe2246.entry.js +2 -0
- package/dist/infineon-design-system-stencil/p-65fe2246.entry.js.map +1 -0
- package/dist/infineon-design-system-stencil/p-676fb63a.entry.js +2 -0
- package/dist/infineon-design-system-stencil/p-676fb63a.entry.js.map +1 -0
- package/dist/infineon-design-system-stencil/p-6790d912.entry.js +2 -0
- package/dist/infineon-design-system-stencil/p-6790d912.entry.js.map +1 -0
- package/dist/infineon-design-system-stencil/p-6bdca580.entry.js +2 -0
- package/dist/infineon-design-system-stencil/p-6bdca580.entry.js.map +1 -0
- package/dist/infineon-design-system-stencil/p-702a48f8.entry.js +2 -0
- package/dist/infineon-design-system-stencil/p-702a48f8.entry.js.map +1 -0
- package/dist/infineon-design-system-stencil/p-741ee6fd.entry.js +2 -0
- package/dist/infineon-design-system-stencil/p-741ee6fd.entry.js.map +1 -0
- package/dist/infineon-design-system-stencil/{p-9c28f35f.entry.js → p-7440ea9d.entry.js} +3 -3
- package/dist/infineon-design-system-stencil/p-7440ea9d.entry.js.map +1 -0
- package/dist/infineon-design-system-stencil/p-885adc48.entry.js +2 -0
- package/dist/infineon-design-system-stencil/p-885adc48.entry.js.map +1 -0
- package/dist/infineon-design-system-stencil/{p-aaf08082.entry.js → p-88af2e64.entry.js} +2 -2
- package/dist/infineon-design-system-stencil/p-9149a20a.entry.js +2 -0
- package/dist/infineon-design-system-stencil/p-9149a20a.entry.js.map +1 -0
- package/dist/infineon-design-system-stencil/p-959285a7.entry.js +2 -0
- package/dist/infineon-design-system-stencil/p-959285a7.entry.js.map +1 -0
- package/dist/infineon-design-system-stencil/p-9fc0f50d.entry.js +2 -0
- package/dist/infineon-design-system-stencil/p-9fc0f50d.entry.js.map +1 -0
- package/dist/infineon-design-system-stencil/p-aadd1a9d.entry.js +2 -0
- package/dist/infineon-design-system-stencil/p-aadd1a9d.entry.js.map +1 -0
- package/dist/infineon-design-system-stencil/p-acf0f4ed.entry.js +2 -0
- package/dist/infineon-design-system-stencil/p-acf0f4ed.entry.js.map +1 -0
- package/dist/infineon-design-system-stencil/p-ad1ec9d6.entry.js +2 -0
- package/dist/infineon-design-system-stencil/p-ad1ec9d6.entry.js.map +1 -0
- package/dist/infineon-design-system-stencil/p-b637c44c.entry.js +2 -0
- package/dist/infineon-design-system-stencil/p-b637c44c.entry.js.map +1 -0
- package/dist/infineon-design-system-stencil/p-b73a5f18.entry.js +2 -0
- package/dist/infineon-design-system-stencil/p-b73a5f18.entry.js.map +1 -0
- package/dist/infineon-design-system-stencil/p-c2791360.entry.js +2 -0
- package/dist/infineon-design-system-stencil/p-c2791360.entry.js.map +1 -0
- package/dist/infineon-design-system-stencil/p-c5a785d7.entry.js +2 -0
- package/dist/infineon-design-system-stencil/p-c5a785d7.entry.js.map +1 -0
- package/dist/infineon-design-system-stencil/p-c84ef603.entry.js +2 -0
- package/dist/infineon-design-system-stencil/p-c84ef603.entry.js.map +1 -0
- package/dist/infineon-design-system-stencil/p-dd28f3a1.entry.js +2 -0
- package/dist/infineon-design-system-stencil/p-dd28f3a1.entry.js.map +1 -0
- package/dist/infineon-design-system-stencil/p-e98d2280.entry.js +2 -0
- package/dist/infineon-design-system-stencil/p-e98d2280.entry.js.map +1 -0
- package/dist/infineon-design-system-stencil/p-ecc17497.entry.js +2 -0
- package/dist/infineon-design-system-stencil/p-ecc17497.entry.js.map +1 -0
- package/dist/infineon-design-system-stencil/p-ef6d0dc6.entry.js +2 -0
- package/dist/infineon-design-system-stencil/p-ef6d0dc6.entry.js.map +1 -0
- package/dist/infineon-design-system-stencil/p-f25f014d.entry.js +2 -0
- package/dist/infineon-design-system-stencil/p-f25f014d.entry.js.map +1 -0
- package/dist/infineon-design-system-stencil/p-f338fb85.entry.js +2 -0
- package/dist/infineon-design-system-stencil/p-f338fb85.entry.js.map +1 -0
- package/dist/types/components/accordion/accordion.d.ts +0 -1
- package/dist/types/components/alert/alert.d.ts +0 -1
- package/dist/types/components/badge/badge.d.ts +0 -2
- package/dist/types/components/breadcrumb/breadcrumb.d.ts +0 -1
- package/dist/types/components/date-picker/date-picker.d.ts +0 -1
- package/dist/types/components/file-upload/file-upload.d.ts +0 -1
- package/dist/types/components/icon/infineonIconStencil.d.ts +0 -3
- package/dist/types/components/link/link.d.ts +0 -2
- package/dist/types/components/modal/modal.d.ts +0 -1
- package/dist/types/components/notification/notification.d.ts +0 -2
- package/dist/types/components/progress-bar/progress-bar.d.ts +0 -1
- package/dist/types/components/search-field/search-field.d.ts +0 -2
- package/dist/types/components/segmented-control/segmented-control.d.ts +0 -1
- package/dist/types/components/spinner/spinner.d.ts +0 -2
- package/dist/types/components/status/status.d.ts +0 -2
- package/dist/types/components/tag/tag.d.ts +0 -2
- package/dist/types/components/tree-view/tree-view.d.ts +0 -2
- package/package.json +2 -2
- package/dist/cjs/dom-utils-2c4573c2.js +0 -20
- package/dist/cjs/dom-utils-2c4573c2.js.map +0 -1
- package/dist/cjs/icons-2cd72a7d.js.map +0 -1
- package/dist/cjs/tracking-f00364dc.js +0 -41
- package/dist/cjs/tracking-f00364dc.js.map +0 -1
- package/dist/collection/global/utils/dom-utils.js +0 -15
- package/dist/collection/global/utils/dom-utils.js.map +0 -1
- package/dist/collection/global/utils/tracking.js +0 -37
- package/dist/collection/global/utils/tracking.js.map +0 -1
- package/dist/components/p-0905733d.js.map +0 -1
- package/dist/components/p-0d6ca0f6.js.map +0 -1
- package/dist/components/p-13126216.js.map +0 -1
- package/dist/components/p-1ad917f9.js.map +0 -1
- package/dist/components/p-1ecafb97.js +0 -18
- package/dist/components/p-1ecafb97.js.map +0 -1
- package/dist/components/p-24382260.js.map +0 -1
- package/dist/components/p-347a1b14.js.map +0 -1
- package/dist/components/p-465d3172.js.map +0 -1
- package/dist/components/p-4fc475c9.js.map +0 -1
- package/dist/components/p-54b39a91.js.map +0 -1
- package/dist/components/p-6d95b3c1.js.map +0 -1
- package/dist/components/p-6ecb6a6f.js +0 -39
- package/dist/components/p-6ecb6a6f.js.map +0 -1
- package/dist/components/p-816b2612.js.map +0 -1
- package/dist/components/p-830057b3.js.map +0 -1
- package/dist/components/p-8cb991f4.js.map +0 -1
- package/dist/components/p-94da6823.js.map +0 -1
- package/dist/components/p-9ea9e274.js.map +0 -1
- package/dist/components/p-cca71d97.js.map +0 -1
- package/dist/components/p-cf109552.js.map +0 -1
- package/dist/components/p-e126ea6f.js.map +0 -1
- package/dist/esm/dom-utils-1988cdf1.js +0 -18
- package/dist/esm/dom-utils-1988cdf1.js.map +0 -1
- package/dist/esm/icons-75858876.js.map +0 -1
- package/dist/esm/tracking-a7efdbcd.js +0 -39
- package/dist/esm/tracking-a7efdbcd.js.map +0 -1
- package/dist/infineon-design-system-stencil/p-0c60ce87.entry.js +0 -2
- package/dist/infineon-design-system-stencil/p-0c60ce87.entry.js.map +0 -1
- package/dist/infineon-design-system-stencil/p-14842bbb.entry.js +0 -2
- package/dist/infineon-design-system-stencil/p-14842bbb.entry.js.map +0 -1
- package/dist/infineon-design-system-stencil/p-19fcf1db.entry.js +0 -2
- package/dist/infineon-design-system-stencil/p-19fcf1db.entry.js.map +0 -1
- package/dist/infineon-design-system-stencil/p-1ecafb97.js +0 -2
- package/dist/infineon-design-system-stencil/p-1ecafb97.js.map +0 -1
- package/dist/infineon-design-system-stencil/p-1fd80576.entry.js +0 -2
- package/dist/infineon-design-system-stencil/p-1fd80576.entry.js.map +0 -1
- package/dist/infineon-design-system-stencil/p-227fa186.entry.js +0 -2
- package/dist/infineon-design-system-stencil/p-227fa186.entry.js.map +0 -1
- package/dist/infineon-design-system-stencil/p-26c73456.entry.js +0 -2
- package/dist/infineon-design-system-stencil/p-26c73456.entry.js.map +0 -1
- package/dist/infineon-design-system-stencil/p-296f215f.entry.js +0 -2
- package/dist/infineon-design-system-stencil/p-296f215f.entry.js.map +0 -1
- package/dist/infineon-design-system-stencil/p-32b0dfda.entry.js +0 -2
- package/dist/infineon-design-system-stencil/p-32b0dfda.entry.js.map +0 -1
- package/dist/infineon-design-system-stencil/p-4d96fed0.js.map +0 -1
- package/dist/infineon-design-system-stencil/p-4eda4ef3.entry.js +0 -2
- package/dist/infineon-design-system-stencil/p-4eda4ef3.entry.js.map +0 -1
- package/dist/infineon-design-system-stencil/p-52420868.entry.js +0 -2
- package/dist/infineon-design-system-stencil/p-52420868.entry.js.map +0 -1
- package/dist/infineon-design-system-stencil/p-5493e6f5.entry.js +0 -2
- package/dist/infineon-design-system-stencil/p-5493e6f5.entry.js.map +0 -1
- package/dist/infineon-design-system-stencil/p-5a12d20a.entry.js +0 -2
- package/dist/infineon-design-system-stencil/p-5a12d20a.entry.js.map +0 -1
- package/dist/infineon-design-system-stencil/p-65255c40.entry.js +0 -2
- package/dist/infineon-design-system-stencil/p-65255c40.entry.js.map +0 -1
- package/dist/infineon-design-system-stencil/p-68423787.entry.js +0 -2
- package/dist/infineon-design-system-stencil/p-68423787.entry.js.map +0 -1
- package/dist/infineon-design-system-stencil/p-6d72ad32.entry.js +0 -2
- package/dist/infineon-design-system-stencil/p-6d72ad32.entry.js.map +0 -1
- package/dist/infineon-design-system-stencil/p-6ecb6a6f.js +0 -2
- package/dist/infineon-design-system-stencil/p-6ecb6a6f.js.map +0 -1
- package/dist/infineon-design-system-stencil/p-73d39ed6.entry.js +0 -2
- package/dist/infineon-design-system-stencil/p-73d39ed6.entry.js.map +0 -1
- package/dist/infineon-design-system-stencil/p-76914839.entry.js.map +0 -1
- package/dist/infineon-design-system-stencil/p-796675ed.entry.js +0 -2
- package/dist/infineon-design-system-stencil/p-796675ed.entry.js.map +0 -1
- package/dist/infineon-design-system-stencil/p-79b7d7a2.entry.js +0 -2
- package/dist/infineon-design-system-stencil/p-79b7d7a2.entry.js.map +0 -1
- package/dist/infineon-design-system-stencil/p-82c59e6b.entry.js +0 -2
- package/dist/infineon-design-system-stencil/p-82c59e6b.entry.js.map +0 -1
- package/dist/infineon-design-system-stencil/p-82dd7e7d.entry.js +0 -2
- package/dist/infineon-design-system-stencil/p-82dd7e7d.entry.js.map +0 -1
- package/dist/infineon-design-system-stencil/p-877e1d37.entry.js +0 -2
- package/dist/infineon-design-system-stencil/p-877e1d37.entry.js.map +0 -1
- package/dist/infineon-design-system-stencil/p-8a7bfe65.entry.js +0 -2
- package/dist/infineon-design-system-stencil/p-8a7bfe65.entry.js.map +0 -1
- package/dist/infineon-design-system-stencil/p-98532a0e.entry.js +0 -2
- package/dist/infineon-design-system-stencil/p-98532a0e.entry.js.map +0 -1
- package/dist/infineon-design-system-stencil/p-9c28f35f.entry.js.map +0 -1
- package/dist/infineon-design-system-stencil/p-a0006775.entry.js +0 -2
- package/dist/infineon-design-system-stencil/p-a0006775.entry.js.map +0 -1
- package/dist/infineon-design-system-stencil/p-ac7db8d1.entry.js +0 -2
- package/dist/infineon-design-system-stencil/p-ac7db8d1.entry.js.map +0 -1
- package/dist/infineon-design-system-stencil/p-ae8110b7.entry.js +0 -2
- package/dist/infineon-design-system-stencil/p-ae8110b7.entry.js.map +0 -1
- package/dist/infineon-design-system-stencil/p-aeaa6d0b.entry.js +0 -2
- package/dist/infineon-design-system-stencil/p-aeaa6d0b.entry.js.map +0 -1
- package/dist/infineon-design-system-stencil/p-b110d5d4.entry.js +0 -2
- package/dist/infineon-design-system-stencil/p-b110d5d4.entry.js.map +0 -1
- package/dist/infineon-design-system-stencil/p-b17a0e8c.entry.js +0 -2
- package/dist/infineon-design-system-stencil/p-b17a0e8c.entry.js.map +0 -1
- package/dist/infineon-design-system-stencil/p-bb7b2a3c.entry.js +0 -2
- package/dist/infineon-design-system-stencil/p-bb7b2a3c.entry.js.map +0 -1
- package/dist/infineon-design-system-stencil/p-c164c83b.entry.js +0 -2
- package/dist/infineon-design-system-stencil/p-c164c83b.entry.js.map +0 -1
- package/dist/infineon-design-system-stencil/p-c220733b.entry.js +0 -2
- package/dist/infineon-design-system-stencil/p-c220733b.entry.js.map +0 -1
- package/dist/infineon-design-system-stencil/p-c88876dc.entry.js +0 -2
- package/dist/infineon-design-system-stencil/p-c88876dc.entry.js.map +0 -1
- package/dist/infineon-design-system-stencil/p-e0978af0.entry.js +0 -2
- package/dist/infineon-design-system-stencil/p-e0978af0.entry.js.map +0 -1
- package/dist/infineon-design-system-stencil/p-e5018880.entry.js +0 -2
- package/dist/infineon-design-system-stencil/p-e5018880.entry.js.map +0 -1
- package/dist/infineon-design-system-stencil/p-ed869b07.entry.js +0 -2
- package/dist/infineon-design-system-stencil/p-ed869b07.entry.js.map +0 -1
- package/dist/infineon-design-system-stencil/p-eeb59f76.entry.js +0 -2
- package/dist/infineon-design-system-stencil/p-eeb59f76.entry.js.map +0 -1
- package/dist/infineon-design-system-stencil/p-f3f8d603.entry.js +0 -2
- package/dist/infineon-design-system-stencil/p-f3f8d603.entry.js.map +0 -1
- package/dist/infineon-design-system-stencil/p-fb6a813b.entry.js +0 -2
- package/dist/infineon-design-system-stencil/p-fb6a813b.entry.js.map +0 -1
- package/dist/infineon-design-system-stencil/p-fe22fc31.entry.js +0 -2
- package/dist/infineon-design-system-stencil/p-fe22fc31.entry.js.map +0 -1
- package/dist/types/global/utils/dom-utils.d.ts +0 -1
- package/dist/types/global/utils/tracking.d.ts +0 -9
- /package/dist/infineon-design-system-stencil/{p-aaf08082.entry.js.map → p-88af2e64.entry.js.map} +0 -0
@@ -1,2 +0,0 @@
|
|
1
|
-
import{r as t,h as i,g as o}from"./p-b7a462e5.js";import{t as e}from"./p-6ecb6a6f.js";import{i as c}from"./p-1ecafb97.js";const s=':root{--ifx-font-family:"Source Sans 3", "Arial, sans-serif"}.checkbox-group-container{display:flex;flex-direction:column}.checkbox-group{display:flex;font-family:var(--ifx-font-family);gap:8px}.checkbox-group.horizontal{flex-direction:row;column-gap:12px}.checkbox-group.vertical{flex-direction:column;row-gap:12px}.group-label{font:400 0.75rem/1rem "Source Sans 3";margin-bottom:8px;text-align:left;text-underline-position:from-font;text-decoration-skip-ink:none}.caption{margin-top:8px;align-self:flex-start;display:flex;width:100%;column-gap:8px;justify-content:space-between;align-items:center}.caption.default{color:#1D1D1D}.caption.error{color:#CD002F}.caption-text{font:400 0.75rem/1rem "Source Sans 3";flex:1;text-align:left;text-underline-position:from-font;text-decoration-skip-ink:none}.caption-icon{flex:0;display:flex}';const r=s;const a=class{constructor(i){t(this,i);this.errorStates=new Map;this.alignment="vertical";this.groupLabelText="Group Label Text";this.hasErrors=false;this.handleSlotChange=()=>{this.initializeState()}}handleCheckboxError(t){const i=t.target;if(i.tagName==="ifx-checkbox"){this.errorStates.set(i,t.detail);this.updateHasErrors()}}async setGroupError(t){const i=Array.from(this.el.querySelectorAll("ifx-checkbox"));i.forEach((i=>{i.error=t}))}componentWillLoad(){this.initializeState();if(!c(this.el)){e("ifx-checkbox-group")}}initializeState(){this.errorStates.clear();const t=Array.from(this.el.querySelectorAll("ifx-checkbox"));t.forEach((t=>{if(!this.errorStates.has(t)){this.errorStates.set(t,t.error||false)}}));this.updateHasErrors()}updateHasErrors(){this.hasErrors=Array.from(this.errorStates.values()).some((t=>t))}render(){return i("div",{key:"aff89833ebe564e6e0d90e03d637262128fc4870",class:"checkbox-group-container"},this.showGroupLabel?i("div",{class:"group-label"},this.groupLabelText," *"):"",i("div",{key:"50e14d7cd761c7f4953ffe14e5d9499afdc0cdbc",class:`checkbox-group ${this.alignment} ${this.size}`},i("slot",{key:"483906c7502d263f70622c89650753d163490af4",onSlotchange:this.handleSlotChange})),this.showCaption?i("div",{class:`caption ${this.hasErrors?"error":"default"}`},this.showCaptionIcon?i("div",{class:"caption-icon"},i("ifx-icon",{icon:"c-info-16"})):"",i("div",{class:"caption-text"},this.captionText)):"")}static get formAssociated(){return true}get el(){return o(this)}};a.style=r;export{a as ifx_checkbox_group};
|
2
|
-
//# sourceMappingURL=p-a0006775.entry.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"names":["checkboxGroupCss","IfxCheckboxGroupStyle0","CheckboxGroup","constructor","hostRef","this","errorStates","Map","alignment","groupLabelText","hasErrors","handleSlotChange","initializeState","handleCheckboxError","event","checkbox","target","tagName","set","detail","updateHasErrors","setGroupError","error","checkboxes","Array","from","el","querySelectorAll","forEach","componentWillLoad","isNestedInIfxComponent","trackComponent","clear","has","values","some","render","h","key","class","showGroupLabel","size","onSlotchange","showCaption","showCaptionIcon","icon","captionText"],"sources":["src/components/checkbox-group/checkbox-group.scss?tag=ifx-checkbox-group&encapsulation=shadow","src/components/checkbox-group/checkbox-group.tsx"],"sourcesContent":["@use \"~@infineon/design-system-tokens/dist/tokens\";\n@use \"../../global/font.scss\";\n\n.checkbox-group-container {\n display: flex;\n flex-direction: column;\n}\n\n.checkbox-group {\n display: flex;\n font-family: var(--ifx-font-family); // tokens.$ifxFontFamilyBody;\n\n\n gap: tokens.$ifxSpace100;\n\n &.horizontal {\n flex-direction: row;\n column-gap: tokens.$ifxSpace150;\n }\n\n &.vertical {\n flex-direction: column;\n row-gap: tokens.$ifxSpace150;\n }\n}\n\n.group-label {\n font: tokens.$ifxBodyBody05;\n margin-bottom: tokens.$ifxSpace100;\n text-align: left;\n text-underline-position: from-font;\n text-decoration-skip-ink: none;\n}\n\n.caption {\n margin-top: tokens.$ifxSpace100;\n align-self: flex-start;\n display: flex;\n width: 100%;\n column-gap: tokens.$ifxSpace100;\n justify-content: space-between;\n align-items: center;\n\n &.default {\n color: tokens.$ifxColorBaseBlack;\n }\n\n &.error {\n color: tokens.$ifxColorRed500;\n }\n}\n\n.caption-text {\n font: tokens.$ifxBodyBody05;\n flex: 1;\n text-align: left;\n text-underline-position: from-font;\n text-decoration-skip-ink: none;\n}\n\n.caption-icon {\n flex:0;\n display: flex;\n}","import { Component, State, Prop, h, Element, Listen, Method } from '@stencil/core';\nimport { trackComponent } from '../../global/utils/tracking';\nimport { isNestedInIfxComponent } from '../../global/utils/dom-utils';\n\n@Component({\n tag: 'ifx-checkbox-group',\n styleUrl: 'checkbox-group.scss',\n shadow: true,\n formAssociated: true\n})\n\nexport class CheckboxGroup {\n private errorStates: Map<HTMLElement, boolean> = new Map();\n\n @Element() el: HTMLElement;\n @Prop() alignment: 'horizontal' | 'vertical' = 'vertical';\n @Prop() size: string;\n @Prop() showGroupLabel: boolean;\n @Prop() groupLabelText: string = 'Group Label Text';\n @Prop() showCaption: boolean;\n @Prop() captionText: string;\n @Prop() showCaptionIcon: boolean;\n @State() hasErrors: boolean = false;\n\n @Listen('ifxError')\n handleCheckboxError(event: CustomEvent) {\n const checkbox = event.target as HTMLElement;\n if (checkbox.tagName === 'ifx-checkbox') {\n this.errorStates.set(checkbox, event.detail);\n this.updateHasErrors();\n }\n }\n\n // Method to set the error state of all checkboxes in the group\n @Method()\n async setGroupError(error: boolean) {\n const checkboxes = Array.from(this.el.querySelectorAll('ifx-checkbox'));\n checkboxes.forEach((checkbox) => {\n (checkbox as any).error = error;\n });\n }\n\n componentWillLoad() {\n this.initializeState();\n if(!isNestedInIfxComponent(this.el)) { \n trackComponent('ifx-checkbox-group')\n }\n }\n\n handleSlotChange = () => {\n this.initializeState();\n };\n\n private initializeState() {\n this.errorStates.clear();\n const checkboxes = Array.from(this.el.querySelectorAll('ifx-checkbox'));\n checkboxes.forEach((checkbox) => {\n if (!this.errorStates.has(checkbox)) {\n this.errorStates.set(checkbox, (checkbox as any).error || false);\n }\n });\n this.updateHasErrors();\n }\n\n private updateHasErrors() {\n this.hasErrors = Array.from(this.errorStates.values()).some((error) => error);\n }\n\n render() {\n return (\n <div class='checkbox-group-container'>\n {this.showGroupLabel ? <div class='group-label'>{this.groupLabelText} *</div> : ''}\n <div class={`checkbox-group ${this.alignment} ${this.size}`}>\n <slot onSlotchange={this.handleSlotChange}></slot>\n </div>\n {this.showCaption ? (\n <div class={`caption ${this.hasErrors ? 'error' : 'default'}`}>\n {this.showCaptionIcon ? <div class='caption-icon'><ifx-icon icon=\"c-info-16\">\n </ifx-icon></div> : ''}\n <div class='caption-text'>{this.captionText}</div>\n </div>) : ''}\n </div>\n );\n }\n}"],"mappings":"0HAAA,MAAMA,EAAmB,m0BACzB,MAAAC,EAAeD,E,MCUFE,EAAa,MAP1B,WAAAC,CAAAC,G,UAQUC,KAAAC,YAAyC,IAAIC,IAG7CF,KAAAG,UAAuC,WAGvCH,KAAAI,eAAyB,mBAIxBJ,KAAAK,UAAqB,MA2B9BL,KAAAM,iBAAmB,KACjBN,KAAKO,iBAAiB,C,CAzBxB,mBAAAC,CAAoBC,GAClB,MAAMC,EAAWD,EAAME,OACvB,GAAID,EAASE,UAAY,eAAgB,CACvCZ,KAAKC,YAAYY,IAAIH,EAAUD,EAAMK,QACrCd,KAAKe,iB,EAMT,mBAAMC,CAAcC,GAClB,MAAMC,EAAaC,MAAMC,KAAKpB,KAAKqB,GAAGC,iBAAiB,iBACvDJ,EAAWK,SAASb,IACjBA,EAAiBO,MAAQA,CAAK,G,CAInC,iBAAAO,GACExB,KAAKO,kBACL,IAAIkB,EAAuBzB,KAAKqB,IAAK,CACnCK,EAAe,qB,EAQX,eAAAnB,GACNP,KAAKC,YAAY0B,QACjB,MAAMT,EAAaC,MAAMC,KAAKpB,KAAKqB,GAAGC,iBAAiB,iBACvDJ,EAAWK,SAASb,IAClB,IAAKV,KAAKC,YAAY2B,IAAIlB,GAAW,CACnCV,KAAKC,YAAYY,IAAIH,EAAWA,EAAiBO,OAAS,M,KAG9DjB,KAAKe,iB,CAGC,eAAAA,GACNf,KAAKK,UAAYc,MAAMC,KAAKpB,KAAKC,YAAY4B,UAAUC,MAAMb,GAAUA,G,CAGzE,MAAAc,GACE,OACEC,EAAA,OAAAC,IAAA,2CAAKC,MAAM,4BACRlC,KAAKmC,eAAiBH,EAAA,OAAKE,MAAM,eAAelC,KAAKI,eAAc,MAAY,GAChF4B,EAAA,OAAAC,IAAA,2CAAKC,MAAO,kBAAkBlC,KAAKG,aAAaH,KAAKoC,QACnDJ,EAAA,QAAAC,IAAA,2CAAMI,aAAcrC,KAAKM,oBAE1BN,KAAKsC,YACJN,EAAA,OAAKE,MAAO,WAAWlC,KAAKK,UAAY,QAAU,aAC/CL,KAAKuC,gBAAkBP,EAAA,OAAKE,MAAM,gBAAeF,EAAA,YAAUQ,KAAK,eAC7C,GACpBR,EAAA,OAAKE,MAAM,gBAAgBlC,KAAKyC,cACxB,G","ignoreList":[]}
|
@@ -1,2 +0,0 @@
|
|
1
|
-
import{r as e,c,h as i,g as s}from"./p-b7a462e5.js";import{t}from"./p-6ecb6a6f.js";import{i as o}from"./p-1ecafb97.js";const r=':root{--ifx-font-family:"Source Sans 3", "Arial, sans-serif"}:host{display:inline-block;user-select:none}.container{display:flex;flex-direction:row;align-items:center}.container.gap{gap:16px}.switch__checkbox-container{padding:4px;display:flex;align-items:center;position:relative;width:32px;height:16px;background-color:#FFFFFF;border:1px solid #575352;border-radius:20px;cursor:pointer;transition:background-color 0.3s ease;outline:none}.switch__checkbox-container:focus{outline:4px solid #0A8276;outline-offset:2px}.switch__checkbox-container:focus:not(:focus-visible){outline:none}.switch__checkbox-container:focus-visible{outline:2px solid #0A8276;outline-offset:2px}.switch__checkbox-container.disabled{cursor:default;border-color:#BFBBBB}.switch__label-wrapper label:hover{cursor:pointer}.switch__label-wrapper.disabled{color:#BFBBBB}.switch__checkbox-wrapper .switch{width:16px;height:16px;background-color:#575352;border-radius:50%;transition:transform 0.3s ease, background-color 0.3s ease}.switch__checkbox-wrapper .switch.disabled{background-color:#BFBBBB;border-color:#BFBBBB;cursor:default}.switch__checkbox-wrapper .switch.checked{transform:translateX(16px);background-color:#FFFFFF}.switch__checkbox-wrapper .switch.checked.disabled{cursor:default}.switch__checkbox-container:hover .toggle-switch{box-shadow:0 0 5px rgba(0, 0, 0, 0.2)}.switch__checkbox-container.checked{background-color:#0A8276;border-color:#0A8276}.switch__checkbox-container.checked.disabled{background-color:#BFBBBB;border-color:#BFBBBB;cursor:default}';const a=r;const h=class{constructor(i){e(this,i);this.ifxChange=c(this,"ifxChange",7);if(i.$hostElement$["s-ei"]){this.internals=i.$hostElement$["s-ei"]}else{this.internals=i.$hostElement$.attachInternals();i.$hostElement$["s-ei"]=this.internals}this.checked=false;this.name="";this.disabled=false;this.internalChecked=false}async isChecked(){return this.internalChecked}componentWillLoad(){if(!o(this.el)){t("ifx-switch")}this.internalChecked=this.checked}toggleLabelGap(){const e=this.el.shadowRoot.querySelector("slot");const c=this.el.shadowRoot.querySelector(".container");if(e.assignedNodes().length){c.classList.add("gap")}else{c.classList.remove("gap")}}componentDidLoad(){this.toggleLabelGap()}valueChanged(e,c){if(e!==c){this.internalChecked=e}}toggleSwitch(){if(this.disabled)return;this.internalChecked=!this.internalChecked;if(this.internalChecked){if(this.value!==undefined){this.internals.setFormValue(this.value)}else{this.internals.setFormValue("on")}}else{this.internals.setFormValue(null)}this.ifxChange.emit(this.internalChecked)}handleKeyDown(e){if(this.disabled)return;if(e.key==="Enter"||e.key===" "){this.toggleSwitch()}}formResetCallback(){this.internals.setFormValue(null)}render(){return i("div",{key:"368900f5901207bf6ed9dc294940ee895f80de02",class:"container",role:"switch","aria-checked":this.internalChecked?"true":"false","aria-label":this.name,onClick:()=>this.toggleSwitch(),onKeyDown:e=>this.handleKeyDown(e)},i("div",{key:"dfbab5f622c50f88382c8befd431230dd463d331",class:`switch__checkbox-container ${this.internalChecked?"checked":""} ${this.disabled?"disabled":""}`,tabindex:"0"},i("div",{key:"a2babe514da4d48c407d7f9da26f076c3f5b5d50",class:"switch__checkbox-wrapper"},i("input",{key:"13edfa115a2e8fdc87dc5b7d19d45bf6720a4fdc",type:"checkbox",hidden:true,name:this.name,disabled:this.disabled,checked:this.internalChecked,value:`${this.value}`}),i("div",{key:"77b8d52724436403c64b65df10b7add428fdd004",class:`switch ${this.internalChecked?"checked":""} ${this.disabled?"disabled":""}`}))),i("div",{key:"4c4720445c6f71c5037bb530ecacc080149757fe",class:`switch__label-wrapper ${this.disabled?"disabled":""}`},i("label",{key:"98d48093adb22ca832ff536546cef451c159cab4",htmlFor:"switch"},i("slot",{key:"18ecfccc0535975209229a1e399bf093b8930690",onSlotchange:()=>this.toggleLabelGap()}))))}static get formAssociated(){return true}get el(){return s(this)}static get watchers(){return{checked:["valueChanged"]}}};h.style=a;export{h as ifx_switch};
|
2
|
-
//# sourceMappingURL=p-ac7db8d1.entry.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"names":["switchCss","IfxSwitchStyle0","Switch","constructor","hostRef","this","checked","name","disabled","internalChecked","isChecked","componentWillLoad","isNestedInIfxComponent","el","trackComponent","toggleLabelGap","slot","shadowRoot","querySelector","container","assignedNodes","length","classList","add","remove","componentDidLoad","valueChanged","newValue","oldValue","toggleSwitch","value","undefined","internals","setFormValue","ifxChange","emit","handleKeyDown","event","key","formResetCallback","render","h","class","role","onClick","onKeyDown","tabindex","type","hidden","htmlFor","onSlotchange"],"sources":["src/components/switch/switch.scss?tag=ifx-switch&encapsulation=shadow","src/components/switch/switch.tsx"],"sourcesContent":["@use \"~@infineon/design-system-tokens/dist/tokens\";\n@use \"../../global/font.scss\";\n\n/* switch.css */\n:host {\n display: inline-block;\n user-select: none;\n}\n\n.container {\n display: flex;\n flex-direction: row;\n align-items: center;\n\n &.gap {\n gap: tokens.$ifxSpace200;\n }\n}\n\n\n.switch__checkbox-container {\n padding: tokens.$ifxSpace50;\n display: flex;\n align-items: center;\n position: relative;\n // Subtracting padding size from both height and width\n width: (tokens.$ifxSpace500)-8px;\n height: 16px;\n background-color: tokens.$ifxColorBaseWhite;\n border: 1px solid tokens.$ifxColorEngineering500;\n border-radius: 20px;\n cursor: pointer;\n transition: background-color 0.3s ease;\n outline: none;\n\n &:focus {\n outline: 4px solid tokens.$ifxColorOcean500;\n outline-offset: 2px;\n }\n\n &:focus:not(:focus-visible) {\n outline: none;\n }\n\n &:focus-visible {\n outline: 2px solid tokens.$ifxColorOcean500;\n outline-offset: 2px;\n }\n\n &.disabled {\n cursor: default;\n border-color: tokens.$ifxColorEngineering300;\n }\n\n\n}\n\n\n.switch__label-wrapper {\n\n & label { \n &:hover { \n cursor: pointer;\n }\n }\n\n &.disabled {\n color: tokens.$ifxColorEngineering300;\n }\n}\n\n\n.switch__checkbox-wrapper {\n\n .switch {\n // position: absolute;\n width: tokens.$ifxSpace200;\n height: tokens.$ifxSpace200;\n background-color: tokens.$ifxColorEngineering500;\n border-radius: 50%;\n transition: transform 0.3s ease, background-color 0.3s ease;\n\n &.disabled {\n background-color: tokens.$ifxColorEngineering300;\n border-color: tokens.$ifxColorEngineering300;\n cursor: default;\n }\n }\n\n .switch.checked {\n transform: translateX(16px);\n background-color: tokens.$ifxColorBaseWhite;\n\n &.disabled {\n cursor: default;\n }\n\n }\n\n}\n\n.switch__checkbox-container:hover .toggle-switch {\n box-shadow: 0 0 5px rgba(0, 0, 0, 0.2);\n}\n\n\n\n.switch__checkbox-container.checked {\n background-color: tokens.$ifxColorOcean500;\n border-color: tokens.$ifxColorOcean500;\n\n &.disabled {\n background-color: tokens.$ifxColorEngineering300;\n border-color: tokens.$ifxColorEngineering300;\n cursor: default;\n }\n}","import { AttachInternals, Method } from '@stencil/core';\nimport { Component, Prop, State, Watch, h, Event, EventEmitter, Element } from '@stencil/core';\nimport { trackComponent } from '../../global/utils/tracking'; \nimport { isNestedInIfxComponent } from '../../global/utils/dom-utils';\n\n@Component({\n tag: 'ifx-switch',\n styleUrl: 'switch.scss',\n shadow: true,\n formAssociated: true\n})\nexport class Switch {\n @Prop() checked: boolean = false;\n @Prop() name: string = '';\n @Prop() disabled: boolean = false;\n @Prop() value: string;\n @State() internalChecked: boolean = false;\n\n @AttachInternals() internals: ElementInternals;\n\n @Element() el: HTMLIfxSwitchElement;\n\n @Event({ eventName: 'ifxChange' }) ifxChange: EventEmitter<boolean>;\n\n @Method()\n async isChecked(): Promise<boolean> {\n return this.internalChecked;\n }\n\n componentWillLoad() {\n if(!isNestedInIfxComponent(this.el)) { \n trackComponent('ifx-switch')\n }\n this.internalChecked = this.checked;\n }\n \n\n toggleLabelGap() {\n const slot = this.el.shadowRoot.querySelector('slot');\n const container = this.el.shadowRoot.querySelector('.container');\n if (slot.assignedNodes().length) {\n container.classList.add('gap')\n } else { \n container.classList.remove('gap')\n }\n }\n \n componentDidLoad() {\n this.toggleLabelGap();\n\n }\n \n @Watch('checked')\n valueChanged(newValue: boolean, oldValue: boolean) {\n if (newValue !== oldValue) {\n this.internalChecked = newValue;\n }\n }\n\n toggleSwitch() {\n if (this.disabled) return;\n this.internalChecked = !this.internalChecked;\n\n if (this.internalChecked) {\n if (this.value !== undefined) {\n this.internals.setFormValue(this.value);\n } else {\n this.internals.setFormValue(\"on\")\n }\n } else {\n this.internals.setFormValue(null)\n }\n\n this.ifxChange.emit(this.internalChecked);\n }\n\n handleKeyDown(event: KeyboardEvent) {\n if (this.disabled) return;\n // If the pressed key is either 'Enter' or 'Space' \n if (event.key === 'Enter' || event.key === ' ') {\n this.toggleSwitch();\n }\n }\n\n /**\n * Callback for form association.\n * Called whenever the form is reset.\n */\n formResetCallback() {\n this.internals.setFormValue(null);\n }\n\n render() {\n return (\n <div\n class=\"container\"\n role=\"switch\"\n aria-checked={this.internalChecked ? 'true' : 'false'}\n aria-label={this.name}\n onClick={() => this.toggleSwitch()}\n onKeyDown={(event) => this.handleKeyDown(event)}\n >\n {/* Checkbox */}\n <div \n class={`switch__checkbox-container ${this.internalChecked ? 'checked' : ''} ${this.disabled ? 'disabled' : ''}`}\n tabindex=\"0\"\n >\n <div class=\"switch__checkbox-wrapper\">\n <input type=\"checkbox\" hidden\n name={this.name}\n disabled={this.disabled}\n checked={this.internalChecked}\n value={`${this.value}`} />\n <div class={`switch ${this.internalChecked ? 'checked' : ''} ${this.disabled ? 'disabled' : ''}`} />\n </div>\n </div >\n\n {/* Label */}\n <div class={`switch__label-wrapper ${this.disabled ? 'disabled' : ''}`} >\n <label htmlFor=\"switch\">\n <slot onSlotchange={() => this.toggleLabelGap()} />\n </label>\n </div>\n </div>\n )\n\n }\n}\n"],"mappings":"uHAAA,MAAMA,EAAY,sgDAClB,MAAAC,EAAeD,E,MCUFE,EAAM,MANnB,WAAAC,CAAAC,G,+MAOUC,KAAAC,QAAmB,MACnBD,KAAAE,KAAe,GACfF,KAAAG,SAAoB,MAEnBH,KAAAI,gBAA2B,K,CASpC,eAAMC,GACJ,OAAOL,KAAKI,e,CAGd,iBAAAE,GACE,IAAIC,EAAuBP,KAAKQ,IAAK,CACnCC,EAAe,a,CAEjBT,KAAKI,gBAAkBJ,KAAKC,O,CAI9B,cAAAS,GACE,MAAMC,EAAOX,KAAKQ,GAAGI,WAAWC,cAAc,QAC9C,MAAMC,EAAYd,KAAKQ,GAAGI,WAAWC,cAAc,cACnD,GAAIF,EAAKI,gBAAgBC,OAAQ,CAC/BF,EAAUG,UAAUC,IAAI,M,KACnB,CACLJ,EAAUG,UAAUE,OAAO,M,EAI/B,gBAAAC,GACEpB,KAAKU,gB,CAKP,YAAAW,CAAaC,EAAmBC,GAC9B,GAAID,IAAaC,EAAU,CACzBvB,KAAKI,gBAAkBkB,C,EAI3B,YAAAE,GACE,GAAIxB,KAAKG,SAAU,OACnBH,KAAKI,iBAAmBJ,KAAKI,gBAE7B,GAAIJ,KAAKI,gBAAiB,CACxB,GAAIJ,KAAKyB,QAAUC,UAAW,CAC5B1B,KAAK2B,UAAUC,aAAa5B,KAAKyB,M,KAC5B,CACLzB,KAAK2B,UAAUC,aAAa,K,MAEzB,CACL5B,KAAK2B,UAAUC,aAAa,K,CAG9B5B,KAAK6B,UAAUC,KAAK9B,KAAKI,gB,CAG3B,aAAA2B,CAAcC,GACZ,GAAIhC,KAAKG,SAAU,OAEnB,GAAI6B,EAAMC,MAAQ,SAAWD,EAAMC,MAAQ,IAAK,CAC9CjC,KAAKwB,c,EAQT,iBAAAU,GACElC,KAAK2B,UAAUC,aAAa,K,CAG9B,MAAAO,GACE,OACEC,EAAA,OAAAH,IAAA,2CACEI,MAAM,YACNC,KAAK,SAAQ,eACCtC,KAAKI,gBAAkB,OAAS,QAAO,aACzCJ,KAAKE,KACjBqC,QAAS,IAAMvC,KAAKwB,eACpBgB,UAAYR,GAAUhC,KAAK+B,cAAcC,IAGzCI,EAAA,OAAAH,IAAA,2CACEI,MAAO,8BAA8BrC,KAAKI,gBAAkB,UAAY,MAAMJ,KAAKG,SAAW,WAAa,KAC3GsC,SAAS,KAETL,EAAA,OAAAH,IAAA,2CAAKI,MAAM,4BACTD,EAAA,SAAAH,IAAA,2CAAOS,KAAK,WAAWC,OAAM,KAC3BzC,KAAMF,KAAKE,KACXC,SAAUH,KAAKG,SACfF,QAASD,KAAKI,gBACdqB,MAAO,GAAGzB,KAAKyB,UACjBW,EAAA,OAAAH,IAAA,2CAAKI,MAAO,UAAUrC,KAAKI,gBAAkB,UAAY,MAAMJ,KAAKG,SAAW,WAAa,SAKhGiC,EAAA,OAAAH,IAAA,2CAAKI,MAAO,yBAAyBrC,KAAKG,SAAW,WAAa,MAChEiC,EAAA,SAAAH,IAAA,2CAAOW,QAAQ,UACbR,EAAA,QAAAH,IAAA,2CAAMY,aAAc,IAAM7C,KAAKU,qB","ignoreList":[]}
|
@@ -1,2 +0,0 @@
|
|
1
|
-
import{r as t,h as n,a as o,g as i}from"./p-b7a462e5.js";import{t as e}from"./p-6ecb6a6f.js";import{i as r}from"./p-1ecafb97.js";import{c as s}from"./p-5cdc6210.js";const a=":host{display:inline-flex}.btn{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:8px;gap:8px;color:#FFFFFF;flex-direction:row;font-weight:600;border-radius:1px;line-height:1.5rem;outline:none;font-family:var(--ifx-font-family);text-decoration:none;user-select:none;border:1px solid rgba(0, 0, 0, 0);font-size:1rem;transition:color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out}.btn:not(.disabled){cursor:pointer}.btn-primary{color:#FFFFFF;background-color:#0A8276}.btn-primary:disabled,.btn-primary.disabled{background-color:#BFBBBB;color:#FFFFFF;pointer-events:none}.btn-secondary{color:#0A8276;background-color:#FFFFFF;border-color:#0A8276}.btn-secondary:disabled,.btn-secondary.disabled{background-color:#FFFFFF;border:1px solid #BFBBBB;color:#BFBBBB;pointer-events:none}.btn-tertiary{background-color:transparent;color:#1D1D1D}.btn-tertiary:disabled,.btn-tertiary.disabled{color:#BFBBBB;pointer-events:none}.btn.icon-button{min-width:initial;min-height:initial;width:40px;height:40px;padding:0;justify-content:center}.btn.icon-button.btn-round{border-radius:100px}.btn.icon-button.btn-square{border-radius:1px}.btn.icon-button.btn-s{width:32px;height:32px;padding:8px}.btn.icon-button.btn-l{width:48px;height:48px;padding:8px}.btn.btn-primary:not(:disabled,.disabled):focus:not(:active,.active){outline:none;box-shadow:0 0 0 2px #FFFFFF, 0 0 0 4px #0A8276}.btn.btn-primary:not(:disabled,.disabled):hover{background-color:#08665C;border-color:#08665C}.btn.btn-primary:not(:disabled,.disabled):active,.btn.btn-primary:not(:disabled,.disabled).active{background-color:#06534B;border-color:#06534B}.btn.btn-secondary:not(:disabled,.disabled):focus:not(:active,.active){outline:none;box-shadow:0 0 0 2px #FFFFFF, 0 0 0 4px #0A8276}.btn.btn-secondary:not(:disabled,.disabled):hover{background-color:#08665C;border-color:#08665C;color:#FFFFFF}.btn.btn-secondary:not(:disabled,.disabled):active,.btn.btn-secondary:not(:disabled,.disabled).active{background-color:#06534B;border-color:#06534B}.btn.btn-tertiary:not(:disabled,.disabled):focus:not(:active,.active){outline:none;color:#1D1D1D;box-shadow:0 0 0 0px #FFFFFF, 0 0 0 2px #0A8276}.btn.btn-tertiary:not(:disabled,.disabled):hover{color:#0A8276}.btn.btn-tertiary:not(:disabled,.disabled):active,.btn.btn-tertiary:not(:disabled,.disabled).active{color:#08665C}";const d=a;const b=class{constructor(n){t(this,n);this.target="_self";this.shape="round"}handleClick(t){if(this.disabled){t.stopImmediatePropagation()}}updateIcon(t){this.internalIcon=t}async setFocus(){this.focusableElement.focus()}componentWillLoad(){if(this.shape===""){this.shape="round"}this.internalIcon=this.icon;if(!r(this.el)){e("ifx-icon-button")}}render(){return n(o,{key:"1ccbca77a6102927f7206f9762e44be10a17dd0f","aria-disabled":this.disabled,"aria-label":this.ariaLabel},this.href?n("a",{ref:t=>this.focusableElement=t,class:this.getClassNames(),href:!this.disabled?this.href:undefined,target:this.target,rel:this.target==="_blank"?"noopener noreferrer":undefined},n("ifx-icon",{icon:this.internalIcon})):n("button",{class:this.getClassNames(),type:"button",disabled:this.disabled},n("ifx-icon",{icon:this.internalIcon})))}getVariantClass(){return`${this.variant}`==="secondary"?`secondary`:`${this.variant}`==="tertiary"?`tertiary`:`primary`}getSizeClass(){if(`${this.size}`==="xs"){return"xs"}else if(`${this.size}`==="s"){return"s"}else if(`${this.size}`==="l"){return"l"}else return""}getClassNames(){return s("btn icon-button",`btn-${this.shape}`,this.size&&`btn-${this.getSizeClass()}`,`btn-${this.getVariantClass()}`,this.disabled?"disabled":"")}get el(){return i(this)}static get watchers(){return{icon:["updateIcon"]}}};b.style=d;export{b as ifx_icon_button};
|
2
|
-
//# sourceMappingURL=p-ae8110b7.entry.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"names":["iconButtonCss","IfxIconButtonStyle0","IconButton","constructor","hostRef","this","target","shape","handleClick","event","disabled","stopImmediatePropagation","updateIcon","newIcon","internalIcon","setFocus","focusableElement","focus","componentWillLoad","icon","isNestedInIfxComponent","el","trackComponent","render","h","Host","key","ariaLabel","href","ref","class","getClassNames","undefined","rel","type","getVariantClass","variant","getSizeClass","size","classNames"],"sources":["src/components/icon-button/icon-button.scss?tag=ifx-icon-button&encapsulation=shadow","src/components/icon-button/icon-button.tsx"],"sourcesContent":["@use \"~@infineon/design-system-tokens/dist/tokens\";\n\n:host {\n display: inline-flex;\n}\n\n.btn {\n box-sizing: border-box;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-height: tokens.$ifxSize500;\n padding: 8px;\n gap: tokens.$ifxSpace100;\n color: tokens.$ifxColorBaseWhite;\n flex-direction: row;\n font-weight: tokens.$ifxFontWeightSemibold;\n border-radius: tokens.$ifxBorderRadius12;\n line-height: tokens.$ifxLineHeightM;\n outline: none;\n font-family: var(--ifx-font-family); // tokens.$ifxFontFamilyBody;\n\n\n text-decoration: none;\n user-select: none;\n border: 1px solid rgba(0, 0, 0, 0);\n font-size: tokens.$ifxFontSizeM;\n transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out;\n}\n\n.btn:not(.disabled) {\n cursor: pointer;\n}\n\n.btn-primary {\n color: tokens.$ifxColorBaseWhite;\n background-color: tokens.$ifxColorOcean500;\n\n &:disabled,\n &.disabled {\n background-color: tokens.$ifxColorEngineering300;\n color: tokens.$ifxColorBaseWhite;\n pointer-events: none;\n\n }\n}\n\n\n.btn-secondary {\n color: tokens.$ifxColorOcean500;\n background-color: tokens.$ifxColorBaseWhite;\n border-color: tokens.$ifxColorOcean500;\n\n &:disabled,\n &.disabled {\n background-color: tokens.$ifxColorBaseWhite;\n border: 1px solid tokens.$ifxColorEngineering300;\n color: tokens.$ifxColorEngineering300;\n pointer-events: none;\n\n }\n}\n\n.btn-tertiary {\n background-color: transparent;\n color: tokens.$ifxColorBaseBlack;\n\n &:disabled,\n &.disabled {\n color: tokens.$ifxColorEngineering300;\n pointer-events: none;\n }\n}\n\n\n.btn {\n\n &.icon-button {\n min-width: initial;\n min-height: initial;\n width: tokens.$ifxSize500;\n height: tokens.$ifxSize500;\n padding: 0;\n justify-content: center;\n\n &.btn-round {\n border-radius: 100px;\n }\n\n &.btn-square {\n border-radius: tokens.$ifxBorderRadius12;\n }\n\n &.btn-s {\n width: tokens.$ifxSize400;\n height: tokens.$ifxSize400;\n padding: 8px;\n }\n\n\n &.btn-l {\n width: tokens.$ifxSize600;\n height: tokens.$ifxSize600;\n padding: 8px;\n }\n }\n\n &.btn-primary:not(:disabled, .disabled) {\n &:focus:not(:active, .active) {\n outline: none;\n box-shadow: 0 0 0 2px tokens.$ifxColorBaseWhite, 0 0 0 4px tokens.$ifxColorOcean500;\n }\n\n &:hover {\n background-color: tokens.$ifxColorOcean600;\n border-color: tokens.$ifxColorOcean600;\n }\n\n &:active,\n &.active {\n background-color: tokens.$ifxColorOcean700;\n border-color: tokens.$ifxColorOcean700;\n }\n }\n\n\n &.btn-secondary:not(:disabled, .disabled) {\n &:focus:not(:active, .active) {\n outline: none;\n box-shadow: 0 0 0 2px tokens.$ifxColorBaseWhite, 0 0 0 4px tokens.$ifxColorOcean500;\n }\n\n &:hover {\n background-color: tokens.$ifxColorOcean600;\n border-color: tokens.$ifxColorOcean600;\n color: tokens.$ifxColorBaseWhite;\n }\n\n &:active,\n &.active {\n background-color: tokens.$ifxColorOcean700;\n border-color: tokens.$ifxColorOcean700;\n }\n }\n\n &.btn-tertiary:not(:disabled, .disabled) {\n &:focus:not(:active, .active) {\n outline: none;\n color: tokens.$ifxColorBaseBlack;\n box-shadow: 0 0 0 0px tokens.$ifxColorBaseWhite, 0 0 0 2px tokens.$ifxColorOcean500;\n }\n\n &:hover {\n color: tokens.$ifxColorOcean500;\n }\n\n &:active,\n &.active {\n color: tokens.$ifxColorOcean600;\n }\n }\n}","import { Component, Prop, h, Host, Method, Element, Listen, Watch, State } from '@stencil/core';\nimport { trackComponent } from '../../global/utils/tracking'; \nimport { isNestedInIfxComponent } from '../../global/utils/dom-utils';\nimport classNames from 'classnames';\n\n@Component({\n tag: 'ifx-icon-button',\n styleUrl: 'icon-button.scss',\n shadow: true,\n})\n\nexport class IconButton {\n @Prop() variant: 'primary' | 'secondary' | 'tertiary';\n @Prop() size: string;\n @Prop() disabled: boolean;\n @Prop() icon: string;\n @Prop() href: string;\n @Prop() target: string = '_self';\n @Prop() shape: string = 'round';\n @Prop() ariaLabel: string | null;\n @State() internalIcon: string;\n @Element() el;\n\n private focusableElement: HTMLElement;\n \n @Listen('click', { capture: true })\n handleClick(event: Event) {\n if (this.disabled) {\n event.stopImmediatePropagation();\n }\n }\n\n @Watch('icon')\n updateIcon(newIcon: string) { \n this.internalIcon = newIcon;\n }\n\n @Method()\n async setFocus() {\n this.focusableElement.focus();\n }\n\n componentWillLoad() {\n if (this.shape === '') {\n this.shape = 'round';\n }\n this.internalIcon = this.icon;\n if(!isNestedInIfxComponent(this.el)) { \n trackComponent('ifx-icon-button')\n }\n }\n\n render() {\n return (\n <Host \n aria-disabled={this.disabled}\n aria-label={this.ariaLabel}> \n {this.href ? (\n <a\n ref={(el) => (this.focusableElement = el)}\n class={this.getClassNames()}\n href={!this.disabled ? this.href : undefined} \n target={this.target}\n rel={this.target === '_blank' ? 'noopener noreferrer' : undefined}\n >\n <ifx-icon icon={this.internalIcon}></ifx-icon>\n </a>\n ) : (\n <button\n class={this.getClassNames()}\n type=\"button\"\n disabled={this.disabled}\n >\n <ifx-icon icon={this.internalIcon}></ifx-icon>\n </button>\n )}\n </Host>\n );\n }\n\n getVariantClass() {\n return `${this.variant}` === \"secondary\"\n ? `secondary`\n : `${this.variant}` === 'tertiary'\n ? `tertiary`\n : `primary`;\n }\n\n getSizeClass() {\n if (`${this.size}` === \"xs\") {\n return \"xs\"\n }\n else if (`${this.size}` === \"s\") {\n return \"s\"\n }\n else if (`${this.size}` === \"l\") {\n return \"l\"\n }\n else return \"\";\n }\n\n getClassNames() {\n return classNames(\n 'btn icon-button',\n `btn-${this.shape}`,\n this.size && `btn-${this.getSizeClass()}`,\n `btn-${this.getVariantClass()}`,\n this.disabled ? 'disabled' : ''\n );\n }\n}"],"mappings":"qKAAA,MAAMA,EAAgB,y4EACtB,MAAAC,EAAeD,E,MCUFE,EAAU,MANvB,WAAAC,CAAAC,G,UAYUC,KAAAC,OAAiB,QACjBD,KAAAE,MAAgB,O,CAQxB,WAAAC,CAAYC,GACV,GAAIJ,KAAKK,SAAU,CACjBD,EAAME,0B,EAKV,UAAAC,CAAWC,GACTR,KAAKS,aAAeD,C,CAItB,cAAME,GACJV,KAAKW,iBAAiBC,O,CAGxB,iBAAAC,GACE,GAAIb,KAAKE,QAAU,GAAI,CACrBF,KAAKE,MAAQ,O,CAEfF,KAAKS,aAAeT,KAAKc,KACzB,IAAIC,EAAuBf,KAAKgB,IAAK,CACnCC,EAAe,kB,EAInB,MAAAC,GACE,OACEC,EAACC,EAAI,CAAAC,IAAA,2DACYrB,KAAKK,SAAQ,aAChBL,KAAKsB,WAChBtB,KAAKuB,KACJJ,EAAA,KACEK,IAAMR,GAAQhB,KAAKW,iBAAmBK,EACtCS,MAAOzB,KAAK0B,gBACZH,MAAOvB,KAAKK,SAAWL,KAAKuB,KAAOI,UACnC1B,OAAQD,KAAKC,OACb2B,IAAK5B,KAAKC,SAAW,SAAW,sBAAwB0B,WAExDR,EAAA,YAAUL,KAAMd,KAAKS,gBAGvBU,EAAA,UACEM,MAAOzB,KAAK0B,gBACZG,KAAK,SACLxB,SAAUL,KAAKK,UAEfc,EAAA,YAAUL,KAAMd,KAAKS,gB,CAO/B,eAAAqB,GACE,MAAO,GAAG9B,KAAK+B,YAAc,YACzB,YACA,GAAG/B,KAAK+B,YAAc,WACpB,WACA,S,CAGR,YAAAC,GACE,GAAI,GAAGhC,KAAKiC,SAAW,KAAM,CAC3B,MAAO,I,MAEJ,GAAI,GAAGjC,KAAKiC,SAAW,IAAK,CAC/B,MAAO,G,MAEJ,GAAI,GAAGjC,KAAKiC,SAAW,IAAK,CAC/B,MAAO,G,MAEJ,MAAO,E,CAGd,aAAAP,GACE,OAAOQ,EACL,kBACA,OAAOlC,KAAKE,QACZF,KAAKiC,MAAQ,OAAOjC,KAAKgC,iBACzB,OAAOhC,KAAK8B,oBACZ9B,KAAKK,SAAW,WAAa,G","ignoreList":[]}
|
@@ -1,2 +0,0 @@
|
|
1
|
-
import{r as e,h as i,g as t}from"./p-b7a462e5.js";import{t as n}from"./p-6ecb6a6f.js";import{i as l}from"./p-1ecafb97.js";import{c as o}from"./p-5cdc6210.js";const r=':root{--ifx-font-family:"Source Sans 3", "Arial, sans-serif"}:host{display:inline-flex}.link{display:inline-flex;align-items:center;font-weight:400;font-size:1rem;text-decoration:none;color:#0A8276;gap:8px;line-height:1.6;font-family:var(--ifx-font-family)}.link:hover{cursor:pointer}.link:focus{outline-width:2px;outline-style:solid;outline-color:#0A8276;outline-offset:4px;border-radius:3px}.link.bold{font-weight:600}.link.bold:hover{text-decoration:underline}.link.bold:active{color:#08665C;font-style:normal;font-weight:600;text-decoration:underline}.link.underlined{text-decoration:underline;text-decoration-color:#0A8276;color:#1D1D1D;text-underline-offset:8px}.link.underlined:hover{color:#0A8276}.link.underlined:active{color:#0A8276}.link.underlined:disabled,.link.underlined.disabled{text-decoration-color:#BFBBBB}.link.title{text-decoration:none;font-weight:600;color:#1D1D1D}.link.title:hover{color:#0A8276}.link.title:active{color:#08665C}.link.menu{font-weight:400;font-style:normal;line-height:26px;color:#1D1D1D}.link.menu:hover{color:#0A8276}.link.menu:active{color:#08665C}.link.small{font-size:0.875rem}.link.medium{font-size:1rem}.link.large{font-size:1.125rem}.link.extraLarge{font-size:1.25rem}.link.underline{text-decoration:underline}.link:disabled,.link.disabled{color:#BFBBBB;cursor:default;pointer-events:none}';const s=r;const a=class{constructor(i){e(this,i);this.href=undefined;this.target="_self";this.variant="bold";this.disabled=false;this.internalHref="";this.internalTarget="";this.internalVariant=""}setInternalStates(){if(this.href){this.internalHref=this.href.trim()}else{this.internalHref=undefined}this.internalTarget=this.target.trim();this.internalVariant=this.variant.trim().toLowerCase()}componentWillRender(){this.setInternalStates()}handleKeyDown(e){if(this.disabled){e.preventDefault()}else if(e.key==="Enter"){e.preventDefault()}}componentWillLoad(){if(!l(this.el)){n("ifx-link")}}render(){return i("a",{key:"34501f54b71028a9886ba198979aa55f88171921",role:"link","aria-label":this.ariaLabel,"aria-disabled":this.disabled||!this.internalHref,href:this.disabled?undefined:this.internalHref,download:this.download,target:this.internalTarget,class:this.linkClassNames()},i("slot",{key:"5d1e1ff267036c8dfc2fbef139db404d9edf4300"}))}getSizeClass(){const e=this.size==="s"?"small":null;const i=this.size==="m"?"medium":null;const t=this.size==="l"?"large":null;const n=this.size==="xl"?"extraLarge":null;if(e){return e}else if(i){return i}else if(t){return t}else if(n&&this.internalVariant==="underlined"){return"large"}else if(n&&this.internalVariant!=="underlined"){return n}else return""}getVariantClass(){const e=this.internalVariant==="bold"?"bold":null;const i=this.internalVariant==="title"?"title":null;const t=this.internalVariant==="underlined"?"underlined":null;const n=this.internalVariant==="menu"?"menu":null;if(e){return e}else if(i){return i}else if(t){return t}else if(n){return n}else return e}linkClassNames(){return o("link","primary",this.getVariantClass(),this.getSizeClass(),this.disabled?"disabled":"")}get el(){return t(this)}};a.style=s;export{a as ifx_link};
|
2
|
-
//# sourceMappingURL=p-aeaa6d0b.entry.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"names":["linkCss","IfxLinkStyle0","Link","constructor","hostRef","this","href","undefined","target","variant","disabled","internalHref","internalTarget","internalVariant","setInternalStates","trim","toLowerCase","componentWillRender","handleKeyDown","event","preventDefault","key","componentWillLoad","isNestedInIfxComponent","el","trackComponent","render","h","role","ariaLabel","download","class","linkClassNames","getSizeClass","small","size","medium","large","extraLarge","getVariantClass","bold","title","underlined","menu","classNames"],"sources":["src/components/link/link.scss?tag=ifx-link&encapsulation=shadow","src/components/link/link.tsx"],"sourcesContent":["@use \"~@infineon/design-system-tokens/dist/tokens\";\n@use \"../../global/font.scss\";\n\n:host {\n display: inline-flex;\n}\n\n.link {\n display: inline-flex;\n align-items: center;\n font-weight: 400;\n font-size: tokens.$ifxFontSizeM;\n text-decoration: none;\n color: tokens.$ifxColorOcean500;\n gap: tokens.$ifxSpace100;\n line-height: 1.6;\n font-family: var(--ifx-font-family); // tokens.$ifxFontFamilyBody;\n\n\n\n &:hover { \n cursor: pointer;\n }\n\n &:focus {\n outline-width: 2px;\n outline-style: solid;\n outline-color: #0A8276;\n outline-offset: 4px;\n border-radius: 3px;\n }\n\n &.bold {\n font-weight: tokens.$ifxFontWeightSemibold;\n\n &:hover {\n text-decoration: underline;\n }\n\n &:active {\n color: #08665C;\n font-style: normal;\n font-weight: 600;\n text-decoration: underline;\n }\n\n }\n\n &.underlined {\n text-decoration: underline;\n text-decoration-color: tokens.$ifxColorOcean500;\n color: #1D1D1D;\n text-underline-offset: 8px;\n \n &:hover {\n color: tokens.$ifxColorOcean500;;\n }\n \n &:active {\n color: #0A8276;\n }\n\n &:disabled,\n &.disabled {\n text-decoration-color: tokens.$ifxColorEngineering300;\n }\n }\n\n &.title {\n text-decoration: none;\n font-weight: tokens.$ifxFontWeightSemibold;\n color: #1D1D1D;\n\n &:hover {\n color: tokens.$ifxColorOcean500;\n }\n\n &:active {\n color: #08665C;\n }\n }\n\n &.menu {\n font-weight: 400;\n font-style: normal;\n line-height: 26px;\n color: #1D1D1D;\n\n &:hover {\n color: tokens.$ifxColorOcean500;\n }\n\n &:active {\n color: #08665C;\n }\n }\n\n &.small {\n font-size: tokens.$ifxFontSizeS;\n }\n\n &.medium {\n font-size: tokens.$ifxFontSizeM;\n }\n\n &.large {\n font-size: tokens.$ifxFontSizeL;\n }\n\n &.extraLarge {\n font-size: tokens.$ifxFontSizeXl;\n }\n\n &.underline {\n text-decoration: underline;\n }\n\n &:disabled,\n &.disabled {\n color: tokens.$ifxColorEngineering300;\n cursor: default;\n pointer-events: none;\n }\n\n}","import { Component, Prop, h, State, Element } from \"@stencil/core\";\nimport { trackComponent } from '../../global/utils/tracking';\nimport { isNestedInIfxComponent } from '../../global/utils/dom-utils';\nimport classNames from 'classnames';\n \n@Component({\n tag: 'ifx-link',\n styleUrl: 'link.scss',\n shadow: true\n})\n\nexport class Link {\n @Element() el;\n @Prop() href: string = undefined;\n @Prop() target: string = '_self';\n @Prop() variant: string = 'bold';\n @Prop() size: string;\n @Prop() disabled: boolean = false;\n @Prop() download: string;\n @Prop() ariaLabel: string | null;\n @State() internalHref: string ='';\n @State() internalTarget: string = '';\n @State() internalVariant: string = '';\n\n setInternalStates() {\n if(this.href){\n this.internalHref = this.href.trim();\n }else{\n this.internalHref = undefined;\n }\n this.internalTarget = this.target.trim();\n this.internalVariant = this.variant.trim().toLowerCase();\n }\n\n componentWillRender(){\n this.setInternalStates();\n }\n\n handleKeyDown(event: KeyboardEvent) {\n if (this.disabled) {\n event.preventDefault();\n } else if (event.key === 'Enter') {\n event.preventDefault();\n }\n }\n\n componentWillLoad() { \n if(!isNestedInIfxComponent(this.el)) { \n trackComponent('ifx-link')\n }\n }\n\n render() {\n return (\n <a\n role=\"link\"\n aria-label={this.ariaLabel}\n aria-disabled={this.disabled || !this.internalHref}\n href={this.disabled ? undefined : this.internalHref}\n download={this.download}\n target={this.internalTarget}\n class={this.linkClassNames()}>\n <slot></slot>\n </a>)\n }\n\n getSizeClass() {\n const small = this.size === 's' ? 'small' : null;\n const medium = this.size === 'm' ? 'medium' : null;\n const large = this.size === 'l' ? 'large' : null;\n const extraLarge = this.size === 'xl' ? 'extraLarge' : null;\n\n if (small) {\n return small;\n } else if (medium) {\n return medium;\n } else if (large) {\n return large;\n } else if (extraLarge && this.internalVariant === 'underlined') {\n return 'large';\n } else if (extraLarge && this.internalVariant !== 'underlined') {\n return extraLarge;\n } else return \"\";\n }\n\n getVariantClass() {\n const bold = this.internalVariant === 'bold' ? 'bold' : null;\n const title = this.internalVariant === 'title' ? 'title' : null;\n const underlined = this.internalVariant === 'underlined' ? 'underlined' : null;\n const menu = this.internalVariant === 'menu' ? 'menu' : null;\n\n if (bold) {\n return bold\n } else if (title) {\n return title;\n } else if (underlined) {\n return underlined;\n } else if (menu) {\n return menu;\n } else return bold;\n }\n\n linkClassNames() {\n return classNames(\n 'link',\n 'primary',\n this.getVariantClass(),\n this.getSizeClass(),\n this.disabled ? 'disabled' : '',\n );\n }\n}"],"mappings":"8JAAA,MAAMA,EAAU,6zCAChB,MAAAC,EAAeD,E,MCUFE,EAAI,MANjB,WAAAC,CAAAC,G,UAQUC,KAAAC,KAAeC,UACfF,KAAAG,OAAiB,QACjBH,KAAAI,QAAkB,OAElBJ,KAAAK,SAAoB,MAGnBL,KAAAM,aAAsB,GACtBN,KAAAO,eAAyB,GACzBP,KAAAQ,gBAA0B,E,CAEnC,iBAAAC,GACE,GAAGT,KAAKC,KAAK,CACXD,KAAKM,aAAeN,KAAKC,KAAKS,M,KAC3B,CACHV,KAAKM,aAAeJ,S,CAEtBF,KAAKO,eAAiBP,KAAKG,OAAOO,OAClCV,KAAKQ,gBAAkBR,KAAKI,QAAQM,OAAOC,a,CAG7C,mBAAAC,GACEZ,KAAKS,mB,CAGP,aAAAI,CAAcC,GACZ,GAAId,KAAKK,SAAU,CACjBS,EAAMC,gB,MACD,GAAID,EAAME,MAAQ,QAAS,CAChCF,EAAMC,gB,EAIV,iBAAAE,GACE,IAAIC,EAAuBlB,KAAKmB,IAAK,CACnCC,EAAe,W,EAInB,MAAAC,GACE,OACEC,EAAA,KAAAN,IAAA,2CACEO,KAAK,OAAM,aACCvB,KAAKwB,UAAS,gBACXxB,KAAKK,WAAaL,KAAKM,aACtCL,KAAMD,KAAKK,SAAWH,UAAYF,KAAKM,aACvCmB,SAAUzB,KAAKyB,SACftB,OAAQH,KAAKO,eACbmB,MAAO1B,KAAK2B,kBACZL,EAAA,QAAAN,IAAA,6C,CAIN,YAAAY,GACE,MAAMC,EAAQ7B,KAAK8B,OAAS,IAAM,QAAU,KAC5C,MAAMC,EAAS/B,KAAK8B,OAAS,IAAM,SAAW,KAC9C,MAAME,EAAQhC,KAAK8B,OAAS,IAAM,QAAU,KAC5C,MAAMG,EAAajC,KAAK8B,OAAS,KAAO,aAAe,KAEvD,GAAID,EAAO,CACT,OAAOA,C,MACF,GAAIE,EAAQ,CACjB,OAAOA,C,MACF,GAAIC,EAAO,CAChB,OAAOA,C,MACF,GAAIC,GAAcjC,KAAKQ,kBAAoB,aAAc,CAC9D,MAAO,O,MACF,GAAIyB,GAAcjC,KAAKQ,kBAAoB,aAAc,CAC9D,OAAOyB,C,MACF,MAAO,E,CAGhB,eAAAC,GACE,MAAMC,EAAOnC,KAAKQ,kBAAoB,OAAS,OAAS,KACxD,MAAM4B,EAAQpC,KAAKQ,kBAAoB,QAAU,QAAU,KAC3D,MAAM6B,EAAarC,KAAKQ,kBAAoB,aAAe,aAAe,KAC1E,MAAM8B,EAAOtC,KAAKQ,kBAAoB,OAAS,OAAS,KAExD,GAAI2B,EAAM,CACR,OAAOA,C,MACF,GAAIC,EAAO,CAChB,OAAOA,C,MACF,GAAIC,EAAY,CACrB,OAAOA,C,MACF,GAAIC,EAAM,CACf,OAAOA,C,MACF,OAAOH,C,CAGhB,cAAAR,GACE,OAAOY,EACL,OACA,UACAvC,KAAKkC,kBACLlC,KAAK4B,eACL5B,KAAKK,SAAW,WAAa,G","ignoreList":[]}
|
@@ -1,2 +0,0 @@
|
|
1
|
-
import{r as t,c as s,h as i,a as e,g as n}from"./p-b7a462e5.js";import{g as o}from"./p-4d96fed0.js";import{t as r}from"./p-6ecb6a6f.js";import{i as c}from"./p-1ecafb97.js";const h="ifx-icon{display:inline-flex;justify-content:center}ifx-icon:empty{display:none}";const a=h;const l=class{constructor(i){t(this,i);this.consoleError=s(this,"consoleError",7);this.icon=""}updateIcon(t){this.internalIcon=t;this.setIcon()}convertStringToHtml(t){const s=document.createElement("div");s.innerHTML=t;return s.firstChild}convertHtmlToObject(t){let s=Array.from(t.attributes,(({name:t,value:s})=>({name:t,value:s}))).reduce(((t,s)=>{t[s.name]=s.value;return t}),{});return s}convertPathsToVnode(t){let s=[];const e=this.convertHtmlToObject(t);const n=i("path",e);s.push(n);if(t.firstChild){const e=t.querySelectorAll("path");const n=t.querySelectorAll("path").length;for(let t=0;t<n;t++){let n=this.convertHtmlToObject(e[t]);let o=i("path",n);s.push(o)}}return s}getSVG(t){const s=this.convertStringToHtml(this.ifxIcon);const e=s.getAttribute("width");const n=s.getAttribute("height");const o=s.getAttribute("fill");const r=s.getAttribute("viewBox");return i("svg",{class:"inline-svg",width:e,height:n,xmlns:"http://www.w3.org/2000/svg",fill:o,viewBox:r},...t)}constructIcon(){if(this.ifxIcon){const t=this.convertStringToHtml(this.ifxIcon);const s=this.convertPathsToVnode(t);const i=this.getSVG(s);return i}else if(this.icon!==""){console.error("Icon not found!");this.consoleError.emit(true);return}else{return}}setIcon(){const t=t=>t.replace(/[-_]+(.)/g,((t,s)=>s.toUpperCase())).replace(/^(.)/,(t=>t.toLowerCase()));const s=t(this.internalIcon);this.ifxIcon=o(s)}isInsideAgGrid(t){var s;let i=t;while(i){if((s=i.className)===null||s===void 0?void 0:s.toLowerCase().startsWith("ag-")){return true}i=i.parentElement}return false}isInsideChoices(t){var s;let i=t;while(i){if((s=i.className)===null||s===void 0?void 0:s.toLowerCase().startsWith("choices__")){return true}i=i.parentElement}return false}componentWillLoad(){this.internalIcon=this.icon;this.setIcon();if(!c(this.el)){if(!this.isInsideAgGrid(this.el)&&!this.isInsideChoices(this.el)){r("ifx-icon")}}}render(){return i(e,{key:"d9532b19a7cdd7e273496e8b3f3a16378cf5a104"},this.constructIcon())}get el(){return n(this)}static get watchers(){return{icon:["updateIcon"]}}};l.style=a;export{l as ifx_icon};
|
2
|
-
//# sourceMappingURL=p-b110d5d4.entry.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"names":["infineonIconStencilCss","IfxIconStyle0","InfineonIconStencil","constructor","hostRef","this","icon","updateIcon","newIcon","internalIcon","setIcon","convertStringToHtml","htmlString","div","document","createElement","innerHTML","firstChild","convertHtmlToObject","htmlElement","pathToObject","Array","from","attributes","name","value","reduce","acc","current","convertPathsToVnode","htmlPath","svgPaths","parentPath","parentPathToVnode","h","push","paths","querySelectorAll","pathLength","length","i","objToVnode","getSVG","svgPath","ifxIcon","width","getAttribute","height","fill","viewBox","class","xmlns","constructIcon","SVG","console","error","consoleError","emit","toCamelCase","str","replace","_","chr","toUpperCase","m","toLowerCase","iconName","getIcon","isInsideAgGrid","el","_a","className","startsWith","parentElement","isInsideChoices","componentWillLoad","isNestedInIfxComponent","trackComponent","render","Host","key"],"sources":["src/components/icon/infineonIconStencil.scss?tag=ifx-icon","src/components/icon/infineonIconStencil.tsx"],"sourcesContent":["ifx-icon {\n display: inline-flex;\n justify-content: center;\n\n &:empty {\n display: none;\n }\n}","import { Component, Prop, h, Host, Event, EventEmitter, Watch, State, Element } from '@stencil/core';\nimport { getIcon } from '@infineon/infineon-icons'\nimport { trackComponent } from '../../global/utils/tracking'; \nimport { isNestedInIfxComponent } from '../../global/utils/dom-utils';\n\n\n@Component({\n tag: 'ifx-icon',\n styleUrl: './infineonIconStencil.scss'\n})\n\nexport class InfineonIconStencil {\n @Element() el: HTMLElement;\n @Prop({ mutable: true }) icon: string = \"\"\n @Prop({ mutable: true }) ifxIcon: any;\n @State() internalIcon: string;\n @Event() consoleError: EventEmitter<boolean>;\n\n @Watch('icon')\n updateIcon(newIcon: string) { \n this.internalIcon = newIcon;\n this.setIcon()\n }\n\n convertStringToHtml(htmlString) { \n const div = document.createElement('div')\n div.innerHTML = htmlString\n return div.firstChild\n }\n\n convertHtmlToObject(htmlElement) { \n let pathToObject = Array\n .from(htmlElement.attributes, ({ name, value }) => ({ name, value }))\n .reduce((acc, current) => {\n acc[current.name] = current.value\n return acc\n }, {})\n\n return pathToObject\n }\n\n convertPathsToVnode(htmlPath) { \n let svgPaths = []\n const parentPath = this.convertHtmlToObject(htmlPath);\n const parentPathToVnode = h(\"path\", parentPath);\n svgPaths.push(parentPathToVnode)\n if(htmlPath.firstChild) { \n const paths = htmlPath.querySelectorAll('path');\n const pathLength = htmlPath.querySelectorAll('path').length;\n for(let i = 0; i < pathLength; i++) { \n let pathToObject = this.convertHtmlToObject(paths[i])\n let objToVnode = h(\"path\", pathToObject)\n svgPaths.push(objToVnode)\n } \n }\n return svgPaths\n }\n\n getSVG(svgPath) {\n const htmlPath = this.convertStringToHtml(this.ifxIcon) as SVGElement;\n const width = htmlPath.getAttribute('width');\n const height = htmlPath.getAttribute('height');\n const fill = htmlPath.getAttribute('fill');\n const viewBox = htmlPath.getAttribute('viewBox');\n \n return <svg class=\"inline-svg\" width={width} height={height} xmlns=\"http://www.w3.org/2000/svg\" fill={fill} viewBox={viewBox}>{...svgPath}</svg>\n }\n\n constructIcon() {\n if(this.ifxIcon) {\n const htmlPath = this.convertStringToHtml(this.ifxIcon)\n const svgPath = this.convertPathsToVnode(htmlPath)\n const SVG = this.getSVG(svgPath)\n return SVG;\n } else if(this.icon !== \"\") {\n console.error('Icon not found!')\n this.consoleError.emit(true)\n return;\n } else { \n return;\n }\n }\n\nsetIcon() { \n const toCamelCase = str =>\n str\n .replace(/[-_]+(.)/g, (_, chr) => chr.toUpperCase()) // handle - and _ to uppercase\n .replace(/^(.)/, (m) => m.toLowerCase()); // ensure first letter is lowercase\n\n const iconName = toCamelCase(this.internalIcon);\n this.ifxIcon = getIcon(iconName);\n}\n\n isInsideAgGrid(el: HTMLElement): boolean {\n let current = el;\n while (current) {\n if (current.className?.toLowerCase().startsWith('ag-')) {\n return true;\n }\n current = current.parentElement;\n }\n return false;\n}\n\n isInsideChoices(el: HTMLElement): boolean {\n let current = el;\n while (current) {\n if (current.className?.toLowerCase().startsWith('choices__')) {\n return true;\n }\n current = current.parentElement;\n }\n return false;\n }\n\n componentWillLoad() {\n this.internalIcon = this.icon;\n this.setIcon()\n\n if(!isNestedInIfxComponent(this.el)) { \n if(!this.isInsideAgGrid(this.el) && !this.isInsideChoices(this.el)) { \n trackComponent('ifx-icon')\n }\n }\n }\n\n render() {\n return (\n <Host>\n {this.constructIcon()}\n </Host>\n );\n }\n}"],"mappings":"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","ignoreList":[]}
|
@@ -1,2 +0,0 @@
|
|
1
|
-
import{r as t,h as i,g as o}from"./p-b7a462e5.js";import{t as r}from"./p-6ecb6a6f.js";import{i as a}from"./p-1ecafb97.js";const e=':root{--ifx-font-family:"Source Sans 3", "Arial, sans-serif"}.radio-button-group-container{display:flex;flex-direction:column}.radio-button-group{display:flex;font-family:var(--ifx-font-family);gap:8px}.radio-button-group.horizontal{flex-direction:row;column-gap:12px}.radio-button-group.vertical{flex-direction:column;row-gap:12px}.group-label{font:400 0.75rem/1rem "Source Sans 3";margin-bottom:8px;text-align:left;text-underline-position:from-font;text-decoration-skip-ink:none}.caption{margin-top:8px;align-self:flex-start;display:flex;width:100%;column-gap:8px;justify-content:space-between;align-items:center}.caption.default{color:#1D1D1D}.caption.error{color:#CD002F}.caption-text{font:400 0.75rem/1rem "Source Sans 3";flex:1;text-align:left;text-underline-position:from-font;text-decoration-skip-ink:none}.caption-icon{flex:0;display:flex}';const n=e;const s=class{constructor(i){t(this,i);this.errorStates=new Map;this.alignment="vertical";this.groupLabelText="Group Label Text";this.hasErrors=false;this.handleSlotChange=()=>{this.initializeState()}}handleRadioButtonError(t){const i=t.target;if(i.tagName==="ifx-radio-button"){this.errorStates.set(i,t.detail);this.updateHasErrors()}}async setGroupError(t){const i=Array.from(this.el.querySelectorAll("ifx-radio-button"));i.forEach((i=>{i.error=t}))}componentWillLoad(){if(!a(this.el)){r("ifx-radio-button-group")}this.initializeState()}initializeState(){this.errorStates.clear();const t=Array.from(this.el.querySelectorAll("ifx-radio-button"));t.forEach((t=>{if(!this.errorStates.has(t)){this.errorStates.set(t,t.error||false)}}));this.updateHasErrors()}updateHasErrors(){this.hasErrors=Array.from(this.errorStates.values()).some((t=>t))}render(){return i("div",{key:"0636774d636177886266e03cce05235f8fc347a4",class:"radio-button-group-container"},this.showGroupLabel?i("div",{class:"group-label"},this.groupLabelText," *"):"",i("div",{key:"ef9212441d5e0a2dc74795e2bf8c79199bbfc9d5",class:`radio-button-group ${this.alignment} ${this.size}`},i("slot",{key:"73dbf713760b20a7964ff4232172a5c8a864cad8",onSlotchange:this.handleSlotChange})),this.showCaption?i("div",{class:`caption ${this.hasErrors?"error":"default"}`},this.showCaptionIcon?i("div",{class:"caption-icon"},i("ifx-icon",{icon:"c-info-16"})):"",i("div",{class:"caption-text"},this.captionText)):"")}static get formAssociated(){return true}get el(){return o(this)}};s.style=n;export{s as ifx_radio_button_group};
|
2
|
-
//# sourceMappingURL=p-b17a0e8c.entry.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"names":["radioButtonGroupCss","IfxRadioButtonGroupStyle0","RadioButtonGroup","constructor","hostRef","this","errorStates","Map","alignment","groupLabelText","hasErrors","handleSlotChange","initializeState","handleRadioButtonError","event","radioButton","target","tagName","set","detail","updateHasErrors","setGroupError","error","radioButtons","Array","from","el","querySelectorAll","forEach","componentWillLoad","isNestedInIfxComponent","trackComponent","clear","has","values","some","render","h","key","class","showGroupLabel","size","onSlotchange","showCaption","showCaptionIcon","icon","captionText"],"sources":["src/components/radio-button-group/radio-button-group.scss?tag=ifx-radio-button-group&encapsulation=shadow","src/components/radio-button-group/radio-button-group.tsx"],"sourcesContent":["@use \"~@infineon/design-system-tokens/dist/tokens\";\n@use \"../../global/font.scss\";\n\n.radio-button-group-container {\n display: flex;\n flex-direction: column;\n}\n\n.radio-button-group {\n display: flex;\n font-family: var(--ifx-font-family); // tokens.$ifxFontFamilyBody;\n\n\n gap: tokens.$ifxSpace100;\n\n &.horizontal {\n flex-direction: row;\n column-gap: tokens.$ifxSpace150;\n }\n\n &.vertical {\n flex-direction: column;\n row-gap: tokens.$ifxSpace150;\n }\n}\n\n.group-label {\n font: tokens.$ifxBodyBody05;\n margin-bottom: tokens.$ifxSpace100;\n text-align: left;\n text-underline-position: from-font;\n text-decoration-skip-ink: none;\n}\n\n.caption {\n margin-top: tokens.$ifxSpace100;\n align-self: flex-start;\n display: flex;\n width: 100%;\n column-gap: tokens.$ifxSpace100;\n justify-content: space-between;\n align-items: center;\n\n &.default {\n color: tokens.$ifxColorBaseBlack;\n }\n\n &.error {\n color: tokens.$ifxColorRed500;\n }\n}\n\n.caption-text {\n font: tokens.$ifxBodyBody05;\n flex: 1;\n text-align: left;\n text-underline-position: from-font;\n text-decoration-skip-ink: none;\n}\n\n.caption-icon {\n flex:0;\n display: flex;\n}","import { Component, State, Prop, h, Element, Listen, Method } from '@stencil/core';\nimport { trackComponent } from '../../global/utils/tracking';\nimport { isNestedInIfxComponent } from '../../global/utils/dom-utils';\n\n@Component({\n tag: 'ifx-radio-button-group',\n styleUrl: 'radio-button-group.scss',\n shadow: true,\n formAssociated: true\n})\n\nexport class RadioButtonGroup {\n private errorStates: Map<HTMLElement, boolean> = new Map();\n\n @Element() el: HTMLElement;\n @Prop() alignment: 'horizontal' | 'vertical' = 'vertical';\n @Prop() size: string;\n @Prop() showGroupLabel: boolean;\n @Prop() groupLabelText: string = 'Group Label Text';\n @Prop() showCaption: boolean;\n @Prop() captionText: string;\n @Prop() showCaptionIcon: boolean;\n @State() hasErrors: boolean = false;\n \n @Listen('ifxError')\n handleRadioButtonError(event: CustomEvent) {\n const radioButton = event.target as HTMLElement;\n if (radioButton.tagName === 'ifx-radio-button') {\n this.errorStates.set(radioButton, event.detail);\n this.updateHasErrors();\n }\n }\n\n // Method to set the error state of all radio-butttons in the group\n @Method()\n async setGroupError(error: boolean) {\n const radioButtons = Array.from(this.el.querySelectorAll('ifx-radio-button'));\n radioButtons.forEach((radioButton) => {\n (radioButton as any).error = error;\n });\n }\n\n componentWillLoad() {\n if(!isNestedInIfxComponent(this.el)) { \n trackComponent('ifx-radio-button-group')\n }\n this.initializeState();\n }\n\n handleSlotChange = () => {\n this.initializeState();\n };\n\n private initializeState() {\n this.errorStates.clear();\n const radioButtons = Array.from(this.el.querySelectorAll('ifx-radio-button'));\n radioButtons.forEach((radioButton) => {\n if (!this.errorStates.has(radioButton)) {\n this.errorStates.set(radioButton, (radioButton as any).error || false);\n }\n });\n this.updateHasErrors();\n }\n\n private updateHasErrors() {\n this.hasErrors = Array.from(this.errorStates.values()).some((error) => error);\n }\n\n render() {\n return (\n <div class='radio-button-group-container'>\n {this.showGroupLabel ? <div class='group-label'>{this.groupLabelText} *</div> : ''}\n <div class={`radio-button-group ${this.alignment} ${this.size}`}>\n <slot onSlotchange={this.handleSlotChange} ></slot>\n </div>\n {this.showCaption ? (\n <div class={`caption ${this.hasErrors ? 'error' : 'default'}`}>\n {this.showCaptionIcon ? <div class='caption-icon'><ifx-icon icon=\"c-info-16\">\n </ifx-icon></div> : ''}\n <div class='caption-text'>{this.captionText}</div>\n </div>) : ''}\n </div>\n );\n }\n}"],"mappings":"0HAAA,MAAMA,EAAsB,m1BAC5B,MAAAC,EAAeD,E,MCUFE,EAAgB,MAP7B,WAAAC,CAAAC,G,UAQYC,KAAAC,YAAyC,IAAIC,IAG7CF,KAAAG,UAAuC,WAGvCH,KAAAI,eAAyB,mBAIxBJ,KAAAK,UAAqB,MA2B9BL,KAAAM,iBAAmB,KACfN,KAAKO,iBAAiB,C,CAzB1B,sBAAAC,CAAuBC,GACnB,MAAMC,EAAcD,EAAME,OAC1B,GAAID,EAAYE,UAAY,mBAAoB,CAC5CZ,KAAKC,YAAYY,IAAIH,EAAaD,EAAMK,QACxCd,KAAKe,iB,EAMX,mBAAMC,CAAcC,GAClB,MAAMC,EAAeC,MAAMC,KAAKpB,KAAKqB,GAAGC,iBAAiB,qBACzDJ,EAAaK,SAASb,IACnBA,EAAoBO,MAAQA,CAAK,G,CAIxC,iBAAAO,GACI,IAAIC,EAAuBzB,KAAKqB,IAAK,CACjCK,EAAe,yB,CAEnB1B,KAAKO,iB,CAOD,eAAAA,GACJP,KAAKC,YAAY0B,QACjB,MAAMT,EAAeC,MAAMC,KAAKpB,KAAKqB,GAAGC,iBAAiB,qBACzDJ,EAAaK,SAASb,IAClB,IAAKV,KAAKC,YAAY2B,IAAIlB,GAAc,CACpCV,KAAKC,YAAYY,IAAIH,EAAcA,EAAoBO,OAAS,M,KAGxEjB,KAAKe,iB,CAGD,eAAAA,GACJf,KAAKK,UAAYc,MAAMC,KAAKpB,KAAKC,YAAY4B,UAAUC,MAAMb,GAAUA,G,CAG3E,MAAAc,GACI,OACIC,EAAA,OAAAC,IAAA,2CAAKC,MAAM,gCACNlC,KAAKmC,eAAiBH,EAAA,OAAKE,MAAM,eAAelC,KAAKI,eAAc,MAAY,GAChF4B,EAAA,OAAAC,IAAA,2CAAKC,MAAO,sBAAsBlC,KAAKG,aAAaH,KAAKoC,QACrDJ,EAAA,QAAAC,IAAA,2CAAMI,aAAcrC,KAAKM,oBAE5BN,KAAKsC,YACFN,EAAA,OAAKE,MAAO,WAAWlC,KAAKK,UAAY,QAAU,aAC7CL,KAAKuC,gBAAkBP,EAAA,OAAKE,MAAM,gBAAeF,EAAA,YAAUQ,KAAK,eAC7C,GACpBR,EAAA,OAAKE,MAAM,gBAAgBlC,KAAKyC,cAC1B,G","ignoreList":[]}
|
@@ -1,2 +0,0 @@
|
|
1
|
-
import{r as t,c as i,h as e,a as s,g as h}from"./p-b7a462e5.js";import{t as r}from"./p-6ecb6a6f.js";import{i as n}from"./p-1ecafb97.js";const c=".ifx-content-switcher{background-color:#FFFFFF;border:1px solid #BFBBBB;border-radius:9999px;height:36px;width:fit-content;box-sizing:border-box;display:flex;flex-direction:row;align-items:center}.ifx-content-switcher ::slotted(ifx-content-switcher-item){position:relative}.ifx-content-switcher ::slotted(ifx-content-switcher-item:first-child){left:-1px;margin-right:-1px}.ifx-content-switcher ::slotted(ifx-content-switcher-item:last-child){right:-1px;margin-left:-1px}.ifx-content-switcher ::slotted(.ifx-content-switcher-divider){width:1px;height:20px;background-color:#8D8786;margin:0px 1px;visibility:visible}.ifx-content-switcher ::slotted(.ifx-content-switcher-divider.hidden){visibility:hidden}";const o=c;const d=class{constructor(e){t(this,e);this.ifxChange=i(this,"ifxChange",7);this.activeIndex=-1;this.hoverIndex=-1;this.focusIndex=-1;this.dividers=Array();this.eventHandlers=new Map}componentWillLoad(){this.items=Array.from(this.el.children);this.initializeDividers();this.addEventListeners();this.ensureSingleSelectedItem();if(!n(this.el)){r("ifx-content-switcher")}}disconnectedCallback(){this.removeEventListeners()}initializeDividers(){this.items.forEach(((t,i)=>{if(i<this.items.length-1){const i=document.createElement("div");i.classList.add("ifx-content-switcher-divider");t.after(i);this.dividers.push(i)}}))}addEventListeners(){this.items.forEach(((t,i)=>{const e={click:()=>this.selectItem(i),mouseenter:()=>this.handleHover(i,true),mouseleave:()=>this.handleHover(i,false),focus:()=>this.handleFocus(i,true),blur:()=>this.handleFocus(i,false)};Object.keys(e).forEach((i=>{t.addEventListener(i,e[i])}));this.eventHandlers.set(t,e)}))}removeEventListeners(){this.eventHandlers.forEach(((t,i)=>{Object.keys(t).forEach((e=>{i.removeEventListener(e,t[e])}))}));this.eventHandlers.clear()}ensureSingleSelectedItem(){this.items.forEach(((t,i)=>{const e=t.getAttribute("selected")==="true"||t.selected;if(e){if(this.activeIndex<0){this.selectItem(i)}else{t.removeAttribute("selected");t.selected=false}}}))}handleHover(t,i){this.hoverIndex=i?t:-1;this.updateDividersOfItem(t)}handleFocus(t,i){this.focusIndex=i?t:-1;this.updateDividersOfItem(t)}updateDividersOfItem(t){if(t<this.items.length-1){this.updateDividerVisibility(t)}if(t>0){this.updateDividerVisibility(t-1)}}updateDividerVisibility(t){const i=new Set([this.activeIndex,this.activeIndex-1,this.hoverIndex,this.hoverIndex-1,this.focusIndex,this.focusIndex-1]);this.setDividerVisibility(t,i.has(t))}setDividerVisibility(t,i){if(this.dividers[t]){this.dividers[t].classList.toggle("hidden",i)}}selectItem(t){if(t===this.activeIndex)return;const i=this.activeIndex;if(i>=0){this.items[i].removeAttribute("selected")}this.activeIndex=t;this.items[t].setAttribute("selected","true");this.ifxChange.emit({oldValue:this.getValueOfItem(i),newValue:this.getValueOfItem(t)});this.updateDividersOfItem(i);this.updateDividersOfItem(t)}getValueOfItem(t){if(this.items[t]==null)return t.toLocaleString();return this.items[t].getAttribute("value")||t.toLocaleString()}render(){return e(s,{key:"b5344dc79f7f74428ea8ac130d6bfb0048abfdf4"},e("div",{key:"ecf87997eaa59421567f286cb8547fd55d386b19",class:"ifx-content-switcher",role:"group"},e("slot",{key:"ef369e6dbd77115dc39eab533a80ee89e1d3505a"})))}get el(){return h(this)}};d.style=o;export{d as ifx_content_switcher};
|
2
|
-
//# sourceMappingURL=p-bb7b2a3c.entry.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"names":["contentSwitcherCss","IfxContentSwitcherStyle0","ContentSwitcher","constructor","hostRef","this","activeIndex","hoverIndex","focusIndex","dividers","Array","eventHandlers","Map","componentWillLoad","items","from","el","children","initializeDividers","addEventListeners","ensureSingleSelectedItem","isNestedInIfxComponent","trackComponent","disconnectedCallback","removeEventListeners","forEach","item","index","length","divider","document","createElement","classList","add","after","push","handlers","click","selectItem","mouseenter","handleHover","mouseleave","focus","handleFocus","blur","Object","keys","event","addEventListener","set","removeEventListener","clear","isSelected","getAttribute","selected","removeAttribute","isActive","updateDividersOfItem","itemIndex","updateDividerVisibility","dividerIndex","hiddenDividers","Set","setDividerVisibility","has","hidden","toggle","oldIndex","setAttribute","ifxChange","emit","oldValue","getValueOfItem","newValue","toLocaleString","render","h","Host","key","class","role"],"sources":["src/components/content-switcher/content-switcher.scss?tag=ifx-content-switcher&encapsulation=shadow","src/components/content-switcher/content-switcher.tsx"],"sourcesContent":["@use \"~@infineon/design-system-tokens/dist/tokens\";\n\n.ifx-content-switcher {\n background-color: tokens.$ifxColorBaseWhite;\n border: 1px solid tokens.$ifxColorEngineering300;\n border-radius: tokens.$ifxBorderRadiusRound;\n height: tokens.$ifxSize450;\n width: fit-content;\n box-sizing: border-box;\n display: flex;\n flex-direction: row;\n align-items: center;\n\n & ::slotted(ifx-content-switcher-item) {\n position: relative;\n // top: -1px;\n }\n\n & ::slotted(ifx-content-switcher-item:first-child) {\n left: -1px;\n margin-right: -1px;\n }\n\n & ::slotted(ifx-content-switcher-item:last-child) {\n right: -1px;\n margin-left: -1px;\n }\n\n // Dividers\n & ::slotted(.ifx-content-switcher-divider) {\n width: tokens.$ifxSize12;\n height: tokens.$ifxSize250;\n background-color: tokens.$ifxColorEngineering400;\n margin: 0px 1px;\n visibility: visible;\n }\n\n & ::slotted(.ifx-content-switcher-divider.hidden) {\n visibility: hidden;\n }\n}","import { Component, h, Element, Event, EventEmitter, Host, State } from '@stencil/core';\nimport { trackComponent } from '../../global/utils/tracking';\nimport { isNestedInIfxComponent } from '../../global/utils/dom-utils';\n\nexport type ChangeEvent = { oldValue: string; newValue: string };\n\ntype ContentSwitcherItem = Element & {\n selected: boolean;\n};\n\n@Component({\n tag: 'ifx-content-switcher',\n styleUrl: './content-switcher.scss',\n shadow: true,\n})\nexport class ContentSwitcher {\n @Element() el: HTMLElement;\n\n @State() items: Element[];\n @State() activeIndex = -1;\n @State() hoverIndex: number = -1;\n @State() focusIndex: number = -1;\n\n @State() dividers: Element[] = Array();\n\n @Event() ifxChange: EventEmitter<ChangeEvent>;\n\n private eventHandlers: Map<Element, { [key: string]: EventListener }> = new Map();\n\n componentWillLoad() {\n this.items = Array.from(this.el.children);\n this.initializeDividers();\n this.addEventListeners();\n this.ensureSingleSelectedItem();\n if(!isNestedInIfxComponent(this.el)) { \n trackComponent('ifx-content-switcher')\n }\n }\n\n disconnectedCallback() {\n this.removeEventListeners();\n }\n\n /**\n * Initialize the dividers between items.\n */\n initializeDividers() {\n this.items.forEach((item, index) => {\n if (index < this.items.length - 1) {\n const divider = document.createElement('div');\n divider.classList.add('ifx-content-switcher-divider');\n item.after(divider);\n this.dividers.push(divider);\n }\n });\n }\n\n /**\n * Add event listeners for each item.\n */\n addEventListeners() {\n this.items.forEach((item, index) => {\n const handlers = {\n click: () => this.selectItem(index),\n mouseenter: () => this.handleHover(index, true),\n mouseleave: () => this.handleHover(index, false),\n focus: () => this.handleFocus(index, true),\n blur: () => this.handleFocus(index, false),\n };\n\n Object.keys(handlers).forEach(event => {\n item.addEventListener(event, handlers[event]);\n });\n\n this.eventHandlers.set(item, handlers);\n });\n }\n\n /**\n * Remove all event listeners.\n */\n removeEventListeners() {\n this.eventHandlers.forEach((handlers, item) => {\n Object.keys(handlers).forEach(event => {\n item.removeEventListener(event, handlers[event]);\n });\n });\n this.eventHandlers.clear();\n }\n\n ensureSingleSelectedItem() {\n this.items.forEach((item, index) => {\n const isSelected = (item.getAttribute('selected') === 'true') || (item as ContentSwitcherItem).selected;\n if (isSelected) {\n if (this.activeIndex < 0) {\n this.selectItem(index);\n } else {\n item.removeAttribute('selected');\n (item as ContentSwitcherItem).selected = false;\n }\n }\n });\n }\n\n /**\n * Handle hover events on an item.\n * @param index - Index of the item.\n * @param isActive - Whether the item is hovered.\n */\n handleHover(index: number, isActive: boolean) {\n this.hoverIndex = isActive ? index : -1;\n this.updateDividersOfItem(index);\n }\n\n /**\n * Handle hover events on an item.\n * @param index - Index of the item.\n * @param isActive - Whether the item is focused.\n */\n handleFocus(index: number, isActive: boolean) {\n this.focusIndex = isActive ? index : -1;\n this.updateDividersOfItem(index);\n }\n\n /**\n * Update visibility of dividers adjacent to a specific item.\n * @param itemIndex - Index of the item.\n */\n updateDividersOfItem(itemIndex: number) {\n if (itemIndex < this.items.length - 1) {\n this.updateDividerVisibility(itemIndex);\n }\n if (itemIndex > 0) {\n this.updateDividerVisibility(itemIndex - 1);\n }\n }\n\n /**\n * Update visibility of a specific divider.\n * @param dividerIndex - Index of the divider.\n */\n updateDividerVisibility(dividerIndex: number) {\n const hiddenDividers = new Set([this.activeIndex, this.activeIndex - 1, this.hoverIndex, this.hoverIndex - 1, this.focusIndex, this.focusIndex - 1]);\n this.setDividerVisibility(dividerIndex, hiddenDividers.has(dividerIndex));\n }\n\n /**\n * Set the visibility of a specific divider.\n * @param dividerIndex - Index of the divider.\n * @param hidden - Whether the divider should be hidden.\n */\n setDividerVisibility(dividerIndex: number, hidden: boolean) {\n if (this.dividers[dividerIndex]) {\n this.dividers[dividerIndex].classList.toggle('hidden', hidden);\n }\n }\n\n /**\n * Select a specific item.\n * @param itemIndex - Index of the item to be selected.\n */\n selectItem(itemIndex: number) {\n if (itemIndex === this.activeIndex) return;\n const oldIndex = this.activeIndex;\n if (oldIndex >= 0) {\n this.items[oldIndex].removeAttribute('selected');\n }\n\n this.activeIndex = itemIndex;\n this.items[itemIndex].setAttribute('selected', 'true');\n\n this.ifxChange.emit({ oldValue: this.getValueOfItem(oldIndex), newValue: this.getValueOfItem(itemIndex) });\n this.updateDividersOfItem(oldIndex);\n this.updateDividersOfItem(itemIndex);\n }\n\n /**\n * Get the value property of the item at a specific index.\n * Falls back to the index if no value is set.\n * \n * @param index - Index of the item. \n * @returns The value of the item.\n */\n getValueOfItem(index: number): string {\n if (this.items[index] == null) return index.toLocaleString();\n return this.items[index].getAttribute('value') || index.toLocaleString();\n }\n\n render() {\n return (\n <Host>\n <div class=\"ifx-content-switcher\" role=\"group\">\n <slot></slot>\n </div>\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
@@ -1,2 +0,0 @@
|
|
1
|
-
import{r as e,c as i,h as s,g as r}from"./p-b7a462e5.js";import{t}from"./p-6ecb6a6f.js";import{i as a}from"./p-1ecafb97.js";import{c as o}from"./p-5cdc6210.js";const l=':root{--ifx-font-family:"Source Sans 3", "Arial, sans-serif"}:host{display:flex}.search-field{box-sizing:border-box;background-color:#FFFFFF;width:100%;font-family:var(--ifx-font-family)}.search-field .search-field__wrapper{box-sizing:border-box;height:40px;display:flex;align-items:center;border:1px solid #8D8786;border-radius:1px;padding:8px 16px;gap:12px;flex:none;order:0;align-self:stretch;flex-grow:0;position:relative;width:100%;outline:none;color:#8D8786}.search-field .search-field__wrapper.focused{border:1px solid #0A8276}.search-field .search-field__wrapper.focused ifx-icon{color:#575352}.search-field .search-field__wrapper.search-field__wrapper-s{height:36px}.search-field .search-field__wrapper:hover:not(.focused,:focus){border:1px solid #3C3A39}.search-field .search-field__wrapper:focus{outline:none;border:1px solid #0A8276}.search-field .search-field__wrapper .delete-icon{right:12px;cursor:pointer}.search-field .search-field__wrapper input[type=text]{font-style:normal;font-weight:400;font-size:16px;color:#8D8786;border:none;width:100%;outline:none;height:16px}.search-field .search-field__wrapper input[type=text]:focus{outline:none;color:#1d1d1d}.search-field .search-field__wrapper input[type=text]:disabled{background-color:#EEEDED}.search-field .search-field__wrapper:has(input[disabled]){background-color:#EEEDED}';const h=l;const c=class{constructor(s){e(this,s);this.ifxInput=i(this,"ifxInput",7);this.value="";this.insideDropdown=false;this.showDeleteIcon=false;this.showDeleteIconInternalState=false;this.disabled=false;this.size="l";this.isFocused=false;this.placeholder="Search...";this.autocomplete="on";this.maxlength=null;this.handleInput=()=>{const e=this.inputElement.value;this.value=e;this.ifxInput.emit(this.value)};this.handleDelete=()=>{this.inputElement.value="";this.value="";this.ifxInput.emit(this.value)}}handleOutsideClick(e){const i=e.composedPath();if(!i.includes(this.inputElement)){this.isFocused=false}}valueWatcher(e){if(e!==this.inputElement.value){this.inputElement.value=e}}focusInput(){this.inputElement.focus();this.isFocused=true}componentWillLoad(){if(!a(this.el)){t("ifx-search-field")}}componentWillUpdate(){if(this.value!==""){this.showDeleteIconInternalState=true}else this.showDeleteIconInternalState=false}render(){return s("div",{key:"751f042d0ec4d4a532d77de87b022c9eb1c47e7c","aria-label":"a search field for user input","aria-disabled":this.disabled,"aria-value":this.value,class:"search-field"},s("div",{key:"48e4b6518cdd4fd66fc6d4f24459fd729bd6d3a7",class:this.getWrapperClassNames(),tabindex:1,onFocus:()=>this.focusInput(),onClick:()=>this.focusInput()},s("ifx-icon",{key:"71353ae1d54505b0e50d248695f20059c0d0a44d",icon:"search-16",class:"search-icon"}),s("input",{key:"c8d3c24435218e4219be7cb2bc7ee14ab314a728",ref:e=>this.inputElement=e,type:"text",autocomplete:this.autocomplete,onInput:()=>this.handleInput(),placeholder:this.placeholder,disabled:this.disabled,maxlength:this.maxlength,value:this.value}),this.showDeleteIcon&&this.showDeleteIconInternalState?s("ifx-icon",{icon:"cRemove16",class:"delete-icon",onClick:this.handleDelete}):null))}getSizeClass(){return`${this.size}`==="s"?"search-field__wrapper-s":""}getWrapperClassNames(){return o(`search-field__wrapper`,`search-field__wrapper ${this.getSizeClass()}`,`${this.isFocused?"focused":""}`)}get el(){return r(this)}static get watchers(){return{value:["valueWatcher"]}}};c.style=h;export{c as ifx_search_field};
|
2
|
-
//# sourceMappingURL=p-c164c83b.entry.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"names":["searchFieldCss","IfxSearchFieldStyle0","SearchField","constructor","hostRef","this","value","insideDropdown","showDeleteIcon","showDeleteIconInternalState","disabled","size","isFocused","placeholder","autocomplete","maxlength","handleInput","query","inputElement","ifxInput","emit","handleDelete","handleOutsideClick","event","path","composedPath","includes","valueWatcher","newValue","focusInput","focus","componentWillLoad","isNestedInIfxComponent","el","trackComponent","componentWillUpdate","render","h","key","class","getWrapperClassNames","tabindex","onFocus","onClick","icon","ref","type","onInput","getSizeClass","classNames"],"sources":["src/components/search-field/search-field.scss?tag=ifx-search-field&encapsulation=shadow","src/components/search-field/search-field.tsx"],"sourcesContent":["@use \"~@infineon/design-system-tokens/dist/tokens\";\n@use \"../../global/font.scss\";\n\n:host {\n display: flex;\n}\n\n.search-field {\n box-sizing: border-box;\n background-color: tokens.$ifxColorBaseWhite;\n width: 100%;\n font-family: var(--ifx-font-family); // tokens.$ifxFontFamilyBody;\n\n\n\n\n .search-field__wrapper {\n box-sizing: border-box;\n height: tokens.$ifxSize500;\n display: flex;\n align-items: center;\n border: 1px solid #8D8786;\n border-radius: tokens.$ifxBorderRadius12;\n padding: tokens.$ifxSpace100 tokens.$ifxSpace200;\n gap: tokens.$ifxSpace150;\n flex: none;\n order: 0;\n align-self: stretch;\n flex-grow: 0;\n position: relative;\n width: 100%;\n outline: none;\n color: tokens.$ifxColorEngineering400;\n\n &.focused {\n border: 1px solid tokens.$ifxColorOcean500;\n\n & ifx-icon {\n color: tokens.$ifxColorEngineering500;\n }\n }\n\n &.search-field__wrapper-s {\n height: 36px;\n }\n\n\n &:hover:not(.focused, :focus) {\n border: 1px solid #3C3A39;\n }\n\n &:focus {\n outline: none;\n border: 1px solid #0A8276;\n }\n\n\n .delete-icon {\n right: 12px;\n cursor: pointer;\n }\n\n input[type='text'] {\n font-style: normal;\n font-weight: 400;\n font-size: 16px;\n //line-height: 24px;\n color: #8D8786;\n border: none;\n width: 100%;\n outline: none;\n //height: 100%;\n height: 16px;\n\n &:focus {\n outline: none;\n color: #1d1d1d;\n }\n\n &:disabled {\n background-color: #EEEDED;\n }\n }\n\n &:has(input[disabled]) {\n background-color: #EEEDED;\n }\n }\n}","import { Component, EventEmitter, h, Event, Prop, Watch, State, Listen, Element } from '@stencil/core';\nimport { trackComponent } from '../../global/utils/tracking'; \nimport { isNestedInIfxComponent } from '../../global/utils/dom-utils';\nimport classNames from 'classnames';\n\n@Component({\n tag: 'ifx-search-field',\n styleUrl: 'search-field.scss',\n shadow: true\n})\n\n\nexport class SearchField {\n @Element() el;\n private inputElement: HTMLInputElement;\n @Prop({ mutable: true }) value: string = '';\n\n @Event() ifxInput: EventEmitter<String>;\n @State() insideDropdown: boolean = false;\n\n @Prop() showDeleteIcon: boolean = false;\n @State() showDeleteIconInternalState: boolean = false;\n @Prop() disabled: boolean = false;\n @Prop() size: string = 'l';\n @State() isFocused: boolean = false;\n @Prop() placeholder: string = \"Search...\";\n @Prop() autocomplete: string = \"on\";\n @Prop() maxlength?: number = null; \n\n @Listen('mousedown', { target: 'document' })\n handleOutsideClick(event: MouseEvent) {\n const path = event.composedPath();\n if (!path.includes(this.inputElement)) {\n this.isFocused = false;\n }\n }\n\n @Watch('value')\n valueWatcher(newValue: string) {\n if (newValue !== this.inputElement.value) {\n this.inputElement.value = newValue;\n }\n }\n\n\n handleInput = () => {\n const query = this.inputElement.value;\n this.value = query; // update the value property when input changes\n this.ifxInput.emit(this.value);\n };\n\n handleDelete = () => {\n this.inputElement.value = '';\n this.value = \"\";\n this.ifxInput.emit(this.value);\n }\n\n focusInput() {\n this.inputElement.focus();\n this.isFocused = true;\n }\n\n componentWillLoad() { \n if(!isNestedInIfxComponent(this.el)) { \n trackComponent('ifx-search-field')\n }\n }\n \n componentWillUpdate() {\n if (this.value !== \"\") {\n this.showDeleteIconInternalState = true;\n } else this.showDeleteIconInternalState = false;\n }\n\n render() {\n return (\n <div aria-label=\"a search field for user input\" aria-disabled={this.disabled} aria-value={this.value} class='search-field'>\n <div class={this.getWrapperClassNames()}\n tabindex={1}\n onFocus={() => this.focusInput()}\n onClick={() => this.focusInput()}\n >\n <ifx-icon icon=\"search-16\" class=\"search-icon\"></ifx-icon>\n <input\n ref={(el) => (this.inputElement = el)}\n type=\"text\"\n autocomplete={this.autocomplete}\n onInput={() => this.handleInput()}\n placeholder={this.placeholder}\n disabled={this.disabled}\n maxlength={this.maxlength}\n value={this.value} // bind the value property to input element\n />\n {this.showDeleteIcon && this.showDeleteIconInternalState ? (\n <ifx-icon icon=\"cRemove16\" class=\"delete-icon\" onClick={this.handleDelete}>\n </ifx-icon>\n ) : null}\n </div>\n </div>\n );\n }\n\n getSizeClass() {\n return `${this.size}` === \"s\"\n ? \"search-field__wrapper-s\"\n : \"\";\n }\n\n\n getWrapperClassNames() {\n return classNames(\n `search-field__wrapper`,\n `search-field__wrapper ${this.getSizeClass()}`,\n `${this.isFocused ? 'focused' : \"\"}`\n );\n }\n}"],"mappings":"gKAAA,MAAMA,EAAiB,m0CACvB,MAAAC,EAAeD,E,MCWFE,EAAW,MAPxB,WAAAC,CAAAC,G,6CAU2BC,KAAAC,MAAgB,GAGhCD,KAAAE,eAA0B,MAE3BF,KAAAG,eAA0B,MACzBH,KAAAI,4BAAuC,MACxCJ,KAAAK,SAAoB,MACpBL,KAAAM,KAAe,IACdN,KAAAO,UAAqB,MACtBP,KAAAQ,YAAsB,YACtBR,KAAAS,aAAuB,KACvBT,KAAAU,UAAqB,KAkB7BV,KAAAW,YAAc,KACZ,MAAMC,EAAQZ,KAAKa,aAAaZ,MAChCD,KAAKC,MAAQW,EACbZ,KAAKc,SAASC,KAAKf,KAAKC,MAAM,EAGhCD,KAAAgB,aAAe,KACbhB,KAAKa,aAAaZ,MAAQ,GAC1BD,KAAKC,MAAQ,GACbD,KAAKc,SAASC,KAAKf,KAAKC,MAAM,C,CAxBhC,kBAAAgB,CAAmBC,GACjB,MAAMC,EAAOD,EAAME,eACnB,IAAKD,EAAKE,SAASrB,KAAKa,cAAe,CACrCb,KAAKO,UAAY,K,EAKrB,YAAAe,CAAaC,GACX,GAAIA,IAAavB,KAAKa,aAAaZ,MAAO,CACxCD,KAAKa,aAAaZ,MAAQsB,C,EAiB9B,UAAAC,GACExB,KAAKa,aAAaY,QAClBzB,KAAKO,UAAY,I,CAGnB,iBAAAmB,GACE,IAAIC,EAAuB3B,KAAK4B,IAAK,CACnCC,EAAe,mB,EAInB,mBAAAC,GACE,GAAI9B,KAAKC,QAAU,GAAI,CACrBD,KAAKI,4BAA8B,I,MAC9BJ,KAAKI,4BAA8B,K,CAG5C,MAAA2B,GACE,OACEC,EAAA,OAAAC,IAAA,wDAAgB,gCAA+B,gBAAgBjC,KAAKK,SAAQ,aAAcL,KAAKC,MAAOiC,MAAM,gBAC1GF,EAAA,OAAAC,IAAA,2CAAKC,MAAOlC,KAAKmC,uBACfC,SAAU,EACVC,QAAS,IAAMrC,KAAKwB,aACpBc,QAAS,IAAMtC,KAAKwB,cAEpBQ,EAAA,YAAAC,IAAA,2CAAUM,KAAK,YAAYL,MAAM,gBACjCF,EAAA,SAAAC,IAAA,2CACEO,IAAMZ,GAAQ5B,KAAKa,aAAee,EAClCa,KAAK,OACLhC,aAAcT,KAAKS,aACnBiC,QAAS,IAAM1C,KAAKW,cACpBH,YAAaR,KAAKQ,YAClBH,SAAUL,KAAKK,SACfK,UAAWV,KAAKU,UAChBT,MAAOD,KAAKC,QAEbD,KAAKG,gBAAkBH,KAAKI,4BAC3B4B,EAAA,YAAUO,KAAK,YAAYL,MAAM,cAAcI,QAAStC,KAAKgB,eAE3D,M,CAMZ,YAAA2B,GACE,MAAO,GAAG3C,KAAKM,SAAW,IACtB,0BACA,E,CAIN,oBAAA6B,GACE,OAAOS,EACL,wBACA,yBAAyB5C,KAAK2C,iBAC9B,GAAG3C,KAAKO,UAAY,UAAY,K","ignoreList":[]}
|
@@ -1,2 +0,0 @@
|
|
1
|
-
import{r as t,h as o,g as i}from"./p-b7a462e5.js";import{t as e}from"./p-6ecb6a6f.js";import{i as s}from"./p-1ecafb97.js";import{c as a}from"./p-e459974a.js";const l=':root{--ifx-font-family:"Source Sans 3", "Arial, sans-serif"}:host{display:inline-flex}.tooltip__container{display:inline-flex;flex-direction:column;position:relative;font-family:var(--ifx-font-family)}.tooltip-extended,.tooltip-compact,.tooltip-dismissible{background-color:#1D1D1D;border:1px solid black;z-index:1080;display:none;transition:opacity 0.3s;position:absolute;font-size:14px;font-style:normal;font-weight:400;line-height:20px;color:#FFFFFF;width:max-content;box-sizing:border-box;white-space:pre-wrap;word-wrap:break-word;overflow-wrap:anywhere;}.visible.tooltip-extended,.visible.tooltip-compact,.visible.tooltip-dismissible{display:flex !important;align-items:start}.tooltip-dismissible .close-button{all:unset;cursor:pointer;position:relative;order:2;margin-top:12px;margin-right:12px;line-height:0px}.tooltip-dismissible .tooltip-dismissible-content{display:flex;flex-direction:column;gap:12px;padding:12px;flex-grow:1;white-space:pre-wrap;word-wrap:break-word;overflow-wrap:anywhere}.tooltip-dismissible .tooltip-dismissible-header,.tooltip-dismissible .tooltip-dismissible-body{font-size:14px;font-style:normal;line-height:20px}.tooltip-dismissible .tooltip-dismissible-header{font-weight:600}.tooltip-dismissible .tooltip-dismissible-body{font-weight:400}.tooltip-compact{padding:4px 8px;text-align:center;flex-grow:1}.tooltip-extended{align-items:center;padding:12px;gap:10px}.tooltip-extended .extended_icon{display:flex;align-self:flex-start;align-items:center;cursor:pointer}.tooltip-extended .tooltip-extended-content{display:flex;flex-direction:column;gap:12px;flex-grow:1;white-space:pre-wrap;word-wrap:break-word;overflow-wrap:anywhere}.tooltip-extended .tooltip-extended-header,.tooltip-extended .tooltip-extended-body{font-size:14px;font-style:normal;line-height:20px}.tooltip-extended .tooltip-extended-header{font-weight:600}.tooltip-extended .tooltip-extended-body{font-weight:400}.tooltip__container .tooltip-arrow-svg{position:absolute;width:8px;height:8px}[data-placement=top].tooltip-extended>.tooltip-arrow-svg,[data-placement=top].tooltip-dismissible>.tooltip-arrow-svg,[data-placement=top].tooltip-compact>.tooltip-arrow-svg{bottom:-7px;left:50%;transform:rotate(180deg) translateX(-50%)}[data-placement=top-start].tooltip-extended>.tooltip-arrow-svg,[data-placement=top-start].tooltip-dismissible>.tooltip-arrow-svg,[data-placement=top-start].tooltip-compact>.tooltip-arrow-svg{bottom:-7px;left:10px;transform:rotate(180deg)}[data-placement=top-end].tooltip-extended>.tooltip-arrow-svg,[data-placement=top-end].tooltip-dismissible>.tooltip-arrow-svg,[data-placement=top-end].tooltip-compact>.tooltip-arrow-svg{bottom:-7px;right:10px;transform:rotate(180deg)}[data-placement=bottom].tooltip-extended>.tooltip-arrow-svg,[data-placement=bottom].tooltip-dismissible>.tooltip-arrow-svg,[data-placement=bottom].tooltip-compact>.tooltip-arrow-svg{top:-7px;left:50%;transform:translateX(-50%)}[data-placement=bottom-start].tooltip-extended>.tooltip-arrow-svg,[data-placement=bottom-start].tooltip-dismissible>.tooltip-arrow-svg,[data-placement=bottom-start].tooltip-compact>.tooltip-arrow-svg{top:-7px;left:10px}[data-placement=bottom-end].tooltip-extended>.tooltip-arrow-svg,[data-placement=bottom-end].tooltip-dismissible>.tooltip-arrow-svg,[data-placement=bottom-end].tooltip-compact>.tooltip-arrow-svg{top:-7px;right:10px}[data-placement=left].tooltip-extended>.tooltip-arrow-svg,[data-placement=left].tooltip-dismissible>.tooltip-arrow-svg,[data-placement=left].tooltip-compact>.tooltip-arrow-svg{right:-3px;top:50%;transform:rotate(90deg) translateY(-50%) translateX(-50%)}[data-placement=right].tooltip-extended>.tooltip-arrow-svg,[data-placement=right].tooltip-dismissible>.tooltip-arrow-svg,[data-placement=right].tooltip-compact>.tooltip-arrow-svg{left:-3px;top:50%;transform:rotate(270deg) translateY(-50%) translateX(50%)}.tooltip-compact{min-width:28px !important;max-width:145px !important}.tooltip-dismissible{min-width:145px !important;max-width:310px !important}.tooltip-extended{min-width:145px !important;max-width:310px !important}';const d=l;const p=class{constructor(o){t(this,o);this.tooltipVisible=false;this.header="";this.text="";this.position="auto";this.internalPosition="auto";this.variant="compact";this.popperInstance=null;this.onMouseEnter=()=>{var t,o;(t=this.popperInstance)===null||t===void 0?void 0:t.setOptions((t=>Object.assign(Object.assign({},t),{modifiers:[...t.modifiers,{name:"eventListeners",enabled:true}]})));this.initializePopper();this.tooltipVisible=true;this.tooltipEl.style.display="block";(o=this.popperInstance)===null||o===void 0?void 0:o.update()};this.onMouseLeave=()=>{this.tooltipVisible=false;this.tooltipEl.style.display="none"};this.onClick=()=>{var t;if(this.variant.toLowerCase()==="dismissible"){this.initializePopper();this.tooltipVisible=!this.tooltipVisible;this.tooltipEl.style.display=this.tooltipVisible?"block":"none";(t=this.popperInstance)===null||t===void 0?void 0:t.update()}};this.onDismissClick=()=>{this.tooltipVisible=false;this.tooltipEl.style.display="none"}}componentWillLoad(){if(!s(this.el)){e("ifx-tooltip")}if(this.variant.toLowerCase().trim()===""){this.variant="compact"}}componentDidLoad(){const t=this.el.shadowRoot.querySelector(".tooltip__container").firstChild;if(this.variant.toLowerCase()==="compact"||this.variant.toLowerCase()==="extended"){t.addEventListener("mouseenter",this.onMouseEnter);t.addEventListener("mouseleave",this.onMouseLeave)}else{t.addEventListener("click",this.onClick)}}initializePopper(){if(this.popperInstance)return;this.referenceEl=this.el;if(this.variant.toLowerCase()==="compact"){this.tooltipEl=this.el.shadowRoot.querySelector(".tooltip-compact")}else if(this.variant.toLowerCase()==="dismissible"){this.tooltipEl=this.el.shadowRoot.querySelector(".tooltip-dismissible")}else{this.tooltipEl=this.el.shadowRoot.querySelector(".tooltip-extended")}const t=this.position==="auto"?this.determineBestPosition():this.position;this.internalPosition=t;if(this.tooltipEl&&this.referenceEl){this.popperInstance=a(this.referenceEl,this.tooltipEl,{placement:this.internalPosition,modifiers:[{name:"offset",options:{offset:[0,8]}},{name:"arrow",options:{element:".tooltip-arrow-svg"}}]})}this.tooltipEl.setAttribute("data-placement",t)}determineBestPosition(){const t=this.referenceEl.getBoundingClientRect();const o=window.scrollY;const i=window.scrollX;const e=t.top+o+t.height/2;const s=t.left+i+t.width/2;if(this.position==="auto"){if(e>window.innerHeight/2){if(s>window.innerWidth/2){return"top-end"}else{return"top-start"}}else{if(s>window.innerWidth/2){return"bottom-end"}else{return"bottom-start"}}}else{return this.position}}positionChanged(t){var o;this.internalPosition=t;(o=this.popperInstance)===null||o===void 0?void 0:o.destroy();this.popperInstance=null}disconnectedCallback(){var t;(t=this.popperInstance)===null||t===void 0?void 0:t.destroy()}render(){const t={"tooltip-dismissible":true,visible:this.tooltipVisible};const i={"tooltip-compact":true,visible:this.tooltipVisible};const e={"tooltip-extended":true,visible:this.tooltipVisible};return o("div",{key:"800412b42aedfe4a5f143af127c24178ecad72dc","aria-label":"a tooltip showing important information","aria-value":this.header,class:"tooltip__container"},o("slot",{key:"804b2f8583a588b14fc2228f47d745834bc4f2b7"}),this.variant.toLowerCase()==="dismissible"&&o("div",{key:"779ed1568606807902d680313e09c4827c3a9cc3",class:t},o("button",{key:"7a6029a058bfc10806a5d9b1aa3a0b992e99db50","aria-label":"Close Tooltip",class:"close-button",onClick:this.onDismissClick},o("ifx-icon",{key:"85e7b2368a63d104447221f0dd0590bc6340308a",icon:"cross16"})),o("div",{key:"ed006c7238ce366da215e44e1da7bcc2bf812196",class:"tooltip-dismissible-content"},this.header&&o("div",{key:"f55620b3a915f322c2defca81cce2a4ed2fd917e",class:"tooltip-dismissible-header"},this.header),o("div",{key:"fe3945914787affc7144a915d0830ab47ea7169f",class:"tooltip-dismissible-body"},this.text)),o("svg",{key:"564df15129ab41e14fa1a763d5ec7248698febf0",class:"tooltip-arrow-svg",width:"12",height:"8",viewBox:"0 0 12 8",fill:"none",xmlns:"http://www.w3.org/2000/svg"},o("path",{key:"fe4213845d82f9e0141b5fbff33811ac9b1a7e91",id:"Indicator",d:"M6 0L12 8L0 8L6 0Z",fill:"#1D1D1D"}))),this.variant.toLowerCase()==="compact"&&o("div",{key:"3b651fbefe2348456b5e684c4de80fc8c5b3176e",class:i},this.text,o("svg",{key:"05e2750f2f61ef91c5c02e30b578adbbbc1c69e2",class:"tooltip-arrow-svg",width:"12",height:"8",viewBox:"0 0 12 8",fill:"none",xmlns:"http://www.w3.org/2000/svg"},o("path",{key:"240fb241aadaa3dc12b61f747fff118ea9d08fad",id:"Indicator",d:"M6 0L12 8L0 8L6 0Z",fill:"#1D1D1D"}))),this.variant.toLowerCase()==="extended"&&o("div",{key:"806eecf6abb796404bbe63bcf1bf2ec31a45e47d",class:e},o("slot",{key:"9253c2bbd7c4e2d7ba42c1c72a76e85e8309ff37",name:"icon"},this.icon?o("div",{class:"extended_icon"},o("ifx-icon",{icon:this.icon})):o("svg",{class:"extended_icon",xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",fill:"none",viewBox:"0 0 24 24"},o("path",{stroke:"#fff","stroke-linecap":"round","stroke-linejoin":"round",d:"M20.5 2.5h-16a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-16a2 2 0 0 0-2-2Z"}),o("path",{stroke:"#fff",d:"M19 17H6l2.5-4 2.097 2.516.405.486.379-.506 4.118-5.49.003-.002L19 17Z"}),o("path",{fill:"#fff",d:"M10 9.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"}))),o("div",{key:"eaaf6a0ed69e81231c9e26cec682d97bd880e1b4",class:"tooltip-extended-content"},this.header&&o("div",{key:"0e31613f59b976d97c55d0609ddadc675df989b3",class:"tooltip-extended-header"},this.header),o("div",{key:"e529acccd2e26271414091702fc71ee5df0ab75b",class:"tooltip-extended-body"},this.text)),o("svg",{key:"d0a908924d6c383587b550439b11f2f70fcfe2ec",class:"tooltip-arrow-svg",width:"12",height:"8",viewBox:"0 0 12 8",fill:"none",xmlns:"http://www.w3.org/2000/svg"},o("path",{key:"e3b0afcaa7c00b350af5fd571cef872157dbf972",id:"Indicator",d:"M6 0L12 8L0 8L6 0Z",fill:"#1D1D1D"}))))}get el(){return i(this)}static get watchers(){return{position:["positionChanged"]}}};p.style=d;export{p as ifx_tooltip};
|
2
|
-
//# sourceMappingURL=p-c220733b.entry.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"names":["tooltipCss","IfxTooltipStyle0","Tooltip","constructor","hostRef","this","tooltipVisible","header","text","position","internalPosition","variant","popperInstance","onMouseEnter","_a","setOptions","options","Object","assign","modifiers","name","enabled","initializePopper","tooltipEl","style","display","_b","update","onMouseLeave","onClick","toLowerCase","onDismissClick","componentWillLoad","isNestedInIfxComponent","el","trackComponent","trim","componentDidLoad","slotElement","shadowRoot","querySelector","firstChild","addEventListener","referenceEl","effectivePosition","determineBestPosition","createPopper","placement","offset","element","setAttribute","rect","getBoundingClientRect","yOffset","window","scrollY","xOffset","scrollX","verticalHalfwayPoint","top","height","horizontalHalfwayPoint","left","width","innerHeight","innerWidth","positionChanged","newVal","destroy","disconnectedCallback","render","tooltipDismissible","visible","tooltipCompact","tooltipExtended","h","key","class","icon","viewBox","fill","xmlns","id","d","stroke"],"sources":["src/components/tooltip/tooltip.scss?tag=ifx-tooltip&encapsulation=shadow","src/components/tooltip/tooltip.tsx"],"sourcesContent":["@use \"~@infineon/design-system-tokens/dist/tokens\";\n@use \"../../global/font.scss\";\n\n:host {\n display: inline-flex;\n}\n\n.tooltip__container {\n display: inline-flex;\n flex-direction: column;\n position: relative;\n font-family: var(--ifx-font-family); // tokens.$ifxFontFamilyBody;\n\n\n\n}\n\n%tooltip-common {\n background-color: tokens.$ifxColorBaseBlack;\n border: 1px solid black;\n z-index: 1080;\n display: none;\n transition: opacity 0.3s;\n position: absolute;\n font-size: 14px;\n font-style: normal;\n font-weight: 400;\n line-height: 20px;\n color: tokens.$ifxColorBaseWhite;\n width: max-content;\n box-sizing: border-box;\n\n white-space: pre-wrap; /* wraps text at spaces and within words */\n word-wrap: break-word; /* breaks text within a word if necessary */\n overflow-wrap: anywhere; /* breaks text at arbitrary points when needed */\n\n &.visible {\n display: flex !important;\n align-items: start;\n //min-width: 100px;\n //width: auto;\n }\n}\n\n\n\n.tooltip-dismissible {\n @extend %tooltip-common;\n\n .close-button {\n all: unset;\n //position: absolute;\n //top: tokens.$ifxSpace150;\n //right: tokens.$ifxSpace150;\n cursor: pointer;\n position: relative;\n order: 2;\n margin-top: 12px;\n margin-right: 12px;\n line-height: 0px;\n }\n\n .tooltip-dismissible-content {\n display: flex;\n flex-direction: column;\n gap: tokens.$ifxSpace150;\n padding: tokens.$ifxSpace150;\n flex-grow: 1;\n white-space: pre-wrap;\n word-wrap: break-word;\n overflow-wrap: anywhere;\n\n }\n\n .tooltip-dismissible-header,\n .tooltip-dismissible-body {\n font-size: 14px;\n font-style: normal;\n line-height: 20px;\n }\n\n .tooltip-dismissible-header {\n font-weight: tokens.$ifxFontWeightSemibold;\n }\n\n .tooltip-dismissible-body {\n font-weight: tokens.$ifxFontWeightRegular;\n }\n}\n\n.tooltip-compact {\n @extend %tooltip-common;\n padding: 4px 8px;\n text-align: center;\n flex-grow: 1;\n}\n\n\n.tooltip-extended {\n @extend %tooltip-common;\n //padding-left: 36px; // Added this line, adjust as per your icon width\n //padding-left: tokens.$ifxSpace150; // Added this line, adjust as per your icon width\n align-items: center;\n padding: tokens.$ifxSpace150;\n gap: 10px;\n\n .extended_icon {\n display: flex;\n align-self: flex-start;\n align-items: center;\n //padding-top: tokens.$ifxSpace150;\n cursor: pointer;\n }\n\n\n\n .tooltip-extended-content {\n display: flex;\n flex-direction: column;\n gap: tokens.$ifxSpace150;\n //padding: tokens.$ifxSpace150;\n flex-grow: 1;\n white-space: pre-wrap;\n word-wrap: break-word;\n overflow-wrap: anywhere;\n }\n\n .tooltip-extended-header,\n .tooltip-extended-body {\n font-size: 14px;\n font-style: normal;\n line-height: 20px;\n }\n\n .tooltip-extended-header {\n font-weight: tokens.$ifxFontWeightSemibold;\n }\n\n .tooltip-extended-body {\n font-weight: tokens.$ifxFontWeightRegular;\n }\n}\n\n\n.tooltip__container .tooltip-arrow-svg {\n position: absolute;\n width: 8px;\n height: 8px;\n}\n\n\n%tooltip-arrow-positions {\n\n // For 'top' placement\n &[data-placement=\"top\"]>.tooltip-arrow-svg {\n bottom: -7px;\n left: 50%;\n transform: rotate(180deg) translateX(-50%);\n }\n\n // For 'top-start' placement\n &[data-placement=\"top-start\"]>.tooltip-arrow-svg {\n bottom: -7px;\n left: 10px; // Adjust as needed\n transform: rotate(180deg)\n }\n\n // For 'top-end' placement\n &[data-placement=\"top-end\"]>.tooltip-arrow-svg {\n bottom: -7px;\n right: 10px; // Adjust as needed\n transform: rotate(180deg);\n }\n\n // For 'bottom' placement\n &[data-placement=\"bottom\"]>.tooltip-arrow-svg {\n top: -7px;\n left: 50%;\n transform: translateX(-50%);\n }\n\n // For 'bottom-start' placement\n &[data-placement=\"bottom-start\"]>.tooltip-arrow-svg {\n top: -7px;\n left: 10px; // Adjust as needed\n }\n\n // For 'bottom-end' placement\n &[data-placement=\"bottom-end\"]>.tooltip-arrow-svg {\n top: -7px;\n right: 10px; // Adjust as needed\n }\n\n // For 'left' placement\n &[data-placement=\"left\"]>.tooltip-arrow-svg {\n right: -3px;\n top: 50%;\n transform: rotate(90deg) translateY(-50%) translateX(-50%);\n }\n\n // For 'right' placement\n &[data-placement=\"right\"]>.tooltip-arrow-svg {\n left: -3px;\n top: 50%;\n transform: rotate(270deg) translateY(-50%) translateX(50%);\n }\n}\n\n\n.tooltip-compact {\n @extend %tooltip-arrow-positions;\n min-width: 28px !important;\n max-width: 145px !important;\n}\n\n.tooltip-dismissible {\n @extend %tooltip-arrow-positions;\n min-width: 145px !important;\n max-width: 310px !important;\n}\n\n.tooltip-extended {\n @extend %tooltip-arrow-positions;\n min-width: 145px !important;\n max-width: 310px !important;\n}\n","import { Component, Prop, h, Element, State, Watch } from '@stencil/core';\nimport { createPopper } from '@popperjs/core';\nimport { trackComponent } from '../../global/utils/tracking';\nimport { isNestedInIfxComponent } from '../../global/utils/dom-utils';\n\n@Component({\n tag: 'ifx-tooltip',\n styleUrl: 'tooltip.scss',\n shadow: true\n})\nexport class Tooltip {\n\n @Element() el: HTMLElement;\n @State() tooltipVisible: boolean = false;\n @Prop() header: string = '';\n @Prop() text: string = '';\n @Prop() position: 'bottom-start' | 'top-start' | 'left' | 'bottom-end' | 'top-end' | 'right' | 'bottom' | 'top' | 'auto' = 'auto';\n @State() internalPosition: 'bottom-start' | 'top-start' | 'left' | 'bottom-end' | 'top-end' | 'right' | 'bottom' | 'top' | 'auto' = 'auto';\n\n @Prop() variant: 'compact' | 'dismissible' | 'extended' = 'compact';\n @Prop() icon: string;\n\n tooltipEl: HTMLElement;\n referenceEl: HTMLElement;\n popperInstance: any = null;\n\n\n componentWillLoad() { \n if(!isNestedInIfxComponent(this.el)) { \n trackComponent('ifx-tooltip')\n }\n if(this.variant.toLowerCase().trim() === \"\") { \n this.variant = 'compact'\n }\n }\n \n componentDidLoad() {\n const slotElement = this.el.shadowRoot.querySelector('.tooltip__container').firstChild;\n \n if(this.variant.toLowerCase() === 'compact' || this.variant.toLowerCase() === 'extended') {\n slotElement.addEventListener('mouseenter', this.onMouseEnter)\n slotElement.addEventListener('mouseleave', this.onMouseLeave)\n }else{\n slotElement.addEventListener('click', this.onClick);\n }\n\n }\n\n initializePopper() {\n if (this.popperInstance) return;\n\n this.referenceEl = this.el;\n this.tooltipEl;\n if (this.variant.toLowerCase() === 'compact') {\n this.tooltipEl = this.el.shadowRoot.querySelector('.tooltip-compact');\n }\n else if (this.variant.toLowerCase() === 'dismissible') {\n this.tooltipEl = this.el.shadowRoot.querySelector('.tooltip-dismissible');\n }\n else {\n this.tooltipEl = this.el.shadowRoot.querySelector('.tooltip-extended');\n\n }\n\n const effectivePosition = this.position === 'auto' ? this.determineBestPosition() : this.position;\n\n // Set the internalPosition\n this.internalPosition = effectivePosition;\n\n if (this.tooltipEl && this.referenceEl) {\n\n this.popperInstance = createPopper(this.referenceEl, this.tooltipEl, {\n placement: this.internalPosition,\n modifiers: [\n {\n name: 'offset',\n options: {\n offset: [0, 8] // this offset should be adjusted to ensure the tooltip doesn't overlap its reference element\n }\n },\n {\n name: 'arrow',\n options: {\n element: '.tooltip-arrow-svg'\n }\n }\n ]\n });\n\n }\n\n // Add this line to set the 'data-placement' attribute on the tooltip\n this.tooltipEl.setAttribute('data-placement', effectivePosition);\n\n\n }\n\n determineBestPosition() {\n // This is a simplified version, you can enhance this based on available viewport space.\n const rect = this.referenceEl.getBoundingClientRect();\n const yOffset = window.scrollY; // Get current scroll position\n const xOffset = window.scrollX; // Get current horizontal scroll position\n\n const verticalHalfwayPoint = rect.top + yOffset + rect.height / 2;\n const horizontalHalfwayPoint = rect.left + xOffset + rect.width / 2;\n\n if (this.position === 'auto') {\n if (verticalHalfwayPoint > window.innerHeight / 2) {\n if (horizontalHalfwayPoint > window.innerWidth / 2) {\n return 'top-end';\n } else {\n return 'top-start';\n }\n } else {\n if (horizontalHalfwayPoint > window.innerWidth / 2) {\n return 'bottom-end';\n } else {\n return 'bottom-start';\n }\n }\n } else {\n return this.position;\n }\n }\n\n @Watch('position')\n positionChanged(newVal: any) {\n this.internalPosition = newVal;\n this.popperInstance?.destroy();\n this.popperInstance = null; // Force re-initialization on next mouse enter\n }\n\n\n\n onMouseEnter = () => {\n // Enable the event listeners immediately\n this.popperInstance?.setOptions((options) => ({\n ...options,\n modifiers: [\n ...options.modifiers,\n { name: 'eventListeners', enabled: true },\n ],\n }));\n\n // Initialize the popper instance\n this.initializePopper();\n\n // Make the tooltip visible\n this.tooltipVisible = true;\n this.tooltipEl.style.display = 'block';\n\n // Update the popper instance immediately after initialization\n this.popperInstance?.update();\n }\n\n\n onMouseLeave = () => {\n this.tooltipVisible = false;\n this.tooltipEl.style.display = 'none';\n\n }\n\n disconnectedCallback() {\n this.popperInstance?.destroy();\n }\n\n onClick = () => {\n if (this.variant.toLowerCase() === 'dismissible') {\n this.initializePopper();\n this.tooltipVisible = !this.tooltipVisible;\n this.tooltipEl.style.display = this.tooltipVisible ? 'block' : 'none';\n this.popperInstance?.update();\n }\n }\n\n onDismissClick = () => {\n this.tooltipVisible = false;\n this.tooltipEl.style.display = 'none';\n }\n\n render() {\n const tooltipDismissible = {\n 'tooltip-dismissible': true,\n 'visible': this.tooltipVisible,\n };\n\n const tooltipCompact = {\n 'tooltip-compact': true,\n 'visible': this.tooltipVisible,\n };\n\n const tooltipExtended = {\n 'tooltip-extended': true,\n 'visible': this.tooltipVisible,\n };\n\n return (\n <div aria-label=\"a tooltip showing important information\" aria-value={this.header} class=\"tooltip__container\" >\n <slot></slot>\n\n {this.variant.toLowerCase() === 'dismissible' && <div class={tooltipDismissible}>\n <button aria-label=\"Close Tooltip\" class=\"close-button\" onClick={this.onDismissClick}>\n <ifx-icon icon=\"cross16\"></ifx-icon>\n </button>\n <div class=\"tooltip-dismissible-content\">\n {this.header && <div class=\"tooltip-dismissible-header\">{this.header}</div>}\n <div class=\"tooltip-dismissible-body\">{this.text}</div>\n </div>\n <svg class=\"tooltip-arrow-svg\" width=\"12\" height=\"8\" viewBox=\"0 0 12 8\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path id=\"Indicator\" d=\"M6 0L12 8L0 8L6 0Z\" fill=\"#1D1D1D\" />\n </svg>\n </div>\n }\n {this.variant.toLowerCase() === 'compact' &&\n <div class={tooltipCompact}>\n {this.text}\n <svg class=\"tooltip-arrow-svg\" width=\"12\" height=\"8\" viewBox=\"0 0 12 8\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path id=\"Indicator\" d=\"M6 0L12 8L0 8L6 0Z\" fill=\"#1D1D1D\" />\n </svg>\n </div>\n }\n {this.variant.toLowerCase() === 'extended' &&\n <div class={tooltipExtended}>\n <slot name=\"icon\">\n {this.icon ? <div class=\"extended_icon\"><ifx-icon icon={this.icon}></ifx-icon></div> :\n <svg class=\"extended_icon\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" fill=\"none\" viewBox=\"0 0 24 24\">\n <path stroke=\"#fff\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M20.5 2.5h-16a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-16a2 2 0 0 0-2-2Z\" />\n <path stroke=\"#fff\" d=\"M19 17H6l2.5-4 2.097 2.516.405.486.379-.506 4.118-5.49.003-.002L19 17Z\" />\n <path fill=\"#fff\" d=\"M10 9.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z\" />\n </svg>\n }\n </slot>\n <div class=\"tooltip-extended-content\">\n {this.header && <div class=\"tooltip-extended-header\">{this.header}</div>}\n <div class=\"tooltip-extended-body\">{this.text}</div>\n </div>\n <svg class=\"tooltip-arrow-svg\" width=\"12\" height=\"8\" viewBox=\"0 0 12 8\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path id=\"Indicator\" d=\"M6 0L12 8L0 8L6 0Z\" fill=\"#1D1D1D\" />\n </svg>\n </div >\n }\n </div>\n );\n }\n\n\n}"],"mappings":"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","ignoreList":[]}
|
@@ -1,2 +0,0 @@
|
|
1
|
-
import{r as i,c as e,h as s,g as t}from"./p-b7a462e5.js";import{t as l}from"./p-6ecb6a6f.js";import{i as a}from"./p-1ecafb97.js";const o=':root{--ifx-font-family:"Source Sans 3", "Arial, sans-serif"}:host{font-family:var(--ifx-font-family, sans-serif)}.file-upload-wrapper{display:flex;flex-direction:column}.file-upload-wrapper.disabled{pointer-events:none}.file-upload-wrapper.disabled label,.file-upload-wrapper.disabled .file-upload-info{color:#575352}.file-upload-label{font-style:normal;font-weight:400;font-size:1rem;line-height:1.5rem;color:#1D1D1D}.file-upload-label .required{display:inline-block;margin-left:4px}.file-upload-label .required.error{color:#CD002F}.upload-dropzone{border:1px dashed #BFBBBB;padding:40px;text-align:center;cursor:pointer;color:#1D1D1D;transition:border-color 0.3s ease;border-radius:1px;background:#FFFFFF}.upload-dropzone ifx-icon{color:#0A8276}.upload-dropzone:hover{border:1px dashed #8D8786}.upload-dropzone.drag-over{border:1px solid #0A8276;background:#F7F7F7}.upload-dropzone.drag-over.error{border:1px solid #0A8276}.upload-dropzone.error{border-color:#CD002F}.disabled .upload-dropzone{pointer-events:none;border-color:#BFBBBB;color:#BFBBBB}.disabled .upload-dropzone ifx-icon{color:#BFBBBB}.upload-dropzone input{display:none}.file-upload-info{font-style:normal;font-weight:400;font-size:0.75rem;line-height:1rem;letter-spacing:0em;color:#1D1D1D;margin:0;margin-top:4px}.file-upload-status{font-style:normal;font-weight:400;font-size:0.75rem;line-height:1rem;letter-spacing:0.2px;margin-top:8px}.file-upload-status.file-upload-status__error{display:flex;align-items:center;color:#CD002F}.file-upload-status.file-upload-status__error ifx-icon{position:relative;top:-1px;color:#CD002F;margin-right:8px}.upload-heading{font:600 1.125rem/1.625rem "Source Sans 3";margin-bottom:8px}.file-list-wrapper{margin-top:16px}.file-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:16px}.file-item{border:1px solid #BFBBBB;padding-top:12px;padding-right:16px;padding-bottom:8px;padding-left:16px;display:flex;gap:8px}.file-info{width:100%;min-width:0}.file-top-row{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:-8px}.file-top-row ifx-icon{flex-shrink:0}.file-name-wrapper{display:flex;min-width:0;max-width:100%;white-space:nowrap;overflow:hidden;font-weight:400;font-size:0.875rem}.file-name-base{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex-shrink:1;min-width:0}.file-name-ext{flex-shrink:0;margin-left:0}.file-middle-row{display:flex;align-items:center;font-size:0.75rem;line-height:1rem;flex-wrap:wrap;color:#575352}.file-middle-row .file-status{margin-left:12px}.file-middle-row .file-status ifx-icon{margin-right:8px}.file-progress-row{margin-top:4px}.file-progress-row ifx-progress-bar{width:100%}.upload-success{border-color:#0A8276}.upload-success .file-status ifx-icon{position:relative;top:1px;color:#4CA460}.upload-failed{border-color:#CD002F}.upload-failed .file-status{color:#CD002F;margin-left:0}';const r=o;const n=class{constructor(s){i(this,s);this.ifxFileUploadAdd=e(this,"ifxFileUploadAdd",7);this.ifxFileUploadRemove=e(this,"ifxFileUploadRemove",7);this.ifxFileUploadChange=e(this,"ifxFileUploadChange",7);this.ifxFileUploadError=e(this,"ifxFileUploadError",7);this.ifxFileUploadInvalid=e(this,"ifxFileUploadInvalid",7);this.ifxFileUploadStart=e(this,"ifxFileUploadStart",7);this.ifxFileUploadComplete=e(this,"ifxFileUploadComplete",7);this.ifxFileUploadAllComplete=e(this,"ifxFileUploadAllComplete",7);this.ifxFileUploadAbort=e(this,"ifxFileUploadAbort",7);this.ifxFileUploadDrop=e(this,"ifxFileUploadDrop",7);this.ifxFileUploadClick=e(this,"ifxFileUploadClick",7);this.ifxFileUploadMaxFilesExceeded=e(this,"ifxFileUploadMaxFilesExceeded",7);this.ifxFileUploadValidation=e(this,"ifxFileUploadValidation",7);this.ifxFileUploadRetry=e(this,"ifxFileUploadRetry",7);this.dragAndDrop=false;this.required=false;this.disabled=false;this.maxFileSizeMB=7;this.allowedFileTypes=["jpg","jpeg","png","pdf","mov","mp3","mp4"];this.additionalAllowedFileTypes=[];this.label="Label";this.labelRequiredError="At least one file must be uploaded";this.labelBrowseFiles="Browse files";this.labelDragAndDrop="Drag & Drop or browse files to upload";this.labelUploadedFilesHeading="Uploaded files";this.labelFileTooLarge="Upload failed. Max file size: {{size}}MB.";this.labelUnsupportedFileType="Unsupported file type.";this.labelUploaded="Successfully uploaded";this.labelUploadFailed="Upload failed. Please try again.";this.labelSupportedFormatsTemplate="Supported file formats: {{types}}. Max file size: {{size}}MB.";this.labelFileSingular="file";this.labelFilePlural="files";this.labelMaxFilesInfo="Up to {{count}} {{files}}.";this.labelMaxFilesExceeded="Upload limit exceeded. Only {{count}} {{files}} allowed.";this.ariaLabelBrowseFiles="Browse files";this.ariaLabelDropzone="Upload area. Click to browse or drag and drop files.";this.ariaLabelFileInput="Upload file";this.ariaLabelRemoveFile="Remove file";this.ariaLabelCancelUpload="Cancel upload";this.ariaLabelRetryUpload="Retry upload";this.ariaLabelUploadingStatus="Upload in progress";this.ariaLabelUploadedStatus="Upload completed";this.ariaLabelUploadFailedStatus="Upload failed";this.internalId=`ifx-file-upload-${Math.random().toString(36).substr(2,9)}`;this.isDragOver=false;this.files=[];this.uploadTasks=[];this.rejectedSizeFiles=[];this.rejectedTypeFiles=[];this.requiredError=false;this.statusMessage=null;this.fileInputEl=null;this.extensionToMimeMap={jpg:"image/jpeg",jpeg:"image/jpeg",png:"image/png",gif:"image/gif",svg:"image/svg+xml",webp:"image/webp",pdf:"application/pdf",doc:"application/msword",docx:"application/vnd.openxmlformats-officedocument.wordprocessingml.document",xls:"application/vnd.ms-excel",xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",ppt:"application/vnd.ms-powerpoint",pptx:"application/vnd.openxmlformats-officedocument.presentationml.presentation",txt:"text/plain",csv:"text/csv",json:"application/json",mp3:"audio/mpeg",wav:"audio/wav",mp4:"video/mp4",mov:"video/quicktime",webm:"video/webm",zip:"application/zip",rar:"application/vnd.rar",tar:"application/x-tar",gz:"application/gzip",xml:"application/xml",html:"text/html",css:"text/css",js:"application/javascript"}}get maxFiles(){return this._maxFiles}set maxFiles(i){if(typeof i==="number"&&i<1){console.warn("Invalid `maxFiles` value. Must be >= 1. Value ignored.");this._maxFiles=undefined}else{this._maxFiles=i}}validateRequired(){var i,e;if(this.required&&this.files.length===0){this.requiredError=true;if(((i=this.statusMessage)===null||i===void 0?void 0:i.text)!==this.labelRequiredError){this.statusMessage={type:"error",text:this.labelRequiredError}}this.ifxFileUploadValidation.emit({valid:false})}else{this.requiredError=false;if(((e=this.statusMessage)===null||e===void 0?void 0:e.text)===this.labelRequiredError){this.statusMessage=null}this.ifxFileUploadValidation.emit({valid:true})}}pluralize(i){return i===1?this.labelFileSingular:this.labelFilePlural}getNormalizedFileTypes(){if(Array.isArray(this.allowedFileTypes)){return this.allowedFileTypes}try{return JSON.parse(this.allowedFileTypes)}catch(i){return this.allowedFileTypes.split(",").map((i=>i.trim()))}}getLabelFromMimeType(i){for(const[e,s]of Object.entries(this.extensionToMimeMap)){if(s===i){return e.toUpperCase()}}return i}handleFileChange(i){const e=i.target;if(!e.files)return;this.processFiles(e.files)}handleDrop(i){var e;if(this.disabled)return;i.preventDefault();i.stopPropagation();this.isDragOver=false;if((e=i.dataTransfer)===null||e===void 0?void 0:e.files){const e=Array.from(i.dataTransfer.files);const s=[...this.getNormalizedFileTypes().map((i=>this.extensionToMimeMap[i.toLowerCase()])).filter(Boolean),...this.getAdditionalMimeTypes()];const t=[];const l=[];e.forEach((i=>{const e=s.includes(i.type);const a=i.size<=this.maxFileSizeMB*1024*1024;if(e&&a)t.push(i);else l.push(i)}));this.ifxFileUploadDrop.emit({droppedFiles:e,acceptedFiles:t,rejectedFiles:l});this.processFiles(i.dataTransfer.files)}}handleDragOver(i){if(this.disabled)return;i.preventDefault();this.isDragOver=true}handleDragLeave(i){if(this.disabled)return;i.preventDefault();this.isDragOver=false}processFiles(i){const e=Array.from(i);const s=[...this.getNormalizedFileTypes().map((i=>this.extensionToMimeMap[i.toLowerCase()])).filter(Boolean),...this.getAdditionalMimeTypes()];const t=[];const l=[];const a=[];e.forEach((i=>{const e=s.includes(i.type);const o=i.size<=this.maxFileSizeMB*1024*1024;const r=this.files.some((e=>e.name===i.name&&e.size===i.size));if(r){this.ifxFileUploadInvalid.emit({file:i,reason:"duplicate"});this.ifxFileUploadError.emit({file:i,errorType:"duplicate",message:`File "${i.name}" is already added`,reason:"duplicate"});return}if(e&&o){t.push(i)}else{if(!e){a.push(i.name);this.ifxFileUploadInvalid.emit({file:i,reason:"invalid-type"})}if(!o){l.push(i.name);this.ifxFileUploadInvalid.emit({file:i,reason:"invalid-size"})}this.ifxFileUploadError.emit({file:i,errorType:!e?"invalid-type":"file-too-large",message:"Invalid file rejected",reason:!e?"unsupported-type":"file-too-large"})}}));this.rejectedSizeFiles=[...this.rejectedSizeFiles,...l];this.rejectedTypeFiles=[...this.rejectedTypeFiles,...a];if(this.maxFiles&&this.files.length+t.length>this.maxFiles){const i=this.maxFiles-this.files.length;const e=t.slice(0,Math.max(i,0));const s=t.slice(i);this.files=[...this.files,...e];e.forEach((i=>this.startUpload(i)));if(e.length>0){this.ifxFileUploadAdd.emit({addedFiles:e,files:this.files});this.ifxFileUploadChange.emit({files:this.files})}s.forEach((i=>{this.ifxFileUploadInvalid.emit({file:i,reason:"too-many-files"});this.ifxFileUploadError.emit({file:i,errorType:"too-many-files",message:`Upload limit exceeded. Max ${this.maxFiles} files allowed.`,reason:"too-many-files"})}));if(s.length>0){this.statusMessage={type:"error",text:this.labelMaxFilesExceeded.replace("{{count}}",this.maxFiles.toString()).replace("{{files}}",this.pluralize(this.maxFiles))};this.ifxFileUploadMaxFilesExceeded.emit({maxFiles:this.maxFiles,attempted:this.files.length+t.length})}return}t.forEach((i=>this.startUpload(i)));this.files=[...this.files,...t];if(t.length>0){this.ifxFileUploadAdd.emit({addedFiles:t,files:this.files});this.ifxFileUploadChange.emit({files:this.files})}this.validateRequired()}retryUpload(i){const e=this.uploadTasks.findIndex((e=>e.file.name===i.name));if(e!==-1){this.uploadTasks.splice(e,1);this.uploadTasks=[...this.uploadTasks]}this.ifxFileUploadRetry.emit({file:i});this.startUpload(i)}startUpload(i){this.ifxFileUploadStart.emit({file:i});const e={file:i,progress:3,intervalId:null,completed:false};this.uploadTasks=[...this.uploadTasks,e];if(this.uploadHandler){this.uploadHandler(i,(i=>{if(i>e.progress){e.progress=Math.min(100,i);this.uploadTasks=[...this.uploadTasks]}})).then((()=>{e.progress=100;e.completed=true;this.uploadTasks=[...this.uploadTasks];this.ifxFileUploadComplete.emit({file:i});this.ifxFileUploadChange.emit({files:this.files});if(this.uploadTasks.every((i=>i.completed))){this.ifxFileUploadAllComplete.emit({files:this.files})}})).catch((()=>{e.error=true;this.uploadTasks=[...this.uploadTasks];this.ifxFileUploadError.emit({file:i,errorType:"upload-failed",message:"Upload handler rejected file",reason:"custom"})}))}else{const s=i.size;const t=1e5;let l=0;e.intervalId=window.setInterval((()=>{l+=t/5;const a=Math.min(100,Math.round(l/s*100));e.progress=a;this.uploadTasks=[...this.uploadTasks];if(a>=100){clearInterval(e.intervalId);e.completed=true;e.intervalId=null;this.uploadTasks=[...this.uploadTasks];this.ifxFileUploadComplete.emit({file:i});this.ifxFileUploadChange.emit({files:this.files});if(this.uploadTasks.every((i=>i.completed))){this.ifxFileUploadAllComplete.emit({files:this.files})}}}),200)}this.uploadTasks=[...this.uploadTasks,e]}cancelUpload(i){const e=this.uploadTasks.findIndex((e=>e.file.name===i.name));if(e!==-1){const i=this.uploadTasks[e];if((i===null||i===void 0?void 0:i.intervalId)!==null){clearInterval(i.intervalId)}this.uploadTasks=this.uploadTasks.filter(((i,s)=>s!==e))}this.files=this.files.filter((e=>e.name!==i.name));this.ifxFileUploadAbort.emit({file:i});this.ifxFileUploadChange.emit({files:this.files});if(this.fileInputEl){this.fileInputEl.value=""}this.validateRequired()}removeFile(i){var e;this.uploadTasks=this.uploadTasks.filter((e=>e.file.name!==i.name));this.files=this.files.filter((e=>e.name!==i.name));this.ifxFileUploadRemove.emit({removedFile:i,files:this.files});this.ifxFileUploadChange.emit({files:this.files});this.validateRequired();if(this.fileInputEl){this.fileInputEl.value=""}if(this.maxFiles&&this.files.length<this.maxFiles&&((e=this.statusMessage)===null||e===void 0?void 0:e.text)!==this.labelRequiredError){this.statusMessage=null}}clearRejectedFile(i,e){if(e==="size"){this.rejectedSizeFiles=this.rejectedSizeFiles.filter((e=>e!==i))}else{this.rejectedTypeFiles=this.rejectedTypeFiles.filter((e=>e!==i))}if(this.fileInputEl){this.fileInputEl.value=""}if(this.maxFiles&&this.files.length<this.maxFiles){this.statusMessage=null}this.validateRequired()}splitFileNameParts(i){const e=i.name;const s=e.lastIndexOf(".");if(s===-1)return{base:e,ext:""};return{base:e.substring(0,s),ext:e.substring(s)}}getFileIcon(i){var e;const s=(e=i.name.split(".").pop())===null||e===void 0?void 0:e.toLowerCase();switch(s){case"pdf":return"file-pdf-16";case"jpg":case"jpeg":return"file-jpg-16";case"png":return"file-png-16";case"mov":return"file-mov-16";case"mp3":return"file-mp3-16";case"mp4":return"file-mp4-16";default:return"file-16"}}formatSize(i){if(i>=1024*1024*1024){return`${(i/(1024*1024*1024)).toFixed(1)} GB`}else if(i>=1024*1024){return`${(i/(1024*1024)).toFixed(1)} MB`}else if(i>=1024){return`${(i/1024).toFixed(0)} KB`}else{return`${i} B`}}getAcceptAttribute(){const i=this.getNormalizedFileTypes().map((i=>"."+i.toLowerCase()));const e=this.getAdditionalMimeTypes();return[...i,...e].join(",")}getFormattedProgressText(i){const e=Math.round(i.progress/100*i.file.size);const s=this.formatSize(e);const t=this.formatSize(i.file.size);return`${s} / ${t} uploaded`}getAdditionalMimeTypes(){if(!this.additionalAllowedFileTypes)return[];if(Array.isArray(this.additionalAllowedFileTypes))return this.additionalAllowedFileTypes;return this.additionalAllowedFileTypes.split(",").map((i=>i.trim()))}getSupportedFileText(){const i=this.getNormalizedFileTypes().map((i=>i.toUpperCase()));const e=this.getAdditionalMimeTypes().map((i=>this.getLabelFromMimeType(i)));const s=[...i,...e];const t=s.join(", ");let l=this.labelSupportedFormatsTemplate.replace("{{types}}",t).replace("{{size}}",this.maxFileSizeMB.toString());if(this.labelMaxFilesInfo&&this.maxFiles){const i=this.pluralize(this.maxFiles);const e=this.labelMaxFilesInfo.replace("{{count}}",this.maxFiles.toString()).replace("{{files}}",i);l+=` ${e}`}return l}getFormattedFileTooLargeText(){return this.labelFileTooLarge.replace("{{size}}",this.maxFileSizeMB.toString())}renderStatusMessage(){if(!this.statusMessage)return null;return s("div",{class:`file-upload-status file-upload-status__${this.statusMessage.type}`},this.statusMessage.type==="error"&&s("ifx-icon",{icon:"c-warning-16"}),this.statusMessage.text)}isInputDisabled(){return this.disabled||this.maxFiles!==undefined&&this.files.length>=this.maxFiles}componentWillLoad(){if(!a(this.hostElement)){l("ifx-file-upload")}}componentDidLoad(){if(this.hostElement.hasAttribute("show-demo-states")){this.showDemoStates=true}if(this.showDemoStates){this.injectDemoState()}}async injectDemoState(){const i=new Array(5e4).fill("a").join("");const e=i+i;const s=new File([i],"Image.jpg",{type:"image/jpeg"});const t=new File([e],"File.pdf",{type:"application/pdf"});const l=new File([i],"Text.docx",{type:"application/vnd.openxmlformats-officedocument.wordprocessingml.document"});const a=new File([e+e+e],"Video.mp4",{type:"video/mp4"});const o=new File(["demo"],"Script.exe",{type:"application/x-msdownload"});this.files=[t,s,l];this.uploadTasks=[{file:t,progress:100,intervalId:null,completed:true},{file:s,progress:40,intervalId:null,completed:false},{file:l,progress:80,intervalId:null,completed:false,error:true}];this.rejectedSizeFiles=[a.name];this.rejectedTypeFiles=[o.name]}async triggerDemoValidation(){this.validateRequired()}render(){return s("div",{key:"8c79c2a907261edc96e95d4981e2415aee908e9a",class:{"file-upload-wrapper":true,disabled:this.disabled}},this.label&&s("label",{key:"14324d0799e0293420912c52e040ebb05f69a23a",class:"file-upload-label",htmlFor:this.internalId},this.label,this.required&&s("span",{key:"edd5608d0a9efa3f6a7954a603925821d3eb0c38",class:`required ${this.requiredError?"error":""}`},"*")),this.dragAndDrop?this.renderDragAndDropArea():this.renderUploadArea(),(this.files.length>0||this.rejectedSizeFiles.length>0||this.rejectedTypeFiles.length>0)&&s("div",{key:"6b9b95cee5dbadcc78026d8ab5c65190382a53f5",class:"file-list-wrapper"},s("div",{key:"1ecf61f95c5530cd8f31499b735023122c17ffbb",class:"upload-heading"},this.labelUploadedFilesHeading),s("ul",{key:"7b9b75bea087847d26f8adff7dbf8e4ec5e6c6c8",class:"file-list"},this.rejectedSizeFiles.map((i=>s("li",{class:"file-item upload-failed",key:`rejected-size-${i}`},s("div",{class:"file-icon"},s("ifx-icon",{icon:"file-16"})),s("div",{class:"file-info"},s("div",{class:"file-top-row"},s("span",{class:"file-name-wrapper"},s("span",{class:"file-name-base"},this.splitFileNameParts({name:i}).base),s("span",{class:"file-name-ext"},this.splitFileNameParts({name:i}).ext)),s("div",{class:"file-actions"},s("ifx-icon-button",{shape:"square",variant:"tertiary",icon:"delete-forever-16",size:"s","aria-label":this.ariaLabelRemoveFile,onClick:()=>this.clearRejectedFile(i,"size")}))),s("div",{class:"file-middle-row"},s("span",{class:"file-status","aria-label":this.labelFileTooLarge.replace("{{size}}",this.maxFileSizeMB.toString())},this.getFormattedFileTooLargeText())))))),this.rejectedTypeFiles.map((i=>s("li",{class:"file-item upload-failed",key:`rejected-type-${i}`},s("div",{class:"file-icon"},s("ifx-icon",{icon:"file-16"})),s("div",{class:"file-info"},s("div",{class:"file-top-row"},s("span",{class:"file-name-wrapper"},s("span",{class:"file-name-base"},this.splitFileNameParts({name:i}).base),s("span",{class:"file-name-ext"},this.splitFileNameParts({name:i}).ext)),s("div",{class:"file-actions"},s("ifx-icon-button",{shape:"square",variant:"tertiary",icon:"delete-forever-16",size:"s","aria-label":this.ariaLabelRemoveFile,onClick:()=>this.clearRejectedFile(i,"type")}))),s("div",{class:"file-middle-row"},s("span",{class:"file-status","aria-label":this.labelUnsupportedFileType},this.labelUnsupportedFileType)))))),this.files.map((i=>{var e;const t=this.uploadTasks.find((e=>e.file.name===i.name));const l=(e=t===null||t===void 0?void 0:t.progress)!==null&&e!==void 0?e:100;const a=t&&!t.completed;const o=(t===null||t===void 0?void 0:t.error)===true;const r=o?"file-item upload-failed":a?"file-item uploading":"file-item upload-success";const n=`${i.name}-${i.size}`;const{base:h,ext:d}=this.splitFileNameParts(i);return s("li",{class:r,key:n},s("div",{class:"file-icon"},s("ifx-icon",{icon:this.getFileIcon(i)})),s("div",{class:"file-info"},s("div",{class:"file-top-row"},s("span",{class:"file-name-wrapper"},s("span",{class:"file-name-base"},h),s("span",{class:"file-name-ext"},d)),s("div",{class:"file-actions"},s("ifx-icon-button",{shape:"square",variant:"tertiary",icon:"refresh-16",size:"s","aria-label":this.ariaLabelRetryUpload,onClick:()=>this.retryUpload(i),style:{display:o?"inline-flex":"none"}}),s("ifx-icon-button",{shape:"square",variant:"tertiary",icon:"cross-16",size:"s","aria-label":this.ariaLabelCancelUpload,onClick:()=>this.cancelUpload(i),style:{display:a?"inline-flex":"none"}}),s("ifx-icon-button",{shape:"square",variant:"tertiary",icon:"delete-forever-16",size:"s","aria-label":this.ariaLabelRemoveFile,onClick:()=>this.removeFile(i),style:{display:!a?"inline-flex":"none"}}))),s("div",{class:"file-middle-row"},a&&t&&!t.error&&s("span",{class:"file-uploading","aria-label":this.ariaLabelUploadingStatus},this.getFormattedProgressText(t)),!a&&!o&&s("span",null,s("span",{class:"file-size"},this.formatSize(i.size)),s("span",{class:"file-status","aria-label":this.ariaLabelUploadedStatus},s("ifx-icon",{icon:"check-16"}),this.labelUploaded)),o&&s("span",{class:"file-status","aria-label":this.ariaLabelUploadFailedStatus},this.labelUploadFailed)),a&&t&&!t.error&&s("div",{class:"file-progress-row"},s("ifx-progress-bar",{size:"s",value:l,"show-label":"true"}))))})))))}renderUploadArea(){const i=i=>{this.fileInputEl=i};return s("div",{class:{"upload-button":true}},s("ifx-button",{variant:"secondary",onClick:()=>{var i;return(i=this.fileInputEl)===null||i===void 0?void 0:i.click()},disabled:this.isInputDisabled(),"aria-label":this.ariaLabelBrowseFiles},s("ifx-icon",{icon:"upload-16"}),this.labelBrowseFiles),s("input",{id:this.internalId,ref:i,type:"file",accept:this.getAcceptAttribute(),multiple:true,onChange:i=>this.handleFileChange(i),style:{display:"none"},disabled:this.isInputDisabled(),"aria-label":this.ariaLabelFileInput}),s("p",{class:"file-upload-info"},this.getSupportedFileText()),this.renderStatusMessage())}renderDragAndDropArea(){const i=i=>{this.fileInputEl=i};const e=()=>{if(this.fileInputEl){this.fileInputEl.click()}};return s("div",{class:{disabled:this.isInputDisabled()}},s("div",{class:{"upload-dropzone":true,"drag-over":this.isDragOver,error:this.requiredError},onClick:e,onDragOver:i=>this.handleDragOver(i),onDragLeave:i=>this.handleDragLeave(i),onDrop:i=>this.handleDrop(i),role:"button",tabIndex:0,"aria-label":this.ariaLabelDropzone},s("ifx-icon",{icon:"upload-16",class:"custom-icon"}),s("p",null,this.labelDragAndDrop),s("p",{class:"file-upload-info"},this.getSupportedFileText()),s("div",{style:{height:"0px",overflow:"hidden"}},s("input",{id:this.internalId,ref:i,type:"file",accept:this.getAcceptAttribute(),multiple:true,onChange:i=>this.handleFileChange(i),disabled:this.isInputDisabled(),"aria-label":this.ariaLabelFileInput}))),this.renderStatusMessage())}get hostElement(){return t(this)}};n.style=r;export{n as ifx_file_upload};
|
2
|
-
//# sourceMappingURL=p-c88876dc.entry.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"names":["fileUploadCss","IfxFileUploadStyle0","FileUpload","constructor","hostRef","this","dragAndDrop","required","disabled","maxFileSizeMB","allowedFileTypes","additionalAllowedFileTypes","label","labelRequiredError","labelBrowseFiles","labelDragAndDrop","labelUploadedFilesHeading","labelFileTooLarge","labelUnsupportedFileType","labelUploaded","labelUploadFailed","labelSupportedFormatsTemplate","labelFileSingular","labelFilePlural","labelMaxFilesInfo","labelMaxFilesExceeded","ariaLabelBrowseFiles","ariaLabelDropzone","ariaLabelFileInput","ariaLabelRemoveFile","ariaLabelCancelUpload","ariaLabelRetryUpload","ariaLabelUploadingStatus","ariaLabelUploadedStatus","ariaLabelUploadFailedStatus","internalId","Math","random","toString","substr","isDragOver","files","uploadTasks","rejectedSizeFiles","rejectedTypeFiles","requiredError","statusMessage","fileInputEl","extensionToMimeMap","jpg","jpeg","png","gif","svg","webp","pdf","doc","docx","xls","xlsx","ppt","pptx","txt","csv","json","mp3","wav","mp4","mov","webm","zip","rar","tar","gz","xml","html","css","js","maxFiles","_maxFiles","value","console","warn","undefined","validateRequired","length","_a","text","type","ifxFileUploadValidation","emit","valid","_b","pluralize","count","getNormalizedFileTypes","Array","isArray","JSON","parse","split","map","t","trim","getLabelFromMimeType","mime","ext","knownMime","Object","entries","toUpperCase","handleFileChange","event","input","target","processFiles","handleDrop","preventDefault","stopPropagation","dataTransfer","droppedFiles","from","allowedMimes","toLowerCase","filter","Boolean","getAdditionalMimeTypes","acceptedFiles","rejectedFiles","forEach","file","isValidType","includes","isValidSize","size","push","ifxFileUploadDrop","handleDragOver","handleDragLeave","fileList","selectedFiles","validFiles","rejectedSize","rejectedType","isDuplicate","some","existing","name","ifxFileUploadInvalid","reason","ifxFileUploadError","errorType","message","availableSlots","limitedFiles","slice","max","overflowFiles","startUpload","ifxFileUploadAdd","addedFiles","ifxFileUploadChange","replace","ifxFileUploadMaxFilesExceeded","attempted","retryUpload","taskIndex","findIndex","splice","ifxFileUploadRetry","ifxFileUploadStart","task","progress","intervalId","completed","uploadHandler","percent","min","then","ifxFileUploadComplete","every","ifxFileUploadAllComplete","catch","error","totalSize","fakeUploadSpeed","uploaded","window","setInterval","round","clearInterval","cancelUpload","_","i","f","ifxFileUploadAbort","removeFile","ifxFileUploadRemove","removedFile","clearRejectedFile","fileName","splitFileNameParts","dotIndex","lastIndexOf","base","substring","getFileIcon","extension","pop","formatSize","bytes","toFixed","getAcceptAttribute","extensionTypes","mimeTypes","join","getFormattedProgressText","uploadedSize","uploadedText","totalText","getSupportedFileText","extensions","allTypes","typesLabel","fileWord","maxFilesText","getFormattedFileTooLargeText","renderStatusMessage","h","class","icon","isInputDisabled","componentWillLoad","isNestedInIfxComponent","hostElement","trackComponent","componentDidLoad","hasAttribute","showDemoStates","injectDemoState","dummyContent","fill","bigContent","uploading","File","failed","tooLarge","unsupported","triggerDemoValidation","render","key","htmlFor","renderDragAndDropArea","renderUploadArea","shape","variant","onClick","find","isUploading","isError","itemClass","uniqueKey","style","display","handleInputRef","el","click","id","ref","accept","multiple","onChange","e","triggerInputClick","onDragOver","onDragLeave","onDrop","role","tabIndex","height","overflow"],"sources":["src/components/file-upload/file-upload.scss?tag=ifx-file-upload&encapsulation=shadow","src/components/file-upload/file-upload.tsx"],"sourcesContent":["@use \"~@infineon/design-system-tokens/dist/tokens\";\n@use \"../../global/font.scss\";\n\n:host {\n // TODO remove\n font-family: var(--ifx-font-family, sans-serif);\n}\n\n.file-upload-wrapper {\n display: flex;\n flex-direction: column;\n\n &.disabled {\n pointer-events: none;\n\n label,\n .file-upload-info {\n color: tokens.$ifxColorEngineering500;\n }\n }\n}\n\n.file-upload-label {\n font-style: normal;\n font-weight: 400;\n font-size: tokens.$ifxFontSizeM;\n line-height: tokens.$ifxLineHeightM;\n color: tokens.$ifxColorBaseBlack;\n\n .required {\n display: inline-block;\n margin-left: 4px;\n\n &.error {\n color: tokens.$ifxColorRed500;\n }\n }\n}\n\n.upload-dropzone {\n border: 1px dashed tokens.$ifxColorEngineering300;\n padding: tokens.$ifxSpace500;\n text-align: center;\n cursor: pointer;\n color: tokens.$ifxColorBaseBlack;\n transition: border-color 0.3s ease;\n border-radius: tokens.$ifxBorderRadius12;\n background: tokens.$ifxColorBaseWhite;\n\n ifx-icon {\n color: tokens.$ifxColorOcean500;\n }\n\n &:hover {\n border: 1px dashed tokens.$ifxColorEngineering400;\n }\n\n &.drag-over {\n border: 1px solid tokens.$ifxColorOcean500;\n background: tokens.$ifxColorEngineering100;\n\n &.error {\n border: 1px solid tokens.$ifxColorOcean500;\n }\n }\n\n &.error {\n border-color: tokens.$ifxColorRed500;\n }\n\n .disabled & {\n pointer-events: none;\n border-color: tokens.$ifxColorEngineering300;\n color: tokens.$ifxColorEngineering300;\n\n ifx-icon {\n color: tokens.$ifxColorEngineering300;\n }\n }\n}\n\n.upload-dropzone input {\n display: none;\n}\n\n.file-upload-info {\n font-style: normal;\n font-weight: tokens.$ifxFontWeightRegular;\n font-size: tokens.$ifxFontSizeXs;\n line-height: tokens.$ifxLineHeightXs;\n letter-spacing: tokens.$ifxLetterSpacingDefault;\n color: tokens.$ifxColorBaseBlack;\n margin: 0;\n margin-top: tokens.$ifxSpace50;\n}\n\n.file-upload-status {\n font-style: normal;\n font-weight: 400;\n font-size: tokens.$ifxFontSizeXs;\n line-height: tokens.$ifxLineHeightXs;\n letter-spacing: 0.2px;\n margin-top: tokens.$ifxSpace100;\n\n &.file-upload-status__error {\n display: flex;\n align-items: center;\n color: tokens.$ifxColorRed500;\n\n ifx-icon {\n position: relative;\n top: - tokens.$ifxSpace12;\n color: tokens.$ifxColorRed500;\n margin-right: tokens.$ifxSpace100;\n }\n }\n}\n\n.upload-heading {\n font: tokens.$ifxHeadingHeading06;\n margin-bottom: tokens.$ifxSpace100;\n}\n\n.file-list-wrapper {\n margin-top: tokens.$ifxSpace200;\n}\n\n.file-list {\n list-style: none;\n padding: 0;\n margin: 0;\n display: flex;\n flex-direction: column;\n gap: tokens.$ifxSpace200;\n}\n\n.file-item {\n border: 1px solid tokens.$ifxColorEngineering300;\n padding-top: tokens.$ifxSpace150;\n padding-right: tokens.$ifxSpace200;\n padding-bottom: tokens.$ifxSpace100;\n padding-left: tokens.$ifxSpace200;\n display: flex;\n gap: tokens.$ifxSpace100;\n}\n\n.file-info {\n width: 100%;\n min-width: 0;\n}\n\n.file-top-row {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: tokens.$ifxSpace200;\n margin-top: - tokens.$ifxSpace100;\n}\n\n.file-top-row ifx-icon {\n flex-shrink: 0;\n}\n\n.file-name-wrapper {\n display: flex;\n min-width: 0;\n max-width: 100%;\n white-space: nowrap;\n overflow: hidden;\n font-weight: tokens.$ifxFontWeightRegular;\n font-size: tokens.$ifxFontSizeS;\n}\n\n.file-name-base {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n flex-shrink: 1;\n min-width: 0;\n}\n\n.file-name-ext {\n flex-shrink: 0;\n margin-left: 0;\n}\n\n.file-middle-row {\n display: flex;\n align-items: center;\n font-size: tokens.$ifxFontSizeXs;\n line-height: tokens.$ifxLineHeightXs;\n flex-wrap: wrap;\n color: tokens.$ifxColorEngineering500;\n\n .file-status {\n margin-left: tokens.$ifxSpace150;\n\n ifx-icon {\n margin-right: tokens.$ifxSpace100;\n }\n }\n}\n\n.file-progress-row {\n margin-top: tokens.$ifxSpace50;\n}\n\n.file-progress-row ifx-progress-bar {\n width: 100%;\n}\n\n.upload-success {\n border-color: tokens.$ifxColorOcean500;\n\n .file-status {\n ifx-icon {\n position: relative;\n top: tokens.$ifxSpace12;\n color: tokens.$ifxColorGreen500;\n }\n }\n}\n\n.upload-failed {\n border-color: tokens.$ifxColorRed500;\n\n .file-status {\n color: tokens.$ifxColorRed500;\n margin-left: 0;\n }\n}\n","import { Component, h, State, Event, EventEmitter, Prop, Method, Element } from '@stencil/core';\nimport { trackComponent } from '../../global/utils/tracking';\nimport { isNestedInIfxComponent } from '../../global/utils/dom-utils';\n\ninterface UploadTask {\n file: File;\n progress: number;\n intervalId: number | null;\n completed: boolean;\n error?: boolean;\n}\n\nexport type FileUploadErrorReason =\n | 'network-error'\n | 'timeout'\n | 'file-too-large'\n | 'unsupported-type'\n | 'invalid-type'\n | 'custom'\n | (string & {});\n\n@Component({\n tag: 'ifx-file-upload',\n styleUrl: 'file-upload.scss',\n shadow: true\n})\nexport class FileUpload {\n @Element() hostElement: HTMLElement;\n\n @Prop() dragAndDrop: boolean = false;\n @Prop() required: boolean = false;\n @Prop() disabled: boolean = false;\n @Prop() maxFileSizeMB: number = 7;\n /** Default set of allowed file extensions (used internally). Can be extended using `additionalAllowedFileTypes`. */\n @Prop() allowedFileTypes: string | string[] = ['jpg', 'jpeg', 'png', 'pdf', 'mov', 'mp3', 'mp4'];\n @Prop() additionalAllowedFileTypes?: string | string[] = [];\n @Prop() uploadHandler?: (file: File, onProgress?: (progress: number) => void) => Promise<void>;\n\n private _maxFiles?: number;\n @Prop()\n get maxFiles(): number | undefined {\n return this._maxFiles;\n }\n set maxFiles(value: number | undefined) {\n if (typeof value === 'number' && value < 1) {\n console.warn('Invalid `maxFiles` value. Must be >= 1. Value ignored.');\n this._maxFiles = undefined;\n } else {\n this._maxFiles = value;\n }\n }\n\n @Prop() label: string = 'Label';\n @Prop() labelRequiredError: string = 'At least one file must be uploaded';\n @Prop() labelBrowseFiles: string = 'Browse files';\n @Prop() labelDragAndDrop: string = 'Drag & Drop or browse files to upload';\n @Prop() labelUploadedFilesHeading: string = 'Uploaded files';\n @Prop() labelFileTooLarge: string = 'Upload failed. Max file size: {{size}}MB.';\n @Prop() labelUnsupportedFileType: string = 'Unsupported file type.';\n @Prop() labelUploaded: string = 'Successfully uploaded';\n @Prop() labelUploadFailed: string = 'Upload failed. Please try again.';\n @Prop() labelSupportedFormatsTemplate: string = 'Supported file formats: {{types}}. Max file size: {{size}}MB.';\n @Prop() labelFileSingular: string = 'file';\n @Prop() labelFilePlural: string = 'files';\n @Prop() labelMaxFilesInfo?: string = 'Up to {{count}} {{files}}.';\n @Prop() labelMaxFilesExceeded: string = 'Upload limit exceeded. Only {{count}} {{files}} allowed.';\n\n @Prop() ariaLabelBrowseFiles: string = 'Browse files';\n @Prop() ariaLabelDropzone: string = 'Upload area. Click to browse or drag and drop files.';\n @Prop() ariaLabelFileInput: string = 'Upload file';\n @Prop() ariaLabelRemoveFile: string = 'Remove file';\n @Prop() ariaLabelCancelUpload: string = 'Cancel upload';\n @Prop() ariaLabelRetryUpload: string = 'Retry upload';\n @Prop() ariaLabelUploadingStatus: string = 'Upload in progress';\n @Prop() ariaLabelUploadedStatus: string = 'Upload completed';\n @Prop() ariaLabelUploadFailedStatus: string = 'Upload failed';\n\n private showDemoStates?: boolean;\n private internalId = `ifx-file-upload-${Math.random().toString(36).substr(2, 9)}`;\n\n @State() isDragOver: boolean = false;\n @State() files: File[] = [];\n @State() uploadTasks: UploadTask[] = [];\n @State() rejectedSizeFiles: string[] = [];\n @State() rejectedTypeFiles: string[] = [];\n @State() requiredError: boolean = false;\n @State() statusMessage: { type: 'error' | 'info' | 'success'; text: string } | null = null;\n\n\n @Event() ifxFileUploadAdd: EventEmitter<{ addedFiles: File[]; files: File[] }>;\n @Event() ifxFileUploadRemove: EventEmitter<{ removedFile: File; files: File[] }>;\n @Event() ifxFileUploadChange: EventEmitter<{ files: File[] }>;\n @Event() ifxFileUploadError: EventEmitter<{ errorType: string; file: File; message: string; reason?: string; }>;\n @Event() ifxFileUploadInvalid: EventEmitter<{ file: File; reason: string }>;\n @Event() ifxFileUploadStart: EventEmitter<{ file: File }>;\n @Event() ifxFileUploadComplete: EventEmitter<{ file: File }>;\n @Event() ifxFileUploadAllComplete: EventEmitter<{ files: File[] }>;\n @Event() ifxFileUploadAbort: EventEmitter<{ file: File }>;\n @Event() ifxFileUploadDrop: EventEmitter<{ droppedFiles: File[]; acceptedFiles: File[]; rejectedFiles: File[] }>;\n @Event() ifxFileUploadClick: EventEmitter<void>;\n @Event() ifxFileUploadMaxFilesExceeded: EventEmitter<{ maxFiles: number; attempted: number }>;\n @Event() ifxFileUploadValidation: EventEmitter<{ valid: boolean }>;\n @Event() ifxFileUploadRetry: EventEmitter<{ file: File }>;\n\n private fileInputEl: HTMLInputElement | null = null;\n\n private extensionToMimeMap: Record<string, string> = {\n /**\n * Maps file extensions to MIME types.\n * This is only used for translating `allowedFileTypes` (extensions) into MIME types,\n * and for labeling in the UI. It does NOT define which files are globally allowed.\n */\n\n // Images\n jpg: 'image/jpeg',\n jpeg: 'image/jpeg',\n png: 'image/png',\n gif: 'image/gif',\n svg: 'image/svg+xml',\n webp: 'image/webp',\n\n // Documents\n pdf: 'application/pdf',\n doc: 'application/msword',\n docx: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\n xls: 'application/vnd.ms-excel',\n xlsx: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n ppt: 'application/vnd.ms-powerpoint',\n pptx: 'application/vnd.openxmlformats-officedocument.presentationml.presentation',\n txt: 'text/plain',\n csv: 'text/csv',\n json: 'application/json',\n\n // Audio/Video\n mp3: 'audio/mpeg',\n wav: 'audio/wav',\n mp4: 'video/mp4',\n mov: 'video/quicktime',\n webm: 'video/webm',\n\n // Archive / Code\n zip: 'application/zip',\n rar: 'application/vnd.rar',\n tar: 'application/x-tar',\n gz: 'application/gzip',\n\n // Sonstiges\n xml: 'application/xml',\n html: 'text/html',\n css: 'text/css',\n js: 'application/javascript'\n };\n\n private validateRequired(): void {\n if (this.required && this.files.length === 0) {\n this.requiredError = true;\n\n if (this.statusMessage?.text !== this.labelRequiredError) {\n this.statusMessage = {\n type: 'error',\n text: this.labelRequiredError\n };\n }\n\n this.ifxFileUploadValidation.emit({ valid: false });\n } else {\n this.requiredError = false;\n\n if (this.statusMessage?.text === this.labelRequiredError) {\n this.statusMessage = null;\n }\n\n this.ifxFileUploadValidation.emit({ valid: true });\n }\n }\n\n private pluralize(count: number): string {\n return count === 1 ? this.labelFileSingular : this.labelFilePlural;\n }\n\n private getNormalizedFileTypes(): string[] {\n if (Array.isArray(this.allowedFileTypes)) {\n return this.allowedFileTypes;\n }\n try {\n return JSON.parse(this.allowedFileTypes);\n } catch {\n return this.allowedFileTypes.split(',').map(t => t.trim());\n }\n }\n\n private getLabelFromMimeType(mime: string): string {\n for (const [ext, knownMime] of Object.entries(this.extensionToMimeMap)) {\n if (knownMime === mime) {\n return ext.toUpperCase();\n }\n }\n return mime; // fallback: show raw MIME\n }\n\n handleFileChange(event: Event) {\n const input = event.target as HTMLInputElement;\n if (!input.files) return;\n this.processFiles(input.files);\n }\n\n handleDrop(event: DragEvent) {\n if (this.disabled) return;\n event.preventDefault();\n event.stopPropagation();\n this.isDragOver = false;\n if (event.dataTransfer?.files) {\n const droppedFiles = Array.from(event.dataTransfer.files);\n const allowedMimes = [\n ...this.getNormalizedFileTypes()\n .map(ext => this.extensionToMimeMap[ext.toLowerCase()])\n .filter(Boolean),\n ...this.getAdditionalMimeTypes()\n ];\n\n const acceptedFiles: File[] = [];\n const rejectedFiles: File[] = [];\n\n droppedFiles.forEach(file => {\n const isValidType = allowedMimes.includes(file.type);\n const isValidSize = file.size <= this.maxFileSizeMB * 1024 * 1024;\n if (isValidType && isValidSize) acceptedFiles.push(file);\n else rejectedFiles.push(file);\n });\n\n this.ifxFileUploadDrop.emit({\n droppedFiles,\n acceptedFiles,\n rejectedFiles\n });\n\n this.processFiles(event.dataTransfer.files);\n }\n }\n\n handleDragOver(event: DragEvent) {\n if (this.disabled) return;\n event.preventDefault();\n this.isDragOver = true;\n }\n\n handleDragLeave(event: DragEvent) {\n if (this.disabled) return;\n event.preventDefault();\n this.isDragOver = false;\n }\n\n processFiles(fileList: FileList) {\n const selectedFiles = Array.from(fileList);\n const allowedMimes = [\n ...this.getNormalizedFileTypes()\n .map(ext => this.extensionToMimeMap[ext.toLowerCase()])\n .filter(Boolean),\n ...this.getAdditionalMimeTypes()\n ];\n\n const validFiles: File[] = [];\n const rejectedSize: string[] = [];\n const rejectedType: string[] = [];\n\n selectedFiles.forEach(file => {\n const isValidType = allowedMimes.includes(file.type);\n const isValidSize = file.size <= this.maxFileSizeMB * 1024 * 1024;\n const isDuplicate = this.files.some(existing =>\n existing.name === file.name && existing.size === file.size\n );\n\n if (isDuplicate) {\n this.ifxFileUploadInvalid.emit({ file, reason: 'duplicate' });\n this.ifxFileUploadError.emit({\n file,\n errorType: 'duplicate',\n message: `File \"${file.name}\" is already added`,\n reason: 'duplicate'\n });\n return;\n }\n\n if (isValidType && isValidSize) {\n validFiles.push(file);\n } else {\n if (!isValidType) {\n rejectedType.push(file.name);\n this.ifxFileUploadInvalid.emit({ file, reason: 'invalid-type' });\n }\n if (!isValidSize) {\n rejectedSize.push(file.name);\n this.ifxFileUploadInvalid.emit({ file, reason: 'invalid-size' });\n }\n this.ifxFileUploadError.emit({\n file,\n errorType: !isValidType ? 'invalid-type' : 'file-too-large',\n message: 'Invalid file rejected',\n reason: !isValidType ? 'unsupported-type' : 'file-too-large'\n });\n }\n });\n\n this.rejectedSizeFiles = [...this.rejectedSizeFiles, ...rejectedSize];\n this.rejectedTypeFiles = [...this.rejectedTypeFiles, ...rejectedType];\n\n if (this.maxFiles && this.files.length + validFiles.length > this.maxFiles) {\n const availableSlots = this.maxFiles - this.files.length;\n const limitedFiles = validFiles.slice(0, Math.max(availableSlots, 0));\n const overflowFiles = validFiles.slice(availableSlots);\n\n this.files = [...this.files, ...limitedFiles];\n\n limitedFiles.forEach(file => this.startUpload(file));\n\n if (limitedFiles.length > 0) {\n this.ifxFileUploadAdd.emit({ addedFiles: limitedFiles, files: this.files });\n this.ifxFileUploadChange.emit({ files: this.files });\n }\n\n overflowFiles.forEach(file => {\n this.ifxFileUploadInvalid.emit({ file, reason: 'too-many-files' });\n this.ifxFileUploadError.emit({\n file,\n errorType: 'too-many-files',\n message: `Upload limit exceeded. Max ${this.maxFiles} files allowed.`,\n reason: 'too-many-files'\n });\n });\n\n if (overflowFiles.length > 0) {\n this.statusMessage = {\n type: 'error',\n text: this.labelMaxFilesExceeded\n .replace('{{count}}', this.maxFiles.toString())\n .replace('{{files}}', this.pluralize(this.maxFiles))\n };\n this.ifxFileUploadMaxFilesExceeded.emit({\n maxFiles: this.maxFiles,\n attempted: this.files.length + validFiles.length\n });\n }\n\n return;\n }\n\n\n validFiles.forEach(file => this.startUpload(file));\n this.files = [...this.files, ...validFiles];\n\n if (validFiles.length > 0) {\n this.ifxFileUploadAdd.emit({ addedFiles: validFiles, files: this.files });\n this.ifxFileUploadChange.emit({ files: this.files });\n }\n\n this.validateRequired();\n }\n\n retryUpload(file: File) {\n const taskIndex = this.uploadTasks.findIndex(t => t.file.name === file.name);\n if (taskIndex !== -1) {\n this.uploadTasks.splice(taskIndex, 1);\n this.uploadTasks = [...this.uploadTasks];\n }\n this.ifxFileUploadRetry.emit({ file });\n this.startUpload(file);\n }\n\n startUpload(file: File) {\n this.ifxFileUploadStart.emit({ file });\n\n const task: UploadTask = {\n file,\n progress: 3, // Start with initial progress for better UX\n intervalId: null,\n completed: false,\n };\n\n this.uploadTasks = [...this.uploadTasks, task];\n\n if (this.uploadHandler) {\n this.uploadHandler(file, (percent: number) => {\n if (percent > task.progress) {\n task.progress = Math.min(100, percent);\n this.uploadTasks = [...this.uploadTasks];\n }\n }).then(() => {\n task.progress = 100;\n task.completed = true;\n this.uploadTasks = [...this.uploadTasks];\n this.ifxFileUploadComplete.emit({ file });\n this.ifxFileUploadChange.emit({ files: this.files });\n\n if (this.uploadTasks.every(t => t.completed)) {\n this.ifxFileUploadAllComplete.emit({ files: this.files });\n }\n }).catch(() => {\n task.error = true;\n this.uploadTasks = [...this.uploadTasks];\n this.ifxFileUploadError.emit({\n file,\n errorType: 'upload-failed',\n message: 'Upload handler rejected file',\n reason: 'custom'\n });\n });\n } else {\n const totalSize = file.size;\n const fakeUploadSpeed = 100000;\n let uploaded = 0;\n\n task.intervalId = window.setInterval(() => {\n uploaded += fakeUploadSpeed / 5;\n const progress = Math.min(100, Math.round((uploaded / totalSize) * 100));\n task.progress = progress;\n this.uploadTasks = [...this.uploadTasks];\n\n if (progress >= 100) {\n clearInterval(task.intervalId!);\n task.completed = true;\n task.intervalId = null;\n this.uploadTasks = [...this.uploadTasks];\n this.ifxFileUploadComplete.emit({ file });\n this.ifxFileUploadChange.emit({ files: this.files });\n\n if (this.uploadTasks.every(t => t.completed)) {\n this.ifxFileUploadAllComplete.emit({ files: this.files });\n }\n }\n }, 200);\n }\n\n this.uploadTasks = [...this.uploadTasks, task];\n }\n\n cancelUpload(file: File) {\n const taskIndex = this.uploadTasks.findIndex(t => t.file.name === file.name);\n if (taskIndex !== -1) {\n const task = this.uploadTasks[taskIndex];\n if (task?.intervalId !== null) {\n clearInterval(task.intervalId);\n }\n this.uploadTasks = this.uploadTasks.filter((_, i) => i !== taskIndex);\n }\n this.files = this.files.filter(f => f.name !== file.name);\n this.ifxFileUploadAbort.emit({ file });\n this.ifxFileUploadChange.emit({ files: this.files });\n if (this.fileInputEl) {\n this.fileInputEl.value = '';\n }\n this.validateRequired();\n }\n\n removeFile(file: File) {\n this.uploadTasks = this.uploadTasks.filter(task => task.file.name !== file.name);\n this.files = this.files.filter(f => f.name !== file.name);\n this.ifxFileUploadRemove.emit({ removedFile: file, files: this.files });\n this.ifxFileUploadChange.emit({ files: this.files });\n this.validateRequired();\n\n if (this.fileInputEl) {\n this.fileInputEl.value = '';\n }\n\n if (\n this.maxFiles &&\n this.files.length < this.maxFiles &&\n this.statusMessage?.text !== this.labelRequiredError\n ) {\n this.statusMessage = null;\n }\n }\n\n\n clearRejectedFile(fileName: string, type: 'size' | 'type') {\n if (type === 'size') {\n this.rejectedSizeFiles = this.rejectedSizeFiles.filter(f => f !== fileName);\n } else {\n this.rejectedTypeFiles = this.rejectedTypeFiles.filter(f => f !== fileName);\n }\n\n if (this.fileInputEl) {\n this.fileInputEl.value = '';\n }\n\n if (this.maxFiles && this.files.length < this.maxFiles) {\n this.statusMessage = null;\n }\n\n this.validateRequired();\n }\n\n splitFileNameParts(file: File): { base: string; ext: string } {\n const name = file.name;\n const dotIndex = name.lastIndexOf('.');\n if (dotIndex === -1) return { base: name, ext: '' };\n return {\n base: name.substring(0, dotIndex),\n ext: name.substring(dotIndex)\n };\n }\n\n getFileIcon(file: File): string {\n const extension = file.name.split('.').pop()?.toLowerCase();\n switch (extension) {\n case 'pdf': return 'file-pdf-16';\n case 'jpg':\n case 'jpeg': return 'file-jpg-16';\n case 'png': return 'file-png-16';\n case 'mov': return 'file-mov-16';\n case 'mp3': return 'file-mp3-16';\n case 'mp4': return 'file-mp4-16';\n default: return 'file-16';\n }\n }\n\n formatSize(bytes: number): string {\n if (bytes >= 1024 * 1024 * 1024) {\n return `${(bytes / (1024 * 1024 * 1024)).toFixed(1)} GB`;\n } else if (bytes >= 1024 * 1024) {\n return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;\n } else if (bytes >= 1024) {\n return `${(bytes / 1024).toFixed(0)} KB`;\n } else {\n return `${bytes} B`;\n }\n }\n\n getAcceptAttribute(): string {\n const extensionTypes = this.getNormalizedFileTypes().map(ext => '.' + ext.toLowerCase());\n const mimeTypes = this.getAdditionalMimeTypes();\n\n return [...extensionTypes, ...mimeTypes].join(',');\n }\n\n private getFormattedProgressText(task: UploadTask): string {\n const uploadedSize = Math.round((task.progress / 100) * task.file.size);\n const uploadedText = this.formatSize(uploadedSize);\n const totalText = this.formatSize(task.file.size);\n return `${uploadedText} / ${totalText} uploaded`;\n }\n\n private getAdditionalMimeTypes(): string[] {\n if (!this.additionalAllowedFileTypes) return [];\n if (Array.isArray(this.additionalAllowedFileTypes)) return this.additionalAllowedFileTypes;\n return this.additionalAllowedFileTypes.split(',').map(t => t.trim());\n }\n\n private getSupportedFileText(): string {\n const extensions = this.getNormalizedFileTypes().map(ext => ext.toUpperCase());\n const mimeTypes = this.getAdditionalMimeTypes().map(mime => this.getLabelFromMimeType(mime));\n const allTypes = [...extensions, ...mimeTypes];\n const typesLabel = allTypes.join(', ');\n\n let text = this.labelSupportedFormatsTemplate\n .replace('{{types}}', typesLabel)\n .replace('{{size}}', this.maxFileSizeMB.toString());\n\n if (this.labelMaxFilesInfo && this.maxFiles) {\n const fileWord = this.pluralize(this.maxFiles);\n const maxFilesText = this.labelMaxFilesInfo\n .replace('{{count}}', this.maxFiles.toString())\n .replace('{{files}}', fileWord);\n text += ` ${maxFilesText}`;\n }\n\n return text;\n }\n\n private getFormattedFileTooLargeText(): string {\n return this.labelFileTooLarge.replace('{{size}}', this.maxFileSizeMB.toString());\n }\n\n private renderStatusMessage() {\n if (!this.statusMessage) return null;\n\n return (\n <div class={`file-upload-status file-upload-status__${this.statusMessage.type}`}>\n {this.statusMessage.type === 'error' && (\n <ifx-icon icon=\"c-warning-16\"></ifx-icon>\n )}\n {this.statusMessage.text}\n </div>\n );\n }\n\n private isInputDisabled(): boolean {\n return this.disabled || (this.maxFiles !== undefined && this.files.length >= this.maxFiles);\n }\n\n componentWillLoad() { \n if(!isNestedInIfxComponent(this.hostElement)) { \n trackComponent('ifx-file-upload')\n }\n }\n\n componentDidLoad() {\n if (this.hostElement.hasAttribute('show-demo-states')) {\n this.showDemoStates = true;\n }\n\n if (this.showDemoStates) {\n this.injectDemoState();\n }\n }\n\n // Storybook Demo\n @Method()\n async injectDemoState() {\n const dummyContent = new Array(50000).fill('a').join(''); // ~50 KB\n const bigContent = dummyContent + dummyContent; // ~100 KB\n\n const uploading = new File([dummyContent], 'Image.jpg', { type: 'image/jpeg' }); // ~50 KB\n const uploaded = new File([bigContent], 'File.pdf', { type: 'application/pdf' }); // ~100 KB\n const failed = new File([dummyContent], 'Text.docx', { type: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document' }); // ~50 KB\n const tooLarge = new File([bigContent + bigContent + bigContent], 'Video.mp4', { type: 'video/mp4' }); // ~300 KB\n const unsupported = new File(['demo'], 'Script.exe', { type: 'application/x-msdownload' }); // very small\n\n this.files = [uploaded, uploading, failed];\n this.uploadTasks = [\n { file: uploaded, progress: 100, intervalId: null, completed: true },\n { file: uploading, progress: 40, intervalId: null, completed: false },\n { file: failed, progress: 80, intervalId: null, completed: false, error: true }\n ];\n this.rejectedSizeFiles = [tooLarge.name];\n this.rejectedTypeFiles = [unsupported.name];\n }\n\n\n\n // Storybook Demo\n @Method()\n async triggerDemoValidation(): Promise<void> {\n this.validateRequired();\n }\n\n render() {\n return (\n <div\n class={{\n 'file-upload-wrapper': true,\n 'disabled': this.disabled\n }}\n >\n {this.label && (\n <label class=\"file-upload-label\" htmlFor={this.internalId}>\n {this.label}\n {this.required && (\n <span class={`required ${this.requiredError ? 'error' : ''}`}>*</span>\n )}\n </label>\n )}\n\n {this.dragAndDrop ? this.renderDragAndDropArea() : this.renderUploadArea()}\n\n {(this.files.length > 0 || this.rejectedSizeFiles.length > 0 || this.rejectedTypeFiles.length > 0) && (\n <div class=\"file-list-wrapper\">\n <div class=\"upload-heading\">{this.labelUploadedFilesHeading}</div>\n <ul class=\"file-list\">\n {this.rejectedSizeFiles.map(fileName => (\n <li class=\"file-item upload-failed\" key={`rejected-size-${fileName}`}>\n <div class=\"file-icon\">\n <ifx-icon icon=\"file-16\"></ifx-icon>\n </div>\n <div class=\"file-info\">\n <div class=\"file-top-row\">\n <span class=\"file-name-wrapper\">\n <span class=\"file-name-base\">{this.splitFileNameParts({ name: fileName } as File).base}</span>\n <span class=\"file-name-ext\">{this.splitFileNameParts({ name: fileName } as File).ext}</span>\n </span>\n <div class=\"file-actions\">\n <ifx-icon-button\n shape=\"square\"\n variant=\"tertiary\"\n icon=\"delete-forever-16\"\n size=\"s\"\n aria-label={this.ariaLabelRemoveFile}\n onClick={() => this.clearRejectedFile(fileName, 'size')}\n ></ifx-icon-button>\n </div>\n </div>\n <div class=\"file-middle-row\">\n <span class=\"file-status\" aria-label={this.labelFileTooLarge.replace('{{size}}', this.maxFileSizeMB.toString())}>\n {this.getFormattedFileTooLargeText()}\n </span>\n </div>\n </div>\n </li>\n ))}\n\n {this.rejectedTypeFiles.map(fileName => (\n <li class=\"file-item upload-failed\" key={`rejected-type-${fileName}`}>\n <div class=\"file-icon\">\n <ifx-icon icon=\"file-16\"></ifx-icon>\n </div>\n <div class=\"file-info\">\n <div class=\"file-top-row\">\n <span class=\"file-name-wrapper\">\n <span class=\"file-name-base\">{this.splitFileNameParts({ name: fileName } as File).base}</span>\n <span class=\"file-name-ext\">{this.splitFileNameParts({ name: fileName } as File).ext}</span>\n </span>\n <div class=\"file-actions\">\n <ifx-icon-button\n shape=\"square\"\n variant=\"tertiary\"\n icon=\"delete-forever-16\"\n size=\"s\"\n aria-label={this.ariaLabelRemoveFile}\n onClick={() => this.clearRejectedFile(fileName, 'type')}\n ></ifx-icon-button>\n </div>\n </div>\n <div class=\"file-middle-row\">\n <span class=\"file-status\" aria-label={this.labelUnsupportedFileType}>\n {this.labelUnsupportedFileType}\n </span>\n </div>\n </div>\n </li>\n ))}\n\n {this.files.map((file) => {\n const task = this.uploadTasks.find(t => t.file.name === file.name);\n const progress = task?.progress ?? 100;\n const isUploading = task && !task.completed;\n const isError = task?.error === true;\n const itemClass = isError ? 'file-item upload-failed' : isUploading ? 'file-item uploading' : 'file-item upload-success';\n const uniqueKey = `${file.name}-${file.size}`;\n const { base, ext } = this.splitFileNameParts(file);\n\n return (\n <li class={itemClass} key={uniqueKey}>\n <div class=\"file-icon\">\n <ifx-icon icon={this.getFileIcon(file)}></ifx-icon>\n </div>\n <div class=\"file-info\">\n <div class=\"file-top-row\">\n <span class=\"file-name-wrapper\">\n <span class=\"file-name-base\">{base}</span>\n <span class=\"file-name-ext\">{ext}</span>\n </span>\n <div class=\"file-actions\">\n <ifx-icon-button\n shape=\"square\"\n variant=\"tertiary\"\n icon=\"refresh-16\"\n size=\"s\"\n aria-label={this.ariaLabelRetryUpload}\n onClick={() => this.retryUpload(file)}\n style={{ display: isError ? 'inline-flex' : 'none' }}\n ></ifx-icon-button>\n <ifx-icon-button\n shape=\"square\"\n variant=\"tertiary\"\n icon=\"cross-16\"\n size=\"s\"\n aria-label={this.ariaLabelCancelUpload}\n onClick={() => this.cancelUpload(file)}\n style={{ display: isUploading ? 'inline-flex' : 'none' }}\n ></ifx-icon-button>\n <ifx-icon-button\n shape=\"square\"\n variant=\"tertiary\"\n icon=\"delete-forever-16\"\n size=\"s\"\n aria-label={this.ariaLabelRemoveFile}\n onClick={() => this.removeFile(file)}\n style={{ display: !isUploading ? 'inline-flex' : 'none' }}\n ></ifx-icon-button>\n </div>\n </div>\n\n <div class=\"file-middle-row\">\n {isUploading && task && !task.error && (\n <span class=\"file-uploading\" aria-label={this.ariaLabelUploadingStatus}>\n {this.getFormattedProgressText(task)}\n </span>\n )}\n {!isUploading && !isError && (\n <span>\n <span class=\"file-size\">{this.formatSize(file.size)}</span>\n <span class=\"file-status\" aria-label={this.ariaLabelUploadedStatus}>\n <ifx-icon icon=\"check-16\"></ifx-icon>\n {this.labelUploaded}\n </span>\n </span>\n )}\n {isError && (\n <span class=\"file-status\" aria-label={this.ariaLabelUploadFailedStatus}>\n {this.labelUploadFailed}\n </span>\n )}\n </div>\n\n {isUploading && task && !task.error && (\n <div class=\"file-progress-row\">\n <ifx-progress-bar\n size=\"s\"\n value={progress}\n show-label=\"true\"\n ></ifx-progress-bar>\n </div>\n )}\n </div>\n </li>\n );\n })}\n </ul>\n </div>\n )}\n </div>\n );\n }\n\n renderUploadArea() {\n const handleInputRef = (el: HTMLInputElement | null) => {\n this.fileInputEl = el;\n };\n\n return (\n <div class={{ 'upload-button': true }}>\n <ifx-button\n variant=\"secondary\"\n onClick={() => this.fileInputEl?.click()}\n disabled={this.isInputDisabled()}\n aria-label={this.ariaLabelBrowseFiles}\n >\n <ifx-icon icon=\"upload-16\"></ifx-icon>\n {this.labelBrowseFiles}\n </ifx-button>\n <input\n id={this.internalId}\n ref={handleInputRef}\n type=\"file\"\n accept={this.getAcceptAttribute()}\n multiple\n onChange={(e) => this.handleFileChange(e)}\n style={{ display: 'none' }}\n disabled={this.isInputDisabled()}\n aria-label={this.ariaLabelFileInput}\n />\n <p class=\"file-upload-info\">\n {this.getSupportedFileText()}\n </p>\n {this.renderStatusMessage()}\n </div>\n );\n }\n\n\n renderDragAndDropArea() {\n const handleInputRef = (el: HTMLInputElement | null) => {\n this.fileInputEl = el;\n };\n\n const triggerInputClick = () => {\n if (this.fileInputEl) {\n this.fileInputEl.click();\n }\n };\n\n return (\n <div class={{ 'disabled': this.isInputDisabled() }}>\n <div\n class={{ 'upload-dropzone': true, 'drag-over': this.isDragOver, 'error': this.requiredError }}\n onClick={triggerInputClick}\n onDragOver={(e) => this.handleDragOver(e)}\n onDragLeave={(e) => this.handleDragLeave(e)}\n onDrop={(e) => this.handleDrop(e)}\n role=\"button\"\n tabIndex={0}\n aria-label={this.ariaLabelDropzone}\n >\n <ifx-icon icon=\"upload-16\" class=\"custom-icon\"></ifx-icon>\n <p>{this.labelDragAndDrop}</p>\n <p class=\"file-upload-info\">\n {this.getSupportedFileText()}\n </p>\n <div style={{ height: '0px', overflow: 'hidden' }}>\n <input\n id={this.internalId}\n ref={handleInputRef}\n type=\"file\"\n accept={this.getAcceptAttribute()}\n multiple\n onChange={(e) => this.handleFileChange(e)}\n disabled={this.isInputDisabled()}\n aria-label={this.ariaLabelFileInput}\n />\n </div>\n </div>\n {this.renderStatusMessage()}\n </div>\n );\n }\n\n}\n"],"mappings":"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","ignoreList":[]}
|