@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
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{r as s,c as e,h as o,F as t,H as r,g as i}from"./p-8fcd6f85.js";import{c as l}from"./p-c0454c9a.js";const w=".sc-ix-workflow-step-h .step.sc-ix-workflow-step{display:flex;flex-direction:column;align-items:center;background-color:var(--theme-workflow-step--background);border-radius:var(--theme-workflow--border-radius);width:auto;padding:1.125rem 0 0.5rem 0;height:4rem;width:12.75rem}.sc-ix-workflow-step-h .step.sc-ix-workflow-step .wrapper.sc-ix-workflow-step{display:flex;width:100%;align-items:center;justify-content:center;position:relative}.sc-ix-workflow-step-h .step.sc-ix-workflow-step .wrapper.sc-ix-workflow-step .line.sc-ix-workflow-step{width:100%;height:0.125rem;background-color:var(--theme-workflow-step-icon-default--color)}.sc-ix-workflow-step-h .step.sc-ix-workflow-step .wrapper.sc-ix-workflow-step .line.first.sc-ix-workflow-step,.sc-ix-workflow-step-h .step.sc-ix-workflow-step .wrapper.sc-ix-workflow-step .line.last.sc-ix-workflow-step{width:50%;margin:0 0 0 auto}.sc-ix-workflow-step-h .step.sc-ix-workflow-step .wrapper.sc-ix-workflow-step .line.last.sc-ix-workflow-step{margin:0 auto 0 0}.sc-ix-workflow-step-h .step.sc-ix-workflow-step .wrapper.sc-ix-workflow-step .line.single.sc-ix-workflow-step{width:0}.sc-ix-workflow-step-h .step.sc-ix-workflow-step .wrapper.sc-ix-workflow-step .line.selected.sc-ix-workflow-step{background-color:var(--theme-workflow-step-icon-default--color--selected)}.sc-ix-workflow-step-h .step.sc-ix-workflow-step .wrapper.sc-ix-workflow-step .line.done.sc-ix-workflow-step{background-color:var(--theme-workflow-step-icon-done--color)}.sc-ix-workflow-step-h .step.sc-ix-workflow-step .wrapper.sc-ix-workflow-step .line.done.selected.sc-ix-workflow-step{background-color:var(--theme-workflow-step-icon-done--color--selected)}.sc-ix-workflow-step-h .step.sc-ix-workflow-step .wrapper.sc-ix-workflow-step .line.warning.sc-ix-workflow-step{background-color:var(--theme-color-warning)}.sc-ix-workflow-step-h .step.sc-ix-workflow-step .wrapper.sc-ix-workflow-step .line.success.sc-ix-workflow-step{background-color:var(--theme-color-success)}.sc-ix-workflow-step-h .step.sc-ix-workflow-step .wrapper.sc-ix-workflow-step .line.error.sc-ix-workflow-step{background-color:var(--theme-color-alarm)}.sc-ix-workflow-step-h .step.sc-ix-workflow-step .wrapper.sc-ix-workflow-step .iconWrapper.sc-ix-workflow-step{display:flex;align-items:center;justify-content:center;position:absolute}.sc-ix-workflow-step-h .step.sc-ix-workflow-step .wrapper.sc-ix-workflow-step .iconWrapper.sc-ix-workflow-step .absolute.sc-ix-workflow-step{position:absolute}.sc-ix-workflow-step-h .step.sc-ix-workflow-step .text.sc-ix-workflow-step{margin-top:1rem;width:auto;padding:0 0.5rem}.sc-ix-workflow-step-h .step.vertical.sc-ix-workflow-step{flex-direction:row;padding:0}.sc-ix-workflow-step-h .step.vertical.sc-ix-workflow-step .wrapper.sc-ix-workflow-step{width:auto;padding-left:1.125rem;height:4rem}.sc-ix-workflow-step-h .step.vertical.sc-ix-workflow-step .wrapper.sc-ix-workflow-step .line.sc-ix-workflow-step{width:0.125rem;height:100%}.sc-ix-workflow-step-h .step.vertical.sc-ix-workflow-step .wrapper.sc-ix-workflow-step .line.first.sc-ix-workflow-step,.sc-ix-workflow-step-h .step.vertical.sc-ix-workflow-step .wrapper.sc-ix-workflow-step .line.last.sc-ix-workflow-step{height:50%;margin:auto 0 0 0}.sc-ix-workflow-step-h .step.vertical.sc-ix-workflow-step .wrapper.sc-ix-workflow-step .line.last.sc-ix-workflow-step{margin:0 0 auto 0}.sc-ix-workflow-step-h .step.vertical.sc-ix-workflow-step .wrapper.sc-ix-workflow-step .line.single.sc-ix-workflow-step{width:0}.sc-ix-workflow-step-h .step.vertical.sc-ix-workflow-step .text.sc-ix-workflow-step{margin-top:0;margin-left:1rem;padding:0}.sc-ix-workflow-step-h .step.sc-ix-workflow-step:hover{background-color:var(--theme-workflow-step--background--hover)}.sc-ix-workflow-step-h .step.sc-ix-workflow-step:active{background-color:var(--theme-workflow-step--background--active)}.sc-ix-workflow-step-h .step.sc-ix-workflow-step:focus-visible{outline:1px solid var(--focus--border-color);border-radius:0}.sc-ix-workflow-step-h .step.selected.sc-ix-workflow-step{background-color:var(--theme-workflow-step--background--selected)}.sc-ix-workflow-step-h .step.disabled.sc-ix-workflow-step{background-color:var(--theme-workflow-step--background--disabled)}.sc-ix-workflow-step-h .step.disabled.sc-ix-workflow-step .line.sc-ix-workflow-step{background-color:var(--theme-workflow-step-icon-default--color--disabled) !important}.sc-ix-workflow-step-h .step.disabled.sc-ix-workflow-step .text.sc-ix-workflow-step{color:var(--theme-workflow-step--color--disabled)}";const c=class{constructor(o){s(this,o);this.selectedChanged=e(this,"selectedChanged",7);this.vertical=false;this.disabled=false;this.status="open";this.clickable=false;this.selected=false;this.position="undefined";this.iconName="circle";this.iconColor="workflow-step-icon-default--color"}select(){if(!this.clickable)return;if(this.disabled)return;this.selected=true;this.selectedHandler()}selectedHandler(){const s=this.selected?"--selected":"";if(this.status==="open"){this.iconName=this.selected?"circle-dot":"circle";this.iconColor=`workflow-step-icon-default--color${s}`}if(this.status==="done"&&!this.disabled){this.iconColor=`workflow-step-icon-done--color${s}`}}watchPropHandler(){switch(this.status){case"open":this.iconName="circle";this.iconColor="workflow-step-icon-default--color";break;case"success":this.iconName="success";this.iconColor="color-success";break;case"done":this.iconName="success";this.iconColor="workflow-step-icon-done--color";break;case"warning":this.iconName="warning";this.iconColor="color-warning";break;case"error":this.iconName="error";this.iconColor="color-alarm";break;default:this.iconName="circle";break}if(this.disabled){this.iconColor="workflow-step-icon-success--color--disabled"}}componentDidLoad(){this.watchPropHandler();this.selectedHandler();this.customIconSlot=!!this.hostElement.querySelector('[slot="custom-icon"]')}clickFunction(){if(!this.disabled&&this.clickable){this.selectedChanged.emit(this.hostElement)}}render(){const s=!this.customIconSlot?o(t,null,o("ix-icon",{color:"color-1",name:this.iconName==="warning"?"triangle-filled":"circle-filled",class:"absolute",size:"24"}),o("ix-icon",{color:this.iconColor,name:this.iconName,class:"absolute",size:"24"})):"";return o(r,null,o("div",{tabIndex:0,onClick:()=>this.select(),class:{step:true,selected:this.selected,vertical:this.vertical,disabled:this.disabled}},o("div",{class:"wrapper"},o("div",{class:{line:true,selected:this.selected,[this.status]:true,[this.position]:true}}),o("div",{class:"iconWrapper"},s,o("slot",{name:"custom-icon"}))),o("div",{class:"text"},o("slot",null))))}get hostElement(){return i(this)}static get watchers(){return{selected:["selectedHandler"],status:["watchPropHandler"]}}};c.style=w;const p=".sc-ix-workflow-steps-h .steps.sc-ix-workflow-steps{display:flex}.sc-ix-workflow-steps-h .steps.vertical.sc-ix-workflow-steps{display:block}";const a=class{constructor(o){s(this,o);this.stepSelected=e(this,"stepSelected",7);this.vertical=false;this.linear=false;this.clickable=false;this.selectedIndex=0}getSteps(){return Array.from(this.hostElement.querySelectorAll("ix-workflow-step"))}get stepsContent(){return this.hostElement.querySelector(".steps")}updateSteps(){let s=this.getSteps();s.forEach(((e,o)=>{e.vertical=this.vertical;e.clickable=this.clickable;e.selected=this.selectedIndex===o;if(s.length===1){e.position="single";return}if(o===0){e.position="first"}else if(o===s.length-1){e.position="last"}else{e.position="undefined"}}))}componentDidLoad(){this.stepsContent.addEventListener("selectedChanged",(s=>{const e=this.getSteps();e.forEach((e=>{if(e!==s.target){e.selected=false}}))}));const s=this.hostElement.querySelector(".steps");this.observer=l((s=>{for(let e of s){if(e.type==="childList"){this.updateSteps()}}}));this.observer.observe(s,{childList:true})}disconnectedCallback(){if(this.observer){this.observer.disconnect()}}componentDidRender(){this.updateSteps()}render(){return o(r,null,o("div",{class:{steps:true,vertical:this.vertical}},o("slot",null)))}get hostElement(){return i(this)}};a.style=p;export{c as ix_workflow_step,a as ix_workflow_steps};
|
|
2
|
+
//# sourceMappingURL=p-33160fe4.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["workflowStepCss","WorkflowStep","select","this","clickable","disabled","selected","selectedHandler","selectedStyle","status","iconName","iconColor","watchPropHandler","componentDidLoad","customIconSlot","hostElement","querySelector","clickFunction","selectedChanged","emit","render","icons","h","Fragment","color","name","class","size","Host","tabIndex","onClick","step","vertical","line","position","workflowStepsCss","WorkflowSteps","getSteps","Array","from","querySelectorAll","stepsContent","updateSteps","steps","forEach","element","index","selectedIndex","length","addEventListener","event","target","slotDiv","observer","createMutationObserver","mutations","mutation","type","observe","childList","disconnectedCallback","disconnect","componentDidRender"],"sources":["./src/components/workflow-step/workflow-step.scss?tag=ix-workflow-step&encapsulation=scoped","./src/components/workflow-step/workflow-step.tsx","./src/components/workflow-steps/workflow-steps.scss?tag=ix-workflow-steps&encapsulation=scoped","./src/components/workflow-steps/workflow-steps.tsx"],"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\n@import 'common-variables';\n\n:host {\n .step {\n display: flex;\n flex-direction: column;\n align-items: center;\n background-color: var(--theme-workflow-step--background);\n border-radius: var(--theme-workflow--border-radius);\n width: auto;\n padding: 1.125rem 0 $small-space 0;\n height: 4rem;\n width: 12.75rem;\n\n .wrapper {\n display: flex;\n width: 100%;\n align-items: center;\n justify-content: center;\n position: relative;\n\n .line {\n width: 100%;\n height: 0.125rem;\n background-color: var(--theme-workflow-step-icon-default--color);\n\n &.first,\n &.last {\n width: 50%;\n margin: 0 0 0 auto;\n }\n\n &.last {\n margin: 0 auto 0 0;\n }\n\n &.single {\n width: 0;\n }\n\n &.selected {\n background-color: var(\n --theme-workflow-step-icon-default--color--selected\n );\n }\n\n &.done {\n background-color: var(--theme-workflow-step-icon-done--color);\n\n &.selected {\n background-color: var(\n --theme-workflow-step-icon-done--color--selected\n );\n }\n }\n\n &.warning {\n background-color: var(--theme-color-warning);\n }\n\n &.success {\n background-color: var(--theme-color-success);\n }\n\n &.error {\n background-color: var(--theme-color-alarm);\n }\n }\n\n .iconWrapper {\n display: flex;\n align-items: center;\n justify-content: center;\n position: absolute;\n\n .absolute {\n position: absolute;\n }\n }\n }\n\n .text {\n margin-top: $default-space;\n width: auto;\n padding: 0 $small-space;\n }\n\n &.vertical {\n flex-direction: row;\n padding: 0;\n\n .wrapper {\n width: auto;\n padding-left: 1.125rem;\n height: 4rem;\n\n .line {\n width: 0.125rem;\n height: 100%;\n\n &.first,\n &.last {\n height: 50%;\n margin: auto 0 0 0;\n }\n\n &.last {\n margin: 0 0 auto 0;\n }\n\n &.single {\n width: 0;\n }\n }\n }\n\n .text {\n margin-top: 0;\n margin-left: $default-space;\n padding: 0;\n }\n }\n\n &:hover {\n background-color: var(--theme-workflow-step--background--hover);\n }\n\n &:active {\n background-color: var(--theme-workflow-step--background--active);\n }\n\n &:focus-visible {\n outline: 1px solid var(--focus--border-color);\n border-radius: 0;\n }\n\n &.selected {\n background-color: var(--theme-workflow-step--background--selected);\n }\n\n &.disabled {\n background-color: var(--theme-workflow-step--background--disabled);\n\n .line {\n background-color: var(\n --theme-workflow-step-icon-default--color--disabled\n ) !important;\n }\n\n .text {\n color: var(--theme-workflow-step--color--disabled);\n }\n }\n }\n}\n","/*\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 Fragment,\n h,\n Host,\n Listen,\n Prop,\n State,\n Watch,\n} from '@stencil/core';\n\n@Component({\n tag: 'ix-workflow-step',\n styleUrl: 'workflow-step.scss',\n scoped: true,\n})\nexport class WorkflowStep {\n @Element() hostElement: HTMLIxWorkflowStepElement;\n\n /**\n * Select orientation\n */\n @Prop() vertical: boolean = false;\n\n /**\n * Set disabled\n */\n @Prop() disabled: boolean = false;\n\n /**\n * Set status\n */\n @Prop() status: 'open' | 'success' | 'done' | 'warning' | 'error' = 'open';\n\n /**\n * Activate navigation click\n */\n @Prop() clickable: boolean = false;\n\n /**\n * Set selected\n */\n @Prop({ mutable: true }) selected: boolean = false;\n\n /**\n * Activate navigation click\n *\n * @deprecated Will be changed to '@internal' in 2.0.0\n */\n @Prop() position: 'first' | 'last' | 'single' | 'undefined' = 'undefined';\n\n @State() iconName: 'circle' | 'circle-dot' | 'success' | 'warning' | 'error' =\n 'circle';\n @State() iconColor: string = 'workflow-step-icon-default--color';\n\n /**\n * @internal\n */\n @Event() selectedChanged: EventEmitter<HTMLIxWorkflowStepElement>;\n\n private customIconSlot: boolean;\n\n private select() {\n if (!this.clickable) return;\n if (this.disabled) return;\n\n this.selected = true;\n this.selectedHandler();\n }\n\n @Watch('selected')\n selectedHandler() {\n const selectedStyle = this.selected ? '--selected' : '';\n\n if (this.status === 'open') {\n this.iconName = this.selected ? 'circle-dot' : 'circle';\n this.iconColor = `workflow-step-icon-default--color${selectedStyle}`;\n }\n\n if (this.status === 'done' && !this.disabled) {\n this.iconColor = `workflow-step-icon-done--color${selectedStyle}`;\n }\n }\n\n @Watch('status')\n watchPropHandler() {\n switch (this.status) {\n case 'open':\n this.iconName = 'circle';\n this.iconColor = 'workflow-step-icon-default--color';\n break;\n case 'success':\n this.iconName = 'success';\n this.iconColor = 'color-success';\n break;\n case 'done':\n this.iconName = 'success';\n this.iconColor = 'workflow-step-icon-done--color';\n break;\n case 'warning':\n this.iconName = 'warning';\n this.iconColor = 'color-warning';\n break;\n case 'error':\n this.iconName = 'error';\n this.iconColor = 'color-alarm';\n break;\n\n default:\n this.iconName = 'circle';\n break;\n }\n\n if (this.disabled) {\n this.iconColor = 'workflow-step-icon-success--color--disabled';\n }\n }\n\n componentDidLoad() {\n this.watchPropHandler();\n this.selectedHandler();\n\n this.customIconSlot = !!this.hostElement.querySelector(\n '[slot=\"custom-icon\"]'\n );\n }\n\n @Listen('click', { passive: true })\n clickFunction() {\n if (!this.disabled && this.clickable) {\n this.selectedChanged.emit(this.hostElement);\n }\n }\n\n render() {\n const icons = !this.customIconSlot ? (\n <Fragment>\n <ix-icon\n color=\"color-1\"\n name={\n this.iconName === 'warning' ? 'triangle-filled' : 'circle-filled'\n }\n class=\"absolute\"\n size=\"24\"\n ></ix-icon>\n <ix-icon\n color={this.iconColor}\n name={this.iconName}\n class=\"absolute\"\n size=\"24\"\n ></ix-icon>\n </Fragment>\n ) : (\n ''\n );\n\n return (\n <Host>\n <div\n tabIndex={0}\n onClick={() => this.select()}\n class={{\n step: true,\n selected: this.selected,\n vertical: this.vertical,\n disabled: this.disabled,\n }}\n >\n <div class=\"wrapper\">\n <div\n class={{\n line: true,\n selected: this.selected,\n [this.status]: true,\n [this.position]: true,\n }}\n ></div>\n <div class=\"iconWrapper\">\n {icons}\n <slot name=\"custom-icon\"></slot>\n </div>\n </div>\n <div class=\"text\">\n <slot></slot>\n </div>\n </div>\n </Host>\n );\n }\n}\n","/*\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\n@import 'common-variables';\n\n:host {\n .steps {\n display: flex;\n\n &.vertical {\n display: block;\n }\n }\n}\n","/*\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 Prop,\n} from '@stencil/core';\nimport { createMutationObserver } from '../utils/mutation-observer';\n\n@Component({\n tag: 'ix-workflow-steps',\n styleUrl: 'workflow-steps.scss',\n scoped: true,\n})\nexport class WorkflowSteps {\n @Element() hostElement!: HTMLIxWorkflowStepsElement;\n\n /**\n * Select orientation\n */\n @Prop() vertical: boolean = false;\n\n /**\n * Select linear mode\n * @deprecated Has no effect on component. Will get removed in 2.0.0\n */\n @Prop() linear: boolean = false;\n\n /**\n * Activate navigation click\n */\n @Prop() clickable: boolean = false;\n\n /**\n * Activate navigation click\n */\n @Prop() selectedIndex: number = 0;\n\n /**\n * On step selected event\n */\n @Event() stepSelected: EventEmitter<number>;\n\n private getSteps() {\n return Array.from(this.hostElement.querySelectorAll('ix-workflow-step'));\n }\n\n get stepsContent() {\n return this.hostElement.querySelector('.steps');\n }\n\n updateSteps() {\n let steps = this.getSteps();\n steps.forEach((element, index) => {\n element.vertical = this.vertical;\n element.clickable = this.clickable;\n element.selected = this.selectedIndex === index;\n\n if (steps.length === 1) {\n element.position = 'single';\n return;\n }\n\n if (index === 0) {\n element.position = 'first';\n } else if (index === steps.length - 1) {\n element.position = 'last';\n } else {\n element.position = 'undefined';\n }\n });\n }\n\n private observer: MutationObserver;\n\n componentDidLoad() {\n this.stepsContent.addEventListener(\n 'selectedChanged',\n (event: CustomEvent<HTMLIxWorkflowStepElement>) => {\n const steps = this.getSteps();\n steps.forEach((element) => {\n if (element !== event.target) {\n element.selected = false;\n }\n });\n }\n );\n\n const slotDiv = this.hostElement.querySelector('.steps');\n\n this.observer = createMutationObserver((mutations) => {\n for (let mutation of mutations) {\n if (mutation.type === 'childList') {\n this.updateSteps();\n }\n }\n });\n\n this.observer.observe(slotDiv, { childList: true });\n }\n\n disconnectedCallback() {\n if (this.observer) {\n this.observer.disconnect();\n }\n }\n\n componentDidRender() {\n this.updateSteps();\n }\n\n render() {\n return (\n <Host>\n <div class={{ steps: true, vertical: this.vertical }}>\n <slot></slot>\n </div>\n </Host>\n );\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as t,c as e,h as i,H as s,g as n,f as o}from"./p-8fcd6f85.js";import{m as a,h as r,i as m}from"./p-529d7530.js";import{a as h}from"./p-21aa3602.js";import{s as l}from"./p-1572aab3.js";import{t as c}from"./p-323d5529.js";import"./p-9ee41861.js";const u="ix-menu{display:flex;flex-direction:row;position:absolute;height:100%;min-height:22.75rem;z-index:var(--theme-z-index-sticky);width:auto}ix-menu .menu{display:flex;flex-direction:column;position:relative;width:4rem;height:100%;-webkit-padding-after:1rem;padding-block-end:1rem;overflow:hidden;background-color:var(--theme-nav--background);transition:width var(--animate-duration)}ix-menu .menu.expanded{box-shadow:var(--theme-navigation--box-shadow)}ix-menu .menu .burger-menu{margin:0.75rem 0 1rem 0.75rem}ix-menu .menu-overlay{display:block;position:absolute;width:calc(100vw - 4rem);height:100%;left:4rem;z-index:-1;-webkit-backdrop-filter:blur(1rem);backdrop-filter:blur(1rem);background-color:var(--theme-sidebar-overlay-blur);transition:all 300ms ease-out}ix-menu .menu-overlay-invisible{display:none}ix-menu .menu.expanded{width:16rem}ix-menu .menu-overlay.expanded{width:calc(100vw - 16rem);left:16rem}ix-menu #avatar-tab-placeholder{max-height:3rem}ix-menu .avatar{margin-bottom:2rem}ix-menu #cui-imprint .cui-imprint-product-name{margin-bottom:1rem}ix-menu #cui-imprint .cui-imprint-product-description{margin-bottom:2rem}ix-menu #cui-imprint .cui-imprint-link-container{display:flex;align-items:center}ix-menu .bottom-tab-divider{margin-top:auto}ix-menu.mode-mobile .menu:not(.expanded){width:0}ix-menu.mode-mobile .menu{padding-top:2rem}ix-menu.mode-mobile .menu .burger-menu{display:none}ix-menu.mode-mobile .menu-overlay{left:0px;width:100vw}a[href]:has(>ix-menu-item){text-decoration:none}";const d=class{constructor(i){t(this,i);this.expandChange=e(this,"expandChange",7);this.mapExpandChange=e(this,"mapExpandChange",7);this.domObserver=new MutationObserver(this.onDomChange.bind(this));this.isVisible=t=>{var e,i;return t.style.display!=="none"&&((i=(e=t.parentElement)===null||e===void 0?void 0:e.parentElement)===null||i===void 0?void 0:i.style.display)!=="none"};this.showSettings=false;this.showAbout=false;this.enableToggleTheme=false;this.enableSettings=true;this.enableMapExpand=false;this.applicationName=undefined;this.applicationDescription="";this.maxVisibleMenuItems=9;this.i18nLegal="About & legal information";this.i18nSettings="Settings";this.i18nToggleTheme="Toggle theme";this.i18nExpand=" Expand";this.i18nCollapse="Collapse";this.i18nMore="More…";this.expand=false;this.showMoreItems=false;this.visibleMenuItems=0;this.countMoreNotifications=0;this.mapExpand=true;this.activeTab=undefined;this.isMoreTabEmpty=false;this.mode="desktop"}onWindowResize(){this.visibleMenuItems=this.getMaxTabCount()}handleNodeMutation(t){if(!(t instanceof HTMLElement)){return}if(t.matches(".tab")){this.onWindowResize()}if(t.matches("ix-menu-about")&&this.menu.contains(t)){this.appendAbout()}if(t.matches("ix-menu-settings")&&this.menu.contains(t)){this.appendSettings()}}onDomChange(t){t.forEach((t=>{t.addedNodes.forEach(this.handleNodeMutation.bind(this));t.removedNodes.forEach(this.handleNodeMutation.bind(this))}))}get popoverArea(){return this.hostElement.querySelector("#popover-area")}get overlayContainer(){return this.hostElement.querySelector(".menu-overlay")}get invisibleContainer(){return this.hostElement.querySelector(".menu-overlay-invisible")}get menu(){return this.hostElement.querySelector(".menu")}get menuItems(){return Array.from(this.hostElement.querySelectorAll('ix-menu-item:not(.internal-tab):not(.home-tab):not(.bottom-tab):not([slot="bottom"])')).filter(this.isVisible)}get menuBottomItems(){return Array.from(this.hostElement.querySelectorAll("ix-menu-item.bottom-tab:not(.internal-tab):not(.home-tab)")).filter(this.isVisible)}get homeTab(){return this.hostElement.querySelector("ix-menu-item.home-tab")}get moreItemsDropdown(){return this.hostElement.querySelector(".internal-tab ix-dropdown")}get isMoreItemsDropdownEmpty(){return this.hostElement.querySelectorAll(".internal-tab ix-dropdown .appended").length===0}get moreItemsDropdownItems(){return this.hostElement.querySelectorAll(".internal-tab ix-dropdown ix-menu-item")}get activeMoreTabContainer(){return this.hostElement.querySelector(".active-more-tab")}get activeMoreTab(){return this.hostElement.querySelector(".active-more-tab ix-menu-item")}get aboutPopoverContainer(){return this.hostElement.querySelector(".about-news")}get aboutPopover(){return document.querySelector("ix-menu-about-news")}get aboutTab(){return this.hostElement.querySelector("#aboutAndLegal")}get about(){return this.hostElement.querySelector("ix-menu-about")}get settings(){return this.hostElement.querySelector("ix-menu-settings")}get isSettingsEmpty(){return Array.from(this.hostElement.querySelectorAll("ix-menu-settings-item")).length===0}get avatarItem(){return this.hostElement.querySelector("ix-menu-avatar")}get tabsContainer(){return this.hostElement.querySelector("#menu-tabs")}showTab(t){return t+1<=this.visibleMenuItems}componentDidLoad(){var t,e,i,s;(t=this.settings)===null||t===void 0?void 0:t.addEventListener("close",(()=>{this.showSettings=false;this.settings.show=this.showSettings}));(e=this.settings)===null||e===void 0?void 0:e.addEventListener("animationend",(()=>{if(!this.showSettings){this.settings.classList.add("d-none");this.overlayContainer.classList.add("d-none")}}));(i=this.about)===null||i===void 0?void 0:i.addEventListener("close",(()=>{this.showAbout=false;this.about.show=this.showAbout}));(s=this.about)===null||s===void 0?void 0:s.addEventListener("animationend",(()=>{if(!this.showAbout){this.about.classList.add("d-none");this.overlayContainer.classList.add("d-none")}}));this.overlayContainer.classList.add("d-none");this.onWindowResize();this.domObserver.observe(this.hostElement,{attributes:false,childList:true,subtree:true})}componentWillLoad(){a.register(this.hostElement);const t=r("ix-basic-navigation",this.hostElement);if(m(t)&&t.hideHeader===false){l.onChange.on((t=>this.mode=t));this.mode=l.mode}}componentWillRender(){this.appendTabs()}componentDidRender(){this.visibleMenuItems=this.getMaxTabCount();this.appendFragments()}appendFragments(){this.appendAvatar();this.appendAbout();this.appendSettings();this.appendAboutNewsPopover();this.isMoreTabEmpty=this.isMoreItemsDropdownEmpty;this.countMoreNotifications=this.getMoreNotificationsCount()}resetActiveTab(){this.activeTab=null}isMenuItemActive(t){return t.active||t.classList.contains("active")}appendTabs(){this.activeTab=null;if(this.homeTab){this.hostElement.querySelector(".tabs-top").appendChild(this.homeTab);this.homeTab.addEventListener("click",this.resetOverlay.bind(this))}this.menuItems.forEach(((t,e)=>{var i;if(this.showTab(e)){t.classList.remove("d-none")}else{t.classList.add("d-none");if(this.isMenuItemActive(t)){this.activeTab=t}}(i=this.homeTab)===null||i===void 0?void 0:i.classList.remove("d-none");t.addEventListener("click",this.resetOverlay.bind(this))}))}appendAvatar(){var t;const e=this.avatarItem;if(e){e.style.marginBottom="1rem";(t=this.hostElement.querySelector("#avatar-tab-placeholder"))===null||t===void 0?void 0:t.appendChild(e)}}getAboutPopoverVerticalPosition(){const t=12;const e=6;const i=this.aboutTab.getBoundingClientRect();const s=window.innerHeight-(i.bottom-i.height/2+t/2+e);return h(s)}appendAboutNewsPopover(){var t;if(!this.aboutPopover){return}this.aboutPopover.style.bottom=this.getAboutPopoverVerticalPosition();if(!((t=this.popoverArea)===null||t===void 0?void 0:t.contains(this.aboutPopover))){const t=()=>{var t;if((t=this.aboutPopover)===null||t===void 0?void 0:t.aboutItemLabel){this.about.activeTabLabel=this.aboutPopover.aboutItemLabel;this.toggleAbout(true)}};this.aboutPopover.addEventListener("showMore",t.bind(this));document.body.appendChild(this.aboutPopover)}}appendSettings(){if(this.settings){this.overlayContainer.appendChild(this.settings)}}appendAbout(){if(this.about){this.overlayContainer.appendChild(this.about)}}getMoreNotificationsCount(){var t;const e=(t=this.moreItemsDropdown)===null||t===void 0?void 0:t.querySelectorAll(".appended");let i=0;e===null||e===void 0?void 0:e.forEach((t=>{if(t["notifications"]){i+=t["notifications"]}}));return i}getAvailableHeight(){const t=60;const e=72;const i=56;const s=36;let n=this.hostElement.clientHeight;n-=t;if(this.avatarItem){n-=i}if(this.homeTab){n-=e}if(this.showAbout){n-=s}if(this.showSettings){n-=s}if(this.menuBottomItems.length){n-=this.menuBottomItems.length*s}if(this.enableMapExpand){n-=s}n-=2*s;n-=16;return n}getMaxTabCount(){const t=48;const e=this.getAvailableHeight();const i=Math.floor(e/t);const s=this.menuItems.length;if(s===1){return 1}if(s<this.maxVisibleMenuItems){if(i>s){return s}return Math.min(i-2,s)}if(s===this.maxVisibleMenuItems){if(i<this.maxVisibleMenuItems){return i-2}if(i===this.maxVisibleMenuItems){return this.maxVisibleMenuItems-2}return Math.min(i,this.maxVisibleMenuItems)}if(i===this.maxVisibleMenuItems){return this.maxVisibleMenuItems-2}if(i>=this.maxVisibleMenuItems){return this.maxVisibleMenuItems-1}return Math.min(i-2,this.maxVisibleMenuItems)}async toggleMapExpand(t){this.skipAllOverlayAnimations();if(t!==undefined){this.mapExpand=t}else{this.mapExpand=!this.mapExpand}}skipAllOverlayAnimations(){if(this.about){this.skipOverlayAnimationFor(this.about)}if(this.settings){this.skipOverlayAnimationFor(this.settings)}}skipOverlayAnimationFor(t){const e="animate__animated";t===null||t===void 0?void 0:t.classList.remove(e);setTimeout((()=>{t===null||t===void 0?void 0:t.classList.add(e)}),300)}async toggleMenu(t){this.skipAllOverlayAnimations();if(t!==undefined){this.expand=t}else{this.expand=!this.expand}if(this.aboutPopover){this.aboutPopover.expanded=this.expand}this.expandChange.emit(this.expand)}async toggleSettings(t){var e;if(this.showAbout){this.skipAllOverlayAnimations()}else{this.skipOverlayAnimationFor(this.about)}(e=this.about)===null||e===void 0?void 0:e.classList.add("d-none");this.resetOverlay();this.showSettings=t;this.settings.show=this.showSettings;this.settings.classList.remove("d-none");this.overlayContainer.classList.remove("d-none")}async toggleAbout(t){var e;if(this.showSettings){this.skipAllOverlayAnimations()}else{this.skipOverlayAnimationFor(this.settings)}(e=this.settings)===null||e===void 0?void 0:e.classList.add("d-none");this.resetOverlay();this.showAbout=t;this.about.show=this.showAbout;this.about.classList.remove("d-none");this.overlayContainer.classList.remove("d-none")}resetOverlay(){this.showSettings=false;this.showAbout=false;if(this.settings){this.settings.show=this.showSettings}if(this.about){this.about.show=this.showAbout}this.toggleMenu(false)}showMoreButton(){const t=this.menuItems.length;if(t===1){return false}if(t<this.maxVisibleMenuItems){return this.visibleMenuItems<t}if(t>this.maxVisibleMenuItems){return this.visibleMenuItems<this.maxVisibleMenuItems}return this.visibleMenuItems<=this.maxVisibleMenuItems-2}getCollapseText(){return this.mapExpand?this.i18nCollapse:this.i18nExpand}getCollapseIcon(){return this.mapExpand?"double-chevron-left":"double-chevron-right"}isMenuItemClicked(t){const e=t.composedPath();const i=e.filter((t=>t.id!=="ix-menu-more-tab")).filter((t=>t.tagName==="IX-MENU-ITEM"));return i.some((t=>this.tabsContainer.contains(t)))}render(){return i(s,{class:{expanded:this.expand,[`mode-${this.mode}`]:true}},i("div",{class:{menu:true,expanded:this.expand},onClick:()=>{this.resetActiveTab()}},i("ix-burger-menu",{onClick:async()=>this.toggleMenu(),expanded:this.expand,class:{"burger-menu":true}}),i("div",{id:"avatar-tab-placeholder"}),i("div",{id:"menu-tabs",style:{display:"contents"},onClick:t=>{if(this.isMenuItemClicked(t)){this.resetOverlay()}}},i("div",{class:"tabs-top"}),i("slot",null),i("div",{class:"active-more-tab"},this.activeTab?i("ix-menu-item",{class:"internal-tab",active:true,tabIcon:this.activeTab.tabIcon},this.activeTab.innerText):null),i("ix-menu-item",{id:"ix-menu-more-tab",tabIcon:"more-menu",class:{"internal-tab":true},style:{display:this.showMoreButton()?"block":"none"},title:"Show more",notifications:this.countMoreNotifications},this.i18nMore,i("ix-dropdown",{trigger:"ix-menu-more-tab",positioningStrategy:"fixed",placement:"right-start"},this.menuItems.filter(((t,e)=>!this.showTab(e)&&!this.isMenuItemActive(t)&&this.isVisible(t))).map((t=>i("ix-menu-item",{tabIcon:t.tabIcon,active:t.active,class:"internal-tab appended",onClick:()=>{this.resetOverlay();t.dispatchEvent(new CustomEvent("click"))}},t.innerText)))))),i("div",{class:"bottom-tab-divider"}),this.enableSettings&&!this.isSettingsEmpty?i("ix-menu-item",{id:"settings",class:{"internal-tab":true,"bottom-tab":true,active:this.showSettings},tabIcon:"cogwheel",onClick:async()=>this.toggleSettings(!this.showSettings)},this.i18nSettings):null,i("slot",{name:"bottom"}),i("div",{id:"popover-area"}),this.about?i("ix-menu-item",{id:"aboutAndLegal",class:{"internal-tab":true,"bottom-tab":true,active:this.showAbout},tabIcon:"info",onClick:async()=>this.toggleAbout(!this.showAbout)},this.i18nLegal):null,this.enableToggleTheme?i("ix-menu-item",{id:"toggleTheme",onClick:()=>c.toggleMode(),class:"internal-tab bottom-tab",tabIcon:"bulb"},this.i18nToggleTheme):null,this.enableMapExpand?i("ix-menu-item",{id:"menu-collapse",onClick:()=>this.mapExpandChange.emit(this.mapExpand),class:"internal-tab bottom-tab",tabIcon:`${this.getCollapseIcon()}`},this.getCollapseText()):null),i("div",{class:{"menu-overlay":true,expanded:this.expand,"d-block":this.showAbout||this.showSettings},style:{opacity:this.showAbout||this.showSettings?"1":"0"}}),i("div",{class:"menu-overlay-invisible"}))}get hostElement(){return n(this)}};d.style=u;const x=".text-xs.sc-ix-menu-about{-webkit-font-smoothing:antialiased;-moz-osx-font-smooting:grayscale;font-family:Siemens Sans, sans-serif;font-size:0.625rem;font-weight:400;line-height:1.4em;color:var(--theme-color-std-text)}.text-s.sc-ix-menu-about{-webkit-font-smoothing:antialiased;-moz-osx-font-smooting:grayscale;font-family:Siemens Sans, sans-serif;font-size:0.75rem;font-weight:400;line-height:1.5em;color:var(--theme-color-std-text)}.text-caption.sc-ix-menu-about{-webkit-font-smoothing:antialiased;-moz-osx-font-smooting:grayscale;font-family:Siemens Sans, sans-serif;font-size:0.75rem;font-weight:700;line-height:1.5em;color:var(--theme-color-std-text)}.text-caption-single.sc-ix-menu-about{-webkit-font-smoothing:antialiased;-moz-osx-font-smooting:grayscale;font-family:Siemens Sans, sans-serif;font-size:0.75rem;font-weight:700;line-height:1em;color:var(--theme-color-std-text)}.text-default.sc-ix-menu-about{-webkit-font-smoothing:antialiased;-moz-osx-font-smooting:grayscale;font-family:Siemens Sans, sans-serif;font-size:0.875rem;font-weight:400;line-height:1.429em;color:var(--theme-color-std-text)}.text-default-single.sc-ix-menu-about{-webkit-font-smoothing:antialiased;-moz-osx-font-smooting:grayscale;font-family:Siemens Sans, sans-serif;font-size:0.875rem;font-weight:400;line-height:1.143em;color:var(--theme-color-std-text)}.text-default-title.sc-ix-menu-about{-webkit-font-smoothing:antialiased;-moz-osx-font-smooting:grayscale;font-family:Siemens Sans, sans-serif;font-size:0.875rem;font-weight:700;line-height:1.429em;color:var(--theme-color-std-text)}.text-default-title-single.sc-ix-menu-about{-webkit-font-smoothing:antialiased;-moz-osx-font-smooting:grayscale;font-family:Siemens Sans, sans-serif;font-size:0.875rem;font-weight:700;line-height:1.143em;color:var(--theme-color-std-text)}.text-l.sc-ix-menu-about{-webkit-font-smoothing:antialiased;-moz-osx-font-smooting:grayscale;font-family:Siemens Sans, sans-serif;font-size:1rem;font-weight:400;line-height:1.5em;color:var(--theme-color-std-text)}.text-l-single.sc-ix-menu-about{-webkit-font-smoothing:antialiased;-moz-osx-font-smooting:grayscale;font-family:Siemens Sans, sans-serif;font-size:1rem;font-weight:400;line-height:1.25em;color:var(--theme-color-std-text)}.text-l-title.sc-ix-menu-about{-webkit-font-smoothing:antialiased;-moz-osx-font-smooting:grayscale;font-family:Siemens Sans, sans-serif;font-size:1rem;font-weight:700;line-height:1.5em;color:var(--theme-color-std-text)}.text-l-title-single.sc-ix-menu-about{-webkit-font-smoothing:antialiased;-moz-osx-font-smooting:grayscale;font-family:Siemens Sans, sans-serif;font-size:1rem;font-weight:700;line-height:1.25em;color:var(--theme-color-std-text)}.text-h2.sc-ix-menu-about{-webkit-font-smoothing:antialiased;-moz-osx-font-smooting:grayscale;font-family:Siemens Sans, sans-serif;font-size:1.375rem;font-weight:700;line-height:1.455em;color:var(--theme-color-std-text)}.text-xl.sc-ix-menu-about{-webkit-font-smoothing:antialiased;-moz-osx-font-smooting:grayscale;font-family:Siemens Sans, sans-serif;font-size:1.375rem;font-weight:400;line-height:1.091em;color:var(--theme-color-std-text)}a.sc-ix-menu-about{color:var(--theme-color-primary)}.sc-ix-menu-about-h{display:block;background-color:var(--theme-nav-overlay--background);padding:0.75rem 1rem 1rem 2rem;flex-grow:1;position:absolute;width:100%;height:100%}.sc-ix-menu-about-h .about-header.sc-ix-menu-about{display:flex;justify-content:space-between;flex-direction:row;align-items:center;height:2rem;margin-bottom:0.5rem}.sc-ix-menu-about-h .about-header.sc-ix-menu-about h2.sc-ix-menu-about{color:var(--theme-nav-overlay-header--color);margin-bottom:0}.sc-ix-menu-about-h .about-tabs.sc-ix-menu-about{margin-bottom:1.5rem}.sc-ix-menu-about-h ix-menu-about-item.sc-ix-menu-about{display:none}";const b=class{constructor(i){t(this,i);this.close=e(this,"close",7);this.activeTabLabel=undefined;this.label="About & legal information";this.show=false;this.labels=[]}get aboutItems(){return Array.from(this.el.querySelectorAll("ix-menu-about-item"))}setTab(t){this.activeTabLabel=t;this.aboutItems.forEach((t=>{t.style.display="none";if(t.label===this.activeTabLabel){t.style.display="block"}}))}componentWillLoad(){if(this.aboutItems.length){this.setTab(this.activeTabLabel||this.aboutItems[0].label)}}componentDidLoad(){o(this.el)}componentWillRender(){this.updateLabels()}updateLabels(){this.labels=this.aboutItems.map((t=>t.label))}watchActiveTabLabel(t){setTimeout((()=>this.setTab(t)))}getSelectedTabIndex(t){const e=this.aboutItems.find((e=>e.label===t));return this.aboutItems.indexOf(e)}getTabItems(){return this.aboutItems.map((({label:t})=>i("ix-tab-item",{class:{active:t===this.activeTabLabel},onClick:()=>this.setTab(t)},t)))}render(){return i(s,{class:{animate__animated:true,animate__fadeInLeft:this.show,animate__fadeOutLeft:!this.show}},i("div",{class:"about-header"},i("h2",{class:"text-h2"},this.label),i("ix-icon-button",{ghost:true,size:"24",icon:"close",onClick:t=>this.close.emit(t)})),i("ix-tabs",{selected:this.getSelectedTabIndex(this.activeTabLabel),class:"about-tabs"},this.getTabItems()),i("div",{class:"about-items"},i("slot",null)))}get el(){return n(this)}static get watchers(){return{activeTabLabel:["watchActiveTabLabel"]}}};b.style=x;const g=".sc-ix-menu-about-item-h{display:block}";const f=class{constructor(e){t(this,e);this.label=undefined}render(){return i(s,null,i("slot",null))}};f.style=g;const v=".sc-ix-menu-about-news-h{--margin:0.5rem;display:block;position:fixed;width:20rem;height:auto;background-color:var(--theme-color-1);border:var(--theme-weak-bdr-1);border-radius:0.25rem;padding:1rem;left:4rem;z-index:10000;transition:left var(--animate-duration);margin-left:var(--margin) !important;box-shadow:var(--theme-box-shadow-level-4)}.expanded.sc-ix-menu-about-news-h{left:calc(4rem + 12rem)}.show.sc-ix-menu-about-news-h{display:none}.sc-ix-menu-about-news-h .banner-container.sc-ix-menu-about-news{position:absolute;top:0.0625rem;left:1rem}.sc-ix-menu-about-news-h .banner-container.sc-ix-menu-about-news svg.sc-ix-menu-about-news{position:absolute;height:3.625rem;width:3rem}.sc-ix-menu-about-news-h .banner-container.sc-ix-menu-about-news svg.sc-ix-menu-about-news polygon.sc-ix-menu-about-news{fill:var(--theme-color-primary)}.sc-ix-menu-about-news-h .banner-container.sc-ix-menu-about-news ix-icon.sc-ix-menu-about-news{margin:0.5rem;position:absolute;z-index:1}.sc-ix-menu-about-news-h .cui-popover-news-header.sc-ix-menu-about-news{margin-bottom:2rem;margin-left:4rem;margin-top:-0.25rem}.sc-ix-menu-about-news-h .popover-body.sc-ix-menu-about-news{color:var(--theme-color-std-text)}.sc-ix-menu-about-news-h .cui-popover-news-footer.sc-ix-menu-about-news{display:flex;justify-content:flex-end;margin-top:1rem}.sc-ix-menu-about-news-h ix-icon-button.sc-ix-menu-about-news{top:0.5rem;right:0.5rem;position:absolute}.sc-ix-menu-about-news-h #arrow.sc-ix-menu-about-news{position:absolute;width:0.5rem;height:0.5rem;background-color:var(--theme-color-1);border-left:var(--theme-weak-bdr-1);border-bottom:var(--theme-weak-bdr-1);transform:translateX(calc(var(--margin) * -1 - 0.8rem)) rotateZ(45deg)}";const p=class{constructor(i){t(this,i);this.showMore=e(this,"showMore",7);this.closePopover=e(this,"closePopover",7);this.show=false;this.label=undefined;this.i18nShowMore="Show more";this.aboutItemLabel=undefined;this.offsetBottom=0;this.expanded=false}render(){return i(s,{class:{expanded:this.expanded,show:!this.show}},i("div",{class:"banner-container"},i("ix-icon",{color:"color-inv-contrast-text",name:"shout",size:"32"}),i("svg",{viewBox:"0 0 48 56",xmlns:"http://www.w3.org/2000/svg"},i("polygon",{points:"0 0 48 0 48 56 24 48 0 56"}))),i("div",{class:"cui-popover-news-header"},i("span",{class:"text-l-title"},this.label)),i("ix-icon-button",{size:"24",icon:"close-small",ghost:true,onClick:()=>{this.show=false;this.closePopover.emit()}}),i("slot",null),this.aboutItemLabel?i("div",{class:"cui-popover-news-footer"},i("button",{class:"btn btn-primary",onClick:t=>{this.show=false;this.showMore.emit(t)}},this.i18nShowMore)):null,i("div",{id:"arrow"}))}};p.style=v;const w=".sc-ix-menu-avatar-h{display:block;position:relative;margin-bottom:0.5rem}.sc-ix-menu-avatar-h .avatar.sc-ix-menu-avatar{display:flex;align-items:center;height:2.5rem;max-height:2.5rem;padding-left:0.25rem;margin-left:0.75rem;margin-right:0.75rem;transition:0.15s;border-radius:1.25rem}.sc-ix-menu-avatar-h .avatar.sc-ix-menu-avatar>.avatar-image.sc-ix-menu-avatar{height:2rem;width:2rem;min-height:2rem;min-width:2rem;border-radius:100px}.sc-ix-menu-avatar-h .avatar.sc-ix-menu-avatar>.avatar-initials.sc-ix-menu-avatar{display:flex;align-items:center;justify-content:center;height:2rem;width:2rem;min-height:2rem;min-width:2rem;border-radius:100px;background-color:var(--theme-color-component-3)}.sc-ix-menu-avatar-h .avatar.sc-ix-menu-avatar #avatar-path-background.sc-ix-menu-avatar{fill:var(--theme-avatar--background)}.sc-ix-menu-avatar-h .avatar.sc-ix-menu-avatar #avatar-path-person.sc-ix-menu-avatar{fill:var(--theme-color-4)}.sc-ix-menu-avatar-h .avatar.sc-ix-menu-avatar .avatar-name.sc-ix-menu-avatar{display:flex;flex-direction:column;overflow:hidden;white-space:nowrap;margin-left:1rem;line-height:1.14}.sc-ix-menu-avatar-h .avatar.sc-ix-menu-avatar .avatar-name.sc-ix-menu-avatar .text-default-single.sc-ix-menu-avatar{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sc-ix-menu-avatar-h .avatar.sc-ix-menu-avatar:not(.disabled):not(:disabled){cursor:pointer}.sc-ix-menu-avatar-h .avatar.sc-ix-menu-avatar:not(.disabled):not(:disabled):hover{background-color:var(--theme-avatar-btn--background--hover);color:var(--theme-avatar-btn--color--hover)}.sc-ix-menu-avatar-h .avatar.sc-ix-menu-avatar:not(.disabled):not(:disabled){cursor:pointer}.sc-ix-menu-avatar-h .avatar.sc-ix-menu-avatar:not(.disabled):not(:disabled):active{background-color:var(--theme-avatar-btn--background--active);color:var(--theme-avatar-btn--color--active)}";function y(t){const{initials:e}=t;if(e){return i("div",{class:"avatar-initials"},e)}return i("svg",{class:"avatar-image",xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32",viewBox:"0 0 32 32"},i("g",{fill:"none","fill-rule":"evenodd"},i("path",{id:"avatar-path-background",d:"M16 0C7.163 0 0 7.163 0 16s7.163 16 16 16 16-7.163\n 16-16c0-4.243-1.686-8.313-4.686-11.314C24.314 1.686 20.244 0 16 0z"}),i("path",{id:"avatar-path-person",d:"M17.897 17.91c3.8-.018 7.358 1.875 9.485 5.046-2.417 3.999-6.734 6.434-11.382\n 6.42-4.648.014-8.965-2.421-11.382-6.42 2.127-3.171 5.685-5.064\n 9.485-5.045h3.794zM15.821 2.129c3.682 0 6.667 2.984 6.667 6.666 0 3.682-2.985\n 6.667-6.667 6.667s-6.667-2.985-6.667-6.667 2.985-6.666 6.667-6.666z"})))}const k=class{constructor(i){t(this,i);this.logoutClick=e(this,"logoutClick",7);this.avatarElementId="ix-menu-avatar-id";this.top=undefined;this.bottom=undefined;this.image=undefined;this.initials=undefined;this.i18nLogout="Logout"}render(){return i(s,null,i("li",{class:"nav-item top-item avatar no-hover",title:this.top,id:this.avatarElementId},this.image?i("img",{src:this.image,class:"avatar-image"}):i(y,{initials:this.initials}),i("div",{class:"avatar-name"},i("span",{class:"text-default-single",title:this.top},this.top),i("span",{class:"text-default-single",title:this.bottom},this.bottom))),i("ix-dropdown",{trigger:this.avatarElementId,placement:"right-start",offset:{mainAxis:12}},i("slot",null),i("ix-menu-avatar-item",{label:this.i18nLogout,icon:"log-out",onClick:t=>{this.logoutClick.emit(t)}})))}get hostElement(){return n(this)}};k.style=w;const z=".sc-ix-menu-avatar-item-h{display:block}";const S=class{constructor(i){t(this,i);this.itemClick=e(this,"itemClick",7);this.icon=undefined;this.label=undefined}render(){return i("ix-dropdown-item",{icon:this.icon,label:this.label,onClick:t=>this.itemClick.emit(t)})}get hostElement(){return n(this)}};S.style=z;const C='.sc-ix-menu-item-h{position:relative;display:block}.sc-ix-menu-item-h .tab.sc-ix-menu-item{display:flex;position:relative;align-items:center;height:3rem;z-index:500;padding-left:1.25rem}.sc-ix-menu-item-h .tab.sc-ix-menu-item:not(.selected){cursor:pointer}.sc-ix-menu-item-h .tab.sc-ix-menu-item:not(.selected):not(.disabled):not(:disabled).hover,.sc-ix-menu-item-h .tab.sc-ix-menu-item:not(.selected):not(.disabled):not(:disabled):hover{background-color:var(--theme-ghost--background--hover)}.sc-ix-menu-item-h .tab.sc-ix-menu-item:not(.selected):not(.disabled):not(:disabled).active,.sc-ix-menu-item-h .tab.sc-ix-menu-item:not(.selected):not(.disabled):not(:disabled):active{background-color:var(--theme-ghost--background--active)}.sc-ix-menu-item-h i.glyph.sc-ix-menu-item{color:var(--theme-nav-item-primary-icon--color);position:relative}.sc-ix-menu-item-h .tab.sc-ix-menu-item:focus-visible{outline:none}.sc-ix-menu-item-h:focus-visible{outline:none}.sc-ix-menu-item-h .tab.sc-ix-menu-item:not(:last-child){margin-bottom:0.5rem}.sc-ix-menu-item-h .notification.sc-ix-menu-item{display:inline-flex;position:absolute;top:-0.5rem;right:-50%}.sc-ix-menu-item-h .notification.sc-ix-menu-item .pill.sc-ix-menu-item{display:inline-flex;justify-content:center;align-items:center;height:1rem;min-width:1rem;position:relative;border-radius:6.25rem;background-color:var(--theme-color-primary);border-radius:6.25rem;font-size:0.75rem;font-weight:bold;line-height:1;font-family:Siemens Sans, Arial, sans-serif;color:var(--theme-color-primary--contrast);padding:0.25rem}.sc-ix-menu-item-h .tab-text.sc-ix-menu-item{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--theme-nav-item-primary--color);margin:0 1.25rem;-webkit-user-select:none;-moz-user-select:none;user-select:none}.active.sc-ix-menu-item-h .tab.sc-ix-menu-item,.selected.sc-ix-menu-item-h .tab.sc-ix-menu-item{background-color:var(--theme-nav-item-primary--background--selected)}.active.sc-ix-menu-item-h .tab.sc-ix-menu-item::before,.selected.sc-ix-menu-item-h .tab.sc-ix-menu-item::before{content:"";background-color:var(--theme-nav-item-primary--border-color--selected);height:3rem;width:0.25rem;left:0;position:absolute}.active.sc-ix-menu-item-h .tab.sc-ix-menu-item>.glyph.sc-ix-menu-item,.selected.sc-ix-menu-item-h .tab.sc-ix-menu-item>.glyph.sc-ix-menu-item{color:var(--theme-nav-item-primary-icon--color--selected)}.disabled.sc-ix-menu-item-h{color:var(--theme-color-weak-text);pointer-events:none;cursor:default}.disabled.sc-ix-menu-item-h .tab.sc-ix-menu-item>.glyph.sc-ix-menu-item{color:var(--theme-color-weak-text)}.disabled.sc-ix-menu-item-h .tab-text.sc-ix-menu-item{color:var(--theme-color-weak-text)}.home-tab.sc-ix-menu-item-h,[slot=home].sc-ix-menu-item-h{margin-bottom:1.5rem}.bottom-tab.sc-ix-menu-item-h,[slot=bottom].sc-ix-menu-item-h{height:2.25rem}.bottom-tab.sc-ix-menu-item-h .tab.sc-ix-menu-item,[slot=bottom].sc-ix-menu-item-h .tab.sc-ix-menu-item{height:2.25rem}.bottom-tab.sc-ix-menu-item-h .tab.sc-ix-menu-item::before,[slot=bottom].sc-ix-menu-item-h .tab.sc-ix-menu-item::before{height:2.25rem}.bottom-tab.active.sc-ix-menu-item-h .tab.sc-ix-menu-item,.bottom-tab.selected.sc-ix-menu-item-h .tab.sc-ix-menu-item,[slot=bottom].active.sc-ix-menu-item-h .tab.sc-ix-menu-item,[slot=bottom].selected.sc-ix-menu-item-h .tab.sc-ix-menu-item{background-color:var(--theme-color-1)}';const _=class{constructor(e){t(this,e);this.home=false;this.bottom=false;this.tabIcon="document";this.notifications=undefined;this.active=undefined;this.disabled=undefined;this.title=undefined}get tabLabel(){return this.hostElement.querySelector(".tab-text")}componentDidRender(){const t=this.tabLabel;const e=t.innerHTML.replace("&","&");if(this.title!==e){this.title=e}}render(){return i(s,{class:{disabled:this.disabled,"home-tab":this.home,"bottom-tab":this.bottom,active:this.active}},i("li",{class:"tab",title:this.title},i("i",{class:`glyph glyph-${this.tabIcon}`},i("div",{class:"notification"},this.notifications?i("div",{class:"pill"},this.notifications):null)),i("span",{class:"tab-text text-default"},i("slot",null))))}get hostElement(){return n(this)}};_.style=C;const A=".text-xs.sc-ix-menu-settings{-webkit-font-smoothing:antialiased;-moz-osx-font-smooting:grayscale;font-family:Siemens Sans, sans-serif;font-size:0.625rem;font-weight:400;line-height:1.4em;color:var(--theme-color-std-text)}.text-s.sc-ix-menu-settings{-webkit-font-smoothing:antialiased;-moz-osx-font-smooting:grayscale;font-family:Siemens Sans, sans-serif;font-size:0.75rem;font-weight:400;line-height:1.5em;color:var(--theme-color-std-text)}.text-caption.sc-ix-menu-settings{-webkit-font-smoothing:antialiased;-moz-osx-font-smooting:grayscale;font-family:Siemens Sans, sans-serif;font-size:0.75rem;font-weight:700;line-height:1.5em;color:var(--theme-color-std-text)}.text-caption-single.sc-ix-menu-settings{-webkit-font-smoothing:antialiased;-moz-osx-font-smooting:grayscale;font-family:Siemens Sans, sans-serif;font-size:0.75rem;font-weight:700;line-height:1em;color:var(--theme-color-std-text)}.text-default.sc-ix-menu-settings{-webkit-font-smoothing:antialiased;-moz-osx-font-smooting:grayscale;font-family:Siemens Sans, sans-serif;font-size:0.875rem;font-weight:400;line-height:1.429em;color:var(--theme-color-std-text)}.text-default-single.sc-ix-menu-settings{-webkit-font-smoothing:antialiased;-moz-osx-font-smooting:grayscale;font-family:Siemens Sans, sans-serif;font-size:0.875rem;font-weight:400;line-height:1.143em;color:var(--theme-color-std-text)}.text-default-title.sc-ix-menu-settings{-webkit-font-smoothing:antialiased;-moz-osx-font-smooting:grayscale;font-family:Siemens Sans, sans-serif;font-size:0.875rem;font-weight:700;line-height:1.429em;color:var(--theme-color-std-text)}.text-default-title-single.sc-ix-menu-settings{-webkit-font-smoothing:antialiased;-moz-osx-font-smooting:grayscale;font-family:Siemens Sans, sans-serif;font-size:0.875rem;font-weight:700;line-height:1.143em;color:var(--theme-color-std-text)}.text-l.sc-ix-menu-settings{-webkit-font-smoothing:antialiased;-moz-osx-font-smooting:grayscale;font-family:Siemens Sans, sans-serif;font-size:1rem;font-weight:400;line-height:1.5em;color:var(--theme-color-std-text)}.text-l-single.sc-ix-menu-settings{-webkit-font-smoothing:antialiased;-moz-osx-font-smooting:grayscale;font-family:Siemens Sans, sans-serif;font-size:1rem;font-weight:400;line-height:1.25em;color:var(--theme-color-std-text)}.text-l-title.sc-ix-menu-settings{-webkit-font-smoothing:antialiased;-moz-osx-font-smooting:grayscale;font-family:Siemens Sans, sans-serif;font-size:1rem;font-weight:700;line-height:1.5em;color:var(--theme-color-std-text)}.text-l-title-single.sc-ix-menu-settings{-webkit-font-smoothing:antialiased;-moz-osx-font-smooting:grayscale;font-family:Siemens Sans, sans-serif;font-size:1rem;font-weight:700;line-height:1.25em;color:var(--theme-color-std-text)}.text-h2.sc-ix-menu-settings{-webkit-font-smoothing:antialiased;-moz-osx-font-smooting:grayscale;font-family:Siemens Sans, sans-serif;font-size:1.375rem;font-weight:700;line-height:1.455em;color:var(--theme-color-std-text)}.text-xl.sc-ix-menu-settings{-webkit-font-smoothing:antialiased;-moz-osx-font-smooting:grayscale;font-family:Siemens Sans, sans-serif;font-size:1.375rem;font-weight:400;line-height:1.091em;color:var(--theme-color-std-text)}a.sc-ix-menu-settings{color:var(--theme-color-primary)}.sc-ix-menu-settings-h{display:block;background-color:var(--theme-nav-overlay--background);padding:0.75rem 1rem 1rem 2rem;flex-grow:1;position:absolute;width:100%;height:100%}.sc-ix-menu-settings-h .settings-header.sc-ix-menu-settings{display:flex;justify-content:space-between;flex-direction:row;align-items:center;height:2rem;margin-bottom:0.5rem}.sc-ix-menu-settings-h .settings-header.sc-ix-menu-settings h2.sc-ix-menu-settings{color:var(--theme-nav-overlay-header--color);margin-bottom:0}.sc-ix-menu-settings-h .settings-tabs.sc-ix-menu-settings{margin-bottom:1.5rem}";const I=class{constructor(i){t(this,i);this.close=e(this,"close",7);this.activeTabLabel=undefined;this.label="Settings";this.show=false}get settingsItems(){return Array.from(this.el.querySelectorAll("ix-menu-settings-item"))}setTab(t){this.activeTabLabel=t;this.settingsItems.forEach((t=>{t.style.display="none";if(t.label===this.activeTabLabel){t.style.display="block"}}))}componentWillLoad(){if(this.settingsItems.length){this.setTab(this.activeTabLabel||this.settingsItems[0].label)}}componentDidLoad(){o(this.el)}watchActiveTabLabel(t){this.setTab(t)}getTabItems(){return this.settingsItems.map((({label:t})=>i("ix-tab-item",{class:{active:t===this.activeTabLabel},onClick:()=>this.setTab(t)},t)))}render(){return i(s,{class:{animate__animated:true,animate__fadeInLeft:this.show,animate__fadeOutLeft:!this.show}},i("div",{class:"settings-header"},i("h2",{class:"text-h2"},this.label),i("ix-icon-button",{ghost:true,size:"24",icon:"close",onClick:t=>this.close.emit(t)})),i("ix-tabs",null,this.getTabItems()),i("slot",null))}get el(){return n(this)}static get watchers(){return{activeTabLabel:["watchActiveTabLabel"]}}};I.style=A;const T=".sc-ix-menu-settings-item-h{display:block}";const M=class{constructor(e){t(this,e);this.label=undefined}render(){return i(s,null,i("slot",null))}};M.style=T;export{d as ix_menu,b as ix_menu_about,f as ix_menu_about_item,p as ix_menu_about_news,k as ix_menu_avatar,S as ix_menu_avatar_item,_ as ix_menu_item,I as ix_menu_settings,M as ix_menu_settings_item};
|
|
2
|
-
//# sourceMappingURL=p-
|
|
1
|
+
import{r as t,c as e,h as i,H as s,g as n,f as o}from"./p-8fcd6f85.js";import{m as a,h as r,i as m}from"./p-529d7530.js";import{a as h}from"./p-21aa3602.js";import{s as l}from"./p-1572aab3.js";import{t as c}from"./p-323d5529.js";import"./p-9ee41861.js";const u="ix-menu{display:flex;flex-direction:row;position:absolute;height:100%;min-height:22.75rem;z-index:var(--theme-z-index-sticky);width:auto}ix-menu .menu{display:flex;flex-direction:column;position:relative;width:4rem;height:100%;-webkit-padding-after:1rem;padding-block-end:1rem;overflow:hidden;background-color:var(--theme-nav--background);transition:width var(--animate-duration)}ix-menu .menu.expanded{box-shadow:var(--theme-navigation--box-shadow)}ix-menu .menu .burger-menu{margin:0.75rem 0 1rem 0.75rem}ix-menu .menu-overlay{display:block;position:absolute;width:calc(100vw - 4rem);height:100%;left:4rem;z-index:-1;-webkit-backdrop-filter:blur(1rem);backdrop-filter:blur(1rem);background-color:var(--theme-sidebar-overlay-blur);transition:all 300ms ease-out}ix-menu .menu-overlay-invisible{display:none}ix-menu .menu.expanded{width:16rem}ix-menu .menu-overlay.expanded{width:calc(100vw - 16rem);left:16rem}ix-menu #avatar-tab-placeholder{max-height:3rem}ix-menu .avatar{margin-bottom:2rem}ix-menu #cui-imprint .cui-imprint-product-name{margin-bottom:1rem}ix-menu #cui-imprint .cui-imprint-product-description{margin-bottom:2rem}ix-menu #cui-imprint .cui-imprint-link-container{display:flex;align-items:center}ix-menu .bottom-tab-divider{margin-top:auto}ix-menu.mode-mobile .menu:not(.expanded){width:0}ix-menu.mode-mobile .menu{padding-top:2rem}ix-menu.mode-mobile .menu .burger-menu{display:none}ix-menu.mode-mobile .menu-overlay{left:0px;width:100vw}a[href]:has(>ix-menu-item){text-decoration:none}";const d=class{constructor(i){t(this,i);this.expandChange=e(this,"expandChange",7);this.mapExpandChange=e(this,"mapExpandChange",7);this.domObserver=new MutationObserver(this.onDomChange.bind(this));this.isVisible=t=>{var e,i;return t.style.display!=="none"&&((i=(e=t.parentElement)===null||e===void 0?void 0:e.parentElement)===null||i===void 0?void 0:i.style.display)!=="none"};this.showSettings=false;this.showAbout=false;this.enableToggleTheme=false;this.enableSettings=true;this.enableMapExpand=false;this.applicationName=undefined;this.applicationDescription="";this.maxVisibleMenuItems=9;this.i18nLegal="About & legal information";this.i18nSettings="Settings";this.i18nToggleTheme="Toggle theme";this.i18nExpand=" Expand";this.i18nCollapse="Collapse";this.i18nMore="More…";this.expand=false;this.showMoreItems=false;this.visibleMenuItems=0;this.countMoreNotifications=0;this.mapExpand=true;this.activeTab=undefined;this.isMoreTabEmpty=false;this.mode="desktop"}onWindowResize(){this.visibleMenuItems=this.getMaxTabCount()}handleNodeMutation(t){if(!(t instanceof HTMLElement)){return}if(t.matches(".tab")){this.onWindowResize()}if(t.matches("ix-menu-about")&&this.menu.contains(t)){this.appendAbout()}if(t.matches("ix-menu-settings")&&this.menu.contains(t)){this.appendSettings()}}onDomChange(t){t.forEach((t=>{t.addedNodes.forEach(this.handleNodeMutation.bind(this));t.removedNodes.forEach(this.handleNodeMutation.bind(this))}))}get popoverArea(){return this.hostElement.querySelector("#popover-area")}get overlayContainer(){return this.hostElement.querySelector(".menu-overlay")}get invisibleContainer(){return this.hostElement.querySelector(".menu-overlay-invisible")}get menu(){return this.hostElement.querySelector(".menu")}get menuItems(){return Array.from(this.hostElement.querySelectorAll('ix-menu-item:not(.internal-tab):not(.home-tab):not(.bottom-tab):not([slot="bottom"])')).filter(this.isVisible)}get menuBottomItems(){return Array.from(this.hostElement.querySelectorAll("ix-menu-item.bottom-tab:not(.internal-tab):not(.home-tab)")).filter(this.isVisible)}get homeTab(){return this.hostElement.querySelector("ix-menu-item.home-tab")}get moreItemsDropdown(){return this.hostElement.querySelector(".internal-tab ix-dropdown")}get isMoreItemsDropdownEmpty(){return this.hostElement.querySelectorAll(".internal-tab ix-dropdown .appended").length===0}get moreItemsDropdownItems(){return this.hostElement.querySelectorAll(".internal-tab ix-dropdown ix-menu-item")}get activeMoreTabContainer(){return this.hostElement.querySelector(".active-more-tab")}get activeMoreTab(){return this.hostElement.querySelector(".active-more-tab ix-menu-item")}get aboutPopoverContainer(){return this.hostElement.querySelector(".about-news")}get aboutPopover(){return document.querySelector("ix-menu-about-news")}get aboutTab(){return this.hostElement.querySelector("#aboutAndLegal")}get about(){return this.hostElement.querySelector("ix-menu-about")}get settings(){return this.hostElement.querySelector("ix-menu-settings")}get isSettingsEmpty(){return Array.from(this.hostElement.querySelectorAll("ix-menu-settings-item")).length===0}get avatarItem(){return this.hostElement.querySelector("ix-menu-avatar")}get tabsContainer(){return this.hostElement.querySelector("#menu-tabs")}showTab(t){return t+1<=this.visibleMenuItems}componentDidLoad(){var t,e,i,s;(t=this.settings)===null||t===void 0?void 0:t.addEventListener("close",(()=>{this.showSettings=false;this.settings.show=this.showSettings}));(e=this.settings)===null||e===void 0?void 0:e.addEventListener("animationend",(()=>{if(!this.showSettings){this.settings.classList.add("d-none");this.overlayContainer.classList.add("d-none")}}));(i=this.about)===null||i===void 0?void 0:i.addEventListener("close",(()=>{this.showAbout=false;this.about.show=this.showAbout}));(s=this.about)===null||s===void 0?void 0:s.addEventListener("animationend",(()=>{if(!this.showAbout){this.about.classList.add("d-none");this.overlayContainer.classList.add("d-none")}}));this.overlayContainer.classList.add("d-none");this.onWindowResize();this.domObserver.observe(this.hostElement,{attributes:false,childList:true,subtree:true})}componentWillLoad(){a.register(this.hostElement);const t=r("ix-basic-navigation",this.hostElement);if(m(t)&&t.hideHeader===false){l.onChange.on((t=>this.mode=t));this.mode=l.mode}}componentWillRender(){this.appendTabs()}componentDidRender(){this.visibleMenuItems=this.getMaxTabCount();this.appendFragments()}appendFragments(){this.appendAvatar();this.appendAbout();this.appendSettings();this.appendAboutNewsPopover();this.isMoreTabEmpty=this.isMoreItemsDropdownEmpty;this.countMoreNotifications=this.getMoreNotificationsCount()}resetActiveTab(){this.activeTab=null}isMenuItemActive(t){return t.active||t.classList.contains("active")}appendTabs(){this.activeTab=null;if(this.homeTab){this.hostElement.querySelector(".tabs-top").appendChild(this.homeTab);this.homeTab.addEventListener("click",this.resetOverlay.bind(this))}this.menuItems.forEach(((t,e)=>{var i;if(this.showTab(e)){t.classList.remove("d-none")}else{t.classList.add("d-none");if(this.isMenuItemActive(t)){this.activeTab=t}}(i=this.homeTab)===null||i===void 0?void 0:i.classList.remove("d-none");t.addEventListener("click",this.resetOverlay.bind(this))}))}appendAvatar(){var t;const e=this.avatarItem;if(e){e.style.marginBottom="1rem";(t=this.hostElement.querySelector("#avatar-tab-placeholder"))===null||t===void 0?void 0:t.appendChild(e)}}getAboutPopoverVerticalPosition(){const t=12;const e=6;const i=this.aboutTab.getBoundingClientRect();const s=window.innerHeight-(i.bottom-i.height/2+t/2+e);return h(s)}appendAboutNewsPopover(){var t;if(!this.aboutPopover){return}this.aboutPopover.style.bottom=this.getAboutPopoverVerticalPosition();if(!((t=this.popoverArea)===null||t===void 0?void 0:t.contains(this.aboutPopover))){const t=()=>{var t;if((t=this.aboutPopover)===null||t===void 0?void 0:t.aboutItemLabel){this.about.activeTabLabel=this.aboutPopover.aboutItemLabel;this.toggleAbout(true)}};this.aboutPopover.addEventListener("showMore",t.bind(this));document.body.appendChild(this.aboutPopover)}}appendSettings(){if(this.settings){this.overlayContainer.appendChild(this.settings)}}appendAbout(){if(this.about){this.overlayContainer.appendChild(this.about)}}getMoreNotificationsCount(){var t;const e=(t=this.moreItemsDropdown)===null||t===void 0?void 0:t.querySelectorAll(".appended");let i=0;e===null||e===void 0?void 0:e.forEach((t=>{if(t["notifications"]){i+=t["notifications"]}}));return i}getAvailableHeight(){const t=60;const e=72;const i=56;const s=36;let n=this.hostElement.clientHeight;n-=t;if(this.avatarItem){n-=i}if(this.homeTab){n-=e}if(this.showAbout){n-=s}if(this.showSettings){n-=s}if(this.menuBottomItems.length){n-=this.menuBottomItems.length*s}if(this.enableMapExpand){n-=s}n-=2*s;n-=16;return n}getMaxTabCount(){const t=48;const e=this.getAvailableHeight();const i=Math.floor(e/t);const s=this.menuItems.length;if(s===1){return 1}if(s<this.maxVisibleMenuItems){if(i>s){return s}return Math.min(i-2,s)}if(s===this.maxVisibleMenuItems){if(i<this.maxVisibleMenuItems){return i-2}if(i===this.maxVisibleMenuItems){return this.maxVisibleMenuItems-2}return Math.min(i,this.maxVisibleMenuItems)}if(i===this.maxVisibleMenuItems){return this.maxVisibleMenuItems-2}if(i>=this.maxVisibleMenuItems){return this.maxVisibleMenuItems-1}return Math.min(i-2,this.maxVisibleMenuItems)}async toggleMapExpand(t){this.skipAllOverlayAnimations();if(t!==undefined){this.mapExpand=t}else{this.mapExpand=!this.mapExpand}}skipAllOverlayAnimations(){if(this.about){this.skipOverlayAnimationFor(this.about)}if(this.settings){this.skipOverlayAnimationFor(this.settings)}}skipOverlayAnimationFor(t){const e="animate__animated";t===null||t===void 0?void 0:t.classList.remove(e);setTimeout((()=>{t===null||t===void 0?void 0:t.classList.add(e)}),300)}async toggleMenu(t){this.skipAllOverlayAnimations();if(t!==undefined){this.expand=t}else{this.expand=!this.expand}if(this.aboutPopover){this.aboutPopover.expanded=this.expand}this.expandChange.emit(this.expand)}async toggleSettings(t){var e;if(this.showAbout){this.skipAllOverlayAnimations()}else{this.skipOverlayAnimationFor(this.about)}(e=this.about)===null||e===void 0?void 0:e.classList.add("d-none");this.resetOverlay();this.showSettings=t;this.settings.show=this.showSettings;this.settings.classList.remove("d-none");this.overlayContainer.classList.remove("d-none")}async toggleAbout(t){var e;if(this.showSettings){this.skipAllOverlayAnimations()}else{this.skipOverlayAnimationFor(this.settings)}(e=this.settings)===null||e===void 0?void 0:e.classList.add("d-none");this.resetOverlay();this.showAbout=t;this.about.show=this.showAbout;this.about.classList.remove("d-none");this.overlayContainer.classList.remove("d-none")}resetOverlay(){this.showSettings=false;this.showAbout=false;if(this.settings){this.settings.show=this.showSettings}if(this.about){this.about.show=this.showAbout}this.toggleMenu(false)}showMoreButton(){const t=this.menuItems.length;if(t===1){return false}if(t<this.maxVisibleMenuItems){return this.visibleMenuItems<t}if(t>this.maxVisibleMenuItems){return this.visibleMenuItems<this.maxVisibleMenuItems}return this.visibleMenuItems<=this.maxVisibleMenuItems-2}getCollapseText(){return this.mapExpand?this.i18nCollapse:this.i18nExpand}getCollapseIcon(){return this.mapExpand?"double-chevron-left":"double-chevron-right"}isMenuItemClicked(t){const e=t.composedPath();const i=e.filter((t=>t.id!=="ix-menu-more-tab")).filter((t=>t.tagName==="IX-MENU-ITEM"));return i.some((t=>this.tabsContainer.contains(t)))}render(){return i(s,{class:{expanded:this.expand,[`mode-${this.mode}`]:true}},i("div",{class:{menu:true,expanded:this.expand},onClick:()=>{this.resetActiveTab()}},i("ix-burger-menu",{onClick:async()=>this.toggleMenu(),expanded:this.expand,class:{"burger-menu":true}}),i("div",{id:"avatar-tab-placeholder"}),i("div",{id:"menu-tabs",style:{display:"contents"},onClick:t=>{if(this.isMenuItemClicked(t)){this.resetOverlay()}}},i("div",{class:"tabs-top"}),i("slot",null),i("div",{class:"active-more-tab"},this.activeTab?i("ix-menu-item",{class:"internal-tab",active:true,tabIcon:this.activeTab.tabIcon},this.activeTab.innerText):null),i("ix-menu-item",{id:"ix-menu-more-tab",tabIcon:"more-menu",class:{"internal-tab":true},style:{display:this.showMoreButton()?"block":"none"},title:"Show more",notifications:this.countMoreNotifications},this.i18nMore,i("ix-dropdown",{trigger:"ix-menu-more-tab",positioningStrategy:"fixed",placement:"right-start"},this.menuItems.filter(((t,e)=>!this.showTab(e)&&!this.isMenuItemActive(t)&&this.isVisible(t))).map((t=>i("ix-menu-item",{tabIcon:t.tabIcon,active:t.active,class:"internal-tab appended",onClick:()=>{this.resetOverlay();t.dispatchEvent(new CustomEvent("click"))}},t.innerText)))))),i("div",{class:"bottom-tab-divider"}),this.enableSettings&&!this.isSettingsEmpty?i("ix-menu-item",{id:"settings",class:{"internal-tab":true,"bottom-tab":true,active:this.showSettings},tabIcon:"cogwheel",onClick:async()=>this.toggleSettings(!this.showSettings)},this.i18nSettings):null,i("slot",{name:"bottom"}),i("div",{id:"popover-area"}),this.about?i("ix-menu-item",{id:"aboutAndLegal",class:{"internal-tab":true,"bottom-tab":true,active:this.showAbout},tabIcon:"info",onClick:async()=>this.toggleAbout(!this.showAbout)},this.i18nLegal):null,this.enableToggleTheme?i("ix-menu-item",{id:"toggleTheme",onClick:()=>c.toggleMode(),class:"internal-tab bottom-tab",tabIcon:"bulb"},this.i18nToggleTheme):null,this.enableMapExpand?i("ix-menu-item",{id:"menu-collapse",onClick:()=>this.mapExpandChange.emit(this.mapExpand),class:"internal-tab bottom-tab",tabIcon:`${this.getCollapseIcon()}`},this.getCollapseText()):null),i("div",{class:{"menu-overlay":true,expanded:this.expand,"d-block":this.showAbout||this.showSettings},style:{opacity:this.showAbout||this.showSettings?"1":"0"}}),i("div",{class:"menu-overlay-invisible"}))}get hostElement(){return n(this)}};d.style=u;const b=".text-xs.sc-ix-menu-about{-webkit-font-smoothing:antialiased;-moz-osx-font-smooting:grayscale;font-family:Siemens Sans, sans-serif;font-size:0.625rem;font-weight:400;line-height:1.4em;color:var(--theme-color-std-text)}.text-s.sc-ix-menu-about{-webkit-font-smoothing:antialiased;-moz-osx-font-smooting:grayscale;font-family:Siemens Sans, sans-serif;font-size:0.75rem;font-weight:400;line-height:1.5em;color:var(--theme-color-std-text)}.text-caption.sc-ix-menu-about{-webkit-font-smoothing:antialiased;-moz-osx-font-smooting:grayscale;font-family:Siemens Sans, sans-serif;font-size:0.75rem;font-weight:700;line-height:1.5em;color:var(--theme-color-std-text)}.text-caption-single.sc-ix-menu-about{-webkit-font-smoothing:antialiased;-moz-osx-font-smooting:grayscale;font-family:Siemens Sans, sans-serif;font-size:0.75rem;font-weight:700;line-height:1em;color:var(--theme-color-std-text)}.text-default.sc-ix-menu-about{-webkit-font-smoothing:antialiased;-moz-osx-font-smooting:grayscale;font-family:Siemens Sans, sans-serif;font-size:0.875rem;font-weight:400;line-height:1.429em;color:var(--theme-color-std-text)}.text-default-single.sc-ix-menu-about{-webkit-font-smoothing:antialiased;-moz-osx-font-smooting:grayscale;font-family:Siemens Sans, sans-serif;font-size:0.875rem;font-weight:400;line-height:1.143em;color:var(--theme-color-std-text)}.text-default-title.sc-ix-menu-about{-webkit-font-smoothing:antialiased;-moz-osx-font-smooting:grayscale;font-family:Siemens Sans, sans-serif;font-size:0.875rem;font-weight:700;line-height:1.429em;color:var(--theme-color-std-text)}.text-default-title-single.sc-ix-menu-about{-webkit-font-smoothing:antialiased;-moz-osx-font-smooting:grayscale;font-family:Siemens Sans, sans-serif;font-size:0.875rem;font-weight:700;line-height:1.143em;color:var(--theme-color-std-text)}.text-l.sc-ix-menu-about{-webkit-font-smoothing:antialiased;-moz-osx-font-smooting:grayscale;font-family:Siemens Sans, sans-serif;font-size:1rem;font-weight:400;line-height:1.5em;color:var(--theme-color-std-text)}.text-l-single.sc-ix-menu-about{-webkit-font-smoothing:antialiased;-moz-osx-font-smooting:grayscale;font-family:Siemens Sans, sans-serif;font-size:1rem;font-weight:400;line-height:1.25em;color:var(--theme-color-std-text)}.text-l-title.sc-ix-menu-about{-webkit-font-smoothing:antialiased;-moz-osx-font-smooting:grayscale;font-family:Siemens Sans, sans-serif;font-size:1rem;font-weight:700;line-height:1.5em;color:var(--theme-color-std-text)}.text-l-title-single.sc-ix-menu-about{-webkit-font-smoothing:antialiased;-moz-osx-font-smooting:grayscale;font-family:Siemens Sans, sans-serif;font-size:1rem;font-weight:700;line-height:1.25em;color:var(--theme-color-std-text)}.text-h2.sc-ix-menu-about{-webkit-font-smoothing:antialiased;-moz-osx-font-smooting:grayscale;font-family:Siemens Sans, sans-serif;font-size:1.375rem;font-weight:700;line-height:1.455em;color:var(--theme-color-std-text)}.text-xl.sc-ix-menu-about{-webkit-font-smoothing:antialiased;-moz-osx-font-smooting:grayscale;font-family:Siemens Sans, sans-serif;font-size:1.375rem;font-weight:400;line-height:1.091em;color:var(--theme-color-std-text)}a.sc-ix-menu-about{color:var(--theme-color-primary)}.sc-ix-menu-about-h{display:block;background-color:var(--theme-nav-overlay--background);padding:0.75rem 1rem 1rem 2rem;flex-grow:1;position:absolute;width:100%;height:100%}.sc-ix-menu-about-h .about-header.sc-ix-menu-about{display:flex;justify-content:space-between;flex-direction:row;align-items:center;height:2rem;margin-bottom:0.5rem}.sc-ix-menu-about-h .about-header.sc-ix-menu-about h2.sc-ix-menu-about{color:var(--theme-nav-overlay-header--color);margin-bottom:0}.sc-ix-menu-about-h .about-tabs.sc-ix-menu-about{margin-bottom:1.5rem}.sc-ix-menu-about-h ix-menu-about-item.sc-ix-menu-about{display:none}";const x=class{constructor(i){t(this,i);this.close=e(this,"close",7);this.activeTabLabel=undefined;this.label="About & legal information";this.show=false;this.labels=[]}get aboutItems(){return Array.from(this.el.querySelectorAll("ix-menu-about-item"))}setTab(t){this.activeTabLabel=t;this.aboutItems.forEach((t=>{t.style.display="none";if(t.label===this.activeTabLabel){t.style.display="block"}}))}componentWillLoad(){if(this.aboutItems.length){this.setTab(this.activeTabLabel||this.aboutItems[0].label)}}componentDidLoad(){o(this.el)}componentWillRender(){this.updateLabels()}updateLabels(){this.labels=this.aboutItems.map((t=>t.label))}watchActiveTabLabel(t){setTimeout((()=>this.setTab(t)))}getSelectedTabIndex(t){const e=this.aboutItems.find((e=>e.label===t));return this.aboutItems.indexOf(e)}getTabItems(){return this.aboutItems.map((({label:t})=>i("ix-tab-item",{class:{active:t===this.activeTabLabel},onClick:()=>this.setTab(t)},t)))}render(){return i(s,{class:{animate__animated:true,animate__fadeInLeft:this.show,animate__fadeOutLeft:!this.show}},i("div",{class:"about-header"},i("h2",{class:"text-h2"},this.label),i("ix-icon-button",{ghost:true,size:"24",icon:"close",onClick:t=>this.close.emit(t)})),i("ix-tabs",{selected:this.getSelectedTabIndex(this.activeTabLabel),class:"about-tabs"},this.getTabItems()),i("div",{class:"about-items"},i("slot",null)))}get el(){return n(this)}static get watchers(){return{activeTabLabel:["watchActiveTabLabel"]}}};x.style=b;const g=".sc-ix-menu-about-item-h{display:block}";const f=class{constructor(e){t(this,e);this.label=undefined}render(){return i(s,null,i("slot",null))}};f.style=g;const v=".sc-ix-menu-about-news-h{--margin:0.5rem;display:block;position:fixed;width:20rem;height:auto;background-color:var(--theme-color-1);border:var(--theme-weak-bdr-1);border-radius:0.25rem;padding:1rem;left:4rem;z-index:10000;transition:left var(--animate-duration);margin-left:var(--margin) !important;box-shadow:var(--theme-box-shadow-level-4)}.expanded.sc-ix-menu-about-news-h{left:calc(4rem + 12rem)}.show.sc-ix-menu-about-news-h{display:none}.sc-ix-menu-about-news-h .banner-container.sc-ix-menu-about-news{position:absolute;top:0.0625rem;left:1rem}.sc-ix-menu-about-news-h .banner-container.sc-ix-menu-about-news svg.sc-ix-menu-about-news{position:absolute;height:3.625rem;width:3rem}.sc-ix-menu-about-news-h .banner-container.sc-ix-menu-about-news svg.sc-ix-menu-about-news polygon.sc-ix-menu-about-news{fill:var(--theme-color-primary)}.sc-ix-menu-about-news-h .banner-container.sc-ix-menu-about-news ix-icon.sc-ix-menu-about-news{margin:0.5rem;position:absolute;z-index:1}.sc-ix-menu-about-news-h .cui-popover-news-header.sc-ix-menu-about-news{margin-bottom:2rem;margin-left:4rem;margin-top:-0.25rem}.sc-ix-menu-about-news-h .popover-body.sc-ix-menu-about-news{color:var(--theme-color-std-text)}.sc-ix-menu-about-news-h .cui-popover-news-footer.sc-ix-menu-about-news{display:flex;justify-content:flex-end;margin-top:1rem}.sc-ix-menu-about-news-h ix-icon-button.sc-ix-menu-about-news{top:0.5rem;right:0.5rem;position:absolute}.sc-ix-menu-about-news-h #arrow.sc-ix-menu-about-news{position:absolute;width:0.5rem;height:0.5rem;background-color:var(--theme-color-1);border-left:var(--theme-weak-bdr-1);border-bottom:var(--theme-weak-bdr-1);transform:translateX(calc(var(--margin) * -1 - 0.8rem)) rotateZ(45deg)}";const p=class{constructor(i){t(this,i);this.showMore=e(this,"showMore",7);this.closePopover=e(this,"closePopover",7);this.show=false;this.label=undefined;this.i18nShowMore="Show more";this.aboutItemLabel=undefined;this.offsetBottom=0;this.expanded=false}render(){return i(s,{class:{expanded:this.expanded,show:!this.show}},i("div",{class:"banner-container"},i("ix-icon",{color:"color-inv-contrast-text",name:"shout",size:"32"}),i("svg",{viewBox:"0 0 48 56",xmlns:"http://www.w3.org/2000/svg"},i("polygon",{points:"0 0 48 0 48 56 24 48 0 56"}))),i("div",{class:"cui-popover-news-header"},i("span",{class:"text-l-title"},this.label)),i("ix-icon-button",{size:"24",icon:"close-small",ghost:true,onClick:()=>{this.show=false;this.closePopover.emit()}}),i("slot",null),this.aboutItemLabel?i("div",{class:"cui-popover-news-footer"},i("button",{class:"btn btn-primary",onClick:t=>{this.show=false;this.showMore.emit(t)}},this.i18nShowMore)):null,i("div",{id:"arrow"}))}};p.style=v;const w=".sc-ix-menu-avatar-h{display:block;position:relative;margin-bottom:0.5rem}.sc-ix-menu-avatar-h .avatar.sc-ix-menu-avatar{display:flex;align-items:center;height:2.5rem;max-height:2.5rem;padding-left:0.25rem;margin-left:0.75rem;margin-right:0.75rem;transition:0.15s;border-radius:1.25rem}.sc-ix-menu-avatar-h .avatar.sc-ix-menu-avatar>.avatar-image.sc-ix-menu-avatar{height:2rem;width:2rem;min-height:2rem;min-width:2rem;border-radius:100px}.sc-ix-menu-avatar-h .avatar.sc-ix-menu-avatar>.avatar-initials.sc-ix-menu-avatar{display:flex;align-items:center;justify-content:center;height:2rem;width:2rem;min-height:2rem;min-width:2rem;border-radius:100px;background-color:var(--theme-color-component-3)}.sc-ix-menu-avatar-h .avatar.sc-ix-menu-avatar #avatar-path-background.sc-ix-menu-avatar{fill:var(--theme-avatar--background)}.sc-ix-menu-avatar-h .avatar.sc-ix-menu-avatar #avatar-path-person.sc-ix-menu-avatar{fill:var(--theme-color-4)}.sc-ix-menu-avatar-h .avatar.sc-ix-menu-avatar .avatar-name.sc-ix-menu-avatar{display:flex;flex-direction:column;overflow:hidden;white-space:nowrap;margin-left:1rem;line-height:1.14}.sc-ix-menu-avatar-h .avatar.sc-ix-menu-avatar .avatar-name.sc-ix-menu-avatar .text-default-single.sc-ix-menu-avatar{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sc-ix-menu-avatar-h .avatar.sc-ix-menu-avatar:not(.disabled):not(:disabled){cursor:pointer}.sc-ix-menu-avatar-h .avatar.sc-ix-menu-avatar:not(.disabled):not(:disabled):hover{background-color:var(--theme-avatar-btn--background--hover);color:var(--theme-avatar-btn--color--hover)}.sc-ix-menu-avatar-h .avatar.sc-ix-menu-avatar:not(.disabled):not(:disabled){cursor:pointer}.sc-ix-menu-avatar-h .avatar.sc-ix-menu-avatar:not(.disabled):not(:disabled):active{background-color:var(--theme-avatar-btn--background--active);color:var(--theme-avatar-btn--color--active)}";function y(t){const{initials:e}=t;if(e){return i("div",{class:"avatar-initials"},e)}return i("svg",{class:"avatar-image",xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32",viewBox:"0 0 32 32"},i("g",{fill:"none","fill-rule":"evenodd"},i("path",{id:"avatar-path-background",d:"M16 0C7.163 0 0 7.163 0 16s7.163 16 16 16 16-7.163\n 16-16c0-4.243-1.686-8.313-4.686-11.314C24.314 1.686 20.244 0 16 0z"}),i("path",{id:"avatar-path-person",d:"M17.897 17.91c3.8-.018 7.358 1.875 9.485 5.046-2.417 3.999-6.734 6.434-11.382\n 6.42-4.648.014-8.965-2.421-11.382-6.42 2.127-3.171 5.685-5.064\n 9.485-5.045h3.794zM15.821 2.129c3.682 0 6.667 2.984 6.667 6.666 0 3.682-2.985\n 6.667-6.667 6.667s-6.667-2.985-6.667-6.667 2.985-6.666 6.667-6.666z"})))}const k=class{constructor(i){t(this,i);this.logoutClick=e(this,"logoutClick",7);this.avatarElementId="ix-menu-avatar-id";this.top=undefined;this.bottom=undefined;this.image=undefined;this.initials=undefined;this.i18nLogout="Logout"}render(){return i(s,null,i("li",{class:"nav-item top-item avatar no-hover",title:this.top,id:this.avatarElementId},this.image?i("img",{src:this.image,class:"avatar-image"}):i(y,{initials:this.initials}),i("div",{class:"avatar-name"},i("span",{class:"text-default-single",title:this.top},this.top),i("span",{class:"text-default-single",title:this.bottom},this.bottom))),i("ix-dropdown",{trigger:this.avatarElementId,placement:"right-start",offset:{mainAxis:12}},i("slot",null),i("ix-menu-avatar-item",{label:this.i18nLogout,icon:"log-out",onClick:t=>{this.logoutClick.emit(t)}})))}get hostElement(){return n(this)}};k.style=w;const z=".sc-ix-menu-avatar-item-h{display:block}";const S=class{constructor(i){t(this,i);this.itemClick=e(this,"itemClick",7);this.icon=undefined;this.label=undefined}render(){return i("ix-dropdown-item",{icon:this.icon,label:this.label,onClick:t=>this.itemClick.emit(t)})}get hostElement(){return n(this)}};S.style=z;const C='.sc-ix-menu-item-h{position:relative;display:block;cursor:pointer}.sc-ix-menu-item-h:not(.disabled):not(:disabled).hover,.sc-ix-menu-item-h:not(.disabled):not(:disabled):hover{background-color:var(--theme-ghost--background--hover)}.sc-ix-menu-item-h:not(.disabled):not(:disabled).active,.sc-ix-menu-item-h:not(.disabled):not(:disabled):active{background-color:var(--theme-ghost--background--active)}.sc-ix-menu-item-h .tab.sc-ix-menu-item{display:flex;position:relative;align-items:center;height:3rem;z-index:500;padding-left:1.25rem}.sc-ix-menu-item-h i.glyph.sc-ix-menu-item{color:var(--theme-nav-item-primary-icon--color);position:relative}.sc-ix-menu-item-h .tab.sc-ix-menu-item:focus-visible{outline:none}.sc-ix-menu-item-h:focus-visible{outline:none}.sc-ix-menu-item-h .tab.sc-ix-menu-item:not(:last-child){margin-bottom:0.5rem}.sc-ix-menu-item-h .notification.sc-ix-menu-item{display:inline-flex;position:absolute;top:-0.5rem;right:-50%}.sc-ix-menu-item-h .notification.sc-ix-menu-item .pill.sc-ix-menu-item{display:inline-flex;justify-content:center;align-items:center;height:1rem;min-width:1rem;position:relative;border-radius:6.25rem;background-color:var(--theme-color-primary);border-radius:6.25rem;font-size:0.75rem;font-weight:bold;line-height:1;font-family:Siemens Sans, Arial, sans-serif;color:var(--theme-color-primary--contrast);padding:0.25rem}.sc-ix-menu-item-h .tab-text.sc-ix-menu-item{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--theme-nav-item-primary--color);margin:0 1.25rem;-webkit-user-select:none;-moz-user-select:none;user-select:none}.active.sc-ix-menu-item-h .tab.sc-ix-menu-item,.selected.sc-ix-menu-item-h .tab.sc-ix-menu-item{background-color:var(--theme-nav-item-primary--background--selected)}.active.sc-ix-menu-item-h .tab.sc-ix-menu-item::before,.selected.sc-ix-menu-item-h .tab.sc-ix-menu-item::before{content:"";background-color:var(--theme-nav-item-primary--border-color--selected);height:3rem;width:0.25rem;left:0;position:absolute}.active.sc-ix-menu-item-h .tab.sc-ix-menu-item>.glyph.sc-ix-menu-item,.selected.sc-ix-menu-item-h .tab.sc-ix-menu-item>.glyph.sc-ix-menu-item{color:var(--theme-nav-item-primary-icon--color--selected)}.disabled.sc-ix-menu-item-h{color:var(--theme-color-weak-text);pointer-events:none;cursor:default}.disabled.sc-ix-menu-item-h .tab.sc-ix-menu-item>.glyph.sc-ix-menu-item{color:var(--theme-color-weak-text)}.disabled.sc-ix-menu-item-h .tab-text.sc-ix-menu-item{color:var(--theme-color-weak-text)}.home-tab.sc-ix-menu-item-h,[slot=home].sc-ix-menu-item-h{margin-bottom:1.5rem}.bottom-tab.sc-ix-menu-item-h,[slot=bottom].sc-ix-menu-item-h{height:2.25rem}.bottom-tab.sc-ix-menu-item-h .tab.sc-ix-menu-item,[slot=bottom].sc-ix-menu-item-h .tab.sc-ix-menu-item{height:2.25rem}.bottom-tab.sc-ix-menu-item-h .tab.sc-ix-menu-item::before,[slot=bottom].sc-ix-menu-item-h .tab.sc-ix-menu-item::before{height:2.25rem;background-color:transparent}.bottom-tab.active.sc-ix-menu-item-h .tab.sc-ix-menu-item,.bottom-tab.selected.sc-ix-menu-item-h .tab.sc-ix-menu-item,[slot=bottom].active.sc-ix-menu-item-h .tab.sc-ix-menu-item,[slot=bottom].selected.sc-ix-menu-item-h .tab.sc-ix-menu-item{background-color:var(--theme-nav-item-secondary--background--selected)}.bottom-tab.active.sc-ix-menu-item-h:hover,.bottom-tab.selected.sc-ix-menu-item-h:hover,[slot=bottom].active.sc-ix-menu-item-h:hover,[slot=bottom].selected.sc-ix-menu-item-h:hover{background-color:var(--theme-nav-item-secondary--background--selected)}.bottom-tab.active.sc-ix-menu-item-h:active,.bottom-tab.selected.sc-ix-menu-item-h:active,[slot=bottom].active.sc-ix-menu-item-h:active,[slot=bottom].selected.sc-ix-menu-item-h:active{background-color:var(--theme-nav-item-secondary--background--selected)}';const _=class{constructor(e){t(this,e);this.home=false;this.bottom=false;this.tabIcon="document";this.notifications=undefined;this.active=undefined;this.disabled=undefined;this.title=undefined}get tabLabel(){return this.hostElement.querySelector(".tab-text")}componentDidRender(){const t=this.tabLabel;const e=t.innerHTML.replace("&","&");if(this.title!==e){this.title=e}}render(){return i(s,{class:{disabled:this.disabled,"home-tab":this.home,"bottom-tab":this.bottom,active:this.active}},i("li",{class:"tab",title:this.title},i("i",{class:`glyph glyph-${this.tabIcon}`},i("div",{class:"notification"},this.notifications?i("div",{class:"pill"},this.notifications):null)),i("span",{class:"tab-text text-default"},i("slot",null))))}get hostElement(){return n(this)}};_.style=C;const A=".text-xs.sc-ix-menu-settings{-webkit-font-smoothing:antialiased;-moz-osx-font-smooting:grayscale;font-family:Siemens Sans, sans-serif;font-size:0.625rem;font-weight:400;line-height:1.4em;color:var(--theme-color-std-text)}.text-s.sc-ix-menu-settings{-webkit-font-smoothing:antialiased;-moz-osx-font-smooting:grayscale;font-family:Siemens Sans, sans-serif;font-size:0.75rem;font-weight:400;line-height:1.5em;color:var(--theme-color-std-text)}.text-caption.sc-ix-menu-settings{-webkit-font-smoothing:antialiased;-moz-osx-font-smooting:grayscale;font-family:Siemens Sans, sans-serif;font-size:0.75rem;font-weight:700;line-height:1.5em;color:var(--theme-color-std-text)}.text-caption-single.sc-ix-menu-settings{-webkit-font-smoothing:antialiased;-moz-osx-font-smooting:grayscale;font-family:Siemens Sans, sans-serif;font-size:0.75rem;font-weight:700;line-height:1em;color:var(--theme-color-std-text)}.text-default.sc-ix-menu-settings{-webkit-font-smoothing:antialiased;-moz-osx-font-smooting:grayscale;font-family:Siemens Sans, sans-serif;font-size:0.875rem;font-weight:400;line-height:1.429em;color:var(--theme-color-std-text)}.text-default-single.sc-ix-menu-settings{-webkit-font-smoothing:antialiased;-moz-osx-font-smooting:grayscale;font-family:Siemens Sans, sans-serif;font-size:0.875rem;font-weight:400;line-height:1.143em;color:var(--theme-color-std-text)}.text-default-title.sc-ix-menu-settings{-webkit-font-smoothing:antialiased;-moz-osx-font-smooting:grayscale;font-family:Siemens Sans, sans-serif;font-size:0.875rem;font-weight:700;line-height:1.429em;color:var(--theme-color-std-text)}.text-default-title-single.sc-ix-menu-settings{-webkit-font-smoothing:antialiased;-moz-osx-font-smooting:grayscale;font-family:Siemens Sans, sans-serif;font-size:0.875rem;font-weight:700;line-height:1.143em;color:var(--theme-color-std-text)}.text-l.sc-ix-menu-settings{-webkit-font-smoothing:antialiased;-moz-osx-font-smooting:grayscale;font-family:Siemens Sans, sans-serif;font-size:1rem;font-weight:400;line-height:1.5em;color:var(--theme-color-std-text)}.text-l-single.sc-ix-menu-settings{-webkit-font-smoothing:antialiased;-moz-osx-font-smooting:grayscale;font-family:Siemens Sans, sans-serif;font-size:1rem;font-weight:400;line-height:1.25em;color:var(--theme-color-std-text)}.text-l-title.sc-ix-menu-settings{-webkit-font-smoothing:antialiased;-moz-osx-font-smooting:grayscale;font-family:Siemens Sans, sans-serif;font-size:1rem;font-weight:700;line-height:1.5em;color:var(--theme-color-std-text)}.text-l-title-single.sc-ix-menu-settings{-webkit-font-smoothing:antialiased;-moz-osx-font-smooting:grayscale;font-family:Siemens Sans, sans-serif;font-size:1rem;font-weight:700;line-height:1.25em;color:var(--theme-color-std-text)}.text-h2.sc-ix-menu-settings{-webkit-font-smoothing:antialiased;-moz-osx-font-smooting:grayscale;font-family:Siemens Sans, sans-serif;font-size:1.375rem;font-weight:700;line-height:1.455em;color:var(--theme-color-std-text)}.text-xl.sc-ix-menu-settings{-webkit-font-smoothing:antialiased;-moz-osx-font-smooting:grayscale;font-family:Siemens Sans, sans-serif;font-size:1.375rem;font-weight:400;line-height:1.091em;color:var(--theme-color-std-text)}a.sc-ix-menu-settings{color:var(--theme-color-primary)}.sc-ix-menu-settings-h{display:block;background-color:var(--theme-nav-overlay--background);padding:0.75rem 1rem 1rem 2rem;flex-grow:1;position:absolute;width:100%;height:100%}.sc-ix-menu-settings-h .settings-header.sc-ix-menu-settings{display:flex;justify-content:space-between;flex-direction:row;align-items:center;height:2rem;margin-bottom:0.5rem}.sc-ix-menu-settings-h .settings-header.sc-ix-menu-settings h2.sc-ix-menu-settings{color:var(--theme-nav-overlay-header--color);margin-bottom:0}.sc-ix-menu-settings-h .settings-tabs.sc-ix-menu-settings{margin-bottom:1.5rem}";const I=class{constructor(i){t(this,i);this.close=e(this,"close",7);this.activeTabLabel=undefined;this.label="Settings";this.show=false}get settingsItems(){return Array.from(this.el.querySelectorAll("ix-menu-settings-item"))}setTab(t){this.activeTabLabel=t;this.settingsItems.forEach((t=>{t.style.display="none";if(t.label===this.activeTabLabel){t.style.display="block"}}))}componentWillLoad(){if(this.settingsItems.length){this.setTab(this.activeTabLabel||this.settingsItems[0].label)}}componentDidLoad(){o(this.el)}watchActiveTabLabel(t){this.setTab(t)}getTabItems(){return this.settingsItems.map((({label:t})=>i("ix-tab-item",{class:{active:t===this.activeTabLabel},onClick:()=>this.setTab(t)},t)))}render(){return i(s,{class:{animate__animated:true,animate__fadeInLeft:this.show,animate__fadeOutLeft:!this.show}},i("div",{class:"settings-header"},i("h2",{class:"text-h2"},this.label),i("ix-icon-button",{ghost:true,size:"24",icon:"close",onClick:t=>this.close.emit(t)})),i("ix-tabs",null,this.getTabItems()),i("slot",null))}get el(){return n(this)}static get watchers(){return{activeTabLabel:["watchActiveTabLabel"]}}};I.style=A;const T=".sc-ix-menu-settings-item-h{display:block}";const M=class{constructor(e){t(this,e);this.label=undefined}render(){return i(s,null,i("slot",null))}};M.style=T;export{d as ix_menu,x as ix_menu_about,f as ix_menu_about_item,p as ix_menu_about_news,k as ix_menu_avatar,S as ix_menu_avatar_item,_ as ix_menu_item,I as ix_menu_settings,M as ix_menu_settings_item};
|
|
2
|
+
//# sourceMappingURL=p-34e3a10e.entry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["menuCss","Menu","this","domObserver","MutationObserver","onDomChange","bind","isVisible","elm","style","display","_b","_a","parentElement","onWindowResize","visibleMenuItems","getMaxTabCount","handleNodeMutation","node","HTMLElement","matches","menu","contains","appendAbout","appendSettings","mutations","forEach","mutationRecord","addedNodes","removedNodes","popoverArea","hostElement","querySelector","overlayContainer","invisibleContainer","menuItems","Array","from","querySelectorAll","filter","menuBottomItems","homeTab","moreItemsDropdown","isMoreItemsDropdownEmpty","length","moreItemsDropdownItems","activeMoreTabContainer","activeMoreTab","aboutPopoverContainer","aboutPopover","document","aboutTab","about","settings","isSettingsEmpty","avatarItem","tabsContainer","showTab","index","componentDidLoad","addEventListener","showSettings","show","classList","add","_c","showAbout","_d","observe","attributes","childList","subtree","componentWillLoad","menuController","register","layout","hostContext","isBasicNavigationLayout","hideHeader","screenMode","onChange","on","mode","componentWillRender","appendTabs","componentDidRender","appendFragments","appendAvatar","appendAboutNewsPopover","isMoreTabEmpty","countMoreNotifications","getMoreNotificationsCount","resetActiveTab","activeTab","isMenuItemActive","item","active","appendChild","resetOverlay","remove","avatar","marginBottom","getAboutPopoverVerticalPosition","heightArrow","offsetArrow","rectAbout","getBoundingClientRect","offset","window","innerHeight","bottom","height","convertToRemString","showMore","aboutItemLabel","activeTabLabel","toggleAbout","body","moreTabs","count","tab","getAvailableHeight","heightBurgerMenu","heightHome","heightAvatar","heightBottomTab","availableHeight","clientHeight","enableMapExpand","heightTab","visibleCount","Math","floor","menuItemCount","maxVisibleMenuItems","min","async","skipAllOverlayAnimations","undefined","mapExpand","skipOverlayAnimationFor","element","animateClass","setTimeout","expand","expanded","expandChange","emit","toggleMenu","showMoreButton","getCollapseText","i18nCollapse","i18nExpand","getCollapseIcon","isMenuItemClicked","event","path","composedPath","id","tagName","some","render","h","Host","class","onClick","tabIcon","innerText","title","notifications","i18nMore","trigger","positioningStrategy","placement","map","e","dispatchEvent","CustomEvent","enableSettings","toggleSettings","i18nSettings","name","i18nLegal","enableToggleTheme","themeSwitcher","toggleMode","i18nToggleTheme","mapExpandChange","opacity","menuAboutCss","MenuAbout","aboutItems","el","setTab","label","i","forceUpdate","updateLabels","labels","watchActiveTabLabel","value","getSelectedTabIndex","selectedItem","find","indexOf","getTabItems","animate__animated","animate__fadeInLeft","animate__fadeOutLeft","ghost","size","icon","close","selected","menuAboutItemCss","MenuAboutItem","menuAboutNewsCss","MenuAboutNews","color","viewBox","xmlns","points","closePopover","i18nShowMore","menuAvatarCss","DefaultAvatar","props","initials","width","fill","d","MenuAvatar","avatarElementId","top","image","src","mainAxis","i18nLogout","logoutClick","menuAvatarItemCss","MenuAvatarItem","itemClick","menuItemCss","MenuItem","tabLabel","spanElement","newTitle","innerHTML","replace","disabled","home","menuSettingsCss","settingsItems","menuSettingsItemCss","MenuSettingsItem"],"sources":["./src/components/menu/menu.scss?tag=ix-menu","./src/components/menu/menu.tsx","./src/components/menu-about/menu-about.scss?tag=ix-menu-about&encapsulation=scoped","./src/components/menu-about/menu-about.tsx","./src/components/menu-about-item/menu-about-item.css?tag=ix-menu-about-item&encapsulation=scoped","./src/components/menu-about-item/menu-about-item.tsx","./src/components/menu-about-news/menu-about-news.scss?tag=ix-menu-about-news&encapsulation=scoped","./src/components/menu-about-news/menu-about-news.tsx","./src/components/menu-avatar/menu-avatar.scss?tag=ix-menu-avatar&encapsulation=scoped","./src/components/menu-avatar/menu-avatar.tsx","./src/components/menu-avatar-item/menu-avatar-item.css?tag=ix-menu-avatar-item&encapsulation=scoped","./src/components/menu-avatar-item/menu-avatar-item.tsx","./src/components/menu-item/menu-item.scss?tag=ix-menu-item&encapsulation=scoped","./src/components/menu-item/menu-item.tsx","./src/components/menu-settings/menu-settings.scss?tag=ix-menu-settings&encapsulation=scoped","./src/components/menu-settings/menu-settings.tsx","./src/components/menu-settings-item/menu-settings-item.css?tag=ix-menu-settings-item&encapsulation=scoped","./src/components/menu-settings-item/menu-settings-item.tsx"],"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\n@import 'common-variables';\n@import 'mixins/hover';\n\nix-menu {\n display: flex;\n flex-direction: row;\n position: absolute;\n height: 100%;\n min-height: 22.75rem;\n z-index: var(--theme-z-index-sticky);\n width: auto;\n\n .menu {\n display: flex;\n flex-direction: column;\n position: relative;\n width: 4rem;\n height: 100%;\n padding-block-end: 1rem;\n overflow: hidden;\n\n &.expanded {\n box-shadow: var(--theme-navigation--box-shadow);\n }\n\n background-color: var(--theme-nav--background);\n transition: width var(--animate-duration);\n\n .burger-menu {\n margin: 0.75rem 0 1rem 0.75rem;\n }\n }\n\n .menu-overlay {\n display: block;\n position: absolute;\n width: calc(100vw - 4rem);\n height: 100%;\n left: 4rem;\n z-index: -1;\n backdrop-filter: blur(1rem);\n background-color: var(--theme-sidebar-overlay-blur);\n transition: all $medium-time ease-out;\n }\n\n .menu-overlay-invisible {\n display: none;\n }\n\n .menu.expanded {\n width: 16rem;\n }\n\n .menu-overlay.expanded {\n width: calc(100vw - 16rem);\n left: 16rem;\n }\n\n #avatar-tab-placeholder {\n max-height: 3rem;\n }\n\n .avatar {\n margin-bottom: 2rem;\n }\n\n #cui-imprint {\n .cui-imprint-product-name {\n margin-bottom: $default-space;\n }\n\n .cui-imprint-product-description {\n margin-bottom: $x-large-space;\n }\n\n .cui-imprint-link-container {\n display: flex;\n align-items: center;\n }\n }\n\n .bottom-tab-divider {\n margin-top: auto;\n }\n}\n\nix-menu.mode-mobile {\n .menu:not(.expanded) {\n width: 0;\n }\n\n .menu {\n padding-top: 2rem;\n }\n\n .menu .burger-menu {\n display: none;\n }\n\n .menu-overlay {\n left: 0px;\n width: calc(100vw);\n }\n}\n\n// Remove text-decoration if a tag is used inside ix-menu\na[href]:has(> ix-menu-item) {\n text-decoration: none;\n}\n","/*\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 Method,\n Prop,\n State,\n} from '@stencil/core';\nimport { menuController } from '../utils/menu-service/menu-service';\nimport { convertToRemString } from '../utils/rwd.util';\nimport { hostContext, isBasicNavigationLayout } from '../utils/screen/context';\nimport { Mode } from '../utils/screen/mode';\nimport { screenMode } from '../utils/screen/service';\nimport { themeSwitcher } from '../utils/theme-switcher';\n\n@Component({\n tag: 'ix-menu',\n styleUrl: 'menu.scss',\n scoped: false,\n})\nexport class Menu {\n @Element() hostElement!: HTMLIxMenuElement;\n\n /**\n * Is settings tab visible\n */\n @Prop({ mutable: true }) showSettings = false;\n\n /**\n * Is about tab visible\n */\n @Prop({ mutable: true }) showAbout = false;\n\n /**\n * Show toggle between light and dark variant. Only if the provided theme have implemented both!\n */\n @Prop() enableToggleTheme = false;\n\n /**\n * Is settings tab is visible\n */\n @Prop() enableSettings = true;\n\n /**\n * Internal\n */\n @Prop() enableMapExpand = false;\n\n /**\n * Should only be set if you use ix-menu standalone\n */\n @Prop() applicationName: string;\n\n /**\n * Should only be set if you use ix-menu standalone\n */\n @Prop() applicationDescription = '';\n\n /**\n * Maximum number of menu items to show in case enough vertical space is available.\n * Extra menu items will be collapsed to 'show more' menu item.\n */\n @Prop() maxVisibleMenuItems = 9;\n\n /**\n */\n @Prop() i18nLegal = 'About & legal information';\n\n /**\n */\n @Prop() i18nSettings = 'Settings';\n\n /**\n */\n @Prop() i18nToggleTheme = 'Toggle theme';\n\n /**\n */\n @Prop() i18nExpand = ' Expand';\n\n /**\n */\n @Prop() i18nCollapse = 'Collapse';\n\n /**\n */\n @Prop() i18nMore = 'More…';\n\n /**\n * Expand menu\n */\n @Prop({ mutable: true, reflect: true }) expand = false;\n\n /**\n * Menu expanded\n */\n @Event() expandChange: EventEmitter<boolean>;\n\n /**\n * Map Sidebar expanded\n */\n @Event() mapExpandChange: EventEmitter<boolean>;\n @State() showMoreItems = false;\n @State() visibleMenuItems = 0;\n @State() countMoreNotifications = 0;\n @State() mapExpand = true;\n @State() activeTab: HTMLIxMenuItemElement;\n @State() isMoreTabEmpty = false;\n @State() mode: Mode = 'desktop';\n\n private readonly domObserver = new MutationObserver(\n this.onDomChange.bind(this)\n );\n\n @Listen('resize', { target: 'window' })\n onWindowResize() {\n this.visibleMenuItems = this.getMaxTabCount();\n }\n\n private handleNodeMutation(node: Node) {\n if (!(node instanceof HTMLElement)) {\n return;\n }\n\n if (node.matches('.tab')) {\n this.onWindowResize();\n }\n\n if (node.matches('ix-menu-about') && this.menu.contains(node)) {\n this.appendAbout();\n }\n\n if (node.matches('ix-menu-settings') && this.menu.contains(node)) {\n this.appendSettings();\n }\n }\n\n private onDomChange(mutations: MutationRecord[]) {\n mutations.forEach((mutationRecord) => {\n mutationRecord.addedNodes.forEach(this.handleNodeMutation.bind(this));\n mutationRecord.removedNodes.forEach(this.handleNodeMutation.bind(this));\n });\n }\n\n // FBC IAM workaround #488\n private readonly isVisible = (elm: HTMLElement) => {\n return (\n elm.style.display !== 'none' &&\n elm.parentElement?.parentElement?.style.display !== 'none'\n );\n };\n\n get popoverArea() {\n return this.hostElement.querySelector('#popover-area');\n }\n\n get overlayContainer() {\n return this.hostElement.querySelector('.menu-overlay');\n }\n\n get invisibleContainer() {\n return this.hostElement.querySelector('.menu-overlay-invisible');\n }\n\n get menu() {\n return this.hostElement.querySelector('.menu');\n }\n\n get menuItems() {\n return Array.from(\n this.hostElement.querySelectorAll(\n 'ix-menu-item:not(.internal-tab):not(.home-tab):not(.bottom-tab):not([slot=\"bottom\"])'\n )\n ).filter(this.isVisible);\n }\n\n get menuBottomItems() {\n return Array.from(\n this.hostElement.querySelectorAll(\n 'ix-menu-item.bottom-tab:not(.internal-tab):not(.home-tab)'\n )\n ).filter(this.isVisible);\n }\n\n get homeTab() {\n return this.hostElement.querySelector('ix-menu-item.home-tab');\n }\n\n get moreItemsDropdown(): HTMLElement {\n return this.hostElement.querySelector('.internal-tab ix-dropdown');\n }\n\n get isMoreItemsDropdownEmpty(): boolean {\n return (\n this.hostElement.querySelectorAll('.internal-tab ix-dropdown .appended')\n .length === 0\n );\n }\n\n get moreItemsDropdownItems() {\n return this.hostElement.querySelectorAll(\n '.internal-tab ix-dropdown ix-menu-item'\n );\n }\n\n get activeMoreTabContainer() {\n return this.hostElement.querySelector('.active-more-tab');\n }\n\n get activeMoreTab() {\n return this.hostElement.querySelector('.active-more-tab ix-menu-item');\n }\n\n get aboutPopoverContainer(): HTMLElement {\n return this.hostElement.querySelector('.about-news');\n }\n\n get aboutPopover(): HTMLIxMenuAboutNewsElement {\n return document.querySelector('ix-menu-about-news');\n }\n\n get aboutTab(): HTMLElement {\n return this.hostElement.querySelector('#aboutAndLegal');\n }\n\n get about(): HTMLIxMenuAboutElement {\n return this.hostElement.querySelector('ix-menu-about');\n }\n\n get settings(): HTMLIxMenuSettingsElement {\n return this.hostElement.querySelector('ix-menu-settings');\n }\n\n get isSettingsEmpty(): boolean {\n return (\n Array.from(this.hostElement.querySelectorAll('ix-menu-settings-item'))\n .length === 0\n );\n }\n\n get avatarItem(): HTMLIxMenuAvatarElement {\n return this.hostElement.querySelector('ix-menu-avatar');\n }\n\n get tabsContainer(): HTMLDivElement {\n return this.hostElement.querySelector('#menu-tabs');\n }\n\n private showTab(index: number) {\n return index + 1 <= this.visibleMenuItems;\n }\n\n componentDidLoad() {\n this.settings?.addEventListener('close', () => {\n this.showSettings = false;\n this.settings.show = this.showSettings;\n });\n\n this.settings?.addEventListener('animationend', () => {\n if (!this.showSettings) {\n this.settings.classList.add('d-none');\n this.overlayContainer.classList.add('d-none');\n }\n });\n\n this.about?.addEventListener('close', () => {\n this.showAbout = false;\n this.about.show = this.showAbout;\n });\n\n this.about?.addEventListener('animationend', () => {\n if (!this.showAbout) {\n this.about.classList.add('d-none');\n this.overlayContainer.classList.add('d-none');\n }\n });\n\n this.overlayContainer.classList.add('d-none');\n\n this.onWindowResize();\n\n this.domObserver.observe(this.hostElement, {\n attributes: false,\n childList: true,\n subtree: true,\n });\n }\n\n componentWillLoad() {\n menuController.register(this.hostElement);\n const layout = hostContext('ix-basic-navigation', this.hostElement);\n if (isBasicNavigationLayout(layout) && layout.hideHeader === false) {\n screenMode.onChange.on((mode) => (this.mode = mode));\n this.mode = screenMode.mode;\n }\n }\n\n componentWillRender() {\n this.appendTabs();\n }\n\n componentDidRender() {\n this.visibleMenuItems = this.getMaxTabCount();\n this.appendFragments();\n }\n\n private appendFragments() {\n this.appendAvatar();\n this.appendAbout();\n this.appendSettings();\n this.appendAboutNewsPopover();\n\n // This lead to none infinite-loops and other bugs.\n this.isMoreTabEmpty = this.isMoreItemsDropdownEmpty;\n\n this.countMoreNotifications = this.getMoreNotificationsCount();\n }\n\n private resetActiveTab() {\n this.activeTab = null;\n }\n\n private isMenuItemActive(item: HTMLIxMenuItemElement) {\n return item.active || item.classList.contains('active');\n }\n\n private appendTabs() {\n this.activeTab = null;\n\n if (this.homeTab) {\n this.hostElement.querySelector('.tabs-top').appendChild(this.homeTab);\n this.homeTab.addEventListener('click', this.resetOverlay.bind(this));\n }\n\n this.menuItems.forEach((item: HTMLIxMenuItemElement, index) => {\n if (this.showTab(index)) {\n item.classList.remove('d-none');\n } else {\n item.classList.add('d-none');\n\n if (this.isMenuItemActive(item)) {\n this.activeTab = item;\n }\n }\n\n // TODO: Find better solution to handle home tab\n this.homeTab?.classList.remove('d-none');\n\n item.addEventListener('click', this.resetOverlay.bind(this));\n });\n }\n\n private appendAvatar() {\n const avatar = this.avatarItem;\n if (avatar) {\n avatar.style.marginBottom = '1rem';\n this.hostElement\n .querySelector('#avatar-tab-placeholder')\n ?.appendChild(avatar);\n }\n }\n\n private getAboutPopoverVerticalPosition() {\n const heightArrow = 12;\n const offsetArrow = 6;\n const rectAbout = this.aboutTab.getBoundingClientRect();\n const offset =\n window.innerHeight -\n (rectAbout.bottom - rectAbout.height / 2 + heightArrow / 2 + offsetArrow);\n return convertToRemString(offset);\n }\n\n private appendAboutNewsPopover() {\n if (!this.aboutPopover) {\n return;\n }\n\n this.aboutPopover.style.bottom = this.getAboutPopoverVerticalPosition();\n\n if (!this.popoverArea?.contains(this.aboutPopover)) {\n const showMore = () => {\n if (this.aboutPopover?.aboutItemLabel) {\n this.about.activeTabLabel = this.aboutPopover.aboutItemLabel;\n this.toggleAbout(true);\n }\n };\n\n this.aboutPopover.addEventListener('showMore', showMore.bind(this));\n document.body.appendChild(this.aboutPopover);\n }\n }\n\n private appendSettings() {\n if (this.settings) {\n this.overlayContainer.appendChild(this.settings);\n }\n }\n\n private appendAbout() {\n if (this.about) {\n this.overlayContainer.appendChild(this.about);\n }\n }\n\n private getMoreNotificationsCount(): number {\n const moreTabs = this.moreItemsDropdown?.querySelectorAll('.appended');\n let count = 0;\n moreTabs?.forEach((tab) => {\n if (tab['notifications']) {\n count += tab['notifications'];\n }\n });\n\n return count;\n }\n\n private getAvailableHeight() {\n const heightBurgerMenu = 60;\n const heightHome = 72;\n const heightAvatar = 56;\n const heightBottomTab = 36;\n\n let availableHeight = this.hostElement.clientHeight;\n\n availableHeight -= heightBurgerMenu;\n\n if (this.avatarItem) {\n availableHeight -= heightAvatar;\n }\n\n if (this.homeTab) {\n availableHeight -= heightHome;\n }\n\n if (this.showAbout) {\n availableHeight -= heightBottomTab;\n }\n\n if (this.showSettings) {\n availableHeight -= heightBottomTab;\n }\n\n if (this.menuBottomItems.length) {\n availableHeight -= this.menuBottomItems.length * heightBottomTab;\n }\n\n if (this.enableMapExpand) {\n availableHeight -= heightBottomTab;\n }\n\n // Subtract height of imprint and theme toggle tabs\n availableHeight -= 2 * heightBottomTab;\n\n // Subtract bottom margin of bottom tabs\n availableHeight -= 16;\n\n return availableHeight;\n }\n\n private getMaxTabCount() {\n const heightTab = 48;\n const availableHeight = this.getAvailableHeight();\n const visibleCount = Math.floor(availableHeight / heightTab);\n const menuItemCount = this.menuItems.length;\n\n if (menuItemCount === 1) {\n return 1;\n }\n\n if (menuItemCount < this.maxVisibleMenuItems) {\n if (visibleCount > menuItemCount) {\n return menuItemCount;\n }\n\n return Math.min(visibleCount - 2, menuItemCount);\n }\n\n if (menuItemCount === this.maxVisibleMenuItems) {\n if (visibleCount < this.maxVisibleMenuItems) {\n return visibleCount - 2;\n }\n\n if (visibleCount === this.maxVisibleMenuItems) {\n return this.maxVisibleMenuItems - 2;\n }\n\n return Math.min(visibleCount, this.maxVisibleMenuItems);\n }\n\n if (visibleCount === this.maxVisibleMenuItems) {\n return this.maxVisibleMenuItems - 2;\n }\n if (visibleCount >= this.maxVisibleMenuItems) {\n return this.maxVisibleMenuItems - 1;\n }\n\n return Math.min(visibleCount - 2, this.maxVisibleMenuItems);\n }\n\n /**\n * Toggle map sidebar expand\n * @param show\n */\n @Method()\n async toggleMapExpand(show?: boolean) {\n this.skipAllOverlayAnimations();\n\n if (show !== undefined) {\n this.mapExpand = show;\n } else {\n this.mapExpand = !this.mapExpand;\n }\n }\n\n private skipAllOverlayAnimations() {\n if (this.about) {\n this.skipOverlayAnimationFor(this.about);\n }\n if (this.settings) {\n this.skipOverlayAnimationFor(this.settings);\n }\n }\n\n private skipOverlayAnimationFor(element: HTMLElement) {\n const animateClass = 'animate__animated';\n\n element?.classList.remove(animateClass);\n\n setTimeout(() => {\n element?.classList.add(animateClass);\n }, 300);\n }\n\n /**\n * Toggle menu\n * @param show\n */\n @Method()\n async toggleMenu(show?: boolean) {\n this.skipAllOverlayAnimations();\n\n if (show !== undefined) {\n this.expand = show;\n } else {\n this.expand = !this.expand;\n }\n\n if (this.aboutPopover) {\n this.aboutPopover.expanded = this.expand;\n }\n\n this.expandChange.emit(this.expand);\n }\n\n /**\n * Toggle Settings tabs\n * @param show\n */\n @Method()\n async toggleSettings(show: boolean) {\n if (this.showAbout) {\n this.skipAllOverlayAnimations();\n } else {\n this.skipOverlayAnimationFor(this.about);\n }\n\n this.about?.classList.add('d-none');\n\n this.resetOverlay();\n this.showSettings = show;\n this.settings.show = this.showSettings;\n this.settings.classList.remove('d-none');\n this.overlayContainer.classList.remove('d-none');\n }\n\n /**\n * Toggle About tabs\n * @param show\n */\n @Method()\n async toggleAbout(show: boolean) {\n if (this.showSettings) {\n this.skipAllOverlayAnimations();\n } else {\n this.skipOverlayAnimationFor(this.settings);\n }\n\n this.settings?.classList.add('d-none');\n\n this.resetOverlay();\n this.showAbout = show;\n this.about.show = this.showAbout;\n this.about.classList.remove('d-none');\n this.overlayContainer.classList.remove('d-none');\n }\n\n private resetOverlay() {\n this.showSettings = false;\n this.showAbout = false;\n\n if (this.settings) {\n this.settings.show = this.showSettings;\n }\n\n if (this.about) {\n this.about.show = this.showAbout;\n }\n\n this.toggleMenu(false);\n }\n\n private showMoreButton() {\n const menuItemCount = this.menuItems.length;\n\n if (menuItemCount === 1) {\n return false;\n }\n\n if (menuItemCount < this.maxVisibleMenuItems) {\n return this.visibleMenuItems < menuItemCount;\n }\n\n if (menuItemCount > this.maxVisibleMenuItems) {\n return this.visibleMenuItems < this.maxVisibleMenuItems;\n }\n\n return this.visibleMenuItems <= this.maxVisibleMenuItems - 2;\n }\n\n private getCollapseText() {\n return this.mapExpand ? this.i18nCollapse : this.i18nExpand;\n }\n\n private getCollapseIcon() {\n return this.mapExpand ? 'double-chevron-left' : 'double-chevron-right';\n }\n\n private isMenuItemClicked(event: MouseEvent) {\n const path = event.composedPath();\n const menuItems = (path as HTMLElement[])\n .filter((element) => element.id !== 'ix-menu-more-tab')\n .filter((element) => {\n return element.tagName === 'IX-MENU-ITEM';\n });\n\n return menuItems.some((menu) => this.tabsContainer.contains(menu));\n }\n\n render() {\n return (\n <Host\n class={{\n expanded: this.expand,\n [`mode-${this.mode}`]: true,\n }}\n >\n <div\n class={{\n menu: true,\n expanded: this.expand,\n }}\n onClick={() => {\n this.resetActiveTab();\n }}\n >\n <ix-burger-menu\n onClick={async () => this.toggleMenu()}\n expanded={this.expand}\n class={{\n 'burger-menu': true,\n }}\n ></ix-burger-menu>\n <div id=\"avatar-tab-placeholder\"></div>\n <div\n id=\"menu-tabs\"\n style={{\n display: 'contents',\n }}\n onClick={(event) => {\n if (this.isMenuItemClicked(event)) {\n this.resetOverlay();\n }\n }}\n >\n <div class=\"tabs-top\"></div>\n <slot></slot>\n <div class=\"active-more-tab\">\n {this.activeTab ? (\n <ix-menu-item\n class=\"internal-tab\"\n active={true}\n tabIcon={this.activeTab.tabIcon}\n >\n {this.activeTab.innerText}\n </ix-menu-item>\n ) : null}\n </div>\n <ix-menu-item\n id=\"ix-menu-more-tab\"\n tabIcon=\"more-menu\"\n class={{\n 'internal-tab': true,\n }}\n style={{\n display: this.showMoreButton() ? 'block' : 'none',\n }}\n title=\"Show more\"\n notifications={this.countMoreNotifications}\n >\n {this.i18nMore}\n <ix-dropdown\n trigger={'ix-menu-more-tab'}\n positioningStrategy={'fixed'}\n placement={'right-start'}\n >\n {this.menuItems\n .filter(\n (elm: HTMLIxMenuItemElement, index) =>\n !this.showTab(index) &&\n !this.isMenuItemActive(elm) &&\n this.isVisible(elm)\n )\n .map((e: HTMLIxMenuItemElement) => {\n return (\n <ix-menu-item\n tabIcon={e.tabIcon}\n active={e.active}\n class=\"internal-tab appended\"\n onClick={() => {\n this.resetOverlay();\n e.dispatchEvent(new CustomEvent('click'));\n }}\n >\n {e.innerText}\n </ix-menu-item>\n );\n })}\n </ix-dropdown>\n </ix-menu-item>\n </div>\n <div class=\"bottom-tab-divider\"></div>\n {this.enableSettings && !this.isSettingsEmpty ? (\n <ix-menu-item\n id=\"settings\"\n class={{\n 'internal-tab': true,\n 'bottom-tab': true,\n active: this.showSettings,\n }}\n tabIcon=\"cogwheel\"\n onClick={async () => this.toggleSettings(!this.showSettings)}\n >\n {this.i18nSettings}\n </ix-menu-item>\n ) : null}\n <slot name=\"bottom\"></slot>\n <div id=\"popover-area\"></div>\n {this.about ? (\n <ix-menu-item\n id=\"aboutAndLegal\"\n class={{\n 'internal-tab': true,\n 'bottom-tab': true,\n active: this.showAbout,\n }}\n tabIcon=\"info\"\n onClick={async () => this.toggleAbout(!this.showAbout)}\n >\n {this.i18nLegal}\n </ix-menu-item>\n ) : null}\n {this.enableToggleTheme ? (\n <ix-menu-item\n id=\"toggleTheme\"\n onClick={() => themeSwitcher.toggleMode()}\n class=\"internal-tab bottom-tab\"\n tabIcon=\"bulb\"\n >\n {this.i18nToggleTheme}\n </ix-menu-item>\n ) : null}\n {this.enableMapExpand ? (\n <ix-menu-item\n id=\"menu-collapse\"\n onClick={() => this.mapExpandChange.emit(this.mapExpand)}\n class=\"internal-tab bottom-tab\"\n tabIcon={`${this.getCollapseIcon()}`}\n >\n {this.getCollapseText()}\n </ix-menu-item>\n ) : null}\n </div>\n <div\n class={{\n 'menu-overlay': true,\n expanded: this.expand,\n 'd-block': this.showAbout || this.showSettings,\n }}\n style={{\n opacity: this.showAbout || this.showSettings ? '1' : '0',\n }}\n ></div>\n <div class=\"menu-overlay-invisible\"></div>\n </Host>\n );\n }\n}\n","/*\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\n@import 'common-variables';\n@import 'fonts';\n\n:host {\n display: block;\n background-color: var(--theme-nav-overlay--background);\n padding: $medium-space $default-space $default-space $x-large-space;\n flex-grow: 1;\n position: absolute;\n width: 100%;\n height: 100%;\n\n .about-header {\n display: flex;\n justify-content: space-between;\n flex-direction: row;\n align-items: center;\n height: $x-large-space;\n margin-bottom: $small-space;\n\n h2 {\n color: var(--theme-nav-overlay-header--color);\n margin-bottom: 0;\n }\n }\n\n .about-tabs {\n margin-bottom: $large-space;\n }\n\n ix-menu-about-item {\n display: none;\n }\n}\n","/*\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 forceUpdate,\n h,\n Host,\n Prop,\n State,\n Watch,\n} from '@stencil/core';\n\n@Component({\n tag: 'ix-menu-about',\n styleUrl: 'menu-about.scss',\n scoped: true,\n})\nexport class MenuAbout {\n /**\n * Active tab\n */\n @Prop({ mutable: true }) activeTabLabel: string;\n\n /**\n * Label of first tab\n */\n @Prop() label = 'About & legal information';\n\n /**\n * Internal\n */\n @Prop() show = false;\n\n @Element() el!: HTMLIxMenuAboutElement;\n\n /**\n * About and Legal closed\n */\n @Event() close: EventEmitter<MouseEvent>;\n\n @State() labels: string[] = [];\n\n get aboutItems(): HTMLIxMenuAboutItemElement[] {\n return Array.from(this.el.querySelectorAll('ix-menu-about-item'));\n }\n\n private setTab(label: string) {\n this.activeTabLabel = label;\n this.aboutItems.forEach((i) => {\n i.style.display = 'none';\n if (i.label === this.activeTabLabel) {\n i.style.display = 'block';\n }\n });\n }\n\n componentWillLoad() {\n if (this.aboutItems.length) {\n this.setTab(this.activeTabLabel || this.aboutItems[0].label);\n }\n }\n\n componentDidLoad() {\n forceUpdate(this.el);\n }\n\n componentWillRender() {\n this.updateLabels();\n }\n\n private updateLabels() {\n this.labels = this.aboutItems.map((i) => i.label);\n }\n\n @Watch('activeTabLabel')\n watchActiveTabLabel(value: string) {\n // Wait a DOM render cycle to get changed labels\n setTimeout(() => this.setTab(value));\n }\n\n private getSelectedTabIndex(label: string) {\n const selectedItem = this.aboutItems.find((item) => item.label === label);\n return this.aboutItems.indexOf(selectedItem);\n }\n\n private getTabItems() {\n return this.aboutItems.map(({ label }) => {\n return (\n <ix-tab-item\n class={{\n active: label === this.activeTabLabel,\n }}\n onClick={() => this.setTab(label)}\n >\n {label}\n </ix-tab-item>\n );\n });\n }\n\n render() {\n return (\n <Host\n class={{\n animate__animated: true,\n animate__fadeInLeft: this.show,\n animate__fadeOutLeft: !this.show,\n }}\n >\n <div class=\"about-header\">\n <h2 class=\"text-h2\">{this.label}</h2>\n <ix-icon-button\n ghost\n size=\"24\"\n icon=\"close\"\n onClick={(e) => this.close.emit(e)}\n ></ix-icon-button>\n </div>\n <ix-tabs\n selected={this.getSelectedTabIndex(this.activeTabLabel)}\n class=\"about-tabs\"\n >\n {this.getTabItems()}\n </ix-tabs>\n <div class=\"about-items\">\n <slot></slot>\n </div>\n </Host>\n );\n }\n}\n","/*\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\n:host {\n display: block;\n}\n","/*\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, h, Host, Prop } from '@stencil/core';\n\n@Component({\n tag: 'ix-menu-about-item',\n styleUrl: 'menu-about-item.css',\n scoped: true,\n})\nexport class MenuAboutItem {\n /**\n * About Item label\n */\n @Prop({ reflect: true }) label: string;\n\n render() {\n return (\n <Host>\n <slot></slot>\n </Host>\n );\n }\n}\n","/*\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\n@import 'common-variables';\n@import 'mixins/shadows';\n\n:host {\n --margin: 0.5rem;\n\n $left: 4rem;\n display: block;\n position: fixed;\n width: 20rem;\n height: auto;\n background-color: var(--theme-color-1);\n border: var(--theme-weak-bdr-1);\n border-radius: $default-border-radius;\n padding: 1rem;\n left: $left;\n z-index: 10000;\n transition: left var(--animate-duration);\n\n margin-left: var(--margin) !important;\n\n @include box-shadow(4);\n\n &.expanded {\n left: calc(#{$left} + 12rem);\n }\n\n &.show {\n display: none;\n }\n\n .banner-container {\n position: absolute;\n top: 0.0625rem;\n left: $default-space;\n\n svg {\n position: absolute;\n height: 3.625rem;\n width: 3rem;\n\n polygon {\n fill: var(--theme-color-primary);\n }\n }\n\n ix-icon {\n margin: $small-space;\n position: absolute;\n z-index: 1;\n }\n }\n\n .cui-popover-news-header {\n margin-bottom: 2rem;\n margin-left: 4rem;\n margin-top: -$tiny-space;\n }\n\n .popover-body {\n color: var(--theme-color-std-text);\n }\n\n .cui-popover-news-footer {\n display: flex;\n justify-content: flex-end;\n margin-top: 1rem;\n }\n\n ix-icon-button {\n top: $small-space;\n right: $small-space;\n position: absolute;\n }\n\n #arrow {\n position: absolute;\n width: 0.5rem;\n height: 0.5rem;\n background-color: var(--theme-color-1);\n border-left: var(--theme-weak-bdr-1);\n border-bottom: var(--theme-weak-bdr-1);\n transform: translateX(calc(var(--margin) * -1 - 0.8rem)) rotateZ(45deg);\n }\n}\n","/*\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, Event, EventEmitter, h, Host, Prop } from '@stencil/core';\n\n@Component({\n tag: 'ix-menu-about-news',\n styleUrl: 'menu-about-news.scss',\n scoped: true,\n})\nexport class MenuAboutNews {\n /**\n * Show about news\n */\n @Prop({ mutable: true, reflect: true }) show = false;\n\n /**\n * Title of the about news\n */\n @Prop() label: string;\n\n /**\n *\n */\n @Prop() i18nShowMore = 'Show more';\n\n /**\n * Subtitle of the about news\n */\n @Prop() aboutItemLabel: string;\n\n /**\n * Bottom offset\n */\n @Prop() offsetBottom = 0;\n\n /**\n * Show More button is pressed\n */\n @Event() showMore: EventEmitter<MouseEvent>;\n\n /**\n * Popover closed\n */\n @Event() closePopover: EventEmitter<void>;\n\n /**\n * Internal\n */\n @Prop() expanded = false;\n\n render() {\n return (\n <Host\n class={{\n expanded: this.expanded,\n show: !this.show,\n }}\n >\n <div class=\"banner-container\">\n <ix-icon\n color=\"color-inv-contrast-text\"\n name=\"shout\"\n size=\"32\"\n ></ix-icon>\n <svg viewBox=\"0 0 48 56\" xmlns=\"http://www.w3.org/2000/svg\">\n <polygon points=\"0 0 48 0 48 56 24 48 0 56\" />\n </svg>\n </div>\n\n <div class=\"cui-popover-news-header\">\n <span class=\"text-l-title\">{this.label}</span>\n </div>\n\n <ix-icon-button\n size=\"24\"\n icon=\"close-small\"\n ghost\n onClick={() => {\n this.show = false;\n this.closePopover.emit();\n }}\n ></ix-icon-button>\n <slot></slot>\n {this.aboutItemLabel ? (\n <div class=\"cui-popover-news-footer\">\n <button\n class=\"btn btn-primary\"\n onClick={(e) => {\n this.show = false;\n this.showMore.emit(e);\n }}\n >\n {this.i18nShowMore}\n </button>\n </div>\n ) : null}\n <div id=\"arrow\"></div>\n </Host>\n );\n }\n}\n","/*\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\n@import 'common-variables';\n@import 'mixins/text-truncation';\n@import 'mixins/hover';\n\n:host {\n display: block;\n position: relative;\n margin-bottom: 0.5rem;\n\n .avatar {\n display: flex;\n align-items: center;\n height: 2.5rem;\n max-height: 2.5rem;\n padding-left: 0.25rem;\n margin-left: 0.75rem;\n margin-right: 0.75rem;\n transition: 0.15s;\n\n > .avatar-image {\n height: 2rem;\n width: 2rem;\n min-height: 2rem;\n min-width: 2rem;\n border-radius: 100px;\n }\n\n > .avatar-initials {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 2rem;\n width: 2rem;\n min-height: 2rem;\n min-width: 2rem;\n border-radius: 100px;\n background-color: var(--theme-color-component-3);\n }\n\n #avatar-path-background {\n fill: var(--theme-avatar--background);\n }\n\n #avatar-path-person {\n fill: var(--theme-color-4);\n }\n\n .avatar-name {\n display: flex;\n flex-direction: column;\n overflow: hidden;\n white-space: nowrap;\n margin-left: $default-space;\n line-height: 1.14;\n\n .text-default-single {\n @include ellipsis;\n }\n }\n\n border-radius: 1.25rem;\n\n @include hover {\n background-color: var(--theme-avatar-btn--background--hover);\n color: var(--theme-avatar-btn--color--hover);\n }\n\n @include active {\n background-color: var(--theme-avatar-btn--background--active);\n color: var(--theme-avatar-btn--color--active);\n }\n }\n}\n","/*\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\nfunction DefaultAvatar(props: { initials?: string }) {\n const { initials } = props;\n\n if (initials) {\n return <div class={'avatar-initials'}>{initials}</div>;\n }\n\n return (\n <svg\n class={'avatar-image'}\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"32\"\n height=\"32\"\n viewBox=\"0 0 32 32\"\n >\n <g fill=\"none\" fill-rule=\"evenodd\">\n <path\n id=\"avatar-path-background\"\n d=\"M16 0C7.163 0 0 7.163 0 16s7.163 16 16 16 16-7.163\n 16-16c0-4.243-1.686-8.313-4.686-11.314C24.314 1.686 20.244 0 16 0z\"\n />\n <path\n id=\"avatar-path-person\"\n d=\"M17.897 17.91c3.8-.018 7.358 1.875 9.485 5.046-2.417 3.999-6.734 6.434-11.382\n 6.42-4.648.014-8.965-2.421-11.382-6.42 2.127-3.171 5.685-5.064\n 9.485-5.045h3.794zM15.821 2.129c3.682 0 6.667 2.984 6.667 6.666 0 3.682-2.985\n 6.667-6.667 6.667s-6.667-2.985-6.667-6.667 2.985-6.666 6.667-6.666z\"\n />\n </g>\n </svg>\n );\n}\n\nimport {\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Prop,\n} from '@stencil/core';\n\n@Component({\n tag: 'ix-menu-avatar',\n styleUrl: 'menu-avatar.scss',\n scoped: true,\n})\nexport class MenuAvatar {\n @Element() hostElement: HTMLIxMenuAvatarElement;\n\n /**\n * First line of text\n */\n @Prop() top: string;\n\n /**\n * Second line of text\n */\n @Prop() bottom: string;\n\n /**\n * Display a avatar image\n *\n * @since 1.4.0\n */\n @Prop() image: string;\n\n /**\n * Display the initials of the user. Will be overwritten by image\n *\n * @since 1.4.0\n */\n @Prop() initials: string;\n\n /**\n * Use for translation\n */\n @Prop() i18nLogout = 'Logout';\n\n /**\n * Logout click\n */\n @Event() logoutClick: EventEmitter;\n\n private avatarElementId = 'ix-menu-avatar-id';\n\n render() {\n return (\n <Host>\n <li\n class=\"nav-item top-item avatar no-hover\"\n title={this.top}\n id={this.avatarElementId}\n >\n {this.image ? (\n <img src={this.image} class=\"avatar-image\"></img>\n ) : (\n <DefaultAvatar initials={this.initials} />\n )}\n <div class=\"avatar-name\">\n <span class=\"text-default-single\" title={this.top}>\n {this.top}\n </span>\n <span class=\"text-default-single\" title={this.bottom}>\n {this.bottom}\n </span>\n </div>\n </li>\n <ix-dropdown\n trigger={this.avatarElementId}\n placement={'right-start'}\n offset={{\n mainAxis: 12,\n }}\n >\n <slot></slot>\n <ix-menu-avatar-item\n label={this.i18nLogout}\n icon=\"log-out\"\n onClick={(e) => {\n this.logoutClick.emit(e);\n }}\n ></ix-menu-avatar-item>\n </ix-dropdown>\n </Host>\n );\n }\n}\n","/*\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\n:host {\n display: block;\n}\n","/*\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 Prop,\n} from '@stencil/core';\n\n@Component({\n tag: 'ix-menu-avatar-item',\n styleUrl: 'menu-avatar-item.css',\n scoped: true,\n})\nexport class MenuAvatarItem {\n /**\n * Avatar dropdown icon\n */\n @Prop() icon: string;\n\n /**\n * Avatar dropdown label\n */\n @Prop() label: string;\n\n /**\n * Avatar dropdown item clicked\n */\n @Event() itemClick: EventEmitter<MouseEvent>;\n\n @Element() hostElement: HTMLIxMenuAvatarItemElement;\n\n render() {\n return (\n <ix-dropdown-item\n icon={this.icon}\n label={this.label}\n onClick={(e) => this.itemClick.emit(e)}\n ></ix-dropdown-item>\n );\n }\n}\n","/*\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\n@import 'common-variables';\n@import 'mixins/hover';\n@import 'mixins/text-truncation';\n\n:host {\n position: relative;\n display: block;\n\n .tab {\n display: flex;\n position: relative;\n align-items: center;\n height: 3rem;\n z-index: 500;\n padding-left: 1.25rem;\n\n &:not(.selected) {\n cursor: pointer;\n\n @include ghost-hover-pressed;\n }\n }\n\n i.glyph {\n color: var(--theme-nav-item-primary-icon--color);\n position: relative;\n }\n\n .tab:focus-visible {\n outline: none;\n }\n\n &:focus-visible {\n outline: none;\n }\n\n .tab:not(:last-child) {\n margin-bottom: $small-space;\n }\n\n .notification {\n display: inline-flex;\n position: absolute;\n top: -$small-space;\n right: -50%;\n\n .pill {\n display: inline-flex;\n justify-content: center;\n align-items: center;\n height: 1rem;\n min-width: 1rem;\n position: relative;\n border-radius: 6.25rem;\n background-color: var(--theme-color-primary);\n border-radius: 6.25rem;\n font-size: 0.75rem;\n font-weight: bold;\n line-height: 1;\n font-family: Siemens Sans, Arial, sans-serif;\n color: var(--theme-color-primary--contrast);\n padding: $tiny-space;\n }\n }\n\n .tab-text {\n @include ellipsis;\n color: var(--theme-nav-item-primary--color);\n margin: 0 1.25rem;\n user-select: none;\n }\n\n &.active,\n &.selected {\n .tab {\n background-color: var(--theme-nav-item-primary--background--selected);\n }\n\n .tab::before {\n content: '';\n background-color: var(--theme-nav-item-primary--border-color--selected);\n height: 3rem;\n width: 0.25rem;\n left: 0;\n position: absolute;\n }\n\n .tab > .glyph {\n color: var(--theme-nav-item-primary-icon--color--selected);\n }\n }\n\n &.disabled {\n color: var(--theme-color-weak-text);\n pointer-events: none;\n cursor: default;\n\n .tab > .glyph {\n color: var(--theme-color-weak-text);\n }\n\n .tab-text {\n color: var(--theme-color-weak-text);\n }\n }\n\n &.home-tab,\n &[slot='home'] {\n margin-bottom: 1.5rem;\n }\n\n &.bottom-tab,\n &[slot='bottom'] {\n $bottom-height: 2.25rem;\n\n height: $bottom-height;\n\n .tab {\n height: $bottom-height;\n }\n\n .tab::before {\n height: $bottom-height;\n }\n\n &.active,\n &.selected {\n .tab {\n background-color: var(--theme-color-1);\n }\n }\n }\n}\n","/*\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, Prop, State } from '@stencil/core';\n\n@Component({\n tag: 'ix-menu-item',\n styleUrl: 'menu-item.scss',\n scoped: true,\n})\nexport class MenuItem {\n /**\n * Move the Tab to a top position.\n */\n @Prop() home = false;\n\n /**\n * Caution: this is no longer working. Please use slot=\"bottom\" instead.\n *\n * Place tab on bottom\n *\n * @deprecated Will be removed in 2.0.0. Replaced by slot based implementation\n */\n @Prop() bottom = false;\n\n /**\n * Icon name from @siemens/ix-icons\n */\n @Prop() tabIcon = 'document';\n\n /**\n * Show notification cound on tab\n */\n @Prop() notifications: number;\n\n /**\n * State to display active\n */\n @Prop() active: boolean;\n\n /**\n * Disable tab and remove event handlers\n */\n @Prop() disabled: boolean;\n\n @Element() hostElement: HTMLIxMenuItemElement;\n\n @State() title: string;\n\n get tabLabel() {\n return this.hostElement.querySelector('.tab-text');\n }\n\n componentDidRender() {\n const spanElement = this.tabLabel;\n const newTitle = spanElement.innerHTML.replace('&', '&');\n if (this.title !== newTitle) {\n this.title = newTitle;\n }\n }\n\n render() {\n return (\n <Host\n class={{\n disabled: this.disabled,\n 'home-tab': this.home,\n 'bottom-tab': this.bottom,\n active: this.active,\n }}\n >\n <li class=\"tab\" title={this.title}>\n <i class={`glyph glyph-${this.tabIcon}`}>\n <div class=\"notification\">\n {this.notifications ? (\n <div class=\"pill\">{this.notifications}</div>\n ) : null}\n </div>\n </i>\n <span class=\"tab-text text-default\">\n <slot></slot>\n </span>\n </li>\n </Host>\n );\n }\n}\n","/*\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\n@import 'common-variables';\n@import 'fonts';\n\n:host {\n display: block;\n background-color: var(--theme-nav-overlay--background);\n padding: $medium-space $default-space $default-space $x-large-space;\n flex-grow: 1;\n position: absolute;\n width: 100%;\n height: 100%;\n\n .settings-header {\n display: flex;\n justify-content: space-between;\n flex-direction: row;\n align-items: center;\n height: $x-large-space;\n margin-bottom: $small-space;\n\n h2 {\n color: var(--theme-nav-overlay-header--color);\n margin-bottom: 0;\n }\n }\n\n .settings-tabs {\n margin-bottom: $large-space;\n }\n}\n","/*\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 forceUpdate,\n h,\n Host,\n Prop,\n Watch,\n} from '@stencil/core';\n\n@Component({\n tag: 'ix-menu-settings',\n styleUrl: 'menu-settings.scss',\n scoped: true,\n})\nexport class MenuAbout {\n /**\n * active tab\n */\n @Prop({ mutable: true }) activeTabLabel: string;\n\n /**\n * Label\n */\n @Prop() label = 'Settings';\n\n /**\n * Internal\n */\n @Prop() show = false;\n\n @Element() el!: HTMLIxMenuSettingsElement;\n\n /**\n * Popover closed\n */\n @Event() close: EventEmitter<MouseEvent>;\n\n get settingsItems(): HTMLIxMenuSettingsItemElement[] {\n return Array.from(this.el.querySelectorAll('ix-menu-settings-item'));\n }\n\n private setTab(label: string) {\n this.activeTabLabel = label;\n this.settingsItems.forEach((i) => {\n i.style.display = 'none';\n\n if (i.label === this.activeTabLabel) {\n i.style.display = 'block';\n }\n });\n }\n\n componentWillLoad() {\n if (this.settingsItems.length) {\n this.setTab(this.activeTabLabel || this.settingsItems[0].label);\n }\n }\n\n componentDidLoad() {\n forceUpdate(this.el);\n }\n\n @Watch('activeTabLabel')\n watchActiveTabLabel(value: string) {\n this.setTab(value);\n }\n\n private getTabItems() {\n return this.settingsItems.map(({ label }) => {\n return (\n <ix-tab-item\n class={{\n active: label === this.activeTabLabel,\n }}\n onClick={() => this.setTab(label)}\n >\n {label}\n </ix-tab-item>\n );\n });\n }\n\n render() {\n return (\n <Host\n class={{\n animate__animated: true,\n animate__fadeInLeft: this.show,\n animate__fadeOutLeft: !this.show,\n }}\n >\n <div class=\"settings-header\">\n <h2 class=\"text-h2\">{this.label}</h2>\n <ix-icon-button\n ghost\n size=\"24\"\n icon=\"close\"\n onClick={(e) => this.close.emit(e)}\n ></ix-icon-button>\n </div>\n <ix-tabs>{this.getTabItems()}</ix-tabs>\n <slot></slot>\n </Host>\n );\n }\n}\n","/*\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\n:host {\n display: block;\n\n}\n","/*\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, h, Host, Prop } from '@stencil/core';\n\n@Component({\n tag: 'ix-menu-settings-item',\n styleUrl: 'menu-settings-item.css',\n scoped: true,\n})\nexport class MenuSettingsItem {\n /**\n * Label\n */\n @Prop() label: string;\n\n render() {\n return (\n <Host>\n <slot></slot>\n </Host>\n );\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["menuCss","Menu","this","domObserver","MutationObserver","onDomChange","bind","isVisible","elm","style","display","_b","_a","parentElement","onWindowResize","visibleMenuItems","getMaxTabCount","handleNodeMutation","node","HTMLElement","matches","menu","contains","appendAbout","appendSettings","mutations","forEach","mutationRecord","addedNodes","removedNodes","popoverArea","hostElement","querySelector","overlayContainer","invisibleContainer","menuItems","Array","from","querySelectorAll","filter","menuBottomItems","homeTab","moreItemsDropdown","isMoreItemsDropdownEmpty","length","moreItemsDropdownItems","activeMoreTabContainer","activeMoreTab","aboutPopoverContainer","aboutPopover","document","aboutTab","about","settings","isSettingsEmpty","avatarItem","tabsContainer","showTab","index","componentDidLoad","addEventListener","showSettings","show","classList","add","_c","showAbout","_d","observe","attributes","childList","subtree","componentWillLoad","menuController","register","layout","hostContext","isBasicNavigationLayout","hideHeader","screenMode","onChange","on","mode","componentWillRender","appendTabs","componentDidRender","appendFragments","appendAvatar","appendAboutNewsPopover","isMoreTabEmpty","countMoreNotifications","getMoreNotificationsCount","resetActiveTab","activeTab","isMenuItemActive","item","active","appendChild","resetOverlay","remove","avatar","marginBottom","getAboutPopoverVerticalPosition","heightArrow","offsetArrow","rectAbout","getBoundingClientRect","offset","window","innerHeight","bottom","height","convertToRemString","showMore","aboutItemLabel","activeTabLabel","toggleAbout","body","moreTabs","count","tab","getAvailableHeight","heightBurgerMenu","heightHome","heightAvatar","heightBottomTab","availableHeight","clientHeight","enableMapExpand","heightTab","visibleCount","Math","floor","menuItemCount","maxVisibleMenuItems","min","async","skipAllOverlayAnimations","undefined","mapExpand","skipOverlayAnimationFor","element","animateClass","setTimeout","expand","expanded","expandChange","emit","toggleMenu","showMoreButton","getCollapseText","i18nCollapse","i18nExpand","getCollapseIcon","isMenuItemClicked","event","path","composedPath","id","tagName","some","render","h","Host","class","onClick","tabIcon","innerText","title","notifications","i18nMore","trigger","positioningStrategy","placement","map","e","dispatchEvent","CustomEvent","enableSettings","toggleSettings","i18nSettings","name","i18nLegal","enableToggleTheme","themeSwitcher","toggleMode","i18nToggleTheme","mapExpandChange","opacity","menuAboutCss","MenuAbout","aboutItems","el","setTab","label","i","forceUpdate","updateLabels","labels","watchActiveTabLabel","value","getSelectedTabIndex","selectedItem","find","indexOf","getTabItems","animate__animated","animate__fadeInLeft","animate__fadeOutLeft","ghost","size","icon","close","selected","menuAboutItemCss","MenuAboutItem","menuAboutNewsCss","MenuAboutNews","color","viewBox","xmlns","points","closePopover","i18nShowMore","menuAvatarCss","DefaultAvatar","props","initials","width","fill","d","MenuAvatar","avatarElementId","top","image","src","mainAxis","i18nLogout","logoutClick","menuAvatarItemCss","MenuAvatarItem","itemClick","menuItemCss","MenuItem","tabLabel","spanElement","newTitle","innerHTML","replace","disabled","home","menuSettingsCss","settingsItems","menuSettingsItemCss","MenuSettingsItem"],"sources":["./src/components/menu/menu.scss?tag=ix-menu","./src/components/menu/menu.tsx","./src/components/menu-about/menu-about.scss?tag=ix-menu-about&encapsulation=scoped","./src/components/menu-about/menu-about.tsx","./src/components/menu-about-item/menu-about-item.css?tag=ix-menu-about-item&encapsulation=scoped","./src/components/menu-about-item/menu-about-item.tsx","./src/components/menu-about-news/menu-about-news.scss?tag=ix-menu-about-news&encapsulation=scoped","./src/components/menu-about-news/menu-about-news.tsx","./src/components/menu-avatar/menu-avatar.scss?tag=ix-menu-avatar&encapsulation=scoped","./src/components/menu-avatar/menu-avatar.tsx","./src/components/menu-avatar-item/menu-avatar-item.css?tag=ix-menu-avatar-item&encapsulation=scoped","./src/components/menu-avatar-item/menu-avatar-item.tsx","./src/components/menu-item/menu-item.scss?tag=ix-menu-item&encapsulation=scoped","./src/components/menu-item/menu-item.tsx","./src/components/menu-settings/menu-settings.scss?tag=ix-menu-settings&encapsulation=scoped","./src/components/menu-settings/menu-settings.tsx","./src/components/menu-settings-item/menu-settings-item.css?tag=ix-menu-settings-item&encapsulation=scoped","./src/components/menu-settings-item/menu-settings-item.tsx"],"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\n@import 'common-variables';\n@import 'mixins/hover';\n\nix-menu {\n display: flex;\n flex-direction: row;\n position: absolute;\n height: 100%;\n min-height: 22.75rem;\n z-index: var(--theme-z-index-sticky);\n width: auto;\n\n .menu {\n display: flex;\n flex-direction: column;\n position: relative;\n width: 4rem;\n height: 100%;\n padding-block-end: 1rem;\n overflow: hidden;\n\n &.expanded {\n box-shadow: var(--theme-navigation--box-shadow);\n }\n\n background-color: var(--theme-nav--background);\n transition: width var(--animate-duration);\n\n .burger-menu {\n margin: 0.75rem 0 1rem 0.75rem;\n }\n }\n\n .menu-overlay {\n display: block;\n position: absolute;\n width: calc(100vw - 4rem);\n height: 100%;\n left: 4rem;\n z-index: -1;\n backdrop-filter: blur(1rem);\n background-color: var(--theme-sidebar-overlay-blur);\n transition: all $medium-time ease-out;\n }\n\n .menu-overlay-invisible {\n display: none;\n }\n\n .menu.expanded {\n width: 16rem;\n }\n\n .menu-overlay.expanded {\n width: calc(100vw - 16rem);\n left: 16rem;\n }\n\n #avatar-tab-placeholder {\n max-height: 3rem;\n }\n\n .avatar {\n margin-bottom: 2rem;\n }\n\n #cui-imprint {\n .cui-imprint-product-name {\n margin-bottom: $default-space;\n }\n\n .cui-imprint-product-description {\n margin-bottom: $x-large-space;\n }\n\n .cui-imprint-link-container {\n display: flex;\n align-items: center;\n }\n }\n\n .bottom-tab-divider {\n margin-top: auto;\n }\n}\n\nix-menu.mode-mobile {\n .menu:not(.expanded) {\n width: 0;\n }\n\n .menu {\n padding-top: 2rem;\n }\n\n .menu .burger-menu {\n display: none;\n }\n\n .menu-overlay {\n left: 0px;\n width: calc(100vw);\n }\n}\n\n// Remove text-decoration if a tag is used inside ix-menu\na[href]:has(> ix-menu-item) {\n text-decoration: none;\n}\n","/*\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 Method,\n Prop,\n State,\n} from '@stencil/core';\nimport { menuController } from '../utils/menu-service/menu-service';\nimport { convertToRemString } from '../utils/rwd.util';\nimport { hostContext, isBasicNavigationLayout } from '../utils/screen/context';\nimport { Mode } from '../utils/screen/mode';\nimport { screenMode } from '../utils/screen/service';\nimport { themeSwitcher } from '../utils/theme-switcher';\n\n@Component({\n tag: 'ix-menu',\n styleUrl: 'menu.scss',\n scoped: false,\n})\nexport class Menu {\n @Element() hostElement!: HTMLIxMenuElement;\n\n /**\n * Is settings tab visible\n */\n @Prop({ mutable: true }) showSettings = false;\n\n /**\n * Is about tab visible\n */\n @Prop({ mutable: true }) showAbout = false;\n\n /**\n * Show toggle between light and dark variant. Only if the provided theme have implemented both!\n */\n @Prop() enableToggleTheme = false;\n\n /**\n * Is settings tab is visible\n */\n @Prop() enableSettings = true;\n\n /**\n * Internal\n */\n @Prop() enableMapExpand = false;\n\n /**\n * Should only be set if you use ix-menu standalone\n */\n @Prop() applicationName: string;\n\n /**\n * Should only be set if you use ix-menu standalone\n */\n @Prop() applicationDescription = '';\n\n /**\n * Maximum number of menu items to show in case enough vertical space is available.\n * Extra menu items will be collapsed to 'show more' menu item.\n */\n @Prop() maxVisibleMenuItems = 9;\n\n /**\n */\n @Prop() i18nLegal = 'About & legal information';\n\n /**\n */\n @Prop() i18nSettings = 'Settings';\n\n /**\n */\n @Prop() i18nToggleTheme = 'Toggle theme';\n\n /**\n */\n @Prop() i18nExpand = ' Expand';\n\n /**\n */\n @Prop() i18nCollapse = 'Collapse';\n\n /**\n */\n @Prop() i18nMore = 'More…';\n\n /**\n * Expand menu\n */\n @Prop({ mutable: true, reflect: true }) expand = false;\n\n /**\n * Menu expanded\n */\n @Event() expandChange: EventEmitter<boolean>;\n\n /**\n * Map Sidebar expanded\n */\n @Event() mapExpandChange: EventEmitter<boolean>;\n @State() showMoreItems = false;\n @State() visibleMenuItems = 0;\n @State() countMoreNotifications = 0;\n @State() mapExpand = true;\n @State() activeTab: HTMLIxMenuItemElement;\n @State() isMoreTabEmpty = false;\n @State() mode: Mode = 'desktop';\n\n private readonly domObserver = new MutationObserver(\n this.onDomChange.bind(this)\n );\n\n @Listen('resize', { target: 'window' })\n onWindowResize() {\n this.visibleMenuItems = this.getMaxTabCount();\n }\n\n private handleNodeMutation(node: Node) {\n if (!(node instanceof HTMLElement)) {\n return;\n }\n\n if (node.matches('.tab')) {\n this.onWindowResize();\n }\n\n if (node.matches('ix-menu-about') && this.menu.contains(node)) {\n this.appendAbout();\n }\n\n if (node.matches('ix-menu-settings') && this.menu.contains(node)) {\n this.appendSettings();\n }\n }\n\n private onDomChange(mutations: MutationRecord[]) {\n mutations.forEach((mutationRecord) => {\n mutationRecord.addedNodes.forEach(this.handleNodeMutation.bind(this));\n mutationRecord.removedNodes.forEach(this.handleNodeMutation.bind(this));\n });\n }\n\n // FBC IAM workaround #488\n private readonly isVisible = (elm: HTMLElement) => {\n return (\n elm.style.display !== 'none' &&\n elm.parentElement?.parentElement?.style.display !== 'none'\n );\n };\n\n get popoverArea() {\n return this.hostElement.querySelector('#popover-area');\n }\n\n get overlayContainer() {\n return this.hostElement.querySelector('.menu-overlay');\n }\n\n get invisibleContainer() {\n return this.hostElement.querySelector('.menu-overlay-invisible');\n }\n\n get menu() {\n return this.hostElement.querySelector('.menu');\n }\n\n get menuItems() {\n return Array.from(\n this.hostElement.querySelectorAll(\n 'ix-menu-item:not(.internal-tab):not(.home-tab):not(.bottom-tab):not([slot=\"bottom\"])'\n )\n ).filter(this.isVisible);\n }\n\n get menuBottomItems() {\n return Array.from(\n this.hostElement.querySelectorAll(\n 'ix-menu-item.bottom-tab:not(.internal-tab):not(.home-tab)'\n )\n ).filter(this.isVisible);\n }\n\n get homeTab() {\n return this.hostElement.querySelector('ix-menu-item.home-tab');\n }\n\n get moreItemsDropdown(): HTMLElement {\n return this.hostElement.querySelector('.internal-tab ix-dropdown');\n }\n\n get isMoreItemsDropdownEmpty(): boolean {\n return (\n this.hostElement.querySelectorAll('.internal-tab ix-dropdown .appended')\n .length === 0\n );\n }\n\n get moreItemsDropdownItems() {\n return this.hostElement.querySelectorAll(\n '.internal-tab ix-dropdown ix-menu-item'\n );\n }\n\n get activeMoreTabContainer() {\n return this.hostElement.querySelector('.active-more-tab');\n }\n\n get activeMoreTab() {\n return this.hostElement.querySelector('.active-more-tab ix-menu-item');\n }\n\n get aboutPopoverContainer(): HTMLElement {\n return this.hostElement.querySelector('.about-news');\n }\n\n get aboutPopover(): HTMLIxMenuAboutNewsElement {\n return document.querySelector('ix-menu-about-news');\n }\n\n get aboutTab(): HTMLElement {\n return this.hostElement.querySelector('#aboutAndLegal');\n }\n\n get about(): HTMLIxMenuAboutElement {\n return this.hostElement.querySelector('ix-menu-about');\n }\n\n get settings(): HTMLIxMenuSettingsElement {\n return this.hostElement.querySelector('ix-menu-settings');\n }\n\n get isSettingsEmpty(): boolean {\n return (\n Array.from(this.hostElement.querySelectorAll('ix-menu-settings-item'))\n .length === 0\n );\n }\n\n get avatarItem(): HTMLIxMenuAvatarElement {\n return this.hostElement.querySelector('ix-menu-avatar');\n }\n\n get tabsContainer(): HTMLDivElement {\n return this.hostElement.querySelector('#menu-tabs');\n }\n\n private showTab(index: number) {\n return index + 1 <= this.visibleMenuItems;\n }\n\n componentDidLoad() {\n this.settings?.addEventListener('close', () => {\n this.showSettings = false;\n this.settings.show = this.showSettings;\n });\n\n this.settings?.addEventListener('animationend', () => {\n if (!this.showSettings) {\n this.settings.classList.add('d-none');\n this.overlayContainer.classList.add('d-none');\n }\n });\n\n this.about?.addEventListener('close', () => {\n this.showAbout = false;\n this.about.show = this.showAbout;\n });\n\n this.about?.addEventListener('animationend', () => {\n if (!this.showAbout) {\n this.about.classList.add('d-none');\n this.overlayContainer.classList.add('d-none');\n }\n });\n\n this.overlayContainer.classList.add('d-none');\n\n this.onWindowResize();\n\n this.domObserver.observe(this.hostElement, {\n attributes: false,\n childList: true,\n subtree: true,\n });\n }\n\n componentWillLoad() {\n menuController.register(this.hostElement);\n const layout = hostContext('ix-basic-navigation', this.hostElement);\n if (isBasicNavigationLayout(layout) && layout.hideHeader === false) {\n screenMode.onChange.on((mode) => (this.mode = mode));\n this.mode = screenMode.mode;\n }\n }\n\n componentWillRender() {\n this.appendTabs();\n }\n\n componentDidRender() {\n this.visibleMenuItems = this.getMaxTabCount();\n this.appendFragments();\n }\n\n private appendFragments() {\n this.appendAvatar();\n this.appendAbout();\n this.appendSettings();\n this.appendAboutNewsPopover();\n\n // This lead to none infinite-loops and other bugs.\n this.isMoreTabEmpty = this.isMoreItemsDropdownEmpty;\n\n this.countMoreNotifications = this.getMoreNotificationsCount();\n }\n\n private resetActiveTab() {\n this.activeTab = null;\n }\n\n private isMenuItemActive(item: HTMLIxMenuItemElement) {\n return item.active || item.classList.contains('active');\n }\n\n private appendTabs() {\n this.activeTab = null;\n\n if (this.homeTab) {\n this.hostElement.querySelector('.tabs-top').appendChild(this.homeTab);\n this.homeTab.addEventListener('click', this.resetOverlay.bind(this));\n }\n\n this.menuItems.forEach((item: HTMLIxMenuItemElement, index) => {\n if (this.showTab(index)) {\n item.classList.remove('d-none');\n } else {\n item.classList.add('d-none');\n\n if (this.isMenuItemActive(item)) {\n this.activeTab = item;\n }\n }\n\n // TODO: Find better solution to handle home tab\n this.homeTab?.classList.remove('d-none');\n\n item.addEventListener('click', this.resetOverlay.bind(this));\n });\n }\n\n private appendAvatar() {\n const avatar = this.avatarItem;\n if (avatar) {\n avatar.style.marginBottom = '1rem';\n this.hostElement\n .querySelector('#avatar-tab-placeholder')\n ?.appendChild(avatar);\n }\n }\n\n private getAboutPopoverVerticalPosition() {\n const heightArrow = 12;\n const offsetArrow = 6;\n const rectAbout = this.aboutTab.getBoundingClientRect();\n const offset =\n window.innerHeight -\n (rectAbout.bottom - rectAbout.height / 2 + heightArrow / 2 + offsetArrow);\n return convertToRemString(offset);\n }\n\n private appendAboutNewsPopover() {\n if (!this.aboutPopover) {\n return;\n }\n\n this.aboutPopover.style.bottom = this.getAboutPopoverVerticalPosition();\n\n if (!this.popoverArea?.contains(this.aboutPopover)) {\n const showMore = () => {\n if (this.aboutPopover?.aboutItemLabel) {\n this.about.activeTabLabel = this.aboutPopover.aboutItemLabel;\n this.toggleAbout(true);\n }\n };\n\n this.aboutPopover.addEventListener('showMore', showMore.bind(this));\n document.body.appendChild(this.aboutPopover);\n }\n }\n\n private appendSettings() {\n if (this.settings) {\n this.overlayContainer.appendChild(this.settings);\n }\n }\n\n private appendAbout() {\n if (this.about) {\n this.overlayContainer.appendChild(this.about);\n }\n }\n\n private getMoreNotificationsCount(): number {\n const moreTabs = this.moreItemsDropdown?.querySelectorAll('.appended');\n let count = 0;\n moreTabs?.forEach((tab) => {\n if (tab['notifications']) {\n count += tab['notifications'];\n }\n });\n\n return count;\n }\n\n private getAvailableHeight() {\n const heightBurgerMenu = 60;\n const heightHome = 72;\n const heightAvatar = 56;\n const heightBottomTab = 36;\n\n let availableHeight = this.hostElement.clientHeight;\n\n availableHeight -= heightBurgerMenu;\n\n if (this.avatarItem) {\n availableHeight -= heightAvatar;\n }\n\n if (this.homeTab) {\n availableHeight -= heightHome;\n }\n\n if (this.showAbout) {\n availableHeight -= heightBottomTab;\n }\n\n if (this.showSettings) {\n availableHeight -= heightBottomTab;\n }\n\n if (this.menuBottomItems.length) {\n availableHeight -= this.menuBottomItems.length * heightBottomTab;\n }\n\n if (this.enableMapExpand) {\n availableHeight -= heightBottomTab;\n }\n\n // Subtract height of imprint and theme toggle tabs\n availableHeight -= 2 * heightBottomTab;\n\n // Subtract bottom margin of bottom tabs\n availableHeight -= 16;\n\n return availableHeight;\n }\n\n private getMaxTabCount() {\n const heightTab = 48;\n const availableHeight = this.getAvailableHeight();\n const visibleCount = Math.floor(availableHeight / heightTab);\n const menuItemCount = this.menuItems.length;\n\n if (menuItemCount === 1) {\n return 1;\n }\n\n if (menuItemCount < this.maxVisibleMenuItems) {\n if (visibleCount > menuItemCount) {\n return menuItemCount;\n }\n\n return Math.min(visibleCount - 2, menuItemCount);\n }\n\n if (menuItemCount === this.maxVisibleMenuItems) {\n if (visibleCount < this.maxVisibleMenuItems) {\n return visibleCount - 2;\n }\n\n if (visibleCount === this.maxVisibleMenuItems) {\n return this.maxVisibleMenuItems - 2;\n }\n\n return Math.min(visibleCount, this.maxVisibleMenuItems);\n }\n\n if (visibleCount === this.maxVisibleMenuItems) {\n return this.maxVisibleMenuItems - 2;\n }\n if (visibleCount >= this.maxVisibleMenuItems) {\n return this.maxVisibleMenuItems - 1;\n }\n\n return Math.min(visibleCount - 2, this.maxVisibleMenuItems);\n }\n\n /**\n * Toggle map sidebar expand\n * @param show\n */\n @Method()\n async toggleMapExpand(show?: boolean) {\n this.skipAllOverlayAnimations();\n\n if (show !== undefined) {\n this.mapExpand = show;\n } else {\n this.mapExpand = !this.mapExpand;\n }\n }\n\n private skipAllOverlayAnimations() {\n if (this.about) {\n this.skipOverlayAnimationFor(this.about);\n }\n if (this.settings) {\n this.skipOverlayAnimationFor(this.settings);\n }\n }\n\n private skipOverlayAnimationFor(element: HTMLElement) {\n const animateClass = 'animate__animated';\n\n element?.classList.remove(animateClass);\n\n setTimeout(() => {\n element?.classList.add(animateClass);\n }, 300);\n }\n\n /**\n * Toggle menu\n * @param show\n */\n @Method()\n async toggleMenu(show?: boolean) {\n this.skipAllOverlayAnimations();\n\n if (show !== undefined) {\n this.expand = show;\n } else {\n this.expand = !this.expand;\n }\n\n if (this.aboutPopover) {\n this.aboutPopover.expanded = this.expand;\n }\n\n this.expandChange.emit(this.expand);\n }\n\n /**\n * Toggle Settings tabs\n * @param show\n */\n @Method()\n async toggleSettings(show: boolean) {\n if (this.showAbout) {\n this.skipAllOverlayAnimations();\n } else {\n this.skipOverlayAnimationFor(this.about);\n }\n\n this.about?.classList.add('d-none');\n\n this.resetOverlay();\n this.showSettings = show;\n this.settings.show = this.showSettings;\n this.settings.classList.remove('d-none');\n this.overlayContainer.classList.remove('d-none');\n }\n\n /**\n * Toggle About tabs\n * @param show\n */\n @Method()\n async toggleAbout(show: boolean) {\n if (this.showSettings) {\n this.skipAllOverlayAnimations();\n } else {\n this.skipOverlayAnimationFor(this.settings);\n }\n\n this.settings?.classList.add('d-none');\n\n this.resetOverlay();\n this.showAbout = show;\n this.about.show = this.showAbout;\n this.about.classList.remove('d-none');\n this.overlayContainer.classList.remove('d-none');\n }\n\n private resetOverlay() {\n this.showSettings = false;\n this.showAbout = false;\n\n if (this.settings) {\n this.settings.show = this.showSettings;\n }\n\n if (this.about) {\n this.about.show = this.showAbout;\n }\n\n this.toggleMenu(false);\n }\n\n private showMoreButton() {\n const menuItemCount = this.menuItems.length;\n\n if (menuItemCount === 1) {\n return false;\n }\n\n if (menuItemCount < this.maxVisibleMenuItems) {\n return this.visibleMenuItems < menuItemCount;\n }\n\n if (menuItemCount > this.maxVisibleMenuItems) {\n return this.visibleMenuItems < this.maxVisibleMenuItems;\n }\n\n return this.visibleMenuItems <= this.maxVisibleMenuItems - 2;\n }\n\n private getCollapseText() {\n return this.mapExpand ? this.i18nCollapse : this.i18nExpand;\n }\n\n private getCollapseIcon() {\n return this.mapExpand ? 'double-chevron-left' : 'double-chevron-right';\n }\n\n private isMenuItemClicked(event: MouseEvent) {\n const path = event.composedPath();\n const menuItems = (path as HTMLElement[])\n .filter((element) => element.id !== 'ix-menu-more-tab')\n .filter((element) => {\n return element.tagName === 'IX-MENU-ITEM';\n });\n\n return menuItems.some((menu) => this.tabsContainer.contains(menu));\n }\n\n render() {\n return (\n <Host\n class={{\n expanded: this.expand,\n [`mode-${this.mode}`]: true,\n }}\n >\n <div\n class={{\n menu: true,\n expanded: this.expand,\n }}\n onClick={() => {\n this.resetActiveTab();\n }}\n >\n <ix-burger-menu\n onClick={async () => this.toggleMenu()}\n expanded={this.expand}\n class={{\n 'burger-menu': true,\n }}\n ></ix-burger-menu>\n <div id=\"avatar-tab-placeholder\"></div>\n <div\n id=\"menu-tabs\"\n style={{\n display: 'contents',\n }}\n onClick={(event) => {\n if (this.isMenuItemClicked(event)) {\n this.resetOverlay();\n }\n }}\n >\n <div class=\"tabs-top\"></div>\n <slot></slot>\n <div class=\"active-more-tab\">\n {this.activeTab ? (\n <ix-menu-item\n class=\"internal-tab\"\n active={true}\n tabIcon={this.activeTab.tabIcon}\n >\n {this.activeTab.innerText}\n </ix-menu-item>\n ) : null}\n </div>\n <ix-menu-item\n id=\"ix-menu-more-tab\"\n tabIcon=\"more-menu\"\n class={{\n 'internal-tab': true,\n }}\n style={{\n display: this.showMoreButton() ? 'block' : 'none',\n }}\n title=\"Show more\"\n notifications={this.countMoreNotifications}\n >\n {this.i18nMore}\n <ix-dropdown\n trigger={'ix-menu-more-tab'}\n positioningStrategy={'fixed'}\n placement={'right-start'}\n >\n {this.menuItems\n .filter(\n (elm: HTMLIxMenuItemElement, index) =>\n !this.showTab(index) &&\n !this.isMenuItemActive(elm) &&\n this.isVisible(elm)\n )\n .map((e: HTMLIxMenuItemElement) => {\n return (\n <ix-menu-item\n tabIcon={e.tabIcon}\n active={e.active}\n class=\"internal-tab appended\"\n onClick={() => {\n this.resetOverlay();\n e.dispatchEvent(new CustomEvent('click'));\n }}\n >\n {e.innerText}\n </ix-menu-item>\n );\n })}\n </ix-dropdown>\n </ix-menu-item>\n </div>\n <div class=\"bottom-tab-divider\"></div>\n {this.enableSettings && !this.isSettingsEmpty ? (\n <ix-menu-item\n id=\"settings\"\n class={{\n 'internal-tab': true,\n 'bottom-tab': true,\n active: this.showSettings,\n }}\n tabIcon=\"cogwheel\"\n onClick={async () => this.toggleSettings(!this.showSettings)}\n >\n {this.i18nSettings}\n </ix-menu-item>\n ) : null}\n <slot name=\"bottom\"></slot>\n <div id=\"popover-area\"></div>\n {this.about ? (\n <ix-menu-item\n id=\"aboutAndLegal\"\n class={{\n 'internal-tab': true,\n 'bottom-tab': true,\n active: this.showAbout,\n }}\n tabIcon=\"info\"\n onClick={async () => this.toggleAbout(!this.showAbout)}\n >\n {this.i18nLegal}\n </ix-menu-item>\n ) : null}\n {this.enableToggleTheme ? (\n <ix-menu-item\n id=\"toggleTheme\"\n onClick={() => themeSwitcher.toggleMode()}\n class=\"internal-tab bottom-tab\"\n tabIcon=\"bulb\"\n >\n {this.i18nToggleTheme}\n </ix-menu-item>\n ) : null}\n {this.enableMapExpand ? (\n <ix-menu-item\n id=\"menu-collapse\"\n onClick={() => this.mapExpandChange.emit(this.mapExpand)}\n class=\"internal-tab bottom-tab\"\n tabIcon={`${this.getCollapseIcon()}`}\n >\n {this.getCollapseText()}\n </ix-menu-item>\n ) : null}\n </div>\n <div\n class={{\n 'menu-overlay': true,\n expanded: this.expand,\n 'd-block': this.showAbout || this.showSettings,\n }}\n style={{\n opacity: this.showAbout || this.showSettings ? '1' : '0',\n }}\n ></div>\n <div class=\"menu-overlay-invisible\"></div>\n </Host>\n );\n }\n}\n","/*\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\n@import 'common-variables';\n@import 'fonts';\n\n:host {\n display: block;\n background-color: var(--theme-nav-overlay--background);\n padding: $medium-space $default-space $default-space $x-large-space;\n flex-grow: 1;\n position: absolute;\n width: 100%;\n height: 100%;\n\n .about-header {\n display: flex;\n justify-content: space-between;\n flex-direction: row;\n align-items: center;\n height: $x-large-space;\n margin-bottom: $small-space;\n\n h2 {\n color: var(--theme-nav-overlay-header--color);\n margin-bottom: 0;\n }\n }\n\n .about-tabs {\n margin-bottom: $large-space;\n }\n\n ix-menu-about-item {\n display: none;\n }\n}\n","/*\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 forceUpdate,\n h,\n Host,\n Prop,\n State,\n Watch,\n} from '@stencil/core';\n\n@Component({\n tag: 'ix-menu-about',\n styleUrl: 'menu-about.scss',\n scoped: true,\n})\nexport class MenuAbout {\n /**\n * Active tab\n */\n @Prop({ mutable: true }) activeTabLabel: string;\n\n /**\n * Label of first tab\n */\n @Prop() label = 'About & legal information';\n\n /**\n * Internal\n */\n @Prop() show = false;\n\n @Element() el!: HTMLIxMenuAboutElement;\n\n /**\n * About and Legal closed\n */\n @Event() close: EventEmitter<MouseEvent>;\n\n @State() labels: string[] = [];\n\n get aboutItems(): HTMLIxMenuAboutItemElement[] {\n return Array.from(this.el.querySelectorAll('ix-menu-about-item'));\n }\n\n private setTab(label: string) {\n this.activeTabLabel = label;\n this.aboutItems.forEach((i) => {\n i.style.display = 'none';\n if (i.label === this.activeTabLabel) {\n i.style.display = 'block';\n }\n });\n }\n\n componentWillLoad() {\n if (this.aboutItems.length) {\n this.setTab(this.activeTabLabel || this.aboutItems[0].label);\n }\n }\n\n componentDidLoad() {\n forceUpdate(this.el);\n }\n\n componentWillRender() {\n this.updateLabels();\n }\n\n private updateLabels() {\n this.labels = this.aboutItems.map((i) => i.label);\n }\n\n @Watch('activeTabLabel')\n watchActiveTabLabel(value: string) {\n // Wait a DOM render cycle to get changed labels\n setTimeout(() => this.setTab(value));\n }\n\n private getSelectedTabIndex(label: string) {\n const selectedItem = this.aboutItems.find((item) => item.label === label);\n return this.aboutItems.indexOf(selectedItem);\n }\n\n private getTabItems() {\n return this.aboutItems.map(({ label }) => {\n return (\n <ix-tab-item\n class={{\n active: label === this.activeTabLabel,\n }}\n onClick={() => this.setTab(label)}\n >\n {label}\n </ix-tab-item>\n );\n });\n }\n\n render() {\n return (\n <Host\n class={{\n animate__animated: true,\n animate__fadeInLeft: this.show,\n animate__fadeOutLeft: !this.show,\n }}\n >\n <div class=\"about-header\">\n <h2 class=\"text-h2\">{this.label}</h2>\n <ix-icon-button\n ghost\n size=\"24\"\n icon=\"close\"\n onClick={(e) => this.close.emit(e)}\n ></ix-icon-button>\n </div>\n <ix-tabs\n selected={this.getSelectedTabIndex(this.activeTabLabel)}\n class=\"about-tabs\"\n >\n {this.getTabItems()}\n </ix-tabs>\n <div class=\"about-items\">\n <slot></slot>\n </div>\n </Host>\n );\n }\n}\n","/*\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\n:host {\n display: block;\n}\n","/*\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, h, Host, Prop } from '@stencil/core';\n\n@Component({\n tag: 'ix-menu-about-item',\n styleUrl: 'menu-about-item.css',\n scoped: true,\n})\nexport class MenuAboutItem {\n /**\n * About Item label\n */\n @Prop({ reflect: true }) label: string;\n\n render() {\n return (\n <Host>\n <slot></slot>\n </Host>\n );\n }\n}\n","/*\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\n@import 'common-variables';\n@import 'mixins/shadows';\n\n:host {\n --margin: 0.5rem;\n\n $left: 4rem;\n display: block;\n position: fixed;\n width: 20rem;\n height: auto;\n background-color: var(--theme-color-1);\n border: var(--theme-weak-bdr-1);\n border-radius: $default-border-radius;\n padding: 1rem;\n left: $left;\n z-index: 10000;\n transition: left var(--animate-duration);\n\n margin-left: var(--margin) !important;\n\n @include box-shadow(4);\n\n &.expanded {\n left: calc(#{$left} + 12rem);\n }\n\n &.show {\n display: none;\n }\n\n .banner-container {\n position: absolute;\n top: 0.0625rem;\n left: $default-space;\n\n svg {\n position: absolute;\n height: 3.625rem;\n width: 3rem;\n\n polygon {\n fill: var(--theme-color-primary);\n }\n }\n\n ix-icon {\n margin: $small-space;\n position: absolute;\n z-index: 1;\n }\n }\n\n .cui-popover-news-header {\n margin-bottom: 2rem;\n margin-left: 4rem;\n margin-top: -$tiny-space;\n }\n\n .popover-body {\n color: var(--theme-color-std-text);\n }\n\n .cui-popover-news-footer {\n display: flex;\n justify-content: flex-end;\n margin-top: 1rem;\n }\n\n ix-icon-button {\n top: $small-space;\n right: $small-space;\n position: absolute;\n }\n\n #arrow {\n position: absolute;\n width: 0.5rem;\n height: 0.5rem;\n background-color: var(--theme-color-1);\n border-left: var(--theme-weak-bdr-1);\n border-bottom: var(--theme-weak-bdr-1);\n transform: translateX(calc(var(--margin) * -1 - 0.8rem)) rotateZ(45deg);\n }\n}\n","/*\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, Event, EventEmitter, h, Host, Prop } from '@stencil/core';\n\n@Component({\n tag: 'ix-menu-about-news',\n styleUrl: 'menu-about-news.scss',\n scoped: true,\n})\nexport class MenuAboutNews {\n /**\n * Show about news\n */\n @Prop({ mutable: true, reflect: true }) show = false;\n\n /**\n * Title of the about news\n */\n @Prop() label: string;\n\n /**\n *\n */\n @Prop() i18nShowMore = 'Show more';\n\n /**\n * Subtitle of the about news\n */\n @Prop() aboutItemLabel: string;\n\n /**\n * Bottom offset\n */\n @Prop() offsetBottom = 0;\n\n /**\n * Show More button is pressed\n */\n @Event() showMore: EventEmitter<MouseEvent>;\n\n /**\n * Popover closed\n */\n @Event() closePopover: EventEmitter<void>;\n\n /**\n * Internal\n */\n @Prop() expanded = false;\n\n render() {\n return (\n <Host\n class={{\n expanded: this.expanded,\n show: !this.show,\n }}\n >\n <div class=\"banner-container\">\n <ix-icon\n color=\"color-inv-contrast-text\"\n name=\"shout\"\n size=\"32\"\n ></ix-icon>\n <svg viewBox=\"0 0 48 56\" xmlns=\"http://www.w3.org/2000/svg\">\n <polygon points=\"0 0 48 0 48 56 24 48 0 56\" />\n </svg>\n </div>\n\n <div class=\"cui-popover-news-header\">\n <span class=\"text-l-title\">{this.label}</span>\n </div>\n\n <ix-icon-button\n size=\"24\"\n icon=\"close-small\"\n ghost\n onClick={() => {\n this.show = false;\n this.closePopover.emit();\n }}\n ></ix-icon-button>\n <slot></slot>\n {this.aboutItemLabel ? (\n <div class=\"cui-popover-news-footer\">\n <button\n class=\"btn btn-primary\"\n onClick={(e) => {\n this.show = false;\n this.showMore.emit(e);\n }}\n >\n {this.i18nShowMore}\n </button>\n </div>\n ) : null}\n <div id=\"arrow\"></div>\n </Host>\n );\n }\n}\n","/*\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\n@import 'common-variables';\n@import 'mixins/text-truncation';\n@import 'mixins/hover';\n\n:host {\n display: block;\n position: relative;\n margin-bottom: 0.5rem;\n\n .avatar {\n display: flex;\n align-items: center;\n height: 2.5rem;\n max-height: 2.5rem;\n padding-left: 0.25rem;\n margin-left: 0.75rem;\n margin-right: 0.75rem;\n transition: 0.15s;\n\n > .avatar-image {\n height: 2rem;\n width: 2rem;\n min-height: 2rem;\n min-width: 2rem;\n border-radius: 100px;\n }\n\n > .avatar-initials {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 2rem;\n width: 2rem;\n min-height: 2rem;\n min-width: 2rem;\n border-radius: 100px;\n background-color: var(--theme-color-component-3);\n }\n\n #avatar-path-background {\n fill: var(--theme-avatar--background);\n }\n\n #avatar-path-person {\n fill: var(--theme-color-4);\n }\n\n .avatar-name {\n display: flex;\n flex-direction: column;\n overflow: hidden;\n white-space: nowrap;\n margin-left: $default-space;\n line-height: 1.14;\n\n .text-default-single {\n @include ellipsis;\n }\n }\n\n border-radius: 1.25rem;\n\n @include hover {\n background-color: var(--theme-avatar-btn--background--hover);\n color: var(--theme-avatar-btn--color--hover);\n }\n\n @include active {\n background-color: var(--theme-avatar-btn--background--active);\n color: var(--theme-avatar-btn--color--active);\n }\n }\n}\n","/*\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\nfunction DefaultAvatar(props: { initials?: string }) {\n const { initials } = props;\n\n if (initials) {\n return <div class={'avatar-initials'}>{initials}</div>;\n }\n\n return (\n <svg\n class={'avatar-image'}\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"32\"\n height=\"32\"\n viewBox=\"0 0 32 32\"\n >\n <g fill=\"none\" fill-rule=\"evenodd\">\n <path\n id=\"avatar-path-background\"\n d=\"M16 0C7.163 0 0 7.163 0 16s7.163 16 16 16 16-7.163\n 16-16c0-4.243-1.686-8.313-4.686-11.314C24.314 1.686 20.244 0 16 0z\"\n />\n <path\n id=\"avatar-path-person\"\n d=\"M17.897 17.91c3.8-.018 7.358 1.875 9.485 5.046-2.417 3.999-6.734 6.434-11.382\n 6.42-4.648.014-8.965-2.421-11.382-6.42 2.127-3.171 5.685-5.064\n 9.485-5.045h3.794zM15.821 2.129c3.682 0 6.667 2.984 6.667 6.666 0 3.682-2.985\n 6.667-6.667 6.667s-6.667-2.985-6.667-6.667 2.985-6.666 6.667-6.666z\"\n />\n </g>\n </svg>\n );\n}\n\nimport {\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Prop,\n} from '@stencil/core';\n\n@Component({\n tag: 'ix-menu-avatar',\n styleUrl: 'menu-avatar.scss',\n scoped: true,\n})\nexport class MenuAvatar {\n @Element() hostElement: HTMLIxMenuAvatarElement;\n\n /**\n * First line of text\n */\n @Prop() top: string;\n\n /**\n * Second line of text\n */\n @Prop() bottom: string;\n\n /**\n * Display a avatar image\n *\n * @since 1.4.0\n */\n @Prop() image: string;\n\n /**\n * Display the initials of the user. Will be overwritten by image\n *\n * @since 1.4.0\n */\n @Prop() initials: string;\n\n /**\n * Use for translation\n */\n @Prop() i18nLogout = 'Logout';\n\n /**\n * Logout click\n */\n @Event() logoutClick: EventEmitter;\n\n private avatarElementId = 'ix-menu-avatar-id';\n\n render() {\n return (\n <Host>\n <li\n class=\"nav-item top-item avatar no-hover\"\n title={this.top}\n id={this.avatarElementId}\n >\n {this.image ? (\n <img src={this.image} class=\"avatar-image\"></img>\n ) : (\n <DefaultAvatar initials={this.initials} />\n )}\n <div class=\"avatar-name\">\n <span class=\"text-default-single\" title={this.top}>\n {this.top}\n </span>\n <span class=\"text-default-single\" title={this.bottom}>\n {this.bottom}\n </span>\n </div>\n </li>\n <ix-dropdown\n trigger={this.avatarElementId}\n placement={'right-start'}\n offset={{\n mainAxis: 12,\n }}\n >\n <slot></slot>\n <ix-menu-avatar-item\n label={this.i18nLogout}\n icon=\"log-out\"\n onClick={(e) => {\n this.logoutClick.emit(e);\n }}\n ></ix-menu-avatar-item>\n </ix-dropdown>\n </Host>\n );\n }\n}\n","/*\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\n:host {\n display: block;\n}\n","/*\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 Prop,\n} from '@stencil/core';\n\n@Component({\n tag: 'ix-menu-avatar-item',\n styleUrl: 'menu-avatar-item.css',\n scoped: true,\n})\nexport class MenuAvatarItem {\n /**\n * Avatar dropdown icon\n */\n @Prop() icon: string;\n\n /**\n * Avatar dropdown label\n */\n @Prop() label: string;\n\n /**\n * Avatar dropdown item clicked\n */\n @Event() itemClick: EventEmitter<MouseEvent>;\n\n @Element() hostElement: HTMLIxMenuAvatarItemElement;\n\n render() {\n return (\n <ix-dropdown-item\n icon={this.icon}\n label={this.label}\n onClick={(e) => this.itemClick.emit(e)}\n ></ix-dropdown-item>\n );\n }\n}\n","/*\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\n@import 'common-variables';\n@import 'mixins/hover';\n@import 'mixins/text-truncation';\n\n:host {\n position: relative;\n display: block;\n cursor: pointer;\n @include ghost-hover-pressed;\n\n .tab {\n display: flex;\n position: relative;\n align-items: center;\n height: 3rem;\n z-index: 500;\n padding-left: 1.25rem;\n }\n\n i.glyph {\n color: var(--theme-nav-item-primary-icon--color);\n position: relative;\n }\n\n .tab:focus-visible {\n outline: none;\n }\n\n &:focus-visible {\n outline: none;\n }\n\n .tab:not(:last-child) {\n margin-bottom: $small-space;\n }\n\n .notification {\n display: inline-flex;\n position: absolute;\n top: -$small-space;\n right: -50%;\n\n .pill {\n display: inline-flex;\n justify-content: center;\n align-items: center;\n height: 1rem;\n min-width: 1rem;\n position: relative;\n border-radius: 6.25rem;\n background-color: var(--theme-color-primary);\n border-radius: 6.25rem;\n font-size: 0.75rem;\n font-weight: bold;\n line-height: 1;\n font-family: Siemens Sans, Arial, sans-serif;\n color: var(--theme-color-primary--contrast);\n padding: $tiny-space;\n }\n }\n\n .tab-text {\n @include ellipsis;\n color: var(--theme-nav-item-primary--color);\n margin: 0 1.25rem;\n user-select: none;\n }\n\n &.active,\n &.selected {\n .tab {\n background-color: var(--theme-nav-item-primary--background--selected);\n }\n\n .tab::before {\n content: '';\n background-color: var(--theme-nav-item-primary--border-color--selected);\n height: 3rem;\n width: 0.25rem;\n left: 0;\n position: absolute;\n }\n\n .tab > .glyph {\n color: var(--theme-nav-item-primary-icon--color--selected);\n }\n }\n\n &.disabled {\n color: var(--theme-color-weak-text);\n pointer-events: none;\n cursor: default;\n\n .tab > .glyph {\n color: var(--theme-color-weak-text);\n }\n\n .tab-text {\n color: var(--theme-color-weak-text);\n }\n }\n\n &.home-tab,\n &[slot='home'] {\n margin-bottom: 1.5rem;\n }\n\n &.bottom-tab,\n &[slot='bottom'] {\n $bottom-height: 2.25rem;\n\n height: $bottom-height;\n\n .tab {\n height: $bottom-height;\n }\n\n .tab::before {\n height: $bottom-height;\n background-color: transparent;\n }\n\n &.active,\n &.selected {\n .tab {\n background-color: var(--theme-nav-item-secondary--background--selected);\n }\n\n &:hover {\n background-color: var(--theme-nav-item-secondary--background--selected);\n }\n\n &:active {\n background-color: var(--theme-nav-item-secondary--background--selected);\n }\n }\n }\n}\n","/*\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, Prop, State } from '@stencil/core';\n\n@Component({\n tag: 'ix-menu-item',\n styleUrl: 'menu-item.scss',\n scoped: true,\n})\nexport class MenuItem {\n /**\n * Move the Tab to a top position.\n */\n @Prop() home = false;\n\n /**\n * Caution: this is no longer working. Please use slot=\"bottom\" instead.\n *\n * Place tab on bottom\n *\n * @deprecated Will be removed in 2.0.0. Replaced by slot based implementation\n */\n @Prop() bottom = false;\n\n /**\n * Icon name from @siemens/ix-icons\n */\n @Prop() tabIcon = 'document';\n\n /**\n * Show notification cound on tab\n */\n @Prop() notifications: number;\n\n /**\n * State to display active\n */\n @Prop() active: boolean;\n\n /**\n * Disable tab and remove event handlers\n */\n @Prop() disabled: boolean;\n\n @Element() hostElement: HTMLIxMenuItemElement;\n\n @State() title: string;\n\n get tabLabel() {\n return this.hostElement.querySelector('.tab-text');\n }\n\n componentDidRender() {\n const spanElement = this.tabLabel;\n const newTitle = spanElement.innerHTML.replace('&', '&');\n if (this.title !== newTitle) {\n this.title = newTitle;\n }\n }\n\n render() {\n return (\n <Host\n class={{\n disabled: this.disabled,\n 'home-tab': this.home,\n 'bottom-tab': this.bottom,\n active: this.active,\n }}\n >\n <li class=\"tab\" title={this.title}>\n <i class={`glyph glyph-${this.tabIcon}`}>\n <div class=\"notification\">\n {this.notifications ? (\n <div class=\"pill\">{this.notifications}</div>\n ) : null}\n </div>\n </i>\n <span class=\"tab-text text-default\">\n <slot></slot>\n </span>\n </li>\n </Host>\n );\n }\n}\n","/*\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\n@import 'common-variables';\n@import 'fonts';\n\n:host {\n display: block;\n background-color: var(--theme-nav-overlay--background);\n padding: $medium-space $default-space $default-space $x-large-space;\n flex-grow: 1;\n position: absolute;\n width: 100%;\n height: 100%;\n\n .settings-header {\n display: flex;\n justify-content: space-between;\n flex-direction: row;\n align-items: center;\n height: $x-large-space;\n margin-bottom: $small-space;\n\n h2 {\n color: var(--theme-nav-overlay-header--color);\n margin-bottom: 0;\n }\n }\n\n .settings-tabs {\n margin-bottom: $large-space;\n }\n}\n","/*\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 forceUpdate,\n h,\n Host,\n Prop,\n Watch,\n} from '@stencil/core';\n\n@Component({\n tag: 'ix-menu-settings',\n styleUrl: 'menu-settings.scss',\n scoped: true,\n})\nexport class MenuAbout {\n /**\n * active tab\n */\n @Prop({ mutable: true }) activeTabLabel: string;\n\n /**\n * Label\n */\n @Prop() label = 'Settings';\n\n /**\n * Internal\n */\n @Prop() show = false;\n\n @Element() el!: HTMLIxMenuSettingsElement;\n\n /**\n * Popover closed\n */\n @Event() close: EventEmitter<MouseEvent>;\n\n get settingsItems(): HTMLIxMenuSettingsItemElement[] {\n return Array.from(this.el.querySelectorAll('ix-menu-settings-item'));\n }\n\n private setTab(label: string) {\n this.activeTabLabel = label;\n this.settingsItems.forEach((i) => {\n i.style.display = 'none';\n\n if (i.label === this.activeTabLabel) {\n i.style.display = 'block';\n }\n });\n }\n\n componentWillLoad() {\n if (this.settingsItems.length) {\n this.setTab(this.activeTabLabel || this.settingsItems[0].label);\n }\n }\n\n componentDidLoad() {\n forceUpdate(this.el);\n }\n\n @Watch('activeTabLabel')\n watchActiveTabLabel(value: string) {\n this.setTab(value);\n }\n\n private getTabItems() {\n return this.settingsItems.map(({ label }) => {\n return (\n <ix-tab-item\n class={{\n active: label === this.activeTabLabel,\n }}\n onClick={() => this.setTab(label)}\n >\n {label}\n </ix-tab-item>\n );\n });\n }\n\n render() {\n return (\n <Host\n class={{\n animate__animated: true,\n animate__fadeInLeft: this.show,\n animate__fadeOutLeft: !this.show,\n }}\n >\n <div class=\"settings-header\">\n <h2 class=\"text-h2\">{this.label}</h2>\n <ix-icon-button\n ghost\n size=\"24\"\n icon=\"close\"\n onClick={(e) => this.close.emit(e)}\n ></ix-icon-button>\n </div>\n <ix-tabs>{this.getTabItems()}</ix-tabs>\n <slot></slot>\n </Host>\n );\n }\n}\n","/*\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\n:host {\n display: block;\n\n}\n","/*\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, h, Host, Prop } from '@stencil/core';\n\n@Component({\n tag: 'ix-menu-settings-item',\n styleUrl: 'menu-settings-item.css',\n scoped: true,\n})\nexport class MenuSettingsItem {\n /**\n * Label\n */\n @Prop() label: string;\n\n render() {\n return (\n <Host>\n <slot></slot>\n </Host>\n );\n }\n}\n"],"mappings":"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"}
|