@dso-toolkit/core 78.1.0 → 79.0.0-pre.1
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 +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-dropdown-menu.js +1 -1
- package/dist/bundle/dso-header.js +98 -97
- package/dist/bundle/dso-header.js.map +1 -1
- package/dist/bundle/dso-highlight-box.js +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-input-range.js +2 -2
- package/dist/bundle/dso-label.js +1 -1
- package/dist/bundle/dso-legend-item.js +6 -6
- package/dist/bundle/dso-list-button.js +5 -5
- package/dist/bundle/dso-logo.js +2 -2
- package/dist/bundle/dso-logo.js.map +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-lE-KxpG-.js → p-7ffg336s.js} +3 -3
- package/dist/bundle/{p-lE-KxpG-.js.map → p-7ffg336s.js.map} +1 -1
- package/dist/bundle/{p-BZUv4Fwx.js → p-B3Alb07i.js} +6 -6
- package/dist/bundle/{p-BZUv4Fwx.js.map → p-B3Alb07i.js.map} +1 -1
- package/dist/bundle/{p-CUZmPl-a.js → p-BELL2NPR.js} +7 -7
- package/dist/bundle/{p-CUZmPl-a.js.map → p-BELL2NPR.js.map} +1 -1
- package/dist/bundle/{p-BQF5fCSD.js → p-BOvMM9C8.js} +3 -3
- package/dist/bundle/{p-BQF5fCSD.js.map → p-BOvMM9C8.js.map} +1 -1
- package/dist/bundle/{p-BnSdv9VD.js → p-B_9Gan2F.js} +10 -10
- package/dist/bundle/{p-BnSdv9VD.js.map → p-B_9Gan2F.js.map} +1 -1
- package/dist/bundle/{p-D0gB2lgu.js → p-Bgqhjszl.js} +3 -3
- package/dist/bundle/{p-D0gB2lgu.js.map → p-Bgqhjszl.js.map} +1 -1
- package/dist/bundle/{p-D92MZVkr.js → p-BqKuHNTU.js} +3 -3
- package/dist/bundle/{p-D92MZVkr.js.map → p-BqKuHNTU.js.map} +1 -1
- package/dist/bundle/{p-DNULhBX2.js → p-BrQ3aUVb.js} +3 -3
- package/dist/bundle/{p-DNULhBX2.js.map → p-BrQ3aUVb.js.map} +1 -1
- package/dist/bundle/{p-C2Ek2dWW.js → p-Bxrualn7.js} +40 -36
- package/dist/bundle/p-Bxrualn7.js.map +1 -0
- package/dist/bundle/{p-DcxEm1dI.js → p-C5KKL3gn.js} +7 -7
- package/dist/bundle/{p-DcxEm1dI.js.map → p-C5KKL3gn.js.map} +1 -1
- package/dist/bundle/{p-CwKyBrf3.js → p-CEFYoazH.js} +4 -4
- package/dist/bundle/{p-CwKyBrf3.js.map → p-CEFYoazH.js.map} +1 -1
- package/dist/bundle/{p-CXEXoC_s.js → p-CeXiA7z5.js} +3 -3
- package/dist/bundle/{p-CXEXoC_s.js.map → p-CeXiA7z5.js.map} +1 -1
- package/dist/bundle/{p-WmD5BfeO.js → p-CynPODEC.js} +4 -4
- package/dist/bundle/{p-WmD5BfeO.js.map → p-CynPODEC.js.map} +1 -1
- package/dist/bundle/{p-Dt1j98T1.js → p-DAJsc8Jk.js} +3 -3
- package/dist/bundle/{p-Dt1j98T1.js.map → p-DAJsc8Jk.js.map} +1 -1
- package/dist/bundle/{p--iZjxqv3.js → p-DrWTFwlB.js} +4 -4
- package/dist/bundle/{p--iZjxqv3.js.map → p-DrWTFwlB.js.map} +1 -1
- package/dist/bundle/{p-D3I3eS2K.js → p-DrrX-h-R.js} +4 -4
- package/dist/bundle/{p-D3I3eS2K.js.map → p-DrrX-h-R.js.map} +1 -1
- package/dist/bundle/{p-BLPc0VWK.js → p-S0YMB18e.js} +6 -6
- package/dist/bundle/{p-BLPc0VWK.js.map → p-S0YMB18e.js.map} +1 -1
- package/dist/bundle/{p-CH8BjCNJ.js → p-X4ksz0z1.js} +6 -6
- package/dist/bundle/{p-CH8BjCNJ.js.map → p-X4ksz0z1.js.map} +1 -1
- package/dist/bundle/{p-CYNNmESE.js → p-_H6ui1La.js} +3 -3
- package/dist/bundle/{p-CYNNmESE.js.map → p-_H6ui1La.js.map} +1 -1
- package/dist/bundle/{p-ChsWtZdt.js → p-uUOjJ6kU.js} +4 -4
- package/dist/bundle/{p-ChsWtZdt.js.map → p-uUOjJ6kU.js.map} +1 -1
- package/dist/cjs/dso-alert_6.cjs.entry.js +2 -2
- package/dist/cjs/dso-dropdown-menu.cjs.entry.js +37 -33
- package/dist/cjs/dso-dropdown-menu.cjs.entry.js.map +1 -1
- package/dist/cjs/dso-dropdown-menu.entry.cjs.js.map +1 -1
- package/dist/cjs/dso-header.cjs.entry.js +91 -89
- 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-highlight-box.cjs.entry.js +1 -1
- package/dist/cjs/dso-icon.cjs.entry.js +1 -1
- package/dist/cjs/dso-info-button.cjs.entry.js +1 -1
- package/dist/cjs/dso-info_2.cjs.entry.js +2 -2
- package/dist/cjs/dso-input-range.cjs.entry.js +2 -2
- package/dist/cjs/dso-label_3.cjs.entry.js +4 -4
- package/dist/cjs/dso-legend-item.cjs.entry.js +1 -1
- package/dist/cjs/dso-list-button.cjs.entry.js +1 -1
- package/dist/cjs/dso-logo.cjs.entry.js +2 -2
- package/dist/cjs/dso-logo.cjs.entry.js.map +1 -1
- package/dist/cjs/dso-logo.entry.cjs.js.map +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/dropdown-menu/dropdown-menu.js +37 -39
- package/dist/collection/components/dropdown-menu/dropdown-menu.js.map +1 -1
- package/dist/collection/components/header/header.css +28 -28
- package/dist/collection/components/header/header.interfaces.js.map +1 -1
- package/dist/collection/components/header/header.js +126 -107
- package/dist/collection/components/header/header.js.map +1 -1
- package/dist/collection/components/header/menu-item.functional-component.js +6 -0
- package/dist/collection/components/header/menu-item.functional-component.js.map +1 -0
- package/dist/collection/components/highlight-box/highlight-box.js +1 -1
- package/dist/collection/components/icon/icon.js +1 -1
- package/dist/collection/components/info/info.js +1 -1
- package/dist/collection/components/info-button/info-button.js +1 -1
- package/dist/collection/components/input-range/input-range.js +2 -2
- package/dist/collection/components/label/label.js +3 -3
- package/dist/collection/components/legend-item/legend-item.js +1 -1
- package/dist/collection/components/list-button/list-button.js +1 -1
- package/dist/collection/components/logo/logo.css +2 -8
- 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/ozon-content.js +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.js +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/dropdown-menu.js +38 -34
- package/dist/components/dropdown-menu.js.map +1 -1
- package/dist/components/dso-header.js +96 -95
- package/dist/components/dso-header.js.map +1 -1
- package/dist/components/dso-highlight-box.js +1 -1
- package/dist/components/dso-input-range.js +2 -2
- package/dist/components/dso-legend-item.js +1 -1
- package/dist/components/dso-list-button.js +1 -1
- package/dist/components/dso-logo.js +2 -2
- package/dist/components/dso-logo.js.map +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 +1 -1
- package/dist/components/info-button.js +1 -1
- package/dist/components/info.js +1 -1
- package/dist/components/label.js +3 -3
- package/dist/components/ozon-content.js +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 +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-dropdown-menu.entry.esm.js.map +1 -1
- package/dist/dso-toolkit/dso-header.entry.esm.js.map +1 -1
- package/dist/dso-toolkit/dso-logo.entry.esm.js.map +1 -1
- package/dist/dso-toolkit/dso-toolkit.esm.js +1 -1
- package/dist/dso-toolkit/{p-53466f70.entry.js → p-01e90e48.entry.js} +2 -2
- package/dist/dso-toolkit/{p-78a12530.entry.js → p-071846be.entry.js} +2 -2
- package/dist/dso-toolkit/{p-8128fe57.entry.js → p-08efe022.entry.js} +2 -2
- package/dist/dso-toolkit/{p-f055ab17.entry.js → p-1cc4cc04.entry.js} +2 -2
- package/dist/dso-toolkit/{p-6aff6420.entry.js → p-257a4650.entry.js} +2 -2
- package/dist/dso-toolkit/p-2660ebab.entry.js +2 -0
- package/dist/dso-toolkit/p-2660ebab.entry.js.map +1 -0
- package/dist/dso-toolkit/{p-443a78e5.entry.js → p-275e5ec7.entry.js} +2 -2
- package/dist/dso-toolkit/{p-3300fe1e.entry.js → p-2cec1fea.entry.js} +2 -2
- package/dist/dso-toolkit/{p-53a81213.entry.js → p-445aba67.entry.js} +2 -2
- package/dist/dso-toolkit/{p-7731d7bb.entry.js → p-55637fe3.entry.js} +2 -2
- package/dist/dso-toolkit/{p-c359f83e.entry.js → p-67b6a838.entry.js} +2 -2
- package/dist/dso-toolkit/{p-b245449a.entry.js → p-6902ffb5.entry.js} +2 -2
- package/dist/dso-toolkit/{p-17219f16.entry.js → p-81711068.entry.js} +2 -2
- package/dist/dso-toolkit/p-82a89d77.entry.js +2 -0
- package/dist/dso-toolkit/p-82a89d77.entry.js.map +1 -0
- package/dist/dso-toolkit/{p-afaee982.entry.js → p-898de91a.entry.js} +2 -2
- package/dist/dso-toolkit/{p-02491a35.entry.js → p-9566b0a7.entry.js} +2 -2
- package/dist/dso-toolkit/p-9b2ca189.entry.js +2 -0
- package/dist/dso-toolkit/{p-3522c1dd.entry.js.map → p-9b2ca189.entry.js.map} +1 -1
- package/dist/dso-toolkit/{p-16255f29.entry.js → p-a38fbc5c.entry.js} +2 -2
- package/dist/dso-toolkit/{p-5c0322dc.entry.js → p-a62f368d.entry.js} +2 -2
- package/dist/dso-toolkit/{p-d51d9d66.entry.js → p-add3ca45.entry.js} +2 -2
- package/dist/dso-toolkit/{p-04d6ae97.entry.js → p-b4931ff4.entry.js} +2 -2
- package/dist/dso-toolkit/{p-f8557ec8.entry.js → p-b4ba87ac.entry.js} +2 -2
- package/dist/dso-toolkit/{p-ea71badf.entry.js → p-c45258d3.entry.js} +2 -2
- package/dist/dso-toolkit/{p-d0e82c62.entry.js → p-d864f7da.entry.js} +2 -2
- package/dist/dso-toolkit/{p-4d885de2.entry.js → p-d947dd25.entry.js} +2 -2
- package/dist/dso-toolkit/{p-1aa49aa7.entry.js → p-e299ac60.entry.js} +2 -2
- package/dist/dso-toolkit/{p-8fd586d4.entry.js → p-ef042313.entry.js} +2 -2
- package/dist/dso-toolkit/{p-fd42a8cd.entry.js → p-f2a61198.entry.js} +2 -2
- package/dist/dso-toolkit/{p-218b1fe3.entry.js → p-f4a1a07b.entry.js} +2 -2
- package/dist/dso-toolkit/p-f65ace88.entry.js +2 -0
- package/dist/dso-toolkit/p-f65ace88.entry.js.map +1 -0
- package/dist/dso-toolkit/{p-43564b05.entry.js → p-f9bc4e87.entry.js} +2 -2
- package/dist/esm/dso-alert_6.entry.js +2 -2
- package/dist/esm/dso-dropdown-menu.entry.js +37 -33
- package/dist/esm/dso-dropdown-menu.entry.js.map +1 -1
- package/dist/esm/dso-header.entry.js +92 -90
- package/dist/esm/dso-header.entry.js.map +1 -1
- package/dist/esm/dso-highlight-box.entry.js +1 -1
- package/dist/esm/dso-icon.entry.js +1 -1
- package/dist/esm/dso-info-button.entry.js +1 -1
- package/dist/esm/dso-info_2.entry.js +2 -2
- package/dist/esm/dso-input-range.entry.js +2 -2
- package/dist/esm/dso-label_3.entry.js +4 -4
- package/dist/esm/dso-legend-item.entry.js +1 -1
- package/dist/esm/dso-list-button.entry.js +1 -1
- package/dist/esm/dso-logo.entry.js +2 -2
- package/dist/esm/dso-logo.entry.js.map +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/dropdown-menu/dropdown-menu.d.ts +2 -1
- package/dist/types/components/header/header.d.ts +38 -26
- package/dist/types/components/header/header.interfaces.d.ts +2 -0
- package/dist/types/components/header/menu-item.functional-component.d.ts +9 -0
- package/dist/types/components.d.ts +20 -18
- package/package.json +3 -3
- package/dist/bundle/p-C2Ek2dWW.js.map +0 -1
- package/dist/dso-toolkit/p-1a06ea3b.entry.js +0 -2
- package/dist/dso-toolkit/p-1a06ea3b.entry.js.map +0 -1
- package/dist/dso-toolkit/p-3522c1dd.entry.js +0 -2
- package/dist/dso-toolkit/p-6a813c6c.entry.js +0 -2
- package/dist/dso-toolkit/p-6a813c6c.entry.js.map +0 -1
- package/dist/dso-toolkit/p-a85afaa8.entry.js +0 -2
- package/dist/dso-toolkit/p-a85afaa8.entry.js.map +0 -1
- /package/dist/dso-toolkit/{p-53466f70.entry.js.map → p-01e90e48.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-78a12530.entry.js.map → p-071846be.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-8128fe57.entry.js.map → p-08efe022.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-f055ab17.entry.js.map → p-1cc4cc04.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-6aff6420.entry.js.map → p-257a4650.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-443a78e5.entry.js.map → p-275e5ec7.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-3300fe1e.entry.js.map → p-2cec1fea.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-53a81213.entry.js.map → p-445aba67.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-7731d7bb.entry.js.map → p-55637fe3.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-c359f83e.entry.js.map → p-67b6a838.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-b245449a.entry.js.map → p-6902ffb5.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-17219f16.entry.js.map → p-81711068.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-afaee982.entry.js.map → p-898de91a.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-02491a35.entry.js.map → p-9566b0a7.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-16255f29.entry.js.map → p-a38fbc5c.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-5c0322dc.entry.js.map → p-a62f368d.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-d51d9d66.entry.js.map → p-add3ca45.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-04d6ae97.entry.js.map → p-b4931ff4.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-f8557ec8.entry.js.map → p-b4ba87ac.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-ea71badf.entry.js.map → p-c45258d3.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-d0e82c62.entry.js.map → p-d864f7da.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-4d885de2.entry.js.map → p-d947dd25.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-1aa49aa7.entry.js.map → p-e299ac60.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-8fd586d4.entry.js.map → p-ef042313.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-fd42a8cd.entry.js.map → p-f2a61198.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-218b1fe3.entry.js.map → p-f4a1a07b.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-43564b05.entry.js.map → p-f9bc4e87.entry.js.map} +0 -0
|
@@ -25,7 +25,7 @@ export class SlideToggle {
|
|
|
25
25
|
this.hasVisibleLabel = this.host.querySelector("*") !== null;
|
|
26
26
|
}
|
|
27
27
|
render() {
|
|
28
|
-
return (h(Fragment, null, h("button", Object.assign({ key: '
|
|
28
|
+
return (h(Fragment, null, h("button", Object.assign({ key: 'dd056ac89f47164e9ce9132438a9965fbdf78aea', id: this.identifier, role: "switch", class: "dso-slider", "aria-checked": "" + this.checked, disabled: this.disabled, onClick: (e) => this.handleSwitch(e) }, (this.accessibleLabel ? { "aria-label": this.accessibleLabel } : {}), (this.labelledbyId ? { "aria-labelledby": this.labelledbyId } : {})), h("svg", { key: 'ad71efc4e160b53099a2c6d80241fce699839f20', xmlns: "http://www.w3.org/2000/svg", width: "40", height: "20", viewBox: "0 0 40 20" }, h("g", { key: '585e75df75ce6fbb97bc573d5d3cc675ea74679a', fill: "none", "fill-rule": "evenodd" }, h("rect", { key: '6f3b445153a59a77bf8f673ab6cbc0eb65df1e54', width: "40", height: "20", fill: "currentColor", rx: "10" }), h("circle", { key: '58a7a02f8c5d8d92da2e661a709934d5295fb2e1', cy: "10", r: "8", fill: "currentColor" })))), this.hasVisibleLabel && (h("label", { key: 'fd1ec32c47da948e012a747a1830c9292c881cbc', htmlFor: this.identifier }, h("slot", { key: 'ecde5f3d46badc0e71463951cebe906b76aabf6a' })))));
|
|
29
29
|
}
|
|
30
30
|
static get is() { return "dso-slide-toggle"; }
|
|
31
31
|
static get encapsulation() { return "scoped"; }
|
|
@@ -18,10 +18,10 @@ export class SurveyRating {
|
|
|
18
18
|
"Makkelijk",
|
|
19
19
|
"Heel makkelijk",
|
|
20
20
|
];
|
|
21
|
-
return (h("dso-panel", { key: '
|
|
21
|
+
return (h("dso-panel", { key: 'a08440a75488ac48b76bad9520140f5ee8de22ab', emphasized: true, onDsoCloseClick: (e) => this.dsoClose.emit({ originalEvent: e }), role: "dialog", "aria-labelledby": "panel-heading" }, h("h2", { key: 'e749e905ceb649aa5e270428de76b1b3a454df4e', id: "panel-heading", slot: "heading" }, "Help ons met een onderzoek"), h("strong", { key: 'c3bec20428494f1e7299375ac1c8477c162de0c7' }, "Hoe moeilijk of makkelijk was deze taak om uit te voeren?"), h("form", { key: '227cf4b049533f58a7648abc0b8e48a452f2c350', onSubmit: (e) => this.handleForm(e) }, h("div", { key: 'ae139bf5bc7278bb6b17d280c70c40b857f111fb', class: "visual-rating-labels", "aria-hidden": "true" }, h("span", { key: 'ffa6cc1b544787a787fba144c4849eca1fb4bef6' }, "Heel moeilijk"), h("span", { key: 'a8fb7698c548b932faa687c66a85dbc40b1a70c4' }, "Heel makkelijk")), h("div", { key: 'fed9a5ae6b53237a2e2c4323bc1ec2ddb77b9418', role: "radiogroup" }, ratings.map((rating, index) => {
|
|
22
22
|
const ratingNumber = index + 1;
|
|
23
23
|
return (h(Fragment, null, h("label", { class: `survey-rating-${ratingNumber}` }, ratingNumber, h("span", { class: "sr-only" }, rating), h("input", { type: "radio", name: "rating", value: ratingNumber, checked: ratingNumber === this.rating, onChange: (e) => this.handleChange(e) }))));
|
|
24
|
-
})), h("button", { key: '
|
|
24
|
+
})), h("button", { key: '6f2f4f4f10358bed4c7bce9f3097c51f7e958593', type: "submit", class: "dso-secondary" }, h("span", { key: '0e98c6ea0ae5808638b2a631e936b797a11513b7' }, "Antwoord verzenden")))));
|
|
25
25
|
}
|
|
26
26
|
static get is() { return "dso-survey-rating"; }
|
|
27
27
|
static get encapsulation() { return "shadow"; }
|
|
@@ -31,7 +31,7 @@ export class Table {
|
|
|
31
31
|
render() {
|
|
32
32
|
var _a, _b, _c;
|
|
33
33
|
const caption = (_b = (_a = this.host.querySelector(":scope > table > caption")) === null || _a === void 0 ? void 0 : _a.textContent) === null || _b === void 0 ? void 0 : _b.trim();
|
|
34
|
-
return (h(Host, { key: '
|
|
34
|
+
return (h(Host, { key: '5953cc01c1eb25f20bf44b20d91091c6398bf938', "is-responsive": (_c = this.isResponsive) === null || _c === void 0 ? void 0 : _c.toString() }, this.modalActive && this.placeholderHeight && (h("div", { key: '848e53047bfca26a6f0c8cc1b014ca48c2ee2540', class: "dso-table-placeholder", style: { height: `${this.placeholderHeight}px` } })), this.modalActive && h("div", { key: '4bdd3f62085641103af4cc9469b5caf1d4f89b56', class: "dso-modal-overlay" }), h("div", { key: '6f21154d50a873ed118f42b68762861db360cea3', class: { "dso-modal": this.modalActive } }, h("div", Object.assign({ key: '2240f097c3f06b7145742a9cb2cbd6b59d7fe6e5', class: { "dso-dialog": this.modalActive, "dso-table-dialog": true }, ref: (element) => (this.focusTrapElement = element) }, (this.modalActive ? { ["aria-labelledby"]: this.labelledbyId, role: "dialog" } : {})), (this.isResponsive || !this.noModal) && (h("div", { key: '3a8b0929f7a16736add3a505f9e8c6fe0a98f14a', class: "dso-table-utilities", style: this.modalActive ? { display: "none" } : undefined }, this.isResponsive && (h("div", { key: 'fa982924130e442bf31f4241d2a7d9017a869dec', class: "dso-responsive-message" }, h("span", { key: 'f693422c76f65f066c23b85781db45593794727b' }, "beweeg de tabel van links naar rechts"))), !this.noModal && (h("button", { key: '0ed185c75afd0afa0fed98e91b37928f5689150f', type: "button", class: "dso-tertiary open-modal-button", ref: (element) => (this.buttonElement = element), onClick: () => this.openModal() }, h("span", { key: '843045b7dd0352c6086d9cbeaf5ede722ebab9fd', class: "sr-only" }, "tabel ", caption !== null && caption !== void 0 ? caption : "", " "), h("span", { key: '799a93a9bbb45e81bb28ce7962b6bfb6d496e110' }, "vergroten"), h("dso-icon", { key: '6cb6608bfbc75fda7097d772ee348e0128808155', icon: "external-link" }))))), this.modalActive && (h("div", { key: '50d963ebb8a22c31a3f7afdc3f10787d948fbc57', class: "dso-header" }, h("h2", { key: '182a1f7c968e360295a260798cbd46d15e00d22d', id: this.labelledbyId, class: { "sr-only": !caption } }, caption || "Uitvergrote tabel dialoog"), h("button", { key: '2590c8227264090f867af9b2768de31a68ea47ac', type: "button", class: "dso-close", onClick: () => this.closeModal() }, h("dso-icon", { key: '7683598fc37fb2da97292ab4fa13621f2f1c20e6', icon: "times" }), h("span", { key: 'fe6b5126af1678abef39cfd9fc983356323dd2d5', class: "sr-only" }, "Sluiten")))), h("div", { key: '0ef436349c8c72aa96f61fc7a84284d6b0a2e5e1', class: { "dso-body": this.modalActive, "dso-table-body": true } }, h("slot", { key: 'f3d14e2988b79b07a0f4235ff6b3f82b04807de2' }))))));
|
|
35
35
|
}
|
|
36
36
|
openModal() {
|
|
37
37
|
this.placeholderHeight = this.host.clientHeight;
|
|
@@ -64,7 +64,7 @@ export class Tabs {
|
|
|
64
64
|
(_a = this.mutationObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
|
|
65
65
|
}
|
|
66
66
|
render() {
|
|
67
|
-
return (h(Host, { key: '
|
|
67
|
+
return (h(Host, { key: 'b782efe0ddc342dd3ee576d3d089ce11e722ecdb' }, h("div", { key: 'b814881b616f7b6e9aa3b90c5e5e4c9e698ccce5', class: "tabs", role: "tablist", onKeyUp: this.keyUpHandler }, h("slot", { key: '3c5624281b6985c11d5151848e20cdee9ab165cf' })), h("div", { key: 'd6497e4ebfc5e2de3b0ec2e532214c9184994588', role: "tabpanel", tabindex: "0" }, h("slot", { key: '11fdef18f42f99efa7b02c53108b06311109675a', name: "panel" }))));
|
|
68
68
|
}
|
|
69
69
|
static get is() { return "dso-tabs"; }
|
|
70
70
|
static get encapsulation() { return "shadow"; }
|
|
@@ -44,7 +44,7 @@ export class Toggletip {
|
|
|
44
44
|
};
|
|
45
45
|
}
|
|
46
46
|
render() {
|
|
47
|
-
return (h(Fragment, null, h("dso-info-button", { key: '
|
|
47
|
+
return (h(Fragment, null, h("dso-info-button", { key: 'ed1c4c1dd5ff84030e74ce568666481a546dbef5', "aria-describedby": "toggle", onClick: this.click, label: this.label, active: this.active, secondary: this.secondary, ref: (element) => (this.infoButton = element) }), h("dso-tooltip", { key: '48d22cbdbf55a6b73b72b1b52047329661af9837', stateless: true, descriptive: true, id: "toggle", strategy: "absolute", active: this.active, position: this.position, small: this.small }, h("slot", { key: '9261b395053da5a89f5d4d2edf6f7e0e6661a95b' }))));
|
|
48
48
|
}
|
|
49
49
|
static get is() { return "dso-toggletip"; }
|
|
50
50
|
static get encapsulation() { return "shadow"; }
|
|
@@ -189,7 +189,7 @@ export class Tooltip {
|
|
|
189
189
|
}
|
|
190
190
|
}
|
|
191
191
|
render() {
|
|
192
|
-
return (h(Host, { key: '
|
|
192
|
+
return (h(Host, { key: '65a589c9c6b0e0b893dca1c59d81b09a896d8653', class: { hidden: this.hidden }, role: "tooltip", onClick: this.listenClick }, h("div", { key: 'ea85cf288a414a7a206749f6f77c46e6d21246d9', class: clsx("tooltip", { in: this.active }) }, !this.noArrow && h("div", { key: '1c3cac60088a4bdf9f5fc12157b509112cffa4d4', "data-popper-arrow": true, class: "tooltip-arrow" }), h("div", { key: 'be5c98d6bc64027526c2722e8d3c883c329333d8', "aria-hidden": !this.descriptive || undefined, class: clsx("tooltip-inner", { "dso-small": this.small }) }, h("slot", { key: '2436ff2bd355779bb4c01e7938b7430175ac5bb9' })))));
|
|
193
193
|
}
|
|
194
194
|
activatePopper() {
|
|
195
195
|
var _a;
|
|
@@ -174,7 +174,7 @@ export class TreeView {
|
|
|
174
174
|
}
|
|
175
175
|
render() {
|
|
176
176
|
var _a;
|
|
177
|
-
return (h("div", { key: '
|
|
177
|
+
return (h("div", { key: 'df518bf4e90740863ffefdbd13598671010a8126', id: "tree", class: "dso-tree", onKeyDown: (e) => this.keyDownListener(e), ref: (element) => (this.tree = element) }, h("ul", { key: '17b6a9e1c6051321ef13dff80d28876bda733ad9', role: "tree", "aria-label": "Objectenboom" }, (_a = this.collection) === null || _a === void 0 ? void 0 : _a.map((item, index) => (h(DsoTreeItem, { owner: this, ancestors: [], item: item, index: index, level: 1, setSize: this.collection.length }))))));
|
|
178
178
|
}
|
|
179
179
|
static get is() { return "dso-tree-view"; }
|
|
180
180
|
static get encapsulation() { return "shadow"; }
|
|
@@ -158,7 +158,7 @@ export class ViewerGrid {
|
|
|
158
158
|
}
|
|
159
159
|
}
|
|
160
160
|
render() {
|
|
161
|
-
return (h(Fragment, null, h("slot", { key: '
|
|
161
|
+
return (h(Fragment, null, h("slot", { key: 'ac6069fa519432697e22d6f5675da589a8e39026', name: "top-bar" }), h("div", { key: '8649818c89255fa5f928b422aa0522f807fc6313', class: "viewer-grid-columns" }, this.tabView && (h("nav", { key: '4b0939e88ed178a5d2f951e7d17be7fa38bbb9fd', class: "dso-navbar" }, h("ul", { key: 'f06385a28cb4cf3aa20587b1fcf4a2189dfe49aa', class: "dso-nav dso-nav-sub" }, viewerGridTabs.map((tab) => (h("li", { key: tab, class: clsx({ "dso-active": this.activeTab === tab }) }, h("button", { type: "button", class: "dso-tertiary", onClick: () => this.switchActiveTab(tab) }, viewerGridTabLabelMap[tab]))))))), (!this.tabView || (this.tabView && this.activeTab === "search")) && (h(MainPanel, { key: '5ec42973090737a661a3a3cce7c1b443043e7351', tabView: this.tabView, mainSize: this.mainSize, documentPanelOpen: this.documentPanelOpen, mainPanelExpanded: this.mainPanelExpanded, mainPanelHidden: this.mainPanelHidden, toggleMainPanel: this.toggleMainPanel, dsoMainSizeChangeAnimationEnd: this.dsoMainSizeChangeAnimationEnd })), (!this.tabView || (this.tabView && this.activeTab === "search")) && (h(FilterPanel, { key: 'c007f7915f4c4d2fe372700aa4d39cf1b7e1b8b7', title: this.filterPanelTitle, ref: (element) => (this.filterPanel = element), dsoCloseFilterPanel: (e) => this.dsoCloseFilterPanel.emit({ originalEvent: e }) })), (!this.tabView || (this.tabView && this.activeTab === "map")) && (h("div", { key: '7556ea286b75bf6a0ada1c086aa69732ba008262', class: "map", ref: (element) => (this.mapElement = element) }, h("slot", { key: 'ff2507e5a54987f338e8fc5671deef0886f01d71', name: "map" }))), ((!this.tabView && this.documentPanelOpen) || (this.tabView && this.activeTab === "document")) && (h(DocumentPanel, { key: 'c1b327f81a4a7e77a9f83cc260e77c07d423cd7b', tabView: this.tabView, panelSize: this.documentPanelSize, shrinkDocumentPanel: this.shrinkDocumentPanel, expandDocumentPanel: this.expandDocumentPanel, dsoDocumentPanelSizeChangeAnimationEnd: this.dsoDocumentPanelSizeChangeAnimationEnd })), h(Overlay, { key: 'd07c8f2a88b40d3462b49f41af7b107dce9e1210', ref: (element) => (this.overlay = element), dsoCloseOverlay: (e) => this.dsoCloseOverlay.emit({ originalEvent: e }) }))));
|
|
162
162
|
}
|
|
163
163
|
static get is() { return "dso-viewer-grid"; }
|
|
164
164
|
static get encapsulation() { return "shadow"; }
|
|
@@ -34,6 +34,38 @@ const DropdownMenu = /*@__PURE__*/ proxyCustomElement(class DropdownMenu extends
|
|
|
34
34
|
this.toggleOptions(false);
|
|
35
35
|
}
|
|
36
36
|
};
|
|
37
|
+
this.keyDownListener = (event) => {
|
|
38
|
+
if (event.defaultPrevented || !this.open) {
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
switch (event.key) {
|
|
42
|
+
case "Tab":
|
|
43
|
+
if (event.shiftKey) {
|
|
44
|
+
this.tabInPopup(this.tabbables(true), -1);
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
this.tabInPopup(this.tabbables(true), 1);
|
|
48
|
+
}
|
|
49
|
+
break;
|
|
50
|
+
case "ArrowDown":
|
|
51
|
+
this.tabInPopup(this.tabbables(false), 1);
|
|
52
|
+
break;
|
|
53
|
+
case "ArrowUp":
|
|
54
|
+
this.tabInPopup(this.tabbables(false), -1);
|
|
55
|
+
break;
|
|
56
|
+
case "Escape":
|
|
57
|
+
this.escape();
|
|
58
|
+
break;
|
|
59
|
+
case " ":
|
|
60
|
+
if (event.target instanceof HTMLElement) {
|
|
61
|
+
event.target.click();
|
|
62
|
+
}
|
|
63
|
+
break;
|
|
64
|
+
default:
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
event.preventDefault();
|
|
68
|
+
};
|
|
37
69
|
this.escape = () => {
|
|
38
70
|
this.button.focus();
|
|
39
71
|
this.toggleOptions(false);
|
|
@@ -126,41 +158,13 @@ const DropdownMenu = /*@__PURE__*/ proxyCustomElement(class DropdownMenu extends
|
|
|
126
158
|
this.cleanUp = undefined;
|
|
127
159
|
}
|
|
128
160
|
}
|
|
161
|
+
connectedCallback() {
|
|
162
|
+
this.host.addEventListener("keydown", this.keyDownListener);
|
|
163
|
+
}
|
|
129
164
|
disconnectedCallback() {
|
|
165
|
+
this.host.removeEventListener("keydown", this.keyDownListener);
|
|
130
166
|
this.toggleOptions(false);
|
|
131
167
|
}
|
|
132
|
-
keyDownListener(event) {
|
|
133
|
-
if (event.defaultPrevented || !this.open) {
|
|
134
|
-
return;
|
|
135
|
-
}
|
|
136
|
-
switch (event.key) {
|
|
137
|
-
case "Tab":
|
|
138
|
-
if (event.shiftKey) {
|
|
139
|
-
this.tabInPopup(this.tabbables(true), -1);
|
|
140
|
-
}
|
|
141
|
-
else {
|
|
142
|
-
this.tabInPopup(this.tabbables(true), 1);
|
|
143
|
-
}
|
|
144
|
-
break;
|
|
145
|
-
case "ArrowDown":
|
|
146
|
-
this.tabInPopup(this.tabbables(false), 1);
|
|
147
|
-
break;
|
|
148
|
-
case "ArrowUp":
|
|
149
|
-
this.tabInPopup(this.tabbables(false), -1);
|
|
150
|
-
break;
|
|
151
|
-
case "Escape":
|
|
152
|
-
this.escape();
|
|
153
|
-
break;
|
|
154
|
-
case " ":
|
|
155
|
-
if (event.target instanceof HTMLElement) {
|
|
156
|
-
event.target.click();
|
|
157
|
-
}
|
|
158
|
-
break;
|
|
159
|
-
default:
|
|
160
|
-
return;
|
|
161
|
-
}
|
|
162
|
-
event.preventDefault();
|
|
163
|
-
}
|
|
164
168
|
tabInPopup(tabbables, direction) {
|
|
165
169
|
var _a;
|
|
166
170
|
const currentIndex = tabbables.findIndex((e) => e === getActiveElement());
|
|
@@ -174,7 +178,7 @@ const DropdownMenu = /*@__PURE__*/ proxyCustomElement(class DropdownMenu extends
|
|
|
174
178
|
(_a = tabbables[nextIndex]) === null || _a === void 0 ? void 0 : _a.focus();
|
|
175
179
|
}
|
|
176
180
|
render() {
|
|
177
|
-
return (h(Host, { key: '
|
|
181
|
+
return (h(Host, { key: 'ca433c0742f0b1a86f40f821dde1ced6c103f6d5', onFocusout: this.focusOutListener }, h("slot", { key: '049bbf82db468f4912615b75628f82335b2b13ab', name: "toggle" }), h("div", { key: 'a480ad769709596bac365e26186d0ff39d4a9646', popover: "manual", ref: (element) => (this.popoverElement = element) }, h("slot", { key: '6aa0977a24f5af0acc2883b2afe7a7a99ec26f7d' }))));
|
|
178
182
|
}
|
|
179
183
|
get host() { return this; }
|
|
180
184
|
static get style() { return dropdownMenuCss; }
|
|
@@ -183,7 +187,7 @@ const DropdownMenu = /*@__PURE__*/ proxyCustomElement(class DropdownMenu extends
|
|
|
183
187
|
"dropdownAlign": [1, "dropdown-align"],
|
|
184
188
|
"dropdownOptionsOffset": [2, "dropdown-options-offset"],
|
|
185
189
|
"checkable": [4]
|
|
186
|
-
}, [[8, "click", "onClick"]
|
|
190
|
+
}, [[8, "click", "onClick"]]]);
|
|
187
191
|
function defineCustomElement() {
|
|
188
192
|
if (typeof customElements === "undefined") {
|
|
189
193
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"dropdown-menu.js","mappings":"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","names":["__stencil_proxyCustomElement","uuidv4"],"sources":["src/components/dropdown-menu/dropdown-menu.scss?tag=dso-dropdown-menu&encapsulation=shadow","src/components/dropdown-menu/dropdown-menu.tsx"],"sourcesContent":["@use \"~dso-toolkit/src/components/dropdown-menu\";\r\n\r\n:host(:focus) {\r\n outline: none;\r\n}\r\n\r\n:host {\r\n @include dropdown-menu.root();\r\n}\r\n\r\ndiv[popover] {\r\n margin: 0 !important;\r\n border: 0;\r\n padding: 0;\r\n background-color: transparent;\r\n overflow: unset;\r\n}\r\n","import { autoUpdate, computePosition, flip, offset } from \"@floating-ui/dom\";\r\nimport { Component, Element, Host, Listen, Prop, h } from \"@stencil/core\";\r\nimport { FocusableElement, tabbable } from \"tabbable\";\r\nimport { v4 as uuidv4 } from \"uuid\";\r\n\r\nimport { getActiveElement } from \"../../utils/get-active-element\";\r\n\r\n@Component({\r\n tag: \"dso-dropdown-menu\",\r\n styleUrl: \"dropdown-menu.scss\",\r\n shadow: true,\r\n})\r\nexport class DropdownMenu {\r\n /**\r\n * Whether the menu is open or closed.\r\n * This attribute is reflected and mutable.\r\n */\r\n @Prop({ reflect: true, mutable: true })\r\n open = false;\r\n\r\n /**\r\n * Alignment of the dropdown\r\n */\r\n @Prop()\r\n dropdownAlign: \"left\" | \"right\" = \"left\";\r\n\r\n /**\r\n * Space between button and dropdown options\r\n */\r\n @Prop()\r\n dropdownOptionsOffset = 2;\r\n\r\n /**\r\n * Whether the menu is checkable.\r\n */\r\n @Prop()\r\n checkable = false;\r\n\r\n @Element()\r\n host!: HTMLDsoDropdownMenuElement;\r\n\r\n private cleanUp: ReturnType<typeof autoUpdate> | undefined;\r\n\r\n private popoverElement: HTMLDivElement | undefined;\r\n\r\n get button(): HTMLButtonElement {\r\n const button = this.host.querySelector('button[slot=\"toggle\"]');\r\n\r\n if (!(button instanceof HTMLButtonElement)) {\r\n throw new ReferenceError(\"Mandatory toggle button not found\");\r\n }\r\n\r\n return button;\r\n }\r\n\r\n private tabbables(withButton: boolean): FocusableElement[] {\r\n const tabbables = this.host.isConnected ? tabbable(this.host) : [];\r\n\r\n return withButton ? tabbables : tabbables.filter((element) => element !== this.button);\r\n }\r\n\r\n componentDidLoad() {\r\n this.button.setAttribute(\"aria-haspopup\", \"menu\");\r\n this.button.setAttribute(\"aria-expanded\", \"false\");\r\n if (!this.button.id) {\r\n this.button.id = uuidv4();\r\n }\r\n\r\n const dropdownOptionsElement = this.host.querySelector(\".dso-dropdown-options\");\r\n\r\n if (!(dropdownOptionsElement instanceof HTMLElement)) {\r\n throw new Error(\"dropdown options element is not instanceof HTMLElement\");\r\n }\r\n\r\n dropdownOptionsElement.setAttribute(\"role\", \"menu\");\r\n dropdownOptionsElement.setAttribute(\"aria-labelledby\", this.button.id);\r\n\r\n for (const ul of Array.from(this.host.getElementsByTagName(\"ul\"))) {\r\n ul.setAttribute(\"role\", \"group\");\r\n for (const li of Array.from(ul.getElementsByTagName(\"li\"))) {\r\n li.setAttribute(\"role\", \"none\");\r\n }\r\n }\r\n }\r\n\r\n componentDidRender() {\r\n for (const li of Array.from(this.host.getElementsByTagName(\"li\"))) {\r\n for (const tab of this.host.isConnected ? tabbable(li) : []) {\r\n tab.setAttribute(\"role\", this.checkable ? \"menuitemradio\" : \"menuitem\");\r\n\r\n if (this.checkable) {\r\n tab.setAttribute(\"aria-checked\", li.classList.contains(\"dso-checked\").toString());\r\n }\r\n }\r\n }\r\n\r\n this.button.setAttribute(\"aria-expanded\", this.open ? \"true\" : \"false\");\r\n\r\n if (this.popoverElement && !this.cleanUp) {\r\n const element = this.popoverElement;\r\n this.cleanUp = autoUpdate(this.button, element, () => {\r\n computePosition(this.button, element, {\r\n strategy: \"fixed\",\r\n middleware: [\r\n offset(this.dropdownOptionsOffset),\r\n flip({\r\n padding: this.dropdownOptionsOffset,\r\n }),\r\n ],\r\n placement: this.dropdownAlign === \"right\" ? \"bottom-end\" : \"bottom-start\",\r\n }).then(({ x, y }) => {\r\n Object.assign(element.style, {\r\n left: `${x}px`,\r\n top: `${y}px`,\r\n });\r\n });\r\n });\r\n }\r\n }\r\n\r\n @Listen(\"click\", { target: \"window\" })\r\n onClick(event: MouseEvent) {\r\n const composedPath = event.composedPath();\r\n\r\n if (this.isToggleButtonEvent(composedPath)) {\r\n this.toggleOptions();\r\n } else if (this.open && this.isMenuItemEvent(composedPath)) {\r\n this.toggleOptions(false);\r\n }\r\n }\r\n\r\n private isToggleButtonEvent(composedPath: EventTarget[]) {\r\n return composedPath.includes(this.button);\r\n }\r\n\r\n private isMenuItemEvent(composedPath: EventTarget[]) {\r\n return composedPath.includes(this.host) && !this.isToggleButtonEvent(composedPath);\r\n }\r\n\r\n private toggleOptions(force?: boolean) {\r\n this.open = force ?? !this.open;\r\n if (this.popoverElement?.isConnected) {\r\n this.popoverElement?.togglePopover(this.open);\r\n }\r\n\r\n if (!this.open && this.cleanUp) {\r\n this.cleanUp();\r\n this.cleanUp = undefined;\r\n }\r\n }\r\n\r\n disconnectedCallback() {\r\n this.toggleOptions(false);\r\n }\r\n\r\n private focusOutListener = (event: FocusEvent) => {\r\n if (\r\n this.open &&\r\n (!(event.relatedTarget instanceof HTMLElement) || !this.tabbables(true).includes(event.relatedTarget))\r\n ) {\r\n this.toggleOptions(false);\r\n }\r\n };\r\n\r\n @Listen(\"keydown\", { target: \"window\" })\r\n keyDownListener(event: KeyboardEvent) {\r\n if (event.defaultPrevented || !this.open) {\r\n return;\r\n }\r\n\r\n switch (event.key) {\r\n case \"Tab\":\r\n if (event.shiftKey) {\r\n this.tabInPopup(this.tabbables(true), -1);\r\n } else {\r\n this.tabInPopup(this.tabbables(true), 1);\r\n }\r\n\r\n break;\r\n case \"ArrowDown\":\r\n this.tabInPopup(this.tabbables(false), 1);\r\n break;\r\n\r\n case \"ArrowUp\":\r\n this.tabInPopup(this.tabbables(false), -1);\r\n break;\r\n\r\n case \"Escape\":\r\n this.escape();\r\n break;\r\n\r\n case \" \":\r\n if (event.target instanceof HTMLElement) {\r\n event.target.click();\r\n }\r\n\r\n break;\r\n\r\n default:\r\n return;\r\n }\r\n\r\n event.preventDefault();\r\n }\r\n\r\n private tabInPopup(tabbables: FocusableElement[], direction: number) {\r\n const currentIndex = tabbables.findIndex((e) => e === getActiveElement());\r\n\r\n let nextIndex = currentIndex + direction;\r\n if (nextIndex >= tabbables.length) {\r\n nextIndex = 0;\r\n } else if (nextIndex < 0) {\r\n nextIndex = tabbables.length - 1;\r\n }\r\n\r\n tabbables[nextIndex]?.focus();\r\n }\r\n\r\n private escape = () => {\r\n this.button.focus();\r\n this.toggleOptions(false);\r\n };\r\n\r\n render() {\r\n return (\r\n <Host onFocusout={this.focusOutListener}>\r\n <slot name=\"toggle\" />\r\n <div popover=\"manual\" ref={(element) => (this.popoverElement = element)}>\r\n <slot />\r\n </div>\r\n </Host>\r\n );\r\n }\r\n}\r\n"],"version":3}
|
|
1
|
+
{"file":"dropdown-menu.js","mappings":"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","names":["__stencil_proxyCustomElement","uuidv4"],"sources":["src/components/dropdown-menu/dropdown-menu.scss?tag=dso-dropdown-menu&encapsulation=shadow","src/components/dropdown-menu/dropdown-menu.tsx"],"sourcesContent":["@use \"~dso-toolkit/src/components/dropdown-menu\";\r\n\r\n:host(:focus) {\r\n outline: none;\r\n}\r\n\r\n:host {\r\n @include dropdown-menu.root();\r\n}\r\n\r\ndiv[popover] {\r\n margin: 0 !important;\r\n border: 0;\r\n padding: 0;\r\n background-color: transparent;\r\n overflow: unset;\r\n}\r\n","import { autoUpdate, computePosition, flip, offset } from \"@floating-ui/dom\";\r\nimport { Component, Element, Host, Listen, Prop, h } from \"@stencil/core\";\r\nimport { FocusableElement, tabbable } from \"tabbable\";\r\nimport { v4 as uuidv4 } from \"uuid\";\r\n\r\nimport { getActiveElement } from \"../../utils/get-active-element\";\r\n\r\n@Component({\r\n tag: \"dso-dropdown-menu\",\r\n styleUrl: \"dropdown-menu.scss\",\r\n shadow: true,\r\n})\r\nexport class DropdownMenu {\r\n /**\r\n * Whether the menu is open or closed.\r\n * This attribute is reflected and mutable.\r\n */\r\n @Prop({ reflect: true, mutable: true })\r\n open = false;\r\n\r\n /**\r\n * Alignment of the dropdown\r\n */\r\n @Prop()\r\n dropdownAlign: \"left\" | \"right\" = \"left\";\r\n\r\n /**\r\n * Space between button and dropdown options\r\n */\r\n @Prop()\r\n dropdownOptionsOffset = 2;\r\n\r\n /**\r\n * Whether the menu is checkable.\r\n */\r\n @Prop()\r\n checkable = false;\r\n\r\n @Element()\r\n host!: HTMLDsoDropdownMenuElement;\r\n\r\n private cleanUp: ReturnType<typeof autoUpdate> | undefined;\r\n\r\n private popoverElement: HTMLDivElement | undefined;\r\n\r\n get button(): HTMLButtonElement {\r\n const button = this.host.querySelector('button[slot=\"toggle\"]');\r\n\r\n if (!(button instanceof HTMLButtonElement)) {\r\n throw new ReferenceError(\"Mandatory toggle button not found\");\r\n }\r\n\r\n return button;\r\n }\r\n\r\n private tabbables(withButton: boolean): FocusableElement[] {\r\n const tabbables = this.host.isConnected ? tabbable(this.host) : [];\r\n\r\n return withButton ? tabbables : tabbables.filter((element) => element !== this.button);\r\n }\r\n\r\n componentDidLoad() {\r\n this.button.setAttribute(\"aria-haspopup\", \"menu\");\r\n this.button.setAttribute(\"aria-expanded\", \"false\");\r\n if (!this.button.id) {\r\n this.button.id = uuidv4();\r\n }\r\n\r\n const dropdownOptionsElement = this.host.querySelector(\".dso-dropdown-options\");\r\n\r\n if (!(dropdownOptionsElement instanceof HTMLElement)) {\r\n throw new Error(\"dropdown options element is not instanceof HTMLElement\");\r\n }\r\n\r\n dropdownOptionsElement.setAttribute(\"role\", \"menu\");\r\n dropdownOptionsElement.setAttribute(\"aria-labelledby\", this.button.id);\r\n\r\n for (const ul of Array.from(this.host.getElementsByTagName(\"ul\"))) {\r\n ul.setAttribute(\"role\", \"group\");\r\n for (const li of Array.from(ul.getElementsByTagName(\"li\"))) {\r\n li.setAttribute(\"role\", \"none\");\r\n }\r\n }\r\n }\r\n\r\n componentDidRender() {\r\n for (const li of Array.from(this.host.getElementsByTagName(\"li\"))) {\r\n for (const tab of this.host.isConnected ? tabbable(li) : []) {\r\n tab.setAttribute(\"role\", this.checkable ? \"menuitemradio\" : \"menuitem\");\r\n\r\n if (this.checkable) {\r\n tab.setAttribute(\"aria-checked\", li.classList.contains(\"dso-checked\").toString());\r\n }\r\n }\r\n }\r\n\r\n this.button.setAttribute(\"aria-expanded\", this.open ? \"true\" : \"false\");\r\n\r\n if (this.popoverElement && !this.cleanUp) {\r\n const element = this.popoverElement;\r\n this.cleanUp = autoUpdate(this.button, element, () => {\r\n computePosition(this.button, element, {\r\n strategy: \"fixed\",\r\n middleware: [\r\n offset(this.dropdownOptionsOffset),\r\n flip({\r\n padding: this.dropdownOptionsOffset,\r\n }),\r\n ],\r\n placement: this.dropdownAlign === \"right\" ? \"bottom-end\" : \"bottom-start\",\r\n }).then(({ x, y }) => {\r\n Object.assign(element.style, {\r\n left: `${x}px`,\r\n top: `${y}px`,\r\n });\r\n });\r\n });\r\n }\r\n }\r\n\r\n @Listen(\"click\", { target: \"window\" })\r\n onClick(event: MouseEvent) {\r\n const composedPath = event.composedPath();\r\n\r\n if (this.isToggleButtonEvent(composedPath)) {\r\n this.toggleOptions();\r\n } else if (this.open && this.isMenuItemEvent(composedPath)) {\r\n this.toggleOptions(false);\r\n }\r\n }\r\n\r\n private isToggleButtonEvent(composedPath: EventTarget[]) {\r\n return composedPath.includes(this.button);\r\n }\r\n\r\n private isMenuItemEvent(composedPath: EventTarget[]) {\r\n return composedPath.includes(this.host) && !this.isToggleButtonEvent(composedPath);\r\n }\r\n\r\n private toggleOptions(force?: boolean) {\r\n this.open = force ?? !this.open;\r\n if (this.popoverElement?.isConnected) {\r\n this.popoverElement?.togglePopover(this.open);\r\n }\r\n\r\n if (!this.open && this.cleanUp) {\r\n this.cleanUp();\r\n this.cleanUp = undefined;\r\n }\r\n }\r\n\r\n connectedCallback() {\r\n this.host.addEventListener(\"keydown\", this.keyDownListener);\r\n }\r\n\r\n disconnectedCallback() {\r\n this.host.removeEventListener(\"keydown\", this.keyDownListener);\r\n\r\n this.toggleOptions(false);\r\n }\r\n\r\n private focusOutListener = (event: FocusEvent) => {\r\n if (\r\n this.open &&\r\n (!(event.relatedTarget instanceof HTMLElement) || !this.tabbables(true).includes(event.relatedTarget))\r\n ) {\r\n this.toggleOptions(false);\r\n }\r\n };\r\n\r\n private keyDownListener = (event: KeyboardEvent) => {\r\n if (event.defaultPrevented || !this.open) {\r\n return;\r\n }\r\n\r\n switch (event.key) {\r\n case \"Tab\":\r\n if (event.shiftKey) {\r\n this.tabInPopup(this.tabbables(true), -1);\r\n } else {\r\n this.tabInPopup(this.tabbables(true), 1);\r\n }\r\n\r\n break;\r\n case \"ArrowDown\":\r\n this.tabInPopup(this.tabbables(false), 1);\r\n break;\r\n\r\n case \"ArrowUp\":\r\n this.tabInPopup(this.tabbables(false), -1);\r\n break;\r\n\r\n case \"Escape\":\r\n this.escape();\r\n break;\r\n\r\n case \" \":\r\n if (event.target instanceof HTMLElement) {\r\n event.target.click();\r\n }\r\n\r\n break;\r\n\r\n default:\r\n return;\r\n }\r\n\r\n event.preventDefault();\r\n };\r\n\r\n private tabInPopup(tabbables: FocusableElement[], direction: number) {\r\n const currentIndex = tabbables.findIndex((e) => e === getActiveElement());\r\n\r\n let nextIndex = currentIndex + direction;\r\n if (nextIndex >= tabbables.length) {\r\n nextIndex = 0;\r\n } else if (nextIndex < 0) {\r\n nextIndex = tabbables.length - 1;\r\n }\r\n\r\n tabbables[nextIndex]?.focus();\r\n }\r\n\r\n private escape = () => {\r\n this.button.focus();\r\n this.toggleOptions(false);\r\n };\r\n\r\n render() {\r\n return (\r\n <Host onFocusout={this.focusOutListener}>\r\n <slot name=\"toggle\" />\r\n <div popover=\"manual\" ref={(element) => (this.popoverElement = element)}>\r\n <slot />\r\n </div>\r\n </Host>\r\n );\r\n }\r\n}\r\n"],"version":3}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { proxyCustomElement, HTMLElement, createEvent,
|
|
1
|
+
import { h, proxyCustomElement, HTMLElement, createEvent, forceUpdate, Host, Fragment } from '@stencil/core/internal/client';
|
|
2
2
|
import { c as clsx } from './clsx.js';
|
|
3
3
|
import { d as debounce } from './index2.js';
|
|
4
4
|
import { i as i18n } from './i18n.js';
|
|
@@ -28,7 +28,12 @@ const translations = {
|
|
|
28
28
|
},
|
|
29
29
|
};
|
|
30
30
|
|
|
31
|
-
const
|
|
31
|
+
const MenuItem = ({ item, onClick, key, ref }) => {
|
|
32
|
+
return (h("li", { class: clsx({ "dso-active": item.active }), key: key, ref: ref },
|
|
33
|
+
h("a", { href: item.url, "aria-current": item.active ? "page" : undefined, onClick: onClick }, item.label)));
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
const headerCss = "@charset \"UTF-8\";*,*::after,*::before{box-sizing:border-box}:host{display:block}:host([is-compact]) ::slotted([slot=logo]){--_dso-logo-block-size:2.5rem !important}:host([is-compact]) .dso-header{flex-wrap:nowrap}:host([is-compact]) dso-dropdown-menu .dso-dropdown-options{inline-size:100%}:host(:not([is-compact])) .dso-header{align-items:center}:host(:not([is-compact])) dso-dropdown-menu .dso-dropdown-options{inline-size:375px}.dso-header{border-block-end:1px solid #ccc;display:flex;flex-wrap:wrap;position:relative}.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+.logout,.dso-header-session .logout+.help,.dso-header-session .login+.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%;max-inline-size:100%;position:relative}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)}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:not(:hover):not(:focus-visible),dso-dropdown-menu .dso-dropdown-options ul li button:visited:not(:hover):not(:focus-visible){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.ready .menu-user-home{margin-inline-start:auto}.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;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;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 .main-menu-item-icon{block-size:1em;margin-inline-end:8px;position:relative;inset-block-start:-2px;inline-size:1.2em}.dso-nav .dropdown-menu-item .main-menu-item-icon{margin-inline-end:0}";
|
|
32
37
|
|
|
33
38
|
const minDesktopViewportWidth = 992;
|
|
34
39
|
const Header = /*@__PURE__*/ proxyCustomElement(class Header extends HTMLElement {
|
|
@@ -42,9 +47,10 @@ const Header = /*@__PURE__*/ proxyCustomElement(class Header extends HTMLElement
|
|
|
42
47
|
*/
|
|
43
48
|
this.mainMenu = [];
|
|
44
49
|
/**
|
|
45
|
-
*
|
|
50
|
+
* Set to "always" to force the header to be compact. Otherwise it will be compact when
|
|
51
|
+
* the viewport is smaller than 992px.
|
|
46
52
|
*/
|
|
47
|
-
this.
|
|
53
|
+
this.compact = "auto";
|
|
48
54
|
/**
|
|
49
55
|
* Used to show the login/logout option. 'none' renders nothing.
|
|
50
56
|
*/
|
|
@@ -53,83 +59,73 @@ const Header = /*@__PURE__*/ proxyCustomElement(class Header extends HTMLElement
|
|
|
53
59
|
* Show a help-button or link in the header
|
|
54
60
|
*/
|
|
55
61
|
this.showHelp = false;
|
|
56
|
-
|
|
62
|
+
/**
|
|
63
|
+
* Set this to true when the user is at "Mijn Omgevingsloket".
|
|
64
|
+
*/
|
|
65
|
+
this.userHomeActive = false;
|
|
66
|
+
this.visibleMenuItemsCount = undefined;
|
|
57
67
|
this.dropdownOptionsOffset = 0;
|
|
58
|
-
this.
|
|
59
|
-
this.
|
|
68
|
+
this.onWindowResize = debounce(() => this.resetVisibleMenuItems(), 20);
|
|
69
|
+
this.resetVisibleMenuItems = () => {
|
|
70
|
+
this.visibleMenuItemsCount = undefined;
|
|
71
|
+
forceUpdate(this.host);
|
|
72
|
+
};
|
|
73
|
+
this.clickHandler = (e, type, options) => {
|
|
60
74
|
var _a, _b;
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
}
|
|
68
|
-
}, 100);
|
|
69
|
-
this.MenuItem = (item) => {
|
|
70
|
-
return (h("li", { class: item.active ? "dso-active" : undefined }, h("a", { href: item.url, "aria-current": item.active ? "page" : undefined, onClick: (e) => this.clickHandler(e, "menuItem", { menuItem: item }) }, item.label)));
|
|
75
|
+
this.dsoHeaderClick.emit({
|
|
76
|
+
originalEvent: e,
|
|
77
|
+
isModifiedEvent: isModifiedEvent(e),
|
|
78
|
+
type,
|
|
79
|
+
menuItem: options === null || options === void 0 ? void 0 : options.menuItem,
|
|
80
|
+
url: (_a = options === null || options === void 0 ? void 0 : options.url) !== null && _a !== void 0 ? _a : (_b = options === null || options === void 0 ? void 0 : options.menuItem) === null || _b === void 0 ? void 0 : _b.url,
|
|
81
|
+
});
|
|
71
82
|
};
|
|
83
|
+
this.menuItemElementRefs = [];
|
|
84
|
+
this.text = i18n(() => this.host, translations);
|
|
72
85
|
}
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
this.dsoHeaderClick.emit({
|
|
76
|
-
originalEvent: e,
|
|
77
|
-
isModifiedEvent: isModifiedEvent(e),
|
|
78
|
-
type,
|
|
79
|
-
menuItem: options === null || options === void 0 ? void 0 : options.menuItem,
|
|
80
|
-
url: (_a = options === null || options === void 0 ? void 0 : options.url) !== null && _a !== void 0 ? _a : (_b = options === null || options === void 0 ? void 0 : options.menuItem) === null || _b === void 0 ? void 0 : _b.url,
|
|
81
|
-
});
|
|
86
|
+
mainMenuChanged() {
|
|
87
|
+
this.resetVisibleMenuItems();
|
|
82
88
|
}
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
this.setDropDownMenu();
|
|
86
|
-
return;
|
|
87
|
-
}
|
|
88
|
-
this.showDropDown = value === "always";
|
|
89
|
+
resizeListener() {
|
|
90
|
+
this.onWindowResize();
|
|
89
91
|
}
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
return;
|
|
93
|
-
}
|
|
94
|
-
if (this.wrapper.clientWidth >= this.nav.clientWidth) {
|
|
95
|
-
return;
|
|
96
|
-
}
|
|
97
|
-
if (this.mainMenu && this.overflowMenuItems >= this.mainMenu.length) {
|
|
98
|
-
return;
|
|
99
|
-
}
|
|
100
|
-
this.overflowMenuItems++;
|
|
92
|
+
get isCompact() {
|
|
93
|
+
return this.compact === "always" || window.innerWidth < minDesktopViewportWidth;
|
|
101
94
|
}
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
if (this.showDropDown) {
|
|
120
|
-
return;
|
|
95
|
+
/**
|
|
96
|
+
* Before determining the visible menu items, all the menu items are rendered (including the dropdown menu item and the user home menu item).
|
|
97
|
+
* Then the visible menu items are calculated in componentDidRender() and ONLY when the visibleMenuItemsCount is undefined.
|
|
98
|
+
*
|
|
99
|
+
* When the window resizes or this.mainMenu changes, a reset is triggered to recalculate the visible menu items.
|
|
100
|
+
*
|
|
101
|
+
* @param navElement The navigation element to calculate the overflow menu item count for.
|
|
102
|
+
* @returns The number of menu items that can fit in the available space.
|
|
103
|
+
*/
|
|
104
|
+
calculateOverflowMenuItemCount(navElement) {
|
|
105
|
+
var _a;
|
|
106
|
+
const availableWidth = navElement.offsetWidth;
|
|
107
|
+
const lastMenuItem = this.menuItemElementRefs[this.menuItemElementRefs.length - 1];
|
|
108
|
+
const mostRightMenuItem = (_a = this.userHomeMenuItemElementRef) !== null && _a !== void 0 ? _a : lastMenuItem;
|
|
109
|
+
const dropdownMenuItem = this.dropdownMenuItemElementRef;
|
|
110
|
+
if (!mostRightMenuItem || !dropdownMenuItem || !lastMenuItem) {
|
|
111
|
+
return this.menuItemElementRefs.length;
|
|
121
112
|
}
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
113
|
+
const dropdownMenuItemEffectiveWidth = dropdownMenuItem.offsetLeft + dropdownMenuItem.offsetWidth - (lastMenuItem.offsetLeft + lastMenuItem.offsetWidth);
|
|
114
|
+
const requiredWidth = mostRightMenuItem.offsetLeft + mostRightMenuItem.offsetWidth - dropdownMenuItemEffectiveWidth;
|
|
115
|
+
if (requiredWidth <= availableWidth) {
|
|
116
|
+
return this.menuItemElementRefs.length;
|
|
125
117
|
}
|
|
126
|
-
this.
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
118
|
+
const userHomeMenuItemEffectiveWidth = this.userHomeMenuItemElementRef
|
|
119
|
+
? this.userHomeMenuItemElementRef.offsetLeft +
|
|
120
|
+
this.userHomeMenuItemElementRef.offsetWidth -
|
|
121
|
+
(dropdownMenuItem.offsetLeft + dropdownMenuItem.offsetWidth)
|
|
122
|
+
: 0;
|
|
123
|
+
const remainingWidth = availableWidth - dropdownMenuItemEffectiveWidth - userHomeMenuItemEffectiveWidth;
|
|
124
|
+
const visibleMenuItems = this.menuItemElementRefs.findIndex((menuItem) => menuItem && menuItem.offsetLeft + menuItem.offsetWidth > remainingWidth);
|
|
125
|
+
if (visibleMenuItems < 0) {
|
|
126
|
+
return this.menuItemElementRefs.length;
|
|
131
127
|
}
|
|
132
|
-
|
|
128
|
+
return visibleMenuItems;
|
|
133
129
|
}
|
|
134
130
|
calculateDropdownOptionsOffset() {
|
|
135
131
|
var _a;
|
|
@@ -139,37 +135,43 @@ const Header = /*@__PURE__*/ proxyCustomElement(class Header extends HTMLElement
|
|
|
139
135
|
return (this.host.clientHeight -
|
|
140
136
|
(((_a = this.dropdownElement) === null || _a === void 0 ? void 0 : _a.getBoundingClientRect().bottom) - this.host.getBoundingClientRect().top));
|
|
141
137
|
}
|
|
142
|
-
|
|
143
|
-
|
|
138
|
+
get visibleMainMenuItems() {
|
|
139
|
+
return typeof this.visibleMenuItemsCount === "number"
|
|
140
|
+
? this.mainMenu.slice(0, this.visibleMenuItemsCount)
|
|
141
|
+
: this.mainMenu;
|
|
144
142
|
}
|
|
145
|
-
|
|
146
|
-
|
|
143
|
+
get hiddenMainMenuItems() {
|
|
144
|
+
return typeof this.visibleMenuItemsCount === "number" ? this.mainMenu.slice(this.visibleMenuItemsCount) : [];
|
|
147
145
|
}
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
if (this.showDropDown === undefined) {
|
|
146
|
+
componentDidRender() {
|
|
147
|
+
if (!this.host.isConnected) {
|
|
151
148
|
return;
|
|
152
149
|
}
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
150
|
+
if (this.isCompact && this.dropdownElement) {
|
|
151
|
+
this.dropdownElement.dropdownOptionsOffset = this.calculateDropdownOptionsOffset();
|
|
152
|
+
}
|
|
153
|
+
if (typeof this.visibleMenuItemsCount === "undefined" && this.navElement) {
|
|
154
|
+
this.visibleMenuItemsCount = this.calculateOverflowMenuItemCount(this.navElement);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
render() {
|
|
158
|
+
return (h(Host, { key: '8e00a5489946b71addacb1b71c2f9f36d443c14f', "is-compact": this.isCompact }, h("div", { key: '220b6faaeb955c2631dd038434fb91f74f90f233', class: "dso-header" }, h("div", { key: '00800011fd196a1c59e6401309ecbd3e97d7be6f', class: "logo-container" }, h("slot", { key: '6285ba06ebca475c7d38d3fb4ab60fdbb82a60e3', name: "logo" })), this.isCompact ? this.renderCompact() : this.renderNormal())));
|
|
159
|
+
}
|
|
160
|
+
renderCompact() {
|
|
161
|
+
return ((this.mainMenu.length > 0 || this.userHomeUrl || this.authStatus !== "none") && (h("div", { class: "dropdown" }, h("dso-dropdown-menu", { "dropdown-align": "right", dropdownOptionsOffset: this.dropdownOptionsOffset, ref: (element) => (this.dropdownElement = element) }, h("button", { type: "button", slot: "toggle" }, h("span", null, this.text("menu")), h("dso-icon", { icon: "chevron-down" })), h("div", { class: "dso-dropdown-options" }, h("ul", null, this.mainMenu.map((menuItem) => (h(MenuItem, { item: menuItem, onClick: (e) => this.clickHandler(e, "menuItem", { menuItem }) }))), this.userHomeUrl && (h("li", null, h("a", { href: this.userHomeUrl, onClick: (e) => this.clickHandler(e, "userHome", { url: this.userHomeUrl }) }, this.text("userHome")))), this.userProfileUrl && this.userProfileName && this.authStatus === "loggedIn" && (h("li", null, h("a", { href: this.userProfileUrl, onClick: (e) => this.clickHandler(e, "profile", { url: this.userProfileUrl }) }, this.userProfileName, h("span", { class: "profile-label" }, " - Mijn profiel")))), this.authStatus === "loggedOut" && (h("li", null, this.loginUrl ? (h("a", { href: this.loginUrl, onClick: (e) => this.clickHandler(e, "login", { url: this.loginUrl }) }, this.text("login"))) : (h("button", { type: "button", onClick: (e) => this.clickHandler(e, "login") }, this.text("login"))))), this.authStatus === "loggedIn" && (h("li", null, this.logoutUrl ? (h("a", { href: this.logoutUrl, onClick: (e) => this.clickHandler(e, "logout", { url: this.logoutUrl }) }, this.text("logout"))) : (h("button", { type: "button", onClick: (e) => this.clickHandler(e, "logout") }, this.text("logout"))))), this.showHelp && (h("li", null, this.helpUrl ? (h("a", { href: this.helpUrl, class: "dso-tertiary", onClick: (e) => this.clickHandler(e, "help", { url: this.helpUrl }) }, h("span", null, this.text("help")), h("dso-icon", { icon: "help" }))) : (h("button", { type: "button", class: "dso-tertiary", onClick: (e) => this.clickHandler(e, "help") }, h("span", null, this.text("help")), h("dso-icon", { icon: "help" })))))))))));
|
|
162
|
+
}
|
|
163
|
+
renderNormal() {
|
|
164
|
+
this.menuItemElementRefs = [];
|
|
165
|
+
return (h(Fragment, null, h("div", { class: "dso-header-session" }, this.userProfileUrl && this.userProfileName && this.authStatus === "loggedIn" && (h("div", { class: "profile" }, h("a", { href: this.userProfileUrl, class: "dso-tertiary", onClick: (e) => this.clickHandler(e, "profile", { url: this.userProfileUrl }) }, this.userProfileName))), this.authStatus === "loggedOut" && (h("div", { class: "login" }, this.loginUrl ? (h("a", { href: this.loginUrl, class: "dso-tertiary", onClick: (e) => this.clickHandler(e, "login", { url: this.loginUrl }) }, this.text("login"))) : (h("button", { class: "dso-tertiary", type: "button", onClick: (e) => this.clickHandler(e, "login") }, this.text("login"))))), this.authStatus === "loggedIn" && (h("div", { class: "logout" }, this.logoutUrl ? (h("a", { href: this.logoutUrl, class: "dso-tertiary", onClick: (e) => this.clickHandler(e, "logout", { url: this.logoutUrl }) }, this.text("logout"))) : (h("button", { class: "dso-tertiary", type: "button", onClick: (e) => this.clickHandler(e, "logout") }, this.text("logout"))))), this.showHelp && (h("div", { class: "help" }, this.helpUrl ? (h("a", { href: this.helpUrl, class: "dso-tertiary", onClick: (e) => this.clickHandler(e, "help", { url: this.helpUrl }) }, h("span", null, this.text("help")), h("dso-icon", { icon: "help" }))) : (h("button", { class: "dso-tertiary", type: "button", onClick: (e) => this.clickHandler(e, "help") }, h("span", null, this.text("help")), h("dso-icon", { icon: "help" })))))), (this.mainMenu.length > 0 || this.userHomeUrl) && (h("nav", { class: "dso-navbar" }, h("ul", { class: clsx("dso-nav", "dso-nav-main", { ready: this.visibleMenuItemsCount !== undefined }), ref: (element) => (this.navElement = element) }, this.visibleMainMenuItems.map((menuItem, i) => (h(MenuItem, { item: menuItem, onClick: (e) => this.clickHandler(e, "menuItem", { menuItem }), key: menuItem.label, ref: (el) => (this.menuItemElementRefs[i] = el) }))), (this.visibleMenuItemsCount === undefined || this.hiddenMainMenuItems.length > 0) && (h("li", { "aria-hidden": this.visibleMenuItemsCount === undefined, ref: (el) => (this.dropdownMenuItemElementRef = el), class: "dropdown-menu-item" }, h("dso-dropdown-menu", null, h("button", { type: "button", slot: "toggle" }, h("span", null, this.text("overflowMenu")), h("dso-icon", { icon: "chevron-down", class: "main-menu-item-icon" })), h("div", { class: "dso-dropdown-options" }, h("ul", null, this.hiddenMainMenuItems.map((menuItem) => (h(MenuItem, { item: menuItem, onClick: (e) => this.clickHandler(e, "menuItem", { menuItem }) })))))))), this.userHomeUrl && (h("li", { class: clsx("menu-user-home", { "dso-active": this.userHomeActive }), ref: (el) => (this.userHomeMenuItemElementRef = el) }, h("a", { href: this.userHomeUrl, "aria-current": this.userHomeActive ? "page" : undefined, onClick: (e) => this.clickHandler(e, "userHome", { url: this.userHomeUrl }) }, h("dso-icon", { icon: "user-line", class: "main-menu-item-icon" }), this.text("userHome")))))))));
|
|
164
166
|
}
|
|
165
167
|
get host() { return this; }
|
|
166
168
|
static get watchers() { return {
|
|
167
|
-
"
|
|
169
|
+
"mainMenu": ["mainMenuChanged"]
|
|
168
170
|
}; }
|
|
169
171
|
static get style() { return headerCss; }
|
|
170
172
|
}, [257, "dso-header", {
|
|
171
173
|
"mainMenu": [16, "main-menu"],
|
|
172
|
-
"
|
|
174
|
+
"compact": [1],
|
|
173
175
|
"authStatus": [1, "auth-status"],
|
|
174
176
|
"loginUrl": [1, "login-url"],
|
|
175
177
|
"logoutUrl": [1, "logout-url"],
|
|
@@ -179,11 +181,10 @@ const Header = /*@__PURE__*/ proxyCustomElement(class Header extends HTMLElement
|
|
|
179
181
|
"userProfileUrl": [1, "user-profile-url"],
|
|
180
182
|
"userHomeUrl": [1, "user-home-url"],
|
|
181
183
|
"userHomeActive": [4, "user-home-active"],
|
|
182
|
-
"
|
|
183
|
-
"overflowMenuItems": [32],
|
|
184
|
+
"visibleMenuItemsCount": [32],
|
|
184
185
|
"dropdownOptionsOffset": [32]
|
|
185
|
-
},
|
|
186
|
-
"
|
|
186
|
+
}, [[9, "resize", "resizeListener"]], {
|
|
187
|
+
"mainMenu": ["mainMenuChanged"]
|
|
187
188
|
}]);
|
|
188
189
|
function defineCustomElement$1() {
|
|
189
190
|
if (typeof customElements === "undefined") {
|