@public-ui/components 1.1.16-rc.5 → 1.1.16-rc.7
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/cheat-sheet.html +6 -6
- package/custom-elements.json +2 -2
- package/dist/cjs/{app-globals-332c4081.js → app-globals-8c9f2b5a.js} +1 -1
- package/dist/cjs/{index-1521d654.js → index-4befe569.js} +0 -0
- package/dist/cjs/kol-abbr.cjs.entry.js +1 -1
- package/dist/cjs/kol-accordion.cjs.entry.js +1 -1
- package/dist/cjs/kol-alert.cjs.entry.js +1 -1
- package/dist/cjs/kol-badge.cjs.entry.js +1 -1
- package/dist/cjs/kol-breadcrumb.cjs.entry.js +1 -1
- package/dist/cjs/kol-button-group-wc.cjs.entry.js +1 -1
- package/dist/cjs/kol-button-group.cjs.entry.js +1 -1
- package/dist/cjs/kol-button-link.cjs.entry.js +1 -1
- package/dist/cjs/kol-button-wc_2.cjs.entry.js +1 -1
- package/dist/cjs/kol-button.cjs.entry.js +1 -1
- package/dist/cjs/kol-card.cjs.entry.js +1 -1
- package/dist/cjs/kol-color.cjs.entry.js +1 -1
- package/dist/cjs/kol-counter.cjs.entry.js +1 -1
- package/dist/cjs/kol-details.cjs.entry.js +1 -1
- package/dist/cjs/kol-form.cjs.entry.js +1 -1
- package/dist/cjs/kol-heading-wc_2.cjs.entry.js +1 -1
- package/dist/cjs/kol-heading.cjs.entry.js +1 -1
- package/dist/cjs/kol-icon-font-awesome.cjs.entry.js +1 -1
- package/dist/cjs/kol-icon-icofont.cjs.entry.js +1 -1
- package/dist/cjs/kol-icon.cjs.entry.js +1 -1
- package/dist/cjs/kol-indented-text.cjs.entry.js +1 -1
- package/dist/cjs/kol-input-adapter-leanup.cjs.entry.js +1 -1
- package/dist/cjs/kol-input-checkbox.cjs.entry.js +1 -1
- package/dist/cjs/kol-input-color.cjs.entry.js +1 -1
- package/dist/cjs/kol-input-date.cjs.entry.js +1 -1
- package/dist/cjs/kol-input-email.cjs.entry.js +1 -1
- package/dist/cjs/kol-input-file.cjs.entry.js +1 -1
- package/dist/cjs/kol-input-number.cjs.entry.js +1 -1
- package/dist/cjs/kol-input-password.cjs.entry.js +1 -1
- package/dist/cjs/kol-input-radio-group.cjs.entry.js +1 -1
- package/dist/cjs/kol-input-radio.cjs.entry.js +1 -1
- package/dist/cjs/kol-input-range.cjs.entry.js +1 -1
- package/dist/cjs/kol-input-text.cjs.entry.js +1 -1
- package/dist/cjs/kol-kolibri.cjs.entry.js +1 -1
- package/dist/cjs/kol-link-button.cjs.entry.js +1 -1
- package/dist/cjs/kol-link-group.cjs.entry.js +1 -1
- package/dist/cjs/kol-link-wc.cjs.entry.js +1 -1
- package/dist/cjs/kol-link.cjs.entry.js +1 -1
- package/dist/cjs/kol-logo.cjs.entry.js +1 -1
- package/dist/cjs/kol-modal.cjs.entry.js +1 -1
- package/dist/cjs/kol-nav.cjs.entry.js +1 -1
- package/dist/cjs/kol-pagination.cjs.entry.js +1 -1
- package/dist/cjs/kol-progress.cjs.entry.js +1 -1
- package/dist/cjs/kol-select.cjs.entry.js +1 -1
- package/dist/cjs/kol-skip-nav.cjs.entry.js +1 -1
- package/dist/cjs/kol-span.cjs.entry.js +1 -1
- package/dist/cjs/kol-spin.cjs.entry.js +1 -1
- package/dist/cjs/kol-symbol.cjs.entry.js +1 -1
- package/dist/cjs/kol-table.cjs.entry.js +1 -1
- package/dist/cjs/kol-tabs.cjs.entry.js +1 -1
- package/dist/cjs/kol-textarea.cjs.entry.js +1 -1
- package/dist/cjs/kol-toast.cjs.entry.js +1 -1
- package/dist/cjs/kol-tooltip.cjs.entry.js +1 -1
- package/dist/cjs/kol-version.cjs.entry.js +1 -1
- package/dist/cjs/kolibri.cjs.js +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/components/component.js +1 -1
- package/dist/components/component10.js +1 -1
- package/dist/components/component11.js +1 -1
- package/dist/components/component12.js +1 -1
- package/dist/components/component13.js +1 -1
- package/dist/components/component2.js +1 -1
- package/dist/components/component3.js +1 -1
- package/dist/components/component4.js +1 -1
- package/dist/components/component5.js +1 -1
- package/dist/components/component6.js +1 -1
- package/dist/components/component7.js +1 -1
- package/dist/components/component8.js +1 -1
- package/dist/components/component9.js +1 -1
- package/dist/components/controller.js +1 -1
- package/dist/components/controller2.js +1 -1
- package/dist/components/controller3.js +1 -1
- package/dist/components/controller4.js +1 -1
- package/dist/components/devtools.js +1 -1
- package/dist/components/index.d.ts +59 -0
- package/dist/components/index.js +1 -1
- package/dist/components/kol-abbr.js +1 -1
- package/dist/components/kol-accordion.js +1 -1
- package/dist/components/kol-alert.js +1 -1
- package/dist/components/kol-badge.js +1 -1
- package/dist/components/kol-breadcrumb.js +1 -1
- package/dist/components/kol-button-group-wc.js +1 -1
- package/dist/components/kol-button-group.js +1 -1
- package/dist/components/kol-button-link.js +1 -1
- package/dist/components/kol-button-wc.js +1 -1
- package/dist/components/kol-button.js +1 -1
- package/dist/components/kol-card.js +1 -1
- package/dist/components/kol-details.js +1 -1
- package/dist/components/kol-form.js +1 -1
- package/dist/components/kol-icon-font-awesome.js +1 -1
- package/dist/components/kol-icon-icofont.js +1 -1
- package/dist/components/kol-icon.js +1 -1
- package/dist/components/kol-indented-text.js +1 -1
- package/dist/components/kol-input-adapter-leanup.js +1 -1
- package/dist/components/kol-input-checkbox.js +1 -1
- package/dist/components/kol-input-color.js +1 -1
- package/dist/components/kol-input-date.js +1 -1
- package/dist/components/kol-input-email.js +1 -1
- package/dist/components/kol-input-file.js +1 -1
- package/dist/components/kol-input-number.js +1 -1
- package/dist/components/kol-input-password.js +1 -1
- package/dist/components/kol-input-radio-group.js +1 -1
- package/dist/components/kol-input-radio.js +1 -1
- package/dist/components/kol-input-range.js +1 -1
- package/dist/components/kol-input-text.js +1 -1
- package/dist/components/kol-input.js +1 -1
- package/dist/components/kol-kolibri.js +1 -1
- package/dist/components/kol-link-button.js +1 -1
- package/dist/components/kol-link-group.js +1 -1
- package/dist/components/kol-link-wc.js +1 -1
- package/dist/components/kol-link.js +1 -1
- package/dist/components/kol-logo.js +1 -1
- package/dist/components/kol-modal.js +1 -1
- package/dist/components/kol-nav.js +1 -1
- package/dist/components/kol-pagination.js +1 -1
- package/dist/components/kol-progress.js +1 -1
- package/dist/components/kol-select.js +1 -1
- package/dist/components/kol-skip-nav.js +1 -1
- package/dist/components/kol-span-wc.js +1 -1
- package/dist/components/kol-span.js +1 -1
- package/dist/components/kol-spin.js +1 -1
- package/dist/components/kol-table.js +1 -1
- package/dist/components/kol-tabs.js +1 -1
- package/dist/components/kol-textarea.js +1 -1
- package/dist/components/kol-toast.js +1 -1
- package/dist/components/kol-tooltip.js +1 -1
- package/dist/components/kol-version.js +1 -1
- package/dist/components/prop.validators.js +1 -1
- package/dist/components/shadow.js +1 -1
- package/dist/components/shadow2.js +1 -1
- package/dist/components/validation.js +1 -1
- package/dist/esm/{app-globals-cc26c297.js → app-globals-7976fd44.js} +1 -1
- package/dist/esm/{index-90999368.js → index-a398b9f4.js} +0 -0
- package/dist/esm/kol-abbr.entry.js +1 -1
- package/dist/esm/kol-accordion.entry.js +1 -1
- package/dist/esm/kol-alert.entry.js +1 -1
- package/dist/esm/kol-badge.entry.js +1 -1
- package/dist/esm/kol-breadcrumb.entry.js +1 -1
- package/dist/esm/kol-button-group-wc.entry.js +1 -1
- package/dist/esm/kol-button-group.entry.js +1 -1
- package/dist/esm/kol-button-link.entry.js +1 -1
- package/dist/esm/kol-button-wc_2.entry.js +1 -1
- package/dist/esm/kol-button.entry.js +1 -1
- package/dist/esm/kol-card.entry.js +1 -1
- package/dist/esm/kol-color.entry.js +1 -1
- package/dist/esm/kol-counter.entry.js +1 -1
- package/dist/esm/kol-details.entry.js +1 -1
- package/dist/esm/kol-form.entry.js +1 -1
- package/dist/esm/kol-heading-wc_2.entry.js +1 -1
- package/dist/esm/kol-heading.entry.js +1 -1
- package/dist/esm/kol-icon-font-awesome.entry.js +1 -1
- package/dist/esm/kol-icon-icofont.entry.js +1 -1
- package/dist/esm/kol-icon.entry.js +1 -1
- package/dist/esm/kol-indented-text.entry.js +1 -1
- package/dist/esm/kol-input-adapter-leanup.entry.js +1 -1
- package/dist/esm/kol-input-checkbox.entry.js +1 -1
- package/dist/esm/kol-input-color.entry.js +1 -1
- package/dist/esm/kol-input-date.entry.js +1 -1
- package/dist/esm/kol-input-email.entry.js +1 -1
- package/dist/esm/kol-input-file.entry.js +1 -1
- package/dist/esm/kol-input-number.entry.js +1 -1
- package/dist/esm/kol-input-password.entry.js +1 -1
- package/dist/esm/kol-input-radio-group.entry.js +1 -1
- package/dist/esm/kol-input-radio.entry.js +1 -1
- package/dist/esm/kol-input-range.entry.js +1 -1
- package/dist/esm/kol-input-text.entry.js +1 -1
- package/dist/esm/kol-kolibri.entry.js +1 -1
- package/dist/esm/kol-link-button.entry.js +1 -1
- package/dist/esm/kol-link-group.entry.js +1 -1
- package/dist/esm/kol-link-wc.entry.js +1 -1
- package/dist/esm/kol-link.entry.js +1 -1
- package/dist/esm/kol-logo.entry.js +1 -1
- package/dist/esm/kol-modal.entry.js +1 -1
- package/dist/esm/kol-nav.entry.js +1 -1
- package/dist/esm/kol-pagination.entry.js +1 -1
- package/dist/esm/kol-progress.entry.js +1 -1
- package/dist/esm/kol-select.entry.js +1 -1
- package/dist/esm/kol-skip-nav.entry.js +1 -1
- package/dist/esm/kol-span.entry.js +1 -1
- package/dist/esm/kol-spin.entry.js +1 -1
- package/dist/esm/kol-symbol.entry.js +1 -1
- package/dist/esm/kol-table.entry.js +1 -1
- package/dist/esm/kol-tabs.entry.js +1 -1
- package/dist/esm/kol-textarea.entry.js +1 -1
- package/dist/esm/kol-toast.entry.js +1 -1
- package/dist/esm/kol-tooltip.entry.js +1 -1
- package/dist/esm/kol-version.entry.js +1 -1
- package/dist/esm/kolibri.js +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/kolibri/a11y.tipps-ff5a1a99.js +1 -1
- package/dist/kolibri/{app-globals-cc26c297.js → app-globals-7976fd44.js} +1 -1
- package/dist/kolibri/controller-476e5aa0.js +1 -1
- package/dist/kolibri/controller-98097160.js +1 -1
- package/dist/kolibri/controller-af756b28.js +1 -1
- package/dist/kolibri/controller-b89719ab.js +1 -1
- package/dist/kolibri/controller-e8ecf94e.js +1 -1
- package/dist/kolibri/dev.utils-daaf2f39.js +1 -1
- package/dist/kolibri/devtools-997ea90f.js +1 -1
- package/dist/kolibri/index-a398b9f4.js +5 -0
- package/dist/kolibri/index-d870d3e1.js +1 -1
- package/dist/kolibri/index-e722bdb7.js +1 -1
- package/dist/kolibri/index.m-86dc8c44.js +1 -1
- package/dist/kolibri/kol-abbr.entry.js +1 -1
- package/dist/kolibri/kol-accordion.entry.js +1 -1
- package/dist/kolibri/kol-alert.entry.js +1 -1
- package/dist/kolibri/kol-badge.entry.js +1 -1
- package/dist/kolibri/kol-breadcrumb.entry.js +1 -1
- package/dist/kolibri/kol-button-group-wc.entry.js +1 -1
- package/dist/kolibri/kol-button-group.entry.js +1 -1
- package/dist/kolibri/kol-button-link.entry.js +1 -1
- package/dist/kolibri/kol-button-wc_2.entry.js +1 -1
- package/dist/kolibri/kol-button.entry.js +1 -1
- package/dist/kolibri/kol-card.entry.js +1 -1
- package/dist/kolibri/kol-color.entry.js +1 -1
- package/dist/kolibri/kol-counter.entry.js +1 -1
- package/dist/kolibri/kol-details.entry.js +1 -1
- package/dist/kolibri/kol-form.entry.js +1 -1
- package/dist/kolibri/kol-heading-wc_2.entry.js +1 -1
- package/dist/kolibri/kol-heading.entry.js +1 -1
- package/dist/kolibri/kol-icon-font-awesome.entry.js +1 -1
- package/dist/kolibri/kol-icon-icofont.entry.js +1 -1
- package/dist/kolibri/kol-icon.entry.js +1 -1
- package/dist/kolibri/kol-indented-text.entry.js +1 -1
- package/dist/kolibri/kol-input-adapter-leanup.entry.js +1 -1
- package/dist/kolibri/kol-input-checkbox.entry.js +1 -1
- package/dist/kolibri/kol-input-color.entry.js +1 -1
- package/dist/kolibri/kol-input-date.entry.js +1 -1
- package/dist/kolibri/kol-input-email.entry.js +1 -1
- package/dist/kolibri/kol-input-file.entry.js +1 -1
- package/dist/kolibri/kol-input-number.entry.js +1 -1
- package/dist/kolibri/kol-input-password.entry.js +1 -1
- package/dist/kolibri/kol-input-radio-group.entry.js +1 -1
- package/dist/kolibri/kol-input-radio.entry.js +1 -1
- package/dist/kolibri/kol-input-range.entry.js +1 -1
- package/dist/kolibri/kol-input-text.entry.js +1 -1
- package/dist/kolibri/kol-kolibri.entry.js +1 -1
- package/dist/kolibri/kol-link-button.entry.js +1 -1
- package/dist/kolibri/kol-link-group.entry.js +1 -1
- package/dist/kolibri/kol-link-wc.entry.js +1 -1
- package/dist/kolibri/kol-link.entry.js +1 -1
- package/dist/kolibri/kol-logo.entry.js +1 -1
- package/dist/kolibri/kol-modal.entry.js +1 -1
- package/dist/kolibri/kol-nav.entry.js +1 -1
- package/dist/kolibri/kol-pagination.entry.js +1 -1
- package/dist/kolibri/kol-progress.entry.js +1 -1
- package/dist/kolibri/kol-select.entry.js +1 -1
- package/dist/kolibri/kol-skip-nav.entry.js +1 -1
- package/dist/kolibri/kol-span.entry.js +1 -1
- package/dist/kolibri/kol-spin.entry.js +1 -1
- package/dist/kolibri/kol-symbol.entry.js +1 -1
- package/dist/kolibri/kol-table.entry.js +1 -1
- package/dist/kolibri/kol-tabs.entry.js +1 -1
- package/dist/kolibri/kol-textarea.entry.js +1 -1
- package/dist/kolibri/kol-toast.entry.js +1 -1
- package/dist/kolibri/kol-tooltip.entry.js +1 -1
- package/dist/kolibri/kol-version.entry.js +1 -1
- package/dist/kolibri/kolibri.esm.js +1 -1
- package/dist/kolibri/prop.validators-4cac744a.js +1 -1
- package/dist/kolibri/reuse-f9be4952.js +1 -1
- package/dist/kolibri/tab-index-0b0ee76b.js +1 -1
- package/dist/kolibri/validation-b0cccd61.js +1 -1
- package/dist/kolibri/validator-8ee8737c.js +1 -1
- package/dist/types/components/tooltip/test/html.mock.d.ts +1 -1
- package/dist/types/components.d.ts +2 -34
- package/dist/types/stencil-public-runtime.d.ts +48 -12
- package/doc/icon-font-awesome.md +1 -1
- package/jest-test-results.json +1 -1
- package/package.json +1 -1
- package/vscode-custom-data.json +3 -3
- package/dist/cjs/a11y.tipps-e1770acf.js.map +0 -1
- package/dist/cjs/app-globals-332c4081.js.map +0 -1
- package/dist/cjs/bund-e238647c.js.map +0 -1
- package/dist/cjs/button-link-53dceb58.js.map +0 -1
- package/dist/cjs/color-54989457.js.map +0 -1
- package/dist/cjs/controller-1e8b3dba.js.map +0 -1
- package/dist/cjs/controller-52c889e1.js.map +0 -1
- package/dist/cjs/controller-79725777.js.map +0 -1
- package/dist/cjs/controller-cd6a889c.js.map +0 -1
- package/dist/cjs/controller-deac578d.js.map +0 -1
- package/dist/cjs/controller-f18f4805.js.map +0 -1
- package/dist/cjs/dev.utils-2353100d.js.map +0 -1
- package/dist/cjs/devtools-62a24a78.js.map +0 -1
- package/dist/cjs/index-1521d654.js.map +0 -1
- package/dist/cjs/index-95d4d068.js.map +0 -1
- package/dist/cjs/index-adbf25b5.js.map +0 -1
- package/dist/cjs/index-c4f8dd50.js.map +0 -1
- package/dist/cjs/index.cjs.js.map +0 -1
- package/dist/cjs/index.m-21aa1255.js.map +0 -1
- package/dist/cjs/kol-abbr.cjs.entry.js.map +0 -1
- package/dist/cjs/kol-accordion.cjs.entry.js.map +0 -1
- package/dist/cjs/kol-alert.cjs.entry.js.map +0 -1
- package/dist/cjs/kol-badge.cjs.entry.js.map +0 -1
- package/dist/cjs/kol-breadcrumb.cjs.entry.js.map +0 -1
- package/dist/cjs/kol-button-group-wc.cjs.entry.js.map +0 -1
- package/dist/cjs/kol-button-group.cjs.entry.js.map +0 -1
- package/dist/cjs/kol-button-link.cjs.entry.js.map +0 -1
- package/dist/cjs/kol-button-wc_2.cjs.entry.js.map +0 -1
- package/dist/cjs/kol-button.cjs.entry.js.map +0 -1
- package/dist/cjs/kol-card.cjs.entry.js.map +0 -1
- package/dist/cjs/kol-color.cjs.entry.js.map +0 -1
- package/dist/cjs/kol-counter.cjs.entry.js.map +0 -1
- package/dist/cjs/kol-details.cjs.entry.js.map +0 -1
- package/dist/cjs/kol-form.cjs.entry.js.map +0 -1
- package/dist/cjs/kol-heading-wc_2.cjs.entry.js.map +0 -1
- package/dist/cjs/kol-heading.cjs.entry.js.map +0 -1
- package/dist/cjs/kol-icon-font-awesome.cjs.entry.js.map +0 -1
- package/dist/cjs/kol-icon-icofont.cjs.entry.js.map +0 -1
- package/dist/cjs/kol-icon.cjs.entry.js.map +0 -1
- package/dist/cjs/kol-indented-text.cjs.entry.js.map +0 -1
- package/dist/cjs/kol-input-adapter-leanup.cjs.entry.js.map +0 -1
- package/dist/cjs/kol-input-checkbox.cjs.entry.js.map +0 -1
- package/dist/cjs/kol-input-color.cjs.entry.js.map +0 -1
- package/dist/cjs/kol-input-date.cjs.entry.js.map +0 -1
- package/dist/cjs/kol-input-email.cjs.entry.js.map +0 -1
- package/dist/cjs/kol-input-file.cjs.entry.js.map +0 -1
- package/dist/cjs/kol-input-number.cjs.entry.js.map +0 -1
- package/dist/cjs/kol-input-password.cjs.entry.js.map +0 -1
- package/dist/cjs/kol-input-radio-group.cjs.entry.js.map +0 -1
- package/dist/cjs/kol-input-radio.cjs.entry.js.map +0 -1
- package/dist/cjs/kol-input-range.cjs.entry.js.map +0 -1
- package/dist/cjs/kol-input-text.cjs.entry.js.map +0 -1
- package/dist/cjs/kol-kolibri.cjs.entry.js.map +0 -1
- package/dist/cjs/kol-link-button.cjs.entry.js.map +0 -1
- package/dist/cjs/kol-link-group.cjs.entry.js.map +0 -1
- package/dist/cjs/kol-link-wc.cjs.entry.js.map +0 -1
- package/dist/cjs/kol-link.cjs.entry.js.map +0 -1
- package/dist/cjs/kol-logo.cjs.entry.js.map +0 -1
- package/dist/cjs/kol-modal.cjs.entry.js.map +0 -1
- package/dist/cjs/kol-nav.cjs.entry.js.map +0 -1
- package/dist/cjs/kol-pagination.cjs.entry.js.map +0 -1
- package/dist/cjs/kol-progress.cjs.entry.js.map +0 -1
- package/dist/cjs/kol-select.cjs.entry.js.map +0 -1
- package/dist/cjs/kol-skip-nav.cjs.entry.js.map +0 -1
- package/dist/cjs/kol-span.cjs.entry.js.map +0 -1
- package/dist/cjs/kol-spin.cjs.entry.js.map +0 -1
- package/dist/cjs/kol-symbol.cjs.entry.js.map +0 -1
- package/dist/cjs/kol-table.cjs.entry.js.map +0 -1
- package/dist/cjs/kol-tabs.cjs.entry.js.map +0 -1
- package/dist/cjs/kol-textarea.cjs.entry.js.map +0 -1
- package/dist/cjs/kol-toast.cjs.entry.js.map +0 -1
- package/dist/cjs/kol-tooltip.cjs.entry.js.map +0 -1
- package/dist/cjs/kol-version.cjs.entry.js.map +0 -1
- package/dist/cjs/kolibri.cjs.js.map +0 -1
- package/dist/cjs/label-65cac3c0.js.map +0 -1
- package/dist/cjs/loader.cjs.js.map +0 -1
- package/dist/cjs/prop.validators-8ddaf00e.js.map +0 -1
- package/dist/cjs/reuse-d95dc094.js.map +0 -1
- package/dist/cjs/tab-index-7fc7b7f5.js.map +0 -1
- package/dist/cjs/validation-1d0eba3e.js.map +0 -1
- package/dist/cjs/validation-7fc058fe.js.map +0 -1
- package/dist/cjs/validator-6f53d4a2.js.map +0 -1
- package/dist/components/bund.js +0 -4
- package/dist/components/bund.js.map +0 -1
- package/dist/components/color.js.map +0 -1
- package/dist/components/component.js.map +0 -1
- package/dist/components/component10.js.map +0 -1
- package/dist/components/component11.js.map +0 -1
- package/dist/components/component12.js.map +0 -1
- package/dist/components/component13.js.map +0 -1
- package/dist/components/component2.js.map +0 -1
- package/dist/components/component3.js.map +0 -1
- package/dist/components/component4.js.map +0 -1
- package/dist/components/component5.js.map +0 -1
- package/dist/components/component6.js.map +0 -1
- package/dist/components/component7.js.map +0 -1
- package/dist/components/component8.js.map +0 -1
- package/dist/components/component9.js.map +0 -1
- package/dist/components/controller.js.map +0 -1
- package/dist/components/controller2.js.map +0 -1
- package/dist/components/controller3.js.map +0 -1
- package/dist/components/controller4.js.map +0 -1
- package/dist/components/devtools.js.map +0 -1
- package/dist/components/index.js.map +0 -1
- package/dist/components/index.m.js.map +0 -1
- package/dist/components/index2.js.map +0 -1
- package/dist/components/index3.js.map +0 -1
- package/dist/components/kol-abbr.js.map +0 -1
- package/dist/components/kol-accordion.js.map +0 -1
- package/dist/components/kol-alert.js.map +0 -1
- package/dist/components/kol-badge.js.map +0 -1
- package/dist/components/kol-breadcrumb.js.map +0 -1
- package/dist/components/kol-button-group-wc.js.map +0 -1
- package/dist/components/kol-button-group.js.map +0 -1
- package/dist/components/kol-button-link.js.map +0 -1
- package/dist/components/kol-button-wc.js.map +0 -1
- package/dist/components/kol-button.js.map +0 -1
- package/dist/components/kol-card.js.map +0 -1
- package/dist/components/kol-color.js.map +0 -1
- package/dist/components/kol-counter.js.map +0 -1
- package/dist/components/kol-details.js.map +0 -1
- package/dist/components/kol-form.js.map +0 -1
- package/dist/components/kol-heading-wc.js.map +0 -1
- package/dist/components/kol-heading.js.map +0 -1
- package/dist/components/kol-icon-font-awesome.js.map +0 -1
- package/dist/components/kol-icon-icofont.js.map +0 -1
- package/dist/components/kol-icon.js.map +0 -1
- package/dist/components/kol-indented-text.js.map +0 -1
- package/dist/components/kol-input-adapter-leanup.js.map +0 -1
- package/dist/components/kol-input-checkbox.js.map +0 -1
- package/dist/components/kol-input-color.js.map +0 -1
- package/dist/components/kol-input-date.js.map +0 -1
- package/dist/components/kol-input-email.js.map +0 -1
- package/dist/components/kol-input-file.js.map +0 -1
- package/dist/components/kol-input-number.js.map +0 -1
- package/dist/components/kol-input-password.js.map +0 -1
- package/dist/components/kol-input-radio-group.js.map +0 -1
- package/dist/components/kol-input-radio.js.map +0 -1
- package/dist/components/kol-input-range.js.map +0 -1
- package/dist/components/kol-input-text.js.map +0 -1
- package/dist/components/kol-input.js.map +0 -1
- package/dist/components/kol-kolibri.js.map +0 -1
- package/dist/components/kol-link-button.js.map +0 -1
- package/dist/components/kol-link-group.js.map +0 -1
- package/dist/components/kol-link-wc.js.map +0 -1
- package/dist/components/kol-link.js.map +0 -1
- package/dist/components/kol-logo.js.map +0 -1
- package/dist/components/kol-modal.js.map +0 -1
- package/dist/components/kol-nav.js.map +0 -1
- package/dist/components/kol-pagination.js.map +0 -1
- package/dist/components/kol-progress.js.map +0 -1
- package/dist/components/kol-select.js.map +0 -1
- package/dist/components/kol-skip-nav.js.map +0 -1
- package/dist/components/kol-span-wc.js.map +0 -1
- package/dist/components/kol-span.js.map +0 -1
- package/dist/components/kol-spin.js.map +0 -1
- package/dist/components/kol-symbol.js.map +0 -1
- package/dist/components/kol-table.js.map +0 -1
- package/dist/components/kol-tabs.js.map +0 -1
- package/dist/components/kol-textarea.js.map +0 -1
- package/dist/components/kol-toast.js.map +0 -1
- package/dist/components/kol-tooltip.js.map +0 -1
- package/dist/components/kol-version.js.map +0 -1
- package/dist/components/prop.validators.js.map +0 -1
- package/dist/components/shadow.js.map +0 -1
- package/dist/components/shadow2.js.map +0 -1
- package/dist/components/validation.js.map +0 -1
- package/dist/esm/a11y.tipps-ff5a1a99.js.map +0 -1
- package/dist/esm/app-globals-cc26c297.js.map +0 -1
- package/dist/esm/bund-fe1f3789.js.map +0 -1
- package/dist/esm/button-link-7b1c4be0.js.map +0 -1
- package/dist/esm/color-d69786a5.js.map +0 -1
- package/dist/esm/controller-476e5aa0.js.map +0 -1
- package/dist/esm/controller-98097160.js.map +0 -1
- package/dist/esm/controller-ad6bdf65.js.map +0 -1
- package/dist/esm/controller-af756b28.js.map +0 -1
- package/dist/esm/controller-b89719ab.js.map +0 -1
- package/dist/esm/controller-e8ecf94e.js.map +0 -1
- package/dist/esm/dev.utils-daaf2f39.js.map +0 -1
- package/dist/esm/devtools-997ea90f.js.map +0 -1
- package/dist/esm/index-1b8b837d.js.map +0 -1
- package/dist/esm/index-90999368.js.map +0 -1
- package/dist/esm/index-d870d3e1.js.map +0 -1
- package/dist/esm/index-e722bdb7.js.map +0 -1
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/index.m-86dc8c44.js.map +0 -1
- package/dist/esm/kol-abbr.entry.js.map +0 -1
- package/dist/esm/kol-accordion.entry.js.map +0 -1
- package/dist/esm/kol-alert.entry.js.map +0 -1
- package/dist/esm/kol-badge.entry.js.map +0 -1
- package/dist/esm/kol-breadcrumb.entry.js.map +0 -1
- package/dist/esm/kol-button-group-wc.entry.js.map +0 -1
- package/dist/esm/kol-button-group.entry.js.map +0 -1
- package/dist/esm/kol-button-link.entry.js.map +0 -1
- package/dist/esm/kol-button-wc_2.entry.js.map +0 -1
- package/dist/esm/kol-button.entry.js.map +0 -1
- package/dist/esm/kol-card.entry.js.map +0 -1
- package/dist/esm/kol-color.entry.js.map +0 -1
- package/dist/esm/kol-counter.entry.js.map +0 -1
- package/dist/esm/kol-details.entry.js.map +0 -1
- package/dist/esm/kol-form.entry.js.map +0 -1
- package/dist/esm/kol-heading-wc_2.entry.js.map +0 -1
- package/dist/esm/kol-heading.entry.js.map +0 -1
- package/dist/esm/kol-icon-font-awesome.entry.js.map +0 -1
- package/dist/esm/kol-icon-icofont.entry.js.map +0 -1
- package/dist/esm/kol-icon.entry.js.map +0 -1
- package/dist/esm/kol-indented-text.entry.js.map +0 -1
- package/dist/esm/kol-input-adapter-leanup.entry.js.map +0 -1
- package/dist/esm/kol-input-checkbox.entry.js.map +0 -1
- package/dist/esm/kol-input-color.entry.js.map +0 -1
- package/dist/esm/kol-input-date.entry.js.map +0 -1
- package/dist/esm/kol-input-email.entry.js.map +0 -1
- package/dist/esm/kol-input-file.entry.js.map +0 -1
- package/dist/esm/kol-input-number.entry.js.map +0 -1
- package/dist/esm/kol-input-password.entry.js.map +0 -1
- package/dist/esm/kol-input-radio-group.entry.js.map +0 -1
- package/dist/esm/kol-input-radio.entry.js.map +0 -1
- package/dist/esm/kol-input-range.entry.js.map +0 -1
- package/dist/esm/kol-input-text.entry.js.map +0 -1
- package/dist/esm/kol-kolibri.entry.js.map +0 -1
- package/dist/esm/kol-link-button.entry.js.map +0 -1
- package/dist/esm/kol-link-group.entry.js.map +0 -1
- package/dist/esm/kol-link-wc.entry.js.map +0 -1
- package/dist/esm/kol-link.entry.js.map +0 -1
- package/dist/esm/kol-logo.entry.js.map +0 -1
- package/dist/esm/kol-modal.entry.js.map +0 -1
- package/dist/esm/kol-nav.entry.js.map +0 -1
- package/dist/esm/kol-pagination.entry.js.map +0 -1
- package/dist/esm/kol-progress.entry.js.map +0 -1
- package/dist/esm/kol-select.entry.js.map +0 -1
- package/dist/esm/kol-skip-nav.entry.js.map +0 -1
- package/dist/esm/kol-span.entry.js.map +0 -1
- package/dist/esm/kol-spin.entry.js.map +0 -1
- package/dist/esm/kol-symbol.entry.js.map +0 -1
- package/dist/esm/kol-table.entry.js.map +0 -1
- package/dist/esm/kol-tabs.entry.js.map +0 -1
- package/dist/esm/kol-textarea.entry.js.map +0 -1
- package/dist/esm/kol-toast.entry.js.map +0 -1
- package/dist/esm/kol-tooltip.entry.js.map +0 -1
- package/dist/esm/kol-version.entry.js.map +0 -1
- package/dist/esm/kolibri.js.map +0 -1
- package/dist/esm/label-59d375aa.js.map +0 -1
- package/dist/esm/loader.js.map +0 -1
- package/dist/esm/prop.validators-4cac744a.js.map +0 -1
- package/dist/esm/reuse-f9be4952.js.map +0 -1
- package/dist/esm/tab-index-0b0ee76b.js.map +0 -1
- package/dist/esm/validation-1b0ac934.js.map +0 -1
- package/dist/esm/validation-b0cccd61.js.map +0 -1
- package/dist/esm/validator-8ee8737c.js.map +0 -1
- package/dist/kolibri/a11y.tipps-ff5a1a99.js.map +0 -1
- package/dist/kolibri/app-globals-cc26c297.js.map +0 -1
- package/dist/kolibri/bund-fe1f3789.js.map +0 -1
- package/dist/kolibri/button-link-7b1c4be0.js.map +0 -1
- package/dist/kolibri/color-d69786a5.js.map +0 -1
- package/dist/kolibri/controller-476e5aa0.js.map +0 -1
- package/dist/kolibri/controller-98097160.js.map +0 -1
- package/dist/kolibri/controller-ad6bdf65.js.map +0 -1
- package/dist/kolibri/controller-af756b28.js.map +0 -1
- package/dist/kolibri/controller-b89719ab.js.map +0 -1
- package/dist/kolibri/controller-e8ecf94e.js.map +0 -1
- package/dist/kolibri/dev.utils-daaf2f39.js.map +0 -1
- package/dist/kolibri/devtools-997ea90f.js.map +0 -1
- package/dist/kolibri/index-1b8b837d.js.map +0 -1
- package/dist/kolibri/index-90999368.js +0 -5
- package/dist/kolibri/index-90999368.js.map +0 -1
- package/dist/kolibri/index-d870d3e1.js.map +0 -1
- package/dist/kolibri/index-e722bdb7.js.map +0 -1
- package/dist/kolibri/index.esm.js.map +0 -1
- package/dist/kolibri/index.m-86dc8c44.js.map +0 -1
- package/dist/kolibri/kol-abbr.entry.js.map +0 -1
- package/dist/kolibri/kol-accordion.entry.js.map +0 -1
- package/dist/kolibri/kol-alert.entry.js.map +0 -1
- package/dist/kolibri/kol-badge.entry.js.map +0 -1
- package/dist/kolibri/kol-breadcrumb.entry.js.map +0 -1
- package/dist/kolibri/kol-button-group-wc.entry.js.map +0 -1
- package/dist/kolibri/kol-button-group.entry.js.map +0 -1
- package/dist/kolibri/kol-button-link.entry.js.map +0 -1
- package/dist/kolibri/kol-button-wc_2.entry.js.map +0 -1
- package/dist/kolibri/kol-button.entry.js.map +0 -1
- package/dist/kolibri/kol-card.entry.js.map +0 -1
- package/dist/kolibri/kol-color.entry.js.map +0 -1
- package/dist/kolibri/kol-counter.entry.js.map +0 -1
- package/dist/kolibri/kol-details.entry.js.map +0 -1
- package/dist/kolibri/kol-form.entry.js.map +0 -1
- package/dist/kolibri/kol-heading-wc_2.entry.js.map +0 -1
- package/dist/kolibri/kol-heading.entry.js.map +0 -1
- package/dist/kolibri/kol-icon-font-awesome.entry.js.map +0 -1
- package/dist/kolibri/kol-icon-icofont.entry.js.map +0 -1
- package/dist/kolibri/kol-icon.entry.js.map +0 -1
- package/dist/kolibri/kol-indented-text.entry.js.map +0 -1
- package/dist/kolibri/kol-input-adapter-leanup.entry.js.map +0 -1
- package/dist/kolibri/kol-input-checkbox.entry.js.map +0 -1
- package/dist/kolibri/kol-input-color.entry.js.map +0 -1
- package/dist/kolibri/kol-input-date.entry.js.map +0 -1
- package/dist/kolibri/kol-input-email.entry.js.map +0 -1
- package/dist/kolibri/kol-input-file.entry.js.map +0 -1
- package/dist/kolibri/kol-input-number.entry.js.map +0 -1
- package/dist/kolibri/kol-input-password.entry.js.map +0 -1
- package/dist/kolibri/kol-input-radio-group.entry.js.map +0 -1
- package/dist/kolibri/kol-input-radio.entry.js.map +0 -1
- package/dist/kolibri/kol-input-range.entry.js.map +0 -1
- package/dist/kolibri/kol-input-text.entry.js.map +0 -1
- package/dist/kolibri/kol-kolibri.entry.js.map +0 -1
- package/dist/kolibri/kol-link-button.entry.js.map +0 -1
- package/dist/kolibri/kol-link-group.entry.js.map +0 -1
- package/dist/kolibri/kol-link-wc.entry.js.map +0 -1
- package/dist/kolibri/kol-link.entry.js.map +0 -1
- package/dist/kolibri/kol-logo.entry.js.map +0 -1
- package/dist/kolibri/kol-modal.entry.js.map +0 -1
- package/dist/kolibri/kol-nav.entry.js.map +0 -1
- package/dist/kolibri/kol-pagination.entry.js.map +0 -1
- package/dist/kolibri/kol-progress.entry.js.map +0 -1
- package/dist/kolibri/kol-select.entry.js.map +0 -1
- package/dist/kolibri/kol-skip-nav.entry.js.map +0 -1
- package/dist/kolibri/kol-span.entry.js.map +0 -1
- package/dist/kolibri/kol-spin.entry.js.map +0 -1
- package/dist/kolibri/kol-symbol.entry.js.map +0 -1
- package/dist/kolibri/kol-table.entry.js.map +0 -1
- package/dist/kolibri/kol-tabs.entry.js.map +0 -1
- package/dist/kolibri/kol-textarea.entry.js.map +0 -1
- package/dist/kolibri/kol-toast.entry.js.map +0 -1
- package/dist/kolibri/kol-tooltip.entry.js.map +0 -1
- package/dist/kolibri/kol-version.entry.js.map +0 -1
- package/dist/kolibri/kolibri.esm.js.map +0 -1
- package/dist/kolibri/label-59d375aa.js.map +0 -1
- package/dist/kolibri/prop.validators-4cac744a.js.map +0 -1
- package/dist/kolibri/reuse-f9be4952.js.map +0 -1
- package/dist/kolibri/tab-index-0b0ee76b.js.map +0 -1
- package/dist/kolibri/validation-1b0ac934.js.map +0 -1
- package/dist/kolibri/validation-b0cccd61.js.map +0 -1
- package/dist/kolibri/validator-8ee8737c.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["AVAILABLE_HORIZONTAL_ALIGNMENT_VALUES","Set","AVAILABLE_VERTICAL_ALIGNMENT_VALUES","AVAILABLE_ALIGNMENT_VALUES","validateAlignment","component","propName","value","watchValidator","defaultStyleCss","KolTabs","this","onCreateLabel","showCreateTab","nextPossibleTabIndex","tabs","offset","step","length","_disabled","onKeyDown","event","timeout","setTimeout","clearTimeout","selectedIndex","key","state","_tabs","_selected","onSelect","onClickSelect","index","onMouseDown","stopPropagation","catchTabPanelHost","el","tabPanelHost","selectNextNotDisabledTab","selected","upOrDown","initialSelected","Array","isArray","devHint","syncSelectedAndTabs","nextValue","nextState","_component","set","handleTabPanels","HTMLDivElement","i","children","div","document","createElement","setAttribute","slot","appendChild","_a","host","HTMLCollection","_b","HTMLElement","_c","onCreate","_on","_ariaLabel","_tabsAlign","renderButtonGroup","h","role","map","button","class","_icon","_iconOnly","_label","onClick","_tabIndex","_tooltipAlign","_variant","undefined","_customClass","_ariaControls","_id","_role","render","Host","ref","tabPanelsElement","validateAriaLabel","watchString","required","a11yHintLabelingLandmarks","validateOn","featureHint","callbacks","label","Log","debug","callback","setState","validateSelected","watchNumber","hooks","beforePatch","validateTabs","watchJsonArrayString","item","uiUxHintMillerscheZahl","validateTabsAlign","componentWillLoad","componentDidRender","removeAttribute","focus","selectedTimeout","koliBriQuerySelector"],"sources":["./src/utils/validators/alignment.ts","./src/components/tabs/style.sass?tag=kol-tabs&mode=default&encapsulation=shadow","./src/components/tabs/component.tsx"],"sourcesContent":["import { Generic } from '@public-ui/core';\nimport { Alignment } from '../../types/props/alignment';\nimport { watchValidator } from '../prop.validators';\n\nconst AVAILABLE_HORIZONTAL_ALIGNMENT_VALUES = new Set(['\"left\", \"right\"']);\n// export const validateHorizontalAlignment = (component: Generic.Element.Component, propName: string, value?: HorizontalAlignment): void => {\n// \twatchValidator(component, propName, (value) => value === 'left' || value === 'right', AVAILABLE_HORIZONTAL_ALIGNMENT_VALUES, value);\n// };\n\nconst AVAILABLE_VERTICAL_ALIGNMENT_VALUES = new Set(['\"left\", \"right\"']);\n// export const validateVertivalAlignment = (component: Generic.Element.Component, propName: string, value?: VerticalAlignment): void => {\n// \twatchValidator(component, propName, (value) => value === 'top' || value === 'bottom', AVAILABLE_VERTICAL_ALIGNMENT_VALUES, value);\n// };\n\nconst AVAILABLE_ALIGNMENT_VALUES = new Set([...AVAILABLE_HORIZONTAL_ALIGNMENT_VALUES, ...AVAILABLE_VERTICAL_ALIGNMENT_VALUES]);\nexport const validateAlignment = (component: Generic.Element.Component, propName: string, value?: Alignment): void => {\n\twatchValidator(\n\t\tcomponent,\n\t\tpropName,\n\t\t(value) => value === 'bottom' || value === 'left' || value === 'right' || value === 'top',\n\t\tAVAILABLE_ALIGNMENT_VALUES,\n\t\tvalue\n\t);\n};\n","/* windicss-touch: 1649041722768 */\n@import ../button/style\n\n:host\n\n button\n &[aria-selected=\"true\"],\n &:focus\n border-bottom-color: var(--kolibri-color-accent) !important\n border-bottom-width: 6px !important\n\n .close-button\n font-size: 50%\n height: fit-content\n left: -3em\n position: relative\n top: .25em\n","import { Component, Element, h, Host, JSX, Prop, State, Watch } from '@stencil/core';\nimport { Events } from '../../enums/events';\nimport { KoliBriIconProp } from '../../types/icon';\n\nimport { Generic } from '@public-ui/core';\nimport { EventCallback, EventValueCallback } from '../../types/callbacks';\nimport { Stringified } from '../../types/common';\nimport { Alignment } from '../../types/props/alignment';\nimport { a11yHintLabelingLandmarks, devHint, featureHint, uiUxHintMillerscheZahl } from '../../utils/a11y.tipps';\nimport { Log } from '../../utils/dev.utils';\nimport { koliBriQuerySelector, setState, watchJsonArrayString, watchNumber, watchString } from '../../utils/prop.validators';\nimport { validateAlignment } from '../../utils/validators/alignment';\n\n// https://www.w3.org/TR/wai-aria-practices-1.1/examples/tabs/tabs-2/tabs.html\n\nexport type KoliBriTabsCallbacks = /* {\n\tonClose?: true | EventValueCallback<Event, number>;\n} & */ {\n\tonCreate?:\n\t\t| EventCallback<Event>\n\t\t| {\n\t\t\t\tlabel: string;\n\t\t\t\tcallback: EventCallback<Event>;\n\t\t };\n} & {\n\t[Events.onSelect]?: EventValueCallback<CustomEvent | KeyboardEvent | PointerEvent, number>;\n};\n\ntype RequiredTabButtonProps = {\n\tlabel: string;\n};\ntype OptionalTabButtonProps = {\n\tdisabled: boolean;\n\ticon: Stringified<KoliBriIconProp>;\n\ticonOnly: boolean;\n\ttooltipAlign: Alignment;\n};\nexport type TabButtonProps = Generic.Element.Members<RequiredTabButtonProps, OptionalTabButtonProps>;\n\n/**\n * API\n */\ntype RequiredProps = {\n\tariaLabel: string;\n\ttabs: Stringified<TabButtonProps[]>;\n};\ntype OptionalProps = {\n\ton: KoliBriTabsCallbacks;\n\ttabsAlign: Alignment;\n\tselected: number;\n};\n// type Props = Generic.Element.Members<RequiredProps, OptionalProps>;\n\ntype RequiredStates = {\n\tariaLabel: string;\n\ttabsAlign: Alignment;\n\tselected: number;\n\ttabs: TabButtonProps[];\n};\ntype OptionalStates = {\n\ton: KoliBriTabsCallbacks;\n};\ntype States = Generic.Element.Members<RequiredStates, OptionalStates>;\n\n@Component({\n\ttag: 'kol-tabs',\n\tstyleUrls: {\n\t\tdefault: './style.sass',\n\t},\n\tshadow: true,\n})\nexport class KolTabs implements Generic.Element.ComponentApi<RequiredProps, OptionalProps, RequiredStates, OptionalStates> {\n\t@Element() private readonly host?: HTMLKolTabsElement;\n\tprivate tabPanelsElement?: HTMLElement;\n\tprivate onCreateLabel = 'Neu …';\n\tprivate showCreateTab = false;\n\tprivate selectedTimeout?: ReturnType<typeof setTimeout>;\n\n\tprivate nextPossibleTabIndex = (tabs: TabButtonProps[], offset: number, step: number): number => {\n\t\tif (step > 0) {\n\t\t\tif (offset + step < tabs.length) {\n\t\t\t\tif (tabs[offset + step]._disabled) {\n\t\t\t\t\treturn this.nextPossibleTabIndex(tabs, offset, step + 1);\n\t\t\t\t}\n\t\t\t\treturn offset + step;\n\t\t\t}\n\t\t} else if (step < 0) {\n\t\t\tif (offset + step >= 0) {\n\t\t\t\tif (tabs[offset + step]._disabled) {\n\t\t\t\t\treturn this.nextPossibleTabIndex(tabs, offset, step - 1);\n\t\t\t\t}\n\t\t\t\treturn offset + step;\n\t\t\t}\n\t\t}\n\t\treturn offset;\n\t};\n\n\tprivate onKeyDown = (event: KeyboardEvent) => {\n\t\tconst timeout = setTimeout(() => {\n\t\t\tclearTimeout(timeout);\n\t\t\tlet selectedIndex: number | null = null;\n\t\t\tswitch (event.key) {\n\t\t\t\tcase 'ArrowRight':\n\t\t\t\t\tselectedIndex = this.nextPossibleTabIndex(this.state._tabs, this.state._selected, 1);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'ArrowLeft':\n\t\t\t\t\tselectedIndex = this.nextPossibleTabIndex(this.state._tabs, this.state._selected, -1);\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (selectedIndex !== null) {\n\t\t\t\tthis.onSelect(event, selectedIndex, true);\n\t\t\t}\n\t\t}, 250);\n\t};\n\n\tprivate readonly onClickSelect = (event: PointerEvent, index: number): void => {\n\t\tthis.onSelect(event, index, true);\n\t};\n\n\t// private readonly onClickClose = (event: Event, button: TabButtonProps, index: number) => {\n\t// \tevent.stopPropagation();\n\t// \tthis.onClose(button, event, index);\n\t// };\n\n\tprivate readonly onMouseDown = (event: Event): void => {\n\t\tevent.stopPropagation();\n\t};\n\n\tprivate renderButtonGroup() {\n\t\treturn (\n\t\t\t// <!-- style=\"order:2\" -->\n\t\t\t<kol-button-group-wc role=\"tablist\" aria-label={this.state._ariaLabel} onKeyDown={this.onKeyDown}>\n\t\t\t\t{this.state._tabs.map((button: TabButtonProps, index: number) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t/**\n\t\t\t\t\t\t * Ohne Shadow-DOM könnte auch die kol-button-wc genutzt werden.\n\t\t\t\t\t\t */\n\t\t\t\t\t\t<div class=\"inline-flex\">\n\t\t\t\t\t\t\t<kol-button-wc\n\t\t\t\t\t\t\t\tclass=\"h-full\"\n\t\t\t\t\t\t\t\t_disabled={button._disabled}\n\t\t\t\t\t\t\t\t_icon={button._icon}\n\t\t\t\t\t\t\t\t_iconOnly={button._iconOnly}\n\t\t\t\t\t\t\t\t_label={button._label && button._label} // TODO: ariaLabel-Konzept prüfen\n\t\t\t\t\t\t\t\t_on={{\n\t\t\t\t\t\t\t\t\tonClick: (event) => this.onClickSelect(event, index),\n\t\t\t\t\t\t\t\t\tonMouseDown: this.onMouseDown,\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t_tabIndex={this.state._selected === index ? 0 : -1}\n\t\t\t\t\t\t\t\t_tooltipAlign={button._tooltipAlign}\n\t\t\t\t\t\t\t\t_variant={this.state._selected === index ? 'custom' : undefined}\n\t\t\t\t\t\t\t\t_customClass={this.state._selected === index ? 'selected' : undefined}\n\t\t\t\t\t\t\t\t_ariaControls={`tabpanel-${index}`}\n\t\t\t\t\t\t\t\t// _ariaSelected={this.state._selected === index ? 'true' : 'false'}\n\t\t\t\t\t\t\t\t_id={`tab-${index}`}\n\t\t\t\t\t\t\t\t_role=\"tab\"\n\t\t\t\t\t\t\t></kol-button-wc>\n\t\t\t\t\t\t\t{/* {typeof button._on?.onClose === 'function' ||\n (button._on?.onClose === true && (\n <kol-button-wc\n class=\"close-button\"\n _icon={{\n left: {\n icon: 'fa-solid fa-xmark',\n style: {\n 'font-size': '200%',\n },\n },\n }}\n _iconOnly\n _label={`Registerkarte ${button._label} schließen`}\n _on={{\n onClick: (event: Event) => this.onClickClose(event, button, index),\n }}\n _variant=\"ghost\"\n ></kol-button-wc>\n ))} */}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t\t{this.showCreateTab && (\n\t\t\t\t\t<kol-button-wc\n\t\t\t\t\t\tclass=\"create-button\"\n\t\t\t\t\t\t_label={this.onCreateLabel}\n\t\t\t\t\t\t_on={{\n\t\t\t\t\t\t\tonClick: this.onCreate,\n\t\t\t\t\t\t}}\n\t\t\t\t\t></kol-button-wc>\n\t\t\t\t)}\n\t\t\t</kol-button-group-wc>\n\t\t);\n\t}\n\n\tprivate tabPanelHost?: HTMLDivElement;\n\n\tprivate readonly catchTabPanelHost = (el?: HTMLDivElement) => {\n\t\tthis.tabPanelHost = el;\n\t};\n\n\tpublic render(): JSX.Element {\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t<div\n\t\t\t\t\tref={(el) => {\n\t\t\t\t\t\tthis.tabPanelsElement = el as HTMLElement;\n\t\t\t\t\t}}\n\t\t\t\t\tclass={{\n\t\t\t\t\t\t[`tabs-align-${this.state._tabsAlign}`]: true,\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t{this.renderButtonGroup()}\n\t\t\t\t\t<div ref={this.catchTabPanelHost}>{/* <slot /> */}</div>\n\t\t\t\t</div>\n\t\t\t</Host>\n\t\t);\n\t}\n\n\t/**\n\t * Gibt den Text an, der die Navigation von anderen Navigationen differenziert.\n\t */\n\t@Prop() public _ariaLabel!: string;\n\n\t/**\n\t * Gibt die Liste der Callback-Funktionen an, die auf Events aufgerufen werden sollen.\n\t */\n\t@Prop() public _on?: KoliBriTabsCallbacks;\n\n\t/**\n\t * Gibt an, welches Tab selektiert sein soll.\n\t */\n\t@Prop({ mutable: true, reflect: true }) public _selected?: number = 0;\n\n\t/**\n\t * Gibt die geordnete Liste der Seitenhierarchie in Links an.\n\t */\n\t@Prop() public _tabs!: Stringified<TabButtonProps[]>;\n\n\t/**\n\t * Gibt an, ob die Tab-Schalter entweder oben, rechts, unten oder links angeordnet sind.\n\t */\n\t@Prop() public _tabsAlign?: Alignment = 'top';\n\n\t/**\n\t * @see: components/abbr/component.tsx (@State)\n\t */\n\t@State() public state: States = {\n\t\t_ariaLabel: '…',\n\t\t_selected: 0,\n\t\t_tabs: [],\n\t\t_tabsAlign: 'top',\n\t};\n\n\tprivate selectNextNotDisabledTab = (selected: number, tabs: TabButtonProps[], upOrDown = true, initialSelected?: number): number => {\n\t\tif (selected > tabs.length - 1) {\n\t\t\tselected = tabs.length - 1;\n\t\t}\n\t\tif (selected < 0) {\n\t\t\tselected = 0;\n\t\t}\n\t\tif (Array.isArray(tabs) && tabs[selected]) {\n\t\t\tif (tabs[selected]._disabled) {\n\t\t\t\tif (upOrDown === true) {\n\t\t\t\t\tif (selected < tabs.length - 1) {\n\t\t\t\t\t\treturn this.selectNextNotDisabledTab(selected + 1, tabs, true, initialSelected || selected);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tselected = initialSelected || selected;\n\t\t\t\t\t\tupOrDown = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (upOrDown === false) {\n\t\t\t\t\tif (selected > 0) {\n\t\t\t\t\t\treturn this.selectNextNotDisabledTab(selected - 1, tabs, false, initialSelected || selected);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdevHint(`[KolTabs] Alle Tabs sind deaktiviert und somit kann kein Tab angezeigt werden.`);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn selected;\n\t};\n\n\tprivate syncSelectedAndTabs = (nextValue: unknown, nextState: Map<string, unknown>, _component: Generic.Element.Component, key: string) => {\n\t\tlet selected: number;\n\t\tif (key === '_selected') {\n\t\t\tselected = nextValue as number;\n\t\t} else {\n\t\t\tselected = this.state._selected;\n\t\t}\n\t\tlet tabs: TabButtonProps[];\n\t\tif (key === '_tabs') {\n\t\t\ttabs = nextValue as TabButtonProps[];\n\t\t} else {\n\t\t\ttabs = this.state._tabs;\n\t\t}\n\t\tif (tabs.length > 0) {\n\t\t\tnextState.set('_selected', this.selectNextNotDisabledTab(selected, tabs));\n\t\t}\n\t};\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_ariaLabel')\n\tpublic validateAriaLabel(value?: string): void {\n\t\twatchString(this, '_ariaLabel', value, {\n\t\t\trequired: true,\n\t\t});\n\t\ta11yHintLabelingLandmarks(value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_on')\n\tpublic validateOn(value?: KoliBriTabsCallbacks): void {\n\t\tif (typeof value === 'object' && value !== null) {\n\t\t\tfeatureHint('[KolTabs] Prüfen, wie man auch einen EventCallback einzeln ändern kann.');\n\t\t\tconst callbacks: KoliBriTabsCallbacks = {};\n\t\t\tif (typeof value.onCreate === 'function' || typeof value.onCreate === 'object') {\n\t\t\t\tif (typeof value.onCreate === 'object') {\n\t\t\t\t\tif (typeof value.onCreate.label === 'string' && value.onCreate.label.length > 0) {\n\t\t\t\t\t\tthis.onCreateLabel = value.onCreate.label;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tLog.debug(\n\t\t\t\t\t\t\t`[KolTabs] Der Label-Text für Neu in {\n onCreate: {\n label: string (!),\n callback: Function\n }\n} ist nicht korrekt gesetzt.`\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\tif (typeof value.onCreate.callback === 'function') {\n\t\t\t\t\t\tcallbacks.onCreate = value.onCreate.callback;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tLog.debug(\n\t\t\t\t\t\t\t`[KolTabs] Die onCreate-Callback-Funktion für Neu in {\n onCreate: {\n label: string,\n callback: Function (!)\n }\n} ist nicht korrekt gesetzt.`\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tcallbacks.onCreate = value.onCreate;\n\t\t\t\t}\n\t\t\t\tthis.showCreateTab = typeof callbacks.onCreate === 'function';\n\t\t\t}\n\t\t\tif (typeof value.onSelect === 'function') {\n\t\t\t\tcallbacks.onSelect = value.onSelect;\n\t\t\t}\n\t\t\tsetState<KoliBriTabsCallbacks>(this, '_on', callbacks);\n\t\t}\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_selected')\n\tpublic validateSelected(value?: number): void {\n\t\twatchNumber(this, '_selected', value, {\n\t\t\thooks: {\n\t\t\t\tbeforePatch: this.syncSelectedAndTabs,\n\t\t\t},\n\t\t});\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_tabs')\n\tpublic validateTabs(value?: Stringified<TabButtonProps[]>): void {\n\t\twatchJsonArrayString(\n\t\t\tthis,\n\t\t\t'_tabs',\n\t\t\t(item: TabButtonProps) => typeof item === 'object' && item !== null && typeof item._label === 'string' && item._label.length > 0,\n\t\t\tvalue,\n\t\t\tundefined,\n\t\t\t{\n\t\t\t\thooks: {\n\t\t\t\t\tbeforePatch: this.syncSelectedAndTabs,\n\t\t\t\t},\n\t\t\t}\n\t\t);\n\t\tuiUxHintMillerscheZahl('KolTabs', this.state._tabs.length);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_tabsAlign')\n\tpublic validateTabsAlign(value?: Alignment): void {\n\t\tvalidateAlignment(this, '_tabsAlign', value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (componentWillLoad)\n\t */\n\tpublic componentWillLoad(): void {\n\t\tthis.validateAriaLabel(this._ariaLabel);\n\t\tthis.validateOn(this._on);\n\t\tthis.validateSelected(this._selected);\n\t\tthis.validateTabs(this._tabs);\n\t\tthis.validateTabsAlign(this._tabsAlign);\n\t}\n\n\tprivate readonly handleTabPanels = () => {\n\t\tif (this.tabPanelHost instanceof HTMLDivElement) {\n\t\t\tfor (let i = this.tabPanelHost.children.length; i < this.state._tabs.length; i++) {\n\t\t\t\tconst div = document.createElement('div');\n\t\t\t\tdiv.setAttribute('aria-labelledby', `tab-${i}`);\n\t\t\t\tdiv.setAttribute('id', `tabpanel-${i}`);\n\t\t\t\tdiv.setAttribute('role', 'tabpanel');\n\t\t\t\tdiv.setAttribute('hidden', '');\n\t\t\t\tconst slot = document.createElement('slot');\n\t\t\t\tslot.setAttribute('name', `tabpanel-slot-${i}`);\n\t\t\t\tdiv.appendChild(slot);\n\t\t\t\tthis.tabPanelHost.appendChild(div);\n\t\t\t\tif (this.host?.children instanceof HTMLCollection && this.host?.children[i] instanceof HTMLElement) {\n\t\t\t\t\t// div.appendChild(this.host?.children[0]);\n\t\t\t\t\tthis.host?.children[i].setAttribute('slot', `tabpanel-slot-${i}`);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\n\tpublic componentDidRender(): void {\n\t\tthis.handleTabPanels();\n\t\tif (this.tabPanelHost instanceof HTMLDivElement) {\n\t\t\tfor (let i = 0; i < this.tabPanelHost.children.length; i++) {\n\t\t\t\tif (i !== this.state._selected) {\n\t\t\t\t\tthis.tabPanelHost.children[i].setAttribute('hidden', '');\n\t\t\t\t} else {\n\t\t\t\t\tthis.tabPanelHost.children[i].removeAttribute('hidden');\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate onSelect(event: CustomEvent | KeyboardEvent | PointerEvent, index: number, focus = false): void {\n\t\tthis._selected = index;\n\t\tif (typeof this._on?.onSelect === 'function') {\n\t\t\tthis._on?.onSelect(event, index);\n\t\t}\n\t\tif (focus === true) {\n\t\t\t// TODO: prüfen, ob hier noch was offen ist\n\t\t\t// devHint('[KolTabs] Tab-Fokus-verschieben geht im Moment nicht.');\n\t\t\tthis.selectedTimeout = setTimeout(() => {\n\t\t\t\tclearTimeout(this.selectedTimeout);\n\t\t\t\tif (this.tabPanelsElement instanceof HTMLElement) {\n\t\t\t\t\tconst button: HTMLElement | null = koliBriQuerySelector(`button#tab-${index}`, this.tabPanelsElement);\n\t\t\t\t\tbutton?.focus();\n\t\t\t\t}\n\t\t\t}, 250);\n\t\t}\n\t}\n\n\tprivate onCreate = (event: Event) => {\n\t\tevent.stopPropagation();\n\t\tif (typeof this.state._on?.onCreate === 'function') {\n\t\t\tthis.state._on?.onCreate(event);\n\t\t}\n\t};\n}\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["TextareaController","InputController","constructor","component","name","host","super","this","afterSyncCharCounter","_value","length","state","_currentLength","validateHasCounter","value","watchBoolean","hooks","afterPatch","validateMaxLength","watchNumber","min","validatePlaceholder","watchString","validateReadOnly","validateResize","watchValidator","Set","validateRequired","validateRows","validateValue","setFormAssociatedValue","componentWillLoad","_hasCounter","_maxLength","_placeholder","_readOnly","_resize","_required","_rows","defaultInputLineCss","increaseTextareaHeight","el","style","overflow","currentRows","rows","rowHeight","clientHeight","nextRows","Math","round","scrollHeight","KolTextarea","render","ariaDiscribedBy","getRenderStates","h","Host","_alert","_disabled","_error","_hideLabel","_hint","_id","_touched","slot","Object","assign","ref","catchRef","part","title","join","undefined","autoCapitalize","autoCorrect","disabled","id","maxlength","_name","readOnly","required","placeholder","spellcheck","controller","onFacade","onKeyUp","onChange","resize","Fragment","role","hostRef","propergateFocus","event","path","Array","isArray","HTMLTextAreaElement","setState","_adjustHeight","validateAccessKey","validateAdjustHeight","validateAlert","validateDisabled","validateError","validateHideLabel","validateHint","validateId","validateName","validateOn","validateTabIndex","validateTouched"],"sources":["./src/components/textarea/controller.ts","./src/components/input-line.sass?tag=kol-textarea&mode=default&encapsulation=shadow","./src/components/textarea/component.tsx"],"sourcesContent":["import { Generic } from '@public-ui/core';\nimport { watchBoolean, watchNumber, watchString, watchValidator } from '../../utils/prop.validators';\nimport { InputController } from '../@deprecated/input/controller';\nimport { CSSResize, Props, Watches } from './types';\n\nexport class TextareaController extends InputController implements Watches {\n\tprotected readonly component: Generic.Element.Component & Props;\n\n\tpublic constructor(component: Generic.Element.Component & Props, name: string, host?: HTMLElement) {\n\t\tsuper(component, name, host);\n\t\tthis.component = component;\n\t}\n\n\tprivate afterSyncCharCounter = () => {\n\t\tif (typeof this.component._value === 'string' && this.component._value.length > 0) {\n\t\t\tthis.component.state._currentLength = this.component._value.length;\n\t\t}\n\t};\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\tpublic validateHasCounter(value?: boolean): void {\n\t\twatchBoolean(this.component, '_hasCounter', value, {\n\t\t\thooks: {\n\t\t\t\tafterPatch: this.afterSyncCharCounter,\n\t\t\t},\n\t\t});\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\tpublic validateMaxLength(value?: number): void {\n\t\twatchNumber(this.component, '_maxLength', value, {\n\t\t\thooks: {\n\t\t\t\tafterPatch: this.afterSyncCharCounter,\n\t\t\t},\n\t\t\tmin: 0,\n\t\t});\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\tpublic validatePlaceholder(value?: string): void {\n\t\twatchString(this.component, '_placeholder', value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\tpublic validateReadOnly(value?: boolean): void {\n\t\twatchBoolean(this.component, '_readOnly', value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\tpublic validateResize(value?: CSSResize): void {\n\t\twatchValidator(\n\t\t\tthis.component,\n\t\t\t'_resize',\n\t\t\t(value) => typeof value === 'string' && (value === 'both' || value === 'horizontal' || value === 'none' || value === 'vertical'),\n\t\t\tnew Set('String {both, horizontal, vertical, none}'),\n\t\t\tvalue\n\t\t);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\tpublic validateRequired(value?: boolean): void {\n\t\twatchBoolean(this.component, '_required', value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\tpublic validateRows(value?: number): void {\n\t\twatchNumber(this.component, '_rows', value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\tpublic validateValue(value?: string): void {\n\t\twatchString(this.component, '_value', value, {\n\t\t\thooks: {\n\t\t\t\tafterPatch: this.afterSyncCharCounter,\n\t\t\t},\n\t\t});\n\t\tthis.setFormAssociatedValue(this.component._value as string);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (componentWillLoad)\n\t */\n\tpublic componentWillLoad(): void {\n\t\tsuper.componentWillLoad();\n\t\tthis.validateHasCounter(this.component._hasCounter);\n\t\tthis.validateMaxLength(this.component._maxLength);\n\t\tthis.validatePlaceholder(this.component._placeholder);\n\t\tthis.validateReadOnly(this.component._readOnly);\n\t\tthis.validateResize(this.component._resize);\n\t\tthis.validateRequired(this.component._required);\n\t\tthis.validateRows(this.component._rows);\n\t\tthis.validateValue(this.component._value);\n\t}\n}\n","/* windicss-touch: 1648259771586 */\n@import ./input\n\n.kol-disabled\n opacity: 0.5\n\n.kol-cursor-not-allowed,\n.kol-cursor-not-allowed *\n cursor: not-allowed\n\ninput[type=\"color\"],\ninput[type=\"date\"],\ninput[type=\"datetime-local\"],\ninput[type=\"email\"],\ninput[type=\"file\"],\ninput[type=\"month\"],\ninput[type=\"number\"],\ninput[type=\"password\"],\ninput[type=\"search\"],\ninput[type=\"tel\"],\ninput[type=\"text\"],\ninput[type=\"time\"],\ninput[type=\"url\"],\ninput[type=\"week\"],\nselect,\ntextarea\n background-color: white\n display: block\n line-height: 1em\n padding: .5em\n\ninput[type=\"color\"]\n height: 2.5em\n padding: .25em 0.5em\n\ntextarea\n padding: .5em\n","import { Component, Element, Fragment, h, Host, JSX, Prop, State, Watch } from '@stencil/core';\n\nimport { InputTypeOnDefault } from '../../types/input/types';\nimport { setState } from '../../utils/prop.validators';\nimport { propergateFocus } from '../../utils/reuse';\nimport { getRenderStates } from '../input/controller';\nimport { TextareaController } from './controller';\nimport { ComponentApi, CSSResize, States } from './types';\n\n/**\n * https://stackoverflow.com/questions/17772260/textarea-auto-height\n */\nconst increaseTextareaHeight = (el: HTMLTextAreaElement): number => {\n\tel.style.overflow = 'hidden'; // verhindert, dass ein Scrollbalken kurz angezeigt wird\n\tconst currentRows = el.rows;\n\tconst rowHeight = el.clientHeight / currentRows;\n\tel.rows = 1;\n\tconst nextRows = Math.round(el.scrollHeight / rowHeight);\n\tel.rows = currentRows;\n\treturn nextRows;\n};\n\n@Component({\n\ttag: 'kol-textarea',\n\tstyleUrls: {\n\t\tdefault: '../input-line.sass',\n\t},\n\tshadow: true,\n})\nexport class KolTextarea implements ComponentApi {\n\t@Element() private readonly host?: HTMLKolTextareaElement;\n\tprivate ref?: HTMLTextAreaElement;\n\n\tprivate readonly catchRef = (ref?: HTMLTextAreaElement) => {\n\t\tthis.ref = ref;\n\t\tpropergateFocus(this.host, this.ref);\n\t};\n\n\tpublic render(): JSX.Element {\n\t\tconst { ariaDiscribedBy } = getRenderStates(this.state);\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t<kol-input\n\t\t\t\t\t_alert={this.state._alert}\n\t\t\t\t\t_disabled={this.state._disabled}\n\t\t\t\t\t_error={this.state._error}\n\t\t\t\t\t_hideLabel={this.state._hideLabel}\n\t\t\t\t\t_hint={this.state._hint}\n\t\t\t\t\t_id={this.state._id}\n\t\t\t\t\t_readOnly={this.state._readOnly}\n\t\t\t\t\t_required={this.state._required}\n\t\t\t\t\t_touched={this.state._touched}\n\t\t\t\t>\n\t\t\t\t\t<span slot=\"label\">\n\t\t\t\t\t\t<slot />\n\t\t\t\t\t</span>\n\t\t\t\t\t<div slot=\"input\">\n\t\t\t\t\t\t<textarea\n\t\t\t\t\t\t\tref={this.catchRef}\n\t\t\t\t\t\t\tpart=\"textarea\"\n\t\t\t\t\t\t\ttitle=\"\"\n\t\t\t\t\t\t\taria-describedby={ariaDiscribedBy.length > 0 ? ariaDiscribedBy.join(' ') : undefined}\n\t\t\t\t\t\t\taria-labelledby={`${this.state._id}-label`}\n\t\t\t\t\t\t\tautoCapitalize=\"off\"\n\t\t\t\t\t\t\t// aria-hidden=\"true\" // Wieso ist das hier?\n\t\t\t\t\t\t\tautoCorrect=\"off\"\n\t\t\t\t\t\t\tdisabled={this.state._disabled}\n\t\t\t\t\t\t\tid={this.state._id}\n\t\t\t\t\t\t\tmaxlength={this.state._maxLength}\n\t\t\t\t\t\t\tname={this.state._name}\n\t\t\t\t\t\t\treadOnly={this.state._readOnly}\n\t\t\t\t\t\t\trequired={this.state._required}\n\t\t\t\t\t\t\trows={this.state._rows}\n\t\t\t\t\t\t\tplaceholder={this.state._placeholder}\n\t\t\t\t\t\t\tspellcheck=\"false\"\n\t\t\t\t\t\t\t{...this.controller.onFacade}\n\t\t\t\t\t\t\tonKeyUp={this.onChange}\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\tresize: this.state._resize,\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tvalue={this.state._value}\n\t\t\t\t\t\t></textarea>\n\t\t\t\t\t\t{/**\n\t\t\t\t\t\t * https://webstandardssherpa.com/reviews/improving-the-tweet-box/\n\t\t\t\t\t\t * https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-live\n\t\t\t\t\t\t */}\n\t\t\t\t\t\t{this.state._hasCounter && (\n\t\t\t\t\t\t\t<span aria-atomic=\"true\" aria-live=\"polite\">\n\t\t\t\t\t\t\t\t{this.state._currentLength}\n\t\t\t\t\t\t\t\t{this.state._maxLength && (\n\t\t\t\t\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t\t\t\t\t<span aria-label=\"von\" role=\"img\">\n\t\t\t\t\t\t\t\t\t\t\t/\n\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t{this.state._maxLength}\n\t\t\t\t\t\t\t\t\t</Fragment>\n\t\t\t\t\t\t\t\t)}{' '}\n\t\t\t\t\t\t\t\t<span>Zeichen</span>\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t</kol-input>\n\t\t\t</Host>\n\t\t);\n\t}\n\n\tprivate readonly controller: TextareaController;\n\n\t/**\n\t * Gibt an, mit welcher Tastenkombination man das Input auslösen oder fokussieren kann.\n\t */\n\t@Prop() public _accessKey?: string;\n\n\t/**\n\t * Passt die Höhe des Eingabefeldes automatisch an den Füllstand an.\n\t */\n\t@Prop({ reflect: true }) public _adjustHeight?: boolean = false;\n\n\t/**\n\t * Gibt an, ob die Fehlermeldung vorgelesen werden soll, wenn es eine gibt.\n\t */\n\t@Prop({ mutable: true, reflect: true }) public _alert?: boolean = true;\n\n\t/**\n\t * Gibt an, ob am unteren Rand des Eingabefeldes die Anzahl der Zeichen angezeigt werden soll.\n\t */\n\t@Prop({ reflect: true }) public _hasCounter?: boolean;\n\n\t/**\n\t * Gibt an, ob das Eingabefeld aktiviert oder deaktiviert ist.\n\t */\n\t@Prop({ reflect: true }) public _disabled?: boolean;\n\n\t/**\n\t * Gibt den Text für eine Fehlermeldung an.\n\t */\n\t@Prop() public _error?: string;\n\n\t/**\n\t * Gibt an, ob das Eingabefeld kein sichtbares Label haben soll.\n\t */\n\t@Prop({ reflect: true }) public _hideLabel?: boolean;\n\n\t/**\n\t * Gibt den Text für eine Hinweistext an.\n\t */\n\t@Prop() public _hint?: string = '';\n\n\t/**\n\t * Gibt die technische ID des Eingabefeldes an.\n\t */\n\t@Prop() public _id!: string;\n\n\t/**\n\t * Gibt an, wie viele Zeichen man maximal eingeben kann.\n\t */\n\t@Prop() public _maxLength?: number;\n\n\t/**\n\t * Gibt den technischen Namen des Eingabefeldes an.\n\t */\n\t@Prop() public _name?: string;\n\n\t/**\n\t * Gibt die EventCallback-Funktionen für das Input-Event an.\n\t */\n\t@Prop() public _on?: InputTypeOnDefault;\n\n\t/**\n\t * Gibt den Platzhalter des Eingabefeldes an, wenn es leer ist.\n\t */\n\t@Prop() public _placeholder?: string;\n\n\t/**\n\t * Gibt an, ob das Eingabefeld nur lesend ist.\n\t */\n\t@Prop({ reflect: true }) public _readOnly?: boolean;\n\n\t/**\n\t * Gibt an, ob die Größe des Eingabefeldes geändert werden kann. (https://developer.mozilla.org/de/docs/Web/CSS/resize)\n\t */\n\t@Prop() public _resize?: CSSResize = 'vertical';\n\n\t/**\n\t * Gibt an, ob das Eingabefeld ein Pflichtfeld ist.\n\t */\n\t@Prop({ reflect: true }) public _required?: boolean;\n\n\t/**\n\t * Gibt die Anzahl der anzuzeigenden Zeilen des Eingabefeldes an.\n\t */\n\t@Prop({ mutable: true, reflect: false }) public _rows?: number;\n\n\t/**\n\t * Gibt an, welchen Tab-Index dieses Input hat.\n\t */\n\t@Prop() public _tabIndex?: number;\n\n\t/**\n\t * Gibt an, ob dieses Eingabefeld von Nutzer:innen einmal besucht/berührt wurde.\n\t */\n\t@Prop({ mutable: true, reflect: true }) public _touched?: boolean = false;\n\n\t/**\n\t * Gibt den Wert des Eingabefeldes an.\n\t */\n\t@Prop() public _value?: string;\n\n\t/**\n\t * @see: components/abbr/component.tsx (@State)\n\t */\n\t@State() public state: States = {\n\t\t_adjustHeight: false,\n\t\t_currentLength: 0,\n\t\t_id: '⚠',\n\n\t\t_resize: 'vertical',\n\t};\n\n\tpublic constructor() {\n\t\tthis.controller = new TextareaController(this, 'textarea', this.host);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_accessKey')\n\tpublic validateAccessKey(value?: string): void {\n\t\tthis.controller.validateAccessKey(value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_adjustHeight')\n\tpublic validateAdjustHeight(value?: boolean): void {\n\t\tthis.controller.validateAdjustHeight(value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_alert')\n\tpublic validateAlert(value?: boolean): void {\n\t\tthis.controller.validateAlert(value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_disabled')\n\tpublic validateDisabled(value?: boolean): void {\n\t\tthis.controller.validateDisabled(value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_error')\n\tpublic validateError(value?: string): void {\n\t\tthis.controller.validateError(value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_hasCounter')\n\tpublic validateHasCounter(value?: boolean): void {\n\t\tthis.controller.validateHasCounter(value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_hideLabel')\n\tpublic validateHideLabel(value?: boolean): void {\n\t\tthis.controller.validateHideLabel(value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_hint')\n\tpublic validateHint(value?: string): void {\n\t\tthis.controller.validateHint(value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_id')\n\tpublic validateId(value?: string): void {\n\t\tthis.controller.validateId(value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_maxLength')\n\tpublic validateMaxLength(value?: number): void {\n\t\tthis.controller.validateMaxLength(value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_name')\n\tpublic validateName(value?: string): void {\n\t\tthis.controller.validateName(value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_on')\n\tpublic validateOn(value?: InputTypeOnDefault): void {\n\t\tthis.controller.validateOn(value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_placeholder')\n\tpublic validatePlaceholder(value?: string): void {\n\t\tthis.controller.validatePlaceholder(value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_readOnly')\n\tpublic validateReadOnly(value?: boolean): void {\n\t\tthis.controller.validateReadOnly(value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_resize')\n\tpublic validateResize(value?: CSSResize): void {\n\t\tthis.controller.validateResize(value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_required')\n\tpublic validateRequired(value?: boolean): void {\n\t\tthis.controller.validateRequired(value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_rows')\n\tpublic validateRows(value?: number): void {\n\t\tthis.controller.validateRows(value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_tabIndex')\n\tpublic validateTabIndex(value?: number): void {\n\t\tthis.controller.validateTabIndex(value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_touched')\n\tpublic validateTouched(value?: boolean): void {\n\t\tthis.controller.validateTouched(value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_value')\n\tpublic validateValue(value?: string): void {\n\t\tthis.controller.validateValue(value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (componentWillLoad)\n\t */\n\tpublic componentWillLoad(): void {\n\t\tthis._alert = this._alert === true;\n\t\tthis._touched = this._touched === true;\n\t\tthis.controller.componentWillLoad();\n\t\tthis.validateAdjustHeight(this._adjustHeight);\n\t}\n\n\tprivate readonly onChange = (event: Event) => {\n\t\tconst path: HTMLElement[] = (event as unknown as { path: HTMLElement[] })?.path;\n\t\tif (Array.isArray(path) && path[0] instanceof HTMLTextAreaElement) {\n\t\t\tsetState(this, '_currentLength', path[0].value.length);\n\t\t\tif (this.state._adjustHeight) {\n\t\t\t\tthis._rows = increaseTextareaHeight(path[0]);\n\t\t\t}\n\t\t}\n\t\tif (typeof this.controller.onFacade.onChange === 'function') {\n\t\t\tthis.controller.onFacade.onChange(event);\n\t\t}\n\t};\n}\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["defaultStyleCss","KolToast","this","handleShowAndDuration","state","_show","_showDuration","clearTimeout","durationTimeout","setTimeout","close","Object","assign","_a","_on","onClose","undefined","Event","on","_alert","_level","validateAlert","value","watchBoolean","validateHasCloser","validateHeading","watchString","validateLevel","watchHeadingLevel","validateOn","featureHint","callbacks","setState","validateShow","hooks","afterPatch","validateShowDuration","watchNumber","validateType","watchValidator","Set","componentWillLoad","_hasCloser","_heading","_type","render","h","Host","_variant"],"sources":["./src/components/toast/style.sass?tag=kol-toast&mode=default&encapsulation=shadow","./src/components/toast/component.tsx"],"sourcesContent":["/* windicss-touch: 1649389867452 */\n@import ../style\n\n:host\n > div\n @apply fixed flex justify-center top-0 left-0 w-full h-0 z-200 p-4\n\n kol-alert\n @apply max-w-xl\n","import { Component, h, Host, JSX, Prop, State, Watch } from '@stencil/core';\n\nimport { Generic } from '@public-ui/core';\nimport { AlertType } from '../../types/alert';\nimport { HeadingLevel } from '../../types/heading-level';\nimport { setState, watchBoolean, watchNumber, watchString, watchValidator } from '../../utils/prop.validators';\nimport { watchHeadingLevel } from '../heading/validation';\nimport { KoliBriToastEventCallbacks } from '../../types/toast';\nimport { featureHint } from '../../utils/a11y.tipps';\n\n/**\n * API\n */\ntype RequiredProps = unknown;\ntype OptionalProps = {\n\talert: boolean;\n\thasCloser: boolean;\n\theading: string;\n\tlevel: HeadingLevel;\n\ton: KoliBriToastEventCallbacks;\n\tshow: boolean;\n\tshowDuration: number;\n\ttype: AlertType;\n};\nexport type Props = Generic.Element.Members<RequiredProps, OptionalProps>;\n\ntype RequiredStates = RequiredProps;\ntype OptionalStates = OptionalProps;\ntype States = Generic.Element.Members<RequiredStates, OptionalStates>;\n\n@Component({\n\ttag: 'kol-toast',\n\tstyleUrls: {\n\t\tdefault: './style.sass',\n\t},\n\tshadow: true,\n})\nexport class KolToast implements Generic.Element.ComponentApi<RequiredProps, OptionalProps, RequiredStates, OptionalStates> {\n\t/**\n\t * Gibt an, ob der Screenreader die Meldung vorlesen soll.\n\t */\n\t@Prop({ reflect: true }) public _alert?: boolean = true;\n\n\t/**\n\t * Gibt an, ob der Toast ein Schließen-Icon hat.\n\t */\n\t@Prop({ reflect: true }) public _hasCloser?: boolean = false;\n\n\t/**\n\t * Gibt den Titel der Meldung an.\n\t */\n\t@Prop() public _heading?: string = '';\n\n\t/**\n\t * Gibt an, welchen H-Level von 1 bis 6 die Überschrift hat.\n\t */\n\t@Prop() public _level?: HeadingLevel = 1;\n\n\t/**\n\t * Gibt die EventCallback-Function für das Schließen des Toasts an.\n\t */\n\t@Prop() public _on?: KoliBriToastEventCallbacks;\n\n\t/**\n\t * Gibt an, ob der Toast eingeblendet wird.\n\t */\n\t@Prop({ mutable: true, reflect: true }) public _show?: boolean = true;\n\n\t/**\n\t * Gibt an, wie viele Millisekunden der Toast eingeblendet werden soll.\n\t */\n\t@Prop() public _showDuration?: number = 10000;\n\n\t/**\n\t * Gibt an, ob es sich um eine Erfolgs-, Info-, Warnung- oder Fehlermeldung handelt.\n\t */\n\t@Prop() public _type?: AlertType = 'default';\n\n\t/**\n\t * @see: components/abbr/component.tsx (@State)\n\t */\n\t@State() public state: States = {\n\t\t_alert: true,\n\t\t_level: 1,\n\t\t_show: true,\n\t};\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_alert')\n\tpublic validateAlert(value?: boolean): void {\n\t\twatchBoolean(this, '_alert', value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_hasCloser')\n\tpublic validateHasCloser(value?: boolean): void {\n\t\twatchBoolean(this, '_hasCloser', value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_heading')\n\tpublic validateHeading(value?: string): void {\n\t\twatchString(this, '_heading', value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_level')\n\tpublic validateLevel(value?: HeadingLevel): void {\n\t\twatchHeadingLevel(this, value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_on')\n\tpublic validateOn(value?: KoliBriToastEventCallbacks): void {\n\t\tif (typeof value === 'object' && value !== null) {\n\t\t\tfeatureHint('[KolToast] Prüfen, wie man auch einen EventCallback einzeln ändern kann.');\n\t\t\tconst callbacks: KoliBriToastEventCallbacks = {};\n\t\t\tif (typeof value.onClose === 'function' || value.onClose === true) {\n\t\t\t\tcallbacks.onClose = value.onClose;\n\t\t\t}\n\t\t\tsetState<KoliBriToastEventCallbacks>(this, '_on', callbacks);\n\t\t}\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_show')\n\tpublic validateShow(value?: boolean): void {\n\t\twatchBoolean(this, '_show', value, {\n\t\t\thooks: {\n\t\t\t\tafterPatch: this.handleShowAndDuration,\n\t\t\t},\n\t\t});\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_showDuration')\n\tpublic validateShowDuration(value?: number): void {\n\t\twatchNumber(this, '_showDuration', value, {\n\t\t\thooks: {\n\t\t\t\tafterPatch: this.handleShowAndDuration,\n\t\t\t},\n\t\t});\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_type')\n\tpublic validateType(value?: AlertType): void {\n\t\twatchValidator(\n\t\t\tthis,\n\t\t\t'_type',\n\t\t\t(value) => typeof value === 'string' && (value === 'default' || value === 'error' || value === 'info' || value === 'success' || value === 'warning'),\n\t\t\tnew Set('String {success, info, warning, error}'),\n\t\t\tvalue\n\t\t);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (componentWillLoad)\n\t */\n\tpublic componentWillLoad(): void {\n\t\tthis.validateAlert(this._alert);\n\t\tthis.validateHasCloser(this._hasCloser);\n\t\tthis.validateHeading(this._heading);\n\t\tthis.validateLevel(this._level);\n\t\tthis.validateOn(this._on);\n\t\tthis.validateShow(this._show);\n\t\tthis.validateShowDuration(this._showDuration);\n\t\tthis.validateType(this._type);\n\t}\n\n\tprivate durationTimeout?: NodeJS.Timer;\n\n\tprivate readonly handleShowAndDuration = () => {\n\t\tif (this.state._show === true && typeof this.state._showDuration === 'number' && this.state._showDuration >= 0) {\n\t\t\tclearTimeout(this.durationTimeout as NodeJS.Timer);\n\t\t\tthis.durationTimeout = setTimeout(() => {\n\t\t\t\tclearTimeout(this.durationTimeout as NodeJS.Timer);\n\t\t\t\tthis.close();\n\t\t\t}, this.state._showDuration);\n\t\t}\n\t};\n\n\tprivate readonly close = () => {\n\t\tthis._show = false;\n\t\tthis.state = {\n\t\t\t...this.state,\n\t\t\t_show: false,\n\t\t};\n\n\t\tif (this._on?.onClose !== undefined) {\n\t\t\tthis._on.onClose(new Event('Close'));\n\t\t}\n\t};\n\n\tprivate readonly on = {\n\t\tonClose: this.close,\n\t};\n\n\tpublic render(): JSX.Element {\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t{this.state._show && (\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<kol-alert\n\t\t\t\t\t\t\t_alert={this.state._alert}\n\t\t\t\t\t\t\t_heading={this.state._heading}\n\t\t\t\t\t\t\t_level={this.state._level}\n\t\t\t\t\t\t\t_hasCloser={this.state._hasCloser}\n\t\t\t\t\t\t\t_type={this.state._type}\n\t\t\t\t\t\t\t_variant=\"card\"\n\t\t\t\t\t\t\t// tabindex=\"0\"\n\t\t\t\t\t\t\t_on={this.on}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<slot />\n\t\t\t\t\t\t</kol-alert>\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</Host>\n\t\t);\n\t}\n}\n"],"mappings":";;;wTAAA,MAAMA,EAAkB,ixQ,MCqCXC,EAAQ,M,yBAuJHC,KAAAC,sBAAwB,KACxC,GAAID,KAAKE,MAAMC,QAAU,aAAeH,KAAKE,MAAME,gBAAkB,UAAYJ,KAAKE,MAAME,eAAiB,EAAG,CAC/GC,aAAaL,KAAKM,iBAClBN,KAAKM,gBAAkBC,YAAW,KACjCF,aAAaL,KAAKM,iBAClBN,KAAKQ,OAAO,GACVR,KAAKE,MAAME,c,GAICJ,KAAAQ,MAAQ,K,MACxBR,KAAKG,MAAQ,MACbH,KAAKE,MAAKO,OAAAC,OAAAD,OAAAC,OAAA,GACNV,KAAKE,OAAK,CACbC,MAAO,QAGR,KAAIQ,EAAAX,KAAKY,OAAG,MAAAD,SAAA,SAAAA,EAAEE,WAAYC,UAAW,CACpCd,KAAKY,IAAIC,QAAQ,IAAIE,MAAM,S,GAIZf,KAAAgB,GAAK,CACrBH,QAASb,KAAKQ,O,YA1KoC,K,gBAKI,M,cAKpB,G,YAKI,E,8BAU0B,K,mBAKzB,I,WAKL,U,WAKH,CAC/BS,OAAQ,KACRC,OAAQ,EACRf,MAAO,K,CAODgB,cAAcC,GACpBC,EAAarB,KAAM,SAAUoB,E,CAOvBE,kBAAkBF,GACxBC,EAAarB,KAAM,aAAcoB,E,CAO3BG,gBAAgBH,GACtBI,EAAYxB,KAAM,WAAYoB,E,CAOxBK,cAAcL,GACpBM,EAAkB1B,KAAMoB,E,CAOlBO,WAAWP,GACjB,UAAWA,IAAU,UAAYA,IAAU,KAAM,CAChDQ,EAAY,4EACZ,MAAMC,EAAwC,GAC9C,UAAWT,EAAMP,UAAY,YAAcO,EAAMP,UAAY,KAAM,CAClEgB,EAAUhB,QAAUO,EAAMP,O,CAE3BiB,EAAqC9B,KAAM,MAAO6B,E,EAQ7CE,aAAaX,GACnBC,EAAarB,KAAM,QAASoB,EAAO,CAClCY,MAAO,CACNC,WAAYjC,KAAKC,wB,CASbiC,qBAAqBd,GAC3Be,EAAYnC,KAAM,gBAAiBoB,EAAO,CACzCY,MAAO,CACNC,WAAYjC,KAAKC,wB,CASbmC,aAAahB,GACnBiB,EACCrC,KACA,SACCoB,UAAiBA,IAAU,WAAaA,IAAU,WAAaA,IAAU,SAAWA,IAAU,QAAUA,IAAU,WAAaA,IAAU,YAC1I,IAAIkB,IAAI,0CACRlB,E,CAOKmB,oBACNvC,KAAKmB,cAAcnB,KAAKiB,QACxBjB,KAAKsB,kBAAkBtB,KAAKwC,YAC5BxC,KAAKuB,gBAAgBvB,KAAKyC,UAC1BzC,KAAKyB,cAAczB,KAAKkB,QACxBlB,KAAK2B,WAAW3B,KAAKY,KACrBZ,KAAK+B,aAAa/B,KAAKG,OACvBH,KAAKkC,qBAAqBlC,KAAKI,eAC/BJ,KAAKoC,aAAapC,KAAK0C,M,CA+BjBC,SACN,OACCC,EAACC,EAAI,KACH7C,KAAKE,MAAMC,OACXyC,EAAA,WACCA,EAAA,aACC3B,OAAQjB,KAAKE,MAAMe,OACnBwB,SAAUzC,KAAKE,MAAMuC,SACrBvB,OAAQlB,KAAKE,MAAMgB,OACnBsB,WAAYxC,KAAKE,MAAMsC,WACvBE,MAAO1C,KAAKE,MAAMwC,MAClBI,SAAS,OAETlC,IAAKZ,KAAKgB,IAEV4B,EAAA,e"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["defaultStyleCss","KolTooltip","this","hydrated","hostElement","childElements","alignTooltip","target","clientRect","getBoundingClientRect","tooltipElement","HTMLElement","state","_align","style","left","offsetWidth","top","height","offsetHeight","right","bottom","showTooltip","setProperty","getDocument","body","addEventListener","hideTooltipByEscape","document","hideTooltip","removeEventListener","event","key","catchHostElement","element","previousSibling","previousElementSibling","push","catchTooltipElement","_id","nonce","_label","render","timeout","setTimeout","clearTimeout","h","Host","ref","maxWidth","class","id","_color","backgroundColor","color","validateAlign","value","watchTooltipAlignment","validateId","watchString","validateLabel","componentWillLoad"],"sources":["./src/components/tooltip/style.sass?tag=kol-tooltip&mode=default","./src/components/tooltip/component.tsx"],"sourcesContent":["/* windicss-touch: 1637820161169 */\n// @import ../style\n\nkol-badge,\n.tooltip /* fix sass formatter */\n\tfont-size: 1rem\n\tposition: fixed\n\t\t// position: absolute\n\t\t// position: relative\n\tanimation-name: fadeInOpacity\n\tanimation-iteration-count: 1\n\tanimation-timing-function: ease-in\n\tanimation-duration: .5s\n\tdisplay: none\n\tz-index: 1000\n\tmax-width: 300px\n\tbox-shadow: 0 0 0.15rem rgba(255,255,255,0.8)\n\n\t&::after\n\t\tcontent: \" \"\n\t\tposition: absolute\n\t\tborder-style: solid\n\t\tborder-width: 5px\n\n\t&.arrow-left\n\t\t&::after\n\t\t\tmargin-top: -5px\n\t\t\ttop: 50%\n\t\t\tright: 100%\n\t\t\tborder-color: transparent black transparent transparent\n\n\t&.arrow-right\n\t\t&::after\n\t\t\tmargin-top: -5px\n\t\t\ttop: 50%\n\t\t\tleft: 100%\n\t\t\tborder-color: transparent transparent transparent black\n\n\t&.arrow-top\n\t\t&::after\n\t\t\tmargin-left: -5px\n\t\t\tleft: 50%\n\t\t\tbottom: 100%\n\t\t\tborder-color: transparent transparent black transparent\n\n\t&.arrow-bottom\n\t\t&::after\n\t\t\tmargin-left: -5px\n\t\t\tleft: 50%\n\t\t\ttop: 100%\n\t\t\tborder-color: black transparent transparent transparent\n\n\t// &::before\n\t// content: ''\n\t// display: inline-block\n\t// vertical-align: middle\n\t// -webkit-transform: rotate(360deg)\n\t// border-style: solid\n\t// border-width: .5rem .5rem .5rem 0\n\t// border-color: transparent black transparent transparent\n\n@keyframes fadeInOpacity\n\t0%\n\t\topacity: 0\n\n\t100%\n\t\topacity: 1\n","import { Component, h, Host, JSX, Prop, State, Watch } from '@stencil/core';\n\nimport { Generic } from '@public-ui/core';\nimport { watchTooltipAlignment } from '../../types/button-link';\nimport { getDocument, nonce } from '../../utils/dev.utils';\nimport { watchString } from '../../utils/prop.validators';\n\nexport type TooltipAlignment = 'top' | 'right' | 'bottom' | 'left';\n\n/**\n * API\n */\ntype RequiredProps = {\n\tlabel: string;\n};\ntype OptionalProps = {\n\talign: TooltipAlignment;\n\tid: string;\n};\nexport type Props = Generic.Element.Members<RequiredProps, OptionalProps>;\n\ntype RequiredStates = RequiredProps & OptionalProps;\ntype OptionalStates = unknown;\nexport type States = Generic.Element.Members<RequiredStates, OptionalStates>;\n\n@Component({\n\ttag: 'kol-tooltip',\n\tstyleUrls: {\n\t\tdefault: './style.sass',\n\t},\n\tshadow: false,\n})\nexport class KolTooltip implements Generic.Element.ComponentApi<RequiredProps, OptionalProps, RequiredStates, OptionalStates> {\n\t// - eslint-disable-next-line @stencil/own-props-must-be-private\n\tpublic hydrated = false; // TODO: Why?!\n\n\tprivate hostElement?: HTMLElement | null = null;\n\tprivate readonly childElements: HTMLElement[] = [];\n\tprivate tooltipElement?: HTMLKolBadgeElement;\n\n\tprivate alignTooltip = (): void => {\n\t\tconst target = this.childElements[0];\n\n\t\t// getBoundingClientRect is not defined in test suite\n\t\tif (process.env.NODE_ENV !== 'test') {\n\t\t\tconst clientRect = target.getBoundingClientRect();\n\n\t\t\tif (this.tooltipElement instanceof HTMLElement) {\n\t\t\t\tswitch (this.state._align) {\n\t\t\t\t\tcase 'top':\n\t\t\t\t\tcase 'bottom':\n\t\t\t\t\t\tthis.tooltipElement.style.left = `${clientRect.left + target.offsetWidth / 2 - this.tooltipElement.offsetWidth / 2}px`;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'left':\n\t\t\t\t\tcase 'right':\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tthis.tooltipElement.style.top = `${clientRect.top + clientRect.height / 2 - this.tooltipElement.offsetHeight / 2}px`;\n\t\t\t\t}\n\t\t\t\tswitch (this.state._align) {\n\t\t\t\t\tcase 'left':\n\t\t\t\t\t\tthis.tooltipElement.style.left = `calc(${clientRect.left - this.tooltipElement.offsetWidth}px - 0.5em)`;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'right':\n\t\t\t\t\t\tthis.tooltipElement.style.left = `calc(${clientRect.right}px + 0.5em)`;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'bottom':\n\t\t\t\t\t\tthis.tooltipElement.style.top = `calc(${clientRect.bottom}px + 0.5em)`;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'top':\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tthis.tooltipElement.style.top = `calc(${clientRect.top - this.tooltipElement.offsetHeight}px - 0.5em)`;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\n\tprivate showTooltip = (): void => {\n\t\tif (this.tooltipElement instanceof HTMLElement) {\n\t\t\tthis.tooltipElement.style.setProperty('display', 'block');\n\t\t\tgetDocument().body.addEventListener('keyup', this.hideTooltipByEscape);\n\t\t\tthis.alignTooltip();\n\t\t\tthis.tooltipElement.style.setProperty('visibility', 'visible');\n\t\t\tdocument.addEventListener('scroll', this.alignTooltip);\n\t\t}\n\t};\n\n\tprivate hideTooltip = (): void => {\n\t\tif (this.tooltipElement instanceof HTMLElement) {\n\t\t\tthis.tooltipElement.style.setProperty('display', 'none');\n\t\t\tthis.tooltipElement.style.setProperty('visibility', 'hidden');\n\t\t\tdocument.removeEventListener('scroll', this.alignTooltip);\n\t\t}\n\t};\n\n\tprivate hideTooltipByEscape = (event: KeyboardEvent): void => {\n\t\tif (event.key === 'Escape') {\n\t\t\tgetDocument().body.removeEventListener('keyup', this.hideTooltipByEscape);\n\t\t\tthis.hideTooltip();\n\t\t}\n\t};\n\n\tprivate catchHostElement = (element: HTMLElement | null): void => {\n\t\tthis.hostElement = element;\n\t\tif (this.hostElement instanceof HTMLElement) {\n\t\t\tconst previousSibling = this.hostElement.previousElementSibling;\n\t\t\tif (previousSibling instanceof HTMLElement) {\n\t\t\t\tpreviousSibling.removeEventListener('mouseover', this.showTooltip);\n\t\t\t\tpreviousSibling.addEventListener('mouseover', this.showTooltip);\n\t\t\t\tpreviousSibling.removeEventListener('focus', this.showTooltip);\n\t\t\t\tpreviousSibling.addEventListener('focus', this.showTooltip);\n\t\t\t\tpreviousSibling.removeEventListener('mouseout', this.hideTooltip);\n\t\t\t\tpreviousSibling.addEventListener('mouseout', this.hideTooltip);\n\t\t\t\tpreviousSibling.removeEventListener('blur', this.hideTooltip);\n\t\t\t\tpreviousSibling.addEventListener('blur', this.hideTooltip);\n\t\t\t\tthis.childElements.push(previousSibling);\n\t\t\t}\n\t\t}\n\t};\n\n\tprivate catchTooltipElement = (element?: HTMLKolBadgeElement): void => {\n\t\tthis.tooltipElement = element;\n\t};\n\n\tpublic render(): JSX.Element {\n\t\tconst timeout = setTimeout(() => {\n\t\t\tclearTimeout(timeout);\n\t\t\tthis.alignTooltip();\n\t\t}, 250);\n\t\treturn (\n\t\t\t<Host\n\t\t\t\tref={this.catchHostElement}\n\t\t\t\tstyle={{\n\t\t\t\t\tmaxWidth: '300px',\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{this.state._label !== '' && (\n\t\t\t\t\t<kol-badge\n\t\t\t\t\t\tclass={{\n\t\t\t\t\t\t\t'arrow-bottom': this.state._align === 'top',\n\t\t\t\t\t\t\t'arrow-left': this.state._align === 'right',\n\t\t\t\t\t\t\t'arrow-top': this.state._align === 'bottom',\n\t\t\t\t\t\t\t'arrow-right': this.state._align === 'left',\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tid={this.state._id}\n\t\t\t\t\t\tref={this.catchTooltipElement}\n\t\t\t\t\t\t_color={{\n\t\t\t\t\t\t\tbackgroundColor: '#333',\n\t\t\t\t\t\t\tcolor: '#ddd',\n\t\t\t\t\t\t}}\n\t\t\t\t\t\t_label={this.state._label}\n\t\t\t\t\t></kol-badge>\n\t\t\t\t)}\n\t\t\t</Host>\n\t\t);\n\t}\n\n\t/**\n\t * Gibt an, ob der Tooltip oben, rechts, unten oder links angezeigt werden soll.\n\t */\n\t@Prop() public _align?: TooltipAlignment = 'top';\n\n\t/**\n\t * Gibt die ID an, wenn z.B. Aria-Labelledby (Link) verwendet wird.\n\t */\n\t@Prop() public _id?: string;\n\n\t/**\n\t * Das Label gibt an, welcher Text in dem Tooltip beim Fokussieren oder Maus-drüberfahren angezeigt wird.\n\t */\n\t@Prop() public _label!: string;\n\n\t/**\n\t * @see: components/abbr/component.tsx (@State)\n\t */\n\t@State() public state: States = {\n\t\t_align: 'top',\n\t\t_id: nonce(),\n\t\t_label: '',\n\t};\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_align')\n\tpublic validateAlign(value?: TooltipAlignment): void {\n\t\twatchTooltipAlignment(this, '_align', value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_id')\n\tpublic validateId(value?: string): void {\n\t\twatchString(this, '_id', value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_label')\n\tpublic validateLabel(value?: string): void {\n\t\twatchString(this, '_label', value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (componentWillLoad)\n\t */\n\tpublic componentWillLoad(): void {\n\t\tthis.validateAlign(this._align);\n\t\tthis.validateId(this._id);\n\t\tthis.validateLabel(this._label);\n\t\tthis.hydrated = true;\n\t}\n}\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["defaultStyleCss","KolVersion","_version","render","h","_color","Farbspektrum","Hellgrau","_icon","_label","this","state","validateVersion","value","watchString","required","componentWillLoad"],"sources":["./src/components/style.sass?tag=kol-version&mode=default&encapsulation=shadow","./src/components/version/component.tsx"],"sourcesContent":["/* windicss-touch: 1649810622229 */\n@windicss\n\n:host\n\n *\n -ms-hyphens: var(--kolibri-hyphens)\n -webkit-hyphens: var(--kolibri-hyphens)\n hyphens: var(--kolibri-hyphens)\n font-family: var(--kolibri-font-family)\n line-height: var(--kolibri-line-height)\n word-break: break-word\n\n// &:focus\n// // outline-color: var(--kolibri-color-primary) !important\n// outline-color: var(--kolibri-color-outline) !important\n// outline-offset: 3px !important\n// outline-style: solid !important // macht eckige Ecken\n// outline-width: 2px !important\n// // position: relative !important // führt zu Fehler beim Modal\n// // z-index: 9999 !important // führt zu Fehler im Storybook\n\n// &::selection\n// background-color: var(--kolibri-color-primary)\n// font-weight: 600\n// color: white\n","import { Component, h, JSX, Prop, State, Watch } from '@stencil/core';\nimport { Farbspektrum } from '../../enums/color';\n\nimport { Generic } from '@public-ui/core';\nimport { watchString } from '../../utils/prop.validators';\n\n/**\n * API\n */\ntype RequiredProps = {\n\tversion: string;\n};\ntype OptionalProps = unknown;\nexport type Props = Generic.Element.Members<RequiredProps, OptionalProps>;\n\ntype RequiredStates = RequiredProps;\ntype OptionalStates = OptionalProps;\ntype States = Generic.Element.Members<RequiredStates, OptionalStates>;\n\n@Component({\n\ttag: 'kol-version',\n\tstyleUrls: {\n\t\tdefault: '../style.sass',\n\t},\n\tshadow: true,\n})\nexport class KolVersion implements Generic.Element.ComponentApi<RequiredProps, OptionalProps, RequiredStates, OptionalStates> {\n\tpublic render(): JSX.Element {\n\t\treturn <kol-badge _color={Farbspektrum.Hellgrau} _icon=\"fa-solid fa-infinity\" _label={`v${this.state._version}`} />;\n\t}\n\n\t/**\n\t * Gibt die Versionsnummer als Text an.\n\t */\n\t@Prop() public _version!: string;\n\n\t/**\n\t * @see: components/abbr/component.tsx (@State)\n\t */\n\t@State() public state: States = {\n\t\t_version: '0.0.0-alpha.0',\n\t};\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_version')\n\tpublic validateVersion(value?: string): void {\n\t\twatchString(this, '_version', value, {\n\t\t\trequired: true,\n\t\t});\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (componentWillLoad)\n\t */\n\tpublic componentWillLoad(): void {\n\t\tthis.validateVersion(this._version);\n\t}\n}\n"],"mappings":";;;oQAAA,MAAMA,EAAkB,28P,MC0BXC,EAAU,M,4DAaU,CAC/BC,SAAU,gB,CAbJC,SACN,OAAOC,EAAA,aAAWC,OAAQC,EAAaC,SAAUC,MAAM,uBAAuBC,OAAQ,IAAIC,KAAKC,MAAMT,Y,CAmB/FU,gBAAgBC,GACtBC,EAAYJ,KAAM,WAAYG,EAAO,CACpCE,SAAU,M,CAOLC,oBACNN,KAAKE,gBAAgBF,KAAKR,S"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["patchBrowser","importMeta","import","meta","url","opts","resourcesUrl","URL","href","promiseResolve","then","options","globalScripts","bootstrapLazy","JSON","parse"],"sources":["./node_modules/@stencil/core/internal/client/patch-browser.js","@lazy-browser-entrypoint?app-data=conditional"],"sourcesContent":["/*\n Stencil Client Patch Browser v3.0.0-beta.0 | MIT Licensed | https://stenciljs.com\n */\nimport { BUILD, NAMESPACE } from '@stencil/core/internal/app-data';\nimport { consoleDevInfo, plt, win, doc, promiseResolve, H } from '@stencil/core';\n// TODO(STENCIL-661): Remove code related to the dynamic import shim\nconst getDynamicImportFunction = (namespace) => `__sc_import_${namespace.replace(/\\s|-/g, '_')}`;\nconst patchBrowser = () => {\n // NOTE!! This fn cannot use async/await!\n if (BUILD.isDev && !BUILD.isTesting) {\n consoleDevInfo('Running in development mode.');\n }\n // TODO(STENCIL-659): Remove code implementing the CSS variable shim\n if (BUILD.cssVarShim) {\n // shim css vars\n // TODO(STENCIL-659): Remove code implementing the CSS variable shim\n plt.$cssShim$ = win.__cssshim;\n }\n if (BUILD.cloneNodeFix) {\n // opted-in to polyfill cloneNode() for slot polyfilled components\n patchCloneNodeFix(H.prototype);\n }\n if (BUILD.profile && !performance.mark) {\n // not all browsers support performance.mark/measure (Safari 10)\n // because the mark/measure APIs are designed to write entries to a buffer in the browser that does not exist,\n // simply stub the implementations out.\n // TODO(STENCIL-323): Remove this patch when support for older browsers is removed (breaking)\n // @ts-ignore\n performance.mark = performance.measure = () => {\n /*noop*/\n };\n performance.getEntriesByName = () => [];\n }\n // @ts-ignore\n const scriptElm = \n // TODO(STENCIL-661): Remove code related to the dynamic import shim\n // TODO(STENCIL-663): Remove code related to deprecated `safari10` field.\n BUILD.scriptDataOpts || BUILD.safari10 || BUILD.dynamicImportShim\n ? Array.from(doc.querySelectorAll('script')).find((s) => new RegExp(`\\/${NAMESPACE}(\\\\.esm)?\\\\.js($|\\\\?|#)`).test(s.src) ||\n s.getAttribute('data-stencil-namespace') === NAMESPACE)\n : null;\n const importMeta = import.meta.url;\n const opts = BUILD.scriptDataOpts ? scriptElm['data-opts'] || {} : {};\n // TODO(STENCIL-663): Remove code related to deprecated `safari10` field.\n if (BUILD.safari10 && 'onbeforeload' in scriptElm && !history.scrollRestoration /* IS_ESM_BUILD */) {\n // Safari < v11 support: This IF is true if it's Safari below v11.\n // This fn cannot use async/await since Safari didn't support it until v11,\n // however, Safari 10 did support modules. Safari 10 also didn't support \"nomodule\",\n // so both the ESM file and nomodule file would get downloaded. Only Safari\n // has 'onbeforeload' in the script, and \"history.scrollRestoration\" was added\n // to Safari in v11. Return a noop then() so the async/await ESM code doesn't continue.\n // IS_ESM_BUILD is replaced at build time so this check doesn't happen in systemjs builds.\n return {\n then() {\n /* promise noop */\n },\n };\n }\n // TODO(STENCIL-663): Remove code related to deprecated `safari10` field.\n if (!BUILD.safari10 && importMeta !== '') {\n opts.resourcesUrl = new URL('.', importMeta).href;\n // TODO(STENCIL-661): Remove code related to the dynamic import shim\n // TODO(STENCIL-663): Remove code related to deprecated `safari10` field.\n }\n else if (BUILD.dynamicImportShim || BUILD.safari10) {\n opts.resourcesUrl = new URL('.', new URL(scriptElm.getAttribute('data-resources-url') || scriptElm.src, win.location.href)).href;\n // TODO(STENCIL-661): Remove code related to the dynamic import shim\n if (BUILD.dynamicImportShim) {\n patchDynamicImport(opts.resourcesUrl, scriptElm);\n }\n // TODO(STENCIL-661): Remove code related to the dynamic import shim\n if (BUILD.dynamicImportShim && !win.customElements) {\n // module support, but no custom elements support (Old Edge)\n // @ts-ignore\n return import(/* webpackChunkName: \"polyfills-dom\" */ './dom.js').then(() => opts);\n }\n }\n return promiseResolve(opts);\n};\n// TODO(STENCIL-661): Remove code related to the dynamic import shim\nconst patchDynamicImport = (base, orgScriptElm) => {\n const importFunctionName = getDynamicImportFunction(NAMESPACE);\n try {\n // test if this browser supports dynamic imports\n // There is a caching issue in V8, that breaks using import() in Function\n // By generating a random string, we can workaround it\n // Check https://bugs.chromium.org/p/chromium/issues/detail?id=990810 for more info\n win[importFunctionName] = new Function('w', `return import(w);//${Math.random()}`);\n }\n catch (e) {\n // this shim is specifically for browsers that do support \"esm\" imports\n // however, they do NOT support \"dynamic\" imports\n // basically this code is for old Edge, v18 and below\n const moduleMap = new Map();\n win[importFunctionName] = (src) => {\n const url = new URL(src, base).href;\n let mod = moduleMap.get(url);\n if (!mod) {\n const script = doc.createElement('script');\n script.type = 'module';\n script.crossOrigin = orgScriptElm.crossOrigin;\n script.src = URL.createObjectURL(new Blob([`import * as m from '${url}'; window.${importFunctionName}.m = m;`], {\n type: 'application/javascript',\n }));\n mod = new Promise((resolve) => {\n script.onload = () => {\n resolve(win[importFunctionName].m);\n script.remove();\n };\n });\n moduleMap.set(url, mod);\n doc.head.appendChild(script);\n }\n return mod;\n };\n }\n};\nconst patchCloneNodeFix = (HTMLElementPrototype) => {\n const nativeCloneNodeFn = HTMLElementPrototype.cloneNode;\n HTMLElementPrototype.cloneNode = function (deep) {\n if (this.nodeName === 'TEMPLATE') {\n return nativeCloneNodeFn.call(this, deep);\n }\n const clonedNode = nativeCloneNodeFn.call(this, false);\n const srcChildNodes = this.childNodes;\n if (deep) {\n for (let i = 0; i < srcChildNodes.length; i++) {\n // Node.ATTRIBUTE_NODE === 2, and checking because IE11\n if (srcChildNodes[i].nodeType !== 2) {\n clonedNode.appendChild(srcChildNodes[i].cloneNode(true));\n }\n }\n }\n return clonedNode;\n };\n};\nexport { patchBrowser };\n","import { bootstrapLazy } from '@stencil/core';\nimport { patchBrowser } from '@stencil/core/internal/client/patch-browser';\nimport { globalScripts } from '@stencil/core/internal/app-globals';\npatchBrowser().then(options => {\n globalScripts();\n return bootstrapLazy([/*!__STENCIL_LAZY_DATA__*/], options);\n});\n"],"mappings":";;;yJAOA,MAAMA,EAAe,KAkCjB,MAAMC,EAAaC,OAAOC,KAAKC,IAC/B,MAAMC,EAA6D,GAiBnE,GAAuBJ,IAAe,GAAI,CACtCI,EAAKC,aAAe,IAAIC,IAAI,IAAKN,GAAYO,IAGrD,CAcI,OAAOC,EAAeJ,EAAK,EC1E/BL,IAAeU,MAAKC,IAClBC,IACA,OAAOC,EAAcC,KAAAC,MAAA,wrZAAuCJ,EAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["syncAriaLabelBeforePatch","_nextValue","nextState","component","key","ariaLabel","has","get","state","_ariaLabel","label","_label","isEmptyOrPrefixOf","set","a11yHint","validateAriaLabel","value","watchString","hooks","beforePatch","validateLabel","required"],"sources":["./src/utils/validators/label.ts"],"sourcesContent":["import { Generic } from '@public-ui/core';\nimport { a11yHint } from '../a11y.tipps';\nimport { watchString } from '../prop.validators';\nimport { isEmptyOrPrefixOf } from '../validator';\n\n/**\n * Ein abweichendes Aria-Label muss aus Gründern der Barrierefreiheit für\n * die Sprachsteuerung mit dem Label-Text beginnen.\n */\nconst syncAriaLabelBeforePatch: Generic.Element.NextStateHooksCallback = (_nextValue, nextState, component: Generic.Element.Component, key): void => {\n\tconst ariaLabel: string | undefined = nextState.has('_ariaLabel') ? (nextState.get('_ariaLabel') as string) : (component.state._ariaLabel as string);\n\tif (typeof ariaLabel === 'string') {\n\t\tconst label: string | undefined = nextState.has('_label') ? (nextState.get('_label') as string) : (component.state._label as string);\n\t\tif (isEmptyOrPrefixOf(label, ariaLabel) === false) {\n\t\t\tif (key === '_ariaLabel') {\n\t\t\t\tnextState.set('_label', ariaLabel);\n\t\t\t\t// smartSetTimeout(() => ((component as Generic.Element.Component & { _label: string })._label = ariaLabel), 50);\n\t\t\t} else {\n\t\t\t\tnextState.set('_ariaLabel', label);\n\t\t\t\t// smartSetTimeout(() => ((component as Generic.Element.Component & { _ariaLabel: string })._ariaLabel = label), 50);\n\t\t\t}\n\t\t\ta11yHint(\n\t\t\t\t`Das abweichende Aria-Label am Schalter ist nicht barrierefrei. Ein abweichendes Aria-Label muss aus Gründern der Barrierefreiheit für die Sprachsteuerung mit dem Label-Text beginnen.`\n\t\t\t);\n\t\t}\n\t}\n};\n\nexport const validateAriaLabel = (component: Generic.Element.Component, value?: string): void => {\n\twatchString(component, '_ariaLabel', value, {\n\t\thooks: {\n\t\t\tbeforePatch: syncAriaLabelBeforePatch,\n\t\t},\n\t});\n};\n\nexport const validateLabel = (component: Generic.Element.Component, value?: string): void => {\n\twatchString(component, '_label', value, {\n\t\thooks: {\n\t\t\tbeforePatch: syncAriaLabelBeforePatch,\n\t\t},\n\t\trequired: true,\n\t});\n};\n"],"mappings":";;;2IASA,MAAMA,EAAmE,CAACC,EAAYC,EAAWC,EAAsCC,KACtI,MAAMC,EAAgCH,EAAUI,IAAI,cAAiBJ,EAAUK,IAAI,cAA4BJ,EAAUK,MAAMC,WAC/H,UAAWJ,IAAc,SAAU,CAClC,MAAMK,EAA4BR,EAAUI,IAAI,UAAaJ,EAAUK,IAAI,UAAwBJ,EAAUK,MAAMG,OACnH,GAAIC,EAAkBF,EAAOL,KAAe,MAAO,CAClD,GAAID,IAAQ,aAAc,CACzBF,EAAUW,IAAI,SAAUR,E,KAElB,CACNH,EAAUW,IAAI,aAAcH,E,CAG7BI,EACC,yL,UAMSC,EAAoB,CAACZ,EAAsCa,KACvEC,EAAYd,EAAW,aAAca,EAAO,CAC3CE,MAAO,CACNC,YAAanB,IAEb,E,MAGUoB,EAAgB,CAACjB,EAAsCa,KACnEC,EAAYd,EAAW,SAAUa,EAAO,CACvCE,MAAO,CACNC,YAAanB,GAEdqB,SAAU,MACT,S"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["pushNodes","set","domNodes","forEach","domNode","has","add","querySelectorAll","selector","node","document","Document","HTMLElement","ShadowRoot","Set","nodeList","i","length","shadowRoot","Array","from","Error","querySelector","arr","arr_1","obj_1","obj","css_1","css","hex_1","hex","num_1","num","data","a","parse","concat","Math","round","r","g","b","push","String","substr","opaque","num2hex","is","isshort","charAt","toLowerCase","name","hex3","hex6","rgb","rgba","object","array","number","s","toString","h","indexOf","str","hex2num","parseInt","replace","l","isNaN","slice","getnum","val","integer","floor","Object","prototype","call","getPrototypeOf","undefined","red","green","blue","alpha","isArray","match","t","split","map","Number","OBJECT_OBJECT","objectObjectHandler","value","cb","test","emptyStringByArrayHandler","setEventTargetAndStopPropagation","event","target","getExperimalMode","console","log","devHint","defineProperty","writable","patchState","component","_a","nextHooks","hooks","key","beforePatch","get","nextState","_b","size","state","assign","fromEntries","_c","afterPatch","setState","propName","Map","logWarn","requiredGeneric","constructor","join","watchValidator","validationFunction","options","required","defaultValue","watchBoolean","watchString","minLength","watchNumber","min","max","watchJsonArrayString","itemValidation","arrayValidation","items","parseJson","e","invalid","find","item","error","BOOLEAN","INTEGER","FLOAT","mapString2Unknown","typeStr","oldValue","parseFloat","JSON_CHARS","JSON","stringify","stringifyJson","Log","warn","mapBoolean2String","mapStringOrBoolean2String","koliBriQuerySelector","getDocument","koliBriQuerySelectorAll","DEFAULT_COLOR_CONTRAST","getDefaultColorContrast","backgroundColor","color","body","level","score","TRANSPARENT_REGEXP","koliBriA11yColorContrast","a11yColorContrast","computedStyle","getComputedStyle","hexBG","hexC","diff","contrast","koliBriQuerySelectorColors","selectedNode","scrollByHTMLElement","element","parentElement","window","scrollTo","behavior","top","getBoundingClientRect","getWindow","pageYOffset","focus","scrollBySelector","temp","KoliBriUtils","static","targetNode","recursion","returnValue","executionLock","cache","clear","debug","children","shadowChildren","slotElement","assignedNodes","slotChildren","domChildren","arrayChildren","colorContrast","colors","queryHtmlElementColors","KoliBriDevHelper","patchTheme","patchThemeTag"],"sources":["./node_modules/query-selector-all-shadow-root/esm/index.js","./node_modules/query-selector-shadow-root/esm/index.js","./node_modules/rgba-convert/index.js","./src/utils/prop.validators.ts"],"sourcesContent":["const pushNodes = (set, domNodes) => {\n domNodes.forEach((domNode) => {\n if (set.has(domNode) === false) {\n set.add(domNode);\n }\n });\n};\nexport const querySelectorAll = (selector, node = document) => {\n if (node instanceof Document ||\n node instanceof HTMLElement ||\n node instanceof ShadowRoot) {\n const domNodes = new Set();\n pushNodes(domNodes, node.querySelectorAll(selector));\n const nodeList = node.querySelectorAll('[class*=\"hydrated\"]');\n for (let i = 0; i < nodeList.length; i++) {\n const shadowRoot = nodeList[i].shadowRoot;\n if (typeof shadowRoot === \"object\" && shadowRoot !== null) {\n pushNodes(domNodes, querySelectorAll(selector, shadowRoot));\n }\n else {\n pushNodes(domNodes, querySelectorAll(selector, nodeList[i]));\n }\n }\n return Array.from(domNodes);\n }\n else {\n throw new Error(`The parameter document for the method querySelectorAll is not type of Document, HTMLElement or ShadowRoot.`);\n }\n};\n//# sourceMappingURL=index.js.map","export const querySelector = (selector, node = document) => {\n if (node instanceof Document ||\n node instanceof HTMLElement ||\n node instanceof ShadowRoot) {\n let domNode = node.querySelector(selector);\n if (domNode === null) {\n const nodeList = node.querySelectorAll('[class*=\"hydrated\"]');\n for (let i = 0; i < nodeList.length; i++) {\n const shadowRoot = nodeList[i].shadowRoot;\n if (typeof shadowRoot === \"object\" && shadowRoot !== null) {\n domNode = querySelector(selector, shadowRoot);\n }\n else {\n domNode = querySelector(selector, nodeList[i]);\n }\n if (domNode !== null) {\n break;\n }\n }\n }\n return domNode;\n }\n else {\n throw new Error(`The parameter document for the method querySelector is not type of Document, HTMLElement or ShadowRoot.`);\n }\n};\n//# sourceMappingURL=index.js.map","\nmodule.exports = arr\nmodule.exports.arr = arr\nmodule.exports.obj = obj\nmodule.exports.css = css\nmodule.exports.hex = hex\nmodule.exports.num = num\n\nfunction arr(data) {\n var a = parse(data)\n if (a.length == 3) {\n return a.concat(255)\n } else {\n a[3] = Math.round(a[3])\n return a\n }\n}\n\nfunction obj(data) {\n var a = parse(data)\n return {\n r: a[0],\n g: a[1],\n b: a[2],\n a: a.length == 3\n ? 255\n : Math.round(a[3])\n }\n}\n\nfunction css(data) {\n var a = parse(data)\n if (a.length == 3) a.push(255)\n\n return a[3] == 255\n ? 'rgb(' + a[0] + ', ' + a[1] + ', ' + a[2] + ')'\n : a[3] == 0\n ? 'rgba(' + a[0] + ', ' + a[1] + ', ' + a[2] + ', 0)'\n : 'rgba(' + a[0] + ', ' + a[1] + ', ' + a[2] + ', ' + String(a[3] / 255).substr(1) + ')'\n}\n\nfunction hex(data) {\n var a = parse(data)\n if (a.length == 3) a.push(255)\n var opaque = a[3] == 255\n var r = num2hex(a[0])\n var g = num2hex(a[1])\n var b = num2hex(a[2])\n var a = num2hex(Math.round(a[3]))\n var is = isshort(r, g, b, a)\n if (opaque) {\n return is\n ? '#' + r.charAt(0) + g.charAt(0) + b.charAt(0)\n : '#' + r + g + b\n }\n return is\n ? '#' + r.charAt(0) + g.charAt(0) + b.charAt(0) + a.charAt(0)\n : '#' + r + g + b + a\n}\n\nfunction num(data) {\n var a = parse(data)\n if (a.length == 3) a.push(255)\n else a[3] = Math.round(a[3])\n return ((a[3] << 24) >>> 0 | a[0] << 16 | a[1] << 8 | a[2]) >>> 0\n}\n\nfunction parse(data) {\n if (typeof data == 'string') {\n data = data.toLowerCase()\n return name(data)\n || hex3(data)\n || hex6(data)\n || rgb(data)\n || rgba(data)\n || [0, 0, 0, 255]\n }\n return object(data)\n || array(data)\n || number(data)\n || [0, 0, 0, 255]\n}\n\nfunction num2hex(num) {\n var s = num.toString(16)\n return s.length == 1\n ? '0' + s\n : s\n}\n\nfunction isshort(r, g, b, a) {\n var h = ['ff', '00', '11', '22', '33', '44', '55', '66',\n '77', '88', '99', 'aa', 'bb', 'cc', 'dd', 'ee']\n return h.indexOf(r) != -1\n && h.indexOf(g) != -1\n && h.indexOf(b) != -1\n && h.indexOf(a) != -1\n}\n\nfunction name(str) {\n if (str == 'red') return [255, 0, 0]\n if (str == 'green') return [0, 255, 0]\n if (str == 'blue') return [0, 0, 255]\n if (str == 'black') return [0, 0, 0]\n if (str == 'white') return [255, 255, 255]\n if (str == 'cyan') return [0, 255, 255]\n if (str == 'gray') return [128, 128, 128]\n if (str == 'grey') return [128, 128, 128]\n if (str == 'magenta') return [255, 0, 255]\n // ok, not the real css `pink` but my personal `magenta` alias\n // `pink` is simpler than `fuchsia`, whatever...\n if (str == 'pink') return [255, 0, 255]\n if (str == 'yellow') return [255, 255, 0]\n}\n\nfunction hex2num(str) {\n return str.length == 1\n ? parseInt(str + str, 16)\n : parseInt(str, 16)\n}\n\nfunction hex3(str) {\n var s = str.replace(/^#/,'')\n var l = s.length\n if (l == 3 || l == 4) {\n var r = hex2num(s[0])\n var g = hex2num(s[1])\n var b = hex2num(s[2])\n var a = l == 3\n ? 255\n : hex2num(s[3])\n\n if (isNaN(r) || isNaN(g) || isNaN(b) || isNaN(a)) return\n\n return [r, g, b, a]\n }\n}\n\nfunction hex6(str) {\n var s = str.replace(/^#/,'')\n var l = s.length\n if (l == 6 || l == 8) {\n var r = hex2num(s.slice(0, 2))\n var g = hex2num(s.slice(2, 4))\n var b = hex2num(s.slice(4, 6))\n var a = l == 6\n ? 255\n : hex2num(s.slice(6, 8))\n\n if (isNaN(r) || isNaN(g) || isNaN(b) || isNaN(a)) return\n\n return [r, g, b, a]\n }\n}\n\nfunction getnum(val, integer) {\n if (typeof val != 'number') return -1\n if (integer === true && Math.floor(val) !== val) return -1\n return val >= 0 && val <= 255\n ? val\n : -1\n}\n\nfunction object(obj) {\n if (Object.prototype.toString.call(obj) === '[object Object]'\n && Object.getPrototypeOf(obj) === Object.getPrototypeOf({})) {\n var r = getnum(obj.r != undefined ? obj.r : obj.red != undefined ? obj.red : 0, true)\n var g = getnum(obj.g != undefined ? obj.g : obj.green != undefined ? obj.green : 0, true)\n var b = getnum(obj.b != undefined ? obj.b : obj.blue != undefined ? obj.blue : 0, true)\n var a = getnum(obj.a != undefined ? obj.a : obj.alpha != undefined ? obj.alpha : 255, true)\n if (r != -1 && g != -1 && b != -1 && a != -1) {\n return [r, g, b, a]\n }\n }\n}\n\nfunction array(arr) {\n if (Array.isArray(arr) && (arr.length == 3 || arr.length == 4)) {\n var r = getnum(arr[0], true)\n var g = getnum(arr[1], true)\n var b = getnum(arr[2], true)\n var a = getnum(arr[3] != undefined ? arr[3] : 255, true)\n if (r != -1 && g != -1 && b != -1 && a != -1) {\n return [r, g, b, a]\n }\n }\n}\n\nfunction number(num) {\n if (typeof num == 'number' && Math.floor(num) == num && num <= 4294967295 && num >= 0) {\n var a = num >> 24 & 255\n var r = num >> 16 & 255\n var g = num >> 8 & 255\n var b = num & 255\n return [r, g, b, a]\n }\n}\n\nfunction rgb(str) {\n if (str.substr(0, 4) == 'rgb(') {\n str = str.match(/^rgb\\(([^)]+)\\)/)[1]\n var t = str.split(/ *, */).map(Number)\n var r = getnum(t[0], true)\n var g = getnum(t[1], true)\n var b = getnum(t[2], true)\n if (r != -1 && g != -1 && b != -1) {\n return [r, g, b, 255]\n }\n }\n}\n\nfunction rgba(str) {\n if (str.substr(0, 5) == 'rgba(') {\n str = str.match(/^rgba\\(([^)]+)\\)/)[1]\n var t = str.split(/ *, */).map(Number)\n var r = getnum(t[0], true)\n var g = getnum(t[1], true)\n var b = getnum(t[2], true)\n var a = getnum(t[3] * 255)\n if (r != -1 && g != -1 && b != -1 && a != -1) {\n return [r, g, b, a]\n }\n }\n}\n","import { patchTheme, patchThemeTag } from '@public-ui/core';\nimport { querySelectorAll } from 'query-selector-all-shadow-root';\nimport { querySelector } from 'query-selector-shadow-root';\nimport rgba from 'rgba-convert';\nimport { hex, score } from 'wcag-contrast';\nimport { Generic } from '@public-ui/core';\n\nimport { devHint } from './a11y.tipps';\nimport { getDocument, getExperimalMode, getWindow, Log } from './dev.utils';\nimport { Stringified } from '../types/common';\n\n// https://regex101.com/r/lSYLO9/1\n/**\n * Bei Stencil kann es vorkommen, dass bei der Übergabe eines komplexer Objekte\n * der String \"[object Object]\" an die Web Component übergeben wird. Um den Neben-\n * effekt abzufangen, wird dieser Fall abgefangen und nicht ausgeführt.\n */\nconst OBJECT_OBJECT = /\\[object Object\\]/;\nexport const objectObjectHandler = (value: unknown, cb: () => void): void => {\n\tif (typeof value === 'string' && OBJECT_OBJECT.test(value)) {\n\t\treturn;\n\t}\n\tcb();\n};\n\n/**\n * Bei Stencil kann es vorkommen, dass bei der Übergabe eines leeren Array's\n * ein leerer String an die Web Component übergeben wird. Um den Nebeneffekt\n * abzufangen, wird dieser Fall abgefangen und nicht ausgeführt.\n */\nexport const emptyStringByArrayHandler = (value: unknown, cb: () => void): void => {\n\tif (typeof value === 'string' && value === '') {\n\t\treturn;\n\t}\n\tcb();\n};\n\n/**\n * Bei interaktiven HTML-Elementen kommt es vor, dass der Event an einem nicht\n * interaktiven HTML-Element \"lostriggert\" und dann den DOM-Baum hoch propagiert.\n * Zu unterschiedlichen Zeitpunkten sind an dem einen Event somit immer unterschiedliche\n * HTML-Elemente.\n * Damit wir das \"richtige\" interaktive HTML-Element an das Event binden, setzen\n * wir das Target explizit und stoppen die Propagation.\n */\nexport const setEventTargetAndStopPropagation = (event: Event, target?: HTMLElement): void => {\n\tif (getExperimalMode()) {\n\t\tconsole.log(event, target);\n\t\tdevHint(`↑ We propagate the (submit) event to this target.`);\n\t}\n\tObject.defineProperty(event, 'target', {\n\t\tvalue: target,\n\t\twritable: false,\n\t});\n};\n\nconst patchState = (component: Generic.Element.Component): void => {\n\tcomponent.nextHooks?.forEach((hooks, key) => {\n\t\tconst beforePatch = hooks.get('beforePatch') as Generic.Element.NextStateHooksCallback;\n\t\tif (typeof beforePatch === 'function') {\n\t\t\tbeforePatch(component.nextState?.get(key), component.nextState as Map<string, unknown>, component, key);\n\t\t}\n\t});\n\t/**\n\t * Wenn in beforePatch Methoden die Änderung verworfen wird,\n\t * muss auch nicht der State aktualisiert und neu gerendert\n\t * werden.\n\t */\n\tif ((component.nextState as Map<string, unknown>)?.size > 0) {\n\t\tcomponent.state = {\n\t\t\t...component.state,\n\t\t\t...Object.fromEntries(component.nextState as Map<string, unknown>),\n\t\t};\n\t\tdelete component.nextState;\n\n\t\tcomponent.nextHooks?.forEach((hooks, key) => {\n\t\t\tconst afterPatch = hooks.get('afterPatch') as Generic.Element.StateHooksCallback;\n\t\t\tif (typeof afterPatch === 'function') {\n\t\t\t\tafterPatch(component.state[key], component.state, component, key);\n\t\t\t}\n\t\t});\n\t}\n\tdelete component.nextHooks;\n};\n\ntype SetStateHooks = {\n\tafterPatch?: Generic.Element.StateHooksCallback;\n\tbeforePatch?: Generic.Element.NextStateHooksCallback;\n};\n\nexport const setState = <T>(component: Generic.Element.Component, propName: string, value?: T, hooks: SetStateHooks = {}): void => {\n\tif (component.nextHooks === undefined) {\n\t\tcomponent.nextHooks = new Map();\n\t}\n\tif (component.nextState === undefined) {\n\t\tcomponent.nextState = new Map();\n\t}\n\tif (component.nextState.get(propName) !== value) {\n\t\tconst nextHooks = component.nextHooks.get(propName);\n\t\tif (nextHooks instanceof Map === false) {\n\t\t\tcomponent.nextHooks.set(propName, new Map());\n\t\t}\n\t\tif (typeof hooks.afterPatch === 'function') {\n\t\t\tcomponent.nextHooks.get(propName)?.set('afterPatch', hooks.afterPatch);\n\t\t}\n\t\tif (typeof hooks.beforePatch === 'function') {\n\t\t\tcomponent.nextHooks.get(propName)?.set('beforePatch', hooks.beforePatch);\n\t\t}\n\t\tcomponent.nextState.set(propName, value);\n\t\t/**\n\t\t * Muss erstmal in sync bleiben, da sonst der\n\t\t * Tooltip nicht korrekt ausgerichtet wird.\n\t\t */\n\t\t// if (component.hydrated === true || process.env.NODE_ENV !== 'test') {\n\t\t// clearTimeout(component.timeout as NodeJS.Timeout);\n\t\t// component.timeout = setTimeout(() => {\n\t\t// \tclearTimeout(component.timeout as NodeJS.Timeout);\n\t\t// \tpatchState(component);\n\t\t// }, 50);\n\t\t// } else {\n\t\tpatchState(component);\n\t\t// }\n\t}\n};\n\nconst logWarn = (component: Generic.Element.Component, propName: string, value: unknown, requiredGeneric: Set<string | null | undefined>): void => {\n\tdevHint(\n\t\t`[${component.constructor.name}] Der Property-Wert (${value as string}) für '${propName}' ist nicht valide. Folgende Werte sind erlaubt: ${Array.from(\n\t\t\trequiredGeneric\n\t\t).join(', ')}`\n\t);\n};\n\ntype WatchOptions = {\n\tdefaultValue?: unknown;\n\thooks?: SetStateHooks;\n\trequired?: boolean;\n};\n\ntype WatchBooleanOptions = WatchOptions & {\n\tdefaultValue?: boolean | null;\n};\n\ntype WatchStringOptions = WatchOptions & {\n\tdefaultValue?: string | null;\n\tminLength?: number;\n};\n\nexport type WatchNumberOptions = WatchOptions & {\n\tdefaultValue?: number | null;\n\tmin?: number;\n\tmax?: number;\n};\n\nexport const watchValidator = <T>(\n\tcomponent: Generic.Element.Component,\n\tpropName: string,\n\tvalidationFunction: (value?: T) => boolean,\n\trequiredGeneric: Set<string | null | undefined>,\n\tvalue?: T,\n\toptions: WatchOptions = {}\n): void => {\n\tif (validationFunction(value)) {\n\t\t/**\n\t\t * Triff zu, wenn der Wert entweder VALIDE ist.\n\t\t */\n\t\tsetState(component, propName, value, options?.hooks);\n\t} else if (value === undefined || (value === null && (options?.required === undefined || options?.required === false))) {\n\t\t/**\n\t\t * Triff zu, wenn der Wert entweder ...\n\t\t * - UNDEFINED oder\n\t\t * - NULL und NICHT REQUIRED\n\t\t * ... ist.\n\t\t */\n\t\tsetState(component, propName, options?.defaultValue, options?.hooks);\n\t} else {\n\t\t/**\n\t\t * Triff zu, wenn der Wert NICHT valide ist.\n\t\t */\n\t\tif (options?.required === undefined || options?.required === false) {\n\t\t\trequiredGeneric.add(null);\n\t\t}\n\t\tlogWarn(component, propName, value, requiredGeneric);\n\t}\n};\n\nexport const watchBoolean = (component: Generic.Element.Component, propName: string, value?: boolean, options?: WatchBooleanOptions): void => {\n\twatchValidator(component, propName, (value): boolean => typeof value === 'boolean', new Set(['Boolean {true, false}']), value, options);\n};\n\nexport const watchString = (component: Generic.Element.Component, propName: string, value?: string, options: WatchStringOptions = {}): void => {\n\tconst minLength = typeof options.minLength === 'number' ? options?.minLength : 0;\n\twatchValidator(\n\t\tcomponent,\n\t\tpropName,\n\t\t(value): boolean => typeof value === 'string' && value.length >= minLength,\n\t\tnew Set([`String (Mindestlänge ${minLength})`]),\n\t\tvalue,\n\t\toptions\n\t);\n};\n\nexport const watchNumber = (component: Generic.Element.Component, propName: string, value?: number, options?: WatchNumberOptions): void => {\n\twatchValidator(\n\t\tcomponent,\n\t\tpropName,\n\t\t(value): boolean =>\n\t\t\ttypeof value === 'number' &&\n\t\t\t(typeof options?.min === 'undefined' || (typeof options?.min === 'number' && value >= options.min)) &&\n\t\t\t(typeof options?.max === 'undefined' || (typeof options?.max === 'number' && value <= options.max)),\n\t\tnew Set(['Number']),\n\t\tvalue,\n\t\toptions\n\t);\n};\n\nexport const watchJsonArrayString = <T>(\n\tcomponent: Generic.Element.Component,\n\tpropName: string,\n\titemValidation: (item: T) => boolean,\n\tvalue?: Stringified<T[]>,\n\tarrayValidation: (items: T[]) => boolean = (items: T[]) => items === items, // nochmal hirnen\n\toptions: WatchOptions = {}\n): void => {\n\temptyStringByArrayHandler(value, () => {\n\t\tobjectObjectHandler(value, () => {\n\t\t\tif (typeof value === 'undefined') {\n\t\t\t\tvalue = [];\n\t\t\t}\n\t\t\ttry {\n\t\t\t\ttry {\n\t\t\t\t\tvalue = parseJson<T[]>(value);\n\t\t\t\t\t// eslint-disable-next-line no-empty\n\t\t\t\t} catch (e) {\n\t\t\t\t\t// value behält den ursprünglichen Wert\n\t\t\t\t}\n\t\t\t\tif (Array.isArray(value)) {\n\t\t\t\t\tconst invalid = value.find((item: T) => !itemValidation(item));\n\t\t\t\t\tif (invalid === undefined && arrayValidation(value)) {\n\t\t\t\t\t\tsetState(component, propName, value, options.hooks);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tobjectObjectHandler(invalid, () => {\n\t\t\t\t\t\t\tconsole.log(invalid);\n\t\t\t\t\t\t\tthrow new Error(`↑ Das Schema für das Property (_options) ist nicht valide. Der Wert wird nicht geändert.`);\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tobjectObjectHandler(value, () => {\n\t\t\t\t\t\tconsole.log(value);\n\t\t\t\t\t\tthrow new Error(`↑ Das Schema für das Property (_options) ist nicht valide. Der Wert wird nicht geändert.`);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\t/**\n\t\t\t\t * TODO: Wir haben einen Known-Bug beim Propergieren von Zeichenkettenliste (string[]).\n\t\t\t\t */\n\t\t\t\t// console.warn(error);\n\t\t\t\tdevHint(`Known bug: Zeichenkettenliste (string[])`);\n\t\t\t}\n\t\t});\n\t});\n};\n\nconst BOOLEAN = /^(true|false)$/;\nconst INTEGER = /^-?(0|[1-9]\\d*)$/;\nconst FLOAT = /^-?(0.|[1-9]\\d*.)\\d*[1-9]$/;\nexport const mapString2Unknown = (value: unknown) => {\n\tconst typeStr = typeof value;\n\tconst oldValue = `${value as string}`;\n\tif (typeof value === 'string') {\n\t\tif (BOOLEAN.test(value)) {\n\t\t\tvalue = value === 'true';\n\t\t} else if (INTEGER.test(value)) {\n\t\t\tvalue = parseInt(value);\n\t\t} else if (FLOAT.test(value)) {\n\t\t\tvalue = parseFloat(value);\n\t\t} else if (JSON_CHARS.test(value)) {\n\t\t\ttry {\n\t\t\t\tvalue = parseJson<unknown>(value);\n\t\t\t\t// eslint-disable-next-line no-empty\n\t\t\t} catch (e) {\n\t\t\t\t// value behält den ursprünglichen Wert\n\t\t\t}\n\t\t}\n\t}\n\tif (typeStr !== typeof value) {\n\t\tdevHint(`You have used a stringified property value (${oldValue} to ${JSON.stringify(value)}) which type switched from ${typeStr} to ${typeof value}!`);\n\t}\n\treturn value;\n};\n\nexport const stringifyJson = (value: unknown): string => {\n\ttry {\n\t\treturn JSON.stringify(value).replace(/\"/g, \"'\");\n\t} catch (error) {\n\t\tLog.warn(['stringifyJson', value]);\n\t\tLog.error(`↑ Das JSON konnte nicht in einen String umgewandelt werden. Es wird ein stringifizierbares JSON erwartet.`);\n\t\tthrow new Error();\n\t}\n};\n\nconst JSON_CHARS = /^[{[]/; // string starts with { or [\nexport const parseJson = <T>(value: unknown): T => {\n\tif (typeof value === 'string') {\n\t\ttry {\n\t\t\t// \"null\", \"true\", \"false\", \"0\" works too\n\t\t\treturn JSON.parse(value);\n\t\t} catch (error) {\n\t\t\tif (JSON_CHARS.test(value)) {\n\t\t\t\ttry {\n\t\t\t\t\treturn JSON.parse(value.replace(/'/g, '\"'));\n\t\t\t\t} catch (error) {\n\t\t\t\t\tLog.warn(['parseJson', value]);\n\t\t\t\t\tLog.error(`↑ Der JSON-String konnte nicht geparsed werden. Achten Sie darauf, dass einfache Anführungszeichen im Text maskiert werden (‘).`);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tthrow new Error();\n};\n\nexport const mapBoolean2String = (value?: boolean): string | undefined => {\n\treturn typeof value === 'boolean' ? (value === true ? 'true' : 'false') : undefined;\n};\n\nexport const mapStringOrBoolean2String = (value?: string | boolean): string | undefined => {\n\treturn typeof value === 'string' ? value : mapBoolean2String(value);\n};\n\nexport const koliBriQuerySelector = <T extends Element>(selector: string, node?: Document | HTMLElement | ShadowRoot): T | null =>\n\tquerySelector<T>(selector, node || getDocument());\n\nexport const koliBriQuerySelectorAll = <T extends Element>(selector: string, node?: Document | HTMLElement | ShadowRoot): T[] =>\n\tquerySelectorAll<T>(selector, node || getDocument());\n\ninterface A11yColorContrast {\n\tbackgroundColor: string;\n\tcolor: string;\n\tdomNode: HTMLElement | HTMLSlotElement;\n\tlevel: string;\n\tscore: number;\n}\n\nlet DEFAULT_COLOR_CONTRAST: A11yColorContrast | null = null;\nconst getDefaultColorContrast = (): A11yColorContrast => {\n\tDEFAULT_COLOR_CONTRAST = DEFAULT_COLOR_CONTRAST || {\n\t\tbackgroundColor: '#00000000',\n\t\tcolor: '#00000000',\n\t\tdomNode: getDocument().body,\n\t\tlevel: 'Fail',\n\t\tscore: 1,\n\t};\n\treturn DEFAULT_COLOR_CONTRAST;\n};\n\nconst TRANSPARENT_REGEXP = /(\\d+, ){3}0\\)/;\nexport const koliBriA11yColorContrast = (domNode: HTMLElement, a11yColorContrast: A11yColorContrast = getDefaultColorContrast()): A11yColorContrast => {\n\tconst computedStyle = getComputedStyle(domNode);\n\tconst hexBG: string = TRANSPARENT_REGEXP.test(computedStyle.backgroundColor) ? a11yColorContrast.backgroundColor : rgba.hex(computedStyle.backgroundColor);\n\tconst hexC: string = TRANSPARENT_REGEXP.test(computedStyle.color) ? a11yColorContrast.color : rgba.hex(computedStyle.color);\n\tconst diff = hex(hexBG, hexC);\n\tconst contrast = {\n\t\tbackgroundColor: hexBG,\n\t\tcolor: hexC,\n\t\tdomNode: domNode,\n\t\tlevel: score(diff),\n\t\tscore: diff,\n\t};\n\tif (diff < 4.5) {\n\t\tLog.error([\n\t\t\t'Color-Contrast-Error',\n\t\t\t{\n\t\t\t\tbackgroundColor: contrast.backgroundColor,\n\t\t\t\tcolor: contrast.color,\n\t\t\t\tlevel: contrast.level,\n\t\t\t\tscore: contrast.score,\n\t\t\t},\n\t\t\tcontrast.domNode,\n\t\t]);\n\t}\n\treturn contrast;\n};\n\nexport const koliBriQuerySelectorColors = (selector: string, a11yColorContrast: A11yColorContrast = getDefaultColorContrast()): A11yColorContrast => {\n\tif (a11yColorContrast.domNode instanceof HTMLElement) {\n\t\ta11yColorContrast = koliBriA11yColorContrast(a11yColorContrast.domNode, a11yColorContrast);\n\t}\n\tconst selectedNode: HTMLElement | null = a11yColorContrast.domNode.querySelector<HTMLElement>(selector);\n\tif (selectedNode === null) {\n\t\tconst nodeList: NodeListOf<HTMLElement> = a11yColorContrast.domNode.querySelectorAll<HTMLElement>('[class=\"hydrated\"]');\n\t\tfor (let i = 0; i < nodeList.length; i++) {\n\t\t\t// const shadowRoot: ShadowRoot = nodeList[i].shadowRoot as ShadowRoot;\n\t\t\t// if (typeof shadowRoot === 'object' && shadowRoot !== null) {\n\t\t\t// a11yColorContrast.domNode = shadowRoot;\n\t\t\t// a11yColorContrast = koliBriQuerySelectorColors(selector, a11yColorContrast);\n\t\t\t// } else {\n\t\t\ta11yColorContrast.domNode = nodeList[i];\n\t\t\ta11yColorContrast = koliBriQuerySelectorColors(selector, a11yColorContrast);\n\t\t\t// }\n\t\t\tif (a11yColorContrast.domNode !== null) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\treturn a11yColorContrast;\n\t} else {\n\t\treturn koliBriA11yColorContrast(selectedNode, a11yColorContrast);\n\t}\n};\n\nconst scrollByHTMLElement = (element: HTMLElement, parentElement: Window | HTMLElement = window): void => {\n\tif (element instanceof HTMLElement) {\n\t\tparentElement.scrollTo({\n\t\t\tbehavior: 'smooth',\n\t\t\ttop: element.getBoundingClientRect().top + getWindow().pageYOffset - 50,\n\t\t});\n\t\telement.focus();\n\t} else {\n\t\tdevHint(`Das HTMLElement ist nicht valide, zu dem gescrollt werden soll.`);\n\t}\n};\nexport const scrollBySelector = (selector: string, document?: Document | HTMLElement | ShadowRoot): void => {\n\tif (\n\t\t((selector as unknown) instanceof Document || (selector as unknown) instanceof HTMLElement || (selector as unknown) instanceof ShadowRoot) &&\n\t\ttypeof document === 'string'\n\t) {\n\t\tdevHint(\n\t\t\t`Bei der Methode querySelectorAll wurden die Parameter document, selector in selector, document getauscht, da der Parameter selector nicht, allerdings der Parameter document optional sein kann.`\n\t\t);\n\t\tconst temp = `${document as unknown as string}`;\n\t\tdocument = selector as unknown as Document;\n\t\tselector = temp;\n\t}\n\tif (typeof selector === 'string') {\n\t\tconst element: HTMLElement | null = koliBriQuerySelector<HTMLElement>(selector, document);\n\t\tif (element instanceof HTMLElement) {\n\t\t\tscrollByHTMLElement(element);\n\t\t} else {\n\t\t\tdevHint(`Es konnte kein HTMLElement mit dem Selector (${selector}) gefunden werden, zu dem gescrollt werden soll.`);\n\t\t}\n\t} else {\n\t\tdevHint(`Der Selector ist nicht valide, zu dem gescrollt werden soll.`);\n\t}\n};\n\nexport class KoliBriUtils {\n\tprivate static executionLock = false;\n\tprivate static cache = new Map<Element, A11yColorContrast>();\n\tpublic static queryHtmlElementColors(targetNode: HTMLElement, a11yColorContrast: A11yColorContrast, recursion = false, log = true): A11yColorContrast | null {\n\t\tlet returnValue = null;\n\t\tif (recursion === true || KoliBriUtils.executionLock === false) {\n\t\t\tif (recursion === false) {\n\t\t\t\tKoliBriUtils.cache.clear();\n\t\t\t\tKoliBriUtils.cache.set(a11yColorContrast.domNode, a11yColorContrast);\n\t\t\t\tKoliBriUtils.executionLock = true;\n\t\t\t\tif (log === true) {\n\t\t\t\t\tLog.debug(`[KoliBriUtils] Color contrast analysis started...`);\n\t\t\t\t}\n\t\t\t}\n\t\t\t// console.log(a11yColorContrast.domNode);\n\t\t\tif (targetNode === a11yColorContrast.domNode) {\n\t\t\t\treturnValue = a11yColorContrast;\n\t\t\t} else {\n\t\t\t\tconst children: Set<Element> = new Set<Element>();\n\t\t\t\tif (a11yColorContrast.domNode.shadowRoot) {\n\t\t\t\t\tconst shadowChildren = a11yColorContrast.domNode.shadowRoot.children;\n\t\t\t\t\tfor (let i = 0; i < shadowChildren.length; i++) {\n\t\t\t\t\t\tchildren.add(shadowChildren[i]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tconst slotElement: HTMLSlotElement = a11yColorContrast.domNode as HTMLSlotElement;\n\t\t\t\tif (typeof slotElement.assignedNodes === 'function') {\n\t\t\t\t\tconst slotChildren = slotElement.assignedNodes();\n\t\t\t\t\tfor (let i = 0; i < slotChildren.length; i++) {\n\t\t\t\t\t\tif (slotChildren[i] instanceof HTMLElement) {\n\t\t\t\t\t\t\tchildren.add(slotChildren[i] as HTMLElement);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tconst domChildren = a11yColorContrast.domNode.children;\n\t\t\t\tfor (let i = 0; i < domChildren.length; i++) {\n\t\t\t\t\tchildren.add(domChildren[i]);\n\t\t\t\t}\n\t\t\t\tconst arrayChildren = Array.from(children);\n\t\t\t\tfor (let i = 0; i < arrayChildren.length; i++) {\n\t\t\t\t\tlet colorContrast: A11yColorContrast | undefined = KoliBriUtils.cache.get(arrayChildren[i]);\n\t\t\t\t\tif (colorContrast === undefined) {\n\t\t\t\t\t\tcolorContrast = koliBriA11yColorContrast(arrayChildren[i] as HTMLElement, a11yColorContrast);\n\t\t\t\t\t}\n\t\t\t\t\tKoliBriUtils.cache.set(arrayChildren[i], colorContrast);\n\t\t\t\t\tconst colors: A11yColorContrast | null = KoliBriUtils.queryHtmlElementColors(targetNode, colorContrast, true, false);\n\t\t\t\t\tif (colors !== null) {\n\t\t\t\t\t\treturnValue = colors;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tLog.debug(`[KoliBriUtils] Call aborted because a color contrast analysis is currently being executed.`);\n\t\t}\n\t\tif (recursion === false) {\n\t\t\tif (log === true) {\n\t\t\t\tLog.debug(`[KoliBriUtils] Color contrast analysis finished (${KoliBriUtils.cache.size} DOM elements are analysed).`);\n\t\t\t}\n\t\t\tKoliBriUtils.executionLock = false;\n\t\t\tKoliBriUtils.cache.clear();\n\t\t}\n\t\treturn returnValue;\n\t}\n}\n\nexport class KoliBriDevHelper {\n\tpublic static readonly patchTheme = patchTheme;\n\tpublic static readonly patchThemeTag = patchThemeTag;\n\tpublic static readonly querySelector = koliBriQuerySelector;\n\tpublic static readonly querySelectorAll = koliBriQuerySelectorAll;\n\tpublic static readonly scrollByHTMLElement = scrollByHTMLElement;\n\tpublic static readonly scrollBySelector = scrollBySelector;\n\tpublic static readonly stringifyJson = stringifyJson;\n}\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["propergateFocus","host","ref","isObject","focus","ops"],"sources":["./src/utils/reuse.ts"],"sourcesContent":["import { isObject } from './validator';\n\nexport const propergateFocus = <H extends HTMLElement, R extends HTMLElement>(host?: H, ref?: R) => {\n\tif (isObject(host) && host) {\n\t\thost.focus = (ops: FocusOptions) => ref?.focus(ops);\n\t}\n};\n\n/**\n * If you need a tiny setTimeout with clearTimeout, you can\n * use this compact implementation.\n *\n * @param cb Callback with the code to run\n * @param delay Timeout delay\n */\n// ts-prune-ignore-next\nexport const smartSetTimeout = (cb: () => void, delay?: number) => {\n\tconst timeout = setTimeout(() => {\n\t\tclearTimeout(timeout);\n\t\tcb();\n\t}, delay);\n};\n"],"mappings":";;;kDAEaA,EAAkB,CAA+CC,EAAUC,KACvF,GAAIC,EAASF,IAASA,EAAM,CAC3BA,EAAKG,MAASC,GAAsBH,IAAG,MAAHA,SAAG,SAAHA,EAAKE,MAAMC,E"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["mapCustomIcon","state","alignment","icon","isObject","isString","mapIconProp2State","iconAlign","right","left","top","bottom","beforePatchIcon","component","_a","nextState","has","_b","get","_c","_iconAlign","_d","set","_e","lastIconAlign","_f","undefined","_g","_icon","isIcon","value","style","isStyle","validateIcon","objectObjectHandler","parseJson","e","watchValidator","Set","hooks","beforePatch","nextValue","required","watchIconAlign","deprecatedHint","options","afterPatch","a11yHint","validateTabIndex","watchNumber"],"sources":["./src/utils/validators/icon.ts","./src/utils/validators/tab-index.ts"],"sourcesContent":["import { Generic } from '@public-ui/core';\nimport { ButtonStates } from '../../types/button-link';\nimport { Alignment, AnyIconFontClass, KoliBriAllIcon, KoliBriCustomIcon, KoliBriIconProp, KoliBriIconState } from '../../types/icon';\nimport { deprecatedHint } from '../a11y.tipps';\nimport { objectObjectHandler, parseJson, watchValidator } from '../prop.validators';\nimport { isObject, isString, isStyle } from '../validator';\n\nconst mapCustomIcon = (state: KoliBriIconState, alignment: Alignment | 'top' | 'bottom', icon?: AnyIconFontClass | KoliBriCustomIcon) => {\n\tif (isObject(icon)) {\n\t\tstate[alignment] = icon as KoliBriCustomIcon;\n\t} else if (isString(icon, 1)) {\n\t\tstate[alignment] = {\n\t\t\ticon: icon as AnyIconFontClass,\n\t\t};\n\t}\n};\n\nexport const mapIconProp2State = (icon: KoliBriIconProp, iconAlign?: Alignment): KoliBriIconState => {\n\tlet state: KoliBriIconState = {};\n\tif (isString(icon, 1)) {\n\t\tswitch (iconAlign) {\n\t\t\tcase 'right':\n\t\t\t\tstate = {\n\t\t\t\t\tright: {\n\t\t\t\t\t\ticon: icon as AnyIconFontClass,\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tstate = {\n\t\t\t\t\tleft: {\n\t\t\t\t\t\ticon: icon as AnyIconFontClass,\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t}\n\t} else if (typeof icon === 'object' && icon !== null) {\n\t\tmapCustomIcon(state, 'top', icon.top);\n\t\tmapCustomIcon(state, 'right', icon.right);\n\t\tmapCustomIcon(state, 'bottom', icon.bottom);\n\t\tmapCustomIcon(state, 'left', icon.left);\n\t}\n\treturn state;\n};\n\nconst beforePatchIcon = (component: Generic.Element.Component): void => {\n\tif (component.nextState?.has('_icon')) {\n\t\tconst icon = component.nextState?.get('_icon') as KoliBriIconProp;\n\t\tconst iconAlign = (component.nextState?.get('_iconAlign') as Alignment) || (component.state as ButtonStates)._iconAlign;\n\t\tcomponent.nextState?.set('_icon', mapIconProp2State(icon, iconAlign));\n\t} else if (component.nextState?.has('_iconAlign')) {\n\t\tconst lastIconAlign = (component.state as ButtonStates)._iconAlign;\n\t\tcomponent.nextState?.set('_icon', {\n\t\t\t[lastIconAlign]: undefined,\n\t\t\t[component.nextState?.get('_iconAlign') as Alignment]: (component.state as ButtonStates)._icon[lastIconAlign],\n\t\t});\n\t}\n};\n\nexport const isIcon = (value?: unknown): boolean =>\n\ttypeof value === 'object' &&\n\tvalue !== null &&\n\t(typeof (value as KoliBriCustomIcon).style === 'undefined' || isStyle((value as KoliBriCustomIcon).style)) &&\n\tisString((value as KoliBriCustomIcon).icon, 1);\n\nexport const validateIcon = (component: Generic.Element.Component, value?: KoliBriIconProp): void => {\n\tobjectObjectHandler(value, () => {\n\t\ttry {\n\t\t\tvalue = parseJson<KoliBriIconProp>(value as string);\n\t\t} catch (e) {\n\t\t\t// value behält den ursprünglichen Wert\n\t\t}\n\t\twatchValidator(\n\t\t\tcomponent,\n\t\t\t'_icon',\n\t\t\t(value): boolean => {\n\t\t\t\treturn (\n\t\t\t\t\tvalue === null ||\n\t\t\t\t\tisString(value, 1) ||\n\t\t\t\t\t(typeof value === 'object' &&\n\t\t\t\t\t\tvalue !== null &&\n\t\t\t\t\t\t(isString((value as KoliBriAllIcon).left, 1) ||\n\t\t\t\t\t\t\tisIcon((value as KoliBriAllIcon).left) ||\n\t\t\t\t\t\t\tisString((value as KoliBriAllIcon).right, 1) ||\n\t\t\t\t\t\t\tisIcon((value as KoliBriAllIcon).right) ||\n\t\t\t\t\t\t\tisString((value as KoliBriAllIcon).top, 1) ||\n\t\t\t\t\t\t\tisIcon((value as KoliBriAllIcon).top) ||\n\t\t\t\t\t\t\tisString((value as KoliBriAllIcon).bottom, 1) ||\n\t\t\t\t\t\t\tisIcon((value as KoliBriAllIcon).bottom)))\n\t\t\t\t);\n\t\t\t},\n\t\t\tnew Set(['KoliBriIcon']),\n\t\t\tvalue,\n\t\t\t{\n\t\t\t\thooks: {\n\t\t\t\t\tbeforePatch: (nextValue: unknown, nextState: Map<string, unknown>) => {\n\t\t\t\t\t\tif (nextValue === null) {\n\t\t\t\t\t\t\tnextState.set('_icon', {});\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbeforePatchIcon(component);\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\trequired: true,\n\t\t\t}\n\t\t);\n\t});\n};\n\nexport const watchIconAlign = (component: Generic.Element.Component, value?: Alignment): void => {\n\tdeprecatedHint(\n\t\t`Das Property _icon-align bzw. _iconAlign ist veraltet. Die Ausrichtung der Icon's kann jetzt direkt über das _icon-Property vorgenommen werden. (v1.1.10: https://public-ui.github.io/?path=/story/backlog-und-changelog--page)`\n\t);\n\twatchValidator(component, '_iconAlign', (value) => value === 'left' || value === 'right', new Set(['Alignment {left, right, top, bottom}']), value, {\n\t\thooks: {\n\t\t\tbeforePatch: () => {\n\t\t\t\tbeforePatchIcon(component);\n\t\t\t},\n\t\t},\n\t});\n};\n","import { Generic } from '@public-ui/core';\nimport { a11yHint } from '../a11y.tipps';\nimport { watchNumber, WatchNumberOptions } from '../prop.validators';\n\n/**\n * Accessibility hints\n * - https://adrianroselli.com/2014/11/dont-use-tabindex-greater-than-0.html\n */\n\nconst options: WatchNumberOptions = {\n\thooks: {\n\t\tafterPatch: (value) => {\n\t\t\tif (value !== -1 && value !== 0) {\n\t\t\t\ta11yHint(`Don’t Use Tabindex Greater than 0: https://adrianroselli.com/2014/11/dont-use-tabindex-greater-than-0.html`);\n\t\t\t}\n\t\t},\n\t},\n};\n\n/**\n * Diese Methode validiert das Property und setzt den State, wenn es valide ist.\n */\nexport const validateTabIndex = (component: Generic.Element.Component, value?: number): void => {\n\twatchNumber(component, '_tabIndex', value, options);\n};\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["watchNavLinks","className","component","value","watchJsonArrayString","link","_label","uiUxHintMillerscheZahl","state","_links","length"],"sources":["./src/components/nav/validation.ts"],"sourcesContent":["import { Generic } from '@public-ui/core';\nimport { Stringified } from '../../types/common';\nimport { uiUxHintMillerscheZahl } from '../../utils/a11y.tipps';\nimport { watchJsonArrayString } from '../../utils/prop.validators';\nimport { NavLinkProps } from '../link/component';\n\nexport const watchNavLinks = (\n\tclassName: string,\n\tcomponent: Generic.Element.Component & {\n\t\tstate: {\n\t\t\t_links: NavLinkProps[];\n\t\t};\n\t},\n\tvalue?: Stringified<NavLinkProps[]>\n): void => {\n\twatchJsonArrayString(component, '_links', (link) => typeof link === 'object' && typeof link._label === 'string', value);\n\tuiUxHintMillerscheZahl(className, component.state._links.length);\n};\n"],"mappings":";;;qGAMaA,EAAgB,CAC5BC,EACAC,EAKAC,KAEAC,EAAqBF,EAAW,UAAWG,UAAgBA,IAAS,iBAAmBA,EAAKC,SAAW,UAAUH,GACjHI,EAAuBN,EAAWC,EAAUM,MAAMC,OAAOC,OAAO,S"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["watchHeadingLevel","component","value","watchValidator","Set","defaultValue","required"],"sources":["./src/components/heading/validation.ts"],"sourcesContent":["import { Generic } from '@public-ui/core';\nimport { watchValidator } from '../../utils/prop.validators';\n\nexport const watchHeadingLevel = (component: Generic.Element.Component, value?: number): void => {\n\twatchValidator(\n\t\tcomponent,\n\t\t'_level',\n\t\t(value): boolean => {\n\t\t\treturn typeof value === 'number' && 1 <= value && value <= 6;\n\t\t},\n\t\tnew Set(['Number {1, 2, 3, 4, 5, 6}']),\n\t\tvalue,\n\t\t{\n\t\t\tdefaultValue: 1,\n\t\t\trequired: true,\n\t\t}\n\t);\n};\n"],"mappings":";;;wDAGaA,EAAoB,CAACC,EAAsCC,KACvEC,EACCF,EACA,UACCC,UACcA,IAAU,UAAY,GAAKA,GAASA,GAAS,GAE5D,IAAIE,IAAI,CAAC,8BACTF,EACA,CACCG,aAAc,EACdC,SAAU,MAEX,S"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["isObject","value","isString","minLength","length","isStyle","style","property","isPrefixOf","prefix","text","RegExp","test","isEmptyOrPrefixOf","STATE_CHANGE_EVENT","Event"],"sources":["./src/utils/validator.ts"],"sourcesContent":["export const isObject = (value: unknown): boolean => typeof value === 'object' && value !== null;\n\nexport const isString = (value: unknown, minLength = 0): boolean => typeof value === 'string' && value.length >= minLength;\n\nexport const isStyle = (style?: Record<string, string>): boolean => {\n\tif (typeof style === 'object' && style !== null) {\n\t\tfor (const property in style) {\n\t\t\tif (isString(property, 1) === false) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t} else {\n\t\treturn isString(style, 1);\n\t}\n\treturn true;\n};\n\nconst isPrefixOf = (prefix: string, text: string) => text.length === 0 && new RegExp(`^${prefix}`).test(text);\n\n/**\n * Validate, if a text contains a prefix.\n */\nexport const isEmptyOrPrefixOf = (prefix: string, text: string) => text.length === 0 || isPrefixOf(prefix, text);\n\n/**\n * Fix event instance for state changes.\n */\nexport const STATE_CHANGE_EVENT = new Event('StateChange');\n"],"mappings":";;;MAAaA,EAAYC,UAAmCA,IAAU,UAAYA,IAAU,K,MAE/EC,EAAW,CAACD,EAAgBE,EAAY,WAAsBF,IAAU,UAAYA,EAAMG,QAAUD,E,MAEpGE,EAAWC,IACvB,UAAWA,IAAU,UAAYA,IAAU,KAAM,CAChD,IAAK,MAAMC,KAAYD,EAAO,CAC7B,GAAIJ,EAASK,EAAU,KAAO,MAAO,CACpC,OAAO,K,OAGH,CACN,OAAOL,EAASI,EAAO,E,CAExB,OAAO,IAAI,EAGZ,MAAME,EAAa,CAACC,EAAgBC,IAAiBA,EAAKN,SAAW,GAAK,IAAIO,OAAO,IAAIF,KAAUG,KAAKF,G,MAK3FG,EAAoB,CAACJ,EAAgBC,IAAiBA,EAAKN,SAAW,GAAKI,EAAWC,EAAQC,G,MAK9FI,EAAqB,IAAIC,MAAM,sB"}
|