@dso-toolkit/core 63.0.0 → 64.0.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-body-88802b1e.js → annotation-body-b062e93f.js} +2 -2
- package/dist/cjs/{annotation-body-88802b1e.js.map → annotation-body-b062e93f.js.map} +1 -1
- package/dist/cjs/{annotation-symbol-slot-939136f8.js → annotation-symbol-slot-e9741f0b.js} +2 -2
- package/dist/cjs/{annotation-symbol-slot-939136f8.js.map → annotation-symbol-slot-e9741f0b.js.map} +1 -1
- package/dist/cjs/dso-accordion-section.cjs.entry.js +6 -6
- package/dist/cjs/dso-accordion-section.cjs.entry.js.map +1 -1
- package/dist/cjs/dso-accordion.cjs.entry.js +1 -1
- package/dist/cjs/dso-action-list-item.cjs.entry.js +1 -1
- package/dist/cjs/dso-action-list.cjs.entry.js +1 -1
- package/dist/cjs/dso-advanced-select.cjs.entry.js +1 -1
- package/dist/cjs/{dso-alert_5.cjs.entry.js → dso-alert_6.cjs.entry.js} +17 -2
- package/dist/cjs/dso-alert_6.cjs.entry.js.map +1 -0
- package/dist/cjs/dso-annotation-activiteit.cjs.entry.js +3 -3
- package/dist/cjs/dso-annotation-gebiedsaanwijzing.cjs.entry.js +3 -3
- package/dist/cjs/dso-annotation-kaart.cjs.entry.js +2 -2
- package/dist/cjs/dso-annotation-locatie_2.cjs.entry.js +3 -3
- package/dist/cjs/dso-annotation-omgevingsnormwaarde.cjs.entry.js +3 -3
- package/dist/cjs/dso-attachments-counter_2.cjs.entry.js +1 -1
- package/dist/cjs/dso-autosuggest.cjs.entry.js +2 -2
- package/dist/cjs/dso-autosuggest.cjs.entry.js.map +1 -1
- package/dist/cjs/dso-banner.cjs.entry.js +1 -1
- package/dist/cjs/dso-card-container.cjs.entry.js +1 -1
- package/dist/cjs/dso-card.cjs.entry.js +1 -1
- package/dist/cjs/dso-date-picker-legacy.cjs.entry.js +1 -1
- package/dist/cjs/dso-date-picker.cjs.entry.js +1 -1
- package/dist/cjs/dso-dropdown-menu.cjs.entry.js +1 -1
- package/dist/cjs/dso-header.cjs.entry.js +1 -1
- package/dist/cjs/dso-helpcenter-panel.cjs.entry.js +1 -1
- package/dist/cjs/dso-highlight-box.cjs.entry.js +1 -1
- package/dist/cjs/dso-icon.cjs.entry.js +1 -1
- package/dist/cjs/dso-info-button.cjs.entry.js +1 -1
- package/dist/cjs/dso-info_2.cjs.entry.js +1 -1
- package/dist/cjs/dso-input-range.cjs.entry.js +1 -1
- package/dist/cjs/{dso-tooltip.cjs.entry.js → dso-label_2.cjs.entry.js} +131 -8
- package/dist/cjs/dso-label_2.cjs.entry.js.map +1 -0
- package/dist/cjs/dso-legend-item.cjs.entry.js +1 -1
- package/dist/cjs/dso-list-button.cjs.entry.js +2 -2
- package/dist/cjs/dso-logo.cjs.entry.js +1 -1
- package/dist/cjs/dso-map-base-layers.cjs.entry.js +1 -1
- package/dist/cjs/dso-map-controls.cjs.entry.js +1 -1
- package/dist/cjs/dso-map-overlays.cjs.entry.js +1 -1
- package/dist/cjs/dso-mark-bar.cjs.entry.js +1 -1
- package/dist/cjs/dso-modal.cjs.entry.js +1 -1
- package/dist/cjs/dso-pagination.cjs.entry.js +1 -1
- package/dist/cjs/dso-progress-bar.cjs.entry.js +1 -1
- package/dist/cjs/dso-progress-indicator.cjs.entry.js +1 -1
- package/dist/cjs/dso-renvooi_2.cjs.entry.js +68 -0
- package/dist/cjs/dso-renvooi_2.cjs.entry.js.map +1 -0
- package/dist/cjs/dso-responsive-element.cjs.entry.js +1 -1
- package/dist/cjs/dso-scrollable.cjs.entry.js +1 -1
- package/dist/cjs/dso-toggletip.cjs.entry.js +1 -1
- package/dist/cjs/dso-toolkit.cjs.js +3 -3
- package/dist/cjs/dso-toolkit.cjs.js.map +1 -1
- package/dist/cjs/dso-tree-view.cjs.entry.js +1 -1
- package/dist/cjs/dso-viewer-grid.cjs.entry.js +1 -1
- package/dist/cjs/dsot-document-component-demo.cjs.entry.js +1 -1
- package/dist/cjs/{index-ac055dd1.js → index-848434f1.js} +33 -7
- package/dist/cjs/index-848434f1.js.map +1 -0
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/collection/collection-manifest.json +2 -2
- package/dist/collection/components/accordion/components/accordion-section.css +5 -5
- package/dist/collection/components/accordion/components/accordion-section.js +15 -15
- package/dist/collection/components/accordion/components/accordion-section.js.map +1 -1
- package/dist/collection/components/autosuggest/autosuggest.css +7 -0
- package/dist/collection/components/label/label.interfaces.js +2 -0
- package/dist/collection/components/label/label.interfaces.js.map +1 -0
- package/dist/collection/components/label/label.js +11 -5
- package/dist/collection/components/label/label.js.map +1 -1
- package/dist/collection/components/list-button/list-button.css +2 -2
- package/dist/components/dso-accordion-section.js +21 -15
- package/dist/components/dso-accordion-section.js.map +1 -1
- package/dist/components/dso-autosuggest.js +1 -1
- package/dist/components/dso-autosuggest.js.map +1 -1
- package/dist/components/dso-list-button.js +1 -1
- package/dist/components/label.js +3 -3
- package/dist/components/label.js.map +1 -1
- package/dist/dso-toolkit/dso-toolkit.esm.js +1 -1
- package/dist/dso-toolkit/dso-toolkit.esm.js.map +1 -1
- package/dist/dso-toolkit/{p-6c73ed77.js → p-00caab3b.js} +2 -2
- package/dist/dso-toolkit/{p-95fb1798.entry.js → p-065ea3f8.entry.js} +2 -2
- package/dist/dso-toolkit/{p-f0637435.entry.js → p-09b3cda7.entry.js} +2 -2
- package/dist/dso-toolkit/{p-03dd8a73.entry.js → p-0cd85e9b.entry.js} +2 -2
- package/dist/dso-toolkit/{p-b194b9ae.entry.js → p-142b052b.entry.js} +2 -2
- package/dist/dso-toolkit/{p-0b390a43.entry.js → p-33629822.entry.js} +2 -2
- package/dist/dso-toolkit/{p-e7d7bae2.entry.js → p-38210481.entry.js} +2 -2
- package/dist/dso-toolkit/{p-a092b873.entry.js → p-470c6242.entry.js} +2 -2
- package/dist/dso-toolkit/{p-a67d289d.entry.js → p-4e6511c3.entry.js} +2 -2
- package/dist/dso-toolkit/{p-3b2495b4.entry.js → p-502f51b9.entry.js} +2 -2
- package/dist/dso-toolkit/{p-74439b69.entry.js → p-54dd8d20.entry.js} +2 -2
- package/dist/dso-toolkit/{p-d2910fa1.entry.js → p-54fff8c0.entry.js} +2 -2
- package/dist/dso-toolkit/p-54fff8c0.entry.js.map +1 -0
- package/dist/dso-toolkit/{p-a252cb3d.entry.js → p-5fa80df5.entry.js} +2 -2
- package/dist/dso-toolkit/{p-8fc08ddf.entry.js → p-64f032ae.entry.js} +2 -2
- package/dist/dso-toolkit/{p-fa249c92.entry.js → p-6742d457.entry.js} +2 -2
- package/dist/dso-toolkit/{p-da23f9ed.entry.js → p-786f3a41.entry.js} +2 -2
- package/dist/dso-toolkit/{p-59f3f399.entry.js → p-78daa04d.entry.js} +2 -2
- package/dist/dso-toolkit/{p-a4fd114d.entry.js → p-7acf6216.entry.js} +2 -2
- package/dist/dso-toolkit/{p-69c44279.entry.js → p-8e902d74.entry.js} +2 -2
- package/dist/dso-toolkit/{p-cc54f978.entry.js → p-8ff36cfa.entry.js} +2 -2
- package/dist/dso-toolkit/{p-55f6a27c.entry.js → p-9367abb1.entry.js} +2 -2
- package/dist/dso-toolkit/p-949f5bc0.entry.js +2 -0
- package/dist/dso-toolkit/p-949f5bc0.entry.js.map +1 -0
- package/dist/dso-toolkit/{p-d28182cd.entry.js → p-9630207a.entry.js} +2 -2
- package/dist/dso-toolkit/{p-afce1df4.entry.js → p-99a8a8d0.entry.js} +2 -2
- package/dist/dso-toolkit/p-9ec63c53.entry.js +2 -0
- package/dist/dso-toolkit/p-9ec63c53.entry.js.map +1 -0
- package/dist/dso-toolkit/p-9f22940a.entry.js +2 -0
- package/dist/dso-toolkit/p-9f22940a.entry.js.map +1 -0
- package/dist/dso-toolkit/{p-07022a3d.entry.js → p-a13ad7da.entry.js} +2 -2
- package/dist/dso-toolkit/{p-c8518aab.entry.js → p-a40730f7.entry.js} +2 -2
- package/dist/dso-toolkit/{p-5671370e.entry.js → p-aa4d13b4.entry.js} +2 -2
- package/dist/dso-toolkit/{p-ac583d76.js → p-ae8b8810.js} +2 -2
- package/dist/dso-toolkit/{p-f2f91b97.entry.js → p-afb2d842.entry.js} +2 -2
- package/dist/dso-toolkit/{p-44148440.entry.js → p-b5744b74.entry.js} +2 -2
- package/dist/dso-toolkit/p-b623c74b.js +3 -0
- package/dist/dso-toolkit/p-b623c74b.js.map +1 -0
- package/dist/dso-toolkit/{p-afbf63ee.entry.js → p-b69aca6c.entry.js} +2 -2
- package/dist/dso-toolkit/{p-a6457fc6.entry.js → p-c0e4bcee.entry.js} +2 -2
- package/dist/dso-toolkit/{p-7ed9a1a0.entry.js → p-cd1a65e7.entry.js} +2 -2
- package/dist/dso-toolkit/{p-d9ddeee2.entry.js → p-d246e155.entry.js} +2 -2
- package/dist/dso-toolkit/{p-6d3b3bc9.entry.js → p-d3d7cd07.entry.js} +2 -2
- package/dist/dso-toolkit/{p-53b7c61b.entry.js → p-d6c90738.entry.js} +2 -2
- package/dist/dso-toolkit/p-dd680a61.entry.js +2 -0
- package/dist/dso-toolkit/p-dd680a61.entry.js.map +1 -0
- package/dist/dso-toolkit/{p-cc0e5e1f.entry.js → p-e563fe5b.entry.js} +2 -2
- package/dist/dso-toolkit/{p-53b5cc29.entry.js → p-e96c2531.entry.js} +2 -2
- package/dist/dso-toolkit/{p-289c49f5.entry.js → p-ea62fe33.entry.js} +2 -2
- package/dist/dso-toolkit/{p-bf0207ff.entry.js → p-eaa9146c.entry.js} +2 -2
- package/dist/dso-toolkit/{p-c5678d6e.entry.js → p-ede5568b.entry.js} +2 -2
- package/dist/dso-toolkit/{p-67e0739d.entry.js → p-f7428e63.entry.js} +2 -2
- package/dist/dso-toolkit/{p-feedd113.entry.js → p-f9a0b819.entry.js} +2 -2
- package/dist/dso-toolkit/{p-301dbfb1.entry.js → p-ff8a8429.entry.js} +2 -2
- package/dist/esm/{annotation-body-a8fadf3a.js → annotation-body-75f77191.js} +2 -2
- package/dist/esm/{annotation-body-a8fadf3a.js.map → annotation-body-75f77191.js.map} +1 -1
- package/dist/esm/{annotation-symbol-slot-28380b95.js → annotation-symbol-slot-1947dce6.js} +2 -2
- package/dist/esm/{annotation-symbol-slot-28380b95.js.map → annotation-symbol-slot-1947dce6.js.map} +1 -1
- package/dist/esm/dso-accordion-section.entry.js +6 -6
- package/dist/esm/dso-accordion-section.entry.js.map +1 -1
- package/dist/esm/dso-accordion.entry.js +1 -1
- package/dist/esm/dso-action-list-item.entry.js +1 -1
- package/dist/esm/dso-action-list.entry.js +1 -1
- package/dist/esm/dso-advanced-select.entry.js +1 -1
- package/dist/esm/{dso-alert_5.entry.js → dso-alert_6.entry.js} +17 -3
- package/dist/esm/dso-alert_6.entry.js.map +1 -0
- package/dist/esm/dso-annotation-activiteit.entry.js +3 -3
- package/dist/esm/dso-annotation-gebiedsaanwijzing.entry.js +3 -3
- package/dist/esm/dso-annotation-kaart.entry.js +2 -2
- package/dist/esm/dso-annotation-locatie_2.entry.js +3 -3
- package/dist/esm/dso-annotation-omgevingsnormwaarde.entry.js +3 -3
- package/dist/esm/dso-attachments-counter_2.entry.js +1 -1
- package/dist/esm/dso-autosuggest.entry.js +2 -2
- package/dist/esm/dso-autosuggest.entry.js.map +1 -1
- package/dist/esm/dso-banner.entry.js +1 -1
- package/dist/esm/dso-card-container.entry.js +1 -1
- package/dist/esm/dso-card.entry.js +1 -1
- package/dist/esm/dso-date-picker-legacy.entry.js +1 -1
- package/dist/esm/dso-date-picker.entry.js +1 -1
- package/dist/esm/dso-dropdown-menu.entry.js +1 -1
- package/dist/esm/dso-header.entry.js +1 -1
- package/dist/esm/dso-helpcenter-panel.entry.js +1 -1
- package/dist/esm/dso-highlight-box.entry.js +1 -1
- package/dist/esm/dso-icon.entry.js +1 -1
- package/dist/esm/dso-info-button.entry.js +1 -1
- package/dist/esm/dso-info_2.entry.js +1 -1
- package/dist/esm/dso-input-range.entry.js +1 -1
- package/dist/esm/{dso-tooltip.entry.js → dso-label_2.entry.js} +126 -4
- package/dist/esm/dso-label_2.entry.js.map +1 -0
- package/dist/esm/dso-legend-item.entry.js +1 -1
- package/dist/esm/dso-list-button.entry.js +2 -2
- package/dist/esm/dso-logo.entry.js +1 -1
- package/dist/esm/dso-map-base-layers.entry.js +1 -1
- package/dist/esm/dso-map-controls.entry.js +1 -1
- package/dist/esm/dso-map-overlays.entry.js +1 -1
- package/dist/esm/dso-mark-bar.entry.js +1 -1
- package/dist/esm/dso-modal.entry.js +1 -1
- package/dist/esm/dso-pagination.entry.js +1 -1
- package/dist/esm/dso-progress-bar.entry.js +1 -1
- package/dist/esm/dso-progress-indicator.entry.js +1 -1
- package/dist/esm/dso-renvooi_2.entry.js +63 -0
- package/dist/esm/dso-renvooi_2.entry.js.map +1 -0
- package/dist/esm/dso-responsive-element.entry.js +1 -1
- package/dist/esm/dso-scrollable.entry.js +1 -1
- package/dist/esm/dso-toggletip.entry.js +1 -1
- package/dist/esm/dso-toolkit.js +4 -4
- package/dist/esm/dso-toolkit.js.map +1 -1
- package/dist/esm/dso-tree-view.entry.js +1 -1
- package/dist/esm/dso-viewer-grid.entry.js +1 -1
- package/dist/esm/dsot-document-component-demo.entry.js +1 -1
- package/dist/esm/{index-c8e19f05.js → index-1a8f2a10.js} +33 -7
- package/dist/esm/index-1a8f2a10.js.map +1 -0
- package/dist/esm/loader.js +3 -3
- package/dist/types/components/accordion/components/accordion-section.d.ts +5 -5
- package/dist/types/components/annotation/annotation-body.d.ts +0 -1
- package/dist/types/components/label/label.d.ts +2 -1
- package/dist/types/components/label/label.interfaces.d.ts +1 -0
- package/dist/types/components.d.ts +22 -20
- package/package.json +4 -4
- package/dist/cjs/dso-alert_5.cjs.entry.js.map +0 -1
- package/dist/cjs/dso-badge.cjs.entry.js +0 -24
- package/dist/cjs/dso-badge.cjs.entry.js.map +0 -1
- package/dist/cjs/dso-label_3.cjs.entry.js +0 -193
- package/dist/cjs/dso-label_3.cjs.entry.js.map +0 -1
- package/dist/cjs/dso-tooltip.cjs.entry.js.map +0 -1
- package/dist/cjs/index-ac055dd1.js.map +0 -1
- package/dist/dso-toolkit/p-6ccd21fb.entry.js +0 -2
- package/dist/dso-toolkit/p-6ccd21fb.entry.js.map +0 -1
- package/dist/dso-toolkit/p-82752e49.entry.js +0 -2
- package/dist/dso-toolkit/p-82752e49.entry.js.map +0 -1
- package/dist/dso-toolkit/p-9275aad6.entry.js +0 -2
- package/dist/dso-toolkit/p-9275aad6.entry.js.map +0 -1
- package/dist/dso-toolkit/p-cdce1bd5.entry.js +0 -2
- package/dist/dso-toolkit/p-cdce1bd5.entry.js.map +0 -1
- package/dist/dso-toolkit/p-d2910fa1.entry.js.map +0 -1
- package/dist/dso-toolkit/p-d638c2b0.js +0 -3
- package/dist/dso-toolkit/p-d638c2b0.js.map +0 -1
- package/dist/dso-toolkit/p-fba55b6b.entry.js +0 -2
- package/dist/dso-toolkit/p-fba55b6b.entry.js.map +0 -1
- package/dist/esm/dso-alert_5.entry.js.map +0 -1
- package/dist/esm/dso-badge.entry.js +0 -20
- package/dist/esm/dso-badge.entry.js.map +0 -1
- package/dist/esm/dso-label_3.entry.js +0 -187
- package/dist/esm/dso-label_3.entry.js.map +0 -1
- package/dist/esm/dso-tooltip.entry.js.map +0 -1
- package/dist/esm/index-c8e19f05.js.map +0 -1
- /package/dist/dso-toolkit/{p-6c73ed77.js.map → p-00caab3b.js.map} +0 -0
- /package/dist/dso-toolkit/{p-95fb1798.entry.js.map → p-065ea3f8.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-f0637435.entry.js.map → p-09b3cda7.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-03dd8a73.entry.js.map → p-0cd85e9b.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-b194b9ae.entry.js.map → p-142b052b.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-0b390a43.entry.js.map → p-33629822.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-e7d7bae2.entry.js.map → p-38210481.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-a092b873.entry.js.map → p-470c6242.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-a67d289d.entry.js.map → p-4e6511c3.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-3b2495b4.entry.js.map → p-502f51b9.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-74439b69.entry.js.map → p-54dd8d20.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-a252cb3d.entry.js.map → p-5fa80df5.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-8fc08ddf.entry.js.map → p-64f032ae.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-fa249c92.entry.js.map → p-6742d457.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-da23f9ed.entry.js.map → p-786f3a41.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-59f3f399.entry.js.map → p-78daa04d.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-a4fd114d.entry.js.map → p-7acf6216.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-69c44279.entry.js.map → p-8e902d74.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-cc54f978.entry.js.map → p-8ff36cfa.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-55f6a27c.entry.js.map → p-9367abb1.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-d28182cd.entry.js.map → p-9630207a.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-afce1df4.entry.js.map → p-99a8a8d0.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-07022a3d.entry.js.map → p-a13ad7da.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-c8518aab.entry.js.map → p-a40730f7.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-5671370e.entry.js.map → p-aa4d13b4.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-ac583d76.js.map → p-ae8b8810.js.map} +0 -0
- /package/dist/dso-toolkit/{p-f2f91b97.entry.js.map → p-afb2d842.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-44148440.entry.js.map → p-b5744b74.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-afbf63ee.entry.js.map → p-b69aca6c.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-a6457fc6.entry.js.map → p-c0e4bcee.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-7ed9a1a0.entry.js.map → p-cd1a65e7.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-d9ddeee2.entry.js.map → p-d246e155.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-6d3b3bc9.entry.js.map → p-d3d7cd07.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-53b7c61b.entry.js.map → p-d6c90738.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-cc0e5e1f.entry.js.map → p-e563fe5b.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-53b5cc29.entry.js.map → p-e96c2531.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-289c49f5.entry.js.map → p-ea62fe33.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-bf0207ff.entry.js.map → p-eaa9146c.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-c5678d6e.entry.js.map → p-ede5568b.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-67e0739d.entry.js.map → p-f7428e63.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-feedd113.entry.js.map → p-f9a0b819.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-301dbfb1.entry.js.map → p-ff8a8429.entry.js.map} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["alertCss","DsoAlertStyle0","Alert","render","status","statusMap","get","this","Error","h","key","class","clsx","compact","role","roleAlert","undefined","icon","Map","imageOverlayCss","DsoImageOverlayStyle0","wijzigactieLabels","verwijder","voegtoe","Dimmer","active","src","alt","ref","click","children","type","onClick","ImageOverlay","titelSlot","bijschriftSlot","loadListener","event","target","HTMLImageElement","setZoomable","connectedCallback","host","querySelector","componentDidLoad","resizeObserver","ResizeObserver","debounce","imgElement","mutationObserver","MutationObserver","e","forceUpdate","_a","_b","disconnect","initZoomableImage","observe","attributes","subtree","attributeFilter","childList","disconnectedCallback","trap","deactivate","_c","complete","imageElement","width","naturalWidth","height","naturalHeight","zoomable","isWijzigactie","wijzigactie","editActionLabel","button","element","buttonElement","Host","focus","wrapperElement","name","hidden","componentDidRender","createFocusTrap","escapeDeactivates","clickOutsideDeactivates","MouseEvent","composedPath","setReturnFocus","onDeactivate","activate","getNodeName","node","Element","localName","nodeName","includes","substring","indexOf","wijzigactieToClassName","parseWijzigactieFromNode","getAttribute","WrapWijzigactie","isNestedAl","path","some","n","OzonContentAlNode","constructor","mapNodeToJsx","inline","content","childNodes","className","OzonContentBronNode","OzonContentDocumentNode","Fragment","INFINITY","symbolTag","reAsciiWord","reLatin","rsAstralRange","rsComboMarksRange","rsComboSymbolsRange","rsDingbatRange","rsLowerRange","rsMathOpRange","rsNonCharRange","rsPunctuationRange","rsSpaceRange","rsUpperRange","rsVarRange","rsBreakRange","rsApos","rsBreak","rsCombo","rsDigits","rsDingbat","rsLower","rsMisc","rsFitz","rsModifier","rsNonAstral","rsRegional","rsSurrPair","rsUpper","rsZWJ","rsLowerMisc","rsUpperMisc","rsOptLowerContr","rsOptUpperContr","reOptMod","rsOptVar","rsOptJoin","join","rsSeq","rsEmoji","reApos","RegExp","reComboMark","reUnicodeWord","reHasUnicodeWord","deburredLetters","freeGlobal","global","Object","freeSelf","self","root","Function","arrayReduce","array","iteratee","accumulator","initAccum","index","length","asciiWords","string","match","basePropertyOf","object","deburrLetter","hasUnicodeWord","test","unicodeWords","objectProto","prototype","objectToString","toString","Symbol","symbolProto","symbolToString","baseToString","value","isSymbol","call","result","createCompounder","callback","words","deburr","replace","isObjectLike","kebabCase","word","toLowerCase","pattern","guard","lodash_kebabcase","OzonContentExtRefNode","href","tagName","rel","OzonContentFallbackNode","Bijschrift","bijschrift","bron","inhoud","OzonContentFiguurNode","getStyle","breedte","hoogte","Array","from","titel","find","textContent","illustratieNode","bijschriftNode","illustratie","naam","uitlijning","locatie","preventLayoutShift","Number","slot","_f","_e","_d","style","OzonContentInhoudNode","richContent","OzonContentInlineTekstAfbeeldingNode","OzonContentInlineNodes","Tag","OzonContentIntIoRefNode","emitAnchorClick","intRefOnClick","preventDefault","currentTarget","HTMLAnchorElement","documentComponent","originalEvent","OzonContentIntRefNode","OzonContentLijstNode","parseTypeFromLijstNode","aanhef","sluiting","listItems","filter","map","item","itemNodes","liNummer","liWijzigactie","OzonContentNieuweTekstNode","OzonContentNootNode","handles","identify","state","openNoteId","setState","noteId","console","error","noteControlsId","nootNummer","onBlur","id","stateless","descriptive","querySelectorAll","OzonContentOpschriftNode","mapColspecs","count","nodeList","elements","totalWidth","getTotalWidth","columns","colNumber","colsep","number","parseInt","rowsep","getWidth","reduce","colWidth","isNaN","Math","round","Colgroup","colspecs","colspec","getColspecStartColsep","nameStart","colspecStart","c","getColspecStartRowsep","getData","cell","row","parentElement","tgroup","table","moreRows","nameEnd","getColspan","colspecEnd","colspan","Cell","context","rowSpan","colSpan","Rows","rows","mapData","colAttribute","columnCount","caption","headRows","bodyRows","frame","OzonContentTableNode","uuidv4","assign","OzonContentTextNode","mark","emitMarkItemHighlight","highlight","text","OzonContentVerwijderdeTekstNode","Mapper","mappers","skip","t","m","push","fallbackNode","findMapper","isArray","NodeList","mapper","identity","s","transform","input","document","inputToXmlDocument","message","getRootNode","XMLDocument","domParser","DOMParser","parseFromString","implementation","createDocument","ozonContentCss","DsoOzonContentStyle0","OzonContent","handleMarkItemHighlight","elementRef","dsoOzonContentMarkItemHighlight","emit","contentWatcher","dsoAnchorClick","transformed","panelCss","DsoPanelStyle0","Panel","dsoCloseClick","tableCss","DsoTableStyle0","Table","labelledbyId","v4","startResponsiveBehavior","componentWillLoad","entries","setResponsiveTable","setFocusTrap","trim","modalActive","placeholderHeight","focusTrapElement","isResponsive","noModal","display","openModal","closeModal","clientHeight","tabbableOptions","getShadowRoot","dsoTable","tableElement","HTMLTableElement","floor","getBoundingClientRect","contentRect"],"sources":["src/components/alert/alert.scss?tag=dso-alert&encapsulation=shadow","src/components/alert/alert.tsx","src/components/image-overlay/image-overlay.scss?tag=dso-image-overlay&encapsulation=shadow","src/components/image-overlay/image-overlay.tsx","src/components/ozon-content/get-node-name.function.ts","src/components/ozon-content/functions/wijzigactie-to-class-name.function.ts","src/components/ozon-content/functions/parse-wijzigactie-from-node.function.ts","src/components/ozon-content/functional-components/wrap-wijzigactie.functional-component.tsx","src/components/ozon-content/nodes/al.node.tsx","src/components/ozon-content/nodes/bron.node.tsx","src/components/ozon-content/nodes/document.node.tsx","../../node_modules/lodash.kebabcase/index.js","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=shadow","src/components/ozon-content/ozon-content.tsx","src/components/panel/panel.scss?tag=dso-panel&encapsulation=shadow","src/components/panel/panel.tsx","src/components/table/table.scss?tag=dso-table&encapsulation=shadow","src/components/table/table.tsx"],"sourcesContent":["@use \"~dso-toolkit/src/utilities\";\r\n@use \"~dso-toolkit/src/variables/units\";\r\n@use \"~dso-toolkit/src/components/alert\";\r\n\r\n:host {\r\n display: block;\r\n}\r\n\r\n:host(:not(:first-child)) {\r\n margin-block-start: units.$u3;\r\n}\r\n\r\n:host([compact]:not([compact=\"false\"])) {\r\n position: relative;\r\n @include alert.compact();\r\n}\r\n\r\n:host([status=\"success\"]) {\r\n @include alert.status-success();\r\n}\r\n\r\n:host([status=\"success\"][compact]:not([compact=\"false\"])) {\r\n &::before {\r\n background-color: alert.$success-compact-accent-bg;\r\n }\r\n}\r\n\r\n:host([status=\"error\"]) {\r\n @include alert.status-error();\r\n}\r\n\r\n:host([status=\"error\"][compact]:not([compact=\"false\"])) {\r\n &::before {\r\n background-color: alert.$danger-compact-accent-bg;\r\n }\r\n}\r\n\r\n:host([status=\"warning\"]) {\r\n @include alert.status-warning();\r\n}\r\n\r\n:host([status=\"warning\"][compact]:not([compact=\"false\"])) {\r\n &::before {\r\n background-color: alert.$warning-compact-accent-bg;\r\n }\r\n}\r\n\r\n:host([status=\"info\"]) {\r\n @include alert.status-info();\r\n}\r\n\r\n:host([status=\"info\"][compact]:not([compact=\"false\"])) {\r\n &::before {\r\n background-color: alert.$info-compact-accent-bg;\r\n }\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.alert {\r\n @include alert.root();\r\n\r\n dso-icon {\r\n @include alert.icon-position();\r\n\r\n block-size: units.$u4;\r\n inline-size: units.$u4;\r\n }\r\n\r\n &.dso-compact {\r\n min-block-size: alert.$inline-padding;\r\n }\r\n}\r\n","import { Component, h, Prop } from \"@stencil/core\";\r\nimport clsx from \"clsx\";\r\n\r\n@Component({\r\n tag: \"dso-alert\",\r\n styleUrl: \"alert.scss\",\r\n shadow: true,\r\n})\r\nexport class Alert {\r\n /**\r\n * Set status of alert\r\n */\r\n @Prop({ reflect: true })\r\n status!: \"success\" | \"info\" | \"warning\" | \"error\";\r\n\r\n /**\r\n * Whether or not to show the role attribute with value \"alert\". To control the tooltip add the `role-alert` attribute.\r\n */\r\n @Prop()\r\n roleAlert?: boolean;\r\n\r\n /**\r\n * Show alert as compact variant (without icon)\r\n */\r\n @Prop({ reflect: true })\r\n compact?: boolean;\r\n\r\n private static statusMap = new Map<string, string>([\r\n [\"success\", \"Gelukt\"],\r\n [\"info\", \"Opmerking\"],\r\n [\"warning\", \"Waarschuwing\"],\r\n [\"error\", \"Fout\"],\r\n ]);\r\n\r\n render() {\r\n const status = Alert.statusMap.get(this.status);\r\n if (!status) {\r\n throw new Error(`Invalid status ${this.status}`);\r\n }\r\n\r\n return (\r\n <div\r\n class={clsx(\"alert\", `alert-${this.status}`, { \"dso-compact\": this.compact })}\r\n role={this.roleAlert ? \"alert\" : undefined}\r\n >\r\n {!this.compact && <dso-icon icon={\"status-\" + this.status}></dso-icon>}\r\n <span class=\"sr-only\">{status}:</span>\r\n <slot></slot>\r\n </div>\r\n );\r\n }\r\n}\r\n","@use \"~dso-toolkit/src/utilities\";\r\n\r\n@use \"~dso-toolkit/src/variables/colors\";\r\n@use \"~dso-toolkit/src/variables/units\";\r\n@use \"~dso-toolkit/src/variables/zindex\";\r\n\r\n@use \"~dso-toolkit/src/components/button\";\r\n@use \"~dso-toolkit/src/components/insert\";\r\n@use \"~dso-toolkit/src/components/delete\";\r\n\r\n:host {\r\n display: inline-block;\r\n position: relative;\r\n}\r\n\r\n:host(:hover) .open,\r\n.open:focus {\r\n opacity: 1;\r\n}\r\n\r\nbutton {\r\n @include button.element();\r\n}\r\n\r\n.open {\r\n @include button.secondary($modifiers: false, $icon-only: true);\r\n\r\n border: 0;\r\n box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.5);\r\n min-inline-size: auto;\r\n padding: units.$u1;\r\n opacity: 0;\r\n position: absolute;\r\n inset-inline-end: units.$u2;\r\n inset-block-start: units.$u2;\r\n}\r\n\r\n.dimmer {\r\n position: fixed;\r\n inset: 0;\r\n z-index: zindex.$image-overlay - 1;\r\n display: flex;\r\n padding: units.$u4;\r\n background-color: fade-out(colors.$wit, 0.2);\r\n justify-content: center;\r\n}\r\n\r\n.wrapper {\r\n align-self: center;\r\n box-shadow: 0 units.$u1 units.$u3 0 rgba(25, 25, 25, 0.4);\r\n line-height: 0;\r\n outline: 4px solid colors.$wit;\r\n position: relative;\r\n z-index: zindex.$image-overlay;\r\n\r\n .title {\r\n background-color: colors.$wit;\r\n font-weight: 700;\r\n line-height: initial;\r\n padding: units.$u1;\r\n position: absolute;\r\n }\r\n\r\n img {\r\n inline-size: auto;\r\n block-size: auto;\r\n max-inline-size: 100%;\r\n max-block-size: calc(100vh - units.$u8);\r\n }\r\n\r\n .figuur-bijschrift:not([hidden]) {\r\n display: block;\r\n font-size: 0.75rem;\r\n font-style: italic;\r\n padding-block-end: units.$u1 * 1.5;\r\n padding-block-start: units.$u2;\r\n }\r\n}\r\n\r\n.close {\r\n @include button.secondary($modifiers: false, $icon-only: true);\r\n\r\n border: 0;\r\n box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.5);\r\n min-inline-size: auto;\r\n padding: units.$u1;\r\n position: absolute;\r\n inset-block-start: units.$u2;\r\n inset-inline-end: units.$u2;\r\n}\r\n\r\nins.editaction-add {\r\n display: inline-block;\r\n margin-block-end: units.$u1;\r\n padding: units.$u1;\r\n @include insert.element();\r\n @include insert.root();\r\n\r\n .wrapper {\r\n outline: none;\r\n padding: units.$u1;\r\n @include insert.root();\r\n\r\n .editaction-label {\r\n line-height: 1.5;\r\n }\r\n\r\n .close {\r\n inset-block-start: units.$u6;\r\n }\r\n }\r\n\r\n .open {\r\n inset-block-start: units.$u6;\r\n }\r\n}\r\n\r\ndel.editaction-remove {\r\n display: inline-block;\r\n margin-block-end: units.$u1;\r\n padding: units.$u1;\r\n @include delete.root();\r\n\r\n .wrapper {\r\n outline: none;\r\n padding: units.$u1;\r\n @include delete.root();\r\n\r\n .title {\r\n text-decoration: line-through;\r\n }\r\n\r\n .editaction-label {\r\n line-height: 1.5;\r\n }\r\n\r\n .close {\r\n inset-block-start: units.$u6;\r\n }\r\n }\r\n\r\n .open {\r\n inset-block-start: units.$u6;\r\n }\r\n}\r\n\r\n.editaction-label {\r\n font-style: italic;\r\n margin-block-end: units.$u1;\r\n}\r\n","import {\r\n Component,\r\n ComponentInterface,\r\n Element,\r\n forceUpdate,\r\n FunctionalComponent,\r\n h,\r\n Host,\r\n Listen,\r\n Prop,\r\n State,\r\n} from \"@stencil/core\";\r\nimport debounce from \"debounce\";\r\nimport { createFocusTrap, FocusTrap } from \"focus-trap\";\r\n\r\ntype ImageOverlayWijzigactie = \"voegtoe\" | \"verwijder\";\r\n\r\nconst wijzigactieLabels: { [wijzigactie in ImageOverlayWijzigactie]: string } = {\r\n verwijder: \"Verwijderd\",\r\n voegtoe: \"Toegevoegd\",\r\n};\r\n\r\nconst Dimmer: FunctionalComponent<{\r\n active: boolean;\r\n src: string | undefined;\r\n alt: string | undefined;\r\n ref: (element: HTMLHeadingElement | undefined) => void;\r\n click: () => void;\r\n}> = ({ active, src, alt, ref, click }, children) =>\r\n active &&\r\n src &&\r\n alt && (\r\n <div class=\"dimmer\">\r\n <div class=\"wrapper\" ref={ref}>\r\n {children[2]}\r\n {children[0]}\r\n <img src={src} alt={alt} />\r\n <button type=\"button\" class=\"close\" onClick={click}>\r\n <dso-icon icon=\"times\"></dso-icon>\r\n <span>Sluiten</span>\r\n </button>\r\n {children[1]}\r\n </div>\r\n </div>\r\n );\r\n\r\n@Component({\r\n tag: \"dso-image-overlay\",\r\n styleUrl: \"./image-overlay.scss\",\r\n shadow: true,\r\n})\r\nexport class ImageOverlay implements ComponentInterface {\r\n @Element()\r\n host!: HTMLDsoImageOverlayElement;\r\n\r\n /**\r\n * The wijzigactie.\r\n */\r\n @Prop()\r\n wijzigactie?: string;\r\n\r\n @State()\r\n active = false;\r\n\r\n @State()\r\n zoomable = false;\r\n\r\n private buttonElement: HTMLButtonElement | undefined;\r\n\r\n private wrapperElement: HTMLDivElement | undefined;\r\n\r\n private trap: FocusTrap | undefined;\r\n\r\n private titelSlot: HTMLElement | null = null;\r\n\r\n private bijschriftSlot: HTMLElement | null = null;\r\n\r\n private mutationObserver?: MutationObserver;\r\n\r\n private resizeObserver?: ResizeObserver;\r\n\r\n @Listen(\"load\", { capture: true })\r\n loadListener(event: Event) {\r\n if (event.target instanceof HTMLImageElement) {\r\n this.setZoomable(event.target);\r\n }\r\n }\r\n\r\n connectedCallback() {\r\n this.titelSlot = this.host.querySelector<HTMLDivElement>(\"div[slot='titel']\");\r\n\r\n this.bijschriftSlot = this.host.querySelector<HTMLDivElement>(\"div[slot='bijschrift']\");\r\n }\r\n\r\n componentDidLoad() {\r\n this.resizeObserver = new ResizeObserver(\r\n debounce(() => {\r\n const imgElement = this.host.querySelector(\"img\");\r\n\r\n if (imgElement instanceof HTMLImageElement) {\r\n this.setZoomable(imgElement);\r\n }\r\n }, 200),\r\n );\r\n\r\n this.mutationObserver = new MutationObserver((e) => {\r\n forceUpdate(this.host);\r\n\r\n if (e[0]?.type === \"childList\") {\r\n this.resizeObserver?.disconnect();\r\n // <img> is gone or a new element.\r\n this.initZoomableImage();\r\n }\r\n });\r\n\r\n this.mutationObserver.observe(this.host, {\r\n attributes: true,\r\n subtree: true,\r\n attributeFilter: [\"src\", \"alt\"],\r\n childList: true,\r\n });\r\n\r\n this.initZoomableImage();\r\n }\r\n\r\n disconnectedCallback() {\r\n this.trap?.deactivate();\r\n this.mutationObserver?.disconnect();\r\n this.resizeObserver?.disconnect();\r\n }\r\n\r\n private initZoomableImage(): void {\r\n const imgElement = this.host.querySelector(\"img\");\r\n\r\n if (!(imgElement instanceof HTMLImageElement)) {\r\n return;\r\n }\r\n\r\n // Due to timing issues where the image is loaded before we listen to load events we double check if the image is already complete.\r\n if (imgElement.complete) {\r\n this.setZoomable(imgElement);\r\n }\r\n\r\n this.resizeObserver?.observe(imgElement);\r\n }\r\n\r\n private setZoomable(imageElement: HTMLImageElement): void {\r\n const { width, naturalWidth, height, naturalHeight } = imageElement;\r\n\r\n this.zoomable = width < naturalWidth || height < naturalHeight;\r\n }\r\n\r\n private isWijzigactie(wijzigactie: string): wijzigactie is ImageOverlayWijzigactie {\r\n return wijzigactie === \"voegtoe\" || wijzigactie === \"verwijder\";\r\n }\r\n\r\n render() {\r\n const { src, alt } = this.host.querySelector(\"img\") ?? {};\r\n\r\n const editActionLabel: string | undefined =\r\n (this.wijzigactie && this.isWijzigactie(this.wijzigactie) && wijzigactieLabels[this.wijzigactie]) || undefined;\r\n\r\n const button = this.zoomable && (\r\n <button\r\n type=\"button\"\r\n class=\"open\"\r\n ref={(element) => (this.buttonElement = element)}\r\n onClick={() => (this.active = true)}\r\n >\r\n <dso-icon icon=\"external-link\"></dso-icon>\r\n <span>Afbeelding vergroot weergeven</span>\r\n </button>\r\n );\r\n\r\n if (this.wijzigactie === \"verwijder\") {\r\n return (\r\n <Host onClick={() => this.buttonElement?.focus()}>\r\n <del class=\"editaction-remove\">\r\n <div class=\"editaction-label\">{editActionLabel}:</div>\r\n <Dimmer\r\n active={this.active}\r\n src={src}\r\n alt={alt}\r\n ref={(element) => (this.wrapperElement = element)}\r\n click={() => (this.active = false)}\r\n >\r\n {this.titelSlot && (\r\n <div class=\"title\">\r\n <slot name=\"titel\" />\r\n </div>\r\n )}\r\n <div class=\"figuur-bijschrift\" hidden={!this.bijschriftSlot}>\r\n <slot name=\"bijschrift\" />\r\n </div>\r\n {<div class=\"editaction-label\">{editActionLabel}:</div>}\r\n </Dimmer>\r\n <slot />\r\n {button}\r\n </del>\r\n </Host>\r\n );\r\n }\r\n\r\n if (this.wijzigactie === \"voegtoe\") {\r\n return (\r\n <Host onClick={() => this.buttonElement?.focus()}>\r\n <ins class=\"editaction-add\">\r\n <div class=\"editaction-label\">{editActionLabel}:</div>\r\n <Dimmer\r\n active={this.active}\r\n src={src}\r\n alt={alt}\r\n ref={(element) => (this.wrapperElement = element)}\r\n click={() => (this.active = false)}\r\n >\r\n {this.titelSlot && (\r\n <div class=\"title\">\r\n <slot name=\"titel\" />\r\n </div>\r\n )}\r\n <div class=\"figuur-bijschrift\" hidden={!this.bijschriftSlot}>\r\n <slot name=\"bijschrift\" />\r\n </div>\r\n {<div class=\"editaction-label\">{editActionLabel}:</div>}\r\n </Dimmer>\r\n <slot />\r\n {button}\r\n </ins>\r\n </Host>\r\n );\r\n }\r\n\r\n return (\r\n <Host onClick={() => this.buttonElement?.focus()}>\r\n <Dimmer\r\n active={this.active}\r\n src={src}\r\n alt={alt}\r\n ref={(element) => (this.wrapperElement = element)}\r\n click={() => (this.active = false)}\r\n >\r\n {this.titelSlot && (\r\n <div class=\"title\">\r\n <slot name=\"titel\" />\r\n </div>\r\n )}\r\n <div class=\"figuur-bijschrift\" hidden={!this.bijschriftSlot}>\r\n <slot name=\"bijschrift\" />\r\n </div>\r\n </Dimmer>\r\n <slot />\r\n {button}\r\n </Host>\r\n );\r\n }\r\n\r\n componentDidRender() {\r\n if (this.active && this.wrapperElement && !this.trap) {\r\n this.trap = createFocusTrap(this.wrapperElement, {\r\n escapeDeactivates: true,\r\n clickOutsideDeactivates: (e) => {\r\n if (e instanceof MouseEvent && e.composedPath()[0] === this.wrapperElement) {\r\n this.active = false;\r\n\r\n return false;\r\n }\r\n\r\n return true;\r\n },\r\n setReturnFocus: this.buttonElement ?? false,\r\n onDeactivate: () => (this.active = false),\r\n }).activate();\r\n } else if (!this.active && this.trap) {\r\n this.trap?.deactivate();\r\n\r\n delete this.trap;\r\n }\r\n }\r\n}\r\n","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 { OzonContentWijzigActie } from \"../ozon-content.interfaces\";\r\n\r\nexport function wijzigactieToClassName(wijzigactie: OzonContentWijzigActie | undefined): string | undefined {\r\n if (wijzigactie === \"voegtoe\") {\r\n return \"editaction-add\";\r\n }\r\n\r\n if (wijzigactie === \"verwijder\") {\r\n return \"editaction-remove\";\r\n }\r\n\r\n return undefined;\r\n}\r\n","import { OzonContentWijzigActie } from \"../ozon-content.interfaces\";\r\n\r\nexport function parseWijzigactieFromNode(node: Node): OzonContentWijzigActie | undefined {\r\n const wijzigactie = node instanceof Element ? node.getAttribute(\"wijzigactie\") : undefined;\r\n\r\n return wijzigactie === \"voegtoe\" || wijzigactie === \"verwijder\" ? wijzigactie : undefined;\r\n}\r\n","import { FunctionalComponent, h } from \"@stencil/core\";\r\nimport { OzonContentWijzigActie } from \"../ozon-content.interfaces\";\r\n\r\nexport interface WrapWijzigactieProps {\r\n wijzigactie: OzonContentWijzigActie | undefined;\r\n}\r\n\r\nexport const WrapWijzigactie: FunctionalComponent<WrapWijzigactieProps> = ({ wijzigactie }, children) => {\r\n if (wijzigactie === \"voegtoe\") {\r\n return <ins>{children}</ins>;\r\n }\r\n\r\n if (wijzigactie === \"verwijder\") {\r\n return <del>{children}</del>;\r\n }\r\n\r\n return children;\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\nimport { wijzigactieToClassName } from \"../functions/wijzigactie-to-class-name.function\";\r\nimport { parseWijzigactieFromNode } from \"../functions/parse-wijzigactie-from-node.function\";\r\nimport { WrapWijzigactie } from \"../functional-components/wrap-wijzigactie.functional-component\";\r\n\r\nfunction isNestedAl(path: Node[]) {\r\n return path.some((n) => {\r\n const nodeName = getNodeName(n);\r\n\r\n return nodeName === \"Al\" || nodeName === \"Opschrift\";\r\n });\r\n}\r\n\r\nexport class OzonContentAlNode implements OzonContentNode {\r\n name = \"Al\";\r\n\r\n render(node: Element, { mapNodeToJsx, path, inline }: OzonContentNodeContext) {\r\n let content = mapNodeToJsx(node.childNodes);\r\n const wijzigactie = parseWijzigactieFromNode(node);\r\n const className = wijzigactieToClassName(wijzigactie);\r\n\r\n if (inline || isNestedAl(path)) {\r\n content = (\r\n <span role=\"paragraph\" class={className}>\r\n {content}\r\n </span>\r\n );\r\n } else {\r\n content = <p class={className}>{content}</p>;\r\n }\r\n\r\n return <WrapWijzigactie wijzigactie={wijzigactie}>{content}</WrapWijzigactie>;\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","/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match words composed of alphanumeric characters. */\nvar reAsciiWord = /[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g;\n\n/** Used to match Latin Unicode letters (excluding mathematical operators). */\nvar reLatin = /[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g;\n\n/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f\\\\ufe20-\\\\ufe23',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20f0',\n rsDingbatRange = '\\\\u2700-\\\\u27bf',\n rsLowerRange = 'a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff',\n rsMathOpRange = '\\\\xac\\\\xb1\\\\xd7\\\\xf7',\n rsNonCharRange = '\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf',\n rsPunctuationRange = '\\\\u2000-\\\\u206f',\n rsSpaceRange = ' \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000',\n rsUpperRange = 'A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde',\n rsVarRange = '\\\\ufe0e\\\\ufe0f',\n rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;\n\n/** Used to compose unicode capture groups. */\nvar rsApos = \"['\\u2019]\",\n rsBreak = '[' + rsBreakRange + ']',\n rsCombo = '[' + rsComboMarksRange + rsComboSymbolsRange + ']',\n rsDigits = '\\\\d+',\n rsDingbat = '[' + rsDingbatRange + ']',\n rsLower = '[' + rsLowerRange + ']',\n rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsUpper = '[' + rsUpperRange + ']',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar rsLowerMisc = '(?:' + rsLower + '|' + rsMisc + ')',\n rsUpperMisc = '(?:' + rsUpper + '|' + rsMisc + ')',\n rsOptLowerContr = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?',\n rsOptUpperContr = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?',\n reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq;\n\n/** Used to match apostrophes. */\nvar reApos = RegExp(rsApos, 'g');\n\n/**\n * Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and\n * [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols).\n */\nvar reComboMark = RegExp(rsCombo, 'g');\n\n/** Used to match complex or compound words. */\nvar reUnicodeWord = RegExp([\n rsUpper + '?' + rsLower + '+' + rsOptLowerContr + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')',\n rsUpperMisc + '+' + rsOptUpperContr + '(?=' + [rsBreak, rsUpper + rsLowerMisc, '$'].join('|') + ')',\n rsUpper + '?' + rsLowerMisc + '+' + rsOptLowerContr,\n rsUpper + '+' + rsOptUpperContr,\n rsDigits,\n rsEmoji\n].join('|'), 'g');\n\n/** Used to detect strings that need a more robust regexp to match words. */\nvar reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2,}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;\n\n/** Used to map Latin Unicode letters to basic Latin letters. */\nvar deburredLetters = {\n // Latin-1 Supplement block.\n '\\xc0': 'A', '\\xc1': 'A', '\\xc2': 'A', '\\xc3': 'A', '\\xc4': 'A', '\\xc5': 'A',\n '\\xe0': 'a', '\\xe1': 'a', '\\xe2': 'a', '\\xe3': 'a', '\\xe4': 'a', '\\xe5': 'a',\n '\\xc7': 'C', '\\xe7': 'c',\n '\\xd0': 'D', '\\xf0': 'd',\n '\\xc8': 'E', '\\xc9': 'E', '\\xca': 'E', '\\xcb': 'E',\n '\\xe8': 'e', '\\xe9': 'e', '\\xea': 'e', '\\xeb': 'e',\n '\\xcc': 'I', '\\xcd': 'I', '\\xce': 'I', '\\xcf': 'I',\n '\\xec': 'i', '\\xed': 'i', '\\xee': 'i', '\\xef': 'i',\n '\\xd1': 'N', '\\xf1': 'n',\n '\\xd2': 'O', '\\xd3': 'O', '\\xd4': 'O', '\\xd5': 'O', '\\xd6': 'O', '\\xd8': 'O',\n '\\xf2': 'o', '\\xf3': 'o', '\\xf4': 'o', '\\xf5': 'o', '\\xf6': 'o', '\\xf8': 'o',\n '\\xd9': 'U', '\\xda': 'U', '\\xdb': 'U', '\\xdc': 'U',\n '\\xf9': 'u', '\\xfa': 'u', '\\xfb': 'u', '\\xfc': 'u',\n '\\xdd': 'Y', '\\xfd': 'y', '\\xff': 'y',\n '\\xc6': 'Ae', '\\xe6': 'ae',\n '\\xde': 'Th', '\\xfe': 'th',\n '\\xdf': 'ss',\n // Latin Extended-A block.\n '\\u0100': 'A', '\\u0102': 'A', '\\u0104': 'A',\n '\\u0101': 'a', '\\u0103': 'a', '\\u0105': 'a',\n '\\u0106': 'C', '\\u0108': 'C', '\\u010a': 'C', '\\u010c': 'C',\n '\\u0107': 'c', '\\u0109': 'c', '\\u010b': 'c', '\\u010d': 'c',\n '\\u010e': 'D', '\\u0110': 'D', '\\u010f': 'd', '\\u0111': 'd',\n '\\u0112': 'E', '\\u0114': 'E', '\\u0116': 'E', '\\u0118': 'E', '\\u011a': 'E',\n '\\u0113': 'e', '\\u0115': 'e', '\\u0117': 'e', '\\u0119': 'e', '\\u011b': 'e',\n '\\u011c': 'G', '\\u011e': 'G', '\\u0120': 'G', '\\u0122': 'G',\n '\\u011d': 'g', '\\u011f': 'g', '\\u0121': 'g', '\\u0123': 'g',\n '\\u0124': 'H', '\\u0126': 'H', '\\u0125': 'h', '\\u0127': 'h',\n '\\u0128': 'I', '\\u012a': 'I', '\\u012c': 'I', '\\u012e': 'I', '\\u0130': 'I',\n '\\u0129': 'i', '\\u012b': 'i', '\\u012d': 'i', '\\u012f': 'i', '\\u0131': 'i',\n '\\u0134': 'J', '\\u0135': 'j',\n '\\u0136': 'K', '\\u0137': 'k', '\\u0138': 'k',\n '\\u0139': 'L', '\\u013b': 'L', '\\u013d': 'L', '\\u013f': 'L', '\\u0141': 'L',\n '\\u013a': 'l', '\\u013c': 'l', '\\u013e': 'l', '\\u0140': 'l', '\\u0142': 'l',\n '\\u0143': 'N', '\\u0145': 'N', '\\u0147': 'N', '\\u014a': 'N',\n '\\u0144': 'n', '\\u0146': 'n', '\\u0148': 'n', '\\u014b': 'n',\n '\\u014c': 'O', '\\u014e': 'O', '\\u0150': 'O',\n '\\u014d': 'o', '\\u014f': 'o', '\\u0151': 'o',\n '\\u0154': 'R', '\\u0156': 'R', '\\u0158': 'R',\n '\\u0155': 'r', '\\u0157': 'r', '\\u0159': 'r',\n '\\u015a': 'S', '\\u015c': 'S', '\\u015e': 'S', '\\u0160': 'S',\n '\\u015b': 's', '\\u015d': 's', '\\u015f': 's', '\\u0161': 's',\n '\\u0162': 'T', '\\u0164': 'T', '\\u0166': 'T',\n '\\u0163': 't', '\\u0165': 't', '\\u0167': 't',\n '\\u0168': 'U', '\\u016a': 'U', '\\u016c': 'U', '\\u016e': 'U', '\\u0170': 'U', '\\u0172': 'U',\n '\\u0169': 'u', '\\u016b': 'u', '\\u016d': 'u', '\\u016f': 'u', '\\u0171': 'u', '\\u0173': 'u',\n '\\u0174': 'W', '\\u0175': 'w',\n '\\u0176': 'Y', '\\u0177': 'y', '\\u0178': 'Y',\n '\\u0179': 'Z', '\\u017b': 'Z', '\\u017d': 'Z',\n '\\u017a': 'z', '\\u017c': 'z', '\\u017e': 'z',\n '\\u0132': 'IJ', '\\u0133': 'ij',\n '\\u0152': 'Oe', '\\u0153': 'oe',\n '\\u0149': \"'n\", '\\u017f': 'ss'\n};\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\nfunction arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array ? array.length : 0;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n}\n\n/**\n * Splits an ASCII `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction asciiWords(string) {\n return string.match(reAsciiWord) || [];\n}\n\n/**\n * The base implementation of `_.propertyOf` without support for deep paths.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyOf(object) {\n return function(key) {\n return object == null ? undefined : object[key];\n };\n}\n\n/**\n * Used by `_.deburr` to convert Latin-1 Supplement and Latin Extended-A\n * letters to basic Latin letters.\n *\n * @private\n * @param {string} letter The matched letter to deburr.\n * @returns {string} Returns the deburred letter.\n */\nvar deburrLetter = basePropertyOf(deburredLetters);\n\n/**\n * Checks if `string` contains a word composed of Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a word is found, else `false`.\n */\nfunction hasUnicodeWord(string) {\n return reHasUnicodeWord.test(string);\n}\n\n/**\n * Splits a Unicode `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction unicodeWords(string) {\n return string.match(reUnicodeWord) || [];\n}\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\n/**\n * Creates a function like `_.camelCase`.\n *\n * @private\n * @param {Function} callback The function to combine each word.\n * @returns {Function} Returns the new compounder function.\n */\nfunction createCompounder(callback) {\n return function(string) {\n return arrayReduce(words(deburr(string).replace(reApos, '')), callback, '');\n };\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\n/**\n * Deburrs `string` by converting\n * [Latin-1 Supplement](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table)\n * and [Latin Extended-A](https://en.wikipedia.org/wiki/Latin_Extended-A)\n * letters to basic Latin letters and removing\n * [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to deburr.\n * @returns {string} Returns the deburred string.\n * @example\n *\n * _.deburr('déjà vu');\n * // => 'deja vu'\n */\nfunction deburr(string) {\n string = toString(string);\n return string && string.replace(reLatin, deburrLetter).replace(reComboMark, '');\n}\n\n/**\n * Converts `string` to\n * [kebab case](https://en.wikipedia.org/wiki/Letter_case#Special_case_styles).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the kebab cased string.\n * @example\n *\n * _.kebabCase('Foo Bar');\n * // => 'foo-bar'\n *\n * _.kebabCase('fooBar');\n * // => 'foo-bar'\n *\n * _.kebabCase('__FOO_BAR__');\n * // => 'foo-bar'\n */\nvar kebabCase = createCompounder(function(result, word, index) {\n return result + (index ? '-' : '') + word.toLowerCase();\n});\n\n/**\n * Splits `string` into an array of its words.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {RegExp|string} [pattern] The pattern to match words.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the words of `string`.\n * @example\n *\n * _.words('fred, barney, & pebbles');\n * // => ['fred', 'barney', 'pebbles']\n *\n * _.words('fred, barney, & pebbles', /[^, ]+/g);\n * // => ['fred', 'barney', '&', 'pebbles']\n */\nfunction words(string, pattern, guard) {\n string = toString(string);\n pattern = guard ? undefined : pattern;\n\n if (pattern === undefined) {\n return hasUnicodeWord(string) ? unicodeWords(string) : asciiWords(string);\n }\n return string.match(pattern) || [];\n}\n\nmodule.exports = kebabCase;\n","import { h } from \"@stencil/core\";\r\nimport kebabCase from \"lodash.kebabcase\";\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 const className = kebabCase(node.tagName);\r\n\r\n return (\r\n <a target=\"_blank\" rel=\"noopener noreferrer\" href={href ?? undefined} class={className}>\r\n {mapNodeToJsx(node.childNodes)} <span class=\"sr-only\">(Opent andere website in nieuw tabblad)</span>\r\n <dso-icon icon=\"external-link\"></dso-icon>\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 getStyle(breedte: number, hoogte: number) {\r\n if (breedte && hoogte) {\r\n return {\r\n \"--img-aspect-ratio\": (breedte / hoogte).toString(),\r\n };\r\n }\r\n return;\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 const wijzigactie = node.getAttribute(\"wijzigactie\") || undefined;\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 };\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 const preventLayoutShift = !!Number(illustratie.breedte) && !!Number(illustratie.hoogte);\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 wijzigactie={wijzigactie}>\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 class={{ \"dso-ozon-figuur-reserve-space\": preventLayoutShift }}\r\n style={this.getStyle(Number(illustratie.breedte), Number(illustratie.hoogte))}\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 const wijzigactie = node.getAttribute(\"wijzigactie\");\r\n\r\n const richContent = <div class=\"dso-rich-content\">{mapNodeToJsx(node.childNodes)}</div>;\r\n\r\n if (wijzigactie === \"verwijder\") {\r\n return <del class=\"editaction-remove\">{richContent}</del>;\r\n }\r\n\r\n if (wijzigactie === \"voegtoe\") {\r\n return <ins class=\"editaction-add\">{richContent}</ins>;\r\n }\r\n\r\n return richContent;\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\nimport { parseWijzigactieFromNode } from \"../functions/parse-wijzigactie-from-node.function\";\r\nimport clsx from \"clsx\";\r\nimport { wijzigactieToClassName } from \"../functions/wijzigactie-to-class-name.function\";\r\nimport { WrapWijzigactie } from \"../functional-components/wrap-wijzigactie.functional-component\";\r\n\r\nexport class OzonContentLijstNode implements OzonContentNode {\r\n name = \"Lijst\";\r\n\r\n render(node: Element, { mapNodeToJsx }: OzonContentNodeContext) {\r\n const wijzigactie = parseWijzigactieFromNode(node);\r\n const childNodes = Array.from(node.childNodes);\r\n const type = parseTypeFromLijstNode(node);\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 <WrapWijzigactie wijzigactie={wijzigactie}>\r\n <div class={clsx(\"dso-ozon-lijst od-Lijst\", wijzigactieToClassName(wijzigactie))}>\r\n {aanhef && mapNodeToJsx(aanhef)}\r\n <ul class={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 const liWijzigactie = parseWijzigactieFromNode(item);\r\n\r\n return (\r\n <li class={clsx(\"od-Li\", wijzigactieToClassName(liWijzigactie))}>\r\n {liNummer && <span class=\"od-LiNummer\">{mapNodeToJsx(liNummer)}</span>}\r\n <WrapWijzigactie wijzigactie={liWijzigactie}>\r\n {mapNodeToJsx(itemNodes.filter((n) => getNodeName(n) !== \"LiNummer\"))}\r\n </WrapWijzigactie>\r\n </li>\r\n );\r\n })}\r\n </ul>\r\n {sluiting && mapNodeToJsx(sluiting)}\r\n </div>\r\n </WrapWijzigactie>\r\n );\r\n }\r\n}\r\n\r\nfunction parseTypeFromLijstNode(node: Node): LijstType | undefined {\r\n const type = node instanceof Element ? node.getAttribute(\"type\") : undefined;\r\n\r\n return type === \"expliciet\" || type === \"ongemarkeerd\" ? type : undefined;\r\n}\r\n\r\ntype LijstType = \"expliciet\" | \"ongemarkeerd\";\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 class=\"new-text\">{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 let content = mapNodeToJsx(node.childNodes);\r\n const wijzigactie = node.getAttribute(\"wijzigactie\");\r\n\r\n if (wijzigactie === \"voegtoe\") {\r\n content = <ins class=\"new-text\">{content}</ins>;\r\n } else if (wijzigactie === \"verwijder\") {\r\n content = <del class=\"removed-text\">{content}</del>;\r\n }\r\n\r\n return <>{content}</>;\r\n }\r\n}\r\n","import { Colspec, 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): Colspec => {\r\n const colNumber = element.getAttribute(\"colnum\");\r\n\r\n return {\r\n colsep: element.getAttribute(\"colsep\"),\r\n name: element.getAttribute(\"colname\") ?? \"\",\r\n number: colNumber ? parseInt(colNumber, 10) : index + 1,\r\n rowsep: element.getAttribute(\"rowsep\"),\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 } from \"@stencil/core/internal\";\r\nimport clsx from \"clsx\";\r\n\r\nimport { OzonContentNodeContext } from \"../../ozon-content-node-context.interface\";\r\nimport { Colspecs } from \"./colspec/colspec.interface\";\r\n\r\nfunction getColspecStartColsep({ columns }: Colspecs, nameStart: string): string | null {\r\n const colspecStart = columns.find((c) => c.name === nameStart);\r\n\r\n return colspecStart ? colspecStart.colsep : null;\r\n}\r\n\r\nfunction getColspecStartRowsep({ columns }: Colspecs, nameStart: string): string | null {\r\n const colspecStart = columns.find((c) => c.name === nameStart);\r\n\r\n return colspecStart ? colspecStart.rowsep : null;\r\n}\r\n\r\nfunction getData(cell: Element, colspecs?: Colspecs) {\r\n const nameStart = cell.getAttribute(\"namest\");\r\n const row = cell.parentElement;\r\n const tgroup = row?.parentElement?.parentElement;\r\n const table = tgroup?.parentElement;\r\n const colsep =\r\n cell.getAttribute(\"colsep\") ||\r\n (colspecs && nameStart ? getColspecStartColsep(colspecs, nameStart) : null) ||\r\n (tgroup && tgroup.getAttribute(\"colsep\")) ||\r\n (table && table.getAttribute(\"colsep\"));\r\n const rowsep =\r\n cell.getAttribute(\"rowsep\") ||\r\n (row && row.getAttribute(\"rowsep\")) ||\r\n (colspecs && nameStart ? getColspecStartRowsep(colspecs, nameStart) : null) ||\r\n (tgroup && tgroup.getAttribute(\"rowsep\")) ||\r\n (table && table.getAttribute(\"rowsep\"));\r\n\r\n return {\r\n moreRows: cell.getAttribute(\"morerows\"),\r\n nameStart,\r\n nameEnd: cell.getAttribute(\"nameend\"),\r\n colsep,\r\n rowsep,\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, colsep, rowsep } = getData(cell, colspecs);\r\n\r\n return (\r\n <td\r\n class={clsx({ \"dso-horizontal-line\": rowsep !== \"0\" }, { \"dso-vertical-line\": colsep !== \"0\" })}\r\n rowSpan={moreRows ? parseInt(moreRows, 10) + 1 : undefined}\r\n colSpan={colspecs && nameStart && nameEnd ? getColspan(colspecs, nameStart, nameEnd) : undefined}\r\n >\r\n {mapNodeToJsx(cell.childNodes)}\r\n </td>\r\n );\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 wijzigactie: node.getAttribute(\"wijzigactie\"),\r\n frame: node.getAttribute(\"frame\") ? node.getAttribute(\"frame\") : \"all\",\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, wijzigactie, frame } = 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\", {\r\n \"editaction-add\": wijzigactie === \"voegtoe\",\r\n \"editaction-remove\": wijzigactie === \"verwijder\",\r\n [`dso-table-outside-lines-${frame}`]: frame,\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\nimport { OzonContentNodeContext } from \"../ozon-content-node-context.interface\";\r\n\r\nexport class OzonContentTextNode implements OzonContentNode {\r\n name = \"#text\";\r\n\r\n render({ textContent }: Node, { mark, emitMarkItemHighlight }: OzonContentNodeContext) {\r\n if (!mark || !textContent) {\r\n return <>{textContent}</>;\r\n }\r\n\r\n const result = mark(textContent);\r\n\r\n return !result || result.length === 0 ? (\r\n <>{textContent}</>\r\n ) : (\r\n <>\r\n {result.map((value) => {\r\n if (typeof value === \"string\") {\r\n return <>{value}</>;\r\n }\r\n\r\n return (\r\n <mark\r\n class={value.highlight ? \"dso-highlight\" : undefined}\r\n ref={(ref) => value.highlight && ref && emitMarkItemHighlight(value.text, ref)}\r\n >\r\n {value.text}\r\n </mark>\r\n );\r\n })}\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 OzonContentVerwijderdeTekstNode implements OzonContentNode {\r\n name = \"VerwijderdeTekst\";\r\n\r\n render(node: Element, { mapNodeToJsx }: OzonContentNodeContext) {\r\n return <del class=\"removed-text\">{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\nimport { OzonContentInputType } from \"./ozon-content.interfaces\";\r\n\r\nexport class Mapper {\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?: 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 inline: context.inline,\r\n mark: context.mark,\r\n mapNodeToJsx: (n) => this.mapNodeToJsx(n, context, [...path, node]),\r\n emitAnchorClick: context.emitAnchorClick,\r\n setState,\r\n emitMarkItemHighlight: context.emitMarkItemHighlight,\r\n state,\r\n path,\r\n });\r\n }\r\n\r\n transform(input: OzonContentInputType | undefined, context: OzonContentContext): JSX.Element {\r\n if (!input) {\r\n return <Fragment />;\r\n }\r\n\r\n const document = this.inputToXmlDocument(input);\r\n if (document.querySelector(\"parsererror\")) {\r\n console.error({\r\n message: \"[DSO Toolkit: Ozon Content Mapper] Unable to parse XML\",\r\n context,\r\n input,\r\n document,\r\n });\r\n\r\n return <Fragment />;\r\n }\r\n\r\n return this.mapNodeToJsx(document.getRootNode(), context, []);\r\n }\r\n\r\n private inputToXmlDocument(input: OzonContentInputType): XMLDocument {\r\n if (input instanceof XMLDocument) {\r\n return input;\r\n }\r\n\r\n if (typeof input === \"string\") {\r\n this.domParser ??= new DOMParser();\r\n\r\n return this.domParser.parseFromString(input, \"text/xml\");\r\n }\r\n\r\n return document.implementation.createDocument(null, null);\r\n }\r\n}\r\n","@use \"~dso-toolkit/src/utilities\";\r\n\r\n@use \"~dso-toolkit/src/variables/units\";\r\n@use \"~dso-toolkit/src/variables/colors\";\r\n\r\n@use \"~dso-toolkit/src/components/anchor\";\r\n@use \"~dso-toolkit/src/components/button/button.mixins\" as button-mixins;\r\n@use \"~dso-toolkit/src/components/insert\";\r\n@use \"~dso-toolkit/src/components/delete\";\r\n@use \"~dso-toolkit/src/components/rich-content\";\r\n\r\n@use \"~dso-toolkit/src/components/button/button\";\r\n@use \"~dso-toolkit/src/components/mark/mark\";\r\n@use \"~dso-toolkit/src/components/superscript/superscript\";\r\n@use \"~dso-toolkit/src/components/subscript/subscript\";\r\n@use \"~dso-toolkit/src/components/table/table\";\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.sr-only {\r\n @include utilities.sr-only();\r\n}\r\n\r\nbutton.toggle-note {\r\n @include button-mixins.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:host(:not([inline])) .fallback {\r\n display: block;\r\n}\r\n\r\na {\r\n @include anchor.root();\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-block-end: 0.75em;\r\n}\r\n\r\n.od-IntIoRef {\r\n border-block-end: 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-block-end: units.$u1;\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-block-end: 0.25rem;\r\n }\r\n }\r\n\r\n &.bijschrift-onder {\r\n .figuur-bijschrift {\r\n padding-block-start: 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-block-end: 0.5rem;\r\n }\r\n\r\n .dso-ozon-figuur-reserve-space {\r\n inline-size: 100%;\r\n block-size: auto;\r\n aspect-ratio: var(--img-aspect-ratio);\r\n }\r\n}\r\n\r\n.dso-ozon-lijst {\r\n span.od-Lijstaanhef,\r\n span.od-Lijstsluiting {\r\n margin-block-end: units.$u1;\r\n }\r\n\r\n ul {\r\n margin-block-end: units.$u1 !important;\r\n margin-block-start: units.$u1;\r\n\r\n p {\r\n margin-block-end: units.$u1;\r\n }\r\n\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 inset-inline-start: units.$u6 * -1 + 4;\r\n text-align: end;\r\n inline-size: units.$u5;\r\n }\r\n }\r\n }\r\n }\r\n\r\n p {\r\n margin: 0;\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-block-end: units.$u1;\r\n padding: units.$u1;\r\n}\r\n\r\np,\r\nspan[role=\"paragraph\"],\r\n.dso-ozon-lijst,\r\n.dso-ozon-lijst > ul > li,\r\ntable {\r\n &.editaction-add {\r\n @include insert.root();\r\n }\r\n\r\n &.editaction-remove {\r\n @include delete.root();\r\n }\r\n}\r\n\r\nins {\r\n @include insert.element();\r\n\r\n &.new-text {\r\n @include insert.root();\r\n }\r\n\r\n &.editaction-add {\r\n display: inline-block;\r\n margin-block-end: units.$u1;\r\n padding: units.$u1;\r\n\r\n @include insert.root();\r\n\r\n p:last-child {\r\n margin: 0;\r\n }\r\n }\r\n}\r\n\r\ndel {\r\n &.removed-text {\r\n @include delete.root();\r\n }\r\n\r\n &.editaction-remove {\r\n display: inline-block;\r\n margin-block-end: units.$u1;\r\n padding: units.$u1;\r\n @include delete.root();\r\n\r\n p:last-child {\r\n margin: 0;\r\n }\r\n }\r\n}\r\n\r\n.editaction-label {\r\n font-style: italic;\r\n}\r\n\r\n.dso-rich-content {\r\n @include rich-content.children();\r\n}\r\n","import {\r\n h,\r\n Component,\r\n ComponentInterface,\r\n Event,\r\n EventEmitter,\r\n Prop,\r\n State,\r\n Fragment,\r\n JSX,\r\n Watch,\r\n} from \"@stencil/core\";\r\n\r\nimport { Mapper } from \"./ozon-content-mapper\";\r\nimport { OzonContentContext } from \"./ozon-content-context.interface\";\r\nimport {\r\n OzonContentAnchorClickEvent,\r\n OzonContentInputType,\r\n OzonContentMarkFunction,\r\n OzonContentMarkItemHighlightEvent,\r\n} from \"./ozon-content.interfaces\";\r\nimport { OzonContentNodeState } from \"./ozon-content-node-state.interface\";\r\n\r\nconst mapper = new Mapper();\r\n\r\n@Component({\r\n tag: \"dso-ozon-content\",\r\n styleUrl: \"ozon-content.scss\",\r\n shadow: 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?: OzonContentInputType;\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 * To mark text.\r\n */\r\n @Prop()\r\n mark?: OzonContentMarkFunction;\r\n\r\n /**\r\n * Emitted when `<a>` is clicked.\r\n */\r\n @Event({ bubbles: false })\r\n dsoAnchorClick!: EventEmitter<OzonContentAnchorClickEvent>;\r\n\r\n /**\r\n * Emitted when a marked item is highlighted.\r\n */\r\n @Event({ bubbles: false })\r\n dsoOzonContentMarkItemHighlight!: EventEmitter<OzonContentMarkItemHighlightEvent>;\r\n\r\n @Watch(\"content\")\r\n contentWatcher() {\r\n this.state = {};\r\n }\r\n\r\n @State()\r\n state: OzonContentNodeState = {};\r\n\r\n private handleMarkItemHighlight = (text: string, elementRef: HTMLElement) => {\r\n this.dsoOzonContentMarkItemHighlight.emit({ text, elementRef });\r\n };\r\n\r\n render(): JSX.Element {\r\n const context: OzonContentContext = {\r\n state: this.state,\r\n inline: this.inline,\r\n mark: this.mark,\r\n setState: (state) => (this.state = state),\r\n emitMarkItemHighlight: this.handleMarkItemHighlight,\r\n emitAnchorClick: this.dsoAnchorClick.emit,\r\n };\r\n\r\n const transformed = mapper.transform(this.content, context);\r\n\r\n return <Fragment>{transformed}</Fragment>;\r\n }\r\n}\r\n\r\nconst dependencies = () => {\r\n dependencies();\r\n\r\n return (\r\n <>\r\n <dso-icon />\r\n <dso-image-overlay />\r\n <dso-tooltip />\r\n <dso-table />\r\n </>\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/di\";\r\n\r\n:host {\r\n display: block;\r\n\r\n border: 1px solid colors.$bosgroen-40;\r\n border-radius: units.$u1 * 0.5;\r\n}\r\n\r\n@include utilities.box-sizing();\r\n\r\n.panel-heading {\r\n display: flex;\r\n gap: units.$u2;\r\n justify-content: space-between;\r\n align-items: flex-start;\r\n\r\n padding-block: units.$u1;\r\n padding-inline: units.$u2 units.$u1;\r\n\r\n border-block-end: 1px solid colors.$bosgroen-40;\r\n\r\n border-start-start-radius: units.$u1 * 0.5;\r\n border-start-end-radius: units.$u1 * 0.5;\r\n\r\n background-color: colors.$bosgroen-10;\r\n\r\n color: colors.$bosgroen;\r\n\r\n .sr-only {\r\n @include utilities.sr-only();\r\n }\r\n}\r\n\r\n::slotted([slot=\"heading\"]) {\r\n margin: 0 !important;\r\n font-size: 1rem !important;\r\n font-weight: 600 !important;\r\n line-height: 1.5 !important;\r\n}\r\n\r\n.panel-close {\r\n display: inline-block;\r\n\r\n inline-size: units.$u3;\r\n aspect-ratio: 1 / 1;\r\n\r\n padding: 0;\r\n\r\n border: 0;\r\n\r\n background-color: transparent;\r\n\r\n color: colors.$bosgroen;\r\n\r\n cursor: pointer;\r\n}\r\n\r\n.panel-body {\r\n padding-block: units.$u2;\r\n padding-inline: units.$u2;\r\n}\r\n","import { Component, ComponentInterface, Event, EventEmitter, h } from \"@stencil/core\";\r\n\r\nexport interface PanelCloseEvent {\r\n originalEvent: Event;\r\n}\r\n\r\n/**\r\n * @slot - The contents to be highlighted within the panel\r\n * @slot heading - The heading (h2 - h6) with the title of the panel\r\n */\r\n@Component({\r\n tag: \"dso-panel\",\r\n styleUrl: \"panel.scss\",\r\n shadow: true,\r\n})\r\nexport class Panel implements ComponentInterface {\r\n /**\r\n * Emitted when the user click the close button.\r\n */\r\n @Event()\r\n dsoCloseClick!: EventEmitter<PanelCloseEvent>;\r\n\r\n render() {\r\n return (\r\n <div class=\"dso-panel\">\r\n <div class=\"panel-heading\">\r\n <slot name=\"heading\" />\r\n <button type=\"button\" class=\"panel-close\" onClick={(e) => this.dsoCloseClick.emit({ originalEvent: e })}>\r\n <dso-icon icon=\"times\"></dso-icon>\r\n <span class=\"sr-only\">Sluiten</span>\r\n </button>\r\n </div>\r\n <div class=\"panel-body\">\r\n <slot></slot>\r\n </div>\r\n </div>\r\n );\r\n }\r\n}\r\n","@use \"~dso-toolkit/src/components/grid/grid.variables\" as grid-variables;\r\n@use \"~dso-toolkit/src/components/modal/modal.variables\" as modal-variables;\r\n\r\n@use \"~dso-toolkit/src/variables/units\";\r\n@use \"~dso-toolkit/src/variables/media-query-breakpoints\";\r\n@use \"~dso-toolkit/src/variables/colors\";\r\n@use \"~dso-toolkit/src/variables/zindex\";\r\n@use \"~dso-toolkit/src/utilities\";\r\n\r\n@use \"~dso-toolkit/src/components/button/button\";\r\n@use \"~dso-toolkit/src/components/modal\";\r\n@use \"~dso-toolkit/src/components/rich-content\";\r\n@use \"~dso-toolkit/src/components/table\";\r\n\r\n:host {\r\n display: block;\r\n margin-block-end: units.$u3;\r\n}\r\n\r\n.dso-header {\r\n min-block-size: units.$u4;\r\n\r\n h2 {\r\n color: colors.$bosgroen;\r\n font-size: units.$font-size-h2;\r\n font-weight: 700;\r\n }\r\n\r\n .dso-close {\r\n color: colors.$bosgroen;\r\n }\r\n}\r\n\r\n:host .dso-modal {\r\n @include modal.root();\r\n\r\n inset: 0px;\r\n block-size: 100%;\r\n position: fixed;\r\n z-index: zindex.$modal;\r\n}\r\n\r\n.dso-modal .dso-dialog.dso-table-dialog {\r\n margin-block-start: 1rem;\r\n max-inline-size: calc(100% - 2rem);\r\n margin-inline-start: auto;\r\n margin-inline-end: auto;\r\n inline-size: auto;\r\n\r\n .dso-body {\r\n $dso-body-unavailable-height: (\r\n (2 * modal.$header-padding) + (modal.$footer-button-block-size + modal.$footer-padding)\r\n );\r\n max-block-size: calc(100vh - #{$dso-body-unavailable-height} - 1.5em - 2rem); // margin\r\n }\r\n\r\n @media screen and (max-width: media-query-breakpoints.$screen-xs-max) {\r\n max-inline-size: 100%;\r\n }\r\n}\r\n\r\n:host([is-responsive]) {\r\n .dso-table-body {\r\n border: 1px solid table.$border-color;\r\n margin-block-end: 0;\r\n overflow-y: auto;\r\n inline-size: 100%;\r\n\r\n &.dso-body {\r\n inline-size: calc(100% - modal.$body-padding * 2);\r\n }\r\n }\r\n}\r\n\r\n.dso-table-utilities {\r\n align-items: center;\r\n display: flex;\r\n justify-content: space-between;\r\n margin-block-end: units.$u1;\r\n\r\n .dso-responsive-message {\r\n margin-block-end: 0;\r\n\r\n &:only-child {\r\n inline-size: 100%;\r\n }\r\n }\r\n\r\n .open-modal-button {\r\n &:only-child {\r\n margin-inline-start: auto;\r\n }\r\n }\r\n}\r\n\r\n.dso-responsive-message {\r\n font-size: 0.8em;\r\n margin-block-end: units.$u1;\r\n position: relative;\r\n text-align: center;\r\n}\r\n\r\n.sr-only {\r\n @include utilities.sr-only();\r\n}\r\n\r\n.dso-modal-overlay {\r\n background-color: fade-out(modal-variables.$backdrop-bg, modal-variables.$backdrop-opacity);\r\n display: block;\r\n position: fixed;\r\n inset: 0;\r\n z-index: zindex.$modal-background-overlay;\r\n}\r\n\r\n.dso-table-placeholder {\r\n box-shadow: inset 0 0 0 1px table.$border-color;\r\n display: grid;\r\n place-content: center;\r\n}\r\n","import { h, Component, ComponentInterface, Element, Host, Prop, State } from \"@stencil/core\";\r\nimport debounce from \"debounce\";\r\nimport { createFocusTrap, FocusTrap } from \"focus-trap\";\r\nimport { v4 } from \"uuid\";\r\n\r\n@Component({\r\n tag: \"dso-table\",\r\n styleUrl: \"table.scss\",\r\n shadow: true,\r\n})\r\nexport class Table implements ComponentInterface {\r\n private resizeObserver?: ResizeObserver;\r\n\r\n private focusTrapElement?: HTMLDivElement;\r\n\r\n private buttonElement?: HTMLButtonElement;\r\n\r\n private trap?: FocusTrap;\r\n\r\n private labelledbyId = v4();\r\n\r\n @Element()\r\n host!: HTMLDsoTableElement;\r\n\r\n /**\r\n * Prevents the table being opened in a modal.\r\n */\r\n @Prop({ reflect: true })\r\n noModal = false;\r\n\r\n /**\r\n * Indicates whether the table is currently horizontally scrollable.\r\n */\r\n @Prop({ reflect: true })\r\n isResponsive = false;\r\n\r\n @State()\r\n modalActive = false;\r\n\r\n @State()\r\n placeholderHeight?: number;\r\n\r\n private startResponsiveBehavior(): void {\r\n this.resizeObserver?.observe(this.host);\r\n }\r\n\r\n componentWillLoad(): void {\r\n this.resizeObserver = new ResizeObserver(debounce((entries) => this.setResponsiveTable(entries), 200));\r\n }\r\n\r\n componentDidLoad(): void {\r\n this.startResponsiveBehavior();\r\n }\r\n\r\n componentDidRender() {\r\n this.setFocusTrap();\r\n }\r\n\r\n disconnectedCallback() {\r\n this.resizeObserver?.disconnect();\r\n }\r\n\r\n render() {\r\n const caption = this.host.querySelector(\":scope > table > caption\")?.textContent?.trim();\r\n\r\n return (\r\n <Host>\r\n {this.modalActive && this.placeholderHeight && (\r\n <div class=\"dso-table-placeholder\" style={{ height: `${this.placeholderHeight}px` }} />\r\n )}\r\n\r\n {this.modalActive && <div class=\"dso-modal-overlay\"></div>}\r\n\r\n <div class={{ \"dso-modal\": this.modalActive }}>\r\n <div\r\n class={{ \"dso-dialog\": this.modalActive, \"dso-table-dialog\": true }}\r\n ref={(element) => (this.focusTrapElement = element)}\r\n {...(this.modalActive ? { [\"aria-labelledby\"]: this.labelledbyId, role: \"dialog\" } : {})}\r\n >\r\n {(this.isResponsive || !this.noModal) && (\r\n <div class=\"dso-table-utilities\" style={this.modalActive ? { display: \"none\" } : undefined}>\r\n {this.isResponsive && (\r\n <div class=\"dso-responsive-message\">\r\n <span>beweeg de tabel van links naar rechts</span>\r\n </div>\r\n )}\r\n\r\n {!this.noModal && (\r\n <button\r\n type=\"button\"\r\n class=\"dso-tertiary open-modal-button\"\r\n ref={(element) => (this.buttonElement = element)}\r\n onClick={() => this.openModal()}\r\n >\r\n <span class=\"sr-only\">tabel {caption ?? \"\"} </span>\r\n <span>vergroten</span>\r\n <dso-icon icon=\"external-link\"></dso-icon>\r\n </button>\r\n )}\r\n </div>\r\n )}\r\n\r\n {this.modalActive && (\r\n <div class=\"dso-header\">\r\n <h2 id={this.labelledbyId} class={{ \"sr-only\": !caption }}>\r\n {caption || \"Uitvergrote tabel dialoog\"}\r\n </h2>\r\n <button type=\"button\" class=\"dso-close\" onClick={() => this.closeModal()}>\r\n <dso-icon icon=\"times\"></dso-icon>\r\n <span class=\"sr-only\">Sluiten</span>\r\n </button>\r\n </div>\r\n )}\r\n\r\n <div class={{ \"dso-body\": this.modalActive, \"dso-table-body\": true }}>\r\n <slot></slot>\r\n </div>\r\n </div>\r\n </div>\r\n </Host>\r\n );\r\n }\r\n\r\n private openModal() {\r\n this.placeholderHeight = this.host.clientHeight;\r\n this.modalActive = true;\r\n }\r\n\r\n private closeModal() {\r\n this.placeholderHeight = undefined;\r\n this.modalActive = false;\r\n }\r\n\r\n private setFocusTrap() {\r\n if (this.modalActive && this.focusTrapElement && !this.trap) {\r\n this.trap = createFocusTrap([this.host, this.focusTrapElement], {\r\n escapeDeactivates: true,\r\n clickOutsideDeactivates: (e) => {\r\n if (e instanceof MouseEvent && e.composedPath()[0] === this.focusTrapElement) {\r\n this.closeModal();\r\n\r\n return false;\r\n }\r\n\r\n return true;\r\n },\r\n setReturnFocus: this.buttonElement ?? false,\r\n onDeactivate: () => this.closeModal(),\r\n tabbableOptions: {\r\n getShadowRoot: true,\r\n },\r\n }).activate();\r\n } else if (!this.modalActive && this.trap) {\r\n this.trap?.deactivate();\r\n\r\n delete this.trap;\r\n }\r\n }\r\n\r\n private setResponsiveTable([dsoTable]: ResizeObserverEntry[]): void {\r\n if (!dsoTable) {\r\n throw new Error(\"No dsoTable found\");\r\n }\r\n\r\n const tableElement = dsoTable.target.querySelector(\"table\");\r\n\r\n if (dsoTable && tableElement instanceof HTMLTableElement) {\r\n this.isResponsive =\r\n Math.floor(tableElement.getBoundingClientRect().width) > Math.floor(dsoTable.contentRect.width);\r\n }\r\n }\r\n}\r\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{r as t,h as i,H as e,a as o}from"./p-d638c2b0.js";import{d as n,h as r,c as a,b as s}from"./p-202d2cdf.js";import{c as d}from"./p-8a1a6e56.js";import{d as l}from"./p-9438a55c.js";var p={name:"maxSize",enabled:true,phase:"main",requiresIfExists:["offset","preventOverflow","flip"],fn:function t(i){var e=i.state,o=i.name,r=i.options;var a=n(e,r);var s=e.modifiersData.preventOverflow||{x:0,y:0},d=s.x,l=s.y;var p=e.rects.popper,h=p.width,c=p.height;var f=e.placement.split("-"),b=f[0];var m=b==="left"?"left":"right";var u=b==="top"?"top":"bottom";e.modifiersData[o]={width:h-a[m]-d,height:c-a[u]-l}}};const h=":host(.hidden){visibility:hidden}*,*::after,*::before{box-sizing:border-box}.tooltip{font-family:Asap, sans-serif;font-style:normal;font-weight:400;line-height:1.5;line-break:auto;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:break-word;word-spacing:normal;word-wrap:normal;white-space:normal;--link-color:#39870c;display:block;filter:drop-shadow(0 2px 8px rgba(0, 0, 0, 0.4));font-size:14px;opacity:0;position:absolute;transition:opacity 0.15s linear;z-index:410}.tooltip.in{opacity:1}.tooltip .tooltip-inner{background-color:#fff;border-radius:4px;color:#191919;display:inline-block;font-size:1rem;max-inline-size:640px;padding-block:8px;padding-inline:16px;position:relative}.tooltip .tooltip-inner.dso-small{max-inline-size:320px}.tooltip .tooltip-arrow{border-color:transparent;border-style:solid;block-size:0;inline-size:0}.tooltip[data-popper-placement=top]{margin-block-start:-3px;padding-block:6px;padding-inline:0}.tooltip[data-popper-placement=top] .tooltip-arrow{inset-block-end:0;border-block-start-color:#fff;border-width:6px;border-block-end-width:0;margin-inline-start:var(--tooltip-margin-inline-start, -3px)}.tooltip[data-popper-placement=right]{margin-inline-start:3px;padding-block:0;padding-inline:6px}.tooltip[data-popper-placement=right] .tooltip-arrow{inset-inline-start:0;border-inline-end-color:#fff;border-width:6px;border-inline-start-width:0;margin-block-start:var(--tooltip-margin-block-start, -3px)}.tooltip[data-popper-placement=bottom]{margin-block-start:3px;padding-block:6px;padding-inline:0}.tooltip[data-popper-placement=bottom] .tooltip-arrow{inset-block-start:0;border-block-end-color:#fff;border-width:6px;border-block-start-width:0;margin-inline-start:var(--tooltip-margin-inline-start, -3px)}.tooltip[data-popper-placement=left]{margin-inline-start:-3px;margin-inline-end:var(--tooltip-margin-inline-end, unset);padding-block:0;padding-inline:6px}.tooltip[data-popper-placement=left] .tooltip-arrow{inset-inline-end:0;border-inline-start-color:#fff;border-width:6px;border-inline-end-width:0;margin-block-start:var(--tooltip-margin-block-start, -3px)}";const c=h;var f=undefined&&undefined.__classPrivateFieldGet||function(t,i,e,o){if(e==="a"&&!o)throw new TypeError("Private accessor was defined without a getter");if(typeof i==="function"?t!==i||!o:!i.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return e==="m"?o:e==="a"?o.call(t):o?o.value:i.get(t)};var b=undefined&&undefined.__classPrivateFieldSet||function(t,i,e,o,n){if(o==="m")throw new TypeError("Private method is not writable");if(o==="a"&&!n)throw new TypeError("Private accessor was defined without a setter");if(typeof i==="function"?t!==i||!n:!i.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return o==="a"?n.call(t,e):n?n.value=e:i.set(t,e),e};var m;const u=150;const v={name:"applyMaxSize",enabled:true,phase:s,requires:["maxSize"],fn({state:t}){let{width:i}=t.modifiersData.maxSize;if(i<160){i=160}t.styles.popper=Object.assign(Object.assign({},t.styles.popper),{maxWidth:`${i}px`})}};const w=class{constructor(i){t(this,i);this.callbacks={activate:()=>this.active=true,deactivate:()=>this.active=false};this.onMouseLeave=()=>{var t;if(!this.element.matches(":hover")&&!((t=this.target)===null||t===void 0?void 0:t.matches(":hover"))){this.callbacks.deactivate()}};this.keyDownListener=t=>{if(t.key==="Escape"){this.deactivate()}};this.deactivatePopper=l((()=>{var t;this.hidden=true;(t=this.popper)===null||t===void 0?void 0:t.destroy();this.popper=undefined}),u);m.set(this,void 0);this.descriptive=false;this.position="top";this.strategy="auto";this.noArrow=false;this.stateless=undefined;this.small=undefined;this.active=false;this.hidden=true}async activate(){this.active=true}async deactivate(){this.active=false}watchPosition(){if(!this.popper){return}this.popper.setOptions({placement:this.position})}watchStrategy(){this.setStrategy()}setStrategy(){if(!this.popper){return}if(this.strategy==="absolute"||this.strategy==="fixed"){this.popper.setOptions({strategy:this.strategy});return}let t=this.element;while(t&&t.parentNode!==document){t=t.parentNode instanceof ShadowRoot?t.parentNode.host:t.parentElement;if(t!==null&&r(t)){this.popper.setOptions({strategy:"fixed"});return}}this.popper.setOptions({strategy:"absolute"})}watchActive(){if(this.active){this.activatePopper();if(!this.stateless){setTimeout((()=>{var t;(t=this.popper)===null||t===void 0?void 0:t.setOptions({modifiers:[{name:"eventListeners",enabled:true}]});document.addEventListener("keydown",this.keyDownListener)}))}}else{document.removeEventListener("keydown",this.keyDownListener);this.deactivatePopper()}}listenClick(t){t.stopPropagation()}componentDidLoad(){var t;const i=(t=this.element.shadowRoot)===null||t===void 0?void 0:t.querySelector(".tooltip");if(!(i instanceof HTMLElement)){throw new Error("tooltip element is not instanceof HTMLElement")}if(!this.stateless&&this.target){this.target.addEventListener("mouseenter",this.callbacks.activate);[this.element,this.target].forEach((t=>t.addEventListener("mouseleave",this.onMouseLeave)));this.target.addEventListener("focus",this.callbacks.activate);this.target.addEventListener("blur",this.callbacks.deactivate)}}disconnectedCallback(){var t;(t=this.popper)===null||t===void 0?void 0:t.destroy();if(!this.stateless&&this.target){this.target.removeEventListener("mouseenter",this.callbacks.activate);[this.element,this.target].forEach((t=>t.removeEventListener("mouseleave",this.onMouseLeave)));this.target.removeEventListener("focus",this.callbacks.activate);this.target.removeEventListener("blur",this.callbacks.deactivate)}this.target=undefined}componentDidRender(){var t;if(this.active){(t=this.popper)===null||t===void 0?void 0:t.update()}}render(){return i(e,{key:"b8b24b9fcb5d6de63f40ac2c28aa3cae220935d1",class:{hidden:this.hidden},role:"tooltip",onClick:this.listenClick},i("div",{key:"837abccdba48399a6bda370059d7f59ecabf1d4d",class:d("tooltip",{in:this.active})},!this.noArrow&&i("div",{key:"9c6c0250d521e51cfc635a82ddd57d49bb81dd53","data-popper-arrow":true,class:"tooltip-arrow"}),i("div",{key:"efd8935a506723d1a1b537896526249f7e89d559","aria-hidden":!this.descriptive||undefined,class:d("tooltip-inner",{"dso-small":this.small})},i("slot",{key:"125db28c4ee8f322d6014013c001393267e52829"}))))}activatePopper(){var t;this.hidden=false;if(this.popper){return}const i=(t=this.element.shadowRoot)===null||t===void 0?void 0:t.querySelector(".tooltip");if(this.target&&i instanceof HTMLElement){this.popper=a(this.target,i,{placement:this.position,modifiers:[p,v,{name:"eventListeners",enabled:false}]});this.setStrategy()}}get target(){var t;return(t=f(this,m,"f"))!==null&&t!==void 0?t:this.initializeTarget()}set target(t){b(this,m,t,"f")}initializeTarget(){const t=this.element.id;if(!t){console.warn("Unable to find reference tooltip has no [id] attribute.");return}const i=this.element.getRootNode();if(!(i instanceof Document||i instanceof ShadowRoot)){console.warn(`rootNode is not instance of Document or ShadowRoot`);return}const e=i.querySelector(`[aria-describedBy="${t}`);if(!e){console.warn(`Unable to find reference with aria-describedby ${t}`);return}b(this,m,e,"f");return e}get element(){return o(this)}static get watchers(){return{position:["watchPosition"],strategy:["watchStrategy"],active:["watchActive"]}}};m=new WeakMap;w.style=c;export{w as dso_tooltip};
|
|
2
|
-
//# sourceMappingURL=p-9275aad6.entry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["maxSize","name","enabled","phase","requiresIfExists","fn","_ref","state","options","overflow","detectOverflow","_ref2","modifiersData","preventOverflow","x","y","_state$rects$popper","rects","popper","width","height","_state$placement$spli","placement","split","basePlacement","widthProp","heightProp","tooltipCss","DsoTooltipStyle0","transitionDuration","applyMaxSize","beforeWrite","requires","styles","Object","assign","maxWidth","Tooltip","this","callbacks","activate","active","deactivate","onMouseLeave","element","matches","_a","target","keyDownListener","event","key","deactivatePopper","debounce","hidden","destroy","undefined","_Tooltip_target","set","watchPosition","setOptions","position","watchStrategy","setStrategy","strategy","parentNode","document","ShadowRoot","host","parentElement","hasOverflow","watchActive","activatePopper","stateless","setTimeout","modifiers","addEventListener","removeEventListener","listenClick","e","stopPropagation","componentDidLoad","tooltip","shadowRoot","querySelector","HTMLElement","Error","forEach","disconnectedCallback","componentDidRender","update","render","h","Host","class","role","onClick","clsx","in","noArrow","descriptive","small","createPopper","__classPrivateFieldGet","initializeTarget","__classPrivateFieldSet","id","console","warn","rootNode","getRootNode","Document","reference"],"sources":["../../node_modules/popper-max-size-modifier/dist/popper-max-size-modifier.esm.js","src/components/tooltip/tooltip.scss?tag=dso-tooltip&encapsulation=shadow","src/components/tooltip/tooltip.tsx"],"sourcesContent":["import { detectOverflow } from '@popperjs/core';\n\nvar maxSize = {\n name: 'maxSize',\n enabled: true,\n phase: 'main',\n requiresIfExists: ['offset', 'preventOverflow', 'flip'],\n fn: function fn(_ref) {\n var state = _ref.state,\n name = _ref.name,\n options = _ref.options;\n var overflow = detectOverflow(state, options);\n\n var _ref2 = state.modifiersData.preventOverflow || {\n x: 0,\n y: 0\n },\n x = _ref2.x,\n y = _ref2.y;\n\n var _state$rects$popper = state.rects.popper,\n width = _state$rects$popper.width,\n height = _state$rects$popper.height;\n\n var _state$placement$spli = state.placement.split('-'),\n basePlacement = _state$placement$spli[0];\n\n var widthProp = basePlacement === 'left' ? 'left' : 'right';\n var heightProp = basePlacement === 'top' ? 'top' : 'bottom';\n state.modifiersData[name] = {\n width: width - overflow[widthProp] - x,\n height: height - overflow[heightProp] - y\n };\n }\n};\n\nexport default maxSize;\n","@use \"~dso-toolkit/src/utilities\";\r\n@use \"~dso-toolkit/src/variables/colors\";\r\n@use \"~dso-toolkit/src/variables/typography\";\r\n@use \"~dso-toolkit/src/variables/units\";\r\n@use \"~dso-toolkit/src/variables/zindex\";\r\n\r\n@use \"tooltip.variables\" as tooltip-variables;\r\n\r\n:host(.hidden) {\r\n visibility: hidden;\r\n}\r\n\r\n@include utilities.box-sizing();\r\n\r\n.tooltip {\r\n font-family: typography.$font-family-base;\r\n // We deliberately do NOT reset font-size.\r\n font-style: normal;\r\n font-weight: 400;\r\n line-height: typography.$line-height-base;\r\n line-break: auto;\r\n text-align: start;\r\n text-decoration: none;\r\n text-shadow: none;\r\n text-transform: none;\r\n letter-spacing: normal;\r\n word-break: break-word;\r\n word-spacing: normal;\r\n word-wrap: normal;\r\n white-space: normal;\r\n\r\n --link-color: #{colors.$grasgroen};\r\n\r\n display: block;\r\n filter: drop-shadow(0 2px 8px rgba(0, 0, 0, 0.4));\r\n font-size: typography.$font-size-small;\r\n opacity: 0;\r\n position: absolute;\r\n transition: opacity tooltip-variables.$transition-duration linear;\r\n z-index: zindex.$tooltip;\r\n\r\n &.in {\r\n opacity: tooltip-variables.$opacity;\r\n }\r\n\r\n .tooltip-inner {\r\n background-color: colors.$wit;\r\n border-radius: tooltip-variables.$border-radius;\r\n color: colors.$grijs-90;\r\n display: inline-block;\r\n font-size: typography.$root-font-size-base;\r\n max-inline-size: tooltip-variables.$max-inline-size;\r\n padding-block: tooltip-variables.$padding-block;\r\n padding-inline: tooltip-variables.$padding-inline;\r\n position: relative;\r\n\r\n &.dso-small {\r\n max-inline-size: tooltip-variables.$max-inline-size-small;\r\n }\r\n }\r\n\r\n .tooltip-arrow {\r\n border-color: transparent;\r\n border-style: solid;\r\n block-size: 0;\r\n inline-size: 0;\r\n }\r\n\r\n &[data-popper-placement=\"top\"] {\r\n margin-block-start: -3px;\r\n padding-block: tooltip-variables.$arrow-inline-size;\r\n padding-inline: 0;\r\n\r\n .tooltip-arrow {\r\n inset-block-end: 0;\r\n border-block-start-color: tooltip-variables.$arrow-color;\r\n border-width: tooltip-variables.$arrow-inline-size;\r\n border-block-end-width: 0;\r\n margin-inline-start: var(--tooltip-margin-inline-start, tooltip-variables.$arrow-margin * -1);\r\n }\r\n }\r\n\r\n &[data-popper-placement=\"right\"] {\r\n margin-inline-start: 3px;\r\n padding-block: 0;\r\n padding-inline: tooltip-variables.$arrow-inline-size;\r\n\r\n .tooltip-arrow {\r\n inset-inline-start: 0;\r\n border-inline-end-color: tooltip-variables.$arrow-color;\r\n border-width: tooltip-variables.$arrow-inline-size;\r\n border-inline-start-width: 0;\r\n margin-block-start: var(--tooltip-margin-block-start, tooltip-variables.$arrow-margin * -1);\r\n }\r\n }\r\n\r\n &[data-popper-placement=\"bottom\"] {\r\n margin-block-start: 3px;\r\n padding-block: tooltip-variables.$arrow-inline-size;\r\n padding-inline: 0;\r\n\r\n .tooltip-arrow {\r\n inset-block-start: 0;\r\n border-block-end-color: tooltip-variables.$arrow-color;\r\n border-width: tooltip-variables.$arrow-inline-size;\r\n border-block-start-width: 0;\r\n margin-inline-start: var(--tooltip-margin-inline-start, tooltip-variables.$arrow-margin * -1);\r\n }\r\n }\r\n\r\n &[data-popper-placement=\"left\"] {\r\n margin-inline-start: -3px;\r\n margin-inline-end: var(--tooltip-margin-inline-end, unset);\r\n padding-block: 0;\r\n padding-inline: tooltip-variables.$arrow-inline-size;\r\n\r\n .tooltip-arrow {\r\n inset-inline-end: 0;\r\n border-inline-start-color: tooltip-variables.$arrow-color;\r\n border-width: tooltip-variables.$arrow-inline-size;\r\n border-inline-end-width: 0;\r\n margin-block-start: var(--tooltip-margin-block-start, tooltip-variables.$arrow-margin * -1);\r\n }\r\n }\r\n}\r\n","import { beforeWrite, createPopper, Instance as PopperInstance, Placement, State as PopperState } from \"@popperjs/core\";\r\nimport maxSize from \"popper-max-size-modifier\";\r\nimport { h, Component, Element, Host, Method, Prop, State, Watch } from \"@stencil/core\";\r\nimport clsx from \"clsx\";\r\nimport { hasOverflow } from \"../../utils/has-overflow\";\r\nimport debounce from \"debounce\";\r\n\r\n// Keep const in sync with $tooltip-transition-duration in dso-toolkit/src/components/tooltip/tooltip.scss tooltip_root() mixin\r\nconst transitionDuration = 150;\r\n\r\nconst applyMaxSize = {\r\n name: \"applyMaxSize\",\r\n enabled: true,\r\n phase: beforeWrite,\r\n requires: [\"maxSize\"],\r\n fn({ state }: { state: PopperState }) {\r\n let { width } = state.modifiersData.maxSize;\r\n if (width < 160) {\r\n width = 160;\r\n }\r\n\r\n state.styles.popper = {\r\n ...state.styles.popper,\r\n maxWidth: `${width}px`,\r\n };\r\n },\r\n};\r\n\r\n@Component({\r\n tag: \"dso-tooltip\",\r\n styleUrl: \"tooltip.scss\",\r\n shadow: true,\r\n})\r\nexport class Tooltip {\r\n /**\r\n * Defines if the tooltip is descriptive. A descriptive tooltip contains a meaningful message. Tooltips that are not descriptive are hidden from screenreaders using `aria-hidden`.\r\n */\r\n @Prop({\r\n reflect: true,\r\n })\r\n descriptive = false;\r\n\r\n /**\r\n * Set position of tooltip relative to target\r\n */\r\n @Prop()\r\n position: Placement = \"top\";\r\n\r\n /**\r\n * Set position strategy of tooltip\r\n */\r\n @Prop()\r\n strategy: \"auto\" | \"absolute\" | \"fixed\" = \"auto\";\r\n\r\n /**\r\n * Set attribute `no-arrow` to hide the arrow\r\n */\r\n @Prop()\r\n noArrow = false;\r\n\r\n /**\r\n * Deactivates mouseover behaviour\r\n */\r\n @Prop()\r\n stateless?: boolean;\r\n\r\n /**\r\n * Defines if the tooltip has a smaller max-width\r\n */\r\n @Prop()\r\n small?: boolean;\r\n\r\n /**\r\n * Whether or not to show the tooltip. To control the tooltip add the `active` attribute or use the `activate()` and `deactivate()` instance methods.\r\n */\r\n @Prop({ reflect: true, mutable: true })\r\n active = false;\r\n\r\n /**\r\n * Activate the tooltip (Sets the `active` attribute)\r\n */\r\n @Method()\r\n async activate(): Promise<void> {\r\n this.active = true;\r\n }\r\n\r\n /**\r\n * Deactivate the tooltip (Removes the `active` attribute)\r\n */\r\n @Method()\r\n async deactivate(): Promise<void> {\r\n this.active = false;\r\n }\r\n\r\n @Watch(\"position\")\r\n watchPosition() {\r\n if (!this.popper) {\r\n return;\r\n }\r\n\r\n this.popper.setOptions({\r\n placement: this.position,\r\n });\r\n }\r\n\r\n @Watch(\"strategy\")\r\n watchStrategy() {\r\n this.setStrategy();\r\n }\r\n\r\n private setStrategy() {\r\n if (!this.popper) {\r\n return;\r\n }\r\n\r\n if (this.strategy === \"absolute\" || this.strategy === \"fixed\") {\r\n this.popper.setOptions({\r\n strategy: this.strategy,\r\n });\r\n\r\n return;\r\n }\r\n\r\n let element: Element | null = this.element;\r\n while (element && element.parentNode !== document) {\r\n element = element.parentNode instanceof ShadowRoot ? element.parentNode.host : element.parentElement;\r\n if (element !== null && hasOverflow(element)) {\r\n this.popper.setOptions({\r\n strategy: \"fixed\",\r\n });\r\n\r\n return;\r\n }\r\n }\r\n\r\n this.popper.setOptions({\r\n strategy: \"absolute\",\r\n });\r\n }\r\n\r\n @Watch(\"active\")\r\n watchActive() {\r\n if (this.active) {\r\n this.activatePopper();\r\n\r\n if (!this.stateless) {\r\n setTimeout(() => {\r\n this.popper?.setOptions({\r\n modifiers: [{ name: \"eventListeners\", enabled: true }],\r\n });\r\n document.addEventListener(\"keydown\", this.keyDownListener);\r\n });\r\n }\r\n } else {\r\n document.removeEventListener(\"keydown\", this.keyDownListener);\r\n this.deactivatePopper();\r\n }\r\n }\r\n\r\n @Element()\r\n private element!: HTMLDsoTooltipElement;\r\n\r\n private popper: PopperInstance | undefined;\r\n\r\n private callbacks: TooltipCallbacks = {\r\n activate: () => (this.active = true),\r\n deactivate: () => (this.active = false),\r\n };\r\n\r\n private onMouseLeave = () => {\r\n if (!this.element.matches(\":hover\") && !this.target?.matches(\":hover\")) {\r\n this.callbacks.deactivate();\r\n }\r\n };\r\n\r\n @State()\r\n private hidden = true;\r\n\r\n private listenClick(e: MouseEvent) {\r\n e.stopPropagation();\r\n }\r\n\r\n componentDidLoad(): void {\r\n const tooltip = this.element.shadowRoot?.querySelector(\".tooltip\");\r\n if (!(tooltip instanceof HTMLElement)) {\r\n throw new Error(\"tooltip element is not instanceof HTMLElement\");\r\n }\r\n\r\n if (!this.stateless && this.target) {\r\n this.target.addEventListener(\"mouseenter\", this.callbacks.activate);\r\n [this.element, this.target].forEach((element) => element.addEventListener(\"mouseleave\", this.onMouseLeave));\r\n this.target.addEventListener(\"focus\", this.callbacks.activate);\r\n this.target.addEventListener(\"blur\", this.callbacks.deactivate);\r\n }\r\n }\r\n\r\n disconnectedCallback(): void {\r\n this.popper?.destroy();\r\n\r\n if (!this.stateless && this.target) {\r\n this.target.removeEventListener(\"mouseenter\", this.callbacks.activate);\r\n [this.element, this.target].forEach((element) => element.removeEventListener(\"mouseleave\", this.onMouseLeave));\r\n this.target.removeEventListener(\"focus\", this.callbacks.activate);\r\n this.target.removeEventListener(\"blur\", this.callbacks.deactivate);\r\n }\r\n\r\n this.target = undefined;\r\n }\r\n\r\n componentDidRender() {\r\n if (this.active) {\r\n this.popper?.update();\r\n }\r\n }\r\n\r\n private keyDownListener = (event: KeyboardEvent) => {\r\n if (event.key === \"Escape\") {\r\n this.deactivate();\r\n }\r\n };\r\n\r\n render() {\r\n return (\r\n <Host class={{ hidden: this.hidden }} role=\"tooltip\" onClick={this.listenClick}>\r\n <div class={clsx(\"tooltip\", { in: this.active })}>\r\n {!this.noArrow && <div data-popper-arrow class=\"tooltip-arrow\"></div>}\r\n <div aria-hidden={!this.descriptive || undefined} class={clsx(\"tooltip-inner\", { \"dso-small\": this.small })}>\r\n <slot></slot>\r\n </div>\r\n </div>\r\n </Host>\r\n );\r\n }\r\n\r\n private deactivatePopper = debounce(() => {\r\n this.hidden = true;\r\n this.popper?.destroy();\r\n this.popper = undefined;\r\n }, transitionDuration);\r\n\r\n private activatePopper(): void {\r\n this.hidden = false;\r\n\r\n if (this.popper) {\r\n return;\r\n }\r\n\r\n const tooltip = this.element.shadowRoot?.querySelector(\".tooltip\");\r\n\r\n if (this.target && tooltip instanceof HTMLElement) {\r\n this.popper = createPopper(this.target, tooltip, {\r\n placement: this.position,\r\n modifiers: [maxSize, applyMaxSize, { name: \"eventListeners\", enabled: false }],\r\n });\r\n\r\n this.setStrategy();\r\n }\r\n }\r\n\r\n private get target(): HTMLElement | undefined {\r\n return this.#target ?? this.initializeTarget();\r\n }\r\n\r\n private set target(element: HTMLElement | undefined) {\r\n this.#target = element;\r\n }\r\n\r\n #target?: HTMLElement;\r\n\r\n private initializeTarget(): HTMLElement | undefined {\r\n const id = this.element.id;\r\n\r\n if (!id) {\r\n console.warn(\"Unable to find reference tooltip has no [id] attribute.\");\r\n\r\n return;\r\n }\r\n\r\n const rootNode = this.element.getRootNode();\r\n if (!(rootNode instanceof Document || rootNode instanceof ShadowRoot)) {\r\n console.warn(`rootNode is not instance of Document or ShadowRoot`);\r\n\r\n return;\r\n }\r\n\r\n const reference = rootNode.querySelector<HTMLElement>(`[aria-describedBy=\"${id}`);\r\n if (!reference) {\r\n console.warn(`Unable to find reference with aria-describedby ${id}`);\r\n\r\n return;\r\n }\r\n\r\n this.#target = reference;\r\n return reference;\r\n }\r\n}\r\n\r\ninterface TooltipCallbacks {\r\n activate: () => void;\r\n deactivate: () => void;\r\n}\r\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{r as s,c as t,h as i,F as e,a as o}from"./p-d638c2b0.js";import{d as h}from"./p-9438a55c.js";import{v as n}from"./p-f5ff676c.js";function a(s){if(typeof s!=="string"){throw new TypeError("Expected a string")}return s.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}const r=".sc-dso-autosuggest-h{display:block;position:relative}.listbox-container.sc-dso-autosuggest{inset-inline:0;inset-block-start:100%;block-size:auto;max-block-size:var(--max-block-size);min-block-size:48px;overflow-y:auto;position:absolute;z-index:200}ul.sc-dso-autosuggest,.autosuggest-progress-box.sc-dso-autosuggest{background-clip:padding-box;background-color:#fff;border:1px solid rgba(0, 0, 0, 0.15);border-radius:4px;box-shadow:0 6px 12px rgba(0, 0, 0, 0.175);list-style-type:none;margin-block:0}.autosuggest-progress-box.sc-dso-autosuggest{padding-block:12px;padding-inline:8px}ul.sc-dso-autosuggest{padding-block:8px;padding-inline:0}ul.sc-dso-autosuggest li.sc-dso-autosuggest{padding-block:4px;padding-inline:16px}ul.sc-dso-autosuggest li.sc-dso-autosuggest .suggestion-row.sc-dso-autosuggest{display:flex;justify-content:space-between}li[aria-selected=true].sc-dso-autosuggest{cursor:pointer;background-color:#39870c}li[aria-selected=true].sc-dso-autosuggest,li[aria-selected=true].sc-dso-autosuggest .type.sc-dso-autosuggest,li[aria-selected=true].sc-dso-autosuggest .extra.sc-dso-autosuggest{color:#fff}mark.sc-dso-autosuggest{font-weight:700;background-color:inherit;color:inherit;padding:0}.type.sc-dso-autosuggest,.extra.sc-dso-autosuggest{color:#666}.extra.sc-dso-autosuggest{font-size:14px;line-height:21px}";const l=r;const u=10;const d=8;const c=1;const g=class{constructor(i){s(this,i);this.dsoSelect=t(this,"dsoSelect",7);this.dsoChange=t(this,"dsoChange",7);this.dsoSearch=t(this,"dsoSearch",7);this.listboxItems=[];this.listboxId=n();this.inputId=n();this.labelId=n();this.resizeObserver=new ResizeObserver(h((()=>this.setListboxContainerMaxBlockSize()),150));this.debouncedEmitValue=h((s=>{this.dsoChange.emit(s);this.debouncedShowLoading()}),200);this.debouncedShowLoading=h((()=>{if(this.inputValue){this.showLoading=true}}),this.loadingDelayed);this.inputValue="";this.onInput=s=>{if(!(s.target instanceof HTMLInputElement)){return}this.showLoading=!this.loadingDelayed;this.inputValue=s.target.value;this.debouncedEmitValue(s.target.value.match(/(\S+)/g)?s.target.value:"")};this.onFocusIn=()=>{if(this.suggestOnFocus){this.openSuggestions()}};this.onWindowResize=h((()=>this.setListboxContainerMaxBlockSize()),150);this.onScrollend=()=>this.setListboxContainerMaxBlockSize();this.onKeyDown=s=>{if(s.defaultPrevented||this.loading){return}switch(s.key){case"ArrowDown":if(!this.showSuggestions){this.openSuggestions("first")}else{this.selectNextSuggestion()}break;case"ArrowUp":if(!this.showSuggestions){this.openSuggestions("last")}else{this.selectPreviousSuggestion()}break;case"Tab":this.closeSuggestions();return;case"Escape":this.closeSuggestions();break;case"Enter":this.pickSelectedValue();break;default:return}s.preventDefault()};this.suggestions=null;this.loading=false;this.loadingLabel="Een moment geduld.";this.loadingDelayed=undefined;this.notFoundLabel=undefined;this.suggestOnFocus=false;this.mark=undefined;this.showSuggestions=false;this.selectedSuggestion=undefined;this.notFound=false;this.showLoading=false;this.listItemBlockSize=0;this.listboxContainerMaxBlockSize=0}suggestionsWatcher(){this.resetSelectedSuggestion();if((!this.showSuggestions||!this.notFound)&&this.inputValue){this.openSuggestions()}else if((this.showSuggestions||this.notFound)&&!this.inputValue){this.closeSuggestions()}}onDocumentClick(s){if((this.showSuggestions||this.notFound)&&this.listbox&&s.target instanceof Node&&!this.listbox.contains(s.target)&&this.input!==s.target){this.closeSuggestions()}}componentDidRender(){this.setListboxContainerMaxBlockSize()}connectedCallback(){setTimeout((()=>{const s=this.host.querySelector('input[type="text"]');if(!(s instanceof HTMLInputElement)){return}this.input=s;if(s.id){this.inputId=s.id}else{s.id=this.inputId}if(!this.input.labels||this.input.labels.length<1){return}const t=this.input.labels[0];if(t===null||t===void 0?void 0:t.id){this.labelId=t.id}else if(t){t.id=this.labelId}this.input.setAttribute("role","combobox");this.input.setAttribute("aria-haspopup","listbox");this.input.setAttribute("aria-controls",this.listboxId);this.input.setAttribute("aria-expanded","false");this.input.setAttribute("autocomplete","off");this.input.setAttribute("aria-autocomplete","list");this.input.setAttribute("aria-activedescendant","");this.input.addEventListener("input",this.onInput);this.input.addEventListener("keydown",this.onKeyDown);this.input.addEventListener("focusin",this.onFocusIn);window.addEventListener("resize",this.onWindowResize);document.addEventListener("scrollend",this.onScrollend);this.resizeObserver.observe(this.host);this.setListboxContainerMaxBlockSize()}))}disconnectedCallback(){var s,t,i;(s=this.input)===null||s===void 0?void 0:s.removeEventListener("input",this.onInput);(t=this.input)===null||t===void 0?void 0:t.removeEventListener("keydown",this.onKeyDown);(i=this.input)===null||i===void 0?void 0:i.removeEventListener("focusin",this.onFocusIn);window.removeEventListener("resize",this.onWindowResize);document.removeEventListener("scrollend",this.onScrollend);this.resizeObserver.disconnect()}setListboxContainerMaxBlockSize(){if(!this.listboxContainer||!this.showSuggestions){return}if(this.listboxItems[0]&&this.showSuggestions){this.listItemBlockSize=this.listboxItems[0].getBoundingClientRect().height}const s=window.innerHeight-this.host.getBoundingClientRect().bottom;const t=this.listItemBlockSize*u+2*d+2*c;if(s>this.listItemBlockSize){if(s<t){this.listboxContainerMaxBlockSize=s-2*d}else{this.listboxContainerMaxBlockSize=t}}}showInputValueNotFound(s){var t,i;return this.processAutosuggestMarkItems(this.markTerms(s,(i=(t=this.input)===null||t===void 0?void 0:t.value.split(" ").filter((s=>s)))!==null&&i!==void 0?i:[]))}handleMark(s,t,i,e){var o,h;if(this.mark&&i){return this.processAutosuggestMarkItems(this.mark(s,t,i,e))}return this.processAutosuggestMarkItems(this.markTerms(t,(h=(o=this.input)===null||o===void 0?void 0:o.value.split(" ").filter((s=>s)))!==null&&h!==void 0?h:[]))}markTerms(s,t){if(!s||!t||t.length===0||t[0]===undefined){return[""]}const i=new RegExp(`(${a(t[0])})`,"gi");return s.split(i).reduce(((s,e)=>{if(!e){s.push(e)}else if(i.test(e)){s.push({mark:e})}else if(t.length===1){s.push(e)}else{s.push(...this.markTerms(e,t.slice(1)))}return s}),[])}processAutosuggestMarkItems(s){if(s.length===0){return[""]}return s.map((s=>{if(typeof s==="object"){return i("mark",null,s.mark)}return s}))}selectSuggestion(s){this.selectedSuggestion=s;this.setAriaActiveDescendant()}selectFirstSuggestion(){if(!this.suggestions){return}this.selectedSuggestion=this.suggestions[0];this.setAriaActiveDescendant(true)}selectLastSuggestion(){if(!this.suggestions){return}this.selectedSuggestion=this.suggestions[this.suggestions.length-1];this.setAriaActiveDescendant(true)}selectNextSuggestion(){var s;if(!this.suggestions){return}const t=this.selectedSuggestion?this.suggestions.indexOf(this.selectedSuggestion):-1;this.selectedSuggestion=(s=this.suggestions[t+1])!==null&&s!==void 0?s:this.suggestions[0];this.setAriaActiveDescendant(true)}selectPreviousSuggestion(){var s;if(!this.suggestions){return}const t=this.selectedSuggestion?this.suggestions.indexOf(this.selectedSuggestion):0;this.selectedSuggestion=(s=this.suggestions[t-1])!==null&&s!==void 0?s:this.suggestions[this.suggestions.length-1];this.setAriaActiveDescendant(true)}setAriaActiveDescendant(s=false){var t,i;if(this.selectedSuggestion){const e=this.listboxItemId(this.selectedSuggestion);(t=this.input)===null||t===void 0?void 0:t.setAttribute("aria-activedescendant",e);if(s){(i=document.getElementById(e))===null||i===void 0?void 0:i.scrollIntoView({block:"nearest"})}}}resetSelectedSuggestion(){var s;this.showLoading=!this.loadingDelayed;this.notFound=false;this.selectedSuggestion=undefined;(s=this.input)===null||s===void 0?void 0:s.setAttribute("aria-activedescendant","")}openSuggestions(s){var t,i,e,o;this.showSuggestions=(t=this.suggestions&&this.suggestions.length>0)!==null&&t!==void 0?t:false;this.notFound=(e=this.suggestions&&((i=this.suggestions)===null||i===void 0?void 0:i.length)===0)!==null&&e!==void 0?e:false;(o=this.input)===null||o===void 0?void 0:o.setAttribute("aria-expanded",(this.showSuggestions||this.notFound).toString());if(this.showSuggestions&&s==="first"){this.selectFirstSuggestion()}else if(this.showSuggestions&&s==="last"){this.selectLastSuggestion()}}closeSuggestions(){var s;this.showSuggestions=false;this.notFound=false;(s=this.input)===null||s===void 0?void 0:s.setAttribute("aria-expanded","false");this.selectFirstSuggestion()}pickSelectedValue(){var s;if(this.selectedSuggestion&&this.showSuggestions){this.dsoSelect.emit(this.selectedSuggestion)}else{this.dsoSearch.emit((s=this.input)===null||s===void 0?void 0:s.value)}this.closeSuggestions()}listboxItemId(s){if(!this.suggestions){return""}return`${this.inputId}-${this.suggestions.indexOf(s)+1}`}getChunkedExtras(s){return s.reduce(((s,t,i)=>{var e;const o=Math.floor(i/2);if(!s[o]){s[o]=[]}(e=s[o])===null||e===void 0?void 0:e.push(t);return s}),[])}render(){this.listboxItems=[];return i(e,null,i("slot",{key:"ed0429b1e8ccd17ed46b4fb742cbcb1e4287d056"}),this.loading&&this.showLoading?i("div",{class:"autosuggest-progress-box"},i("dso-progress-indicator",{label:this.loadingLabel})):i("dso-scrollable",{class:"listbox-container",ref:s=>this.listboxContainer=s,style:{"--max-block-size":`${this.listboxContainerMaxBlockSize}px`}},i("ul",{role:"listbox","aria-live":"polite",id:this.listboxId,"aria-labelledby":this.labelId,ref:s=>this.listbox=s,hidden:!this.showSuggestions&&!this.notFound},this.showSuggestions&&this.suggestions&&this.suggestions.map((s=>i("li",{role:"option",id:this.listboxItemId(s),key:s.value,onMouseEnter:()=>this.selectSuggestion(s),onMouseLeave:()=>this.resetSelectedSuggestion(),onClick:()=>this.pickSelectedValue(),"aria-selected":(s===this.selectedSuggestion).toString(),"aria-label":s.value,ref:s=>s&&this.listboxItems.push(s)},i("div",{class:"suggestion-row"},i("span",{class:"value"},this.handleMark(s,s.value,"value")),s.type?i("span",{class:"type"},this.handleMark(s,s.type,"type")):undefined),s.extras&&this.getChunkedExtras(s.extras).map(((t,e)=>i("div",{class:"suggestion-row"},t.map(((t,o)=>i("span",{class:"extra"},this.handleMark(s,t,"extra",e*2+o))))))))))||this.notFound&&i("li",null,i("span",{class:"value"},!this.notFoundLabel?this.showInputValueNotFound(`${this.inputValue} is niet gevonden.`):i("span",null,this.notFoundLabel))))))}get host(){return o(this)}static get watchers(){return{suggestions:["suggestionsWatcher"]}}};g.style=l;export{g as dso_autosuggest};
|
|
2
|
-
//# sourceMappingURL=p-cdce1bd5.entry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["escapeStringRegexp","string","TypeError","replace","autosuggestCss","DsoAutosuggestStyle0","maxSuggestionsViewable","listboxPaddingBlock","listboxBorderWidth","Autosuggest","this","listboxItems","listboxId","v4","inputId","labelId","resizeObserver","ResizeObserver","debounce","setListboxContainerMaxBlockSize","debouncedEmitValue","value","dsoChange","emit","debouncedShowLoading","inputValue","showLoading","loadingDelayed","onInput","event","target","HTMLInputElement","match","onFocusIn","suggestOnFocus","openSuggestions","onWindowResize","onScrollend","onKeyDown","defaultPrevented","loading","key","showSuggestions","selectNextSuggestion","selectPreviousSuggestion","closeSuggestions","pickSelectedValue","preventDefault","suggestionsWatcher","resetSelectedSuggestion","notFound","onDocumentClick","listbox","Node","contains","input","componentDidRender","connectedCallback","setTimeout","host","querySelector","id","labels","length","label","setAttribute","addEventListener","window","document","observe","disconnectedCallback","_a","removeEventListener","_b","_c","disconnect","listboxContainer","listItemBlockSize","getBoundingClientRect","height","availableBlockSize","innerHeight","bottom","listboxMaxBlockSize","listboxContainerMaxBlockSize","showInputValueNotFound","text","processAutosuggestMarkItems","markTerms","split","filter","t","handleMark","suggestion","type","extraIndex","mark","suggestionValue","terms","undefined","termRegex","RegExp","reduce","total","valuePart","push","test","slice","items","map","item","h","selectSuggestion","selectedSuggestion","setAriaActiveDescendant","selectFirstSuggestion","suggestions","selectLastSuggestion","index","indexOf","scroll","listboxItemId","getElementById","scrollIntoView","block","_d","toString","dsoSelect","dsoSearch","getChunkedExtras","extras","resultArray","extra","chunkIndex","Math","floor","render","Fragment","class","loadingLabel","ref","element","style","role","hidden","onMouseEnter","onMouseLeave","onClick","li","chunk","c","i","notFoundLabel"],"sources":["../../node_modules/escape-string-regexp/index.js","src/components/autosuggest/autosuggest.scss?tag=dso-autosuggest&encapsulation=scoped","src/components/autosuggest/autosuggest.tsx"],"sourcesContent":["export default function escapeStringRegexp(string) {\n\tif (typeof string !== 'string') {\n\t\tthrow new TypeError('Expected a string');\n\t}\n\n\t// Escape characters with special meaning either inside or outside character sets.\n\t// Use a simple backslash escape when it’s always valid, and a `\\xnn` escape when the simpler form would be disallowed by Unicode patterns’ stricter grammar.\n\treturn string\n\t\t.replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&')\n\t\t.replace(/-/g, '\\\\x2d');\n}\n","@use \"~dso-toolkit/src/variables/units\";\r\n@use \"~dso-toolkit/src/variables/colors\";\r\n@use \"~dso-toolkit/src/variables/scaffolding\";\r\n@use \"~dso-toolkit/src/variables/typography\";\r\n@use \"~dso-toolkit/src/variables/zindex\";\r\n\r\n@use \"autosuggest.variables\" as core-autosuggest-variables;\r\n\r\n:host {\r\n display: block;\r\n position: relative;\r\n}\r\n\r\n.listbox-container {\r\n inset-inline: 0;\r\n inset-block-start: 100%;\r\n block-size: auto;\r\n max-block-size: var(--max-block-size);\r\n min-block-size: core-autosuggest-variables.$listbox-min-block-size;\r\n overflow-y: auto;\r\n position: absolute;\r\n z-index: zindex.$autosuggest;\r\n}\r\n\r\nul,\r\n.autosuggest-progress-box {\r\n background-clip: padding-box;\r\n background-color: core-autosuggest-variables.$background-color;\r\n border: core-autosuggest-variables.$listbox-border-width solid core-autosuggest-variables.$border-color;\r\n border-radius: scaffolding.$border-radius-base;\r\n box-shadow: core-autosuggest-variables.$box-shadow;\r\n list-style-type: none;\r\n margin-block: 0;\r\n}\r\n\r\n.autosuggest-progress-box {\r\n padding-block: units.$u1 * 1.5;\r\n padding-inline: units.$u1;\r\n}\r\n\r\nul {\r\n padding-block: core-autosuggest-variables.$listbox-padding-block;\r\n padding-inline: 0;\r\n\r\n li {\r\n padding-block: core-autosuggest-variables.$list-item-padding-block;\r\n padding-inline: units.$u2;\r\n\r\n .suggestion-row {\r\n display: flex;\r\n justify-content: space-between;\r\n }\r\n }\r\n}\r\n\r\nli[aria-selected=\"true\"] {\r\n cursor: pointer;\r\n background-color: colors.$grasgroen;\r\n\r\n &,\r\n .type,\r\n .extra {\r\n color: colors.$wit;\r\n }\r\n}\r\n\r\nmark {\r\n font-weight: 700;\r\n background-color: inherit;\r\n color: inherit;\r\n padding: 0;\r\n}\r\n\r\n.type,\r\n.extra {\r\n color: colors.$grijs-60;\r\n}\r\n\r\n.extra {\r\n font-size: typography.$root-font-size-small;\r\n line-height: typography.$root-font-size-small * typography.$line-height-base;\r\n}\r\n","import { Component, Element, Event, EventEmitter, Fragment, h, Listen, Prop, State, VNode, Watch } from \"@stencil/core\";\r\nimport debounce from \"debounce\";\r\nimport { v4 } from \"uuid\";\r\nimport escapeStringRegexp from \"escape-string-regexp\";\r\n\r\nimport { AutosuggestMarkFunction, AutosuggestMarkItem, Suggestion } from \"./autosuggest.interfaces\";\r\n\r\nconst maxSuggestionsViewable = 10;\r\nconst listboxPaddingBlock = 8;\r\nconst listboxBorderWidth = 1;\r\n\r\n@Component({\r\n tag: \"dso-autosuggest\",\r\n styleUrl: \"autosuggest.scss\",\r\n scoped: true,\r\n})\r\nexport class Autosuggest {\r\n /**\r\n * The suggestions for the value of the slotted input element. Optionally a\r\n * Suggestion can have a `type` and `item`.\r\n *\r\n * The `type` is used to style the suggestion. `item` can be use to reference\r\n * the original object that was used to create the suggestion.\r\n *\r\n * The value should be null when no suggestions have been fetched.\r\n */\r\n @Prop()\r\n readonly suggestions: Suggestion[] | null = null;\r\n\r\n /**\r\n * Shows progress indicator when fetching results.\r\n */\r\n @Prop()\r\n loading = false;\r\n\r\n /**\r\n * To override progress indicator's default loading label.\r\n */\r\n @Prop()\r\n loadingLabel?: string = \"Een moment geduld.\";\r\n\r\n /**\r\n * To delay progress indicator showing (in ms).\r\n */\r\n @Prop()\r\n loadingDelayed?: number;\r\n\r\n /**\r\n * To show text when no results are found.\r\n */\r\n @Prop()\r\n notFoundLabel?: string;\r\n\r\n /**\r\n * Whether the previous suggestions will be presented when the input gets focus again.\r\n */\r\n @Prop()\r\n suggestOnFocus = false;\r\n\r\n /**\r\n * A function provided by the consumer of the autosuggest component, that returns an array of `AutosuggestMarkItem`s\r\n */\r\n @Prop()\r\n mark?: AutosuggestMarkFunction;\r\n\r\n /**\r\n * Emitted when a suggestion is selected.\r\n * The `detail` property of the `CustomEvent` will contain the selected suggestion.\r\n */\r\n @Event()\r\n dsoSelect!: EventEmitter<Suggestion>;\r\n\r\n /**\r\n * This is emitted debounced for every change for the slotted input type=text element.\r\n */\r\n @Event()\r\n dsoChange!: EventEmitter<string>;\r\n\r\n /**\r\n * Emitted when enter is pressed.\r\n * The `detail` property of the `CustomEvent` will contain the input text.\r\n */\r\n @Event()\r\n dsoSearch!: EventEmitter<string>;\r\n\r\n @Element()\r\n host!: HTMLDsoAutosuggestElement;\r\n\r\n @State()\r\n showSuggestions = false;\r\n\r\n @State()\r\n selectedSuggestion: Suggestion | undefined;\r\n\r\n @State()\r\n notFound = false;\r\n\r\n @State()\r\n showLoading = false;\r\n\r\n @State()\r\n listItemBlockSize = 0;\r\n\r\n @State()\r\n listboxContainerMaxBlockSize = 0;\r\n\r\n @Watch(\"suggestions\")\r\n suggestionsWatcher() {\r\n this.resetSelectedSuggestion();\r\n\r\n if ((!this.showSuggestions || !this.notFound) && this.inputValue) {\r\n this.openSuggestions();\r\n } else if ((this.showSuggestions || this.notFound) && !this.inputValue) {\r\n this.closeSuggestions();\r\n }\r\n }\r\n\r\n private input?: HTMLInputElement;\r\n\r\n private listboxContainer: HTMLDsoScrollableElement | undefined;\r\n\r\n private listbox: HTMLUListElement | undefined;\r\n\r\n private listboxItems: HTMLLIElement[] = [];\r\n\r\n private listboxId: string = v4();\r\n\r\n private inputId: string = v4();\r\n\r\n private labelId: string = v4();\r\n\r\n private resizeObserver = new ResizeObserver(debounce(() => this.setListboxContainerMaxBlockSize(), 150));\r\n\r\n private debouncedEmitValue = debounce((value: string) => {\r\n this.dsoChange.emit(value);\r\n this.debouncedShowLoading();\r\n }, 200);\r\n\r\n private debouncedShowLoading = debounce(() => {\r\n if (this.inputValue) {\r\n this.showLoading = true;\r\n }\r\n }, this.loadingDelayed);\r\n\r\n private inputValue = \"\";\r\n\r\n private onInput = (event: Event) => {\r\n if (!(event.target instanceof HTMLInputElement)) {\r\n return;\r\n // throw new Error(\"event.target is not instanceof HTMLInputElement\"); #2293\r\n }\r\n\r\n this.showLoading = !this.loadingDelayed;\r\n this.inputValue = event.target.value;\r\n this.debouncedEmitValue(event.target.value.match(/(\\S+)/g) ? event.target.value : \"\");\r\n };\r\n\r\n private onFocusIn = () => {\r\n if (this.suggestOnFocus) {\r\n this.openSuggestions();\r\n }\r\n };\r\n\r\n @Listen(\"click\", { target: \"document\" })\r\n onDocumentClick(event: MouseEvent) {\r\n if (\r\n (this.showSuggestions || this.notFound) &&\r\n this.listbox &&\r\n event.target instanceof Node &&\r\n !this.listbox.contains(event.target) &&\r\n this.input !== event.target\r\n ) {\r\n this.closeSuggestions();\r\n }\r\n }\r\n\r\n componentDidRender() {\r\n this.setListboxContainerMaxBlockSize();\r\n }\r\n\r\n connectedCallback() {\r\n setTimeout(() => {\r\n const input = this.host.querySelector('input[type=\"text\"]');\r\n if (!(input instanceof HTMLInputElement)) {\r\n return;\r\n // throw new ReferenceError(\"Mandatory text input not found\"); #2293\r\n }\r\n\r\n this.input = input;\r\n if (input.id) {\r\n this.inputId = input.id;\r\n } else {\r\n input.id = this.inputId;\r\n }\r\n\r\n if (!this.input.labels || this.input.labels.length < 1) {\r\n return;\r\n // throw new ReferenceError(\"Mandatory label for text input not found\"); #2293\r\n }\r\n\r\n const label = this.input.labels[0];\r\n if (label?.id) {\r\n this.labelId = label.id;\r\n } else if (label) {\r\n label.id = this.labelId;\r\n }\r\n\r\n this.input.setAttribute(\"role\", \"combobox\");\r\n this.input.setAttribute(\"aria-haspopup\", \"listbox\");\r\n this.input.setAttribute(\"aria-controls\", this.listboxId);\r\n this.input.setAttribute(\"aria-expanded\", \"false\");\r\n this.input.setAttribute(\"autocomplete\", \"off\");\r\n this.input.setAttribute(\"aria-autocomplete\", \"list\");\r\n this.input.setAttribute(\"aria-activedescendant\", \"\");\r\n this.input.addEventListener(\"input\", this.onInput);\r\n this.input.addEventListener(\"keydown\", this.onKeyDown);\r\n this.input.addEventListener(\"focusin\", this.onFocusIn);\r\n\r\n window.addEventListener(\"resize\", this.onWindowResize);\r\n\r\n document.addEventListener(\"scrollend\", this.onScrollend);\r\n\r\n this.resizeObserver.observe(this.host);\r\n\r\n this.setListboxContainerMaxBlockSize();\r\n });\r\n }\r\n\r\n disconnectedCallback() {\r\n this.input?.removeEventListener(\"input\", this.onInput);\r\n this.input?.removeEventListener(\"keydown\", this.onKeyDown);\r\n this.input?.removeEventListener(\"focusin\", this.onFocusIn);\r\n\r\n window.removeEventListener(\"resize\", this.onWindowResize);\r\n\r\n document.removeEventListener(\"scrollend\", this.onScrollend);\r\n\r\n this.resizeObserver.disconnect();\r\n }\r\n\r\n private onWindowResize = debounce(() => this.setListboxContainerMaxBlockSize(), 150);\r\n\r\n private onScrollend = () => this.setListboxContainerMaxBlockSize();\r\n\r\n private setListboxContainerMaxBlockSize(): void {\r\n if (!this.listboxContainer || !this.showSuggestions) {\r\n return;\r\n }\r\n\r\n if (this.listboxItems[0] && this.showSuggestions) {\r\n this.listItemBlockSize = this.listboxItems[0].getBoundingClientRect().height;\r\n }\r\n\r\n const availableBlockSize = window.innerHeight - this.host.getBoundingClientRect().bottom;\r\n const listboxMaxBlockSize =\r\n this.listItemBlockSize * maxSuggestionsViewable + 2 * listboxPaddingBlock + 2 * listboxBorderWidth;\r\n\r\n if (availableBlockSize > this.listItemBlockSize) {\r\n if (availableBlockSize < listboxMaxBlockSize) {\r\n this.listboxContainerMaxBlockSize = availableBlockSize - 2 * listboxPaddingBlock;\r\n } else {\r\n this.listboxContainerMaxBlockSize = listboxMaxBlockSize;\r\n }\r\n }\r\n }\r\n\r\n private showInputValueNotFound(text: string) {\r\n return this.processAutosuggestMarkItems(this.markTerms(text, this.input?.value.split(\" \").filter((t) => t) ?? []));\r\n }\r\n\r\n private handleMark(\r\n suggestion: Suggestion,\r\n text: string,\r\n type?: \"value\" | \"type\" | \"extra\",\r\n extraIndex?: number,\r\n ): (VNode | string)[] {\r\n if (this.mark && type) {\r\n return this.processAutosuggestMarkItems(this.mark(suggestion, text, type, extraIndex));\r\n }\r\n return this.processAutosuggestMarkItems(this.markTerms(text, this.input?.value.split(\" \").filter((t) => t) ?? []));\r\n }\r\n\r\n private markTerms(suggestionValue: string, terms: string[]): AutosuggestMarkItem[] {\r\n if (!suggestionValue || !terms || terms.length === 0 || terms[0] === undefined) {\r\n return [\"\"];\r\n }\r\n\r\n const termRegex = new RegExp(`(${escapeStringRegexp(terms[0])})`, \"gi\");\r\n\r\n return suggestionValue.split(termRegex).reduce((total: AutosuggestMarkItem[], valuePart: string) => {\r\n if (!valuePart) {\r\n total.push(valuePart);\r\n } else if (termRegex.test(valuePart)) {\r\n total.push({ mark: valuePart });\r\n } else if (terms.length === 1) {\r\n total.push(valuePart);\r\n } else {\r\n total.push(...this.markTerms(valuePart, terms.slice(1)));\r\n }\r\n\r\n return total;\r\n }, []);\r\n }\r\n\r\n private processAutosuggestMarkItems(items: AutosuggestMarkItem[]): (VNode | string)[] {\r\n if (items.length === 0) {\r\n return [\"\"];\r\n }\r\n\r\n return items.map((item) => {\r\n if (typeof item === \"object\") {\r\n return <mark>{item.mark}</mark>;\r\n }\r\n return item;\r\n });\r\n }\r\n\r\n private selectSuggestion(suggestion: Suggestion) {\r\n this.selectedSuggestion = suggestion;\r\n\r\n this.setAriaActiveDescendant();\r\n }\r\n\r\n private selectFirstSuggestion() {\r\n if (!this.suggestions) {\r\n return;\r\n }\r\n\r\n this.selectedSuggestion = this.suggestions[0];\r\n\r\n this.setAriaActiveDescendant(true);\r\n }\r\n\r\n private selectLastSuggestion() {\r\n if (!this.suggestions) {\r\n return;\r\n }\r\n\r\n this.selectedSuggestion = this.suggestions[this.suggestions.length - 1];\r\n\r\n this.setAriaActiveDescendant(true);\r\n }\r\n\r\n private selectNextSuggestion() {\r\n if (!this.suggestions) {\r\n return;\r\n }\r\n\r\n const index = this.selectedSuggestion ? this.suggestions.indexOf(this.selectedSuggestion) : -1;\r\n\r\n this.selectedSuggestion = this.suggestions[index + 1] ?? this.suggestions[0];\r\n\r\n this.setAriaActiveDescendant(true);\r\n }\r\n\r\n private selectPreviousSuggestion() {\r\n if (!this.suggestions) {\r\n return;\r\n }\r\n\r\n const index = this.selectedSuggestion ? this.suggestions.indexOf(this.selectedSuggestion) : 0;\r\n\r\n this.selectedSuggestion = this.suggestions[index - 1] ?? this.suggestions[this.suggestions.length - 1];\r\n\r\n this.setAriaActiveDescendant(true);\r\n }\r\n\r\n private setAriaActiveDescendant(scroll = false): void {\r\n if (this.selectedSuggestion) {\r\n const id = this.listboxItemId(this.selectedSuggestion);\r\n this.input?.setAttribute(\"aria-activedescendant\", id);\r\n if (scroll) {\r\n document.getElementById(id)?.scrollIntoView({ block: \"nearest\" });\r\n }\r\n }\r\n }\r\n\r\n private resetSelectedSuggestion() {\r\n this.showLoading = !this.loadingDelayed;\r\n this.notFound = false;\r\n this.selectedSuggestion = undefined;\r\n this.input?.setAttribute(\"aria-activedescendant\", \"\");\r\n }\r\n\r\n private openSuggestions(selectSuggestion?: \"first\" | \"last\") {\r\n this.showSuggestions = (this.suggestions && this.suggestions.length > 0) ?? false;\r\n this.notFound = (this.suggestions && this.suggestions?.length === 0) ?? false;\r\n this.input?.setAttribute(\"aria-expanded\", (this.showSuggestions || this.notFound).toString());\r\n\r\n if (this.showSuggestions && selectSuggestion === \"first\") {\r\n this.selectFirstSuggestion();\r\n } else if (this.showSuggestions && selectSuggestion === \"last\") {\r\n this.selectLastSuggestion();\r\n }\r\n }\r\n\r\n private closeSuggestions() {\r\n this.showSuggestions = false;\r\n this.notFound = false;\r\n this.input?.setAttribute(\"aria-expanded\", \"false\");\r\n this.selectFirstSuggestion();\r\n }\r\n\r\n private pickSelectedValue() {\r\n if (this.selectedSuggestion && this.showSuggestions) {\r\n this.dsoSelect.emit(this.selectedSuggestion);\r\n } else {\r\n this.dsoSearch.emit(this.input?.value);\r\n }\r\n\r\n this.closeSuggestions();\r\n }\r\n\r\n private onKeyDown = (event: KeyboardEvent) => {\r\n if (event.defaultPrevented || this.loading) {\r\n return;\r\n }\r\n\r\n switch (event.key) {\r\n case \"ArrowDown\":\r\n if (!this.showSuggestions) {\r\n this.openSuggestions(\"first\");\r\n } else {\r\n this.selectNextSuggestion();\r\n }\r\n\r\n break;\r\n\r\n case \"ArrowUp\":\r\n if (!this.showSuggestions) {\r\n this.openSuggestions(\"last\");\r\n } else {\r\n this.selectPreviousSuggestion();\r\n }\r\n\r\n break;\r\n\r\n case \"Tab\":\r\n this.closeSuggestions();\r\n return;\r\n\r\n case \"Escape\":\r\n this.closeSuggestions();\r\n break;\r\n\r\n case \"Enter\":\r\n this.pickSelectedValue();\r\n break;\r\n\r\n default:\r\n return;\r\n }\r\n\r\n event.preventDefault();\r\n };\r\n\r\n private listboxItemId(suggestion: Suggestion): string {\r\n if (!this.suggestions) {\r\n return \"\";\r\n }\r\n return `${this.inputId}-${this.suggestions.indexOf(suggestion) + 1}`;\r\n }\r\n\r\n private getChunkedExtras(extras: string[]): string[][] {\r\n return extras.reduce((resultArray: string[][], extra, index) => {\r\n const chunkIndex = Math.floor(index / 2);\r\n\r\n if (!resultArray[chunkIndex]) {\r\n resultArray[chunkIndex] = [];\r\n }\r\n resultArray[chunkIndex]?.push(extra);\r\n return resultArray;\r\n }, []);\r\n }\r\n\r\n render() {\r\n this.listboxItems = [];\r\n\r\n return (\r\n <>\r\n <slot />\r\n {this.loading && this.showLoading ? (\r\n <div class=\"autosuggest-progress-box\">\r\n <dso-progress-indicator label={this.loadingLabel}></dso-progress-indicator>\r\n </div>\r\n ) : (\r\n <dso-scrollable\r\n class=\"listbox-container\"\r\n ref={(element) => (this.listboxContainer = element)}\r\n style={{ \"--max-block-size\": `${this.listboxContainerMaxBlockSize}px` }}\r\n >\r\n <ul\r\n role=\"listbox\"\r\n aria-live=\"polite\"\r\n id={this.listboxId}\r\n aria-labelledby={this.labelId}\r\n ref={(element) => (this.listbox = element)}\r\n hidden={!this.showSuggestions && !this.notFound}\r\n >\r\n {(this.showSuggestions &&\r\n this.suggestions &&\r\n this.suggestions.map((suggestion) => (\r\n <li\r\n role=\"option\"\r\n id={this.listboxItemId(suggestion)}\r\n key={suggestion.value}\r\n onMouseEnter={() => this.selectSuggestion(suggestion)}\r\n onMouseLeave={() => this.resetSelectedSuggestion()}\r\n onClick={() => this.pickSelectedValue()}\r\n aria-selected={(suggestion === this.selectedSuggestion).toString()}\r\n aria-label={suggestion.value}\r\n ref={(li) => li && this.listboxItems.push(li)}\r\n >\r\n <div class=\"suggestion-row\">\r\n <span class=\"value\">{this.handleMark(suggestion, suggestion.value, \"value\")}</span>\r\n {suggestion.type ? (\r\n <span class=\"type\">{this.handleMark(suggestion, suggestion.type, \"type\")}</span>\r\n ) : undefined}\r\n </div>\r\n {suggestion.extras &&\r\n this.getChunkedExtras(suggestion.extras).map((chunk, index) => (\r\n <div class=\"suggestion-row\">\r\n {chunk.map((c, i) => (\r\n <span class=\"extra\">{this.handleMark(suggestion, c, \"extra\", index * 2 + i)}</span>\r\n ))}\r\n </div>\r\n ))}\r\n </li>\r\n ))) ||\r\n (this.notFound && (\r\n <li>\r\n <span class=\"value\">\r\n {!this.notFoundLabel ? (\r\n this.showInputValueNotFound(`${this.inputValue} is niet gevonden.`)\r\n ) : (\r\n <span>{this.notFoundLabel}</span>\r\n )}\r\n </span>\r\n </li>\r\n ))}\r\n </ul>\r\n </dso-scrollable>\r\n )}\r\n </>\r\n );\r\n }\r\n}\r\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["stateMap","success","info","warning","danger","error","accordionSectionCss","DsoAccordionSectionStyle0","log","window","console","bind","HandleElement","handleUrl","onClick","open","handleElementRef","children","h","href","ref","type","Handle","heading","class","HandleIcon","state","icon","attachmentCount","HandleStateIcon","count","AccordionSection","this","handleClick","event","dsoToggleClick","emit","originalEvent","handleExpandableAnimationStart","e","dsoAnimationStart","animation","scrollIntoView","behavior","detail","bodyHeight","handleExpandableAnimationEnd","dsoAnimationEnd","focusHandle","_a","focus","containsNestedAccordion","host","querySelector","componentWillLoad","accordion","_getState","then","accordionState","forceUpdate","isNeutral","variant","JSON","stringify","bodyClientRect","sectionBody","getBoundingClientRect","headingClientRect","_b","sectionHeading","sectionBottomY","top","height","innerHeight","box","scrollTop","scrollY","document","documentElement","body","clientTop","expandedAccordionHeight","shouldScrollToTopOfSection","scrollTo","closest","render","reverseAlign","hasAddons","statusDescription","status","Host","key","hasNestedAccordion","hidden","onMouseenter","hover","onMouseleave","element","Fragment","handleTitle","badgeMessage","badgeStatus","enableAnimation","minimumHeight","onDsoExpandableAnimationStart","onDsoExpandableAnimationEnd"],"sources":["src/components/accordion/components/accordion-section.interfaces.ts","src/components/accordion/components/accordion-section.scss?tag=dso-accordion-section&encapsulation=shadow","src/components/accordion/components/accordion-section.tsx"],"sourcesContent":["export type AccordionSectionState = \"success\" | \"info\" | \"warning\" | \"danger\" | \"error\";\r\n\r\nexport type AccordionHeading = \"h2\" | \"h3\" | \"h4\" | \"h5\";\r\n\r\nexport const stateMap: Record<AccordionSectionState, string> = {\r\n success: \"succes:\",\r\n info: \"info:\",\r\n warning: \"waarschuwing:\",\r\n danger: \"fout:\",\r\n error: \"fout:\",\r\n};\r\n\r\nexport interface AccordionSectionToggleClickEvent {\r\n /**\r\n * The original MouseEvent that triggered the click.\r\n *\r\n * In case the Section Handle is an <a> this event can be used to preventDefault() so the framework router is reponsible for navigating the user.\r\n */\r\n originalEvent?: MouseEvent;\r\n\r\n /**\r\n * The requested state. If the Accordion Section is closed, `open = true`.\r\n */\r\n open: boolean;\r\n}\r\n\r\nexport interface AccordionSectionAnimationStartEvent {\r\n /**\r\n * Helper function to scroll the Accordion Section into view.\r\n */\r\n scrollIntoView(behavior?: ScrollBehavior): void;\r\n\r\n /**\r\n * Whether or not the Accordion opening or closing.\r\n */\r\n animation: \"opening\" | \"closing\";\r\n}\r\n\r\nexport interface AccordionSectionAnimationEndEvent {\r\n /**\r\n * Helper function to scroll the Accordion Section into view.\r\n */\r\n scrollIntoView(behavior?: ScrollBehavior): void;\r\n\r\n /**\r\n * The state of the Accordion Section after animation.\r\n */\r\n open: boolean;\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/variables/typography\";\r\n\r\n@use \"~dso-toolkit/src/components/accordion\";\r\n@use \"~dso-toolkit/src/components/anchor\";\r\n\r\n@use \"accordion-section-theme-compact\";\r\n@use \"accordion-section-theme-compact-black\";\r\n@use \"accordion-section-theme-conclusion\";\r\n@use \"accordion-section-theme-default\";\r\n@use \"accordion-section-theme-neutral\";\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:host {\r\n display: block;\r\n\r\n .dso-section-handle {\r\n font-size: 1em;\r\n font-weight: 600;\r\n line-height: accordion.$handle-line-height;\r\n margin: 0;\r\n position: relative;\r\n\r\n > a:active {\r\n text-decoration: none;\r\n }\r\n\r\n a {\r\n @include anchor.clean();\r\n }\r\n\r\n .dso-status {\r\n font-weight: 400;\r\n text-decoration: underline;\r\n }\r\n }\r\n\r\n .dso-section-handle > button,\r\n .dso-section-handle > a {\r\n align-items: flex-start;\r\n background-color: transparent;\r\n border: 0;\r\n cursor: pointer;\r\n display: flex;\r\n font-family: typography.$font-family-base;\r\n font-size: 1em;\r\n font-weight: 600;\r\n line-height: accordion.$handle-line-height;\r\n margin: 0;\r\n padding-block: accordion.$block-padding;\r\n padding-inline: accordion.$inline-padding;\r\n text-align: start;\r\n inline-size: 100%;\r\n word-break: break-word;\r\n\r\n dso-icon {\r\n flex-shrink: 0;\r\n\r\n &.dso-section-handle-chevron {\r\n @include utilities.transition(transform);\r\n\r\n transform: rotate(0);\r\n }\r\n }\r\n\r\n > .dso-section-handle-addons:first-child,\r\n > dso-icon:first-child {\r\n margin-inline-end: units.$u1;\r\n }\r\n\r\n > dso-icon:last-child {\r\n margin-inline-start: auto;\r\n }\r\n\r\n > .dso-section-handle-addons:last-child {\r\n margin-inline-start: auto;\r\n\r\n dso-attachments-counter,\r\n dso-icon {\r\n margin-inline-start: units.$u2;\r\n }\r\n }\r\n\r\n > dso-badge {\r\n margin-inline-start: auto;\r\n padding-inline-start: units.$u1;\r\n word-break: normal;\r\n\r\n & + dso-icon:last-child,\r\n & + .dso-section-handle-addons:last-child {\r\n margin-inline-start: units.$u1;\r\n }\r\n }\r\n }\r\n}\r\n\r\n:host([open]:not([open=\"false\"])) {\r\n .dso-section-handle {\r\n > button,\r\n > a {\r\n .dso-section-handle-chevron {\r\n &:first-child {\r\n transform: rotate(90deg);\r\n }\r\n\r\n &:last-child {\r\n transform: rotate(-180deg);\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\n.dso-section-body {\r\n background-color: colors.$wit;\r\n border-block-start: 0;\r\n margin-block-start: accordion.$border-radius * -1;\r\n\r\n .dso-section-body-content {\r\n padding-block: units.$u2 + accordion.$border-radius units.$u2;\r\n padding-inline: units.$u2;\r\n }\r\n}\r\n\r\n// Default\r\n:host(.dso-accordion-default) {\r\n @include accordion-section-theme-default.dso-web-component-accordion-default();\r\n}\r\n\r\n:host(.dso-accordion-default[open]:not([open=\"false\"])) {\r\n @include accordion-section-theme-default.dso-web-component-accordion-default-open();\r\n}\r\n\r\n:host(.dso-accordion-default.dso-nested-accordion[open]:not([open=\"false\"])) {\r\n @include accordion-section-theme-default.dso-web-component-accordion-default-open-nested();\r\n}\r\n\r\n// Compact\r\n:host(.dso-accordion-compact) {\r\n @include accordion-section-theme-compact.dso-web-component-accordion-compact();\r\n}\r\n\r\n:host(.dso-accordion-compact.dso-accordion-reverse-align) {\r\n @include accordion-section-theme-compact.dso-web-component-accordion-compact-reverse();\r\n}\r\n\r\n:host(.dso-accordion-compact[open]:not([open=\"false\"]):not(.dso-nested-accordion)) {\r\n @include accordion-section-theme-compact.dso-web-component-accordion-compact-open();\r\n}\r\n\r\n:host(.dso-accordion-compact.dso-nested-accordion[open]:not([open=\"false\"])) {\r\n @include accordion-section-theme-compact.dso-web-component-accordion-compact-open-nested();\r\n}\r\n\r\n// Compact black\r\n:host(.dso-accordion-compact-black) {\r\n @include accordion-section-theme-compact-black.dso-web-component-accordion-compact-black();\r\n}\r\n\r\n:host(.dso-accordion-compact-black.dso-accordion-reverse-align) {\r\n @include accordion-section-theme-compact-black.dso-web-component-accordion-compact-black-reverse();\r\n}\r\n\r\n:host(.dso-accordion-compact-black[open]:not([open=\"false\"])) {\r\n @include accordion-section-theme-compact-black.dso-web-component-accordion-compact-black-open();\r\n}\r\n\r\n:host(.dso-accordion-compact-black.dso-nested-accordion[open]:not([open=\"false\"])) {\r\n @include accordion-section-theme-compact-black.dso-web-component-accordion-compact-black-open-nested();\r\n}\r\n\r\n// Conclusion\r\n:host(.dso-accordion-conclusion) {\r\n @include accordion-section-theme-conclusion.dso-web-component-accordion-conclusion();\r\n}\r\n\r\n:host(.dso-accordion-conclusion[open]:not([open=\"false\"]):not(.dso-nested-accordion)) {\r\n @include accordion-section-theme-conclusion.dso-web-component-accordion-conclusion-open();\r\n}\r\n\r\n:host(.dso-accordion-conclusion.dso-nested-accordion[open]:not([open=\"false\"])) {\r\n @include accordion-section-theme-conclusion.dso-web-component-accordion-conclusion-open-nested();\r\n}\r\n\r\n// Neutral\r\n:host(.dso-accordion-neutral) {\r\n @include accordion-section-theme-neutral.dso-web-component-accordion-neutral();\r\n}\r\n\r\n:host(.dso-accordion-neutral[open]:not([open=\"false\"])) {\r\n @include accordion-section-theme-neutral.dso-web-component-accordion-neutral-open();\r\n}\r\n\r\n:host(.dso-accordion-neutral.dso-nested-accordion[open]:not([open=\"false\"])) {\r\n @include accordion-section-theme-neutral.dso-web-component-accordion-neutral-open-nested();\r\n}\r\n","import {\r\n h,\r\n Component,\r\n ComponentInterface,\r\n Element,\r\n Event,\r\n forceUpdate,\r\n Fragment,\r\n Host,\r\n Prop,\r\n State,\r\n EventEmitter,\r\n FunctionalComponent,\r\n Method,\r\n} from \"@stencil/core\";\r\n\r\nimport { AccordionInternalState } from \"../accordion.interfaces\";\r\nimport {\r\n AccordionHeading,\r\n AccordionSectionAnimationEndEvent,\r\n AccordionSectionState,\r\n AccordionSectionToggleClickEvent,\r\n AccordionSectionAnimationStartEvent,\r\n stateMap,\r\n} from \"./accordion-section.interfaces\";\r\nimport { ExpandableAnimationEndEvent } from \"../../expandable/expandable\";\r\nimport { BadgeStatus } from \"../../badge/badge.interfaces\";\r\n\r\n// eslint-disable-next-line no-console\r\nconst log = (window as any)[\"_dsoLog\"] === true ? console.log.bind(console.log) : function () {};\r\n\r\nconst HandleElement: FunctionalComponent<{\r\n handleUrl: string | undefined;\r\n open: boolean;\r\n handleElementRef: (element: HTMLAnchorElement | HTMLButtonElement | undefined) => void;\r\n onClick: (e: MouseEvent) => void;\r\n}> = ({ handleUrl, onClick, open, handleElementRef }, children) => {\r\n if (handleUrl) {\r\n return (\r\n <a href={handleUrl} onClick={onClick} aria-expanded={open ? \"true\" : \"false\"} ref={handleElementRef}>\r\n {children}\r\n </a>\r\n );\r\n }\r\n\r\n return (\r\n <button type=\"button\" onClick={onClick} aria-expanded={open ? \"true\" : \"false\"} ref={handleElementRef}>\r\n {children}\r\n </button>\r\n );\r\n};\r\n\r\nconst Handle: FunctionalComponent<{\r\n heading: AccordionHeading;\r\n ref: (element: HTMLHeadingElement | undefined) => void;\r\n}> = ({ heading, ref }, children) => {\r\n switch (heading) {\r\n default:\r\n case \"h2\":\r\n return (\r\n <h2 ref={ref} class=\"dso-section-handle\">\r\n {children}\r\n </h2>\r\n );\r\n case \"h3\":\r\n return (\r\n <h3 ref={ref} class=\"dso-section-handle\">\r\n {children}\r\n </h3>\r\n );\r\n case \"h4\":\r\n return (\r\n <h4 ref={ref} class=\"dso-section-handle\">\r\n {children}\r\n </h4>\r\n );\r\n case \"h5\":\r\n return (\r\n <h5 ref={ref} class=\"dso-section-handle\">\r\n {children}\r\n </h5>\r\n );\r\n }\r\n};\r\n\r\nconst HandleIcon: FunctionalComponent<{\r\n state?: AccordionSectionState;\r\n icon?: string;\r\n attachmentCount?: number;\r\n}> = ({ state, icon, attachmentCount }) => {\r\n if (state) {\r\n return <HandleStateIcon state={state} />;\r\n }\r\n\r\n if (attachmentCount) {\r\n return <dso-attachments-counter count={attachmentCount}></dso-attachments-counter>;\r\n }\r\n\r\n if (icon) {\r\n return <dso-icon icon={icon}></dso-icon>;\r\n }\r\n};\r\n\r\nconst HandleStateIcon: FunctionalComponent<{ state: AccordionSectionState }> = ({ state }) => {\r\n if (state === \"error\") {\r\n return <dso-icon icon=\"status-error\"></dso-icon>;\r\n }\r\n\r\n if (state === \"danger\") {\r\n return <dso-icon icon=\"status-danger\"></dso-icon>;\r\n }\r\n\r\n if (state === \"success\") {\r\n return <dso-icon icon=\"status-success\"></dso-icon>;\r\n }\r\n\r\n if (state === \"info\") {\r\n return <dso-icon icon=\"status-info\"></dso-icon>;\r\n }\r\n\r\n if (state === \"warning\") {\r\n return <dso-icon icon=\"status-warning\"></dso-icon>;\r\n }\r\n};\r\n\r\n@Component({\r\n tag: \"dso-accordion-section\",\r\n styleUrl: \"accordion-section.scss\",\r\n shadow: true,\r\n})\r\nexport class AccordionSection implements ComponentInterface {\r\n private accordionState?: AccordionInternalState;\r\n\r\n private sectionBody?: HTMLDivElement;\r\n\r\n private sectionHeading?: HTMLHeadingElement;\r\n\r\n @Element()\r\n host!: HTMLDsoAccordionSectionElement;\r\n\r\n /**\r\n * The title of the handle\r\n */\r\n @Prop()\r\n handleTitle?: string;\r\n\r\n /**\r\n * Which heading element to use.\r\n */\r\n @Prop()\r\n heading: AccordionHeading = \"h2\";\r\n\r\n /**\r\n * When set the handle will render as a `<a>`. When undefined it renders as a `<button>`\r\n */\r\n @Prop()\r\n handleUrl?: string;\r\n\r\n /**\r\n * `state` takes precedence over `attachmentCount` and `icon`\r\n */\r\n @Prop()\r\n status?: AccordionSectionState;\r\n\r\n /**\r\n * `attachmentCount` takes precedence over `icon`\r\n */\r\n @Prop()\r\n attachmentCount?: number;\r\n\r\n /**\r\n * To set an icon in the heading handle.\r\n */\r\n @Prop()\r\n icon?: string;\r\n\r\n /**\r\n * The status of the section.\r\n */\r\n @Prop()\r\n statusDescription?: string;\r\n\r\n /**\r\n * Set the Accordion Section open.\r\n */\r\n @Prop({ reflect: true })\r\n open = false;\r\n\r\n /**\r\n * Set when this Accordion Section contains or will contain an Accordion.\r\n */\r\n @Prop({ reflect: true })\r\n hasNestedAccordion = false;\r\n\r\n /**\r\n * A message to be displayed in the heading handle inside a Badge (optional)\r\n */\r\n @Prop()\r\n badgeMessage?: string;\r\n\r\n /**\r\n * The status of the Badge in the heading handle (optional)\r\n */\r\n @Prop()\r\n badgeStatus?: BadgeStatus;\r\n\r\n /**\r\n * Calling this method will set focus to the handle.\r\n */\r\n @Method()\r\n async focusHandle() {\r\n this.handleElementRef?.focus();\r\n }\r\n\r\n @State()\r\n hover = false;\r\n\r\n get containsNestedAccordion() {\r\n return this.host.querySelector(\"dso-accordion\") !== null;\r\n }\r\n\r\n componentWillLoad() {\r\n this.accordion?._getState().then((state) => {\r\n this.accordionState = state;\r\n\r\n forceUpdate(this.host);\r\n });\r\n }\r\n\r\n get isNeutral() {\r\n return this.accordionState?.variant === \"neutral\";\r\n }\r\n\r\n private async scrollIntoView(bodyHeight: number | undefined, behavior: ScrollBehavior = \"auto\"): Promise<void> {\r\n log(\r\n `DSO Toolkit [Accordion Section] scrollIntoView(bodyHeight: ${JSON.stringify(\r\n bodyHeight,\r\n )}, behavior: ${JSON.stringify(behavior)})`,\r\n );\r\n\r\n const bodyClientRect = this.sectionBody?.getBoundingClientRect();\r\n const headingClientRect = this.sectionHeading?.getBoundingClientRect();\r\n\r\n log(`DSO Toolkit [Accordion Section] const bodyClientRect = ${JSON.stringify(bodyClientRect)};`);\r\n log(`DSO Toolkit [Accordion Section] const headingClientRect = ${JSON.stringify(headingClientRect)};`);\r\n log(`DSO Toolkit [Accordion Section] this.accordionState = ${JSON.stringify(this.accordionState)};`);\r\n log(`DSO Toolkit [Accordion Section] this.open = ${JSON.stringify(this.open)};`);\r\n\r\n if (!bodyClientRect || !headingClientRect || !this.accordionState) {\r\n log(`DSO Toolkit [Accordion Section] returning`);\r\n\r\n return;\r\n }\r\n\r\n // this y is relative to the top of the viewport.\r\n const sectionBottomY = headingClientRect.top + headingClientRect.height + (this.open ? (bodyHeight ?? 0) : 0);\r\n\r\n log(`DSO Toolkit [Accordion Section] const sectionBottomY = ${JSON.stringify(sectionBottomY)};`);\r\n log(`DSO Toolkit [Accordion Section] window.innerHeight = ${JSON.stringify(window.innerHeight)};`);\r\n\r\n const box = this.host.getBoundingClientRect();\r\n\r\n const scrollTop = window.scrollY || document.documentElement.scrollTop || document.body.scrollTop;\r\n const clientTop = document.documentElement.clientTop || document.body.clientTop || 0;\r\n const top = box.top + scrollTop - clientTop;\r\n\r\n log(\"DSO Toolkit [Accordion Section] scroll\", { box, scrollTop, clientTop, top });\r\n\r\n if (sectionBottomY > window.innerHeight) {\r\n log(\r\n `DSO Toolkit [Accordion Section] sectionBottomY > window.innerHeight === ${JSON.stringify(\r\n sectionBottomY > window.innerHeight,\r\n )};`,\r\n );\r\n\r\n const expandedAccordionHeight = sectionBottomY - headingClientRect.top;\r\n const shouldScrollToTopOfSection = expandedAccordionHeight > window.innerHeight;\r\n\r\n log(\r\n `DSO Toolkit [Accordion Section] const expandedAccordionHeight = ${JSON.stringify(expandedAccordionHeight)};`,\r\n );\r\n log(\r\n `DSO Toolkit [Accordion Section] const shouldScrollToTopOfSection = ${JSON.stringify(\r\n shouldScrollToTopOfSection,\r\n )};`,\r\n );\r\n\r\n window.scrollTo({\r\n top: shouldScrollToTopOfSection ? top : top - (window.innerHeight - expandedAccordionHeight),\r\n behavior,\r\n });\r\n } else if (headingClientRect.top < 0) {\r\n log(\r\n `DSO Toolkit [Accordion Section] headingClientRect.top < 0 === ${JSON.stringify(headingClientRect.top < 0)};`,\r\n );\r\n\r\n window.scrollTo({\r\n top,\r\n behavior,\r\n });\r\n }\r\n }\r\n\r\n private get accordion() {\r\n return this.host.closest(\"dso-accordion\");\r\n }\r\n\r\n private handleClick = (event: MouseEvent) => {\r\n this.dsoToggleClick.emit({\r\n originalEvent: event,\r\n open: !this.open,\r\n });\r\n };\r\n\r\n private handleExpandableAnimationStart = (e: CustomEvent<any>) => {\r\n this.dsoAnimationStart.emit({\r\n animation: this.open ? \"opening\" : \"closing\",\r\n scrollIntoView: (behavior: ScrollBehavior = \"auto\") => this.scrollIntoView(e.detail.bodyHeight, behavior),\r\n });\r\n };\r\n\r\n private handleExpandableAnimationEnd = (e: CustomEvent<ExpandableAnimationEndEvent>) => {\r\n this.dsoAnimationEnd.emit({\r\n open: this.open,\r\n scrollIntoView: (behavior: ScrollBehavior = \"auto\") => this.scrollIntoView(e.detail.bodyHeight, behavior),\r\n });\r\n };\r\n\r\n /**\r\n * Emitted when the user activates the toggle button.\r\n */\r\n @Event({ bubbles: false })\r\n dsoToggleClick!: EventEmitter<AccordionSectionToggleClickEvent>;\r\n\r\n /**\r\n * Event emitted when the Accordion Section starts its toggle animation.\r\n */\r\n @Event({ bubbles: false })\r\n dsoAnimationStart!: EventEmitter<AccordionSectionAnimationStartEvent>;\r\n\r\n /**\r\n * Event emitted when the Accordion Section completes its toggle animation.\r\n */\r\n @Event({ bubbles: false })\r\n dsoAnimationEnd!: EventEmitter<AccordionSectionAnimationEndEvent>;\r\n\r\n private handleElementRef?: HTMLAnchorElement | HTMLButtonElement;\r\n\r\n render() {\r\n const { variant, reverseAlign } = this.accordionState ?? {};\r\n const hasAddons = !!this.statusDescription || !!this.status || !!this.icon || !!this.attachmentCount;\r\n\r\n return (\r\n <Host\r\n class={{\r\n \"dso-accordion-section\": true,\r\n [\"dso-accordion-\" + variant]: true,\r\n \"dso-nested-accordion\": this.hasNestedAccordion || this.containsNestedAccordion,\r\n \"dso-accordion-reverse-align\": reverseAlign ?? false,\r\n }}\r\n hidden={!variant}\r\n onMouseenter={() => (this.hover = true)}\r\n onMouseleave={() => (this.hover = false)}\r\n >\r\n <Handle heading={this.heading} ref={(element) => (this.sectionHeading = element)}>\r\n <HandleElement\r\n handleUrl={this.handleUrl}\r\n onClick={this.handleClick}\r\n open={this.open}\r\n handleElementRef={(e) => (this.handleElementRef = e)}\r\n >\r\n {reverseAlign ? (\r\n <Fragment>\r\n {hasAddons && (\r\n <div class=\"dso-section-handle-addons\">\r\n <HandleIcon icon={this.icon} />\r\n </div>\r\n )}\r\n\r\n <span>{this.handleTitle}</span>\r\n\r\n {this.badgeMessage && <dso-badge status={this.badgeStatus}>{this.badgeMessage}</dso-badge>}\r\n\r\n <dso-icon class=\"dso-section-handle-chevron\" icon=\"chevron-down\"></dso-icon>\r\n </Fragment>\r\n ) : (\r\n <Fragment>\r\n <dso-icon class=\"dso-section-handle-chevron\" icon=\"chevron-right\"></dso-icon>\r\n\r\n {this.status && <span class=\"sr-only\">{stateMap[this.status]}</span>}\r\n\r\n <span>\r\n {this.handleTitle}\r\n {this.isNeutral && (\r\n <dso-icon class=\"info-icon\" icon={this.open || this.hover ? \"info-active\" : \"info\"} />\r\n )}\r\n </span>\r\n\r\n {this.badgeMessage && <dso-badge status={this.badgeStatus}>{this.badgeMessage}</dso-badge>}\r\n\r\n {hasAddons && (\r\n <div class=\"dso-section-handle-addons\">\r\n {this.statusDescription && <span class=\"dso-status\">{this.statusDescription}</span>}\r\n <HandleIcon state={this.status} icon={this.icon} attachmentCount={this.attachmentCount} />\r\n </div>\r\n )}\r\n </Fragment>\r\n )}\r\n </HandleElement>\r\n </Handle>\r\n <dso-expandable\r\n class=\"dso-section-body\"\r\n open={this.open}\r\n enableAnimation\r\n minimumHeight={this.isNeutral ? 0 : 4}\r\n onDsoExpandableAnimationStart={this.handleExpandableAnimationStart}\r\n onDsoExpandableAnimationEnd={this.handleExpandableAnimationEnd}\r\n >\r\n <div class=\"dso-section-body-content\" ref={(element) => (this.sectionBody = element)}>\r\n <slot />\r\n </div>\r\n </dso-expandable>\r\n </Host>\r\n );\r\n }\r\n}\r\n"],"mappings":"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","ignoreList":[]}
|