@siemens/ix 1.5.0-beta.0 → 1.5.0-beta.2
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/index-478a4b66.js +8 -0
- package/dist/cjs/index-478a4b66.js.map +1 -1
- package/dist/cjs/index.cjs.js +12 -0
- package/dist/cjs/index.cjs.js.map +1 -1
- package/dist/cjs/ix-blind.cjs.entry.js +27 -6
- package/dist/cjs/ix-blind.cjs.entry.js.map +1 -1
- package/dist/cjs/ix-breadcrumb_2.cjs.entry.js +1 -1
- package/dist/cjs/ix-breadcrumb_2.cjs.entry.js.map +1 -1
- package/dist/cjs/ix-category-filter.cjs.entry.js +19 -5
- package/dist/cjs/ix-category-filter.cjs.entry.js.map +1 -1
- package/dist/cjs/ix-chip.cjs.entry.js +6 -1
- package/dist/cjs/ix-chip.cjs.entry.js.map +1 -1
- package/dist/cjs/ix-date-picker_2.cjs.entry.js +62 -43
- package/dist/cjs/ix-date-picker_2.cjs.entry.js.map +1 -1
- package/dist/cjs/ix-datetime-picker.cjs.entry.js +2 -2
- package/dist/cjs/ix-datetime-picker.cjs.entry.js.map +1 -1
- package/dist/cjs/ix-dropdown_2.cjs.entry.js +5 -4
- package/dist/cjs/ix-dropdown_2.cjs.entry.js.map +1 -1
- package/dist/cjs/ix-filter-chip.cjs.entry.js +2 -2
- package/dist/cjs/ix-filter-chip.cjs.entry.js.map +1 -1
- package/dist/cjs/ix-flip-tile_2.cjs.entry.js +11 -2
- package/dist/cjs/ix-flip-tile_2.cjs.entry.js.map +1 -1
- package/dist/cjs/ix-group_3.cjs.entry.js +33 -11
- package/dist/cjs/ix-group_3.cjs.entry.js.map +1 -1
- package/dist/cjs/ix-index-button.cjs.entry.js +28 -0
- package/dist/cjs/ix-index-button.cjs.entry.js.map +1 -0
- package/dist/cjs/ix-input-group.cjs.entry.js +1 -1
- package/dist/cjs/ix-input-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ix-menu_9.cjs.entry.js +1 -1
- package/dist/cjs/ix-menu_9.cjs.entry.js.map +1 -1
- package/dist/cjs/ix-modal_2.cjs.entry.js +17 -5
- package/dist/cjs/ix-modal_2.cjs.entry.js.map +1 -1
- package/dist/cjs/ix-pagination.cjs.entry.js +123 -0
- package/dist/cjs/ix-pagination.cjs.entry.js.map +1 -0
- package/dist/cjs/ix-select_2.cjs.entry.js +56 -37
- package/dist/cjs/ix-select_2.cjs.entry.js.map +1 -1
- package/dist/cjs/ix-toast_2.cjs.entry.js +10 -1
- package/dist/cjs/ix-toast_2.cjs.entry.js.map +1 -1
- package/dist/cjs/ix-toggle.cjs.entry.js +1 -1
- package/dist/cjs/ix-toggle.cjs.entry.js.map +1 -1
- package/dist/cjs/ix-tooltip.cjs.entry.js +55 -27
- package/dist/cjs/ix-tooltip.cjs.entry.js.map +1 -1
- package/dist/cjs/ix-tree_2.cjs.entry.js +4 -0
- package/dist/cjs/ix-tree_2.cjs.entry.js.map +1 -1
- package/dist/cjs/ix-upload.cjs.entry.js +8 -23
- package/dist/cjs/ix-upload.cjs.entry.js.map +1 -1
- package/dist/cjs/ix-workflow-step_2.cjs.entry.js +51 -36
- package/dist/cjs/ix-workflow-step_2.cjs.entry.js.map +1 -1
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/loader.cjs.js.map +1 -1
- package/dist/cjs/siemens-ix.cjs.js +2 -2
- package/dist/cjs/siemens-ix.cjs.js.map +1 -1
- package/dist/cjs/upload-file-state-a79acf2b.js +19 -0
- package/dist/cjs/upload-file-state-a79acf2b.js.map +1 -0
- package/dist/collection/collection-manifest.json +3 -1
- package/dist/collection/components/blind/blind.css +22 -8
- package/dist/collection/components/blind/blind.js +35 -5
- package/dist/collection/components/blind/blind.js.map +1 -1
- package/dist/collection/components/breadcrumb/breadcrumb.css +1 -2
- package/dist/collection/components/category-filter/category-filter.js +19 -5
- package/dist/collection/components/category-filter/category-filter.js.map +1 -1
- package/dist/collection/components/chip/chip.js +27 -2
- package/dist/collection/components/chip/chip.js.map +1 -1
- package/dist/collection/components/date-picker/date-picker.css +3 -0
- package/dist/collection/components/date-picker/date-picker.js +64 -45
- package/dist/collection/components/date-picker/date-picker.js.map +1 -1
- package/dist/collection/components/datetime-picker/datetime-picker.css +6 -5
- package/dist/collection/components/datetime-picker/datetime-picker.js +1 -1
- package/dist/collection/components/datetime-picker/datetime-picker.js.map +1 -1
- package/dist/collection/components/dropdown/dropdown.js +2 -1
- package/dist/collection/components/dropdown/dropdown.js.map +1 -1
- package/dist/collection/components/dropdown-item/dropdown-item.css +0 -1
- package/dist/collection/components/dropdown-item/dropdown-item.js +2 -2
- package/dist/collection/components/dropdown-item/dropdown-item.js.map +1 -1
- package/dist/collection/components/filter-chip/filter-chip.css +14 -7
- package/dist/collection/components/filter-chip/filter-chip.js +1 -1
- package/dist/collection/components/filter-chip/filter-chip.js.map +1 -1
- package/dist/collection/components/flip-tile/flip-tile.css +0 -4
- package/dist/collection/components/flip-tile/flip-tile.js +56 -2
- package/dist/collection/components/flip-tile/flip-tile.js.map +1 -1
- package/dist/collection/components/group/group.css +21 -12
- package/dist/collection/components/group/group.js +34 -10
- package/dist/collection/components/group/group.js.map +1 -1
- package/dist/collection/components/group-item/group-item.css +8 -4
- package/dist/collection/components/index-button/index-button.css +31 -0
- package/dist/collection/components/index-button/index-button.js +83 -0
- package/dist/collection/components/index-button/index-button.js.map +1 -0
- package/dist/collection/components/input-group/input-group.css +3 -0
- package/dist/collection/components/menu-item/menu-item.css +15 -10
- package/dist/collection/components/modal/modal.js +6 -1
- package/dist/collection/components/modal/modal.js.map +1 -1
- package/dist/collection/components/modal-container/modal-container.js +11 -4
- package/dist/collection/components/modal-container/modal-container.js.map +1 -1
- package/dist/collection/components/pagination/pagination.css +58 -0
- package/dist/collection/components/pagination/pagination.js +311 -0
- package/dist/collection/components/pagination/pagination.js.map +1 -0
- package/dist/collection/components/select/select.css +4 -1
- package/dist/collection/components/select/select.js +98 -36
- package/dist/collection/components/select/select.js.map +1 -1
- package/dist/collection/components/select-item/select-item.css +0 -3
- package/dist/collection/components/select-item/select-item.js +1 -1
- package/dist/collection/components/select-item/select-item.js.map +1 -1
- package/dist/collection/components/toast/toast-container.js +16 -4
- package/dist/collection/components/toast/toast-container.js.map +1 -1
- package/dist/collection/components/toast/toast-utils.js +4 -1
- package/dist/collection/components/toast/toast-utils.js.map +1 -1
- package/dist/collection/components/toggle/toggle.css +7 -4
- package/dist/collection/components/tooltip/tooltip.css +8 -7
- package/dist/collection/components/tooltip/tooltip.js +76 -27
- package/dist/collection/components/tooltip/tooltip.js.map +1 -1
- package/dist/collection/components/tree/tree.js +38 -0
- package/dist/collection/components/tree/tree.js.map +1 -1
- package/dist/collection/components/utils/a11y.js +10 -0
- package/dist/collection/components/utils/a11y.js.map +1 -0
- package/dist/collection/components/workflow-step/workflow-step.css +7 -3
- package/dist/collection/components/workflow-step/workflow-step.js +45 -6
- package/dist/collection/components/workflow-step/workflow-step.js.map +1 -1
- package/dist/collection/components/workflow-steps/workflow-steps.css +0 -3
- package/dist/collection/components/workflow-steps/workflow-steps.js +48 -39
- package/dist/collection/components/workflow-steps/workflow-steps.js.map +1 -1
- package/dist/collection/index.js +1 -0
- package/dist/collection/index.js.map +1 -1
- package/dist/collection/tests/utils/test/page.js +29 -1
- package/dist/collection/tests/utils/test/page.js.map +1 -1
- package/dist/components/application-header.js +1 -1
- package/dist/components/burger-menu.js +1 -1
- package/dist/components/button.js +1 -1
- package/dist/components/date-picker.js +63 -44
- package/dist/components/date-picker.js.map +1 -1
- package/dist/components/date-time-card.js +1 -1
- package/dist/components/dropdown-item.js +4 -4
- package/dist/components/dropdown-item.js.map +1 -1
- package/dist/components/dropdown.js +3 -2
- package/dist/components/dropdown.js.map +1 -1
- package/dist/components/filter-chip.js +3 -3
- package/dist/components/filter-chip.js.map +1 -1
- package/dist/components/group-context-menu.js +1 -1
- package/dist/components/group-item.js +2 -2
- package/dist/components/group-item.js.map +1 -1
- package/dist/components/icon-button.js +1 -1
- package/dist/components/icon.js +1 -1
- package/dist/components/index-button.js +41 -0
- package/dist/components/index-button.js.map +1 -0
- package/dist/components/index.js +5 -1
- package/dist/components/index.js.map +1 -1
- package/dist/components/ix-animated-tab.js +1 -1
- package/dist/components/ix-animated-tabs.js +1 -1
- package/dist/components/ix-basic-navigation.js +1 -1
- package/dist/components/ix-blind.js +38 -9
- package/dist/components/ix-blind.js.map +1 -1
- package/dist/components/ix-breadcrumb-item.js +1 -1
- package/dist/components/ix-breadcrumb.js +2 -2
- package/dist/components/ix-breadcrumb.js.map +1 -1
- package/dist/components/ix-category-filter.js +20 -6
- package/dist/components/ix-category-filter.js.map +1 -1
- package/dist/components/ix-chip.js +7 -2
- package/dist/components/ix-chip.js.map +1 -1
- package/dist/components/ix-counter-pill.js +1 -1
- package/dist/components/ix-datetime-picker.js +3 -3
- package/dist/components/ix-datetime-picker.js.map +1 -1
- package/dist/components/ix-divider.js +1 -1
- package/dist/components/ix-drawer.js +1 -1
- package/dist/components/ix-dropdown-button.js +1 -1
- package/dist/components/ix-dropdown-quick-actions.js +1 -1
- package/dist/components/ix-event-list-item.js +1 -1
- package/dist/components/ix-event-list.js +1 -1
- package/dist/components/ix-expanding-search.js +1 -1
- package/dist/components/ix-flip-tile-content.js +1 -1
- package/dist/components/ix-flip-tile.js +14 -3
- package/dist/components/ix-flip-tile.js.map +1 -1
- package/dist/components/ix-group-dropdown-item.js +1 -1
- package/dist/components/ix-group.js +36 -12
- package/dist/components/ix-group.js.map +1 -1
- package/dist/components/ix-index-button.d.ts +11 -0
- package/dist/components/ix-index-button.js +8 -0
- package/dist/components/ix-index-button.js.map +1 -0
- package/dist/components/ix-input-group.js +2 -2
- package/dist/components/ix-input-group.js.map +1 -1
- package/dist/components/ix-kpi.js +1 -1
- package/dist/components/ix-map-navigation.js +1 -1
- package/dist/components/ix-menu-about-item.js +1 -1
- package/dist/components/ix-menu-about-news.js +1 -1
- package/dist/components/ix-menu-about.js +1 -1
- package/dist/components/ix-menu-avatar.js +1 -1
- package/dist/components/ix-menu-settings-item.js +1 -1
- package/dist/components/ix-menu-settings.js +1 -1
- package/dist/components/ix-menu.js +1 -1
- package/dist/components/ix-message-bar.js +1 -1
- package/dist/components/ix-modal-example.js +1 -1
- package/dist/components/ix-pagination.d.ts +11 -0
- package/dist/components/ix-pagination.js +193 -0
- package/dist/components/ix-pagination.js.map +1 -0
- package/dist/components/ix-pill.js +1 -1
- package/dist/components/ix-select.js +1 -341
- package/dist/components/ix-select.js.map +1 -1
- package/dist/components/ix-split-button-item.js +1 -1
- package/dist/components/ix-split-button.js +1 -1
- package/dist/components/ix-tile.js +1 -1
- package/dist/components/ix-toast-container.js +11 -2
- package/dist/components/ix-toast-container.js.map +1 -1
- package/dist/components/ix-toggle.js +2 -2
- package/dist/components/ix-toggle.js.map +1 -1
- package/dist/components/ix-tooltip.js +58 -29
- package/dist/components/ix-tooltip.js.map +1 -1
- package/dist/components/ix-tree.js +5 -1
- package/dist/components/ix-tree.js.map +1 -1
- package/dist/components/ix-upload.js +2 -17
- package/dist/components/ix-upload.js.map +1 -1
- package/dist/components/ix-validation-tooltip.js +1 -1
- package/dist/components/ix-workflow-step.js +10 -4
- package/dist/components/ix-workflow-step.js.map +1 -1
- package/dist/components/ix-workflow-steps.js +45 -36
- package/dist/components/ix-workflow-steps.js.map +1 -1
- package/dist/components/map-navigation-overlay.js +1 -1
- package/dist/components/menu-avatar-item.js +1 -1
- package/dist/components/menu-item.js +2 -2
- package/dist/components/menu-item.js.map +1 -1
- package/dist/components/modal-container.js +12 -5
- package/dist/components/modal-container.js.map +1 -1
- package/dist/components/modal.js +7 -2
- package/dist/components/modal.js.map +1 -1
- package/dist/components/my-component.js +1 -1
- package/dist/components/select-item.js +3 -3
- package/dist/components/select-item.js.map +1 -1
- package/dist/components/select.js +366 -0
- package/dist/components/select.js.map +1 -0
- package/dist/components/spinner.js +1 -1
- package/dist/components/tab-item.js +1 -1
- package/dist/components/tabs.js +1 -1
- package/dist/components/time-picker.js +1 -1
- package/dist/components/toast.js +1 -1
- package/dist/components/tree-item.js +1 -1
- package/dist/components/typography.js +1 -1
- package/dist/components/upload-file-state.js +19 -0
- package/dist/components/upload-file-state.js.map +1 -0
- package/dist/esm/index-3d163acd.js +8 -0
- package/dist/esm/index-3d163acd.js.map +1 -1
- package/dist/esm/index.js +5 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/ix-blind.entry.js +27 -6
- package/dist/esm/ix-blind.entry.js.map +1 -1
- package/dist/esm/ix-breadcrumb_2.entry.js +1 -1
- package/dist/esm/ix-breadcrumb_2.entry.js.map +1 -1
- package/dist/esm/ix-category-filter.entry.js +19 -5
- package/dist/esm/ix-category-filter.entry.js.map +1 -1
- package/dist/esm/ix-chip.entry.js +6 -1
- package/dist/esm/ix-chip.entry.js.map +1 -1
- package/dist/esm/ix-date-picker_2.entry.js +62 -43
- package/dist/esm/ix-date-picker_2.entry.js.map +1 -1
- package/dist/esm/ix-datetime-picker.entry.js +2 -2
- package/dist/esm/ix-datetime-picker.entry.js.map +1 -1
- package/dist/esm/ix-dropdown_2.entry.js +5 -4
- package/dist/esm/ix-dropdown_2.entry.js.map +1 -1
- package/dist/esm/ix-filter-chip.entry.js +2 -2
- package/dist/esm/ix-filter-chip.entry.js.map +1 -1
- package/dist/esm/ix-flip-tile_2.entry.js +11 -2
- package/dist/esm/ix-flip-tile_2.entry.js.map +1 -1
- package/dist/esm/ix-group_3.entry.js +33 -11
- package/dist/esm/ix-group_3.entry.js.map +1 -1
- package/dist/esm/ix-index-button.entry.js +24 -0
- package/dist/esm/ix-index-button.entry.js.map +1 -0
- package/dist/esm/ix-input-group.entry.js +1 -1
- package/dist/esm/ix-input-group.entry.js.map +1 -1
- package/dist/esm/ix-menu_9.entry.js +1 -1
- package/dist/esm/ix-menu_9.entry.js.map +1 -1
- package/dist/esm/ix-modal_2.entry.js +17 -5
- package/dist/esm/ix-modal_2.entry.js.map +1 -1
- package/dist/esm/ix-pagination.entry.js +119 -0
- package/dist/esm/ix-pagination.entry.js.map +1 -0
- package/dist/esm/ix-select_2.entry.js +56 -37
- package/dist/esm/ix-select_2.entry.js.map +1 -1
- package/dist/esm/ix-toast_2.entry.js +10 -1
- package/dist/esm/ix-toast_2.entry.js.map +1 -1
- package/dist/esm/ix-toggle.entry.js +1 -1
- package/dist/esm/ix-toggle.entry.js.map +1 -1
- package/dist/esm/ix-tooltip.entry.js +56 -28
- package/dist/esm/ix-tooltip.entry.js.map +1 -1
- package/dist/esm/ix-tree_2.entry.js +4 -0
- package/dist/esm/ix-tree_2.entry.js.map +1 -1
- package/dist/esm/ix-upload.entry.js +1 -16
- package/dist/esm/ix-upload.entry.js.map +1 -1
- package/dist/esm/ix-workflow-step_2.entry.js +52 -37
- package/dist/esm/ix-workflow-step_2.entry.js.map +1 -1
- package/dist/esm/loader.js +2 -2
- package/dist/esm/loader.js.map +1 -1
- package/dist/esm/siemens-ix.js +2 -2
- package/dist/esm/siemens-ix.js.map +1 -1
- package/dist/esm/upload-file-state-532a36d3.js +19 -0
- package/dist/esm/upload-file-state-532a36d3.js.map +1 -0
- package/dist/siemens-ix/index.esm.js +1 -1
- package/dist/siemens-ix/index.esm.js.map +1 -1
- package/dist/siemens-ix/p-076c29d1.js +2 -0
- package/dist/siemens-ix/p-076c29d1.js.map +1 -0
- package/dist/siemens-ix/p-0f864265.entry.js +2 -0
- package/dist/siemens-ix/p-0f864265.entry.js.map +1 -0
- package/dist/siemens-ix/p-16ec6f50.entry.js +2 -0
- package/dist/siemens-ix/p-16ec6f50.entry.js.map +1 -0
- package/dist/siemens-ix/p-1701b127.entry.js +2 -0
- package/dist/siemens-ix/p-1701b127.entry.js.map +1 -0
- package/dist/siemens-ix/{p-41f0a2b2.entry.js → p-2ea2fc07.entry.js} +2 -2
- package/dist/siemens-ix/{p-41f0a2b2.entry.js.map → p-2ea2fc07.entry.js.map} +1 -1
- package/dist/siemens-ix/p-33160fe4.entry.js +2 -0
- package/dist/siemens-ix/p-33160fe4.entry.js.map +1 -0
- package/dist/siemens-ix/{p-6790d123.entry.js → p-34e3a10e.entry.js} +2 -2
- package/dist/siemens-ix/{p-6790d123.entry.js.map → p-34e3a10e.entry.js.map} +1 -1
- package/dist/siemens-ix/p-4c8d5207.entry.js +2 -0
- package/dist/siemens-ix/p-4c8d5207.entry.js.map +1 -0
- package/dist/siemens-ix/p-53c69375.entry.js +2 -0
- package/dist/siemens-ix/p-53c69375.entry.js.map +1 -0
- package/dist/siemens-ix/p-55d0fabf.entry.js +2 -0
- package/dist/siemens-ix/p-55d0fabf.entry.js.map +1 -0
- package/dist/siemens-ix/p-626b3af5.entry.js +2 -0
- package/dist/siemens-ix/p-626b3af5.entry.js.map +1 -0
- package/dist/siemens-ix/{p-aafd18a8.entry.js → p-62b4d696.entry.js} +2 -2
- package/dist/siemens-ix/p-62b4d696.entry.js.map +1 -0
- package/dist/siemens-ix/p-663724a8.entry.js +2 -0
- package/dist/siemens-ix/p-663724a8.entry.js.map +1 -0
- package/dist/siemens-ix/p-7fb5fa79.entry.js +2 -0
- package/dist/siemens-ix/p-7fb5fa79.entry.js.map +1 -0
- package/dist/siemens-ix/{p-1811d669.entry.js → p-88a47c9b.entry.js} +2 -2
- package/dist/siemens-ix/p-88a47c9b.entry.js.map +1 -0
- package/dist/siemens-ix/p-8fcd6f85.js.map +1 -1
- package/dist/siemens-ix/p-9546cbdd.entry.js +2 -0
- package/dist/siemens-ix/p-9546cbdd.entry.js.map +1 -0
- package/dist/siemens-ix/{p-5ce07b8b.entry.js → p-afd1f351.entry.js} +2 -2
- package/dist/siemens-ix/p-afd1f351.entry.js.map +1 -0
- package/dist/siemens-ix/p-b998abe4.entry.js +2 -0
- package/dist/siemens-ix/p-b998abe4.entry.js.map +1 -0
- package/dist/siemens-ix/p-b9fbd029.entry.js +2 -0
- package/dist/siemens-ix/p-b9fbd029.entry.js.map +1 -0
- package/dist/siemens-ix/p-c9c9f2b5.entry.js +2 -0
- package/dist/siemens-ix/p-c9c9f2b5.entry.js.map +1 -0
- package/dist/siemens-ix/p-caae2fa5.entry.js +2 -0
- package/dist/siemens-ix/p-caae2fa5.entry.js.map +1 -0
- package/dist/siemens-ix/{p-01f9f803.entry.js → p-cdb54f7c.entry.js} +2 -2
- package/dist/siemens-ix/p-cdb54f7c.entry.js.map +1 -0
- package/dist/siemens-ix/{p-11af475f.entry.js → p-eb799bdd.entry.js} +2 -2
- package/dist/siemens-ix/p-eb799bdd.entry.js.map +1 -0
- package/dist/siemens-ix/siemens-ix.css +21 -0
- package/dist/siemens-ix/siemens-ix.esm.js +1 -1
- package/dist/siemens-ix/siemens-ix.esm.js.map +1 -1
- package/dist/types/components/blind/blind.d.ts +6 -0
- package/dist/types/components/category-filter/category-filter.d.ts +1 -0
- package/dist/types/components/chip/chip.d.ts +8 -0
- package/dist/types/components/date-picker/date-picker.d.ts +4 -3
- package/dist/types/components/flip-tile/flip-tile.d.ts +11 -0
- package/dist/types/components/group/group.d.ts +4 -0
- package/dist/types/components/index-button/index-button.d.ts +16 -0
- package/dist/types/components/modal/modal.d.ts +1 -0
- package/dist/types/components/modal-container/modal-container.d.ts +1 -0
- package/dist/types/components/pagination/pagination.d.ts +57 -0
- package/dist/types/components/select/select.d.ts +17 -1
- package/dist/types/components/toast/toast-container.d.ts +3 -1
- package/dist/types/components/toast/toast-utils.d.ts +3 -0
- package/dist/types/components/tooltip/tooltip.d.ts +8 -0
- package/dist/types/components/tree/tree.d.ts +13 -0
- package/dist/types/components/utils/a11y.d.ts +1 -0
- package/dist/types/components/workflow-step/workflow-step.d.ts +9 -1
- package/dist/types/components/workflow-steps/workflow-steps.d.ts +6 -2
- package/dist/types/components.d.ts +231 -11
- package/dist/types/index.d.ts +1 -0
- package/dist/types/tests/utils/test/page.d.ts +5 -0
- package/loader/index.d.ts +1 -1
- package/package.json +7 -6
- package/scss/components/_forms.scss +7 -1
- package/dist/siemens-ix/p-01f9f803.entry.js.map +0 -1
- package/dist/siemens-ix/p-0d15aa1a.entry.js +0 -2
- package/dist/siemens-ix/p-0d15aa1a.entry.js.map +0 -1
- package/dist/siemens-ix/p-11af475f.entry.js.map +0 -1
- package/dist/siemens-ix/p-1259ea24.entry.js +0 -2
- package/dist/siemens-ix/p-1259ea24.entry.js.map +0 -1
- package/dist/siemens-ix/p-1811d669.entry.js.map +0 -1
- package/dist/siemens-ix/p-29bd1814.entry.js +0 -2
- package/dist/siemens-ix/p-29bd1814.entry.js.map +0 -1
- package/dist/siemens-ix/p-5845a03c.entry.js +0 -2
- package/dist/siemens-ix/p-5845a03c.entry.js.map +0 -1
- package/dist/siemens-ix/p-5ce07b8b.entry.js.map +0 -1
- package/dist/siemens-ix/p-7ce0c0e2.entry.js +0 -2
- package/dist/siemens-ix/p-7ce0c0e2.entry.js.map +0 -1
- package/dist/siemens-ix/p-967f7d5d.entry.js +0 -2
- package/dist/siemens-ix/p-967f7d5d.entry.js.map +0 -1
- package/dist/siemens-ix/p-9f55716d.entry.js +0 -2
- package/dist/siemens-ix/p-9f55716d.entry.js.map +0 -1
- package/dist/siemens-ix/p-a4178e26.entry.js +0 -2
- package/dist/siemens-ix/p-a4178e26.entry.js.map +0 -1
- package/dist/siemens-ix/p-a92126b5.entry.js +0 -2
- package/dist/siemens-ix/p-a92126b5.entry.js.map +0 -1
- package/dist/siemens-ix/p-aafd18a8.entry.js.map +0 -1
- package/dist/siemens-ix/p-b64e82ce.entry.js +0 -2
- package/dist/siemens-ix/p-b64e82ce.entry.js.map +0 -1
- package/dist/siemens-ix/p-d7def96c.entry.js +0 -2
- package/dist/siemens-ix/p-d7def96c.entry.js.map +0 -1
- package/dist/siemens-ix/p-f961c22a.entry.js +0 -2
- package/dist/siemens-ix/p-f961c22a.entry.js.map +0 -1
- package/dist/siemens-ix/p-fe690347.entry.js +0 -2
- package/dist/siemens-ix/p-fe690347.entry.js.map +0 -1
|
@@ -56,10 +56,9 @@
|
|
|
56
56
|
height: 4rem;
|
|
57
57
|
min-height: 4rem;
|
|
58
58
|
max-height: 4rem;
|
|
59
|
-
border-radius: 0
|
|
59
|
+
border-radius: var(--theme-group--border-radius) var(--theme-group--border-radius) 0 0;
|
|
60
60
|
display: flex;
|
|
61
61
|
background-color: var(--theme-group-item--background);
|
|
62
|
-
border: 1px solid var(--theme-group-item--border-color);
|
|
63
62
|
color: var(--theme-group-header--color);
|
|
64
63
|
cursor: pointer;
|
|
65
64
|
}
|
|
@@ -68,27 +67,36 @@
|
|
|
68
67
|
}
|
|
69
68
|
:host .group-header:not(.disabled):not(:disabled):hover {
|
|
70
69
|
background-color: var(--theme-group-item--background--hover);
|
|
71
|
-
|
|
70
|
+
}
|
|
71
|
+
:host .group-header:not(.disabled):not(:disabled):hover.selected {
|
|
72
|
+
background-color: var(--theme-group-item--background--selected);
|
|
72
73
|
}
|
|
73
74
|
:host .group-header:not(.disabled):not(:disabled) {
|
|
74
75
|
cursor: pointer;
|
|
75
76
|
}
|
|
76
77
|
:host .group-header:not(.disabled):not(:disabled):active {
|
|
77
78
|
background-color: var(--theme-group-item--background--active);
|
|
78
|
-
|
|
79
|
+
}
|
|
80
|
+
:host .group-header:not(.disabled):not(:disabled):active.selected {
|
|
81
|
+
background-color: var(--theme-group-item--background--selected);
|
|
79
82
|
}
|
|
80
83
|
:host .group-header:not(.disabled):not(:disabled):focus-visible {
|
|
81
|
-
border
|
|
82
|
-
border-radius: var(--theme-
|
|
84
|
+
border: 1px solid var(--theme-color-focus-bdr);
|
|
85
|
+
border-radius: var(--theme-default-border-radius) var(--theme-default-border-radius) 0px 0px;
|
|
83
86
|
outline: none;
|
|
84
87
|
}
|
|
85
88
|
:host .group-header.selected {
|
|
86
|
-
border: var(--theme-primary-bdr-2);
|
|
87
89
|
background-color: var(--theme-group-item--background--selected);
|
|
88
90
|
}
|
|
91
|
+
:host .group-header.selected .group-header-selection-indicator {
|
|
92
|
+
background-color: var(--theme-group-item-indicator--background--selected);
|
|
93
|
+
}
|
|
89
94
|
:host .group-header .group-header-selection-indicator {
|
|
90
95
|
background-color: var(--theme-color-input--focus);
|
|
91
96
|
}
|
|
97
|
+
:host .group-header .group-header-selection-indicator.group-header-selection-indicator-item-selected {
|
|
98
|
+
background-color: var(--theme-group-item-indicator--background--selected);
|
|
99
|
+
}
|
|
92
100
|
:host .group-header-clickable {
|
|
93
101
|
overflow: hidden;
|
|
94
102
|
text-overflow: ellipsis;
|
|
@@ -97,12 +105,9 @@
|
|
|
97
105
|
width: 100%;
|
|
98
106
|
min-width: 0;
|
|
99
107
|
}
|
|
100
|
-
:host .group-header.expand {
|
|
101
|
-
border-bottom-left-radius: 0;
|
|
102
|
-
border-bottom-right-radius: 0;
|
|
103
|
-
}
|
|
104
108
|
:host .group-header-selection-indicator {
|
|
105
109
|
width: 0.25rem;
|
|
110
|
+
border-top-left-radius: var(--theme-group--border-radius);
|
|
106
111
|
}
|
|
107
112
|
:host .group-header-content {
|
|
108
113
|
overflow: hidden;
|
|
@@ -112,9 +117,9 @@
|
|
|
112
117
|
flex-direction: row;
|
|
113
118
|
justify-content: space-between;
|
|
114
119
|
min-width: 0;
|
|
120
|
+
flex-grow: 1;
|
|
115
121
|
padding: 0.5rem;
|
|
116
122
|
padding-left: 0;
|
|
117
|
-
width: 100%;
|
|
118
123
|
}
|
|
119
124
|
:host .group-header-content .group-header-props-container {
|
|
120
125
|
width: 100%;
|
|
@@ -148,6 +153,7 @@
|
|
|
148
153
|
margin: 0.5rem;
|
|
149
154
|
-webkit-margin-end: 0.25rem;
|
|
150
155
|
margin-inline-end: 0.25rem;
|
|
156
|
+
min-width: 1.5rem;
|
|
151
157
|
}
|
|
152
158
|
:host .group-content {
|
|
153
159
|
display: flex;
|
|
@@ -156,4 +162,7 @@
|
|
|
156
162
|
:host .footer {
|
|
157
163
|
height: auto;
|
|
158
164
|
min-height: 0;
|
|
165
|
+
}
|
|
166
|
+
:host .hidden {
|
|
167
|
+
display: none;
|
|
159
168
|
}
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
* LICENSE file in the root directory of this source tree.
|
|
8
8
|
*/
|
|
9
9
|
import { h, Host, } from '@stencil/core';
|
|
10
|
+
import { createMutationObserver } from '../utils/mutation-observer';
|
|
10
11
|
export class Group {
|
|
11
12
|
get dropdownItems() {
|
|
12
13
|
return Array.from(this.hostElement.querySelectorAll('ix-group-dropdown-item'));
|
|
@@ -20,7 +21,7 @@ export class Group {
|
|
|
20
21
|
get footer() {
|
|
21
22
|
return this.hostElement.querySelector('.footer');
|
|
22
23
|
}
|
|
23
|
-
constructor() { this.suppressHeaderSelection = false; this.header = undefined; this.subHeader = undefined; this.collapsed = true; this.selected = undefined; this.index = undefined; this.expandOnHeaderClick = false; this.dropdownTriggerRef = undefined; }
|
|
24
|
+
constructor() { this.suppressHeaderSelection = false; this.header = undefined; this.subHeader = undefined; this.collapsed = true; this.selected = undefined; this.index = undefined; this.expandOnHeaderClick = false; this.itemSelected = false; this.dropdownTriggerRef = undefined; this.slotSize = this.groupItems.length; }
|
|
24
25
|
async onKeyDown(event) {
|
|
25
26
|
const targetElement = event.target;
|
|
26
27
|
if (!this.hostElement.contains(targetElement)) {
|
|
@@ -42,12 +43,7 @@ export class Group {
|
|
|
42
43
|
}
|
|
43
44
|
}
|
|
44
45
|
onExpandClick(event) {
|
|
45
|
-
const wasCollapsed = this.collapsed;
|
|
46
46
|
this.collapsed = !this.collapsed;
|
|
47
|
-
if (!wasCollapsed && this.index !== undefined) {
|
|
48
|
-
this.index = undefined;
|
|
49
|
-
this.setGroupSelection(true);
|
|
50
|
-
}
|
|
51
47
|
this.collapsedChanged.emit(this.collapsed);
|
|
52
48
|
event.stopPropagation();
|
|
53
49
|
}
|
|
@@ -66,6 +62,11 @@ export class Group {
|
|
|
66
62
|
this.index = index;
|
|
67
63
|
this.selectItem.emit(index);
|
|
68
64
|
}
|
|
65
|
+
if (this.index >= 0) {
|
|
66
|
+
this.itemSelected = true;
|
|
67
|
+
}
|
|
68
|
+
else
|
|
69
|
+
this.itemSelected = false;
|
|
69
70
|
this.setGroupSelection(false);
|
|
70
71
|
}
|
|
71
72
|
setGroupSelection(selection) {
|
|
@@ -78,11 +79,16 @@ export class Group {
|
|
|
78
79
|
var _a;
|
|
79
80
|
this.groupItems.forEach((item, index) => {
|
|
80
81
|
var _a;
|
|
82
|
+
if (this.selected === true) {
|
|
83
|
+
item.selected = false;
|
|
84
|
+
this.index = undefined;
|
|
85
|
+
this.itemSelected = false;
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
81
88
|
item.selected = index === this.index;
|
|
82
89
|
item.index = index;
|
|
83
90
|
item.classList.remove('last');
|
|
84
|
-
if (!((_a = this.footer) === null || _a === void 0 ? void 0 : _a.children.length) &&
|
|
85
|
-
index === this.groupItems.length - 1) {
|
|
91
|
+
if (!((_a = this.footer) === null || _a === void 0 ? void 0 : _a.children.length) && index === this.slotSize - 1) {
|
|
86
92
|
item.classList.add('last');
|
|
87
93
|
}
|
|
88
94
|
});
|
|
@@ -91,16 +97,32 @@ export class Group {
|
|
|
91
97
|
}
|
|
92
98
|
}
|
|
93
99
|
componentDidLoad() {
|
|
100
|
+
this.observer = createMutationObserver(() => {
|
|
101
|
+
this.slotSize = this.groupItems.length;
|
|
102
|
+
});
|
|
103
|
+
this.observer.observe(this.groupContent, {
|
|
104
|
+
childList: true,
|
|
105
|
+
});
|
|
94
106
|
this.groupContent.addEventListener('selectedChanged', (evt) => {
|
|
95
107
|
this.onItemClick(evt.detail.index);
|
|
96
108
|
});
|
|
97
109
|
}
|
|
110
|
+
disconnectedCallback() {
|
|
111
|
+
if (this.observer) {
|
|
112
|
+
this.observer.disconnect();
|
|
113
|
+
}
|
|
114
|
+
}
|
|
98
115
|
render() {
|
|
99
116
|
return (h(Host, null, h("div", { class: {
|
|
100
117
|
'group-header': true,
|
|
101
118
|
expand: !this.collapsed,
|
|
102
119
|
selected: this.selected,
|
|
103
|
-
}, tabindex: "0" }, h("div", { class: "group-header-clickable", onClick: (e) => this.onHeaderClick(e) }, h("div", { class:
|
|
120
|
+
}, tabindex: "0" }, h("div", { class: "group-header-clickable", onClick: (e) => this.onHeaderClick(e) }, h("div", { class: {
|
|
121
|
+
'group-header-selection-indicator': true,
|
|
122
|
+
'group-header-selection-indicator-item-selected': this.itemSelected,
|
|
123
|
+
} }), h("div", { class: "btn-expand-header" }, h("ix-icon", { class: {
|
|
124
|
+
hidden: this.slotSize === 0,
|
|
125
|
+
}, name: `chevron-${this.collapsed ? 'right' : 'down'}-small`, onClick: (e) => this.onExpandClick(e) })), h("div", { class: "group-header-content" }, this.header ? (h("div", { class: "group-header-props-container" }, h("div", { class: "group-header-title" }, h("span", { title: this.header }, this.header)), h("div", { class: "group-subheader", title: this.subHeader }, this.subHeader))) : null, h("slot", { name: "header" }))), h("ix-group-context-menu", null, h("slot", { name: "dropdown" }))), h("div", { class: {
|
|
104
126
|
'group-content': true,
|
|
105
127
|
'd-none': this.collapsed,
|
|
106
128
|
} }, h("slot", null)), h("div", { class: "d-none" }, h("ix-group-item", { class: "footer last", suppressSelection: true, focusable: false }, h("slot", { name: "footer" })))));
|
|
@@ -245,7 +267,9 @@ export class Group {
|
|
|
245
267
|
}
|
|
246
268
|
static get states() {
|
|
247
269
|
return {
|
|
248
|
-
"
|
|
270
|
+
"itemSelected": {},
|
|
271
|
+
"dropdownTriggerRef": {},
|
|
272
|
+
"slotSize": {}
|
|
249
273
|
};
|
|
250
274
|
}
|
|
251
275
|
static get events() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"group.js","sourceRoot":"","sources":["../../../src/components/group/group.tsx"],"names":[],"mappings":"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","sourcesContent":["/*\n * SPDX-FileCopyrightText: 2023 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport {\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Listen,\n Prop,\n State,\n} from '@stencil/core';\n\n@Component({\n tag: 'ix-group',\n styleUrl: 'group.scss',\n scoped: true,\n})\nexport class Group {\n /**\n * Prevent header from being selectable\n */\n @Prop() suppressHeaderSelection = false;\n\n /**\n * Group header\n */\n @Prop() header: string;\n\n /**\n * Group header subtitle\n */\n @Prop() subHeader: string;\n\n /**\n * Whether the group is collapsed or expanded. Defaults to true.\n */\n @Prop({ mutable: true, reflect: true }) collapsed = true;\n\n /**\n * Whether the group is selected.\n */\n @Prop({ mutable: true, reflect: true }) selected: boolean;\n\n /**\n * The index of the selected group entry.\n * If undefined no group item is selected.\n */\n @Prop({ mutable: true, reflect: true }) index: number;\n\n /**\n * Expand the group if the header is clicked\n */\n @Prop() expandOnHeaderClick = false;\n\n /**\n * Emits when whole group gets selected.\n */\n @Event() selectGroup: EventEmitter<boolean>;\n\n /**\n * Emits when group item gets selected.\n */\n @Event() selectItem: EventEmitter<number>;\n\n /**\n * Group collapsed\n */\n @Event() collapsedChanged: EventEmitter<boolean>;\n\n @Element() hostElement!: HTMLIxGroupElement;\n\n get dropdownItems() {\n return Array.from(\n this.hostElement.querySelectorAll('ix-group-dropdown-item')\n );\n }\n\n get groupItems(): Array<HTMLIxGroupItemElement> {\n return Array.from(\n this.hostElement.querySelectorAll('ix-group-item:not(.footer)')\n );\n }\n\n get groupContent() {\n return this.hostElement.querySelector('.group-content');\n }\n\n get footer() {\n return this.hostElement.querySelector('.footer');\n }\n\n @State() dropdownTriggerRef: HTMLElement;\n\n constructor() {}\n\n @Listen('keydown', {\n target: 'window',\n })\n async onKeyDown(event: KeyboardEvent) {\n const targetElement = event.target as HTMLElement;\n\n if (!this.hostElement.contains(targetElement)) {\n return;\n }\n\n if (event.code === 'Enter' || event.code === 'NumpadEnter') {\n if (targetElement.classList.contains('group-header')) {\n if (this.suppressHeaderSelection) {\n this.collapsed = !this.collapsed;\n } else {\n this.selected = !this.selected;\n }\n } else if (targetElement.matches('ix-group-item')) {\n const groupItem = targetElement as HTMLIxGroupItemElement;\n groupItem.selected = !groupItem.selected;\n }\n }\n }\n\n private onExpandClick(event: Event) {\n const wasCollapsed = this.collapsed;\n this.collapsed = !this.collapsed;\n\n if (!wasCollapsed && this.index !== undefined) {\n this.index = undefined;\n this.setGroupSelection(true);\n }\n\n this.collapsedChanged.emit(this.collapsed);\n event.stopPropagation();\n }\n\n private onHeaderClick(event: Event) {\n this.setGroupSelection(!this.selected);\n\n if (this.suppressHeaderSelection) {\n this.onExpandClick(event);\n }\n }\n\n private onItemClick(index: number) {\n if (index === this.index) {\n this.index = undefined;\n this.selectItem.emit(undefined);\n } else {\n this.index = index;\n this.selectItem.emit(index);\n }\n\n this.setGroupSelection(false);\n }\n\n private setGroupSelection(selection: boolean) {\n if (!this.suppressHeaderSelection) {\n this.selected = selection;\n this.selectGroup.emit(this.selected);\n }\n }\n\n componentWillRender() {\n this.groupItems.forEach((item, index) => {\n item.selected = index === this.index;\n item.index = index;\n item.classList.remove('last');\n if (\n !this.footer?.children.length &&\n index === this.groupItems.length - 1\n ) {\n item.classList.add('last');\n }\n });\n\n if (this.footer?.childElementCount > 1) {\n this.groupContent.appendChild(this.footer);\n }\n }\n\n componentDidLoad() {\n this.groupContent.addEventListener(\n 'selectedChanged',\n (evt: CustomEvent<HTMLIxGroupItemElement>) => {\n this.onItemClick(evt.detail.index);\n }\n );\n }\n\n render() {\n return (\n <Host>\n <div\n class={{\n 'group-header': true,\n expand: !this.collapsed,\n selected: this.selected,\n }}\n tabindex=\"0\"\n >\n <div\n class=\"group-header-clickable\"\n onClick={(e) => this.onHeaderClick(e)}\n >\n <div class=\"group-header-selection-indicator\"></div>\n <ix-icon\n class=\"btn-expand-header\"\n name={`chevron-${this.collapsed ? 'right' : 'down'}-small`}\n onClick={(e) => this.onExpandClick(e)}\n ></ix-icon>\n <div class=\"group-header-content\">\n {this.header ? (\n <div class=\"group-header-props-container\">\n <div class=\"group-header-title\">\n <span title={this.header}>{this.header}</span>\n </div>\n <div class=\"group-subheader\" title={this.subHeader}>\n {this.subHeader}\n </div>\n </div>\n ) : null}\n <slot name=\"header\"></slot>\n </div>\n </div>\n <ix-group-context-menu>\n <slot name=\"dropdown\"></slot>\n </ix-group-context-menu>\n </div>\n <div\n class={{\n 'group-content': true,\n 'd-none': this.collapsed,\n }}\n >\n <slot></slot>\n </div>\n <div class=\"d-none\">\n <ix-group-item\n class=\"footer last\"\n suppressSelection={true}\n focusable={false}\n >\n <slot name=\"footer\"></slot>\n </ix-group-item>\n </div>\n </Host>\n );\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"group.js","sourceRoot":"","sources":["../../../src/components/group/group.tsx"],"names":[],"mappings":"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","sourcesContent":["/*\n * SPDX-FileCopyrightText: 2023 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport {\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Listen,\n Prop,\n State,\n} from '@stencil/core';\nimport { createMutationObserver } from '../utils/mutation-observer';\n\n@Component({\n tag: 'ix-group',\n styleUrl: 'group.scss',\n scoped: true,\n})\nexport class Group {\n /**\n * Prevent header from being selectable\n */\n @Prop() suppressHeaderSelection = false;\n\n /**\n * Group header\n */\n @Prop() header: string;\n\n /**\n * Group header subtitle\n */\n @Prop() subHeader: string;\n\n /**\n * Whether the group is collapsed or expanded. Defaults to true.\n */\n @Prop({ mutable: true, reflect: true }) collapsed = true;\n\n /**\n * Whether the group is selected.\n */\n @Prop({ mutable: true, reflect: true }) selected: boolean;\n\n /**\n * The index of the selected group entry.\n * If undefined no group item is selected.\n */\n @Prop({ mutable: true, reflect: true }) index: number;\n\n /**\n * Expand the group if the header is clicked\n */\n @Prop() expandOnHeaderClick = false;\n\n /**\n * Emits when whole group gets selected.\n */\n @Event() selectGroup: EventEmitter<boolean>;\n\n /**\n * Emits when group item gets selected.\n */\n @Event() selectItem: EventEmitter<number>;\n\n /**\n * Group collapsed\n */\n @Event() collapsedChanged: EventEmitter<boolean>;\n\n @Element() hostElement!: HTMLIxGroupElement;\n\n @State() itemSelected = false;\n\n get dropdownItems() {\n return Array.from(\n this.hostElement.querySelectorAll('ix-group-dropdown-item')\n );\n }\n\n get groupItems(): Array<HTMLIxGroupItemElement> {\n return Array.from(\n this.hostElement.querySelectorAll('ix-group-item:not(.footer)')\n );\n }\n\n get groupContent() {\n return this.hostElement.querySelector('.group-content');\n }\n\n get footer() {\n return this.hostElement.querySelector('.footer');\n }\n\n @State() dropdownTriggerRef: HTMLElement;\n\n @State() slotSize = this.groupItems.length;\n\n constructor() {}\n\n @Listen('keydown', {\n target: 'window',\n })\n async onKeyDown(event: KeyboardEvent) {\n const targetElement = event.target as HTMLElement;\n\n if (!this.hostElement.contains(targetElement)) {\n return;\n }\n\n if (event.code === 'Enter' || event.code === 'NumpadEnter') {\n if (targetElement.classList.contains('group-header')) {\n if (this.suppressHeaderSelection) {\n this.collapsed = !this.collapsed;\n } else {\n this.selected = !this.selected;\n }\n } else if (targetElement.matches('ix-group-item')) {\n const groupItem = targetElement as HTMLIxGroupItemElement;\n groupItem.selected = !groupItem.selected;\n }\n }\n }\n\n private onExpandClick(event: Event) {\n this.collapsed = !this.collapsed;\n\n this.collapsedChanged.emit(this.collapsed);\n event.stopPropagation();\n }\n\n private onHeaderClick(event: Event) {\n this.setGroupSelection(!this.selected);\n\n if (this.suppressHeaderSelection) {\n this.onExpandClick(event);\n }\n }\n\n private onItemClick(index: number) {\n if (index === this.index) {\n this.index = undefined;\n this.selectItem.emit(undefined);\n } else {\n this.index = index;\n this.selectItem.emit(index);\n }\n\n if (this.index >= 0) {\n this.itemSelected = true;\n } else this.itemSelected = false;\n\n this.setGroupSelection(false);\n }\n\n private setGroupSelection(selection: boolean) {\n if (!this.suppressHeaderSelection) {\n this.selected = selection;\n this.selectGroup.emit(this.selected);\n }\n }\n\n componentWillRender() {\n this.groupItems.forEach((item, index) => {\n if (this.selected === true) {\n item.selected = false;\n this.index = undefined;\n this.itemSelected = false;\n return;\n }\n item.selected = index === this.index;\n item.index = index;\n item.classList.remove('last');\n if (!this.footer?.children.length && index === this.slotSize - 1) {\n item.classList.add('last');\n }\n });\n\n if (this.footer?.childElementCount > 1) {\n this.groupContent.appendChild(this.footer);\n }\n }\n\n private observer: MutationObserver;\n\n componentDidLoad() {\n this.observer = createMutationObserver(() => {\n this.slotSize = this.groupItems.length;\n });\n\n this.observer.observe(this.groupContent, {\n childList: true,\n });\n\n this.groupContent.addEventListener(\n 'selectedChanged',\n (evt: CustomEvent<HTMLIxGroupItemElement>) => {\n this.onItemClick(evt.detail.index);\n }\n );\n }\n\n disconnectedCallback() {\n if (this.observer) {\n this.observer.disconnect();\n }\n }\n\n render() {\n return (\n <Host>\n <div\n class={{\n 'group-header': true,\n expand: !this.collapsed,\n selected: this.selected,\n }}\n tabindex=\"0\"\n >\n <div\n class=\"group-header-clickable\"\n onClick={(e) => this.onHeaderClick(e)}\n >\n <div\n class={{\n 'group-header-selection-indicator': true,\n 'group-header-selection-indicator-item-selected':\n this.itemSelected,\n }}\n ></div>\n <div class=\"btn-expand-header\">\n <ix-icon\n class={{\n hidden: this.slotSize === 0,\n }}\n name={`chevron-${this.collapsed ? 'right' : 'down'}-small`}\n onClick={(e) => this.onExpandClick(e)}\n ></ix-icon>\n </div>\n\n <div class=\"group-header-content\">\n {this.header ? (\n <div class=\"group-header-props-container\">\n <div class=\"group-header-title\">\n <span title={this.header}>{this.header}</span>\n </div>\n <div class=\"group-subheader\" title={this.subHeader}>\n {this.subHeader}\n </div>\n </div>\n ) : null}\n <slot name=\"header\"></slot>\n </div>\n </div>\n <ix-group-context-menu>\n <slot name=\"dropdown\"></slot>\n </ix-group-context-menu>\n </div>\n <div\n class={{\n 'group-content': true,\n 'd-none': this.collapsed,\n }}\n >\n <slot></slot>\n </div>\n <div class=\"d-none\">\n <ix-group-item\n class=\"footer last\"\n suppressSelection={true}\n focusable={false}\n >\n <slot name=\"footer\"></slot>\n </ix-group-item>\n </div>\n </Host>\n );\n }\n}\n"]}
|
|
@@ -51,7 +51,6 @@
|
|
|
51
51
|
padding: 0.5rem 1.5rem 0.5rem 2.5rem;
|
|
52
52
|
position: relative;
|
|
53
53
|
margin-top: 0.0625rem;
|
|
54
|
-
border: 1px solid var(--theme-group-item--border-color);
|
|
55
54
|
outline: none;
|
|
56
55
|
background-color: var(--theme-group-item--background);
|
|
57
56
|
}
|
|
@@ -96,6 +95,9 @@
|
|
|
96
95
|
background-color: var(--theme-group-item--background--hover);
|
|
97
96
|
border-color: var(--theme-group-item--border-color--hover);
|
|
98
97
|
}
|
|
98
|
+
:host:not(.suppress-selection):not(.disabled):not(:disabled):hover.selected {
|
|
99
|
+
background-color: var(--theme-group-item--background--selected);
|
|
100
|
+
}
|
|
99
101
|
:host:not(.suppress-selection):not(.disabled):not(:disabled) {
|
|
100
102
|
cursor: pointer;
|
|
101
103
|
}
|
|
@@ -103,14 +105,16 @@
|
|
|
103
105
|
background-color: var(--theme-group-item--background--active);
|
|
104
106
|
border-color: var(--theme-group-item--border-color--active);
|
|
105
107
|
}
|
|
108
|
+
:host:not(.suppress-selection):not(.disabled):not(:disabled):active.selected {
|
|
109
|
+
background-color: var(--theme-group-item--background--selected);
|
|
110
|
+
}
|
|
106
111
|
:host.selected {
|
|
107
112
|
border-top-width: 0.062rem !important;
|
|
108
|
-
border-color: var(--theme-group-item--border-color--selected);
|
|
109
113
|
background-color: var(--theme-group-item--background--selected);
|
|
110
114
|
}
|
|
111
115
|
:host.selected .group-entry-selection-indicator {
|
|
112
|
-
background-color: var(--theme-
|
|
116
|
+
background-color: var(--theme-group-item-indicator--background--selected);
|
|
113
117
|
}
|
|
114
118
|
:host:not(.disabled):not(:disabled):focus-visible {
|
|
115
|
-
border
|
|
119
|
+
border: 1px solid var(--theme-color-focus-bdr) !important;
|
|
116
120
|
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* SPDX-FileCopyrightText: 2022 Siemens AG
|
|
3
|
+
*
|
|
4
|
+
* SPDX-License-Identifier: MIT
|
|
5
|
+
*
|
|
6
|
+
* This source code is licensed under the MIT license found in the
|
|
7
|
+
* LICENSE file in the root directory of this source tree.
|
|
8
|
+
*/
|
|
9
|
+
/*
|
|
10
|
+
* SPDX-FileCopyrightText: 2023 Siemens AG
|
|
11
|
+
*
|
|
12
|
+
* SPDX-License-Identifier: MIT
|
|
13
|
+
*
|
|
14
|
+
* This source code is licensed under the MIT license found in the
|
|
15
|
+
* LICENSE file in the root directory of this source tree.
|
|
16
|
+
*/
|
|
17
|
+
/* Dimensions */
|
|
18
|
+
/* Font sizes */
|
|
19
|
+
/* Line heights */
|
|
20
|
+
/* Animation timings */
|
|
21
|
+
:host {
|
|
22
|
+
max-height: 2rem;
|
|
23
|
+
}
|
|
24
|
+
:host .btn {
|
|
25
|
+
min-width: 2rem;
|
|
26
|
+
height: 2rem;
|
|
27
|
+
}
|
|
28
|
+
:host .btn.selected {
|
|
29
|
+
background-color: var(--theme-btn-invisible-secondary--background--selected);
|
|
30
|
+
color: var(--theme-btn-invisible-secondary--color--selected);
|
|
31
|
+
}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* SPDX-FileCopyrightText: 2022 Siemens AG
|
|
3
|
+
*
|
|
4
|
+
* SPDX-License-Identifier: MIT
|
|
5
|
+
*
|
|
6
|
+
* This source code is licensed under the MIT license found in the
|
|
7
|
+
* LICENSE file in the root directory of this source tree.
|
|
8
|
+
*/
|
|
9
|
+
import { h, Host } from '@stencil/core';
|
|
10
|
+
/**
|
|
11
|
+
* @internal
|
|
12
|
+
*/
|
|
13
|
+
export class IxIndexButton {
|
|
14
|
+
constructor() {
|
|
15
|
+
this.variant = 'Primary';
|
|
16
|
+
this.selected = undefined;
|
|
17
|
+
}
|
|
18
|
+
render() {
|
|
19
|
+
return (h(Host, null, h("button", { class: {
|
|
20
|
+
btn: true,
|
|
21
|
+
'btn-invisible-primary': this.variant === 'Primary',
|
|
22
|
+
'btn-invisible-secondary': this.variant === 'Secondary',
|
|
23
|
+
selected: this.selected,
|
|
24
|
+
} }, h("slot", null))));
|
|
25
|
+
}
|
|
26
|
+
static get is() { return "ix-index-button"; }
|
|
27
|
+
static get encapsulation() { return "scoped"; }
|
|
28
|
+
static get originalStyleUrls() {
|
|
29
|
+
return {
|
|
30
|
+
"$": ["index-button.scss"]
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
static get styleUrls() {
|
|
34
|
+
return {
|
|
35
|
+
"$": ["index-button.css"]
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
static get properties() {
|
|
39
|
+
return {
|
|
40
|
+
"variant": {
|
|
41
|
+
"type": "string",
|
|
42
|
+
"mutable": false,
|
|
43
|
+
"complexType": {
|
|
44
|
+
"original": "IndexButtonVariant",
|
|
45
|
+
"resolved": "\"Primary\" | \"Secondary\"",
|
|
46
|
+
"references": {
|
|
47
|
+
"IndexButtonVariant": {
|
|
48
|
+
"location": "local",
|
|
49
|
+
"path": "/__w/ix/ix/packages/core/src/components/index-button/index-button.tsx"
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
"required": false,
|
|
54
|
+
"optional": false,
|
|
55
|
+
"docs": {
|
|
56
|
+
"tags": [],
|
|
57
|
+
"text": "Button variant"
|
|
58
|
+
},
|
|
59
|
+
"attribute": "variant",
|
|
60
|
+
"reflect": false,
|
|
61
|
+
"defaultValue": "'Primary'"
|
|
62
|
+
},
|
|
63
|
+
"selected": {
|
|
64
|
+
"type": "boolean",
|
|
65
|
+
"mutable": false,
|
|
66
|
+
"complexType": {
|
|
67
|
+
"original": "boolean",
|
|
68
|
+
"resolved": "boolean",
|
|
69
|
+
"references": {}
|
|
70
|
+
},
|
|
71
|
+
"required": false,
|
|
72
|
+
"optional": false,
|
|
73
|
+
"docs": {
|
|
74
|
+
"tags": [],
|
|
75
|
+
"text": "Selection state"
|
|
76
|
+
},
|
|
77
|
+
"attribute": "selected",
|
|
78
|
+
"reflect": false
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=index-button.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-button.js","sourceRoot":"","sources":["../../../src/components/index-button/index-button.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAKzD;;GAEG;AAMH,MAAM,OAAO,aAAa;;mBAIc,SAAS;;;EAO/C,MAAM;IACJ,OAAO,CACL,EAAC,IAAI;MACH,cACE,KAAK,EAAE;UACL,GAAG,EAAE,IAAI;UACT,uBAAuB,EAAE,IAAI,CAAC,OAAO,KAAK,SAAS;UACnD,yBAAyB,EAAE,IAAI,CAAC,OAAO,KAAK,WAAW;UACvD,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB;QAED,eAAa,CACN,CACJ,CACR,CAAC;EACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["/*\n * SPDX-FileCopyrightText: 2022 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { Component, h, Host, Prop } from '@stencil/core';\nimport { ButtonVariant } from '../button/button';\n\nexport type IndexButtonVariant = ButtonVariant;\n\n/**\n * @internal\n */\n@Component({\n tag: 'ix-index-button',\n styleUrl: 'index-button.scss',\n scoped: true,\n})\nexport class IxIndexButton {\n /**\n * Button variant\n */\n @Prop() variant: IndexButtonVariant = 'Primary';\n\n /**\n * Selection state\n */\n @Prop() selected: boolean;\n\n render() {\n return (\n <Host>\n <button\n class={{\n btn: true,\n 'btn-invisible-primary': this.variant === 'Primary',\n 'btn-invisible-secondary': this.variant === 'Secondary',\n selected: this.selected,\n }}\n >\n <slot></slot>\n </button>\n </Host>\n );\n }\n}\n"]}
|
|
@@ -37,6 +37,13 @@
|
|
|
37
37
|
:host {
|
|
38
38
|
position: relative;
|
|
39
39
|
display: block;
|
|
40
|
+
cursor: pointer;
|
|
41
|
+
}
|
|
42
|
+
:host:not(.disabled):not(:disabled).hover, :host:not(.disabled):not(:disabled):hover {
|
|
43
|
+
background-color: var(--theme-ghost--background--hover);
|
|
44
|
+
}
|
|
45
|
+
:host:not(.disabled):not(:disabled).active, :host:not(.disabled):not(:disabled):active {
|
|
46
|
+
background-color: var(--theme-ghost--background--active);
|
|
40
47
|
}
|
|
41
48
|
:host .tab {
|
|
42
49
|
display: flex;
|
|
@@ -46,15 +53,6 @@
|
|
|
46
53
|
z-index: 500;
|
|
47
54
|
padding-left: 1.25rem;
|
|
48
55
|
}
|
|
49
|
-
:host .tab:not(.selected) {
|
|
50
|
-
cursor: pointer;
|
|
51
|
-
}
|
|
52
|
-
:host .tab:not(.selected):not(.disabled):not(:disabled).hover, :host .tab:not(.selected):not(.disabled):not(:disabled):hover {
|
|
53
|
-
background-color: var(--theme-ghost--background--hover);
|
|
54
|
-
}
|
|
55
|
-
:host .tab:not(.selected):not(.disabled):not(:disabled).active, :host .tab:not(.selected):not(.disabled):not(:disabled):active {
|
|
56
|
-
background-color: var(--theme-ghost--background--active);
|
|
57
|
-
}
|
|
58
56
|
:host i.glyph {
|
|
59
57
|
color: var(--theme-nav-item-primary-icon--color);
|
|
60
58
|
position: relative;
|
|
@@ -137,7 +135,14 @@
|
|
|
137
135
|
}
|
|
138
136
|
:host.bottom-tab .tab::before, :host[slot=bottom] .tab::before {
|
|
139
137
|
height: 2.25rem;
|
|
138
|
+
background-color: transparent;
|
|
140
139
|
}
|
|
141
140
|
:host.bottom-tab.active .tab, :host.bottom-tab.selected .tab, :host[slot=bottom].active .tab, :host[slot=bottom].selected .tab {
|
|
142
|
-
background-color: var(--theme-
|
|
141
|
+
background-color: var(--theme-nav-item-secondary--background--selected);
|
|
142
|
+
}
|
|
143
|
+
:host.bottom-tab.active:hover, :host.bottom-tab.selected:hover, :host[slot=bottom].active:hover, :host[slot=bottom].selected:hover {
|
|
144
|
+
background-color: var(--theme-nav-item-secondary--background--selected);
|
|
145
|
+
}
|
|
146
|
+
:host.bottom-tab.active:active, :host.bottom-tab.selected:active, :host[slot=bottom].active:active, :host[slot=bottom].selected:active {
|
|
147
|
+
background-color: var(--theme-nav-item-secondary--background--selected);
|
|
143
148
|
}
|
|
@@ -9,8 +9,13 @@
|
|
|
9
9
|
import { h, Host, } from '@stencil/core';
|
|
10
10
|
import anime from 'animejs';
|
|
11
11
|
import Animation from '../utils/animation';
|
|
12
|
+
let modalInstanceId = 0;
|
|
13
|
+
function getNextModalInstanceId() {
|
|
14
|
+
return `ix-modal-instance-${++modalInstanceId}`;
|
|
15
|
+
}
|
|
12
16
|
export class Modal {
|
|
13
17
|
constructor() {
|
|
18
|
+
this.modalId = getNextModalInstanceId();
|
|
14
19
|
this.onKeydown = this.handleKeydown.bind(this);
|
|
15
20
|
this.animation = true;
|
|
16
21
|
this.ariaDescribedBy = undefined;
|
|
@@ -121,7 +126,7 @@ export class Modal {
|
|
|
121
126
|
this.slideUp(this.modalContent, () => this.closed.emit(result));
|
|
122
127
|
}
|
|
123
128
|
render() {
|
|
124
|
-
return (h(Host,
|
|
129
|
+
return (h(Host, { id: this.modalId }, h("div", { class: {
|
|
125
130
|
animation: this.animation,
|
|
126
131
|
modal: true,
|
|
127
132
|
backdrop: this.backdrop === 'static' || this.backdrop,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modal.js","sourceRoot":"","sources":["../../../src/components/modal/modal.tsx"],"names":[],"mappings":"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","sourcesContent":["/*\n * SPDX-FileCopyrightText: 2023 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport {\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Method,\n Prop,\n} from '@stencil/core';\nimport anime from 'animejs';\nimport Animation from '../utils/animation';\nimport { NotificationColor } from '../utils/notification-color';\n\n@Component({\n tag: 'ix-modal',\n styleUrl: 'modal.scss',\n scoped: true,\n})\nexport class Modal {\n @Element() hostElement: HTMLIxModalElement;\n\n /**\n * Should the modal be animtated\n */\n @Prop() animation = true;\n\n /**\n *\n */\n @Prop() ariaDescribedBy: string;\n\n /**\n *\n */\n @Prop() ariaLabelledBy = 'modal-title';\n\n /**\n * Adds a dimming layer to the modal.\n * This should only be used when it it necessary to focus the user's attention to the dialog content (e.g. errors, warnings, complex tasks).\n */\n @Prop() backdrop: boolean | 'static' = true;\n\n /**\n * Backdrop class\n */\n @Prop() backdropClass: string;\n\n /**\n * BeforeDismiss callback\n */\n @Prop() beforeDismiss: (reason?: any) => boolean | Promise<boolean>;\n\n /**\n * Centered modal\n */\n @Prop() centered = false;\n\n /**\n * Content of modal\n */\n @Prop() content: HTMLElement | string;\n\n /**\n * ESC close modal dialog\n */\n @Prop() keyboard = true;\n\n /**\n * Optional icon displayed next to the title\n */\n @Prop() icon: string;\n\n /**\n * Color of the header {@see ix-icon}\n */\n @Prop() iconColor: NotificationColor = 'color-std-text';\n\n /**\n * Modal dialog class\n */\n @Prop() modalDialogClass: string;\n\n /**\n * Modal scollable\n */\n @Prop() scrollable = true;\n\n /**\n * Modal size\n */\n @Prop() size: 'sm' | 'lg' | 'xl' = 'sm';\n\n /**\n * Header title\n */\n @Prop() headerTitle: string;\n\n /**\n * Window class\n */\n @Prop() windowClass: string;\n\n /**\n * Modal closed\n */\n @Event() closed: EventEmitter;\n\n /**\n * Modal dismissed\n */\n @Event() dismissed: EventEmitter;\n\n private readonly onKeydown = this.handleKeydown.bind(this);\n\n get modal() {\n return this.hostElement.querySelector('.modal');\n }\n\n get modalDialog() {\n return this.modal.querySelector('.modal-dialog');\n }\n\n get modalContent() {\n return this.modalDialog.querySelector('.modal-content');\n }\n\n get modalBackdrop() {\n return this.hostElement.querySelector('.backdrop');\n }\n\n private slideDown(modal: any) {\n const duration = this.animation ? Animation.mediumTime : 0;\n\n anime({\n targets: modal,\n duration,\n opacity: [0, 1],\n translateY: ['-100%', 0],\n easing: 'easeOutSine',\n });\n }\n\n private slideUp(modal: any, completeCallback?: any) {\n const duration = this.animation ? Animation.mediumTime : 0;\n\n anime({\n targets: modal,\n duration,\n opacity: [1, 0],\n translateY: [0, '-100%'],\n easing: 'easeInSine',\n complete: () => {\n if (completeCallback) {\n completeCallback();\n }\n },\n });\n }\n\n private onBackdropClick(event: Event) {\n const target = event.target as Element;\n if (target.classList.contains('backdrop')) {\n this.dismiss(event);\n }\n }\n\n componentDidLoad() {\n if (this.backdrop === 'static') {\n this.modalBackdrop.addEventListener('click', (event) =>\n this.onBackdropClick(event)\n );\n }\n\n if (this.backdropClass) {\n this.modalBackdrop.classList.add(this.backdropClass);\n }\n\n if (this.modalDialogClass) {\n this.modalDialog.classList.add(this.modalDialogClass);\n }\n\n if (this.windowClass) {\n this.modal.classList.add(this.windowClass);\n }\n\n if (this.keyboard) {\n window.addEventListener('keydown', this.onKeydown);\n }\n\n this.slideDown(this.modalContent);\n }\n\n private handleKeydown(ev: KeyboardEvent) {\n if (ev.key === 'Escape') {\n this.dismiss(ev.key);\n }\n }\n\n disconnectedCallback() {\n window.removeEventListener('keydown', this.onKeydown);\n }\n\n /**\n * Dismiss modal instance\n * @param reason\n */\n @Method()\n async dismiss<T = any>(reason?: T) {\n if (this.beforeDismiss) {\n const result = await this.beforeDismiss(reason);\n if (result !== false) {\n this.slideUp(this.modalContent, () => this.dismissed.emit(reason));\n }\n } else {\n this.slideUp(this.modalContent, () => this.dismissed.emit(reason));\n }\n }\n\n /**\n * Close modal\n * @param result\n */\n @Method()\n async close<T = any>(result: T) {\n this.slideUp(this.modalContent, () => this.closed.emit(result));\n }\n\n render() {\n return (\n <Host>\n <div\n class={{\n animation: this.animation,\n modal: true,\n backdrop: this.backdrop === 'static' || this.backdrop,\n 'align-items-center': this.centered,\n scrollable: this.scrollable,\n }}\n aria-describedby={this.ariaDescribedBy}\n aria-labelledby={this.ariaLabelledBy}\n >\n <div\n class={{\n 'modal-dialog': true,\n 'modal-sm': this.size === 'sm',\n 'modal-lg': this.size === 'lg',\n 'modal-xl': this.size === 'xl',\n }}\n >\n <div class=\"modal-content\">\n {this.icon === undefined || this.icon === '' ? (\n ''\n ) : (\n <div class=\"state-icon-container\">\n <ix-icon\n name={this.icon}\n size=\"32\"\n color={this.iconColor}\n ></ix-icon>\n </div>\n )}\n <div class=\"slot-container\">\n <slot></slot>\n </div>\n </div>\n </div>\n </div>\n </Host>\n );\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"modal.js","sourceRoot":"","sources":["../../../src/components/modal/modal.tsx"],"names":[],"mappings":"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","sourcesContent":["/*\n * SPDX-FileCopyrightText: 2023 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport {\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Method,\n Prop,\n} from '@stencil/core';\nimport anime from 'animejs';\nimport Animation from '../utils/animation';\nimport { NotificationColor } from '../utils/notification-color';\n\nlet modalInstanceId = 0;\n\nfunction getNextModalInstanceId() {\n return `ix-modal-instance-${++modalInstanceId}`;\n}\n\n@Component({\n tag: 'ix-modal',\n styleUrl: 'modal.scss',\n scoped: true,\n})\nexport class Modal {\n @Element() hostElement: HTMLIxModalElement;\n\n /**\n * Should the modal be animtated\n */\n @Prop() animation = true;\n\n /**\n *\n */\n @Prop() ariaDescribedBy: string;\n\n /**\n *\n */\n @Prop() ariaLabelledBy = 'modal-title';\n\n /**\n * Adds a dimming layer to the modal.\n * This should only be used when it it necessary to focus the user's attention to the dialog content (e.g. errors, warnings, complex tasks).\n */\n @Prop() backdrop: boolean | 'static' = true;\n\n /**\n * Backdrop class\n */\n @Prop() backdropClass: string;\n\n /**\n * BeforeDismiss callback\n */\n @Prop() beforeDismiss: (reason?: any) => boolean | Promise<boolean>;\n\n /**\n * Centered modal\n */\n @Prop() centered = false;\n\n /**\n * Content of modal\n */\n @Prop() content: HTMLElement | string;\n\n /**\n * ESC close modal dialog\n */\n @Prop() keyboard = true;\n\n /**\n * Optional icon displayed next to the title\n */\n @Prop() icon: string;\n\n /**\n * Color of the header {@see ix-icon}\n */\n @Prop() iconColor: NotificationColor = 'color-std-text';\n\n /**\n * Modal dialog class\n */\n @Prop() modalDialogClass: string;\n\n /**\n * Modal scollable\n */\n @Prop() scrollable = true;\n\n /**\n * Modal size\n */\n @Prop() size: 'sm' | 'lg' | 'xl' = 'sm';\n\n /**\n * Header title\n */\n @Prop() headerTitle: string;\n\n /**\n * Window class\n */\n @Prop() windowClass: string;\n\n /**\n * Modal closed\n */\n @Event() closed: EventEmitter;\n\n /**\n * Modal dismissed\n */\n @Event() dismissed: EventEmitter;\n\n private modalId = getNextModalInstanceId();\n private readonly onKeydown = this.handleKeydown.bind(this);\n\n get modal() {\n return this.hostElement.querySelector('.modal');\n }\n\n get modalDialog() {\n return this.modal.querySelector('.modal-dialog');\n }\n\n get modalContent() {\n return this.modalDialog.querySelector('.modal-content');\n }\n\n get modalBackdrop() {\n return this.hostElement.querySelector('.backdrop');\n }\n\n private slideDown(modal: any) {\n const duration = this.animation ? Animation.mediumTime : 0;\n\n anime({\n targets: modal,\n duration,\n opacity: [0, 1],\n translateY: ['-100%', 0],\n easing: 'easeOutSine',\n });\n }\n\n private slideUp(modal: any, completeCallback?: any) {\n const duration = this.animation ? Animation.mediumTime : 0;\n\n anime({\n targets: modal,\n duration,\n opacity: [1, 0],\n translateY: [0, '-100%'],\n easing: 'easeInSine',\n complete: () => {\n if (completeCallback) {\n completeCallback();\n }\n },\n });\n }\n\n private onBackdropClick(event: Event) {\n const target = event.target as Element;\n if (target.classList.contains('backdrop')) {\n this.dismiss(event);\n }\n }\n\n componentDidLoad() {\n if (this.backdrop === 'static') {\n this.modalBackdrop.addEventListener('click', (event) =>\n this.onBackdropClick(event)\n );\n }\n\n if (this.backdropClass) {\n this.modalBackdrop.classList.add(this.backdropClass);\n }\n\n if (this.modalDialogClass) {\n this.modalDialog.classList.add(this.modalDialogClass);\n }\n\n if (this.windowClass) {\n this.modal.classList.add(this.windowClass);\n }\n\n if (this.keyboard) {\n window.addEventListener('keydown', this.onKeydown);\n }\n\n this.slideDown(this.modalContent);\n }\n\n private handleKeydown(ev: KeyboardEvent) {\n if (ev.key === 'Escape') {\n this.dismiss(ev.key);\n }\n }\n\n disconnectedCallback() {\n window.removeEventListener('keydown', this.onKeydown);\n }\n\n /**\n * Dismiss modal instance\n * @param reason\n */\n @Method()\n async dismiss<T = any>(reason?: T) {\n if (this.beforeDismiss) {\n const result = await this.beforeDismiss(reason);\n if (result !== false) {\n this.slideUp(this.modalContent, () => this.dismissed.emit(reason));\n }\n } else {\n this.slideUp(this.modalContent, () => this.dismissed.emit(reason));\n }\n }\n\n /**\n * Close modal\n * @param result\n */\n @Method()\n async close<T = any>(result: T) {\n this.slideUp(this.modalContent, () => this.closed.emit(result));\n }\n\n render() {\n return (\n <Host id={this.modalId}>\n <div\n class={{\n animation: this.animation,\n modal: true,\n backdrop: this.backdrop === 'static' || this.backdrop,\n 'align-items-center': this.centered,\n scrollable: this.scrollable,\n }}\n aria-describedby={this.ariaDescribedBy}\n aria-labelledby={this.ariaLabelledBy}\n >\n <div\n class={{\n 'modal-dialog': true,\n 'modal-sm': this.size === 'sm',\n 'modal-lg': this.size === 'lg',\n 'modal-xl': this.size === 'xl',\n }}\n >\n <div class=\"modal-content\">\n {this.icon === undefined || this.icon === '' ? (\n ''\n ) : (\n <div class=\"state-icon-container\">\n <ix-icon\n name={this.icon}\n size=\"32\"\n color={this.iconColor}\n ></ix-icon>\n </div>\n )}\n <div class=\"slot-container\">\n <slot></slot>\n </div>\n </div>\n </div>\n </div>\n </Host>\n );\n }\n}\n"]}
|
|
@@ -21,6 +21,9 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
21
21
|
import { h, Host } from '@stencil/core';
|
|
22
22
|
import { TypedEvent } from '../utils/typed-event';
|
|
23
23
|
export class ModalContainer {
|
|
24
|
+
get modalStack() {
|
|
25
|
+
return this.hostElement.querySelector(':scope > div.modal-stack');
|
|
26
|
+
}
|
|
24
27
|
/**
|
|
25
28
|
* Display modal dialog
|
|
26
29
|
*
|
|
@@ -41,13 +44,17 @@ export class ModalContainer {
|
|
|
41
44
|
else {
|
|
42
45
|
modal.appendChild(content);
|
|
43
46
|
}
|
|
44
|
-
this.
|
|
47
|
+
this.modalStack.appendChild(modal);
|
|
45
48
|
modal.addEventListener('closed', (event) => {
|
|
46
|
-
|
|
49
|
+
event.preventDefault();
|
|
50
|
+
event.stopImmediatePropagation();
|
|
51
|
+
this.modalStack.removeChild(modal);
|
|
47
52
|
onClose.emit(event.detail);
|
|
48
53
|
});
|
|
49
54
|
modal.addEventListener('dismissed', (event) => {
|
|
50
|
-
|
|
55
|
+
event.preventDefault();
|
|
56
|
+
event.stopImmediatePropagation();
|
|
57
|
+
this.modalStack.removeChild(modal);
|
|
51
58
|
onDismiss.emit(event.detail);
|
|
52
59
|
});
|
|
53
60
|
return {
|
|
@@ -57,7 +64,7 @@ export class ModalContainer {
|
|
|
57
64
|
};
|
|
58
65
|
}
|
|
59
66
|
render() {
|
|
60
|
-
return h(Host, null);
|
|
67
|
+
return (h(Host, null, h("div", { class: "modal-stack" })));
|
|
61
68
|
}
|
|
62
69
|
static get is() { return "ix-modal-container"; }
|
|
63
70
|
static get encapsulation() { return "scoped"; }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modal-container.js","sourceRoot":"","sources":["../../../src/components/modal-container/modal-container.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;;;;;;;;;;;;AAEH,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAEpE,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAOlD,MAAM,OAAO,cAAc;EAGzB;;;;KAIG;EAEH,KAAK,CAAC,SAAS,CAAU,MAAsB;IAC7C,MAAM,OAAO,GAAG,IAAI,UAAU,EAAK,CAAC;IACpC,MAAM,SAAS,GAAG,IAAI,UAAU,EAAK,CAAC;IAEtC,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;IACjD,IAAI,EAAE,KAAK,EAAE,OAAO,KAAwB,MAAM,EAAzB,cAAc,UAAK,MAAM,EAA9C,oBAAqC,CAAS,CAAC;IACnD,MAAM,CAAC,MAAM,CAAC,KAAK,kBAAI,WAAW,EAAE,KAAK,IAAK,cAAc,EAAG,CAAC;IAEhE,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;MAC/B,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;MACpD,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;MACzB,QAAQ,CAAC,SAAS,GAAG,OAAO,CAAC;MAC7B,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;KAChD;SAAM;MACL,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;KAC5B;
|
|
1
|
+
{"version":3,"file":"modal-container.js","sourceRoot":"","sources":["../../../src/components/modal-container/modal-container.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;;;;;;;;;;;;AAEH,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAEpE,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAOlD,MAAM,OAAO,cAAc;EAGzB,IAAI,UAAU;IACZ,OAAO,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,0BAA0B,CAAC,CAAC;EACpE,CAAC;EAED;;;;KAIG;EAEH,KAAK,CAAC,SAAS,CAAU,MAAsB;IAC7C,MAAM,OAAO,GAAG,IAAI,UAAU,EAAK,CAAC;IACpC,MAAM,SAAS,GAAG,IAAI,UAAU,EAAK,CAAC;IAEtC,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;IACjD,IAAI,EAAE,KAAK,EAAE,OAAO,KAAwB,MAAM,EAAzB,cAAc,UAAK,MAAM,EAA9C,oBAAqC,CAAS,CAAC;IACnD,MAAM,CAAC,MAAM,CAAC,KAAK,kBAAI,WAAW,EAAE,KAAK,IAAK,cAAc,EAAG,CAAC;IAEhE,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;MAC/B,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;MACpD,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;MACzB,QAAQ,CAAC,SAAS,GAAG,OAAO,CAAC;MAC7B,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;KAChD;SAAM;MACL,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;KAC5B;IACD,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAEnC,KAAK,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC,KAAqB,EAAE,EAAE;MACzD,KAAK,CAAC,cAAc,EAAE,CAAC;MACvB,KAAK,CAAC,wBAAwB,EAAE,CAAC;MACjC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;MACnC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;IACH,KAAK,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,KAAqB,EAAE,EAAE;MAC5D,KAAK,CAAC,cAAc,EAAE,CAAC;MACvB,KAAK,CAAC,wBAAwB,EAAE,CAAC;MACjC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;MACnC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,OAAO;MACL,WAAW,EAAE,KAAK;MAClB,OAAO;MACP,SAAS;KACV,CAAC;EACJ,CAAC;EAED,MAAM;IACJ,OAAO,CACL,EAAC,IAAI;MACH,WAAK,KAAK,EAAC,aAAa,GAAO,CAC1B,CACR,CAAC;EACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["/*\n * SPDX-FileCopyrightText: 2023 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { Component, Element, h, Host, Method } from '@stencil/core';\nimport { ModalConfig, ModalInstance } from '../modal/modal-utils';\nimport { TypedEvent } from '../utils/typed-event';\n\n@Component({\n tag: 'ix-modal-container',\n styleUrl: 'modal-container.scss',\n scoped: true,\n})\nexport class ModalContainer {\n @Element() hostElement: HTMLIxModalContainerElement;\n\n get modalStack() {\n return this.hostElement.querySelector(':scope > div.modal-stack');\n }\n\n /**\n * Display modal dialog\n *\n * @param config\n */\n @Method()\n async showModal<T = any>(config: ModalConfig<T>): Promise<ModalInstance<T>> {\n const onClose = new TypedEvent<T>();\n const onDismiss = new TypedEvent<T>();\n\n const modal = document.createElement('ix-modal');\n let { title, content, ...modifiedConfig } = config;\n Object.assign(modal, { headerTitle: title, ...modifiedConfig });\n\n if (typeof content === 'string') {\n const template = document.createElement('template');\n content = content.trim();\n template.innerHTML = content;\n modal.appendChild(template.content.firstChild);\n } else {\n modal.appendChild(content);\n }\n this.modalStack.appendChild(modal);\n\n modal.addEventListener('closed', (event: CustomEvent<T>) => {\n event.preventDefault();\n event.stopImmediatePropagation();\n this.modalStack.removeChild(modal);\n onClose.emit(event.detail);\n });\n modal.addEventListener('dismissed', (event: CustomEvent<T>) => {\n event.preventDefault();\n event.stopImmediatePropagation();\n this.modalStack.removeChild(modal);\n onDismiss.emit(event.detail);\n });\n\n return {\n htmlElement: modal,\n onClose,\n onDismiss,\n };\n }\n\n render() {\n return (\n <Host>\n <div class=\"modal-stack\"></div>\n </Host>\n );\n }\n}\n"]}
|