@dso-toolkit/core 54.2.0 → 54.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/{annotation.service-e980f478.js → annotation.service-99dd546f.js} +3 -1
- package/dist/cjs/annotation.service-99dd546f.js.map +1 -0
- package/dist/cjs/clsx.m-b81c6b86.js +2 -0
- package/dist/cjs/clsx.m-b81c6b86.js.map +1 -0
- package/dist/cjs/create-identifier-6ee2a08b.js +2 -0
- package/dist/cjs/create-identifier-6ee2a08b.js.map +1 -0
- package/dist/cjs/dso-accordion-section.cjs.entry.js +20 -12
- package/dist/cjs/dso-accordion-section.cjs.entry.js.map +1 -0
- package/dist/cjs/dso-accordion.cjs.entry.js +33 -21
- package/dist/cjs/dso-accordion.cjs.entry.js.map +1 -0
- package/dist/cjs/dso-action-list-item.cjs.entry.js +3 -1
- package/dist/cjs/dso-action-list-item.cjs.entry.js.map +1 -0
- package/dist/cjs/dso-action-list.cjs.entry.js +3 -1
- package/dist/cjs/dso-action-list.cjs.entry.js.map +1 -0
- package/dist/cjs/dso-alert.cjs.entry.js +3 -1
- package/dist/cjs/dso-alert.cjs.entry.js.map +1 -0
- package/dist/cjs/dso-annotation-button.cjs.entry.js +6 -4
- package/dist/cjs/dso-annotation-button.cjs.entry.js.map +1 -0
- package/dist/cjs/dso-annotation-output.cjs.entry.js +10 -5
- package/dist/cjs/dso-annotation-output.cjs.entry.js.map +1 -0
- package/dist/cjs/dso-attachments-counter.cjs.entry.js +3 -1
- package/dist/cjs/dso-attachments-counter.cjs.entry.js.map +1 -0
- package/dist/cjs/dso-autosuggest.cjs.entry.js +7 -2
- package/dist/cjs/dso-autosuggest.cjs.entry.js.map +1 -0
- package/dist/cjs/dso-badge.cjs.entry.js +3 -1
- package/dist/cjs/dso-badge.cjs.entry.js.map +1 -0
- package/dist/cjs/dso-banner.cjs.entry.js +3 -1
- package/dist/cjs/dso-banner.cjs.entry.js.map +1 -0
- package/dist/cjs/dso-card-container.cjs.entry.js +3 -1
- package/dist/cjs/dso-card-container.cjs.entry.js.map +1 -0
- package/dist/cjs/dso-card.cjs.entry.js +3 -1
- package/dist/cjs/dso-card.cjs.entry.js.map +1 -0
- package/dist/cjs/dso-date-picker.cjs.entry.js +5 -2
- package/dist/cjs/dso-date-picker.cjs.entry.js.map +1 -0
- package/dist/cjs/dso-dropdown-menu.cjs.entry.js +6 -4
- package/dist/cjs/dso-dropdown-menu.cjs.entry.js.map +1 -0
- package/dist/cjs/dso-expandable-heading.cjs.entry.js +5 -2
- package/dist/cjs/dso-expandable-heading.cjs.entry.js.map +1 -0
- package/dist/cjs/dso-expandable.cjs.entry.js +13 -6
- package/dist/cjs/dso-expandable.cjs.entry.js.map +1 -0
- package/dist/cjs/dso-header.cjs.entry.js +8 -2
- package/dist/cjs/dso-header.cjs.entry.js.map +1 -0
- package/dist/cjs/dso-helpcenter-panel.cjs.entry.js +3 -1
- package/dist/cjs/dso-helpcenter-panel.cjs.entry.js.map +1 -0
- package/dist/cjs/dso-highlight-box.cjs.entry.js +3 -1
- package/dist/cjs/dso-highlight-box.cjs.entry.js.map +1 -0
- package/dist/cjs/dso-icon.cjs.entry.js +3 -1
- package/dist/cjs/dso-icon.cjs.entry.js.map +1 -0
- package/dist/cjs/dso-image-overlay.cjs.entry.js +3 -1
- package/dist/cjs/dso-image-overlay.cjs.entry.js.map +1 -0
- package/dist/cjs/dso-info-button.cjs.entry.js +6 -1
- package/dist/cjs/dso-info-button.cjs.entry.js.map +1 -0
- package/dist/cjs/dso-info_2.cjs.entry.js +9 -1
- package/dist/cjs/dso-info_2.cjs.entry.js.map +1 -0
- package/dist/cjs/dso-label.cjs.entry.js +11 -7
- package/dist/cjs/dso-label.cjs.entry.js.map +1 -0
- package/dist/cjs/dso-list-button.cjs.entry.js +4 -2
- package/dist/cjs/dso-list-button.cjs.entry.js.map +1 -0
- package/dist/cjs/dso-map-base-layers.cjs.entry.js +3 -1
- package/dist/cjs/dso-map-base-layers.cjs.entry.js.map +1 -0
- package/dist/cjs/dso-map-controls.cjs.entry.js +13 -4
- package/dist/cjs/dso-map-controls.cjs.entry.js.map +1 -0
- package/dist/cjs/dso-map-overlays.cjs.entry.js +3 -1
- package/dist/cjs/dso-map-overlays.cjs.entry.js.map +1 -0
- package/dist/cjs/dso-modal.cjs.entry.js +5 -2
- package/dist/cjs/dso-modal.cjs.entry.js.map +1 -0
- package/dist/cjs/dso-ozon-content.cjs.entry.js +9 -7
- package/dist/cjs/dso-ozon-content.cjs.entry.js.map +1 -0
- package/dist/cjs/dso-pagination.cjs.entry.js +3 -1
- package/dist/cjs/dso-pagination.cjs.entry.js.map +1 -0
- package/dist/cjs/dso-progress-bar.cjs.entry.js +3 -1
- package/dist/cjs/dso-progress-bar.cjs.entry.js.map +1 -0
- package/dist/cjs/dso-progress-indicator.cjs.entry.js +5 -5
- package/dist/cjs/dso-progress-indicator.cjs.entry.js.map +1 -0
- package/dist/cjs/dso-responsive-element.cjs.entry.js +6 -1
- package/dist/cjs/dso-responsive-element.cjs.entry.js.map +1 -0
- package/dist/cjs/dso-scrollable.cjs.entry.js +5 -3
- package/dist/cjs/dso-scrollable.cjs.entry.js.map +1 -0
- package/dist/cjs/dso-slide-toggle.cjs.entry.js +3 -1
- package/dist/cjs/dso-slide-toggle.cjs.entry.js.map +1 -0
- package/dist/cjs/dso-table.cjs.entry.js +4 -2
- package/dist/cjs/dso-table.cjs.entry.js.map +1 -0
- package/dist/cjs/dso-toggletip.cjs.entry.js +3 -1
- package/dist/cjs/dso-toggletip.cjs.entry.js.map +1 -0
- package/dist/cjs/dso-toolkit.cjs.js +12 -3
- package/dist/cjs/dso-toolkit.cjs.js.map +1 -0
- package/dist/cjs/dso-tooltip.cjs.entry.js +4 -2
- package/dist/cjs/dso-tooltip.cjs.entry.js.map +1 -0
- package/dist/cjs/dso-tree-view.cjs.entry.js +6 -3
- package/dist/cjs/dso-tree-view.cjs.entry.js.map +1 -0
- package/dist/cjs/dso-viewer-grid.cjs.entry.js +3 -1
- package/dist/cjs/dso-viewer-grid.cjs.entry.js.map +1 -0
- package/dist/cjs/focus-trap.esm-a5b7273f.js +2 -0
- package/dist/cjs/focus-trap.esm-a5b7273f.js.map +1 -0
- package/dist/cjs/has-overflow-dd552ec8.js +2 -0
- package/dist/cjs/has-overflow-dd552ec8.js.map +1 -0
- package/dist/cjs/{index-71b733b1.js → index-3643f00e.js} +3 -1
- package/dist/cjs/index-3643f00e.js.map +1 -0
- package/dist/cjs/index-794ad37a.js +2 -0
- package/dist/cjs/index-794ad37a.js.map +1 -0
- package/dist/cjs/{index-ecec64a0.js → index-caf53ce3.js} +205 -35
- package/dist/cjs/index-caf53ce3.js.map +1 -0
- package/dist/cjs/index.cjs.js +2 -5
- package/dist/cjs/index.cjs.js.map +1 -0
- package/dist/cjs/index.esm-0e935715.js +2 -0
- package/dist/cjs/index.esm-0e935715.js.map +1 -0
- package/dist/cjs/is-modified-event-dcab03a0.js +2 -0
- package/dist/cjs/is-modified-event-dcab03a0.js.map +1 -0
- package/dist/cjs/loader.cjs.js +6 -3
- package/dist/cjs/loader.cjs.js.map +1 -0
- package/dist/cjs/v4-abb5dc0c.js +2 -0
- package/dist/cjs/v4-abb5dc0c.js.map +1 -0
- package/dist/collection/collection-manifest.json +2 -2
- package/dist/collection/components/accordion/accordion.interfaces.js +1 -0
- package/dist/collection/components/accordion/accordion.interfaces.js.map +1 -0
- package/dist/collection/components/accordion/accordion.js +55 -26
- package/dist/collection/components/accordion/accordion.js.map +1 -0
- package/dist/collection/components/accordion/components/accordion-section.interfaces.js +1 -0
- package/dist/collection/components/accordion/components/accordion-section.interfaces.js.map +1 -0
- package/dist/collection/components/accordion/components/accordion-section.js +20 -17
- package/dist/collection/components/accordion/components/accordion-section.js.map +1 -0
- package/dist/collection/components/accordion/components/handles/element.handle.js +1 -0
- package/dist/collection/components/accordion/components/handles/element.handle.js.map +1 -0
- package/dist/collection/components/accordion/components/handles/heading.handle.js +1 -0
- package/dist/collection/components/accordion/components/handles/heading.handle.js.map +1 -0
- package/dist/collection/components/accordion/components/handles/icon.handle.js +1 -0
- package/dist/collection/components/accordion/components/handles/icon.handle.js.map +1 -0
- package/dist/collection/components/accordion/components/handles/index.js +1 -0
- package/dist/collection/components/accordion/components/handles/index.js.map +1 -0
- package/dist/collection/components/accordion/components/handles/state-icon.handle.js +1 -0
- package/dist/collection/components/accordion/components/handles/state-icon.handle.js.map +1 -0
- package/dist/collection/components/action-list/action-list.js +2 -1
- package/dist/collection/components/action-list/action-list.js.map +1 -0
- package/dist/collection/components/action-list/components/action-list-item.js +4 -3
- package/dist/collection/components/action-list/components/action-list-item.js.map +1 -0
- package/dist/collection/components/alert/alert.js +4 -1
- package/dist/collection/components/alert/alert.js.map +1 -0
- package/dist/collection/components/annotation-button/annotation-button.js +3 -2
- package/dist/collection/components/annotation-button/annotation-button.js.map +1 -0
- package/dist/collection/components/annotation-output/annotation-output.interfaces.js +1 -0
- package/dist/collection/components/annotation-output/annotation-output.interfaces.js.map +1 -0
- package/dist/collection/components/annotation-output/annotation-output.js +12 -5
- package/dist/collection/components/annotation-output/annotation-output.js.map +1 -0
- package/dist/collection/components/attachments-counter/attachments-counter.js +2 -1
- package/dist/collection/components/attachments-counter/attachments-counter.js.map +1 -0
- package/dist/collection/components/autosuggest/autosuggest.interfaces.js +1 -0
- package/dist/collection/components/autosuggest/autosuggest.interfaces.js.map +1 -0
- package/dist/collection/components/autosuggest/autosuggest.js +5 -1
- package/dist/collection/components/autosuggest/autosuggest.js.map +1 -0
- package/dist/collection/components/badge/badge.js +2 -1
- package/dist/collection/components/badge/badge.js.map +1 -0
- package/dist/collection/components/banner/banner.js +2 -1
- package/dist/collection/components/banner/banner.js.map +1 -0
- package/dist/collection/components/card/card.interfaces.js +1 -0
- package/dist/collection/components/card/card.interfaces.js.map +1 -0
- package/dist/collection/components/card/card.js +5 -4
- package/dist/collection/components/card/card.js.map +1 -0
- package/dist/collection/components/card-container/card-container.interfaces.js +1 -0
- package/dist/collection/components/card-container/card-container.interfaces.js.map +1 -0
- package/dist/collection/components/card-container/card-container.js +2 -1
- package/dist/collection/components/card-container/card-container.js.map +1 -0
- package/dist/collection/components/date-picker/date-localization.js +1 -0
- package/dist/collection/components/date-picker/date-localization.js.map +1 -0
- package/dist/collection/components/date-picker/date-picker-day.js +1 -0
- package/dist/collection/components/date-picker/date-picker-day.js.map +1 -0
- package/dist/collection/components/date-picker/date-picker-month.js +1 -0
- package/dist/collection/components/date-picker/date-picker-month.js.map +1 -0
- package/dist/collection/components/date-picker/date-picker.css +1 -1
- package/dist/collection/components/date-picker/date-picker.interfaces.js +1 -0
- package/dist/collection/components/date-picker/date-picker.interfaces.js.map +1 -0
- package/dist/collection/components/date-picker/date-picker.js +20 -1
- package/dist/collection/components/date-picker/date-picker.js.map +1 -0
- package/dist/collection/components/date-picker/date-utils.js +1 -0
- package/dist/collection/components/date-picker/date-utils.js.map +1 -0
- package/dist/collection/components/date-picker/utils/month-range.js +1 -0
- package/dist/collection/components/date-picker/utils/month-range.js.map +1 -0
- package/dist/collection/components/date-picker/utils/range.js +1 -0
- package/dist/collection/components/date-picker/utils/range.js.map +1 -0
- package/dist/collection/components/dropdown-menu/dropdown-menu.js +4 -3
- package/dist/collection/components/dropdown-menu/dropdown-menu.js.map +1 -0
- package/dist/collection/components/expandable/expandable.functions.js +4 -0
- package/dist/collection/components/expandable/expandable.functions.js.map +1 -0
- package/dist/collection/components/expandable/expandable.js +28 -32
- package/dist/collection/components/expandable/expandable.js.map +1 -0
- package/dist/collection/components/expandable-heading/expandable-heading.css +7 -0
- package/dist/collection/components/expandable-heading/expandable-heading.interfaces.js +1 -0
- package/dist/collection/components/expandable-heading/expandable-heading.interfaces.js.map +1 -0
- package/dist/collection/components/expandable-heading/expandable-heading.js +25 -5
- package/dist/collection/components/expandable-heading/expandable-heading.js.map +1 -0
- package/dist/collection/components/expandable-heading/heading.js +1 -0
- package/dist/collection/components/expandable-heading/heading.js.map +1 -0
- package/dist/collection/components/header/header.interfaces.js +1 -0
- package/dist/collection/components/header/header.interfaces.js.map +1 -0
- package/dist/collection/components/header/header.js +29 -7
- package/dist/collection/components/header/header.js.map +1 -0
- package/dist/collection/components/helpcenter-panel/helpcenter-panel.js +5 -4
- package/dist/collection/components/helpcenter-panel/helpcenter-panel.js.map +1 -0
- package/dist/collection/components/highlight-box/highlight-box.js +6 -5
- package/dist/collection/components/highlight-box/highlight-box.js.map +1 -0
- package/dist/collection/components/icon/icon.js +2 -1
- package/dist/collection/components/icon/icon.js.map +1 -0
- package/dist/collection/components/image-overlay/image-overlay.js +1 -0
- package/dist/collection/components/image-overlay/image-overlay.js.map +1 -0
- package/dist/collection/components/info/info.js +4 -3
- package/dist/collection/components/info/info.js.map +1 -0
- package/dist/collection/components/info-button/info-button.interfaces.js +1 -0
- package/dist/collection/components/info-button/info-button.interfaces.js.map +1 -0
- package/dist/collection/components/info-button/info-button.js +9 -5
- package/dist/collection/components/info-button/info-button.js.map +1 -0
- package/dist/collection/components/label/label.js +19 -29
- package/dist/collection/components/label/label.js.map +1 -0
- package/dist/collection/components/list-button/list-button.css +1 -1
- package/dist/collection/components/list-button/list-button.interfaces.js +1 -0
- package/dist/collection/components/list-button/list-button.interfaces.js.map +1 -0
- package/dist/collection/components/list-button/list-button.js +10 -9
- package/dist/collection/components/list-button/list-button.js.map +1 -0
- package/dist/collection/components/map-base-layers/map-base-layers.interfaces.js +1 -0
- package/dist/collection/components/map-base-layers/map-base-layers.interfaces.js.map +1 -0
- package/dist/collection/components/map-base-layers/map-base-layers.js +4 -3
- package/dist/collection/components/map-base-layers/map-base-layers.js.map +1 -0
- package/dist/collection/components/map-controls/map-controls.interfaces.js +2 -1
- package/dist/collection/components/map-controls/map-controls.interfaces.js.map +1 -0
- package/dist/collection/components/map-controls/map-controls.js +22 -8
- package/dist/collection/components/map-controls/map-controls.js.map +1 -0
- package/dist/collection/components/map-overlays/map-overlays.interfaces.js +1 -0
- package/dist/collection/components/map-overlays/map-overlays.interfaces.js.map +1 -0
- package/dist/collection/components/map-overlays/map-overlays.js +4 -3
- package/dist/collection/components/map-overlays/map-overlays.js.map +1 -0
- package/dist/collection/components/modal/modal-ref.js +1 -0
- package/dist/collection/components/modal/modal-ref.js.map +1 -0
- package/dist/collection/components/modal/modal.controller.js +1 -0
- package/dist/collection/components/modal/modal.controller.js.map +1 -0
- package/dist/collection/components/modal/modal.css +4 -4
- package/dist/collection/components/modal/modal.interfaces.js +1 -0
- package/dist/collection/components/modal/modal.interfaces.js.map +1 -0
- package/dist/collection/components/modal/modal.js +10 -13
- package/dist/collection/components/modal/modal.js.map +1 -0
- package/dist/collection/components/ozon-content/get-node-name.function.js +1 -0
- package/dist/collection/components/ozon-content/get-node-name.function.js.map +1 -0
- package/dist/collection/components/ozon-content/nodes/al.node.js +3 -2
- package/dist/collection/components/ozon-content/nodes/al.node.js.map +1 -0
- package/dist/collection/components/ozon-content/nodes/bron.node.js +1 -0
- package/dist/collection/components/ozon-content/nodes/bron.node.js.map +1 -0
- package/dist/collection/components/ozon-content/nodes/document.node.js +1 -0
- package/dist/collection/components/ozon-content/nodes/document.node.js.map +1 -0
- package/dist/collection/components/ozon-content/nodes/ext-ref.node.js +1 -0
- package/dist/collection/components/ozon-content/nodes/ext-ref.node.js.map +1 -0
- package/dist/collection/components/ozon-content/nodes/fallback.node.js +1 -0
- package/dist/collection/components/ozon-content/nodes/fallback.node.js.map +1 -0
- package/dist/collection/components/ozon-content/nodes/figuur.node.js +1 -0
- package/dist/collection/components/ozon-content/nodes/figuur.node.js.map +1 -0
- package/dist/collection/components/ozon-content/nodes/inhoud.node.js +1 -0
- package/dist/collection/components/ozon-content/nodes/inhoud.node.js.map +1 -0
- package/dist/collection/components/ozon-content/nodes/inline-tekst-afbeelding.node.js +1 -0
- package/dist/collection/components/ozon-content/nodes/inline-tekst-afbeelding.node.js.map +1 -0
- package/dist/collection/components/ozon-content/nodes/inline.nodes.js +1 -0
- package/dist/collection/components/ozon-content/nodes/inline.nodes.js.map +1 -0
- package/dist/collection/components/ozon-content/nodes/int-io-ref.node.js +1 -0
- package/dist/collection/components/ozon-content/nodes/int-io-ref.node.js.map +1 -0
- package/dist/collection/components/ozon-content/nodes/int-ref.node.js +1 -0
- package/dist/collection/components/ozon-content/nodes/int-ref.node.js.map +1 -0
- package/dist/collection/components/ozon-content/nodes/lijst.node.js +1 -0
- package/dist/collection/components/ozon-content/nodes/lijst.node.js.map +1 -0
- package/dist/collection/components/ozon-content/nodes/nieuwe-tekst.node.js +1 -0
- package/dist/collection/components/ozon-content/nodes/nieuwe-tekst.node.js.map +1 -0
- package/dist/collection/components/ozon-content/nodes/noot.node.js +1 -0
- package/dist/collection/components/ozon-content/nodes/noot.node.js.map +1 -0
- package/dist/collection/components/ozon-content/nodes/opschrift.node.js +1 -0
- package/dist/collection/components/ozon-content/nodes/opschrift.node.js.map +1 -0
- package/dist/collection/components/ozon-content/nodes/table.node/colspec/colspec-mapper.js +1 -0
- package/dist/collection/components/ozon-content/nodes/table.node/colspec/colspec-mapper.js.map +1 -0
- package/dist/collection/components/ozon-content/nodes/table.node/colspec/colspec.interface.js +1 -0
- package/dist/collection/components/ozon-content/nodes/table.node/colspec/colspec.interface.js.map +1 -0
- package/dist/collection/components/ozon-content/nodes/table.node/index.js +1 -0
- package/dist/collection/components/ozon-content/nodes/table.node/index.js.map +1 -0
- package/dist/collection/components/ozon-content/nodes/table.node/table-cell.js +1 -0
- package/dist/collection/components/ozon-content/nodes/table.node/table-cell.js.map +1 -0
- package/dist/collection/components/ozon-content/nodes/table.node/table-colgroup.js +1 -0
- package/dist/collection/components/ozon-content/nodes/table.node/table-colgroup.js.map +1 -0
- package/dist/collection/components/ozon-content/nodes/table.node/table-rows.js +1 -0
- package/dist/collection/components/ozon-content/nodes/table.node/table-rows.js.map +1 -0
- package/dist/collection/components/ozon-content/nodes/table.node/table.node.js +1 -0
- package/dist/collection/components/ozon-content/nodes/table.node/table.node.js.map +1 -0
- package/dist/collection/components/ozon-content/nodes/text.node.js +1 -0
- package/dist/collection/components/ozon-content/nodes/text.node.js.map +1 -0
- package/dist/collection/components/ozon-content/nodes/verwijderde-tekst.node.js +1 -0
- package/dist/collection/components/ozon-content/nodes/verwijderde-tekst.node.js.map +1 -0
- package/dist/collection/components/ozon-content/ozon-content-context.interface.js +1 -0
- package/dist/collection/components/ozon-content/ozon-content-context.interface.js.map +1 -0
- package/dist/collection/components/ozon-content/ozon-content-mapper.js +2 -3
- package/dist/collection/components/ozon-content/ozon-content-mapper.js.map +1 -0
- package/dist/collection/components/ozon-content/ozon-content-node-context.interface.js +1 -0
- package/dist/collection/components/ozon-content/ozon-content-node-context.interface.js.map +1 -0
- package/dist/collection/components/ozon-content/ozon-content-node-state.interface.js +1 -0
- package/dist/collection/components/ozon-content/ozon-content-node-state.interface.js.map +1 -0
- package/dist/collection/components/ozon-content/ozon-content-node.interface.js +1 -0
- package/dist/collection/components/ozon-content/ozon-content-node.interface.js.map +1 -0
- package/dist/collection/components/ozon-content/ozon-content.interfaces.js +1 -0
- package/dist/collection/components/ozon-content/ozon-content.interfaces.js.map +1 -0
- package/dist/collection/components/ozon-content/ozon-content.js +5 -2
- package/dist/collection/components/ozon-content/ozon-content.js.map +1 -0
- package/dist/collection/components/pagination/pagination.interfaces.js +1 -0
- package/dist/collection/components/pagination/pagination.interfaces.js.map +1 -0
- package/dist/collection/components/pagination/pagination.js +1 -0
- package/dist/collection/components/pagination/pagination.js.map +1 -0
- package/dist/collection/components/progress-bar/progress-bar.js +4 -3
- package/dist/collection/components/progress-bar/progress-bar.js.map +1 -0
- package/dist/collection/components/progress-indicator/progress-indicator.js +10 -10
- package/dist/collection/components/progress-indicator/progress-indicator.js.map +1 -0
- package/dist/collection/components/responsive-element/responsive-element.interfaces.js +1 -0
- package/dist/collection/components/responsive-element/responsive-element.interfaces.js.map +1 -0
- package/dist/collection/components/responsive-element/responsive-element.js +6 -2
- package/dist/collection/components/responsive-element/responsive-element.js.map +1 -0
- package/dist/collection/components/scrollable/scrollable.interfaces.js +1 -0
- package/dist/collection/components/scrollable/scrollable.interfaces.js.map +1 -0
- package/dist/collection/components/scrollable/scrollable.js +8 -4
- package/dist/collection/components/scrollable/scrollable.js.map +1 -0
- package/dist/collection/components/selectable/selectable.css +1 -1
- package/dist/collection/components/selectable/selectable.interfaces.js +1 -0
- package/dist/collection/components/selectable/selectable.interfaces.js.map +1 -0
- package/dist/collection/components/selectable/selectable.js +29 -16
- package/dist/collection/components/selectable/selectable.js.map +1 -0
- package/dist/collection/components/slide-toggle/slide-toggle.interfaces.js +1 -0
- package/dist/collection/components/slide-toggle/slide-toggle.interfaces.js.map +1 -0
- package/dist/collection/components/slide-toggle/slide-toggle.js +7 -6
- package/dist/collection/components/slide-toggle/slide-toggle.js.map +1 -0
- package/dist/collection/components/table/table.css +4 -4
- package/dist/collection/components/table/table.js +2 -1
- package/dist/collection/components/table/table.js.map +1 -0
- package/dist/collection/components/toggletip/toggletip.js +5 -4
- package/dist/collection/components/toggletip/toggletip.js.map +1 -0
- package/dist/collection/components/tooltip/tooltip.js +2 -10
- package/dist/collection/components/tooltip/tooltip.js.map +1 -0
- package/dist/collection/components/tree-view/tree-item.js +2 -1
- package/dist/collection/components/tree-view/tree-item.js.map +1 -0
- package/dist/collection/components/tree-view/tree-view.interfaces.js +1 -0
- package/dist/collection/components/tree-view/tree-view.interfaces.js.map +1 -0
- package/dist/collection/components/tree-view/tree-view.js +3 -1
- package/dist/collection/components/tree-view/tree-view.js.map +1 -0
- package/dist/collection/components/viewer-grid/viewer-grid-filterpanel-buttons.js +1 -0
- package/dist/collection/components/viewer-grid/viewer-grid-filterpanel-buttons.js.map +1 -0
- package/dist/collection/components/viewer-grid/viewer-grid.interfaces.js +1 -0
- package/dist/collection/components/viewer-grid/viewer-grid.interfaces.js.map +1 -0
- package/dist/collection/components/viewer-grid/viewer-grid.js +7 -6
- package/dist/collection/components/viewer-grid/viewer-grid.js.map +1 -0
- package/dist/collection/index.js +2 -22
- package/dist/collection/index.js.map +1 -0
- package/dist/collection/services/annotation.service.js +1 -0
- package/dist/collection/services/annotation.service.js.map +1 -0
- package/dist/collection/utils/create-identifier.js +1 -0
- package/dist/collection/utils/create-identifier.js.map +1 -0
- package/dist/collection/utils/has-overflow.js +1 -0
- package/dist/collection/utils/has-overflow.js.map +1 -0
- package/dist/collection/utils/is-interactive-element.js +1 -0
- package/dist/collection/utils/is-interactive-element.js.map +1 -0
- package/dist/collection/utils/is-modified-event.js +1 -0
- package/dist/collection/utils/is-modified-event.js.map +1 -0
- package/dist/components/annotation.service.js +2 -0
- package/dist/components/annotation.service.js.map +1 -0
- package/dist/components/clsx.m.js +2 -0
- package/dist/components/clsx.m.js.map +1 -0
- package/dist/components/create-identifier.js +2 -0
- package/dist/components/create-identifier.js.map +1 -0
- package/dist/components/custom-elements.d.ts +2 -0
- package/dist/components/dropdown-menu.js +6 -4
- package/dist/components/dropdown-menu.js.map +1 -0
- package/dist/components/dso-accordion-section.js +20 -15
- package/dist/components/dso-accordion-section.js.map +1 -0
- package/dist/components/dso-accordion.js +35 -23
- package/dist/components/dso-accordion.js.map +1 -0
- package/dist/components/dso-action-list-item.js +3 -1
- package/dist/components/dso-action-list-item.js.map +1 -0
- package/dist/components/dso-action-list.js +3 -1
- package/dist/components/dso-action-list.js.map +1 -0
- package/dist/components/dso-alert.js +3 -1
- package/dist/components/dso-alert.js.map +1 -0
- package/dist/components/dso-annotation-button.js +4 -2
- package/dist/components/dso-annotation-button.js.map +1 -0
- package/dist/components/dso-annotation-output.js +9 -4
- package/dist/components/dso-annotation-output.js.map +1 -0
- package/dist/components/dso-attachments-counter.js +3 -1
- package/dist/components/dso-attachments-counter.js.map +1 -0
- package/dist/components/dso-autosuggest.js +7 -2
- package/dist/components/dso-autosuggest.js.map +1 -0
- package/dist/components/dso-badge.js +3 -1
- package/dist/components/dso-badge.js.map +1 -0
- package/dist/components/dso-banner.js +3 -1
- package/dist/components/dso-banner.js.map +1 -0
- package/dist/components/dso-card-container.js +3 -1
- package/dist/components/dso-card-container.js.map +1 -0
- package/dist/components/dso-card.js +3 -1
- package/dist/components/dso-card.js.map +1 -0
- package/dist/components/dso-date-picker.js +6 -2
- package/dist/components/dso-date-picker.js.map +1 -0
- package/dist/components/dso-dropdown-menu.js +2 -0
- package/dist/components/dso-dropdown-menu.js.map +1 -0
- package/dist/components/dso-expandable-heading.js +6 -2
- package/dist/components/dso-expandable-heading.js.map +1 -0
- package/dist/components/dso-expandable.js +2 -0
- package/dist/components/dso-expandable.js.map +1 -0
- package/dist/components/dso-header.js +9 -2
- package/dist/components/dso-header.js.map +1 -0
- package/dist/components/dso-helpcenter-panel.js +3 -1
- package/dist/components/dso-helpcenter-panel.js.map +1 -0
- package/dist/components/dso-highlight-box.js +3 -1
- package/dist/components/dso-highlight-box.js.map +1 -0
- package/dist/components/dso-icon.js +2 -0
- package/dist/components/dso-icon.js.map +1 -0
- package/dist/components/dso-image-overlay.js +3 -1
- package/dist/components/dso-image-overlay.js.map +1 -0
- package/dist/components/dso-info-button.js +2 -0
- package/dist/components/dso-info-button.js.map +1 -0
- package/dist/components/dso-info.js +2 -0
- package/dist/components/dso-info.js.map +1 -0
- package/dist/components/dso-label.js +12 -9
- package/dist/components/dso-label.js.map +1 -0
- package/dist/components/dso-list-button.js +4 -2
- package/dist/components/dso-list-button.js.map +1 -0
- package/dist/components/dso-map-base-layers.js +3 -1
- package/dist/components/dso-map-base-layers.js.map +1 -0
- package/dist/components/dso-map-controls.js +12 -4
- package/dist/components/dso-map-controls.js.map +1 -0
- package/dist/components/dso-map-overlays.js +3 -1
- package/dist/components/dso-map-overlays.js.map +1 -0
- package/dist/components/dso-modal.js +5 -2
- package/dist/components/dso-modal.js.map +1 -0
- package/dist/components/dso-ozon-content.js +9 -7
- package/dist/components/dso-ozon-content.js.map +1 -0
- package/dist/components/dso-pagination.js +3 -1
- package/dist/components/dso-pagination.js.map +1 -0
- package/dist/components/dso-progress-bar.js +3 -1
- package/dist/components/dso-progress-bar.js.map +1 -0
- package/dist/components/dso-progress-indicator.js +2 -0
- package/dist/components/dso-progress-indicator.js.map +1 -0
- package/dist/components/dso-responsive-element.js +2 -0
- package/dist/components/dso-responsive-element.js.map +1 -0
- package/dist/components/dso-scrollable.js +2 -0
- package/dist/components/dso-scrollable.js.map +1 -0
- package/dist/components/dso-selectable.js +2 -0
- package/dist/components/dso-selectable.js.map +1 -0
- package/dist/components/dso-slide-toggle.js +3 -1
- package/dist/components/dso-slide-toggle.js.map +1 -0
- package/dist/components/dso-table.js +4 -2
- package/dist/components/dso-table.js.map +1 -0
- package/dist/components/dso-toggletip.js +3 -1
- package/dist/components/dso-toggletip.js.map +1 -0
- package/dist/components/dso-tooltip.js +2 -0
- package/dist/components/dso-tooltip.js.map +1 -0
- package/dist/components/dso-tree-view.js +6 -3
- package/dist/components/dso-tree-view.js.map +1 -0
- package/dist/components/dso-viewer-grid.js +3 -1
- package/dist/components/dso-viewer-grid.js.map +1 -0
- package/dist/components/expandable.js +15 -8
- package/dist/components/expandable.js.map +1 -0
- package/dist/components/focus-trap.esm.js +2 -0
- package/dist/components/focus-trap.esm.js.map +1 -0
- package/dist/components/has-overflow.js +2 -0
- package/dist/components/has-overflow.js.map +1 -0
- package/dist/components/icon.js +3 -1
- package/dist/components/icon.js.map +1 -0
- package/dist/components/index.d.ts +52 -0
- package/dist/components/index.esm.js +2 -0
- package/dist/components/index.esm.js.map +1 -0
- package/dist/components/index.js +5 -3
- package/dist/components/index.js.map +1 -0
- package/dist/components/index2.js +2 -0
- package/dist/components/index2.js.map +1 -0
- package/dist/components/index3.js +2 -0
- package/dist/components/index3.js.map +1 -0
- package/dist/components/info-button.js +6 -1
- package/dist/components/info-button.js.map +1 -0
- package/dist/components/info.js +3 -1
- package/dist/components/info.js.map +1 -0
- package/dist/components/is-modified-event.js +2 -0
- package/dist/components/is-modified-event.js.map +1 -0
- package/dist/components/package.json +9 -0
- package/dist/components/progress-indicator.js +5 -5
- package/dist/components/progress-indicator.js.map +1 -0
- package/dist/components/responsive-element.js +6 -1
- package/dist/components/responsive-element.js.map +1 -0
- package/dist/components/scrollable.js +5 -3
- package/dist/components/scrollable.js.map +1 -0
- package/dist/components/selectable.js +9 -1
- package/dist/components/selectable.js.map +1 -0
- package/dist/components/tooltip.js +5 -3
- package/dist/components/tooltip.js.map +1 -0
- package/dist/components/v4.js +2 -0
- package/dist/components/v4.js.map +1 -0
- package/dist/dso-toolkit/dso-toolkit.esm.js +2 -1
- package/dist/dso-toolkit/dso-toolkit.esm.js.map +1 -0
- package/dist/dso-toolkit/index.esm.js +2 -1
- package/dist/dso-toolkit/index.esm.js.map +1 -0
- package/dist/dso-toolkit/p-01d41a89.entry.js +2 -0
- package/dist/dso-toolkit/p-01d41a89.entry.js.map +1 -0
- package/dist/dso-toolkit/p-0a07d968.entry.js +2 -0
- package/dist/dso-toolkit/p-0a07d968.entry.js.map +1 -0
- package/dist/dso-toolkit/p-106b3e01.entry.js +2 -0
- package/dist/dso-toolkit/p-106b3e01.entry.js.map +1 -0
- package/dist/dso-toolkit/p-13905ac9.entry.js +2 -0
- package/dist/dso-toolkit/p-13905ac9.entry.js.map +1 -0
- package/dist/dso-toolkit/p-161952e8.entry.js +2 -0
- package/dist/dso-toolkit/p-161952e8.entry.js.map +1 -0
- package/dist/dso-toolkit/p-180255f9.entry.js +2 -0
- package/dist/dso-toolkit/p-180255f9.entry.js.map +1 -0
- package/dist/dso-toolkit/p-1805f5b0.js +2 -1
- package/dist/dso-toolkit/p-1805f5b0.js.map +1 -0
- package/dist/dso-toolkit/p-18c1d44d.entry.js +2 -0
- package/dist/dso-toolkit/p-18c1d44d.entry.js.map +1 -0
- package/dist/dso-toolkit/p-19ab7f7b.entry.js +2 -0
- package/dist/dso-toolkit/p-19ab7f7b.entry.js.map +1 -0
- package/dist/dso-toolkit/p-25b9716f.entry.js +2 -0
- package/dist/dso-toolkit/p-25b9716f.entry.js.map +1 -0
- package/dist/dso-toolkit/p-2c69a645.entry.js +2 -0
- package/dist/dso-toolkit/p-2c69a645.entry.js.map +1 -0
- package/dist/dso-toolkit/p-33df9903.js +2 -1
- package/dist/dso-toolkit/p-33df9903.js.map +1 -0
- package/dist/dso-toolkit/p-348f8556.entry.js +2 -0
- package/dist/dso-toolkit/p-348f8556.entry.js.map +1 -0
- package/dist/dso-toolkit/p-452b1234.js +2 -1
- package/dist/dso-toolkit/p-452b1234.js.map +1 -0
- package/dist/dso-toolkit/p-4be5162c.entry.js +2 -0
- package/dist/dso-toolkit/p-4be5162c.entry.js.map +1 -0
- package/dist/dso-toolkit/p-4cbb4962.entry.js +2 -0
- package/dist/dso-toolkit/p-4cbb4962.entry.js.map +1 -0
- package/dist/dso-toolkit/p-53c8538c.js +3 -0
- package/dist/dso-toolkit/p-53c8538c.js.map +1 -0
- package/dist/dso-toolkit/p-54b37feb.entry.js +2 -0
- package/dist/dso-toolkit/p-54b37feb.entry.js.map +1 -0
- package/dist/dso-toolkit/p-54d863d2.entry.js +2 -0
- package/dist/dso-toolkit/p-54d863d2.entry.js.map +1 -0
- package/dist/dso-toolkit/p-556308dd.entry.js +2 -0
- package/dist/dso-toolkit/p-556308dd.entry.js.map +1 -0
- package/dist/dso-toolkit/p-5950644a.js +2 -1
- package/dist/dso-toolkit/p-5950644a.js.map +1 -0
- package/dist/dso-toolkit/p-59aebe2c.entry.js +2 -0
- package/dist/dso-toolkit/p-59aebe2c.entry.js.map +1 -0
- package/dist/dso-toolkit/p-5d7f4ff2.js +2 -1
- package/dist/dso-toolkit/p-5d7f4ff2.js.map +1 -0
- package/dist/dso-toolkit/p-5dfadeea.entry.js +2 -0
- package/dist/dso-toolkit/p-5dfadeea.entry.js.map +1 -0
- package/dist/dso-toolkit/p-5e18dd5d.js +2 -0
- package/dist/dso-toolkit/p-5e18dd5d.js.map +1 -0
- package/dist/dso-toolkit/p-6016d874.entry.js +2 -0
- package/dist/dso-toolkit/p-6016d874.entry.js.map +1 -0
- package/dist/dso-toolkit/p-61be182f.entry.js +2 -0
- package/dist/dso-toolkit/p-61be182f.entry.js.map +1 -0
- package/dist/dso-toolkit/p-679710f8.entry.js +2 -0
- package/dist/dso-toolkit/p-679710f8.entry.js.map +1 -0
- package/dist/dso-toolkit/p-67d402c8.entry.js +2 -0
- package/dist/dso-toolkit/p-67d402c8.entry.js.map +1 -0
- package/dist/dso-toolkit/p-6a1980b4.js +2 -1
- package/dist/dso-toolkit/p-6a1980b4.js.map +1 -0
- package/dist/dso-toolkit/p-6bec28f1.entry.js +2 -0
- package/dist/dso-toolkit/p-6bec28f1.entry.js.map +1 -0
- package/dist/dso-toolkit/p-6bf87d2c.entry.js +2 -0
- package/dist/dso-toolkit/p-6bf87d2c.entry.js.map +1 -0
- package/dist/dso-toolkit/p-6c543986.js +2 -1
- package/dist/dso-toolkit/p-6c543986.js.map +1 -0
- package/dist/dso-toolkit/p-6e38820b.js +2 -0
- package/dist/dso-toolkit/p-6e38820b.js.map +1 -0
- package/dist/dso-toolkit/p-71aec27c.entry.js +2 -0
- package/dist/dso-toolkit/p-71aec27c.entry.js.map +1 -0
- package/dist/dso-toolkit/p-8098de75.entry.js +2 -0
- package/dist/dso-toolkit/p-8098de75.entry.js.map +1 -0
- package/dist/dso-toolkit/p-81894dbc.entry.js +2 -0
- package/dist/dso-toolkit/p-81894dbc.entry.js.map +1 -0
- package/dist/dso-toolkit/p-87189a75.entry.js +2 -0
- package/dist/dso-toolkit/p-87189a75.entry.js.map +1 -0
- package/dist/dso-toolkit/p-8bc41dd6.entry.js +2 -0
- package/dist/dso-toolkit/p-8bc41dd6.entry.js.map +1 -0
- package/dist/dso-toolkit/p-90fda176.entry.js +2 -0
- package/dist/dso-toolkit/p-90fda176.entry.js.map +1 -0
- package/dist/dso-toolkit/p-91963e3d.js +3 -2
- package/dist/dso-toolkit/p-91963e3d.js.map +1 -0
- package/dist/dso-toolkit/p-95687fb7.entry.js +2 -0
- package/dist/dso-toolkit/p-95687fb7.entry.js.map +1 -0
- package/dist/dso-toolkit/p-9d5c6ab6.entry.js +2 -0
- package/dist/dso-toolkit/p-9d5c6ab6.entry.js.map +1 -0
- package/dist/dso-toolkit/p-a2c800de.entry.js +2 -0
- package/dist/dso-toolkit/p-a2c800de.entry.js.map +1 -0
- package/dist/dso-toolkit/p-b0d25e25.entry.js +2 -0
- package/dist/dso-toolkit/p-b0d25e25.entry.js.map +1 -0
- package/dist/dso-toolkit/p-ba22a05a.entry.js +2 -0
- package/dist/dso-toolkit/p-ba22a05a.entry.js.map +1 -0
- package/dist/dso-toolkit/p-c4876680.entry.js +2 -0
- package/dist/dso-toolkit/p-c4876680.entry.js.map +1 -0
- package/dist/dso-toolkit/p-cacefb87.entry.js +2 -0
- package/dist/dso-toolkit/p-cacefb87.entry.js.map +1 -0
- package/dist/dso-toolkit/p-cb6745a3.entry.js +2 -0
- package/dist/dso-toolkit/p-cb6745a3.entry.js.map +1 -0
- package/dist/dso-toolkit/p-d138fc15.entry.js +2 -0
- package/dist/dso-toolkit/p-d138fc15.entry.js.map +1 -0
- package/dist/dso-toolkit/p-dd135c8e.entry.js +2 -0
- package/dist/dso-toolkit/p-dd135c8e.entry.js.map +1 -0
- package/dist/dso-toolkit/p-eeb73369.entry.js +2 -0
- package/dist/dso-toolkit/p-eeb73369.entry.js.map +1 -0
- package/dist/dso-toolkit/p-fe53cdab.entry.js +2 -0
- package/dist/dso-toolkit/p-fe53cdab.entry.js.map +1 -0
- package/dist/esm/{annotation.service-d0add3fc.js → annotation.service-06eb23b6.js} +3 -1
- package/dist/esm/annotation.service-06eb23b6.js.map +1 -0
- package/dist/esm/clsx.m-25174a58.js +2 -0
- package/dist/esm/clsx.m-25174a58.js.map +1 -0
- package/dist/esm/create-identifier-51ee50c4.js +2 -0
- package/dist/esm/create-identifier-51ee50c4.js.map +1 -0
- package/dist/esm/dso-accordion-section.entry.js +19 -11
- package/dist/esm/dso-accordion-section.entry.js.map +1 -0
- package/dist/esm/dso-accordion.entry.js +33 -21
- package/dist/esm/dso-accordion.entry.js.map +1 -0
- package/dist/esm/dso-action-list-item.entry.js +3 -1
- package/dist/esm/dso-action-list-item.entry.js.map +1 -0
- package/dist/esm/dso-action-list.entry.js +3 -1
- package/dist/esm/dso-action-list.entry.js.map +1 -0
- package/dist/esm/dso-alert.entry.js +3 -1
- package/dist/esm/dso-alert.entry.js.map +1 -0
- package/dist/esm/dso-annotation-button.entry.js +6 -4
- package/dist/esm/dso-annotation-button.entry.js.map +1 -0
- package/dist/esm/dso-annotation-output.entry.js +10 -5
- package/dist/esm/dso-annotation-output.entry.js.map +1 -0
- package/dist/esm/dso-attachments-counter.entry.js +3 -1
- package/dist/esm/dso-attachments-counter.entry.js.map +1 -0
- package/dist/esm/dso-autosuggest.entry.js +7 -2
- package/dist/esm/dso-autosuggest.entry.js.map +1 -0
- package/dist/esm/dso-badge.entry.js +3 -1
- package/dist/esm/dso-badge.entry.js.map +1 -0
- package/dist/esm/dso-banner.entry.js +3 -1
- package/dist/esm/dso-banner.entry.js.map +1 -0
- package/dist/esm/dso-card-container.entry.js +3 -1
- package/dist/esm/dso-card-container.entry.js.map +1 -0
- package/dist/esm/dso-card.entry.js +3 -1
- package/dist/esm/dso-card.entry.js.map +1 -0
- package/dist/esm/dso-date-picker.entry.js +5 -2
- package/dist/esm/dso-date-picker.entry.js.map +1 -0
- package/dist/esm/dso-dropdown-menu.entry.js +6 -4
- package/dist/esm/dso-dropdown-menu.entry.js.map +1 -0
- package/dist/esm/dso-expandable-heading.entry.js +5 -2
- package/dist/esm/dso-expandable-heading.entry.js.map +1 -0
- package/dist/esm/dso-expandable.entry.js +13 -6
- package/dist/esm/dso-expandable.entry.js.map +1 -0
- package/dist/esm/dso-header.entry.js +8 -2
- package/dist/esm/dso-header.entry.js.map +1 -0
- package/dist/esm/dso-helpcenter-panel.entry.js +3 -1
- package/dist/esm/dso-helpcenter-panel.entry.js.map +1 -0
- package/dist/esm/dso-highlight-box.entry.js +3 -1
- package/dist/esm/dso-highlight-box.entry.js.map +1 -0
- package/dist/esm/dso-icon.entry.js +3 -1
- package/dist/esm/dso-icon.entry.js.map +1 -0
- package/dist/esm/dso-image-overlay.entry.js +3 -1
- package/dist/esm/dso-image-overlay.entry.js.map +1 -0
- package/dist/esm/dso-info-button.entry.js +6 -1
- package/dist/esm/dso-info-button.entry.js.map +1 -0
- package/dist/esm/dso-info_2.entry.js +9 -1
- package/dist/esm/dso-info_2.entry.js.map +1 -0
- package/dist/esm/dso-label.entry.js +11 -7
- package/dist/esm/dso-label.entry.js.map +1 -0
- package/dist/esm/dso-list-button.entry.js +4 -2
- package/dist/esm/dso-list-button.entry.js.map +1 -0
- package/dist/esm/dso-map-base-layers.entry.js +3 -1
- package/dist/esm/dso-map-base-layers.entry.js.map +1 -0
- package/dist/esm/dso-map-controls.entry.js +11 -2
- package/dist/esm/dso-map-controls.entry.js.map +1 -0
- package/dist/esm/dso-map-overlays.entry.js +3 -1
- package/dist/esm/dso-map-overlays.entry.js.map +1 -0
- package/dist/esm/dso-modal.entry.js +5 -2
- package/dist/esm/dso-modal.entry.js.map +1 -0
- package/dist/esm/dso-ozon-content.entry.js +9 -7
- package/dist/esm/dso-ozon-content.entry.js.map +1 -0
- package/dist/esm/dso-pagination.entry.js +3 -1
- package/dist/esm/dso-pagination.entry.js.map +1 -0
- package/dist/esm/dso-progress-bar.entry.js +3 -1
- package/dist/esm/dso-progress-bar.entry.js.map +1 -0
- package/dist/esm/dso-progress-indicator.entry.js +5 -5
- package/dist/esm/dso-progress-indicator.entry.js.map +1 -0
- package/dist/esm/dso-responsive-element.entry.js +6 -1
- package/dist/esm/dso-responsive-element.entry.js.map +1 -0
- package/dist/esm/dso-scrollable.entry.js +5 -3
- package/dist/esm/dso-scrollable.entry.js.map +1 -0
- package/dist/esm/dso-slide-toggle.entry.js +3 -1
- package/dist/esm/dso-slide-toggle.entry.js.map +1 -0
- package/dist/esm/dso-table.entry.js +4 -2
- package/dist/esm/dso-table.entry.js.map +1 -0
- package/dist/esm/dso-toggletip.entry.js +3 -1
- package/dist/esm/dso-toggletip.entry.js.map +1 -0
- package/dist/esm/dso-toolkit.js +9 -3
- package/dist/esm/dso-toolkit.js.map +1 -0
- package/dist/esm/dso-tooltip.entry.js +4 -2
- package/dist/esm/dso-tooltip.entry.js.map +1 -0
- package/dist/esm/dso-tree-view.entry.js +6 -3
- package/dist/esm/dso-tree-view.entry.js.map +1 -0
- package/dist/esm/dso-viewer-grid.entry.js +3 -1
- package/dist/esm/dso-viewer-grid.entry.js.map +1 -0
- package/dist/esm/focus-trap.esm-2a49a38f.js +2 -0
- package/dist/esm/focus-trap.esm-2a49a38f.js.map +1 -0
- package/dist/esm/has-overflow-fdc85d8f.js +2 -0
- package/dist/esm/has-overflow-fdc85d8f.js.map +1 -0
- package/dist/esm/{index-d6ffb688.js → index-05308e88.js} +3 -1
- package/dist/esm/index-05308e88.js.map +1 -0
- package/dist/esm/{index-ac5a22a3.js → index-8de88e7c.js} +205 -36
- package/dist/esm/index-8de88e7c.js.map +1 -0
- package/dist/esm/index-f2bf58ce.js +2 -0
- package/dist/esm/index-f2bf58ce.js.map +1 -0
- package/dist/esm/index.esm-3d6c8190.js +2 -0
- package/dist/esm/index.esm-3d6c8190.js.map +1 -0
- package/dist/esm/index.js +2 -3
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/is-modified-event-34370220.js +2 -0
- package/dist/esm/is-modified-event-34370220.js.map +1 -0
- package/dist/esm/loader.js +6 -3
- package/dist/esm/loader.js.map +1 -0
- package/dist/esm/polyfills/css-shim.js +1 -1
- package/dist/esm/v4-d398bde5.js +2 -0
- package/dist/esm/v4-d398bde5.js.map +1 -0
- package/dist/types/components/accordion/accordion.d.ts +27 -10
- package/dist/types/components/accordion/accordion.interfaces.d.ts +1 -10
- package/dist/types/components/accordion/components/accordion-section.d.ts +30 -6
- package/dist/types/components/accordion/components/accordion-section.interfaces.d.ts +2 -2
- package/dist/types/components/action-list/action-list.d.ts +3 -0
- package/dist/types/components/action-list/components/action-list-item.d.ts +9 -0
- package/dist/types/components/annotation-button/annotation-button.d.ts +4 -1
- package/dist/types/components/annotation-output/annotation-output.d.ts +14 -4
- package/dist/types/components/attachments-counter/attachments-counter.d.ts +3 -0
- package/dist/types/components/autosuggest/autosuggest.d.ts +24 -32
- package/dist/types/components/badge/badge.d.ts +3 -0
- package/dist/types/components/banner/banner.d.ts +3 -0
- package/dist/types/components/card/card.d.ts +13 -1
- package/dist/types/components/card/card.interfaces.d.ts +1 -1
- package/dist/types/components/card-container/card-container.d.ts +3 -0
- package/dist/types/components/card-container/card-container.interfaces.d.ts +1 -1
- package/dist/types/components/date-picker/date-localization.d.ts +3 -3
- package/dist/types/components/date-picker/date-picker-day.d.ts +1 -1
- package/dist/types/components/date-picker/date-picker-month.d.ts +1 -1
- package/dist/types/components/date-picker/date-picker.d.ts +5 -1
- package/dist/types/components/date-picker/date-picker.interfaces.d.ts +4 -4
- package/dist/types/components/dropdown-menu/dropdown-menu.d.ts +10 -8
- package/dist/types/components/expandable/expandable.d.ts +24 -9
- package/dist/types/components/expandable/expandable.functions.d.ts +1 -0
- package/dist/types/components/expandable-heading/expandable-heading.d.ts +23 -2
- package/dist/types/components/expandable-heading/expandable-heading.interfaces.d.ts +2 -2
- package/dist/types/components/header/header.d.ts +36 -14
- package/dist/types/components/header/header.interfaces.d.ts +2 -2
- package/dist/types/components/helpcenter-panel/helpcenter-panel.d.ts +10 -4
- package/dist/types/components/highlight-box/highlight-box.d.ts +15 -0
- package/dist/types/components/icon/icon.d.ts +3 -0
- package/dist/types/components/image-overlay/image-overlay.d.ts +8 -9
- package/dist/types/components/info/info.d.ts +9 -0
- package/dist/types/components/info-button/info-button.d.ts +15 -0
- package/dist/types/components/label/label.d.ts +24 -7
- package/dist/types/components/list-button/list-button.d.ts +29 -1
- package/dist/types/components/map-base-layers/map-base-layers.d.ts +12 -5
- package/dist/types/components/map-controls/map-controls.d.ts +22 -0
- package/dist/types/components/map-controls/map-controls.interfaces.d.ts +0 -1
- package/dist/types/components/map-overlays/map-overlays.d.ts +12 -6
- package/dist/types/components/modal/modal.d.ts +18 -6
- package/dist/types/components/modal/modal.interfaces.d.ts +2 -2
- package/dist/types/components/ozon-content/ozon-content.d.ts +5 -2
- package/dist/types/components/pagination/pagination.d.ts +2 -2
- package/dist/types/components/progress-bar/progress-bar.d.ts +9 -0
- package/dist/types/components/progress-indicator/progress-indicator.d.ts +12 -1
- package/dist/types/components/responsive-element/responsive-element.d.ts +8 -2
- package/dist/types/components/responsive-element/responsive-element.interfaces.d.ts +1 -1
- package/dist/types/components/scrollable/scrollable.d.ts +3 -3
- package/dist/types/components/scrollable/scrollable.interfaces.d.ts +1 -1
- package/dist/types/components/selectable/selectable.d.ts +51 -1
- package/dist/types/components/slide-toggle/slide-toggle.d.ts +18 -3
- package/dist/types/components/table/table.d.ts +9 -6
- package/dist/types/components/toggletip/toggletip.d.ts +19 -7
- package/dist/types/components/tooltip/tooltip.d.ts +3 -3
- package/dist/types/components/tree-view/tree-view.d.ts +1 -1
- package/dist/types/components/viewer-grid/viewer-grid.d.ts +31 -14
- package/dist/types/components/viewer-grid/viewer-grid.interfaces.d.ts +2 -2
- package/dist/types/components.d.ts +671 -33
- package/dist/types/index.d.ts +1 -23
- package/dist/types/stencil-public-runtime.d.ts +72 -15
- package/loader/index.d.ts +9 -0
- package/package.json +10 -10
- package/dist/cjs/expandable.interfaces-19b608b9.js +0 -7
- package/dist/cjs/map-controls.interfaces-5ceec716.js +0 -5
- package/dist/collection/components/expandable/expandable.interfaces.js +0 -3
- package/dist/collection/components/table/table.interfaces.js +0 -1
- package/dist/dso-toolkit/p-07952ece.entry.js +0 -1
- package/dist/dso-toolkit/p-0af9bfb1.entry.js +0 -1
- package/dist/dso-toolkit/p-0fce0861.entry.js +0 -1
- package/dist/dso-toolkit/p-1cb94d7d.entry.js +0 -1
- package/dist/dso-toolkit/p-281aa19e.entry.js +0 -1
- package/dist/dso-toolkit/p-296657d3.entry.js +0 -1
- package/dist/dso-toolkit/p-313d07f5.entry.js +0 -1
- package/dist/dso-toolkit/p-3238f7ee.entry.js +0 -1
- package/dist/dso-toolkit/p-3914ad70.entry.js +0 -1
- package/dist/dso-toolkit/p-398a8e0b.entry.js +0 -1
- package/dist/dso-toolkit/p-3b91c3e9.entry.js +0 -1
- package/dist/dso-toolkit/p-494fe8e5.entry.js +0 -1
- package/dist/dso-toolkit/p-4b8535b7.js +0 -1
- package/dist/dso-toolkit/p-5082d823.entry.js +0 -1
- package/dist/dso-toolkit/p-564a5d95.entry.js +0 -1
- package/dist/dso-toolkit/p-61ac8d40.entry.js +0 -1
- package/dist/dso-toolkit/p-65e8077e.entry.js +0 -1
- package/dist/dso-toolkit/p-69f37ab3.entry.js +0 -1
- package/dist/dso-toolkit/p-6a99d7f8.entry.js +0 -1
- package/dist/dso-toolkit/p-7912940d.entry.js +0 -1
- package/dist/dso-toolkit/p-82465cdc.entry.js +0 -1
- package/dist/dso-toolkit/p-85b18dbd.js +0 -1
- package/dist/dso-toolkit/p-89b97fce.js +0 -1
- package/dist/dso-toolkit/p-8a77030b.entry.js +0 -1
- package/dist/dso-toolkit/p-9361b19e.entry.js +0 -1
- package/dist/dso-toolkit/p-96f44d35.entry.js +0 -1
- package/dist/dso-toolkit/p-975c172a.entry.js +0 -1
- package/dist/dso-toolkit/p-98fd1658.js +0 -2
- package/dist/dso-toolkit/p-ae45e550.entry.js +0 -1
- package/dist/dso-toolkit/p-b049f492.entry.js +0 -1
- package/dist/dso-toolkit/p-b9777372.entry.js +0 -1
- package/dist/dso-toolkit/p-baef3721.entry.js +0 -1
- package/dist/dso-toolkit/p-bc975b99.entry.js +0 -1
- package/dist/dso-toolkit/p-bf750b97.js +0 -1
- package/dist/dso-toolkit/p-c1226b66.entry.js +0 -1
- package/dist/dso-toolkit/p-c2215704.entry.js +0 -1
- package/dist/dso-toolkit/p-ca4fee8d.entry.js +0 -1
- package/dist/dso-toolkit/p-d10ec2b3.entry.js +0 -1
- package/dist/dso-toolkit/p-d4772fb0.entry.js +0 -1
- package/dist/dso-toolkit/p-d6ea8670.entry.js +0 -1
- package/dist/dso-toolkit/p-e04d87e0.entry.js +0 -1
- package/dist/dso-toolkit/p-e8a6ccf5.entry.js +0 -1
- package/dist/dso-toolkit/p-e8c46f70.entry.js +0 -1
- package/dist/dso-toolkit/p-ee1acb32.entry.js +0 -1
- package/dist/dso-toolkit/p-efdf5c91.entry.js +0 -1
- package/dist/dso-toolkit/p-f3e38af3.entry.js +0 -1
- package/dist/dso-toolkit/p-f8a08ba1.entry.js +0 -1
- package/dist/esm/expandable.interfaces-9b1afbe8.js +0 -5
- package/dist/esm/map-controls.interfaces-2323e8ac.js +0 -3
- package/dist/types/components/expandable/expandable.interfaces.d.ts +0 -10
- package/dist/types/components/table/table.interfaces.d.ts +0 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["DaysOfWeek","createDate","year","month","day","dayInt","parseInt","monthInt","yearInt","isValid","Number","isInteger","Date","parseDutchDate","value","matches","split","length","printDutchDate","date","d","getDate","toString","padStart","m","getMonth","y","getFullYear","isEqual","a","b","addDays","days","setDate","startOfWeek","firstDayOfWeek","Monday","getDay","diff","endOfWeek","startOfMonth","endOfMonth","setMonth","setYear","setFullYear","inRange","min","max","clamp","time","getTime","getDaysInRange","start","end","current","push","getViewOfMonth","DatePickerDay","focusedDay","today","onDaySelect","onKeyboardNavigation","focusedDayRef","isToday","isFocused","notCurrentMonth","isOutsideRange","handleClick","e","h","class","tabIndex","onClick","onKeyDown","disabled","type","ref","el","chunk","array","chunkSize","result","i","slice","mapWithOffset","startingOffset","mapFn","map","_","adjustedIndex","item","Error","DatePickerMonth","selectedDate","focusedDate","labelledById","localization","onDateSelect","onMouseDown","onFocusIn","role","onFocusin","dayNames","dayName","scope","substr","week","undefined","buttonLabel","placeholder","selectedDateMessage","prevMonthLabel","nextMonthLabel","monthSelectLabel","yearSelectLabel","closeLabel","keyboardInstruction","calendarHeading","monthNames","monthNamesShort","monthRange","selectedYear","minDate","maxDate","minYear","minMonth","maxYear","maxMonth","filter","_month","index","range","from","to","datePickerCss","keyCode","TAB","ESC","SPACE","PAGE_UP","PAGE_DOWN","END","HOME","LEFT","UP","RIGHT","DOWN","DISALLOWED_CHARACTERS","TRANSITION_MS","cleanValue","input","regex","cursor","selectionStart","beforeCursor","afterCursor","filteredBeforeCursor","replace","filterAfterCursor","newValue","newCursor","selectionEnd","DsoDatePicker","this","monthSelectId","createIdentifier","yearSelectId","dialogLabelId","defaultLocalization","enableActiveFocus","activeFocus","disableActiveFocus","toggleOpen","preventDefault","open","hide","show","handleEscKey","event","handleBlur","stopPropagation","dsoBlur","emit","component","handleKeyUp","dsoKeyUp","originalEvent","handleKeyDown","dsoKeyDown","handleFocus","dsoFocus","handleTouchStart","touch","changedTouches","initialTouchX","pageX","initialTouchY","pageY","handleTouchMove","handleTouchEnd","distX","_a","distY","_b","threshold","isHorizontalSwipe","Math","abs","isDownwardsSwipe","addMonths","handleNextMonthClick","handlePreviousMonthClick","handleFirstFocusableKeydown","shiftKey","focusedDayNode","focus","handleKeyboardNavigation","firstFocusableElement","handled","addYears","handleDaySelect","_event","setValue","setFocusedDay","handleMonthSelect","target","HTMLSelectElement","handleYearSelect","handleInputChange","cleanedValue","prepareEvent","valueAsDate","required","error","clampValue","processFocusedDayNode","element","setTimeout","handleDocumentClick","path","composedPath","Node","contains","async","datePickerInput","hideTimeoutId","clearTimeout","visible","focusTimeoutId","monthSelectNode","moveFocusToButton","datePickerButton","months","years","previousValue","dsoDateChange","componentWillLoad","componentDidLoad","dsoAutofocus","setFocus","render","formattedDate","focusedMonth","focusedYear","prevMonthDisabled","nextMonthDisabled","Host","id","identifier","invalid","describedBy","onInput","onFocus","onBlur","onKeyUp","autoComplete","icon","direction","onTouchMove","onTouchStart","onTouchEnd","htmlFor","onChange","indexOf","key","selected"],"sources":["./src/components/date-picker/date-utils.ts","./src/components/date-picker/date-picker-day.tsx","./src/components/date-picker/date-picker-month.tsx","./src/components/date-picker/date-localization.ts","./src/components/date-picker/utils/month-range.ts","./src/components/date-picker/utils/range.ts","./src/components/date-picker/date-picker.scss?tag=dso-date-picker&encapsulation=scoped","./src/components/date-picker/date-picker.tsx"],"sourcesContent":["export enum DaysOfWeek {\r\n Sunday = 0,\r\n Monday = 1,\r\n Tuesday = 2,\r\n Wednesday = 3,\r\n Thursday = 4,\r\n Friday = 5,\r\n Saturday = 6,\r\n}\r\n\r\nexport function createDate(year: string, month: string, day: string): Date | undefined {\r\n const dayInt = parseInt(day, 10);\r\n const monthInt = parseInt(month, 10);\r\n const yearInt = parseInt(year, 10);\r\n\r\n const isValid =\r\n Number.isInteger(yearInt) && // all parts should be integers\r\n Number.isInteger(monthInt) &&\r\n Number.isInteger(dayInt) &&\r\n monthInt > 0 && // month must be 1-12\r\n monthInt <= 12 &&\r\n dayInt > 0 && // day must be 1-31\r\n dayInt <= 31 &&\r\n yearInt > 0;\r\n\r\n if (isValid) {\r\n return new Date(yearInt, monthInt - 1, dayInt);\r\n }\r\n}\r\n\r\n/**\r\n * @param value date string in Dutch format D-M-YYYY\r\n */\r\nexport function parseDutchDate(value: string | undefined): Date | undefined {\r\n if (!value) {\r\n return;\r\n }\r\n\r\n const matches = value.split(\"-\");\r\n\r\n if (\r\n matches.length === 3 &&\r\n typeof matches[0] === \"string\" &&\r\n typeof matches[1] === \"string\" &&\r\n typeof matches[2] === \"string\" &&\r\n matches[2].length === 4\r\n ) {\r\n return createDate(matches[2], matches[1], matches[0]);\r\n }\r\n}\r\n\r\n/**\r\n * print date in format DD-MM-YYYY\r\n * @param date\r\n */\r\nexport function printDutchDate(date: Date | undefined): string {\r\n if (!date) {\r\n return \"\";\r\n }\r\n\r\n const d = date.getDate().toString(10).padStart(2, \"0\");\r\n const m = (date.getMonth() + 1).toString(10).padStart(2, \"0\");\r\n const y = date.getFullYear().toString(10).padStart(2, \"0\");\r\n\r\n return `${d}-${m}-${y}`;\r\n}\r\n\r\n/**\r\n * Compare if two dates are equal in terms of day, month, and year\r\n */\r\nexport function isEqual(a: Date | undefined, b: Date | undefined): boolean {\r\n if (!a || !b) {\r\n return false;\r\n }\r\n\r\n return a.getFullYear() === b.getFullYear() && a.getMonth() === b.getMonth() && a.getDate() === b.getDate();\r\n}\r\n\r\nexport function addDays(date: Date, days: number): Date {\r\n const d = new Date(date);\r\n d.setDate(d.getDate() + days);\r\n return d;\r\n}\r\n\r\nexport function addMonths(date: Date, months: number): Date {\r\n const d = new Date(date);\r\n d.setMonth(date.getMonth() + months);\r\n return d;\r\n}\r\n\r\nexport function addYears(date: Date, years: number): Date {\r\n const d = new Date(date);\r\n d.setFullYear(date.getFullYear() + years);\r\n return d;\r\n}\r\n\r\nexport function startOfWeek(date: Date, firstDayOfWeek: DaysOfWeek = DaysOfWeek.Monday): Date {\r\n const d = new Date(date);\r\n const day = d.getDay();\r\n const diff = (day < firstDayOfWeek ? 7 : 0) + day - firstDayOfWeek;\r\n\r\n d.setDate(d.getDate() - diff);\r\n return d;\r\n}\r\n\r\nexport function endOfWeek(date: Date, firstDayOfWeek: DaysOfWeek = DaysOfWeek.Monday): Date {\r\n const d = new Date(date);\r\n const day = d.getDay();\r\n const diff = (day < firstDayOfWeek ? -7 : 0) + 6 - (day - firstDayOfWeek);\r\n\r\n d.setDate(d.getDate() + diff);\r\n return d;\r\n}\r\n\r\nexport function startOfMonth(date: Date): Date {\r\n return new Date(date.getFullYear(), date.getMonth(), 1);\r\n}\r\n\r\nexport function endOfMonth(date: Date): Date {\r\n return new Date(date.getFullYear(), date.getMonth() + 1, 0);\r\n}\r\n\r\nexport function setMonth(date: Date, month: number): Date {\r\n const d = new Date(date);\r\n d.setMonth(month);\r\n return d;\r\n}\r\n\r\nexport function setYear(date: Date, year: number): Date {\r\n const d = new Date(date);\r\n d.setFullYear(year);\r\n return d;\r\n}\r\n\r\n/**\r\n * Check if date is within a min and max\r\n */\r\nexport function inRange(date: Date, min?: Date, max?: Date): boolean {\r\n return clamp(date, min, max) === date;\r\n}\r\n\r\n/**\r\n * Ensures date is within range, returns min or max if out of bounds\r\n */\r\nexport function clamp(date: Date, min?: Date, max?: Date): Date {\r\n const time = date.getTime();\r\n\r\n if (min && min instanceof Date && time < min.getTime()) {\r\n return min;\r\n }\r\n\r\n if (max && max instanceof Date && time > max.getTime()) {\r\n return max;\r\n }\r\n\r\n return date;\r\n}\r\n\r\n/**\r\n * given start and end date, return an (inclusive) array of all dates in between\r\n * @param start\r\n * @param end\r\n */\r\nfunction getDaysInRange(start: Date, end: Date): Date[] {\r\n const days: Date[] = [];\r\n let current = start;\r\n\r\n while (!isEqual(current, end)) {\r\n days.push(current);\r\n current = addDays(current, 1);\r\n }\r\n\r\n days.push(current);\r\n\r\n return days;\r\n}\r\n\r\n/**\r\n * given a date, return an array of dates from a calendar perspective\r\n * @param date\r\n * @param firstDayOfWeek\r\n */\r\nexport function getViewOfMonth(date: Date, firstDayOfWeek: DaysOfWeek = DaysOfWeek.Monday): Date[] {\r\n const start = startOfWeek(startOfMonth(date), firstDayOfWeek);\r\n const end = endOfWeek(endOfMonth(date), firstDayOfWeek);\r\n\r\n return getDaysInRange(start, end);\r\n}\r\n","import { h, FunctionalComponent } from \"@stencil/core\";\r\nimport { isEqual, printDutchDate } from \"./date-utils\";\r\n\r\nexport type DatePickerDayProps = {\r\n focusedDay: Date;\r\n today: Date;\r\n day: Date;\r\n inRange: boolean;\r\n onDaySelect: (event: MouseEvent, day: Date) => void;\r\n onKeyboardNavigation: (event: KeyboardEvent) => void;\r\n focusedDayRef?: (element: HTMLButtonElement) => void;\r\n};\r\n\r\nexport const DatePickerDay: FunctionalComponent<DatePickerDayProps> = ({\r\n focusedDay,\r\n today,\r\n day,\r\n onDaySelect,\r\n onKeyboardNavigation,\r\n focusedDayRef,\r\n inRange,\r\n}) => {\r\n const isToday = isEqual(day, today);\r\n const isFocused = isEqual(day, focusedDay);\r\n const notCurrentMonth = day.getMonth() !== focusedDay.getMonth();\r\n const isOutsideRange = !inRange;\r\n\r\n function handleClick(e: MouseEvent) {\r\n onDaySelect(e, day);\r\n }\r\n\r\n return (\r\n <button\r\n class={{\r\n \"dso-date__day\": true,\r\n \"is-today\": isToday,\r\n }}\r\n tabIndex={isFocused ? 0 : -1}\r\n onClick={handleClick}\r\n onKeyDown={onKeyboardNavigation}\r\n disabled={isOutsideRange || notCurrentMonth}\r\n type=\"button\"\r\n ref={(el) => {\r\n if (isFocused && el && focusedDayRef) {\r\n focusedDayRef(el);\r\n }\r\n }}\r\n >\r\n <span aria-hidden=\"true\">{day.getDate()}</span>\r\n <span class=\"dso-date__vhidden\">{printDutchDate(day)}</span>\r\n </button>\r\n );\r\n};\r\n","import { h, FunctionalComponent } from \"@stencil/core\";\r\nimport { DsoLocalizedText } from \"./date-localization\";\r\nimport { DatePickerDay, DatePickerDayProps } from \"./date-picker-day\";\r\nimport { getViewOfMonth, inRange, DaysOfWeek, isEqual } from \"./date-utils\";\r\n\r\nfunction chunk<T>(array: T[], chunkSize: number): T[][] {\r\n const result = [];\r\n\r\n for (let i = 0; i < array.length; i += chunkSize) {\r\n result.push(array.slice(i, i + chunkSize));\r\n }\r\n\r\n return result;\r\n}\r\n\r\nfunction mapWithOffset<T, U>(array: T[], startingOffset: number, mapFn: (item: T) => U): U[] {\r\n return array.map((_, i) => {\r\n const adjustedIndex = (i + startingOffset) % array.length;\r\n const item = array[adjustedIndex];\r\n if (!item) {\r\n throw new Error(\"No item found\");\r\n }\r\n\r\n return mapFn(item);\r\n });\r\n}\r\n\r\ntype DatePickerMonthProps = {\r\n selectedDate: Date | undefined;\r\n focusedDate: Date;\r\n labelledById: string;\r\n localization: DsoLocalizedText;\r\n firstDayOfWeek: DaysOfWeek;\r\n min?: Date;\r\n max?: Date;\r\n onDateSelect: DatePickerDayProps[\"onDaySelect\"];\r\n onKeyboardNavigation: DatePickerDayProps[\"onKeyboardNavigation\"];\r\n focusedDayRef: (element: HTMLButtonElement) => void;\r\n onFocusIn?: (e: FocusEvent) => void;\r\n onMouseDown?: (e: MouseEvent) => void;\r\n};\r\n\r\nexport const DatePickerMonth: FunctionalComponent<DatePickerMonthProps> = ({\r\n selectedDate,\r\n focusedDate,\r\n labelledById,\r\n localization,\r\n firstDayOfWeek,\r\n min,\r\n max,\r\n onDateSelect,\r\n onKeyboardNavigation,\r\n focusedDayRef,\r\n onMouseDown,\r\n onFocusIn,\r\n}) => {\r\n const today = new Date();\r\n const days = getViewOfMonth(focusedDate, firstDayOfWeek);\r\n\r\n return (\r\n <table\r\n class=\"dso-date__table\"\r\n role=\"grid\"\r\n aria-labelledby={labelledById}\r\n onFocusin={onFocusIn}\r\n onMouseDown={onMouseDown}\r\n >\r\n <thead>\r\n <tr>\r\n {mapWithOffset(localization.dayNames, firstDayOfWeek, (dayName) => (\r\n <th class=\"dso-date__table-header\" scope=\"col\">\r\n <span aria-hidden=\"true\">{dayName.substr(0, 2)}</span>\r\n <span class=\"dso-date__vhidden\">{dayName}</span>\r\n </th>\r\n ))}\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {chunk(days, 7).map((week) => (\r\n <tr class=\"dso-date__row\">\r\n {week.map((day) => (\r\n <td\r\n class=\"dso-date__cell\"\r\n role=\"gridcell\"\r\n aria-selected={isEqual(day, selectedDate) ? \"true\" : undefined}\r\n aria-current={isEqual(day, today) ? \"date\" : undefined}\r\n >\r\n <DatePickerDay\r\n day={day}\r\n today={today}\r\n focusedDay={focusedDate}\r\n inRange={inRange(day, min, max)}\r\n onDaySelect={onDateSelect}\r\n onKeyboardNavigation={onKeyboardNavigation}\r\n focusedDayRef={focusedDayRef}\r\n />\r\n </td>\r\n ))}\r\n </tr>\r\n ))}\r\n </tbody>\r\n </table>\r\n );\r\n};\r\n","type MonthsNames = [string, string, string, string, string, string, string, string, string, string, string, string];\r\ntype DayNames = [string, string, string, string, string, string, string];\r\n\r\nexport type DsoLocalizedText = {\r\n buttonLabel: string;\r\n placeholder: string;\r\n selectedDateMessage: string;\r\n prevMonthLabel: string;\r\n nextMonthLabel: string;\r\n monthSelectLabel: string;\r\n yearSelectLabel: string;\r\n closeLabel: string;\r\n keyboardInstruction: string;\r\n calendarHeading: string;\r\n dayNames: DayNames;\r\n monthNames: MonthsNames;\r\n monthNamesShort: MonthsNames;\r\n};\r\n\r\nconst localization: DsoLocalizedText = {\r\n buttonLabel: \"Kies datum\",\r\n placeholder: \"dd-mm-jjjj\",\r\n selectedDateMessage: \"Geselecteerde datum is\",\r\n prevMonthLabel: \"Vorige maand\",\r\n nextMonthLabel: \"Volgende maand\",\r\n monthSelectLabel: \"Maand\",\r\n yearSelectLabel: \"Jaar\",\r\n closeLabel: \"Sluiten\",\r\n keyboardInstruction: \"Gebruik de pijltjestoetsen om een dag te kiezen\",\r\n calendarHeading: \"Kies een datum\",\r\n dayNames: [\"Zondag\", \"Maandag\", \"Dinsdag\", \"Woensdag\", \"Donderdag\", \"Vrijdag\", \"Zaterdag\"],\r\n monthNames: [\r\n \"Januari\",\r\n \"Februari\",\r\n \"Maart\",\r\n \"April\",\r\n \"Mei\",\r\n \"Juni\",\r\n \"Juli\",\r\n \"Augustus\",\r\n \"September\",\r\n \"Oktober\",\r\n \"November\",\r\n \"December\",\r\n ],\r\n monthNamesShort: [\"Jan\", \"Feb\", \"Mrt\", \"Apr\", \"Mei\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Okt\", \"Nov\", \"Dec\"],\r\n};\r\n\r\nexport default localization;\r\n","import { DsoLocalizedText } from \"../date-localization\";\r\n\r\nexport function monthRange(\r\n localization: DsoLocalizedText,\r\n selectedYear: number,\r\n minDate?: Date,\r\n maxDate?: Date\r\n): string[] {\r\n if (minDate && maxDate) {\r\n const { minYear, minMonth } = { minYear: minDate.getFullYear(), minMonth: minDate.getMonth() };\r\n const { maxYear, maxMonth } = { maxYear: maxDate.getFullYear(), maxMonth: maxDate.getMonth() };\r\n\r\n return localization.monthNames.filter((_month, index) => {\r\n if (minYear === selectedYear && maxYear === selectedYear) {\r\n return index >= minMonth && index >= maxMonth;\r\n }\r\n\r\n if (minYear === selectedYear) {\r\n return index >= minMonth;\r\n }\r\n\r\n if (maxYear === selectedYear) {\r\n return index <= maxMonth;\r\n }\r\n\r\n return true;\r\n });\r\n }\r\n\r\n if (minDate) {\r\n const { minYear, minMonth } = { minYear: minDate.getFullYear(), minMonth: minDate.getMonth() };\r\n\r\n return localization.monthNames.filter((_month, index) => minYear === selectedYear && index >= minMonth);\r\n }\r\n\r\n if (maxDate) {\r\n const { maxYear, maxMonth } = { maxYear: maxDate.getFullYear(), maxMonth: maxDate.getMonth() };\r\n\r\n return localization.monthNames.filter((_month, index) => maxYear === selectedYear && index <= maxMonth);\r\n }\r\n\r\n return localization.monthNames;\r\n}\r\n","export function range(from: number, to: number) {\r\n const result: number[] = [];\r\n for (let i = from; i <= to; i++) {\r\n result.push(i);\r\n }\r\n return result;\r\n}\r\n","@use \"~dso-toolkit/src/variables/units\";\r\n@use \"~dso-toolkit/src/variables/colors\";\r\n@use \"~dso-toolkit/src/variables/zindex\";\r\n@use \"~dso-toolkit/src/components/form-control\";\r\n\r\n@use \"date-picker.variables\" as core-date-picker-variables;\r\n\r\n:host {\r\n display: block;\r\n\r\n &[invalid]:not([invalid=\"false\"]) {\r\n .dso-date__input {\r\n border-color: colors.$danger-color;\r\n }\r\n }\r\n}\r\n\r\n.dso-date *,\r\n.dso-date *::before,\r\n.dso-date *::after {\r\n box-sizing: border-box;\r\n}\r\n\r\n.dso-date {\r\n box-sizing: border-box;\r\n color: core-date-picker-variables.$color-text;\r\n display: block;\r\n font-family: core-date-picker-variables.$font;\r\n margin: 0;\r\n position: relative;\r\n text-align: left;\r\n width: 100%;\r\n\r\n &:not(.dso-visible) {\r\n .dso-date__dialog {\r\n display: none;\r\n }\r\n }\r\n}\r\n\r\n.dso-date__input {\r\n @include form-control.root();\r\n}\r\n\r\n// ---------------------------------------------\r\n// dso DATE PICKER __ TOGGLE\r\n// ---------------------------------------------\r\n\r\n.dso-date__toggle {\r\n -moz-appearance: none;\r\n -webkit-appearance: none;\r\n -webkit-user-select: none;\r\n align-items: center;\r\n appearance: none;\r\n background: core-date-picker-variables.$color-button-bg;\r\n border: 0;\r\n border-radius: 0;\r\n border-bottom-right-radius: core-date-picker-variables.$radius;\r\n border-top-right-radius: core-date-picker-variables.$radius;\r\n color: core-date-picker-variables.$color-icon;\r\n cursor: pointer;\r\n display: flex;\r\n height: core-date-picker-variables.$size;\r\n justify-content: center;\r\n padding: 0;\r\n position: absolute;\r\n right: 0;\r\n transform: translateY(-50%);\r\n top: 50%;\r\n user-select: none;\r\n width: core-date-picker-variables.$size;\r\n z-index: zindex.$datepicker + 1;\r\n\r\n &:disabled {\r\n color: core-date-picker-variables.$nav-button-disabled;\r\n cursor: default;\r\n }\r\n}\r\n\r\n// ---------------------------------------------\r\n// dso DATE PICKER __ DIALOG\r\n// ---------------------------------------------\r\n\r\n.dso-date__dialog {\r\n border-width: core-date-picker-variables.$border-width;\r\n display: flex;\r\n right: 0;\r\n min-width: 320px;\r\n opacity: 0;\r\n position: absolute;\r\n top: 100%;\r\n transform: scale(0.96) translateZ(0) translateY(-20px);\r\n transform-origin: top right;\r\n transition: transform 300ms ease, opacity 300ms ease, visibility 300ms ease;\r\n visibility: hidden;\r\n will-change: transform, opacity, visibility;\r\n z-index: zindex.$datepicker-dialog;\r\n\r\n @media (max-width: 35.9375em) {\r\n background: core-date-picker-variables.$overlay;\r\n bottom: 0;\r\n position: fixed;\r\n left: 0;\r\n right: 0;\r\n top: 0;\r\n transform: translateZ(0);\r\n transform-origin: bottom center;\r\n }\r\n\r\n &.is-left {\r\n left: units.$padding-base-horizontal * -1 + core-date-picker-variables.$border-width;\r\n right: auto;\r\n width: auto;\r\n }\r\n\r\n &.is-active {\r\n opacity: 1;\r\n // The value of 1.0001 fixes a Chrome glitch with scaling\r\n transform: scale(1.0001) translateZ(0) translateY(0);\r\n visibility: visible;\r\n }\r\n}\r\n\r\n.dso-date__dialog-content {\r\n background: core-date-picker-variables.$surface;\r\n border: 1px solid rgba(0, 0, 0, 0.1);\r\n border-radius: core-date-picker-variables.$radius;\r\n box-shadow: 0 8px 10px 1px rgba(0, 0, 0, 0.4);\r\n margin-left: auto;\r\n margin-right: -1px;\r\n margin-top: 8px;\r\n max-width: 310px;\r\n min-width: 290px;\r\n padding: 16px;\r\n position: relative;\r\n transform: none;\r\n width: 100%;\r\n z-index: zindex.$datepicker-dialog;\r\n\r\n @media (max-width: 35.9375em) {\r\n border: 0;\r\n border-radius: 0;\r\n border-top-left-radius: core-date-picker-variables.$radius;\r\n border-top-right-radius: core-date-picker-variables.$radius;\r\n bottom: 0;\r\n left: 0;\r\n margin: 0;\r\n max-width: none;\r\n min-height: 26em;\r\n opacity: 0;\r\n padding: 0 8% 20px;\r\n position: absolute;\r\n transform: translateZ(0) translateY(100%);\r\n transition: transform core-date-picker-variables.$transition-duration ease,\r\n opacity core-date-picker-variables.$transition-duration ease,\r\n visibility core-date-picker-variables.$transition-duration ease;\r\n visibility: hidden;\r\n will-change: transform, opacity, visibility;\r\n\r\n .is-active & {\r\n opacity: 1;\r\n transform: translateZ(0) translateY(0);\r\n visibility: visible;\r\n }\r\n }\r\n}\r\n\r\n// ---------------------------------------------\r\n// dso DATE PICKER __ TABLE\r\n// ---------------------------------------------\r\n\r\n.dso-date__table {\r\n border-collapse: collapse;\r\n border-spacing: 0;\r\n color: core-date-picker-variables.$color-text;\r\n font-size: 1rem;\r\n font-weight: core-date-picker-variables.$font-normal;\r\n line-height: 1.25;\r\n min-width: (core-date-picker-variables.$size + 2) * 7;\r\n table-layout: fixed;\r\n text-align: center;\r\n width: 100%;\r\n}\r\n\r\n.dso-date__table-header {\r\n font-size: 0.875em;\r\n font-weight: core-date-picker-variables.$font-bold;\r\n height: 36px;\r\n line-height: 36px;\r\n text-align: center;\r\n text-decoration: none;\r\n text-transform: uppercase;\r\n}\r\n\r\n.dso-date__cell {\r\n height: core-date-picker-variables.$size + 2;\r\n padding: 1px;\r\n text-align: center;\r\n width: core-date-picker-variables.$size + 2;\r\n}\r\n\r\n.dso-date__day {\r\n -moz-appearance: none;\r\n -webkit-appearance: none;\r\n appearance: none;\r\n background: transparent;\r\n border: 0;\r\n border-radius: 50%;\r\n box-shadow: 0 0 0 1px transparent;\r\n color: core-date-picker-variables.$color-text;\r\n cursor: pointer;\r\n display: inline-block;\r\n font-family: core-date-picker-variables.$font;\r\n font-variant-numeric: tabular-nums;\r\n font-weight: core-date-picker-variables.$font-normal;\r\n height: core-date-picker-variables.$size;\r\n line-height: 0;\r\n padding: 0;\r\n position: relative;\r\n text-align: center;\r\n vertical-align: middle;\r\n width: core-date-picker-variables.$size;\r\n z-index: zindex.$datepicker;\r\n\r\n &.is-today {\r\n background: transparent;\r\n height: core-date-picker-variables.$size - 2;\r\n box-shadow: 0 0 0 1px core-date-picker-variables.$color-button;\r\n width: core-date-picker-variables.$size - 2;\r\n }\r\n\r\n &:hover,\r\n &:active {\r\n background: core-date-picker-variables.$color-button;\r\n color: core-date-picker-variables.$color-text-active;\r\n }\r\n\r\n &:focus {\r\n background: transparent;\r\n box-shadow: 0 0 0 2px colors.$bosgroen;\r\n color: core-date-picker-variables.$color-text;\r\n height: core-date-picker-variables.$size - 4;\r\n outline: 0;\r\n width: core-date-picker-variables.$size - 4;\r\n }\r\n\r\n [aria-selected=\"true\"] & {\r\n background: core-date-picker-variables.$color-button;\r\n color: core-date-picker-variables.$color-text-active;\r\n\r\n &:focus {\r\n background: transparent;\r\n\r\n span[aria-hidden=\"true\"] {\r\n background: core-date-picker-variables.$color-button;\r\n border: 1px solid colors.$wit;\r\n line-height: core-date-picker-variables.$size - 6;\r\n }\r\n }\r\n }\r\n\r\n &:disabled {\r\n background: colors.$wit;\r\n color: core-date-picker-variables.$color-text-disabled;\r\n cursor: default;\r\n }\r\n\r\n span[aria-hidden=\"true\"] {\r\n border-radius: 50%;\r\n display: inline-block;\r\n height: core-date-picker-variables.$size - 4;\r\n line-height: core-date-picker-variables.$size - 4;\r\n width: core-date-picker-variables.$size - 4;\r\n }\r\n}\r\n\r\n// ---------------------------------------------\r\n// dso DATE PICKER __ HEADER\r\n// ---------------------------------------------\r\n\r\n.dso-date__header {\r\n align-items: center;\r\n display: flex;\r\n justify-content: space-between;\r\n margin-bottom: 16px;\r\n width: 100%;\r\n\r\n span {\r\n font-size: 0.875rem;\r\n }\r\n}\r\n\r\n// ---------------------------------------------\r\n// dso DATE PICKER __ NAVIGATION\r\n// ---------------------------------------------\r\n\r\n.dso-date__nav {\r\n white-space: nowrap; // stylelint-disable-line declaration-property-value-disallowed-list -- 3rd party code\r\n}\r\n\r\n.dso-date__prev,\r\n.dso-date__next {\r\n -moz-appearance: none;\r\n -webkit-appearance: none;\r\n align-items: center;\r\n appearance: none;\r\n background: core-date-picker-variables.$color-button-bg;\r\n border: 1px solid core-date-picker-variables.$color-button;\r\n border-radius: core-date-picker-variables.$radius;\r\n box-sizing: border-box;\r\n color: core-date-picker-variables.$color-button;\r\n cursor: pointer;\r\n display: inline-flex;\r\n font-size: 1em;\r\n height: 32px;\r\n justify-content: center;\r\n margin-left: 8px;\r\n padding: 0;\r\n width: 32px;\r\n\r\n @media (max-width: 35.9375em) {\r\n height: 40px;\r\n width: 40px;\r\n }\r\n\r\n &:hover,\r\n &:active {\r\n background-color: core-date-picker-variables.$color-button;\r\n color: core-date-picker-variables.$color-text-active;\r\n }\r\n\r\n &:focus {\r\n background: core-date-picker-variables.$color-button-bg;\r\n color: core-date-picker-variables.$color-button;\r\n }\r\n\r\n &:disabled {\r\n &,\r\n &:hover {\r\n background-color: colors.$wit;\r\n border-color: core-date-picker-variables.$nav-button-disabled;\r\n color: core-date-picker-variables.$nav-button-disabled;\r\n opacity: 1;\r\n }\r\n }\r\n\r\n svg {\r\n margin: 0 auto;\r\n }\r\n}\r\n\r\n// ---------------------------------------------\r\n// dso DATE PICKER __ SELECT\r\n// ---------------------------------------------\r\n\r\n.dso-date__select {\r\n display: inline-flex;\r\n height: units.$u1 * 4 - 4;\r\n line-height: units.$u1 * 4 - 4;\r\n position: relative;\r\n\r\n span {\r\n margin-right: 4px;\r\n }\r\n\r\n select {\r\n color: core-date-picker-variables.$color-primary;\r\n cursor: pointer;\r\n font-size: 1rem;\r\n height: 100%;\r\n left: 0;\r\n opacity: 0;\r\n position: absolute;\r\n top: 0;\r\n width: 100%;\r\n z-index: zindex.$datepicker + 1;\r\n\r\n &:focus + .dso-date__select-label {\r\n box-shadow: 0 0 0 2px core-date-picker-variables.$color-primary;\r\n }\r\n\r\n &:disabled {\r\n color: core-date-picker-variables.$nav-button-disabled;\r\n }\r\n }\r\n}\r\n\r\n.dso-date__select-label {\r\n align-items: center;\r\n border-radius: core-date-picker-variables.$radius;\r\n color: core-date-picker-variables.$select;\r\n display: flex;\r\n padding: 0 4px 0 8px;\r\n pointer-events: none;\r\n position: relative;\r\n width: 100%;\r\n z-index: zindex.$datepicker;\r\n\r\n span {\r\n font-size: 1.25rem;\r\n font-weight: core-date-picker-variables.$font-bold;\r\n line-height: 1.25;\r\n }\r\n\r\n svg {\r\n width: 16px;\r\n height: 16px;\r\n }\r\n}\r\n\r\n// ---------------------------------------------\r\n// dso DATE PICKER __ MOBILE\r\n// ---------------------------------------------\r\n\r\n.dso-date__mobile {\r\n align-items: center;\r\n border-bottom: 1px solid rgba(0, 0, 0, 0.12);\r\n display: flex;\r\n font-size: 1em;\r\n justify-content: space-between;\r\n margin-bottom: 20px;\r\n margin-left: -10%;\r\n overflow: hidden;\r\n padding: 12px 20px;\r\n position: relative;\r\n text-overflow: ellipsis; // stylelint-disable-line declaration-property-value-disallowed-list -- 3rd party code\r\n white-space: nowrap; // stylelint-disable-line declaration-property-value-disallowed-list -- 3rd party code\r\n width: 120%;\r\n\r\n @media (min-width: 36em) {\r\n border: 0;\r\n margin: 0;\r\n overflow: visible;\r\n padding: 0;\r\n position: absolute;\r\n right: -16px;\r\n top: -16px;\r\n width: auto;\r\n }\r\n}\r\n\r\n.dso-date__mobile-heading {\r\n display: inline-block;\r\n font-weight: core-date-picker-variables.$font-bold;\r\n max-width: 84%;\r\n overflow: hidden;\r\n text-overflow: ellipsis; // stylelint-disable-line declaration-property-value-disallowed-list -- 3rd party code\r\n white-space: nowrap; // stylelint-disable-line declaration-property-value-disallowed-list -- 3rd party code\r\n\r\n @media (min-width: 36em) {\r\n display: none;\r\n }\r\n}\r\n\r\n// ---------------------------------------------\r\n// dso DATE PICKER __ CLOSE\r\n// ---------------------------------------------\r\n\r\n.dso-date__close {\r\n -webkit-appearance: none;\r\n align-items: center;\r\n appearance: none;\r\n background-color: colors.$wit;\r\n border: 0;\r\n border-radius: 50%;\r\n color: core-date-picker-variables.$color-icon;\r\n cursor: pointer;\r\n display: flex;\r\n font-size: 1em;\r\n height: units.$u1 * 4;\r\n justify-content: center;\r\n margin-right: -4px;\r\n padding: 0;\r\n width: units.$u1 * 4;\r\n\r\n @media (min-width: 36em) {\r\n margin-right: 0;\r\n opacity: 0;\r\n }\r\n\r\n &:focus {\r\n box-shadow: 0 0 0 2px colors.$bosgroen;\r\n outline: none;\r\n\r\n @media (min-width: 36em) {\r\n opacity: 1;\r\n }\r\n }\r\n}\r\n\r\n// ---------------------------------------------\r\n// dso DATE PICKER __ VISUALLY HIDDEN\r\n// ---------------------------------------------\r\n\r\n.dso-date__vhidden {\r\n border: 0;\r\n clip: rect(1px, 1px, 1px, 1px);\r\n height: 1px;\r\n overflow: hidden;\r\n padding: 0;\r\n position: absolute;\r\n top: 0;\r\n width: 1px;\r\n}\r\n","import {\r\n Component,\r\n ComponentInterface,\r\n Host,\r\n Prop,\r\n Element,\r\n h,\r\n Event,\r\n EventEmitter,\r\n State,\r\n Listen,\r\n Method,\r\n} from \"@stencil/core\";\r\n\r\nimport { createIdentifier } from \"../../utils/create-identifier\";\r\nimport {\r\n addDays,\r\n startOfWeek,\r\n endOfWeek,\r\n setMonth,\r\n setYear,\r\n clamp,\r\n inRange,\r\n endOfMonth,\r\n startOfMonth,\r\n printDutchDate,\r\n parseDutchDate,\r\n DaysOfWeek,\r\n} from \"./date-utils\";\r\nimport { DatePickerMonth } from \"./date-picker-month\";\r\nimport defaultLocalization, { DsoLocalizedText } from \"./date-localization\";\r\nimport {\r\n DsoDatePickerDirection,\r\n DsoDatePickerChangeEvent,\r\n DsoDatePickerFocusEvent,\r\n DsoDatePickerKeyboardEvent,\r\n} from \"./date-picker.interfaces\";\r\nimport { monthRange } from \"./utils/month-range\";\r\nimport { range } from \"./utils/range\";\r\n\r\nconst keyCode = {\r\n TAB: 9,\r\n ESC: 27,\r\n SPACE: 32,\r\n PAGE_UP: 33,\r\n PAGE_DOWN: 34,\r\n END: 35,\r\n HOME: 36,\r\n LEFT: 37,\r\n UP: 38,\r\n RIGHT: 39,\r\n DOWN: 40,\r\n};\r\n\r\nconst DISALLOWED_CHARACTERS = /[^0-9-]+/g;\r\nconst TRANSITION_MS = 300;\r\n\r\nfunction cleanValue(input: HTMLInputElement, regex: RegExp): string {\r\n const value = input.value;\r\n const cursor = input.selectionStart;\r\n\r\n if (!cursor) {\r\n return value;\r\n }\r\n\r\n const beforeCursor = value.slice(0, cursor);\r\n const afterCursor = value.slice(cursor, value.length);\r\n\r\n const filteredBeforeCursor = beforeCursor.replace(regex, \"\");\r\n const filterAfterCursor = afterCursor.replace(regex, \"\");\r\n\r\n const newValue = filteredBeforeCursor + filterAfterCursor;\r\n const newCursor = filteredBeforeCursor.length;\r\n\r\n input.value = newValue;\r\n input.selectionStart = input.selectionEnd = newCursor;\r\n\r\n return newValue;\r\n}\r\n\r\n@Component({\r\n tag: \"dso-date-picker\",\r\n styleUrl: \"date-picker.scss\",\r\n shadow: false,\r\n scoped: true,\r\n})\r\nexport class DsoDatePicker implements ComponentInterface {\r\n /**\r\n * Own Properties\r\n */\r\n private monthSelectId = createIdentifier(\"DsoDateMonth\");\r\n private yearSelectId = createIdentifier(\"DsoDateYear\");\r\n private dialogLabelId = createIdentifier(\"DsoDateLabel\");\r\n\r\n private datePickerButton: HTMLButtonElement | undefined;\r\n private datePickerInput: HTMLInputElement | undefined;\r\n private firstFocusableElement: HTMLElement | undefined;\r\n private monthSelectNode: HTMLElement | undefined;\r\n private focusedDayNode: HTMLButtonElement | undefined;\r\n\r\n private focusTimeoutId: ReturnType<typeof setTimeout> | undefined;\r\n private hideTimeoutId: ReturnType<typeof setTimeout> | undefined;\r\n\r\n private initialTouchX: number | undefined;\r\n private initialTouchY: number | undefined;\r\n\r\n private localization: DsoLocalizedText = defaultLocalization;\r\n private firstDayOfWeek: DaysOfWeek = DaysOfWeek.Monday;\r\n\r\n private previousValue: string | undefined;\r\n\r\n /**\r\n * Reference to host HTML element.\r\n */\r\n @Element()\r\n element!: HTMLDsoDatePickerElement;\r\n\r\n /**\r\n * State() variables\r\n */\r\n @State()\r\n activeFocus = false;\r\n\r\n @State()\r\n focusedDay = new Date();\r\n\r\n @State()\r\n open = false;\r\n\r\n @State()\r\n visible = false;\r\n\r\n /**\r\n * Public Property API\r\n */\r\n\r\n /**\r\n * Name of the date picker input.\r\n */\r\n @Prop()\r\n name = \"date\";\r\n\r\n /**\r\n * Adds a unique identifier for the date picker input. Use this instead of html `id` attribute.\r\n */\r\n @Prop()\r\n identifier: string | undefined;\r\n\r\n /**\r\n * Makes the date picker input component disabled. This prevents users from being able to\r\n * interact with the input, and conveys its inactive state to assistive technologies.\r\n */\r\n @Prop({ reflect: true })\r\n disabled = false;\r\n\r\n /**\r\n * Defines a specific role attribute for the date picker input.\r\n */\r\n @Prop()\r\n role: string | null = null;\r\n\r\n /**\r\n * Forces the opening direction of the calendar modal to be always left or right.\r\n * This setting can be useful when the input is smaller than the opening date picker\r\n * would be as by default the picker always opens towards right.\r\n */\r\n @Prop()\r\n direction: DsoDatePickerDirection = \"right\";\r\n\r\n /**\r\n * Should the input be marked as required?\r\n */\r\n @Prop()\r\n required = false;\r\n\r\n /**\r\n * Is input invalid?\r\n */\r\n @Prop({ reflect: true })\r\n invalid?: boolean;\r\n\r\n /**\r\n * ID of element that describes the input element\r\n */\r\n @Prop()\r\n describedBy?: string;\r\n\r\n /**\r\n * Should the input be focused on load?\r\n */\r\n @Prop()\r\n dsoAutofocus = false;\r\n\r\n /**\r\n * Date value. Must be in Dutch date format: DD-MM-YYYY.\r\n */\r\n @Prop({ reflect: true, mutable: true })\r\n value = \"\";\r\n\r\n /**\r\n * Minimum date allowed to be picked. Must be in Dutch date format: DD-MM-YYYY.\r\n * This setting can be used alone or together with the max property.\r\n */\r\n @Prop()\r\n min: string | undefined;\r\n\r\n /**\r\n * Maximum date allowed to be picked. Must be in Dutch date format: DD-MM-YYYY.\r\n * This setting can be used alone or together with the min property.\r\n */\r\n @Prop()\r\n max: string | undefined;\r\n\r\n /**\r\n * Events section.\r\n */\r\n\r\n /**\r\n * Event emitted when a date is selected.\r\n */\r\n @Event()\r\n dsoDateChange!: EventEmitter<DsoDatePickerChangeEvent>;\r\n\r\n /**\r\n * Event emitted the date picker input is blurred.\r\n */\r\n @Event()\r\n dsoBlur!: EventEmitter<DsoDatePickerFocusEvent>;\r\n\r\n /**\r\n * Event emitted on key up in the date picker input.\r\n */\r\n @Event()\r\n dsoKeyUp!: EventEmitter<DsoDatePickerKeyboardEvent>;\r\n\r\n /**\r\n * Event emitted on key down in the date picker input.\r\n */\r\n @Event()\r\n dsoKeyDown!: EventEmitter<DsoDatePickerKeyboardEvent>;\r\n\r\n /**\r\n * Event emitted the date picker input is focused.\r\n */\r\n @Event()\r\n dsoFocus!: EventEmitter<DsoDatePickerFocusEvent>;\r\n\r\n /**\r\n * Component event handling.\r\n */\r\n @Listen(\"click\", { target: \"document\", capture: true })\r\n handleDocumentClick(e: MouseEvent) {\r\n if (!this.open) {\r\n return;\r\n }\r\n\r\n const path = e.composedPath();\r\n\r\n for (const target of path) {\r\n if (target instanceof Node && this.element.contains(target)) {\r\n return;\r\n }\r\n }\r\n\r\n this.hide(false);\r\n }\r\n\r\n /**\r\n * Sets focus on the date picker's input. Use this method instead of the global `focus()`.\r\n */\r\n @Method()\r\n async setFocus() {\r\n return this.datePickerInput?.focus();\r\n }\r\n\r\n /**\r\n * Public methods API\r\n */\r\n\r\n /**\r\n * Show the calendar modal, moving focus to the calendar inside.\r\n */\r\n @Method()\r\n async show() {\r\n if (typeof this.hideTimeoutId !== \"undefined\") {\r\n clearTimeout(this.hideTimeoutId);\r\n }\r\n\r\n this.visible = true;\r\n\r\n setTimeout(() => {\r\n this.open = true;\r\n this.setFocusedDay(parseDutchDate(this.value) || new Date());\r\n\r\n if (typeof this.focusTimeoutId !== \"undefined\") {\r\n clearTimeout(this.focusTimeoutId);\r\n }\r\n\r\n this.focusTimeoutId = setTimeout(() => this.monthSelectNode?.focus(), TRANSITION_MS);\r\n });\r\n }\r\n\r\n /**\r\n * Hide the calendar modal. Set `moveFocusToButton` to false to prevent focus\r\n * returning to the date picker's button. Default is true.\r\n */\r\n @Method()\r\n async hide(moveFocusToButton = true) {\r\n this.open = false;\r\n\r\n // in cases where calendar is quickly shown and hidden\r\n // we should avoid moving focus to the button\r\n if (typeof this.focusTimeoutId !== \"undefined\") {\r\n clearTimeout(this.focusTimeoutId);\r\n }\r\n\r\n this.hideTimeoutId = setTimeout(() => {\r\n if (moveFocusToButton && this.datePickerButton) {\r\n this.datePickerButton.focus();\r\n }\r\n\r\n this.visible = false;\r\n }, TRANSITION_MS + 200);\r\n }\r\n\r\n /**\r\n * Local methods.\r\n */\r\n private enableActiveFocus = () => {\r\n this.activeFocus = true;\r\n };\r\n\r\n private disableActiveFocus = () => {\r\n this.activeFocus = false;\r\n };\r\n\r\n private addDays(days: number) {\r\n this.setFocusedDay(addDays(this.focusedDay, days));\r\n }\r\n\r\n private addMonths(months: number) {\r\n this.setMonth(this.focusedDay.getMonth() + months);\r\n }\r\n\r\n private addYears(years: number) {\r\n this.setYear(this.focusedDay.getFullYear() + years);\r\n }\r\n\r\n private startOfWeek() {\r\n this.setFocusedDay(startOfWeek(this.focusedDay, this.firstDayOfWeek));\r\n }\r\n\r\n private endOfWeek() {\r\n this.setFocusedDay(endOfWeek(this.focusedDay, this.firstDayOfWeek));\r\n }\r\n\r\n private setMonth(month: number) {\r\n const min = setMonth(startOfMonth(this.focusedDay), month);\r\n const max = endOfMonth(min);\r\n const date = setMonth(this.focusedDay, month);\r\n\r\n this.setFocusedDay(clamp(date, min, max));\r\n }\r\n\r\n private setYear(year: number) {\r\n const min = setYear(startOfMonth(this.focusedDay), year);\r\n const max = endOfMonth(min);\r\n const date = setYear(this.focusedDay, year);\r\n\r\n this.setFocusedDay(clamp(date, min, max));\r\n }\r\n\r\n private setFocusedDay(day: Date) {\r\n this.focusedDay = clamp(day, parseDutchDate(this.min), parseDutchDate(this.max));\r\n }\r\n\r\n private toggleOpen = (e: Event) => {\r\n e.preventDefault();\r\n this.open ? this.hide(false) : this.show();\r\n };\r\n\r\n private handleEscKey = (event: KeyboardEvent) => {\r\n if (event.keyCode === keyCode.ESC) {\r\n this.hide();\r\n }\r\n };\r\n\r\n private handleBlur = (event: Event) => {\r\n event.stopPropagation();\r\n\r\n this.dsoBlur.emit({\r\n component: \"dso-date-picker\",\r\n });\r\n };\r\n\r\n private handleKeyUp = (event: KeyboardEvent) => {\r\n event.stopPropagation();\r\n\r\n this.dsoKeyUp.emit({\r\n component: \"dso-date-picker\",\r\n originalEvent: event,\r\n });\r\n };\r\n\r\n private handleKeyDown = (event: KeyboardEvent) => {\r\n event.stopPropagation();\r\n\r\n this.dsoKeyDown.emit({\r\n component: \"dso-date-picker\",\r\n originalEvent: event,\r\n });\r\n };\r\n\r\n private handleFocus = (event: Event) => {\r\n event.stopPropagation();\r\n\r\n this.dsoFocus.emit({\r\n component: \"dso-date-picker\",\r\n });\r\n };\r\n\r\n private handleTouchStart = (event: TouchEvent) => {\r\n const touch = event.changedTouches[0];\r\n if (!touch) {\r\n throw new Error(\"No touch found\");\r\n }\r\n\r\n this.initialTouchX = touch.pageX;\r\n this.initialTouchY = touch.pageY;\r\n };\r\n\r\n private handleTouchMove = (event: TouchEvent) => {\r\n event.preventDefault();\r\n };\r\n\r\n private handleTouchEnd = (event: TouchEvent) => {\r\n const touch = event.changedTouches[0];\r\n if (!touch) {\r\n throw new Error(\"No touch found\");\r\n }\r\n\r\n const distX = touch.pageX - (this.initialTouchX ?? 0); // get horizontal dist traveled\r\n const distY = touch.pageY - (this.initialTouchY ?? 0); // get vertical dist traveled\r\n const threshold = 70;\r\n\r\n const isHorizontalSwipe = Math.abs(distX) >= threshold && Math.abs(distY) <= threshold;\r\n const isDownwardsSwipe = Math.abs(distY) >= threshold && Math.abs(distX) <= threshold && distY > 0;\r\n\r\n if (isHorizontalSwipe) {\r\n this.addMonths(distX < 0 ? 1 : -1);\r\n } else if (isDownwardsSwipe) {\r\n this.hide(false);\r\n event.preventDefault();\r\n }\r\n\r\n this.initialTouchY = undefined;\r\n this.initialTouchX = undefined;\r\n };\r\n\r\n private handleNextMonthClick = (event: MouseEvent) => {\r\n event.preventDefault();\r\n this.addMonths(1);\r\n };\r\n\r\n private handlePreviousMonthClick = (event: MouseEvent) => {\r\n event.preventDefault();\r\n this.addMonths(-1);\r\n };\r\n\r\n private handleFirstFocusableKeydown = (event: KeyboardEvent) => {\r\n // this ensures focus is trapped inside the dialog\r\n if (event.keyCode === keyCode.TAB && event.shiftKey) {\r\n this.focusedDayNode?.focus();\r\n event.preventDefault();\r\n }\r\n };\r\n\r\n private handleKeyboardNavigation = (event: KeyboardEvent) => {\r\n // handle tab separately, since it needs to be treated\r\n // differently to other keyboard interactions\r\n if (event.keyCode === keyCode.TAB && !event.shiftKey) {\r\n event.preventDefault();\r\n this.firstFocusableElement?.focus();\r\n return;\r\n }\r\n\r\n let handled = true;\r\n\r\n switch (event.keyCode) {\r\n case keyCode.RIGHT:\r\n this.addDays(1);\r\n break;\r\n case keyCode.LEFT:\r\n this.addDays(-1);\r\n break;\r\n case keyCode.DOWN:\r\n this.addDays(7);\r\n break;\r\n case keyCode.UP:\r\n this.addDays(-7);\r\n break;\r\n case keyCode.PAGE_UP:\r\n if (event.shiftKey) {\r\n this.addYears(-1);\r\n } else {\r\n this.addMonths(-1);\r\n }\r\n break;\r\n case keyCode.PAGE_DOWN:\r\n if (event.shiftKey) {\r\n this.addYears(1);\r\n } else {\r\n this.addMonths(1);\r\n }\r\n break;\r\n case keyCode.HOME:\r\n this.startOfWeek();\r\n break;\r\n case keyCode.END:\r\n this.endOfWeek();\r\n break;\r\n default:\r\n handled = false;\r\n }\r\n\r\n if (handled) {\r\n event.preventDefault();\r\n this.enableActiveFocus();\r\n }\r\n };\r\n\r\n private handleDaySelect = (_event: MouseEvent, day: Date) => {\r\n if (!inRange(day, parseDutchDate(this.min), parseDutchDate(this.max))) {\r\n return;\r\n }\r\n\r\n if (day.getMonth() === this.focusedDay.getMonth()) {\r\n this.setValue(day);\r\n this.hide();\r\n } else {\r\n this.setFocusedDay(day);\r\n }\r\n };\r\n\r\n private handleMonthSelect = (e: Event) => {\r\n // Todo\r\n if (e.target instanceof HTMLSelectElement) {\r\n this.setMonth(parseInt(e.target.value, 10));\r\n }\r\n };\r\n\r\n private handleYearSelect = (e: Event) => {\r\n if (e.target instanceof HTMLSelectElement) {\r\n this.setYear(parseInt(e.target.value, 10));\r\n }\r\n };\r\n\r\n private handleInputChange = (e: Event) => {\r\n const target = e.target as HTMLInputElement;\r\n\r\n const cleanedValue = cleanValue(target, DISALLOWED_CHARACTERS);\r\n\r\n this.setValue(cleanedValue);\r\n };\r\n\r\n private setValue(value: Date | string) {\r\n const event = this.prepareEvent(value);\r\n\r\n this.value = typeof value === \"string\" ? value : event.value;\r\n\r\n if (this.value !== this.previousValue) {\r\n this.dsoDateChange.emit(event);\r\n this.previousValue = this.value;\r\n }\r\n }\r\n\r\n private prepareEvent = (value: Date | string): DsoDatePickerChangeEvent => {\r\n const event: DsoDatePickerChangeEvent = {\r\n component: \"dso-date-picker\",\r\n value: \"\",\r\n valueAsDate: undefined,\r\n };\r\n\r\n if (value instanceof Date) {\r\n event.valueAsDate = value;\r\n } else {\r\n event.value = value;\r\n event.valueAsDate = parseDutchDate(value);\r\n }\r\n\r\n if (event.valueAsDate) {\r\n event.value = printDutchDate(event.valueAsDate);\r\n }\r\n\r\n if (!event.valueAsDate && this.required) {\r\n event.error = \"required\";\r\n }\r\n\r\n if (event.value && !event.valueAsDate) {\r\n event.error = \"invalid\";\r\n }\r\n\r\n if (event.valueAsDate && (this.min || this.max)) {\r\n const min = parseDutchDate(this.min);\r\n const max = parseDutchDate(this.max);\r\n const clampValue = clamp(event.valueAsDate, min, max);\r\n\r\n if (clampValue !== event.valueAsDate && clampValue === min) {\r\n event.valueAsDate = undefined;\r\n event.error = \"min-range\";\r\n } else if (clampValue !== event.valueAsDate && clampValue === max) {\r\n event.valueAsDate = undefined;\r\n event.error = \"max-range\";\r\n }\r\n }\r\n\r\n return event;\r\n };\r\n\r\n private processFocusedDayNode = (element: HTMLButtonElement) => {\r\n this.focusedDayNode = element;\r\n\r\n if (this.activeFocus && this.open) {\r\n setTimeout(() => element.focus(), 0);\r\n }\r\n };\r\n\r\n componentWillLoad(): void | Promise<void> {\r\n const minDate = parseDutchDate(this.min);\r\n const maxDate = parseDutchDate(this.max);\r\n\r\n if (minDate && minDate > this.focusedDay) {\r\n this.focusedDay = minDate;\r\n }\r\n\r\n if (maxDate && maxDate < this.focusedDay) {\r\n this.focusedDay = maxDate;\r\n }\r\n }\r\n\r\n componentDidLoad() {\r\n const valueAsDate = parseDutchDate(this.value);\r\n if (valueAsDate) {\r\n this.previousValue = this.value = printDutchDate(valueAsDate);\r\n }\r\n\r\n if (this.dsoAutofocus) {\r\n this.setFocus();\r\n }\r\n }\r\n\r\n /**\r\n * render() function\r\n * Always the last one in the class.\r\n */\r\n render() {\r\n const valueAsDate = parseDutchDate(this.value);\r\n const formattedDate = valueAsDate && printDutchDate(valueAsDate);\r\n const selectedYear = (valueAsDate || this.focusedDay).getFullYear();\r\n const focusedMonth = this.focusedDay.getMonth();\r\n const focusedYear = this.focusedDay.getFullYear();\r\n\r\n const minDate = parseDutchDate(this.min);\r\n const maxDate = parseDutchDate(this.max);\r\n const prevMonthDisabled = minDate && minDate.getMonth() === focusedMonth && minDate.getFullYear() === focusedYear;\r\n const nextMonthDisabled = maxDate && maxDate.getMonth() === focusedMonth && maxDate.getFullYear() === focusedYear;\r\n\r\n let minYear = selectedYear - 10;\r\n let maxYear = selectedYear + 10;\r\n if (minDate) {\r\n minYear = Math.max(minYear, minDate.getFullYear());\r\n }\r\n if (maxDate) {\r\n maxYear = Math.min(maxYear, maxDate.getFullYear());\r\n }\r\n\r\n return (\r\n <Host>\r\n <div class={{ \"dso-date\": true, \"dso-visible\": this.visible }}>\r\n <div class=\"dso-date__input-wrapper\">\r\n <input\r\n class=\"dso-date__input\"\r\n value={this.value}\r\n placeholder={this.localization.placeholder}\r\n id={this.identifier}\r\n disabled={this.disabled}\r\n role={this.role ?? undefined}\r\n required={this.required ? true : undefined}\r\n aria-autocomplete=\"none\"\r\n aria-invalid={this.invalid?.toString()}\r\n aria-describedby={this.describedBy}\r\n onInput={this.handleInputChange}\r\n onFocus={this.handleFocus}\r\n onBlur={this.handleBlur}\r\n onKeyUp={this.handleKeyUp}\r\n onKeyDown={this.handleKeyDown}\r\n autoComplete=\"off\"\r\n ref={(element) => (this.datePickerInput = element)}\r\n />\r\n <button\r\n type=\"button\"\r\n class=\"dso-date__toggle\"\r\n onClick={this.toggleOpen}\r\n disabled={this.disabled}\r\n ref={(element) => (this.datePickerButton = element)}\r\n >\r\n <span class=\"dso-date__toggle-icon\">\r\n <dso-icon icon=\"calendar\"></dso-icon>\r\n </span>\r\n <span class=\"dso-date__vhidden\">\r\n {this.localization.buttonLabel}\r\n {formattedDate && (\r\n <span>\r\n , {this.localization.selectedDateMessage} {formattedDate}\r\n </span>\r\n )}\r\n </span>\r\n </button>\r\n </div>\r\n\r\n <div\r\n class={{\r\n \"dso-date__dialog\": true,\r\n \"is-left\": this.direction === \"left\",\r\n \"is-active\": this.open,\r\n }}\r\n role=\"dialog\"\r\n aria-modal=\"true\"\r\n aria-hidden={this.open ? \"false\" : \"true\"}\r\n aria-labelledby={this.dialogLabelId}\r\n onTouchMove={this.handleTouchMove}\r\n onTouchStart={this.handleTouchStart}\r\n onTouchEnd={this.handleTouchEnd}\r\n >\r\n <div class=\"dso-date__dialog-content\" onKeyDown={this.handleEscKey}>\r\n <div class=\"dso-date__vhidden dso-date__instructions\" aria-live=\"polite\">\r\n {this.localization.keyboardInstruction}\r\n </div>\r\n <div class=\"dso-date__mobile\" onFocusin={this.disableActiveFocus}>\r\n <label class=\"dso-date__mobile-heading\">{this.localization.calendarHeading}</label>\r\n <button\r\n class=\"dso-date__close\"\r\n ref={(element) => (this.firstFocusableElement = element)}\r\n onKeyDown={this.handleFirstFocusableKeydown}\r\n onClick={() => this.hide()}\r\n type=\"button\"\r\n >\r\n <dso-icon icon=\"times\"></dso-icon>\r\n <span class=\"dso-date__vhidden\">{this.localization.closeLabel}</span>\r\n </button>\r\n </div>\r\n <div class=\"dso-date__header\" onFocusin={this.disableActiveFocus}>\r\n <div>\r\n <h2 id={this.dialogLabelId} class=\"dso-date__vhidden\" aria-live=\"polite\">\r\n {this.localization.monthNames[focusedMonth]} {this.focusedDay.getFullYear()}\r\n </h2>\r\n\r\n <label htmlFor={this.monthSelectId} class=\"dso-date__vhidden\">\r\n {this.localization.monthSelectLabel}\r\n </label>\r\n <div class=\"dso-date__select\">\r\n <select\r\n id={this.monthSelectId}\r\n class=\"dso-date__select--month\"\r\n ref={(element) => (this.monthSelectNode = element)}\r\n onChange={this.handleMonthSelect}\r\n >\r\n {monthRange(this.localization, selectedYear, minDate, maxDate).map((month) => {\r\n const index = this.localization.monthNames.indexOf(month);\r\n\r\n return (\r\n <option key={month} value={index} selected={index === focusedMonth}>\r\n {month}\r\n </option>\r\n );\r\n })}\r\n </select>\r\n <div class=\"dso-date__select-label\" aria-hidden=\"true\">\r\n <span>{this.localization.monthNamesShort[focusedMonth]}</span>\r\n <dso-icon icon=\"chevron-down\"></dso-icon>\r\n </div>\r\n </div>\r\n\r\n <label htmlFor={this.yearSelectId} class=\"dso-date__vhidden\">\r\n {this.localization.yearSelectLabel}\r\n </label>\r\n <div class=\"dso-date__select\">\r\n <select id={this.yearSelectId} class=\"dso-date__select--year\" onChange={this.handleYearSelect}>\r\n {range(minYear, maxYear).map((year) => (\r\n <option key={year} selected={year === focusedYear}>\r\n {year}\r\n </option>\r\n ))}\r\n </select>\r\n <div class=\"dso-date__select-label\" aria-hidden=\"true\">\r\n <span>{this.focusedDay.getFullYear()}</span>\r\n <dso-icon icon=\"chevron-down\"></dso-icon>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"dso-date__nav\">\r\n <button\r\n class=\"dso-date__prev\"\r\n onClick={this.handlePreviousMonthClick}\r\n disabled={prevMonthDisabled}\r\n type=\"button\"\r\n >\r\n <dso-icon icon=\"chevron-left\"></dso-icon>\r\n <span class=\"dso-date__vhidden\">{this.localization.prevMonthLabel}</span>\r\n </button>\r\n <button\r\n class=\"dso-date__next\"\r\n onClick={this.handleNextMonthClick}\r\n disabled={nextMonthDisabled}\r\n type=\"button\"\r\n >\r\n <dso-icon icon=\"chevron-right\"></dso-icon>\r\n <span class=\"dso-date__vhidden\">{this.localization.nextMonthLabel}</span>\r\n </button>\r\n </div>\r\n </div>\r\n <DatePickerMonth\r\n selectedDate={valueAsDate}\r\n focusedDate={this.focusedDay}\r\n onDateSelect={this.handleDaySelect}\r\n onKeyboardNavigation={this.handleKeyboardNavigation}\r\n labelledById={this.dialogLabelId}\r\n localization={this.localization}\r\n firstDayOfWeek={this.firstDayOfWeek}\r\n focusedDayRef={this.processFocusedDayNode}\r\n min={minDate}\r\n max={maxDate}\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n </Host>\r\n );\r\n }\r\n}\r\n"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{h as n,F as o,r as t,c as e,H as s,g as c}from"./p-53c8538c.js";import{i as r}from"./p-5950644a.js";import{c as i}from"./p-6a1980b4.js";import{v as d}from"./p-5d7f4ff2.js";function l(n){if(n instanceof Element){return n.localName}if(n.nodeName.includes(":")){return n.nodeName.substring(n.nodeName.indexOf(":")+1)}return n.nodeName}class a{constructor(){this.name="Al"}render(o,{mapNodeToJsx:t,path:e}){const s=e.some((n=>{const o=l(n);return o==="Al"||o==="Opschrift"}));const c=t(o.childNodes);return s?n("span",{role:"paragraph"},c):n("p",null,c)}}class u{constructor(){this.name="Bron"}render(o,{mapNodeToJsx:t}){return n("span",{class:"dso-ozon-bron"},t(o.childNodes))}}class h{constructor(){this.name="#document"}render(t,{mapNodeToJsx:e}){return n(o,null,e(t.childNodes))}}class f{constructor(){this.name=["ExtRef","ExtIoRef"]}render(o,{mapNodeToJsx:t}){const e=o.tagName==="ExtIoRef"?o.getAttribute("href"):o.getAttribute("ref");return n("a",{target:"_blank",rel:"noopener noreferrer",href:e!==null&&e!==void 0?e:undefined},n("span",{class:"sr-only"},"opent in nieuw venster "),t(o.childNodes))}}class p{constructor(){this.name=["<fallback>"]}render(o,{mapNodeToJsx:t}){return n("span",{class:`fallback od-${l(o)}`},t(o.childNodes))}}const g=({bijschrift:t,bron:e,mapNodeToJsx:s})=>n("span",{class:"figuur-bijschrift"},t&&t.inhoud&&s(t.inhoud),e&&n(o,null,`${t?" ":""}(bron: `,s(e),")"));class m{constructor(){this.name=["Figuur"]}setImageDimensions(n,o){const{naturalHeight:t,naturalWidth:e}=n;n.height=t*(o/100);n.width=e*(o/100)}onImageLoad(n,o){if(n.target instanceof HTMLImageElement&&o){this.setImageDimensions(n.target,o)}}render(o,{mapNodeToJsx:t}){var e,s,c,r,i,d;const a=Array.from(o.childNodes);const u=(e=a.find((n=>l(n)==="Titel")))===null||e===void 0?void 0:e.textContent;const h=a.find((n=>l(n)==="Bron"));const f=a.find((n=>l(n)==="Illustratie"));const p=a.find((n=>l(n)==="Bijschrift"));if(f instanceof Element){const o={naam:f.getAttribute("naam"),breedte:f.getAttribute("breedte"),hoogte:f.getAttribute("hoogte"),uitlijning:f.getAttribute("uitlijning"),alt:f.getAttribute("alt"),schaal:f.getAttribute("schaal")};const e=p instanceof Element?{inhoud:p.childNodes,locatie:(s=p.getAttribute("locatie"))!==null&&s!==void 0?s:"onder"}:undefined;return n("div",{class:`dso-ozon-figuur ${e?`bijschrift-${e.locatie}`:"onder"}`},u&&n("span",{class:"figuur-titel"},u),(e===null||e===void 0?void 0:e.locatie)==="boven"&&n(g,{bijschrift:e,bron:h,mapNodeToJsx:t}),n("dso-image-overlay",null,u&&n("div",{slot:"titel"},n("span",null,u)),n("img",{src:(c=o.naam)!==null&&c!==void 0?c:undefined,alt:(d=(i=(r=o.alt)!==null&&r!==void 0?r:u)!==null&&i!==void 0?i:o.naam)!==null&&d!==void 0?d:undefined,onLoad:n=>this.onImageLoad(n,Number(o.schaal))}),(e||h)&&n("div",{slot:"bijschrift"},n(g,{bijschrift:e,bron:h,mapNodeToJsx:t}))),((e===null||e===void 0?void 0:e.locatie)==="onder"||!e&&h)&&n(g,{bijschrift:e,bron:h,mapNodeToJsx:t}))}}}class z{constructor(){this.name=["Inhoud","ContainerBlocksType","BlockMixedcontentMetMaximaleInlinesMarkersPopupsType"]}render(o,{mapNodeToJsx:t}){return n("div",{class:"dso-rich-content"},t(o.childNodes))}}class b{constructor(){this.name=["InlineTekstAfbeelding","Illustratie"]}render(o){var t,e,s,c;return n("img",{src:(t=o.getAttribute("naam"))!==null&&t!==void 0?t:undefined,alt:(e=o.getAttribute("naam"))!==null&&e!==void 0?e:undefined,height:(s=o.getAttribute("hoogte"))!==null&&s!==void 0?s:undefined,width:(c=o.getAttribute("breedte"))!==null&&c!==void 0?c:undefined})}}class v{constructor(){this.name=["sub","sup","strong","b","u","i","br"]}render(o,{mapNodeToJsx:t}){if(o.localName==="br"){return n("br",null)}const e=o.localName;return n(e,null,t(o.childNodes))}}class x{constructor(){this.name="IntIoRef"}render(o,{mapNodeToJsx:t,emitAnchorClick:e}){const s=o.getAttribute("ref");if(!s){return t(o.childNodes)}const c=n=>{n.preventDefault();const o=n.currentTarget;if(!(o instanceof HTMLAnchorElement)){return}const{href:t}=o;e({node:this.name,href:t,documentComponent:s,originalEvent:n})};return n("a",{href:`#${s}`,onClick:c},t(o.childNodes))}}class w{constructor(){this.name="IntRef"}render(o,{mapNodeToJsx:t,emitAnchorClick:e}){const s=o.getAttribute("ref");if(!s){return t(o.childNodes)}const c=n=>{n.preventDefault();const o=n.currentTarget;if(!(o instanceof HTMLAnchorElement)){return}const{href:t}=o;e({node:this.name,href:t,documentComponent:s,originalEvent:n})};return n("a",{href:`#${s}`,onClick:c},t(o.childNodes))}}class y{constructor(){this.name="Lijst"}render(o,{mapNodeToJsx:t}){var e;const s=Array.from(o.childNodes);const c=s.find((n=>l(n)==="Lijstaanhef"));const r=s.find((n=>l(n)==="Lijstsluiting"));const i=s.filter((n=>l(n)==="Li"));return n("div",{class:"dso-ozon-lijst od-Lijst"},c&&t(c),n("ul",{class:(e=o.getAttribute("type"))!==null&&e!==void 0?e:""},i.map((o=>{var e;const s=Array.from(o.childNodes);const c=(e=s.find((n=>l(n)==="LiNummer")))===null||e===void 0?void 0:e.childNodes;return n("li",{class:"od-Li"},c&&n("span",{class:"od-LiNummer"},t(c)),t(s.filter((n=>l(n)!=="LiNummer"))))}))),r&&t(r))}}class k{constructor(){this.name="NieuweTekst"}render(o,{mapNodeToJsx:t}){return n("ins",null,t(o.childNodes))}}class j{constructor(){this.name="Noot";this.handles=["NootNummer"]}identify(){return"Noot"}render(t,{mapNodeToJsx:e,state:s,setState:c}){var r,i;const d=t.getAttribute("id");if(!d){console.error("Noot node without id",t);return n(o,null)}const a=`dso-ozon-note-${d}`;const u=Array.from(t.childNodes);const h=(i=(r=u.find((n=>l(n)==="NootNummer")))===null||r===void 0?void 0:r.textContent)!==null&&i!==void 0?i:d;return n(o,null,n("sup",null,n("button",{type:"button",class:"toggle-note","aria-describedby":a,onClick:()=>c===null||c===void 0?void 0:c(s===d?undefined:d),onBlur:()=>c===null||c===void 0?void 0:c(undefined),"aria-expanded":s===d?"true":"false"},h)),n("dso-tooltip",{active:s===d,id:a,stateless:true,descriptive:true},n("span",{role:"section"},e(Array.from(t.querySelectorAll(":scope > Al"))))))}}class N{constructor(){this.name="Opschrift"}render(t,{mapNodeToJsx:e}){return n(o,null,e(t.childNodes))}}function T(n,o){const t=Array.from(o);const e=B(t);return{totalWidth:e,count:n,columns:t.map(((n,o)=>{var t;const s=n.getAttribute("colnum");return{name:(t=n.getAttribute("colname"))!==null&&t!==void 0?t:"",number:s?parseInt(s,10):o+1,width:E(e,n)}}))}}function B(n){return n.reduce(((n,o)=>{var t,e;const s=(e=(t=o.getAttribute("colwidth"))===null||t===void 0?void 0:t.replace(/[^0-9]/,""))!==null&&e!==void 0?e:"";const c=parseInt(s,10);return n+(isNaN(c)?0:c)}),0)}function E(n,o){const t=o.getAttribute("colwidth");if(!t){return undefined}if(t==="*"){return"100%"}if(t.includes("*")||t.match(/^[\d+]$/)){const o=parseInt(t.replace(/[^0-9]/,""),10);return`${Math.round(o/n*100)}%`}return t}const A=({colspecs:t})=>t.columns.length>0?n("colgroup",null,t.columns.map((o=>n("col",{style:{width:o.width}})))):n(o,null);function C(n){return{moreRows:n.getAttribute("morerows"),nameStart:n.getAttribute("namest"),nameEnd:n.getAttribute("nameend")}}function I({columns:n},o,t){const e=n.find((n=>n.name===o));const s=n.find((n=>n.name===t));if(!e||!s){return undefined}const c=s.number-e.number+1;return c===1?undefined:c}const L=({context:{mapNodeToJsx:o},colspecs:t,cell:e})=>{const{moreRows:s,nameStart:c,nameEnd:r}=C(e);const i={rowSpan:s?parseInt(s,10)+1:undefined,colSpan:t&&c&&r?I(t,c,r):undefined};return n("td",Object.assign({},i),o(e.childNodes))};const J=({context:t,colspecs:e,rows:s})=>n(o,null,s.map((o=>n("tr",null,Array.from(o.children).map((o=>n(L,{cell:o,colspecs:e,context:t})))))));function D(n){var o,t,e;const s=n.querySelector(":scope > tgroup");const c=(o=s===null||s===void 0?void 0:s.getAttribute("cols"))!==null&&o!==void 0?o:undefined;const r=c?parseInt(c,10):undefined;return{caption:(e=(t=n.querySelector(":scope > title"))===null||t===void 0?void 0:t.textContent)!==null&&e!==void 0?e:undefined,colspecs:s&&r?T(r,s.querySelectorAll(":scope > colspec")):undefined,headRows:Array.from(n.querySelectorAll(":scope > tgroup > thead > row")),bodyRows:Array.from(n.querySelectorAll(":scope > tgroup > tbody > row")),editAction:n.getAttribute("wijzigactie")}}class R{constructor(){this.name="table";this.handles=["title","tgroup","colspec","thead","tbody","row","cell"];this.id=d()}render(o,t){const{caption:e,colspecs:s,headRows:c,bodyRows:r,editAction:d}=D(o);const a=Array.from(o.childNodes).find((n=>l(n)==="Bron"));return n("dso-table",null,n("table",Object.assign({class:i("table dso-table-vertical-lines",{"dso-del":d==="verwijder","dso-ins":d==="voegtoe"})},a?{"aria-describedby":this.id}:{}),e&&n("caption",null,e),s&&n(A,{colspecs:s}),c.length>0&&n("thead",null,n(J,{rows:c,colspecs:s,context:t})),r.length>0&&n("tbody",null,n(J,{rows:r,colspecs:s,context:t}))),a&&n("div",{id:this.id},t.mapNodeToJsx(a)))}}class M{constructor(){this.name="#text"}render(t){return n(o,null,t.textContent)}}class O{constructor(){this.name="VerwijderdeTekst"}render(o,{mapNodeToJsx:t}){return n("del",null,t(o.childNodes))}}class ${constructor(){this.mappers=[new M,new h,new z,new N,new w,new f,new a,new v,new b,new j,new R,new x,new m,new y,new u,new k,new O];this.skip=this.mappers.reduce(((n,o)=>{if(o.handles){n.push(...o.handles)}return n}),[]);this.fallbackNode=new p;this.domParser=new DOMParser}findMapper(n){var o;if(this.skip.includes(n)){return undefined}return(o=this.mappers.find((o=>{if(Array.isArray(o.name)){return o.name.includes(n)}return o.name===n})))!==null&&o!==void 0?o:this.fallbackNode}mapNodeToJsx(t,e,s){var c;if(t instanceof NodeList){return n(o,null,Array.from(t).map((n=>this.mapNodeToJsx(n,e,s))))}if(Array.isArray(t)){return n(o,null,t.map((n=>this.mapNodeToJsx(n,e,s))))}const r=l(t);const i=this.findMapper(r);if(!i){return n(o,null)}const d=(c=i.identify)===null||c===void 0?void 0:c.call(i,t);const a=d?e.state[d]:undefined;const u=d?n=>e.setState(Object.assign(Object.assign({},e.state),{[d]:n})):undefined;return i.render(t,{mapNodeToJsx:n=>this.mapNodeToJsx(n,e,[...s,t]),emitAnchorClick:e.emitAnchorClick,setState:u,state:a,path:s})}transform(n,o){if(!this.cache||this.cache.xml!==n){this.cache={xml:n,document:this.domParser.parseFromString(n,"text/xml")}}const t=this.cache.document;return this.mapNodeToJsx(t.getRootNode(),o,[])}}const H="ins.sc-dso-ozon-content {\n background-color: #e4f1d4;\n box-shadow: 0 1px 3px 1px rgba(0, 0, 0, 0.25);\n color: #000;\n text-decoration: none;\n}\n\n.sc-dso-ozon-content-h:not([inline]) {\n display: block;\n}\n\n[inline].sc-dso-ozon-content-h {\n display: inline;\n}\n\n[deleted].sc-dso-ozon-content-h *.sc-dso-ozon-content {\n text-decoration: line-through !important;\n}\n\n[interactive].sc-dso-ozon-content-h {\n background-color: transparent;\n color: #39870c;\n text-decoration: underline;\n cursor: pointer;\n color: #275937;\n font-weight: 600;\n text-decoration: none;\n}\n[interactive].sc-dso-ozon-content-h:hover, [interactive].sc-dso-ozon-content-h:focus {\n color: #676cb0;\n text-decoration: underline;\n}\n[interactive].sc-dso-ozon-content-h:active {\n text-decoration: none;\n}\n\n[interactive=sub].sc-dso-ozon-content-h {\n color: #191919;\n}\n\n.deleted-start.sc-dso-ozon-content, .deleted-end.sc-dso-ozon-content {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n border: 0;\n}\n\nbutton.toggle-note.sc-dso-ozon-content {\n display: inline-block;\n font-size: 1em;\n font-weight: 500;\n margin-bottom: 0;\n text-decoration: none;\n touch-action: manipulation;\n text-align: left;\n user-select: none;\n vertical-align: middle;\n border: 0;\n color: #39870c;\n line-height: 1;\n padding: 0;\n background-color: transparent;\n}\nbutton.toggle-note.sc-dso-ozon-content:focus, button.toggle-note.sc-dso-ozon-content:focus-visible {\n outline-offset: 2px;\n}\nbutton.toggle-note.sc-dso-ozon-content:active {\n outline: 0;\n}\nbutton.toggle-note[disabled].sc-dso-ozon-content {\n color: #afcf9d;\n}\nbutton.toggle-note[disabled].dso-spinner-left.sc-dso-ozon-content, button.toggle-note[disabled].dso-spinner-right.sc-dso-ozon-content {\n color: #39870c;\n}\nbutton.toggle-note.sc-dso-ozon-content:not([disabled]):hover {\n color: #275937;\n text-decoration: underline;\n text-underline-position: under;\n}\nbutton.toggle-note.sc-dso-ozon-content:not([disabled]):active {\n color: #173521;\n}\nbutton.toggle-note.btn-align.sc-dso-ozon-content {\n line-height: calc(1.5em - 1px);\n padding: 11px 0;\n position: relative;\n}\nbutton.toggle-note.dso-spinner-left.sc-dso-ozon-content::before {\n background-image: url(\"data:image/svg+xml,%3Csvg class='spinner' viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg' %3E%3Cstyle%3E .spinner %7B animation: rotator 8s linear infinite; transform-origin: center; %7D @keyframes rotator %7B 0%25 %7B transform: rotate(0deg); %7D 100%25 %7B transform: rotate(360deg); %7D %7D .path %7B stroke-dasharray: 265; stroke-dashoffset: 0; transform-origin: center; stroke: %2339870c; animation: dash 2s ease-in-out infinite; %7D @keyframes dash %7B 0%25 %7B stroke-dashoffset: 265; %7D 50%25 %7B stroke-dashoffset: 65; transform:rotate(90deg); %7D 100%25 %7B stroke-dashoffset: 265; transform:rotate(360deg); %7D %3C/style%3E%3Ccircle class='path' fill='none' stroke-width='10' stroke-linecap='butt' cx='50' cy='50' r='45'%3E%3C/circle%3E%3C/svg%3E\");\n background-repeat: no-repeat;\n content: \"\";\n display: inline-block;\n height: 24px;\n vertical-align: middle;\n width: 24px;\n margin-right: 8px;\n}\nbutton.toggle-note.dso-spinner-right.sc-dso-ozon-content::after {\n background-image: url(\"data:image/svg+xml,%3Csvg class='spinner' viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg' %3E%3Cstyle%3E .spinner %7B animation: rotator 8s linear infinite; transform-origin: center; %7D @keyframes rotator %7B 0%25 %7B transform: rotate(0deg); %7D 100%25 %7B transform: rotate(360deg); %7D %7D .path %7B stroke-dasharray: 265; stroke-dashoffset: 0; transform-origin: center; stroke: %2339870c; animation: dash 2s ease-in-out infinite; %7D @keyframes dash %7B 0%25 %7B stroke-dashoffset: 265; %7D 50%25 %7B stroke-dashoffset: 65; transform:rotate(90deg); %7D 100%25 %7B stroke-dashoffset: 265; transform:rotate(360deg); %7D %3C/style%3E%3Ccircle class='path' fill='none' stroke-width='10' stroke-linecap='butt' cx='50' cy='50' r='45'%3E%3C/circle%3E%3C/svg%3E\");\n background-repeat: no-repeat;\n content: \"\";\n display: inline-block;\n height: 24px;\n vertical-align: middle;\n width: 24px;\n margin-left: 8px;\n}\nbutton.toggle-note.sc-dso-ozon-content dso-icon.sc-dso-ozon-content + span.sc-dso-ozon-content:not(.sr-only), button.toggle-note.sc-dso-ozon-content svg.di.sc-dso-ozon-content + span.sc-dso-ozon-content:not(.sr-only), button.toggle-note.sc-dso-ozon-content span.sc-dso-ozon-content:not(.sr-only) + dso-icon.sc-dso-ozon-content, button.toggle-note.sc-dso-ozon-content span.sc-dso-ozon-content:not(.sr-only) + svg.di.sc-dso-ozon-content {\n margin-left: 8px;\n}\nbutton.toggle-note.sc-dso-ozon-content svg.di.di-chevron-down.sc-dso-ozon-content + span.sc-dso-ozon-content:not(.sr-only), button.toggle-note.sc-dso-ozon-content svg.di.di-chevron-up.sc-dso-ozon-content + span.sc-dso-ozon-content:not(.sr-only), button.toggle-note.sc-dso-ozon-content span.sc-dso-ozon-content:not(.sr-only) + svg.di.di-chevron-down.sc-dso-ozon-content, button.toggle-note.sc-dso-ozon-content span.sc-dso-ozon-content:not(.sr-only) + svg.di.di-chevron-up.sc-dso-ozon-content {\n margin-left: 4px;\n}\nbutton.toggle-note.sc-dso-ozon-content dso-icon[icon=chevron-left].sc-dso-ozon-content + span.sc-dso-ozon-content:not(.sr-only), button.toggle-note.sc-dso-ozon-content dso-icon[icon=chevron-right].sc-dso-ozon-content + span.sc-dso-ozon-content:not(.sr-only), button.toggle-note.sc-dso-ozon-content svg.di.di-angle-down.sc-dso-ozon-content + span.sc-dso-ozon-content:not(.sr-only), button.toggle-note.sc-dso-ozon-content svg.di.di-angle-up.sc-dso-ozon-content + span.sc-dso-ozon-content:not(.sr-only), button.toggle-note.sc-dso-ozon-content span.sc-dso-ozon-content:not(.sr-only) + svg.di.di-angle-down.sc-dso-ozon-content, button.toggle-note.sc-dso-ozon-content span.sc-dso-ozon-content:not(.sr-only) + svg.di.di-angle-up.sc-dso-ozon-content, button.toggle-note.sc-dso-ozon-content span.sc-dso-ozon-content:not(.sr-only) + dso-icon[icon=chevron-left].sc-dso-ozon-content, button.toggle-note.sc-dso-ozon-content span.sc-dso-ozon-content:not(.sr-only) + dso-icon[icon=chevron-right].sc-dso-ozon-content {\n margin-left: 0;\n}\nbutton.toggle-note.sc-dso-ozon-content dso-icon.sc-dso-ozon-content, button.toggle-note.sc-dso-ozon-content svg.di.sc-dso-ozon-content, button.toggle-note.sc-dso-ozon-content span.sc-dso-ozon-content {\n vertical-align: middle;\n}\n\nspan[role=section].sc-dso-ozon-content, span[role=paragraph].sc-dso-ozon-content {\n display: block;\n}\n\n.fallback.sc-dso-ozon-content {\n display: block;\n}\n\n.od-Term.sc-dso-ozon-content {\n font-weight: 700;\n}\n\n.od-Definitie.sc-dso-ozon-content, .od-Tussenkop.sc-dso-ozon-content {\n font-style: italic;\n}\n\n.od-Inhoud.sc-dso-ozon-content, .od-Inhoud.sc-dso-ozon-content > .od-Lijst.sc-dso-ozon-content, .od-IntIoRef.sc-dso-ozon-content, .od-Lidnr.sc-dso-ozon-content, .od-LiNr.sc-dso-ozon-content, .od-Opschrift.sc-dso-ozon-content, .od-Tussenkop.sc-dso-ozon-content {\n display: inline;\n}\n\n.od-Al.sc-dso-ozon-content {\n margin-bottom: 0.75em;\n}\n\n.od-IntIoRef.sc-dso-ozon-content {\n border-bottom: 1px dotted;\n}\n\n.dso-ozon-bron.sc-dso-ozon-content {\n font-style: italic;\n font-size: 0.75rem;\n}\n\n.dso-ozon-figuur.sc-dso-ozon-content {\n margin-bottom: 16px;\n}\n.dso-ozon-figuur.sc-dso-ozon-content .figuur-bijschrift.sc-dso-ozon-content {\n display: block;\n font-size: 0.75rem;\n font-style: italic;\n}\n.dso-ozon-figuur.bijschrift-boven.sc-dso-ozon-content .figuur-bijschrift.sc-dso-ozon-content {\n padding-bottom: 0.25rem;\n}\n.dso-ozon-figuur.bijschrift-onder.sc-dso-ozon-content .figuur-bijschrift.sc-dso-ozon-content {\n padding-top: 0.25rem;\n}\n.dso-ozon-figuur.sc-dso-ozon-content .figuur-titel.sc-dso-ozon-content {\n color: #8b4a6a;\n display: block;\n font-weight: 500;\n padding-bottom: 0.5rem;\n}\n\n.dso-ozon-lijst.sc-dso-ozon-content span.od-Lijstaanhef.sc-dso-ozon-content, .dso-ozon-lijst.sc-dso-ozon-content span.od-Lijstsluiting.sc-dso-ozon-content {\n margin-bottom: 1rem;\n}\n.dso-ozon-lijst.sc-dso-ozon-content ul.expliciet.sc-dso-ozon-content {\n list-style: none;\n}\n.dso-ozon-lijst.sc-dso-ozon-content ul.expliciet.sc-dso-ozon-content > .od-Li.sc-dso-ozon-content {\n position: relative;\n}\n.dso-ozon-lijst.sc-dso-ozon-content ul.expliciet.sc-dso-ozon-content > .od-Li.sc-dso-ozon-content > span.od-LiNummer.sc-dso-ozon-content {\n position: absolute;\n left: -44px;\n text-align: right;\n width: 40px;\n}\n\n.od-Tabel.sc-dso-ozon-content thead.sc-dso-ozon-content {\n font-weight: 600;\n}\n\n.od-Kadertekst.sc-dso-ozon-content {\n border: 1px solid #e5e5e5;\n margin-bottom: 1rem;\n padding: 1rem;\n}\n\n.dso-del.sc-dso-ozon-content {\n background-color: #f5d8dc;\n color: #000;\n text-decoration: line-through;\n}\n.dso-del.sc-dso-ozon-content a.sc-dso-ozon-content {\n color: #000;\n}\n\n.dso-ins.sc-dso-ozon-content {\n background-color: #e4f1d4;\n box-shadow: 0 1px 3px 1px rgba(0, 0, 0, 0.25);\n color: #000;\n}\n.dso-ins.sc-dso-ozon-content a.sc-dso-ozon-content {\n color: #000;\n}";const S=class{constructor(n){t(this,n);this.dsoAnchorClick=e(this,"dsoAnchorClick",7);this.dsoClick=e(this,"dsoClick",7);this.mapper=new $;this.content=undefined;this.inline=false;this.deleted=false;this.interactive=false;this.state={}}handleHostOnClick(n){if(this.interactive!==""&&!this.interactive){return}const o=n.composedPath().find((n=>n===this.host||n instanceof HTMLElement&&r(n)))===this.host;if(o){this.dsoClick.emit({originalEvent:n})}}render(){var o;const t={state:this.state,setState:n=>this.state=n,emitAnchorClick:this.dsoAnchorClick.emit};const e=this.mapper.transform((o=this.content)!==null&&o!==void 0?o:"",t);if(this.deleted){return n("section",null,n("slot",{name:"prefix"}),n("span",{class:"deleted-start"},"Begin verwijderd element"),e,n("span",{class:"deleted-end"},"Einde verwijderd element"),n("slot",{name:"suffix"}))}return n(s,{onClick:n=>this.handleHostOnClick(n)},n("slot",{name:"prefix"}),e,n("slot",{name:"suffix"}))}get host(){return c(this)}};S.style=H;export{S as dso_ozon_content};
|
|
2
|
+
//# sourceMappingURL=p-180255f9.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["getNodeName","node","Element","localName","nodeName","includes","substring","indexOf","OzonContentAlNode","constructor","this","name","render","mapNodeToJsx","path","nestedAl","some","n","content","childNodes","h","role","OzonContentBronNode","class","OzonContentDocumentNode","Fragment","OzonContentExtRefNode","href","tagName","getAttribute","target","rel","undefined","OzonContentFallbackNode","Bijschrift","bijschrift","bron","inhoud","OzonContentFiguurNode","setImageDimensions","imageElement","schaal","naturalHeight","naturalWidth","height","width","onImageLoad","event","HTMLImageElement","Array","from","titel","_a","find","textContent","illustratieNode","bijschriftNode","illustratie","naam","breedte","hoogte","uitlijning","alt","locatie","_b","slot","src","_c","_f","_e","_d","onLoad","Number","OzonContentInhoudNode","OzonContentInlineTekstAfbeeldingNode","OzonContentInlineNodes","Tag","OzonContentIntIoRefNode","emitAnchorClick","ref","intRefOnClick","preventDefault","currentTarget","HTMLAnchorElement","documentComponent","originalEvent","onClick","OzonContentIntRefNode","OzonContentLijstNode","aanhef","sluiting","listItems","filter","map","item","itemNodes","liNummer","OzonContentNieuweTekstNode","OzonContentNootNode","handles","identify","state","openNoteId","setState","noteId","console","error","noteControlsId","nootNummer","type","onBlur","active","id","stateless","descriptive","querySelectorAll","OzonContentOpschriftNode","mapColspecs","count","nodeList","elements","totalWidth","getTotalWidth","columns","element","index","colNumber","number","parseInt","getWidth","reduce","replace","colWidth","isNaN","match","Math","round","Colgroup","colspecs","length","colspec","style","getData","cell","moreRows","nameStart","nameEnd","getColspan","colspecStart","c","colspecEnd","colspan","Cell","context","td","rowSpan","colSpan","Object","assign","Rows","rows","row","children","mapData","tgroup","querySelector","colAttribute","columnCount","caption","headRows","bodyRows","editAction","OzonContentTableNode","uuidv4","clsx","OzonContentTextNode","OzonContentVerwijderdeTekstNode","Mapper","mappers","skip","t","m","push","fallbackNode","domParser","DOMParser","findMapper","isArray","NodeList","mapper","identity","call","s","transform","xml","cache","document","parseFromString","xmlDocument","getRootNode","ozonContentCss","OzonContent","handleHostOnClick","e","interactive","doIt","composedPath","eventTarget","host","HTMLElement","isTabbable","dsoClick","emit","dsoAnchorClick","transformed","deleted","Host"],"sources":["./src/components/ozon-content/get-node-name.function.ts","./src/components/ozon-content/nodes/al.node.tsx","./src/components/ozon-content/nodes/bron.node.tsx","./src/components/ozon-content/nodes/document.node.tsx","./src/components/ozon-content/nodes/ext-ref.node.tsx","./src/components/ozon-content/nodes/fallback.node.tsx","./src/components/ozon-content/nodes/figuur.node.tsx","./src/components/ozon-content/nodes/inhoud.node.tsx","./src/components/ozon-content/nodes/inline-tekst-afbeelding.node.tsx","./src/components/ozon-content/nodes/inline.nodes.tsx","./src/components/ozon-content/nodes/int-io-ref.node.tsx","./src/components/ozon-content/nodes/int-ref.node.tsx","./src/components/ozon-content/nodes/lijst.node.tsx","./src/components/ozon-content/nodes/nieuwe-tekst.node.tsx","./src/components/ozon-content/nodes/noot.node.tsx","./src/components/ozon-content/nodes/opschrift.node.tsx","./src/components/ozon-content/nodes/table.node/colspec/colspec-mapper.ts","./src/components/ozon-content/nodes/table.node/table-colgroup.tsx","./src/components/ozon-content/nodes/table.node/table-cell.tsx","./src/components/ozon-content/nodes/table.node/table-rows.tsx","./src/components/ozon-content/nodes/table.node/table.node.tsx","./src/components/ozon-content/nodes/text.node.tsx","./src/components/ozon-content/nodes/verwijderde-tekst.node.tsx","./src/components/ozon-content/ozon-content-mapper.tsx","./src/components/ozon-content/ozon-content.scss?tag=dso-ozon-content&encapsulation=scoped","./src/components/ozon-content/ozon-content.tsx"],"sourcesContent":["export function getNodeName(node: Node): string {\r\n if (node instanceof Element) {\r\n return node.localName;\r\n }\r\n\r\n if (node.nodeName.includes(\":\")) {\r\n return node.nodeName.substring(node.nodeName.indexOf(\":\") + 1);\r\n }\r\n\r\n return node.nodeName;\r\n}\r\n","import { h } from \"@stencil/core\";\r\n\r\nimport { getNodeName } from \"../get-node-name.function\";\r\nimport { OzonContentNodeContext } from \"../ozon-content-node-context.interface\";\r\nimport { OzonContentNode } from \"../ozon-content-node.interface\";\r\n\r\nexport class OzonContentAlNode implements OzonContentNode {\r\n name = \"Al\";\r\n\r\n render(node: Element, { mapNodeToJsx, path }: OzonContentNodeContext) {\r\n const nestedAl = path.some((n) => {\r\n const nodeName = getNodeName(n);\r\n\r\n return nodeName === \"Al\" || nodeName === \"Opschrift\";\r\n });\r\n\r\n const content = mapNodeToJsx(node.childNodes);\r\n\r\n return nestedAl ? <span role=\"paragraph\">{content}</span> : <p>{content}</p>;\r\n }\r\n}\r\n","import { h } from \"@stencil/core\";\r\n\r\nimport { OzonContentNodeContext } from \"../ozon-content-node-context.interface\";\r\nimport { OzonContentNode } from \"../ozon-content-node.interface\";\r\n\r\nexport class OzonContentBronNode implements OzonContentNode {\r\n name = \"Bron\";\r\n\r\n render(node: Element, { mapNodeToJsx }: OzonContentNodeContext) {\r\n return <span class=\"dso-ozon-bron\">{mapNodeToJsx(node.childNodes)}</span>;\r\n }\r\n}\r\n","import { Fragment, h } from \"@stencil/core\";\r\n\r\nimport { OzonContentNodeContext } from \"../ozon-content-node-context.interface\";\r\nimport { OzonContentNode } from \"../ozon-content-node.interface\";\r\n\r\nexport class OzonContentDocumentNode implements OzonContentNode {\r\n name = \"#document\";\r\n\r\n render(node: Node, { mapNodeToJsx }: OzonContentNodeContext) {\r\n return <Fragment>{mapNodeToJsx(node.childNodes)}</Fragment>;\r\n }\r\n}\r\n","import { h } from \"@stencil/core\";\r\n\r\nimport { OzonContentNodeContext } from \"../ozon-content-node-context.interface\";\r\nimport { OzonContentNode } from \"../ozon-content-node.interface\";\r\n\r\nexport class OzonContentExtRefNode implements OzonContentNode {\r\n name = [\"ExtRef\", \"ExtIoRef\"];\r\n\r\n render(node: Element, { mapNodeToJsx }: OzonContentNodeContext) {\r\n const href = node.tagName === \"ExtIoRef\" ? node.getAttribute(\"href\") : node.getAttribute(\"ref\");\r\n\r\n return (\r\n <a target=\"_blank\" rel=\"noopener noreferrer\" href={href ?? undefined}>\r\n <span class=\"sr-only\">opent in nieuw venster </span>\r\n {mapNodeToJsx(node.childNodes)}\r\n </a>\r\n );\r\n }\r\n}\r\n","import { h } from \"@stencil/core\";\r\n\r\nimport { getNodeName } from \"../get-node-name.function\";\r\nimport { OzonContentNodeContext } from \"../ozon-content-node-context.interface\";\r\nimport { OzonContentNode } from \"../ozon-content-node.interface\";\r\n\r\nexport class OzonContentFallbackNode implements OzonContentNode {\r\n // This name does not match any elements\r\n name = [\"<fallback>\"];\r\n\r\n render(node: Node, { mapNodeToJsx }: OzonContentNodeContext) {\r\n return <span class={`fallback od-${getNodeName(node)}`}>{mapNodeToJsx(node.childNodes)}</span>;\r\n }\r\n}\r\n","import { Fragment, h, JSX } from \"@stencil/core\";\r\n\r\nimport { getNodeName } from \"../get-node-name.function\";\r\nimport { OzonContentNodeContext } from \"../ozon-content-node-context.interface\";\r\nimport { OzonContentNode } from \"../ozon-content-node.interface\";\r\n\r\ntype BijschriftProps = {\r\n bijschrift?: IBijschrift;\r\n bron?: ChildNode;\r\n mapNodeToJsx: (node: Node | NodeList | Node[]) => JSX.Element;\r\n};\r\n\r\ninterface IBijschrift {\r\n inhoud: NodeListOf<ChildNode>;\r\n locatie: string;\r\n}\r\n\r\nconst Bijschrift = ({ bijschrift, bron, mapNodeToJsx }: BijschriftProps): HTMLSpanElement => {\r\n return (\r\n <span class=\"figuur-bijschrift\">\r\n {bijschrift && bijschrift.inhoud && mapNodeToJsx(bijschrift.inhoud)}\r\n {bron && (\r\n <Fragment>\r\n {`${bijschrift ? \" \" : \"\"}(bron: `}\r\n {mapNodeToJsx(bron)})\r\n </Fragment>\r\n )}\r\n </span>\r\n );\r\n};\r\n\r\nexport class OzonContentFiguurNode implements OzonContentNode {\r\n name = [\"Figuur\"];\r\n\r\n setImageDimensions(imageElement: HTMLImageElement, schaal: number) {\r\n const { naturalHeight, naturalWidth } = imageElement;\r\n\r\n imageElement.height = naturalHeight * (schaal / 100);\r\n imageElement.width = naturalWidth * (schaal / 100);\r\n }\r\n\r\n onImageLoad(event: Event, schaal?: number) {\r\n if (event.target instanceof HTMLImageElement && schaal) {\r\n this.setImageDimensions(event.target, schaal);\r\n }\r\n }\r\n\r\n render(node: Element, { mapNodeToJsx }: OzonContentNodeContext) {\r\n const childNodes = Array.from(node.childNodes);\r\n const titel = childNodes.find((n) => getNodeName(n) === \"Titel\")?.textContent;\r\n const bron = childNodes.find((n) => getNodeName(n) === \"Bron\");\r\n\r\n const illustratieNode = childNodes.find((n) => getNodeName(n) === \"Illustratie\");\r\n const bijschriftNode = childNodes.find((n) => getNodeName(n) === \"Bijschrift\");\r\n\r\n if (illustratieNode instanceof Element) {\r\n const illustratie = {\r\n naam: illustratieNode.getAttribute(\"naam\"),\r\n breedte: illustratieNode.getAttribute(\"breedte\"),\r\n hoogte: illustratieNode.getAttribute(\"hoogte\"),\r\n uitlijning: illustratieNode.getAttribute(\"uitlijning\"),\r\n alt: illustratieNode.getAttribute(\"alt\"),\r\n schaal: illustratieNode.getAttribute(\"schaal\"),\r\n };\r\n\r\n const bijschrift =\r\n bijschriftNode instanceof Element\r\n ? {\r\n inhoud: bijschriftNode.childNodes,\r\n locatie: bijschriftNode.getAttribute(\"locatie\") ?? \"onder\",\r\n }\r\n : undefined;\r\n\r\n return (\r\n <div class={`dso-ozon-figuur ${bijschrift ? `bijschrift-${bijschrift.locatie}` : \"onder\"}`}>\r\n {titel && <span class=\"figuur-titel\">{titel}</span>}\r\n {bijschrift?.locatie === \"boven\" && (\r\n <Bijschrift bijschrift={bijschrift} bron={bron} mapNodeToJsx={mapNodeToJsx} />\r\n )}\r\n <dso-image-overlay>\r\n {titel && (\r\n <div slot=\"titel\">\r\n <span>{titel}</span>\r\n </div>\r\n )}\r\n <img\r\n src={illustratie.naam ?? undefined}\r\n alt={illustratie.alt ?? titel ?? illustratie.naam ?? undefined}\r\n onLoad={(event: Event) => this.onImageLoad(event, Number(illustratie.schaal))}\r\n />\r\n {(bijschrift || bron) && (\r\n <div slot=\"bijschrift\">\r\n <Bijschrift bijschrift={bijschrift} bron={bron} mapNodeToJsx={mapNodeToJsx} />\r\n </div>\r\n )}\r\n </dso-image-overlay>\r\n {(bijschrift?.locatie === \"onder\" || (!bijschrift && bron)) && (\r\n <Bijschrift bijschrift={bijschrift} bron={bron} mapNodeToJsx={mapNodeToJsx} />\r\n )}\r\n </div>\r\n );\r\n }\r\n }\r\n}\r\n","import { h } from \"@stencil/core\";\r\n\r\nimport { OzonContentNodeContext } from \"../ozon-content-node-context.interface\";\r\nimport { OzonContentNode } from \"../ozon-content-node.interface\";\r\n\r\nexport class OzonContentInhoudNode implements OzonContentNode {\r\n name = [\"Inhoud\", \"ContainerBlocksType\", \"BlockMixedcontentMetMaximaleInlinesMarkersPopupsType\"];\r\n\r\n render(node: Element, { mapNodeToJsx }: OzonContentNodeContext) {\r\n return <div class=\"dso-rich-content\">{mapNodeToJsx(node.childNodes)}</div>;\r\n }\r\n}\r\n","import { h } from \"@stencil/core\";\r\n\r\nimport { OzonContentNode } from \"../ozon-content-node.interface\";\r\n\r\nexport class OzonContentInlineTekstAfbeeldingNode implements OzonContentNode {\r\n name = [\"InlineTekstAfbeelding\", \"Illustratie\"];\r\n\r\n render(node: Element) {\r\n return (\r\n <img\r\n src={node.getAttribute(\"naam\") ?? undefined}\r\n alt={node.getAttribute(\"naam\") ?? undefined}\r\n height={node.getAttribute(\"hoogte\") ?? undefined}\r\n width={node.getAttribute(\"breedte\") ?? undefined}\r\n />\r\n );\r\n }\r\n}\r\n","import { h } from \"@stencil/core\";\r\n\r\nimport { OzonContentNodeContext } from \"../ozon-content-node-context.interface\";\r\nimport { OzonContentNode } from \"../ozon-content-node.interface\";\r\n\r\nexport class OzonContentInlineNodes implements OzonContentNode {\r\n name = [\"sub\", \"sup\", \"strong\", \"b\", \"u\", \"i\", \"br\"];\r\n\r\n render(node: Element, { mapNodeToJsx }: OzonContentNodeContext) {\r\n if (node.localName === \"br\") {\r\n return <br />;\r\n }\r\n\r\n const Tag = node.localName;\r\n\r\n return <Tag>{mapNodeToJsx(node.childNodes)}</Tag>;\r\n }\r\n}\r\n","import { h } from \"@stencil/core\";\r\n\r\nimport { OzonContentNodeContext } from \"../ozon-content-node-context.interface\";\r\nimport { OzonContentNode } from \"../ozon-content-node.interface\";\r\n\r\nexport class OzonContentIntIoRefNode implements OzonContentNode {\r\n name = \"IntIoRef\";\r\n\r\n render(node: Element, { mapNodeToJsx, emitAnchorClick }: OzonContentNodeContext) {\r\n const ref = node.getAttribute(\"ref\");\r\n if (!ref) {\r\n return mapNodeToJsx(node.childNodes);\r\n }\r\n\r\n const intRefOnClick = (event: MouseEvent) => {\r\n event.preventDefault();\r\n\r\n const target = event.currentTarget;\r\n if (!(target instanceof HTMLAnchorElement)) {\r\n return;\r\n }\r\n\r\n const { href } = target;\r\n\r\n emitAnchorClick({\r\n node: this.name,\r\n href,\r\n documentComponent: ref,\r\n originalEvent: event,\r\n });\r\n };\r\n\r\n return (\r\n <a href={`#${ref}`} onClick={intRefOnClick}>\r\n {mapNodeToJsx(node.childNodes)}\r\n </a>\r\n );\r\n }\r\n}\r\n","import { h } from \"@stencil/core\";\r\n\r\nimport { OzonContentNodeContext } from \"../ozon-content-node-context.interface\";\r\nimport { OzonContentNode } from \"../ozon-content-node.interface\";\r\n\r\nexport class OzonContentIntRefNode implements OzonContentNode {\r\n name = \"IntRef\";\r\n\r\n render(node: Element, { mapNodeToJsx, emitAnchorClick }: OzonContentNodeContext) {\r\n const ref = node.getAttribute(\"ref\");\r\n if (!ref) {\r\n return mapNodeToJsx(node.childNodes);\r\n }\r\n\r\n const intRefOnClick = (event: MouseEvent) => {\r\n event.preventDefault();\r\n\r\n const target = event.currentTarget;\r\n if (!(target instanceof HTMLAnchorElement)) {\r\n return;\r\n }\r\n\r\n const { href } = target;\r\n\r\n emitAnchorClick({\r\n node: this.name,\r\n href,\r\n documentComponent: ref,\r\n originalEvent: event,\r\n });\r\n };\r\n\r\n return (\r\n <a href={`#${ref}`} onClick={intRefOnClick}>\r\n {mapNodeToJsx(node.childNodes)}\r\n </a>\r\n );\r\n }\r\n}\r\n","import { h } from \"@stencil/core\";\r\n\r\nimport { getNodeName } from \"../get-node-name.function\";\r\nimport { OzonContentNodeContext } from \"../ozon-content-node-context.interface\";\r\nimport { OzonContentNode } from \"../ozon-content-node.interface\";\r\n\r\nexport class OzonContentLijstNode implements OzonContentNode {\r\n name = \"Lijst\";\r\n\r\n render(node: Element, { mapNodeToJsx }: OzonContentNodeContext) {\r\n const childNodes = Array.from(node.childNodes);\r\n const aanhef = childNodes.find((n) => getNodeName(n) === \"Lijstaanhef\");\r\n const sluiting = childNodes.find((n) => getNodeName(n) === \"Lijstsluiting\");\r\n const listItems = childNodes.filter((n) => getNodeName(n) === \"Li\");\r\n\r\n return (\r\n <div class=\"dso-ozon-lijst od-Lijst\">\r\n {aanhef && mapNodeToJsx(aanhef)}\r\n <ul class={node.getAttribute(\"type\") ?? \"\"}>\r\n {listItems.map((item) => {\r\n const itemNodes = Array.from(item.childNodes);\r\n const liNummer = itemNodes.find((n) => getNodeName(n) === \"LiNummer\")?.childNodes;\r\n\r\n return (\r\n <li class=\"od-Li\">\r\n {liNummer && <span class=\"od-LiNummer\">{mapNodeToJsx(liNummer)}</span>}\r\n {mapNodeToJsx(itemNodes.filter((n) => getNodeName(n) !== \"LiNummer\"))}\r\n </li>\r\n );\r\n })}\r\n </ul>\r\n {sluiting && mapNodeToJsx(sluiting)}\r\n </div>\r\n );\r\n }\r\n}\r\n","import { h } from \"@stencil/core\";\r\n\r\nimport { OzonContentNodeContext } from \"../ozon-content-node-context.interface\";\r\nimport { OzonContentNode } from \"../ozon-content-node.interface\";\r\n\r\nexport class OzonContentNieuweTekstNode implements OzonContentNode {\r\n name = \"NieuweTekst\";\r\n\r\n render(node: Element, { mapNodeToJsx }: OzonContentNodeContext) {\r\n return <ins>{mapNodeToJsx(node.childNodes)}</ins>;\r\n }\r\n}\r\n","import { h, Fragment } from \"@stencil/core\";\r\n\r\nimport { getNodeName } from \"../get-node-name.function\";\r\nimport { OzonContentNodeContext } from \"../ozon-content-node-context.interface\";\r\nimport { OzonContentNode } from \"../ozon-content-node.interface\";\r\n\r\nexport class OzonContentNootNode implements OzonContentNode {\r\n name = \"Noot\";\r\n\r\n handles = [\"NootNummer\"];\r\n\r\n identify(): string | undefined {\r\n return \"Noot\";\r\n }\r\n\r\n render(node: Element, { mapNodeToJsx, state: openNoteId, setState }: OzonContentNodeContext<string | undefined>) {\r\n const noteId = node.getAttribute(\"id\");\r\n if (!noteId) {\r\n console.error(\"Noot node without id\", node);\r\n\r\n return <Fragment />;\r\n }\r\n\r\n const noteControlsId = `dso-ozon-note-${noteId}`;\r\n\r\n const childNodes = Array.from(node.childNodes);\r\n const nootNummer = childNodes.find((n) => getNodeName(n) === \"NootNummer\")?.textContent ?? noteId;\r\n\r\n return (\r\n <>\r\n <sup>\r\n <button\r\n type=\"button\"\r\n class=\"toggle-note\"\r\n aria-describedby={noteControlsId}\r\n onClick={() => setState?.(openNoteId === noteId ? undefined : noteId)}\r\n onBlur={() => setState?.(undefined)}\r\n aria-expanded={openNoteId === noteId ? \"true\" : \"false\"}\r\n >\r\n {nootNummer}\r\n </button>\r\n </sup>\r\n <dso-tooltip active={openNoteId === noteId} id={noteControlsId} stateless descriptive>\r\n <span role=\"section\">{mapNodeToJsx(Array.from(node.querySelectorAll(\":scope > Al\")))}</span>\r\n </dso-tooltip>\r\n </>\r\n );\r\n }\r\n}\r\n","import { h, Fragment } from \"@stencil/core\";\r\n\r\nimport { OzonContentNodeContext } from \"../ozon-content-node-context.interface\";\r\nimport { OzonContentNode } from \"../ozon-content-node.interface\";\r\n\r\nexport class OzonContentOpschriftNode implements OzonContentNode {\r\n name = \"Opschrift\";\r\n\r\n render(node: Element, { mapNodeToJsx }: OzonContentNodeContext) {\r\n return <Fragment>{mapNodeToJsx(node.childNodes)}</Fragment>;\r\n }\r\n}\r\n","import { Colspecs } from \"./colspec.interface\";\r\n\r\nexport function mapColspecs(count: number, nodeList: NodeListOf<Element>): Colspecs {\r\n const elements = Array.from(nodeList);\r\n const totalWidth = getTotalWidth(elements);\r\n\r\n return {\r\n totalWidth,\r\n count,\r\n columns: elements.map((element, index) => {\r\n const colNumber = element.getAttribute(\"colnum\");\r\n\r\n return {\r\n name: element.getAttribute(\"colname\") ?? \"\",\r\n number: colNumber ? parseInt(colNumber, 10) : index + 1,\r\n width: getWidth(totalWidth, element),\r\n };\r\n }),\r\n };\r\n}\r\n\r\nfunction getTotalWidth(elements: Element[]): number {\r\n return elements.reduce((totalWidth, element) => {\r\n const width = element.getAttribute(\"colwidth\")?.replace(/[^0-9]/, \"\") ?? \"\";\r\n const colWidth = parseInt(width, 10);\r\n\r\n return totalWidth + (isNaN(colWidth) ? 0 : colWidth);\r\n }, 0);\r\n}\r\n\r\nfunction getWidth(totalWidth: number, element: Element): string | undefined {\r\n const width = element.getAttribute(\"colwidth\");\r\n\r\n if (!width) {\r\n return undefined;\r\n }\r\n\r\n if (width === \"*\") {\r\n return \"100%\";\r\n }\r\n\r\n if (width.includes(\"*\") || width.match(/^[\\d+]$/)) {\r\n const colWidth = parseInt(width.replace(/[^0-9]/, \"\"), 10);\r\n\r\n return `${Math.round((colWidth / totalWidth) * 100)}%`;\r\n }\r\n\r\n return width;\r\n}\r\n","import { Fragment, FunctionalComponent, h } from \"@stencil/core\";\r\n\r\nimport { Colspecs } from \"./colspec/colspec.interface\";\r\n\r\nexport const Colgroup: FunctionalComponent<{ colspecs: Colspecs }> = ({ colspecs }) =>\r\n colspecs.columns.length > 0 ? (\r\n <colgroup>\r\n {colspecs.columns.map((colspec) => (\r\n <col style={{ width: colspec.width }} />\r\n ))}\r\n </colgroup>\r\n ) : (\r\n <Fragment />\r\n );\r\n","import { FunctionalComponent } from \"@stencil/core\";\r\nimport { h, JSXBase } from \"@stencil/core/internal\";\r\n\r\nimport { OzonContentNodeContext } from \"../../ozon-content-node-context.interface\";\r\nimport { Colspecs } from \"./colspec/colspec.interface\";\r\n\r\nfunction getData(cell: Element) {\r\n return {\r\n moreRows: cell.getAttribute(\"morerows\"),\r\n nameStart: cell.getAttribute(\"namest\"),\r\n nameEnd: cell.getAttribute(\"nameend\"),\r\n };\r\n}\r\n\r\nfunction getColspan({ columns }: Colspecs, nameStart: string, nameEnd: string): number | undefined {\r\n const colspecStart = columns.find((c) => c.name === nameStart);\r\n const colspecEnd = columns.find((c) => c.name === nameEnd);\r\n if (!colspecStart || !colspecEnd) {\r\n return undefined;\r\n }\r\n\r\n const colspan = colspecEnd.number - colspecStart.number + 1;\r\n\r\n return colspan === 1 ? undefined : colspan;\r\n}\r\n\r\nexport const Cell: FunctionalComponent<{\r\n context: OzonContentNodeContext;\r\n colspecs: Colspecs | undefined;\r\n cell: Element;\r\n}> = ({ context: { mapNodeToJsx }, colspecs, cell }) => {\r\n const { moreRows, nameStart, nameEnd } = getData(cell);\r\n\r\n const td: JSXBase.TdHTMLAttributes<HTMLTableCellElement> = {\r\n rowSpan: moreRows ? parseInt(moreRows, 10) + 1 : undefined,\r\n colSpan: colspecs && nameStart && nameEnd ? getColspan(colspecs, nameStart, nameEnd) : undefined,\r\n };\r\n\r\n return <td {...td}>{mapNodeToJsx(cell.childNodes)}</td>;\r\n};\r\n","import { Fragment, FunctionalComponent, h } from \"@stencil/core\";\r\n\r\nimport { OzonContentNodeContext } from \"../../ozon-content-node-context.interface\";\r\n\r\nimport { Colspecs } from \"./colspec/colspec.interface\";\r\nimport { Cell } from \"./table-cell\";\r\n\r\nexport const Rows: FunctionalComponent<{\r\n context: OzonContentNodeContext;\r\n colspecs: Colspecs | undefined;\r\n rows: Element[];\r\n}> = ({ context, colspecs, rows }) => {\r\n return (\r\n <>\r\n {rows.map((row) => (\r\n <tr>\r\n {Array.from(row.children).map((cell) => (\r\n <Cell cell={cell} colspecs={colspecs} context={context} />\r\n ))}\r\n </tr>\r\n ))}\r\n </>\r\n );\r\n};\r\n","import { h } from \"@stencil/core\";\r\nimport clsx from \"clsx\";\r\nimport { v4 as uuidv4 } from \"uuid\";\r\n\r\nimport { getNodeName } from \"../../get-node-name.function\";\r\nimport { OzonContentNodeContext } from \"../../ozon-content-node-context.interface\";\r\nimport { OzonContentNode } from \"../../ozon-content-node.interface\";\r\n\r\nimport { mapColspecs } from \"./colspec/colspec-mapper\";\r\nimport { Colgroup } from \"./table-colgroup\";\r\nimport { Rows } from \"./table-rows\";\r\n\r\nfunction mapData(node: Element) {\r\n const tgroup = node.querySelector(\":scope > tgroup\");\r\n const colAttribute = tgroup?.getAttribute(\"cols\") ?? undefined;\r\n const columnCount = colAttribute ? parseInt(colAttribute, 10) : undefined;\r\n\r\n return {\r\n caption: node.querySelector(\":scope > title\")?.textContent ?? undefined,\r\n colspecs: tgroup && columnCount ? mapColspecs(columnCount, tgroup.querySelectorAll(\":scope > colspec\")) : undefined,\r\n headRows: Array.from(node.querySelectorAll(\":scope > tgroup > thead > row\")),\r\n bodyRows: Array.from(node.querySelectorAll(\":scope > tgroup > tbody > row\")),\r\n editAction: node.getAttribute(\"wijzigactie\"),\r\n };\r\n}\r\n\r\nexport class OzonContentTableNode implements OzonContentNode {\r\n name = \"table\";\r\n\r\n handles = [\"title\", \"tgroup\", \"colspec\", \"thead\", \"tbody\", \"row\", \"cell\"];\r\n\r\n id = uuidv4();\r\n\r\n render(node: Element, context: OzonContentNodeContext) {\r\n const { caption, colspecs, headRows, bodyRows, editAction } = mapData(node);\r\n\r\n const bron = Array.from(node.childNodes).find((n) => getNodeName(n) === \"Bron\");\r\n\r\n return (\r\n <dso-table>\r\n <table\r\n class={clsx(\"table dso-table-vertical-lines\", {\r\n \"dso-del\": editAction === \"verwijder\",\r\n \"dso-ins\": editAction === \"voegtoe\",\r\n })}\r\n {...(bron ? { \"aria-describedby\": this.id } : {})}\r\n >\r\n {caption && <caption>{caption}</caption>}\r\n {colspecs && <Colgroup colspecs={colspecs} />}\r\n {headRows.length > 0 && (\r\n <thead>\r\n <Rows rows={headRows} colspecs={colspecs} context={context}></Rows>\r\n </thead>\r\n )}\r\n {bodyRows.length > 0 && (\r\n <tbody>\r\n <Rows rows={bodyRows} colspecs={colspecs} context={context}></Rows>\r\n </tbody>\r\n )}\r\n </table>\r\n {bron && <div id={this.id}>{context.mapNodeToJsx(bron)}</div>}\r\n </dso-table>\r\n );\r\n }\r\n}\r\n","import { Fragment, h } from \"@stencil/core\";\r\n\r\nimport { OzonContentNode } from \"../ozon-content-node.interface\";\r\n\r\nexport class OzonContentTextNode implements OzonContentNode {\r\n name = \"#text\";\r\n\r\n render(node: Node) {\r\n return <Fragment>{node.textContent}</Fragment>;\r\n }\r\n}\r\n","import { h } from \"@stencil/core\";\r\n\r\nimport { OzonContentNodeContext } from \"../ozon-content-node-context.interface\";\r\nimport { OzonContentNode } from \"../ozon-content-node.interface\";\r\n\r\nexport class OzonContentVerwijderdeTekstNode implements OzonContentNode {\r\n name = \"VerwijderdeTekst\";\r\n\r\n render(node: Element, { mapNodeToJsx }: OzonContentNodeContext) {\r\n return <del>{mapNodeToJsx(node.childNodes)}</del>;\r\n }\r\n}\r\n","import { Fragment, h, JSX } from \"@stencil/core\";\r\n\r\nimport { getNodeName } from \"./get-node-name.function\";\r\nimport { OzonContentAlNode } from \"./nodes/al.node\";\r\nimport { OzonContentBronNode } from \"./nodes/bron.node\";\r\nimport { OzonContentDocumentNode } from \"./nodes/document.node\";\r\nimport { OzonContentExtRefNode } from \"./nodes/ext-ref.node\";\r\nimport { OzonContentFallbackNode } from \"./nodes/fallback.node\";\r\nimport { OzonContentFiguurNode } from \"./nodes/figuur.node\";\r\nimport { OzonContentInhoudNode } from \"./nodes/inhoud.node\";\r\nimport { OzonContentInlineTekstAfbeeldingNode } from \"./nodes/inline-tekst-afbeelding.node\";\r\nimport { OzonContentInlineNodes } from \"./nodes/inline.nodes\";\r\nimport { OzonContentIntIoRefNode } from \"./nodes/int-io-ref.node\";\r\nimport { OzonContentIntRefNode } from \"./nodes/int-ref.node\";\r\nimport { OzonContentLijstNode } from \"./nodes/lijst.node\";\r\nimport { OzonContentNieuweTekstNode } from \"./nodes/nieuwe-tekst.node\";\r\nimport { OzonContentNootNode } from \"./nodes/noot.node\";\r\nimport { OzonContentOpschriftNode } from \"./nodes/opschrift.node\";\r\nimport { OzonContentTableNode } from \"./nodes/table.node\";\r\nimport { OzonContentTextNode } from \"./nodes/text.node\";\r\nimport { OzonContentVerwijderdeTekstNode } from \"./nodes/verwijderde-tekst.node\";\r\nimport { OzonContentContext } from \"./ozon-content-context.interface\";\r\nimport { OzonContentNode } from \"./ozon-content-node.interface\";\r\n\r\nexport class Mapper {\r\n private cache: { xml: string; document: Document } | undefined;\r\n\r\n private mappers: OzonContentNode[] = [\r\n new OzonContentTextNode(),\r\n new OzonContentDocumentNode(),\r\n new OzonContentInhoudNode(),\r\n new OzonContentOpschriftNode(),\r\n new OzonContentIntRefNode(),\r\n new OzonContentExtRefNode(),\r\n new OzonContentAlNode(),\r\n new OzonContentInlineNodes(),\r\n new OzonContentInlineTekstAfbeeldingNode(),\r\n new OzonContentNootNode(),\r\n new OzonContentTableNode(),\r\n new OzonContentIntIoRefNode(),\r\n new OzonContentFiguurNode(),\r\n new OzonContentLijstNode(),\r\n new OzonContentBronNode(),\r\n new OzonContentNieuweTekstNode(),\r\n new OzonContentVerwijderdeTekstNode(),\r\n ];\r\n\r\n private skip = this.mappers.reduce<string[]>((t, m) => {\r\n if (m.handles) {\r\n t.push(...m.handles);\r\n }\r\n\r\n return t;\r\n }, []);\r\n\r\n private fallbackNode = new OzonContentFallbackNode();\r\n\r\n private domParser = new DOMParser();\r\n\r\n private findMapper(name: string): OzonContentNode | undefined {\r\n if (this.skip.includes(name)) {\r\n return undefined;\r\n }\r\n\r\n return (\r\n this.mappers.find((m) => {\r\n if (Array.isArray(m.name)) {\r\n return m.name.includes(name);\r\n }\r\n\r\n return m.name === name;\r\n }) ?? this.fallbackNode\r\n );\r\n }\r\n\r\n mapNodeToJsx(node: Node | Node[] | NodeList, context: OzonContentContext, path: Node[]): JSX.Element {\r\n if (node instanceof NodeList) {\r\n return <Fragment>{Array.from(node).map((n) => this.mapNodeToJsx(n, context, path))}</Fragment>;\r\n }\r\n\r\n if (Array.isArray(node)) {\r\n return <Fragment>{node.map((n) => this.mapNodeToJsx(n, context, path))}</Fragment>;\r\n }\r\n\r\n const nodeName = getNodeName(node);\r\n const mapper = this.findMapper(nodeName);\r\n if (!mapper) {\r\n return <Fragment />;\r\n }\r\n\r\n const identity = mapper.identify?.(node);\r\n\r\n const state = identity ? context.state[identity] : undefined;\r\n const setState = identity ? (s: unknown) => context.setState({ ...context.state, [identity]: s }) : undefined;\r\n\r\n return mapper.render(node, {\r\n mapNodeToJsx: (n) => this.mapNodeToJsx(n, context, [...path, node]),\r\n emitAnchorClick: context.emitAnchorClick,\r\n setState,\r\n state,\r\n path,\r\n });\r\n }\r\n\r\n transform(xml: string, context: OzonContentContext): JSX.Element {\r\n if (!this.cache || this.cache.xml !== xml) {\r\n this.cache = { xml, document: this.domParser.parseFromString(xml, \"text/xml\") };\r\n }\r\n\r\n const xmlDocument = this.cache.document;\r\n\r\n return this.mapNodeToJsx(xmlDocument.getRootNode(), context, []);\r\n }\r\n}\r\n","@use \"~dso-toolkit/src/utilities\";\r\n@use \"~dso-toolkit/src/variables/units\";\r\n@use \"~dso-toolkit/src/variables/colors\";\r\n@use \"~dso-toolkit/src/components/anchor\";\r\n@use \"~dso-toolkit/src/components/button\";\r\n@use \"~dso-toolkit/src/components/insert/insert\";\r\n\r\n:host(:not([inline])) {\r\n display: block;\r\n}\r\n\r\n:host([inline]) {\r\n display: inline;\r\n}\r\n\r\n:host([deleted]) {\r\n * {\r\n text-decoration: line-through !important;\r\n }\r\n}\r\n\r\n:host([interactive]) {\r\n @include anchor.root($is-html-a-element: false);\r\n\r\n color: colors.$bosgroen;\r\n font-weight: 600;\r\n text-decoration: none;\r\n}\r\n\r\n:host([interactive=\"sub\"]) {\r\n color: colors.$grijs-90;\r\n}\r\n\r\n.deleted-start,\r\n.deleted-end {\r\n @include utilities.sr-only();\r\n}\r\n\r\nbutton.toggle-note {\r\n @include button.tertiary($modifiers: false);\r\n}\r\n\r\nspan[role=\"section\"],\r\nspan[role=\"paragraph\"] {\r\n display: block;\r\n}\r\n\r\n.fallback {\r\n display: block;\r\n}\r\n\r\n// Styling below copied from DSO Viewer 20211011\r\n\r\n.od-Term {\r\n font-weight: 700;\r\n}\r\n\r\n.od-Definitie,\r\n.od-Tussenkop {\r\n font-style: italic;\r\n}\r\n\r\n.od-Inhoud,\r\n.od-Inhoud > .od-Lijst,\r\n.od-IntIoRef,\r\n.od-Lidnr,\r\n.od-LiNr,\r\n.od-Opschrift,\r\n.od-Tussenkop {\r\n display: inline;\r\n}\r\n\r\n.od-Al {\r\n margin-bottom: 0.75em;\r\n}\r\n\r\n.od-IntIoRef {\r\n border-bottom: 1px dotted;\r\n}\r\n\r\n.dso-ozon-bron {\r\n font-style: italic;\r\n font-size: 0.75rem;\r\n}\r\n\r\n.dso-ozon-figuur {\r\n margin-bottom: units.$u2;\r\n\r\n .figuur-bijschrift {\r\n display: block;\r\n font-size: 0.75rem;\r\n font-style: italic;\r\n }\r\n\r\n &.bijschrift-boven {\r\n .figuur-bijschrift {\r\n padding-bottom: 0.25rem;\r\n }\r\n }\r\n\r\n &.bijschrift-onder {\r\n .figuur-bijschrift {\r\n padding-top: 0.25rem;\r\n }\r\n }\r\n\r\n .figuur-titel {\r\n color: colors.$mauve;\r\n display: block;\r\n font-weight: 500;\r\n padding-bottom: 0.5rem;\r\n }\r\n}\r\n\r\n.dso-ozon-lijst {\r\n span.od-Lijstaanhef,\r\n span.od-Lijstsluiting {\r\n margin-bottom: units.$ru2;\r\n }\r\n\r\n ul {\r\n &.expliciet {\r\n list-style: none;\r\n\r\n > .od-Li {\r\n position: relative;\r\n\r\n > span.od-LiNummer {\r\n position: absolute;\r\n left: units.$u6 * -1 + 4;\r\n text-align: right;\r\n width: units.$u5;\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\n.od-Tabel thead {\r\n font-weight: 600;\r\n}\r\n\r\n.od-Kadertekst {\r\n border: 1px solid #e5e5e5;\r\n margin-bottom: 1rem;\r\n padding: 1rem;\r\n}\r\n\r\n.dso-del {\r\n background-color: colors.$danger-bg-color;\r\n color: colors.$zwart;\r\n text-decoration: line-through;\r\n\r\n a {\r\n color: colors.$zwart;\r\n }\r\n}\r\n\r\n.dso-ins {\r\n background-color: colors.$success-bg-color;\r\n box-shadow: insert.$insert-box-shadow;\r\n color: colors.$zwart;\r\n\r\n a {\r\n color: colors.$zwart;\r\n }\r\n}\r\n","import { h, Component, ComponentInterface, Element, Event, EventEmitter, Prop, State, Host, JSX } from \"@stencil/core\";\r\nimport { isTabbable } from \"tabbable\";\r\n\r\nimport { Mapper } from \"./ozon-content-mapper\";\r\nimport { OzonContentContext } from \"./ozon-content-context.interface\";\r\nimport { OzonContentAnchorClick, OzonContentClick } from \"./ozon-content.interfaces\";\r\nimport { OzonContentNodeState } from \"./ozon-content-node-state.interface\";\r\n\r\n@Component({\r\n tag: \"dso-ozon-content\",\r\n styleUrl: \"ozon-content.scss\",\r\n scoped: true,\r\n})\r\nexport class OzonContent implements ComponentInterface {\r\n /**\r\n * The XML to be rendered.\r\n */\r\n @Prop()\r\n content: string | undefined;\r\n\r\n /**\r\n * Setting this property creates dso-ozon-content as inline element instead of a block element.\r\n */\r\n @Prop({ reflect: true })\r\n inline = false;\r\n\r\n /**\r\n * Marks content as deleted using visual and accessible clues.\r\n */\r\n @Prop({ reflect: true })\r\n deleted = false;\r\n\r\n /**\r\n * Visualize the component as interactive. This means that the component will emit `dsoClick` events when the user clicks non-interactive elements.\r\n *\r\n * **Do not** use this without an accessible companion element! `interactive` is only\r\n * meant to ease the use of the companion element for mouse/touch users.\r\n *\r\n * * `true`: Interactive anchor-look-alike\r\n * * `\"sub\"`: Interactive anchor-look-alike for sub navigation\r\n * * `false | undefined`: Disabled\r\n */\r\n @Prop({ reflect: true })\r\n interactive: \"sub\" | \"\" | boolean = false;\r\n\r\n @State()\r\n state: OzonContentNodeState = {};\r\n\r\n /**\r\n * Emitted when `<a>` is clicked.\r\n */\r\n @Event()\r\n dsoAnchorClick!: EventEmitter<OzonContentAnchorClick>;\r\n\r\n /**\r\n * These events are only emitted when the component is `interactive`.\r\n */\r\n @Event()\r\n dsoClick!: EventEmitter<OzonContentClick>;\r\n\r\n @Element()\r\n host!: HTMLDsoOzonContentElement;\r\n\r\n private mapper = new Mapper();\r\n\r\n private handleHostOnClick(e: UIEvent) {\r\n // '' is `true`: <dso-ozon-content interactive>\r\n if (this.interactive !== \"\" && !this.interactive) {\r\n return;\r\n }\r\n\r\n const doIt =\r\n e\r\n .composedPath()\r\n .find(\r\n (eventTarget) => eventTarget === this.host || (eventTarget instanceof HTMLElement && isTabbable(eventTarget))\r\n ) === this.host;\r\n\r\n if (doIt) {\r\n this.dsoClick.emit({ originalEvent: e });\r\n }\r\n }\r\n\r\n render(): JSX.Element {\r\n const context: OzonContentContext = {\r\n state: this.state,\r\n setState: (state) => (this.state = state),\r\n emitAnchorClick: this.dsoAnchorClick.emit,\r\n };\r\n\r\n const transformed = this.mapper.transform(this.content ?? \"\", context);\r\n\r\n if (this.deleted) {\r\n return (\r\n <section>\r\n <slot name=\"prefix\" />\r\n <span class=\"deleted-start\">Begin verwijderd element</span>\r\n {transformed}\r\n <span class=\"deleted-end\">Einde verwijderd element</span>\r\n <slot name=\"suffix\" />\r\n </section>\r\n );\r\n }\r\n\r\n return (\r\n <Host onClick={(e: UIEvent) => this.handleHostOnClick(e)}>\r\n <slot name=\"prefix\" />\r\n {transformed}\r\n <slot name=\"suffix\" />\r\n </Host>\r\n );\r\n }\r\n}\r\n"],"mappings":"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"}
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
function n(n,u,
|
|
1
|
+
function n(n,u,i){var l,t,e,f,r;if(null==u)u=100;function a(){var o=Date.now()-f;if(o<u&&o>=0){l=setTimeout(a,u-o)}else{l=null;if(!i){r=n.apply(e,t);e=t=null}}}var o=function(){e=this;t=arguments;f=Date.now();var o=i&&!l;if(!l)l=setTimeout(a,u);if(o){r=n.apply(e,t);e=t=null}return r};o.clear=function(){if(l){clearTimeout(l);l=null}};o.flush=function(){if(l){r=n.apply(e,t);e=t=null;clearTimeout(l);l=null}};return o}n.debounce=n;var u=n;export{u as d};
|
|
2
|
+
//# sourceMappingURL=p-1805f5b0.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["debounce","func","wait","immediate","timeout","args","context","timestamp","result","later","last","Date","now","setTimeout","apply","debounced","this","arguments","callNow","clear","clearTimeout","flush"],"sources":["../../node_modules/debounce/index.js"],"sourcesContent":["/**\n * Returns a function, that, as long as it continues to be invoked, will not\n * be triggered. The function will be called after it stops being called for\n * N milliseconds. If `immediate` is passed, trigger the function on the\n * leading edge, instead of the trailing. The function also has a property 'clear' \n * that is a function which will clear the timer to prevent previously scheduled executions. \n *\n * @source underscore.js\n * @see http://unscriptable.com/2009/03/20/debouncing-javascript-methods/\n * @param {Function} function to wrap\n * @param {Number} timeout in ms (`100`)\n * @param {Boolean} whether to execute at the beginning (`false`)\n * @api public\n */\nfunction debounce(func, wait, immediate){\n var timeout, args, context, timestamp, result;\n if (null == wait) wait = 100;\n\n function later() {\n var last = Date.now() - timestamp;\n\n if (last < wait && last >= 0) {\n timeout = setTimeout(later, wait - last);\n } else {\n timeout = null;\n if (!immediate) {\n result = func.apply(context, args);\n context = args = null;\n }\n }\n };\n\n var debounced = function(){\n context = this;\n args = arguments;\n timestamp = Date.now();\n var callNow = immediate && !timeout;\n if (!timeout) timeout = setTimeout(later, wait);\n if (callNow) {\n result = func.apply(context, args);\n context = args = null;\n }\n\n return result;\n };\n\n debounced.clear = function() {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n };\n \n debounced.flush = function() {\n if (timeout) {\n result = func.apply(context, args);\n context = args = null;\n \n clearTimeout(timeout);\n timeout = null;\n }\n };\n\n return debounced;\n};\n\n// Adds compatibility for ES modules\ndebounce.debounce = debounce;\n\nmodule.exports = debounce;\n"],"mappings":"AAcA,SAASA,EAASC,EAAMC,EAAMC,GAC5B,IAAIC,EAASC,EAAMC,EAASC,EAAWC,EACvC,GAAI,MAAQN,EAAMA,EAAO,IAEzB,SAASO,IACP,IAAIC,EAAOC,KAAKC,MAAQL,EAExB,GAAIG,EAAOR,GAAQQ,GAAQ,EAAG,CAC5BN,EAAUS,WAAWJ,EAAOP,EAAOQ,EACzC,KAAW,CACLN,EAAU,KACV,IAAKD,EAAW,CACdK,EAASP,EAAKa,MAAMR,EAASD,GAC7BC,EAAUD,EAAO,IACzB,CACA,CACA,CAEE,IAAIU,EAAY,WACdT,EAAUU,KACVX,EAAOY,UACPV,EAAYI,KAAKC,MACjB,IAAIM,EAAUf,IAAcC,EAC5B,IAAKA,EAASA,EAAUS,WAAWJ,EAAOP,GAC1C,GAAIgB,EAAS,CACXV,EAASP,EAAKa,MAAMR,EAASD,GAC7BC,EAAUD,EAAO,IACvB,CAEI,OAAOG,CACX,EAEEO,EAAUI,MAAQ,WAChB,GAAIf,EAAS,CACXgB,aAAahB,GACbA,EAAU,IAChB,CACA,EAEEW,EAAUM,MAAQ,WAChB,GAAIjB,EAAS,CACXI,EAASP,EAAKa,MAAMR,EAASD,GAC7BC,EAAUD,EAAO,KAEjBe,aAAahB,GACbA,EAAU,IAChB,CACA,EAEE,OAAOW,CACT,CAGAf,EAASA,SAAWA,E,MAEHA,S"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{r as t,c as s,h as e,H as i,g as n}from"./p-53c8538c.js";import{c as o}from"./p-6e38820b.js";const a=":host{display:block}*,*::after,*::before{box-sizing:border-box}";const r=class{updateVariant(t="default"){this.accordionState.variant=t||"default"}updateReverseAlign(t){this.accordionState.reverseAlign=t}updateAllowMultipleOpen(t){this.accordionState.allowMultipleOpen=t;if(!t){const t=Array.from(this.host.querySelectorAll(":scope > dso-accordion-section[open]"));t.shift();t.forEach((t=>this.controlOpenAttribute(t,false)))}}async _getState(){return this.accordionState}async toggleSection(t,s){const e=Array.from(this.host.querySelectorAll(":scope > dso-accordion-section"));if(typeof t==="number"){const s=e[t];if(s instanceof HTMLElement){t=s}}if(!(t instanceof HTMLElement)||!e.includes(t)){return}const i=this.isSectionOpen(t);if(this.allowMultipleOpen){this.controlOpenAttribute(t,!i);this.emitToggleEvent(t,e,s);return!i}if(i){this.controlOpenAttribute(t,false);this.emitToggleEvent(t,e,s);return false}await this.closeOpenSections();this.controlOpenAttribute(t,true);this.emitToggleEvent(t,e,s);return true}async animationEnd(t){this.dsoToggleSectionAnimationEnd.emit({section:{element:t,open:this.isSectionOpen(t)}})}async closeOpenSections(){const t=Array.from(this.host.querySelectorAll(":scope > dso-accordion-section"));const s=t.filter((t=>this.isSectionOpen(t)));s.forEach((t=>this.controlOpenAttribute(t,false)))}componentWillLoad(){if(this.accordionState.variant!==this.variant){this.accordionState.variant=this.variant||"default"}if(this.accordionState.reverseAlign!==this.reverseAlign){this.accordionState.reverseAlign=this.reverseAlign}if(this.accordionState.allowMultipleOpen!==this.allowMultipleOpen){this.accordionState.allowMultipleOpen=this.allowMultipleOpen}}constructor(e){t(this,e);this.dsoToggleSection=s(this,"dsoToggleSection",7);this.dsoToggleSectionAnimationEnd=s(this,"dsoToggleSectionAnimationEnd",7);this.variant="default";this.reverseAlign=false;this.allowMultipleOpen=false;const{state:i}=o({variant:this.variant||"default",reverseAlign:this.reverseAlign,allowMultipleOpen:this.allowMultipleOpen});this.accordionState=i}render(){return e(i,{class:{"dso-accordion":true}},e("slot",null))}emitToggleEvent(t,s,e){this.dsoToggleSection.emit({originalEvent:e,section:{element:t,open:this.isSectionOpen(t)},sections:s})}isSectionOpen(t){return typeof t.getAttribute("open")==="string"}controlOpenAttribute(t,s){if(s){t.setAttribute("open","")}else{t.removeAttribute("open")}}get host(){return n(this)}static get watchers(){return{variant:["updateVariant"],reverseAlign:["updateReverseAlign"],allowMultipleOpen:["updateAllowMultipleOpen"]}}};r.style=a;export{r as dso_accordion};
|
|
2
|
+
//# sourceMappingURL=p-18c1d44d.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["accordionCss","Accordion","updateVariant","variant","this","accordionState","updateReverseAlign","reverseAlign","updateAllowMultipleOpen","allowMultipleOpen","openSections","Array","from","host","querySelectorAll","shift","forEach","section","controlOpenAttribute","async","sectionElement","event","sections","HTMLElement","includes","sectionIsOpen","isSectionOpen","emitToggleEvent","closeOpenSections","dsoToggleSectionAnimationEnd","emit","element","open","filter","s","componentWillLoad","constructor","hostRef","state","createStore","render","h","Host","class","e","dsoToggleSection","originalEvent","getAttribute","setAttribute","removeAttribute"],"sources":["./src/components/accordion/accordion.scss?tag=dso-accordion&encapsulation=shadow","./src/components/accordion/accordion.tsx"],"sourcesContent":["@use \"~dso-toolkit/src/utilities\";\r\n\r\n:host {\r\n display: block;\r\n}\r\n\r\n@include utilities.box-sizing();\r\n","import {\r\n h,\r\n Component,\r\n ComponentInterface,\r\n Prop,\r\n Host,\r\n Method,\r\n Watch,\r\n Element,\r\n Event,\r\n EventEmitter,\r\n} from \"@stencil/core\";\r\n\r\nimport {\r\n AccordionInternalState,\r\n AccordionSectionToggleAnimationEndEvent,\r\n AccordionSectionToggleEvent,\r\n AccordionVariant,\r\n} from \"./accordion.interfaces\";\r\n\r\nimport { createStore } from \"@stencil/store\";\r\n\r\n@Component({\r\n tag: \"dso-accordion\",\r\n styleUrl: \"accordion.scss\",\r\n shadow: true,\r\n})\r\nexport class Accordion implements ComponentInterface {\r\n private accordionState: AccordionInternalState;\r\n\r\n @Element()\r\n host!: HTMLDsoAccordionElement;\r\n\r\n /**\r\n * The variant of the Accordion.\r\n */\r\n @Prop({ reflect: true })\r\n variant?: AccordionVariant = \"default\";\r\n\r\n /**\r\n * Places the chevron at the opposite side. Note: this mode does not display `state`, `attachmentCount` or `status` props on child `<dso-accordion-section>` elements\r\n */\r\n @Prop({ reflect: true })\r\n reverseAlign = false;\r\n\r\n /**\r\n * Allows multiple sections to be open at the same time.\r\n */\r\n @Prop({ reflect: true })\r\n allowMultipleOpen = false;\r\n\r\n /**\r\n * Emitted when a section is toggled.\r\n *\r\n * `event.detail.originalEvent` contains the original `MouseEvent` when the section is toggled by clicking on the header\r\n * `event.detail.section` contains the toggled section and its new opened value.\\\r\n * `event.detail.sections` contains all `<dso-accordion-section>` elements belonging to this accordion.\r\n */\r\n @Event()\r\n dsoToggleSection!: EventEmitter<AccordionSectionToggleEvent>;\r\n\r\n /**\r\n * Event emitted when the accordion section completes its toggle animation.\r\n */\r\n @Event()\r\n dsoToggleSectionAnimationEnd!: EventEmitter<AccordionSectionToggleAnimationEndEvent>;\r\n\r\n @Watch(\"variant\")\r\n updateVariant(variant: AccordionVariant = \"default\") {\r\n this.accordionState.variant = variant || \"default\";\r\n }\r\n\r\n @Watch(\"reverseAlign\")\r\n updateReverseAlign(reverseAlign: boolean) {\r\n this.accordionState.reverseAlign = reverseAlign;\r\n }\r\n\r\n @Watch(\"allowMultipleOpen\")\r\n updateAllowMultipleOpen(allowMultipleOpen: boolean) {\r\n this.accordionState.allowMultipleOpen = allowMultipleOpen;\r\n\r\n if (!allowMultipleOpen) {\r\n const openSections = Array.from(this.host.querySelectorAll<HTMLElement>(\":scope > dso-accordion-section[open]\"));\r\n\r\n // By removing the first section, it is kept open;\r\n openSections.shift();\r\n\r\n openSections.forEach((section) => this.controlOpenAttribute(section, false));\r\n }\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n @Method()\r\n async _getState(): Promise<AccordionInternalState> {\r\n return this.accordionState;\r\n }\r\n\r\n /**\r\n * Toggle a section. Pass the `<dso-accordion-section>` element or the index of the section.\r\n * @param sectionElement The section element that needs to toggle\r\n * @param event The event that the user triggered\r\n * @returns The state of the section\r\n */\r\n @Method()\r\n async toggleSection(sectionElement: HTMLElement | number, event?: MouseEvent): Promise<undefined | boolean> {\r\n const sections = Array.from(this.host.querySelectorAll<HTMLElement>(\":scope > dso-accordion-section\"));\r\n\r\n if (typeof sectionElement === \"number\") {\r\n const section = sections[sectionElement];\r\n if (section instanceof HTMLElement) {\r\n sectionElement = section;\r\n }\r\n }\r\n\r\n if (!(sectionElement instanceof HTMLElement) || !sections.includes(sectionElement)) {\r\n return;\r\n }\r\n\r\n const sectionIsOpen = this.isSectionOpen(sectionElement);\r\n\r\n if (this.allowMultipleOpen) {\r\n this.controlOpenAttribute(sectionElement, !sectionIsOpen);\r\n this.emitToggleEvent(sectionElement, sections, event);\r\n return !sectionIsOpen;\r\n }\r\n\r\n if (sectionIsOpen) {\r\n this.controlOpenAttribute(sectionElement, false);\r\n this.emitToggleEvent(sectionElement, sections, event);\r\n\r\n return false;\r\n }\r\n\r\n await this.closeOpenSections();\r\n\r\n this.controlOpenAttribute(sectionElement, true);\r\n this.emitToggleEvent(sectionElement, sections, event);\r\n\r\n return true;\r\n }\r\n\r\n /**\r\n * Emitted when the animation of opening or closing ends.\r\n */\r\n @Method()\r\n async animationEnd(sectionElement: HTMLElement): Promise<void> {\r\n this.dsoToggleSectionAnimationEnd.emit({\r\n section: {\r\n element: sectionElement,\r\n open: this.isSectionOpen(sectionElement),\r\n },\r\n });\r\n }\r\n\r\n /**\r\n * Closes all sections belonging to this accordion.\r\n */\r\n @Method()\r\n async closeOpenSections(): Promise<void> {\r\n const sections = Array.from(this.host.querySelectorAll<HTMLElement>(\":scope > dso-accordion-section\"));\r\n\r\n const openSections = sections.filter((s) => this.isSectionOpen(s));\r\n openSections.forEach((section) => this.controlOpenAttribute(section, false));\r\n }\r\n\r\n // These checks are needed for a React timing issue.\r\n componentWillLoad() {\r\n if (this.accordionState.variant !== this.variant) {\r\n this.accordionState.variant = this.variant || \"default\";\r\n }\r\n\r\n if (this.accordionState.reverseAlign !== this.reverseAlign) {\r\n this.accordionState.reverseAlign = this.reverseAlign;\r\n }\r\n\r\n if (this.accordionState.allowMultipleOpen !== this.allowMultipleOpen) {\r\n this.accordionState.allowMultipleOpen = this.allowMultipleOpen;\r\n }\r\n }\r\n\r\n constructor() {\r\n const { state } = createStore<AccordionInternalState>({\r\n variant: this.variant || \"default\",\r\n reverseAlign: this.reverseAlign,\r\n allowMultipleOpen: this.allowMultipleOpen,\r\n });\r\n\r\n this.accordionState = state;\r\n }\r\n\r\n render() {\r\n return (\r\n <Host\r\n class={{\r\n \"dso-accordion\": true,\r\n }}\r\n >\r\n <slot></slot>\r\n </Host>\r\n );\r\n }\r\n\r\n private emitToggleEvent(sectionElement: HTMLElement, sections: HTMLElement[], e?: MouseEvent): void {\r\n this.dsoToggleSection.emit({\r\n originalEvent: e,\r\n section: {\r\n element: sectionElement,\r\n open: this.isSectionOpen(sectionElement),\r\n },\r\n sections,\r\n });\r\n }\r\n\r\n private isSectionOpen(sectionElement: HTMLElement): boolean {\r\n return typeof sectionElement.getAttribute(\"open\") === \"string\";\r\n }\r\n\r\n private controlOpenAttribute(sectionElement: HTMLElement, setAttribute: boolean): void {\r\n if (setAttribute) {\r\n sectionElement.setAttribute(\"open\", \"\");\r\n } else {\r\n sectionElement.removeAttribute(\"open\");\r\n }\r\n }\r\n}\r\n"],"mappings":"oGAAA,MAAMA,EAAe,kE,MC2BRC,EAAS,MAyCpBC,cAAcC,EAA4B,WACxCC,KAAKC,eAAeF,QAAUA,GAAW,S,CAI3CG,mBAAmBC,GACjBH,KAAKC,eAAeE,aAAeA,C,CAIrCC,wBAAwBC,GACtBL,KAAKC,eAAeI,kBAAoBA,EAExC,IAAKA,EAAmB,CACtB,MAAMC,EAAeC,MAAMC,KAAKR,KAAKS,KAAKC,iBAA8B,yCAGxEJ,EAAaK,QAEbL,EAAaM,SAASC,GAAYb,KAAKc,qBAAqBD,EAAS,Q,EAQzEE,kBACE,OAAOf,KAAKC,c,CAUdc,oBAAoBC,EAAsCC,GACxD,MAAMC,EAAWX,MAAMC,KAAKR,KAAKS,KAAKC,iBAA8B,mCAEpE,UAAWM,IAAmB,SAAU,CACtC,MAAMH,EAAUK,EAASF,GACzB,GAAIH,aAAmBM,YAAa,CAClCH,EAAiBH,C,EAIrB,KAAMG,aAA0BG,eAAiBD,EAASE,SAASJ,GAAiB,CAClF,M,CAGF,MAAMK,EAAgBrB,KAAKsB,cAAcN,GAEzC,GAAIhB,KAAKK,kBAAmB,CAC1BL,KAAKc,qBAAqBE,GAAiBK,GAC3CrB,KAAKuB,gBAAgBP,EAAgBE,EAAUD,GAC/C,OAAQI,C,CAGV,GAAIA,EAAe,CACjBrB,KAAKc,qBAAqBE,EAAgB,OAC1ChB,KAAKuB,gBAAgBP,EAAgBE,EAAUD,GAE/C,OAAO,K,OAGHjB,KAAKwB,oBAEXxB,KAAKc,qBAAqBE,EAAgB,MAC1ChB,KAAKuB,gBAAgBP,EAAgBE,EAAUD,GAE/C,OAAO,I,CAOTF,mBAAmBC,GACjBhB,KAAKyB,6BAA6BC,KAAK,CACrCb,QAAS,CACPc,QAASX,EACTY,KAAM5B,KAAKsB,cAAcN,K,CAS/BD,0BACE,MAAMG,EAAWX,MAAMC,KAAKR,KAAKS,KAAKC,iBAA8B,mCAEpE,MAAMJ,EAAeY,EAASW,QAAQC,GAAM9B,KAAKsB,cAAcQ,KAC/DxB,EAAaM,SAASC,GAAYb,KAAKc,qBAAqBD,EAAS,Q,CAIvEkB,oBACE,GAAI/B,KAAKC,eAAeF,UAAYC,KAAKD,QAAS,CAChDC,KAAKC,eAAeF,QAAUC,KAAKD,SAAW,S,CAGhD,GAAIC,KAAKC,eAAeE,eAAiBH,KAAKG,aAAc,CAC1DH,KAAKC,eAAeE,aAAeH,KAAKG,Y,CAG1C,GAAIH,KAAKC,eAAeI,oBAAsBL,KAAKK,kBAAmB,CACpEL,KAAKC,eAAeI,kBAAoBL,KAAKK,iB,EAIjD2B,YAAAC,G,qJAjJ6B,U,kBAMd,M,uBAMK,MAsIlB,MAAMC,MAAEA,GAAUC,EAAoC,CACpDpC,QAASC,KAAKD,SAAW,UACzBI,aAAcH,KAAKG,aACnBE,kBAAmBL,KAAKK,oBAG1BL,KAAKC,eAAiBiC,C,CAGxBE,SACE,OACEC,EAACC,EAAI,CACHC,MAAO,CACL,gBAAiB,OAGnBF,EAAA,a,CAKEd,gBAAgBP,EAA6BE,EAAyBsB,GAC5ExC,KAAKyC,iBAAiBf,KAAK,CACzBgB,cAAeF,EACf3B,QAAS,CACPc,QAASX,EACTY,KAAM5B,KAAKsB,cAAcN,IAE3BE,Y,CAIII,cAAcN,GACpB,cAAcA,EAAe2B,aAAa,UAAY,Q,CAGhD7B,qBAAqBE,EAA6B4B,GACxD,GAAIA,EAAc,CAChB5B,EAAe4B,aAAa,OAAQ,G,KAC/B,CACL5B,EAAe6B,gBAAgB,O"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{r as o,h as t,g as i}from"./p-53c8538c.js";import{c as h}from"./p-6a1980b4.js";const s=":host{display:block}:host-context(.row.dso-equal-heights){height:100%;min-height:auto}:host-context(.row.dso-equal-heights)>.dso-highlight-box{min-height:auto}:host-context(.row.dso-equal-heights)>.dso-highlight-box.dso-has-counter{height:calc(100% - 48px)}:host-context(.row.dso-equal-heights)>.dso-highlight-box:not(.dso-has-counter){height:calc(100% - 16px)}*,*::after,*::before{box-sizing:border-box}.dso-highlight-box{background-color:#f2f2f2;color:#000;margin-top:16px;padding:16px;margin-bottom:24px}.dso-highlight-box.dso-white{background-color:#fff}.dso-highlight-box.dso-yellow{background-color:#f8f6cc}.dso-highlight-box.dso-drop-shadow{box-shadow:0 4px 8px 0 rgba(0, 0, 0, 0.2)}.dso-highlight-box.dso-border{background-color:#fff;border:1px solid #ccc;padding:15px}.dso-highlight-box.dso-has-counter{margin-top:48px}.dso-highlight-box.dso-has-counter{padding-top:2.5rem;position:relative}.dso-highlight-box .dso-step-counter{background-color:#275937;border:8px solid #79b929;border-radius:50%;box-sizing:content-box;color:#fff;font-size:1.25rem;font-weight:500;height:2rem;left:16px;line-height:2rem;position:absolute;text-align:center;top:-1.5rem;width:2rem}.dso-highlight-box .dso-step-counter svg.di{height:1.5rem;margin-top:0.25rem;width:1.5rem}.dso-highlight-box>dso-icon{vertical-align:text-top}";const e=class{constructor(t){o(this,t);this.yellow=undefined;this.border=undefined;this.white=undefined;this.dropShadow=undefined;this.step=undefined}render(){var o;const i=this.step||!!this.element.querySelector("[slot=icon]");const s=h("dso-highlight-box",{"dso-yellow":this.yellow,"dso-border":this.border,"dso-white":this.white,"dso-drop-shadow":this.dropShadow,"dso-has-counter":i});return t("div",{class:s},i&&t("div",{class:"dso-step-counter"},(o=this.step)!==null&&o!==void 0?o:t("slot",{name:"icon"})),t("slot",null))}get element(){return i(this)}};e.style=s;export{e as dso_highlight_box};
|
|
2
|
+
//# sourceMappingURL=p-19ab7f7b.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["highlightBoxCss","HighlightBox","render","hasCounter","this","step","element","querySelector","classes","clsx","yellow","border","white","dropShadow","h","class","_a","name"],"sources":["./src/components/highlight-box/highlight-box.scss?tag=dso-highlight-box&encapsulation=shadow","./src/components/highlight-box/highlight-box.tsx"],"sourcesContent":["@use \"~dso-toolkit/src/utilities\";\r\n@use \"~dso-toolkit/src/variables/units\";\r\n@use \"~dso-toolkit/src/components/highlight-box\";\r\n\r\n:host {\r\n display: block;\r\n}\r\n\r\n:host-context(.row.dso-equal-heights) {\r\n height: 100%;\r\n min-height: auto;\r\n\r\n > .dso-highlight-box {\r\n min-height: auto;\r\n\r\n &.dso-has-counter {\r\n height: calc(100% - #{units.$shared-equal-heights-highlight-box-height});\r\n }\r\n\r\n &:not(.dso-has-counter) {\r\n height: calc(100% - #{units.$u2});\r\n }\r\n }\r\n}\r\n\r\n@include utilities.box-sizing();\r\n\r\n.dso-highlight-box {\r\n @include highlight-box.root();\r\n}\r\n","import { Component, h, Prop, Element } from \"@stencil/core\";\r\nimport clsx from \"clsx\";\r\n\r\n@Component({\r\n tag: \"dso-highlight-box\",\r\n styleUrl: \"highlight-box.scss\",\r\n shadow: true,\r\n})\r\nexport class HighlightBox {\r\n /**\r\n * For yellow Highlight Box.\r\n */\r\n @Prop()\r\n yellow?: boolean;\r\n\r\n /**\r\n * For a bordered Highlight Box.\r\n */\r\n @Prop()\r\n border?: boolean;\r\n\r\n /**\r\n * For a while Highlight Box.\r\n */\r\n @Prop()\r\n white?: boolean;\r\n\r\n /**\r\n * For an Highlight Box with a drop shadow.\r\n */\r\n @Prop()\r\n dropShadow?: boolean;\r\n\r\n /**\r\n * To create a step indicator.\r\n */\r\n @Prop()\r\n step?: number;\r\n\r\n @Element()\r\n private element!: HTMLDsoHighlightBoxElement;\r\n\r\n render() {\r\n const hasCounter = this.step || !!this.element.querySelector(\"[slot=icon]\");\r\n const classes = clsx(\"dso-highlight-box\", {\r\n \"dso-yellow\": this.yellow,\r\n \"dso-border\": this.border,\r\n \"dso-white\": this.white,\r\n \"dso-drop-shadow\": this.dropShadow,\r\n \"dso-has-counter\": hasCounter,\r\n });\r\n\r\n return (\r\n <div class={classes}>\r\n {hasCounter && <div class=\"dso-step-counter\">{this.step ?? <slot name=\"icon\"></slot>}</div>}\r\n <slot></slot>\r\n </div>\r\n );\r\n }\r\n}\r\n"],"mappings":"sFAAA,MAAMA,EAAkB,oyC,MCQXC,EAAY,M,wIAkCvBC,S,MACE,MAAMC,EAAaC,KAAKC,QAAUD,KAAKE,QAAQC,cAAc,eAC7D,MAAMC,EAAUC,EAAK,oBAAqB,CACxC,aAAcL,KAAKM,OACnB,aAAcN,KAAKO,OACnB,YAAaP,KAAKQ,MAClB,kBAAmBR,KAAKS,WACxB,kBAAmBV,IAGrB,OACEW,EAAA,OAAKC,MAAOP,GACTL,GAAcW,EAAA,OAAKC,MAAM,qBAAoBC,EAAAZ,KAAKC,QAAI,MAAAW,SAAA,EAAAA,EAAIF,EAAA,QAAMG,KAAK,UACtEH,EAAA,a"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{r as t,c as o,h as s,F as e,g as i}from"./p-53c8538c.js";import{c as l}from"./p-6a1980b4.js";import{d as n}from"./p-1805f5b0.js";const a=":host{display:inline-block;max-width:100%}*,*::after,*::before{box-sizing:border-box}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.dso-label{background-color:#f2f2f2;border-radius:4px;color:#191919;display:inline-block;line-height:1.5;max-width:100%;padding:4px 8px}.dso-label:focus-within,.dso-label.dso-hover{text-decoration:line-through}.dso-label button{background:none;border:0;border-radius:0 4px 4px 0;color:inherit;float:right;font-size:1rem;margin-bottom:-4px;margin-left:8px;margin-right:-4px;margin-top:0;padding:0}.dso-label button:hover{cursor:pointer}.dso-label button>dso-icon,.dso-label button>svg.di{display:block}.dso-label.dso-label-info{background-color:#6ca4d9;color:#000}.dso-label.dso-label-primary{background-color:#275937;color:#fff}.dso-label.dso-label-success{background-color:#39870c;color:#fff}.dso-label.dso-label-warning{background-color:#dcd400;color:#000}.dso-label.dso-label-danger{background-color:#ce3f51;color:#fff}.dso-label.dso-label-error{background-color:#ce3f51;color:#fff}.dso-label.dso-label-bright{background-color:#fff;color:#191919;outline:1px solid #ccc;outline-offset:-1px}.dso-label.dso-label-attention{background-color:#8b4a6a;color:#fff}.dso-label.dso-compact{padding:0 8px}.dso-label.dso-hover .dso-label-content{text-decoration:line-through}.dso-truncate.dso-label-content{display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;vertical-align:bottom;white-space:nowrap}:host([removable]) .dso-truncate.dso-label-content{max-width:calc(100% - 28px)}";const r=new ResizeObserver(n.debounce((t=>{t.forEach((({target:t})=>{if(d(t)){t._truncateLabel()}}))}),150));function d(t){return t.tagName==="DSO-LABEL"}function c(t){return t.scrollWidth>t.clientWidth}const h=class{constructor(s){t(this,s);this.dsoRemoveClick=o(this,"dsoRemoveClick",7);this.keydownListenerActive=false;this.keyDownListener=t=>{if(t.key==="Escape"){this.textHover=false;this.textFocus=false}};this.compact=undefined;this.removable=undefined;this.status=undefined;this.removeHover=undefined;this.removeFocus=undefined;this.truncate=undefined;this.textHover=undefined;this.textFocus=undefined;this.isTruncated=undefined;this.labelText=null}watchTruncate(t){if(t){this.startTruncate()}else{this.stopTruncate()}}watchTooltipActive(){if(!this.keydownListenerActive&&(this.textHover||this.textFocus)){document.addEventListener("keydown",this.keyDownListener);this.keydownListenerActive=true}if(!this.textHover&&!this.textFocus){document.removeEventListener("keydown",this.keyDownListener);this.keydownListenerActive=false}}async _truncateLabel(){setTimeout((()=>{this.isTruncated=this.labelContent&&c(this.labelContent)}))}syncLabelText(){this.labelText=this.host.textContent}componentDidLoad(){if(this.truncate){this.startTruncate()}if(this.removable){this.startMutationObserver()}}disconnectedCallback(){this.stopTruncate()}startMutationObserver(){if(this.mutationObserver){return}this.mutationObserver=new MutationObserver((t=>t.forEach((()=>this.syncLabelText()))));this.mutationObserver.observe(this.host,{characterData:true,subtree:true,attributes:true});this.labelText=this.host.textContent}startTruncate(){r.observe(this.host);this.startMutationObserver();this._truncateLabel()}stopTruncate(){document.removeEventListener("keydown",this.keyDownListener);r.unobserve(this.host);this.isTruncated=undefined;this.keydownListenerActive=false}render(){return s(e,null,s("span",{"aria-describedby":"toggle-anchor",class:l("dso-label",{[`dso-label-${this.status}`]:this.status,"dso-compact":this.compact&&!this.removable,"dso-hover":this.removeHover||this.removeFocus})},s("slot",{name:"symbol"}),s("span",{class:l("dso-label-content",{"dso-truncate":!!this.truncate}),ref:t=>this.labelContent=t,tabindex:this.truncate&&this.isTruncated?0:undefined,onMouseEnter:()=>this.textHover=true,onMouseLeave:()=>this.textHover=false,onFocus:()=>this.textFocus=true,onBlur:()=>this.textFocus=false},s("slot",null)),this.removable&&s("button",{type:"button",onClick:t=>this.dsoRemoveClick.emit(t),onMouseEnter:()=>this.removeHover=true,onMouseLeave:()=>this.removeHover=false,onFocus:()=>this.removeFocus=true,onBlur:()=>this.removeFocus=false},s("span",{class:"sr-only"},"Verwijder: ",this.labelText),s("dso-icon",{icon:"times"}))),this.isTruncated&&s("dso-tooltip",{stateless:true,id:"toggle-anchor",active:this.textHover||this.textFocus,position:"top",strategy:"absolute"},this.labelText))}get host(){return i(this)}static get watchers(){return{truncate:["watchTruncate"],textHover:["watchTooltipActive"],textFocus:["watchTooltipActive"]}}};h.style=a;export{h as dso_label};
|
|
2
|
+
//# sourceMappingURL=p-25b9716f.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["labelCss","resizeObserver","ResizeObserver","debounce","entries","forEach","target","isDsoLabelComponent","_truncateLabel","element","tagName","hasEllipses","el","scrollWidth","clientWidth","Label","this","keydownListenerActive","keyDownListener","event","key","textHover","textFocus","watchTruncate","truncate","startTruncate","stopTruncate","watchTooltipActive","document","addEventListener","removeEventListener","async","setTimeout","isTruncated","labelContent","syncLabelText","labelText","host","textContent","componentDidLoad","removable","startMutationObserver","disconnectedCallback","mutationObserver","MutationObserver","observe","characterData","subtree","attributes","unobserve","undefined","render","h","Fragment","class","clsx","status","compact","removeHover","removeFocus","name","ref","tabindex","onMouseEnter","onMouseLeave","onFocus","onBlur","type","onClick","e","dsoRemoveClick","emit","icon","stateless","id","active","position","strategy"],"sources":["./src/components/label/label.scss?tag=dso-label&encapsulation=shadow","./src/components/label/label.tsx"],"sourcesContent":["@use \"~dso-toolkit/src/utilities\";\r\n@use \"~dso-toolkit/src/variables/units\";\r\n@use \"~dso-toolkit/src/components/label\";\r\n\r\n:host {\r\n display: inline-block;\r\n max-width: 100%;\r\n}\r\n\r\n@include utilities.box-sizing();\r\n\r\n// Todo: Replace .sr-only selector with web component specific selector, no need for .sr-only if we can generate the SCSS\r\n.sr-only {\r\n @include utilities.sr-only();\r\n}\r\n\r\n.dso-label {\r\n @include label.root();\r\n\r\n &.dso-hover {\r\n .dso-label-content {\r\n text-decoration: line-through;\r\n }\r\n }\r\n}\r\n\r\n.dso-truncate.dso-label-content {\r\n display: inline-block;\r\n max-width: 100%;\r\n overflow: hidden;\r\n text-overflow: ellipsis; // stylelint-disable-line declaration-property-value-disallowed-list -- full text can be viewed via tooltip.\r\n vertical-align: bottom;\r\n white-space: nowrap; // stylelint-disable-line declaration-property-value-disallowed-list -- full text can be viewed via tooltip.\r\n}\r\n\r\n:host([removable]) {\r\n .dso-truncate.dso-label-content {\r\n max-width: calc(100% - (units.$u3 + 4px));\r\n }\r\n}\r\n","import {\r\n h,\r\n Component,\r\n ComponentInterface,\r\n Element,\r\n Event,\r\n EventEmitter,\r\n Fragment,\r\n Method,\r\n Prop,\r\n State,\r\n Watch,\r\n} from \"@stencil/core\";\r\nimport clsx from \"clsx\";\r\nimport { debounce } from \"debounce\";\r\n\r\nconst resizeObserver = new ResizeObserver(\r\n debounce((entries) => {\r\n entries.forEach(({ target }) => {\r\n if (isDsoLabelComponent(target)) {\r\n target._truncateLabel();\r\n }\r\n });\r\n }, 150)\r\n);\r\n\r\nfunction isDsoLabelComponent(element: Element): element is HTMLDsoLabelElement {\r\n return element.tagName === \"DSO-LABEL\";\r\n}\r\n\r\nfunction hasEllipses(el: HTMLElement): boolean {\r\n return el.scrollWidth > el.clientWidth;\r\n}\r\n\r\n@Component({\r\n tag: \"dso-label\",\r\n styleUrl: \"label.scss\",\r\n shadow: true,\r\n})\r\nexport class Label implements ComponentInterface {\r\n private labelContent: HTMLSpanElement | undefined;\r\n\r\n private keydownListenerActive = false;\r\n\r\n private mutationObserver?: MutationObserver;\r\n\r\n @Element()\r\n private host!: HTMLDsoLabelElement;\r\n\r\n /**\r\n * For compact Label\r\n */\r\n @Prop()\r\n compact?: boolean;\r\n\r\n /**\r\n * Shows a button that can be used to remove the Label.\r\n */\r\n @Prop()\r\n removable?: boolean;\r\n\r\n /**\r\n * The status of this Label.\r\n */\r\n @Prop()\r\n status?: \"primary\" | \"info\" | \"success\" | \"warning\" | \"danger\" | \"error\" | \"bright\" | \"attention\";\r\n\r\n @State()\r\n removeHover?: boolean;\r\n\r\n @State()\r\n removeFocus?: boolean;\r\n\r\n /**\r\n * Whether the Label is allowed to truncate the contents if it does not fit the container element.\r\n */\r\n @Prop()\r\n truncate?: boolean;\r\n\r\n @State()\r\n textHover?: boolean;\r\n\r\n @State()\r\n textFocus?: boolean;\r\n\r\n @State()\r\n isTruncated?: boolean;\r\n\r\n @State()\r\n labelText: string | null = null;\r\n\r\n /**\r\n * Emitted when the user activates the remove button.\r\n */\r\n @Event()\r\n dsoRemoveClick!: EventEmitter<MouseEvent>;\r\n\r\n @Watch(\"truncate\")\r\n watchTruncate(truncate: boolean) {\r\n if (truncate) {\r\n this.startTruncate();\r\n } else {\r\n this.stopTruncate();\r\n }\r\n }\r\n\r\n @Watch(\"textHover\")\r\n @Watch(\"textFocus\")\r\n watchTooltipActive() {\r\n if (!this.keydownListenerActive && (this.textHover || this.textFocus)) {\r\n document.addEventListener(\"keydown\", this.keyDownListener);\r\n this.keydownListenerActive = true;\r\n }\r\n\r\n if (!this.textHover && !this.textFocus) {\r\n document.removeEventListener(\"keydown\", this.keyDownListener);\r\n this.keydownListenerActive = false;\r\n }\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n @Method()\r\n async _truncateLabel() {\r\n setTimeout(() => {\r\n this.isTruncated = this.labelContent && hasEllipses(this.labelContent);\r\n });\r\n }\r\n\r\n private syncLabelText() {\r\n this.labelText = this.host.textContent;\r\n }\r\n\r\n componentDidLoad() {\r\n if (this.truncate) {\r\n this.startTruncate();\r\n }\r\n\r\n if (this.removable) {\r\n this.startMutationObserver();\r\n }\r\n }\r\n\r\n disconnectedCallback() {\r\n this.stopTruncate();\r\n }\r\n\r\n /** The mutationObserver fetches the text placed inside the label, this is then used for the remove button and tooltip. */\r\n private startMutationObserver(): void {\r\n if (this.mutationObserver) {\r\n return;\r\n }\r\n\r\n this.mutationObserver = new MutationObserver((entries) => entries.forEach(() => this.syncLabelText()));\r\n\r\n this.mutationObserver.observe(this.host, {\r\n characterData: true,\r\n subtree: true,\r\n attributes: true,\r\n });\r\n\r\n this.labelText = this.host.textContent;\r\n }\r\n\r\n private startTruncate(): void {\r\n resizeObserver.observe(this.host);\r\n this.startMutationObserver();\r\n this._truncateLabel();\r\n }\r\n\r\n private stopTruncate(): void {\r\n document.removeEventListener(\"keydown\", this.keyDownListener);\r\n\r\n resizeObserver.unobserve(this.host);\r\n this.isTruncated = undefined;\r\n this.keydownListenerActive = false;\r\n }\r\n\r\n private keyDownListener = (event: KeyboardEvent) => {\r\n if (event.key === \"Escape\") {\r\n this.textHover = false;\r\n this.textFocus = false;\r\n }\r\n };\r\n\r\n render() {\r\n return (\r\n <Fragment>\r\n <span\r\n aria-describedby=\"toggle-anchor\"\r\n class={clsx(\"dso-label\", {\r\n [`dso-label-${this.status}`]: this.status,\r\n \"dso-compact\": this.compact && !this.removable,\r\n \"dso-hover\": this.removeHover || this.removeFocus,\r\n })}\r\n >\r\n <slot name=\"symbol\"></slot>\r\n <span\r\n class={clsx(\"dso-label-content\", {\r\n \"dso-truncate\": !!this.truncate,\r\n })}\r\n ref={(element) => (this.labelContent = element)}\r\n tabindex={this.truncate && this.isTruncated ? 0 : undefined}\r\n onMouseEnter={() => (this.textHover = true)}\r\n onMouseLeave={() => (this.textHover = false)}\r\n onFocus={() => (this.textFocus = true)}\r\n onBlur={() => (this.textFocus = false)}\r\n >\r\n <slot></slot>\r\n </span>\r\n {this.removable && (\r\n <button\r\n type=\"button\"\r\n onClick={(e) => this.dsoRemoveClick.emit(e)}\r\n onMouseEnter={() => (this.removeHover = true)}\r\n onMouseLeave={() => (this.removeHover = false)}\r\n onFocus={() => (this.removeFocus = true)}\r\n onBlur={() => (this.removeFocus = false)}\r\n >\r\n <span class=\"sr-only\">Verwijder: {this.labelText}</span>\r\n <dso-icon icon=\"times\"></dso-icon>\r\n </button>\r\n )}\r\n </span>\r\n {this.isTruncated && (\r\n <dso-tooltip\r\n stateless\r\n id=\"toggle-anchor\"\r\n active={this.textHover || this.textFocus}\r\n position=\"top\"\r\n strategy=\"absolute\"\r\n >\r\n {this.labelText}\r\n </dso-tooltip>\r\n )}\r\n </Fragment>\r\n );\r\n }\r\n}\r\n"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{r as e,c as s,h as o}from"./p-53c8538c.js";import{v as i}from"./p-5d7f4ff2.js";const t=":host{display:block}*,*::after,*::before{box-sizing:border-box}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}fieldset{border:0;margin:0;min-width:0;padding:0}fieldset .control-label{display:inline-block;font-weight:bold;margin-bottom:8px;max-width:100%;text-align:left}p[slot=info]{margin:0}";const l=class{constructor(o){e(this,o);this.dsoToggleOverlay=s(this,"dsoToggleOverlay",7);this.selectableRefs={};this.group=i();this.overlays=undefined}overlayChangeHandler(e,s){const o=s.detail.target instanceof HTMLInputElement?!!s.detail.target.checked:false;this.dsoToggleOverlay.emit({overlay:e,checked:o})}componentDidRender(){this.overlays.filter((e=>{var s,o;return!e.disabled&&((o=(s=this.previousOverlays)===null||s===void 0?void 0:s.find((s=>s.id===e.id)))===null||o===void 0?void 0:o.disabled)===true})).forEach((e=>{var s;(s=this.selectableRefs[e.id])===null||s===void 0?void 0:s.toggleInfo(false)}));this.previousOverlays=this.overlays}render(){for(const e in this.selectableRefs){delete this.selectableRefs[e]}return o("fieldset",{class:"form-group dso-checkboxes"},o("legend",{class:"sr-only"},"Kaartlagen"),o("div",{class:"dso-label-container"},o("span",{class:"control-label","aria-hidden":"true"},"Kaartlagen")),o("div",{class:"dso-field-container"},this.overlays.map((e=>o("dso-selectable",{key:e.id,type:"checkbox",value:e.name,checked:e.checked,disabled:e.disabled,name:this.group,ref:s=>s&&(this.selectableRefs[e.id]=s),onDsoChange:s=>this.overlayChangeHandler(e,s)},e.name,e.info?o("p",{slot:"info"},e.info):null)))))}};l.style=t;export{l as dso_map_overlays};
|
|
2
|
+
//# sourceMappingURL=p-2c69a645.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["mapOverlaysCss","MapOverlays","this","selectableRefs","uuidv4","overlayChangeHandler","overlay","e","checked","detail","target","HTMLInputElement","dsoToggleOverlay","emit","componentDidRender","overlays","filter","o","_a","_b","disabled","previousOverlays","find","p","id","forEach","toggleInfo","render","ref","h","class","map","key","type","value","name","group","onDsoChange","info","slot"],"sources":["./src/components/map-overlays/map-overlays.scss?tag=dso-map-overlays&encapsulation=shadow","./src/components/map-overlays/map-overlays.tsx"],"sourcesContent":["@use \"~dso-toolkit/src/utilities\";\r\n@use \"~dso-toolkit/src/variables/units\";\r\n\r\n:host {\r\n display: block;\r\n}\r\n\r\n@include utilities.box-sizing();\r\n\r\n.sr-only {\r\n @include utilities.sr-only();\r\n}\r\n\r\n// Todo #1194\r\nfieldset {\r\n border: 0;\r\n margin: 0;\r\n min-width: 0;\r\n padding: 0;\r\n\r\n .control-label {\r\n display: inline-block;\r\n font-weight: bold;\r\n margin-bottom: units.$u1;\r\n max-width: 100%;\r\n text-align: left;\r\n }\r\n}\r\n\r\np[slot=\"info\"] {\r\n margin: 0;\r\n}\r\n","import { Component, Event, EventEmitter, Prop, h, ComponentInterface } from \"@stencil/core\";\r\nimport { v4 as uuidv4 } from \"uuid\";\r\n\r\nimport { Overlay, OverlayChangeEvent } from \"./map-overlays.interfaces\";\r\n\r\nimport { SelectableChangeEvent } from \"../selectable/selectable.interfaces\";\r\n\r\n@Component({\r\n tag: \"dso-map-overlays\",\r\n styleUrl: \"./map-overlays.scss\",\r\n shadow: true,\r\n})\r\nexport class MapOverlays implements ComponentInterface {\r\n private previousOverlays: Overlay[] | undefined;\r\n private selectableRefs: { [id: number]: HTMLDsoSelectableElement } = {};\r\n\r\n /**\r\n * To group the overlays together. Generally the default value suffices.\r\n */\r\n @Prop()\r\n group = uuidv4();\r\n\r\n /**\r\n * The overlays.\r\n */\r\n @Prop()\r\n overlays!: Overlay[];\r\n\r\n /**\r\n * Emitted when the user selects a different overlay.\r\n */\r\n @Event()\r\n dsoToggleOverlay!: EventEmitter<OverlayChangeEvent>;\r\n\r\n private overlayChangeHandler(overlay: Overlay, e: CustomEvent<SelectableChangeEvent>) {\r\n const checked = e.detail.target instanceof HTMLInputElement ? !!e.detail.target.checked : false;\r\n\r\n this.dsoToggleOverlay.emit({ overlay, checked });\r\n }\r\n\r\n componentDidRender() {\r\n this.overlays\r\n .filter((o) => !o.disabled && this.previousOverlays?.find((p) => p.id === o.id)?.disabled === true)\r\n .forEach((o) => {\r\n this.selectableRefs[o.id]?.toggleInfo(false);\r\n });\r\n\r\n this.previousOverlays = this.overlays;\r\n }\r\n\r\n render() {\r\n for (const ref in this.selectableRefs) {\r\n delete this.selectableRefs[ref];\r\n }\r\n\r\n return (\r\n <fieldset class=\"form-group dso-checkboxes\">\r\n <legend class=\"sr-only\">Kaartlagen</legend>\r\n <div class=\"dso-label-container\">\r\n <span class=\"control-label\" aria-hidden=\"true\">\r\n Kaartlagen\r\n </span>\r\n </div>\r\n <div class=\"dso-field-container\">\r\n {this.overlays.map((overlay) => (\r\n <dso-selectable\r\n key={overlay.id}\r\n type=\"checkbox\"\r\n value={overlay.name}\r\n checked={overlay.checked}\r\n disabled={overlay.disabled}\r\n name={this.group}\r\n ref={(ref) => ref && (this.selectableRefs[overlay.id] = ref)}\r\n onDsoChange={(e) => this.overlayChangeHandler(overlay, e)}\r\n >\r\n {overlay.name}\r\n {overlay.info ? <p slot=\"info\">{overlay.info}</p> : null}\r\n </dso-selectable>\r\n ))}\r\n </div>\r\n </fieldset>\r\n );\r\n }\r\n}\r\n"],"mappings":"sFAAA,MAAMA,EAAiB,6W,MCYVC,EAAW,M,4EAEdC,KAAAC,eAA6D,G,WAM7DC,I,wBAcAC,qBAAqBC,EAAkBC,GAC7C,MAAMC,EAAUD,EAAEE,OAAOC,kBAAkBC,mBAAqBJ,EAAEE,OAAOC,OAAOF,QAAU,MAE1FN,KAAKU,iBAAiBC,KAAK,CAAEP,UAASE,W,CAGxCM,qBACEZ,KAAKa,SACFC,QAAQC,IAAC,IAAAC,EAAAC,EAAK,OAACF,EAAEG,YAAYD,GAAAD,EAAAhB,KAAKmB,oBAAgB,MAAAH,SAAA,SAAAA,EAAEI,MAAMC,GAAMA,EAAEC,KAAOP,EAAEO,QAAG,MAAAL,SAAA,SAAAA,EAAEC,YAAa,IAAI,IACjGK,SAASR,I,OACRC,EAAAhB,KAAKC,eAAec,EAAEO,OAAG,MAAAN,SAAA,SAAAA,EAAEQ,WAAW,MAAM,IAGhDxB,KAAKmB,iBAAmBnB,KAAKa,Q,CAG/BY,SACE,IAAK,MAAMC,KAAO1B,KAAKC,eAAgB,QAC9BD,KAAKC,eAAeyB,E,CAG7B,OACEC,EAAA,YAAUC,MAAM,6BACdD,EAAA,UAAQC,MAAM,WAAS,cACvBD,EAAA,OAAKC,MAAM,uBACTD,EAAA,QAAMC,MAAM,gBAAe,cAAa,QAAM,eAIhDD,EAAA,OAAKC,MAAM,uBACR5B,KAAKa,SAASgB,KAAKzB,GAClBuB,EAAA,kBACEG,IAAK1B,EAAQkB,GACbS,KAAK,WACLC,MAAO5B,EAAQ6B,KACf3B,QAASF,EAAQE,QACjBY,SAAUd,EAAQc,SAClBe,KAAMjC,KAAKkC,MACXR,IAAMA,GAAQA,IAAQ1B,KAAKC,eAAeG,EAAQkB,IAAMI,GACxDS,YAAc9B,GAAML,KAAKG,qBAAqBC,EAASC,IAEtDD,EAAQ6B,KACR7B,EAAQgC,KAAOT,EAAA,KAAGU,KAAK,QAAQjC,EAAQgC,MAAY,S"}
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
const o=o=>
|
|
1
|
+
const o=o=>o.button!==0||o.ctrlKey||o.shiftKey||o.altKey||o.metaKey;export{o as i};
|
|
2
|
+
//# sourceMappingURL=p-33df9903.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["isModifiedEvent","e","button","ctrlKey","shiftKey","altKey","metaKey"],"sources":["./src/utils/is-modified-event.ts"],"sourcesContent":["/** returns `true` when the event is triggered while holding Ctrl, Alt or other modifiers, or on right-click. Can be used to determine navigation. */\r\nexport const isModifiedEvent = (e: MouseEvent): boolean =>\r\n e.button !== 0 || e.ctrlKey || e.shiftKey || e.altKey || e.metaKey;\r\n"],"mappings":"MACaA,EAAmBC,GAC9BA,EAAEC,SAAW,GAAKD,EAAEE,SAAWF,EAAEG,UAAYH,EAAEI,QAAUJ,EAAEK,e"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{r as o,c as d,h as s,F as t,g as r}from"./p-53c8538c.js";import{c as a}from"./p-91963e3d.js";import{v as e}from"./p-5d7f4ff2.js";import"./p-5950644a.js";const i="@keyframes slideInFromTop{0%{opacity:0}100%{opacity:1}}*,*::after,*::before{box-sizing:border-box}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}button{-webkit-appearance:button;color:inherit;cursor:pointer;font:inherit;font-family:inherit;font-size:inherit;line-height:inherit;margin:0;overflow:visible;text-transform:none}button[disabled]{cursor:default}button::-moz-focus-inner{border:0;padding:0}.dso-modal{bottom:0;height:100%;left:0;position:fixed;right:0;top:0;z-index:530}.dso-modal .dso-dialog{animation:1s ease-out 0s 1 slideInFromTop;margin-top:15vh;margin-left:auto;margin-right:auto;max-width:640px;opacity:1;background-color:#fff;box-shadow:0 8px 24px 0 rgba(25, 25, 25, 0.4)}.dso-modal .dso-header{border-bottom:1px solid #ccc;padding:16px;position:relative}.dso-modal .dso-header h2{color:#275937;margin:0;max-width:calc(100% - 24px)}.dso-modal .dso-header .dso-close{background-color:transparent;border:0;height:32px;padding:0;position:absolute;right:13px;text-align:center;top:16px;width:32px}.dso-modal .dso-body{height:calc(100% - 96px - 1.5rem);max-height:calc(70vh - 144px - 1.5em);min-height:1.5rem;overflow-x:auto;padding:32px}.dso-modal .dso-body p{margin:0 0 16px}.dso-modal .dso-body ul,.dso-modal .dso-body ol{margin-bottom:16px}.dso-modal .dso-body ul:not(.list-group):not(.dso-link-list):not(.dso-columns-list),.dso-modal .dso-body ol:not(.list-group):not(.dso-link-list):not(.dso-columns-list){padding-inline-start:24px}.dso-modal .dso-body pre{margin:0 0 16px}.dso-modal .dso-body blockquote{padding:16px 24px}.dso-modal .dso-body dso-highlight-box,.dso-modal .dso-body .dso-highlight-box{margin-bottom:24px}.dso-modal .dso-body img{height:auto;max-width:100%}.dso-modal .dso-footer{min-height:80px;padding:0 32px 32px;text-align:right}@media screen and (max-width: 767px){.dso-modal .dso-footer .btn+.btn,.dso-modal .dso-footer .btn+.dso-primary,.dso-modal .dso-footer .btn+.dso-secondary,.dso-modal .dso-footer .btn+.dso-tertiary,.dso-modal .dso-footer .dso-primary+.btn,.dso-modal .dso-footer .dso-primary+.dso-primary,.dso-modal .dso-footer .dso-primary+.dso-secondary,.dso-modal .dso-footer .dso-primary+.dso-tertiary,.dso-modal .dso-footer .dso-secondary+.btn,.dso-modal .dso-footer .dso-secondary+.dso-primary,.dso-modal .dso-footer .dso-secondary+.dso-secondary,.dso-modal .dso-footer .dso-secondary+.dso-tertiary,.dso-modal .dso-footer .dso-tertiary+.btn,.dso-modal .dso-footer .dso-tertiary+.dso-primary,.dso-modal .dso-footer .dso-tertiary+.dso-secondary,.dso-modal .dso-footer .dso-tertiary+.dso-tertiary{margin-left:0}.dso-modal .dso-footer button{text-align:center;width:100%}.dso-modal .dso-footer button+button{margin-top:8px}.dso-modal .dso-footer button.dso-tertiary,.dso-modal .dso-footer button.dso-tertiary span,.dso-modal .dso-footer button.btn-link,.dso-modal .dso-footer button.btn-link span{float:none}}@media screen and (min-width: 768px){.dso-modal .dso-footer .btn+.dso-secondary,.dso-modal .dso-footer .btn+.btn-default,.dso-modal .dso-footer .dso-primary+.dso-secondary,.dso-modal .dso-footer .dso-primary+.btn-default,.dso-modal .dso-footer .dso-secondary+.dso-secondary,.dso-modal .dso-footer .dso-secondary+.btn-default,.dso-modal .dso-footer .dso-tertiary+.dso-secondary,.dso-modal .dso-footer .dso-tertiary+.btn-default{margin-left:16px}.dso-modal .dso-footer .btn+.dso-tertiary,.dso-modal .dso-footer .btn+.btn-link,.dso-modal .dso-footer .dso-primary+.dso-tertiary,.dso-modal .dso-footer .dso-primary+.btn-link,.dso-modal .dso-footer .dso-secondary+.dso-tertiary,.dso-modal .dso-footer .dso-secondary+.btn-link,.dso-modal .dso-footer .dso-tertiary+.dso-tertiary,.dso-modal .dso-footer .dso-tertiary+.btn-link{margin-left:0}}@media screen and (max-width: 767px){.dso-modal .dso-dialog{max-width:100%;margin-top:0}.dso-modal .dso-footer .btn+.btn,.dso-modal .dso-footer .btn+.dso-primary,.dso-modal .dso-footer .btn+.dso-secondary,.dso-modal .dso-footer .btn+.dso-tertiary,.dso-modal .dso-footer .dso-primary+.btn,.dso-modal .dso-footer .dso-primary+.dso-primary,.dso-modal .dso-footer .dso-primary+.dso-secondary,.dso-modal .dso-footer .dso-primary+.dso-tertiary,.dso-modal .dso-footer .dso-secondary+.btn,.dso-modal .dso-footer .dso-secondary+.dso-primary,.dso-modal .dso-footer .dso-secondary+.dso-secondary,.dso-modal .dso-footer .dso-secondary+.dso-tertiary,.dso-modal .dso-footer .dso-tertiary+.btn,.dso-modal .dso-footer .dso-tertiary+.dso-primary,.dso-modal .dso-footer .dso-tertiary+.dso-secondary,.dso-modal .dso-footer .dso-tertiary+.dso-tertiary{margin-left:0}.dso-modal .dso-footer button{text-align:center;width:100%}.dso-modal .dso-footer button+button{margin-top:8px}.dso-modal .dso-footer button.dso-tertiary,.dso-modal .dso-footer button.dso-tertiary span,.dso-modal .dso-footer button.btn-link,.dso-modal .dso-footer button.btn-link span{float:none}}.dso-modal-overlay{background-color:rgba(255, 255, 255, 0.8);bottom:0;display:block;left:0;position:fixed;right:0;top:0;z-index:529}.dso-close dso-icon{color:#39870c}";const n=class{constructor(s){o(this,s);this.dsoClose=d(this,"dsoClose",7);this.ariaId=e();this.hasFooter=undefined;this.modalTitle=undefined;this.role="dialog";this.showCloseButton=true;this.initialFocus=undefined;this.returnFocus=undefined}componentWillLoad(){this.hasFooter=this.host.querySelector("*[slot = 'footer']")!==null}componentDidLoad(){this.setFocusTrap()}disconnectedCallback(){var o;(o=this.trap)===null||o===void 0?void 0:o.deactivate({onDeactivate:()=>undefined})}render(){var o;return s(t,null,s("div",{class:"dso-modal-overlay"}),s("div",{class:"dso-modal",role:(o=this.role)!==null&&o!==void 0?o:undefined,"aria-modal":"true","aria-labelledby":this.ariaId,ref:o=>this.modalElement=o},s("div",{class:"dso-dialog",role:"document",ref:o=>this.dialogElement=o},this.modalTitle?s("div",{class:"dso-header"},s("h2",{id:this.ariaId},this.modalTitle),this.showCloseButton&&s("button",{type:"button",class:"dso-close",onClick:o=>this.dsoClose.emit({originalEvent:o})},s("dso-icon",{icon:"times"}),s("span",{class:"sr-only"},"Sluiten"))):s("span",{class:"sr-only",id:this.ariaId},"Dialoog"),s("div",{class:"dso-body",tabIndex:0},s("slot",{name:"body"})),this.hasFooter&&s("div",{class:"dso-footer"},s("slot",{name:"footer"})))))}setFocusTrap(){if(this.dialogElement&&!this.trap){this.trap=a(this.dialogElement,{initialFocus:()=>{var o,d,s;if(this.initialFocus){const o=this.host.querySelector(this.initialFocus);if(!o){console.warn(`element '${this.initialFocus}' could not be found`)}else{return o}}return(s=(o=this.host.querySelector("div[slot='footer'] .dso-primary"))!==null&&o!==void 0?o:(d=this.modalElement)===null||d===void 0?void 0:d.querySelector(".dso-close"))!==null&&s!==void 0?s:false},allowOutsideClick:true,setReturnFocus:o=>{var d,s;return(s=(d=this.returnFocus)===null||d===void 0?void 0:d.call(this,o))!==null&&s!==void 0?s:o},escapeDeactivates:true,tabbableOptions:{getShadowRoot:true},clickOutsideDeactivates:o=>{if(o instanceof MouseEvent&&o.composedPath()[0]===this.modalElement){return true}return false},onDeactivate:()=>{delete this.trap;this.dsoClose.emit({originalEvent:undefined})}}).activate()}}get host(){return r(this)}};n.style=i;export{n as dso_modal};
|
|
2
|
+
//# sourceMappingURL=p-348f8556.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["modalCss","Modal","v4","componentWillLoad","this","hasFooter","host","querySelector","componentDidLoad","setFocusTrap","disconnectedCallback","_a","trap","deactivate","onDeactivate","undefined","render","h","Fragment","class","role","ariaId","ref","element","modalElement","dialogElement","modalTitle","id","showCloseButton","type","onClick","e","dsoClose","emit","originalEvent","icon","tabIndex","name","createFocusTrap","initialFocus","initialFocusElement","console","warn","_c","_b","allowOutsideClick","setReturnFocus","returnFocus","call","escapeDeactivates","tabbableOptions","getShadowRoot","clickOutsideDeactivates","MouseEvent","composedPath","activate"],"sources":["./src/components/modal/modal.scss?tag=dso-modal&encapsulation=shadow","./src/components/modal/modal.tsx"],"sourcesContent":["@use \"~dso-toolkit/src/utilities\";\r\n@use \"~dso-toolkit/src/components/button\";\r\n@use \"~dso-toolkit/src/components/modal\";\r\n\r\n@include utilities.box-sizing();\r\n\r\n.sr-only {\r\n @include utilities.sr-only();\r\n}\r\n\r\nbutton {\r\n @include button.element();\r\n}\r\n\r\n.dso-modal {\r\n @include modal.root();\r\n}\r\n\r\n.dso-modal-overlay {\r\n @include modal.overlay();\r\n}\r\n\r\n.dso-close {\r\n dso-icon {\r\n color: modal.$close-icon-color;\r\n }\r\n}\r\n","import { h, Component, ComponentInterface, Element, Event, EventEmitter, Fragment, Prop, State } from \"@stencil/core\";\r\nimport { createFocusTrap, FocusTargetValueOrFalse, FocusTrap } from \"focus-trap\";\r\nimport { v4 } from \"uuid\";\r\n\r\nimport { DsoModalCloseEvent } from \"./modal.interfaces\";\r\n\r\n@Component({\r\n tag: \"dso-modal\",\r\n styleUrl: \"modal.scss\",\r\n shadow: true,\r\n})\r\nexport class Modal implements ComponentInterface {\r\n private trap?: FocusTrap;\r\n\r\n private dialogElement?: HTMLDivElement;\r\n\r\n private modalElement?: HTMLDivElement;\r\n\r\n @Element()\r\n host!: HTMLDsoModalElement;\r\n\r\n @State()\r\n ariaId = v4();\r\n\r\n @State()\r\n hasFooter?: boolean;\r\n\r\n /**\r\n * The title of the Modal.\r\n */\r\n @Prop()\r\n modalTitle?: string;\r\n\r\n /**\r\n * the role for the modal `dialog` | `alert` | `alertdialog`.\r\n */\r\n @Prop()\r\n role: string | null = \"dialog\";\r\n\r\n /**\r\n * when `false` the close button in the header will not be rendered. Defaults to `true`.\r\n */\r\n @Prop()\r\n showCloseButton = true;\r\n\r\n /**\r\n * Selector used to query the element which will be focused when the component instantiated. When undefined the modal focuses the first button.dso-primary in the modal footer. If no button can be found the close button is focused.\r\n */\r\n @Prop()\r\n initialFocus?: string;\r\n\r\n /**\r\n * Function that returns the element to focus on Modal close. Return `false` for no focus restore.\r\n */\r\n @Prop()\r\n returnFocus?: (nodeFocusedBeforeActivation: HTMLElement | SVGElement) => FocusTargetValueOrFalse;\r\n\r\n /**\r\n * Emitted when the user wants to close the Modal.\r\n */\r\n @Event()\r\n dsoClose!: EventEmitter<DsoModalCloseEvent>;\r\n\r\n componentWillLoad(): void {\r\n this.hasFooter = this.host.querySelector(\"*[slot = 'footer']\") !== null;\r\n }\r\n\r\n componentDidLoad(): void {\r\n this.setFocusTrap();\r\n }\r\n\r\n disconnectedCallback(): void {\r\n this.trap?.deactivate({ onDeactivate: () => undefined }); // override FocusTrap onDeactivate callback to avoid double event emits\r\n }\r\n\r\n render() {\r\n return (\r\n <Fragment>\r\n <div class=\"dso-modal-overlay\"></div>\r\n <div\r\n class=\"dso-modal\"\r\n role={this.role ?? undefined}\r\n aria-modal=\"true\"\r\n aria-labelledby={this.ariaId}\r\n ref={(element) => (this.modalElement = element)}\r\n >\r\n <div class=\"dso-dialog\" role=\"document\" ref={(element) => (this.dialogElement = element)}>\r\n {this.modalTitle ? (\r\n <div class=\"dso-header\">\r\n <h2 id={this.ariaId}>{this.modalTitle}</h2>\r\n {this.showCloseButton && (\r\n <button type=\"button\" class=\"dso-close\" onClick={(e) => this.dsoClose.emit({ originalEvent: e })}>\r\n <dso-icon icon=\"times\"></dso-icon>\r\n <span class=\"sr-only\">Sluiten</span>\r\n </button>\r\n )}\r\n </div>\r\n ) : (\r\n <span class=\"sr-only\" id={this.ariaId}>\r\n Dialoog\r\n </span>\r\n )}\r\n\r\n <div class=\"dso-body\" tabIndex={0}>\r\n <slot name=\"body\"></slot>\r\n </div>\r\n\r\n {this.hasFooter && (\r\n <div class=\"dso-footer\">\r\n <slot name=\"footer\"></slot>\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n </Fragment>\r\n );\r\n }\r\n\r\n private setFocusTrap() {\r\n if (this.dialogElement && !this.trap) {\r\n this.trap = createFocusTrap(this.dialogElement, {\r\n initialFocus: () => {\r\n if (this.initialFocus) {\r\n const initialFocusElement = this.host.querySelector<HTMLElement>(this.initialFocus);\r\n if (!initialFocusElement) {\r\n console.warn(`element '${this.initialFocus}' could not be found`);\r\n } else {\r\n return initialFocusElement;\r\n }\r\n }\r\n\r\n return (\r\n this.host.querySelector<HTMLButtonElement>(\"div[slot='footer'] .dso-primary\") ??\r\n this.modalElement?.querySelector<HTMLButtonElement>(\".dso-close\") ??\r\n false\r\n );\r\n },\r\n allowOutsideClick: true,\r\n setReturnFocus: (e) => this.returnFocus?.(e) ?? e,\r\n escapeDeactivates: true,\r\n tabbableOptions: {\r\n getShadowRoot: true,\r\n },\r\n clickOutsideDeactivates: (e) => {\r\n if (e instanceof MouseEvent && e.composedPath()[0] === this.modalElement) {\r\n return true;\r\n }\r\n\r\n return false;\r\n },\r\n onDeactivate: () => {\r\n delete this.trap;\r\n\r\n this.dsoClose.emit({ originalEvent: undefined });\r\n },\r\n }).activate();\r\n }\r\n }\r\n}\r\n"],"mappings":"gKAAA,MAAMA,EAAW,m9J,MCWJC,EAAK,M,wEAWPC,I,6DAea,S,qBAMJ,K,uDAoBlBC,oBACEC,KAAKC,UAAYD,KAAKE,KAAKC,cAAc,wBAA0B,I,CAGrEC,mBACEJ,KAAKK,c,CAGPC,uB,OACEC,EAAAP,KAAKQ,QAAI,MAAAD,SAAA,SAAAA,EAAEE,WAAW,CAAEC,aAAc,IAAMC,W,CAG9CC,S,MACE,OACEC,EAACC,EAAQ,KACPD,EAAA,OAAKE,MAAM,sBACXF,EAAA,OACEE,MAAM,YACNC,MAAMT,EAAAP,KAAKgB,QAAI,MAAAT,SAAA,EAAAA,EAAII,UAAS,aACjB,OAAM,kBACAX,KAAKiB,OACtBC,IAAMC,GAAanB,KAAKoB,aAAeD,GAEvCN,EAAA,OAAKE,MAAM,aAAaC,KAAK,WAAWE,IAAMC,GAAanB,KAAKqB,cAAgBF,GAC7EnB,KAAKsB,WACJT,EAAA,OAAKE,MAAM,cACTF,EAAA,MAAIU,GAAIvB,KAAKiB,QAASjB,KAAKsB,YAC1BtB,KAAKwB,iBACJX,EAAA,UAAQY,KAAK,SAASV,MAAM,YAAYW,QAAUC,GAAM3B,KAAK4B,SAASC,KAAK,CAAEC,cAAeH,KAC1Fd,EAAA,YAAUkB,KAAK,UACflB,EAAA,QAAME,MAAM,WAAS,aAK3BF,EAAA,QAAME,MAAM,UAAUQ,GAAIvB,KAAKiB,QAAM,WAKvCJ,EAAA,OAAKE,MAAM,WAAWiB,SAAU,GAC9BnB,EAAA,QAAMoB,KAAK,UAGZjC,KAAKC,WACJY,EAAA,OAAKE,MAAM,cACTF,EAAA,QAAMoB,KAAK,c,CASjB5B,eACN,GAAIL,KAAKqB,gBAAkBrB,KAAKQ,KAAM,CACpCR,KAAKQ,KAAO0B,EAAgBlC,KAAKqB,cAAe,CAC9Cc,aAAc,K,UACZ,GAAInC,KAAKmC,aAAc,CACrB,MAAMC,EAAsBpC,KAAKE,KAAKC,cAA2BH,KAAKmC,cACtE,IAAKC,EAAqB,CACxBC,QAAQC,KAAK,YAAYtC,KAAKmC,mC,KACzB,CACL,OAAOC,C,EAIX,OACEG,GAAAhC,EAAAP,KAAKE,KAAKC,cAAiC,sCAAkC,MAAAI,SAAA,EAAAA,GAC7EiC,EAAAxC,KAAKoB,gBAAY,MAAAoB,SAAA,SAAAA,EAAErC,cAAiC,iBAAa,MAAAoC,SAAA,EAAAA,EACjE,KAAK,EAGTE,kBAAmB,KACnBC,eAAiBf,IAAC,IAAApB,EAAAiC,EAAK,OAAAA,GAAAjC,EAAAP,KAAK2C,eAAW,MAAApC,SAAA,SAAAA,EAAAqC,KAAA5C,KAAG2B,MAAE,MAAAa,SAAA,EAAAA,EAAIb,CAAC,EACjDkB,kBAAmB,KACnBC,gBAAiB,CACfC,cAAe,MAEjBC,wBAA0BrB,IACxB,GAAIA,aAAasB,YAActB,EAAEuB,eAAe,KAAOlD,KAAKoB,aAAc,CACxE,OAAO,I,CAGT,OAAO,KAAK,EAEdV,aAAc,YACLV,KAAKQ,KAEZR,KAAK4B,SAASC,KAAK,CAAEC,cAAenB,WAAY,IAEjDwC,U"}
|