@oiz/stzh-components 2.6.0-aalpha → 2.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/{app-globals-2de776c8.js → app-globals-4dcdf160.js} +2 -2
- package/dist/cjs/{app-globals-2de776c8.js.map → app-globals-4dcdf160.js.map} +1 -1
- package/dist/cjs/index.cjs.js.map +1 -1
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/stzh-actions.cjs.entry.js +1 -5
- package/dist/cjs/stzh-actions.cjs.entry.js.map +1 -1
- package/dist/cjs/stzh-actionset.cjs.entry.js +2 -2
- package/dist/cjs/stzh-actionset.cjs.entry.js.map +1 -1
- package/dist/cjs/stzh-amount.cjs.entry.js +74 -20
- package/dist/cjs/stzh-amount.cjs.entry.js.map +1 -1
- package/dist/cjs/stzh-badge_3.cjs.entry.js +2 -2
- package/dist/cjs/stzh-badge_3.cjs.entry.js.map +1 -1
- package/dist/cjs/stzh-checkbox.cjs.entry.js.map +1 -1
- package/dist/cjs/stzh-checkboxgroup.cjs.entry.js.map +1 -1
- package/dist/cjs/stzh-components.cjs.js +2 -2
- package/dist/cjs/stzh-datatable.cjs.entry.js +2 -2
- package/dist/cjs/stzh-datatable.cjs.entry.js.map +1 -1
- package/dist/cjs/stzh-datepicker_3.cjs.entry.js.map +1 -1
- package/dist/cjs/stzh-dropdown.cjs.entry.js +4 -4
- package/dist/cjs/stzh-dropdown.cjs.entry.js.map +1 -1
- package/dist/cjs/stzh-ghettobox_2.cjs.entry.js +1 -1
- package/dist/cjs/stzh-ghettobox_2.cjs.entry.js.map +1 -1
- package/dist/cjs/stzh-input.cjs.entry.js.map +1 -1
- package/dist/cjs/stzh-invert.cjs.entry.js +1 -1
- package/dist/cjs/stzh-invert.cjs.entry.js.map +1 -1
- package/dist/cjs/stzh-table.cjs.entry.js +2 -2
- package/dist/cjs/stzh-table.cjs.entry.js.map +1 -1
- package/dist/cjs/stzh-toggle.cjs.entry.js.map +1 -1
- package/dist/cjs/stzh-upload.cjs.entry.js +19 -7
- package/dist/cjs/stzh-upload.cjs.entry.js.map +1 -1
- package/dist/collection/assets/i18n/de.json +7 -0
- package/dist/collection/assets/i18n/en.json +7 -0
- package/dist/collection/components/stzh-actions/stzh-actions.js +1 -5
- package/dist/collection/components/stzh-actions/stzh-actions.js.map +1 -1
- package/dist/collection/components/stzh-actionset/stzh-actionset.js +2 -2
- package/dist/collection/components/stzh-actionset/stzh-actionset.js.map +1 -1
- package/dist/collection/components/stzh-amount/stzh-amount.css +1 -0
- package/dist/collection/components/stzh-amount/stzh-amount.js +127 -29
- package/dist/collection/components/stzh-amount/stzh-amount.js.map +1 -1
- package/dist/collection/components/stzh-amount/stzh-amount.localization.js +2 -0
- package/dist/collection/components/stzh-amount/stzh-amount.localization.js.map +1 -0
- package/dist/collection/components/stzh-amount/stzh-amount.stories.js +17 -2
- package/dist/collection/components/stzh-button/stzh-button.css +2 -2
- package/dist/collection/components/stzh-button/stzh-button.js +1 -1
- package/dist/collection/components/stzh-button/stzh-button.js.map +1 -1
- package/dist/collection/components/stzh-chart/stzh-chart.stories.js +1 -3
- package/dist/collection/components/stzh-checkbox/stzh-checkbox.js +1 -1
- package/dist/collection/components/stzh-checkbox/stzh-checkbox.js.map +1 -1
- package/dist/collection/components/stzh-checkboxgroup/stzh-checkboxgroup.js +1 -1
- package/dist/collection/components/stzh-checkboxgroup/stzh-checkboxgroup.js.map +1 -1
- package/dist/collection/components/stzh-datatable/stzh-datatable.css +18 -19
- package/dist/collection/components/stzh-datatable/stzh-datatable.js +2 -2
- package/dist/collection/components/stzh-datatable/stzh-datatable.js.map +1 -1
- package/dist/collection/components/stzh-datatable/stzh-datatable.stories.js +1 -0
- package/dist/collection/components/stzh-datepicker/stzh-datepicker.js +1 -1
- package/dist/collection/components/stzh-datepicker/stzh-datepicker.js.map +1 -1
- package/dist/collection/components/stzh-dropdown/stzh-dropdown.css +11 -0
- package/dist/collection/components/stzh-dropdown/stzh-dropdown.js +3 -3
- package/dist/collection/components/stzh-dropdown/stzh-dropdown.js.map +1 -1
- package/dist/collection/components/stzh-ghettobox/stzh-ghettobox.css +4 -4
- package/dist/collection/components/stzh-input/stzh-input.js +1 -1
- package/dist/collection/components/stzh-input/stzh-input.js.map +1 -1
- package/dist/collection/components/stzh-invert/stzh-invert.css +2 -2
- package/dist/collection/components/stzh-radio/stzh-radio.js +1 -1
- package/dist/collection/components/stzh-radio/stzh-radio.js.map +1 -1
- package/dist/collection/components/stzh-radiogroup/stzh-radiogroup.js +1 -1
- package/dist/collection/components/stzh-radiogroup/stzh-radiogroup.js.map +1 -1
- package/dist/collection/components/stzh-table/stzh-table.css +18 -19
- package/dist/collection/components/stzh-table/stzh-table.js +2 -1
- package/dist/collection/components/stzh-table/stzh-table.js.map +1 -1
- package/dist/collection/components/stzh-table/stzh-table.stories.js +1 -0
- package/dist/collection/components/stzh-textandimage/stzh-textandimage.stories.js +1 -1
- package/dist/collection/components/stzh-toggle/stzh-toggle.js +1 -1
- package/dist/collection/components/stzh-toggle/stzh-toggle.js.map +1 -1
- package/dist/collection/components/stzh-upload/stzh-upload.js +53 -3
- package/dist/collection/components/stzh-upload/stzh-upload.js.map +1 -1
- package/dist/collection/index.js.map +1 -1
- package/dist/collection/libraries/dropzone/dropzone-amd-module.js +11 -5
- package/dist/collection/libraries/dropzone/dropzone.js +11 -5
- package/dist/collection/libraries/dropzone/min/dropzone-amd-module.min.js +1 -1
- package/dist/collection/libraries/dropzone/min/dropzone.min.js +1 -1
- package/dist/components/index.js +1 -1
- package/dist/components/index2.js.map +1 -1
- package/dist/components/stzh-actions.js +1 -5
- package/dist/components/stzh-actions.js.map +1 -1
- package/dist/components/stzh-actionset2.js +2 -2
- package/dist/components/stzh-actionset2.js.map +1 -1
- package/dist/components/stzh-amount.js +85 -30
- package/dist/components/stzh-amount.js.map +1 -1
- package/dist/components/stzh-button2.js +2 -2
- package/dist/components/stzh-button2.js.map +1 -1
- package/dist/components/stzh-checkbox.js.map +1 -1
- package/dist/components/stzh-checkboxgroup.js.map +1 -1
- package/dist/components/stzh-datatable.js +2 -2
- package/dist/components/stzh-datatable.js.map +1 -1
- package/dist/components/stzh-datepicker2.js.map +1 -1
- package/dist/components/stzh-dropdown2.js +4 -4
- package/dist/components/stzh-dropdown2.js.map +1 -1
- package/dist/components/stzh-ghettobox2.js +1 -1
- package/dist/components/stzh-ghettobox2.js.map +1 -1
- package/dist/components/stzh-input2.js.map +1 -1
- package/dist/components/stzh-invert.js +1 -1
- package/dist/components/stzh-invert.js.map +1 -1
- package/dist/components/stzh-radio2.js.map +1 -1
- package/dist/components/stzh-radiogroup2.js.map +1 -1
- package/dist/components/stzh-table.js +2 -2
- package/dist/components/stzh-table.js.map +1 -1
- package/dist/components/stzh-toggle.js.map +1 -1
- package/dist/components/stzh-upload.js +22 -8
- package/dist/components/stzh-upload.js.map +1 -1
- package/dist/esm/{app-globals-08f8b108.js → app-globals-91875913.js} +2 -2
- package/dist/esm/{app-globals-08f8b108.js.map → app-globals-91875913.js.map} +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/loader.js +2 -2
- package/dist/esm/stzh-actions.entry.js +1 -5
- package/dist/esm/stzh-actions.entry.js.map +1 -1
- package/dist/esm/stzh-actionset.entry.js +2 -2
- package/dist/esm/stzh-actionset.entry.js.map +1 -1
- package/dist/esm/stzh-amount.entry.js +75 -21
- package/dist/esm/stzh-amount.entry.js.map +1 -1
- package/dist/esm/stzh-badge_3.entry.js +2 -2
- package/dist/esm/stzh-badge_3.entry.js.map +1 -1
- package/dist/esm/stzh-checkbox.entry.js.map +1 -1
- package/dist/esm/stzh-checkboxgroup.entry.js.map +1 -1
- package/dist/esm/stzh-components.js +2 -2
- package/dist/esm/stzh-datatable.entry.js +2 -2
- package/dist/esm/stzh-datatable.entry.js.map +1 -1
- package/dist/esm/stzh-datepicker_3.entry.js.map +1 -1
- package/dist/esm/stzh-dropdown.entry.js +4 -4
- package/dist/esm/stzh-dropdown.entry.js.map +1 -1
- package/dist/esm/stzh-ghettobox_2.entry.js +1 -1
- package/dist/esm/stzh-ghettobox_2.entry.js.map +1 -1
- package/dist/esm/stzh-input.entry.js.map +1 -1
- package/dist/esm/stzh-invert.entry.js +1 -1
- package/dist/esm/stzh-invert.entry.js.map +1 -1
- package/dist/esm/stzh-table.entry.js +2 -2
- package/dist/esm/stzh-table.entry.js.map +1 -1
- package/dist/esm/stzh-toggle.entry.js.map +1 -1
- package/dist/esm/stzh-upload.entry.js +19 -7
- package/dist/esm/stzh-upload.entry.js.map +1 -1
- package/dist/esm-es5/{app-globals-08f8b108.js → app-globals-91875913.js} +2 -2
- package/dist/esm-es5/{app-globals-08f8b108.js.map → app-globals-91875913.js.map} +1 -1
- package/dist/esm-es5/index.js.map +1 -1
- package/dist/esm-es5/loader.js +1 -1
- package/dist/esm-es5/loader.js.map +1 -1
- package/dist/esm-es5/stzh-actions.entry.js +1 -1
- package/dist/esm-es5/stzh-actions.entry.js.map +1 -1
- package/dist/esm-es5/stzh-actionset.entry.js +1 -1
- package/dist/esm-es5/stzh-actionset.entry.js.map +1 -1
- package/dist/esm-es5/stzh-amount.entry.js +1 -1
- package/dist/esm-es5/stzh-amount.entry.js.map +1 -1
- package/dist/esm-es5/stzh-badge_3.entry.js +1 -1
- package/dist/esm-es5/stzh-badge_3.entry.js.map +1 -1
- package/dist/esm-es5/stzh-checkbox.entry.js.map +1 -1
- package/dist/esm-es5/stzh-checkboxgroup.entry.js.map +1 -1
- package/dist/esm-es5/stzh-components.js +1 -1
- package/dist/esm-es5/stzh-components.js.map +1 -1
- package/dist/esm-es5/stzh-datatable.entry.js +1 -1
- package/dist/esm-es5/stzh-datatable.entry.js.map +1 -1
- package/dist/esm-es5/stzh-datepicker_3.entry.js.map +1 -1
- package/dist/esm-es5/stzh-dropdown.entry.js +1 -1
- package/dist/esm-es5/stzh-dropdown.entry.js.map +1 -1
- package/dist/esm-es5/stzh-ghettobox_2.entry.js +1 -1
- package/dist/esm-es5/stzh-ghettobox_2.entry.js.map +1 -1
- package/dist/esm-es5/stzh-input.entry.js.map +1 -1
- package/dist/esm-es5/stzh-invert.entry.js +1 -1
- package/dist/esm-es5/stzh-invert.entry.js.map +1 -1
- package/dist/esm-es5/stzh-table.entry.js +1 -1
- package/dist/esm-es5/stzh-table.entry.js.map +1 -1
- package/dist/esm-es5/stzh-toggle.entry.js.map +1 -1
- package/dist/esm-es5/stzh-upload.entry.js +1 -1
- package/dist/esm-es5/stzh-upload.entry.js.map +1 -1
- package/dist/stzh-components/assets/i18n/de.json +7 -0
- package/dist/stzh-components/assets/i18n/en.json +7 -0
- package/dist/stzh-components/index.esm.js.map +1 -1
- package/dist/stzh-components/{p-8228cd4c.system.entry.js → p-09191103.system.entry.js} +2 -2
- package/dist/stzh-components/{p-8228cd4c.system.entry.js.map → p-09191103.system.entry.js.map} +1 -1
- package/dist/stzh-components/p-0f328a2d.system.entry.js +2 -0
- package/dist/stzh-components/{p-12964da2.system.entry.js.map → p-0f328a2d.system.entry.js.map} +1 -1
- package/dist/stzh-components/{p-772ca734.entry.js → p-1cc48f98.entry.js} +5 -5
- package/dist/stzh-components/{p-772ca734.entry.js.map → p-1cc48f98.entry.js.map} +1 -1
- package/dist/stzh-components/p-2615433f.system.entry.js +2 -0
- package/dist/stzh-components/p-2615433f.system.entry.js.map +1 -0
- package/dist/stzh-components/p-2907f1b5.entry.js +2 -0
- package/dist/stzh-components/{p-72da8eba.entry.js.map → p-2907f1b5.entry.js.map} +1 -1
- package/dist/stzh-components/{p-728cc738.entry.js → p-2d25bcc8.entry.js} +2 -2
- package/dist/stzh-components/p-2d25bcc8.entry.js.map +1 -0
- package/dist/stzh-components/p-2f3add2f.system.entry.js +2 -0
- package/dist/stzh-components/{p-0fa1dc9b.system.entry.js.map → p-2f3add2f.system.entry.js.map} +1 -1
- package/dist/stzh-components/{p-8cf10d79.js → p-362af013.js} +2 -2
- package/dist/stzh-components/{p-8cf10d79.js.map → p-362af013.js.map} +1 -1
- package/dist/stzh-components/p-39a4904e.system.entry.js.map +1 -1
- package/dist/stzh-components/p-3aa5623c.entry.js.map +1 -1
- package/dist/stzh-components/p-3cb43903.entry.js.map +1 -1
- package/dist/stzh-components/p-3d056a49.entry.js +2 -0
- package/dist/stzh-components/{p-a8cd5621.entry.js.map → p-3d056a49.entry.js.map} +1 -1
- package/dist/stzh-components/p-3e10addb.system.js +2 -0
- package/dist/stzh-components/{p-4b07ade3.system.js.map → p-3e10addb.system.js.map} +1 -1
- package/dist/stzh-components/p-49a0420a.entry.js +2 -0
- package/dist/stzh-components/{p-8bbb27f2.entry.js.map → p-49a0420a.entry.js.map} +1 -1
- package/dist/stzh-components/p-5d8ad1f4.system.entry.js.map +1 -1
- package/dist/stzh-components/{p-ea158f08.system.js → p-61b66e55.system.js} +2 -2
- package/dist/stzh-components/{p-ea158f08.system.js.map → p-61b66e55.system.js.map} +1 -1
- package/dist/stzh-components/{p-6ee544b4.entry.js → p-62188444.entry.js} +2 -2
- package/dist/stzh-components/{p-6ee544b4.entry.js.map → p-62188444.entry.js.map} +1 -1
- package/dist/stzh-components/p-67b11b03.system.entry.js +2 -0
- package/dist/stzh-components/p-67b11b03.system.entry.js.map +1 -0
- package/dist/stzh-components/{p-f223ed11.system.entry.js → p-6bb83b30.system.entry.js} +4 -4
- package/dist/stzh-components/{p-f223ed11.system.entry.js.map → p-6bb83b30.system.entry.js.map} +1 -1
- package/dist/stzh-components/{p-e683abe3.system.entry.js → p-6d097e82.system.entry.js} +2 -2
- package/dist/stzh-components/p-6d097e82.system.entry.js.map +1 -0
- package/dist/stzh-components/{p-88cd596e.system.entry.js → p-80d581ac.system.entry.js} +2 -2
- package/dist/stzh-components/p-80d581ac.system.entry.js.map +1 -0
- package/dist/stzh-components/p-82e886d4.entry.js.map +1 -1
- package/dist/stzh-components/{p-d69b11ec.system.entry.js → p-94a5e295.system.entry.js} +2 -2
- package/dist/stzh-components/p-94a5e295.system.entry.js.map +1 -0
- package/dist/stzh-components/p-9b7d4e8d.entry.js.map +1 -1
- package/dist/stzh-components/p-9d46101e.entry.js +2 -0
- package/dist/stzh-components/p-9d46101e.entry.js.map +1 -0
- package/dist/stzh-components/p-a2bdc528.system.entry.js +2 -0
- package/dist/stzh-components/{p-7902eb77.system.entry.js.map → p-a2bdc528.system.entry.js.map} +1 -1
- package/dist/stzh-components/p-b05c240b.system.entry.js.map +1 -1
- package/dist/stzh-components/p-b8ad5f47.system.entry.js.map +1 -1
- package/dist/stzh-components/{p-5e09547b.entry.js → p-bcd5b20e.entry.js} +2 -2
- package/dist/stzh-components/p-bcd5b20e.entry.js.map +1 -0
- package/dist/stzh-components/p-c94f7331.entry.js +2 -0
- package/dist/stzh-components/p-c94f7331.entry.js.map +1 -0
- package/dist/stzh-components/p-cc35e963.entry.js.map +1 -1
- package/dist/stzh-components/{p-3c86c595.entry.js → p-d5b4d345.entry.js} +2 -2
- package/dist/stzh-components/p-d5b4d345.entry.js.map +1 -0
- package/dist/stzh-components/p-eaa65f52.system.js.map +1 -1
- package/dist/stzh-components/p-f2d74491.system.entry.js.map +1 -1
- package/dist/stzh-components/stzh-components.esm.js +1 -1
- package/dist/stzh-components/stzh-components.esm.js.map +1 -1
- package/dist/stzh-components/stzh-components.js +1 -1
- package/dist/types/components/stzh-amount/stzh-amount.localization.d.ts +8 -0
- package/dist/types/components.d.ts +38 -18
- package/dist/types/index.d.ts +5 -0
- package/dist/vscode-data.json +19 -7
- package/package.json +1 -1
- package/dist/stzh-components/p-0fa1dc9b.system.entry.js +0 -2
- package/dist/stzh-components/p-12964da2.system.entry.js +0 -2
- package/dist/stzh-components/p-3c86c595.entry.js.map +0 -1
- package/dist/stzh-components/p-427461c5.system.entry.js +0 -2
- package/dist/stzh-components/p-427461c5.system.entry.js.map +0 -1
- package/dist/stzh-components/p-4b07ade3.system.js +0 -2
- package/dist/stzh-components/p-5e09547b.entry.js.map +0 -1
- package/dist/stzh-components/p-66c1942a.entry.js +0 -2
- package/dist/stzh-components/p-66c1942a.entry.js.map +0 -1
- package/dist/stzh-components/p-728cc738.entry.js.map +0 -1
- package/dist/stzh-components/p-72da8eba.entry.js +0 -2
- package/dist/stzh-components/p-7902eb77.system.entry.js +0 -2
- package/dist/stzh-components/p-88cd596e.system.entry.js.map +0 -1
- package/dist/stzh-components/p-8bbb27f2.entry.js +0 -2
- package/dist/stzh-components/p-a8cd5621.entry.js +0 -2
- package/dist/stzh-components/p-d69b11ec.system.entry.js.map +0 -1
- package/dist/stzh-components/p-e683abe3.system.entry.js.map +0 -1
- package/dist/stzh-components/p-f533c689.system.entry.js +0 -2
- package/dist/stzh-components/p-f533c689.system.entry.js.map +0 -1
- package/dist/stzh-components/p-fc3e596a.entry.js +0 -2
- package/dist/stzh-components/p-fc3e596a.entry.js.map +0 -1
- package/dist/types/components/stzh-amount/stzh-amount.d.ts +0 -64
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["stzhTableCss","CLASS_HAS_STICKED","CLASS_IS_STICKY_LEFT","CLASS_IS_STICKY_RIGHT","StzhTable","this","updateCellClasses","_this","tableWrapper","rows","Array","from","querySelectorAll","forEach","row","cells","children","cell","index","classList","remove","fixedLeft","add","fixedRight","updateScrollStates","wrapperScrollLeft","scrollLeft","wrapperScrollWidth","scrollWidth","wrapperClientWidth","clientWidth","isScrollable","hasScrollLeft","hasScrollRight","firstRow","cellsStickyLeft","cellsStickyRight","offsetLeft","offsetRight","offsetWidth","Math","ceil","push","indexOf","init","searchInput","element","querySelector","setPropsIfNull","size","handleResize","debounceResize","window","cancelAnimationFrame","requestAnimationFrame","handleScroll","debounceScroll","prototype","fixedCellWatcher","connectedCallback","observer","MutationObserver","observe","childList","subtree","resizeObserver","ResizeObserver","disconnectedCallback","disconnect","render","classes","length","h","Host","class","name","ref","el","onScroll"],"sources":["src/components/stzh-table/stzh-table.scss?tag=stzh-table","src/components/stzh-table/stzh-table.tsx"],"sourcesContent":["stzh-table {\n @include host;\n @include table-host();\n}\n\n.stzh-table {\n @include table(\"table\");\n}\n","import {\n Component,\n Host,\n h,\n Element,\n Prop,\n State,\n Watch\n} from \"@stencil/core\";\n\nimport { setPropsIfNull } from \"../../utils/utils\";\n\nconst CLASS_HAS_STICKED = \"has-sticked\";\nconst CLASS_IS_STICKY_LEFT = \"is-sticky-left\";\nconst CLASS_IS_STICKY_RIGHT = \"is-sticky-right\";\n\n/**\n * @slot - Slot for table element\n * @slot heading - Slot for `stzh-heading`\n * @slot search - Slot for search `stzh-input` element\n *\n * @prop --max-height: Maximum height of table\n * @prop --min-width: Minium width of table\n * @prop --cell-padding: Cells padding\n */\n@Component({\n tag: \"stzh-table\",\n styleUrl: \"stzh-table.scss\"\n})\nexport class StzhTable {\n /** Columns that should be sticky on the left side (column indexes separated by comma) */\n @Prop() fixedLeft: number = null;\n\n /** Columns that should be sticky on the right side (column indexes separated by comma) */\n @Prop() fixedRight: number = null;\n\n /**\n * Whether to disable min-width of the table.\n *\n * If `false`, the default `min-width` is `700px`\n * If `true`, the `min-width` is `none`, so the table will try to squeeze down content as much as possible.\n *\n * You can also overwrite the min-width via CSS with the custom property `--min-width`.\n */\n @Prop({ reflect: true }) disableMinWidth: boolean = false;\n\n @State() hasScrollLeft: boolean = false;\n @State() hasScrollRight: boolean = false;\n @State() isScrollable: boolean = false;\n @State() cellsStickyLeft: number[] = [];\n @State() cellsStickyRight: number[] = [];\n\n @Element() element: HTMLStzhTableElement;\n\n @Watch(\"fixedLeft\")\n @Watch(\"fixedRight\")\n fixedCellWatcher() {\n this.updateCellClasses();\n this.updateScrollStates();\n }\n\n private tableWrapper: HTMLDivElement;\n private observer: MutationObserver;\n private debounceScroll: number;\n\n private debounceResize: number;\n private resizeObserver: ResizeObserver;\n\n private updateCellClasses = () => {\n if (!this.tableWrapper) {\n return;\n }\n\n const rows: HTMLTableRowElement[] = Array.from(this.tableWrapper.querySelectorAll(\"tr\"));\n rows.forEach((row: HTMLTableRowElement) => {\n const cells = Array.from(row.children);\n cells.forEach((cell: HTMLTableCellElement, index) => {\n cell.classList.remove(CLASS_IS_STICKY_LEFT);\n cell.classList.remove(CLASS_IS_STICKY_RIGHT);\n\n if (index === this.fixedLeft) {\n cell.classList.add(CLASS_IS_STICKY_LEFT);\n }\n\n if (index === this.fixedRight) {\n cell.classList.add(CLASS_IS_STICKY_RIGHT);\n }\n });\n });\n }\n\n private updateScrollStates = () => {\n if (!this.tableWrapper) {\n return;\n }\n\n const wrapperScrollLeft = this.tableWrapper.scrollLeft;\n const wrapperScrollWidth = this.tableWrapper.scrollWidth;\n const wrapperClientWidth = this.tableWrapper.clientWidth;\n\n this.isScrollable = wrapperScrollWidth > wrapperClientWidth;\n this.hasScrollLeft = wrapperScrollLeft > 0;\n this.hasScrollRight = wrapperScrollLeft < wrapperScrollWidth - wrapperClientWidth;\n\n const rows: HTMLTableRowElement[] = Array.from(this.tableWrapper.querySelectorAll(\"tr\"));\n const firstRow = rows[0];\n\n if (!firstRow) {\n return;\n }\n\n this.cellsStickyLeft = [];\n this.cellsStickyRight = [];\n const cells: Element[] = Array.from(firstRow.children);\n\n cells.forEach((cell: HTMLTableCellElement, index: number) => {\n const offsetLeft = cell.offsetLeft;\n const offsetRight = offsetLeft + cell.offsetWidth;\n\n if (\n this.hasScrollLeft\n && index === this.fixedLeft\n && Math.ceil(wrapperScrollLeft) >= offsetLeft\n ) {\n this.cellsStickyLeft.push(index);\n }\n\n if (\n this.hasScrollRight\n && index === this.fixedRight\n && Math.ceil(wrapperScrollLeft) + wrapperClientWidth <= offsetRight\n ) {\n this.cellsStickyRight.push(index);\n }\n });\n\n rows.forEach((row: HTMLTableRowElement) => {\n const cells = Array.from(row.children);\n cells.forEach((cell: HTMLTableCellElement, index: number) => {\n if (\n this.cellsStickyLeft.indexOf(index) > -1\n || this.cellsStickyRight.indexOf(index) > -1\n ) {\n cell.classList.add(CLASS_HAS_STICKED);\n } else {\n cell.classList.remove(CLASS_HAS_STICKED);\n }\n });\n });\n }\n\n private init = () => {\n const searchInput = this.element.querySelector(\n 'stzh-input[slot=\"search\"], [slot=\"search\"] stzh-input'\n );\n\n if (searchInput) {\n setPropsIfNull(searchInput, {\n size: \"small\"\n } as HTMLStzhInputElement)\n }\n\n this.updateCellClasses();\n this.updateScrollStates();\n }\n\n handleResize = () => {\n if (this.debounceResize) {\n window.cancelAnimationFrame(this.debounceResize);\n }\n\n this.debounceResize = requestAnimationFrame(this.updateScrollStates);\n }\n\n private handleScroll = () => {\n if (this.debounceScroll) {\n window.cancelAnimationFrame(this.debounceScroll);\n }\n\n this.debounceScroll = requestAnimationFrame(this.updateScrollStates);\n }\n\n connectedCallback() {\n this.init();\n\n this.observer = new MutationObserver(this.init);\n this.observer.observe(this.element, {\n childList: true,\n subtree: true\n });\n\n this.resizeObserver = new ResizeObserver(this.handleResize);\n this.resizeObserver.observe(this.element);\n }\n\n disconnectedCallback() {\n if (this.observer) {\n this.observer.disconnect();\n }\n\n if (this.resizeObserver) {\n this.resizeObserver.disconnect();\n }\n }\n\n render() {\n const classes = {\n \"stzh-table\": true,\n \"is-scrollable\": this.isScrollable,\n \"has-scroll-left\": this.hasScrollLeft,\n \"has-scroll-right\": this.hasScrollRight,\n \"has-scroll-left-shadow\": this.hasScrollLeft && this.cellsStickyLeft.length === 0,\n \"has-scroll-right-shadow\": this.hasScrollRight && this.cellsStickyRight.length === 0\n };\n\n return (\n <Host>\n <div class={classes}>\n <div class=\"stzh-table__header\">\n <div class=\"stzh-table__heading\">\n <slot name=\"heading\"></slot>\n </div>\n <div class=\"stzh-table__search\">\n <slot name=\"search\"></slot>\n </div>\n </div>\n <div class=\"stzh-table__outer-wrapper\">\n <div\n ref={(el) => (this.tableWrapper = el as HTMLDivElement)}\n class=\"stzh-table__wrapper\"\n onScroll={this.handleScroll}\n >\n <slot></slot>\n </div>\n </div>\n </div>\n </Host>\n );\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["stzhTableCss","CLASS_HAS_STICKED","CLASS_IS_STICKY_LEFT","CLASS_IS_STICKY_RIGHT","StzhTable","this","updateCellClasses","_this","tableWrapper","rows","Array","from","querySelectorAll","forEach","row","cells","children","cell","index","classList","remove","fixedLeft","add","fixedRight","updateScrollStates","wrapperScrollLeft","scrollLeft","wrapperScrollWidth","scrollWidth","wrapperClientWidth","clientWidth","isScrollable","hasScrollLeft","hasScrollRight","firstRow","cellsStickyLeft","cellsStickyRight","offsetLeft","offsetRight","offsetWidth","Math","ceil","push","indexOf","init","searchInput","element","querySelector","setPropsIfNull","size","handleResize","debounceResize","window","cancelAnimationFrame","requestAnimationFrame","handleScroll","debounceScroll","prototype","fixedCellWatcher","connectedCallback","observer","MutationObserver","observe","childList","subtree","resizeObserver","ResizeObserver","disconnectedCallback","disconnect","render","classes","length","h","Host","class","name","ref","el","onScroll"],"sources":["src/components/stzh-table/stzh-table.scss?tag=stzh-table","src/components/stzh-table/stzh-table.tsx"],"sourcesContent":["stzh-table {\n @include host;\n @include table-host();\n}\n\n.stzh-table {\n @include table(\"table\");\n}\n","import {\n Component,\n Host,\n h,\n Element,\n Prop,\n State,\n Watch\n} from \"@stencil/core\";\n\nimport { setPropsIfNull } from \"../../utils/utils\";\n\nconst CLASS_HAS_STICKED = \"has-sticked\";\nconst CLASS_IS_STICKY_LEFT = \"is-sticky-left\";\nconst CLASS_IS_STICKY_RIGHT = \"is-sticky-right\";\n\n/**\n * @slot - Slot for table element\n * @slot heading - Slot for `stzh-heading`\n * @slot search - Slot for search `stzh-input` element\n * @slot action-button - Slot for action `stzh-button` element\n *\n * @prop --max-height: Maximum height of table\n * @prop --min-width: Minium width of table\n * @prop --cell-padding: Cells padding\n */\n@Component({\n tag: \"stzh-table\",\n styleUrl: \"stzh-table.scss\"\n})\nexport class StzhTable {\n /** Columns that should be sticky on the left side (column indexes separated by comma) */\n @Prop() fixedLeft: number = null;\n\n /** Columns that should be sticky on the right side (column indexes separated by comma) */\n @Prop() fixedRight: number = null;\n\n /**\n * Whether to disable min-width of the table.\n *\n * If `false`, the default `min-width` is `700px`\n * If `true`, the `min-width` is `none`, so the table will try to squeeze down content as much as possible.\n *\n * You can also overwrite the min-width via CSS with the custom property `--min-width`.\n */\n @Prop({ reflect: true }) disableMinWidth: boolean = false;\n\n @State() hasScrollLeft: boolean = false;\n @State() hasScrollRight: boolean = false;\n @State() isScrollable: boolean = false;\n @State() cellsStickyLeft: number[] = [];\n @State() cellsStickyRight: number[] = [];\n\n @Element() element: HTMLStzhTableElement;\n\n @Watch(\"fixedLeft\")\n @Watch(\"fixedRight\")\n fixedCellWatcher() {\n this.updateCellClasses();\n this.updateScrollStates();\n }\n\n private tableWrapper: HTMLDivElement;\n private observer: MutationObserver;\n private debounceScroll: number;\n\n private debounceResize: number;\n private resizeObserver: ResizeObserver;\n\n private updateCellClasses = () => {\n if (!this.tableWrapper) {\n return;\n }\n\n const rows: HTMLTableRowElement[] = Array.from(this.tableWrapper.querySelectorAll(\"tr\"));\n rows.forEach((row: HTMLTableRowElement) => {\n const cells = Array.from(row.children);\n cells.forEach((cell: HTMLTableCellElement, index) => {\n cell.classList.remove(CLASS_IS_STICKY_LEFT);\n cell.classList.remove(CLASS_IS_STICKY_RIGHT);\n\n if (index === this.fixedLeft) {\n cell.classList.add(CLASS_IS_STICKY_LEFT);\n }\n\n if (index === this.fixedRight) {\n cell.classList.add(CLASS_IS_STICKY_RIGHT);\n }\n });\n });\n }\n\n private updateScrollStates = () => {\n if (!this.tableWrapper) {\n return;\n }\n\n const wrapperScrollLeft = this.tableWrapper.scrollLeft;\n const wrapperScrollWidth = this.tableWrapper.scrollWidth;\n const wrapperClientWidth = this.tableWrapper.clientWidth;\n\n this.isScrollable = wrapperScrollWidth > wrapperClientWidth;\n this.hasScrollLeft = wrapperScrollLeft > 0;\n this.hasScrollRight = wrapperScrollLeft < wrapperScrollWidth - wrapperClientWidth;\n\n const rows: HTMLTableRowElement[] = Array.from(this.tableWrapper.querySelectorAll(\"tr\"));\n const firstRow = rows[0];\n\n if (!firstRow) {\n return;\n }\n\n this.cellsStickyLeft = [];\n this.cellsStickyRight = [];\n const cells: Element[] = Array.from(firstRow.children);\n\n cells.forEach((cell: HTMLTableCellElement, index: number) => {\n const offsetLeft = cell.offsetLeft;\n const offsetRight = offsetLeft + cell.offsetWidth;\n\n if (\n this.hasScrollLeft\n && index === this.fixedLeft\n && Math.ceil(wrapperScrollLeft) >= offsetLeft\n ) {\n this.cellsStickyLeft.push(index);\n }\n\n if (\n this.hasScrollRight\n && index === this.fixedRight\n && Math.ceil(wrapperScrollLeft) + wrapperClientWidth <= offsetRight\n ) {\n this.cellsStickyRight.push(index);\n }\n });\n\n rows.forEach((row: HTMLTableRowElement) => {\n const cells = Array.from(row.children);\n cells.forEach((cell: HTMLTableCellElement, index: number) => {\n if (\n this.cellsStickyLeft.indexOf(index) > -1\n || this.cellsStickyRight.indexOf(index) > -1\n ) {\n cell.classList.add(CLASS_HAS_STICKED);\n } else {\n cell.classList.remove(CLASS_HAS_STICKED);\n }\n });\n });\n }\n\n private init = () => {\n const searchInput = this.element.querySelector(\n 'stzh-input[slot=\"search\"], [slot=\"search\"] stzh-input'\n );\n\n if (searchInput) {\n setPropsIfNull(searchInput, {\n size: \"small\"\n } as HTMLStzhInputElement)\n }\n\n this.updateCellClasses();\n this.updateScrollStates();\n }\n\n handleResize = () => {\n if (this.debounceResize) {\n window.cancelAnimationFrame(this.debounceResize);\n }\n\n this.debounceResize = requestAnimationFrame(this.updateScrollStates);\n }\n\n private handleScroll = () => {\n if (this.debounceScroll) {\n window.cancelAnimationFrame(this.debounceScroll);\n }\n\n this.debounceScroll = requestAnimationFrame(this.updateScrollStates);\n }\n\n connectedCallback() {\n this.init();\n\n this.observer = new MutationObserver(this.init);\n this.observer.observe(this.element, {\n childList: true,\n subtree: true\n });\n\n this.resizeObserver = new ResizeObserver(this.handleResize);\n this.resizeObserver.observe(this.element);\n }\n\n disconnectedCallback() {\n if (this.observer) {\n this.observer.disconnect();\n }\n\n if (this.resizeObserver) {\n this.resizeObserver.disconnect();\n }\n }\n\n render() {\n const classes = {\n \"stzh-table\": true,\n \"is-scrollable\": this.isScrollable,\n \"has-scroll-left\": this.hasScrollLeft,\n \"has-scroll-right\": this.hasScrollRight,\n \"has-scroll-left-shadow\": this.hasScrollLeft && this.cellsStickyLeft.length === 0,\n \"has-scroll-right-shadow\": this.hasScrollRight && this.cellsStickyRight.length === 0\n };\n\n return (\n <Host>\n <div class={classes}>\n <div class=\"stzh-table__header\">\n <div class=\"stzh-table__heading\">\n <slot name=\"heading\"></slot>\n </div> \n <div class=\"stzh-table__sub-header\">\n <div class=\"stzh-table__search\">\n <slot name=\"search\"></slot>\n </div>\n <div class=\"stzh-table__action-button\">\n <slot name=\"action-button\"></slot>\n </div>\n </div>\n </div>\n <div class=\"stzh-table__outer-wrapper\">\n <div\n ref={(el) => (this.tableWrapper = el as HTMLDivElement)}\n class=\"stzh-table__wrapper\"\n onScroll={this.handleScroll}\n >\n <slot></slot>\n </div>\n </div>\n </div>\n </Host>\n );\n }\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["stzhToggleCss","toggleCounter","StzhToggle","this","focusedByInput","onInput","event","_this","checked","input","stzhChange","emit","component","originalEvent","value","onRootFocus","setFocus","onFocus","focusEvent","FocusEvent","view","window","bubbles","cancelable","element","dispatchEvent","stzhFocus","onBlur","blurEvent","stzhBlur","class_1","prototype","focus","errorWatcher","newValue","_error","JSON","parse","e","invalid","length","componentWillLoad","inputId","concat","error","localization","_a","fetchTranslations","_b","sent","render","descriptionUsed","hasSlot","description","descriptionLongUsed","descriptionLong","errorUsed","classes","required","disabled","labelPosition","h","Host","tabindex","class","ref","el","type","id","name","a11yDescribedby","label","showMarker","$globals","requiredFieldMarker","optionalFieldMarker","requiredFieldText","optionalFieldText","StzhInputDescription","classPrefix","moreInfoButtonLabel"],"sources":["src/components/stzh-toggle/stzh-toggle.scss?tag=stzh-toggle&encapsulation=scoped","src/components/stzh-toggle/stzh-toggle.tsx"],"sourcesContent":[":host {\n display: inline-block;\n\n ::slotted(stzh-text) {\n --color: inherit;\n }\n}\n\n.stzh-toggle {\n @include input-description;\n\n &__field-wrapper {\n @include fontSize('milli');\n position: relative;\n display: flex;\n user-select: none;\n cursor: pointer;\n }\n\n &__input {\n @include visuallyhiddenInput;\n border-radius: $formInputBorderRadius;\n }\n\n &__mark {\n position: relative;\n background-color: $colorBlack8;\n width: 44px;\n height: 16px;\n flex-shrink: 0;\n border-radius: 12px;\n display: inline-flex;\n justify-content: center;\n align-items: center;\n transition: background-color $baseTransitionAnimationSpeed;\n margin-top: 4px;\n }\n\n &__check {\n position: absolute;\n border: 2px solid $baseColor;\n width: 24px;\n height: 24px;\n border-radius: 50%;\n background-color: $colorWhite;\n top: 50%;\n left: 0;\n transform: translate(0, -50%);\n transition-property: border-color, background-color, transform;\n transition-duration: $baseTransitionAnimationSpeed;\n }\n\n &__label {\n display: inline-block;\n color: $baseColor;\n transition: color $baseTransitionAnimationSpeed;\n line-height: 24px;\n\n &:empty {\n display: none;\n }\n }\n\n /* Hover / Focus / Checked */\n\n &__input:checked ~ &__mark {\n background-color: $colorPrimary48;\n }\n\n &__input:checked ~ &__mark &__check {\n border-color: $colorPrimary;\n background-color: $colorPrimary;\n transform: translate(100%, -50%);\n }\n\n &:hover &__label,\n &__input:checked:hover ~ &__label {\n color: $colorPrimaryHover;\n }\n\n &__input:checked ~ &__label {\n color: $colorPrimary;\n }\n\n &:hover &__mark &__check,\n &__input:focus:hover ~ &__mark &__check,\n &__input:checked:hover ~ &__mark &__check,\n &__input:checked:focus ~ &__mark &__check {\n border-color: $colorPrimaryHover;\n }\n\n\n &__input:checked:hover ~ &__mark &__check,\n &__input:checked:focus ~ &__mark &__check {\n background-color: $colorPrimaryHover;\n }\n\n /* Label right */\n\n &--has-label-right &__label {\n margin-left: space('xsmall');\n }\n\n /* Label left */\n\n &--has-label-left &__field-wrapper {\n flex-direction: row-reverse;\n }\n\n &--has-label-left &__label {\n margin-right: space('xsmall');\n }\n\n /* Invalid */\n\n &--is-invalid &__input ~ &__label {\n color: $colorError;\n }\n\n &--is-invalid &__input ~ &__mark &__check {\n border-color: $colorError;\n }\n\n &--is-invalid &__input:checked ~ &__mark {\n background-color: $colorBlack8;\n }\n\n &--is-invalid &__input:checked ~ &__mark &__check {\n background-color: $colorError;\n }\n\n /* Disabled */\n\n\t&--is-disabled &__field-wrapper {\n cursor: not-allowed;\n }\n\n &--is-disabled &__input ~ &__label {\n color: $formDisabledColor;\n }\n\n &--is-disabled &__input ~ &__mark &__check {\n border-color: $colorGrey13;\n }\n\n &--is-disabled &__input:checked ~ &__mark {\n background-color: $formDisabledBackgroundColor;\n }\n\n &--is-disabled &__input:checked ~ &__mark &__check {\n background-color: $colorGrey25;\n border-color: $colorGrey25;\n }\n}\n","import {\n Host,\n Component,\n Prop,\n Event,\n EventEmitter,\n Element,\n Method,\n h,\n Watch\n} from \"@stencil/core\";\n\nimport {\n StzhToggleChangeEvent,\n StzhToggleFocusEvent,\n StzhToggleBlurEvent\n} from \"../../index\";\n\nimport { hasSlot } from \"../../utils/utils\";\nimport { fetchTranslations, StzhLocaleComponent } from \"../../utils/translation-utils\";\n\nimport { StzhInputDescription } from \"../stzh-input/stzh-input-description\";\n\nlet toggleCounter = 0;\n\n/**\n * @slot - Slot for label content\n * @slot description - Slot for description\n * @slot description-long - Slot for long description (in popover)\n * @slot error - Slot for error\n */\n@Component({\n tag: \"stzh-toggle\",\n styleUrl: \"stzh-toggle.scss\",\n scoped: true\n})\nexport class StzhToggle {\n /** Translation strings */\n @Prop() localization: StzhLocaleComponent;\n\n /** Whether the toggle is disabled */\n @Prop({ reflect: true }) disabled: boolean = false;\n\n /** Name of the input element */\n @Prop({ reflect: true }) name: string = \"\";\n\n /** Value of the input element */\n @Prop({ mutable: true }) value: string = \"\";\n\n /** Invalid status */\n @Prop({ reflect: true }) invalid: boolean = false;\n\n /** Required status */\n @Prop({ reflect: true }) required: boolean = false;\n\n /** Append text to label depending if field is optional/required. true -> show \"(optional)\", false -> show noting */\n @Prop({ reflect: true }) showMarker: boolean = false;\n\n /** Checked status */\n @Prop({ mutable: true, reflect: true }) checked: boolean = false;\n\n /** Label */\n @Prop() label: string = \"\";\n\n /** Position of label */\n @Prop({ reflect: true }) labelPosition: \"right\" | \"left\" = \"right\";\n\n /** Description message (use description slot as alternative) */\n @Prop() description: string;\n\n /** Long description message appearing in a popover (use description-long slot as alternative) */\n @Prop() descriptionLong: string;\n\n /** One or multiple error message (use error slot as alternative) */\n @Prop() error: string | string[];\n private _error: string[];\n\n /** Id for element which describes the input (this will be overwritten if description prop or slot is used) */\n @Prop({ attribute: \"a11y-describedby\" }) a11yDescribedby: string = \"\";\n\n /** Focus input field */\n @Method()\n async setFocus() {\n this.input.focus();\n }\n\n /** Change event */\n @Event() stzhChange: EventEmitter<StzhToggleChangeEvent>;\n\n /** Focus event */\n @Event() stzhFocus: EventEmitter<StzhToggleFocusEvent>;\n\n /** Input blur event */\n @Event() stzhBlur: EventEmitter<StzhToggleBlurEvent>;\n\n @Watch(\"error\")\n errorWatcher(newValue: string | string[]) {\n if (typeof newValue === \"string\") {\n try {\n this._error = JSON.parse(newValue);\n } catch (e) {\n if (newValue) {\n this._error = [newValue];\n } else {\n this._error = [];\n }\n }\n } else if (newValue) {\n this._error = newValue;\n } else {\n this._error = [];\n }\n\n this.invalid = this._error.length > 0;\n }\n\n @Element() element: HTMLStzhRadioElement;\n\n private input: HTMLInputElement;\n private inputId: string;\n private focusedByInput: boolean = false;\n\n private onInput = (event: InputEvent) => {\n this.checked = this.input.checked;\n this.stzhChange.emit({\n component: \"stzh-toggle\",\n originalEvent: event,\n value: this.value,\n checked: this.checked\n });\n }\n\n private onRootFocus = () => {\n if (!this.focusedByInput) {\n this.setFocus();\n }\n\n this.focusedByInput = false;\n }\n\n private onFocus = (event: FocusEvent) => {\n this.focusedByInput = true;\n\n const focusEvent = new FocusEvent('focus', {\n view: window,\n bubbles: false,\n cancelable: false\n });\n\n this.element.dispatchEvent(focusEvent);\n this.stzhFocus.emit({\n component: \"stzh-toggle\",\n originalEvent: event\n });\n }\n\n private onBlur = (event: FocusEvent) => {\n const blurEvent = new FocusEvent('blur', {\n view: window,\n bubbles: false,\n cancelable: false\n });\n\n this.element.dispatchEvent(blurEvent);\n this.stzhBlur.emit({\n component: \"stzh-toggle\",\n originalEvent: event\n });\n }\n\n async componentWillLoad() {\n this.inputId = `stzh-toggle-${toggleCounter++}`;\n\n this.errorWatcher(this.error);\n\n if (!this.localization) {\n this.localization = await fetchTranslations(this.element, 'toggle');\n }\n }\n\n render() {\n const descriptionUsed = hasSlot(this.element, 'description') || !!this.description;\n const descriptionLongUsed = hasSlot(this.element, 'description-long') || !!this.descriptionLong;\n const errorUsed = hasSlot(this.element, 'error') || !!this.error;\n\n const classes = {\n \"stzh-toggle\": true,\n \"stzh-toggle--has-error\": errorUsed,\n \"stzh-toggle--is-required\": this.required,\n \"stzh-toggle--is-invalid\": this.invalid,\n \"stzh-toggle--is-disabled\": this.disabled,\n \"stzh-toggle--has-description\": descriptionUsed,\n \"stzh-toggle--has-description-long\": descriptionLongUsed,\n [`stzh-toggle--has-label-${this.labelPosition}`]: !!this.labelPosition\n };\n\n return (\n <Host tabindex={this.disabled ? null : \"-1\"} onFocus={this.onRootFocus}>\n <div class={classes}>\n <label class=\"stzh-toggle__field-wrapper\">\n <input\n class=\"stzh-toggle__input\"\n ref={(el) => (this.input = el as HTMLInputElement)}\n type=\"checkbox\"\n id={this.inputId}\n name={this.name}\n value={this.value}\n disabled={this.disabled}\n aria-describedby={`${this.inputId}-description ${this.a11yDescribedby}`}\n aria-required={this.required ? \"true\" : \"false\"}\n aria-invalid={this.invalid ? \"true\" : \"false\"}\n checked={this.checked}\n onInput={this.onInput}\n onFocus={this.onFocus}\n onBlur={this.onBlur}\n />\n <div class=\"stzh-toggle__mark\">\n <div class=\"stzh-toggle__check\"></div>\n </div>\n <div class=\"stzh-toggle__label\">\n {this.label ? this.label : <slot></slot>}\n {this.showMarker &&\n <span class=\"stzh-toggle__marker\">\n <span class=\"stzh-toggle__marker-symbol\" aria-hidden=\"true\">\n {this.required\n ? this.localization.$globals.requiredFieldMarker\n : this.localization.$globals.optionalFieldMarker\n }\n </span>\n <span class=\"stzh-toggle__marker-text\">\n {this.required\n ? this.localization.$globals.requiredFieldText\n : this.localization.$globals.optionalFieldText\n }\n </span>\n </span>\n }\n </div>\n </label>\n <StzhInputDescription\n classPrefix=\"stzh-toggle\"\n id={`${this.inputId}-description`}\n error={this._error}\n description={this.description}\n descriptionLong={this.descriptionLong}\n descriptionLongUsed={descriptionLongUsed}\n moreInfoButtonLabel={this.localization.$globals.moreInfoButtonLabel}\n />\n </div>\n </Host>\n );\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["stzhToggleCss","toggleCounter","StzhToggle","this","focusedByInput","onInput","event","_this","checked","input","stzhChange","emit","component","originalEvent","value","onRootFocus","setFocus","onFocus","focusEvent","FocusEvent","view","window","bubbles","cancelable","element","dispatchEvent","stzhFocus","onBlur","blurEvent","stzhBlur","class_1","prototype","focus","errorWatcher","newValue","_error","JSON","parse","e","invalid","length","componentWillLoad","inputId","concat","error","localization","_a","fetchTranslations","_b","sent","render","descriptionUsed","hasSlot","description","descriptionLongUsed","descriptionLong","errorUsed","classes","required","disabled","labelPosition","h","Host","tabindex","class","ref","el","type","id","name","a11yDescribedby","label","showMarker","$globals","requiredFieldMarker","optionalFieldMarker","requiredFieldText","optionalFieldText","StzhInputDescription","classPrefix","moreInfoButtonLabel"],"sources":["src/components/stzh-toggle/stzh-toggle.scss?tag=stzh-toggle&encapsulation=scoped","src/components/stzh-toggle/stzh-toggle.tsx"],"sourcesContent":[":host {\n display: inline-block;\n\n ::slotted(stzh-text) {\n --color: inherit;\n }\n}\n\n.stzh-toggle {\n @include input-description;\n\n &__field-wrapper {\n @include fontSize('milli');\n position: relative;\n display: flex;\n user-select: none;\n cursor: pointer;\n }\n\n &__input {\n @include visuallyhiddenInput;\n border-radius: $formInputBorderRadius;\n }\n\n &__mark {\n position: relative;\n background-color: $colorBlack8;\n width: 44px;\n height: 16px;\n flex-shrink: 0;\n border-radius: 12px;\n display: inline-flex;\n justify-content: center;\n align-items: center;\n transition: background-color $baseTransitionAnimationSpeed;\n margin-top: 4px;\n }\n\n &__check {\n position: absolute;\n border: 2px solid $baseColor;\n width: 24px;\n height: 24px;\n border-radius: 50%;\n background-color: $colorWhite;\n top: 50%;\n left: 0;\n transform: translate(0, -50%);\n transition-property: border-color, background-color, transform;\n transition-duration: $baseTransitionAnimationSpeed;\n }\n\n &__label {\n display: inline-block;\n color: $baseColor;\n transition: color $baseTransitionAnimationSpeed;\n line-height: 24px;\n\n &:empty {\n display: none;\n }\n }\n\n /* Hover / Focus / Checked */\n\n &__input:checked ~ &__mark {\n background-color: $colorPrimary48;\n }\n\n &__input:checked ~ &__mark &__check {\n border-color: $colorPrimary;\n background-color: $colorPrimary;\n transform: translate(100%, -50%);\n }\n\n &:hover &__label,\n &__input:checked:hover ~ &__label {\n color: $colorPrimaryHover;\n }\n\n &__input:checked ~ &__label {\n color: $colorPrimary;\n }\n\n &:hover &__mark &__check,\n &__input:focus:hover ~ &__mark &__check,\n &__input:checked:hover ~ &__mark &__check,\n &__input:checked:focus ~ &__mark &__check {\n border-color: $colorPrimaryHover;\n }\n\n\n &__input:checked:hover ~ &__mark &__check,\n &__input:checked:focus ~ &__mark &__check {\n background-color: $colorPrimaryHover;\n }\n\n /* Label right */\n\n &--has-label-right &__label {\n margin-left: space('xsmall');\n }\n\n /* Label left */\n\n &--has-label-left &__field-wrapper {\n flex-direction: row-reverse;\n }\n\n &--has-label-left &__label {\n margin-right: space('xsmall');\n }\n\n /* Invalid */\n\n &--is-invalid &__input ~ &__label {\n color: $colorError;\n }\n\n &--is-invalid &__input ~ &__mark &__check {\n border-color: $colorError;\n }\n\n &--is-invalid &__input:checked ~ &__mark {\n background-color: $colorBlack8;\n }\n\n &--is-invalid &__input:checked ~ &__mark &__check {\n background-color: $colorError;\n }\n\n /* Disabled */\n\n\t&--is-disabled &__field-wrapper {\n cursor: not-allowed;\n }\n\n &--is-disabled &__input ~ &__label {\n color: $formDisabledColor;\n }\n\n &--is-disabled &__input ~ &__mark &__check {\n border-color: $colorGrey13;\n }\n\n &--is-disabled &__input:checked ~ &__mark {\n background-color: $formDisabledBackgroundColor;\n }\n\n &--is-disabled &__input:checked ~ &__mark &__check {\n background-color: $colorGrey25;\n border-color: $colorGrey25;\n }\n}\n","import {\n Host,\n Component,\n Prop,\n Event,\n EventEmitter,\n Element,\n Method,\n h,\n Watch\n} from \"@stencil/core\";\n\nimport {\n StzhToggleChangeEvent,\n StzhToggleFocusEvent,\n StzhToggleBlurEvent\n} from \"../../index\";\n\nimport { hasSlot } from \"../../utils/utils\";\nimport { fetchTranslations, StzhLocaleComponent } from \"../../utils/translation-utils\";\n\nimport { StzhInputDescription } from \"../stzh-input/stzh-input-description\";\n\nlet toggleCounter = 0;\n\n/**\n * @slot - Slot for label content\n * @slot description - Slot for description\n * @slot description-long - Slot for long description (in popover)\n * @slot error - Slot for error\n */\n@Component({\n tag: \"stzh-toggle\",\n styleUrl: \"stzh-toggle.scss\",\n scoped: true\n})\nexport class StzhToggle {\n /** Translation strings */\n @Prop() localization: StzhLocaleComponent;\n\n /** Whether the toggle is disabled */\n @Prop({ reflect: true }) disabled: boolean = false;\n\n /** Name of the input element */\n @Prop({ reflect: true }) name: string = \"\";\n\n /** Value of the input element */\n @Prop({ mutable: true }) value: string = \"\";\n\n /** Invalid status */\n @Prop({ reflect: true }) invalid: boolean = false;\n\n /** Required status */\n @Prop({ reflect: true }) required: boolean = false;\n\n /** Append text to label depending if field is optional/required. true -> show \"(optional)\", false -> show nothing */\n @Prop({ reflect: true }) showMarker: boolean = false;\n\n /** Checked status */\n @Prop({ mutable: true, reflect: true }) checked: boolean = false;\n\n /** Label */\n @Prop() label: string = \"\";\n\n /** Position of label */\n @Prop({ reflect: true }) labelPosition: \"right\" | \"left\" = \"right\";\n\n /** Description message (use description slot as alternative) */\n @Prop() description: string;\n\n /** Long description message appearing in a popover (use description-long slot as alternative) */\n @Prop() descriptionLong: string;\n\n /** One or multiple error message (use error slot as alternative) */\n @Prop() error: string | string[];\n private _error: string[];\n\n /** Id for element which describes the input (this will be overwritten if description prop or slot is used) */\n @Prop({ attribute: \"a11y-describedby\" }) a11yDescribedby: string = \"\";\n\n /** Focus input field */\n @Method()\n async setFocus() {\n this.input.focus();\n }\n\n /** Change event */\n @Event() stzhChange: EventEmitter<StzhToggleChangeEvent>;\n\n /** Focus event */\n @Event() stzhFocus: EventEmitter<StzhToggleFocusEvent>;\n\n /** Input blur event */\n @Event() stzhBlur: EventEmitter<StzhToggleBlurEvent>;\n\n @Watch(\"error\")\n errorWatcher(newValue: string | string[]) {\n if (typeof newValue === \"string\") {\n try {\n this._error = JSON.parse(newValue);\n } catch (e) {\n if (newValue) {\n this._error = [newValue];\n } else {\n this._error = [];\n }\n }\n } else if (newValue) {\n this._error = newValue;\n } else {\n this._error = [];\n }\n\n this.invalid = this._error.length > 0;\n }\n\n @Element() element: HTMLStzhRadioElement;\n\n private input: HTMLInputElement;\n private inputId: string;\n private focusedByInput: boolean = false;\n\n private onInput = (event: InputEvent) => {\n this.checked = this.input.checked;\n this.stzhChange.emit({\n component: \"stzh-toggle\",\n originalEvent: event,\n value: this.value,\n checked: this.checked\n });\n }\n\n private onRootFocus = () => {\n if (!this.focusedByInput) {\n this.setFocus();\n }\n\n this.focusedByInput = false;\n }\n\n private onFocus = (event: FocusEvent) => {\n this.focusedByInput = true;\n\n const focusEvent = new FocusEvent('focus', {\n view: window,\n bubbles: false,\n cancelable: false\n });\n\n this.element.dispatchEvent(focusEvent);\n this.stzhFocus.emit({\n component: \"stzh-toggle\",\n originalEvent: event\n });\n }\n\n private onBlur = (event: FocusEvent) => {\n const blurEvent = new FocusEvent('blur', {\n view: window,\n bubbles: false,\n cancelable: false\n });\n\n this.element.dispatchEvent(blurEvent);\n this.stzhBlur.emit({\n component: \"stzh-toggle\",\n originalEvent: event\n });\n }\n\n async componentWillLoad() {\n this.inputId = `stzh-toggle-${toggleCounter++}`;\n\n this.errorWatcher(this.error);\n\n if (!this.localization) {\n this.localization = await fetchTranslations(this.element, 'toggle');\n }\n }\n\n render() {\n const descriptionUsed = hasSlot(this.element, 'description') || !!this.description;\n const descriptionLongUsed = hasSlot(this.element, 'description-long') || !!this.descriptionLong;\n const errorUsed = hasSlot(this.element, 'error') || !!this.error;\n\n const classes = {\n \"stzh-toggle\": true,\n \"stzh-toggle--has-error\": errorUsed,\n \"stzh-toggle--is-required\": this.required,\n \"stzh-toggle--is-invalid\": this.invalid,\n \"stzh-toggle--is-disabled\": this.disabled,\n \"stzh-toggle--has-description\": descriptionUsed,\n \"stzh-toggle--has-description-long\": descriptionLongUsed,\n [`stzh-toggle--has-label-${this.labelPosition}`]: !!this.labelPosition\n };\n\n return (\n <Host tabindex={this.disabled ? null : \"-1\"} onFocus={this.onRootFocus}>\n <div class={classes}>\n <label class=\"stzh-toggle__field-wrapper\">\n <input\n class=\"stzh-toggle__input\"\n ref={(el) => (this.input = el as HTMLInputElement)}\n type=\"checkbox\"\n id={this.inputId}\n name={this.name}\n value={this.value}\n disabled={this.disabled}\n aria-describedby={`${this.inputId}-description ${this.a11yDescribedby}`}\n aria-required={this.required ? \"true\" : \"false\"}\n aria-invalid={this.invalid ? \"true\" : \"false\"}\n checked={this.checked}\n onInput={this.onInput}\n onFocus={this.onFocus}\n onBlur={this.onBlur}\n />\n <div class=\"stzh-toggle__mark\">\n <div class=\"stzh-toggle__check\"></div>\n </div>\n <div class=\"stzh-toggle__label\">\n {this.label ? this.label : <slot></slot>}\n {this.showMarker &&\n <span class=\"stzh-toggle__marker\">\n <span class=\"stzh-toggle__marker-symbol\" aria-hidden=\"true\">\n {this.required\n ? this.localization.$globals.requiredFieldMarker\n : this.localization.$globals.optionalFieldMarker\n }\n </span>\n <span class=\"stzh-toggle__marker-text\">\n {this.required\n ? this.localization.$globals.requiredFieldText\n : this.localization.$globals.optionalFieldText\n }\n </span>\n </span>\n }\n </div>\n </label>\n <StzhInputDescription\n classPrefix=\"stzh-toggle\"\n id={`${this.inputId}-description`}\n error={this._error}\n description={this.description}\n descriptionLong={this.descriptionLong}\n descriptionLongUsed={descriptionLongUsed}\n moreInfoButtonLabel={this.localization.$globals.moreInfoButtonLabel}\n />\n </div>\n </Host>\n );\n }\n}\n"],"mappings":"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"}
|