@dso-toolkit/core 75.0.0 → 75.1.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/bundle/dso-accordion-section.js +5 -5
- package/dist/bundle/dso-action-list-item.js +1 -1
- package/dist/bundle/dso-advanced-select.js +3 -3
- package/dist/bundle/dso-alert.js +1 -1
- package/dist/bundle/dso-annotation-activiteit.js +4 -4
- package/dist/bundle/dso-annotation-gebiedsaanwijzing.js +4 -4
- package/dist/bundle/dso-annotation-kaart.js +2 -2
- package/dist/bundle/dso-annotation-locatie.js +1 -1
- package/dist/bundle/dso-annotation-omgevingsnormwaarde.js +4 -4
- package/dist/bundle/dso-attachments-counter.js +1 -1
- package/dist/bundle/dso-autosuggest.js +3 -3
- package/dist/bundle/dso-card.js +2 -2
- package/dist/bundle/dso-card.js.map +1 -1
- package/dist/bundle/dso-date-picker-legacy.js +1 -1
- package/dist/bundle/dso-document-card.js +1 -1
- package/dist/bundle/dso-document-component.js +1 -1
- package/dist/bundle/dso-header.js +2 -2
- package/dist/bundle/dso-header.js.map +1 -1
- package/dist/bundle/dso-icon.js +1 -1
- package/dist/bundle/dso-image-overlay.js +1 -1
- package/dist/bundle/dso-info-button.js +1 -1
- package/dist/bundle/dso-info.js +1 -1
- package/dist/bundle/dso-label.js +1 -1
- package/dist/bundle/dso-legend-item.js +5 -5
- package/dist/bundle/dso-list-button.js +22 -4
- package/dist/bundle/dso-list-button.js.map +1 -1
- package/dist/bundle/dso-logo.js +1 -1
- package/dist/bundle/dso-map-base-layers.js +5 -5
- package/dist/bundle/dso-map-controls.js +3 -3
- package/dist/bundle/dso-map-overlays.js +5 -5
- package/dist/bundle/dso-mark-bar.js +2 -2
- package/dist/bundle/dso-modal.js +3 -3
- package/dist/bundle/dso-onboarding-tip.js +2 -2
- package/dist/bundle/dso-ozon-content.js +1 -1
- package/dist/bundle/dso-pagination.js +2 -2
- package/dist/bundle/dso-panel.js +1 -1
- package/dist/bundle/dso-plekinfo-card.js +2 -2
- package/dist/bundle/dso-progress-bar.js +1 -1
- package/dist/bundle/dso-progress-indicator.js +1 -1
- package/dist/bundle/dso-project-item.js +4 -4
- package/dist/bundle/dso-responsive-element.js +1 -1
- package/dist/bundle/dso-scrollable.js +1 -1
- package/dist/bundle/dso-selectable.js +1 -1
- package/dist/bundle/dso-skiplink.js +2 -2
- package/dist/bundle/dso-slide-toggle.js +1 -1
- package/dist/bundle/dso-survey-rating.js +4 -4
- package/dist/bundle/dso-table.js +1 -1
- package/dist/bundle/dso-tabs.js +1 -1
- package/dist/bundle/dso-toggletip.js +1 -1
- package/dist/bundle/dso-tooltip.js +1 -1
- package/dist/bundle/dso-tree-view.js +3 -3
- package/dist/bundle/dso-viewer-grid.js +1 -1
- package/dist/bundle/dsot-document-component-demo.js +12 -12
- package/dist/bundle/{p-DIok-wvi.js → p-57gCBWwP.js} +4 -4
- package/dist/bundle/{p-DIok-wvi.js.map → p-57gCBWwP.js.map} +1 -1
- package/dist/bundle/{p-QqEnuAIH.js → p-Aoa5eJNp.js} +3 -3
- package/dist/bundle/{p-QqEnuAIH.js.map → p-Aoa5eJNp.js.map} +1 -1
- package/dist/bundle/p-B0a0s4C8.js +122 -0
- package/dist/bundle/p-B0a0s4C8.js.map +1 -0
- package/dist/bundle/{p-Cs3phD9i.js → p-BAOb4Icr.js} +47 -21
- package/dist/bundle/p-BAOb4Icr.js.map +1 -0
- package/dist/bundle/{p-BYV1oeRl.js → p-BX-MTpLY.js} +3 -3
- package/dist/bundle/{p-BYV1oeRl.js.map → p-BX-MTpLY.js.map} +1 -1
- package/dist/bundle/{p-DTtP46RI.js → p-BpUdPxfZ.js} +8 -3
- package/dist/bundle/p-BpUdPxfZ.js.map +1 -0
- package/dist/bundle/{p-D8CNpm3v.js → p-BvIWF0ZG.js} +6 -6
- package/dist/bundle/{p-D8CNpm3v.js.map → p-BvIWF0ZG.js.map} +1 -1
- package/dist/bundle/{p-D9Bg2rxG.js → p-C1QiwjOR.js} +4 -4
- package/dist/bundle/{p-D9Bg2rxG.js.map → p-C1QiwjOR.js.map} +1 -1
- package/dist/bundle/{p-DeWunH18.js → p-CCkZUAjN.js} +6 -6
- package/dist/bundle/{p-DeWunH18.js.map → p-CCkZUAjN.js.map} +1 -1
- package/dist/bundle/{p-CyBDICEz.js → p-CRZudroy.js} +3 -3
- package/dist/bundle/{p-CyBDICEz.js.map → p-CRZudroy.js.map} +1 -1
- package/dist/bundle/{p-BLcgQKpu.js → p-CTLPOSaJ.js} +3 -3
- package/dist/bundle/{p-BLcgQKpu.js.map → p-CTLPOSaJ.js.map} +1 -1
- package/dist/bundle/{p-BN2fD3ZU.js → p-CTntGBuq.js} +3 -3
- package/dist/bundle/{p-BN2fD3ZU.js.map → p-CTntGBuq.js.map} +1 -1
- package/dist/bundle/{p-9Ncrliah.js → p-CWKjZDtY.js} +5 -5
- package/dist/bundle/{p-9Ncrliah.js.map → p-CWKjZDtY.js.map} +1 -1
- package/dist/bundle/{p-Cx4Hx2VD.js → p-Cg1tXclp.js} +3 -3
- package/dist/bundle/{p-Cx4Hx2VD.js.map → p-Cg1tXclp.js.map} +1 -1
- package/dist/bundle/{p-YrsDWjn_.js → p-D0Ir0GXP.js} +3 -3
- package/dist/bundle/{p-YrsDWjn_.js.map → p-D0Ir0GXP.js.map} +1 -1
- package/dist/bundle/{p-DWXU-hOH.js → p-DBE1IrEJ.js} +3 -3
- package/dist/bundle/{p-DWXU-hOH.js.map → p-DBE1IrEJ.js.map} +1 -1
- package/dist/bundle/{p-CoKesn28.js → p-DD69Irdl.js} +4 -4
- package/dist/bundle/{p-CoKesn28.js.map → p-DD69Irdl.js.map} +1 -1
- package/dist/bundle/{p-CLisNzps.js → p-DbfxMDmf.js} +18 -12
- package/dist/bundle/p-DbfxMDmf.js.map +1 -0
- package/dist/bundle/{p-BzRDrr-_.js → p-QFeeViSZ.js} +3 -3
- package/dist/bundle/{p-BzRDrr-_.js.map → p-QFeeViSZ.js.map} +1 -1
- package/dist/cjs/dso-alert.dso-badge.dso-image-overlay.dso-ozon-content.dso-panel.dso-table.entry.cjs.js.map +1 -1
- package/dist/cjs/dso-alert_6.cjs.entry.js +43 -17
- package/dist/cjs/dso-alert_6.cjs.entry.js.map +1 -1
- package/dist/cjs/dso-annotation-locatie.dso-document-component.entry.cjs.js.map +1 -1
- package/dist/cjs/dso-annotation-locatie_2.cjs.entry.js +8 -2
- package/dist/cjs/dso-annotation-locatie_2.cjs.entry.js.map +1 -1
- package/dist/cjs/dso-card.cjs.entry.js +1 -1
- package/dist/cjs/dso-card.cjs.entry.js.map +1 -1
- package/dist/cjs/dso-card.entry.cjs.js.map +1 -1
- package/dist/cjs/dso-header.cjs.entry.js +1 -1
- package/dist/cjs/dso-header.cjs.entry.js.map +1 -1
- package/dist/cjs/dso-header.entry.cjs.js.map +1 -1
- package/dist/cjs/dso-icon.cjs.entry.js +6 -1
- package/dist/cjs/dso-icon.cjs.entry.js.map +1 -1
- package/dist/cjs/dso-icon.entry.cjs.js.map +1 -1
- package/dist/cjs/dso-info.dso-selectable.entry.cjs.js.map +1 -1
- package/dist/cjs/dso-info_2.cjs.entry.js +2 -4
- package/dist/cjs/dso-info_2.cjs.entry.js.map +1 -1
- package/dist/cjs/dso-label.dso-renvooi.dso-slide-toggle.entry.cjs.js.map +1 -1
- package/dist/cjs/dso-label_3.cjs.entry.js +2 -2
- package/dist/cjs/dso-label_3.cjs.entry.js.map +1 -1
- package/dist/cjs/dso-list-button.cjs.entry.js +2 -2
- package/dist/cjs/dso-list-button.cjs.entry.js.map +1 -1
- package/dist/cjs/dso-list-button.entry.cjs.js.map +1 -1
- 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-onboarding-tip.cjs.entry.js +1 -1
- package/dist/cjs/dso-plekinfo-card.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-project-item.cjs.entry.js +1 -1
- package/dist/cjs/dso-responsive-element.cjs.entry.js +1 -1
- package/dist/cjs/dso-scrollable.cjs.entry.js +2 -2
- package/dist/cjs/dso-skiplink.cjs.entry.js +1 -1
- package/dist/cjs/dso-survey-rating.cjs.entry.js +2 -2
- package/dist/cjs/dso-tabs.cjs.entry.js +1 -1
- package/dist/cjs/dso-toggletip.cjs.entry.js +1 -1
- package/dist/cjs/dso-toolkit.cjs.js +1 -1
- package/dist/cjs/dso-tooltip.cjs.entry.js +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/loader.cjs.js +1 -1
- package/dist/collection/components/card/card.css +4 -0
- package/dist/collection/components/document-component/document-component-heading.js.map +1 -1
- package/dist/collection/components/document-component/document-component.css +17 -12
- package/dist/collection/components/document-component/document-component.js +7 -1
- package/dist/collection/components/document-component/document-component.js.map +1 -1
- package/dist/collection/components/header/header.css +2 -4
- package/dist/collection/components/icon/icon.js +3 -1
- package/dist/collection/components/icon/icon.js.map +1 -1
- package/dist/collection/components/label/label.css +2 -2
- package/dist/collection/components/list-button/list-button.css +6 -132
- package/dist/collection/components/list-button/list-button.js +1 -1
- package/dist/collection/components/list-button/list-button.js.map +1 -1
- package/dist/collection/components/logo/logo.js +1 -1
- package/dist/collection/components/map-base-layers/map-base-layers.js +1 -1
- package/dist/collection/components/map-controls/map-controls.js +1 -1
- package/dist/collection/components/map-overlays/map-overlays.js +1 -1
- package/dist/collection/components/mark-bar/mark-bar.js +1 -1
- package/dist/collection/components/modal/modal.js +1 -1
- package/dist/collection/components/onboarding-tip/onboarding-tip.js +1 -1
- package/dist/collection/components/ozon-content/nodes/kop.node.js +28 -11
- package/dist/collection/components/ozon-content/nodes/kop.node.js.map +1 -1
- package/dist/collection/components/ozon-content/ozon-content-context.interface.js.map +1 -1
- package/dist/collection/components/ozon-content/ozon-content-mapper.js +1 -0
- package/dist/collection/components/ozon-content/ozon-content-mapper.js.map +1 -1
- package/dist/collection/components/ozon-content/ozon-content-node-context.interface.js.map +1 -1
- package/dist/collection/components/ozon-content/ozon-content.css +75 -0
- package/dist/collection/components/ozon-content/ozon-content.interfaces.js.map +1 -1
- package/dist/collection/components/ozon-content/ozon-content.js +24 -2
- package/dist/collection/components/ozon-content/ozon-content.js.map +1 -1
- package/dist/collection/components/plekinfo-card/plekinfo-card.js +1 -1
- package/dist/collection/components/progress-bar/progress-bar.js +1 -1
- package/dist/collection/components/progress-indicator/progress-indicator.js +1 -1
- package/dist/collection/components/project-item/project-item.js +1 -1
- package/dist/collection/components/responsive-element/responsive-element.js +1 -1
- package/dist/collection/components/scrollable/scrollable.js +2 -2
- package/dist/collection/components/selectable/selectable.css +6 -24
- package/dist/collection/components/selectable/selectable.js +2 -5
- package/dist/collection/components/selectable/selectable.js.map +1 -1
- package/dist/collection/components/skiplink/skiplink.js +1 -1
- package/dist/collection/components/slide-toggle/slide-toggle.js +1 -1
- package/dist/collection/components/survey-rating/survey-rating.js +2 -2
- package/dist/collection/components/table/table.js +1 -1
- package/dist/collection/components/tabs/tabs.js +1 -1
- package/dist/collection/components/toggletip/toggletip.js +1 -1
- package/dist/collection/components/tooltip/tooltip.js +1 -1
- package/dist/collection/components/tree-view/tree-view.js +1 -1
- package/dist/collection/components/viewer-grid/viewer-grid.js +1 -1
- package/dist/components/document-component.js +8 -2
- package/dist/components/document-component.js.map +1 -1
- package/dist/components/dso-card.js +1 -1
- package/dist/components/dso-card.js.map +1 -1
- package/dist/components/dso-header.js +1 -1
- package/dist/components/dso-header.js.map +1 -1
- package/dist/components/dso-list-button.js +22 -4
- package/dist/components/dso-list-button.js.map +1 -1
- package/dist/components/dso-logo.js +1 -1
- package/dist/components/dso-map-base-layers.js +1 -1
- package/dist/components/dso-map-controls.js +1 -1
- package/dist/components/dso-map-overlays.js +1 -1
- package/dist/components/dso-mark-bar.js +1 -1
- package/dist/components/dso-modal.js +1 -1
- package/dist/components/dso-onboarding-tip.js +1 -1
- package/dist/components/dso-plekinfo-card.js +1 -1
- package/dist/components/dso-progress-bar.js +1 -1
- package/dist/components/dso-project-item.js +1 -1
- package/dist/components/dso-skiplink.js +1 -1
- package/dist/components/dso-survey-rating.js +2 -2
- package/dist/components/dso-tabs.js +1 -1
- package/dist/components/dso-tree-view.js +1 -1
- package/dist/components/dso-viewer-grid.js +1 -1
- package/dist/components/icon.js +6 -1
- package/dist/components/icon.js.map +1 -1
- package/dist/components/label.js +1 -1
- package/dist/components/label.js.map +1 -1
- package/dist/components/ozon-content.js +41 -15
- package/dist/components/ozon-content.js.map +1 -1
- package/dist/components/progress-indicator.js +1 -1
- package/dist/components/responsive-element.js +1 -1
- package/dist/components/scrollable.js +2 -2
- package/dist/components/selectable.js +2 -5
- package/dist/components/selectable.js.map +1 -1
- package/dist/components/slide-toggle.js +1 -1
- package/dist/components/table.js +1 -1
- package/dist/components/toggletip.js +1 -1
- package/dist/components/tooltip.js +1 -1
- package/dist/dso-toolkit/dso-alert.dso-badge.dso-image-overlay.dso-ozon-content.dso-panel.dso-table.entry.esm.js.map +1 -1
- package/dist/dso-toolkit/dso-annotation-locatie.dso-document-component.entry.esm.js.map +1 -1
- package/dist/dso-toolkit/dso-card.entry.esm.js.map +1 -1
- package/dist/dso-toolkit/dso-header.entry.esm.js.map +1 -1
- package/dist/dso-toolkit/dso-icon.entry.esm.js.map +1 -1
- package/dist/dso-toolkit/dso-info.dso-selectable.entry.esm.js.map +1 -1
- package/dist/dso-toolkit/dso-label.dso-renvooi.dso-slide-toggle.entry.esm.js.map +1 -1
- package/dist/dso-toolkit/dso-list-button.entry.esm.js.map +1 -1
- package/dist/dso-toolkit/dso-toolkit.esm.js +1 -1
- package/dist/dso-toolkit/{p-21542d86.entry.js → p-0031a2bb.entry.js} +2 -2
- package/dist/dso-toolkit/{p-10901139.entry.js → p-05982f0c.entry.js} +2 -2
- package/dist/dso-toolkit/{p-090ab6fc.entry.js → p-08a680e3.entry.js} +2 -2
- package/dist/dso-toolkit/{p-e0bc1853.entry.js → p-124316e8.entry.js} +2 -2
- package/dist/dso-toolkit/{p-98772f24.entry.js → p-221c3b8b.entry.js} +2 -2
- package/dist/dso-toolkit/{p-8ec31264.entry.js → p-23241161.entry.js} +2 -2
- package/dist/dso-toolkit/p-369e9eb0.entry.js +2 -0
- package/dist/dso-toolkit/p-369e9eb0.entry.js.map +1 -0
- package/dist/dso-toolkit/{p-0ce58811.entry.js → p-36e6a37b.entry.js} +2 -2
- package/dist/dso-toolkit/p-36e6a37b.entry.js.map +1 -0
- package/dist/dso-toolkit/p-3daf3d1b.entry.js +2 -0
- package/dist/dso-toolkit/{p-4d032ac3.entry.js → p-554d12b7.entry.js} +2 -2
- package/dist/dso-toolkit/p-554d12b7.entry.js.map +1 -0
- package/dist/dso-toolkit/{p-e9f5382c.entry.js → p-57a2730e.entry.js} +2 -2
- package/dist/dso-toolkit/{p-92f93d4d.entry.js → p-5870d108.entry.js} +2 -2
- package/dist/dso-toolkit/{p-e3883983.entry.js → p-66ec457d.entry.js} +2 -2
- package/dist/dso-toolkit/{p-088d0493.entry.js → p-7f073eed.entry.js} +2 -2
- package/dist/dso-toolkit/p-8b4a6a68.entry.js +2 -0
- package/dist/dso-toolkit/p-8b4a6a68.entry.js.map +1 -0
- package/dist/dso-toolkit/{p-b9b0c72d.entry.js → p-90521fc1.entry.js} +2 -2
- package/dist/dso-toolkit/p-9cf46bde.entry.js +2 -0
- package/dist/dso-toolkit/p-9cf46bde.entry.js.map +1 -0
- package/dist/dso-toolkit/{p-97320fda.entry.js → p-a2800a6f.entry.js} +2 -2
- package/dist/dso-toolkit/p-a4618476.entry.js +2 -0
- package/dist/dso-toolkit/p-a4618476.entry.js.map +1 -0
- package/dist/dso-toolkit/{p-517cbc20.entry.js → p-a82b3993.entry.js} +2 -2
- package/dist/dso-toolkit/{p-356f8d94.entry.js → p-ac24cd1e.entry.js} +2 -2
- package/dist/dso-toolkit/{p-2c460675.entry.js → p-aeac51e6.entry.js} +2 -2
- package/dist/dso-toolkit/{p-2ff601f9.entry.js → p-bcc1bb8f.entry.js} +2 -2
- package/dist/dso-toolkit/{p-571f0f85.entry.js → p-dd5a59b3.entry.js} +2 -2
- package/dist/dso-toolkit/{p-74718de8.entry.js → p-f8544d78.entry.js} +2 -2
- package/dist/dso-toolkit/p-fcb3d0dc.entry.js +2 -0
- package/dist/dso-toolkit/p-fcb3d0dc.entry.js.map +1 -0
- package/dist/dso-toolkit/p-fe0021d0.entry.js +2 -0
- package/dist/dso-toolkit/{p-5c8be619.entry.js.map → p-fe0021d0.entry.js.map} +1 -1
- package/dist/dso-toolkit/{p-a10cea33.entry.js → p-fe4319c2.entry.js} +2 -2
- package/dist/esm/dso-alert.dso-badge.dso-image-overlay.dso-ozon-content.dso-panel.dso-table.entry.js.map +1 -1
- package/dist/esm/dso-alert_6.entry.js +43 -17
- package/dist/esm/dso-alert_6.entry.js.map +1 -1
- package/dist/esm/dso-annotation-locatie.dso-document-component.entry.js.map +1 -1
- package/dist/esm/dso-annotation-locatie_2.entry.js +8 -2
- package/dist/esm/dso-annotation-locatie_2.entry.js.map +1 -1
- package/dist/esm/dso-card.entry.js +1 -1
- package/dist/esm/dso-card.entry.js.map +1 -1
- package/dist/esm/dso-header.entry.js +1 -1
- package/dist/esm/dso-header.entry.js.map +1 -1
- package/dist/esm/dso-icon.entry.js +6 -1
- package/dist/esm/dso-icon.entry.js.map +1 -1
- package/dist/esm/dso-info.dso-selectable.entry.js.map +1 -1
- package/dist/esm/dso-info_2.entry.js +2 -4
- package/dist/esm/dso-info_2.entry.js.map +1 -1
- package/dist/esm/dso-label.dso-renvooi.dso-slide-toggle.entry.js.map +1 -1
- package/dist/esm/dso-label_3.entry.js +2 -2
- package/dist/esm/dso-label_3.entry.js.map +1 -1
- package/dist/esm/dso-list-button.entry.js +2 -2
- package/dist/esm/dso-list-button.entry.js.map +1 -1
- 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-onboarding-tip.entry.js +1 -1
- package/dist/esm/dso-plekinfo-card.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-project-item.entry.js +1 -1
- package/dist/esm/dso-responsive-element.entry.js +1 -1
- package/dist/esm/dso-scrollable.entry.js +2 -2
- package/dist/esm/dso-skiplink.entry.js +1 -1
- package/dist/esm/dso-survey-rating.entry.js +2 -2
- package/dist/esm/dso-tabs.entry.js +1 -1
- package/dist/esm/dso-toggletip.entry.js +1 -1
- package/dist/esm/dso-toolkit.js +1 -1
- package/dist/esm/dso-tooltip.entry.js +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/loader.js +1 -1
- package/dist/types/components/document-component/document-component.d.ts +1 -0
- package/dist/types/components/ozon-content/nodes/kop.node.d.ts +3 -2
- package/dist/types/components/ozon-content/ozon-content-context.interface.d.ts +2 -1
- package/dist/types/components/ozon-content/ozon-content-node-context.interface.d.ts +2 -1
- package/dist/types/components/ozon-content/ozon-content.d.ts +6 -2
- package/dist/types/components/ozon-content/ozon-content.interfaces.d.ts +8 -0
- package/dist/types/components/selectable/selectable.d.ts +0 -1
- package/dist/types/components.d.ts +8 -3
- package/package.json +3 -3
- package/dist/bundle/p-CLisNzps.js.map +0 -1
- package/dist/bundle/p-Cs3phD9i.js.map +0 -1
- package/dist/bundle/p-DTtP46RI.js.map +0 -1
- package/dist/bundle/p-cdXH2H1r.js +0 -125
- package/dist/bundle/p-cdXH2H1r.js.map +0 -1
- package/dist/dso-toolkit/p-0ce58811.entry.js.map +0 -1
- package/dist/dso-toolkit/p-11161e83.entry.js +0 -2
- package/dist/dso-toolkit/p-11161e83.entry.js.map +0 -1
- package/dist/dso-toolkit/p-4ac06008.entry.js +0 -2
- package/dist/dso-toolkit/p-4ac06008.entry.js.map +0 -1
- package/dist/dso-toolkit/p-4d032ac3.entry.js.map +0 -1
- package/dist/dso-toolkit/p-53ca5932.entry.js +0 -2
- package/dist/dso-toolkit/p-53ca5932.entry.js.map +0 -1
- package/dist/dso-toolkit/p-5c8be619.entry.js +0 -2
- package/dist/dso-toolkit/p-afc5e401.entry.js +0 -2
- package/dist/dso-toolkit/p-afc5e401.entry.js.map +0 -1
- package/dist/dso-toolkit/p-f1f414b6.entry.js +0 -2
- package/dist/dso-toolkit/p-feae6843.entry.js +0 -2
- package/dist/dso-toolkit/p-feae6843.entry.js.map +0 -1
- /package/dist/dso-toolkit/{p-21542d86.entry.js.map → p-0031a2bb.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-10901139.entry.js.map → p-05982f0c.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-090ab6fc.entry.js.map → p-08a680e3.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-e0bc1853.entry.js.map → p-124316e8.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-98772f24.entry.js.map → p-221c3b8b.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-8ec31264.entry.js.map → p-23241161.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-f1f414b6.entry.js.map → p-3daf3d1b.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-e9f5382c.entry.js.map → p-57a2730e.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-92f93d4d.entry.js.map → p-5870d108.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-e3883983.entry.js.map → p-66ec457d.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-088d0493.entry.js.map → p-7f073eed.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-b9b0c72d.entry.js.map → p-90521fc1.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-97320fda.entry.js.map → p-a2800a6f.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-517cbc20.entry.js.map → p-a82b3993.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-356f8d94.entry.js.map → p-ac24cd1e.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-2c460675.entry.js.map → p-aeac51e6.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-2ff601f9.entry.js.map → p-bcc1bb8f.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-571f0f85.entry.js.map → p-dd5a59b3.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-74718de8.entry.js.map → p-f8544d78.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-a10cea33.entry.js.map → p-fe4319c2.entry.js.map} +0 -0
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{r as o,c as n,h as i,F as s,g as d}from"./p-C-b4jsbt.js";import{c as t}from"./p-ChV9xqsO.js";import{d as e}from"./p-DDU8nTJS.js";import{i as r}from"./p-B_kXuEcW.js";import{i as l}from"./p-Hgv-pDpy.js";import"./p-BFTU3MAI.js";const a={en:{"dso-header":{menu:"Menu",login:"Log in",logout:"Log out",help:"Help",overflowMenu:"More"}},nl:{"dso-header":{menu:"Menu",login:"Inloggen",logout:"Uitloggen",help:"Help",overflowMenu:"Meer",userHome:"Mijn Omgevingsloket"}}};const p='@charset "UTF-8";*,*::after,*::before{box-sizing:border-box}:host{display:block}.dso-header{border-block-end:1px solid #ccc;display:flex;flex-wrap:wrap;position:relative}@media screen and (min-width: 768px){.dso-header{align-items:center}}@media screen and (max-width: 991px){.dso-header.use-drop-down{flex-wrap:nowrap}}.dso-header .dso-nav{border:0}.logo-container{flex:1 1 12.5rem;margin-inline-end:24px;padding-block-end:16px;padding-block-start:16px}.dso-header-session{display:flex;align-items:center;margin-inline-start:auto}.dso-header-session .profile .dso-tertiary,.dso-header-session .login .dso-tertiary,.dso-header-session .logout .dso-tertiary,.dso-header-session .help .dso-tertiary{display:flex;gap:0.5rem;cursor:pointer;border:0;background-color:transparent;padding-inline-start:0;outline-offset:2px;font-family:Asap, sans-serif;color:#39870c;font-size:1rem;font-weight:600;line-height:1.5;text-decoration:none}.dso-header-session .profile .dso-tertiary:hover,.dso-header-session .login .dso-tertiary:hover,.dso-header-session .logout .dso-tertiary:hover,.dso-header-session .help .dso-tertiary:hover{text-decoration:underline}.dso-header-session .profile{margin-inline-start:8px}.dso-header-session .profile+.logout,.dso-header-session .profile~.help{border-inline-start:3px solid #ccc;margin-inline-start:8px;padding-inline-start:8px}.dso-header-session .help a,.dso-header-session .help button{display:flex}.dso-navbar{flex-basis:100%}dso-dropdown-menu>button:not(.dso-primary):not(.dso-secondary):not(.dso-tertiary),dso-dropdown-menu>.dso-primary,dso-dropdown-menu>.dso-secondary,dso-dropdown-menu>.dso-tertiary{position:relative}dso-dropdown-menu>button:not(.dso-primary):not(.dso-secondary):not(.dso-tertiary)::after,dso-dropdown-menu>.dso-primary::after,dso-dropdown-menu>.dso-secondary::after,dso-dropdown-menu>.dso-tertiary::after{content:"";display:inline-block}dso-dropdown-menu>.dso-primary::after,dso-dropdown-menu>.dso-secondary::after{margin-inline-start:8px}dso-dropdown-menu .dso-group-label{color:#999;font-size:0.875em;font-weight:400;margin:0;padding-block:4px 2px;padding-inline:20px;text-transform:uppercase}dso-dropdown-menu ul{margin:0;padding:0}dso-dropdown-menu ul:not(:last-child){border-block-end:1px solid #e5e5e5;margin-block-end:11px;padding-block-end:11px}dso-dropdown-menu .dso-dropdown-options{background-clip:padding-box;background-color:#fff;border-radius:4px;border:1px solid rgba(0, 0, 0, 0.15);box-shadow:0 8px 10px 1px rgba(0, 0, 0, 0.4);font-size:1rem;min-inline-size:160px;padding-block:5px;padding-inline:0;z-index:220}dso-dropdown-menu .dso-dropdown-options li{list-style:none}dso-dropdown-menu .dso-dropdown-options li a:visited{color:#191919}dso-dropdown-menu .dso-dropdown-options li a,dso-dropdown-menu .dso-dropdown-options li button{text-decoration:none}dso-dropdown-menu .dso-dropdown-options li a:hover,dso-dropdown-menu .dso-dropdown-options li a:focus-visible,dso-dropdown-menu .dso-dropdown-options li a:active,dso-dropdown-menu .dso-dropdown-options li button:hover,dso-dropdown-menu .dso-dropdown-options li button:focus-visible,dso-dropdown-menu .dso-dropdown-options li button:active{text-decoration:underline}dso-dropdown-menu .dso-dropdown-options li a,dso-dropdown-menu .dso-dropdown-options li button{clear:both;color:#191919;display:block;font-weight:400;line-height:1.5;padding-block:3px;padding-inline:20px;text-decoration:none;white-space:nowrap}dso-dropdown-menu .dso-dropdown-options li a:hover,dso-dropdown-menu .dso-dropdown-options li a:focus,dso-dropdown-menu .dso-dropdown-options li button:hover,dso-dropdown-menu .dso-dropdown-options li button:focus{background-color:#39870c;border-color:#39870c;color:#fff;text-decoration:none}dso-dropdown-menu .dso-dropdown-options li button{background-color:transparent;border:0;border-radius:0;text-align:inherit;inline-size:100%}dso-dropdown-menu button{background-color:transparent;border:0;display:flex;font-family:Asap, sans-serif;align-items:center;position:relative}dso-dropdown-menu button dso-icon{inline-size:24px;block-size:24px;margin-inline-start:8px;padding-block-start:2px}dso-dropdown-menu button[aria-expanded=true] dso-icon{transform:rotate(180deg)}dso-dropdown-menu .dso-dropdown-options{border:0;border-radius:0;box-shadow:0 8px 10px 1px rgba(0, 0, 0, 0.4)}@media screen and (min-width: 768px){dso-dropdown-menu .dso-dropdown-options{inline-size:375px}}@media screen and (max-width: 767px){dso-dropdown-menu .dso-dropdown-options{inline-size:100%}}dso-dropdown-menu .dso-dropdown-options ul{margin:0;padding:0;list-style:none}dso-dropdown-menu .dso-dropdown-options ul li a,dso-dropdown-menu .dso-dropdown-options ul li button{display:block;padding:16px;color:#275937;font-size:1.25rem;white-space:pre-wrap;text-decoration:none}dso-dropdown-menu .dso-dropdown-options ul li a:focus-visible,dso-dropdown-menu .dso-dropdown-options ul li button:focus-visible{background-color:#39870c;color:#fff}dso-dropdown-menu .dso-dropdown-options ul li a:hover,dso-dropdown-menu .dso-dropdown-options ul li button:hover{background-color:#fff;color:#275937;text-decoration:underline}dso-dropdown-menu .dso-dropdown-options ul li a:visited,dso-dropdown-menu .dso-dropdown-options ul li button:visited{color:#275937}dso-dropdown-menu .dso-dropdown-options ul li button{inline-size:100%;text-align:start}dso-dropdown-menu .dso-dropdown-options ul li button dso-icon{margin-inline-start:8px}dso-dropdown-menu .dso-dropdown-options ul li.dso-active a{font-weight:600}dso-dropdown-menu .dso-dropdown-options ul li+li{border-block-start:1px solid #ccc}.dropdown{margin-inline-start:auto;display:flex;align-items:center}.dropdown dso-dropdown-menu{position:static}.dropdown dso-dropdown-menu .dso-dropdown-options{inset-inline-end:0;inset-block-start:100%;box-shadow:0 8px 10px 1px rgba(0, 0, 0, 0.4)}.dropdown dso-dropdown-menu>button{color:#39870c;font-size:16px;font-weight:600;line-height:normal;position:relative}.dropdown dso-dropdown-menu>button::after{margin-inline-start:8px;position:absolute;inset-inline-end:0px;inset-block-start:50%;transform:translateY(-50%)}.dropdown dso-dropdown-menu>button:hover,.dropdown dso-dropdown-menu>button:active{cursor:pointer;text-decoration:underline}.dso-nav{align-items:end;column-gap:32px;display:flex;list-style:none;margin-block-end:0;margin-block-start:0;padding-inline-start:0}.dso-nav>li{margin-block-end:4px}.dso-nav>li>a{display:block}.dso-nav>li>a,.dso-nav>li>a:hover,.dso-nav>li>a:focus,.dso-nav>li>a:visited{color:#275937}.dso-nav>li.dso-active,.dso-nav>li.is-active{margin-block-end:0}.dso-nav>li.dso-active>a,.dso-nav>li.is-active>a{border-block-end:4px solid #8b4a6a;font-weight:bold}.dso-nav.dso-nav-main{display:flex !important}.dso-nav.dso-nav-main>li>a{text-decoration:none;font-size:1.25em;line-height:1;margin-block-start:8px;padding-block:16px;padding-inline:0;white-space:nowrap}.dso-nav.dso-nav-main>li>a:hover,.dso-nav.dso-nav-main>li>a:focus-visible,.dso-nav.dso-nav-main>li>a:active{text-decoration:underline}.dso-nav.dso-nav-main dso-dropdown-menu .dso-dropdown-options{inset-inline-start:-1rem !important;inset-block-start:3px !important}.dso-nav.dso-nav-main dso-dropdown-menu button{font-size:1.25em;line-height:1;margin-block-start:8px;padding-block:16px;padding-inline:0;align-items:flex-end;color:#275937}.dso-nav.dso-nav-main dso-dropdown-menu button:hover,.dso-nav.dso-nav-main dso-dropdown-menu button:active{cursor:pointer;text-decoration:underline}.dso-nav.dso-nav-main dso-dropdown-menu button::after{margin-inline-start:8px;position:absolute;inset-inline-end:0px;inset-block-start:auto;transform:none}.dso-nav .menu-user-home{margin-inline-start:auto}.dso-nav .menu-user-home dso-icon{block-size:1em;margin-inline-end:8px;position:relative;inset-block-start:-2px;inline-size:1.2em}';const u=992;const h=class{constructor(s){o(this,s);this.dsoHeaderClick=n(this,"dsoHeaderClick",7);this.mainMenu=[];this.useDropDownMenu="auto";this.authStatus="none";this.showHelp=false;this.overflowMenuItems=0;this.dropdownOptionsOffset=0;this.text=r((()=>this.host),a);this.onWindowResize=e((()=>{var o,n;(o=this.dropdownElement)===null||o===void 0?void 0:o.removeAttribute("open");(n=this.dropdownElement)===null||n===void 0?void 0:n.removeAttribute("tabindex");this.setDropDownMenu();this.setOverflowMenu();if(this.showDropDown){this.dropdownOptionsOffset=this.calculateDropdownOptionsOffset()}}),100);this.MenuItem=o=>i("li",{class:o.active?"dso-active":undefined},i("a",{href:o.url,"aria-current":o.active?"page":undefined,onClick:n=>this.clickHandler(n,"menuItem",{menuItem:o})},o.label))}clickHandler(o,n,i){var s,d;this.dsoHeaderClick.emit({originalEvent:o,isModifiedEvent:l(o),type:n,menuItem:i===null||i===void 0?void 0:i.menuItem,url:(s=i===null||i===void 0?void 0:i.url)!==null&&s!==void 0?s:(d=i===null||i===void 0?void 0:i.menuItem)===null||d===void 0?void 0:d.url})}setShowDropDown(o){if(o==="auto"){this.setDropDownMenu();return}this.showDropDown=o==="always"}shrinkMenuToFit(){if(!this.wrapper||!this.nav){return}if(this.wrapper.clientWidth>=this.nav.clientWidth){return}if(this.mainMenu&&this.overflowMenuItems>=this.mainMenu.length){return}this.overflowMenuItems++}componentDidRender(){if(!this.host.isConnected){return}if(this.showDropDown){this.dropdownOptionsOffset=this.calculateDropdownOptionsOffset();return}window.setTimeout((()=>this.shrinkMenuToFit()),0)}componentDidLoad(){this.setShowDropDown(this.useDropDownMenu);if(this.showDropDown){this.dropdownOptionsOffset=this.calculateDropdownOptionsOffset()}}setOverflowMenu(){if(this.showDropDown){return}if(this.overflowMenuItems!==0){this.overflowMenuItems=0;return}this.shrinkMenuToFit()}setDropDownMenu(){if(this.useDropDownMenu!=="auto"){return}this.showDropDown=window.innerWidth<u}calculateDropdownOptionsOffset(){var o;if(!this.dropdownElement){return 0}return this.host.clientHeight-(((o=this.dropdownElement)===null||o===void 0?void 0:o.getBoundingClientRect().bottom)-this.host.getBoundingClientRect().top)}connectedCallback(){window.addEventListener("resize",this.onWindowResize)}disconnectedCallback(){window.removeEventListener("resize",this.onWindowResize)}render(){if(this.showDropDown===undefined){return}return i(s,null,i("div",{class:t("dso-header",{["use-drop-down"]:this.showDropDown}),ref:o=>this.wrapper=o},i("div",{class:"logo-container"},i("slot",{name:"logo"})),this.showDropDown&&this.mainMenu&&(this.mainMenu.length>0||this.userHomeUrl||this.authStatus!=="none")&&i("div",{class:"dropdown"},i("dso-dropdown-menu",{"dropdown-align":"right",strategy:"absolute",dropdownOptionsOffset:this.dropdownOptionsOffset,ref:o=>this.dropdownElement=o},i("button",{type:"button",slot:"toggle"},i("span",null,this.text("menu")),i("dso-icon",{icon:"chevron-down"})),i("div",{class:"dso-dropdown-options"},i("ul",null,this.mainMenu.map(this.MenuItem),this.userHomeUrl&&i("li",null,i("a",{href:this.userHomeUrl,onClick:o=>this.clickHandler(o,"userHome",{url:this.userHomeUrl})},this.text("userHome"))),this.userProfileUrl&&this.userProfileName&&this.authStatus==="loggedIn"&&i("li",null,i("a",{href:this.userProfileUrl,onClick:o=>this.clickHandler(o,"profile",{url:this.userProfileUrl})},this.userProfileName,i("span",{class:"profile-label"}," - Mijn profiel"))),this.authStatus==="loggedOut"&&i("li",null,this.loginUrl?i("a",{href:this.loginUrl,onClick:o=>this.clickHandler(o,"login",{url:this.loginUrl})},this.text("login")):i("button",{type:"button",onClick:o=>this.clickHandler(o,"login")},this.text("login"))),this.authStatus==="loggedIn"&&i("li",null,this.logoutUrl?i("a",{href:this.logoutUrl,onClick:o=>this.clickHandler(o,"logout",{url:this.logoutUrl})},this.text("logout")):i("button",{type:"button",onClick:o=>this.clickHandler(o,"logout")},this.text("logout"))),this.showHelp&&i("li",null,this.helpUrl?i("a",{href:this.helpUrl,class:"dso-tertiary",onClick:o=>this.clickHandler(o,"help",{url:this.helpUrl})},i("span",null,this.text("help")),i("dso-icon",{icon:"help"})):i("button",{type:"button",class:"dso-tertiary",onClick:o=>this.clickHandler(o,"help")},i("span",null,this.text("help")),i("dso-icon",{icon:"help"}))))))),!this.showDropDown&&i(s,null,i("div",{class:"dso-header-session"},this.userProfileUrl&&this.userProfileName&&this.authStatus==="loggedIn"&&i("div",{class:"profile"},i("a",{href:this.userProfileUrl,class:"dso-tertiary",onClick:o=>this.clickHandler(o,"profile",{url:this.userProfileUrl})},this.userProfileName)),this.authStatus==="loggedOut"&&i("div",{class:"login"},this.loginUrl?i("a",{href:this.loginUrl,class:"dso-tertiary",onClick:o=>this.clickHandler(o,"login",{url:this.loginUrl})},this.text("login")):i("button",{class:"dso-tertiary",type:"button",onClick:o=>this.clickHandler(o,"login")},this.text("login"))),this.authStatus==="loggedIn"&&i("div",{class:"logout"},this.logoutUrl?i("a",{href:this.logoutUrl,class:"dso-tertiary",onClick:o=>this.clickHandler(o,"logout",{url:this.logoutUrl})},this.text("logout")):i("button",{class:"dso-tertiary",type:"button",onClick:o=>this.clickHandler(o,"logout")},this.text("logout"))),this.showHelp&&i("div",{class:"help"},this.helpUrl?i("a",{href:this.helpUrl,class:"dso-tertiary",onClick:o=>this.clickHandler(o,"help",{url:this.helpUrl})},i("span",null,this.text("help")),i("dso-icon",{icon:"help"})):i("button",{class:"dso-tertiary",type:"button",onClick:o=>this.clickHandler(o,"help")},i("span",null,this.text("help")),i("dso-icon",{icon:"help"})))),(this.mainMenu&&this.mainMenu.length>0||this.userHomeUrl)&&i("nav",{class:"dso-navbar"},i("ul",{class:"dso-nav dso-nav-main",ref:o=>this.nav=o},this.mainMenu&&this.mainMenu.filter(((o,n)=>this.mainMenu&&n<this.mainMenu.length-this.overflowMenuItems)).map(this.MenuItem),this.overflowMenuItems>0&&i("li",null,i("dso-dropdown-menu",{placement:"bottom"},i("button",{type:"button",slot:"toggle"},i("span",null,this.text("overflowMenu")),i("dso-icon",{icon:"chevron-down"})),i("div",{class:"dso-dropdown-options"},i("ul",null,this.mainMenu&&this.mainMenu.filter(((o,n)=>this.mainMenu&&n>=this.mainMenu.length-this.overflowMenuItems)).map(this.MenuItem))))),this.userHomeUrl&&i("li",{class:t("menu-user-home",{"dso-active":this.userHomeActive})},i("a",{href:this.userHomeUrl,"aria-current":this.userHomeActive?"page":undefined,onClick:o=>this.clickHandler(o,"userHome",{url:this.userHomeUrl})},i("dso-icon",{icon:"user-line"}),this.text("userHome"))))))))}get host(){return d(this)}static get watchers(){return{useDropDownMenu:["setShowDropDown"]}}};h.style=p;export{h as dso_header};
|
|
2
|
-
//# sourceMappingURL=p-11161e83.entry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["translations","en","menu","login","logout","help","overflowMenu","nl","userHome","headerCss","minDesktopViewportWidth","Header","constructor","hostRef","this","mainMenu","useDropDownMenu","authStatus","showHelp","overflowMenuItems","dropdownOptionsOffset","text","i18n","host","onWindowResize","debounce","_a","dropdownElement","removeAttribute","_b","setDropDownMenu","setOverflowMenu","showDropDown","calculateDropdownOptionsOffset","MenuItem","item","h","class","active","undefined","href","url","onClick","e","clickHandler","menuItem","label","type","options","dsoHeaderClick","emit","originalEvent","isModifiedEvent","setShowDropDown","value","shrinkMenuToFit","wrapper","nav","clientWidth","length","componentDidRender","isConnected","window","setTimeout","componentDidLoad","innerWidth","clientHeight","getBoundingClientRect","bottom","top","connectedCallback","addEventListener","disconnectedCallback","removeEventListener","render","Fragment","clsx","ref","element","name","userHomeUrl","strategy","slot","icon","map","userProfileUrl","userProfileName","loginUrl","logoutUrl","helpUrl","filter","_","index","placement","userHomeActive"],"sources":["src/components/header/header.i18n.ts","src/components/header/header.scss?tag=dso-header&encapsulation=shadow","src/components/header/header.tsx"],"sourcesContent":["import { Resource } from \"../../utils/i18n\";\r\n\r\nexport const translations: Resource = {\r\n en: {\r\n \"dso-header\": {\r\n menu: \"Menu\",\r\n login: \"Log in\",\r\n logout: \"Log out\",\r\n help: \"Help\",\r\n overflowMenu: \"More\",\r\n },\r\n },\r\n nl: {\r\n \"dso-header\": {\r\n menu: \"Menu\",\r\n login: \"Inloggen\",\r\n logout: \"Uitloggen\",\r\n help: \"Help\",\r\n overflowMenu: \"Meer\",\r\n userHome: \"Mijn Omgevingsloket\",\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/variables/media-query-breakpoints\";\r\n@use \"~dso-toolkit/src/variables/typography\";\r\n\r\n@use \"~dso-toolkit/src/components/link\";\r\n@use \"~dso-toolkit/src/components/dropdown-menu\";\r\n\r\n@use \"header.variables\" as core-header-variables;\r\n\r\n@include utilities.box-sizing();\r\n\r\n@mixin nav-item-border($color) {\r\n border-block-end: 4px solid $color;\r\n}\r\n\r\n@mixin nav-item-main {\r\n font-size: 1.25em;\r\n line-height: 1;\r\n margin-block-start: units.$u1;\r\n padding-block: units.$u2;\r\n padding-inline: 0;\r\n}\r\n\r\n:host {\r\n display: block;\r\n}\r\n\r\n.dso-header {\r\n border-block-end: 1px solid colors.$grijs-20;\r\n display: flex;\r\n flex-wrap: wrap;\r\n position: relative;\r\n\r\n @media screen and (min-width: media-query-breakpoints.$screen-sm-min) {\r\n align-items: center;\r\n }\r\n\r\n @media screen and (max-width: media-query-breakpoints.$screen-sm-max) {\r\n &.use-drop-down {\r\n flex-wrap: nowrap;\r\n }\r\n }\r\n\r\n .dso-nav {\r\n border: 0;\r\n }\r\n}\r\n\r\n.logo-container {\r\n flex: 1 1 12.5rem;\r\n margin-inline-end: units.$u3;\r\n padding-block-end: units.$u2;\r\n padding-block-start: units.$u2;\r\n}\r\n\r\n.dso-header-session {\r\n display: flex;\r\n align-items: center;\r\n margin-inline-start: auto;\r\n\r\n .profile,\r\n .login,\r\n .logout,\r\n .help {\r\n .dso-tertiary {\r\n display: flex;\r\n gap: 0.5rem;\r\n\r\n cursor: pointer;\r\n\r\n border: 0;\r\n\r\n background-color: transparent;\r\n\r\n padding-inline-start: 0;\r\n\r\n outline-offset: 2px;\r\n\r\n font-family: typography.$font-family-base;\r\n color: colors.$grasgroen;\r\n font-size: 1rem;\r\n font-weight: 600;\r\n line-height: 1.5;\r\n text-decoration: none;\r\n\r\n &:hover {\r\n text-decoration: underline;\r\n }\r\n }\r\n }\r\n\r\n .profile {\r\n margin-inline-start: units.$u1;\r\n\r\n + .logout,\r\n ~ .help {\r\n border-inline-start: 3px solid colors.$grijs-20;\r\n margin-inline-start: units.$u1;\r\n padding-inline-start: units.$u1;\r\n }\r\n }\r\n\r\n .help {\r\n a,\r\n button {\r\n display: flex;\r\n }\r\n }\r\n}\r\n\r\n.dso-navbar {\r\n flex-basis: 100%;\r\n}\r\n\r\ndso-dropdown-menu {\r\n @include dropdown-menu.children();\r\n\r\n button {\r\n background-color: transparent;\r\n border: 0;\r\n display: flex;\r\n font-family: typography.$font-family-base;\r\n align-items: center;\r\n position: relative;\r\n\r\n dso-icon {\r\n inline-size: units.$u3;\r\n block-size: units.$u3;\r\n margin-inline-start: units.$u1;\r\n padding-block-start: units.$u1 * 0.25;\r\n }\r\n\r\n &[aria-expanded=\"true\"] {\r\n dso-icon {\r\n transform: rotate(180deg);\r\n }\r\n }\r\n }\r\n\r\n .dso-dropdown-options {\r\n border: 0;\r\n border-radius: 0;\r\n box-shadow: 0 8px 10px 1px rgba(0, 0, 0, 0.4);\r\n\r\n @media screen and (min-width: media-query-breakpoints.$screen-sm-min) {\r\n inline-size: 375px;\r\n }\r\n\r\n @media screen and (max-width: media-query-breakpoints.$screen-xs-max) {\r\n inline-size: 100%;\r\n }\r\n\r\n ul {\r\n margin: 0;\r\n padding: 0;\r\n list-style: none;\r\n\r\n li {\r\n a,\r\n button {\r\n display: block;\r\n padding: units.$u2;\r\n color: colors.$bosgroen;\r\n font-size: 1.25rem;\r\n white-space: pre-wrap;\r\n text-decoration: none;\r\n\r\n &:focus-visible {\r\n background-color: colors.$grasgroen;\r\n color: colors.$wit;\r\n }\r\n\r\n &:hover {\r\n background-color: colors.$wit;\r\n color: colors.$bosgroen;\r\n text-decoration: underline;\r\n }\r\n\r\n &:visited {\r\n color: colors.$bosgroen;\r\n }\r\n }\r\n\r\n button {\r\n inline-size: 100%;\r\n text-align: start;\r\n\r\n dso-icon {\r\n margin-inline-start: units.$u1;\r\n }\r\n }\r\n\r\n &.dso-active {\r\n a {\r\n font-weight: 600;\r\n }\r\n }\r\n\r\n + li {\r\n border-block-start: 1px solid colors.$grijs-20;\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\n.dropdown {\r\n margin-inline-start: auto;\r\n display: flex;\r\n align-items: center;\r\n\r\n dso-dropdown-menu {\r\n position: static;\r\n\r\n .dso-dropdown-options {\r\n inset-inline-end: 0;\r\n inset-block-start: 100%;\r\n box-shadow: 0 8px 10px 1px rgba(0, 0, 0, 0.4);\r\n }\r\n\r\n > button {\r\n color: colors.$grasgroen;\r\n font-size: typography.$font-size-base;\r\n font-weight: 600;\r\n line-height: normal;\r\n position: relative;\r\n\r\n &::after {\r\n margin-inline-start: units.$u1;\r\n position: absolute;\r\n inset-inline-end: 0px;\r\n inset-block-start: 50%;\r\n transform: translateY(-50%);\r\n }\r\n\r\n &:hover,\r\n &:active {\r\n cursor: pointer;\r\n text-decoration: underline;\r\n }\r\n }\r\n }\r\n}\r\n\r\n.dso-nav {\r\n align-items: end;\r\n column-gap: units.$u4;\r\n display: flex;\r\n list-style: none;\r\n margin-block-end: 0;\r\n margin-block-start: 0;\r\n padding-inline-start: 0;\r\n\r\n > li {\r\n margin-block-end: 4px;\r\n\r\n > a {\r\n display: block;\r\n\r\n &,\r\n &:hover,\r\n &:focus,\r\n &:visited {\r\n color: colors.$bosgroen;\r\n }\r\n }\r\n\r\n &.dso-active,\r\n &.is-active {\r\n margin-block-end: 0;\r\n\r\n > a {\r\n @include nav-item-border(core-header-variables.$navigation-selected-color);\r\n\r\n font-weight: bold;\r\n }\r\n }\r\n }\r\n\r\n &.dso-nav-main {\r\n display: flex !important;\r\n\r\n > li {\r\n > a {\r\n @include link.reverse();\r\n @include nav-item-main();\r\n\r\n // stylelint-disable-next-line declaration-property-value-disallowed-list -- no wrapping wanted because of icon\r\n white-space: nowrap;\r\n }\r\n }\r\n\r\n dso-dropdown-menu {\r\n .dso-dropdown-options {\r\n inset-inline-start: units.$ru2 * -1 !important;\r\n inset-block-start: 3px !important;\r\n }\r\n\r\n button {\r\n @include nav-item-main();\r\n\r\n align-items: flex-end;\r\n color: colors.$bosgroen;\r\n\r\n &:hover,\r\n &:active {\r\n cursor: pointer;\r\n text-decoration: underline;\r\n }\r\n\r\n &::after {\r\n margin-inline-start: units.$u1;\r\n position: absolute;\r\n inset-inline-end: 0px;\r\n inset-block-start: auto;\r\n transform: none;\r\n }\r\n }\r\n }\r\n }\r\n\r\n .menu-user-home {\r\n margin-inline-start: auto;\r\n\r\n dso-icon {\r\n block-size: 1em;\r\n margin-inline-end: units.$u1;\r\n position: relative;\r\n inset-block-start: -2px;\r\n inline-size: 1.2em;\r\n }\r\n }\r\n}\r\n","import { Component, Element, Event, EventEmitter, Fragment, Prop, State, Watch, h } from \"@stencil/core\";\r\nimport clsx from \"clsx\";\r\nimport debounce from \"debounce\";\r\n\r\nimport { i18n } from \"../../utils/i18n\";\r\nimport { isModifiedEvent } from \"../../utils/is-modified-event\";\r\n\r\nimport { translations } from \"./header.i18n\";\r\nimport { HeaderEvent, HeaderMenuItem, HeaderNavigationType } from \"./header.interfaces\";\r\n\r\nconst minDesktopViewportWidth = 992;\r\n\r\n@Component({\r\n tag: \"dso-header\",\r\n styleUrl: \"header.scss\",\r\n shadow: true,\r\n})\r\nexport class Header {\r\n private clickHandler(\r\n e: MouseEvent,\r\n type: HeaderNavigationType,\r\n options?: { menuItem?: HeaderMenuItem; url?: string },\r\n ) {\r\n this.dsoHeaderClick.emit({\r\n originalEvent: e,\r\n isModifiedEvent: isModifiedEvent(e),\r\n type,\r\n menuItem: options?.menuItem,\r\n url: options?.url ?? options?.menuItem?.url,\r\n });\r\n }\r\n\r\n private dropdownElement?: HTMLElement;\r\n\r\n @Element()\r\n host!: HTMLDsoHeaderElement;\r\n\r\n /**\r\n * The main menu items.\r\n */\r\n @Prop()\r\n mainMenu?: HeaderMenuItem[] = [];\r\n\r\n /**\r\n * Either have the dropdown menu appear automatically or always.\r\n */\r\n @Prop()\r\n useDropDownMenu: \"always\" | \"auto\" = \"auto\";\r\n\r\n /**\r\n * Used to show the login/logout option. 'none' renders nothing.\r\n */\r\n @Prop()\r\n authStatus: \"none\" | \"loggedIn\" | \"loggedOut\" = \"none\";\r\n\r\n /**\r\n * When the `authStatus` is `loggedOut` a loginUrl can be provided.\r\n * The login button will then render as an anchor.\r\n */\r\n @Prop()\r\n loginUrl?: string;\r\n\r\n /**\r\n * The URL to open when the user activates \"logout\".\r\n * If no URL is specified, a button element is used instead.\r\n */\r\n @Prop()\r\n logoutUrl?: string;\r\n\r\n /**\r\n * Show a help-button or link in the header\r\n */\r\n @Prop()\r\n showHelp? = false;\r\n\r\n /**\r\n * The URL to open when the user activates \"help\".\r\n * If no URL is specified, a button element is used instead.\r\n */\r\n @Prop()\r\n helpUrl?: string;\r\n\r\n /**\r\n * The name to show when the user is logged in.\r\n */\r\n @Prop()\r\n userProfileName?: string;\r\n\r\n /**\r\n * The URL to open when the user activates the profile url.\r\n */\r\n @Prop()\r\n userProfileUrl?: string;\r\n\r\n /**\r\n * The URL to open when the user activates \"Mijn Omgevingsloket\".\r\n */\r\n @Prop()\r\n userHomeUrl?: string;\r\n\r\n /**\r\n * Set this to true when the user is at \"Mijn Omgevingsloket\".\r\n */\r\n @Prop()\r\n userHomeActive?: boolean;\r\n\r\n @State()\r\n showDropDown?: boolean;\r\n\r\n @State()\r\n overflowMenuItems = 0;\r\n\r\n @State()\r\n dropdownOptionsOffset = 0;\r\n\r\n /**\r\n * Emitted when something in the header is selected.\r\n *\r\n * `event.detail.type` indicates the functionality the user pressed. eg. `'login'` or `'menuItem'`\r\n */\r\n @Event()\r\n dsoHeaderClick!: EventEmitter<HeaderEvent>;\r\n\r\n @Watch(\"useDropDownMenu\")\r\n setShowDropDown(value: \"always\" | \"auto\") {\r\n if (value === \"auto\") {\r\n this.setDropDownMenu();\r\n\r\n return;\r\n }\r\n\r\n this.showDropDown = value === \"always\";\r\n }\r\n\r\n private wrapper: HTMLDivElement | undefined;\r\n\r\n private nav: HTMLUListElement | undefined;\r\n\r\n private shrinkMenuToFit() {\r\n if (!this.wrapper || !this.nav) {\r\n return;\r\n }\r\n\r\n if (this.wrapper.clientWidth >= this.nav.clientWidth) {\r\n return;\r\n }\r\n\r\n if (this.mainMenu && this.overflowMenuItems >= this.mainMenu.length) {\r\n return;\r\n }\r\n\r\n this.overflowMenuItems++;\r\n }\r\n\r\n private text = i18n(() => this.host, translations);\r\n\r\n componentDidRender() {\r\n if (!this.host.isConnected) {\r\n return;\r\n }\r\n\r\n if (this.showDropDown) {\r\n this.dropdownOptionsOffset = this.calculateDropdownOptionsOffset();\r\n\r\n return;\r\n }\r\n\r\n window.setTimeout(() => this.shrinkMenuToFit(), 0);\r\n }\r\n\r\n componentDidLoad() {\r\n this.setShowDropDown(this.useDropDownMenu);\r\n\r\n if (this.showDropDown) {\r\n this.dropdownOptionsOffset = this.calculateDropdownOptionsOffset();\r\n }\r\n }\r\n\r\n private setOverflowMenu() {\r\n if (this.showDropDown) {\r\n return;\r\n }\r\n\r\n if (this.overflowMenuItems !== 0) {\r\n this.overflowMenuItems = 0;\r\n return;\r\n }\r\n\r\n this.shrinkMenuToFit();\r\n }\r\n\r\n private setDropDownMenu() {\r\n if (this.useDropDownMenu !== \"auto\") {\r\n return;\r\n }\r\n\r\n this.showDropDown = window.innerWidth < minDesktopViewportWidth;\r\n }\r\n\r\n private calculateDropdownOptionsOffset() {\r\n if (!this.dropdownElement) {\r\n return 0;\r\n }\r\n\r\n return (\r\n this.host.clientHeight -\r\n (this.dropdownElement?.getBoundingClientRect().bottom - this.host.getBoundingClientRect().top)\r\n );\r\n }\r\n\r\n private onWindowResize = debounce(() => {\r\n this.dropdownElement?.removeAttribute(\"open\");\r\n this.dropdownElement?.removeAttribute(\"tabindex\");\r\n\r\n this.setDropDownMenu();\r\n this.setOverflowMenu();\r\n\r\n if (this.showDropDown) {\r\n this.dropdownOptionsOffset = this.calculateDropdownOptionsOffset();\r\n }\r\n }, 100);\r\n\r\n connectedCallback() {\r\n window.addEventListener(\"resize\", this.onWindowResize);\r\n }\r\n\r\n disconnectedCallback() {\r\n window.removeEventListener(\"resize\", this.onWindowResize);\r\n }\r\n\r\n private MenuItem = (item: HeaderMenuItem) => {\r\n return (\r\n <li class={item.active ? \"dso-active\" : undefined}>\r\n <a\r\n href={item.url}\r\n aria-current={item.active ? \"page\" : undefined}\r\n onClick={(e) => this.clickHandler(e, \"menuItem\", { menuItem: item })}\r\n >\r\n {item.label}\r\n </a>\r\n </li>\r\n );\r\n };\r\n\r\n render() {\r\n // Prevent 'flickering' when useDropDownMenu = 'always'\r\n if (this.showDropDown === undefined) {\r\n return;\r\n }\r\n\r\n return (\r\n <>\r\n <div\r\n class={clsx(\"dso-header\", {\r\n [\"use-drop-down\"]: this.showDropDown,\r\n })}\r\n ref={(element) => (this.wrapper = element)}\r\n >\r\n <div class=\"logo-container\">\r\n <slot name=\"logo\" />\r\n </div>\r\n {this.showDropDown &&\r\n this.mainMenu &&\r\n (this.mainMenu.length > 0 || this.userHomeUrl || this.authStatus !== \"none\") && (\r\n <div class=\"dropdown\">\r\n <dso-dropdown-menu\r\n dropdown-align=\"right\"\r\n strategy=\"absolute\"\r\n dropdownOptionsOffset={this.dropdownOptionsOffset}\r\n ref={(element) => (this.dropdownElement = element)}\r\n >\r\n <button type=\"button\" slot=\"toggle\">\r\n <span>{this.text(\"menu\")}</span>\r\n <dso-icon icon=\"chevron-down\"></dso-icon>\r\n </button>\r\n <div class=\"dso-dropdown-options\">\r\n <ul>\r\n {this.mainMenu.map(this.MenuItem)}\r\n {this.userHomeUrl && (\r\n <li>\r\n <a\r\n href={this.userHomeUrl}\r\n onClick={(e) => this.clickHandler(e, \"userHome\", { url: this.userHomeUrl })}\r\n >\r\n {this.text(\"userHome\")}\r\n </a>\r\n </li>\r\n )}\r\n {this.userProfileUrl && this.userProfileName && this.authStatus === \"loggedIn\" && (\r\n <li>\r\n <a\r\n href={this.userProfileUrl}\r\n onClick={(e) => this.clickHandler(e, \"profile\", { url: this.userProfileUrl })}\r\n >\r\n {this.userProfileName}\r\n <span class=\"profile-label\"> - Mijn profiel</span>\r\n </a>\r\n </li>\r\n )}\r\n {this.authStatus === \"loggedOut\" && (\r\n <li>\r\n {this.loginUrl ? (\r\n <a\r\n href={this.loginUrl}\r\n onClick={(e) => this.clickHandler(e, \"login\", { url: this.loginUrl })}\r\n >\r\n {this.text(\"login\")}\r\n </a>\r\n ) : (\r\n <button type=\"button\" onClick={(e) => this.clickHandler(e, \"login\")}>\r\n {this.text(\"login\")}\r\n </button>\r\n )}\r\n </li>\r\n )}\r\n {this.authStatus === \"loggedIn\" && (\r\n <li>\r\n {this.logoutUrl ? (\r\n <a\r\n href={this.logoutUrl}\r\n onClick={(e) => this.clickHandler(e, \"logout\", { url: this.logoutUrl })}\r\n >\r\n {this.text(\"logout\")}\r\n </a>\r\n ) : (\r\n <button type=\"button\" onClick={(e) => this.clickHandler(e, \"logout\")}>\r\n {this.text(\"logout\")}\r\n </button>\r\n )}\r\n </li>\r\n )}\r\n {this.showHelp && (\r\n <li>\r\n {this.helpUrl ? (\r\n <a\r\n href={this.helpUrl}\r\n class=\"dso-tertiary\"\r\n onClick={(e) => this.clickHandler(e, \"help\", { url: this.helpUrl })}\r\n >\r\n <span>{this.text(\"help\")}</span>\r\n <dso-icon icon=\"help\"></dso-icon>\r\n </a>\r\n ) : (\r\n <button type=\"button\" class=\"dso-tertiary\" onClick={(e) => this.clickHandler(e, \"help\")}>\r\n <span>{this.text(\"help\")}</span>\r\n <dso-icon icon=\"help\"></dso-icon>\r\n </button>\r\n )}\r\n </li>\r\n )}\r\n </ul>\r\n </div>\r\n </dso-dropdown-menu>\r\n </div>\r\n )}\r\n {!this.showDropDown && (\r\n <>\r\n <div class=\"dso-header-session\">\r\n {this.userProfileUrl && this.userProfileName && this.authStatus === \"loggedIn\" && (\r\n <div class=\"profile\">\r\n <a\r\n href={this.userProfileUrl}\r\n class=\"dso-tertiary\"\r\n onClick={(e) => this.clickHandler(e, \"profile\", { url: this.userProfileUrl })}\r\n >\r\n {this.userProfileName}\r\n </a>\r\n </div>\r\n )}\r\n {this.authStatus === \"loggedOut\" && (\r\n <div class=\"login\">\r\n {this.loginUrl ? (\r\n <a\r\n href={this.loginUrl}\r\n class=\"dso-tertiary\"\r\n onClick={(e) => this.clickHandler(e, \"login\", { url: this.loginUrl })}\r\n >\r\n {this.text(\"login\")}\r\n </a>\r\n ) : (\r\n <button class=\"dso-tertiary\" type=\"button\" onClick={(e) => this.clickHandler(e, \"login\")}>\r\n {this.text(\"login\")}\r\n </button>\r\n )}\r\n </div>\r\n )}\r\n {this.authStatus === \"loggedIn\" && (\r\n <div class=\"logout\">\r\n {this.logoutUrl ? (\r\n <a\r\n href={this.logoutUrl}\r\n class=\"dso-tertiary\"\r\n onClick={(e) => this.clickHandler(e, \"logout\", { url: this.logoutUrl })}\r\n >\r\n {this.text(\"logout\")}\r\n </a>\r\n ) : (\r\n <button class=\"dso-tertiary\" type=\"button\" onClick={(e) => this.clickHandler(e, \"logout\")}>\r\n {this.text(\"logout\")}\r\n </button>\r\n )}\r\n </div>\r\n )}\r\n {this.showHelp && (\r\n <div class=\"help\">\r\n {this.helpUrl ? (\r\n <a\r\n href={this.helpUrl}\r\n class=\"dso-tertiary\"\r\n onClick={(e) => this.clickHandler(e, \"help\", { url: this.helpUrl })}\r\n >\r\n <span>{this.text(\"help\")}</span>\r\n <dso-icon icon=\"help\"></dso-icon>\r\n </a>\r\n ) : (\r\n <button class=\"dso-tertiary\" type=\"button\" onClick={(e) => this.clickHandler(e, \"help\")}>\r\n <span>{this.text(\"help\")}</span>\r\n <dso-icon icon=\"help\"></dso-icon>\r\n </button>\r\n )}\r\n </div>\r\n )}\r\n </div>\r\n {((this.mainMenu && this.mainMenu.length > 0) || this.userHomeUrl) && (\r\n <nav class=\"dso-navbar\">\r\n <ul class=\"dso-nav dso-nav-main\" ref={(element) => (this.nav = element)}>\r\n {this.mainMenu &&\r\n this.mainMenu\r\n .filter((_, index) => this.mainMenu && index < this.mainMenu.length - this.overflowMenuItems)\r\n .map(this.MenuItem)}\r\n {this.overflowMenuItems > 0 && (\r\n <li>\r\n <dso-dropdown-menu placement=\"bottom\">\r\n <button type=\"button\" slot=\"toggle\">\r\n <span>{this.text(\"overflowMenu\")}</span>\r\n <dso-icon icon=\"chevron-down\"></dso-icon>\r\n </button>\r\n <div class=\"dso-dropdown-options\">\r\n <ul>\r\n {this.mainMenu &&\r\n this.mainMenu\r\n .filter(\r\n (_, index) =>\r\n this.mainMenu && index >= this.mainMenu.length - this.overflowMenuItems,\r\n )\r\n .map(this.MenuItem)}\r\n </ul>\r\n </div>\r\n </dso-dropdown-menu>\r\n </li>\r\n )}\r\n {this.userHomeUrl && (\r\n <li class={clsx(\"menu-user-home\", { \"dso-active\": this.userHomeActive })}>\r\n <a\r\n href={this.userHomeUrl}\r\n aria-current={this.userHomeActive ? \"page\" : undefined}\r\n onClick={(e) => this.clickHandler(e, \"userHome\", { url: this.userHomeUrl })}\r\n >\r\n <dso-icon icon=\"user-line\"></dso-icon>\r\n {this.text(\"userHome\")}\r\n </a>\r\n </li>\r\n )}\r\n </ul>\r\n </nav>\r\n )}\r\n </>\r\n )}\r\n </div>\r\n </>\r\n );\r\n }\r\n}\r\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{r as e,c as s,h as t,F as o,f as l,g as c}from"./p-C-b4jsbt.js";import{c as a}from"./p-ChV9xqsO.js";import{c as i}from"./p-DSyv-znO.js";const d='@charset "UTF-8";:host{display:block;padding-block:16px;padding-inline:16px 32px;position:relative}:host{--link-color:currentColor;--link-hover-color:currentColor;--link-visited-color:currentColor;background-color:#f2f2f2;border-color:#f2f2f2;color:#191919}:host a:not(.dso-primary,.dso-secondary,.dso-tertiary):is(.download,.download:hover,.download:focus-visible){background-image:var(--_dso-di-background-image, url("./di.svg#download-zwart"))}:host a:not(.dso-primary,.dso-secondary,.dso-tertiary):is(.extern,.extern:hover,.extern:focus-visible){background-image:var(--_dso-di-background-image, url("./di.svg#external-link-zwart"))}:host a:not(.dso-primary,.dso-secondary,.dso-tertiary):is([href^="tel:"],[href^="tel:"]:hover,[href^="tel:"]:focus-visible){background-image:var(--_dso-di-background-image, url("./di.svg#call-zwart"))}:host a:not(.dso-primary,.dso-secondary,.dso-tertiary):is([href^="mailto:"],[href^="mailto:"]:hover,[href^="mailto:"]:focus-visible){background-image:var(--_dso-di-background-image, url("./di.svg#email-zwart"))}:host>button{background-color:transparent;border-style:none;padding:0;position:absolute;inset-inline-end:8px;inset-block-start:8px}:host(:not([active],[fixed])),:host([active=false]:not([fixed])),:host([active=false][fixed=false]){display:none}button{-webkit-appearance:button;color:inherit;cursor:pointer;font:inherit;font-family:inherit;font-size:inherit;line-height:inherit;margin:0;overflow:visible;text-transform:none}button[disabled]{cursor:default}button::-moz-focus-inner{border:0;padding:0}*,*::after,*::before{box-sizing:border-box}.sr-only{position:absolute;inline-size:1px;block-size:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}';const b=class{constructor(t){e(this,t);this.dsoClose=s(this,"dsoClose",7)}render(){return t(o,{key:"3b3a3390da24484d21869661692c293f766bb06b"},t("slot",{key:"83976a207e4c1505329876192c83e6eccc1f6a52"}),!this.fixed&&t("button",{key:"de983b145b9a2cfd1adccc13116f0f17e8130314",type:"button",onClick:e=>this.dsoClose.emit(e)},t("dso-icon",{key:"c34a3568d69b61537de385c4e9b6277be5ea7697",icon:"times"}),t("span",{key:"bc2069fa68085e27fd9bab79d41ec801f5da1c5f",class:"sr-only"},"Sluiten")))}};b.style=d;const n='@charset "UTF-8";.sc-dso-selectable-h{padding-inline-start:32px;position:relative;display:var(--dso-selectable-display, block)}.sc-dso-selectable-h label.sc-dso-selectable{font-weight:400;line-height:24px;margin:0}.sc-dso-selectable-h input[type=checkbox][disabled].sc-dso-selectable+label.sc-dso-selectable::before,.sc-dso-selectable-h input[type=checkbox][disabled].sc-dso-selectable:active+label.sc-dso-selectable::before,.sc-dso-selectable-h input[type=checkbox][disabled].sc-dso-selectable:focus+label.sc-dso-selectable::before,.sc-dso-selectable-h input[type=radio][disabled].sc-dso-selectable+label.sc-dso-selectable::before,.sc-dso-selectable-h input[type=radio][disabled].sc-dso-selectable:active+label.sc-dso-selectable::before,.sc-dso-selectable-h input[type=radio][disabled].sc-dso-selectable:focus+label.sc-dso-selectable::before{background-color:#fff;box-shadow:0 0 0 2px #e5e5e5}.sc-dso-selectable-h input[type=checkbox].sc-dso-selectable,.sc-dso-selectable-h input[type=radio].sc-dso-selectable{block-size:24px;inset-inline-start:0;margin:0;opacity:0;position:absolute;inset-block-start:0;inline-size:24px;z-index:100;zoom:1}@media (prefers-contrast: more){.sc-dso-selectable-h input[type=checkbox].sc-dso-selectable,.sc-dso-selectable-h input[type=radio].sc-dso-selectable{opacity:1}}.sc-dso-selectable-h input[type=checkbox].sc-dso-selectable:not([disabled]),.sc-dso-selectable-h input[type=radio].sc-dso-selectable:not([disabled]){cursor:pointer}.sc-dso-selectable-h input[type=checkbox].sc-dso-selectable+label.sc-dso-selectable,.sc-dso-selectable-h input[type=radio].sc-dso-selectable+label.sc-dso-selectable{display:inline;font-style:normal;padding-inline-start:0}.sc-dso-selectable-h input[type=checkbox].sc-dso-selectable+label.sc-dso-selectable::before,.sc-dso-selectable-h input[type=radio].sc-dso-selectable+label.sc-dso-selectable::before{background:#fff;border:0;box-shadow:0 0 0 2px var(--dso-selectable-color, #275937);content:"";block-size:20px;inset-inline-start:2px;position:absolute;inset-block-start:2px;inline-size:20px}.sc-dso-selectable-h input[type=checkbox].sc-dso-selectable:focus,.sc-dso-selectable-h input[type=radio].sc-dso-selectable:focus{outline:0}.sc-dso-selectable-h input[type=checkbox].sc-dso-selectable:focus+label.sc-dso-selectable::before,.sc-dso-selectable-h input[type=radio].sc-dso-selectable:focus+label.sc-dso-selectable::before{box-shadow:0 0 0 3px var(--dso-selectable-color, #275937);block-size:18px;inset-inline-start:3px;inset-block-start:3px;inline-size:18px}.sc-dso-selectable-h input[type=checkbox].sc-dso-selectable:active+label.sc-dso-selectable::before,.sc-dso-selectable-h input[type=checkbox].active.sc-dso-selectable+label.sc-dso-selectable::before,.sc-dso-selectable-h input[type=radio].sc-dso-selectable:active+label.sc-dso-selectable::before,.sc-dso-selectable-h input[type=radio].active.sc-dso-selectable+label.sc-dso-selectable::before{background-color:#ebf3e6;box-shadow:0 0 0 1px #275937;block-size:22px;inset-inline-start:1px;inset-block-start:1px;inline-size:22px}.sc-dso-selectable-h input[type=checkbox].sc-dso-selectable+label.sc-dso-selectable::before{border-radius:4px}.sc-dso-selectable-h input[type=checkbox].sc-dso-selectable+label.sc-dso-selectable::after{background:transparent;content:"";inset-inline-start:6px;opacity:0;position:absolute;inset-block-start:6px;zoom:1}.sc-dso-selectable-h input[type=checkbox].sc-dso-selectable:checked+label.sc-dso-selectable::after,.sc-dso-selectable-h input[type=checkbox].sc-dso-selectable:indeterminate+label.sc-dso-selectable::after{opacity:1}.sc-dso-selectable-h input[type=checkbox].sc-dso-selectable:checked+label.sc-dso-selectable::after{border:solid;border-color:var(--dso-selectable-color, #39870c);border-block-start-color:transparent;border-width:0 0 3px 3px;block-size:8px;transform:rotate(-45deg);inline-size:13px}.sc-dso-selectable-h input[type=checkbox].sc-dso-selectable:indeterminate+label.sc-dso-selectable::after{background-color:var(--dso-selectable-color, #39870c);block-size:12px;inline-size:12px}.sc-dso-selectable-h input[type=radio].sc-dso-selectable+label.sc-dso-selectable::before{border-radius:50%}.sc-dso-selectable-h input[type=radio].sc-dso-selectable+label.sc-dso-selectable::after{background-color:transparent;border-radius:50%;content:"";block-size:12px;inset-inline-start:6px;opacity:0;position:absolute;inset-block-start:6px;inline-size:12px;zoom:1}.sc-dso-selectable-h input[type=radio].sc-dso-selectable:checked+label.sc-dso-selectable::after{background-color:var(--dso-selectable-color, #39870c);opacity:1}[invalid].sc-dso-selectable-h:not([invalid=false]){--dso-selectable-color:#ce3f51}.sc-dso-selectable-h>dso-info.sc-dso-selectable{float:none;margin-block:8px 0;margin-inline:0 16px;inline-size:100%}.sc-dso-selectable-h .dso-selectable-options.sc-dso-selectable{list-style:none;margin-block-start:8px;padding-inline-start:0}.sc-dso-selectable-h .dso-selectable-options.sc-dso-selectable li.sc-dso-selectable+li.sc-dso-selectable{margin-block-start:8px}.sc-dso-selectable-h:not(:last-child){margin-block-end:8px}*.sc-dso-selectable,*.sc-dso-selectable::after,*.sc-dso-selectable::before{box-sizing:border-box}.dso-selectable-container.sc-dso-selectable{display:inline-block}.dso-selectable-container.sc-dso-selectable .dso-selectable-input-wrapper.sc-dso-selectable{display:inline-block;min-block-size:24px}.dso-selectable-container.sc-dso-selectable .dso-selectable-input-wrapper.sc-dso-selectable:focus-within.dso-keyboard-focus{position:relative;inset-inline-start:-32px;padding-inline-start:32px;margin-inline-end:-32px;border-radius:2px;outline-offset:3px;outline:3px solid #008ccc}.dso-selectable-container.sc-dso-selectable .dso-selectable-input-wrapper.sc-dso-selectable input[type=radio].sc-dso-selectable:focus+label.sc-dso-selectable::before,.dso-selectable-container.sc-dso-selectable .dso-selectable-input-wrapper.sc-dso-selectable input[type=checkbox].sc-dso-selectable:focus+label.sc-dso-selectable::before{box-shadow:0 0 0 2px var(--dso-selectable-color, #275937);block-size:20px;inset-inline-start:2px;inset-block-start:2px;inline-size:20px}';const r=class{constructor(t){e(this,t);this.dsoChange=s(this,"dsoChange",7);this.infoActive=false;this.keyboardFocus=false;this.fallbackIdentifier=i("DsoSelectable");this.handleOnChange=e=>{const{target:s}=e;this.dsoChange.emit({originalEvent:e,checked:s instanceof HTMLInputElement&&s.checked});l(this.host)}}async toggleInfo(e){this.infoActive=e!==null&&e!==void 0?e:!this.infoActive}componentDidLoad(){var e;(e=this.mutationObserver)===null||e===void 0?void 0:e.disconnect();this.mutationObserver=new MutationObserver((()=>l(this.host)));this.mutationObserver.observe(this.host,{childList:true});this.setIndeterminate()}disconnectedCallback(){var e;(e=this.mutationObserver)===null||e===void 0?void 0:e.disconnect()}setIndeterminate(){if(!(this.input instanceof HTMLInputElement)||this.type!=="checkbox"){return}this.input.indeterminate=!!this.indeterminate}render(){var e;const s=!!this.host.querySelector('[slot="info"]');return t(o,{key:"73752b8d5723782d54247eb40b5a8e9df30b67ad"},t("div",{key:"bed14c893c0234824644ab4e9c29eecc8cb64a1c",class:"dso-selectable-container"},t("div",{key:"8aee25dbb1debc61322e11b3a80c75d3d04395a4",class:a("dso-selectable-input-wrapper",{"dso-keyboard-focus":this.keyboardFocus})},t("input",{key:"03c978d558bf042c2da38d38bec5069c4f081bf6",type:this.type,id:this.getIdentifier(),value:this.value,name:this.name,"aria-invalid":(e=this.invalid)===null||e===void 0?void 0:e.toString(),"aria-describedby":s&&this.infoFixed?this.describedById:undefined,"aria-labelledBy":this.labelledById,disabled:this.disabled,required:this.required,checked:this.checked,onChange:this.handleOnChange,onBlur:()=>this.keyboardFocus=false,onKeyUp:()=>this.keyboardFocus=true,ref:e=>this.input=e}),!this.labelledById?t("label",{htmlFor:this.getIdentifier()},t("slot",null)):t("label",null,t("slot",null))),s&&!this.infoFixed&&t("dso-info-button",{key:"75a5249bb08cc268bb55fbc4f78885b927f976e6",active:this.infoActive,onDsoToggle:e=>this.infoActive=e.detail.active})),s&&t("dso-info",{key:"35c68222ed20680d77a42345d49db42f93bccb81",id:s&&this.infoFixed?this.describedById:undefined,fixed:this.infoFixed,active:this.infoActive,onDsoClose:()=>this.infoActive=false},t("div",{key:"94fa6da9241bc99b360cdca622cd2fd25f8ddab9"},t("slot",{key:"87c99f30b6fb96c161864ac9b4f4ed0f9a079c80",name:"info"}))),t("slot",{key:"2dfc5263216cb6e0b03242a6c80aa9018e823214",name:"options"}))}componentDidRender(){if(this.input&&typeof this.checked==="boolean"&&this.input.checked!==this.checked){this.input.checked=this.checked}}getIdentifier(){var e;return(e=this.identifier)!==null&&e!==void 0?e:this.fallbackIdentifier}get host(){return c(this)}static get watchers(){return{indeterminate:["setIndeterminate"]}}};r.style=n;export{b as dso_info,r as dso_selectable};
|
|
2
|
-
//# sourceMappingURL=p-4ac06008.entry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["infoCss","Info","render","h","Fragment","key","this","fixed","type","onClick","e","dsoClose","emit","icon","class","selectableCss","Selectable","constructor","hostRef","infoActive","keyboardFocus","fallbackIdentifier","createIdentifier","handleOnChange","target","dsoChange","originalEvent","checked","HTMLInputElement","forceUpdate","host","toggleInfo","active","componentDidLoad","_a","mutationObserver","disconnect","MutationObserver","observe","childList","setIndeterminate","disconnectedCallback","input","indeterminate","hasInfo","querySelector","clsx","id","getIdentifier","value","name","invalid","toString","infoFixed","describedById","undefined","labelledById","disabled","required","onChange","onBlur","onKeyUp","ref","el","htmlFor","onDsoToggle","detail","onDsoClose","componentDidRender","identifier"],"sources":["src/components/info/info.scss?tag=dso-info&encapsulation=shadow","src/components/info/info.tsx","src/components/selectable/selectable.scss?tag=dso-selectable&encapsulation=scoped","src/components/selectable/selectable.tsx"],"sourcesContent":["@use \"~dso-toolkit/src/utilities\";\r\n@use \"~dso-toolkit/src/components/button\";\r\n@use \"~dso-toolkit/src/components/info\";\r\n\r\n:host {\r\n display: block;\r\n\r\n @include info.root();\r\n}\r\n\r\n:host(:not([active], [fixed])),\r\n:host([active=\"false\"]:not([fixed])),\r\n:host([active=\"false\"][fixed=\"false\"]) {\r\n display: none;\r\n}\r\n\r\nbutton {\r\n @include button.element();\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","import { Component, Event, EventEmitter, Fragment, Prop, h } from \"@stencil/core\";\r\n\r\n@Component({\r\n tag: \"dso-info\",\r\n styleUrl: \"./info.scss\",\r\n shadow: true,\r\n})\r\nexport class Info {\r\n /**\r\n * Set to true if the Info should not be toggled and always visible.\r\n */\r\n @Prop({ reflect: true })\r\n fixed?: boolean;\r\n\r\n /**\r\n * Whether the Info is active.\r\n */\r\n @Prop({ reflect: true })\r\n active?: boolean;\r\n\r\n /**\r\n * Emitted when the user activates the close button.\r\n */\r\n @Event()\r\n dsoClose!: EventEmitter<MouseEvent>;\r\n\r\n render() {\r\n return (\r\n <Fragment>\r\n <slot></slot>\r\n {!this.fixed && (\r\n <button type=\"button\" onClick={(e) => this.dsoClose.emit(e)}>\r\n <dso-icon icon=\"times\"></dso-icon>\r\n <span class=\"sr-only\">Sluiten</span>\r\n </button>\r\n )}\r\n </Fragment>\r\n );\r\n }\r\n}\r\n","@use \"~dso-toolkit/src/utilities\";\r\n@use \"~dso-toolkit/src/components/selectable\";\r\n@use \"~dso-toolkit/src/variables/units\";\r\n\r\n:host {\r\n padding-inline-start: selectable.$symbol-indent;\r\n\r\n @include selectable.root(false);\r\n\r\n &[invalid]:not([invalid=\"false\"]) {\r\n @include selectable.invalid();\r\n }\r\n\r\n @include selectable.children(\"dso-info\");\r\n}\r\n\r\n:host(:not(:last-child)) {\r\n @include selectable.notLastChild();\r\n}\r\n\r\n@include utilities.box-sizing();\r\n\r\n.dso-selectable-container {\r\n display: inline-block;\r\n\r\n .dso-selectable-input-wrapper {\r\n display: inline-block;\r\n min-block-size: units.$u3;\r\n\r\n &:focus-within.dso-keyboard-focus {\r\n position: relative;\r\n inset-inline-start: -(selectable.$symbol-indent);\r\n\r\n padding-inline-start: selectable.$symbol-indent;\r\n\r\n margin-inline-end: -(selectable.$symbol-indent);\r\n\r\n @include utilities.focus-outline();\r\n }\r\n\r\n input[type=\"radio\"],\r\n input[type=\"checkbox\"] {\r\n &:focus + label::before {\r\n @include selectable.selectableBoxShadow(\r\n selectable.$border-width,\r\n var(--dso-selectable-color, selectable.$valid-color)\r\n );\r\n }\r\n }\r\n }\r\n}\r\n","import {\r\n Component,\r\n ComponentInterface,\r\n Element,\r\n Event,\r\n EventEmitter,\r\n Fragment,\r\n Method,\r\n Prop,\r\n State,\r\n Watch,\r\n forceUpdate,\r\n h,\r\n} from \"@stencil/core\";\r\nimport clsx from \"clsx\";\r\n\r\nimport { createIdentifier } from \"../../utils/create-identifier\";\r\n\r\nimport { SelectableChangeEvent } from \"./selectable.interfaces\";\r\n\r\n/**\r\n * @slot - The label for this control\r\n * @slot info - Rich Content to be slotted in Info.\r\n * @slot options - for further nested selectable options: `<ul class=\"dso-selectable-options\" slot=\"options\">` and wrap each Selectable in a `<li>`.\r\n */\r\n@Component({\r\n tag: \"dso-selectable\",\r\n styleUrl: \"selectable.scss\",\r\n scoped: true,\r\n})\r\nexport class Selectable implements ComponentInterface {\r\n /**\r\n * Type of Selectable.\r\n *\r\n * `checkbox`: Multiple options\r\n * `radio`: Single option.\r\n */\r\n @Prop()\r\n type!: \"checkbox\" | \"radio\";\r\n\r\n /**\r\n * To set `<input id>` attribute for external references.\r\n */\r\n @Prop()\r\n identifier?: string;\r\n\r\n /**\r\n * Name of the Selectable. Can be used to group Selectables.\r\n */\r\n @Prop()\r\n name?: string;\r\n\r\n /**\r\n * The value of the Selectable.\r\n */\r\n @Prop()\r\n value!: string;\r\n\r\n /**\r\n * Set to true of the current value is not valid.\r\n */\r\n @Prop()\r\n invalid?: boolean;\r\n\r\n /**\r\n * To link this control to an element that describes it.\r\n */\r\n @Prop()\r\n describedById?: string;\r\n\r\n /**\r\n * To link this control to an element that labels it.\r\n */\r\n @Prop()\r\n labelledById?: string;\r\n\r\n /**\r\n * To disable the Selectable.\r\n */\r\n @Prop()\r\n disabled?: boolean;\r\n\r\n /**\r\n * To mark the Selectable as required.\r\n */\r\n @Prop()\r\n required?: boolean;\r\n\r\n /**\r\n * Mark the Selectable as checked\r\n */\r\n @Prop({ reflect: true })\r\n checked?: boolean;\r\n\r\n /**\r\n * An indeterminate state is neither true or false. It means the answer is somewhere in between.\r\n *\r\n * Can be used to indicate child Selectables that are a mix of checked and unchecked.\r\n */\r\n @Prop()\r\n indeterminate?: boolean;\r\n\r\n /**\r\n * Set to true if the Info should not be toggled and always visible.\r\n */\r\n @Prop()\r\n infoFixed?: boolean;\r\n\r\n /**\r\n * Emitted when the user checks or unchecks the Selectable.\r\n */\r\n @Event()\r\n dsoChange!: EventEmitter<SelectableChangeEvent>;\r\n\r\n @Element()\r\n host!: HTMLDsoSelectableElement;\r\n\r\n @State()\r\n infoActive = false;\r\n\r\n @State()\r\n keyboardFocus = false;\r\n\r\n /**\r\n * Method to toggle the Info. Is set to `active` when passed.\r\n *\r\n * If `active` is not passed, Info is toggled to opposite value.\r\n * @param active\r\n */\r\n @Method()\r\n async toggleInfo(active?: boolean) {\r\n this.infoActive = active ?? !this.infoActive;\r\n }\r\n\r\n private mutationObserver?: MutationObserver;\r\n\r\n private fallbackIdentifier = createIdentifier(\"DsoSelectable\");\r\n\r\n private input: HTMLInputElement | undefined;\r\n\r\n private handleOnChange = (e: Event) => {\r\n const { target } = e;\r\n\r\n this.dsoChange.emit({\r\n originalEvent: e,\r\n checked: target instanceof HTMLInputElement && target.checked,\r\n });\r\n\r\n forceUpdate(this.host);\r\n };\r\n\r\n componentDidLoad() {\r\n this.mutationObserver?.disconnect();\r\n\r\n this.mutationObserver = new MutationObserver(() => forceUpdate(this.host));\r\n this.mutationObserver.observe(this.host, {\r\n childList: true,\r\n });\r\n\r\n this.setIndeterminate();\r\n }\r\n\r\n disconnectedCallback() {\r\n this.mutationObserver?.disconnect();\r\n }\r\n\r\n @Watch(\"indeterminate\")\r\n setIndeterminate() {\r\n if (!(this.input instanceof HTMLInputElement) || this.type !== \"checkbox\") {\r\n return;\r\n }\r\n\r\n this.input.indeterminate = !!this.indeterminate;\r\n }\r\n\r\n render() {\r\n const hasInfo = !!this.host.querySelector('[slot=\"info\"]');\r\n\r\n return (\r\n <Fragment>\r\n <div class=\"dso-selectable-container\">\r\n <div class={clsx(\"dso-selectable-input-wrapper\", { \"dso-keyboard-focus\": this.keyboardFocus })}>\r\n <input\r\n type={this.type}\r\n id={this.getIdentifier()}\r\n value={this.value}\r\n name={this.name}\r\n aria-invalid={this.invalid?.toString()}\r\n aria-describedby={hasInfo && this.infoFixed ? this.describedById : undefined}\r\n aria-labelledBy={this.labelledById}\r\n disabled={this.disabled}\r\n required={this.required}\r\n checked={this.checked}\r\n onChange={this.handleOnChange}\r\n onBlur={() => (this.keyboardFocus = false)}\r\n onKeyUp={() => (this.keyboardFocus = true)}\r\n ref={(el) => (this.input = el)}\r\n />\r\n {!this.labelledById ? (\r\n <label htmlFor={this.getIdentifier()}>\r\n <slot />\r\n </label>\r\n ) : (\r\n <label>\r\n <slot />\r\n </label>\r\n )}\r\n </div>\r\n {hasInfo && !this.infoFixed && (\r\n <dso-info-button\r\n active={this.infoActive}\r\n onDsoToggle={(e) => (this.infoActive = e.detail.active)}\r\n ></dso-info-button>\r\n )}\r\n </div>\r\n {hasInfo && (\r\n <dso-info\r\n id={hasInfo && this.infoFixed ? this.describedById : undefined}\r\n fixed={this.infoFixed}\r\n active={this.infoActive}\r\n onDsoClose={() => (this.infoActive = false)}\r\n >\r\n <div>\r\n <slot name=\"info\"></slot>\r\n </div>\r\n </dso-info>\r\n )}\r\n <slot name=\"options\" />\r\n </Fragment>\r\n );\r\n }\r\n\r\n componentDidRender(): void {\r\n if (this.input && typeof this.checked === \"boolean\" && this.input.checked !== this.checked) {\r\n this.input.checked = this.checked;\r\n }\r\n }\r\n\r\n private getIdentifier(): string {\r\n return this.identifier ?? this.fallbackIdentifier;\r\n }\r\n}\r\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["translations","en","close","success","info","warning","error","nl","alertCss","Alert","constructor","hostRef","this","closable","text","i18n","host","render","status","Error","h","key","class","clsx","compact","role","roleAlert","undefined","icon","type","onClick","e","dsoClose","emit","originalEvent","badgeCss","Badge","imageOverlayCss","wijzigactieLabels","verwijder","voegtoe","Dimmer","active","src","alt","ref","click","children","ImageOverlay","zoomable","titelSlot","bijschriftSlot","loadListener","event","target","HTMLImageElement","setZoomable","connectedCallback","querySelector","componentDidLoad","resizeObserver","ResizeObserver","debounce","imgElement","mutationObserver","MutationObserver","forceUpdate","_a","_b","disconnect","initZoomableImage","observe","attributes","subtree","attributeFilter","childList","disconnectedCallback","trap","deactivate","_c","complete","imageElement","width","naturalWidth","height","naturalHeight","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","OzonContentAbbrNode","mapNodeToJsx","title","getAttribute","childNodes","WrapWijzigactie","parseWijzigactieFromNode","wijzigactieToClassName","isNestedAl","path","some","n","OzonContentAlNode","inline","content","className","OzonContentBronNode","OzonContentDocumentNode","Fragment","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","Infinity","createCompounder","callback","words","deburr","replace","isObjectLike","kebabCase","word","toLowerCase","pattern","guard","lodash_kebabcase","OzonContentExtRefNode","urlResolver","tagName","href","rel","OzonContentFallbackNode","Bijschrift","bijschrift","bron","inhoud","OzonContentFiguurNode","getStyle","illustratie","widthPixels","Number","breedte","heightPixels","hoogte","style","uitlijning","widthPercentage","Math","min","dpi","assign","mapIllustratieNode","naam","find","u","Array","from","titel","textContent","illustratieNode","bijschriftNode","locatie","slot","_e","_d","OzonContentInhoudNode","richContent","OzonContentInlineTekstAfbeeldingNode","OzonContentInlineNodes","Tag","OzonContentIntIoRefNode","emitAnchorClick","intRefOnClick","preventDefault","currentTarget","HTMLAnchorElement","documentComponent","OzonContentIntRefNode","OzonContentKopNode","OzonContentLijstNode","parseTypeFromLijstNode","aanhef","sluiting","listItems","filter","map","item","itemNodes","liNummer","liWijzigactie","OzonContentNieuweTekstNode","OzonContentNootNode","handles","identify","state","openNoteId","setState","noteId","console","noteControlsId","nootNummer","onBlur","id","stateless","descriptive","querySelectorAll","mapColspecs","count","nodeList","elements","totalWidth","getTotalWidth","columns","colNumber","colsep","number","parseInt","rowsep","getWidth","reduce","colWidth","isNaN","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","OzonContentTextNode","mark","emitMarkItemHighlight","highlight","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","OzonContent","handleMarkItemHighlight","elementRef","dsoOzonContentMarkItemHighlight","contentWatcher","dsoAnchorClick","transformed","panelCss","Panel","emphasized","dsoCloseClick","closeButtonLabel","tableCss","Table","labelledbyId","v4","noModal","modalActive","startResponsiveBehavior","componentWillLoad","entries","setResponsiveTable","setFocusTrap","trim","isResponsive","placeholderHeight","focusTrapElement","display","openModal","closeModal","clientHeight","tabbableOptions","getShadowRoot","dsoTable","tableElement","HTMLTableElement","floor","getBoundingClientRect","contentRect"],"sources":["src/components/alert/alert.i18n.ts","src/components/alert/alert.scss?tag=dso-alert&encapsulation=shadow","src/components/alert/alert.tsx","src/components/badge/badge.scss?tag=dso-badge&encapsulation=shadow","src/components/badge/badge.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/nodes/abbr.node.tsx","src/components/ozon-content/functional-components/wrap-wijzigactie.functional-component.tsx","src/components/ozon-content/functions/parse-wijzigactie-from-node.function.ts","src/components/ozon-content/functions/wijzigactie-to-class-name.function.ts","src/components/ozon-content/nodes/al.node.tsx","src/components/ozon-content/nodes/bron.node.tsx","src/components/ozon-content/nodes/document.node.tsx","../../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/kop.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/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.i18n.ts","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":["import { Resource } from \"../../utils/i18n\";\r\n\r\nexport const translations: Resource = {\r\n en: {\r\n \"dso-alert\": {\r\n close: \"Close\",\r\n success: \"Success\",\r\n info: \"Notice\",\r\n warning: \"Warning\",\r\n error: \"Error\",\r\n },\r\n },\r\n nl: {\r\n \"dso-alert\": {\r\n close: \"Sluiten\",\r\n success: \"Gelukt\",\r\n info: \"Opmerking\",\r\n warning: \"Waarschuwing\",\r\n error: \"Fout\",\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/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@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-compact {\r\n min-block-size: alert.$inline-padding;\r\n }\r\n}\r\n","import { Component, Element, Event, EventEmitter, Prop, h } from \"@stencil/core\";\r\nimport clsx from \"clsx\";\r\n\r\nimport { i18n } from \"../../utils/i18n\";\r\n\r\nimport { translations } from \"./alert.i18n\";\r\nimport { AlertCloseEvent } from \"./alert.interfaces\";\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 @Element()\r\n host!: HTMLDsoAlertElement;\r\n\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 /**\r\n * When `false` the close button in the alert will not be rendered.\r\n */\r\n @Prop()\r\n closable = false;\r\n\r\n /**\r\n * Emitted when the user closes the Alert.\r\n */\r\n @Event()\r\n dsoClose!: EventEmitter<AlertCloseEvent>;\r\n\r\n private text = i18n(() => this.host, translations);\r\n\r\n render() {\r\n const status = this.text(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 class=\"icon-status\" icon={\"status-\" + this.status} />}\r\n <span class=\"sr-only\">{status}:</span>\r\n <slot></slot>\r\n\r\n {this.closable && (\r\n <button type=\"button\" class=\"dso-close\" onClick={(e) => this.dsoClose.emit({ originalEvent: e })}>\r\n <dso-icon icon=\"times\"></dso-icon>\r\n <span class=\"sr-only\">{this.text(\"close\")}</span>\r\n </button>\r\n )}\r\n </div>\r\n );\r\n }\r\n}\r\n","@use \"~dso-toolkit/src/utilities\";\r\n@use \"~dso-toolkit/src/components/badge\";\r\n\r\n:host {\r\n display: inline-block;\r\n}\r\n\r\n@include utilities.box-sizing();\r\n\r\n.sr-only {\r\n @include utilities.sr-only();\r\n}\r\n\r\n.dso-badge {\r\n @include badge.root();\r\n}\r\n","import { Component, Prop, h } from \"@stencil/core\";\r\nimport clsx from \"clsx\";\r\n\r\nimport { BadgeStatus } from \"./badge.interfaces\";\r\n\r\n@Component({\r\n tag: \"dso-badge\",\r\n styleUrl: \"badge.scss\",\r\n shadow: true,\r\n})\r\nexport class Badge {\r\n /**\r\n * The status of the Badge.\r\n */\r\n @Prop()\r\n status?: BadgeStatus;\r\n\r\n render() {\r\n return (\r\n <span class={clsx(\"dso-badge\", { [`badge-${this.status}`]: this.status })}>\r\n <slot></slot>\r\n </span>\r\n );\r\n }\r\n}\r\n","@use \"sass:color\";\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 // stylelint-disable-next-line no-duplicate-selectors -- needed to fix sass deprecation warnings: #2724\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\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: color.scale(colors.$wit, $alpha: -20%);\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 // stylelint-disable-next-line no-duplicate-selectors -- needed to fix sass deprecation warnings: #2724\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\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 FunctionalComponent,\r\n Host,\r\n Listen,\r\n Prop,\r\n State,\r\n forceUpdate,\r\n h,\r\n} from \"@stencil/core\";\r\nimport debounce from \"debounce\";\r\nimport { FocusTrap, createFocusTrap } 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 <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 { 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 OzonContentAbbrNode implements OzonContentNode {\r\n name = \"abbr\";\r\n\r\n render(node: Element, { mapNodeToJsx }: OzonContentNodeContext) {\r\n const title = node.getAttribute(\"title\");\r\n\r\n return (\r\n <span class=\"od-abbr\">\r\n <abbr>{mapNodeToJsx(node.childNodes)}</abbr>\r\n {title && ` (${title})`}\r\n </span>\r\n );\r\n }\r\n}\r\n","import { FunctionalComponent, h } from \"@stencil/core\";\r\n\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 { 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 { 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 { h } from \"@stencil/core\";\r\n\r\nimport { WrapWijzigactie } from \"../functional-components/wrap-wijzigactie.functional-component\";\r\nimport { parseWijzigactieFromNode } from \"../functions/parse-wijzigactie-from-node.function\";\r\nimport { wijzigactieToClassName } from \"../functions/wijzigactie-to-class-name.function\";\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\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, urlResolver }: OzonContentNodeContext) {\r\n const className = kebabCase(node.tagName);\r\n const value = node.getAttribute(\"ref\");\r\n const name: \"ExtRef\" | \"ExtIoRef\" = node.tagName === \"ExtRef\" ? \"ExtRef\" : \"ExtIoRef\";\r\n const href = urlResolver ? urlResolver(name, \"ref\", value, node) : value;\r\n\r\n return (\r\n <a\r\n target=\"_blank\"\r\n rel=\"noopener noreferrer\"\r\n href={href ?? undefined}\r\n class={className}\r\n title=\"Opent andere website in nieuw tabblad\"\r\n >\r\n <span>{mapNodeToJsx(node.childNodes)}</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, FunctionalComponent, JSX, 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\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\ninterface Illustratie {\r\n naam: string;\r\n breedte: number;\r\n hoogte: number;\r\n dpi: number;\r\n uitlijning: \"start\" | \"center\" | \"end\";\r\n alt: string | undefined;\r\n}\r\n\r\nconst Bijschrift: FunctionalComponent<BijschriftProps> = ({ bijschrift, bron, mapNodeToJsx }) => {\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 private getStyle(illustratie: Illustratie) {\r\n const widthPixels = Number(illustratie.breedte);\r\n const heightPixels = Number(illustratie.hoogte);\r\n\r\n const style = {\r\n \"--_dso-ozon-content-illustratie-uitlijning\": illustratie.uitlijning,\r\n };\r\n\r\n if (widthPixels && heightPixels) {\r\n // This is the STOP formula to calculate the width in percentage\r\n // see: https://koop.gitlab.io/stop/standaard/1.4.0-ic/regeltekst_afbeelding.html\r\n // We maximise it to 100% in the case of missing dpi or a calculated percentage greater than 100%\r\n const widthPercentage = Math.min(illustratie.dpi ? (16.4 * widthPixels) / Number(illustratie.dpi) : 100, 100);\r\n\r\n Object.assign(style, {\r\n \"--_dso-ozon-content-illustratie-aspect-ratio\": (widthPixels / heightPixels).toString(),\r\n \"--_dso-ozon-content-illustratie-width\": `${widthPercentage}%`,\r\n });\r\n }\r\n\r\n return style;\r\n }\r\n\r\n private mapIllustratieNode(node: Element): Illustratie {\r\n return {\r\n naam: node.getAttribute(\"naam\") ?? \"\",\r\n breedte: Number(node.getAttribute(\"breedte\")),\r\n hoogte: Number(node.getAttribute(\"hoogte\")),\r\n dpi: Number(node.getAttribute(\"dpi\")),\r\n uitlijning:\r\n [\"start\", \"center\", \"end\"].find((u): u is Illustratie[\"uitlijning\"] => node.getAttribute(\"uitlijning\") === u) ??\r\n \"start\",\r\n alt: node.getAttribute(\"alt\") ?? undefined,\r\n };\r\n }\r\n\r\n render(node: Element, { mapNodeToJsx, urlResolver }: 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 = this.mapIllustratieNode(illustratieNode);\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 src = urlResolver ? urlResolver(\"Illustratie\", \"naam\", illustratie.naam, node) : illustratie.naam;\r\n\r\n return (\r\n <div\r\n class={`dso-ozon-figuur ${bijschrift ? `bijschrift-${bijschrift.locatie}` : \"onder\"}`}\r\n style={this.getStyle(illustratie)}\r\n >\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 src={src ?? undefined} alt={illustratie.alt ?? titel ?? illustratie.naam ?? undefined} />\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 { OzonContentNodeContext } from \"../ozon-content-node-context.interface\";\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, { urlResolver }: OzonContentNodeContext) {\r\n const value = node.getAttribute(\"naam\");\r\n const name: \"InlineTekstAfbeelding\" | \"Illustratie\" =\r\n node.tagName === \"InlineTekstAfbeelding\" ? \"InlineTekstAfbeelding\" : \"Illustratie\";\r\n const src = urlResolver ? urlResolver(name, \"naam\", value, node) : value;\r\n\r\n return (\r\n <img\r\n src={src ?? 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 { 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 OzonContentKopNode implements OzonContentNode {\r\n name = [\"Opschrift\", \"Label\", \"Nummer\", \"Kop\"];\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 (\r\n <>\r\n {(node.tagName === \"Nummer\" || node.tagName === \"Opschrift\") && \" \"}\r\n {content}\r\n </>\r\n );\r\n }\r\n}\r\n","import { h } from \"@stencil/core\";\r\nimport clsx from \"clsx\";\r\n\r\nimport { WrapWijzigactie } from \"../functional-components/wrap-wijzigactie.functional-component\";\r\nimport { parseWijzigactieFromNode } from \"../functions/parse-wijzigactie-from-node.function\";\r\nimport { wijzigactieToClassName } from \"../functions/wijzigactie-to-class-name.function\";\r\nimport { getNodeName } from \"../get-node-name.function\";\r\nimport { OzonContentNodeContext } from \"../ozon-content-node-context.interface\";\r\nimport { OzonContentNode } from \"../ozon-content-node.interface\";\r\n\r\nexport class OzonContentLijstNode implements OzonContentNode {\r\n name = \"Lijst\";\r\n\r\n render(node: Element, { mapNodeToJsx }: OzonContentNodeContext) {\r\n const 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 { Fragment, 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 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 { 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\n\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 { OzonContentNodeContext } from \"../ozon-content-node-context.interface\";\r\nimport { OzonContentNode } from \"../ozon-content-node.interface\";\r\n\r\nexport class OzonContentTextNode implements OzonContentNode {\r\n name = \"#text\";\r\n\r\n render({ 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, JSX, h } from \"@stencil/core\";\r\n\r\nimport { getNodeName } from \"./get-node-name.function\";\r\nimport { OzonContentAbbrNode } from \"./nodes/abbr.node\";\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 { OzonContentKopNode } from \"./nodes/kop.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 { 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 OzonContentAbbrNode(),\r\n new OzonContentTextNode(),\r\n new OzonContentDocumentNode(),\r\n new OzonContentInhoudNode(),\r\n new OzonContentKopNode(),\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 urlResolver: context.urlResolver,\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/variables/units\";\r\n@use \"~dso-toolkit/src/variables/colors\";\r\n\r\n@use \"~dso-toolkit/src/components/link\";\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\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 link.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 text-align: var(--_dso-ozon-content-illustratie-uitlijning);\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-image-overlay {\r\n inline-size: var(--_dso-ozon-content-illustratie-width);\r\n block-size: auto;\r\n max-block-size: 200vh;\r\n aspect-ratio: var(--_dso-ozon-content-illustratie-aspect-ratio);\r\n\r\n img {\r\n block-size: 100%;\r\n inline-size: 100%;\r\n }\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\r\n.od-abbr {\r\n text-decoration: underline dotted;\r\n}\r\n","import {\r\n Component,\r\n ComponentInterface,\r\n Event,\r\n EventEmitter,\r\n Fragment,\r\n JSX,\r\n Prop,\r\n State,\r\n Watch,\r\n h,\r\n} from \"@stencil/core\";\r\n\r\nimport { OzonContentContext } from \"./ozon-content-context.interface\";\r\nimport { Mapper } from \"./ozon-content-mapper\";\r\nimport { OzonContentNodeState } from \"./ozon-content-node-state.interface\";\r\nimport {\r\n OzonContentAnchorClickEvent,\r\n OzonContentInputType,\r\n OzonContentMarkFunction,\r\n OzonContentMarkItemHighlightEvent,\r\n OzonContentUrlResolver,\r\n} from \"./ozon-content.interfaces\";\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 * A UrlResolver that will be called for all STOP elements that render to HTML5 elements with external references.\r\n */\r\n @Prop()\r\n urlResolver?: OzonContentUrlResolver;\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 urlResolver: this.urlResolver,\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","import { Resource } from \"../../utils/i18n\";\r\n\r\nexport const translations: Resource = {\r\n en: {\r\n \"dso-panel\": {\r\n close: \"Close\",\r\n },\r\n },\r\n nl: {\r\n \"dso-panel\": {\r\n close: \"Sluiten\",\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@use \"panel.variables\" as panel-variables;\r\n\r\n:host {\r\n display: block;\r\n\r\n border: 1px solid colors.$grijs-30;\r\n border-radius: units.$u1 * 0.5;\r\n\r\n overflow: hidden;\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-start: var(--panel-heading-padding-inline-start, panel-variables.$panel-heading-padding-inline-start);\r\n padding-inline-end: units.$u1;\r\n\r\n border-block-end: 1px solid colors.$grijs-30;\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.$grijs-10;\r\n\r\n .sr-only {\r\n @include utilities.sr-only();\r\n }\r\n}\r\n\r\n.emphasized .panel-heading {\r\n background-color: panel-variables.$background-color-emphasized;\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 color: colors.$zwart !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.$zwart;\r\n\r\n cursor: pointer;\r\n}\r\n\r\n.panel-body {\r\n padding-block: units.$u2;\r\n padding-inline: var(--panel-body-padding-inline, panel-variables.$panel-body-padding-inline);\r\n\r\n background-color: var(--_dso-panel-body-background-color, transparent);\r\n}\r\n","import { Component, ComponentInterface, Element, Event, EventEmitter, Prop, h } from \"@stencil/core\";\r\nimport clsx from \"clsx\";\r\n\r\nimport { i18n } from \"../../utils/i18n\";\r\n\r\nimport { translations } from \"./panel.i18n\";\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 @Element()\r\n host!: HTMLDsoPanelElement;\r\n\r\n /**\r\n * The accessible name for the close button.\r\n */\r\n @Prop()\r\n closeButtonLabel?: string;\r\n\r\n /**\r\n * To display the panel as an emphasized panel.\r\n */\r\n @Prop()\r\n emphasized = false;\r\n\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 private text = i18n(() => this.host, translations);\r\n\r\n render() {\r\n return (\r\n <div class={clsx([\"dso-panel\", { emphasized: this.emphasized }])}>\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\">{this.closeButtonLabel || this.text(\"close\")}</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 \"sass:color\";\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 inset: 0px;\r\n block-size: 100%;\r\n position: fixed;\r\n z-index: zindex.$modal;\r\n\r\n @include modal.root();\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=\"true\"]) {\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: color.scale(modal-variables.$backdrop-bg, $alpha: 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 { Component, ComponentInterface, Element, Host, Prop, State, h } from \"@stencil/core\";\r\nimport debounce from \"debounce\";\r\nimport { FocusTrap, createFocusTrap } 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 @State()\r\n isResponsive?: boolean;\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 is-responsive={this.isResponsive?.toString()}>\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 e,c as a,f as o,h as r,H as n,g as i}from"./p-C-b4jsbt.js";import{i as d}from"./p-Hgv-pDpy.js";const t='@charset "UTF-8";a{background-color:transparent;color:var(--link-color);text-decoration:underline;text-underline-offset:15%}a:hover,a:focus-visible{color:var(--link-hover-color);text-decoration:underline}a:active{text-decoration:none}a :is(dso-icon,svg.di)+span,a span+:is(dso-icon,svg.di){margin-inline-start:8px}a:visited{color:var(--link-visited-color)}a:where(:not(.dso-primary,.dso-secondary,.dso-tertiary)).download{background-repeat:no-repeat;background-size:1.25em 1.25em;padding-inline-end:var(--_dso-link-icon-padding-inline-end, 1.5em);background-position:bottom 0 right 0}a:where(:not(.dso-primary,.dso-secondary,.dso-tertiary)).download{background-image:var(--_dso-di-background-image, url("./di.svg#download"))}a:where(:not(.dso-primary,.dso-secondary,.dso-tertiary)).download:hover,a:where(:not(.dso-primary,.dso-secondary,.dso-tertiary)).download:focus-visible{background-image:var(--_dso-di-background-image, url("./di.svg#download-scampi"))}a:where(:not(.dso-primary,.dso-secondary,.dso-tertiary)).extern{background-repeat:no-repeat;background-size:1.25em 1.25em;padding-inline-end:var(--_dso-link-icon-padding-inline-end, 1.5em);background-position:bottom 0 right 0}a:where(:not(.dso-primary,.dso-secondary,.dso-tertiary)).extern{background-image:var(--_dso-di-background-image, url("./di.svg#external-link"))}a:where(:not(.dso-primary,.dso-secondary,.dso-tertiary)).extern:hover,a:where(:not(.dso-primary,.dso-secondary,.dso-tertiary)).extern:focus-visible{background-image:var(--_dso-di-background-image, url("./di.svg#external-link-scampi"))}a:where(:not(.dso-primary,.dso-secondary,.dso-tertiary))[href^="tel:"]{background-repeat:no-repeat;background-size:1.25em 1.25em;padding-inline-start:var(--_dso-link-icon-padding-inline-start, 1.5em);background-position:bottom 0 left 0}a:where(:not(.dso-primary,.dso-secondary,.dso-tertiary))[href^="tel:"]{background-image:var(--_dso-di-background-image, url("./di.svg#call-grasgroen"))}a:where(:not(.dso-primary,.dso-secondary,.dso-tertiary))[href^="tel:"]:hover,a:where(:not(.dso-primary,.dso-secondary,.dso-tertiary))[href^="tel:"]:focus-visible{background-image:var(--_dso-di-background-image, url("./di.svg#call-scampi"))}a:where(:not(.dso-primary,.dso-secondary,.dso-tertiary))[href^="mailto:"]{background-repeat:no-repeat;background-size:1.25em 1.25em;padding-inline-start:var(--_dso-link-icon-padding-inline-start, 1.5em);background-position:bottom 0 left 0}a:where(:not(.dso-primary,.dso-secondary,.dso-tertiary))[href^="mailto:"]{background-image:var(--_dso-di-background-image, url("./di.svg#email-grasgroen"))}a:where(:not(.dso-primary,.dso-secondary,.dso-tertiary))[href^="mailto:"]:hover,a:where(:not(.dso-primary,.dso-secondary,.dso-tertiary))[href^="mailto:"]:focus-visible{background-image:var(--_dso-di-background-image, url("./di.svg#email-scampi"))}*,*::after,*::before{box-sizing:border-box}:host{display:block}:host([is-selectable]:not([is-selectable=false])) .dso-card-container{display:grid;grid-template-columns:1fr minmax(0, 100%)}:host([is-selectable]:not([is-selectable=false])) .dso-card-container .dso-card-heading,:host([is-selectable]:not([is-selectable=false])) .dso-card-container .dso-card-content{grid-column:2/-1}:host([is-selectable]:not([is-selectable=false])) .dso-card-container .dso-card-selectable{grid-row:span 2}:host([active]:not([active=false])) .dso-card-container{background-color:#e5e5e5}.dso-card-container{padding-block:16px;padding-inline:16px;inline-size:100%;block-size:100%}.dso-card-container:has(.dso-card-heading a:is(:hover,:focus-visible)){background-color:#f2f2f2}.dso-card-container .dso-card-heading{align-items:center;display:flex}@media screen and (max-width: 480px){.dso-card-container .dso-card-heading{flex-wrap:wrap}}.dso-card-container .dso-card-heading+.dso-card-content{margin-block-start:8px}.heading-anchor{display:flex;gap:4px;color:#275937;text-decoration:none}.heading-anchor:hover{color:#275937;text-decoration:underline}.heading-anchor:visited{color:#275937}.heading-anchor dso-icon{flex-shrink:0}.heading-anchor .sr-only{position:absolute;inline-size:1px;block-size:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}::slotted([slot=selectable]){font-size:0 !important}::slotted([slot=heading]){display:flex !important;align-items:center !important;margin-block-end:0 !important;margin-block-start:0 !important;font-size:1.125em !important;font-weight:700 !important;color:#275937 !important;line-height:1.25 !important}::slotted([slot=content]){--_dt-rich-content-margin-block:8px;--_dt-rich-content-margin-block-end:0;--_dt-rich-content-margin-block-start:0}::slotted([slot=interactions]){display:flex !important;justify-content:space-between !important;margin-inline-start:auto !important}@media screen and (max-width: 480px){::slotted([slot=interactions]){flex-basis:100% !important;margin-block-start:16px !important}}';const s=class{constructor(o){e(this,o);this.dsoCardClick=a(this,"dsoCardClick",7)}connectedCallback(){this.mutationObserver=new MutationObserver((()=>o(this.host)));this.mutationObserver.observe(this.host,{attributes:true,childList:true})}disconnectedCallback(){var e;(e=this.mutationObserver)===null||e===void 0?void 0:e.disconnect();delete this.mutationObserver}clickEventHandler(e){if(!(e.target instanceof HTMLElement)||!this.href){return}return this.dsoCardClick.emit({originalEvent:e,isModifiedEvent:d(e)})}get selectableSlottedElement(){return this.host.querySelector("[slot='selectable']")}get interactionsSlottedElement(){return this.host.querySelector("[slot='interactions']")}render(){const e=this.selectableSlottedElement!==null;return r(n,{key:"ae559eef542b45634fe3e60859befae34b6758f3","is-selectable":e},r("div",{key:"dbdcd6202dd90afe6163746980568b1da93a1f6b",class:"dso-card-container"},r("div",{key:"a2d327a172087119f00e7ad915c376510c812301",class:"dso-card-selectable",hidden:!e},r("slot",{key:"e8362179580065599e3289f415b7713ce5fa314b",name:"selectable"})),r("div",{key:"ef113d547acb93eb7ddb7d764d6068e0f6961e6c",class:"dso-card-heading"},this.mode==="extern"&&r("a",{key:"c96225236d6860f3a49bec5699ff8dc1b38b28d6",href:this.href,class:"heading-anchor",target:"_blank",rel:"noopener noreferrer",onClick:e=>this.clickEventHandler(e)},r("slot",{key:"a47b5fb10f0439e2c13f522ff8a14d62dabe8989",name:"heading"}),r("dso-icon",{key:"51186c704c9075ebc38a4dd0e3074d0ddf9f2d56",icon:"external-link"}),r("span",{key:"1273130ce694c0a4ae4247420ba07e69d00fa643",class:"sr-only"},"(Opent andere website in nieuw tabblad)"))||this.mode==="download"&&r("a",{key:"8b210a4f08569ec47fe39922d7cd9a5e7eacfe51",href:this.href,class:"heading-anchor",onClick:e=>this.clickEventHandler(e)},r("slot",{key:"530f82e059ab739fb981cfa5ab71924ad2c0ccc6",name:"heading"}),r("dso-icon",{key:"ce5c62061feeda349651c41cdb548b6e4acb941c",icon:"download"}))||r("a",{key:"cd96767ed626d0a2b96fa866d7676c080f8285e1",href:this.href,class:"heading-anchor",onClick:e=>this.clickEventHandler(e)},r("slot",{key:"e044d0aff126c3c20827fa1a096b9452266e223f",name:"heading"}),r("dso-icon",{key:"4ea9e29a4b91016bed380b01f2811abc2102a4bb",icon:"chevron-right"})),this.interactionsSlottedElement!==null&&r("slot",{key:"5eb35ed45a897e399a924cd3fa1fd0f73fe08077",name:"interactions"})),r("div",{key:"b316000aed0849ed15352958be227bc65efe6f48",class:"dso-card-content"},r("slot",{key:"8c8c02740df6f4a19f4375f61a2dc8a706a74162",name:"content"}))))}get host(){return i(this)}};s.style=t;export{s as dso_card};
|
|
2
|
-
//# sourceMappingURL=p-53ca5932.entry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["cardCss","Card","connectedCallback","this","mutationObserver","MutationObserver","forceUpdate","host","observe","attributes","childList","disconnectedCallback","_a","disconnect","clickEventHandler","e","target","HTMLElement","href","dsoCardClick","emit","originalEvent","isModifiedEvent","selectableSlottedElement","querySelector","interactionsSlottedElement","render","isSelectable","h","Host","key","class","hidden","name","mode","rel","onClick","icon"],"sources":["src/components/card/card.scss?tag=dso-card&encapsulation=shadow","src/components/card/card.tsx"],"sourcesContent":["@use \"~dso-toolkit/src/utilities\";\r\n@use \"~dso-toolkit/src/variables/units\";\r\n@use \"~dso-toolkit/src/variables/colors\";\r\n@use \"~dso-toolkit/src/components/card\";\r\n@use \"~dso-toolkit/src/components/link/link\";\r\n@use \"~dso-toolkit/src/variables/media-query-breakpoints\";\r\n\r\n@include utilities.box-sizing();\r\n\r\n:host {\r\n display: block;\r\n}\r\n\r\n:host([is-selectable]:not([is-selectable=\"false\"])) {\r\n .dso-card-container {\r\n display: grid;\r\n grid-template-columns: 1fr minmax(0, 100%);\r\n\r\n .dso-card-heading,\r\n .dso-card-content {\r\n grid-column: 2 /-1;\r\n }\r\n\r\n .dso-card-selectable {\r\n grid-row: span 2;\r\n }\r\n }\r\n}\r\n\r\n:host([active]:not([active=\"false\"])) {\r\n .dso-card-container {\r\n background-color: card.$background-color-active;\r\n }\r\n}\r\n\r\n.dso-card-container {\r\n padding-block: units.$u2;\r\n padding-inline: units.$u2;\r\n inline-size: 100%;\r\n block-size: 100%;\r\n\r\n &:has(.dso-card-heading a:is(:hover, :focus-visible)) {\r\n background-color: card.$background-color-hover;\r\n }\r\n\r\n .dso-card-heading {\r\n align-items: center;\r\n display: flex;\r\n\r\n @media screen and (max-width: media-query-breakpoints.$screen-xs-min) {\r\n flex-wrap: wrap;\r\n }\r\n\r\n + .dso-card-content {\r\n margin-block-start: units.$u1;\r\n }\r\n }\r\n}\r\n\r\n.heading-anchor {\r\n display: flex;\r\n gap: units.$u1 * 0.5;\r\n\r\n color: card.$heading-anchor-color;\r\n text-decoration: none;\r\n\r\n &:hover {\r\n color: card.$heading-anchor-hover-color;\r\n text-decoration: underline;\r\n }\r\n\r\n &:visited {\r\n color: card.$heading-anchor-color;\r\n }\r\n\r\n dso-icon {\r\n flex-shrink: 0;\r\n }\r\n\r\n .sr-only {\r\n @include utilities.sr-only();\r\n }\r\n}\r\n\r\n::slotted([slot=\"selectable\"]) {\r\n font-size: 0 !important;\r\n}\r\n\r\n::slotted([slot=\"heading\"]) {\r\n display: flex !important;\r\n align-items: center !important;\r\n\r\n margin-block-end: 0 !important;\r\n margin-block-start: 0 !important;\r\n\r\n font-size: 1.125em !important;\r\n font-weight: 700 !important;\r\n color: colors.$bosgroen !important;\r\n line-height: 1.25 !important;\r\n}\r\n\r\n::slotted([slot=\"content\"]) {\r\n --_dt-rich-content-margin-block: #{units.$u1};\r\n --_dt-rich-content-margin-block-end: 0;\r\n --_dt-rich-content-margin-block-start: 0;\r\n}\r\n\r\n::slotted([slot=\"interactions\"]) {\r\n display: flex !important;\r\n justify-content: space-between !important;\r\n margin-inline-start: auto !important;\r\n\r\n @media screen and (max-width: media-query-breakpoints.$screen-xs-min) {\r\n flex-basis: 100% !important;\r\n margin-block-start: units.$u2 !important;\r\n }\r\n}\r\n","import { Component, ComponentInterface, Element, Event, EventEmitter, Host, Prop, forceUpdate, h } from \"@stencil/core\";\r\n\r\nimport { isModifiedEvent } from \"../../utils/is-modified-event\";\r\n\r\nimport { CardClickEvent } from \"./card.interfaces\";\r\n\r\n/**\r\n * @slot selectable - An optional slot to place a `Selectable` in.\r\n * @slot heading - A slot to place the title of the card in.\r\n * @slot interactions - An optional slot for one or more `Button`s, `Label`s, `Toggletip`s or `SlideToggle`s.\r\n * @slot content - An optional slot to place `Rich Content` in.\r\n */\r\n@Component({\r\n tag: \"dso-card\",\r\n styleUrl: \"card.scss\",\r\n shadow: true,\r\n})\r\nexport class Card implements ComponentInterface {\r\n @Element()\r\n host!: HTMLDsoCardElement;\r\n\r\n /**\r\n * The URL to which the Card heading links.\r\n */\r\n @Prop({ reflect: true })\r\n href!: string | undefined;\r\n\r\n /**\r\n * Display the link as an external link or a download link\r\n * - \"download\"\r\n * - \"extern\"\r\n */\r\n @Prop({ reflect: true })\r\n mode?: string;\r\n\r\n /**\r\n * Makes the Card active.\r\n */\r\n @Prop({ reflect: true })\r\n active?: boolean;\r\n\r\n /**\r\n * Emitted when the Card heading is clicked.\r\n */\r\n @Event()\r\n dsoCardClick!: EventEmitter<CardClickEvent>;\r\n\r\n private mutationObserver?: MutationObserver;\r\n\r\n connectedCallback(): void {\r\n this.mutationObserver = new MutationObserver(() => forceUpdate(this.host));\r\n\r\n this.mutationObserver.observe(this.host, { attributes: true, childList: true });\r\n }\r\n\r\n disconnectedCallback(): void {\r\n this.mutationObserver?.disconnect();\r\n\r\n delete this.mutationObserver;\r\n }\r\n\r\n private clickEventHandler(e: MouseEvent) {\r\n if (!(e.target instanceof HTMLElement) || !this.href) {\r\n return;\r\n }\r\n\r\n return this.dsoCardClick.emit({ originalEvent: e, isModifiedEvent: isModifiedEvent(e) });\r\n }\r\n\r\n get selectableSlottedElement() {\r\n return this.host.querySelector(\"[slot='selectable']\");\r\n }\r\n\r\n get interactionsSlottedElement() {\r\n return this.host.querySelector(\"[slot='interactions']\");\r\n }\r\n\r\n render() {\r\n const isSelectable = this.selectableSlottedElement !== null;\r\n\r\n return (\r\n <Host is-selectable={isSelectable}>\r\n <div class=\"dso-card-container\">\r\n <div class=\"dso-card-selectable\" hidden={!isSelectable}>\r\n <slot name=\"selectable\" />\r\n </div>\r\n <div class=\"dso-card-heading\">\r\n {(this.mode === \"extern\" && (\r\n <a\r\n href={this.href}\r\n class=\"heading-anchor\"\r\n target=\"_blank\"\r\n rel=\"noopener noreferrer\"\r\n onClick={(e) => this.clickEventHandler(e)}\r\n >\r\n <slot name=\"heading\" />\r\n <dso-icon icon=\"external-link\"></dso-icon>\r\n <span class=\"sr-only\">(Opent andere website in nieuw tabblad)</span>\r\n </a>\r\n )) ||\r\n (this.mode === \"download\" && (\r\n <a href={this.href} class=\"heading-anchor\" onClick={(e) => this.clickEventHandler(e)}>\r\n <slot name=\"heading\" />\r\n <dso-icon icon=\"download\"></dso-icon>\r\n </a>\r\n )) || (\r\n <a href={this.href} class=\"heading-anchor\" onClick={(e) => this.clickEventHandler(e)}>\r\n <slot name=\"heading\" />\r\n <dso-icon icon=\"chevron-right\"></dso-icon>\r\n </a>\r\n )}\r\n {this.interactionsSlottedElement !== null && <slot name=\"interactions\" />}\r\n </div>\r\n <div class=\"dso-card-content\">\r\n <slot name=\"content\" />\r\n </div>\r\n </div>\r\n </Host>\r\n );\r\n }\r\n}\r\n"],"mappings":"2GAAA,MAAMA,EAAU,8xJ,MCiBHC,EAAI,M,oEAgCf,iBAAAC,GACEC,KAAKC,iBAAmB,IAAIC,kBAAiB,IAAMC,EAAYH,KAAKI,QAEpEJ,KAAKC,iBAAiBI,QAAQL,KAAKI,KAAM,CAAEE,WAAY,KAAMC,UAAW,M,CAG1E,oBAAAC,G,OACEC,EAAAT,KAAKC,oBAAkB,MAAAQ,SAAA,SAAAA,EAAAC,oBAEhBV,KAAKC,gB,CAGN,iBAAAU,CAAkBC,GACxB,KAAMA,EAAEC,kBAAkBC,eAAiBd,KAAKe,KAAM,CACpD,M,CAGF,OAAOf,KAAKgB,aAAaC,KAAK,CAAEC,cAAeN,EAAGO,gBAAiBA,EAAgBP,I,CAGrF,4BAAIQ,GACF,OAAOpB,KAAKI,KAAKiB,cAAc,sB,CAGjC,8BAAIC,GACF,OAAOtB,KAAKI,KAAKiB,cAAc,wB,CAGjC,MAAAE,GACE,MAAMC,EAAexB,KAAKoB,2BAA6B,KAEvD,OACEK,EAACC,EAAI,CAAAC,IAAA,2DAAgBH,GACnBC,EAAK,OAAAE,IAAA,2CAAAC,MAAM,sBACTH,EAAA,OAAAE,IAAA,2CAAKC,MAAM,sBAAsBC,QAASL,GACxCC,EAAA,QAAAE,IAAA,2CAAMG,KAAK,gBAEbL,EAAK,OAAAE,IAAA,2CAAAC,MAAM,oBACP5B,KAAK+B,OAAS,UACdN,EAAA,KAAAE,IAAA,2CACEZ,KAAMf,KAAKe,KACXa,MAAM,iBACNf,OAAO,SACPmB,IAAI,sBACJC,QAAUrB,GAAMZ,KAAKW,kBAAkBC,IAEvCa,EAAM,QAAAE,IAAA,2CAAAG,KAAK,YACXL,EAAU,YAAAE,IAAA,2CAAAO,KAAK,kBACfT,EAAA,QAAAE,IAAA,2CAAMC,MAAM,WAAwD,6CAGrE5B,KAAK+B,OAAS,YACbN,EAAA,KAAAE,IAAA,2CAAGZ,KAAMf,KAAKe,KAAMa,MAAM,iBAAiBK,QAAUrB,GAAMZ,KAAKW,kBAAkBC,IAChFa,EAAM,QAAAE,IAAA,2CAAAG,KAAK,YACXL,EAAA,YAAAE,IAAA,2CAAUO,KAAK,eAGjBT,EAAG,KAAAE,IAAA,2CAAAZ,KAAMf,KAAKe,KAAMa,MAAM,iBAAiBK,QAAUrB,GAAMZ,KAAKW,kBAAkBC,IAChFa,EAAM,QAAAE,IAAA,2CAAAG,KAAK,YACXL,EAAA,YAAAE,IAAA,2CAAUO,KAAK,mBAGpBlC,KAAKsB,6BAA+B,MAAQG,EAAA,QAAAE,IAAA,2CAAMG,KAAK,kBAE1DL,EAAK,OAAAE,IAAA,2CAAAC,MAAM,oBACTH,EAAM,QAAAE,IAAA,2CAAAG,KAAK,c","ignoreList":[]}
|