@siemens/ix 0.0.0-pr-2269-20251117133306 → 0.0.0-pr-2297-20251211061723
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/READMEOSS.html +1 -1
- package/components/index.js.map +1 -1
- package/components/ix-breadcrumb.js +1 -1
- package/components/ix-checkbox-group.js +3 -3
- package/components/ix-checkbox.js +1 -1
- package/components/ix-custom-field.js +3 -3
- package/components/ix-date-dropdown.js +2 -2
- package/components/ix-date-input.js +9 -11
- package/components/ix-date-input.js.map +1 -1
- package/components/ix-date-picker.js +1 -1
- package/components/ix-datetime-picker.js +3 -3
- package/components/ix-datetime-picker.js.map +1 -1
- package/components/ix-dropdown-button.js +8 -4
- package/components/ix-dropdown-button.js.map +1 -1
- package/components/ix-dropdown-item.js +1 -1
- package/components/ix-field-label.js +1 -1
- package/components/ix-field-wrapper.js +1 -1
- package/components/ix-helper-text.js +1 -1
- package/components/ix-input.js +4 -4
- package/components/ix-link-button.js +1 -1
- package/components/ix-link-button.js.map +1 -1
- package/components/ix-menu-about.js +2 -2
- package/components/ix-menu-avatar-item.js +1 -1
- package/components/ix-menu-avatar.js +2 -2
- package/components/ix-menu-category.js +1 -1
- package/components/ix-menu-settings.js +1 -1
- package/components/ix-menu.js +20 -12
- package/components/ix-menu.js.map +1 -1
- package/components/ix-number-input.js +4 -4
- package/components/ix-pagination.js +36 -13
- package/components/ix-pagination.js.map +1 -1
- package/components/ix-radio-group.js +3 -3
- package/components/ix-radio.js +1 -1
- package/components/ix-select-item.js +1 -1
- package/components/ix-select.js +1 -1
- package/components/ix-tab-item.js +1 -1
- package/components/ix-textarea.js +4 -4
- package/components/ix-time-input.js +9 -11
- package/components/ix-time-input.js.map +1 -1
- package/components/ix-time-picker.js +1 -1
- package/components/ix-toggle.js +1 -1
- package/components/{p-DyGPjxFm.js → p-7E7AMiQV.js} +3 -3
- package/components/p-7E7AMiQV.js.map +1 -0
- package/components/{p-Bz7hxKB6.js → p-B1p0kpQJ.js} +3 -3
- package/components/{p-Bz7hxKB6.js.map → p-B1p0kpQJ.js.map} +1 -1
- package/components/{p-Dy6xvLn4.js → p-BCLcSQh4.js} +3 -3
- package/components/{p-Dy6xvLn4.js.map → p-BCLcSQh4.js.map} +1 -1
- package/components/{p-BVUD9f4A.js → p-BIg1TSrD.js} +3 -3
- package/components/{p-BVUD9f4A.js.map → p-BIg1TSrD.js.map} +1 -1
- package/components/{p-Cc4uqNv5.js → p-BiqdnsgA.js} +3 -3
- package/components/{p-Cc4uqNv5.js.map → p-BiqdnsgA.js.map} +1 -1
- package/components/{p-BrYfZ-wy.js → p-BmMUyJRQ.js} +38 -23
- package/components/p-BmMUyJRQ.js.map +1 -0
- package/components/{p-BZLbfHdO.js → p-Ce5NQ5Zo.js} +7 -7
- package/components/{p-BZLbfHdO.js.map → p-Ce5NQ5Zo.js.map} +1 -1
- package/components/{p-PF0VLH1Q.js → p-CjDPpSJX.js} +3 -3
- package/components/p-CjDPpSJX.js.map +1 -0
- package/components/{p-CcWC2eNL.js → p-DUU5I7wZ.js} +10 -6
- package/components/p-DUU5I7wZ.js.map +1 -0
- package/components/{p-BLeWaHpy.js → p-DYCKIBUp.js} +12 -6
- package/components/p-DYCKIBUp.js.map +1 -0
- package/components/{p-Bk0vKwmt.js → p-DmhyoH-k.js} +3 -3
- package/components/{p-Bk0vKwmt.js.map → p-DmhyoH-k.js.map} +1 -1
- package/components/{p-xHo-3QVy.js → p-Dq_H2flK.js} +9 -3
- package/components/p-Dq_H2flK.js.map +1 -0
- package/dist/cjs/index.cjs.js.map +1 -1
- package/dist/cjs/{input.fc-BzxtQeW-.js → input.fc-DrxRYq_G.js} +10 -6
- package/dist/cjs/input.fc-DrxRYq_G.js.map +1 -0
- package/dist/cjs/ix-checkbox-group.cjs.entry.js +1 -1
- package/dist/cjs/ix-checkbox.cjs.entry.js +1 -1
- package/dist/cjs/ix-col.ix-date-picker.ix-layout-grid.ix-row.entry.cjs.js.map +1 -1
- package/dist/cjs/ix-col_4.cjs.entry.js +1 -1
- package/dist/cjs/ix-custom-field.cjs.entry.js +1 -1
- package/dist/cjs/ix-date-input.cjs.entry.js +6 -8
- package/dist/cjs/ix-date-input.entry.cjs.js.map +1 -1
- package/dist/cjs/ix-datetime-picker.cjs.entry.js +1 -1
- package/dist/cjs/ix-datetime-picker.entry.cjs.js.map +1 -1
- package/dist/cjs/ix-dropdown-button.cjs.entry.js +7 -3
- package/dist/cjs/ix-dropdown-button.entry.cjs.js.map +1 -1
- package/dist/cjs/ix-dropdown-item.cjs.entry.js +9 -3
- package/dist/cjs/ix-dropdown-item.entry.cjs.js.map +1 -1
- package/dist/cjs/ix-field-label_2.cjs.entry.js +1 -1
- package/dist/cjs/ix-helper-text.cjs.entry.js +1 -1
- package/dist/cjs/ix-input.cjs.entry.js +2 -2
- package/dist/cjs/ix-link-button.cjs.entry.js +1 -1
- package/dist/cjs/ix-link-button.entry.cjs.js.map +1 -1
- package/dist/cjs/ix-menu.cjs.entry.js +19 -12
- package/dist/cjs/ix-menu.entry.cjs.js.map +1 -1
- package/dist/cjs/ix-number-input.cjs.entry.js +2 -2
- package/dist/cjs/ix-pagination.cjs.entry.js +29 -7
- package/dist/cjs/ix-pagination.entry.cjs.js.map +1 -1
- package/dist/cjs/ix-radio-group.cjs.entry.js +1 -1
- package/dist/cjs/ix-radio.cjs.entry.js +1 -1
- package/dist/cjs/ix-select.cjs.entry.js +1 -1
- package/dist/cjs/ix-tab-item.ix-tabs.entry.cjs.js.map +1 -1
- package/dist/cjs/ix-tab-item_2.cjs.entry.js +1 -1
- package/dist/cjs/ix-textarea.cjs.entry.js +2 -2
- package/dist/cjs/ix-time-input.cjs.entry.js +6 -8
- package/dist/cjs/ix-time-input.entry.cjs.js.map +1 -1
- package/dist/cjs/ix-time-picker.cjs.entry.js +36 -21
- package/dist/cjs/ix-time-picker.entry.cjs.js.map +1 -1
- package/dist/cjs/ix-toggle.cjs.entry.js +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/siemens-ix.cjs.js +1 -1
- package/dist/cjs/{validation-CfL71_0d.js → validation-DTmSqO2d.js} +9 -2
- package/dist/{esm/validation-D_dk-JqT.js.map → cjs/validation-DTmSqO2d.js.map} +1 -1
- package/dist/collection/components/date-input/date-input.js +5 -7
- package/dist/collection/components/date-input/date-input.js.map +1 -1
- package/dist/collection/components/date-picker/date-picker.css +1 -0
- package/dist/collection/components/datetime-picker/datetime-picker.css +11 -6
- package/dist/collection/components/dropdown-button/dropdown-button.js +8 -4
- package/dist/collection/components/dropdown-button/dropdown-button.js.map +1 -1
- package/dist/collection/components/dropdown-item/dropdown-item.js +10 -4
- package/dist/collection/components/dropdown-item/dropdown-item.js.map +1 -1
- package/dist/collection/components/input/input.util.js +7 -3
- package/dist/collection/components/input/input.util.js.map +1 -1
- package/dist/collection/components/link-button/link-button.css +2 -8
- package/dist/collection/components/menu/menu.js +21 -12
- package/dist/collection/components/menu/menu.js.map +1 -1
- package/dist/collection/components/pagination/pagination.js +52 -7
- package/dist/collection/components/pagination/pagination.js.map +1 -1
- package/dist/collection/components/tab-item/tab-item.css +1 -1
- package/dist/collection/components/time-input/time-input.js +5 -7
- package/dist/collection/components/time-input/time-input.js.map +1 -1
- package/dist/collection/components/time-picker/time-picker.css +8 -8
- package/dist/collection/components/time-picker/time-picker.js +35 -20
- package/dist/collection/components/time-picker/time-picker.js.map +1 -1
- package/dist/collection/components/utils/input/validation.js +6 -0
- package/dist/collection/components/utils/input/validation.js.map +1 -1
- package/dist/collection/components/utils/modal/index.js.map +1 -1
- package/dist/collection/components/utils/modal/loading.js.map +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/{input.fc-DQBMrK9J.js → input.fc-KJF8Z9iJ.js} +10 -6
- package/dist/esm/input.fc-KJF8Z9iJ.js.map +1 -0
- package/dist/esm/ix-checkbox-group.entry.js +1 -1
- package/dist/esm/ix-checkbox.entry.js +1 -1
- package/dist/esm/ix-col.ix-date-picker.ix-layout-grid.ix-row.entry.js.map +1 -1
- package/dist/esm/ix-col_4.entry.js +1 -1
- package/dist/esm/ix-custom-field.entry.js +1 -1
- package/dist/esm/ix-date-input.entry.js +6 -8
- package/dist/esm/ix-date-input.entry.js.map +1 -1
- package/dist/esm/ix-datetime-picker.entry.js +1 -1
- package/dist/esm/ix-datetime-picker.entry.js.map +1 -1
- package/dist/esm/ix-dropdown-button.entry.js +7 -3
- package/dist/esm/ix-dropdown-button.entry.js.map +1 -1
- package/dist/esm/ix-dropdown-item.entry.js +9 -3
- package/dist/esm/ix-dropdown-item.entry.js.map +1 -1
- package/dist/esm/ix-field-label_2.entry.js +1 -1
- package/dist/esm/ix-helper-text.entry.js +1 -1
- package/dist/esm/ix-input.entry.js +2 -2
- package/dist/esm/ix-link-button.entry.js +1 -1
- package/dist/esm/ix-link-button.entry.js.map +1 -1
- package/dist/esm/ix-menu.entry.js +19 -12
- package/dist/esm/ix-menu.entry.js.map +1 -1
- package/dist/esm/ix-number-input.entry.js +2 -2
- package/dist/esm/ix-pagination.entry.js +29 -7
- package/dist/esm/ix-pagination.entry.js.map +1 -1
- package/dist/esm/ix-radio-group.entry.js +1 -1
- package/dist/esm/ix-radio.entry.js +1 -1
- package/dist/esm/ix-select.entry.js +1 -1
- package/dist/esm/ix-tab-item.ix-tabs.entry.js.map +1 -1
- package/dist/esm/ix-tab-item_2.entry.js +1 -1
- package/dist/esm/ix-textarea.entry.js +2 -2
- package/dist/esm/ix-time-input.entry.js +6 -8
- package/dist/esm/ix-time-input.entry.js.map +1 -1
- package/dist/esm/ix-time-picker.entry.js +36 -21
- package/dist/esm/ix-time-picker.entry.js.map +1 -1
- package/dist/esm/ix-toggle.entry.js +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/siemens-ix.js +1 -1
- package/dist/esm/{validation-D_dk-JqT.js → validation-LJh16vt2.js} +9 -3
- package/dist/{cjs/validation-CfL71_0d.js.map → esm/validation-LJh16vt2.js.map} +1 -1
- package/dist/siemens-ix/index.esm.js.map +1 -1
- package/dist/siemens-ix/ix-col.ix-date-picker.ix-layout-grid.ix-row.entry.esm.js.map +1 -1
- package/dist/siemens-ix/ix-date-input.entry.esm.js.map +1 -1
- package/dist/siemens-ix/ix-datetime-picker.entry.esm.js.map +1 -1
- package/dist/siemens-ix/ix-dropdown-button.entry.esm.js.map +1 -1
- package/dist/siemens-ix/ix-dropdown-item.entry.esm.js.map +1 -1
- package/dist/siemens-ix/ix-link-button.entry.esm.js.map +1 -1
- package/dist/siemens-ix/ix-menu.entry.esm.js.map +1 -1
- package/dist/siemens-ix/ix-pagination.entry.esm.js.map +1 -1
- package/dist/siemens-ix/ix-tab-item.ix-tabs.entry.esm.js.map +1 -1
- package/dist/siemens-ix/ix-time-input.entry.esm.js.map +1 -1
- package/dist/siemens-ix/ix-time-picker.entry.esm.js.map +1 -1
- package/dist/siemens-ix/p-0063d077.entry.js +2 -0
- package/dist/siemens-ix/p-0063d077.entry.js.map +1 -0
- package/dist/siemens-ix/p-051f428c.entry.js +2 -0
- package/dist/siemens-ix/{p-de416133.entry.js.map → p-051f428c.entry.js.map} +1 -1
- package/dist/siemens-ix/p-0c325f08.entry.js +2 -0
- package/dist/siemens-ix/p-0c325f08.entry.js.map +1 -0
- package/dist/siemens-ix/p-0eca5a77.entry.js +2 -0
- package/dist/siemens-ix/{p-3751c675.entry.js.map → p-0eca5a77.entry.js.map} +1 -1
- package/dist/siemens-ix/{p-3d3bba47.entry.js → p-26c629c3.entry.js} +2 -2
- package/dist/siemens-ix/{p-07953481.entry.js → p-33b3ed5b.entry.js} +2 -2
- package/dist/siemens-ix/p-3ca8fd00.entry.js +2 -0
- package/dist/siemens-ix/p-3ca8fd00.entry.js.map +1 -0
- package/dist/siemens-ix/{p-7f90eeef.entry.js → p-4431f891.entry.js} +2 -2
- package/dist/siemens-ix/{p-620158aa.entry.js → p-4e77d861.entry.js} +2 -2
- package/dist/siemens-ix/p-68aaf0fe.entry.js +2 -0
- package/dist/siemens-ix/p-68aaf0fe.entry.js.map +1 -0
- package/dist/siemens-ix/{p-ebef3d52.entry.js → p-79537728.entry.js} +2 -2
- package/dist/siemens-ix/{p-fbdf1c7d.entry.js → p-7beba4ad.entry.js} +2 -2
- package/dist/siemens-ix/p-7beba4ad.entry.js.map +1 -0
- package/dist/siemens-ix/p-8b42ad35.entry.js +2 -0
- package/dist/siemens-ix/{p-b9e8d497.entry.js.map → p-8b42ad35.entry.js.map} +1 -1
- package/dist/siemens-ix/{p-CAj3Tlcn.js → p-C7nQNUsO.js} +2 -2
- package/dist/siemens-ix/{p-CAj3Tlcn.js.map → p-C7nQNUsO.js.map} +1 -1
- package/dist/siemens-ix/p-DaswuiGO.js +2 -0
- package/dist/siemens-ix/p-DaswuiGO.js.map +1 -0
- package/dist/siemens-ix/{p-3b7573d6.entry.js → p-a4225101.entry.js} +2 -2
- package/dist/siemens-ix/{p-1c83cb5f.entry.js → p-b27a9744.entry.js} +2 -2
- package/dist/siemens-ix/{p-3f13b14e.entry.js → p-ba9ed3d1.entry.js} +2 -2
- package/dist/siemens-ix/{p-10f2a239.entry.js → p-c15e64a8.entry.js} +2 -2
- package/dist/siemens-ix/{p-7364534a.entry.js → p-c43b201b.entry.js} +2 -2
- package/dist/siemens-ix/{p-81491f7d.entry.js → p-d2c18c15.entry.js} +2 -2
- package/dist/siemens-ix/p-d2c18c15.entry.js.map +1 -0
- package/dist/siemens-ix/p-de12078d.entry.js +2 -0
- package/dist/siemens-ix/{p-534a0e0a.entry.js.map → p-de12078d.entry.js.map} +1 -1
- package/dist/siemens-ix/{p-aa89d586.entry.js → p-f119c105.entry.js} +2 -2
- package/dist/siemens-ix/{p-b8f4b001.entry.js → p-f27c0a6c.entry.js} +2 -2
- package/dist/siemens-ix/p-f27c0a6c.entry.js.map +1 -0
- package/dist/siemens-ix/{p-6445a54f.entry.js → p-fc73c8cc.entry.js} +2 -2
- package/dist/siemens-ix/siemens-ix-core.css +1 -1
- package/dist/siemens-ix/siemens-ix.css +8 -17
- package/dist/siemens-ix/siemens-ix.esm.js +1 -1
- package/dist/types/components/menu/menu.d.ts +1 -0
- package/dist/types/components/pagination/pagination.d.ts +8 -0
- package/dist/types/components/time-picker/time-picker.d.ts +3 -2
- package/dist/types/components/utils/input/validation.d.ts +1 -0
- package/dist/types/components/utils/modal/index.d.ts +1 -1
- package/dist/types/components/utils/modal/loading.d.ts +4 -0
- package/dist/types/components.d.ts +12 -0
- package/hydrate/index.js +129 -70
- package/hydrate/index.mjs +129 -70
- package/package.json +1 -1
- package/scss/components/_links.scss +2 -5
- package/scss/theme/classic/dark/_variables.scss +2 -4
- package/components/p-BLeWaHpy.js.map +0 -1
- package/components/p-BrYfZ-wy.js.map +0 -1
- package/components/p-CcWC2eNL.js.map +0 -1
- package/components/p-DyGPjxFm.js.map +0 -1
- package/components/p-PF0VLH1Q.js.map +0 -1
- package/components/p-xHo-3QVy.js.map +0 -1
- package/dist/cjs/input.fc-BzxtQeW-.js.map +0 -1
- package/dist/esm/input.fc-DQBMrK9J.js.map +0 -1
- package/dist/siemens-ix/p-0d621531.entry.js +0 -2
- package/dist/siemens-ix/p-0d621531.entry.js.map +0 -1
- package/dist/siemens-ix/p-19b9f862.entry.js +0 -2
- package/dist/siemens-ix/p-19b9f862.entry.js.map +0 -1
- package/dist/siemens-ix/p-3751c675.entry.js +0 -2
- package/dist/siemens-ix/p-37bd983a.entry.js +0 -2
- package/dist/siemens-ix/p-37bd983a.entry.js.map +0 -1
- package/dist/siemens-ix/p-534a0e0a.entry.js +0 -2
- package/dist/siemens-ix/p-81491f7d.entry.js.map +0 -1
- package/dist/siemens-ix/p-97ef77b3.entry.js +0 -2
- package/dist/siemens-ix/p-97ef77b3.entry.js.map +0 -1
- package/dist/siemens-ix/p-C1GTokd8.js +0 -2
- package/dist/siemens-ix/p-C1GTokd8.js.map +0 -1
- package/dist/siemens-ix/p-b8f4b001.entry.js.map +0 -1
- package/dist/siemens-ix/p-b9e8d497.entry.js +0 -2
- package/dist/siemens-ix/p-de416133.entry.js +0 -2
- package/dist/siemens-ix/p-fbdf1c7d.entry.js.map +0 -1
- /package/dist/siemens-ix/{p-3d3bba47.entry.js.map → p-26c629c3.entry.js.map} +0 -0
- /package/dist/siemens-ix/{p-07953481.entry.js.map → p-33b3ed5b.entry.js.map} +0 -0
- /package/dist/siemens-ix/{p-7f90eeef.entry.js.map → p-4431f891.entry.js.map} +0 -0
- /package/dist/siemens-ix/{p-620158aa.entry.js.map → p-4e77d861.entry.js.map} +0 -0
- /package/dist/siemens-ix/{p-ebef3d52.entry.js.map → p-79537728.entry.js.map} +0 -0
- /package/dist/siemens-ix/{p-3b7573d6.entry.js.map → p-a4225101.entry.js.map} +0 -0
- /package/dist/siemens-ix/{p-1c83cb5f.entry.js.map → p-b27a9744.entry.js.map} +0 -0
- /package/dist/siemens-ix/{p-3f13b14e.entry.js.map → p-ba9ed3d1.entry.js.map} +0 -0
- /package/dist/siemens-ix/{p-10f2a239.entry.js.map → p-c15e64a8.entry.js.map} +0 -0
- /package/dist/siemens-ix/{p-7364534a.entry.js.map → p-c43b201b.entry.js.map} +0 -0
- /package/dist/siemens-ix/{p-aa89d586.entry.js.map → p-f119c105.entry.js.map} +0 -0
- /package/dist/siemens-ix/{p-6445a54f.entry.js.map → p-fc73c8cc.entry.js.map} +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { p as proxyCustomElement, H, h, d as Host } from './p-D-__gyet.js';
|
|
2
2
|
import { d as iconChevronRightSmall } from './p-BvsadYCu.js';
|
|
3
3
|
|
|
4
|
-
const linkButtonCss = ":host{display:inline-flex;height:2rem;font-size:0.875rem;font-weight:400;min-width:2rem}:host .link-button{display:inline-flex;position:relative;width:100%;padding:0 0.25rem 0 0;align-items:center;justify-content:center;background-color:transparent;color:var(--theme-color-primary);cursor:pointer;text-decoration:none}:host .link-button .link{display:block;position:relative;width:100%;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}:host .link-button:not(.disabled):not(:disabled){cursor:pointer}:host .link-button:not(.disabled):not(:disabled):hover,:host .link-button:not(.disabled):not(:disabled).hover{color:var(--theme-color-dynamic--hover)}:host .link-button:not(.disabled):not(:disabled)
|
|
4
|
+
const linkButtonCss = ":host{display:inline-flex;height:2rem;font-size:0.875rem;font-weight:400;min-width:2rem}:host .link-button{display:inline-flex;position:relative;width:100%;padding:0 0.25rem 0 0;align-items:center;justify-content:center;background-color:transparent;color:var(--theme-color-primary);cursor:pointer;text-decoration:none}:host .link-button .link{display:block;position:relative;width:100%;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;text-decoration:underline;text-underline-offset:0.2rem}:host .link-button:not(.disabled):not(:disabled){cursor:pointer}:host .link-button:not(.disabled):not(:disabled):hover,:host .link-button:not(.disabled):not(:disabled).hover{color:var(--theme-color-dynamic--hover)}:host .link-button:not(.disabled):not(:disabled){cursor:pointer}:host .link-button:not(.disabled):not(:disabled):active,:host .link-button:not(.disabled):not(:disabled).active{color:var(--theme-color-dynamic--active)}:host .link-button.disabled{cursor:default;color:var(--theme-color-weak-text)}:host .link-button a{all:unset}:host :focus-visible{outline:1px solid var(--theme-color-focus-bdr)}";
|
|
5
5
|
|
|
6
6
|
const LinkButton = /*@__PURE__*/ proxyCustomElement(class LinkButton extends H {
|
|
7
7
|
constructor(registerHost) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"ix-link-button.js","mappings":";;;AAAA,MAAM,aAAa,GAAG,
|
|
1
|
+
{"file":"ix-link-button.js","mappings":";;;AAAA,MAAM,aAAa,GAAG,qlCAAqlC;;MCiB9lC,UAAU,iBAAAA,kBAAA,CAAA,MAAA,UAAA,SAAAC,CAAA,CAAA;AALvB,IAAA,WAAA,CAAA,YAAA,EAAA;;;;;;AAME;;AAEG;AACK,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK;AAOxB;;;;AAIG;AACK,QAAA,IAAM,CAAA,MAAA,GAA4C,OAAO;AAiClE;IA/BC,MAAM,GAAA;AACJ,QAAA,QACE,EAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EACH,CACE,CAAA,GAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAE,IAAI,CAAC,GAAG,EACf,QAAQ,EAAC,GAAG,EACZ,KAAK,EAAE;AACL,gBAAA,aAAa,EAAE,IAAI;gBACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACxB,aAAA,EACD,IAAI,EAAE,IAAI,CAAC,QAAQ,GAAG,SAAS,GAAG,IAAI,CAAC,GAAG,EAC1C,MAAM,EAAE,IAAI,CAAC,MAAM,EAAA,EAEnB,CAAA,CAAA,SAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,KAAK,EAAC,MAAM,EACZ,IAAI,EAAE,qBAAqB,EAC3B,IAAI,EAAC,IAAI,EAAA,aAAA,EACG,MAAM,EACT,CAAA,EACX,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,KAAK,EAAE;AACL,gBAAA,IAAI,EAAE,IAAI;gBACV,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACxB,aAAA,EAAA,EAED,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAa,CACT,CACJ,CACC;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/link-button/link-button.scss?tag=ix-link-button&encapsulation=shadow","src/components/link-button/link-button.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@use 'common-variables' as vars;\n@use 'mixins/hover';\n\n:host {\n display: inline-flex;\n height: vars.$x-large-space;\n font-size: vars.$font-size-default;\n font-weight: vars.$font-weight-normal;\n min-width: vars.$x-large-space;\n\n .link-button {\n display: inline-flex;\n position: relative;\n width: 100%;\n padding: 0 vars.$tiny-space 0 0;\n align-items: center;\n justify-content: center;\n background-color: transparent;\n color: var(--theme-color-primary);\n cursor: pointer;\n text-decoration: none;\n\n .link {\n display: block;\n position: relative;\n width: 100%;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n text-decoration: underline;\n text-underline-offset: 0.2rem;\n }\n\n @include hover.hover {\n color: var(--theme-color-dynamic--hover);\n }\n\n @include hover.active {\n color: var(--theme-color-dynamic--active);\n }\n\n &.disabled {\n cursor: default;\n color: var(--theme-color-weak-text);\n }\n\n a {\n all: unset;\n }\n }\n\n :focus-visible {\n outline: 1px solid var(--theme-color-focus-bdr);\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 { iconChevronRightSmall } from '@siemens/ix-icons/icons';\nimport { Component, h, Host, Prop } from '@stencil/core';\n\n@Component({\n tag: 'ix-link-button',\n styleUrl: 'link-button.scss',\n shadow: true,\n})\nexport class LinkButton {\n /**\n * Disable the link button\n */\n @Prop() disabled = false;\n\n /**\n * Url for the link button\n */\n @Prop() url?: string;\n\n /**\n * Specifies where to open the link\n *\n * https://www.w3schools.com/html/html_links.asp\n */\n @Prop() target: '_self' | '_blank' | '_parent' | '_top' = '_self';\n\n render() {\n return (\n <Host>\n <a\n title={this.url}\n tabindex=\"0\"\n class={{\n 'link-button': true,\n disabled: this.disabled,\n }}\n href={this.disabled ? undefined : this.url}\n target={this.target}\n >\n <ix-icon\n class=\"icon\"\n name={iconChevronRightSmall}\n size=\"16\"\n aria-hidden=\"true\"\n ></ix-icon>\n <div\n class={{\n link: true,\n disabled: this.disabled,\n }}\n >\n <slot></slot>\n </div>\n </a>\n </Host>\n );\n }\n}\n"],"version":3}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { p as proxyCustomElement, H, e as createEvent, i as forceUpdate, h } from './p-D-__gyet.js';
|
|
2
|
-
import { s as syncTabDisplay, i as initialize, M as MenuTabs } from './p-
|
|
2
|
+
import { s as syncTabDisplay, i as initialize, M as MenuTabs } from './p-BiqdnsgA.js';
|
|
3
3
|
import { d as defineCustomElement$5 } from './p-BEDohapR.js';
|
|
4
4
|
import { d as defineCustomElement$4 } from './p-1pd_0dhF.js';
|
|
5
|
-
import { d as defineCustomElement$3 } from './p-
|
|
5
|
+
import { d as defineCustomElement$3 } from './p-7E7AMiQV.js';
|
|
6
6
|
import { d as defineCustomElement$2 } from './p-10zMtvCF.js';
|
|
7
7
|
|
|
8
8
|
const menuAboutCss = ".text-xs{font-family:Siemens Sans, sans-serif;font-size:0.625rem;font-weight:400;line-height:1.4em;color:var(--theme-color-std-text);-webkit-font-smoothing:antialiased;-moz-osx-font-smooting:grayscale}.text-s{font-family:Siemens Sans, sans-serif;font-size:0.75rem;font-weight:400;line-height:1.5em;color:var(--theme-color-std-text);-webkit-font-smoothing:antialiased;-moz-osx-font-smooting:grayscale}.text-caption{font-family:Siemens Sans, sans-serif;font-size:0.75rem;font-weight:700;line-height:1.5em;color:var(--theme-color-std-text);-webkit-font-smoothing:antialiased;-moz-osx-font-smooting:grayscale}.text-caption-single{font-family:Siemens Sans, sans-serif;font-size:0.75rem;font-weight:700;line-height:1em;color:var(--theme-color-std-text);-webkit-font-smoothing:antialiased;-moz-osx-font-smooting:grayscale}.text-default{font-family:Siemens Sans, sans-serif;font-size:0.875rem;font-weight:400;line-height:1.429em;color:var(--theme-color-std-text);-webkit-font-smoothing:antialiased;-moz-osx-font-smooting:grayscale}.text-default-single{font-family:Siemens Sans, sans-serif;font-size:0.875rem;font-weight:400;line-height:1.143em;color:var(--theme-color-std-text);-webkit-font-smoothing:antialiased;-moz-osx-font-smooting:grayscale}.text-default-title{font-family:Siemens Sans, sans-serif;font-size:0.875rem;font-weight:700;line-height:1.429em;color:var(--theme-color-std-text);-webkit-font-smoothing:antialiased;-moz-osx-font-smooting:grayscale}.text-default-title-single{font-family:Siemens Sans, sans-serif;font-size:0.875rem;font-weight:700;line-height:1.143em;color:var(--theme-color-std-text);-webkit-font-smoothing:antialiased;-moz-osx-font-smooting:grayscale}.text-l{font-family:Siemens Sans, sans-serif;font-size:1rem;font-weight:400;line-height:1.5em;color:var(--theme-color-std-text);-webkit-font-smoothing:antialiased;-moz-osx-font-smooting:grayscale}.text-l-single{font-family:Siemens Sans, sans-serif;font-size:1rem;font-weight:400;line-height:1.25em;color:var(--theme-color-std-text);-webkit-font-smoothing:antialiased;-moz-osx-font-smooting:grayscale}.text-l-title{font-family:Siemens Sans, sans-serif;font-size:1rem;font-weight:700;line-height:1.5em;color:var(--theme-color-std-text);-webkit-font-smoothing:antialiased;-moz-osx-font-smooting:grayscale}.text-l-title-single{font-family:Siemens Sans, sans-serif;font-size:1rem;font-weight:700;line-height:1.25em;color:var(--theme-color-std-text);-webkit-font-smoothing:antialiased;-moz-osx-font-smooting:grayscale}.text-h2{font-family:Siemens Sans, sans-serif;font-size:1.375rem;font-weight:700;line-height:1.455em;color:var(--theme-color-std-text);-webkit-font-smoothing:antialiased;-moz-osx-font-smooting:grayscale}.text-xl{font-family:Siemens Sans, sans-serif;font-size:1.375rem;font-weight:400;line-height:1.091em;color:var(--theme-color-std-text);-webkit-font-smoothing:antialiased;-moz-osx-font-smooting:grayscale}a{color:var(--theme-color-primary)}:host{display:block;background-color:var(--theme-nav-overlay--background);padding:0.75rem 1rem 1rem 2rem;flex-grow:1;position:absolute;width:100%;height:100%}:host .about-header{display:flex;justify-content:space-between;flex-direction:row;align-items:center;height:2rem;margin-bottom:0.5rem}:host .about-header h2{color:var(--theme-nav-overlay-header--color);margin-bottom:1rem}:host ix-tabs{margin-bottom:1.5rem}:host ix-menu-about-item{display:none}";
|
|
@@ -4,8 +4,8 @@ import { I as iconLogOut } from './p-BvsadYCu.js';
|
|
|
4
4
|
import { d as defineCustomElement$9 } from './p-Bye33cYU.js';
|
|
5
5
|
import { d as defineCustomElement$8 } from './p-Db0RazS2.js';
|
|
6
6
|
import { d as defineCustomElement$7 } from './p-BI7B-PUA.js';
|
|
7
|
-
import { d as defineCustomElement$6 } from './p-
|
|
8
|
-
import { d as defineCustomElement$5 } from './p-
|
|
7
|
+
import { d as defineCustomElement$6 } from './p-DYCKIBUp.js';
|
|
8
|
+
import { d as defineCustomElement$5 } from './p-DmhyoH-k.js';
|
|
9
9
|
import { d as defineCustomElement$4 } from './p-1pd_0dhF.js';
|
|
10
10
|
import { d as defineCustomElement$3 } from './p-DXFN8JXp.js';
|
|
11
11
|
import { d as defineCustomElement$2 } from './p-BBwXlKhE.js';
|
|
@@ -5,7 +5,7 @@ import { c as createMutationObserver } from './p-CX81WQtk.js';
|
|
|
5
5
|
import { c as iconChevronDownSmall } from './p-BvsadYCu.js';
|
|
6
6
|
import { d as defineCustomElement$7 } from './p-Db0RazS2.js';
|
|
7
7
|
import { d as defineCustomElement$6 } from './p-BI7B-PUA.js';
|
|
8
|
-
import { d as defineCustomElement$5 } from './p-
|
|
8
|
+
import { d as defineCustomElement$5 } from './p-DYCKIBUp.js';
|
|
9
9
|
import { d as defineCustomElement$4 } from './p-DSTHZygb.js';
|
|
10
10
|
import { d as defineCustomElement$3 } from './p-DXFN8JXp.js';
|
|
11
11
|
import { d as defineCustomElement$2 } from './p-BBwXlKhE.js';
|
package/components/ix-menu.js
CHANGED
|
@@ -111,6 +111,12 @@ const Menu = /*@__PURE__*/ proxyCustomElement(class Menu extends H {
|
|
|
111
111
|
((_b = (_a = elm.parentElement) === null || _a === void 0 ? void 0 : _a.parentElement) === null || _b === void 0 ? void 0 : _b.style.display) !== 'none');
|
|
112
112
|
};
|
|
113
113
|
}
|
|
114
|
+
expandChanged(newExpand, oldExpand) {
|
|
115
|
+
if (newExpand === oldExpand) {
|
|
116
|
+
return;
|
|
117
|
+
}
|
|
118
|
+
this.toggleMenu(newExpand);
|
|
119
|
+
}
|
|
114
120
|
pinnedChange(newPinned) {
|
|
115
121
|
this.setPinned(this.pinned);
|
|
116
122
|
if (newPinned) {
|
|
@@ -455,47 +461,48 @@ const Menu = /*@__PURE__*/ proxyCustomElement(class Menu extends H {
|
|
|
455
461
|
}
|
|
456
462
|
render() {
|
|
457
463
|
var _a, _b;
|
|
458
|
-
return (h(Host, { key: '
|
|
464
|
+
return (h(Host, { key: 'ea617374858acbf094cbf397be00f38023c6d09b', class: {
|
|
459
465
|
expanded: this.expand,
|
|
460
466
|
[`breakpoint-${this.breakpoint}`]: true,
|
|
461
|
-
}, slot: "menu" }, h("nav", { key: '
|
|
467
|
+
}, slot: "menu" }, h("nav", { key: '49709a839fd53bc53b4f0c100d38ef50a101532e', class: {
|
|
462
468
|
menu: true,
|
|
463
469
|
expanded: this.expand,
|
|
464
|
-
} }, h("div", { key: '
|
|
465
|
-
((_a = this.applicationLayoutContext) === null || _a === void 0 ? void 0 : _a.appSwitchConfig) && (h("ix-icon-button", { key: '
|
|
470
|
+
} }, h("div", { key: '5cca034b91fabda2f403b2471d9805c96cdadba5', class: "menu-buttons" }, this.breakpoint !== 'sm' && (h("ix-menu-expand-icon", { key: '94d4ff9776c27b9da7d680cef6c346f0469257ba', breakpoint: this.breakpoint, expanded: this.expand, pinned: this.pinned, class: "menu-expand-icon", ixAriaLabel: this.i18nExpandSidebar, onClick: async () => this.toggleMenu(), "data-testid": "expand-collapse-menu" })), this.breakpoint === 'sm' &&
|
|
471
|
+
((_a = this.applicationLayoutContext) === null || _a === void 0 ? void 0 : _a.appSwitchConfig) && (h("ix-icon-button", { key: 'bb5026487bb57b272cc3c91124f3779959164bc1', onClick: () => {
|
|
466
472
|
this.showAppSwitch();
|
|
467
|
-
}, icon: iconApps, variant: "subtle-tertiary" }))), h("div", { key: '
|
|
473
|
+
}, icon: iconApps, variant: "subtle-tertiary" }))), h("div", { key: '2b4b5b3a0a29e09cfc8f70f79533995f5cd33c99', id: "menu-tabs", style: {
|
|
468
474
|
display: 'contents',
|
|
469
|
-
}, onClick: (e) => this.onMenuItemsClick(e) }, h("div", { key: '
|
|
475
|
+
}, onClick: (e) => this.onMenuItemsClick(e) }, h("div", { key: '293741c4d4e200853ca2dce4b8c666f5da0e34d5', class: "tabs-shadow-container" }, h("div", { key: '86dd526ec2a8af64abdd6871cb2f759d7c97ee39', class: {
|
|
470
476
|
'tabs--shadow': true,
|
|
471
477
|
'tabs--shadow-top': true,
|
|
472
478
|
'tabs--shadow--show': this.itemsScrollShadowTop,
|
|
473
|
-
} }), h("div", { key: '
|
|
479
|
+
} }), h("div", { key: 'e2ba26766b80e0a6c262a2ce42a208f114cdfba6', class: {
|
|
474
480
|
tabs: true,
|
|
475
481
|
'show-scrollbar': this.expand,
|
|
476
|
-
}, onScroll: () => this.handleOverflowIndicator() }, h("div", { key: '
|
|
482
|
+
}, onScroll: () => this.handleOverflowIndicator() }, h("div", { key: 'bef31787f7c96dea8ed99cd90772e5e91e0d004f', class: "menu-avatar" }, h("slot", { key: '688e681120bdb5d51aa8b0944d8894e3b0e9f0e0', name: "ix-menu-avatar" })), h("slot", { key: '6de7b739e8bbeaece6394bf2eca1c0cfdeb9e0c7', name: "home" }), this.breakpoint !== 'sm' || !this.isHiddenFromViewport() ? (h("slot", null)) : null), h("div", { key: '3f5ef7c1085910d0f0af3fce5baf35bac5e5144e', class: {
|
|
477
483
|
'tabs--shadow': true,
|
|
478
484
|
'tabs--shadow-bottom': true,
|
|
479
485
|
'tabs--shadow--show': this.itemsScrollShadowBottom,
|
|
480
|
-
} }))), h("div", { key: '
|
|
486
|
+
} }))), h("div", { key: 'b4e9db32fce1c63a303f14145e07e528e50e562c', class: "bottom-tab-divider" }), this.settings ? (h("ix-menu-item", { disabled: this.isHiddenFromViewport(), id: "settings", class: {
|
|
481
487
|
'internal-tab': true,
|
|
482
488
|
'bottom-tab': true,
|
|
483
489
|
active: this.showSettings,
|
|
484
|
-
}, icon: iconCogwheel, onClick: async () => this.toggleSettings(!this.showSettings), label: this.i18nSettings })) : null, this.enableToggleTheme ? (h("ix-menu-item", { disabled: this.isHiddenFromViewport(), id: "toggleTheme", onClick: () => themeSwitcher.toggleMode(), class: "internal-tab bottom-tab", icon: iconLightDark, label: this.i18nToggleTheme })) : null, h("div", { key: '
|
|
490
|
+
}, icon: iconCogwheel, onClick: async () => this.toggleSettings(!this.showSettings), label: this.i18nSettings })) : null, this.enableToggleTheme ? (h("ix-menu-item", { disabled: this.isHiddenFromViewport(), id: "toggleTheme", onClick: () => themeSwitcher.toggleMode(), class: "internal-tab bottom-tab", icon: iconLightDark, label: this.i18nToggleTheme })) : null, h("div", { key: '50b48bbaa282e632c32476d2d3590b969d9b67f4', onClick: (e) => this.onMenuItemsClick(e) }, h("slot", { key: '64eead8c650d587783ad39d27429652da7f56962', name: "bottom" })), h("div", { key: '22f7f7d3d7fae907636b474aeb3cdeedc38631f5', id: "popover-area" }), this.enableMapExpand || ((_b = this.applicationLayoutContext) === null || _b === void 0 ? void 0 : _b.sidebar) ? (h("ix-menu-item", { disabled: this.isHiddenFromViewport(), id: "menu-collapse", onClick: () => this.sidebarToggle(), class: "internal-tab bottom-tab", icon: `${this.getCollapseIcon()}`, label: this.getCollapseText() })) : null, this.about ? (h("ix-menu-item", { disabled: this.isHiddenFromViewport(), id: "aboutAndLegal", class: {
|
|
485
491
|
'internal-tab': true,
|
|
486
492
|
'bottom-tab': true,
|
|
487
493
|
active: this.showAbout,
|
|
488
|
-
}, icon: iconInfo, onClick: async () => this.toggleAbout(!this.showAbout), label: this.i18nLegal })) : null), h("div", { key: '
|
|
494
|
+
}, icon: iconInfo, onClick: async () => this.toggleAbout(!this.showAbout), label: this.i18nLegal })) : null), h("div", { key: 'dc67e6cddea726b1a6f692f66a268b3d50318d96', class: {
|
|
489
495
|
'menu-overlay': true,
|
|
490
496
|
visible: this.isOverlayVisible(),
|
|
491
497
|
expanded: this.expand,
|
|
492
498
|
}, onTransitionEnd: () => {
|
|
493
499
|
this.isTransitionDisabled = true;
|
|
494
500
|
this.checkTransition();
|
|
495
|
-
} }, h("div", { key: '
|
|
501
|
+
} }, h("div", { key: '5222ed73a531d9c59d24feb032ad7e9929f37e5f', class: 'menu-overlay-container' }, this.showSettings ? h("slot", { name: "ix-menu-settings" }) : null), h("div", { key: '1e91deb207ad24f81e5551a788d7e6e79900eb0d', class: 'menu-overlay-container' }, this.showAbout ? h("slot", { name: "ix-menu-about" }) : null))));
|
|
496
502
|
}
|
|
497
503
|
get hostElement() { return this; }
|
|
498
504
|
static get watchers() { return {
|
|
505
|
+
"expand": ["expandChanged"],
|
|
499
506
|
"pinned": ["pinnedChange"]
|
|
500
507
|
}; }
|
|
501
508
|
static get style() { return menuCss; }
|
|
@@ -526,6 +533,7 @@ const Menu = /*@__PURE__*/ proxyCustomElement(class Menu extends H {
|
|
|
526
533
|
"toggleSettings": [64],
|
|
527
534
|
"toggleAbout": [64]
|
|
528
535
|
}, [[9, "resize", "handleOverflowIndicator"], [0, "close", "onOverlayClose"]], {
|
|
536
|
+
"expand": ["expandChanged"],
|
|
529
537
|
"pinned": ["pinnedChange"]
|
|
530
538
|
}]);
|
|
531
539
|
function defineCustomElement$1() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"ix-menu.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/application-sidebar/events.ts","src/components/menu/menu.scss?tag=ix-menu&encapsulation=shadow","src/components/menu/menu.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\nexport class ApplicationSidebarToggleEvent extends Event {\n public constructor(public readonly force?: boolean) {\n super('application-sidebar-toggle', { bubbles: true, composed: true });\n }\n}\n","/*\n * SPDX-FileCopyrightText: 2024 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@use './common-variables' as vars;\n@use 'mixins/hover';\n@use 'mixins/shadow-dom/component';\n@use '~animate.css/animate.min';\n\n$menu-expanded-width: 16rem;\n\n:host {\n display: flex;\n flex-direction: row;\n position: absolute;\n height: 100%;\n min-height: min-content;\n z-index: var(--theme-z-index-sticky);\n width: auto;\n\n bottom: 0;\n\n @include component.ix-component;\n\n .tabs {\n height: 100%;\n position: relative;\n overflow-y: auto;\n pointer-events: all;\n\n -ms-overflow-style: none;\n\n scrollbar-width: none;\n\n &::-webkit-scrollbar {\n display: none;\n }\n }\n\n .show-scrollbar {\n scrollbar-width: inherit;\n\n &::-webkit-scrollbar {\n display: inherit;\n }\n }\n\n .tabs-shadow-container {\n overflow: hidden;\n display: block;\n position: relative;\n margin-bottom: 0.75rem;\n }\n\n .tabs--shadow {\n opacity: 0;\n position: absolute;\n width: 100%;\n height: 0.625rem;\n\n background: linear-gradient(var(--theme-color-shadow-1), transparent);\n pointer-events: none;\n z-index: var(--theme-z-index-sticky);\n\n transition: opacity var(--theme-default-time);\n }\n .tabs--shadow-top {\n top: 0;\n background: linear-gradient(var(--theme-color-shadow-1), transparent);\n }\n\n .tabs--shadow-bottom {\n bottom: 0;\n background: linear-gradient(transparent, var(--theme-color-shadow-1));\n }\n\n .tabs--shadow--show {\n opacity: 1;\n }\n\n .menu {\n display: flex;\n flex-direction: column;\n position: relative;\n width: calc(3.25rem + var(--ix-application-menu-safe-area-left, 0rem));\n height: 100%;\n padding-block-end: calc(1rem + var(--ix-safe-area-inset-bottom, 0rem));\n overflow: hidden;\n\n padding-left: var(--ix-application-menu-safe-area-left, 0rem);\n\n &.expanded {\n box-shadow: var(--theme-navigation--box-shadow);\n }\n\n background-color: var(--theme-nav--background);\n transition: width var(--theme-default-time) ease-in-out;\n }\n\n .menu-overlay {\n display: none;\n position: absolute;\n width: calc(100vw - 3.25rem);\n height: 100%;\n left: 3.25rem;\n z-index: -1;\n backdrop-filter: blur(1rem);\n background-color: var(--theme-sidebar-overlay-blur);\n transition: left var(--theme-default-time) ease-in-out;\n }\n\n .menu-overlay.visible {\n display: block;\n }\n\n .menu.expanded {\n width: $menu-expanded-width;\n }\n\n .menu-overlay.expanded {\n width: calc(100vw - $menu-expanded-width);\n left: $menu-expanded-width;\n }\n\n .menu-overlay-container {\n display: contents;\n }\n\n .menu-avatar {\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: vars.$default-space;\n }\n\n .cui-imprint-product-description {\n margin-bottom: vars.$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 .menu-buttons {\n margin: 0.5rem 0 0 0.625rem;\n }\n\n .menu-buttons > :last-child {\n margin-bottom: 1rem;\n }\n}\n\n:host(.breakpoint-sm) {\n .menu:not(.expanded) {\n width: 0;\n }\n\n .menu-overlay {\n left: 0;\n width: 100vw;\n }\n}\n\n:host(.breakpoint-lg) {\n position: relative;\n\n .menu.expanded {\n box-shadow: none;\n }\n}\n\n:host {\n ::slotted(a[href]) {\n all: unset;\n }\n}\n","/*\n * SPDX-FileCopyrightText: 2024 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 Watch,\n} from '@stencil/core';\nimport { animate } from 'animejs';\nimport { ApplicationSidebarToggleEvent } from '../application-sidebar/events';\nimport { showAppSwitch } from '../utils/app-switch';\nimport { ApplicationLayoutContext } from '../utils/application-layout/context';\nimport { applicationLayoutService } from '../utils/application-layout/service';\nimport { Breakpoint } from '../utils/breakpoints';\nimport { ContextType, useContextConsumer } from '../utils/context';\nimport { menuController } from '../utils/menu-service/menu-service';\nimport { convertToRemString } from '../utils/rwd.util';\nimport { themeSwitcher } from '../utils/theme-switcher';\nimport {\n iconApps,\n iconCogwheel,\n iconInfo,\n iconLightDark,\n iconNavigationLeft,\n iconNavigationRight,\n} from '@siemens/ix-icons/icons';\nimport Animation from '../utils/animation';\n\n@Component({\n tag: 'ix-menu',\n styleUrl: 'menu.scss',\n shadow: true,\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 /** @internal */\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 * Accessibility i18n label for the burger menu of the sidebar\n */\n @Prop({ attribute: 'i18n-expand-sidebar' }) i18nExpandSidebar =\n 'Expand sidebar';\n\n /**\n * Toggle the expand state of the menu\n */\n @Prop({ mutable: true, reflect: true }) expand = false;\n\n /**\n * If set the menu will be expanded initially. This will only take effect at the breakpoint 'lg'.\n */\n @Prop() startExpanded = false;\n\n /**\n * Menu stays pinned to the left\n */\n @Prop() pinned = false;\n\n @Watch('pinned')\n pinnedChange(newPinned: boolean) {\n this.setPinned(this.pinned);\n if (newPinned) {\n applicationLayoutService.disableBreakpointDetection();\n applicationLayoutService.setBreakpoint('lg');\n return;\n }\n\n applicationLayoutService.enableBreakpointDetection();\n }\n\n /**\n * i18n label for 'About & legal information' button\n */\n @Prop({ attribute: 'i18n-legal' }) i18nLegal = 'About & legal information';\n\n /**\n * i18n label for 'Settings' button\n */\n @Prop({ attribute: 'i18n-settings' }) i18nSettings = 'Settings';\n\n /**\n * i18n label for 'Toggle theme' button\n */\n @Prop({ attribute: 'i18n-toggle-theme' }) i18nToggleTheme = 'Toggle theme';\n\n /**\n * i18n label for 'Expand' button\n */\n @Prop({ attribute: 'i18n-expand' }) i18nExpand = ' Expand';\n\n /**\n * i18n label for 'Collapse' button\n */\n @Prop({ attribute: 'i18n-collapse' }) i18nCollapse = 'Collapse';\n\n /**\n * Menu expanded\n */\n @Event() expandChange!: EventEmitter<boolean>;\n\n /**\n * Map Sidebar expanded\n */\n @Event() mapExpandChange!: EventEmitter<boolean>;\n\n /**\n * Event emitted when the app switch button is clicked\n *\n * @since 3.0.0\n */\n @Event() openAppSwitch!: EventEmitter<void>;\n\n /**\n * Event emitted when the settings button is clicked\n * @since 3.0.0\n */\n @Event() openSettings!: EventEmitter<void>;\n\n /**\n * Event emitted when the about button is clicked\n * @since 3.0.0\n */\n @Event() openAbout!: EventEmitter<void>;\n\n @State() showPinned = false;\n @State() mapExpand = true;\n @State() breakpoint: Breakpoint = 'lg';\n @State() itemsScrollShadowTop = false;\n @State() itemsScrollShadowBottom = false;\n @State() applicationLayoutContext?: ContextType<\n typeof ApplicationLayoutContext\n >;\n private isTransitionDisabled = false;\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.shadowRoot!.querySelector('#popover-area');\n }\n\n get menu() {\n return this.hostElement.shadowRoot!.querySelector('.menu');\n }\n\n get menuItemsContainer(): HTMLDivElement {\n return this.menu!.querySelector('.tabs')!;\n }\n\n get overlayContainer() {\n return this.hostElement.shadowRoot!.querySelector(\n '.menu-overlay'\n ) as HTMLDivElement;\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((elm) => this.isVisible(elm as HTMLElement));\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((elm) => this.isVisible(elm as HTMLElement));\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.shadowRoot!.querySelector(\n '.internal-tab ix-dropdown'\n )!;\n }\n\n get isMoreItemsDropdownEmpty(): boolean {\n return (\n this.hostElement.shadowRoot!.querySelectorAll(\n '.internal-tab ix-dropdown .appended'\n ).length === 0\n );\n }\n\n get moreItemsDropdownItems() {\n return this.hostElement.shadowRoot!.querySelectorAll(\n '.internal-tab ix-dropdown ix-menu-item'\n );\n }\n\n get activeMoreTabContainer() {\n return this.hostElement.shadowRoot!.querySelector('.active-more-tab');\n }\n\n get activeMoreTab() {\n return this.hostElement.shadowRoot!.querySelector(\n '.active-more-tab ix-menu-item'\n );\n }\n\n get aboutPopoverContainer(): HTMLElement {\n return this.hostElement.querySelector('.about-news')!;\n }\n\n get aboutNewsPopover(): HTMLIxMenuAboutNewsElement {\n return (\n document.querySelector('ix-menu-about-news') ??\n this.hostElement.querySelector('ix-menu-about-news')!\n );\n }\n\n get aboutTab(): HTMLElement | null {\n return this.hostElement.shadowRoot!.querySelector('#aboutAndLegal');\n }\n\n get about(): HTMLIxMenuAboutElement | null {\n return this.hostElement.querySelector('ix-menu-about');\n }\n\n get settings(): HTMLIxMenuSettingsElement | null {\n return this.hostElement.querySelector('ix-menu-settings');\n }\n\n get isSettingsEmpty(): boolean {\n return (\n Array.from(\n this.hostElement.shadowRoot!.querySelectorAll('ix-menu-settings-item')\n ).length === 0\n );\n }\n\n get tabsContainer() {\n return this.hostElement;\n }\n\n componentDidLoad() {\n requestAnimationFrame(() => {\n this.handleOverflowIndicator();\n });\n\n if (this.pinned) {\n this.pinnedChange(this.pinned);\n }\n }\n\n componentWillLoad() {\n useContextConsumer(\n this.hostElement,\n ApplicationLayoutContext,\n (ctx) => {\n this.applicationLayoutContext = ctx;\n if (ctx.hideHeader === true) {\n this.onBreakpointChange('md');\n return;\n }\n\n this.onBreakpointChange(applicationLayoutService.breakpoint);\n },\n true\n );\n\n menuController.register(this.hostElement);\n applicationLayoutService.onChange.on((breakpoint) =>\n this.onBreakpointChange(breakpoint)\n );\n this.onBreakpointChange(applicationLayoutService.breakpoint, true);\n }\n\n componentDidRender() {\n if (!this.about && this.aboutNewsPopover) {\n this.aboutNewsPopover.show = false;\n }\n this.appendFragments();\n }\n\n private setPinned(pinned: boolean) {\n this.showPinned = pinned;\n menuController.setIsPinned(pinned);\n }\n\n private onBreakpointChange(mode: Breakpoint, initial = false) {\n if (!this.applicationLayoutContext && mode === 'sm') {\n return;\n }\n\n if (!this.applicationLayoutContext) {\n return;\n }\n\n if (this.applicationLayoutContext.hideHeader && mode === 'sm') {\n return;\n }\n\n this.setPinned(mode === 'lg');\n if (initial || mode !== this.breakpoint)\n this.toggleMenu(mode === 'lg' && this.startExpanded);\n\n this.breakpoint = mode;\n }\n\n private appendFragments() {\n this.appendAboutNewsPopover();\n }\n\n private getAboutPopoverVerticalPosition() {\n const heightArrow = 12;\n const offsetArrow = 6;\n const rectAbout = this.aboutTab?.getBoundingClientRect() || {\n bottom: -window.innerHeight,\n height: 0,\n };\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.aboutNewsPopover || !this.about) {\n return;\n }\n\n this.aboutNewsPopover.style.bottom = this.getAboutPopoverVerticalPosition();\n\n if (!this.popoverArea?.contains(this.aboutNewsPopover)) {\n const showMore = () => {\n if (this.aboutNewsPopover?.aboutItemLabel && this.about) {\n this.about.activeTabLabel = this.aboutNewsPopover.aboutItemLabel;\n this.toggleAbout(true);\n }\n };\n\n this.aboutNewsPopover.addEventListener('showMore', showMore.bind(this));\n document.body.appendChild(this.aboutNewsPopover);\n }\n }\n\n /**\n * Toggle map sidebar expand\n * @param show\n */\n @Method()\n async toggleMapExpand(show?: boolean) {\n if (show !== undefined) {\n this.mapExpand = show;\n } else {\n this.mapExpand = !this.mapExpand;\n }\n }\n\n /**\n * Toggle menu\n * @param show\n */\n @Method()\n async toggleMenu(show?: boolean) {\n const oldExpand = this.expand;\n\n if (show !== undefined) {\n this.expand = show;\n } else {\n this.expand = !this.expand;\n }\n\n if (this.aboutNewsPopover) {\n this.aboutNewsPopover.expanded = this.expand;\n }\n\n const { defaultPrevented } = this.expandChange.emit(this.expand);\n\n if (defaultPrevented) {\n this.expand = oldExpand;\n\n if (this.aboutNewsPopover) {\n this.aboutNewsPopover.expanded = oldExpand;\n }\n\n return;\n }\n\n this.isTransitionDisabled = false;\n this.checkTransition();\n\n if (this.breakpoint == 'sm' && this.expand) {\n setTimeout(() => {\n this.handleOverflowIndicator();\n }, 100);\n }\n }\n\n /**\n * Disable transition of overlay while menu animation is running.\n */\n private checkTransition() {\n const container = this.overlayContainer;\n\n if (!container) {\n return;\n }\n\n if (this.isTransitionDisabled) {\n container.style.transitionProperty = 'left';\n } else {\n container.style.transitionProperty = 'all';\n }\n }\n\n private isOverlayVisible() {\n return this.showAbout || this.showSettings;\n }\n\n /**\n * Toggle Settings tabs\n * @param show\n */\n @Method()\n async toggleSettings(show: boolean) {\n if (!this.settings) {\n return;\n }\n\n const { defaultPrevented } = this.openSettings.emit();\n\n if (defaultPrevented) {\n return;\n }\n\n if (!this.isOverlayVisible()) {\n this.animateOverlayFadeIn();\n }\n\n if (show) {\n this.resetOverlay();\n this.showSettings = show;\n this.settings.show = this.showSettings;\n } else {\n this.onOverlayClose();\n }\n }\n\n /**\n * Toggle About tabs\n * @param show\n */\n @Method()\n async toggleAbout(show: boolean) {\n if (!this.about) {\n return;\n }\n\n const { defaultPrevented } = this.openAbout.emit();\n\n if (defaultPrevented) {\n return;\n }\n\n if (!this.isOverlayVisible()) {\n this.animateOverlayFadeIn();\n }\n\n if (show) {\n this.resetOverlay();\n this.showAbout = show;\n this.about.show = this.showAbout;\n } else {\n this.onOverlayClose();\n }\n }\n\n private resetOverlay() {\n this.showSettings = false;\n this.showAbout = false;\n\n if (this.settings) {\n this.settings.show = false;\n }\n\n if (this.about) {\n this.about.show = false;\n }\n }\n\n private getCollapseText() {\n return this.mapExpand ? this.i18nCollapse : this.i18nExpand;\n }\n\n private getCollapseIcon() {\n return this.mapExpand ? iconNavigationLeft : iconNavigationRight;\n }\n\n private isMenuItemClicked(event: Event) {\n if (event.target instanceof HTMLElement) {\n return event.target.tagName === 'IX-MENU-ITEM';\n }\n\n return false;\n }\n\n @Listen('resize', { target: 'window' })\n private handleOverflowIndicator() {\n const { clientHeight, scrollTop, scrollHeight } = this.menuItemsContainer;\n this.itemsScrollShadowTop = scrollTop > 0;\n this.itemsScrollShadowBottom =\n Math.round(scrollTop + clientHeight) < scrollHeight;\n }\n\n @Listen('close')\n onOverlayClose() {\n this.animateOverlayFadeOut(() => {\n this.resetOverlay();\n });\n }\n\n private animateOverlayFadeIn() {\n requestAnimationFrame(() => {\n animate(this.overlayContainer!, {\n duration: Animation.mediumTime,\n backdropFilter: [0, 'blur(1rem)'],\n translateX: ['-4rem', 0],\n opacity: [0, 1],\n easing: 'easeInSine',\n onBegin: () => {\n if (this.showPinned) {\n return;\n }\n\n this.toggleMenu(false);\n },\n });\n });\n }\n\n private animateOverlayFadeOut(onComplete: Function) {\n requestAnimationFrame(() => {\n animate(this.overlayContainer!, {\n duration: Animation.mediumTime,\n backdropFilter: ['blur(1rem)', 0],\n translateX: [0, '-4rem'],\n opacity: [1, 0],\n easing: 'easeInSine',\n onComplete: () => onComplete(),\n });\n });\n }\n\n private onMenuItemsClick(event: Event) {\n if (this.isMenuItemClicked(event)) {\n if (!this.showPinned) {\n this.toggleMenu(false);\n }\n this.onOverlayClose();\n }\n }\n\n private isHiddenFromViewport() {\n return this.breakpoint === 'sm' && this.expand === false;\n }\n\n private sidebarToggle() {\n this.mapExpandChange.emit(this.mapExpand);\n\n this.hostElement.dispatchEvent(\n new ApplicationSidebarToggleEvent(this.mapExpand)\n );\n }\n\n private async showAppSwitch() {\n const { defaultPrevented } = this.openAppSwitch.emit();\n\n if (defaultPrevented) {\n return;\n }\n\n if (this.applicationLayoutContext?.appSwitchConfig) {\n showAppSwitch(this.applicationLayoutContext.appSwitchConfig);\n }\n }\n\n render() {\n return (\n <Host\n class={{\n expanded: this.expand,\n [`breakpoint-${this.breakpoint}`]: true,\n }}\n slot=\"menu\"\n >\n <nav\n class={{\n menu: true,\n expanded: this.expand,\n }}\n >\n <div class=\"menu-buttons\">\n {this.breakpoint !== 'sm' && (\n <ix-menu-expand-icon\n breakpoint={this.breakpoint}\n expanded={this.expand}\n pinned={this.pinned}\n class=\"menu-expand-icon\"\n ixAriaLabel={this.i18nExpandSidebar}\n onClick={async () => this.toggleMenu()}\n data-testid=\"expand-collapse-menu\"\n ></ix-menu-expand-icon>\n )}\n {this.breakpoint === 'sm' &&\n this.applicationLayoutContext?.appSwitchConfig && (\n <ix-icon-button\n onClick={() => {\n this.showAppSwitch();\n }}\n icon={iconApps}\n variant=\"subtle-tertiary\"\n ></ix-icon-button>\n )}\n </div>\n\n <div\n id=\"menu-tabs\"\n style={{\n display: 'contents',\n }}\n onClick={(e) => this.onMenuItemsClick(e)}\n >\n <div class=\"tabs-shadow-container\">\n <div\n class={{\n 'tabs--shadow': true,\n 'tabs--shadow-top': true,\n 'tabs--shadow--show': this.itemsScrollShadowTop,\n }}\n ></div>\n <div\n class={{\n tabs: true,\n 'show-scrollbar': this.expand,\n }}\n onScroll={() => this.handleOverflowIndicator()}\n >\n <div class=\"menu-avatar\">\n <slot name=\"ix-menu-avatar\"></slot>\n </div>\n <slot name=\"home\"></slot>\n {this.breakpoint !== 'sm' || !this.isHiddenFromViewport() ? (\n <slot></slot>\n ) : null}\n </div>\n <div\n class={{\n 'tabs--shadow': true,\n 'tabs--shadow-bottom': true,\n 'tabs--shadow--show': this.itemsScrollShadowBottom,\n }}\n ></div>\n </div>\n </div>\n <div class=\"bottom-tab-divider\"></div>\n {this.settings ? (\n <ix-menu-item\n disabled={this.isHiddenFromViewport()}\n id=\"settings\"\n class={{\n 'internal-tab': true,\n 'bottom-tab': true,\n active: this.showSettings,\n }}\n icon={iconCogwheel}\n onClick={async () => this.toggleSettings(!this.showSettings)}\n label={this.i18nSettings}\n ></ix-menu-item>\n ) : null}\n {this.enableToggleTheme ? (\n <ix-menu-item\n disabled={this.isHiddenFromViewport()}\n id=\"toggleTheme\"\n onClick={() => themeSwitcher.toggleMode()}\n class=\"internal-tab bottom-tab\"\n icon={iconLightDark}\n label={this.i18nToggleTheme}\n ></ix-menu-item>\n ) : null}\n <div onClick={(e) => this.onMenuItemsClick(e)}>\n <slot name=\"bottom\"></slot>\n </div>\n <div id=\"popover-area\"></div>\n {this.enableMapExpand || this.applicationLayoutContext?.sidebar ? (\n <ix-menu-item\n disabled={this.isHiddenFromViewport()}\n id=\"menu-collapse\"\n onClick={() => this.sidebarToggle()}\n class=\"internal-tab bottom-tab\"\n icon={`${this.getCollapseIcon()}`}\n label={this.getCollapseText()}\n ></ix-menu-item>\n ) : null}\n {this.about ? (\n <ix-menu-item\n disabled={this.isHiddenFromViewport()}\n id=\"aboutAndLegal\"\n class={{\n 'internal-tab': true,\n 'bottom-tab': true,\n active: this.showAbout,\n }}\n icon={iconInfo}\n onClick={async () => this.toggleAbout(!this.showAbout)}\n label={this.i18nLegal}\n ></ix-menu-item>\n ) : null}\n </nav>\n <div\n class={{\n 'menu-overlay': true,\n visible: this.isOverlayVisible(),\n expanded: this.expand,\n }}\n onTransitionEnd={() => {\n this.isTransitionDisabled = true;\n this.checkTransition();\n }}\n >\n <div class={'menu-overlay-container'}>\n {this.showSettings ? <slot name=\"ix-menu-settings\"></slot> : null}\n </div>\n <div class={'menu-overlay-container'}>\n {this.showAbout ? <slot name=\"ix-menu-about\"></slot> : null}\n </div>\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
|
|
1
|
+
{"file":"ix-menu.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/application-sidebar/events.ts","src/components/menu/menu.scss?tag=ix-menu&encapsulation=shadow","src/components/menu/menu.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\nexport class ApplicationSidebarToggleEvent extends Event {\n public constructor(public readonly force?: boolean) {\n super('application-sidebar-toggle', { bubbles: true, composed: true });\n }\n}\n","/*\n * SPDX-FileCopyrightText: 2024 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@use './common-variables' as vars;\n@use 'mixins/hover';\n@use 'mixins/shadow-dom/component';\n@use '~animate.css/animate.min';\n\n$menu-expanded-width: 16rem;\n\n:host {\n display: flex;\n flex-direction: row;\n position: absolute;\n height: 100%;\n min-height: min-content;\n z-index: var(--theme-z-index-sticky);\n width: auto;\n\n bottom: 0;\n\n @include component.ix-component;\n\n .tabs {\n height: 100%;\n position: relative;\n overflow-y: auto;\n pointer-events: all;\n\n -ms-overflow-style: none;\n\n scrollbar-width: none;\n\n &::-webkit-scrollbar {\n display: none;\n }\n }\n\n .show-scrollbar {\n scrollbar-width: inherit;\n\n &::-webkit-scrollbar {\n display: inherit;\n }\n }\n\n .tabs-shadow-container {\n overflow: hidden;\n display: block;\n position: relative;\n margin-bottom: 0.75rem;\n }\n\n .tabs--shadow {\n opacity: 0;\n position: absolute;\n width: 100%;\n height: 0.625rem;\n\n background: linear-gradient(var(--theme-color-shadow-1), transparent);\n pointer-events: none;\n z-index: var(--theme-z-index-sticky);\n\n transition: opacity var(--theme-default-time);\n }\n .tabs--shadow-top {\n top: 0;\n background: linear-gradient(var(--theme-color-shadow-1), transparent);\n }\n\n .tabs--shadow-bottom {\n bottom: 0;\n background: linear-gradient(transparent, var(--theme-color-shadow-1));\n }\n\n .tabs--shadow--show {\n opacity: 1;\n }\n\n .menu {\n display: flex;\n flex-direction: column;\n position: relative;\n width: calc(3.25rem + var(--ix-application-menu-safe-area-left, 0rem));\n height: 100%;\n padding-block-end: calc(1rem + var(--ix-safe-area-inset-bottom, 0rem));\n overflow: hidden;\n\n padding-left: var(--ix-application-menu-safe-area-left, 0rem);\n\n &.expanded {\n box-shadow: var(--theme-navigation--box-shadow);\n }\n\n background-color: var(--theme-nav--background);\n transition: width var(--theme-default-time) ease-in-out;\n }\n\n .menu-overlay {\n display: none;\n position: absolute;\n width: calc(100vw - 3.25rem);\n height: 100%;\n left: 3.25rem;\n z-index: -1;\n backdrop-filter: blur(1rem);\n background-color: var(--theme-sidebar-overlay-blur);\n transition: left var(--theme-default-time) ease-in-out;\n }\n\n .menu-overlay.visible {\n display: block;\n }\n\n .menu.expanded {\n width: $menu-expanded-width;\n }\n\n .menu-overlay.expanded {\n width: calc(100vw - $menu-expanded-width);\n left: $menu-expanded-width;\n }\n\n .menu-overlay-container {\n display: contents;\n }\n\n .menu-avatar {\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: vars.$default-space;\n }\n\n .cui-imprint-product-description {\n margin-bottom: vars.$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 .menu-buttons {\n margin: 0.5rem 0 0 0.625rem;\n }\n\n .menu-buttons > :last-child {\n margin-bottom: 1rem;\n }\n}\n\n:host(.breakpoint-sm) {\n .menu:not(.expanded) {\n width: 0;\n }\n\n .menu-overlay {\n left: 0;\n width: 100vw;\n }\n}\n\n:host(.breakpoint-lg) {\n position: relative;\n\n .menu.expanded {\n box-shadow: none;\n }\n}\n\n:host {\n ::slotted(a[href]) {\n all: unset;\n }\n}\n","/*\n * SPDX-FileCopyrightText: 2024 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 Watch,\n} from '@stencil/core';\nimport { animate } from 'animejs';\nimport { ApplicationSidebarToggleEvent } from '../application-sidebar/events';\nimport { showAppSwitch } from '../utils/app-switch';\nimport { ApplicationLayoutContext } from '../utils/application-layout/context';\nimport { applicationLayoutService } from '../utils/application-layout/service';\nimport { Breakpoint } from '../utils/breakpoints';\nimport { ContextType, useContextConsumer } from '../utils/context';\nimport { menuController } from '../utils/menu-service/menu-service';\nimport { convertToRemString } from '../utils/rwd.util';\nimport { themeSwitcher } from '../utils/theme-switcher';\nimport {\n iconApps,\n iconCogwheel,\n iconInfo,\n iconLightDark,\n iconNavigationLeft,\n iconNavigationRight,\n} from '@siemens/ix-icons/icons';\nimport Animation from '../utils/animation';\n\n@Component({\n tag: 'ix-menu',\n styleUrl: 'menu.scss',\n shadow: true,\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 /** @internal */\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 * Accessibility i18n label for the burger menu of the sidebar\n */\n @Prop({ attribute: 'i18n-expand-sidebar' }) i18nExpandSidebar =\n 'Expand sidebar';\n\n /**\n * Toggle the expand state of the menu\n */\n @Prop({ mutable: true, reflect: true }) expand = false;\n\n @Watch('expand')\n expandChanged(newExpand: boolean, oldExpand: boolean) {\n if (newExpand === oldExpand) {\n return;\n }\n\n this.toggleMenu(newExpand);\n }\n\n /**\n * If set the menu will be expanded initially. This will only take effect at the breakpoint 'lg'.\n */\n @Prop() startExpanded = false;\n\n /**\n * Menu stays pinned to the left\n */\n @Prop() pinned = false;\n\n @Watch('pinned')\n pinnedChange(newPinned: boolean) {\n this.setPinned(this.pinned);\n if (newPinned) {\n applicationLayoutService.disableBreakpointDetection();\n applicationLayoutService.setBreakpoint('lg');\n return;\n }\n\n applicationLayoutService.enableBreakpointDetection();\n }\n\n /**\n * i18n label for 'About & legal information' button\n */\n @Prop({ attribute: 'i18n-legal' }) i18nLegal = 'About & legal information';\n\n /**\n * i18n label for 'Settings' button\n */\n @Prop({ attribute: 'i18n-settings' }) i18nSettings = 'Settings';\n\n /**\n * i18n label for 'Toggle theme' button\n */\n @Prop({ attribute: 'i18n-toggle-theme' }) i18nToggleTheme = 'Toggle theme';\n\n /**\n * i18n label for 'Expand' button\n */\n @Prop({ attribute: 'i18n-expand' }) i18nExpand = ' Expand';\n\n /**\n * i18n label for 'Collapse' button\n */\n @Prop({ attribute: 'i18n-collapse' }) i18nCollapse = 'Collapse';\n\n /**\n * Menu expanded\n */\n @Event() expandChange!: EventEmitter<boolean>;\n\n /**\n * Map Sidebar expanded\n */\n @Event() mapExpandChange!: EventEmitter<boolean>;\n\n /**\n * Event emitted when the app switch button is clicked\n *\n * @since 3.0.0\n */\n @Event() openAppSwitch!: EventEmitter<void>;\n\n /**\n * Event emitted when the settings button is clicked\n * @since 3.0.0\n */\n @Event() openSettings!: EventEmitter<void>;\n\n /**\n * Event emitted when the about button is clicked\n * @since 3.0.0\n */\n @Event() openAbout!: EventEmitter<void>;\n\n @State() showPinned = false;\n @State() mapExpand = true;\n @State() breakpoint: Breakpoint = 'lg';\n @State() itemsScrollShadowTop = false;\n @State() itemsScrollShadowBottom = false;\n @State() applicationLayoutContext?: ContextType<\n typeof ApplicationLayoutContext\n >;\n private isTransitionDisabled = false;\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.shadowRoot!.querySelector('#popover-area');\n }\n\n get menu() {\n return this.hostElement.shadowRoot!.querySelector('.menu');\n }\n\n get menuItemsContainer(): HTMLDivElement {\n return this.menu!.querySelector('.tabs')!;\n }\n\n get overlayContainer() {\n return this.hostElement.shadowRoot!.querySelector(\n '.menu-overlay'\n ) as HTMLDivElement;\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((elm) => this.isVisible(elm as HTMLElement));\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((elm) => this.isVisible(elm as HTMLElement));\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.shadowRoot!.querySelector(\n '.internal-tab ix-dropdown'\n )!;\n }\n\n get isMoreItemsDropdownEmpty(): boolean {\n return (\n this.hostElement.shadowRoot!.querySelectorAll(\n '.internal-tab ix-dropdown .appended'\n ).length === 0\n );\n }\n\n get moreItemsDropdownItems() {\n return this.hostElement.shadowRoot!.querySelectorAll(\n '.internal-tab ix-dropdown ix-menu-item'\n );\n }\n\n get activeMoreTabContainer() {\n return this.hostElement.shadowRoot!.querySelector('.active-more-tab');\n }\n\n get activeMoreTab() {\n return this.hostElement.shadowRoot!.querySelector(\n '.active-more-tab ix-menu-item'\n );\n }\n\n get aboutPopoverContainer(): HTMLElement {\n return this.hostElement.querySelector('.about-news')!;\n }\n\n get aboutNewsPopover(): HTMLIxMenuAboutNewsElement {\n return (\n document.querySelector('ix-menu-about-news') ??\n this.hostElement.querySelector('ix-menu-about-news')!\n );\n }\n\n get aboutTab(): HTMLElement | null {\n return this.hostElement.shadowRoot!.querySelector('#aboutAndLegal');\n }\n\n get about(): HTMLIxMenuAboutElement | null {\n return this.hostElement.querySelector('ix-menu-about');\n }\n\n get settings(): HTMLIxMenuSettingsElement | null {\n return this.hostElement.querySelector('ix-menu-settings');\n }\n\n get isSettingsEmpty(): boolean {\n return (\n Array.from(\n this.hostElement.shadowRoot!.querySelectorAll('ix-menu-settings-item')\n ).length === 0\n );\n }\n\n get tabsContainer() {\n return this.hostElement;\n }\n\n componentDidLoad() {\n requestAnimationFrame(() => {\n this.handleOverflowIndicator();\n });\n\n if (this.pinned) {\n this.pinnedChange(this.pinned);\n }\n }\n\n componentWillLoad() {\n useContextConsumer(\n this.hostElement,\n ApplicationLayoutContext,\n (ctx) => {\n this.applicationLayoutContext = ctx;\n if (ctx.hideHeader === true) {\n this.onBreakpointChange('md');\n return;\n }\n\n this.onBreakpointChange(applicationLayoutService.breakpoint);\n },\n true\n );\n\n menuController.register(this.hostElement);\n applicationLayoutService.onChange.on((breakpoint) =>\n this.onBreakpointChange(breakpoint)\n );\n this.onBreakpointChange(applicationLayoutService.breakpoint, true);\n }\n\n componentDidRender() {\n if (!this.about && this.aboutNewsPopover) {\n this.aboutNewsPopover.show = false;\n }\n this.appendFragments();\n }\n\n private setPinned(pinned: boolean) {\n this.showPinned = pinned;\n menuController.setIsPinned(pinned);\n }\n\n private onBreakpointChange(mode: Breakpoint, initial = false) {\n if (!this.applicationLayoutContext && mode === 'sm') {\n return;\n }\n\n if (!this.applicationLayoutContext) {\n return;\n }\n\n if (this.applicationLayoutContext.hideHeader && mode === 'sm') {\n return;\n }\n\n this.setPinned(mode === 'lg');\n if (initial || mode !== this.breakpoint)\n this.toggleMenu(mode === 'lg' && this.startExpanded);\n\n this.breakpoint = mode;\n }\n\n private appendFragments() {\n this.appendAboutNewsPopover();\n }\n\n private getAboutPopoverVerticalPosition() {\n const heightArrow = 12;\n const offsetArrow = 6;\n const rectAbout = this.aboutTab?.getBoundingClientRect() || {\n bottom: -window.innerHeight,\n height: 0,\n };\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.aboutNewsPopover || !this.about) {\n return;\n }\n\n this.aboutNewsPopover.style.bottom = this.getAboutPopoverVerticalPosition();\n\n if (!this.popoverArea?.contains(this.aboutNewsPopover)) {\n const showMore = () => {\n if (this.aboutNewsPopover?.aboutItemLabel && this.about) {\n this.about.activeTabLabel = this.aboutNewsPopover.aboutItemLabel;\n this.toggleAbout(true);\n }\n };\n\n this.aboutNewsPopover.addEventListener('showMore', showMore.bind(this));\n document.body.appendChild(this.aboutNewsPopover);\n }\n }\n\n /**\n * Toggle map sidebar expand\n * @param show\n */\n @Method()\n async toggleMapExpand(show?: boolean) {\n if (show !== undefined) {\n this.mapExpand = show;\n } else {\n this.mapExpand = !this.mapExpand;\n }\n }\n\n /**\n * Toggle menu\n * @param show\n */\n @Method()\n async toggleMenu(show?: boolean) {\n const oldExpand = this.expand;\n\n if (show !== undefined) {\n this.expand = show;\n } else {\n this.expand = !this.expand;\n }\n\n if (this.aboutNewsPopover) {\n this.aboutNewsPopover.expanded = this.expand;\n }\n\n const { defaultPrevented } = this.expandChange.emit(this.expand);\n\n if (defaultPrevented) {\n this.expand = oldExpand;\n\n if (this.aboutNewsPopover) {\n this.aboutNewsPopover.expanded = oldExpand;\n }\n\n return;\n }\n\n this.isTransitionDisabled = false;\n this.checkTransition();\n\n if (this.breakpoint == 'sm' && this.expand) {\n setTimeout(() => {\n this.handleOverflowIndicator();\n }, 100);\n }\n }\n\n /**\n * Disable transition of overlay while menu animation is running.\n */\n private checkTransition() {\n const container = this.overlayContainer;\n\n if (!container) {\n return;\n }\n\n if (this.isTransitionDisabled) {\n container.style.transitionProperty = 'left';\n } else {\n container.style.transitionProperty = 'all';\n }\n }\n\n private isOverlayVisible() {\n return this.showAbout || this.showSettings;\n }\n\n /**\n * Toggle Settings tabs\n * @param show\n */\n @Method()\n async toggleSettings(show: boolean) {\n if (!this.settings) {\n return;\n }\n\n const { defaultPrevented } = this.openSettings.emit();\n\n if (defaultPrevented) {\n return;\n }\n\n if (!this.isOverlayVisible()) {\n this.animateOverlayFadeIn();\n }\n\n if (show) {\n this.resetOverlay();\n this.showSettings = show;\n this.settings.show = this.showSettings;\n } else {\n this.onOverlayClose();\n }\n }\n\n /**\n * Toggle About tabs\n * @param show\n */\n @Method()\n async toggleAbout(show: boolean) {\n if (!this.about) {\n return;\n }\n\n const { defaultPrevented } = this.openAbout.emit();\n\n if (defaultPrevented) {\n return;\n }\n\n if (!this.isOverlayVisible()) {\n this.animateOverlayFadeIn();\n }\n\n if (show) {\n this.resetOverlay();\n this.showAbout = show;\n this.about.show = this.showAbout;\n } else {\n this.onOverlayClose();\n }\n }\n\n private resetOverlay() {\n this.showSettings = false;\n this.showAbout = false;\n\n if (this.settings) {\n this.settings.show = false;\n }\n\n if (this.about) {\n this.about.show = false;\n }\n }\n\n private getCollapseText() {\n return this.mapExpand ? this.i18nCollapse : this.i18nExpand;\n }\n\n private getCollapseIcon() {\n return this.mapExpand ? iconNavigationLeft : iconNavigationRight;\n }\n\n private isMenuItemClicked(event: Event) {\n if (event.target instanceof HTMLElement) {\n return event.target.tagName === 'IX-MENU-ITEM';\n }\n\n return false;\n }\n\n @Listen('resize', { target: 'window' })\n private handleOverflowIndicator() {\n const { clientHeight, scrollTop, scrollHeight } = this.menuItemsContainer;\n this.itemsScrollShadowTop = scrollTop > 0;\n this.itemsScrollShadowBottom =\n Math.round(scrollTop + clientHeight) < scrollHeight;\n }\n\n @Listen('close')\n onOverlayClose() {\n this.animateOverlayFadeOut(() => {\n this.resetOverlay();\n });\n }\n\n private animateOverlayFadeIn() {\n requestAnimationFrame(() => {\n animate(this.overlayContainer!, {\n duration: Animation.mediumTime,\n backdropFilter: [0, 'blur(1rem)'],\n translateX: ['-4rem', 0],\n opacity: [0, 1],\n easing: 'easeInSine',\n onBegin: () => {\n if (this.showPinned) {\n return;\n }\n\n this.toggleMenu(false);\n },\n });\n });\n }\n\n private animateOverlayFadeOut(onComplete: Function) {\n requestAnimationFrame(() => {\n animate(this.overlayContainer!, {\n duration: Animation.mediumTime,\n backdropFilter: ['blur(1rem)', 0],\n translateX: [0, '-4rem'],\n opacity: [1, 0],\n easing: 'easeInSine',\n onComplete: () => onComplete(),\n });\n });\n }\n\n private onMenuItemsClick(event: Event) {\n if (this.isMenuItemClicked(event)) {\n if (!this.showPinned) {\n this.toggleMenu(false);\n }\n this.onOverlayClose();\n }\n }\n\n private isHiddenFromViewport() {\n return this.breakpoint === 'sm' && this.expand === false;\n }\n\n private sidebarToggle() {\n this.mapExpandChange.emit(this.mapExpand);\n\n this.hostElement.dispatchEvent(\n new ApplicationSidebarToggleEvent(this.mapExpand)\n );\n }\n\n private async showAppSwitch() {\n const { defaultPrevented } = this.openAppSwitch.emit();\n\n if (defaultPrevented) {\n return;\n }\n\n if (this.applicationLayoutContext?.appSwitchConfig) {\n showAppSwitch(this.applicationLayoutContext.appSwitchConfig);\n }\n }\n\n render() {\n return (\n <Host\n class={{\n expanded: this.expand,\n [`breakpoint-${this.breakpoint}`]: true,\n }}\n slot=\"menu\"\n >\n <nav\n class={{\n menu: true,\n expanded: this.expand,\n }}\n >\n <div class=\"menu-buttons\">\n {this.breakpoint !== 'sm' && (\n <ix-menu-expand-icon\n breakpoint={this.breakpoint}\n expanded={this.expand}\n pinned={this.pinned}\n class=\"menu-expand-icon\"\n ixAriaLabel={this.i18nExpandSidebar}\n onClick={async () => this.toggleMenu()}\n data-testid=\"expand-collapse-menu\"\n ></ix-menu-expand-icon>\n )}\n {this.breakpoint === 'sm' &&\n this.applicationLayoutContext?.appSwitchConfig && (\n <ix-icon-button\n onClick={() => {\n this.showAppSwitch();\n }}\n icon={iconApps}\n variant=\"subtle-tertiary\"\n ></ix-icon-button>\n )}\n </div>\n\n <div\n id=\"menu-tabs\"\n style={{\n display: 'contents',\n }}\n onClick={(e) => this.onMenuItemsClick(e)}\n >\n <div class=\"tabs-shadow-container\">\n <div\n class={{\n 'tabs--shadow': true,\n 'tabs--shadow-top': true,\n 'tabs--shadow--show': this.itemsScrollShadowTop,\n }}\n ></div>\n <div\n class={{\n tabs: true,\n 'show-scrollbar': this.expand,\n }}\n onScroll={() => this.handleOverflowIndicator()}\n >\n <div class=\"menu-avatar\">\n <slot name=\"ix-menu-avatar\"></slot>\n </div>\n <slot name=\"home\"></slot>\n {this.breakpoint !== 'sm' || !this.isHiddenFromViewport() ? (\n <slot></slot>\n ) : null}\n </div>\n <div\n class={{\n 'tabs--shadow': true,\n 'tabs--shadow-bottom': true,\n 'tabs--shadow--show': this.itemsScrollShadowBottom,\n }}\n ></div>\n </div>\n </div>\n <div class=\"bottom-tab-divider\"></div>\n {this.settings ? (\n <ix-menu-item\n disabled={this.isHiddenFromViewport()}\n id=\"settings\"\n class={{\n 'internal-tab': true,\n 'bottom-tab': true,\n active: this.showSettings,\n }}\n icon={iconCogwheel}\n onClick={async () => this.toggleSettings(!this.showSettings)}\n label={this.i18nSettings}\n ></ix-menu-item>\n ) : null}\n {this.enableToggleTheme ? (\n <ix-menu-item\n disabled={this.isHiddenFromViewport()}\n id=\"toggleTheme\"\n onClick={() => themeSwitcher.toggleMode()}\n class=\"internal-tab bottom-tab\"\n icon={iconLightDark}\n label={this.i18nToggleTheme}\n ></ix-menu-item>\n ) : null}\n <div onClick={(e) => this.onMenuItemsClick(e)}>\n <slot name=\"bottom\"></slot>\n </div>\n <div id=\"popover-area\"></div>\n {this.enableMapExpand || this.applicationLayoutContext?.sidebar ? (\n <ix-menu-item\n disabled={this.isHiddenFromViewport()}\n id=\"menu-collapse\"\n onClick={() => this.sidebarToggle()}\n class=\"internal-tab bottom-tab\"\n icon={`${this.getCollapseIcon()}`}\n label={this.getCollapseText()}\n ></ix-menu-item>\n ) : null}\n {this.about ? (\n <ix-menu-item\n disabled={this.isHiddenFromViewport()}\n id=\"aboutAndLegal\"\n class={{\n 'internal-tab': true,\n 'bottom-tab': true,\n active: this.showAbout,\n }}\n icon={iconInfo}\n onClick={async () => this.toggleAbout(!this.showAbout)}\n label={this.i18nLegal}\n ></ix-menu-item>\n ) : null}\n </nav>\n <div\n class={{\n 'menu-overlay': true,\n visible: this.isOverlayVisible(),\n expanded: this.expand,\n }}\n onTransitionEnd={() => {\n this.isTransitionDisabled = true;\n this.checkTransition();\n }}\n >\n <div class={'menu-overlay-container'}>\n {this.showSettings ? <slot name=\"ix-menu-settings\"></slot> : null}\n </div>\n <div class={'menu-overlay-container'}>\n {this.showAbout ? <slot name=\"ix-menu-about\"></slot> : null}\n </div>\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { p as proxyCustomElement, H, e as createEvent, h, d as Host } from './p-D-__gyet.js';
|
|
2
2
|
import { L as iconMinus, M as iconPlus } from './p-BvsadYCu.js';
|
|
3
|
-
import { H as HookValidationLifecycle } from './p-
|
|
3
|
+
import { H as HookValidationLifecycle } from './p-Dq_H2flK.js';
|
|
4
4
|
import { m as makeRef } from './p-bcj7UEIC.js';
|
|
5
|
-
import { o as onInputBlur, m as mapValidationResult, a as addDisposableChangesAndVisibilityObservers, b as adjustPaddingForStartAndEnd, e as checkInternalValidity, c as SlotStart, I as InputElement, d as checkAllowedKeys, S as SlotEnd } from './p-
|
|
6
|
-
import { d as defineCustomElement$7 } from './p-
|
|
7
|
-
import { d as defineCustomElement$6 } from './p-
|
|
5
|
+
import { o as onInputBlur, m as mapValidationResult, a as addDisposableChangesAndVisibilityObservers, b as adjustPaddingForStartAndEnd, e as checkInternalValidity, c as SlotStart, I as InputElement, d as checkAllowedKeys, S as SlotEnd } from './p-DUU5I7wZ.js';
|
|
6
|
+
import { d as defineCustomElement$7 } from './p-B1p0kpQJ.js';
|
|
7
|
+
import { d as defineCustomElement$6 } from './p-BIg1TSrD.js';
|
|
8
8
|
import { d as defineCustomElement$5 } from './p-BEDohapR.js';
|
|
9
9
|
import { d as defineCustomElement$4 } from './p-1pd_0dhF.js';
|
|
10
10
|
import { d as defineCustomElement$3 } from './p-DXFN8JXp.js';
|
|
@@ -3,13 +3,13 @@ import { B as BaseButton } from './p-CV_EVAOW.js';
|
|
|
3
3
|
import { a as a11yBoolean } from './p-Bb7pDeaQ.js';
|
|
4
4
|
import { d as iconChevronRightSmall, m as iconChevronLeftSmall } from './p-BvsadYCu.js';
|
|
5
5
|
import { d as defineCustomElement$c } from './p-BI7B-PUA.js';
|
|
6
|
-
import { d as defineCustomElement$b } from './p-
|
|
7
|
-
import { d as defineCustomElement$a } from './p-
|
|
8
|
-
import { d as defineCustomElement$9 } from './p-
|
|
6
|
+
import { d as defineCustomElement$b } from './p-DYCKIBUp.js';
|
|
7
|
+
import { d as defineCustomElement$a } from './p-B1p0kpQJ.js';
|
|
8
|
+
import { d as defineCustomElement$9 } from './p-BIg1TSrD.js';
|
|
9
9
|
import { d as defineCustomElement$8 } from './p-Dp03DeD0.js';
|
|
10
10
|
import { d as defineCustomElement$7 } from './p-BEDohapR.js';
|
|
11
|
-
import { d as defineCustomElement$6 } from './p-
|
|
12
|
-
import { d as defineCustomElement$5 } from './p-
|
|
11
|
+
import { d as defineCustomElement$6 } from './p-Ce5NQ5Zo.js';
|
|
12
|
+
import { d as defineCustomElement$5 } from './p-BCLcSQh4.js';
|
|
13
13
|
import { d as defineCustomElement$4 } from './p-1pd_0dhF.js';
|
|
14
14
|
import { d as defineCustomElement$3 } from './p-DXFN8JXp.js';
|
|
15
15
|
import { d as defineCustomElement$2 } from './p-BBwXlKhE.js';
|
|
@@ -69,6 +69,13 @@ const Pagination = /*@__PURE__*/ proxyCustomElement(class Pagination extends H {
|
|
|
69
69
|
* i18n label for 'Items'
|
|
70
70
|
*/
|
|
71
71
|
this.i18nItems = 'Items';
|
|
72
|
+
/**
|
|
73
|
+
* ARIA label for the page selection input
|
|
74
|
+
* Will be set as aria-label on the nested HTML input element
|
|
75
|
+
*
|
|
76
|
+
* @since 4.1.0
|
|
77
|
+
*/
|
|
78
|
+
this.ariaLabelPageSelection = 'Page selection input';
|
|
72
79
|
}
|
|
73
80
|
selectPage(index) {
|
|
74
81
|
const oldIndex = this.selectedPage;
|
|
@@ -158,17 +165,32 @@ const Pagination = /*@__PURE__*/ proxyCustomElement(class Pagination extends H {
|
|
|
158
165
|
}
|
|
159
166
|
return h("span", { class: "page-buttons" }, pageButtons);
|
|
160
167
|
}
|
|
168
|
+
handlePageInput(inputValue) {
|
|
169
|
+
const value = Number.parseInt(inputValue, 10);
|
|
170
|
+
if (!Number.isNaN(value)) {
|
|
171
|
+
const clampedValue = Math.max(1, Math.min(value, this.count));
|
|
172
|
+
this.selectPage(clampedValue - 1);
|
|
173
|
+
}
|
|
174
|
+
}
|
|
161
175
|
render() {
|
|
162
|
-
return (h(Host, { key: '
|
|
163
|
-
const
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
176
|
+
return (h(Host, { key: 'e9b053fdf801e514af1abef2e163a903f7d5f976' }, h("ix-icon-button", { key: 'a880a444f946f7d228a746b8d45d7328bdc26295', disabled: !this.count || this.selectedPage === 0, variant: "subtle-tertiary", icon: iconChevronLeftSmall, onClick: () => this.decrease(), "aria-label": this.ariaLabelChevronLeftIconButton }), this.advanced ? (h("div", { class: "advanced-pagination" }, h("ix-typography", { format: "body" }, this.i18nPage), h("input", { "aria-label": this.ariaLabelPageSelection, class: "ix-form-control page-selection", type: "number", min: "1", max: this.count, value: this.selectedPage + 1, onChange: (event) => {
|
|
177
|
+
const inputElement = event.target;
|
|
178
|
+
this.handlePageInput(inputElement.value);
|
|
179
|
+
}, onKeyDown: (event) => {
|
|
180
|
+
if (['e', 'E', '+', '-', '.'].includes(event.key))
|
|
181
|
+
event.preventDefault();
|
|
182
|
+
if (event.key === 'Enter') {
|
|
183
|
+
const inputElement = event.target;
|
|
184
|
+
this.handlePageInput(inputElement.value);
|
|
185
|
+
inputElement.blur();
|
|
167
186
|
}
|
|
168
|
-
}
|
|
187
|
+
}, onBlur: (e) => {
|
|
188
|
+
const inputElement = e.target;
|
|
189
|
+
inputElement.value = (this.selectedPage + 1).toString();
|
|
190
|
+
} }), h("span", { class: "total-count" }, h("ix-typography", { format: "body" }, this.i18nOf, " ", this.count)))) : (h("span", { class: "basic-pagination" }, this.renderPageButtons(), " ")), h("ix-icon-button", { key: 'dd75eb48382320194812f9eb4c644b7d37f0c84a', disabled: !this.count || this.selectedPage === this.count - 1, variant: "subtle-tertiary", icon: iconChevronRightSmall, onClick: () => this.increase(), "aria-label": this.ariaLabelChevronRightIconButton }), this.advanced && !this.hideItemCount && (h("span", { key: '018574c07720618970be857f7536fdf9b71e1542', class: "item-count" }, h("ix-typography", { key: '343a05e008f258ab9a56045cac1a8785c9855169', format: "body" }, this.i18nItems), h("ix-select", { key: '2d8a5efe84ea53ea85b9f4c75f1c84800c858846', hideListHeader: true, i18nPlaceholder: "", i18nSelectListHeader: "", value: `${this.itemCount}`, onValueChange: (e) => {
|
|
169
191
|
const count = Number.parseInt(Array.isArray(e.detail) ? e.detail[0] : e.detail);
|
|
170
192
|
this.itemCountChanged.emit(count);
|
|
171
|
-
} }, h("ix-select-item", { key: '
|
|
193
|
+
} }, h("ix-select-item", { key: '9106274e93a00e5cb62f7cd19082f43e2920076b', label: "10", value: "10" }), h("ix-select-item", { key: '452779779ea63e45d408d60b5faed2d30ea6bcc9', label: "15", value: "15" }), h("ix-select-item", { key: '0658cd6473b508ec6c01c83d99bce4bfa8a54940', label: "20", value: "20" }), h("ix-select-item", { key: '316b1e9a882ae3a516f8a3ff3997ab0fe95c20de', label: "40", value: "40" }), h("ix-select-item", { key: 'a5dbea62134178911100a1fb369d258b0ee74b8d', label: "100", value: "100" }))))));
|
|
172
194
|
}
|
|
173
195
|
get hostElement() { return this; }
|
|
174
196
|
static get style() { return paginationCss; }
|
|
@@ -182,7 +204,8 @@ const Pagination = /*@__PURE__*/ proxyCustomElement(class Pagination extends H {
|
|
|
182
204
|
"i18nOf": [1, "i18n-of"],
|
|
183
205
|
"i18nItems": [1, "i18n-items"],
|
|
184
206
|
"ariaLabelChevronLeftIconButton": [1, "aria-label-chevron-left-icon-button"],
|
|
185
|
-
"ariaLabelChevronRightIconButton": [1, "aria-label-chevron-right-icon-button"]
|
|
207
|
+
"ariaLabelChevronRightIconButton": [1, "aria-label-chevron-right-icon-button"],
|
|
208
|
+
"ariaLabelPageSelection": [1, "aria-label-page-selection"]
|
|
186
209
|
}]);
|
|
187
210
|
function defineCustomElement$1() {
|
|
188
211
|
if (typeof customElements === "undefined") {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"ix-pagination.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/pagination/pagination.scss?tag=ix-pagination&encapsulation=shadow","src/components/pagination/pagination.tsx"],"sourcesContent":["/*\n * SPDX-FileCopyrightText: 2022 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n@use './common-variables' as vars;\n@use 'legacy/components/forms';\n@use '../icon-button/icon-button';\n@use 'mixins/shadow-dom/component';\n\n:host {\n @include component.ix-component;\n\n &,\n .advanced-pagination,\n .item-count {\n display: inline-flex;\n align-items: center;\n }\n\n .basic-pagination {\n padding: 0 0.125rem;\n }\n\n .advanced-pagination {\n padding: 0 vars.$medium-space;\n }\n\n .page-selection {\n width: 4.125rem;\n text-align: center;\n margin: 0 vars.$small-space;\n -moz-appearance: textfield;\n -webkit-appearance: textfield;\n }\n\n .page-buttons {\n white-space: nowrap;\n }\n\n .total-count {\n white-space: nowrap;\n }\n\n .item-count {\n flex-grow: 1;\n justify-content: flex-end;\n margin-inline-start: vars.$large-space;\n\n ix-select {\n width: 4.5rem;\n margin-inline-start: vars.$large-space;\n }\n }\n\n button {\n width: auto;\n min-width: 2rem;\n height: 2rem;\n padding: 0 0.5rem;\n }\n\n button + button {\n margin-inline-start: 0.125rem;\n }\n}\n","/*\n * SPDX-FileCopyrightText: 2022 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport {\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Prop,\n} from '@stencil/core';\nimport { BaseButton, BaseButtonProps } from '../button/base-button';\nimport { a11yBoolean } from '../utils/a11y';\nimport {\n iconChevronLeftSmall,\n iconChevronRightSmall,\n} from '@siemens/ix-icons/icons';\n\n@Component({\n tag: 'ix-pagination',\n styleUrl: 'pagination.scss',\n shadow: true,\n})\nexport class Pagination {\n private readonly baseButtonConfig: BaseButtonProps = {\n variant: 'subtle-tertiary',\n iconOnly: true,\n iconOval: false,\n disabled: false,\n icon: '',\n loading: false,\n selected: false,\n type: 'button',\n };\n\n private readonly maxCountPages = 7;\n\n @Element() hostElement!: HTMLIxPaginationElement;\n\n /**\n * Advanced mode\n */\n @Prop() advanced = false;\n\n /**\n * Number of items shown at once.\n * Can only be changed in advaced mode.\n */\n @Prop() itemCount = 15;\n\n /**\n * Hide item count in advanced mode\n */\n @Prop() hideItemCount = false;\n\n /**\n * Total number of pages\n */\n @Prop() count: number = 0;\n\n /**\n * Zero based index of currently selected page\n */\n @Prop({ mutable: true }) selectedPage = 0;\n\n /**\n * i18n label for 'Page'\n */\n @Prop({ attribute: 'i18n-page' }) i18nPage = 'Page';\n\n /**\n * i18n label for 'of'\n */\n @Prop({ attribute: 'i18n-of' }) i18nOf = 'of';\n\n /**\n * i18n label for 'Items'\n */\n @Prop({ attribute: 'i18n-items' }) i18nItems = 'Items';\n\n /**\n * ARIA label for the chevron left icon button\n * Will be set as aria-label on the nested HTML button element\n *\n * @since 3.2.0\n */\n @Prop() ariaLabelChevronLeftIconButton?: string;\n\n /**\n * ARIA label for the chevron right icon button\n * Will be set as aria-label on the nested HTML button element\n *\n * @since 3.2.0\n */\n @Prop() ariaLabelChevronRightIconButton?: string;\n\n /**\n * Page selection event\n */\n @Event() pageSelected!: EventEmitter<number>;\n\n /**\n * Item count change event\n */\n @Event() itemCountChanged!: EventEmitter<number>;\n\n private selectPage(index: number) {\n const oldIndex = this.selectedPage;\n\n if (index < 0) {\n this.selectedPage = 0;\n } else if (index > this.count - 1) {\n this.selectedPage = this.count - 1;\n } else {\n this.selectedPage = index;\n }\n\n const { defaultPrevented } = this.pageSelected.emit(this.selectedPage);\n\n if (defaultPrevented) {\n this.selectedPage = oldIndex;\n }\n }\n\n private increase() {\n if (this.selectedPage === this.count - 1) {\n return;\n }\n\n this.selectPage(this.selectedPage + 1);\n }\n\n private decrease() {\n if (this.selectedPage === 0) {\n return;\n }\n\n this.selectPage(this.selectedPage - 1);\n }\n\n private getPageButton(index: number) {\n const baseButtonProps: BaseButtonProps = {\n ...this.baseButtonConfig,\n onClick: () => this.selectPage(index),\n selected: this.selectedPage === index,\n ariaAttributes: {\n 'aria-pressed': a11yBoolean(this.selectedPage === index),\n },\n };\n\n return <BaseButton {...baseButtonProps}>{index + 1}</BaseButton>;\n }\n\n private renderPageButtons() {\n const pagesBeforeOverflow = Math.floor(this.maxCountPages / 2);\n const hasOverflow = this.count > this.maxCountPages;\n const hasOverflowStart =\n hasOverflow && this.selectedPage > pagesBeforeOverflow;\n const hasOverflowEnd =\n hasOverflow && this.selectedPage < this.count - pagesBeforeOverflow - 1;\n const pageButtons = [];\n\n let start = 0;\n let end = Math.min(this.count, this.maxCountPages);\n let pageCount = Math.floor((this.maxCountPages - 4) / 2);\n\n if (hasOverflowStart) {\n const baseButtonProps = {\n ...this.baseButtonConfig,\n onClick: () => {\n if (hasOverflowEnd) {\n this.selectPage(this.selectedPage - Math.max(0, 2 * pageCount + 1));\n } else {\n this.selectPage(this.count - this.maxCountPages);\n }\n },\n };\n pageButtons.push(this.getPageButton(0));\n pageButtons.push(<BaseButton {...baseButtonProps}>...</BaseButton>);\n\n if (hasOverflowEnd) {\n start = this.count - this.maxCountPages + 2;\n } else {\n start = this.count - this.maxCountPages + 2;\n end = this.count;\n }\n }\n\n if (hasOverflowEnd) {\n if (hasOverflowStart) {\n start = this.selectedPage - pageCount;\n end = this.selectedPage + pageCount + 1;\n } else {\n end = this.maxCountPages - 2;\n }\n }\n\n for (let i = start; i < end; i++) {\n pageButtons.push(this.getPageButton(i));\n }\n\n if (hasOverflowEnd) {\n const baseButtonProps = {\n ...this.baseButtonConfig,\n onClick: () => {\n if (hasOverflowStart) {\n this.selectPage(this.selectedPage + Math.max(0, 2 * pageCount + 1));\n } else {\n this.selectPage(this.maxCountPages - 1);\n }\n },\n };\n pageButtons.push(<BaseButton {...baseButtonProps}>...</BaseButton>);\n pageButtons.push(this.getPageButton(this.count - 1));\n }\n\n return <span class=\"page-buttons\">{pageButtons}</span>;\n }\n\n render() {\n return (\n <Host>\n <ix-icon-button\n disabled={!this.count || this.selectedPage === 0}\n variant=\"subtle-tertiary\"\n icon={iconChevronLeftSmall}\n onClick={() => this.decrease()}\n aria-label={this.ariaLabelChevronLeftIconButton}\n ></ix-icon-button>\n\n {this.advanced ? (\n <div class=\"advanced-pagination\">\n <ix-typography format=\"body\">{this.i18nPage}</ix-typography>\n <input\n class=\"ix-form-control page-selection\"\n type=\"number\"\n min=\"1\"\n max={this.count}\n value={this.selectedPage + 1}\n onChange={(event: Event) => {\n const eventTarget = event.target as HTMLInputElement;\n if (eventTarget) {\n const index = Number.parseInt(eventTarget.value);\n this.selectPage(index - 1);\n }\n }}\n />\n <span class=\"total-count\">\n <ix-typography format=\"body\">\n {this.i18nOf} {this.count}\n </ix-typography>\n </span>\n </div>\n ) : (\n <span class=\"basic-pagination\">{this.renderPageButtons()} </span>\n )}\n\n <ix-icon-button\n disabled={!this.count || this.selectedPage === this.count - 1}\n variant=\"subtle-tertiary\"\n icon={iconChevronRightSmall}\n onClick={() => this.increase()}\n aria-label={this.ariaLabelChevronRightIconButton}\n ></ix-icon-button>\n\n {this.advanced && !this.hideItemCount && (\n <span class=\"item-count\">\n <ix-typography format=\"body\">{this.i18nItems}</ix-typography>\n <ix-select\n hideListHeader\n i18nPlaceholder=\"\"\n i18nSelectListHeader=\"\"\n value={`${this.itemCount}`}\n onValueChange={(e) => {\n const count = Number.parseInt(\n Array.isArray(e.detail) ? e.detail[0] : e.detail\n );\n\n this.itemCountChanged.emit(count);\n }}\n >\n <ix-select-item label=\"10\" value=\"10\"></ix-select-item>\n <ix-select-item label=\"15\" value=\"15\"></ix-select-item>\n <ix-select-item label=\"20\" value=\"20\"></ix-select-item>\n <ix-select-item label=\"40\" value=\"40\"></ix-select-item>\n <ix-select-item label=\"100\" value=\"100\"></ix-select-item>\n </ix-select>\n </span>\n )}\n </Host>\n );\n }\n}\n"],"version":3}
|
|
1
|
+
{"file":"ix-pagination.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/pagination/pagination.scss?tag=ix-pagination&encapsulation=shadow","src/components/pagination/pagination.tsx"],"sourcesContent":["/*\n * SPDX-FileCopyrightText: 2022 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n@use './common-variables' as vars;\n@use 'legacy/components/forms';\n@use '../icon-button/icon-button';\n@use 'mixins/shadow-dom/component';\n\n:host {\n @include component.ix-component;\n\n &,\n .advanced-pagination,\n .item-count {\n display: inline-flex;\n align-items: center;\n }\n\n .basic-pagination {\n padding: 0 0.125rem;\n }\n\n .advanced-pagination {\n padding: 0 vars.$medium-space;\n }\n\n .page-selection {\n width: 4.125rem;\n text-align: center;\n margin: 0 vars.$small-space;\n -moz-appearance: textfield;\n -webkit-appearance: textfield;\n }\n\n .page-buttons {\n white-space: nowrap;\n }\n\n .total-count {\n white-space: nowrap;\n }\n\n .item-count {\n flex-grow: 1;\n justify-content: flex-end;\n margin-inline-start: vars.$large-space;\n\n ix-select {\n width: 4.5rem;\n margin-inline-start: vars.$large-space;\n }\n }\n\n button {\n width: auto;\n min-width: 2rem;\n height: 2rem;\n padding: 0 0.5rem;\n }\n\n button + button {\n margin-inline-start: 0.125rem;\n }\n}\n","/*\n * SPDX-FileCopyrightText: 2022 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport {\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Prop,\n} from '@stencil/core';\nimport { BaseButton, BaseButtonProps } from '../button/base-button';\nimport { a11yBoolean } from '../utils/a11y';\nimport {\n iconChevronLeftSmall,\n iconChevronRightSmall,\n} from '@siemens/ix-icons/icons';\n\n@Component({\n tag: 'ix-pagination',\n styleUrl: 'pagination.scss',\n shadow: true,\n})\nexport class Pagination {\n private readonly baseButtonConfig: BaseButtonProps = {\n variant: 'subtle-tertiary',\n iconOnly: true,\n iconOval: false,\n disabled: false,\n icon: '',\n loading: false,\n selected: false,\n type: 'button',\n };\n\n private readonly maxCountPages = 7;\n\n @Element() hostElement!: HTMLIxPaginationElement;\n\n /**\n * Advanced mode\n */\n @Prop() advanced = false;\n\n /**\n * Number of items shown at once.\n * Can only be changed in advaced mode.\n */\n @Prop() itemCount = 15;\n\n /**\n * Hide item count in advanced mode\n */\n @Prop() hideItemCount = false;\n\n /**\n * Total number of pages\n */\n @Prop() count: number = 0;\n\n /**\n * Zero based index of currently selected page\n */\n @Prop({ mutable: true }) selectedPage = 0;\n\n /**\n * i18n label for 'Page'\n */\n @Prop({ attribute: 'i18n-page' }) i18nPage = 'Page';\n\n /**\n * i18n label for 'of'\n */\n @Prop({ attribute: 'i18n-of' }) i18nOf = 'of';\n\n /**\n * i18n label for 'Items'\n */\n @Prop({ attribute: 'i18n-items' }) i18nItems = 'Items';\n\n /**\n * ARIA label for the chevron left icon button\n * Will be set as aria-label on the nested HTML button element\n *\n * @since 3.2.0\n */\n @Prop() ariaLabelChevronLeftIconButton?: string;\n\n /**\n * ARIA label for the chevron right icon button\n * Will be set as aria-label on the nested HTML button element\n *\n * @since 3.2.0\n */\n @Prop() ariaLabelChevronRightIconButton?: string;\n\n /**\n * ARIA label for the page selection input\n * Will be set as aria-label on the nested HTML input element\n *\n * @since 4.1.0\n */\n @Prop() ariaLabelPageSelection = 'Page selection input';\n /**\n * Page selection event\n */\n @Event() pageSelected!: EventEmitter<number>;\n\n /**\n * Item count change event\n */\n @Event() itemCountChanged!: EventEmitter<number>;\n\n private selectPage(index: number) {\n const oldIndex = this.selectedPage;\n\n if (index < 0) {\n this.selectedPage = 0;\n } else if (index > this.count - 1) {\n this.selectedPage = this.count - 1;\n } else {\n this.selectedPage = index;\n }\n\n const { defaultPrevented } = this.pageSelected.emit(this.selectedPage);\n\n if (defaultPrevented) {\n this.selectedPage = oldIndex;\n }\n }\n\n private increase() {\n if (this.selectedPage === this.count - 1) {\n return;\n }\n\n this.selectPage(this.selectedPage + 1);\n }\n\n private decrease() {\n if (this.selectedPage === 0) {\n return;\n }\n\n this.selectPage(this.selectedPage - 1);\n }\n\n private getPageButton(index: number) {\n const baseButtonProps: BaseButtonProps = {\n ...this.baseButtonConfig,\n onClick: () => this.selectPage(index),\n selected: this.selectedPage === index,\n ariaAttributes: {\n 'aria-pressed': a11yBoolean(this.selectedPage === index),\n },\n };\n\n return <BaseButton {...baseButtonProps}>{index + 1}</BaseButton>;\n }\n\n private renderPageButtons() {\n const pagesBeforeOverflow = Math.floor(this.maxCountPages / 2);\n const hasOverflow = this.count > this.maxCountPages;\n const hasOverflowStart =\n hasOverflow && this.selectedPage > pagesBeforeOverflow;\n const hasOverflowEnd =\n hasOverflow && this.selectedPage < this.count - pagesBeforeOverflow - 1;\n const pageButtons = [];\n\n let start = 0;\n let end = Math.min(this.count, this.maxCountPages);\n let pageCount = Math.floor((this.maxCountPages - 4) / 2);\n\n if (hasOverflowStart) {\n const baseButtonProps = {\n ...this.baseButtonConfig,\n onClick: () => {\n if (hasOverflowEnd) {\n this.selectPage(this.selectedPage - Math.max(0, 2 * pageCount + 1));\n } else {\n this.selectPage(this.count - this.maxCountPages);\n }\n },\n };\n pageButtons.push(this.getPageButton(0));\n pageButtons.push(<BaseButton {...baseButtonProps}>...</BaseButton>);\n\n if (hasOverflowEnd) {\n start = this.count - this.maxCountPages + 2;\n } else {\n start = this.count - this.maxCountPages + 2;\n end = this.count;\n }\n }\n\n if (hasOverflowEnd) {\n if (hasOverflowStart) {\n start = this.selectedPage - pageCount;\n end = this.selectedPage + pageCount + 1;\n } else {\n end = this.maxCountPages - 2;\n }\n }\n\n for (let i = start; i < end; i++) {\n pageButtons.push(this.getPageButton(i));\n }\n\n if (hasOverflowEnd) {\n const baseButtonProps = {\n ...this.baseButtonConfig,\n onClick: () => {\n if (hasOverflowStart) {\n this.selectPage(this.selectedPage + Math.max(0, 2 * pageCount + 1));\n } else {\n this.selectPage(this.maxCountPages - 1);\n }\n },\n };\n pageButtons.push(<BaseButton {...baseButtonProps}>...</BaseButton>);\n pageButtons.push(this.getPageButton(this.count - 1));\n }\n\n return <span class=\"page-buttons\">{pageButtons}</span>;\n }\n\n private handlePageInput(inputValue: string) {\n const value = Number.parseInt(inputValue, 10);\n if (!Number.isNaN(value)) {\n const clampedValue = Math.max(1, Math.min(value, this.count));\n this.selectPage(clampedValue - 1);\n }\n }\n\n render() {\n return (\n <Host>\n <ix-icon-button\n disabled={!this.count || this.selectedPage === 0}\n variant=\"subtle-tertiary\"\n icon={iconChevronLeftSmall}\n onClick={() => this.decrease()}\n aria-label={this.ariaLabelChevronLeftIconButton}\n ></ix-icon-button>\n\n {this.advanced ? (\n <div class=\"advanced-pagination\">\n <ix-typography format=\"body\">{this.i18nPage}</ix-typography>\n <input\n aria-label={this.ariaLabelPageSelection}\n class=\"ix-form-control page-selection\"\n type=\"number\"\n min=\"1\"\n max={this.count}\n value={this.selectedPage + 1}\n onChange={(event: Event) => {\n const inputElement = event.target as HTMLInputElement;\n this.handlePageInput(inputElement.value);\n }}\n onKeyDown={(event: KeyboardEvent) => {\n if (['e', 'E', '+', '-', '.'].includes(event.key))\n event.preventDefault();\n if (event.key === 'Enter') {\n const inputElement = event.target as HTMLInputElement;\n this.handlePageInput(inputElement.value);\n inputElement.blur();\n }\n }}\n onBlur={(e: Event) => {\n const inputElement = e.target as HTMLInputElement;\n inputElement.value = (this.selectedPage + 1).toString();\n }}\n />\n <span class=\"total-count\">\n <ix-typography format=\"body\">\n {this.i18nOf} {this.count}\n </ix-typography>\n </span>\n </div>\n ) : (\n <span class=\"basic-pagination\">{this.renderPageButtons()} </span>\n )}\n\n <ix-icon-button\n disabled={!this.count || this.selectedPage === this.count - 1}\n variant=\"subtle-tertiary\"\n icon={iconChevronRightSmall}\n onClick={() => this.increase()}\n aria-label={this.ariaLabelChevronRightIconButton}\n ></ix-icon-button>\n\n {this.advanced && !this.hideItemCount && (\n <span class=\"item-count\">\n <ix-typography format=\"body\">{this.i18nItems}</ix-typography>\n <ix-select\n hideListHeader\n i18nPlaceholder=\"\"\n i18nSelectListHeader=\"\"\n value={`${this.itemCount}`}\n onValueChange={(e) => {\n const count = Number.parseInt(\n Array.isArray(e.detail) ? e.detail[0] : e.detail\n );\n\n this.itemCountChanged.emit(count);\n }}\n >\n <ix-select-item label=\"10\" value=\"10\"></ix-select-item>\n <ix-select-item label=\"15\" value=\"15\"></ix-select-item>\n <ix-select-item label=\"20\" value=\"20\"></ix-select-item>\n <ix-select-item label=\"40\" value=\"40\"></ix-select-item>\n <ix-select-item label=\"100\" value=\"100\"></ix-select-item>\n </ix-select>\n </span>\n )}\n </Host>\n );\n }\n}\n"],"version":3}
|