@siemens/ix 2.6.0 → 2.6.1
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/components/button.js +7 -2
- package/components/button.js.map +1 -1
- package/components/dropdown-item.js +1 -1
- package/components/dropdown-item.js.map +1 -1
- package/components/field-label.js +1 -1
- package/components/field-label.js.map +1 -1
- package/components/field-wrapper.js +2 -2
- package/components/field-wrapper.js.map +1 -1
- package/components/index3.js +2 -1
- package/components/index3.js.map +1 -1
- package/components/input.util.js +4 -8
- package/components/input.util.js.map +1 -1
- package/components/ix-date-input.js +6 -6
- package/components/ix-date-input.js.map +1 -1
- package/components/ix-input.js +3 -3
- package/components/ix-input.js.map +1 -1
- package/components/ix-number-input.js +5 -5
- package/components/ix-number-input.js.map +1 -1
- package/components/ix-textarea.js +2 -2
- package/components/ix-textarea.js.map +1 -1
- package/components/ix-toggle-button.js +2 -2
- package/components/ix-toggle.js +25 -5
- package/components/ix-toggle.js.map +1 -1
- package/components/ix-tree.js +330 -496
- package/components/ix-tree.js.map +1 -1
- package/components/ix-upload.js +3 -3
- package/components/ix-validation-tooltip.js +2 -2
- package/components/ix-workflow-step.js +3 -3
- package/components/ix-workflow-steps.js +1 -1
- package/components/modal.js +6 -0
- package/components/modal.js.map +1 -1
- package/components/select.js +68 -52
- package/components/select.js.map +1 -1
- package/components/tooltip.js +2 -2
- package/components/tree-item.js +6 -5
- package/components/tree-item.js.map +1 -1
- package/dist/cjs/{app-globals-3c9c6a50.js → app-globals-4d8f1524.js} +2 -2
- package/dist/cjs/{app-globals-3c9c6a50.js.map → app-globals-4d8f1524.js.map} +1 -1
- package/dist/cjs/core-js-b22adfab.js +26 -0
- package/dist/cjs/core-js-b22adfab.js.map +1 -0
- package/dist/cjs/{helper-text-util-3192e78f.js → helper-text-util-635a1877.js} +2 -2
- package/dist/cjs/{helper-text-util-3192e78f.js.map → helper-text-util-635a1877.js.map} +1 -1
- package/dist/cjs/{index-74904d8b.js → index-492e6488.js} +2 -2
- package/dist/cjs/{index-74904d8b.js.map → index-492e6488.js.map} +1 -1
- package/dist/cjs/{index-d2117dc0.js → index-b44a6617.js} +3 -1
- package/dist/cjs/index-b44a6617.js.map +1 -0
- package/dist/cjs/index.cjs.js +2 -2
- package/dist/cjs/{index.es2017-0c2b80b6.js → index.es2017-805b5876.js} +3 -3
- package/dist/cjs/{index.es2017-0c2b80b6.js.map → index.es2017-805b5876.js.map} +1 -1
- package/dist/cjs/{input.util-1c2fa43d.js → input.util-54d161e6.js} +5 -9
- package/dist/cjs/input.util-54d161e6.js.map +1 -0
- package/dist/cjs/ix-application-header.cjs.entry.js +2 -2
- package/dist/cjs/ix-application-switch-modal.cjs.entry.js +1 -1
- package/dist/cjs/ix-button.cjs.entry.js +7 -2
- package/dist/cjs/ix-button.cjs.entry.js.map +1 -1
- package/dist/cjs/ix-col_4.cjs.entry.js +1 -1
- package/dist/cjs/ix-date-input.cjs.entry.js +6 -6
- package/dist/cjs/ix-date-input.cjs.entry.js.map +1 -1
- package/dist/cjs/ix-dropdown-item.cjs.entry.js +1 -1
- package/dist/cjs/ix-dropdown-item.cjs.entry.js.map +1 -1
- package/dist/cjs/ix-field-label_3.cjs.entry.js +7 -7
- package/dist/cjs/ix-field-label_3.cjs.entry.js.map +1 -1
- package/dist/cjs/ix-helper-text.cjs.entry.js +2 -2
- package/dist/cjs/{ix-icon.entry-e95ddded.js → ix-icon.entry-e33446e2.js} +2 -2
- package/dist/cjs/{ix-icon.entry-e95ddded.js.map → ix-icon.entry-e33446e2.js.map} +1 -1
- package/dist/cjs/ix-input.cjs.entry.js +5 -5
- package/dist/cjs/ix-input.cjs.entry.js.map +1 -1
- package/dist/cjs/ix-menu.cjs.entry.js +2 -2
- package/dist/cjs/ix-number-input.cjs.entry.js +7 -7
- package/dist/cjs/ix-number-input.cjs.entry.js.map +1 -1
- package/dist/cjs/ix-select.cjs.entry.js +68 -52
- package/dist/cjs/ix-select.cjs.entry.js.map +1 -1
- package/dist/cjs/ix-textarea.cjs.entry.js +3 -3
- package/dist/cjs/ix-textarea.cjs.entry.js.map +1 -1
- package/dist/cjs/ix-time-picker.cjs.entry.js +1 -1
- package/dist/cjs/ix-toggle-button.cjs.entry.js +2 -2
- package/dist/cjs/ix-toggle.cjs.entry.js +17 -3
- package/dist/cjs/ix-toggle.cjs.entry.js.map +1 -1
- package/dist/cjs/ix-tree-item.cjs.entry.js +6 -5
- package/dist/cjs/ix-tree-item.cjs.entry.js.map +1 -1
- package/dist/cjs/ix-tree.cjs.entry.js +330 -489
- package/dist/cjs/ix-tree.cjs.entry.js.map +1 -1
- package/dist/cjs/ix-upload.cjs.entry.js +3 -3
- package/dist/cjs/ix-validation-tooltip.cjs.entry.js +2 -2
- package/dist/cjs/ix-workflow-step.cjs.entry.js +3 -3
- package/dist/cjs/ix-workflow-steps.cjs.entry.js +1 -1
- package/dist/cjs/loader.cjs.js +3 -3
- package/dist/cjs/{modal-a49409aa.js → modal-923c83a6.js} +7 -1
- package/dist/cjs/modal-923c83a6.js.map +1 -0
- package/dist/cjs/{setup-86b7d543.js → setup-cc07fbfc.js} +2 -2
- package/dist/cjs/{setup-86b7d543.js.map → setup-cc07fbfc.js.map} +1 -1
- package/dist/cjs/siemens-ix.cjs.js +3 -3
- package/dist/collection/components/button/button.js +7 -2
- package/dist/collection/components/button/button.js.map +1 -1
- package/dist/collection/components/date-input/date-input.js +8 -6
- package/dist/collection/components/date-input/date-input.js.map +1 -1
- package/dist/collection/components/dropdown-item/dropdown-item.css +0 -3
- package/dist/collection/components/field-label/field-label.js +13 -5
- package/dist/collection/components/field-label/field-label.js.map +1 -1
- package/dist/collection/components/field-wrapper/field-wrapper.js +12 -4
- package/dist/collection/components/field-wrapper/field-wrapper.js.map +1 -1
- package/dist/collection/components/input/input.fc.js +4 -8
- package/dist/collection/components/input/input.fc.js.map +1 -1
- package/dist/collection/components/input/input.js +5 -3
- package/dist/collection/components/input/input.js.map +1 -1
- package/dist/collection/components/input/number-input.js +7 -5
- package/dist/collection/components/input/number-input.js.map +1 -1
- package/dist/collection/components/input/textarea.js +2 -2
- package/dist/collection/components/input/textarea.js.map +1 -1
- package/dist/collection/components/modal/test/modal.ct.js +57 -65
- package/dist/collection/components/modal/test/modal.ct.js.map +1 -1
- package/dist/collection/components/select/select.js +68 -52
- package/dist/collection/components/select/select.js.map +1 -1
- package/dist/collection/components/select/test/select.ct.js +72 -100
- package/dist/collection/components/select/test/select.ct.js.map +1 -1
- package/dist/collection/components/toggle/toggle.css +376 -161
- package/dist/collection/components/toggle/toggle.js +17 -3
- package/dist/collection/components/toggle/toggle.js.map +1 -1
- package/dist/collection/components/toggle-button/toggle-button.js +2 -2
- package/dist/collection/components/tooltip/tooltip.js +2 -2
- package/dist/collection/components/tree/tree.js +6 -3
- package/dist/collection/components/tree/tree.js.map +1 -1
- package/dist/collection/components/tree-item/tree-item.js +6 -5
- package/dist/collection/components/tree-item/tree-item.js.map +1 -1
- package/dist/collection/components/upload/upload.js +3 -3
- package/dist/collection/components/utils/lazy-list/index.js +2 -0
- package/dist/collection/components/utils/lazy-list/index.js.map +1 -0
- package/dist/collection/components/utils/lazy-list/lazy.js +343 -0
- package/dist/collection/components/utils/lazy-list/lazy.js.map +1 -0
- package/dist/collection/components/utils/modal/modal.js +6 -0
- package/dist/collection/components/utils/modal/modal.js.map +1 -1
- package/dist/collection/components/validation-tooltip/validation-tooltip.js +2 -2
- package/dist/collection/components/workflow-step/workflow-step.js +3 -3
- package/dist/collection/components/workflow-steps/workflow-steps.js +1 -1
- package/dist/collection/tests/html-tags/html-tags.e2e.js +17 -0
- package/dist/collection/tests/html-tags/html-tags.e2e.js.map +1 -0
- package/dist/esm/app-globals-40082a83.js +7 -0
- package/dist/esm/{app-globals-ae0ca705.js.map → app-globals-40082a83.js.map} +1 -1
- package/dist/esm/{core-js-78b486a8.js → core-js-4a847feb.js} +2 -2
- package/dist/esm/{core-js-78b486a8.js.map → core-js-4a847feb.js.map} +1 -1
- package/dist/esm/{helper-text-util-10896253.js → helper-text-util-e47b864d.js} +2 -2
- package/dist/esm/{helper-text-util-10896253.js.map → helper-text-util-e47b864d.js.map} +1 -1
- package/dist/esm/{index-ad2af369.js → index-2b76ea55.js} +3 -2
- package/dist/esm/index-2b76ea55.js.map +1 -0
- package/dist/esm/{index-60d17930.js → index-7421df0c.js} +2 -2
- package/dist/esm/{index-60d17930.js.map → index-7421df0c.js.map} +1 -1
- package/dist/esm/{index.es2017-93ac816c.js → index.es2017-4e6fdf77.js} +3 -3
- package/dist/esm/{index.es2017-93ac816c.js.map → index.es2017-4e6fdf77.js.map} +1 -1
- package/dist/esm/index.js +3 -3
- package/dist/esm/{input.util-715860e3.js → input.util-c855b2ed.js} +5 -9
- package/dist/esm/input.util-c855b2ed.js.map +1 -0
- package/dist/esm/ix-application-header.entry.js +2 -2
- package/dist/esm/ix-application-switch-modal.entry.js +1 -1
- package/dist/esm/ix-button.entry.js +7 -2
- package/dist/esm/ix-button.entry.js.map +1 -1
- package/dist/esm/ix-col_4.entry.js +1 -1
- package/dist/esm/ix-date-input.entry.js +6 -6
- package/dist/esm/ix-date-input.entry.js.map +1 -1
- package/dist/esm/ix-dropdown-item.entry.js +1 -1
- package/dist/esm/ix-dropdown-item.entry.js.map +1 -1
- package/dist/esm/ix-field-label_3.entry.js +7 -7
- package/dist/esm/ix-field-label_3.entry.js.map +1 -1
- package/dist/esm/ix-helper-text.entry.js +2 -2
- package/dist/esm/{ix-icon.entry-621b700a.js → ix-icon.entry-f5f7c268.js} +2 -2
- package/dist/esm/{ix-icon.entry-621b700a.js.map → ix-icon.entry-f5f7c268.js.map} +1 -1
- package/dist/esm/ix-input.entry.js +5 -5
- package/dist/esm/ix-input.entry.js.map +1 -1
- package/dist/esm/ix-menu.entry.js +2 -2
- package/dist/esm/ix-number-input.entry.js +7 -7
- package/dist/esm/ix-number-input.entry.js.map +1 -1
- package/dist/esm/ix-select.entry.js +68 -52
- package/dist/esm/ix-select.entry.js.map +1 -1
- package/dist/esm/ix-textarea.entry.js +3 -3
- package/dist/esm/ix-textarea.entry.js.map +1 -1
- package/dist/esm/ix-time-picker.entry.js +1 -1
- package/dist/esm/ix-toggle-button.entry.js +2 -2
- package/dist/esm/ix-toggle.entry.js +18 -4
- package/dist/esm/ix-toggle.entry.js.map +1 -1
- package/dist/esm/ix-tree-item.entry.js +6 -5
- package/dist/esm/ix-tree-item.entry.js.map +1 -1
- package/dist/esm/ix-tree.entry.js +330 -489
- package/dist/esm/ix-tree.entry.js.map +1 -1
- package/dist/esm/ix-upload.entry.js +3 -3
- package/dist/esm/ix-validation-tooltip.entry.js +2 -2
- package/dist/esm/ix-workflow-step.entry.js +3 -3
- package/dist/esm/ix-workflow-steps.entry.js +1 -1
- package/dist/esm/loader.js +3 -3
- package/dist/esm/{modal-101eef04.js → modal-4b3f8800.js} +7 -1
- package/dist/{cjs/modal-a49409aa.js.map → esm/modal-4b3f8800.js.map} +1 -1
- package/dist/esm/{setup-d88021f8.js → setup-9c5fe321.js} +2 -2
- package/dist/esm/{setup-d88021f8.js.map → setup-9c5fe321.js.map} +1 -1
- package/dist/esm/siemens-ix.js +3 -3
- package/dist/siemens-ix/index.esm.js +1 -1
- package/dist/siemens-ix/{p-0dbc970e.entry.js → p-0b2f0536.entry.js} +2 -2
- package/dist/siemens-ix/{p-2b226409.entry.js → p-0b5c9f33.entry.js} +2 -2
- package/dist/siemens-ix/p-0b5c9f33.entry.js.map +1 -0
- package/dist/siemens-ix/{p-044c2a7b.entry.js → p-18542846.entry.js} +2 -2
- package/dist/siemens-ix/p-20938f73.entry.js +2 -0
- package/dist/siemens-ix/p-20938f73.entry.js.map +1 -0
- package/dist/siemens-ix/p-22cba43a.entry.js +2 -0
- package/dist/siemens-ix/p-22cba43a.entry.js.map +1 -0
- package/dist/siemens-ix/{p-9fe2759f.entry.js → p-243e8b32.entry.js} +2 -2
- package/dist/siemens-ix/p-243e8b32.entry.js.map +1 -0
- package/dist/siemens-ix/p-38d9d569.js +2 -0
- package/dist/siemens-ix/p-38d9d569.js.map +1 -0
- package/dist/siemens-ix/{p-d7aa00d6.js → p-3aaecbd9.js} +2 -2
- package/dist/siemens-ix/{p-175599e4.entry.js → p-42320fb3.entry.js} +2 -2
- package/dist/siemens-ix/p-44fa005c.js +4 -0
- package/dist/siemens-ix/{p-a2200306.js.map → p-44fa005c.js.map} +1 -1
- package/dist/siemens-ix/p-451551d1.js +2 -0
- package/dist/siemens-ix/p-451551d1.js.map +1 -0
- package/dist/siemens-ix/p-53fd545a.entry.js +2 -0
- package/dist/siemens-ix/p-53fd545a.entry.js.map +1 -0
- package/dist/siemens-ix/p-5fbdff13.entry.js +2 -0
- package/dist/siemens-ix/p-5fbdff13.entry.js.map +1 -0
- package/dist/siemens-ix/{p-1f6df0c6.js → p-738c2d1f.js} +2 -2
- package/dist/siemens-ix/{p-424e8092.entry.js → p-897c8e5b.entry.js} +2 -2
- package/dist/siemens-ix/p-897c8e5b.entry.js.map +1 -0
- package/dist/siemens-ix/{p-f35386ec.js → p-93d4d3c9.js} +2 -2
- package/dist/siemens-ix/{p-9948574f.entry.js → p-97d4b3bd.entry.js} +2 -2
- package/dist/siemens-ix/{p-6a4a2064.entry.js → p-9f960c0b.entry.js} +2 -2
- package/dist/siemens-ix/{p-0c89cbcc.entry.js → p-a4dc6824.entry.js} +2 -2
- package/dist/siemens-ix/{p-fe87443e.js → p-a6af13b0.js} +2 -2
- package/dist/siemens-ix/p-af7c4b16.entry.js +2 -0
- package/dist/siemens-ix/p-af7c4b16.entry.js.map +1 -0
- package/dist/siemens-ix/{p-a3364116.entry.js → p-afb4565c.entry.js} +2 -2
- package/dist/siemens-ix/{p-4c9b7548.entry.js → p-bc272f75.entry.js} +2 -2
- package/dist/siemens-ix/{p-3205726a.entry.js → p-bfe469e4.entry.js} +2 -2
- package/dist/siemens-ix/{p-792e1c52.entry.js → p-c07557b0.entry.js} +2 -2
- package/dist/siemens-ix/p-c07557b0.entry.js.map +1 -0
- package/dist/siemens-ix/p-c3ca17fc.js +2 -0
- package/dist/siemens-ix/p-c530de51.entry.js +2 -0
- package/dist/siemens-ix/p-c530de51.entry.js.map +1 -0
- package/dist/siemens-ix/p-d2f21544.js +2 -0
- package/dist/siemens-ix/{p-68bb2a09.entry.js → p-d9b654af.entry.js} +2 -2
- package/dist/siemens-ix/p-d9b654af.entry.js.map +1 -0
- package/dist/siemens-ix/{p-e9a37b3f.entry.js → p-ee0645f8.entry.js} +2 -2
- package/dist/siemens-ix/p-fe158b99.js +2 -0
- package/dist/siemens-ix/p-fe158b99.js.map +1 -0
- package/dist/siemens-ix/{p-f39048a2.entry.js → p-fe396297.entry.js} +2 -2
- package/dist/siemens-ix/siemens-ix.esm.js +1 -1
- package/dist/types/components/button/button.d.ts +1 -0
- package/dist/types/components/date-input/date-input.d.ts +2 -0
- package/dist/types/components/field-label/field-label.d.ts +1 -1
- package/dist/types/components/field-wrapper/field-wrapper.d.ts +1 -1
- package/dist/types/components/input/input.d.ts +2 -0
- package/dist/types/components/input/number-input.d.ts +2 -0
- package/dist/types/components/modal/test/modal.ct.d.ts +2 -1
- package/dist/types/components/select/select.d.ts +9 -8
- package/dist/types/components/utils/lazy-list/index.d.ts +2 -0
- package/dist/types/components/utils/lazy-list/lazy.d.ts +51 -0
- package/dist/types/components.d.ts +9 -3
- package/hydrate/index.js +499 -621
- package/package.json +1 -2
- package/dist/cjs/_commonjsHelpers-0192c5b3.js +0 -17
- package/dist/cjs/_commonjsHelpers-0192c5b3.js.map +0 -1
- package/dist/cjs/core-js-2fc351ee.js +0 -26
- package/dist/cjs/core-js-2fc351ee.js.map +0 -1
- package/dist/cjs/index-d2117dc0.js.map +0 -1
- package/dist/cjs/input.util-1c2fa43d.js.map +0 -1
- package/dist/esm/_commonjsHelpers-e557d4a5.js +0 -13
- package/dist/esm/_commonjsHelpers-e557d4a5.js.map +0 -1
- package/dist/esm/app-globals-ae0ca705.js +0 -7
- package/dist/esm/index-ad2af369.js.map +0 -1
- package/dist/esm/input.util-715860e3.js.map +0 -1
- package/dist/esm/modal-101eef04.js.map +0 -1
- package/dist/siemens-ix/p-0f0e7e14.entry.js +0 -2
- package/dist/siemens-ix/p-0f0e7e14.entry.js.map +0 -1
- package/dist/siemens-ix/p-23a4b81f.js +0 -2
- package/dist/siemens-ix/p-23a4b81f.js.map +0 -1
- package/dist/siemens-ix/p-2b226409.entry.js.map +0 -1
- package/dist/siemens-ix/p-424e8092.entry.js.map +0 -1
- package/dist/siemens-ix/p-45840cb9.js +0 -2
- package/dist/siemens-ix/p-45840cb9.js.map +0 -1
- package/dist/siemens-ix/p-4624a772.entry.js +0 -2
- package/dist/siemens-ix/p-4624a772.entry.js.map +0 -1
- package/dist/siemens-ix/p-50096707.js +0 -2
- package/dist/siemens-ix/p-5682e985.js +0 -2
- package/dist/siemens-ix/p-5db5a0b5.entry.js +0 -2
- package/dist/siemens-ix/p-5db5a0b5.entry.js.map +0 -1
- package/dist/siemens-ix/p-68bb2a09.entry.js.map +0 -1
- package/dist/siemens-ix/p-792e1c52.entry.js.map +0 -1
- package/dist/siemens-ix/p-79bb0d39.js +0 -2
- package/dist/siemens-ix/p-79bb0d39.js.map +0 -1
- package/dist/siemens-ix/p-857f99c8.entry.js +0 -2
- package/dist/siemens-ix/p-857f99c8.entry.js.map +0 -1
- package/dist/siemens-ix/p-9fe2759f.entry.js.map +0 -1
- package/dist/siemens-ix/p-a2200306.js +0 -4
- package/dist/siemens-ix/p-a427e6a2.js +0 -2
- package/dist/siemens-ix/p-a427e6a2.js.map +0 -1
- package/dist/siemens-ix/p-bded112a.entry.js +0 -2
- package/dist/siemens-ix/p-bded112a.entry.js.map +0 -1
- package/dist/siemens-ix/p-f7618d1d.entry.js +0 -2
- package/dist/siemens-ix/p-f7618d1d.entry.js.map +0 -1
- /package/dist/siemens-ix/{p-0dbc970e.entry.js.map → p-0b2f0536.entry.js.map} +0 -0
- /package/dist/siemens-ix/{p-044c2a7b.entry.js.map → p-18542846.entry.js.map} +0 -0
- /package/dist/siemens-ix/{p-d7aa00d6.js.map → p-3aaecbd9.js.map} +0 -0
- /package/dist/siemens-ix/{p-175599e4.entry.js.map → p-42320fb3.entry.js.map} +0 -0
- /package/dist/siemens-ix/{p-1f6df0c6.js.map → p-738c2d1f.js.map} +0 -0
- /package/dist/siemens-ix/{p-f35386ec.js.map → p-93d4d3c9.js.map} +0 -0
- /package/dist/siemens-ix/{p-9948574f.entry.js.map → p-97d4b3bd.entry.js.map} +0 -0
- /package/dist/siemens-ix/{p-6a4a2064.entry.js.map → p-9f960c0b.entry.js.map} +0 -0
- /package/dist/siemens-ix/{p-0c89cbcc.entry.js.map → p-a4dc6824.entry.js.map} +0 -0
- /package/dist/siemens-ix/{p-fe87443e.js.map → p-a6af13b0.js.map} +0 -0
- /package/dist/siemens-ix/{p-a3364116.entry.js.map → p-afb4565c.entry.js.map} +0 -0
- /package/dist/siemens-ix/{p-4c9b7548.entry.js.map → p-bc272f75.entry.js.map} +0 -0
- /package/dist/siemens-ix/{p-3205726a.entry.js.map → p-bfe469e4.entry.js.map} +0 -0
- /package/dist/siemens-ix/{p-5682e985.js.map → p-c3ca17fc.js.map} +0 -0
- /package/dist/siemens-ix/{p-50096707.js.map → p-d2f21544.js.map} +0 -0
- /package/dist/siemens-ix/{p-e9a37b3f.entry.js.map → p-ee0645f8.entry.js.map} +0 -0
- /package/dist/siemens-ix/{p-f39048a2.entry.js.map → p-fe396297.entry.js.map} +0 -0
|
@@ -0,0 +1,343 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* SPDX-FileCopyrightText: 2024 Siemens AG
|
|
3
|
+
*
|
|
4
|
+
* SPDX-License-Identifier: MIT
|
|
5
|
+
*
|
|
6
|
+
* This source code is licensed under the MIT license found in the
|
|
7
|
+
* LICENSE file in the root directory of this source tree.
|
|
8
|
+
*/
|
|
9
|
+
// Manually forked from https://github.com/tbranyen/hyperlist to remove
|
|
10
|
+
// features a direct document calls
|
|
11
|
+
//
|
|
12
|
+
// Hyperlist is licensed MIT. https://github.com/tbranyen/hyperlist
|
|
13
|
+
const isNumber = (input) => !Number.isNaN(Number(input));
|
|
14
|
+
const addClass = (element, className) => {
|
|
15
|
+
element.classList.add(className);
|
|
16
|
+
};
|
|
17
|
+
export class VirtualList {
|
|
18
|
+
static create(element, userProvidedConfig = VirtualList.defaultConfig) {
|
|
19
|
+
return new VirtualList(element, userProvidedConfig);
|
|
20
|
+
}
|
|
21
|
+
static mergeStyle(element, style) {
|
|
22
|
+
for (let i in style) {
|
|
23
|
+
if (element.style[i] !== style[i]) {
|
|
24
|
+
element.style[i] = style[i];
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
static getMaxBrowserHeight() {
|
|
29
|
+
// Create two elements, the wrapper is `1px` tall and is transparent and
|
|
30
|
+
// positioned at the top of the page. Inside that is an element that gets
|
|
31
|
+
// set to 1 billion pixels. Then reads the max height the browser can
|
|
32
|
+
// calculate.
|
|
33
|
+
const wrapper = document.createElement('div');
|
|
34
|
+
const fixture = document.createElement('div');
|
|
35
|
+
// As said above, these values get set to put the fixture elements into the
|
|
36
|
+
// right visual state.
|
|
37
|
+
VirtualList.mergeStyle(wrapper, {
|
|
38
|
+
position: 'absolute',
|
|
39
|
+
height: '1px',
|
|
40
|
+
opacity: 0,
|
|
41
|
+
});
|
|
42
|
+
VirtualList.mergeStyle(fixture, { height: '1e7px' });
|
|
43
|
+
// Add the fixture into the wrapper element.
|
|
44
|
+
wrapper.appendChild(fixture);
|
|
45
|
+
// Apply to the page, the values won't kick in unless this is attached.
|
|
46
|
+
document.body.appendChild(wrapper);
|
|
47
|
+
// Get the maximum element height in pixels.
|
|
48
|
+
const maxElementHeight = fixture.offsetHeight;
|
|
49
|
+
// Remove the element immediately after reading the value.
|
|
50
|
+
document.body.removeChild(wrapper);
|
|
51
|
+
return maxElementHeight;
|
|
52
|
+
}
|
|
53
|
+
constructor(element, userProvidedConfig) {
|
|
54
|
+
this._lastRepaint = null;
|
|
55
|
+
this._maxElementHeight = VirtualList.getMaxBrowserHeight();
|
|
56
|
+
this.refresh(element, userProvidedConfig);
|
|
57
|
+
const config = this._config;
|
|
58
|
+
// Create internal render loop.
|
|
59
|
+
const render = () => {
|
|
60
|
+
const scrollTop = this._getScrollPosition();
|
|
61
|
+
const lastRepaint = this._lastRepaint;
|
|
62
|
+
this._renderAnimationFrame = window.requestAnimationFrame(render);
|
|
63
|
+
if (scrollTop === lastRepaint) {
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
const diff = lastRepaint ? scrollTop - lastRepaint : 0;
|
|
67
|
+
if (!lastRepaint || diff < 0 || diff > this._averageHeight) {
|
|
68
|
+
let rendered = this._renderChunk();
|
|
69
|
+
this._lastRepaint = scrollTop;
|
|
70
|
+
if (rendered !== false && typeof config.afterRender === 'function') {
|
|
71
|
+
config.afterRender();
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
};
|
|
75
|
+
render();
|
|
76
|
+
}
|
|
77
|
+
destroy() {
|
|
78
|
+
window.cancelAnimationFrame(this._renderAnimationFrame);
|
|
79
|
+
}
|
|
80
|
+
refresh(element, userProvidedConfig = VirtualList.defaultConfig) {
|
|
81
|
+
this._config = userProvidedConfig;
|
|
82
|
+
if (!element || element.nodeType !== 1) {
|
|
83
|
+
throw new Error('HyperList requires a valid DOM Node container');
|
|
84
|
+
}
|
|
85
|
+
this._element = element;
|
|
86
|
+
const config = this._config;
|
|
87
|
+
const scroller = this._scroller ||
|
|
88
|
+
config.scroller ||
|
|
89
|
+
document.createElement(config.scrollerTagName || 'tr');
|
|
90
|
+
// Default configuration option `useFragment` to `true`.
|
|
91
|
+
if (typeof config.useFragment !== 'boolean') {
|
|
92
|
+
this._config.useFragment = true;
|
|
93
|
+
}
|
|
94
|
+
if (!config.generate) {
|
|
95
|
+
throw new Error('Missing required `generate` function');
|
|
96
|
+
}
|
|
97
|
+
if (!isNumber(config.total)) {
|
|
98
|
+
throw new Error('Invalid required `total` value, expected number');
|
|
99
|
+
}
|
|
100
|
+
if (!Array.isArray(config.itemHeight) && !isNumber(config.itemHeight)) {
|
|
101
|
+
throw new Error(`
|
|
102
|
+
Invalid required \`itemHeight\` value, expected number or array
|
|
103
|
+
`.trim());
|
|
104
|
+
}
|
|
105
|
+
else if (isNumber(config.itemHeight)) {
|
|
106
|
+
this._itemHeights = Array(config.total).fill(config.itemHeight);
|
|
107
|
+
}
|
|
108
|
+
else {
|
|
109
|
+
this._itemHeights = [config.itemHeight];
|
|
110
|
+
}
|
|
111
|
+
// Width and height should be coerced to string representations. Either in
|
|
112
|
+
// `%` or `px`.
|
|
113
|
+
Object.keys(VirtualList.defaultConfig)
|
|
114
|
+
.filter((prop) => prop in config)
|
|
115
|
+
.forEach((prop) => {
|
|
116
|
+
const value = config[prop];
|
|
117
|
+
const isValueNumber = isNumber(value);
|
|
118
|
+
if (value && typeof value !== 'string' && typeof value !== 'number') {
|
|
119
|
+
let msg = `Invalid optional \`${prop}\`, expected string or number`;
|
|
120
|
+
throw new Error(msg);
|
|
121
|
+
}
|
|
122
|
+
else if (isValueNumber) {
|
|
123
|
+
config[prop] = `${value}px`;
|
|
124
|
+
}
|
|
125
|
+
});
|
|
126
|
+
const isHorizontal = Boolean(config.horizontal);
|
|
127
|
+
const value = config[isHorizontal ? 'width' : 'height'];
|
|
128
|
+
if (value) {
|
|
129
|
+
const isValueNumber = isNumber(value);
|
|
130
|
+
const isValuePercent = isValueNumber ? false : value.slice(-1) === '%';
|
|
131
|
+
// Compute the containerHeight as number
|
|
132
|
+
const numberValue = isValueNumber
|
|
133
|
+
? parseInt(value, 10)
|
|
134
|
+
: parseInt(value.replace(/px|%/, ''), 10);
|
|
135
|
+
const innerSize = window[isHorizontal ? 'innerWidth' : 'innerHeight'];
|
|
136
|
+
if (isValuePercent) {
|
|
137
|
+
this._containerSize = (innerSize * numberValue) / 100;
|
|
138
|
+
}
|
|
139
|
+
else {
|
|
140
|
+
this._containerSize = isNumber(value) ? value : numberValue;
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
const scrollContainer = config.scrollContainer;
|
|
144
|
+
const scrollerHeight = config.itemHeight * config.total;
|
|
145
|
+
const maxElementHeight = this._maxElementHeight;
|
|
146
|
+
if (scrollerHeight > maxElementHeight) {
|
|
147
|
+
console.warn([
|
|
148
|
+
'HyperList: The maximum element height',
|
|
149
|
+
maxElementHeight + 'px has',
|
|
150
|
+
'been exceeded; please reduce your item height.',
|
|
151
|
+
].join(' '));
|
|
152
|
+
}
|
|
153
|
+
// Decorate the container element with styles that will match
|
|
154
|
+
// the user supplied configuration.
|
|
155
|
+
const elementStyle = {
|
|
156
|
+
width: `${config.width}`,
|
|
157
|
+
height: scrollContainer ? `${scrollerHeight}px` : `${config.height}`,
|
|
158
|
+
overflow: scrollContainer ? 'none' : 'auto',
|
|
159
|
+
position: 'relative',
|
|
160
|
+
};
|
|
161
|
+
VirtualList.mergeStyle(element, elementStyle);
|
|
162
|
+
if (scrollContainer) {
|
|
163
|
+
VirtualList.mergeStyle(config.scrollContainer, { overflow: 'auto' });
|
|
164
|
+
}
|
|
165
|
+
const scrollerStyle = {
|
|
166
|
+
opacity: '0',
|
|
167
|
+
position: 'absolute',
|
|
168
|
+
[isHorizontal ? 'height' : 'width']: '1px',
|
|
169
|
+
[isHorizontal ? 'width' : 'height']: `${scrollerHeight}px`,
|
|
170
|
+
};
|
|
171
|
+
VirtualList.mergeStyle(scroller, scrollerStyle);
|
|
172
|
+
// Only append the scroller element once.
|
|
173
|
+
if (!this._scroller) {
|
|
174
|
+
element.appendChild(scroller);
|
|
175
|
+
}
|
|
176
|
+
const padding = this._computeScrollPadding();
|
|
177
|
+
this._scrollPaddingBottom = padding.bottom;
|
|
178
|
+
this._scrollPaddingTop = padding.top;
|
|
179
|
+
// Set the scroller instance.
|
|
180
|
+
this._scroller = scroller;
|
|
181
|
+
this._scrollHeight = this._computeScrollHeight();
|
|
182
|
+
// Reuse the item positions if refreshed, otherwise set to empty array.
|
|
183
|
+
this._itemPositions = this._itemPositions || Array(config.total).fill(0);
|
|
184
|
+
// Each index in the array should represent the position in the DOM.
|
|
185
|
+
this._computePositions(0);
|
|
186
|
+
// Render after refreshing. Force render if we're calling refresh manually.
|
|
187
|
+
this._renderChunk(this._lastRepaint !== null);
|
|
188
|
+
if (typeof config.afterRender === 'function') {
|
|
189
|
+
config.afterRender();
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
_getRow(i) {
|
|
193
|
+
const config = this._config;
|
|
194
|
+
let item = config.generate(i);
|
|
195
|
+
let height = item.height;
|
|
196
|
+
if (height !== undefined && isNumber(height)) {
|
|
197
|
+
item = item.element;
|
|
198
|
+
// The height isn't the same as predicted, compute positions again
|
|
199
|
+
if (height !== this._itemHeights[i]) {
|
|
200
|
+
this._itemHeights[i] = height;
|
|
201
|
+
this._computePositions(i);
|
|
202
|
+
this._scrollHeight = this._computeScrollHeight();
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
else {
|
|
206
|
+
height = this._itemHeights[i];
|
|
207
|
+
}
|
|
208
|
+
if (!item || item.nodeType !== 1) {
|
|
209
|
+
throw new Error(`Generator did not return a DOM Node for index: ${i}`);
|
|
210
|
+
}
|
|
211
|
+
addClass(item, config.rowClassName || 'vrow');
|
|
212
|
+
const top = this._itemPositions[i] + this._scrollPaddingTop;
|
|
213
|
+
VirtualList.mergeStyle(item, {
|
|
214
|
+
position: 'absolute',
|
|
215
|
+
[config.horizontal ? 'left' : 'top']: `${top}px`,
|
|
216
|
+
});
|
|
217
|
+
return item;
|
|
218
|
+
}
|
|
219
|
+
_getScrollPosition() {
|
|
220
|
+
const config = this._config;
|
|
221
|
+
if (typeof config.overrideScrollPosition === 'function') {
|
|
222
|
+
return config.overrideScrollPosition();
|
|
223
|
+
}
|
|
224
|
+
return this._element[config.horizontal ? 'scrollLeft' : 'scrollTop'];
|
|
225
|
+
}
|
|
226
|
+
_renderChunk(force = false) {
|
|
227
|
+
const config = this._config;
|
|
228
|
+
const element = this._element;
|
|
229
|
+
const scrollTop = this._getScrollPosition();
|
|
230
|
+
const total = config.total;
|
|
231
|
+
let from = this._getFrom(scrollTop) - 1;
|
|
232
|
+
if (from < 0 || from - this._screenItemsLen < 0) {
|
|
233
|
+
from = 0;
|
|
234
|
+
}
|
|
235
|
+
if (!force && this._lastFrom === from) {
|
|
236
|
+
return false;
|
|
237
|
+
}
|
|
238
|
+
this._lastFrom = from;
|
|
239
|
+
let to = from + this._cachedItemsLen;
|
|
240
|
+
if (to > total || to + this._cachedItemsLen > total) {
|
|
241
|
+
to = total;
|
|
242
|
+
}
|
|
243
|
+
// Append all the new rows in a document fragment that we will later append
|
|
244
|
+
// to the parent node
|
|
245
|
+
const fragment = config.useFragment
|
|
246
|
+
? document.createDocumentFragment()
|
|
247
|
+
: [
|
|
248
|
+
// Sometimes you'll pass fake elements to this tool and Fragments require
|
|
249
|
+
// real elements.
|
|
250
|
+
];
|
|
251
|
+
// The element that forces the container to scroll.
|
|
252
|
+
const scroller = this._scroller;
|
|
253
|
+
// Keep the scroller in the list of children.
|
|
254
|
+
fragment[config.useFragment ? 'appendChild' : 'push'](scroller);
|
|
255
|
+
for (let i = from; i < to; i++) {
|
|
256
|
+
let row = this._getRow(i);
|
|
257
|
+
fragment[config.useFragment ? 'appendChild' : 'push'](row);
|
|
258
|
+
}
|
|
259
|
+
if (config.applyPatch) {
|
|
260
|
+
return config.applyPatch(element, fragment);
|
|
261
|
+
}
|
|
262
|
+
element.innerHTML = '';
|
|
263
|
+
element.appendChild(fragment);
|
|
264
|
+
}
|
|
265
|
+
_computePositions(from = 1) {
|
|
266
|
+
const config = this._config;
|
|
267
|
+
const total = config.total;
|
|
268
|
+
if (from < 1) {
|
|
269
|
+
from = 1;
|
|
270
|
+
}
|
|
271
|
+
for (let i = from; i < total; i++) {
|
|
272
|
+
this._itemPositions[i] =
|
|
273
|
+
this._itemHeights[i - 1] + this._itemPositions[i - 1];
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
_computeScrollHeight() {
|
|
277
|
+
const config = this._config;
|
|
278
|
+
const isHorizontal = Boolean(config.horizontal);
|
|
279
|
+
const total = config.total;
|
|
280
|
+
const scrollHeight = this._itemHeights.reduce((a, b) => a + b, 0) +
|
|
281
|
+
this._scrollPaddingBottom +
|
|
282
|
+
this._scrollPaddingTop;
|
|
283
|
+
VirtualList.mergeStyle(this._scroller, {
|
|
284
|
+
opacity: 0,
|
|
285
|
+
position: 'absolute',
|
|
286
|
+
top: '0px',
|
|
287
|
+
[isHorizontal ? 'height' : 'width']: '1px',
|
|
288
|
+
[isHorizontal ? 'width' : 'height']: `${scrollHeight}px`,
|
|
289
|
+
});
|
|
290
|
+
// Calculate the height median
|
|
291
|
+
const sortedItemHeights = this._itemHeights.slice(0).sort((a, b) => a - b);
|
|
292
|
+
const middle = Math.floor(total / 2);
|
|
293
|
+
const averageHeight = total % 2 === 0
|
|
294
|
+
? (sortedItemHeights[middle] + sortedItemHeights[middle - 1]) / 2
|
|
295
|
+
: sortedItemHeights[middle];
|
|
296
|
+
const clientProp = isHorizontal ? 'clientWidth' : 'clientHeight';
|
|
297
|
+
const element = config.scrollContainer
|
|
298
|
+
? config.scrollContainer
|
|
299
|
+
: this._element;
|
|
300
|
+
const containerHeight = element[clientProp]
|
|
301
|
+
? element[clientProp]
|
|
302
|
+
: this._containerSize;
|
|
303
|
+
this._screenItemsLen = Math.ceil(containerHeight / averageHeight);
|
|
304
|
+
this._containerSize = containerHeight;
|
|
305
|
+
// Cache 3 times the number of items that fit in the container viewport.
|
|
306
|
+
this._cachedItemsLen = Math.max(this._cachedItemsLen || 0, this._screenItemsLen * 3);
|
|
307
|
+
this._averageHeight = averageHeight;
|
|
308
|
+
return scrollHeight;
|
|
309
|
+
}
|
|
310
|
+
_computeScrollPadding() {
|
|
311
|
+
const config = this._config;
|
|
312
|
+
const isHoriz = Boolean(config.horizontal);
|
|
313
|
+
const styles = window.getComputedStyle(this._element);
|
|
314
|
+
const padding = (location) => {
|
|
315
|
+
const cssValue = styles.getPropertyValue(`padding-${location}`);
|
|
316
|
+
return parseInt(cssValue, 10) || 0;
|
|
317
|
+
};
|
|
318
|
+
if (isHoriz) {
|
|
319
|
+
return {
|
|
320
|
+
bottom: padding('right'),
|
|
321
|
+
top: padding('left'),
|
|
322
|
+
};
|
|
323
|
+
}
|
|
324
|
+
else {
|
|
325
|
+
return {
|
|
326
|
+
bottom: padding('bottom'),
|
|
327
|
+
top: padding('top'),
|
|
328
|
+
};
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
_getFrom(scrollTop) {
|
|
332
|
+
let i = 0;
|
|
333
|
+
while (this._itemPositions[i] < scrollTop) {
|
|
334
|
+
i++;
|
|
335
|
+
}
|
|
336
|
+
return i;
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
VirtualList.defaultConfig = {
|
|
340
|
+
width: '100%',
|
|
341
|
+
height: '100%',
|
|
342
|
+
};
|
|
343
|
+
//# sourceMappingURL=lazy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lazy.js","sourceRoot":"","sources":["../../../../src/components/utils/lazy-list/lazy.ts"],"names":[],"mappings":"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","sourcesContent":["/*\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// Manually forked from https://github.com/tbranyen/hyperlist to remove\n// features a direct document calls\n//\n// Hyperlist is licensed MIT. https://github.com/tbranyen/hyperlist\n\nexport type VirtualListConfig = {\n applyPatch?: (\n element: HTMLElement,\n fragment: DocumentFragment | DocumentFragment[]\n ) => void;\n overrideScrollPosition?: () => void;\n rowClassName?: string;\n scrollContainer?: HTMLElement;\n width: string;\n height: string;\n afterRender?: () => void;\n scrollerTagName?: string;\n scroller?: HTMLElement;\n useFragment?: boolean;\n generate?: (index: number) => HTMLElement;\n total?: number;\n itemHeight?: number;\n horizontal?: boolean;\n};\n\nconst isNumber = (input: unknown) => !Number.isNaN(Number(input));\n\nconst addClass = (element: HTMLElement, className: string) => {\n element.classList.add(className);\n};\n\nexport class VirtualList {\n _config: VirtualListConfig;\n _lastRepaint: null;\n _maxElementHeight: number;\n _renderAnimationFrame: number;\n _averageHeight: number;\n\n static readonly defaultConfig: VirtualListConfig = {\n width: '100%',\n height: '100%',\n };\n _element: any;\n _scroller: any;\n _itemHeights: number[];\n _containerSize: number | string;\n _scrollPaddingBottom: number;\n _scrollPaddingTop: number;\n _scrollHeight: any;\n _itemPositions: any;\n _screenItemsLen: number;\n _lastFrom: number;\n _cachedItemsLen: any;\n\n static create(\n element: HTMLElement,\n userProvidedConfig: VirtualListConfig = VirtualList.defaultConfig\n ) {\n return new VirtualList(element, userProvidedConfig);\n }\n\n static mergeStyle(element: HTMLElement, style) {\n for (let i in style) {\n if (element.style[i] !== style[i]) {\n element.style[i] = style[i];\n }\n }\n }\n\n static getMaxBrowserHeight() {\n // Create two elements, the wrapper is `1px` tall and is transparent and\n // positioned at the top of the page. Inside that is an element that gets\n // set to 1 billion pixels. Then reads the max height the browser can\n // calculate.\n const wrapper = document.createElement('div');\n const fixture = document.createElement('div');\n\n // As said above, these values get set to put the fixture elements into the\n // right visual state.\n VirtualList.mergeStyle(wrapper, {\n position: 'absolute',\n height: '1px',\n opacity: 0,\n });\n VirtualList.mergeStyle(fixture, { height: '1e7px' });\n\n // Add the fixture into the wrapper element.\n wrapper.appendChild(fixture);\n\n // Apply to the page, the values won't kick in unless this is attached.\n document.body.appendChild(wrapper);\n\n // Get the maximum element height in pixels.\n const maxElementHeight = fixture.offsetHeight;\n\n // Remove the element immediately after reading the value.\n document.body.removeChild(wrapper);\n\n return maxElementHeight;\n }\n\n constructor(element: HTMLElement, userProvidedConfig: VirtualListConfig) {\n this._lastRepaint = null;\n this._maxElementHeight = VirtualList.getMaxBrowserHeight();\n\n this.refresh(element, userProvidedConfig);\n\n const config = this._config;\n\n // Create internal render loop.\n const render = () => {\n const scrollTop = this._getScrollPosition();\n const lastRepaint = this._lastRepaint;\n\n this._renderAnimationFrame = window.requestAnimationFrame(render);\n\n if (scrollTop === lastRepaint) {\n return;\n }\n\n const diff = lastRepaint ? scrollTop - lastRepaint : 0;\n if (!lastRepaint || diff < 0 || diff > this._averageHeight) {\n let rendered = this._renderChunk();\n\n this._lastRepaint = scrollTop;\n\n if (rendered !== false && typeof config.afterRender === 'function') {\n config.afterRender();\n }\n }\n };\n\n render();\n }\n\n destroy() {\n window.cancelAnimationFrame(this._renderAnimationFrame);\n }\n\n refresh(\n element: HTMLElement,\n userProvidedConfig: VirtualListConfig = VirtualList.defaultConfig\n ) {\n this._config = userProvidedConfig;\n\n if (!element || element.nodeType !== 1) {\n throw new Error('HyperList requires a valid DOM Node container');\n }\n\n this._element = element;\n\n const config = this._config;\n\n const scroller =\n this._scroller ||\n config.scroller ||\n document.createElement(config.scrollerTagName || 'tr');\n\n // Default configuration option `useFragment` to `true`.\n if (typeof config.useFragment !== 'boolean') {\n this._config.useFragment = true;\n }\n\n if (!config.generate) {\n throw new Error('Missing required `generate` function');\n }\n\n if (!isNumber(config.total)) {\n throw new Error('Invalid required `total` value, expected number');\n }\n\n if (!Array.isArray(config.itemHeight) && !isNumber(config.itemHeight)) {\n throw new Error(\n `\n Invalid required \\`itemHeight\\` value, expected number or array\n `.trim()\n );\n } else if (isNumber(config.itemHeight)) {\n this._itemHeights = Array(config.total).fill(config.itemHeight);\n } else {\n this._itemHeights = [config.itemHeight];\n }\n\n // Width and height should be coerced to string representations. Either in\n // `%` or `px`.\n Object.keys(VirtualList.defaultConfig)\n .filter((prop) => prop in config)\n .forEach((prop) => {\n const value = config[prop];\n const isValueNumber = isNumber(value);\n\n if (value && typeof value !== 'string' && typeof value !== 'number') {\n let msg = `Invalid optional \\`${prop}\\`, expected string or number`;\n throw new Error(msg);\n } else if (isValueNumber) {\n config[prop] = `${value}px`;\n }\n });\n\n const isHorizontal = Boolean(config.horizontal);\n const value = config[isHorizontal ? 'width' : 'height'];\n\n if (value) {\n const isValueNumber = isNumber(value);\n const isValuePercent = isValueNumber ? false : value.slice(-1) === '%';\n // Compute the containerHeight as number\n const numberValue = isValueNumber\n ? parseInt(value, 10)\n : parseInt(value.replace(/px|%/, ''), 10);\n const innerSize = window[isHorizontal ? 'innerWidth' : 'innerHeight'];\n\n if (isValuePercent) {\n this._containerSize = (innerSize * numberValue) / 100;\n } else {\n this._containerSize = isNumber(value) ? value : numberValue;\n }\n }\n\n const scrollContainer = config.scrollContainer;\n const scrollerHeight = config.itemHeight * config.total;\n const maxElementHeight = this._maxElementHeight;\n\n if (scrollerHeight > maxElementHeight) {\n console.warn(\n [\n 'HyperList: The maximum element height',\n maxElementHeight + 'px has',\n 'been exceeded; please reduce your item height.',\n ].join(' ')\n );\n }\n\n // Decorate the container element with styles that will match\n // the user supplied configuration.\n const elementStyle = {\n width: `${config.width}`,\n height: scrollContainer ? `${scrollerHeight}px` : `${config.height}`,\n overflow: scrollContainer ? 'none' : 'auto',\n position: 'relative',\n };\n\n VirtualList.mergeStyle(element, elementStyle);\n\n if (scrollContainer) {\n VirtualList.mergeStyle(config.scrollContainer, { overflow: 'auto' });\n }\n\n const scrollerStyle = {\n opacity: '0',\n position: 'absolute',\n [isHorizontal ? 'height' : 'width']: '1px',\n [isHorizontal ? 'width' : 'height']: `${scrollerHeight}px`,\n };\n\n VirtualList.mergeStyle(scroller, scrollerStyle);\n\n // Only append the scroller element once.\n if (!this._scroller) {\n element.appendChild(scroller);\n }\n\n const padding = this._computeScrollPadding();\n this._scrollPaddingBottom = padding.bottom;\n this._scrollPaddingTop = padding.top;\n\n // Set the scroller instance.\n this._scroller = scroller;\n this._scrollHeight = this._computeScrollHeight();\n\n // Reuse the item positions if refreshed, otherwise set to empty array.\n this._itemPositions = this._itemPositions || Array(config.total).fill(0);\n\n // Each index in the array should represent the position in the DOM.\n this._computePositions(0);\n\n // Render after refreshing. Force render if we're calling refresh manually.\n this._renderChunk(this._lastRepaint !== null);\n\n if (typeof config.afterRender === 'function') {\n config.afterRender();\n }\n }\n\n _getRow(i) {\n const config = this._config;\n let item = config.generate(i) as any;\n let height = item.height;\n\n if (height !== undefined && isNumber(height)) {\n item = item.element;\n\n // The height isn't the same as predicted, compute positions again\n if (height !== this._itemHeights[i]) {\n this._itemHeights[i] = height;\n this._computePositions(i);\n this._scrollHeight = this._computeScrollHeight();\n }\n } else {\n height = this._itemHeights[i];\n }\n\n if (!item || item.nodeType !== 1) {\n throw new Error(`Generator did not return a DOM Node for index: ${i}`);\n }\n\n addClass(item, config.rowClassName || 'vrow');\n\n const top = this._itemPositions[i] + this._scrollPaddingTop;\n\n VirtualList.mergeStyle(item, {\n position: 'absolute',\n [config.horizontal ? 'left' : 'top']: `${top}px`,\n });\n\n return item;\n }\n\n _getScrollPosition() {\n const config = this._config;\n\n if (typeof config.overrideScrollPosition === 'function') {\n return config.overrideScrollPosition();\n }\n\n return this._element[config.horizontal ? 'scrollLeft' : 'scrollTop'];\n }\n\n _renderChunk(force: boolean = false) {\n const config = this._config;\n const element = this._element;\n const scrollTop = this._getScrollPosition();\n const total = config.total;\n\n let from = this._getFrom(scrollTop) - 1;\n\n if (from < 0 || from - this._screenItemsLen < 0) {\n from = 0;\n }\n\n if (!force && this._lastFrom === from) {\n return false;\n }\n\n this._lastFrom = from;\n\n let to = from + this._cachedItemsLen;\n\n if (to > total || to + this._cachedItemsLen > total) {\n to = total;\n }\n\n // Append all the new rows in a document fragment that we will later append\n // to the parent node\n const fragment = config.useFragment\n ? document.createDocumentFragment()\n : [\n // Sometimes you'll pass fake elements to this tool and Fragments require\n // real elements.\n ];\n\n // The element that forces the container to scroll.\n const scroller = this._scroller;\n\n // Keep the scroller in the list of children.\n fragment[config.useFragment ? 'appendChild' : 'push'](scroller);\n\n for (let i = from; i < to; i++) {\n let row = this._getRow(i);\n\n fragment[config.useFragment ? 'appendChild' : 'push'](row);\n }\n\n if (config.applyPatch) {\n return config.applyPatch(element, fragment);\n }\n\n element.innerHTML = '';\n element.appendChild(fragment);\n }\n\n _computePositions(from = 1) {\n const config = this._config;\n const total = config.total;\n\n if (from < 1) {\n from = 1;\n }\n\n for (let i = from; i < total; i++) {\n this._itemPositions[i] =\n this._itemHeights[i - 1] + this._itemPositions[i - 1];\n }\n }\n\n _computeScrollHeight() {\n const config = this._config;\n const isHorizontal = Boolean(config.horizontal);\n const total = config.total;\n const scrollHeight =\n this._itemHeights.reduce((a, b) => a + b, 0) +\n this._scrollPaddingBottom +\n this._scrollPaddingTop;\n\n VirtualList.mergeStyle(this._scroller, {\n opacity: 0,\n position: 'absolute',\n top: '0px',\n [isHorizontal ? 'height' : 'width']: '1px',\n [isHorizontal ? 'width' : 'height']: `${scrollHeight}px`,\n });\n\n // Calculate the height median\n const sortedItemHeights = this._itemHeights.slice(0).sort((a, b) => a - b);\n const middle = Math.floor(total / 2);\n const averageHeight =\n total % 2 === 0\n ? (sortedItemHeights[middle] + sortedItemHeights[middle - 1]) / 2\n : sortedItemHeights[middle];\n\n const clientProp = isHorizontal ? 'clientWidth' : 'clientHeight';\n const element = config.scrollContainer\n ? config.scrollContainer\n : this._element;\n const containerHeight = element[clientProp]\n ? element[clientProp]\n : this._containerSize;\n this._screenItemsLen = Math.ceil(containerHeight / averageHeight);\n this._containerSize = containerHeight;\n\n // Cache 3 times the number of items that fit in the container viewport.\n this._cachedItemsLen = Math.max(\n this._cachedItemsLen || 0,\n this._screenItemsLen * 3\n );\n this._averageHeight = averageHeight;\n\n return scrollHeight;\n }\n\n _computeScrollPadding() {\n const config = this._config;\n const isHoriz = Boolean(config.horizontal);\n const styles = window.getComputedStyle(this._element);\n\n const padding = (location: string) => {\n const cssValue = styles.getPropertyValue(`padding-${location}`);\n return parseInt(cssValue, 10) || 0;\n };\n\n if (isHoriz) {\n return {\n bottom: padding('right'),\n top: padding('left'),\n };\n } else {\n return {\n bottom: padding('bottom'),\n top: padding('top'),\n };\n }\n }\n\n _getFrom(scrollTop: number) {\n let i = 0;\n\n while (this._itemPositions[i] < scrollTop) {\n i++;\n }\n\n return i;\n }\n}\n"]}
|
|
@@ -67,6 +67,12 @@ export async function showModal(config) {
|
|
|
67
67
|
onDismiss.emit(detail);
|
|
68
68
|
await delegate.removeView(dialogRef);
|
|
69
69
|
});
|
|
70
|
+
requestAnimationFrame(() => {
|
|
71
|
+
const autofocusElement = dialogRef.querySelector('[autofocus],[auto-focus]');
|
|
72
|
+
if (autofocusElement) {
|
|
73
|
+
autofocusElement.focus();
|
|
74
|
+
}
|
|
75
|
+
});
|
|
70
76
|
return {
|
|
71
77
|
htmlElement: dialogRef,
|
|
72
78
|
onClose,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modal.js","sourceRoot":"","sources":["../../../../src/components/utils/modal/modal.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C,MAAM,UAAU,iBAAiB,CAAC,OAAoB,EAAE,MAAmB;IACzE,MAAM,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;IAC/C,MAAM,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;IAE7C,OAAO,MAAM,CAAC,iBAAiB,CAAC,CAAC;IACjC,OAAO,MAAM,CAAC,gBAAgB,CAAC,CAAC;IAEhC,IAAI,eAAe,EAAE,CAAC;QACpB,OAAO,CAAC,YAAY,CAAC,kBAAkB,EAAE,eAAe,CAAC,CAAC;IAC5D,CAAC;IAED,IAAI,cAAc,EAAE,CAAC;QACnB,OAAO,CAAC,YAAY,CAAC,iBAAiB,EAAE,cAAc,CAAC,CAAC;IAC1D,CAAC;AACH,CAAC;AAuBD,SAAS,UAAU,CAAC,OAAgB;IAClC,OAAO,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,UAAU,CACxB,OAAgB,EAChB,WAAmB;IAEnB,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;IACnC,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QAC/B,OAAO;IACT,CAAC;AACH,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,OAAgB,EAAE,aAAmB;IAChE,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;IACnC,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;QACnC,OAAO;IACT,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,MAAsB;IAEtB,MAAM,QAAQ,GAAG,eAAe,EAAE,CAAC;IACnC,IAAI,
|
|
1
|
+
{"version":3,"file":"modal.js","sourceRoot":"","sources":["../../../../src/components/utils/modal/modal.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * SPDX-FileCopyrightText: 2023 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { IxModalSize } from '../../modal/modal';\nimport { getCoreDelegate, resolveDelegate } from '../delegate';\nimport { TypedEvent } from '../typed-event';\n\nexport function setA11yAttributes(element: HTMLElement, config: ModalConfig) {\n const ariaDescribedby = config.ariaDescribedby;\n const ariaLabelledby = config.ariaLabelledby;\n\n delete config['ariaDescribedby'];\n delete config['ariaLabelledby'];\n\n if (ariaDescribedby) {\n element.setAttribute('aria-describedby', ariaDescribedby);\n }\n\n if (ariaLabelledby) {\n element.setAttribute('aria-labelledby', ariaLabelledby);\n }\n}\n\nexport interface ModalConfig<TReason = any, CONTENT = any> {\n animation?: boolean;\n ariaDescribedby?: string;\n ariaLabelledby?: string;\n backdrop?: boolean;\n closeOnBackdropClick?: boolean;\n beforeDismiss?: (reason?: TReason) => boolean | Promise<boolean>;\n centered?: boolean;\n container?: string | HTMLElement;\n content: CONTENT | string;\n keyboard?: boolean;\n size?: IxModalSize;\n title?: string;\n}\n\nexport interface ModalInstance<TReason = any> {\n htmlElement: HTMLIxModalElement;\n onClose: TypedEvent<TReason>;\n onDismiss: TypedEvent<TReason>;\n}\n\nfunction getIxModal(element: Element) {\n return element.closest('ix-modal');\n}\n\nexport function closeModal<TClose = any>(\n element: Element,\n closeResult: TClose\n) {\n const dialog = getIxModal(element);\n if (dialog) {\n dialog.closeModal(closeResult);\n return;\n }\n}\n\nexport function dismissModal(element: Element, dismissResult?: any) {\n const dialog = getIxModal(element);\n if (dialog) {\n dialog.dismissModal(dismissResult);\n return;\n }\n}\n\nexport async function showModal<T>(\n config: ModalConfig<T>\n): Promise<ModalInstance<T>> {\n const delegate = resolveDelegate();\n let dialogRef: HTMLIxModalElement | undefined;\n const onClose = new TypedEvent<T>();\n const onDismiss = new TypedEvent<T>();\n\n if (typeof config.content === 'string') {\n const dialog = document.createElement('ix-modal');\n dialog.innerText = config.content;\n dialogRef = await getCoreDelegate().attachView(dialog);\n }\n\n if (\n config.content instanceof HTMLElement &&\n config.content.tagName !== 'IX-MODAL'\n ) {\n const dialog = document.createElement('ix-modal');\n dialog.appendChild(config.content);\n dialogRef = await getCoreDelegate().attachView(dialog);\n }\n if (!dialogRef) {\n dialogRef = await delegate.attachView<HTMLIxModalElement>(config.content);\n }\n\n setA11yAttributes(dialogRef, config);\n Object.assign(dialogRef, config);\n\n await dialogRef.showModal();\n dialogRef.addEventListener('dialogClose', async ({ detail }: CustomEvent) => {\n onClose.emit(detail);\n await delegate.removeView(dialogRef);\n });\n\n dialogRef.addEventListener(\n 'dialogDismiss',\n async ({ detail }: CustomEvent) => {\n onDismiss.emit(detail);\n await delegate.removeView(dialogRef);\n }\n );\n\n requestAnimationFrame(() => {\n const autofocusElement = dialogRef.querySelector(\n '[autofocus],[auto-focus]'\n );\n\n if (autofocusElement) {\n (autofocusElement as HTMLIxButtonElement).focus();\n }\n });\n\n return {\n htmlElement: dialogRef,\n onClose,\n onDismiss,\n };\n}\n"]}
|
|
@@ -135,13 +135,13 @@ export class ValidationTooltip {
|
|
|
135
135
|
}
|
|
136
136
|
render() {
|
|
137
137
|
var _a, _b;
|
|
138
|
-
return (h(Host, { key: '
|
|
138
|
+
return (h(Host, { key: '460aa78f5dd3391a92b14828692f2fa110793b13' }, h("slot", { key: '37e66c6a6bc556d95717378e974a0f991317e66f' }), h("div", { key: 'cde0b66e90021043c49614a8b76a97e07b72d318', role: "tooltip", style: {
|
|
139
139
|
display: 'none',
|
|
140
140
|
position: 'fixed',
|
|
141
141
|
top: '0',
|
|
142
142
|
left: '0',
|
|
143
143
|
transform: `translate(${Math.round(((_a = this.tooltipPosition) === null || _a === void 0 ? void 0 : _a.x) || 0)}px,${Math.round(((_b = this.tooltipPosition) === null || _b === void 0 ? void 0 : _b.y) || 0)}px)`,
|
|
144
|
-
}, class: "validation-tooltip text-default" }, this.message, h("slot", { key: '
|
|
144
|
+
}, class: "validation-tooltip text-default" }, this.message, h("slot", { key: 'b933fa0044dda7b423ed095c1c6f142bd4cbb32b', name: "tooltip-message" }), h("div", { key: '26fd0871dee60e14fc3a4c4c8fb42afb67758cd4', id: "arrow" }))));
|
|
145
145
|
}
|
|
146
146
|
static get is() { return "ix-validation-tooltip"; }
|
|
147
147
|
static get encapsulation() { return "shadow"; }
|
|
@@ -70,18 +70,18 @@ export class WorkflowStep {
|
|
|
70
70
|
}
|
|
71
71
|
render() {
|
|
72
72
|
const icons = !this.customIconSlot ? (h(Fragment, null, h("ix-icon", { color: "color-1", name: this.iconName === 'warning' ? 'triangle-filled' : 'circle-filled', class: "absolute", size: "24" }), h("ix-icon", { color: this.iconColor, name: this.iconName, class: "absolute", size: "24" }))) : null;
|
|
73
|
-
return (h(Host, { key: '
|
|
73
|
+
return (h(Host, { key: 'c7a9468843919209ac0aea64ec545b06b1ff1c94', class: { 'host-vertical': this.vertical }, onClick: () => this.onStepClick() }, h("div", { key: '8ed70b6fe5c65b483da3fbf557dc175bc7c3d526', tabIndex: 0, class: {
|
|
74
74
|
step: true,
|
|
75
75
|
selected: this.selected,
|
|
76
76
|
vertical: this.vertical,
|
|
77
77
|
disabled: this.disabled,
|
|
78
78
|
clickable: this.clickable && !this.disabled,
|
|
79
|
-
} }, h("div", { key: '
|
|
79
|
+
} }, h("div", { key: '11667e23f833fc8a05092d13e1df7d3eef0b7e10', class: "wrapper" }, h("div", { key: '0861c819a27d729817f5394c2e79772a38930f5d', class: {
|
|
80
80
|
line: true,
|
|
81
81
|
selected: this.selected,
|
|
82
82
|
[this.status]: true,
|
|
83
83
|
[this.position]: true,
|
|
84
|
-
} }), h("div", { key: '
|
|
84
|
+
} }), h("div", { key: '1a60733de3019590a691c9d46db45369a8b8eca6', class: "iconWrapper" }, icons, h("slot", { key: '031bc2ce3930fb0692bad430e54fffda8d609997', name: "custom-icon" }))), h("div", { key: 'b6dec2578d5517d27c255460d089221f0e2a6ea2', class: "text" }, h("slot", { key: 'dbeb4ebe5075bb2fa92b93978b6864b05154791f' })))));
|
|
85
85
|
}
|
|
86
86
|
static get is() { return "ix-workflow-step"; }
|
|
87
87
|
static get encapsulation() { return "shadow"; }
|
|
@@ -72,7 +72,7 @@ export class WorkflowSteps {
|
|
|
72
72
|
this.updateSteps();
|
|
73
73
|
}
|
|
74
74
|
render() {
|
|
75
|
-
return (h(Host, { key: '
|
|
75
|
+
return (h(Host, { key: '66d54af6c64b30b77aeb613c12fca16b9f4db815' }, h("div", { key: 'c808cfa588110a8df4d2266cc55e6211a0afb697', class: { steps: true, vertical: this.vertical } }, h("slot", { key: 'f713ffae56fdb063c5161965581f19eaef5798d3' }))));
|
|
76
76
|
}
|
|
77
77
|
static get is() { return "ix-workflow-steps"; }
|
|
78
78
|
static get encapsulation() { return "shadow"; }
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* SPDX-FileCopyrightText: 2024 Siemens AG
|
|
3
|
+
*
|
|
4
|
+
* SPDX-License-Identifier: MIT
|
|
5
|
+
*
|
|
6
|
+
* This source code is licensed under the MIT license found in the
|
|
7
|
+
* LICENSE file in the root directory of this source tree.
|
|
8
|
+
*/
|
|
9
|
+
import { expect } from "@playwright/test";
|
|
10
|
+
import { regressionTest } from "../utils/test/index";
|
|
11
|
+
regressionTest.describe('html-tags', () => {
|
|
12
|
+
regressionTest('basic', async ({ page }) => {
|
|
13
|
+
await page.goto('html-tags/basic');
|
|
14
|
+
expect(await page.screenshot({ fullPage: true })).toMatchSnapshot();
|
|
15
|
+
});
|
|
16
|
+
});
|
|
17
|
+
//# sourceMappingURL=html-tags.e2e.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"html-tags.e2e.js","sourceRoot":"","sources":["../../../src/tests/html-tags/html-tags.e2e.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,cAAc,CAAC,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;IACxC,cAAc,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;QACzC,MAAM,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACnC,MAAM,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC;IACtE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["/*\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 { expect } from '@playwright/test';\nimport { regressionTest } from '@utils/test';\n\nregressionTest.describe('html-tags', () => {\n regressionTest('basic', async ({ page }) => {\n await page.goto('html-tags/basic');\n expect(await page.screenshot({ fullPage: true })).toMatchSnapshot();\n });\n});\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"app-globals-
|
|
1
|
+
{"file":"app-globals-40082a83.js","mappings":";;AACY,MAAC,aAAa,GAAG;;;;","names":[],"sources":["@stencil/core/internal/app-globals"],"sourcesContent":["import appGlobalScript from '/home/runner/work/ix/ix/packages/core/src/setup.ts';\nexport const globalScripts = appGlobalScript;\n"],"version":3}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
|
|
2
2
|
|
|
3
3
|
var coreJs$1 = {};
|
|
4
4
|
|
|
@@ -21,4 +21,4 @@ const coreJs = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.assign(/*#__PURE__
|
|
|
21
21
|
|
|
22
22
|
export { coreJs as c };
|
|
23
23
|
|
|
24
|
-
//# sourceMappingURL=core-js-
|
|
24
|
+
//# sourceMappingURL=core-js-4a847feb.js.map
|