@dso-toolkit/core 62.25.0 → 62.27.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/{annotation-gewijzigde-locatie-1ee2ce7c.js → annotation-gewijzigde-locatie-4dc4c219.js} +2 -2
- package/dist/cjs/{annotation-gewijzigde-locatie-1ee2ce7c.js.map → annotation-gewijzigde-locatie-4dc4c219.js.map} +1 -1
- package/dist/cjs/dso-accordion-section.cjs.entry.js +6 -4
- package/dist/cjs/dso-accordion-section.cjs.entry.js.map +1 -1
- package/dist/cjs/dso-accordion.cjs.entry.js +1 -1
- package/dist/cjs/dso-action-list-item.cjs.entry.js +2 -2
- package/dist/cjs/dso-action-list-item.cjs.entry.js.map +1 -1
- package/dist/cjs/dso-action-list.cjs.entry.js +1 -1
- package/dist/cjs/dso-advanced-select.cjs.entry.js +13 -8
- package/dist/cjs/dso-advanced-select.cjs.entry.js.map +1 -1
- package/dist/cjs/dso-alert_5.cjs.entry.js +1327 -0
- package/dist/cjs/dso-alert_5.cjs.entry.js.map +1 -0
- package/dist/cjs/dso-annotation-activiteit.cjs.entry.js +3 -3
- package/dist/cjs/dso-annotation-gebiedsaanwijzing.cjs.entry.js +3 -3
- package/dist/cjs/dso-annotation-omgevingsnorm.cjs.entry.js +3 -3
- package/dist/cjs/dso-annotation-output_2.cjs.entry.js +4 -4
- package/dist/cjs/dso-annotation-output_2.cjs.entry.js.map +1 -1
- package/dist/cjs/dso-annotation-werkingsgebied.cjs.entry.js +3 -3
- package/dist/cjs/dso-attachments-counter.cjs.entry.js +3 -3
- package/dist/cjs/dso-attachments-counter.cjs.entry.js.map +1 -1
- package/dist/cjs/dso-autosuggest.cjs.entry.js +4 -4
- package/dist/cjs/dso-autosuggest.cjs.entry.js.map +1 -1
- package/dist/cjs/dso-badge.cjs.entry.js +24 -0
- package/dist/cjs/dso-badge.cjs.entry.js.map +1 -0
- package/dist/cjs/dso-banner.cjs.entry.js +4 -4
- package/dist/cjs/dso-banner.cjs.entry.js.map +1 -1
- package/dist/cjs/dso-card-container.cjs.entry.js +3 -3
- package/dist/cjs/dso-card-container.cjs.entry.js.map +1 -1
- package/dist/cjs/dso-card.cjs.entry.js +4 -4
- package/dist/cjs/dso-card.cjs.entry.js.map +1 -1
- package/dist/cjs/dso-date-picker-legacy.cjs.entry.js +5 -5
- package/dist/cjs/dso-date-picker-legacy.cjs.entry.js.map +1 -1
- package/dist/cjs/dso-date-picker.cjs.entry.js +3 -3
- package/dist/cjs/dso-date-picker.cjs.entry.js.map +1 -1
- package/dist/cjs/dso-dropdown-menu.cjs.entry.js +2 -2
- package/dist/cjs/dso-expandable.cjs.entry.js +2 -2
- package/dist/cjs/dso-expandable.cjs.entry.js.map +1 -1
- package/dist/cjs/dso-header.cjs.entry.js +3 -3
- package/dist/cjs/dso-header.cjs.entry.js.map +1 -1
- package/dist/cjs/dso-helpcenter-panel.cjs.entry.js +4 -4
- package/dist/cjs/dso-helpcenter-panel.cjs.entry.js.map +1 -1
- package/dist/cjs/dso-highlight-box.cjs.entry.js +3 -3
- package/dist/cjs/dso-highlight-box.cjs.entry.js.map +1 -1
- package/dist/cjs/dso-icon.cjs.entry.js +3 -3
- package/dist/cjs/dso-icon.cjs.entry.js.map +1 -1
- package/dist/cjs/dso-info-button.cjs.entry.js +3 -3
- package/dist/cjs/dso-info-button.cjs.entry.js.map +1 -1
- package/dist/cjs/dso-info_2.cjs.entry.js +5 -5
- package/dist/cjs/dso-info_2.cjs.entry.js.map +1 -1
- package/dist/cjs/dso-input-range.cjs.entry.js +3 -3
- package/dist/cjs/dso-label_2.cjs.entry.js +7 -7
- package/dist/cjs/dso-label_2.cjs.entry.js.map +1 -1
- package/dist/cjs/dso-legend-item.cjs.entry.js +4 -4
- package/dist/cjs/dso-legend-item.cjs.entry.js.map +1 -1
- package/dist/cjs/dso-list-button.cjs.entry.js +3 -3
- package/dist/cjs/dso-list-button.cjs.entry.js.map +1 -1
- package/dist/cjs/dso-logo.cjs.entry.js +4 -4
- package/dist/cjs/dso-logo.cjs.entry.js.map +1 -1
- package/dist/cjs/dso-map-base-layers.cjs.entry.js +3 -3
- package/dist/cjs/dso-map-base-layers.cjs.entry.js.map +1 -1
- package/dist/cjs/dso-map-controls.cjs.entry.js +3 -3
- package/dist/cjs/dso-map-controls.cjs.entry.js.map +1 -1
- package/dist/cjs/dso-map-overlays.cjs.entry.js +3 -3
- package/dist/cjs/dso-map-overlays.cjs.entry.js.map +1 -1
- package/dist/cjs/dso-mark-bar.cjs.entry.js +3 -3
- package/dist/cjs/dso-mark-bar.cjs.entry.js.map +1 -1
- package/dist/cjs/dso-modal.cjs.entry.js +4 -4
- package/dist/cjs/dso-modal.cjs.entry.js.map +1 -1
- package/dist/cjs/dso-pagination.cjs.entry.js +2 -2
- package/dist/cjs/dso-pagination.cjs.entry.js.map +1 -1
- package/dist/cjs/dso-progress-bar.cjs.entry.js +3 -3
- package/dist/cjs/dso-progress-bar.cjs.entry.js.map +1 -1
- package/dist/cjs/dso-progress-indicator.cjs.entry.js +3 -3
- package/dist/cjs/dso-progress-indicator.cjs.entry.js.map +1 -1
- package/dist/cjs/dso-responsive-element.cjs.entry.js +2 -2
- package/dist/cjs/dso-scrollable.cjs.entry.js +5 -5
- package/dist/cjs/dso-scrollable.cjs.entry.js.map +1 -1
- package/dist/cjs/dso-toggletip.cjs.entry.js +2 -2
- package/dist/cjs/dso-toolkit.cjs.js +3 -3
- package/dist/cjs/dso-toolkit.cjs.js.map +1 -1
- package/dist/cjs/dso-tooltip.cjs.entry.js +4 -4
- package/dist/cjs/dso-tooltip.cjs.entry.js.map +1 -1
- package/dist/cjs/dso-tree-view.cjs.entry.js +3 -3
- package/dist/cjs/dso-tree-view.cjs.entry.js.map +1 -1
- package/dist/cjs/dso-viewer-grid.cjs.entry.js +4 -4
- package/dist/cjs/dso-viewer-grid.cjs.entry.js.map +1 -1
- package/dist/cjs/dsot-document-component-demo.cjs.entry.js +3 -3
- package/dist/cjs/dsot-document-component-demo.cjs.entry.js.map +1 -1
- package/dist/cjs/{index-a5d31aab.js → index-10c6b031.js} +18 -18
- package/dist/cjs/index-10c6b031.js.map +1 -0
- package/dist/cjs/{index-48d7533e.js → index-56461a0b.js} +33 -15
- package/dist/cjs/index-56461a0b.js.map +1 -0
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/collection/collection-manifest.json +1 -1
- package/dist/collection/components/accordion/components/accordion-section.css +61 -45
- package/dist/collection/components/accordion/components/accordion-section.js +44 -2
- package/dist/collection/components/accordion/components/accordion-section.js.map +1 -1
- package/dist/collection/components/action-list/components/action-list-item.css +14 -14
- package/dist/collection/components/advanced-select/advanced-select.css +25 -14
- package/dist/collection/components/advanced-select/advanced-select.interfaces.js +2 -0
- package/dist/collection/components/advanced-select/advanced-select.interfaces.js.map +1 -0
- package/dist/collection/components/advanced-select/advanced-select.js +19 -14
- package/dist/collection/components/advanced-select/advanced-select.js.map +1 -1
- package/dist/collection/components/alert/alert.css +58 -13
- package/dist/collection/components/alert/alert.js +19 -1
- package/dist/collection/components/alert/alert.js.map +1 -1
- package/dist/collection/components/annotation/annotation-activiteit/annotation-activiteit.js +1 -1
- package/dist/collection/components/annotation/annotation-gebiedsaanwijzing/annotation-gebiedsaanwijzing.js +1 -1
- package/dist/collection/components/annotation/annotation-omgevingsnorm/annotation-omgevingsnorm.js +1 -1
- package/dist/collection/components/annotation/annotation-werkingsgebied/annotation-werkingsgebied.js +1 -1
- package/dist/collection/components/annotation-button/annotation-button.css +83 -80
- package/dist/collection/components/annotation-output/annotation-output.css +16 -16
- package/dist/collection/components/attachments-counter/attachments-counter.css +2 -2
- package/dist/collection/components/attachments-counter/attachments-counter.js +1 -1
- package/dist/collection/components/autosuggest/autosuggest.css +12 -8
- package/dist/collection/components/autosuggest/autosuggest.js +1 -1
- package/dist/collection/components/badge/badge.css +5 -4
- package/dist/collection/components/badge/badge.interfaces.js +2 -0
- package/dist/collection/components/badge/badge.interfaces.js.map +1 -0
- package/dist/collection/components/badge/badge.js +9 -3
- package/dist/collection/components/badge/badge.js.map +1 -1
- package/dist/collection/components/banner/banner.css +4 -2
- package/dist/collection/components/banner/banner.js +2 -2
- package/dist/collection/components/card/card.css +4 -4
- package/dist/collection/components/card/card.js +2 -2
- package/dist/collection/components/card-container/card-container.css +3 -3
- package/dist/collection/components/card-container/card-container.js +1 -1
- package/dist/collection/components/date-picker/date-picker.css +5 -4
- package/dist/collection/components/date-picker/date-picker.js +1 -1
- package/dist/collection/components/date-picker-legacy/date-picker-legacy.css +87 -82
- package/dist/collection/components/date-picker-legacy/date-picker-legacy.js +3 -3
- package/dist/collection/components/document-component/document-component.css +99 -96
- package/dist/collection/components/document-component/document-component.js +1 -1
- package/dist/collection/components/document-component-demo/document-component.demo.css +6 -5
- package/dist/collection/components/document-component-demo/document-component.demo.js +1 -1
- package/dist/collection/components/dropdown-menu/dropdown-menu.js +1 -1
- package/dist/collection/components/expandable/expandable.css +5 -3
- package/dist/collection/components/header/header.css +42 -40
- package/dist/collection/components/helpcenter-panel/helpcenter-panel.css +86 -84
- package/dist/collection/components/helpcenter-panel/helpcenter-panel.js +2 -2
- package/dist/collection/components/highlight-box/highlight-box.css +6 -6
- package/dist/collection/components/highlight-box/highlight-box.js +1 -1
- package/dist/collection/components/icon/icon.css +2 -2
- package/dist/collection/components/icon/icon.js +1 -1
- package/dist/collection/components/image-overlay/image-overlay.css +71 -72
- package/dist/collection/components/info/info.css +6 -5
- package/dist/collection/components/info/info.js +1 -1
- package/dist/collection/components/info-button/info-button.css +3 -3
- 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.css +15 -13
- package/dist/collection/components/label/label.js +3 -3
- package/dist/collection/components/legend-item/legend-item.css +15 -13
- package/dist/collection/components/legend-item/legend-item.js +2 -2
- package/dist/collection/components/list-button/list-button.css +75 -73
- package/dist/collection/components/list-button/list-button.js +1 -1
- package/dist/collection/components/logo/logo.css +2 -1
- package/dist/collection/components/logo/logo.js +2 -2
- package/dist/collection/components/map-base-layers/map-base-layers.css +6 -6
- package/dist/collection/components/map-base-layers/map-base-layers.js +1 -1
- package/dist/collection/components/map-controls/map-controls.css +106 -100
- package/dist/collection/components/map-controls/map-controls.js +1 -1
- package/dist/collection/components/map-overlays/map-overlays.css +6 -6
- package/dist/collection/components/map-overlays/map-overlays.js +1 -1
- package/dist/collection/components/mark-bar/mark-bar.css +20 -20
- package/dist/collection/components/mark-bar/mark-bar.js +1 -1
- package/dist/collection/components/modal/modal.css +32 -20
- package/dist/collection/components/modal/modal.js +2 -2
- package/dist/collection/components/ozon-content/ozon-content.css +166 -155
- package/dist/collection/components/ozon-content/ozon-content.js +1 -1
- package/dist/collection/components/pagination/pagination.css +9 -7
- package/dist/collection/components/progress-bar/progress-bar.css +8 -8
- package/dist/collection/components/progress-bar/progress-bar.js +1 -1
- package/dist/collection/components/progress-indicator/progress-indicator.css +11 -9
- package/dist/collection/components/progress-indicator/progress-indicator.js +1 -1
- package/dist/collection/components/responsive-element/responsive-element.js +1 -1
- package/dist/collection/components/scrollable/scrollable.css +12 -12
- package/dist/collection/components/scrollable/scrollable.js +2 -2
- package/dist/collection/components/selectable/selectable.css +34 -34
- package/dist/collection/components/selectable/selectable.js +1 -1
- package/dist/collection/components/slide-toggle/slide-toggle.js +1 -1
- package/dist/collection/components/table/table.css +133 -121
- package/dist/collection/components/table/table.js +1 -1
- package/dist/collection/components/toggletip/toggletip.js +1 -1
- package/dist/collection/components/tooltip/tooltip.css +8 -9
- package/dist/collection/components/tooltip/tooltip.js +1 -1
- package/dist/collection/components/tree-view/tree-view.css +41 -39
- package/dist/collection/components/tree-view/tree-view.js +1 -1
- package/dist/collection/components/viewer-grid/viewer-grid.css +213 -199
- package/dist/collection/components/viewer-grid/viewer-grid.js +1 -1
- package/dist/components/alert.js +5 -3
- package/dist/components/alert.js.map +1 -1
- package/dist/components/annotation-button.js +1 -1
- package/dist/components/annotation-button.js.map +1 -1
- package/dist/components/annotation-output.js +1 -1
- package/dist/components/annotation-output.js.map +1 -1
- package/dist/components/attachments-counter.js +2 -2
- package/dist/components/attachments-counter.js.map +1 -1
- package/dist/components/badge.js +2 -2
- package/dist/components/badge.js.map +1 -1
- package/dist/components/document-component.js +2 -2
- package/dist/components/document-component.js.map +1 -1
- package/dist/components/dropdown-menu.js +1 -1
- package/dist/components/dso-accordion-section.js +15 -5
- package/dist/components/dso-accordion-section.js.map +1 -1
- package/dist/components/dso-action-list-item.js +1 -1
- package/dist/components/dso-action-list-item.js.map +1 -1
- package/dist/components/dso-advanced-select.js +28 -11
- package/dist/components/dso-advanced-select.js.map +1 -1
- package/dist/components/dso-annotation-activiteit.js +1 -1
- package/dist/components/dso-annotation-gebiedsaanwijzing.js +1 -1
- package/dist/components/dso-annotation-omgevingsnorm.js +1 -1
- package/dist/components/dso-annotation-werkingsgebied.js +1 -1
- package/dist/components/dso-autosuggest.js +2 -2
- package/dist/components/dso-autosuggest.js.map +1 -1
- package/dist/components/dso-banner.js +3 -3
- package/dist/components/dso-banner.js.map +1 -1
- package/dist/components/dso-card-container.js +2 -2
- package/dist/components/dso-card-container.js.map +1 -1
- package/dist/components/dso-card.js +3 -3
- package/dist/components/dso-card.js.map +1 -1
- package/dist/components/dso-date-picker-legacy.js +4 -4
- package/dist/components/dso-date-picker-legacy.js.map +1 -1
- package/dist/components/dso-date-picker.js +2 -2
- package/dist/components/dso-date-picker.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-helpcenter-panel.js +3 -3
- package/dist/components/dso-helpcenter-panel.js.map +1 -1
- package/dist/components/dso-highlight-box.js +2 -2
- package/dist/components/dso-highlight-box.js.map +1 -1
- package/dist/components/dso-input-range.js +2 -2
- package/dist/components/dso-legend-item.js +3 -3
- package/dist/components/dso-legend-item.js.map +1 -1
- package/dist/components/dso-list-button.js +2 -2
- package/dist/components/dso-list-button.js.map +1 -1
- package/dist/components/dso-logo.js +3 -3
- package/dist/components/dso-logo.js.map +1 -1
- package/dist/components/dso-map-base-layers.js +2 -2
- package/dist/components/dso-map-base-layers.js.map +1 -1
- package/dist/components/dso-map-controls.js +2 -2
- package/dist/components/dso-map-controls.js.map +1 -1
- package/dist/components/dso-map-overlays.js +2 -2
- package/dist/components/dso-map-overlays.js.map +1 -1
- package/dist/components/dso-mark-bar.js +2 -2
- package/dist/components/dso-mark-bar.js.map +1 -1
- package/dist/components/dso-modal.js +3 -3
- package/dist/components/dso-modal.js.map +1 -1
- package/dist/components/dso-pagination.js +1 -1
- package/dist/components/dso-pagination.js.map +1 -1
- package/dist/components/dso-progress-bar.js +2 -2
- package/dist/components/dso-progress-bar.js.map +1 -1
- package/dist/components/dso-tree-view.js +2 -2
- package/dist/components/dso-tree-view.js.map +1 -1
- package/dist/components/dso-viewer-grid.js +2 -2
- package/dist/components/dso-viewer-grid.js.map +1 -1
- package/dist/components/dsot-document-component-demo.js +2 -2
- package/dist/components/dsot-document-component-demo.js.map +1 -1
- package/dist/components/expandable.js +1 -1
- package/dist/components/expandable.js.map +1 -1
- package/dist/components/icon.js +2 -2
- package/dist/components/icon.js.map +1 -1
- package/dist/components/image-overlay.js +1 -1
- package/dist/components/image-overlay.js.map +1 -1
- package/dist/components/index2.js +17 -17
- package/dist/components/index2.js.map +1 -1
- package/dist/components/info-button.js +2 -2
- package/dist/components/info-button.js.map +1 -1
- package/dist/components/info.js +2 -2
- package/dist/components/info.js.map +1 -1
- package/dist/components/label.js +4 -4
- package/dist/components/label.js.map +1 -1
- package/dist/components/ozon-content.js +2 -2
- package/dist/components/ozon-content.js.map +1 -1
- package/dist/components/progress-indicator.js +2 -2
- package/dist/components/progress-indicator.js.map +1 -1
- package/dist/components/responsive-element.js +1 -1
- package/dist/components/scrollable.js +3 -3
- package/dist/components/scrollable.js.map +1 -1
- package/dist/components/selectable.js +2 -2
- package/dist/components/selectable.js.map +1 -1
- package/dist/components/slide-toggle.js +1 -1
- package/dist/components/table.js +2 -2
- package/dist/components/table.js.map +1 -1
- package/dist/components/toggletip.js +1 -1
- package/dist/components/tooltip.js +2 -2
- package/dist/components/tooltip.js.map +1 -1
- package/dist/dso-toolkit/dso-toolkit.esm.js +1 -1
- package/dist/dso-toolkit/dso-toolkit.esm.js.map +1 -1
- package/dist/dso-toolkit/index.esm.js.map +1 -1
- package/dist/dso-toolkit/p-063dcb3b.entry.js +2 -0
- package/dist/dso-toolkit/p-063dcb3b.entry.js.map +1 -0
- package/dist/dso-toolkit/p-0d874fe0.entry.js +2 -0
- package/dist/dso-toolkit/p-0d874fe0.entry.js.map +1 -0
- package/dist/dso-toolkit/p-1305df3d.entry.js +2 -0
- package/dist/dso-toolkit/{p-b49f5a23.entry.js.map → p-1305df3d.entry.js.map} +1 -1
- package/dist/dso-toolkit/{p-811676bf.js → p-137fc4f4.js} +2 -2
- package/dist/dso-toolkit/{p-811676bf.js.map → p-137fc4f4.js.map} +1 -1
- package/dist/dso-toolkit/p-14616bce.js.map +1 -1
- package/dist/dso-toolkit/p-1dbcaeef.js.map +1 -1
- package/dist/dso-toolkit/p-202d2cdf.js.map +1 -1
- package/dist/dso-toolkit/{p-9a15c59b.entry.js → p-208d5671.entry.js} +2 -2
- package/dist/dso-toolkit/{p-9a15c59b.entry.js.map → p-208d5671.entry.js.map} +1 -1
- package/dist/dso-toolkit/{p-0ab830ea.entry.js → p-216b7e41.entry.js} +2 -2
- package/dist/dso-toolkit/{p-0ab830ea.entry.js.map → p-216b7e41.entry.js.map} +1 -1
- package/dist/dso-toolkit/p-2265897c.entry.js +2 -0
- package/dist/dso-toolkit/{p-af8c6cd9.entry.js.map → p-2265897c.entry.js.map} +1 -1
- package/dist/dso-toolkit/p-299d8fdc.entry.js +2 -0
- package/dist/dso-toolkit/{p-560861e9.entry.js.map → p-299d8fdc.entry.js.map} +1 -1
- package/dist/dso-toolkit/p-2d694112.js.map +1 -1
- package/dist/dso-toolkit/p-2f745710.entry.js +2 -0
- package/dist/dso-toolkit/{p-909b9a1e.entry.js.map → p-2f745710.entry.js.map} +1 -1
- package/dist/dso-toolkit/p-300cbb00.entry.js +2 -0
- package/dist/dso-toolkit/{p-197c2646.entry.js.map → p-300cbb00.entry.js.map} +1 -1
- package/dist/dso-toolkit/p-31aca00a.entry.js +2 -0
- package/dist/dso-toolkit/p-31aca00a.entry.js.map +1 -0
- package/dist/dso-toolkit/p-358d71cb.entry.js +2 -0
- package/dist/dso-toolkit/{p-3e2237ab.entry.js.map → p-358d71cb.entry.js.map} +1 -1
- package/dist/dso-toolkit/p-3e5d417d.entry.js +2 -0
- package/dist/dso-toolkit/{p-c1c38b47.entry.js.map → p-3e5d417d.entry.js.map} +1 -1
- package/dist/dso-toolkit/p-4573c419.js.map +1 -1
- package/dist/dso-toolkit/{p-f8e70577.entry.js → p-53e04851.entry.js} +2 -2
- package/dist/dso-toolkit/{p-f8e70577.entry.js.map → p-53e04851.entry.js.map} +1 -1
- package/dist/dso-toolkit/p-602f573d.entry.js +2 -0
- package/dist/dso-toolkit/p-602f573d.entry.js.map +1 -0
- package/dist/dso-toolkit/p-618fee5c.entry.js +2 -0
- package/dist/dso-toolkit/p-618fee5c.entry.js.map +1 -0
- package/dist/dso-toolkit/p-67dc4153.entry.js +2 -0
- package/dist/dso-toolkit/p-67dc4153.entry.js.map +1 -0
- package/dist/dso-toolkit/{p-9f000cb1.entry.js → p-68cbd0c9.entry.js} +2 -2
- package/dist/dso-toolkit/{p-9f000cb1.entry.js.map → p-68cbd0c9.entry.js.map} +1 -1
- package/dist/dso-toolkit/p-7031be39.entry.js +2 -0
- package/dist/dso-toolkit/p-7031be39.entry.js.map +1 -0
- package/dist/dso-toolkit/p-74c191d2.entry.js +2 -0
- package/dist/dso-toolkit/p-74c191d2.entry.js.map +1 -0
- package/dist/dso-toolkit/p-74ec4384.entry.js +2 -0
- package/dist/dso-toolkit/p-74ec4384.entry.js.map +1 -0
- package/dist/dso-toolkit/p-808a98bc.js.map +1 -1
- package/dist/dso-toolkit/p-824b23ee.entry.js +2 -0
- package/dist/dso-toolkit/p-824b23ee.entry.js.map +1 -0
- package/dist/dso-toolkit/p-8a1a6e56.js.map +1 -1
- package/dist/dso-toolkit/p-8f126e70.entry.js +2 -0
- package/dist/dso-toolkit/p-8f126e70.entry.js.map +1 -0
- package/dist/dso-toolkit/p-93e278c0.entry.js +2 -0
- package/dist/dso-toolkit/p-93e278c0.entry.js.map +1 -0
- package/dist/dso-toolkit/p-9438a55c.js +2 -0
- package/dist/dso-toolkit/p-9438a55c.js.map +1 -0
- package/dist/dso-toolkit/p-97f788d4.js.map +1 -1
- package/dist/dso-toolkit/p-9a63ac5d.entry.js +2 -0
- package/dist/dso-toolkit/p-9a63ac5d.entry.js.map +1 -0
- package/dist/dso-toolkit/p-9b35c459.entry.js +2 -0
- package/dist/dso-toolkit/p-9b35c459.entry.js.map +1 -0
- package/dist/dso-toolkit/p-a62a187f.entry.js +2 -0
- package/dist/dso-toolkit/p-a62a187f.entry.js.map +1 -0
- package/dist/dso-toolkit/p-a7e74516.entry.js +2 -0
- package/dist/dso-toolkit/p-a7e74516.entry.js.map +1 -0
- package/dist/dso-toolkit/p-ae92d7c8.entry.js +2 -0
- package/dist/dso-toolkit/p-ae92d7c8.entry.js.map +1 -0
- package/dist/dso-toolkit/{p-4f7e1b16.entry.js → p-b57ca08c.entry.js} +2 -2
- package/dist/dso-toolkit/{p-4f7e1b16.entry.js.map → p-b57ca08c.entry.js.map} +1 -1
- package/dist/dso-toolkit/p-b886759a.entry.js +2 -0
- package/dist/dso-toolkit/{p-96a6ddd5.entry.js.map → p-b886759a.entry.js.map} +1 -1
- package/dist/dso-toolkit/{p-0415af5b.entry.js → p-bdaa4b01.entry.js} +2 -2
- package/dist/dso-toolkit/p-bdaa4b01.entry.js.map +1 -0
- package/dist/dso-toolkit/p-be2de19c.entry.js +2 -0
- package/dist/dso-toolkit/p-be2de19c.entry.js.map +1 -0
- package/dist/dso-toolkit/{p-98eec25f.entry.js → p-c7714f92.entry.js} +2 -2
- package/dist/dso-toolkit/{p-98eec25f.entry.js.map → p-c7714f92.entry.js.map} +1 -1
- package/dist/dso-toolkit/p-c8f6f8d9.js.map +1 -1
- package/dist/dso-toolkit/{p-c2502024.entry.js → p-cbb4f112.entry.js} +2 -2
- package/dist/dso-toolkit/{p-c2502024.entry.js.map → p-cbb4f112.entry.js.map} +1 -1
- package/dist/dso-toolkit/{p-d8b25148.entry.js → p-cbcb4d1f.entry.js} +2 -2
- package/dist/dso-toolkit/{p-d8b25148.entry.js.map → p-cbcb4d1f.entry.js.map} +1 -1
- package/dist/dso-toolkit/p-cbe0bf91.entry.js +2 -0
- package/dist/dso-toolkit/{p-001ba85b.entry.js.map → p-cbe0bf91.entry.js.map} +1 -1
- package/dist/dso-toolkit/p-cd598033.entry.js +2 -0
- package/dist/dso-toolkit/p-cd598033.entry.js.map +1 -0
- package/dist/dso-toolkit/p-cdc9d960.entry.js +2 -0
- package/dist/dso-toolkit/{p-c335be22.entry.js.map → p-cdc9d960.entry.js.map} +1 -1
- package/dist/dso-toolkit/p-ce66b495.entry.js +2 -0
- package/dist/dso-toolkit/p-ce66b495.entry.js.map +1 -0
- package/dist/dso-toolkit/p-da8e5f1c.entry.js +2 -0
- package/dist/dso-toolkit/p-da8e5f1c.entry.js.map +1 -0
- package/dist/dso-toolkit/p-daab5e97.entry.js +2 -0
- package/dist/dso-toolkit/p-daab5e97.entry.js.map +1 -0
- package/dist/dso-toolkit/p-deed4932.entry.js +2 -0
- package/dist/dso-toolkit/p-deed4932.entry.js.map +1 -0
- package/dist/dso-toolkit/p-e0d79580.entry.js +2 -0
- package/dist/dso-toolkit/{p-ade7a91d.entry.js.map → p-e0d79580.entry.js.map} +1 -1
- package/dist/dso-toolkit/p-e1255160.js.map +1 -1
- package/dist/dso-toolkit/{p-24b4a99f.entry.js → p-e6222cd3.entry.js} +2 -2
- package/dist/dso-toolkit/{p-24b4a99f.entry.js.map → p-e6222cd3.entry.js.map} +1 -1
- package/dist/dso-toolkit/p-e6cf4fdb.js +3 -0
- package/dist/dso-toolkit/p-e6cf4fdb.js.map +1 -0
- package/dist/dso-toolkit/p-f0344dd3.entry.js +2 -0
- package/dist/dso-toolkit/p-f0344dd3.entry.js.map +1 -0
- package/dist/dso-toolkit/{p-1975337f.entry.js → p-f1c58804.entry.js} +2 -2
- package/dist/dso-toolkit/{p-1975337f.entry.js.map → p-f1c58804.entry.js.map} +1 -1
- package/dist/dso-toolkit/p-fc3cbf49.entry.js +2 -0
- package/dist/dso-toolkit/{p-1673196d.entry.js.map → p-fc3cbf49.entry.js.map} +1 -1
- package/dist/esm/{annotation-gewijzigde-locatie-3d8aa3ad.js → annotation-gewijzigde-locatie-5f4be68e.js} +2 -2
- package/dist/esm/{annotation-gewijzigde-locatie-3d8aa3ad.js.map → annotation-gewijzigde-locatie-5f4be68e.js.map} +1 -1
- package/dist/esm/dso-accordion-section.entry.js +6 -4
- package/dist/esm/dso-accordion-section.entry.js.map +1 -1
- package/dist/esm/dso-accordion.entry.js +1 -1
- package/dist/esm/dso-action-list-item.entry.js +2 -2
- package/dist/esm/dso-action-list-item.entry.js.map +1 -1
- package/dist/esm/dso-action-list.entry.js +1 -1
- package/dist/esm/dso-advanced-select.entry.js +13 -8
- package/dist/esm/dso-advanced-select.entry.js.map +1 -1
- package/dist/esm/dso-alert_5.entry.js +1319 -0
- package/dist/esm/dso-alert_5.entry.js.map +1 -0
- package/dist/esm/dso-annotation-activiteit.entry.js +3 -3
- package/dist/esm/dso-annotation-gebiedsaanwijzing.entry.js +3 -3
- package/dist/esm/dso-annotation-omgevingsnorm.entry.js +3 -3
- package/dist/esm/dso-annotation-output_2.entry.js +4 -4
- package/dist/esm/dso-annotation-output_2.entry.js.map +1 -1
- package/dist/esm/dso-annotation-werkingsgebied.entry.js +3 -3
- package/dist/esm/dso-attachments-counter.entry.js +3 -3
- package/dist/esm/dso-attachments-counter.entry.js.map +1 -1
- package/dist/esm/dso-autosuggest.entry.js +4 -4
- package/dist/esm/dso-autosuggest.entry.js.map +1 -1
- package/dist/esm/dso-badge.entry.js +20 -0
- package/dist/esm/dso-badge.entry.js.map +1 -0
- package/dist/esm/dso-banner.entry.js +4 -4
- package/dist/esm/dso-banner.entry.js.map +1 -1
- package/dist/esm/dso-card-container.entry.js +3 -3
- package/dist/esm/dso-card-container.entry.js.map +1 -1
- package/dist/esm/dso-card.entry.js +4 -4
- package/dist/esm/dso-card.entry.js.map +1 -1
- package/dist/esm/dso-date-picker-legacy.entry.js +5 -5
- package/dist/esm/dso-date-picker-legacy.entry.js.map +1 -1
- package/dist/esm/dso-date-picker.entry.js +3 -3
- package/dist/esm/dso-date-picker.entry.js.map +1 -1
- package/dist/esm/dso-dropdown-menu.entry.js +2 -2
- package/dist/esm/dso-expandable.entry.js +2 -2
- package/dist/esm/dso-expandable.entry.js.map +1 -1
- package/dist/esm/dso-header.entry.js +3 -3
- package/dist/esm/dso-header.entry.js.map +1 -1
- package/dist/esm/dso-helpcenter-panel.entry.js +4 -4
- package/dist/esm/dso-helpcenter-panel.entry.js.map +1 -1
- package/dist/esm/dso-highlight-box.entry.js +3 -3
- package/dist/esm/dso-highlight-box.entry.js.map +1 -1
- package/dist/esm/dso-icon.entry.js +3 -3
- package/dist/esm/dso-icon.entry.js.map +1 -1
- package/dist/esm/dso-info-button.entry.js +3 -3
- package/dist/esm/dso-info-button.entry.js.map +1 -1
- package/dist/esm/dso-info_2.entry.js +5 -5
- package/dist/esm/dso-info_2.entry.js.map +1 -1
- package/dist/esm/dso-input-range.entry.js +3 -3
- package/dist/esm/dso-label_2.entry.js +7 -7
- package/dist/esm/dso-label_2.entry.js.map +1 -1
- package/dist/esm/dso-legend-item.entry.js +4 -4
- package/dist/esm/dso-legend-item.entry.js.map +1 -1
- package/dist/esm/dso-list-button.entry.js +3 -3
- package/dist/esm/dso-list-button.entry.js.map +1 -1
- package/dist/esm/dso-logo.entry.js +4 -4
- package/dist/esm/dso-logo.entry.js.map +1 -1
- package/dist/esm/dso-map-base-layers.entry.js +3 -3
- package/dist/esm/dso-map-base-layers.entry.js.map +1 -1
- package/dist/esm/dso-map-controls.entry.js +3 -3
- package/dist/esm/dso-map-controls.entry.js.map +1 -1
- package/dist/esm/dso-map-overlays.entry.js +3 -3
- package/dist/esm/dso-map-overlays.entry.js.map +1 -1
- package/dist/esm/dso-mark-bar.entry.js +3 -3
- package/dist/esm/dso-mark-bar.entry.js.map +1 -1
- package/dist/esm/dso-modal.entry.js +4 -4
- package/dist/esm/dso-modal.entry.js.map +1 -1
- package/dist/esm/dso-pagination.entry.js +2 -2
- package/dist/esm/dso-pagination.entry.js.map +1 -1
- package/dist/esm/dso-progress-bar.entry.js +3 -3
- package/dist/esm/dso-progress-bar.entry.js.map +1 -1
- package/dist/esm/dso-progress-indicator.entry.js +3 -3
- package/dist/esm/dso-progress-indicator.entry.js.map +1 -1
- package/dist/esm/dso-responsive-element.entry.js +2 -2
- package/dist/esm/dso-scrollable.entry.js +5 -5
- package/dist/esm/dso-scrollable.entry.js.map +1 -1
- package/dist/esm/dso-toggletip.entry.js +2 -2
- package/dist/esm/dso-toolkit.js +4 -4
- package/dist/esm/dso-toolkit.js.map +1 -1
- package/dist/esm/dso-tooltip.entry.js +4 -4
- package/dist/esm/dso-tooltip.entry.js.map +1 -1
- package/dist/esm/dso-tree-view.entry.js +3 -3
- package/dist/esm/dso-tree-view.entry.js.map +1 -1
- package/dist/esm/dso-viewer-grid.entry.js +4 -4
- package/dist/esm/dso-viewer-grid.entry.js.map +1 -1
- package/dist/esm/dsot-document-component-demo.entry.js +3 -3
- package/dist/esm/dsot-document-component-demo.entry.js.map +1 -1
- package/dist/esm/{index-c92edd88.js → index-93de4a35.js} +33 -15
- package/dist/esm/index-93de4a35.js.map +1 -0
- package/dist/esm/{index-baba34a8.js → index-bbc2933c.js} +18 -18
- package/dist/esm/index-bbc2933c.js.map +1 -0
- package/dist/esm/loader.js +3 -3
- package/dist/types/components/accordion/components/accordion-section.d.ts +9 -0
- package/dist/types/components/advanced-select/advanced-select.d.ts +1 -1
- package/dist/types/components/advanced-select/{advanced-select.models.d.ts → advanced-select.interfaces.d.ts} +1 -0
- package/dist/types/components/alert/alert.d.ts +4 -0
- package/dist/types/components/badge/badge.d.ts +2 -1
- package/dist/types/components/badge/badge.interfaces.d.ts +1 -0
- package/dist/types/components.d.ts +30 -4
- package/package.json +6 -6
- package/dist/cjs/dso-alert_6.cjs.entry.js +0 -1341
- package/dist/cjs/dso-alert_6.cjs.entry.js.map +0 -1
- package/dist/cjs/index-48d7533e.js.map +0 -1
- package/dist/cjs/index-a5d31aab.js.map +0 -1
- package/dist/collection/components/advanced-select/advanced-select.models.js +0 -2
- package/dist/collection/components/advanced-select/advanced-select.models.js.map +0 -1
- package/dist/dso-toolkit/p-001ba85b.entry.js +0 -2
- package/dist/dso-toolkit/p-0415af5b.entry.js.map +0 -1
- package/dist/dso-toolkit/p-14d19a20.entry.js +0 -2
- package/dist/dso-toolkit/p-14d19a20.entry.js.map +0 -1
- package/dist/dso-toolkit/p-1673196d.entry.js +0 -2
- package/dist/dso-toolkit/p-1754d0a9.js +0 -3
- package/dist/dso-toolkit/p-1754d0a9.js.map +0 -1
- package/dist/dso-toolkit/p-197c2646.entry.js +0 -2
- package/dist/dso-toolkit/p-1a72dd77.entry.js +0 -2
- package/dist/dso-toolkit/p-1a72dd77.entry.js.map +0 -1
- package/dist/dso-toolkit/p-228f73a8.entry.js +0 -2
- package/dist/dso-toolkit/p-228f73a8.entry.js.map +0 -1
- package/dist/dso-toolkit/p-23b5692c.js +0 -2
- package/dist/dso-toolkit/p-23b5692c.js.map +0 -1
- package/dist/dso-toolkit/p-3225310b.entry.js +0 -2
- package/dist/dso-toolkit/p-3225310b.entry.js.map +0 -1
- package/dist/dso-toolkit/p-3657ee5d.entry.js +0 -2
- package/dist/dso-toolkit/p-3657ee5d.entry.js.map +0 -1
- package/dist/dso-toolkit/p-3710d41f.entry.js +0 -2
- package/dist/dso-toolkit/p-3710d41f.entry.js.map +0 -1
- package/dist/dso-toolkit/p-3e2237ab.entry.js +0 -2
- package/dist/dso-toolkit/p-47340b1a.entry.js +0 -2
- package/dist/dso-toolkit/p-47340b1a.entry.js.map +0 -1
- package/dist/dso-toolkit/p-4e318526.entry.js +0 -2
- package/dist/dso-toolkit/p-4e318526.entry.js.map +0 -1
- package/dist/dso-toolkit/p-4f4efbed.entry.js +0 -2
- package/dist/dso-toolkit/p-4f4efbed.entry.js.map +0 -1
- package/dist/dso-toolkit/p-4fac82a7.entry.js +0 -2
- package/dist/dso-toolkit/p-4fac82a7.entry.js.map +0 -1
- package/dist/dso-toolkit/p-560861e9.entry.js +0 -2
- package/dist/dso-toolkit/p-5621d240.entry.js +0 -2
- package/dist/dso-toolkit/p-5621d240.entry.js.map +0 -1
- package/dist/dso-toolkit/p-5f4cb5d6.entry.js +0 -2
- package/dist/dso-toolkit/p-5f4cb5d6.entry.js.map +0 -1
- package/dist/dso-toolkit/p-68e51737.entry.js +0 -2
- package/dist/dso-toolkit/p-68e51737.entry.js.map +0 -1
- package/dist/dso-toolkit/p-6bb5726a.entry.js +0 -2
- package/dist/dso-toolkit/p-6bb5726a.entry.js.map +0 -1
- package/dist/dso-toolkit/p-7da2df9d.entry.js +0 -2
- package/dist/dso-toolkit/p-7da2df9d.entry.js.map +0 -1
- package/dist/dso-toolkit/p-80463acd.entry.js +0 -2
- package/dist/dso-toolkit/p-80463acd.entry.js.map +0 -1
- package/dist/dso-toolkit/p-909b9a1e.entry.js +0 -2
- package/dist/dso-toolkit/p-96a6ddd5.entry.js +0 -2
- package/dist/dso-toolkit/p-ab491029.entry.js +0 -2
- package/dist/dso-toolkit/p-ab491029.entry.js.map +0 -1
- package/dist/dso-toolkit/p-ade7a91d.entry.js +0 -2
- package/dist/dso-toolkit/p-af8c6cd9.entry.js +0 -2
- package/dist/dso-toolkit/p-b49f5a23.entry.js +0 -2
- package/dist/dso-toolkit/p-c1c38b47.entry.js +0 -2
- package/dist/dso-toolkit/p-c335be22.entry.js +0 -2
- package/dist/dso-toolkit/p-d053346c.entry.js +0 -2
- package/dist/dso-toolkit/p-d053346c.entry.js.map +0 -1
- package/dist/dso-toolkit/p-d82948d9.entry.js +0 -2
- package/dist/dso-toolkit/p-d82948d9.entry.js.map +0 -1
- package/dist/dso-toolkit/p-ea138d78.entry.js +0 -2
- package/dist/dso-toolkit/p-ea138d78.entry.js.map +0 -1
- package/dist/dso-toolkit/p-ef006c7c.entry.js +0 -2
- package/dist/dso-toolkit/p-ef006c7c.entry.js.map +0 -1
- package/dist/dso-toolkit/p-f16e7d4b.entry.js +0 -2
- package/dist/dso-toolkit/p-f16e7d4b.entry.js.map +0 -1
- package/dist/dso-toolkit/p-f787daf7.entry.js +0 -2
- package/dist/dso-toolkit/p-f787daf7.entry.js.map +0 -1
- package/dist/esm/dso-alert_6.entry.js +0 -1332
- package/dist/esm/dso-alert_6.entry.js.map +0 -1
- package/dist/esm/index-baba34a8.js.map +0 -1
- package/dist/esm/index-c92edd88.js.map +0 -1
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{h as e,r as t,c as s,H as a,a as d}from"./p-1754d0a9.js";import{c as i}from"./p-97f788d4.js";var o;(function(e){e[e["Sunday"]=0]="Sunday";e[e["Monday"]=1]="Monday";e[e["Tuesday"]=2]="Tuesday";e[e["Wednesday"]=3]="Wednesday";e[e["Thursday"]=4]="Thursday";e[e["Friday"]=5]="Friday";e[e["Saturday"]=6]="Saturday"})(o||(o={}));function c(e,t,s){const a=parseInt(s,10);const d=parseInt(t,10);const i=parseInt(e,10);const o=Number.isInteger(i)&&Number.isInteger(d)&&Number.isInteger(a)&&d>0&&d<=12&&a>0&&a<=31&&i>0;if(o){return new Date(i,d-1,a)}}function n(e){if(!e){return}const t=e.split("-");if(t.length===3&&typeof t[0]==="string"&&typeof t[1]==="string"&&typeof t[2]==="string"&&t[2].length===4){return c(t[2],t[1],t[0])}}function r(e){if(!e){return""}const t=e.getDate().toString(10).padStart(2,"0");const s=(e.getMonth()+1).toString(10).padStart(2,"0");const a=e.getFullYear().toString(10).padStart(2,"0");return`${t}-${s}-${a}`}function l(e,t){if(!e||!t){return false}return e.getFullYear()===t.getFullYear()&&e.getMonth()===t.getMonth()&&e.getDate()===t.getDate()}function h(e,t){const s=new Date(e);s.setDate(s.getDate()+t);return s}function p(e,t=o.Monday){const s=new Date(e);const a=s.getDay();const d=(a<t?7:0)+a-t;s.setDate(s.getDate()-d);return s}function f(e,t=o.Monday){const s=new Date(e);const a=s.getDay();const d=(a<t?-7:0)+6-(a-t);s.setDate(s.getDate()+d);return s}function u(e){return new Date(e.getFullYear(),e.getMonth(),1)}function b(e){return new Date(e.getFullYear(),e.getMonth()+1,0)}function g(e,t){const s=new Date(e);s.setMonth(t);return s}function y(e,t){const s=new Date(e);s.setFullYear(t);return s}function _(e,t,s){return k(e,t,s)===e}function k(e,t,s){const a=e.getTime();if(t&&t instanceof Date&&a<t.getTime()){return t}if(s&&s instanceof Date&&a>s.getTime()){return s}return e}function m(e,t){const s=[];let a=e;while(!l(a,t)){s.push(a);a=h(a,1)}s.push(a);return s}function x(e,t=o.Monday){const s=p(u(e),t);const a=f(b(e),t);return m(s,a)}const v=({focusedDay:t,today:s,day:a,onDaySelect:d,onKeyboardNavigation:i,focusedDayRef:o,inRange:c})=>{const n=l(a,s);const h=l(a,t);const p=a.getMonth()!==t.getMonth();const f=!c;function u(e){d(e,a)}return e("button",{class:{"dso-date__day":true,"is-today":n},tabIndex:h?0:-1,onClick:u,onKeyDown:i,disabled:f||p,type:"button",ref:e=>{if(h&&e&&o){o(e)}}},e("span",{"aria-hidden":"true"},a.getDate()),e("span",{class:"dso-date__vhidden"},r(a)))};function w(e,t){const s=[];for(let a=0;a<e.length;a+=t){s.push(e.slice(a,a+t))}return s}function D(e,t,s){return e.map(((a,d)=>{const i=(d+t)%e.length;const o=e[i];if(!o){throw new Error("No item found")}return s(o)}))}const M=({selectedDate:t,focusedDate:s,labelledById:a,localization:d,firstDayOfWeek:i,min:o,max:c,onDateSelect:n,onKeyboardNavigation:r,focusedDayRef:h,onMouseDown:p,onFocusIn:f})=>{const u=new Date;const b=x(s,i);return e("table",{class:"dso-date__table",role:"grid","aria-labelledby":a,onFocusin:f,onMouseDown:p},e("thead",null,e("tr",null,D(d.dayNames,i,(t=>e("th",{class:"dso-date__table-header",scope:"col"},e("span",{"aria-hidden":"true"},t.substr(0,2)),e("span",{class:"dso-date__vhidden"},t)))))),e("tbody",null,w(b,7).map((a=>e("tr",{class:"dso-date__row"},a.map((a=>e("td",{class:"dso-date__cell",role:"gridcell","aria-selected":l(a,t)?"true":undefined,"aria-current":l(a,u)?"date":undefined},e(v,{day:a,today:u,focusedDay:s,inRange:_(a,o,c),onDaySelect:n,onKeyboardNavigation:r,focusedDayRef:h})))))))))};const z={buttonLabel:"Kies datum",placeholder:"dd-mm-jjjj",selectedDateMessage:"Geselecteerde datum is",prevMonthLabel:"Vorige maand",nextMonthLabel:"Volgende maand",monthSelectLabel:"Maand",yearSelectLabel:"Jaar",closeLabel:"Sluiten",keyboardInstruction:"Gebruik de pijltjestoetsen om een dag te kiezen",calendarHeading:"Kies een datum",dayNames:["Zondag","Maandag","Dinsdag","Woensdag","Donderdag","Vrijdag","Zaterdag"],monthNames:["Januari","Februari","Maart","April","Mei","Juni","Juli","Augustus","September","Oktober","November","December"],monthNamesShort:["Jan","Feb","Mrt","Apr","Mei","Jun","Jul","Aug","Sep","Okt","Nov","Dec"]};function N(e,t,s,a){if(s&&a){const{minYear:d,minMonth:i}={minYear:s.getFullYear(),minMonth:s.getMonth()};const{maxYear:o,maxMonth:c}={maxYear:a.getFullYear(),maxMonth:a.getMonth()};return e.monthNames.filter(((e,s)=>{if(d===t&&o===t){return s>=i&&s>=c}if(d===t){return s>=i}if(o===t){return s<=c}return true}))}if(s){const{minYear:a,minMonth:d}={minYear:s.getFullYear(),minMonth:s.getMonth()};return e.monthNames.filter(((e,s)=>a===t&&s>=d))}if(a){const{maxYear:s,maxMonth:d}={maxYear:a.getFullYear(),maxMonth:a.getMonth()};return e.monthNames.filter(((e,a)=>s===t&&a<=d))}return e.monthNames}function S(e,t){const s=[];for(let a=e;a<=t;a++){s.push(a)}return s}const T='.sc-dso-date-picker-legacy-h{display:block}[invalid].sc-dso-date-picker-legacy-h:not([invalid=false]) .dso-date__input.sc-dso-date-picker-legacy{border-color:#ce3f51}.dso-date.sc-dso-date-picker-legacy *.sc-dso-date-picker-legacy,.dso-date.sc-dso-date-picker-legacy *.sc-dso-date-picker-legacy::before,.dso-date.sc-dso-date-picker-legacy *.sc-dso-date-picker-legacy::after{box-sizing:border-box}.dso-date.sc-dso-date-picker-legacy{box-sizing:border-box;color:#191919;display:block;font-family:"Asap", sans-serif;margin:0;position:relative;text-align:left;width:100%}.dso-date.sc-dso-date-picker-legacy:not(.dso-visible) .dso-date__dialog.sc-dso-date-picker-legacy{display:none}.dso-date__input.sc-dso-date-picker-legacy{display:block;width:100%;height:40px;padding:6px 14px;font-size:1rem;line-height:1.5;color:#191919;background-color:#fff;background-image:none;border:1px solid #275937;border-radius:4px;transition:border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s}.dso-date__input.sc-dso-date-picker-legacy::-moz-placeholder{color:#666;opacity:1}.dso-date__input.sc-dso-date-picker-legacy:-ms-input-placeholder{color:#666}.dso-date__input.sc-dso-date-picker-legacy::-webkit-input-placeholder{color:#666}.dso-date__input.sc-dso-date-picker-legacy::-ms-expand{background-color:transparent;border:0}.dso-date__input.sc-dso-date-picker-legacy:focus{border-color:#275937;outline:0;box-shadow:inset 0 0 0 1px #275937}.dso-date__input[disabled].sc-dso-date-picker-legacy,.dso-date__input[readonly].sc-dso-date-picker-legacy,fieldset[disabled].sc-dso-date-picker-legacy .dso-date__input.sc-dso-date-picker-legacy{background-color:#fff;opacity:1}.dso-date__input[disabled].sc-dso-date-picker-legacy,fieldset[disabled].sc-dso-date-picker-legacy .dso-date__input.sc-dso-date-picker-legacy{cursor:default}.dso-date__input[disabled].sc-dso-date-picker-legacy{border-color:#e5e5e5;color:#999}.dso-date__input[readonly].sc-dso-date-picker-legacy{border-width:1px}.dso-date__input[type=text].sc-dso-date-picker-legacy{line-height:40px}.dso-date__input[size].sc-dso-date-picker-legacy{width:auto}.dso-date__toggle.sc-dso-date-picker-legacy{-moz-appearance:none;-webkit-appearance:none;-webkit-user-select:none;align-items:center;appearance:none;background:transparent;border:0;border-radius:0;border-bottom-right-radius:4px;border-top-right-radius:4px;color:#39870c;cursor:pointer;display:flex;height:38px;justify-content:center;padding:0;position:absolute;right:0;transform:translateY(-50%);top:50%;user-select:none;width:38px;z-index:101}.dso-date__toggle.sc-dso-date-picker-legacy:disabled{color:#afcf9d;cursor:default}.dso-date__dialog.sc-dso-date-picker-legacy{border-width:1px;display:flex;right:0;min-width:320px;opacity:0;position:absolute;top:100%;transform:scale(0.96) translateZ(0) translateY(-20px);transform-origin:top right;transition:transform 300ms ease, opacity 300ms ease, visibility 300ms ease;visibility:hidden;will-change:transform, opacity, visibility;z-index:210}@media (max-width: 35.9375em){.dso-date__dialog.sc-dso-date-picker-legacy{background:rgba(25, 25, 25, 0.5);bottom:0;position:fixed;left:0;right:0;top:0;transform:translateZ(0);transform-origin:bottom center}}.dso-date__dialog.is-left.sc-dso-date-picker-legacy{left:-11px;right:auto;width:auto}.dso-date__dialog.is-active.sc-dso-date-picker-legacy{opacity:1;transform:scale(1.0001) translateZ(0) translateY(0);visibility:visible}.dso-date__dialog-content.sc-dso-date-picker-legacy{background:#fff;border:1px solid rgba(0, 0, 0, 0.1);border-radius:4px;box-shadow:0 8px 10px 1px rgba(0, 0, 0, 0.4);margin-left:auto;margin-right:-1px;margin-top:8px;max-width:310px;min-width:290px;padding:16px;position:relative;transform:none;width:100%;z-index:210}@media (max-width: 35.9375em){.dso-date__dialog-content.sc-dso-date-picker-legacy{border:0;border-radius:0;border-top-left-radius:4px;border-top-right-radius:4px;bottom:0;left:0;margin:0;max-width:none;min-height:26em;opacity:0;padding:0 8% 20px;position:absolute;transform:translateZ(0) translateY(100%);transition:transform 400ms ease, opacity 400ms ease, visibility 400ms ease;visibility:hidden;will-change:transform, opacity, visibility}.is-active.sc-dso-date-picker-legacy .dso-date__dialog-content.sc-dso-date-picker-legacy{opacity:1;transform:translateZ(0) translateY(0);visibility:visible}}.dso-date__table.sc-dso-date-picker-legacy{border-collapse:collapse;border-spacing:0;color:#191919;font-size:1rem;font-weight:400;line-height:1.25;min-width:280px;table-layout:fixed;text-align:center;width:100%}.dso-date__table-header.sc-dso-date-picker-legacy{font-size:0.875em;font-weight:600;height:36px;line-height:36px;text-align:center;text-decoration:none;text-transform:uppercase}.dso-date__cell.sc-dso-date-picker-legacy{height:40px;padding:1px;text-align:center;width:40px}.dso-date__day.sc-dso-date-picker-legacy{-moz-appearance:none;-webkit-appearance:none;appearance:none;background:transparent;border:0;border-radius:50%;box-shadow:0 0 0 1px transparent;color:#191919;cursor:pointer;display:inline-block;font-family:"Asap", sans-serif;font-variant-numeric:tabular-nums;font-weight:400;height:38px;line-height:0;padding:0;position:relative;text-align:center;vertical-align:middle;width:38px;z-index:100}.dso-date__day.is-today.sc-dso-date-picker-legacy{background:transparent;height:36px;box-shadow:0 0 0 1px #39870c;width:36px}.dso-date__day.sc-dso-date-picker-legacy:hover,.dso-date__day.sc-dso-date-picker-legacy:active{background:#39870c;color:#fff}.dso-date__day.sc-dso-date-picker-legacy:focus{background:transparent;box-shadow:0 0 0 2px #275937;color:#191919;height:34px;outline:0;width:34px}[aria-selected=true].sc-dso-date-picker-legacy .dso-date__day.sc-dso-date-picker-legacy{background:#39870c;color:#fff}[aria-selected=true].sc-dso-date-picker-legacy .dso-date__day.sc-dso-date-picker-legacy:focus{background:transparent}[aria-selected=true].sc-dso-date-picker-legacy .dso-date__day.sc-dso-date-picker-legacy:focus span[aria-hidden=true].sc-dso-date-picker-legacy{background:#39870c;border:1px solid #fff;line-height:32px}.dso-date__day.sc-dso-date-picker-legacy:disabled{background:#fff;color:#ccc;cursor:default}.dso-date__day.sc-dso-date-picker-legacy span[aria-hidden=true].sc-dso-date-picker-legacy{border-radius:50%;display:inline-block;height:34px;line-height:34px;width:34px}.dso-date__header.sc-dso-date-picker-legacy{align-items:center;display:flex;justify-content:space-between;margin-bottom:16px;width:100%}.dso-date__header.sc-dso-date-picker-legacy span.sc-dso-date-picker-legacy{font-size:0.875rem}.dso-date__nav.sc-dso-date-picker-legacy{white-space:nowrap}.dso-date__prev.sc-dso-date-picker-legacy,.dso-date__next.sc-dso-date-picker-legacy{-moz-appearance:none;-webkit-appearance:none;align-items:center;appearance:none;background:transparent;border:1px solid #39870c;border-radius:4px;box-sizing:border-box;color:#39870c;cursor:pointer;display:inline-flex;font-size:1em;height:32px;justify-content:center;margin-left:8px;padding:0;width:32px}@media (max-width: 35.9375em){.dso-date__prev.sc-dso-date-picker-legacy,.dso-date__next.sc-dso-date-picker-legacy{height:40px;width:40px}}.dso-date__prev.sc-dso-date-picker-legacy:hover,.dso-date__prev.sc-dso-date-picker-legacy:active,.dso-date__next.sc-dso-date-picker-legacy:hover,.dso-date__next.sc-dso-date-picker-legacy:active{background-color:#39870c;color:#fff}.dso-date__prev.sc-dso-date-picker-legacy:focus,.dso-date__next.sc-dso-date-picker-legacy:focus{background:transparent;color:#39870c}.dso-date__prev.sc-dso-date-picker-legacy:disabled,.dso-date__prev.sc-dso-date-picker-legacy:disabled:hover,.dso-date__next.sc-dso-date-picker-legacy:disabled,.dso-date__next.sc-dso-date-picker-legacy:disabled:hover{background-color:#fff;border-color:#afcf9d;color:#afcf9d;opacity:1}.dso-date__prev.sc-dso-date-picker-legacy svg.sc-dso-date-picker-legacy,.dso-date__next.sc-dso-date-picker-legacy svg.sc-dso-date-picker-legacy{margin:0 auto}.dso-date__select.sc-dso-date-picker-legacy{display:inline-flex;height:28px;line-height:28px;position:relative}.dso-date__select.sc-dso-date-picker-legacy span.sc-dso-date-picker-legacy{margin-right:4px}.dso-date__select.sc-dso-date-picker-legacy select.sc-dso-date-picker-legacy{color:#275937;cursor:pointer;font-size:1rem;height:100%;left:0;opacity:0;position:absolute;top:0;width:100%;z-index:101}.dso-date__select.sc-dso-date-picker-legacy select.sc-dso-date-picker-legacy:focus+.dso-date__select-label.sc-dso-date-picker-legacy{box-shadow:0 0 0 2px #275937}.dso-date__select.sc-dso-date-picker-legacy select.sc-dso-date-picker-legacy:disabled{color:#afcf9d}.dso-date__select-label.sc-dso-date-picker-legacy{align-items:center;border-radius:4px;color:#39870c;display:flex;padding:0 4px 0 8px;pointer-events:none;position:relative;width:100%;z-index:100}.dso-date__select-label.sc-dso-date-picker-legacy span.sc-dso-date-picker-legacy{font-size:1.25rem;font-weight:600;line-height:1.25}.dso-date__select-label.sc-dso-date-picker-legacy svg.sc-dso-date-picker-legacy{width:16px;height:16px}.dso-date__mobile.sc-dso-date-picker-legacy{align-items:center;border-bottom:1px solid rgba(0, 0, 0, 0.12);display:flex;font-size:1em;justify-content:space-between;margin-bottom:20px;margin-left:-10%;overflow:hidden;padding:12px 20px;position:relative;text-overflow:ellipsis;white-space:nowrap;width:120%}@media (min-width: 36em){.dso-date__mobile.sc-dso-date-picker-legacy{border:0;margin:0;overflow:visible;padding:0;position:absolute;right:-16px;top:-16px;width:auto}}.dso-date__mobile-heading.sc-dso-date-picker-legacy{display:inline-block;font-weight:600;max-width:84%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (min-width: 36em){.dso-date__mobile-heading.sc-dso-date-picker-legacy{display:none}}.dso-date__close.sc-dso-date-picker-legacy{-webkit-appearance:none;align-items:center;appearance:none;background-color:#fff;border:0;border-radius:50%;color:#39870c;cursor:pointer;display:flex;font-size:1em;height:32px;justify-content:center;margin-right:-4px;padding:0;width:32px}@media (min-width: 36em){.dso-date__close.sc-dso-date-picker-legacy{margin-right:0;opacity:0}}.dso-date__close.sc-dso-date-picker-legacy:focus{box-shadow:0 0 0 2px #275937;outline:none}@media (min-width: 36em){.dso-date__close.sc-dso-date-picker-legacy:focus{opacity:1}}.dso-date__vhidden.sc-dso-date-picker-legacy{border:0;clip:rect(1px, 1px, 1px, 1px);height:1px;overflow:hidden;padding:0;position:absolute;top:0;width:1px}';const Y=T;const E={TAB:9,ESC:27,SPACE:32,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,LEFT:37,UP:38,RIGHT:39,DOWN:40};const j=/[^0-9-]+/g;const F=300;function K(e,t){const s=e.value;const a=e.selectionStart;if(!a){return s}const d=s.slice(0,a);const i=s.slice(a,s.length);const o=d.replace(t,"");const c=i.replace(t,"");const n=o+c;const r=o.length;e.value=n;e.selectionStart=e.selectionEnd=r;return n}const C=class{constructor(e){t(this,e);this.dsoDateChange=s(this,"dsoDateChange",7);this.dsoBlur=s(this,"dsoBlur",7);this.dsoKeyUp=s(this,"dsoKeyUp",7);this.dsoKeyDown=s(this,"dsoKeyDown",7);this.dsoFocus=s(this,"dsoFocus",7);this.monthSelectId=i("DsoDateMonth");this.yearSelectId=i("DsoDateYear");this.dialogLabelId=i("DsoDateLabel");this.localization=z;this.firstDayOfWeek=o.Monday;this.enableActiveFocus=()=>{this.activeFocus=true};this.disableActiveFocus=()=>{this.activeFocus=false};this.toggleOpen=e=>{e.preventDefault();this.open?this.hide(false):this.show()};this.handleEscKey=e=>{if(e.keyCode===E.ESC){this.hide()}};this.handleBlur=e=>{e.stopPropagation();this.dsoBlur.emit({component:"dso-date-picker-legacy"})};this.handleKeyUp=e=>{e.stopPropagation();this.dsoKeyUp.emit({component:"dso-date-picker-legacy",originalEvent:e})};this.handleKeyDown=e=>{e.stopPropagation();this.dsoKeyDown.emit({component:"dso-date-picker-legacy",originalEvent:e})};this.handleFocus=e=>{e.stopPropagation();this.dsoFocus.emit({component:"dso-date-picker-legacy"})};this.handleTouchStart=e=>{const t=e.changedTouches[0];if(!t){throw new Error("No touch found")}this.initialTouchX=t.pageX;this.initialTouchY=t.pageY};this.handleTouchMove=e=>{e.preventDefault()};this.handleTouchEnd=e=>{var t,s;const a=e.changedTouches[0];if(!a){throw new Error("No touch found")}const d=a.pageX-((t=this.initialTouchX)!==null&&t!==void 0?t:0);const i=a.pageY-((s=this.initialTouchY)!==null&&s!==void 0?s:0);const o=70;const c=Math.abs(d)>=o&&Math.abs(i)<=o;const n=Math.abs(i)>=o&&Math.abs(d)<=o&&i>0;if(c){this.addMonths(d<0?1:-1)}else if(n){this.hide(false);e.preventDefault()}this.initialTouchY=undefined;this.initialTouchX=undefined};this.handleNextMonthClick=e=>{e.preventDefault();this.addMonths(1)};this.handlePreviousMonthClick=e=>{e.preventDefault();this.addMonths(-1)};this.handleFirstFocusableKeydown=e=>{var t;if(e.keyCode===E.TAB&&e.shiftKey){(t=this.focusedDayNode)===null||t===void 0?void 0:t.focus();e.preventDefault()}};this.handleKeyboardNavigation=e=>{var t;if(e.keyCode===E.TAB&&!e.shiftKey){e.preventDefault();(t=this.firstFocusableElement)===null||t===void 0?void 0:t.focus();return}let s=true;switch(e.keyCode){case E.RIGHT:this.addDays(1);break;case E.LEFT:this.addDays(-1);break;case E.DOWN:this.addDays(7);break;case E.UP:this.addDays(-7);break;case E.PAGE_UP:if(e.shiftKey){this.addYears(-1)}else{this.addMonths(-1)}break;case E.PAGE_DOWN:if(e.shiftKey){this.addYears(1)}else{this.addMonths(1)}break;case E.HOME:this.startOfWeek();break;case E.END:this.endOfWeek();break;default:s=false}if(s){e.preventDefault();this.enableActiveFocus()}};this.handleDaySelect=(e,t)=>{if(!_(t,n(this.min),n(this.max))){return}if(t.getMonth()===this.focusedDay.getMonth()){this.setValue(t);this.hide()}else{this.setFocusedDay(t)}};this.handleMonthSelect=e=>{if(e.target instanceof HTMLSelectElement){this.setMonth(parseInt(e.target.value,10))}};this.handleYearSelect=e=>{if(e.target instanceof HTMLSelectElement){this.setYear(parseInt(e.target.value,10))}};this.handleInputChange=e=>{const t=e.target;const s=K(t,j);this.setValue(s)};this.prepareEvent=e=>{const t={component:"dso-date-picker-legacy",value:"",valueAsDate:undefined};if(e instanceof Date){t.valueAsDate=e}else{t.value=e;t.valueAsDate=n(e)}if(t.valueAsDate){t.value=r(t.valueAsDate)}if(!t.valueAsDate&&this.required){t.error="required"}if(t.value&&!t.valueAsDate){t.error="invalid"}if(t.valueAsDate&&(this.min||this.max)){const e=n(this.min);const s=n(this.max);const a=k(t.valueAsDate,e,s);if(a!==t.valueAsDate&&a===e){t.valueAsDate=undefined;t.error="min-range"}else if(a!==t.valueAsDate&&a===s){t.valueAsDate=undefined;t.error="max-range"}}return t};this.processFocusedDayNode=e=>{this.focusedDayNode=e;if(this.activeFocus&&this.open){setTimeout((()=>e.focus()),0)}};this.activeFocus=false;this.focusedDay=new Date;this.open=false;this.visible=false;this.name="date";this.identifier=undefined;this.disabled=false;this.role=null;this.direction="right";this.required=false;this.invalid=undefined;this.describedBy=undefined;this.dsoAutofocus=false;this.value="";this.min=undefined;this.max=undefined}handleDocumentClick(e){if(!this.open){return}const t=e.composedPath();for(const e of t){if(e instanceof Node&&this.element.contains(e)){return}}this.hide(false)}async setFocus(){var e;return(e=this.datePickerLegacyInput)===null||e===void 0?void 0:e.focus()}async show(){if(typeof this.hideTimeoutId!=="undefined"){clearTimeout(this.hideTimeoutId)}this.visible=true;setTimeout((()=>{this.open=true;this.setFocusedDay(n(this.value)||new Date);if(typeof this.focusTimeoutId!=="undefined"){clearTimeout(this.focusTimeoutId)}this.focusTimeoutId=setTimeout((()=>{var e;return(e=this.monthSelectNode)===null||e===void 0?void 0:e.focus()}),F)}))}async hide(e=true){this.open=false;if(typeof this.focusTimeoutId!=="undefined"){clearTimeout(this.focusTimeoutId)}this.hideTimeoutId=setTimeout((()=>{if(e&&this.datePickerLegacyButton){this.datePickerLegacyButton.focus()}this.visible=false}),F+200)}addDays(e){this.setFocusedDay(h(this.focusedDay,e))}addMonths(e){this.setMonth(this.focusedDay.getMonth()+e)}addYears(e){this.setYear(this.focusedDay.getFullYear()+e)}startOfWeek(){this.setFocusedDay(p(this.focusedDay,this.firstDayOfWeek))}endOfWeek(){this.setFocusedDay(f(this.focusedDay,this.firstDayOfWeek))}setMonth(e){const t=g(u(this.focusedDay),e);const s=b(t);const a=g(this.focusedDay,e);this.setFocusedDay(k(a,t,s))}setYear(e){const t=y(u(this.focusedDay),e);const s=b(t);const a=y(this.focusedDay,e);this.setFocusedDay(k(a,t,s))}setFocusedDay(e){this.focusedDay=k(e,n(this.min),n(this.max))}setValue(e){const t=this.prepareEvent(e);this.value=typeof e==="string"?e:t.value;if(this.value!==this.previousValue){this.dsoDateChange.emit(t);this.previousValue=this.value}}componentWillLoad(){const e=n(this.min);const t=n(this.max);if(e&&e>this.focusedDay){this.focusedDay=e}if(t&&t<this.focusedDay){this.focusedDay=t}}componentDidLoad(){const e=n(this.value);if(e){this.previousValue=this.value=r(e)}if(this.dsoAutofocus){this.setFocus()}}render(){var t,s;const d=n(this.value);const i=d&&r(d);const o=(d||this.focusedDay).getFullYear();const c=this.focusedDay.getMonth();const l=this.focusedDay.getFullYear();const h=n(this.min);const p=n(this.max);const f=h&&h.getMonth()===c&&h.getFullYear()===l;const u=p&&p.getMonth()===c&&p.getFullYear()===l;let b=o-10;let g=o+10;if(h){b=Math.max(b,h.getFullYear())}if(p){g=Math.min(g,p.getFullYear())}return e(a,{key:"45dc93382b869cae594c284f5a64777b6ce83e20"},e("div",{key:"4fa976df3079d11e19701c1d4d10225030c8bff8",class:{"dso-date":true,"dso-visible":this.visible}},e("div",{key:"ad246de32f9a5f2ac702c3761500cc901fee74eb",class:"dso-date__input-wrapper"},e("input",{key:"2ec69c422cc6a54d914e1f8a09832cde659a0ffd",class:"dso-date__input",value:this.value,placeholder:this.localization.placeholder,id:this.identifier,disabled:this.disabled,role:(t=this.role)!==null&&t!==void 0?t:undefined,required:this.required?true:undefined,"aria-autocomplete":"none","aria-invalid":(s=this.invalid)===null||s===void 0?void 0:s.toString(),"aria-describedby":this.describedBy,onInput:this.handleInputChange,onFocus:this.handleFocus,onBlur:this.handleBlur,onKeyUp:this.handleKeyUp,onKeyDown:this.handleKeyDown,autoComplete:"off",ref:e=>this.datePickerLegacyInput=e}),e("button",{key:"f4d34fdea62b07dd8ebd23ab1cd390fb19523ed9",type:"button",class:"dso-date__toggle",onClick:this.toggleOpen,disabled:this.disabled,ref:e=>this.datePickerLegacyButton=e},e("span",{key:"3682b7a30487d85e6c4a26d191ee27fe304b5b1d",class:"dso-date__toggle-icon"},e("dso-icon",{key:"f9b2452ab20fa94fdee09a106ab623f888811ea5",icon:"calendar"})),e("span",{key:"687934d98c04cfb2d9bdc5047d07578492e3b4d3",class:"dso-date__vhidden"},this.localization.buttonLabel,i&&e("span",{key:"c1d7907d3c24d8cbf5f2833d6dd25d98eaef9630"},", ",this.localization.selectedDateMessage," ",i)))),e("div",{key:"152358db0119a3d29d5bb8b91d7a2ad84ee40855",class:{"dso-date__dialog":true,"is-left":this.direction==="left","is-active":this.open},role:"dialog","aria-modal":"true","aria-hidden":this.open?"false":"true","aria-labelledby":this.dialogLabelId,onTouchMove:this.handleTouchMove,onTouchStart:this.handleTouchStart,onTouchEnd:this.handleTouchEnd},e("div",{key:"ac00557f0f9e40c668d81863fd3c25d208f0ee4c",class:"dso-date__dialog-content",onKeyDown:this.handleEscKey},e("div",{key:"7178016b07bbd57788d44e31fded5cc8f828b3d3",class:"dso-date__vhidden dso-date__instructions","aria-live":"polite"},this.localization.keyboardInstruction),e("div",{key:"4511337996a99964eb4fd97e1bcf612b3f9454a0",class:"dso-date__mobile",onFocusin:this.disableActiveFocus},e("label",{key:"c20e75cab9fcdc3541f5bc0eaf5e881b94f5e315",class:"dso-date__mobile-heading"},this.localization.calendarHeading),e("button",{key:"e1e61f43af41624dfd07801840f5e0b081bd714b",class:"dso-date__close",ref:e=>this.firstFocusableElement=e,onKeyDown:this.handleFirstFocusableKeydown,onClick:()=>this.hide(),type:"button"},e("dso-icon",{key:"84aa4dfe2e0a07bb4e596e5d0bf03fcb86c20d57",icon:"times"}),e("span",{key:"3b1ef4ac7a0ac1d24a5add77c20896bba4f46af7",class:"dso-date__vhidden"},this.localization.closeLabel))),e("div",{key:"9e4e06d30b41a3ce5aefbb808db87cdf6e883884",class:"dso-date__header",onFocusin:this.disableActiveFocus},e("div",{key:"0b89be253bfd409054a52412969ae2ae6120e382"},e("h2",{key:"94b922c24f610ce05ce907abcd6014e93f5c155f",id:this.dialogLabelId,class:"dso-date__vhidden","aria-live":"polite"},this.localization.monthNames[c]," ",this.focusedDay.getFullYear()),e("label",{key:"3813086ca6ee3951d32ad451f1f86c5493f5c4a7",htmlFor:this.monthSelectId,class:"dso-date__vhidden"},this.localization.monthSelectLabel),e("div",{key:"834c834c3e941de77ac8cf2d0ccf6bbf0581a2de",class:"dso-date__select"},e("select",{key:"aae80a3eaf0c5c997ec53b960f3e33f7e72bfe89",id:this.monthSelectId,class:"dso-date__select--month",ref:e=>this.monthSelectNode=e,onChange:this.handleMonthSelect},N(this.localization,o,h,p).map((t=>{const s=this.localization.monthNames.indexOf(t);return e("option",{key:t,value:s,selected:s===c},t)}))),e("div",{key:"f9ee321259103e88e5b76bb87cca77860e65b2c1",class:"dso-date__select-label","aria-hidden":"true"},e("span",{key:"ca117ccf3aeaf9876d3fd627762a7696f3f4e1a4"},this.localization.monthNamesShort[c]),e("dso-icon",{key:"244ffcb4f8a336c8deefc69c14688405e1bc23f7",icon:"chevron-down"}))),e("label",{key:"f01dc78c49881d6c7d88ca39890e70d0e9785559",htmlFor:this.yearSelectId,class:"dso-date__vhidden"},this.localization.yearSelectLabel),e("div",{key:"b3bae01d2ed53da52269a63c86fe291cfca76292",class:"dso-date__select"},e("select",{key:"63bb09515fa036307995ce4812088e0828f50484",id:this.yearSelectId,class:"dso-date__select--year",onChange:this.handleYearSelect},S(b,g).map((t=>e("option",{key:t,selected:t===l},t)))),e("div",{key:"db7adc0799385cbe2d60f022acdf73e4ca33ed40",class:"dso-date__select-label","aria-hidden":"true"},e("span",{key:"f3eaddb8cdc45daf9ef8574509bcc415e675dcc2"},this.focusedDay.getFullYear()),e("dso-icon",{key:"cb415d3468b9f163f4400d820d22e62406eda2d9",icon:"chevron-down"})))),e("div",{key:"7beead2ff31b3c6b6736c11679d12725e9634ff1",class:"dso-date__nav"},e("button",{key:"b21c215d623f5243c3d81e327e383bb062af3db8",class:"dso-date__prev",onClick:this.handlePreviousMonthClick,disabled:f,type:"button"},e("dso-icon",{key:"b755c8a2aafd1676ed517dfe6e303fd69337d415",icon:"chevron-left"}),e("span",{key:"77126a760003533cad64ab8d423b9d945f33f24e",class:"dso-date__vhidden"},this.localization.prevMonthLabel)),e("button",{key:"f17d30a36392a95ef8d8bf7096674c123231ca82",class:"dso-date__next",onClick:this.handleNextMonthClick,disabled:u,type:"button"},e("dso-icon",{key:"fdf88a664810c744eb9da6a6bea4343e09a0aef6",icon:"chevron-right"}),e("span",{key:"cb017e38ad087b2ded215880fe405a915cdd3922",class:"dso-date__vhidden"},this.localization.nextMonthLabel)))),e(M,{key:"ae4da41ad13aa21365703e8470485cef9f8dc994",selectedDate:d,focusedDate:this.focusedDay,onDateSelect:this.handleDaySelect,onKeyboardNavigation:this.handleKeyboardNavigation,labelledById:this.dialogLabelId,localization:this.localization,firstDayOfWeek:this.firstDayOfWeek,focusedDayRef:this.processFocusedDayNode,min:h,max:p})))))}get element(){return d(this)}};C.style=Y;export{C as dso_date_picker_legacy};
|
|
2
|
-
//# sourceMappingURL=p-68e51737.entry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["DaysOfWeek","createDate","year","month","day","dayInt","parseInt","monthInt","yearInt","isValid","Number","isInteger","Date","parseDutchDate","value","matches","split","length","printDutchDate","date","d","getDate","toString","padStart","m","getMonth","y","getFullYear","isEqual","a","b","addDays","days","setDate","startOfWeek","firstDayOfWeek","Monday","getDay","diff","endOfWeek","startOfMonth","endOfMonth","setMonth","setYear","setFullYear","inRange","min","max","clamp","time","getTime","getDaysInRange","start","end","current","push","getViewOfMonth","DatePickerLegacyDay","focusedDay","today","onDaySelect","onKeyboardNavigation","focusedDayRef","isToday","isFocused","notCurrentMonth","isOutsideRange","handleClick","e","h","class","tabIndex","onClick","onKeyDown","disabled","type","ref","el","chunk","array","chunkSize","result","i","slice","mapWithOffset","startingOffset","mapFn","map","_","adjustedIndex","item","Error","DatePickerLegacyMonth","selectedDate","focusedDate","labelledById","localization","onDateSelect","onMouseDown","onFocusIn","role","onFocusin","dayNames","dayName","scope","substr","week","undefined","buttonLabel","placeholder","selectedDateMessage","prevMonthLabel","nextMonthLabel","monthSelectLabel","yearSelectLabel","closeLabel","keyboardInstruction","calendarHeading","monthNames","monthNamesShort","monthRange","selectedYear","minDate","maxDate","minYear","minMonth","maxYear","maxMonth","filter","_month","index","range","from","to","datePickerLegacyCss","DsoDatePickerLegacyStyle0","keyCode","TAB","ESC","SPACE","PAGE_UP","PAGE_DOWN","END","HOME","LEFT","UP","RIGHT","DOWN","DISALLOWED_CHARACTERS","TRANSITION_MS","cleanValue","input","regex","cursor","selectionStart","beforeCursor","afterCursor","filteredBeforeCursor","replace","filterAfterCursor","newValue","newCursor","selectionEnd","DsoDatePickerLegacy","this","monthSelectId","createIdentifier","yearSelectId","dialogLabelId","defaultLocalization","enableActiveFocus","activeFocus","disableActiveFocus","toggleOpen","preventDefault","open","hide","show","handleEscKey","event","handleBlur","stopPropagation","dsoBlur","emit","component","handleKeyUp","dsoKeyUp","originalEvent","handleKeyDown","dsoKeyDown","handleFocus","dsoFocus","handleTouchStart","touch","changedTouches","initialTouchX","pageX","initialTouchY","pageY","handleTouchMove","handleTouchEnd","distX","_a","distY","_b","threshold","isHorizontalSwipe","Math","abs","isDownwardsSwipe","addMonths","handleNextMonthClick","handlePreviousMonthClick","handleFirstFocusableKeydown","shiftKey","focusedDayNode","focus","handleKeyboardNavigation","firstFocusableElement","handled","addYears","handleDaySelect","_event","setValue","setFocusedDay","handleMonthSelect","target","HTMLSelectElement","handleYearSelect","handleInputChange","cleanedValue","prepareEvent","valueAsDate","required","error","clampValue","processFocusedDayNode","element","setTimeout","handleDocumentClick","path","composedPath","Node","contains","setFocus","datePickerLegacyInput","hideTimeoutId","clearTimeout","visible","focusTimeoutId","monthSelectNode","moveFocusToButton","datePickerLegacyButton","months","years","previousValue","dsoDateChange","componentWillLoad","componentDidLoad","dsoAutofocus","render","formattedDate","focusedMonth","focusedYear","prevMonthDisabled","nextMonthDisabled","Host","key","id","identifier","invalid","describedBy","onInput","onFocus","onBlur","onKeyUp","autoComplete","icon","direction","onTouchMove","onTouchStart","onTouchEnd","htmlFor","onChange","indexOf","selected"],"sources":["src/components/date-picker-legacy/date-utils.ts","src/components/date-picker-legacy/date-picker-day.tsx","src/components/date-picker-legacy/date-picker-month.tsx","src/components/date-picker-legacy/date-localization.ts","src/components/date-picker-legacy/utils/month-range.ts","src/components/date-picker-legacy/utils/range.ts","src/components/date-picker-legacy/date-picker-legacy.scss?tag=dso-date-picker-legacy&encapsulation=scoped","src/components/date-picker-legacy/date-picker-legacy.tsx"],"sourcesContent":["// eslint-disable-next-line @stencil-community/ban-exported-const-enums -- This enum is not part of public API\r\nexport enum DaysOfWeek {\r\n Sunday = 0,\r\n Monday = 1,\r\n Tuesday = 2,\r\n Wednesday = 3,\r\n Thursday = 4,\r\n Friday = 5,\r\n Saturday = 6,\r\n}\r\n\r\nexport function createDate(year: string, month: string, day: string): Date | undefined {\r\n const dayInt = parseInt(day, 10);\r\n const monthInt = parseInt(month, 10);\r\n const yearInt = parseInt(year, 10);\r\n\r\n const isValid =\r\n Number.isInteger(yearInt) && // all parts should be integers\r\n Number.isInteger(monthInt) &&\r\n Number.isInteger(dayInt) &&\r\n monthInt > 0 && // month must be 1-12\r\n monthInt <= 12 &&\r\n dayInt > 0 && // day must be 1-31\r\n dayInt <= 31 &&\r\n yearInt > 0;\r\n\r\n if (isValid) {\r\n return new Date(yearInt, monthInt - 1, dayInt);\r\n }\r\n}\r\n\r\n/**\r\n * @param value date string in Dutch format D-M-YYYY\r\n */\r\nexport function parseDutchDate(value: string | undefined): Date | undefined {\r\n if (!value) {\r\n return;\r\n }\r\n\r\n const matches = value.split(\"-\");\r\n\r\n if (\r\n matches.length === 3 &&\r\n typeof matches[0] === \"string\" &&\r\n typeof matches[1] === \"string\" &&\r\n typeof matches[2] === \"string\" &&\r\n matches[2].length === 4\r\n ) {\r\n return createDate(matches[2], matches[1], matches[0]);\r\n }\r\n}\r\n\r\n/**\r\n * print date in format DD-MM-YYYY\r\n * @param date\r\n */\r\nexport function printDutchDate(date: Date | undefined): string {\r\n if (!date) {\r\n return \"\";\r\n }\r\n\r\n const d = date.getDate().toString(10).padStart(2, \"0\");\r\n const m = (date.getMonth() + 1).toString(10).padStart(2, \"0\");\r\n const y = date.getFullYear().toString(10).padStart(2, \"0\");\r\n\r\n return `${d}-${m}-${y}`;\r\n}\r\n\r\n/**\r\n * Compare if two dates are equal in terms of day, month, and year\r\n */\r\nexport function isEqual(a: Date | undefined, b: Date | undefined): boolean {\r\n if (!a || !b) {\r\n return false;\r\n }\r\n\r\n return a.getFullYear() === b.getFullYear() && a.getMonth() === b.getMonth() && a.getDate() === b.getDate();\r\n}\r\n\r\nexport function addDays(date: Date, days: number): Date {\r\n const d = new Date(date);\r\n d.setDate(d.getDate() + days);\r\n return d;\r\n}\r\n\r\nexport function addMonths(date: Date, months: number): Date {\r\n const d = new Date(date);\r\n d.setMonth(date.getMonth() + months);\r\n return d;\r\n}\r\n\r\nexport function addYears(date: Date, years: number): Date {\r\n const d = new Date(date);\r\n d.setFullYear(date.getFullYear() + years);\r\n return d;\r\n}\r\n\r\nexport function startOfWeek(date: Date, firstDayOfWeek: DaysOfWeek = DaysOfWeek.Monday): Date {\r\n const d = new Date(date);\r\n const day = d.getDay();\r\n const diff = (day < firstDayOfWeek ? 7 : 0) + day - firstDayOfWeek;\r\n\r\n d.setDate(d.getDate() - diff);\r\n return d;\r\n}\r\n\r\nexport function endOfWeek(date: Date, firstDayOfWeek: DaysOfWeek = DaysOfWeek.Monday): Date {\r\n const d = new Date(date);\r\n const day = d.getDay();\r\n const diff = (day < firstDayOfWeek ? -7 : 0) + 6 - (day - firstDayOfWeek);\r\n\r\n d.setDate(d.getDate() + diff);\r\n return d;\r\n}\r\n\r\nexport function startOfMonth(date: Date): Date {\r\n return new Date(date.getFullYear(), date.getMonth(), 1);\r\n}\r\n\r\nexport function endOfMonth(date: Date): Date {\r\n return new Date(date.getFullYear(), date.getMonth() + 1, 0);\r\n}\r\n\r\nexport function setMonth(date: Date, month: number): Date {\r\n const d = new Date(date);\r\n d.setMonth(month);\r\n return d;\r\n}\r\n\r\nexport function setYear(date: Date, year: number): Date {\r\n const d = new Date(date);\r\n d.setFullYear(year);\r\n return d;\r\n}\r\n\r\n/**\r\n * Check if date is within a min and max\r\n */\r\nexport function inRange(date: Date, min?: Date, max?: Date): boolean {\r\n return clamp(date, min, max) === date;\r\n}\r\n\r\n/**\r\n * Ensures date is within range, returns min or max if out of bounds\r\n */\r\nexport function clamp(date: Date, min?: Date, max?: Date): Date {\r\n const time = date.getTime();\r\n\r\n if (min && min instanceof Date && time < min.getTime()) {\r\n return min;\r\n }\r\n\r\n if (max && max instanceof Date && time > max.getTime()) {\r\n return max;\r\n }\r\n\r\n return date;\r\n}\r\n\r\n/**\r\n * given start and end date, return an (inclusive) array of all dates in between\r\n * @param start\r\n * @param end\r\n */\r\nfunction getDaysInRange(start: Date, end: Date): Date[] {\r\n const days: Date[] = [];\r\n let current = start;\r\n\r\n while (!isEqual(current, end)) {\r\n days.push(current);\r\n current = addDays(current, 1);\r\n }\r\n\r\n days.push(current);\r\n\r\n return days;\r\n}\r\n\r\n/**\r\n * given a date, return an array of dates from a calendar perspective\r\n * @param date\r\n * @param firstDayOfWeek\r\n */\r\nexport function getViewOfMonth(date: Date, firstDayOfWeek: DaysOfWeek = DaysOfWeek.Monday): Date[] {\r\n const start = startOfWeek(startOfMonth(date), firstDayOfWeek);\r\n const end = endOfWeek(endOfMonth(date), firstDayOfWeek);\r\n\r\n return getDaysInRange(start, end);\r\n}\r\n","import { h, FunctionalComponent } from \"@stencil/core\";\r\nimport { isEqual, printDutchDate } from \"./date-utils\";\r\n\r\nexport type DatePickerLegacyDayProps = {\r\n focusedDay: Date;\r\n today: Date;\r\n day: Date;\r\n inRange: boolean;\r\n onDaySelect: (event: MouseEvent, day: Date) => void;\r\n onKeyboardNavigation: (event: KeyboardEvent) => void;\r\n focusedDayRef?: (element: HTMLButtonElement) => void;\r\n};\r\n\r\nexport const DatePickerLegacyDay: FunctionalComponent<DatePickerLegacyDayProps> = ({\r\n focusedDay,\r\n today,\r\n day,\r\n onDaySelect,\r\n onKeyboardNavigation,\r\n focusedDayRef,\r\n inRange,\r\n}) => {\r\n const isToday = isEqual(day, today);\r\n const isFocused = isEqual(day, focusedDay);\r\n const notCurrentMonth = day.getMonth() !== focusedDay.getMonth();\r\n const isOutsideRange = !inRange;\r\n\r\n function handleClick(e: MouseEvent) {\r\n onDaySelect(e, day);\r\n }\r\n\r\n return (\r\n <button\r\n class={{\r\n \"dso-date__day\": true,\r\n \"is-today\": isToday,\r\n }}\r\n tabIndex={isFocused ? 0 : -1}\r\n onClick={handleClick}\r\n onKeyDown={onKeyboardNavigation}\r\n disabled={isOutsideRange || notCurrentMonth}\r\n type=\"button\"\r\n ref={(el) => {\r\n if (isFocused && el && focusedDayRef) {\r\n focusedDayRef(el);\r\n }\r\n }}\r\n >\r\n <span aria-hidden=\"true\">{day.getDate()}</span>\r\n <span class=\"dso-date__vhidden\">{printDutchDate(day)}</span>\r\n </button>\r\n );\r\n};\r\n","import { h, FunctionalComponent } from \"@stencil/core\";\r\nimport { DsoLocalizedText } from \"./date-localization\";\r\nimport { DatePickerLegacyDay, DatePickerLegacyDayProps } from \"./date-picker-day\";\r\nimport { getViewOfMonth, inRange, DaysOfWeek, isEqual } from \"./date-utils\";\r\n\r\nfunction chunk<T>(array: T[], chunkSize: number): T[][] {\r\n const result = [];\r\n\r\n for (let i = 0; i < array.length; i += chunkSize) {\r\n result.push(array.slice(i, i + chunkSize));\r\n }\r\n\r\n return result;\r\n}\r\n\r\nfunction mapWithOffset<T, U>(array: T[], startingOffset: number, mapFn: (item: T) => U): U[] {\r\n return array.map((_, i) => {\r\n const adjustedIndex = (i + startingOffset) % array.length;\r\n const item = array[adjustedIndex];\r\n if (!item) {\r\n throw new Error(\"No item found\");\r\n }\r\n\r\n return mapFn(item);\r\n });\r\n}\r\n\r\ntype DatePickerLegacyMonthProps = {\r\n selectedDate: Date | undefined;\r\n focusedDate: Date;\r\n labelledById: string;\r\n localization: DsoLocalizedText;\r\n firstDayOfWeek: DaysOfWeek;\r\n min?: Date;\r\n max?: Date;\r\n onDateSelect: DatePickerLegacyDayProps[\"onDaySelect\"];\r\n onKeyboardNavigation: DatePickerLegacyDayProps[\"onKeyboardNavigation\"];\r\n focusedDayRef: (element: HTMLButtonElement) => void;\r\n onFocusIn?: (e: FocusEvent) => void;\r\n onMouseDown?: (e: MouseEvent) => void;\r\n};\r\n\r\nexport const DatePickerLegacyMonth: FunctionalComponent<DatePickerLegacyMonthProps> = ({\r\n selectedDate,\r\n focusedDate,\r\n labelledById,\r\n localization,\r\n firstDayOfWeek,\r\n min,\r\n max,\r\n onDateSelect,\r\n onKeyboardNavigation,\r\n focusedDayRef,\r\n onMouseDown,\r\n onFocusIn,\r\n}) => {\r\n const today = new Date();\r\n const days = getViewOfMonth(focusedDate, firstDayOfWeek);\r\n\r\n return (\r\n <table\r\n class=\"dso-date__table\"\r\n role=\"grid\"\r\n aria-labelledby={labelledById}\r\n onFocusin={onFocusIn}\r\n onMouseDown={onMouseDown}\r\n >\r\n <thead>\r\n <tr>\r\n {mapWithOffset(localization.dayNames, firstDayOfWeek, (dayName) => (\r\n <th class=\"dso-date__table-header\" scope=\"col\">\r\n <span aria-hidden=\"true\">{dayName.substr(0, 2)}</span>\r\n <span class=\"dso-date__vhidden\">{dayName}</span>\r\n </th>\r\n ))}\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {chunk(days, 7).map((week) => (\r\n <tr class=\"dso-date__row\">\r\n {week.map((day) => (\r\n <td\r\n class=\"dso-date__cell\"\r\n role=\"gridcell\"\r\n aria-selected={isEqual(day, selectedDate) ? \"true\" : undefined}\r\n aria-current={isEqual(day, today) ? \"date\" : undefined}\r\n >\r\n <DatePickerLegacyDay\r\n day={day}\r\n today={today}\r\n focusedDay={focusedDate}\r\n inRange={inRange(day, min, max)}\r\n onDaySelect={onDateSelect}\r\n onKeyboardNavigation={onKeyboardNavigation}\r\n focusedDayRef={focusedDayRef}\r\n />\r\n </td>\r\n ))}\r\n </tr>\r\n ))}\r\n </tbody>\r\n </table>\r\n );\r\n};\r\n","type MonthsNames = [string, string, string, string, string, string, string, string, string, string, string, string];\r\ntype DayNames = [string, string, string, string, string, string, string];\r\n\r\nexport type DsoLocalizedText = {\r\n buttonLabel: string;\r\n placeholder: string;\r\n selectedDateMessage: string;\r\n prevMonthLabel: string;\r\n nextMonthLabel: string;\r\n monthSelectLabel: string;\r\n yearSelectLabel: string;\r\n closeLabel: string;\r\n keyboardInstruction: string;\r\n calendarHeading: string;\r\n dayNames: DayNames;\r\n monthNames: MonthsNames;\r\n monthNamesShort: MonthsNames;\r\n};\r\n\r\nconst localization: DsoLocalizedText = {\r\n buttonLabel: \"Kies datum\",\r\n placeholder: \"dd-mm-jjjj\",\r\n selectedDateMessage: \"Geselecteerde datum is\",\r\n prevMonthLabel: \"Vorige maand\",\r\n nextMonthLabel: \"Volgende maand\",\r\n monthSelectLabel: \"Maand\",\r\n yearSelectLabel: \"Jaar\",\r\n closeLabel: \"Sluiten\",\r\n keyboardInstruction: \"Gebruik de pijltjestoetsen om een dag te kiezen\",\r\n calendarHeading: \"Kies een datum\",\r\n dayNames: [\"Zondag\", \"Maandag\", \"Dinsdag\", \"Woensdag\", \"Donderdag\", \"Vrijdag\", \"Zaterdag\"],\r\n monthNames: [\r\n \"Januari\",\r\n \"Februari\",\r\n \"Maart\",\r\n \"April\",\r\n \"Mei\",\r\n \"Juni\",\r\n \"Juli\",\r\n \"Augustus\",\r\n \"September\",\r\n \"Oktober\",\r\n \"November\",\r\n \"December\",\r\n ],\r\n monthNamesShort: [\"Jan\", \"Feb\", \"Mrt\", \"Apr\", \"Mei\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Okt\", \"Nov\", \"Dec\"],\r\n};\r\n\r\nexport default localization;\r\n","import { DsoLocalizedText } from \"../date-localization\";\r\n\r\nexport function monthRange(\r\n localization: DsoLocalizedText,\r\n selectedYear: number,\r\n minDate?: Date,\r\n maxDate?: Date,\r\n): string[] {\r\n if (minDate && maxDate) {\r\n const { minYear, minMonth } = { minYear: minDate.getFullYear(), minMonth: minDate.getMonth() };\r\n const { maxYear, maxMonth } = { maxYear: maxDate.getFullYear(), maxMonth: maxDate.getMonth() };\r\n\r\n return localization.monthNames.filter((_month, index) => {\r\n if (minYear === selectedYear && maxYear === selectedYear) {\r\n return index >= minMonth && index >= maxMonth;\r\n }\r\n\r\n if (minYear === selectedYear) {\r\n return index >= minMonth;\r\n }\r\n\r\n if (maxYear === selectedYear) {\r\n return index <= maxMonth;\r\n }\r\n\r\n return true;\r\n });\r\n }\r\n\r\n if (minDate) {\r\n const { minYear, minMonth } = { minYear: minDate.getFullYear(), minMonth: minDate.getMonth() };\r\n\r\n return localization.monthNames.filter((_month, index) => minYear === selectedYear && index >= minMonth);\r\n }\r\n\r\n if (maxDate) {\r\n const { maxYear, maxMonth } = { maxYear: maxDate.getFullYear(), maxMonth: maxDate.getMonth() };\r\n\r\n return localization.monthNames.filter((_month, index) => maxYear === selectedYear && index <= maxMonth);\r\n }\r\n\r\n return localization.monthNames;\r\n}\r\n","export function range(from: number, to: number) {\r\n const result: number[] = [];\r\n for (let i = from; i <= to; i++) {\r\n result.push(i);\r\n }\r\n return result;\r\n}\r\n","@use \"~dso-toolkit/src/variables/units\";\r\n@use \"~dso-toolkit/src/variables/colors\";\r\n@use \"~dso-toolkit/src/variables/zindex\";\r\n@use \"~dso-toolkit/src/components/form-control\";\r\n\r\n@use \"date-picker-legacy.variables\" as core-date-picker-legacy-variables;\r\n\r\n:host {\r\n display: block;\r\n\r\n &[invalid]:not([invalid=\"false\"]) {\r\n .dso-date__input {\r\n border-color: colors.$danger-color;\r\n }\r\n }\r\n}\r\n\r\n.dso-date *,\r\n.dso-date *::before,\r\n.dso-date *::after {\r\n box-sizing: border-box;\r\n}\r\n\r\n.dso-date {\r\n box-sizing: border-box;\r\n color: core-date-picker-legacy-variables.$color-text;\r\n display: block;\r\n font-family: core-date-picker-legacy-variables.$font;\r\n margin: 0;\r\n position: relative;\r\n text-align: left;\r\n width: 100%;\r\n\r\n &:not(.dso-visible) {\r\n .dso-date__dialog {\r\n display: none;\r\n }\r\n }\r\n}\r\n\r\n.dso-date__input {\r\n @include form-control.root();\r\n}\r\n\r\n// ---------------------------------------------\r\n// dso DATE PICKER __ TOGGLE\r\n// ---------------------------------------------\r\n\r\n.dso-date__toggle {\r\n -moz-appearance: none;\r\n -webkit-appearance: none;\r\n -webkit-user-select: none;\r\n align-items: center;\r\n appearance: none;\r\n background: core-date-picker-legacy-variables.$color-button-bg;\r\n border: 0;\r\n border-radius: 0;\r\n border-bottom-right-radius: core-date-picker-legacy-variables.$radius;\r\n border-top-right-radius: core-date-picker-legacy-variables.$radius;\r\n color: core-date-picker-legacy-variables.$color-icon;\r\n cursor: pointer;\r\n display: flex;\r\n height: core-date-picker-legacy-variables.$size;\r\n justify-content: center;\r\n padding: 0;\r\n position: absolute;\r\n right: 0;\r\n transform: translateY(-50%);\r\n top: 50%;\r\n user-select: none;\r\n width: core-date-picker-legacy-variables.$size;\r\n z-index: zindex.$datepicker + 1;\r\n\r\n &:disabled {\r\n color: core-date-picker-legacy-variables.$nav-button-disabled;\r\n cursor: default;\r\n }\r\n}\r\n\r\n// ---------------------------------------------\r\n// dso DATE PICKER __ DIALOG\r\n// ---------------------------------------------\r\n\r\n.dso-date__dialog {\r\n border-width: core-date-picker-legacy-variables.$border-width;\r\n display: flex;\r\n right: 0;\r\n min-width: 320px;\r\n opacity: 0;\r\n position: absolute;\r\n top: 100%;\r\n transform: scale(0.96) translateZ(0) translateY(-20px);\r\n transform-origin: top right;\r\n transition:\r\n transform 300ms ease,\r\n opacity 300ms ease,\r\n visibility 300ms ease;\r\n visibility: hidden;\r\n will-change: transform, opacity, visibility;\r\n z-index: zindex.$datepicker-dialog;\r\n\r\n @media (max-width: 35.9375em) {\r\n background: core-date-picker-legacy-variables.$overlay;\r\n bottom: 0;\r\n position: fixed;\r\n left: 0;\r\n right: 0;\r\n top: 0;\r\n transform: translateZ(0);\r\n transform-origin: bottom center;\r\n }\r\n\r\n &.is-left {\r\n left: units.$padding-base-horizontal * -1 + core-date-picker-legacy-variables.$border-width;\r\n right: auto;\r\n width: auto;\r\n }\r\n\r\n &.is-active {\r\n opacity: 1;\r\n // The value of 1.0001 fixes a Chrome glitch with scaling\r\n transform: scale(1.0001) translateZ(0) translateY(0);\r\n visibility: visible;\r\n }\r\n}\r\n\r\n.dso-date__dialog-content {\r\n background: core-date-picker-legacy-variables.$surface;\r\n border: 1px solid rgba(0, 0, 0, 0.1);\r\n border-radius: core-date-picker-legacy-variables.$radius;\r\n box-shadow: 0 8px 10px 1px rgba(0, 0, 0, 0.4);\r\n margin-left: auto;\r\n margin-right: -1px;\r\n margin-top: 8px;\r\n max-width: 310px;\r\n min-width: 290px;\r\n padding: 16px;\r\n position: relative;\r\n transform: none;\r\n width: 100%;\r\n z-index: zindex.$datepicker-dialog;\r\n\r\n @media (max-width: 35.9375em) {\r\n border: 0;\r\n border-radius: 0;\r\n border-top-left-radius: core-date-picker-legacy-variables.$radius;\r\n border-top-right-radius: core-date-picker-legacy-variables.$radius;\r\n bottom: 0;\r\n left: 0;\r\n margin: 0;\r\n max-width: none;\r\n min-height: 26em;\r\n opacity: 0;\r\n padding: 0 8% 20px;\r\n position: absolute;\r\n transform: translateZ(0) translateY(100%);\r\n transition:\r\n transform core-date-picker-legacy-variables.$transition-duration ease,\r\n opacity core-date-picker-legacy-variables.$transition-duration ease,\r\n visibility core-date-picker-legacy-variables.$transition-duration ease;\r\n visibility: hidden;\r\n will-change: transform, opacity, visibility;\r\n\r\n .is-active & {\r\n opacity: 1;\r\n transform: translateZ(0) translateY(0);\r\n visibility: visible;\r\n }\r\n }\r\n}\r\n\r\n// ---------------------------------------------\r\n// dso DATE PICKER __ TABLE\r\n// ---------------------------------------------\r\n\r\n.dso-date__table {\r\n border-collapse: collapse;\r\n border-spacing: 0;\r\n color: core-date-picker-legacy-variables.$color-text;\r\n font-size: 1rem;\r\n font-weight: core-date-picker-legacy-variables.$font-normal;\r\n line-height: 1.25;\r\n min-width: (core-date-picker-legacy-variables.$size + 2) * 7;\r\n table-layout: fixed;\r\n text-align: center;\r\n width: 100%;\r\n}\r\n\r\n.dso-date__table-header {\r\n font-size: 0.875em;\r\n font-weight: core-date-picker-legacy-variables.$font-bold;\r\n height: 36px;\r\n line-height: 36px;\r\n text-align: center;\r\n text-decoration: none;\r\n text-transform: uppercase;\r\n}\r\n\r\n.dso-date__cell {\r\n height: core-date-picker-legacy-variables.$size + 2;\r\n padding: 1px;\r\n text-align: center;\r\n width: core-date-picker-legacy-variables.$size + 2;\r\n}\r\n\r\n.dso-date__day {\r\n -moz-appearance: none;\r\n -webkit-appearance: none;\r\n appearance: none;\r\n background: transparent;\r\n border: 0;\r\n border-radius: 50%;\r\n box-shadow: 0 0 0 1px transparent;\r\n color: core-date-picker-legacy-variables.$color-text;\r\n cursor: pointer;\r\n display: inline-block;\r\n font-family: core-date-picker-legacy-variables.$font;\r\n font-variant-numeric: tabular-nums;\r\n font-weight: core-date-picker-legacy-variables.$font-normal;\r\n height: core-date-picker-legacy-variables.$size;\r\n line-height: 0;\r\n padding: 0;\r\n position: relative;\r\n text-align: center;\r\n vertical-align: middle;\r\n width: core-date-picker-legacy-variables.$size;\r\n z-index: zindex.$datepicker;\r\n\r\n &.is-today {\r\n background: transparent;\r\n height: core-date-picker-legacy-variables.$size - 2;\r\n box-shadow: 0 0 0 1px core-date-picker-legacy-variables.$color-button;\r\n width: core-date-picker-legacy-variables.$size - 2;\r\n }\r\n\r\n &:hover,\r\n &:active {\r\n background: core-date-picker-legacy-variables.$color-button;\r\n color: core-date-picker-legacy-variables.$color-text-active;\r\n }\r\n\r\n &:focus {\r\n background: transparent;\r\n box-shadow: 0 0 0 2px colors.$bosgroen;\r\n color: core-date-picker-legacy-variables.$color-text;\r\n height: core-date-picker-legacy-variables.$size - 4;\r\n outline: 0;\r\n width: core-date-picker-legacy-variables.$size - 4;\r\n }\r\n\r\n [aria-selected=\"true\"] & {\r\n background: core-date-picker-legacy-variables.$color-button;\r\n color: core-date-picker-legacy-variables.$color-text-active;\r\n\r\n &:focus {\r\n background: transparent;\r\n\r\n span[aria-hidden=\"true\"] {\r\n background: core-date-picker-legacy-variables.$color-button;\r\n border: 1px solid colors.$wit;\r\n line-height: core-date-picker-legacy-variables.$size - 6;\r\n }\r\n }\r\n }\r\n\r\n &:disabled {\r\n background: colors.$wit;\r\n color: core-date-picker-legacy-variables.$color-text-disabled;\r\n cursor: default;\r\n }\r\n\r\n span[aria-hidden=\"true\"] {\r\n border-radius: 50%;\r\n display: inline-block;\r\n height: core-date-picker-legacy-variables.$size - 4;\r\n line-height: core-date-picker-legacy-variables.$size - 4;\r\n width: core-date-picker-legacy-variables.$size - 4;\r\n }\r\n}\r\n\r\n// ---------------------------------------------\r\n// dso DATE PICKER __ HEADER\r\n// ---------------------------------------------\r\n\r\n.dso-date__header {\r\n align-items: center;\r\n display: flex;\r\n justify-content: space-between;\r\n margin-bottom: 16px;\r\n width: 100%;\r\n\r\n span {\r\n font-size: 0.875rem;\r\n }\r\n}\r\n\r\n// ---------------------------------------------\r\n// dso DATE PICKER __ NAVIGATION\r\n// ---------------------------------------------\r\n\r\n.dso-date__nav {\r\n white-space: nowrap; // stylelint-disable-line declaration-property-value-disallowed-list -- 3rd party code\r\n}\r\n\r\n.dso-date__prev,\r\n.dso-date__next {\r\n -moz-appearance: none;\r\n -webkit-appearance: none;\r\n align-items: center;\r\n appearance: none;\r\n background: core-date-picker-legacy-variables.$color-button-bg;\r\n border: 1px solid core-date-picker-legacy-variables.$color-button;\r\n border-radius: core-date-picker-legacy-variables.$radius;\r\n box-sizing: border-box;\r\n color: core-date-picker-legacy-variables.$color-button;\r\n cursor: pointer;\r\n display: inline-flex;\r\n font-size: 1em;\r\n height: 32px;\r\n justify-content: center;\r\n margin-left: 8px;\r\n padding: 0;\r\n width: 32px;\r\n\r\n @media (max-width: 35.9375em) {\r\n height: 40px;\r\n width: 40px;\r\n }\r\n\r\n &:hover,\r\n &:active {\r\n background-color: core-date-picker-legacy-variables.$color-button;\r\n color: core-date-picker-legacy-variables.$color-text-active;\r\n }\r\n\r\n &:focus {\r\n background: core-date-picker-legacy-variables.$color-button-bg;\r\n color: core-date-picker-legacy-variables.$color-button;\r\n }\r\n\r\n &:disabled {\r\n &,\r\n &:hover {\r\n background-color: colors.$wit;\r\n border-color: core-date-picker-legacy-variables.$nav-button-disabled;\r\n color: core-date-picker-legacy-variables.$nav-button-disabled;\r\n opacity: 1;\r\n }\r\n }\r\n\r\n svg {\r\n margin: 0 auto;\r\n }\r\n}\r\n\r\n// ---------------------------------------------\r\n// dso DATE PICKER __ SELECT\r\n// ---------------------------------------------\r\n\r\n.dso-date__select {\r\n display: inline-flex;\r\n height: units.$u1 * 4 - 4;\r\n line-height: units.$u1 * 4 - 4;\r\n position: relative;\r\n\r\n span {\r\n margin-right: 4px;\r\n }\r\n\r\n select {\r\n color: core-date-picker-legacy-variables.$color-primary;\r\n cursor: pointer;\r\n font-size: 1rem;\r\n height: 100%;\r\n left: 0;\r\n opacity: 0;\r\n position: absolute;\r\n top: 0;\r\n width: 100%;\r\n z-index: zindex.$datepicker + 1;\r\n\r\n &:focus + .dso-date__select-label {\r\n box-shadow: 0 0 0 2px core-date-picker-legacy-variables.$color-primary;\r\n }\r\n\r\n &:disabled {\r\n color: core-date-picker-legacy-variables.$nav-button-disabled;\r\n }\r\n }\r\n}\r\n\r\n.dso-date__select-label {\r\n align-items: center;\r\n border-radius: core-date-picker-legacy-variables.$radius;\r\n color: core-date-picker-legacy-variables.$select;\r\n display: flex;\r\n padding: 0 4px 0 8px;\r\n pointer-events: none;\r\n position: relative;\r\n width: 100%;\r\n z-index: zindex.$datepicker;\r\n\r\n span {\r\n font-size: 1.25rem;\r\n font-weight: core-date-picker-legacy-variables.$font-bold;\r\n line-height: 1.25;\r\n }\r\n\r\n svg {\r\n width: 16px;\r\n height: 16px;\r\n }\r\n}\r\n\r\n// ---------------------------------------------\r\n// dso DATE PICKER __ MOBILE\r\n// ---------------------------------------------\r\n\r\n.dso-date__mobile {\r\n align-items: center;\r\n border-bottom: 1px solid rgba(0, 0, 0, 0.12);\r\n display: flex;\r\n font-size: 1em;\r\n justify-content: space-between;\r\n margin-bottom: 20px;\r\n margin-left: -10%;\r\n overflow: hidden;\r\n padding: 12px 20px;\r\n position: relative;\r\n text-overflow: ellipsis; // stylelint-disable-line declaration-property-value-disallowed-list -- 3rd party code\r\n white-space: nowrap; // stylelint-disable-line declaration-property-value-disallowed-list -- 3rd party code\r\n width: 120%;\r\n\r\n @media (min-width: 36em) {\r\n border: 0;\r\n margin: 0;\r\n overflow: visible;\r\n padding: 0;\r\n position: absolute;\r\n right: -16px;\r\n top: -16px;\r\n width: auto;\r\n }\r\n}\r\n\r\n.dso-date__mobile-heading {\r\n display: inline-block;\r\n font-weight: core-date-picker-legacy-variables.$font-bold;\r\n max-width: 84%;\r\n overflow: hidden;\r\n text-overflow: ellipsis; // stylelint-disable-line declaration-property-value-disallowed-list -- 3rd party code\r\n white-space: nowrap; // stylelint-disable-line declaration-property-value-disallowed-list -- 3rd party code\r\n\r\n @media (min-width: 36em) {\r\n display: none;\r\n }\r\n}\r\n\r\n// ---------------------------------------------\r\n// dso DATE PICKER __ CLOSE\r\n// ---------------------------------------------\r\n\r\n.dso-date__close {\r\n -webkit-appearance: none;\r\n align-items: center;\r\n appearance: none;\r\n background-color: colors.$wit;\r\n border: 0;\r\n border-radius: 50%;\r\n color: core-date-picker-legacy-variables.$color-icon;\r\n cursor: pointer;\r\n display: flex;\r\n font-size: 1em;\r\n height: units.$u1 * 4;\r\n justify-content: center;\r\n margin-right: -4px;\r\n padding: 0;\r\n width: units.$u1 * 4;\r\n\r\n @media (min-width: 36em) {\r\n margin-right: 0;\r\n opacity: 0;\r\n }\r\n\r\n &:focus {\r\n box-shadow: 0 0 0 2px colors.$bosgroen;\r\n outline: none;\r\n\r\n @media (min-width: 36em) {\r\n opacity: 1;\r\n }\r\n }\r\n}\r\n\r\n// ---------------------------------------------\r\n// dso DATE PICKER __ VISUALLY HIDDEN\r\n// ---------------------------------------------\r\n\r\n.dso-date__vhidden {\r\n border: 0;\r\n clip: rect(1px, 1px, 1px, 1px);\r\n height: 1px;\r\n overflow: hidden;\r\n padding: 0;\r\n position: absolute;\r\n top: 0;\r\n width: 1px;\r\n}\r\n","import {\r\n Component,\r\n ComponentInterface,\r\n Host,\r\n Prop,\r\n Element,\r\n h,\r\n Event,\r\n EventEmitter,\r\n State,\r\n Listen,\r\n Method,\r\n} from \"@stencil/core\";\r\n\r\nimport { createIdentifier } from \"../../utils/create-identifier\";\r\nimport {\r\n addDays,\r\n startOfWeek,\r\n endOfWeek,\r\n setMonth,\r\n setYear,\r\n clamp,\r\n inRange,\r\n endOfMonth,\r\n startOfMonth,\r\n printDutchDate,\r\n parseDutchDate,\r\n DaysOfWeek,\r\n} from \"./date-utils\";\r\nimport { DatePickerLegacyMonth } from \"./date-picker-month\";\r\nimport defaultLocalization, { DsoLocalizedText } from \"./date-localization\";\r\nimport {\r\n DsoDatePickerLegacyDirection,\r\n DsoDatePickerLegacyChangeEvent,\r\n DsoDatePickerLegacyFocusEvent,\r\n DsoDatePickerLegacyKeyboardEvent,\r\n} from \"./date-picker-legacy.interfaces\";\r\nimport { monthRange } from \"./utils/month-range\";\r\nimport { range } from \"./utils/range\";\r\n\r\nconst keyCode = {\r\n TAB: 9,\r\n ESC: 27,\r\n SPACE: 32,\r\n PAGE_UP: 33,\r\n PAGE_DOWN: 34,\r\n END: 35,\r\n HOME: 36,\r\n LEFT: 37,\r\n UP: 38,\r\n RIGHT: 39,\r\n DOWN: 40,\r\n};\r\n\r\nconst DISALLOWED_CHARACTERS = /[^0-9-]+/g;\r\nconst TRANSITION_MS = 300;\r\n\r\nfunction cleanValue(input: HTMLInputElement, regex: RegExp): string {\r\n const value = input.value;\r\n const cursor = input.selectionStart;\r\n\r\n if (!cursor) {\r\n return value;\r\n }\r\n\r\n const beforeCursor = value.slice(0, cursor);\r\n const afterCursor = value.slice(cursor, value.length);\r\n\r\n const filteredBeforeCursor = beforeCursor.replace(regex, \"\");\r\n const filterAfterCursor = afterCursor.replace(regex, \"\");\r\n\r\n const newValue = filteredBeforeCursor + filterAfterCursor;\r\n const newCursor = filteredBeforeCursor.length;\r\n\r\n input.value = newValue;\r\n input.selectionStart = input.selectionEnd = newCursor;\r\n\r\n return newValue;\r\n}\r\n\r\n@Component({\r\n tag: \"dso-date-picker-legacy\",\r\n styleUrl: \"date-picker-legacy.scss\",\r\n shadow: false,\r\n scoped: true,\r\n})\r\nexport class DsoDatePickerLegacy implements ComponentInterface {\r\n /**\r\n * Own Properties\r\n */\r\n private monthSelectId = createIdentifier(\"DsoDateMonth\");\r\n private yearSelectId = createIdentifier(\"DsoDateYear\");\r\n private dialogLabelId = createIdentifier(\"DsoDateLabel\");\r\n\r\n private datePickerLegacyButton: HTMLButtonElement | undefined;\r\n private datePickerLegacyInput: HTMLInputElement | undefined;\r\n private firstFocusableElement: HTMLElement | undefined;\r\n private monthSelectNode: HTMLElement | undefined;\r\n private focusedDayNode: HTMLButtonElement | undefined;\r\n\r\n private focusTimeoutId: ReturnType<typeof setTimeout> | undefined;\r\n private hideTimeoutId: ReturnType<typeof setTimeout> | undefined;\r\n\r\n private initialTouchX: number | undefined;\r\n private initialTouchY: number | undefined;\r\n\r\n private localization: DsoLocalizedText = defaultLocalization;\r\n private firstDayOfWeek: DaysOfWeek = DaysOfWeek.Monday;\r\n\r\n private previousValue: string | undefined;\r\n\r\n /**\r\n * Reference to host HTML element.\r\n */\r\n @Element()\r\n element!: HTMLDsoDatePickerLegacyElement;\r\n\r\n /**\r\n * State() variables\r\n */\r\n @State()\r\n activeFocus = false;\r\n\r\n @State()\r\n focusedDay = new Date();\r\n\r\n @State()\r\n open = false;\r\n\r\n @State()\r\n visible = false;\r\n\r\n /**\r\n * Public Property API\r\n */\r\n\r\n /**\r\n * Name of the date picker input.\r\n */\r\n @Prop()\r\n name = \"date\";\r\n\r\n /**\r\n * Adds a unique identifier for the date picker input. Use this instead of html `id` attribute.\r\n */\r\n @Prop()\r\n identifier: string | undefined;\r\n\r\n /**\r\n * Makes the date picker input component disabled. This prevents users from being able to\r\n * interact with the input, and conveys its inactive state to assistive technologies.\r\n */\r\n @Prop({ reflect: true })\r\n disabled = false;\r\n\r\n /**\r\n * Defines a specific role attribute for the date picker input.\r\n */\r\n @Prop()\r\n // eslint-disable-next-line @stencil-community/reserved-member-names\r\n role: string | null = null;\r\n\r\n /**\r\n * Forces the opening direction of the calendar modal to be always left or right.\r\n * This setting can be useful when the input is smaller than the opening date picker\r\n * would be as by default the picker always opens towards right.\r\n */\r\n @Prop()\r\n direction: DsoDatePickerLegacyDirection = \"right\";\r\n\r\n /**\r\n * Should the input be marked as required?\r\n */\r\n @Prop()\r\n required = false;\r\n\r\n /**\r\n * Is input invalid?\r\n */\r\n @Prop({ reflect: true })\r\n invalid?: boolean;\r\n\r\n /**\r\n * ID of element that describes the input element\r\n */\r\n @Prop()\r\n describedBy?: string;\r\n\r\n /**\r\n * Should the input be focused on load?\r\n */\r\n @Prop()\r\n dsoAutofocus = false;\r\n\r\n /**\r\n * Date value. Must be in Dutch date format: DD-MM-YYYY.\r\n */\r\n @Prop({ reflect: true, mutable: true })\r\n value = \"\";\r\n\r\n /**\r\n * Minimum date allowed to be picked. Must be in Dutch date format: DD-MM-YYYY.\r\n * This setting can be used alone or together with the max property.\r\n */\r\n @Prop()\r\n min: string | undefined;\r\n\r\n /**\r\n * Maximum date allowed to be picked. Must be in Dutch date format: DD-MM-YYYY.\r\n * This setting can be used alone or together with the min property.\r\n */\r\n @Prop()\r\n max: string | undefined;\r\n\r\n /**\r\n * Events section.\r\n */\r\n\r\n /**\r\n * Event emitted when a date is selected.\r\n */\r\n @Event()\r\n dsoDateChange!: EventEmitter<DsoDatePickerLegacyChangeEvent>;\r\n\r\n /**\r\n * Event emitted the date picker input is blurred.\r\n */\r\n @Event()\r\n dsoBlur!: EventEmitter<DsoDatePickerLegacyFocusEvent>;\r\n\r\n /**\r\n * Event emitted on key up in the date picker input.\r\n */\r\n @Event()\r\n dsoKeyUp!: EventEmitter<DsoDatePickerLegacyKeyboardEvent>;\r\n\r\n /**\r\n * Event emitted on key down in the date picker input.\r\n */\r\n @Event()\r\n dsoKeyDown!: EventEmitter<DsoDatePickerLegacyKeyboardEvent>;\r\n\r\n /**\r\n * Event emitted the date picker input is focused.\r\n */\r\n @Event()\r\n dsoFocus!: EventEmitter<DsoDatePickerLegacyFocusEvent>;\r\n\r\n /**\r\n * Component event handling.\r\n */\r\n @Listen(\"click\", { target: \"document\", capture: true })\r\n handleDocumentClick(e: MouseEvent) {\r\n if (!this.open) {\r\n return;\r\n }\r\n\r\n const path = e.composedPath();\r\n\r\n for (const target of path) {\r\n if (target instanceof Node && this.element.contains(target)) {\r\n return;\r\n }\r\n }\r\n\r\n this.hide(false);\r\n }\r\n\r\n /**\r\n * Sets focus on the date picker's input. Use this method instead of the global `focus()`.\r\n */\r\n @Method()\r\n async setFocus() {\r\n return this.datePickerLegacyInput?.focus();\r\n }\r\n\r\n /**\r\n * Public methods API\r\n */\r\n\r\n /**\r\n * Show the calendar modal, moving focus to the calendar inside.\r\n */\r\n @Method()\r\n async show() {\r\n if (typeof this.hideTimeoutId !== \"undefined\") {\r\n clearTimeout(this.hideTimeoutId);\r\n }\r\n\r\n this.visible = true;\r\n\r\n setTimeout(() => {\r\n this.open = true;\r\n this.setFocusedDay(parseDutchDate(this.value) || new Date());\r\n\r\n if (typeof this.focusTimeoutId !== \"undefined\") {\r\n clearTimeout(this.focusTimeoutId);\r\n }\r\n\r\n this.focusTimeoutId = setTimeout(() => this.monthSelectNode?.focus(), TRANSITION_MS);\r\n });\r\n }\r\n\r\n /**\r\n * Hide the calendar modal. Set `moveFocusToButton` to false to prevent focus\r\n * returning to the date picker's button. Default is true.\r\n */\r\n @Method()\r\n async hide(moveFocusToButton = true) {\r\n this.open = false;\r\n\r\n // in cases where calendar is quickly shown and hidden\r\n // we should avoid moving focus to the button\r\n if (typeof this.focusTimeoutId !== \"undefined\") {\r\n clearTimeout(this.focusTimeoutId);\r\n }\r\n\r\n this.hideTimeoutId = setTimeout(() => {\r\n if (moveFocusToButton && this.datePickerLegacyButton) {\r\n this.datePickerLegacyButton.focus();\r\n }\r\n\r\n this.visible = false;\r\n }, TRANSITION_MS + 200);\r\n }\r\n\r\n /**\r\n * Local methods.\r\n */\r\n private enableActiveFocus = () => {\r\n this.activeFocus = true;\r\n };\r\n\r\n private disableActiveFocus = () => {\r\n this.activeFocus = false;\r\n };\r\n\r\n private addDays(days: number) {\r\n this.setFocusedDay(addDays(this.focusedDay, days));\r\n }\r\n\r\n private addMonths(months: number) {\r\n this.setMonth(this.focusedDay.getMonth() + months);\r\n }\r\n\r\n private addYears(years: number) {\r\n this.setYear(this.focusedDay.getFullYear() + years);\r\n }\r\n\r\n private startOfWeek() {\r\n this.setFocusedDay(startOfWeek(this.focusedDay, this.firstDayOfWeek));\r\n }\r\n\r\n private endOfWeek() {\r\n this.setFocusedDay(endOfWeek(this.focusedDay, this.firstDayOfWeek));\r\n }\r\n\r\n private setMonth(month: number) {\r\n const min = setMonth(startOfMonth(this.focusedDay), month);\r\n const max = endOfMonth(min);\r\n const date = setMonth(this.focusedDay, month);\r\n\r\n this.setFocusedDay(clamp(date, min, max));\r\n }\r\n\r\n private setYear(year: number) {\r\n const min = setYear(startOfMonth(this.focusedDay), year);\r\n const max = endOfMonth(min);\r\n const date = setYear(this.focusedDay, year);\r\n\r\n this.setFocusedDay(clamp(date, min, max));\r\n }\r\n\r\n private setFocusedDay(day: Date) {\r\n this.focusedDay = clamp(day, parseDutchDate(this.min), parseDutchDate(this.max));\r\n }\r\n\r\n private toggleOpen = (e: Event) => {\r\n e.preventDefault();\r\n this.open ? this.hide(false) : this.show();\r\n };\r\n\r\n private handleEscKey = (event: KeyboardEvent) => {\r\n if (event.keyCode === keyCode.ESC) {\r\n this.hide();\r\n }\r\n };\r\n\r\n private handleBlur = (event: Event) => {\r\n event.stopPropagation();\r\n\r\n this.dsoBlur.emit({\r\n component: \"dso-date-picker-legacy\",\r\n });\r\n };\r\n\r\n private handleKeyUp = (event: KeyboardEvent) => {\r\n event.stopPropagation();\r\n\r\n this.dsoKeyUp.emit({\r\n component: \"dso-date-picker-legacy\",\r\n originalEvent: event,\r\n });\r\n };\r\n\r\n private handleKeyDown = (event: KeyboardEvent) => {\r\n event.stopPropagation();\r\n\r\n this.dsoKeyDown.emit({\r\n component: \"dso-date-picker-legacy\",\r\n originalEvent: event,\r\n });\r\n };\r\n\r\n private handleFocus = (event: Event) => {\r\n event.stopPropagation();\r\n\r\n this.dsoFocus.emit({\r\n component: \"dso-date-picker-legacy\",\r\n });\r\n };\r\n\r\n private handleTouchStart = (event: TouchEvent) => {\r\n const touch = event.changedTouches[0];\r\n if (!touch) {\r\n throw new Error(\"No touch found\");\r\n }\r\n\r\n this.initialTouchX = touch.pageX;\r\n this.initialTouchY = touch.pageY;\r\n };\r\n\r\n private handleTouchMove = (event: TouchEvent) => {\r\n event.preventDefault();\r\n };\r\n\r\n private handleTouchEnd = (event: TouchEvent) => {\r\n const touch = event.changedTouches[0];\r\n if (!touch) {\r\n throw new Error(\"No touch found\");\r\n }\r\n\r\n const distX = touch.pageX - (this.initialTouchX ?? 0); // get horizontal dist traveled\r\n const distY = touch.pageY - (this.initialTouchY ?? 0); // get vertical dist traveled\r\n const threshold = 70;\r\n\r\n const isHorizontalSwipe = Math.abs(distX) >= threshold && Math.abs(distY) <= threshold;\r\n const isDownwardsSwipe = Math.abs(distY) >= threshold && Math.abs(distX) <= threshold && distY > 0;\r\n\r\n if (isHorizontalSwipe) {\r\n this.addMonths(distX < 0 ? 1 : -1);\r\n } else if (isDownwardsSwipe) {\r\n this.hide(false);\r\n event.preventDefault();\r\n }\r\n\r\n this.initialTouchY = undefined;\r\n this.initialTouchX = undefined;\r\n };\r\n\r\n private handleNextMonthClick = (event: MouseEvent) => {\r\n event.preventDefault();\r\n this.addMonths(1);\r\n };\r\n\r\n private handlePreviousMonthClick = (event: MouseEvent) => {\r\n event.preventDefault();\r\n this.addMonths(-1);\r\n };\r\n\r\n private handleFirstFocusableKeydown = (event: KeyboardEvent) => {\r\n // this ensures focus is trapped inside the dialog\r\n if (event.keyCode === keyCode.TAB && event.shiftKey) {\r\n this.focusedDayNode?.focus();\r\n event.preventDefault();\r\n }\r\n };\r\n\r\n private handleKeyboardNavigation = (event: KeyboardEvent) => {\r\n // handle tab separately, since it needs to be treated\r\n // differently to other keyboard interactions\r\n if (event.keyCode === keyCode.TAB && !event.shiftKey) {\r\n event.preventDefault();\r\n this.firstFocusableElement?.focus();\r\n return;\r\n }\r\n\r\n let handled = true;\r\n\r\n switch (event.keyCode) {\r\n case keyCode.RIGHT:\r\n this.addDays(1);\r\n break;\r\n case keyCode.LEFT:\r\n this.addDays(-1);\r\n break;\r\n case keyCode.DOWN:\r\n this.addDays(7);\r\n break;\r\n case keyCode.UP:\r\n this.addDays(-7);\r\n break;\r\n case keyCode.PAGE_UP:\r\n if (event.shiftKey) {\r\n this.addYears(-1);\r\n } else {\r\n this.addMonths(-1);\r\n }\r\n break;\r\n case keyCode.PAGE_DOWN:\r\n if (event.shiftKey) {\r\n this.addYears(1);\r\n } else {\r\n this.addMonths(1);\r\n }\r\n break;\r\n case keyCode.HOME:\r\n this.startOfWeek();\r\n break;\r\n case keyCode.END:\r\n this.endOfWeek();\r\n break;\r\n default:\r\n handled = false;\r\n }\r\n\r\n if (handled) {\r\n event.preventDefault();\r\n this.enableActiveFocus();\r\n }\r\n };\r\n\r\n private handleDaySelect = (_event: MouseEvent, day: Date) => {\r\n if (!inRange(day, parseDutchDate(this.min), parseDutchDate(this.max))) {\r\n return;\r\n }\r\n\r\n if (day.getMonth() === this.focusedDay.getMonth()) {\r\n this.setValue(day);\r\n this.hide();\r\n } else {\r\n this.setFocusedDay(day);\r\n }\r\n };\r\n\r\n private handleMonthSelect = (e: Event) => {\r\n // Todo\r\n if (e.target instanceof HTMLSelectElement) {\r\n this.setMonth(parseInt(e.target.value, 10));\r\n }\r\n };\r\n\r\n private handleYearSelect = (e: Event) => {\r\n if (e.target instanceof HTMLSelectElement) {\r\n this.setYear(parseInt(e.target.value, 10));\r\n }\r\n };\r\n\r\n private handleInputChange = (e: Event) => {\r\n const target = e.target as HTMLInputElement;\r\n\r\n const cleanedValue = cleanValue(target, DISALLOWED_CHARACTERS);\r\n\r\n this.setValue(cleanedValue);\r\n };\r\n\r\n private setValue(value: Date | string) {\r\n const event = this.prepareEvent(value);\r\n\r\n this.value = typeof value === \"string\" ? value : event.value;\r\n\r\n if (this.value !== this.previousValue) {\r\n this.dsoDateChange.emit(event);\r\n this.previousValue = this.value;\r\n }\r\n }\r\n\r\n private prepareEvent = (value: Date | string): DsoDatePickerLegacyChangeEvent => {\r\n const event: DsoDatePickerLegacyChangeEvent = {\r\n component: \"dso-date-picker-legacy\",\r\n value: \"\",\r\n valueAsDate: undefined,\r\n };\r\n\r\n if (value instanceof Date) {\r\n event.valueAsDate = value;\r\n } else {\r\n event.value = value;\r\n event.valueAsDate = parseDutchDate(value);\r\n }\r\n\r\n if (event.valueAsDate) {\r\n event.value = printDutchDate(event.valueAsDate);\r\n }\r\n\r\n if (!event.valueAsDate && this.required) {\r\n event.error = \"required\";\r\n }\r\n\r\n if (event.value && !event.valueAsDate) {\r\n event.error = \"invalid\";\r\n }\r\n\r\n if (event.valueAsDate && (this.min || this.max)) {\r\n const min = parseDutchDate(this.min);\r\n const max = parseDutchDate(this.max);\r\n const clampValue = clamp(event.valueAsDate, min, max);\r\n\r\n if (clampValue !== event.valueAsDate && clampValue === min) {\r\n event.valueAsDate = undefined;\r\n event.error = \"min-range\";\r\n } else if (clampValue !== event.valueAsDate && clampValue === max) {\r\n event.valueAsDate = undefined;\r\n event.error = \"max-range\";\r\n }\r\n }\r\n\r\n return event;\r\n };\r\n\r\n private processFocusedDayNode = (element: HTMLButtonElement) => {\r\n this.focusedDayNode = element;\r\n\r\n if (this.activeFocus && this.open) {\r\n setTimeout(() => element.focus(), 0);\r\n }\r\n };\r\n\r\n componentWillLoad(): void | Promise<void> {\r\n const minDate = parseDutchDate(this.min);\r\n const maxDate = parseDutchDate(this.max);\r\n\r\n if (minDate && minDate > this.focusedDay) {\r\n this.focusedDay = minDate;\r\n }\r\n\r\n if (maxDate && maxDate < this.focusedDay) {\r\n this.focusedDay = maxDate;\r\n }\r\n }\r\n\r\n componentDidLoad() {\r\n const valueAsDate = parseDutchDate(this.value);\r\n if (valueAsDate) {\r\n this.previousValue = this.value = printDutchDate(valueAsDate);\r\n }\r\n\r\n if (this.dsoAutofocus) {\r\n this.setFocus();\r\n }\r\n }\r\n\r\n /**\r\n * render() function\r\n * Always the last one in the class.\r\n */\r\n render() {\r\n const valueAsDate = parseDutchDate(this.value);\r\n const formattedDate = valueAsDate && printDutchDate(valueAsDate);\r\n const selectedYear = (valueAsDate || this.focusedDay).getFullYear();\r\n const focusedMonth = this.focusedDay.getMonth();\r\n const focusedYear = this.focusedDay.getFullYear();\r\n\r\n const minDate = parseDutchDate(this.min);\r\n const maxDate = parseDutchDate(this.max);\r\n const prevMonthDisabled = minDate && minDate.getMonth() === focusedMonth && minDate.getFullYear() === focusedYear;\r\n const nextMonthDisabled = maxDate && maxDate.getMonth() === focusedMonth && maxDate.getFullYear() === focusedYear;\r\n\r\n let minYear = selectedYear - 10;\r\n let maxYear = selectedYear + 10;\r\n if (minDate) {\r\n minYear = Math.max(minYear, minDate.getFullYear());\r\n }\r\n if (maxDate) {\r\n maxYear = Math.min(maxYear, maxDate.getFullYear());\r\n }\r\n\r\n return (\r\n <Host>\r\n <div class={{ \"dso-date\": true, \"dso-visible\": this.visible }}>\r\n <div class=\"dso-date__input-wrapper\">\r\n <input\r\n class=\"dso-date__input\"\r\n value={this.value}\r\n placeholder={this.localization.placeholder}\r\n id={this.identifier}\r\n disabled={this.disabled}\r\n role={this.role ?? undefined}\r\n required={this.required ? true : undefined}\r\n aria-autocomplete=\"none\"\r\n aria-invalid={this.invalid?.toString()}\r\n aria-describedby={this.describedBy}\r\n onInput={this.handleInputChange}\r\n onFocus={this.handleFocus}\r\n onBlur={this.handleBlur}\r\n onKeyUp={this.handleKeyUp}\r\n onKeyDown={this.handleKeyDown}\r\n autoComplete=\"off\"\r\n ref={(element) => (this.datePickerLegacyInput = element)}\r\n />\r\n <button\r\n type=\"button\"\r\n class=\"dso-date__toggle\"\r\n onClick={this.toggleOpen}\r\n disabled={this.disabled}\r\n ref={(element) => (this.datePickerLegacyButton = element)}\r\n >\r\n <span class=\"dso-date__toggle-icon\">\r\n <dso-icon icon=\"calendar\"></dso-icon>\r\n </span>\r\n <span class=\"dso-date__vhidden\">\r\n {this.localization.buttonLabel}\r\n {formattedDate && (\r\n <span>\r\n , {this.localization.selectedDateMessage} {formattedDate}\r\n </span>\r\n )}\r\n </span>\r\n </button>\r\n </div>\r\n\r\n <div\r\n class={{\r\n \"dso-date__dialog\": true,\r\n \"is-left\": this.direction === \"left\",\r\n \"is-active\": this.open,\r\n }}\r\n role=\"dialog\"\r\n aria-modal=\"true\"\r\n aria-hidden={this.open ? \"false\" : \"true\"}\r\n aria-labelledby={this.dialogLabelId}\r\n onTouchMove={this.handleTouchMove}\r\n onTouchStart={this.handleTouchStart}\r\n onTouchEnd={this.handleTouchEnd}\r\n >\r\n <div class=\"dso-date__dialog-content\" onKeyDown={this.handleEscKey}>\r\n <div class=\"dso-date__vhidden dso-date__instructions\" aria-live=\"polite\">\r\n {this.localization.keyboardInstruction}\r\n </div>\r\n <div class=\"dso-date__mobile\" onFocusin={this.disableActiveFocus}>\r\n <label class=\"dso-date__mobile-heading\">{this.localization.calendarHeading}</label>\r\n <button\r\n class=\"dso-date__close\"\r\n ref={(element) => (this.firstFocusableElement = element)}\r\n onKeyDown={this.handleFirstFocusableKeydown}\r\n onClick={() => this.hide()}\r\n type=\"button\"\r\n >\r\n <dso-icon icon=\"times\"></dso-icon>\r\n <span class=\"dso-date__vhidden\">{this.localization.closeLabel}</span>\r\n </button>\r\n </div>\r\n <div class=\"dso-date__header\" onFocusin={this.disableActiveFocus}>\r\n <div>\r\n <h2 id={this.dialogLabelId} class=\"dso-date__vhidden\" aria-live=\"polite\">\r\n {this.localization.monthNames[focusedMonth]} {this.focusedDay.getFullYear()}\r\n </h2>\r\n\r\n <label htmlFor={this.monthSelectId} class=\"dso-date__vhidden\">\r\n {this.localization.monthSelectLabel}\r\n </label>\r\n <div class=\"dso-date__select\">\r\n <select\r\n id={this.monthSelectId}\r\n class=\"dso-date__select--month\"\r\n ref={(element) => (this.monthSelectNode = element)}\r\n onChange={this.handleMonthSelect}\r\n >\r\n {monthRange(this.localization, selectedYear, minDate, maxDate).map((month) => {\r\n const index = this.localization.monthNames.indexOf(month);\r\n\r\n return (\r\n <option key={month} value={index} selected={index === focusedMonth}>\r\n {month}\r\n </option>\r\n );\r\n })}\r\n </select>\r\n <div class=\"dso-date__select-label\" aria-hidden=\"true\">\r\n <span>{this.localization.monthNamesShort[focusedMonth]}</span>\r\n <dso-icon icon=\"chevron-down\"></dso-icon>\r\n </div>\r\n </div>\r\n\r\n <label htmlFor={this.yearSelectId} class=\"dso-date__vhidden\">\r\n {this.localization.yearSelectLabel}\r\n </label>\r\n <div class=\"dso-date__select\">\r\n <select id={this.yearSelectId} class=\"dso-date__select--year\" onChange={this.handleYearSelect}>\r\n {range(minYear, maxYear).map((year) => (\r\n <option key={year} selected={year === focusedYear}>\r\n {year}\r\n </option>\r\n ))}\r\n </select>\r\n <div class=\"dso-date__select-label\" aria-hidden=\"true\">\r\n <span>{this.focusedDay.getFullYear()}</span>\r\n <dso-icon icon=\"chevron-down\"></dso-icon>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"dso-date__nav\">\r\n <button\r\n class=\"dso-date__prev\"\r\n onClick={this.handlePreviousMonthClick}\r\n disabled={prevMonthDisabled}\r\n type=\"button\"\r\n >\r\n <dso-icon icon=\"chevron-left\"></dso-icon>\r\n <span class=\"dso-date__vhidden\">{this.localization.prevMonthLabel}</span>\r\n </button>\r\n <button\r\n class=\"dso-date__next\"\r\n onClick={this.handleNextMonthClick}\r\n disabled={nextMonthDisabled}\r\n type=\"button\"\r\n >\r\n <dso-icon icon=\"chevron-right\"></dso-icon>\r\n <span class=\"dso-date__vhidden\">{this.localization.nextMonthLabel}</span>\r\n </button>\r\n </div>\r\n </div>\r\n <DatePickerLegacyMonth\r\n selectedDate={valueAsDate}\r\n focusedDate={this.focusedDay}\r\n onDateSelect={this.handleDaySelect}\r\n onKeyboardNavigation={this.handleKeyboardNavigation}\r\n labelledById={this.dialogLabelId}\r\n localization={this.localization}\r\n firstDayOfWeek={this.firstDayOfWeek}\r\n focusedDayRef={this.processFocusedDayNode}\r\n min={minDate}\r\n max={maxDate}\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n </Host>\r\n );\r\n }\r\n}\r\n"],"mappings":"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"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{r as s,c as t,h as i,F as e,a as o}from"./p-1754d0a9.js";import{d as h}from"./p-23b5692c.js";import{v as a}from"./p-14616bce.js";function n(s){if(typeof s!=="string"){throw new TypeError("Expected a string")}return s.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}const r=".sc-dso-autosuggest-h{display:block;position:relative}ul.sc-dso-autosuggest,.autosuggest-progress-box.sc-dso-autosuggest{background-clip:padding-box;background-color:#fff;border:1px solid rgba(0, 0, 0, 0.15);border-radius:4px;box-shadow:0 6px 12px rgba(0, 0, 0, 0.175);list-style-type:none;margin-top:2px;padding:4px 0;position:absolute;left:0;right:0;top:100%;z-index:200}.autosuggest-progress-box.sc-dso-autosuggest{padding:12px 8px}ul.sc-dso-autosuggest{padding:8px 0}ul.sc-dso-autosuggest li.sc-dso-autosuggest{padding:4px 16px}ul.sc-dso-autosuggest li.sc-dso-autosuggest .suggestion-row.sc-dso-autosuggest{display:flex;justify-content:space-between}li[aria-selected=true].sc-dso-autosuggest{cursor:pointer;background-color:#39870c}li[aria-selected=true].sc-dso-autosuggest,li[aria-selected=true].sc-dso-autosuggest .type.sc-dso-autosuggest,li[aria-selected=true].sc-dso-autosuggest .extra.sc-dso-autosuggest{color:#fff}mark.sc-dso-autosuggest{font-weight:700;background-color:inherit;color:inherit;padding:0}.type.sc-dso-autosuggest,.extra.sc-dso-autosuggest{color:#666}.extra.sc-dso-autosuggest{font-size:14px;line-height:21px}";const u=r;const l=class{constructor(i){s(this,i);this.dsoSelect=t(this,"dsoSelect",7);this.dsoChange=t(this,"dsoChange",7);this.dsoSearch=t(this,"dsoSearch",7);this.listboxId=a();this.inputId=a();this.labelId=a();this.debouncedEmitValue=h((s=>{this.dsoChange.emit(s);this.debouncedShowLoading()}),200);this.debouncedShowLoading=h((()=>{if(this.inputValue){this.showLoading=true}}),this.loadingDelayed);this.inputValue="";this.onInput=s=>{if(!(s.target instanceof HTMLInputElement)){return}this.showLoading=!this.loadingDelayed;this.inputValue=s.target.value;this.debouncedEmitValue(s.target.value.match(/(\S+)/g)?s.target.value:"")};this.onFocusIn=()=>{if(this.suggestOnFocus){this.openSuggestions()}};this.onKeyDown=s=>{if(s.defaultPrevented||this.loading){return}switch(s.key){case"ArrowDown":if(!this.showSuggestions){this.openSuggestions("first")}else{this.selectNextSuggestion()}break;case"ArrowUp":if(!this.showSuggestions){this.openSuggestions("last")}else{this.selectPreviousSuggestion()}break;case"Tab":this.closeSuggestions();return;case"Escape":this.closeSuggestions();break;case"Enter":this.pickSelectedValue();break;default:return}s.preventDefault()};this.suggestions=null;this.loading=false;this.loadingLabel="Een moment geduld.";this.loadingDelayed=undefined;this.notFoundLabel=undefined;this.suggestOnFocus=false;this.mark=undefined;this.showSuggestions=false;this.selectedSuggestion=undefined;this.notFound=false;this.showLoading=false}suggestionsWatcher(){this.resetSelectedSuggestion();if((!this.showSuggestions||!this.notFound)&&this.inputValue){this.openSuggestions()}else if((this.showSuggestions||this.notFound)&&!this.inputValue){this.closeSuggestions()}}onDocumentClick(s){if((this.showSuggestions||this.notFound)&&this.listbox&&s.target instanceof Node&&!this.listbox.contains(s.target)&&this.input!==s.target){this.closeSuggestions()}}connectedCallback(){setTimeout((()=>{const s=this.host.querySelector('input[type="text"]');if(!(s instanceof HTMLInputElement)){return}this.input=s;if(s.id){this.inputId=s.id}else{s.id=this.inputId}if(!this.input.labels||this.input.labels.length<1){return}const t=this.input.labels[0];if(t===null||t===void 0?void 0:t.id){this.labelId=t.id}else if(t){t.id=this.labelId}this.input.setAttribute("role","combobox");this.input.setAttribute("aria-haspopup","listbox");this.input.setAttribute("aria-controls",this.listboxId);this.input.setAttribute("aria-expanded","false");this.input.setAttribute("autocomplete","off");this.input.setAttribute("aria-autocomplete","list");this.input.setAttribute("aria-activedescendant","");this.input.addEventListener("input",this.onInput);this.input.addEventListener("keydown",this.onKeyDown);this.input.addEventListener("focusin",this.onFocusIn)}))}disconnectedCallback(){var s,t,i;(s=this.input)===null||s===void 0?void 0:s.removeEventListener("input",this.onInput);(t=this.input)===null||t===void 0?void 0:t.removeEventListener("keydown",this.onKeyDown);(i=this.input)===null||i===void 0?void 0:i.removeEventListener("focusin",this.onFocusIn)}showInputValueNotFound(s){var t,i;return this.processAutosuggestMarkItems(this.markTerms(s,(i=(t=this.input)===null||t===void 0?void 0:t.value.split(" ").filter((s=>s)))!==null&&i!==void 0?i:[]))}handleMark(s,t,i,e){var o,h;if(this.mark&&i){return this.processAutosuggestMarkItems(this.mark(s,t,i,e))}return this.processAutosuggestMarkItems(this.markTerms(t,(h=(o=this.input)===null||o===void 0?void 0:o.value.split(" ").filter((s=>s)))!==null&&h!==void 0?h:[]))}markTerms(s,t){if(!s||!t||t.length===0||t[0]===undefined){return[""]}const i=new RegExp(`(${n(t[0])})`,"gi");return s.split(i).reduce(((s,e)=>{if(!e){s.push(e)}else if(i.test(e)){s.push({mark:e})}else if(t.length===1){s.push(e)}else{s.push(...this.markTerms(e,t.slice(1)))}return s}),[])}processAutosuggestMarkItems(s){if(s.length===0){return[""]}return s.map((s=>{if(typeof s==="object"){return i("mark",null,s.mark)}return s}))}selectSuggestion(s){var t;this.selectedSuggestion=s;(t=this.input)===null||t===void 0?void 0:t.setAttribute("aria-activedescendant",this.listboxItemId(s))}selectFirstSuggestion(){var s;if(!this.suggestions){return}this.selectedSuggestion=this.suggestions[0];if(this.selectedSuggestion){(s=this.input)===null||s===void 0?void 0:s.setAttribute("aria-activedescendant",this.listboxItemId(this.selectedSuggestion))}}selectLastSuggestion(){var s;if(!this.suggestions){return}this.selectedSuggestion=this.suggestions[this.suggestions.length-1];if(this.selectedSuggestion){(s=this.input)===null||s===void 0?void 0:s.setAttribute("aria-activedescendant",this.listboxItemId(this.selectedSuggestion))}}selectNextSuggestion(){var s,t;if(!this.suggestions){return}const i=this.selectedSuggestion?this.suggestions.indexOf(this.selectedSuggestion):-1;this.selectedSuggestion=(s=this.suggestions[i+1])!==null&&s!==void 0?s:this.suggestions[0];if(this.selectedSuggestion){(t=this.input)===null||t===void 0?void 0:t.setAttribute("aria-activedescendant",this.listboxItemId(this.selectedSuggestion))}}selectPreviousSuggestion(){var s,t;if(!this.suggestions){return}const i=this.selectedSuggestion?this.suggestions.indexOf(this.selectedSuggestion):0;this.selectedSuggestion=(s=this.suggestions[i-1])!==null&&s!==void 0?s:this.suggestions[this.suggestions.length-1];if(this.selectedSuggestion){(t=this.input)===null||t===void 0?void 0:t.setAttribute("aria-activedescendant",this.listboxItemId(this.selectedSuggestion))}}resetSelectedSuggestion(){var s;this.showLoading=!this.loadingDelayed;this.notFound=false;this.selectedSuggestion=undefined;(s=this.input)===null||s===void 0?void 0:s.setAttribute("aria-activedescendant","")}openSuggestions(s){var t,i,e,o;this.showSuggestions=(t=this.suggestions&&this.suggestions.length>0)!==null&&t!==void 0?t:false;this.notFound=(e=((i=this.suggestions)===null||i===void 0?void 0:i.length)===0)!==null&&e!==void 0?e:false;(o=this.input)===null||o===void 0?void 0:o.setAttribute("aria-expanded",(this.showSuggestions||this.notFound).toString());if(this.showSuggestions&&s==="first"){this.selectFirstSuggestion()}else if(this.showSuggestions&&s==="last"){this.selectLastSuggestion()}}closeSuggestions(){var s;this.showSuggestions=false;this.notFound=false;(s=this.input)===null||s===void 0?void 0:s.setAttribute("aria-expanded","false");this.selectFirstSuggestion()}pickSelectedValue(){var s;if(this.selectedSuggestion&&this.showSuggestions){this.dsoSelect.emit(this.selectedSuggestion)}else{this.dsoSearch.emit((s=this.input)===null||s===void 0?void 0:s.value)}this.closeSuggestions()}listboxItemId(s){if(!this.suggestions){return""}return`${this.inputId}-${this.suggestions.indexOf(s)+1}`}getChunkedExtras(s){return s.reduce(((s,t,i)=>{var e;const o=Math.floor(i/2);if(!s[o]){s[o]=[]}(e=s[o])===null||e===void 0?void 0:e.push(t);return s}),[])}render(){return i(e,null,i("slot",{key:"35cf8591164d444dfb2728da5f638ecae1c223a0"}),this.loading&&this.showLoading?i("div",{class:"autosuggest-progress-box"},i("dso-progress-indicator",{label:this.loadingLabel})):i("ul",{role:"listbox","aria-live":"polite",id:this.listboxId,"aria-labelledby":this.labelId,ref:s=>this.listbox=s,hidden:!this.showSuggestions&&!this.notFound},this.showSuggestions&&this.suggestions&&this.suggestions.map((s=>i("li",{role:"option",id:this.listboxItemId(s),key:s.value,onMouseEnter:()=>this.selectSuggestion(s),onMouseLeave:()=>this.resetSelectedSuggestion(),onClick:()=>this.pickSelectedValue(),"aria-selected":(s===this.selectedSuggestion).toString(),"aria-label":s.value},i("div",{class:"suggestion-row"},i("span",{class:"value"},this.handleMark(s,s.value,"value")),s.type?i("span",{class:"type"},this.handleMark(s,s.type,"type")):undefined),s.extras&&this.getChunkedExtras(s.extras).map(((t,e)=>i("div",{class:"suggestion-row"},t.map(((t,o)=>i("span",{class:"extra"},this.handleMark(s,t,"extra",e*2+o))))))))))||this.notFound&&i("li",null,i("span",{class:"value"},!this.notFoundLabel?this.showInputValueNotFound(`${this.inputValue} is niet gevonden.`):i("span",null,this.notFoundLabel)))))}get host(){return o(this)}static get watchers(){return{suggestions:["suggestionsWatcher"]}}};l.style=u;export{l as dso_autosuggest};
|
|
2
|
-
//# sourceMappingURL=p-6bb5726a.entry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["escapeStringRegexp","string","TypeError","replace","autosuggestCss","DsoAutosuggestStyle0","Autosuggest","this","listboxId","v4","inputId","labelId","debouncedEmitValue","debounce","value","dsoChange","emit","debouncedShowLoading","inputValue","showLoading","loadingDelayed","onInput","event","target","HTMLInputElement","match","onFocusIn","suggestOnFocus","openSuggestions","onKeyDown","defaultPrevented","loading","key","showSuggestions","selectNextSuggestion","selectPreviousSuggestion","closeSuggestions","pickSelectedValue","preventDefault","suggestionsWatcher","resetSelectedSuggestion","notFound","onDocumentClick","listbox","Node","contains","input","connectedCallback","setTimeout","host","querySelector","id","labels","length","label","setAttribute","addEventListener","disconnectedCallback","_a","removeEventListener","_b","_c","showInputValueNotFound","text","processAutosuggestMarkItems","markTerms","split","filter","t","handleMark","suggestion","type","extraIndex","mark","suggestionValue","terms","undefined","termRegex","RegExp","reduce","total","valuePart","push","test","slice","items","map","item","h","selectSuggestion","selectedSuggestion","listboxItemId","selectFirstSuggestion","suggestions","selectLastSuggestion","index","indexOf","_d","toString","dsoSelect","dsoSearch","getChunkedExtras","extras","resultArray","extra","chunkIndex","Math","floor","render","Fragment","class","loadingLabel","role","ref","element","hidden","onMouseEnter","onMouseLeave","onClick","chunk","c","i","notFoundLabel"],"sources":["../../node_modules/escape-string-regexp/index.js","src/components/autosuggest/autosuggest.scss?tag=dso-autosuggest&encapsulation=scoped","src/components/autosuggest/autosuggest.tsx"],"sourcesContent":["export default function escapeStringRegexp(string) {\n\tif (typeof string !== 'string') {\n\t\tthrow new TypeError('Expected a string');\n\t}\n\n\t// Escape characters with special meaning either inside or outside character sets.\n\t// Use a simple backslash escape when it’s always valid, and a `\\xnn` escape when the simpler form would be disallowed by Unicode patterns’ stricter grammar.\n\treturn string\n\t\t.replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&')\n\t\t.replace(/-/g, '\\\\x2d');\n}\n","@use \"~dso-toolkit/src/variables/units\";\r\n@use \"~dso-toolkit/src/variables/colors\";\r\n@use \"~dso-toolkit/src/variables/scaffolding\";\r\n@use \"~dso-toolkit/src/variables/typography\";\r\n@use \"~dso-toolkit/src/variables/zindex\";\r\n\r\n@use \"autosuggest.variables\" as core-autosuggest-variables;\r\n\r\n:host {\r\n display: block;\r\n position: relative;\r\n}\r\n\r\nul,\r\n.autosuggest-progress-box {\r\n background-clip: padding-box;\r\n background-color: core-autosuggest-variables.$background-color;\r\n border: 1px solid core-autosuggest-variables.$border-color;\r\n border-radius: scaffolding.$border-radius-base;\r\n box-shadow: core-autosuggest-variables.$box-shadow;\r\n list-style-type: none;\r\n margin-top: 2px;\r\n padding: units.$u1 * 0.5 0;\r\n position: absolute;\r\n left: 0;\r\n right: 0;\r\n top: 100%;\r\n z-index: zindex.$autosuggest;\r\n}\r\n\r\n.autosuggest-progress-box {\r\n padding: units.$u1 * 1.5 units.$u1;\r\n}\r\n\r\nul {\r\n padding: units.$u1 0;\r\n\r\n li {\r\n padding: units.$u1 * 0.5 units.$u2;\r\n\r\n .suggestion-row {\r\n display: flex;\r\n justify-content: space-between;\r\n }\r\n }\r\n}\r\n\r\nli[aria-selected=\"true\"] {\r\n cursor: pointer;\r\n background-color: colors.$grasgroen;\r\n\r\n &,\r\n .type,\r\n .extra {\r\n color: colors.$wit;\r\n }\r\n}\r\n\r\nmark {\r\n font-weight: 700;\r\n background-color: inherit;\r\n color: inherit;\r\n padding: 0;\r\n}\r\n\r\n.type,\r\n.extra {\r\n color: colors.$grijs-60;\r\n}\r\n\r\n.extra {\r\n font-size: typography.$root-font-size-small;\r\n line-height: typography.$root-font-size-small * typography.$line-height-base;\r\n}\r\n","import { Component, Element, Event, EventEmitter, Fragment, h, Listen, Prop, State, VNode, Watch } from \"@stencil/core\";\r\nimport debounce from \"debounce\";\r\nimport { v4 } from \"uuid\";\r\nimport escapeStringRegexp from \"escape-string-regexp\";\r\n\r\nimport { AutosuggestMarkFunction, AutosuggestMarkItem, Suggestion } from \"./autosuggest.interfaces\";\r\n\r\n@Component({\r\n tag: \"dso-autosuggest\",\r\n styleUrl: \"autosuggest.scss\",\r\n scoped: true,\r\n})\r\nexport class Autosuggest {\r\n /**\r\n * The suggestions for the value of the slotted input element. Optionally a\r\n * Suggestion can have a `type` and `item`.\r\n *\r\n * The `type` is used to style the suggestion. `item` can be use to reference\r\n * the original object that was used to create the suggestion.\r\n *\r\n * The value should be null when no suggestions have been fetched.\r\n */\r\n @Prop()\r\n readonly suggestions: Suggestion[] | null = null;\r\n\r\n /**\r\n * Shows progress indicator when fetching results.\r\n */\r\n @Prop()\r\n loading = false;\r\n\r\n /**\r\n * To override progress indicator's default loading label.\r\n */\r\n @Prop()\r\n loadingLabel?: string = \"Een moment geduld.\";\r\n\r\n /**\r\n * To delay progress indicator showing (in ms).\r\n */\r\n @Prop()\r\n loadingDelayed?: number;\r\n\r\n /**\r\n * To show text when no results are found.\r\n */\r\n @Prop()\r\n notFoundLabel?: string;\r\n\r\n /**\r\n * Whether the previous suggestions will be presented when the input gets focus again.\r\n */\r\n @Prop()\r\n suggestOnFocus = false;\r\n\r\n /**\r\n * A function provided by the consumer of the autosuggest component, that returns an array of `AutosuggestMarkItem`s\r\n */\r\n @Prop()\r\n mark?: AutosuggestMarkFunction;\r\n\r\n /**\r\n * Emitted when a suggestion is selected.\r\n * The `detail` property of the `CustomEvent` will contain the selected suggestion.\r\n */\r\n @Event()\r\n dsoSelect!: EventEmitter<Suggestion>;\r\n\r\n /**\r\n * This is emitted debounced for every change for the slotted input type=text element.\r\n */\r\n @Event()\r\n dsoChange!: EventEmitter<string>;\r\n\r\n /**\r\n * Emitted when enter is pressed.\r\n * The `detail` property of the `CustomEvent` will contain the input text.\r\n */\r\n @Event()\r\n dsoSearch!: EventEmitter<string>;\r\n\r\n @Element()\r\n host!: HTMLDsoAutosuggestElement;\r\n\r\n @State()\r\n showSuggestions = false;\r\n\r\n @State()\r\n selectedSuggestion: Suggestion | undefined;\r\n\r\n @State()\r\n notFound = false;\r\n\r\n @State()\r\n showLoading = false;\r\n\r\n @Watch(\"suggestions\")\r\n suggestionsWatcher() {\r\n this.resetSelectedSuggestion();\r\n\r\n if ((!this.showSuggestions || !this.notFound) && this.inputValue) {\r\n this.openSuggestions();\r\n } else if ((this.showSuggestions || this.notFound) && !this.inputValue) {\r\n this.closeSuggestions();\r\n }\r\n }\r\n\r\n private input?: HTMLInputElement;\r\n\r\n private listbox: HTMLUListElement | undefined;\r\n\r\n private listboxId: string = v4();\r\n\r\n private inputId: string = v4();\r\n\r\n private labelId: string = v4();\r\n\r\n private debouncedEmitValue = debounce((value: string) => {\r\n this.dsoChange.emit(value);\r\n this.debouncedShowLoading();\r\n }, 200);\r\n\r\n private debouncedShowLoading = debounce(() => {\r\n if (this.inputValue) {\r\n this.showLoading = true;\r\n }\r\n }, this.loadingDelayed);\r\n\r\n private inputValue = \"\";\r\n\r\n private onInput = (event: Event) => {\r\n if (!(event.target instanceof HTMLInputElement)) {\r\n return;\r\n // throw new Error(\"event.target is not instanceof HTMLInputElement\"); #2293\r\n }\r\n\r\n this.showLoading = !this.loadingDelayed;\r\n this.inputValue = event.target.value;\r\n this.debouncedEmitValue(event.target.value.match(/(\\S+)/g) ? event.target.value : \"\");\r\n };\r\n\r\n private onFocusIn = () => {\r\n if (this.suggestOnFocus) {\r\n this.openSuggestions();\r\n }\r\n };\r\n\r\n @Listen(\"click\", { target: \"document\" })\r\n onDocumentClick(event: MouseEvent) {\r\n if (\r\n (this.showSuggestions || this.notFound) &&\r\n this.listbox &&\r\n event.target instanceof Node &&\r\n !this.listbox.contains(event.target) &&\r\n this.input !== event.target\r\n ) {\r\n this.closeSuggestions();\r\n }\r\n }\r\n\r\n connectedCallback() {\r\n setTimeout(() => {\r\n const input = this.host.querySelector('input[type=\"text\"]');\r\n if (!(input instanceof HTMLInputElement)) {\r\n return;\r\n // throw new ReferenceError(\"Mandatory text input not found\"); #2293\r\n }\r\n\r\n this.input = input;\r\n if (input.id) {\r\n this.inputId = input.id;\r\n } else {\r\n input.id = this.inputId;\r\n }\r\n\r\n if (!this.input.labels || this.input.labels.length < 1) {\r\n return;\r\n // throw new ReferenceError(\"Mandatory label for text input not found\"); #2293\r\n }\r\n\r\n const label = this.input.labels[0];\r\n if (label?.id) {\r\n this.labelId = label.id;\r\n } else if (label) {\r\n label.id = this.labelId;\r\n }\r\n\r\n this.input.setAttribute(\"role\", \"combobox\");\r\n this.input.setAttribute(\"aria-haspopup\", \"listbox\");\r\n this.input.setAttribute(\"aria-controls\", this.listboxId);\r\n this.input.setAttribute(\"aria-expanded\", \"false\");\r\n this.input.setAttribute(\"autocomplete\", \"off\");\r\n this.input.setAttribute(\"aria-autocomplete\", \"list\");\r\n this.input.setAttribute(\"aria-activedescendant\", \"\");\r\n this.input.addEventListener(\"input\", this.onInput);\r\n this.input.addEventListener(\"keydown\", this.onKeyDown);\r\n this.input.addEventListener(\"focusin\", this.onFocusIn);\r\n });\r\n }\r\n\r\n disconnectedCallback() {\r\n this.input?.removeEventListener(\"input\", this.onInput);\r\n this.input?.removeEventListener(\"keydown\", this.onKeyDown);\r\n this.input?.removeEventListener(\"focusin\", this.onFocusIn);\r\n }\r\n\r\n private showInputValueNotFound(text: string) {\r\n return this.processAutosuggestMarkItems(this.markTerms(text, this.input?.value.split(\" \").filter((t) => t) ?? []));\r\n }\r\n\r\n private handleMark(\r\n suggestion: Suggestion,\r\n text: string,\r\n type?: \"value\" | \"type\" | \"extra\",\r\n extraIndex?: number,\r\n ): (VNode | string)[] {\r\n if (this.mark && type) {\r\n return this.processAutosuggestMarkItems(this.mark(suggestion, text, type, extraIndex));\r\n }\r\n return this.processAutosuggestMarkItems(this.markTerms(text, this.input?.value.split(\" \").filter((t) => t) ?? []));\r\n }\r\n\r\n private markTerms(suggestionValue: string, terms: string[]): AutosuggestMarkItem[] {\r\n if (!suggestionValue || !terms || terms.length === 0 || terms[0] === undefined) {\r\n return [\"\"];\r\n }\r\n\r\n const termRegex = new RegExp(`(${escapeStringRegexp(terms[0])})`, \"gi\");\r\n\r\n return suggestionValue.split(termRegex).reduce((total: AutosuggestMarkItem[], valuePart: string) => {\r\n if (!valuePart) {\r\n total.push(valuePart);\r\n } else if (termRegex.test(valuePart)) {\r\n total.push({ mark: valuePart });\r\n } else if (terms.length === 1) {\r\n total.push(valuePart);\r\n } else {\r\n total.push(...this.markTerms(valuePart, terms.slice(1)));\r\n }\r\n\r\n return total;\r\n }, []);\r\n }\r\n\r\n private processAutosuggestMarkItems(items: AutosuggestMarkItem[]): (VNode | string)[] {\r\n if (items.length === 0) {\r\n return [\"\"];\r\n }\r\n\r\n return items.map((item) => {\r\n if (typeof item === \"object\") {\r\n return <mark>{item.mark}</mark>;\r\n }\r\n return item;\r\n });\r\n }\r\n\r\n private selectSuggestion(suggestion: Suggestion) {\r\n this.selectedSuggestion = suggestion;\r\n\r\n this.input?.setAttribute(\"aria-activedescendant\", this.listboxItemId(suggestion));\r\n }\r\n\r\n private selectFirstSuggestion() {\r\n if (!this.suggestions) {\r\n return;\r\n }\r\n\r\n this.selectedSuggestion = this.suggestions[0];\r\n\r\n if (this.selectedSuggestion) {\r\n this.input?.setAttribute(\"aria-activedescendant\", this.listboxItemId(this.selectedSuggestion));\r\n }\r\n }\r\n\r\n private selectLastSuggestion() {\r\n if (!this.suggestions) {\r\n return;\r\n }\r\n\r\n this.selectedSuggestion = this.suggestions[this.suggestions.length - 1];\r\n\r\n if (this.selectedSuggestion) {\r\n this.input?.setAttribute(\"aria-activedescendant\", this.listboxItemId(this.selectedSuggestion));\r\n }\r\n }\r\n\r\n private selectNextSuggestion() {\r\n if (!this.suggestions) {\r\n return;\r\n }\r\n\r\n const index = this.selectedSuggestion ? this.suggestions.indexOf(this.selectedSuggestion) : -1;\r\n\r\n this.selectedSuggestion = this.suggestions[index + 1] ?? this.suggestions[0];\r\n\r\n if (this.selectedSuggestion) {\r\n this.input?.setAttribute(\"aria-activedescendant\", this.listboxItemId(this.selectedSuggestion));\r\n }\r\n }\r\n\r\n private selectPreviousSuggestion() {\r\n if (!this.suggestions) {\r\n return;\r\n }\r\n\r\n const index = this.selectedSuggestion ? this.suggestions.indexOf(this.selectedSuggestion) : 0;\r\n\r\n this.selectedSuggestion = this.suggestions[index - 1] ?? this.suggestions[this.suggestions.length - 1];\r\n\r\n if (this.selectedSuggestion) {\r\n this.input?.setAttribute(\"aria-activedescendant\", this.listboxItemId(this.selectedSuggestion));\r\n }\r\n }\r\n\r\n private resetSelectedSuggestion() {\r\n this.showLoading = !this.loadingDelayed;\r\n this.notFound = false;\r\n this.selectedSuggestion = undefined;\r\n this.input?.setAttribute(\"aria-activedescendant\", \"\");\r\n }\r\n\r\n private openSuggestions(selectSuggestion?: \"first\" | \"last\") {\r\n this.showSuggestions = (this.suggestions && this.suggestions.length > 0) ?? false;\r\n this.notFound = this.suggestions?.length === 0 ?? false;\r\n this.input?.setAttribute(\"aria-expanded\", (this.showSuggestions || this.notFound).toString());\r\n\r\n if (this.showSuggestions && selectSuggestion === \"first\") {\r\n this.selectFirstSuggestion();\r\n } else if (this.showSuggestions && selectSuggestion === \"last\") {\r\n this.selectLastSuggestion();\r\n }\r\n }\r\n\r\n private closeSuggestions() {\r\n this.showSuggestions = false;\r\n this.notFound = false;\r\n this.input?.setAttribute(\"aria-expanded\", \"false\");\r\n this.selectFirstSuggestion();\r\n }\r\n\r\n private pickSelectedValue() {\r\n if (this.selectedSuggestion && this.showSuggestions) {\r\n this.dsoSelect.emit(this.selectedSuggestion);\r\n } else {\r\n this.dsoSearch.emit(this.input?.value);\r\n }\r\n\r\n this.closeSuggestions();\r\n }\r\n\r\n private onKeyDown = (event: KeyboardEvent) => {\r\n if (event.defaultPrevented || this.loading) {\r\n return;\r\n }\r\n\r\n switch (event.key) {\r\n case \"ArrowDown\":\r\n if (!this.showSuggestions) {\r\n this.openSuggestions(\"first\");\r\n } else {\r\n this.selectNextSuggestion();\r\n }\r\n\r\n break;\r\n\r\n case \"ArrowUp\":\r\n if (!this.showSuggestions) {\r\n this.openSuggestions(\"last\");\r\n } else {\r\n this.selectPreviousSuggestion();\r\n }\r\n\r\n break;\r\n\r\n case \"Tab\":\r\n this.closeSuggestions();\r\n return;\r\n\r\n case \"Escape\":\r\n this.closeSuggestions();\r\n break;\r\n\r\n case \"Enter\":\r\n this.pickSelectedValue();\r\n break;\r\n\r\n default:\r\n return;\r\n }\r\n\r\n event.preventDefault();\r\n };\r\n\r\n private listboxItemId(suggestion: Suggestion): string {\r\n if (!this.suggestions) {\r\n return \"\";\r\n }\r\n return `${this.inputId}-${this.suggestions.indexOf(suggestion) + 1}`;\r\n }\r\n\r\n private getChunkedExtras(extras: string[]): string[][] {\r\n return extras.reduce((resultArray: string[][], extra, index) => {\r\n const chunkIndex = Math.floor(index / 2);\r\n\r\n if (!resultArray[chunkIndex]) {\r\n resultArray[chunkIndex] = [];\r\n }\r\n resultArray[chunkIndex]?.push(extra);\r\n return resultArray;\r\n }, []);\r\n }\r\n\r\n render() {\r\n return (\r\n <>\r\n <slot />\r\n {this.loading && this.showLoading ? (\r\n <div class=\"autosuggest-progress-box\">\r\n <dso-progress-indicator label={this.loadingLabel}></dso-progress-indicator>\r\n </div>\r\n ) : (\r\n <ul\r\n role=\"listbox\"\r\n aria-live=\"polite\"\r\n id={this.listboxId}\r\n aria-labelledby={this.labelId}\r\n ref={(element) => (this.listbox = element)}\r\n hidden={!this.showSuggestions && !this.notFound}\r\n >\r\n {(this.showSuggestions &&\r\n this.suggestions &&\r\n this.suggestions.map((suggestion) => (\r\n <li\r\n role=\"option\"\r\n id={this.listboxItemId(suggestion)}\r\n key={suggestion.value}\r\n onMouseEnter={() => this.selectSuggestion(suggestion)}\r\n onMouseLeave={() => this.resetSelectedSuggestion()}\r\n onClick={() => this.pickSelectedValue()}\r\n aria-selected={(suggestion === this.selectedSuggestion).toString()}\r\n aria-label={suggestion.value}\r\n >\r\n <div class=\"suggestion-row\">\r\n <span class=\"value\">{this.handleMark(suggestion, suggestion.value, \"value\")}</span>\r\n {suggestion.type ? (\r\n <span class=\"type\">{this.handleMark(suggestion, suggestion.type, \"type\")}</span>\r\n ) : undefined}\r\n </div>\r\n {suggestion.extras &&\r\n this.getChunkedExtras(suggestion.extras).map((chunk, index) => (\r\n <div class=\"suggestion-row\">\r\n {chunk.map((c, i) => (\r\n <span class=\"extra\">{this.handleMark(suggestion, c, \"extra\", index * 2 + i)}</span>\r\n ))}\r\n </div>\r\n ))}\r\n </li>\r\n ))) ||\r\n (this.notFound && (\r\n <li>\r\n <span class=\"value\">\r\n {!this.notFoundLabel ? (\r\n this.showInputValueNotFound(`${this.inputValue} is niet gevonden.`)\r\n ) : (\r\n <span>{this.notFoundLabel}</span>\r\n )}\r\n </span>\r\n </li>\r\n ))}\r\n </ul>\r\n )}\r\n </>\r\n );\r\n }\r\n}\r\n"],"mappings":"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"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{h as n,r as t,c as e,F as o,a as s}from"./p-1754d0a9.js";import{c as i}from"./p-8a1a6e56.js";import{d as a}from"./p-23b5692c.js";const r=["main","map"];const l=["search","map","document"];const d={main:"Hoofdpaneel",map:"Kaart",document:"Document",search:"Zoeken"};const c={small:"smal",medium:"middel",large:"breed"};const p=({className:t,onClick:e,label:o,icon:s})=>n("button",{type:"button",class:t,onClick:e},n("span",{class:"sr-only"},o),n("dso-icon",{icon:s}));const h=({shrink:t,expand:e,size:o,panelLabel:s,placement:i})=>{const a=[];if(o!=="small"){a.push(n(p,{onClick:t,label:`${s} smaller maken`,icon:i==="right"?"chevron-right":"chevron-left",className:"shrink"}))}if(o!=="large"){a.push(n(p,{onClick:e,label:`${s} breder maken`,icon:i==="right"?"chevron-left":"chevron-right",className:"expand"}))}return n("div",{class:"sizing-buttons"},n("span",{class:"sr-only","aria-live":"polite","aria-atomic":"true"},"Breedte ",s.toLocaleLowerCase(),": ",c[o]),a)};const f=({tabView:t,panelSize:e,shrinkDocumentPanel:o,expandDocumentPanel:s,dsoDocumentPanelSizeChangeAnimationEnd:i})=>n("div",{class:"dso-document-panel",onTransitionEnd:n=>{if(n.propertyName==="flex-basis"){i.emit({currentSize:e})}}},!t&&n(h,{panelLabel:"Documentpaneel",size:e,expand:s,shrink:o,placement:"right"}),n("div",{class:"content"},n("slot",{name:"document-panel"})));const g=({onApply:t,onCancel:e})=>n("div",{class:"filterpanel-buttons"},n("button",{type:"button",class:"cancel-button",onClick:e},n("span",null,"Annuleren")),n("button",{type:"button",class:"apply-button",onClick:t},n("span",null,"Toepassen"),n("dso-icon",{icon:"chevron-right"})));const b=({ref:t,onApply:e,onCancel:o})=>n("dialog",{id:"filterpanel",class:"filterpanel",ref:t,onCancel:n=>{n.preventDefault();o(n)}},n("h1",null,"Uw keuzes"),n(g,{onApply:e,onCancel:o}),n("slot",{name:"filterpanel"}),n(g,{onApply:e,onCancel:o}));const u=({mode:t,tabView:e,mainSize:o,documentPanelOpen:s,mainPanelExpanded:a,mainPanelHidden:r,shrinkMain:l,expandMain:d,toggleMainPanel:c,dsoMainSizeChangeAnimationEnd:p})=>n("div",{class:i("dso-main-panel",{compact:!e&&s&&!a,contracted:!e&&!s&&!a&&t==="vdk",expanded:!e&&s&&a,collapsed:r}),onTransitionEnd:n=>{if(n.propertyName==="flex-basis"){p.emit({currentSize:o})}}},!e&&(t==="vrk"&&n(h,{panelLabel:"Hoofdpaneel",size:o,expand:d,shrink:l,placement:"left"})||t==="vdk"&&s&&n("div",{class:"toggle-button"},n("button",{type:"button",onClick:c},n("span",{class:"sr-only"},"Zoeken paneel ",r?"tonen":"verbergen"),n("dso-icon",{icon:r?"chevron-right":"chevron-left"})))),n("div",{class:i("content",{invisible:r})},n("slot",{name:"main"})));const m=({ref:t,dsoCloseOverlay:e})=>n("dialog",{class:"overlay",ref:t,onCancel:n=>{n.preventDefault();e(n)}},n("button",{type:"button",class:"overlay-close-button",onClick:e},n("dso-icon",{icon:"times"}),n("span",{class:"sr-only"},"sluiten")),n("slot",{name:"overlay"}));const v="*,\n*::after,\n*::before {\n box-sizing: border-box;\n}\n\n:host([mode=vdk]) .overlay {\n height: calc(100% - 32px);\n margin-block: 16px;\n margin-inline: auto 16px;\n}\n\nbutton {\n -webkit-appearance: button;\n color: inherit;\n cursor: pointer;\n font: inherit;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n margin: 0;\n overflow: visible;\n text-transform: none;\n}\nbutton[disabled] {\n cursor: default;\n}\nbutton::-moz-focus-inner {\n border: 0;\n padding: 0;\n}\n\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n border: 0;\n}\n\n.shrink,\n.expand,\n.overlay-close-button {\n display: inline-block;\n font-size: 1em;\n font-weight: 500;\n margin-bottom: 0;\n text-decoration: none;\n touch-action: manipulation;\n text-align: left;\n user-select: none;\n vertical-align: middle;\n border: 0;\n color: #39870c;\n line-height: 1;\n padding: 0;\n background-color: transparent;\n}\n.shrink:focus, .shrink:focus-visible,\n.expand:focus,\n.expand:focus-visible,\n.overlay-close-button:focus,\n.overlay-close-button:focus-visible {\n outline-offset: 2px;\n}\n.shrink:active,\n.expand:active,\n.overlay-close-button:active {\n outline: 0;\n}\n.shrink[disabled],\n.expand[disabled],\n.overlay-close-button[disabled] {\n color: #afcf9d;\n}\n.shrink[disabled].dso-spinner-left, .shrink[disabled].dso-spinner-right,\n.expand[disabled].dso-spinner-left,\n.expand[disabled].dso-spinner-right,\n.overlay-close-button[disabled].dso-spinner-left,\n.overlay-close-button[disabled].dso-spinner-right {\n color: #39870c;\n}\n.shrink:not([disabled]):hover,\n.expand:not([disabled]):hover,\n.overlay-close-button:not([disabled]):hover {\n color: #275937;\n text-decoration: underline;\n text-underline-position: under;\n}\n.shrink:not([disabled]):active,\n.expand:not([disabled]):active,\n.overlay-close-button:not([disabled]):active {\n color: #173521;\n}\n.shrink.dso-align,\n.expand.dso-align,\n.overlay-close-button.dso-align {\n line-height: calc(1.5em - 1px);\n padding: 11px 0;\n position: relative;\n}\n.shrink.dso-truncate,\n.expand.dso-truncate,\n.overlay-close-button.dso-truncate {\n max-width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.shrink.dso-spinner-left::before,\n.expand.dso-spinner-left::before,\n.overlay-close-button.dso-spinner-left::before {\n background-image: url(\"data:image/svg+xml,%3Csvg class='spinner' viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg' %3E%3Cstyle%3E .spinner %7B animation: rotator 8s linear infinite; transform-origin: center; %7D @keyframes rotator %7B 0%25 %7B transform: rotate(0deg); %7D 100%25 %7B transform: rotate(360deg); %7D %7D .path %7B stroke-dasharray: 265; stroke-dashoffset: 0; transform-origin: center; stroke: %2339870c; animation: dash 2s ease-in-out infinite; %7D @keyframes dash %7B 0%25 %7B stroke-dashoffset: 265; %7D 50%25 %7B stroke-dashoffset: 65; transform:rotate(90deg); %7D 100%25 %7B stroke-dashoffset: 265; transform:rotate(360deg); %7D %3C/style%3E%3Ccircle class='path' fill='none' stroke-width='10' stroke-linecap='butt' cx='50' cy='50' r='45'%3E%3C/circle%3E%3C/svg%3E\");\n background-repeat: no-repeat;\n content: \"\";\n display: inline-block;\n height: 24px;\n vertical-align: middle;\n width: 24px;\n margin-right: 8px;\n}\n.shrink.dso-spinner-right::after,\n.expand.dso-spinner-right::after,\n.overlay-close-button.dso-spinner-right::after {\n background-image: url(\"data:image/svg+xml,%3Csvg class='spinner' viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg' %3E%3Cstyle%3E .spinner %7B animation: rotator 8s linear infinite; transform-origin: center; %7D @keyframes rotator %7B 0%25 %7B transform: rotate(0deg); %7D 100%25 %7B transform: rotate(360deg); %7D %7D .path %7B stroke-dasharray: 265; stroke-dashoffset: 0; transform-origin: center; stroke: %2339870c; animation: dash 2s ease-in-out infinite; %7D @keyframes dash %7B 0%25 %7B stroke-dashoffset: 265; %7D 50%25 %7B stroke-dashoffset: 65; transform:rotate(90deg); %7D 100%25 %7B stroke-dashoffset: 265; transform:rotate(360deg); %7D %3C/style%3E%3Ccircle class='path' fill='none' stroke-width='10' stroke-linecap='butt' cx='50' cy='50' r='45'%3E%3C/circle%3E%3C/svg%3E\");\n background-repeat: no-repeat;\n content: \"\";\n display: inline-block;\n height: 24px;\n vertical-align: middle;\n width: 24px;\n margin-left: 8px;\n}\n.shrink dso-icon + span:not(.sr-only),\n.shrink svg.di + span:not(.sr-only),\n.shrink span:not(.sr-only) + dso-icon,\n.shrink span:not(.sr-only) + svg.di,\n.expand dso-icon + span:not(.sr-only),\n.expand svg.di + span:not(.sr-only),\n.expand span:not(.sr-only) + dso-icon,\n.expand span:not(.sr-only) + svg.di,\n.overlay-close-button dso-icon + span:not(.sr-only),\n.overlay-close-button svg.di + span:not(.sr-only),\n.overlay-close-button span:not(.sr-only) + dso-icon,\n.overlay-close-button span:not(.sr-only) + svg.di {\n margin-left: 8px;\n}\n.shrink svg.di.di-chevron-down + span:not(.sr-only),\n.shrink svg.di.di-chevron-up + span:not(.sr-only),\n.shrink span:not(.sr-only) + svg.di.di-chevron-down,\n.shrink span:not(.sr-only) + svg.di.di-chevron-up,\n.expand svg.di.di-chevron-down + span:not(.sr-only),\n.expand svg.di.di-chevron-up + span:not(.sr-only),\n.expand span:not(.sr-only) + svg.di.di-chevron-down,\n.expand span:not(.sr-only) + svg.di.di-chevron-up,\n.overlay-close-button svg.di.di-chevron-down + span:not(.sr-only),\n.overlay-close-button svg.di.di-chevron-up + span:not(.sr-only),\n.overlay-close-button span:not(.sr-only) + svg.di.di-chevron-down,\n.overlay-close-button span:not(.sr-only) + svg.di.di-chevron-up {\n margin-left: 4px;\n}\n.shrink dso-icon[icon=chevron-left] + span:not(.sr-only),\n.shrink dso-icon[icon=chevron-right] + span:not(.sr-only),\n.shrink svg.di.di-angle-down + span:not(.sr-only),\n.shrink svg.di.di-angle-up + span:not(.sr-only),\n.shrink span:not(.sr-only) + svg.di.di-angle-down,\n.shrink span:not(.sr-only) + svg.di.di-angle-up,\n.shrink span:not(.sr-only) + dso-icon[icon=chevron-left],\n.shrink span:not(.sr-only) + dso-icon[icon=chevron-right],\n.expand dso-icon[icon=chevron-left] + span:not(.sr-only),\n.expand dso-icon[icon=chevron-right] + span:not(.sr-only),\n.expand svg.di.di-angle-down + span:not(.sr-only),\n.expand svg.di.di-angle-up + span:not(.sr-only),\n.expand span:not(.sr-only) + svg.di.di-angle-down,\n.expand span:not(.sr-only) + svg.di.di-angle-up,\n.expand span:not(.sr-only) + dso-icon[icon=chevron-left],\n.expand span:not(.sr-only) + dso-icon[icon=chevron-right],\n.overlay-close-button dso-icon[icon=chevron-left] + span:not(.sr-only),\n.overlay-close-button dso-icon[icon=chevron-right] + span:not(.sr-only),\n.overlay-close-button svg.di.di-angle-down + span:not(.sr-only),\n.overlay-close-button svg.di.di-angle-up + span:not(.sr-only),\n.overlay-close-button span:not(.sr-only) + svg.di.di-angle-down,\n.overlay-close-button span:not(.sr-only) + svg.di.di-angle-up,\n.overlay-close-button span:not(.sr-only) + dso-icon[icon=chevron-left],\n.overlay-close-button span:not(.sr-only) + dso-icon[icon=chevron-right] {\n margin-left: 0;\n}\n.shrink dso-icon,\n.shrink svg.di,\n.shrink span,\n.expand dso-icon,\n.expand svg.di,\n.expand span,\n.overlay-close-button dso-icon,\n.overlay-close-button svg.di,\n.overlay-close-button span {\n vertical-align: middle;\n}\n.shrink:hover,\n.expand:hover,\n.overlay-close-button:hover {\n cursor: pointer;\n}\n\n.overlay-close-button {\n position: absolute;\n top: 8px;\n right: 16px;\n}\n\n.content.invisible {\n visibility: hidden;\n}\n\n.dso-main-panel .content,\n.dso-document-panel .content {\n height: 100%;\n padding: 0 16px;\n}\n\n.dso-main-panel {\n background-color: #fff;\n flex-shrink: 0;\n flex-grow: 0;\n position: relative;\n transition: flex-basis 200ms ease-in, max-width 200ms ease-in, min-width 200ms ease-in;\n z-index: 100;\n}\n.dso-main-panel.compact.collapsed, .dso-main-panel.expanded.collapsed {\n left: -432px;\n}\n.dso-main-panel.compact, .dso-main-panel.contracted {\n flex-shrink: unset;\n flex-grow: unset;\n position: absolute;\n transition: none;\n}\n.dso-main-panel.expanded.collapsed {\n position: absolute;\n height: 100%;\n}\n.dso-main-panel .dso-filterblok-address {\n font-weight: bold;\n margin: 8px 0;\n}\n.dso-main-panel .sizing-buttons,\n.dso-main-panel .toggle-button {\n left: calc(100% + 1px);\n transition: left 200ms ease-in;\n padding: 0 4px 4px 0;\n}\n.dso-main-panel .sizing-buttons button,\n.dso-main-panel .toggle-button button {\n border-bottom-right-radius: 4px;\n border-top-right-radius: 4px;\n}\n\n.dso-document-panel {\n background-color: #fff;\n flex-shrink: 0;\n flex-grow: 0;\n position: relative;\n transition: flex-basis 200ms ease-in, max-width 200ms ease-in, min-width 200ms ease-in;\n z-index: 100;\n}\n.dso-document-panel .sizing-buttons {\n top: auto;\n bottom: 16px;\n right: calc(100% + 1px);\n transition: right 200ms ease-in;\n padding: 0 0 4px 4px;\n}\n.dso-document-panel .sizing-buttons button {\n border-bottom-left-radius: 4px;\n border-top-left-radius: 4px;\n}\n\n.sizing-buttons,\n.toggle-button {\n overflow-x: hidden;\n position: absolute;\n top: 16px;\n width: 44px;\n z-index: -1;\n}\n.sizing-buttons button,\n.toggle-button button {\n display: inline-block;\n font-size: 1em;\n font-weight: 500;\n margin-bottom: 0;\n text-decoration: none;\n touch-action: manipulation;\n text-align: left;\n user-select: none;\n vertical-align: middle;\n background-color: #fff;\n border-color: #39870c;\n color: #39870c;\n border-width: 1px;\n border-style: solid;\n border-radius: 4px;\n line-height: 1.5;\n min-width: 56px;\n padding: 11px 15px;\n border: 0;\n padding: 8px;\n border-radius: 0;\n box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.4);\n flex: 0 0 100%;\n height: 40px;\n min-width: auto;\n width: 40px;\n}\n.sizing-buttons button:focus, .sizing-buttons button:focus-visible,\n.toggle-button button:focus,\n.toggle-button button:focus-visible {\n outline-offset: 2px;\n}\n.sizing-buttons button:active,\n.toggle-button button:active {\n outline: 0;\n}\n.sizing-buttons button:hover,\n.toggle-button button:hover {\n background-color: #39870c;\n border-color: #39870c;\n color: #fff;\n}\n.sizing-buttons button:active,\n.toggle-button button:active {\n background-color: #275937;\n border-color: #275937;\n color: #fff;\n}\n.sizing-buttons button[disabled], .sizing-buttons button[disabled]:hover,\n.toggle-button button[disabled],\n.toggle-button button[disabled]:hover {\n background-color: #fff;\n border-color: #afcf9d;\n color: #afcf9d;\n}\n.sizing-buttons button.dso-small,\n.toggle-button button.dso-small {\n line-height: 1rem;\n}\n.sizing-buttons button.dso-small dso-icon,\n.sizing-buttons button.dso-small svg.di, .sizing-buttons button.dso-small.extern::after, .sizing-buttons button.dso-small.download::after, .sizing-buttons button.dso-small.dso-spinner::before,\n.toggle-button button.dso-small dso-icon,\n.toggle-button button.dso-small svg.di,\n.toggle-button button.dso-small.extern::after,\n.toggle-button button.dso-small.download::after,\n.toggle-button button.dso-small.dso-spinner::before {\n margin-bottom: -4px;\n margin-top: -4px;\n}\n.sizing-buttons button.dso-small.dso-spinner-left::before,\n.toggle-button button.dso-small.dso-spinner-left::before {\n height: 16px;\n width: 16px;\n}\n.sizing-buttons button.dso-small.dso-spinner-right::after,\n.toggle-button button.dso-small.dso-spinner-right::after {\n height: 16px;\n width: 16px;\n}\n.sizing-buttons button > span,\n.toggle-button button > span {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n border: 0;\n}\n.sizing-buttons button.dso-spinner-left[disabled], .sizing-buttons button.dso-spinner-right[disabled],\n.toggle-button button.dso-spinner-left[disabled],\n.toggle-button button.dso-spinner-right[disabled] {\n background-color: #fff;\n border-color: #39870c;\n color: #39870c;\n}\n.sizing-buttons button.dso-spinner-left::before,\n.toggle-button button.dso-spinner-left::before {\n background-image: url(\"data:image/svg+xml,%3Csvg class='spinner' viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg' %3E%3Cstyle%3E .spinner %7B animation: rotator 8s linear infinite; transform-origin: center; %7D @keyframes rotator %7B 0%25 %7B transform: rotate(0deg); %7D 100%25 %7B transform: rotate(360deg); %7D %7D .path %7B stroke-dasharray: 265; stroke-dashoffset: 0; transform-origin: center; stroke: %2339870c; animation: dash 2s ease-in-out infinite; %7D @keyframes dash %7B 0%25 %7B stroke-dashoffset: 265; %7D 50%25 %7B stroke-dashoffset: 65; transform:rotate(90deg); %7D 100%25 %7B stroke-dashoffset: 265; transform:rotate(360deg); %7D %3C/style%3E%3Ccircle class='path' fill='none' stroke-width='10' stroke-linecap='butt' cx='50' cy='50' r='45'%3E%3C/circle%3E%3C/svg%3E\");\n background-repeat: no-repeat;\n content: \"\";\n display: inline-block;\n height: 24px;\n vertical-align: top;\n width: 24px;\n margin-right: 8px;\n}\n.sizing-buttons button.dso-spinner-left:not([disabled]):hover::before,\n.toggle-button button.dso-spinner-left:not([disabled]):hover::before {\n background-image: url(\"data:image/svg+xml,%3Csvg class='spinner' viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg' %3E%3Cstyle%3E .spinner %7B animation: rotator 8s linear infinite; transform-origin: center; %7D @keyframes rotator %7B 0%25 %7B transform: rotate(0deg); %7D 100%25 %7B transform: rotate(360deg); %7D %7D .path %7B stroke-dasharray: 265; stroke-dashoffset: 0; transform-origin: center; stroke: %23fff; animation: dash 2s ease-in-out infinite; %7D @keyframes dash %7B 0%25 %7B stroke-dashoffset: 265; %7D 50%25 %7B stroke-dashoffset: 65; transform:rotate(90deg); %7D 100%25 %7B stroke-dashoffset: 265; transform:rotate(360deg); %7D %3C/style%3E%3Ccircle class='path' fill='none' stroke-width='10' stroke-linecap='butt' cx='50' cy='50' r='45'%3E%3C/circle%3E%3C/svg%3E\");\n background-repeat: no-repeat;\n content: \"\";\n display: inline-block;\n height: 24px;\n vertical-align: top;\n width: 24px;\n margin-right: 8px;\n}\n.sizing-buttons button.dso-spinner-left:not([disabled]).dso-small:hover::before,\n.toggle-button button.dso-spinner-left:not([disabled]).dso-small:hover::before {\n height: 16px;\n width: 16px;\n}\n.sizing-buttons button.dso-spinner-right::after,\n.toggle-button button.dso-spinner-right::after {\n background-image: url(\"data:image/svg+xml,%3Csvg class='spinner' viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg' %3E%3Cstyle%3E .spinner %7B animation: rotator 8s linear infinite; transform-origin: center; %7D @keyframes rotator %7B 0%25 %7B transform: rotate(0deg); %7D 100%25 %7B transform: rotate(360deg); %7D %7D .path %7B stroke-dasharray: 265; stroke-dashoffset: 0; transform-origin: center; stroke: %2339870c; animation: dash 2s ease-in-out infinite; %7D @keyframes dash %7B 0%25 %7B stroke-dashoffset: 265; %7D 50%25 %7B stroke-dashoffset: 65; transform:rotate(90deg); %7D 100%25 %7B stroke-dashoffset: 265; transform:rotate(360deg); %7D %3C/style%3E%3Ccircle class='path' fill='none' stroke-width='10' stroke-linecap='butt' cx='50' cy='50' r='45'%3E%3C/circle%3E%3C/svg%3E\");\n background-repeat: no-repeat;\n content: \"\";\n display: inline-block;\n height: 24px;\n vertical-align: top;\n width: 24px;\n margin-left: 8px;\n}\n.sizing-buttons button.dso-spinner-right:not([disabled]):hover::after,\n.toggle-button button.dso-spinner-right:not([disabled]):hover::after {\n background-image: url(\"data:image/svg+xml,%3Csvg class='spinner' viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg' %3E%3Cstyle%3E .spinner %7B animation: rotator 8s linear infinite; transform-origin: center; %7D @keyframes rotator %7B 0%25 %7B transform: rotate(0deg); %7D 100%25 %7B transform: rotate(360deg); %7D %7D .path %7B stroke-dasharray: 265; stroke-dashoffset: 0; transform-origin: center; stroke: %23fff; animation: dash 2s ease-in-out infinite; %7D @keyframes dash %7B 0%25 %7B stroke-dashoffset: 265; %7D 50%25 %7B stroke-dashoffset: 65; transform:rotate(90deg); %7D 100%25 %7B stroke-dashoffset: 265; transform:rotate(360deg); %7D %3C/style%3E%3Ccircle class='path' fill='none' stroke-width='10' stroke-linecap='butt' cx='50' cy='50' r='45'%3E%3C/circle%3E%3C/svg%3E\");\n background-repeat: no-repeat;\n content: \"\";\n display: inline-block;\n height: 24px;\n vertical-align: top;\n width: 24px;\n margin-left: 8px;\n}\n.sizing-buttons button.dso-spinner-right:not([disabled]).dso-small:hover::after,\n.toggle-button button.dso-spinner-right:not([disabled]).dso-small:hover::after {\n height: 16px;\n width: 16px;\n}\n.sizing-buttons button:focus-visible,\n.toggle-button button:focus-visible {\n background-color: #39870c;\n border-color: #39870c;\n color: #fff;\n outline: none;\n}\n.sizing-buttons button:hover dso-icon,\n.toggle-button button:hover dso-icon {\n color: #fff;\n}\n\n.map {\n height: 100%;\n width: 100%;\n overflow: hidden;\n position: relative;\n}\n\n.filterpanel,\n.overlay {\n background-color: #fff;\n border: 0;\n height: 100%;\n margin-block: 0;\n max-height: 100vh;\n overflow-y: auto;\n z-index: 101;\n}\n\n.filterpanel {\n padding: 8px 16px;\n left: 0;\n}\n@media screen and (max-width: 768px) {\n .filterpanel {\n width: 100vw;\n }\n .filterpanel::before {\n display: none !important;\n }\n}\n.filterpanel h1 {\n color: #275937;\n margin-block-end: 16px;\n margin-block-start: 24px;\n font-size: 1.5rem;\n font-weight: 700;\n}\n@media screen and (min-width: 480px) {\n .filterpanel h1 {\n font-size: 2rem;\n }\n}\n\n.overlay {\n padding: 40px 16px 8px;\n right: 0;\n width: 624px;\n}\n.overlay::backdrop {\n background-color: rgba(0, 0, 0, 0.5);\n}\n@media screen and (max-width: 624px) {\n .overlay {\n width: 100vw;\n }\n}\n\n.filterpanel-buttons {\n text-align: right;\n}\n.filterpanel-buttons .cancel-button {\n display: inline-block;\n font-size: 1em;\n font-weight: 500;\n margin-bottom: 0;\n text-decoration: none;\n touch-action: manipulation;\n text-align: left;\n user-select: none;\n vertical-align: middle;\n background-color: #fff;\n border-color: #39870c;\n color: #39870c;\n border-width: 1px;\n border-style: solid;\n border-radius: 4px;\n line-height: 1.5;\n min-width: 56px;\n padding: 11px 15px;\n line-height: 1rem;\n}\n.filterpanel-buttons .cancel-button:focus, .filterpanel-buttons .cancel-button:focus-visible {\n outline-offset: 2px;\n}\n.filterpanel-buttons .cancel-button:active {\n outline: 0;\n}\n.filterpanel-buttons .cancel-button:hover {\n background-color: #39870c;\n border-color: #39870c;\n color: #fff;\n}\n.filterpanel-buttons .cancel-button:active {\n background-color: #275937;\n border-color: #275937;\n color: #fff;\n}\n.filterpanel-buttons .cancel-button[disabled], .filterpanel-buttons .cancel-button[disabled]:hover {\n background-color: #fff;\n border-color: #afcf9d;\n color: #afcf9d;\n}\n.filterpanel-buttons .cancel-button.dso-small {\n line-height: 1rem;\n}\n.filterpanel-buttons .cancel-button.dso-small dso-icon,\n.filterpanel-buttons .cancel-button.dso-small svg.di, .filterpanel-buttons .cancel-button.dso-small.extern::after, .filterpanel-buttons .cancel-button.dso-small.download::after, .filterpanel-buttons .cancel-button.dso-small.dso-spinner::before {\n margin-bottom: -4px;\n margin-top: -4px;\n}\n.filterpanel-buttons .cancel-button.dso-small.dso-spinner-left::before {\n height: 16px;\n width: 16px;\n}\n.filterpanel-buttons .cancel-button.dso-small.dso-spinner-right::after {\n height: 16px;\n width: 16px;\n}\n.filterpanel-buttons .cancel-button dso-icon,\n.filterpanel-buttons .cancel-button svg.di {\n margin-left: -8px;\n margin-right: 8px;\n}\n.filterpanel-buttons .cancel-button span + dso-icon,\n.filterpanel-buttons .cancel-button span + svg.di {\n margin-left: 8px;\n margin-right: -8px;\n}\n.filterpanel-buttons .cancel-button.dso-spinner-left[disabled], .filterpanel-buttons .cancel-button.dso-spinner-right[disabled] {\n background-color: #fff;\n border-color: #39870c;\n color: #39870c;\n}\n.filterpanel-buttons .cancel-button.dso-spinner-left::before {\n background-image: url(\"data:image/svg+xml,%3Csvg class='spinner' viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg' %3E%3Cstyle%3E .spinner %7B animation: rotator 8s linear infinite; transform-origin: center; %7D @keyframes rotator %7B 0%25 %7B transform: rotate(0deg); %7D 100%25 %7B transform: rotate(360deg); %7D %7D .path %7B stroke-dasharray: 265; stroke-dashoffset: 0; transform-origin: center; stroke: %2339870c; animation: dash 2s ease-in-out infinite; %7D @keyframes dash %7B 0%25 %7B stroke-dashoffset: 265; %7D 50%25 %7B stroke-dashoffset: 65; transform:rotate(90deg); %7D 100%25 %7B stroke-dashoffset: 265; transform:rotate(360deg); %7D %3C/style%3E%3Ccircle class='path' fill='none' stroke-width='10' stroke-linecap='butt' cx='50' cy='50' r='45'%3E%3C/circle%3E%3C/svg%3E\");\n background-repeat: no-repeat;\n content: \"\";\n display: inline-block;\n height: 24px;\n vertical-align: top;\n width: 24px;\n margin-right: 8px;\n}\n.filterpanel-buttons .cancel-button.dso-spinner-left:not([disabled]):hover::before {\n background-image: url(\"data:image/svg+xml,%3Csvg class='spinner' viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg' %3E%3Cstyle%3E .spinner %7B animation: rotator 8s linear infinite; transform-origin: center; %7D @keyframes rotator %7B 0%25 %7B transform: rotate(0deg); %7D 100%25 %7B transform: rotate(360deg); %7D %7D .path %7B stroke-dasharray: 265; stroke-dashoffset: 0; transform-origin: center; stroke: %23fff; animation: dash 2s ease-in-out infinite; %7D @keyframes dash %7B 0%25 %7B stroke-dashoffset: 265; %7D 50%25 %7B stroke-dashoffset: 65; transform:rotate(90deg); %7D 100%25 %7B stroke-dashoffset: 265; transform:rotate(360deg); %7D %3C/style%3E%3Ccircle class='path' fill='none' stroke-width='10' stroke-linecap='butt' cx='50' cy='50' r='45'%3E%3C/circle%3E%3C/svg%3E\");\n background-repeat: no-repeat;\n content: \"\";\n display: inline-block;\n height: 24px;\n vertical-align: top;\n width: 24px;\n margin-right: 8px;\n}\n.filterpanel-buttons .cancel-button.dso-spinner-left:not([disabled]).dso-small:hover::before {\n height: 16px;\n width: 16px;\n}\n.filterpanel-buttons .cancel-button.dso-spinner-right::after {\n background-image: url(\"data:image/svg+xml,%3Csvg class='spinner' viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg' %3E%3Cstyle%3E .spinner %7B animation: rotator 8s linear infinite; transform-origin: center; %7D @keyframes rotator %7B 0%25 %7B transform: rotate(0deg); %7D 100%25 %7B transform: rotate(360deg); %7D %7D .path %7B stroke-dasharray: 265; stroke-dashoffset: 0; transform-origin: center; stroke: %2339870c; animation: dash 2s ease-in-out infinite; %7D @keyframes dash %7B 0%25 %7B stroke-dashoffset: 265; %7D 50%25 %7B stroke-dashoffset: 65; transform:rotate(90deg); %7D 100%25 %7B stroke-dashoffset: 265; transform:rotate(360deg); %7D %3C/style%3E%3Ccircle class='path' fill='none' stroke-width='10' stroke-linecap='butt' cx='50' cy='50' r='45'%3E%3C/circle%3E%3C/svg%3E\");\n background-repeat: no-repeat;\n content: \"\";\n display: inline-block;\n height: 24px;\n vertical-align: top;\n width: 24px;\n margin-left: 8px;\n}\n.filterpanel-buttons .cancel-button.dso-spinner-right:not([disabled]):hover::after {\n background-image: url(\"data:image/svg+xml,%3Csvg class='spinner' viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg' %3E%3Cstyle%3E .spinner %7B animation: rotator 8s linear infinite; transform-origin: center; %7D @keyframes rotator %7B 0%25 %7B transform: rotate(0deg); %7D 100%25 %7B transform: rotate(360deg); %7D %7D .path %7B stroke-dasharray: 265; stroke-dashoffset: 0; transform-origin: center; stroke: %23fff; animation: dash 2s ease-in-out infinite; %7D @keyframes dash %7B 0%25 %7B stroke-dashoffset: 265; %7D 50%25 %7B stroke-dashoffset: 65; transform:rotate(90deg); %7D 100%25 %7B stroke-dashoffset: 265; transform:rotate(360deg); %7D %3C/style%3E%3Ccircle class='path' fill='none' stroke-width='10' stroke-linecap='butt' cx='50' cy='50' r='45'%3E%3C/circle%3E%3C/svg%3E\");\n background-repeat: no-repeat;\n content: \"\";\n display: inline-block;\n height: 24px;\n vertical-align: top;\n width: 24px;\n margin-left: 8px;\n}\n.filterpanel-buttons .cancel-button.dso-spinner-right:not([disabled]).dso-small:hover::after {\n height: 16px;\n width: 16px;\n}\n.filterpanel-buttons .cancel-button dso-icon,\n.filterpanel-buttons .cancel-button svg.di, .filterpanel-buttons .cancel-button.extern::after, .filterpanel-buttons .cancel-button.download::after, .filterpanel-buttons .cancel-button.dso-spinner::before {\n margin-bottom: -4px;\n margin-top: -4px;\n}\n.filterpanel-buttons .cancel-button.dso-spinner-left::before {\n height: 16px;\n width: 16px;\n}\n.filterpanel-buttons .cancel-button.dso-spinner-right::after {\n height: 16px;\n width: 16px;\n}\n.filterpanel-buttons .apply-button {\n display: inline-block;\n font-size: 1em;\n font-weight: 500;\n margin-bottom: 0;\n text-decoration: none;\n touch-action: manipulation;\n text-align: left;\n user-select: none;\n vertical-align: middle;\n background-color: #39870c;\n border-color: #39870c;\n color: #fff;\n border-width: 1px;\n border-style: solid;\n border-radius: 4px;\n line-height: 1.5;\n min-width: 56px;\n padding: 11px 15px;\n line-height: 1rem;\n}\n.filterpanel-buttons .apply-button:focus, .filterpanel-buttons .apply-button:focus-visible {\n outline-offset: 2px;\n}\n.filterpanel-buttons .apply-button:active {\n outline: 0;\n}\n.filterpanel-buttons .apply-button:hover {\n background-color: #275937;\n border-color: #275937;\n color: #fff;\n}\n.filterpanel-buttons .apply-button:active {\n background-color: #173521;\n border-color: #173521;\n color: #fff;\n}\n.filterpanel-buttons .apply-button[disabled], .filterpanel-buttons .apply-button[disabled]:hover {\n background-color: #afcf9d;\n border-color: #afcf9d;\n color: #fff;\n}\n.filterpanel-buttons .apply-button.dso-small {\n line-height: 1rem;\n}\n.filterpanel-buttons .apply-button.dso-small dso-icon,\n.filterpanel-buttons .apply-button.dso-small svg.di, .filterpanel-buttons .apply-button.dso-small.extern::after, .filterpanel-buttons .apply-button.dso-small.download::after, .filterpanel-buttons .apply-button.dso-small.dso-spinner::before {\n margin-bottom: -4px;\n margin-top: -4px;\n}\n.filterpanel-buttons .apply-button.dso-small.dso-spinner-left::before {\n height: 16px;\n width: 16px;\n}\n.filterpanel-buttons .apply-button.dso-small.dso-spinner-right::after {\n height: 16px;\n width: 16px;\n}\n.filterpanel-buttons .apply-button dso-icon,\n.filterpanel-buttons .apply-button svg.di {\n margin-left: -8px;\n margin-right: 8px;\n}\n.filterpanel-buttons .apply-button span + dso-icon,\n.filterpanel-buttons .apply-button span + svg.di {\n margin-left: 8px;\n margin-right: -8px;\n}\n.filterpanel-buttons .apply-button.dso-spinner-left[disabled], .filterpanel-buttons .apply-button.dso-spinner-right[disabled] {\n background-color: #39870c;\n border-color: #39870c;\n color: #fff;\n}\n.filterpanel-buttons .apply-button.dso-spinner-left::before {\n background-image: url(\"data:image/svg+xml,%3Csvg class='spinner' viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg' %3E%3Cstyle%3E .spinner %7B animation: rotator 8s linear infinite; transform-origin: center; %7D @keyframes rotator %7B 0%25 %7B transform: rotate(0deg); %7D 100%25 %7B transform: rotate(360deg); %7D %7D .path %7B stroke-dasharray: 265; stroke-dashoffset: 0; transform-origin: center; stroke: %23fff; animation: dash 2s ease-in-out infinite; %7D @keyframes dash %7B 0%25 %7B stroke-dashoffset: 265; %7D 50%25 %7B stroke-dashoffset: 65; transform:rotate(90deg); %7D 100%25 %7B stroke-dashoffset: 265; transform:rotate(360deg); %7D %3C/style%3E%3Ccircle class='path' fill='none' stroke-width='10' stroke-linecap='butt' cx='50' cy='50' r='45'%3E%3C/circle%3E%3C/svg%3E\");\n background-repeat: no-repeat;\n content: \"\";\n display: inline-block;\n height: 24px;\n vertical-align: top;\n width: 24px;\n margin-right: 8px;\n}\n.filterpanel-buttons .apply-button.dso-spinner-right::after {\n background-image: url(\"data:image/svg+xml,%3Csvg class='spinner' viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg' %3E%3Cstyle%3E .spinner %7B animation: rotator 8s linear infinite; transform-origin: center; %7D @keyframes rotator %7B 0%25 %7B transform: rotate(0deg); %7D 100%25 %7B transform: rotate(360deg); %7D %7D .path %7B stroke-dasharray: 265; stroke-dashoffset: 0; transform-origin: center; stroke: %23fff; animation: dash 2s ease-in-out infinite; %7D @keyframes dash %7B 0%25 %7B stroke-dashoffset: 265; %7D 50%25 %7B stroke-dashoffset: 65; transform:rotate(90deg); %7D 100%25 %7B stroke-dashoffset: 265; transform:rotate(360deg); %7D %3C/style%3E%3Ccircle class='path' fill='none' stroke-width='10' stroke-linecap='butt' cx='50' cy='50' r='45'%3E%3C/circle%3E%3C/svg%3E\");\n background-repeat: no-repeat;\n content: \"\";\n display: inline-block;\n height: 24px;\n vertical-align: top;\n width: 24px;\n margin-left: 8px;\n}\n.filterpanel-buttons .apply-button dso-icon,\n.filterpanel-buttons .apply-button svg.di, .filterpanel-buttons .apply-button.extern::after, .filterpanel-buttons .apply-button.download::after, .filterpanel-buttons .apply-button.dso-spinner::before {\n margin-bottom: -4px;\n margin-top: -4px;\n}\n.filterpanel-buttons .apply-button.dso-spinner-left::before {\n height: 16px;\n width: 16px;\n}\n.filterpanel-buttons .apply-button.dso-spinner-right::after {\n height: 16px;\n width: 16px;\n}\n.filterpanel-buttons .cancel-button + .apply-button {\n margin-left: 16px;\n}\n\n@media screen and (min-width: 808px) {\n :host([main-size=small]) .dso-main-panel,\n :host([document-panel-size=small]) .dso-document-panel {\n flex-basis: 375px;\n min-width: 0;\n max-width: 375px;\n }\n}\n@media screen and (min-width: 808px) and (max-width: 375px) {\n :host([main-size=small]) .dso-main-panel,\n :host([document-panel-size=small]) .dso-document-panel {\n flex-basis: 100vw;\n max-width: 100vw;\n min-width: 0;\n transition: none;\n }\n}\n@media screen and (min-width: 808px) {\n :host([main-size=medium]) .dso-main-panel,\n :host([document-panel-size=medium]) .dso-document-panel {\n flex-basis: 624px;\n min-width: 375px;\n max-width: 624px;\n }\n}\n@media screen and (min-width: 808px) and (max-width: 624px) {\n :host([main-size=medium]) .dso-main-panel,\n :host([document-panel-size=medium]) .dso-document-panel {\n flex-basis: 100vw;\n max-width: 100vw;\n min-width: 375px;\n transition: none;\n }\n}\n@media screen and (min-width: 808px) {\n :host([main-size=large]) .dso-main-panel,\n :host([document-panel-size=large]) .dso-document-panel {\n flex-basis: 60%;\n min-width: 768px;\n max-width: 1024px;\n }\n}\n@media screen and (min-width: 808px) and (max-width: 768px) {\n :host([main-size=large]) .dso-main-panel,\n :host([document-panel-size=large]) .dso-document-panel {\n flex-basis: 100vw;\n max-width: 100vw;\n min-width: 768px;\n transition: none;\n }\n}\n@media screen and (min-width: 808px) {\n :host {\n display: flex;\n height: 100vh;\n overflow: hidden;\n position: relative;\n }\n :host .dso-main-panel.compact,\n :host .dso-main-panel.expanded {\n flex-basis: unset;\n min-width: unset;\n max-width: unset;\n width: 440px;\n }\n :host .dso-main-panel.compact .content,\n :host .dso-main-panel.expanded .content {\n height: auto;\n overflow-y: auto;\n }\n}\n@media screen and (min-width: 808px) {\n .dso-main-panel,\n .dso-document-panel {\n box-shadow: 2px 0 8px 0 rgba(0, 0, 0, 0.4);\n }\n .dso-main-panel .content,\n .dso-document-panel .content {\n overflow-y: auto;\n }\n}\n@media screen and (min-width: 808px) {\n .filterpanel {\n box-shadow: 2px 0 5px #666;\n margin-inline: 0 auto;\n max-width: 896px;\n width: calc(100vw - 40px);\n }\n .filterpanel::before {\n content: \"\";\n display: block;\n position: fixed;\n top: 0;\n bottom: 0;\n right: 0;\n left: 896px;\n background-color: rgba(0, 0, 0, 0.5);\n }\n}\n@media screen and (min-width: 808px) and (max-width: 936px) {\n .filterpanel::before {\n left: auto;\n width: 40px;\n }\n}\n@media screen and (min-width: 808px) {\n .overlay {\n box-shadow: -2px 0 5px #666;\n margin-inline: auto 0;\n }\n}\n@media screen and (max-width: 807.99px) {\n .dso-navbar {\n min-height: 32px;\n }\n .dso-navbar .dso-navbar-header {\n float: left;\n }\n .dso-navbar .dso-navbar-toggle {\n border-radius: 4px;\n min-width: auto;\n padding: 5px 0;\n }\n .dso-navbar .dso-navbar-toggle dso-icon,\n .dso-navbar .dso-navbar-toggle svg.di {\n margin-left: 8px;\n margin-right: 8px;\n }\n}\n@media screen and (max-width: 807.99px) and (min-width: 992px) {\n .dso-navbar .dso-navbar-toggle {\n display: none;\n }\n}\n@media screen and (max-width: 807.99px) {\n .dso-navbar.dso-has-navbar-extension .dso-nav > li:last-child {\n margin-inline-end: 8rem;\n }\n}\n@media screen and (max-width: 807.99px) {\n .dso-nav {\n list-style: none;\n margin-block-end: 0;\n padding-inline-start: 0;\n }\n .dso-nav > li > button {\n border: 0;\n background-color: transparent;\n }\n .dso-nav > li > a,\n .dso-nav > li > button {\n display: block;\n }\n .dso-nav > li > a, .dso-nav > li > a:hover, .dso-nav > li > a:focus, .dso-nav > li > a:visited,\n .dso-nav > li > button,\n .dso-nav > li > button:hover,\n .dso-nav > li > button:focus,\n .dso-nav > li > button:visited {\n color: #275937;\n }\n .dso-nav > li.dso-active > a,\n .dso-nav > li.dso-active > button, .dso-nav > li.is-active > a,\n .dso-nav > li.is-active > button {\n border-bottom: 4px solid #8b4a6a;\n font-weight: bold;\n }\n .dso-nav.dso-nav-main > li {\n display: inline-block;\n }\n .dso-nav.dso-nav-main > li > a,\n .dso-nav.dso-nav-main > li > button {\n text-decoration: none;\n font-size: 1.25em;\n line-height: 1;\n margin-top: 8px;\n padding: 8px 16px 7px;\n }\n .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,\n .dso-nav.dso-nav-main > li > button:hover,\n .dso-nav.dso-nav-main > li > button:focus-visible,\n .dso-nav.dso-nav-main > li > button:active {\n text-decoration: underline;\n }\n .dso-nav.dso-nav-sub > li {\n display: inline-block;\n }\n .dso-nav.dso-nav-sub > li > a,\n .dso-nav.dso-nav-sub > li > button {\n text-decoration: none;\n font-size: 1rem;\n margin-top: 4px;\n padding: 4px 8px 3px;\n }\n .dso-nav.dso-nav-sub > li > a:hover, .dso-nav.dso-nav-sub > li > a:focus-visible, .dso-nav.dso-nav-sub > li > a:active,\n .dso-nav.dso-nav-sub > li > button:hover,\n .dso-nav.dso-nav-sub > li > button:focus-visible,\n .dso-nav.dso-nav-sub > li > button:active {\n text-decoration: underline;\n }\n}\n@media screen and (max-width: 807.99px) {\n .dso-navbar {\n padding-inline: 16px;\n }\n}\n@media screen and (max-width: 807.99px) {\n .dso-nav {\n border-bottom: 1px solid #ccc;\n display: flex;\n gap: 16px;\n margin-block-start: 0;\n width: calc(100vw - 32px);\n }\n}\n@media screen and (max-width: 807.99px) {\n .dso-tertiary {\n display: inline-block;\n font-size: 1em;\n font-weight: 500;\n margin-bottom: 0;\n text-decoration: none;\n touch-action: manipulation;\n text-align: left;\n user-select: none;\n vertical-align: middle;\n border: 0;\n color: #39870c;\n line-height: 1;\n padding: 0;\n background-color: transparent;\n font-weight: 300;\n }\n .dso-tertiary:focus, .dso-tertiary:focus-visible {\n outline-offset: 2px;\n }\n .dso-tertiary:active {\n outline: 0;\n }\n .dso-tertiary[disabled] {\n color: #afcf9d;\n }\n .dso-tertiary[disabled].dso-spinner-left, .dso-tertiary[disabled].dso-spinner-right {\n color: #39870c;\n }\n .dso-tertiary:not([disabled]):hover {\n color: #275937;\n text-decoration: underline;\n text-underline-position: under;\n }\n .dso-tertiary:not([disabled]):active {\n color: #173521;\n }\n .dso-tertiary.dso-align {\n line-height: calc(1.5em - 1px);\n padding: 11px 0;\n position: relative;\n }\n .dso-tertiary.dso-truncate {\n max-width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n .dso-tertiary.dso-spinner-left::before {\n background-image: url(\"data:image/svg+xml,%3Csvg class='spinner' viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg' %3E%3Cstyle%3E .spinner %7B animation: rotator 8s linear infinite; transform-origin: center; %7D @keyframes rotator %7B 0%25 %7B transform: rotate(0deg); %7D 100%25 %7B transform: rotate(360deg); %7D %7D .path %7B stroke-dasharray: 265; stroke-dashoffset: 0; transform-origin: center; stroke: %2339870c; animation: dash 2s ease-in-out infinite; %7D @keyframes dash %7B 0%25 %7B stroke-dashoffset: 265; %7D 50%25 %7B stroke-dashoffset: 65; transform:rotate(90deg); %7D 100%25 %7B stroke-dashoffset: 265; transform:rotate(360deg); %7D %3C/style%3E%3Ccircle class='path' fill='none' stroke-width='10' stroke-linecap='butt' cx='50' cy='50' r='45'%3E%3C/circle%3E%3C/svg%3E\");\n background-repeat: no-repeat;\n content: \"\";\n display: inline-block;\n height: 24px;\n vertical-align: middle;\n width: 24px;\n margin-right: 8px;\n }\n .dso-tertiary.dso-spinner-right::after {\n background-image: url(\"data:image/svg+xml,%3Csvg class='spinner' viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg' %3E%3Cstyle%3E .spinner %7B animation: rotator 8s linear infinite; transform-origin: center; %7D @keyframes rotator %7B 0%25 %7B transform: rotate(0deg); %7D 100%25 %7B transform: rotate(360deg); %7D %7D .path %7B stroke-dasharray: 265; stroke-dashoffset: 0; transform-origin: center; stroke: %2339870c; animation: dash 2s ease-in-out infinite; %7D @keyframes dash %7B 0%25 %7B stroke-dashoffset: 265; %7D 50%25 %7B stroke-dashoffset: 65; transform:rotate(90deg); %7D 100%25 %7B stroke-dashoffset: 265; transform:rotate(360deg); %7D %3C/style%3E%3Ccircle class='path' fill='none' stroke-width='10' stroke-linecap='butt' cx='50' cy='50' r='45'%3E%3C/circle%3E%3C/svg%3E\");\n background-repeat: no-repeat;\n content: \"\";\n display: inline-block;\n height: 24px;\n vertical-align: middle;\n width: 24px;\n margin-left: 8px;\n }\n .dso-tertiary dso-icon + span:not(.sr-only),\n .dso-tertiary svg.di + span:not(.sr-only),\n .dso-tertiary span:not(.sr-only) + dso-icon,\n .dso-tertiary span:not(.sr-only) + svg.di {\n margin-left: 8px;\n }\n .dso-tertiary svg.di.di-chevron-down + span:not(.sr-only),\n .dso-tertiary svg.di.di-chevron-up + span:not(.sr-only),\n .dso-tertiary span:not(.sr-only) + svg.di.di-chevron-down,\n .dso-tertiary span:not(.sr-only) + svg.di.di-chevron-up {\n margin-left: 4px;\n }\n .dso-tertiary dso-icon[icon=chevron-left] + span:not(.sr-only),\n .dso-tertiary dso-icon[icon=chevron-right] + span:not(.sr-only),\n .dso-tertiary svg.di.di-angle-down + span:not(.sr-only),\n .dso-tertiary svg.di.di-angle-up + span:not(.sr-only),\n .dso-tertiary span:not(.sr-only) + svg.di.di-angle-down,\n .dso-tertiary span:not(.sr-only) + svg.di.di-angle-up,\n .dso-tertiary span:not(.sr-only) + dso-icon[icon=chevron-left],\n .dso-tertiary span:not(.sr-only) + dso-icon[icon=chevron-right] {\n margin-left: 0;\n }\n .dso-tertiary dso-icon,\n .dso-tertiary svg.di,\n .dso-tertiary span {\n vertical-align: middle;\n }\n}\n@media screen and (max-width: 807.99px) {\n .filterpanel,\n .overlay {\n margin-inline: 0;\n max-width: 100vw;\n top: 0;\n width: 100vw;\n }\n}";const x=v;const y=new ResizeObserver(a((([n])=>{const t=n===null||n===void 0?void 0:n.target.getRootNode();if(t instanceof ShadowRoot&&k(t.host)){t.host._checkMainPanelVisibility()}}),50));function k(n){return n.tagName==="DSO-VIEWER-GRID"}const w=40;const B=768+w;const D=440;const C=class{constructor(n){t(this,n);this.dsoCloseOverlay=e(this,"dsoCloseOverlay",7);this.dsoFilterpanelCancel=e(this,"dsoFilterpanelCancel",7);this.dsoFilterpanelApply=e(this,"dsoFilterpanelApply",7);this.dsoActiveTabSwitch=e(this,"dsoActiveTabSwitch",7);this.dsoMainSizeChange=e(this,"dsoMainSizeChange",7);this.dsoMainSizeChangeAnimationEnd=e(this,"dsoMainSizeChangeAnimationEnd",7);this.dsoDocumentPanelSizeChange=e(this,"dsoDocumentPanelSizeChange",7);this.dsoDocumentPanelSizeChangeAnimationEnd=e(this,"dsoDocumentPanelSizeChangeAnimationEnd",7);this.dsoMainPanelExpand=e(this,"dsoMainPanelExpand",7);this.dsoMainPanelToggle=e(this,"dsoMainPanelToggle",7);this.mediaCondition=`(min-width: ${B}px)`;this.switchActiveTab=n=>{this.dsoActiveTabSwitch.emit({tab:n})};this.emitShrinkMain=()=>{this.dsoMainSizeChange.emit({currentSize:this.mainSize,nextSize:this.mainSize==="large"?"medium":"small"})};this.emitExpandMain=()=>{this.dsoMainSizeChange.emit({currentSize:this.mainSize,nextSize:this.mainSize==="small"?"medium":"large"})};this.shrinkDocumentPanel=()=>{this.dsoDocumentPanelSizeChange.emit({currentSize:this.documentPanelSize,nextSize:this.documentPanelSize==="large"?"medium":"small"})};this.expandDocumentPanel=()=>{this.dsoDocumentPanelSizeChange.emit({currentSize:this.documentPanelSize,nextSize:this.documentPanelSize==="small"?"medium":"large"})};this.toggleMainPanel=()=>{if(this.mapElement instanceof HTMLDivElement&&this.mapElement.clientWidth<=D+w+w){this.mainSize="small"}this.dsoMainPanelToggle.emit({hide:!this.mainPanelHidden})};this.changeListener=n=>this.tabView=!n.matches;this.handleFilterpanelApply=n=>{this.dsoFilterpanelApply.emit({originalEvent:n})};this.handleFilterpanelCancel=n=>{this.dsoFilterpanelCancel.emit({originalEvent:n})};this.mode="vrk";this.filterpanelOpen=false;this.overlayOpen=false;this.documentPanelOpen=false;this.mainSize="large";this.activeTab=undefined;this.documentPanelSize="large";this.mainPanelExpanded=false;this.mainPanelHidden=false;this.tabView=window.innerWidth<B}get filterpanelSlot(){return this.host.querySelector("[slot='filterpanel']")}get overlaySlot(){return this.host.querySelector("[slot='overlay']")}documentPanelOpenWatcher(n){if(n){this._checkMainPanelVisibility()}}filterpanelOpenWatcher(n){var t,e;if(!this.filterpanelSlot){console.warn("slot 'filterpanel' has not been set")}if(n){(t=this.filterpanel)===null||t===void 0?void 0:t.showModal()}else{(e=this.filterpanel)===null||e===void 0?void 0:e.close()}}overlayOpenWatcher(n){var t,e;if(!this.overlaySlot){console.warn("slot 'overlay' has not been set")}if(n){(t=this.overlay)===null||t===void 0?void 0:t.showModal()}else{(e=this.overlay)===null||e===void 0?void 0:e.close()}}async _checkMainPanelVisibility(){if(this.mode==="vdk"&&this.documentPanelOpen&&!this.mainPanelHidden&&this.mapElement instanceof HTMLDivElement&&(this.mapElement.clientWidth<=D+w+w&&!this.mainPanelExpanded||this.mapElement.clientWidth<=w+w&&this.mainPanelExpanded)){this.dsoMainPanelToggle.emit({hide:true})}}connectedCallback(){window.matchMedia(this.mediaCondition).addEventListener("change",this.changeListener)}componentDidLoad(){var n,t;if(this.filterpanelOpen&&this.filterpanelSlot){(n=this.filterpanel)===null||n===void 0?void 0:n.showModal()}if(this.overlayOpen&&this.overlaySlot){(t=this.overlay)===null||t===void 0?void 0:t.showModal()}if(this.mode==="vdk"&&this.mapElement instanceof HTMLDivElement){y.observe(this.mapElement)}}disconnectedCallback(){window.matchMedia(this.mediaCondition).removeEventListener("change",this.changeListener);if(this.mode==="vdk"&&this.mapElement){y.unobserve(this.mapElement)}}render(){const t=this.mode==="vdk"?l:r;return n(o,null,this.tabView&&n("nav",{key:"599c946e81dd4bf7c4604af1e7eee607795e258e",class:"dso-navbar"},n("ul",{key:"7ecbe856998a52c5930016d7aefbdcb89dd7df53",class:"dso-nav dso-nav-sub"},t.map((t=>n("li",{key:t,class:i({"dso-active":this.activeTab===t})},n("button",{type:"button",class:"dso-tertiary",onClick:()=>this.switchActiveTab(t)},d[t])))))),(!this.tabView||this.tabView&&(this.activeTab==="main"||this.activeTab==="search"))&&n(u,{key:"a4cc61bea78323dc334498b5712bfaaacad4ebf3",mode:this.mode,tabView:this.tabView,mainSize:this.mainSize,documentPanelOpen:this.documentPanelOpen,mainPanelExpanded:this.mainPanelExpanded,mainPanelHidden:this.mainPanelHidden,shrinkMain:this.emitShrinkMain,expandMain:this.emitExpandMain,toggleMainPanel:this.toggleMainPanel,dsoMainSizeChangeAnimationEnd:this.dsoMainSizeChangeAnimationEnd}),n(b,{key:"d4ef62bdabba185acac8aa979a1960f06b49badd",ref:n=>this.filterpanel=n,onApply:this.handleFilterpanelApply,onCancel:this.handleFilterpanelCancel}),(!this.tabView||this.tabView&&this.activeTab==="map")&&n("div",{key:"8e5589e2bafd04feec2cb33b10d56e2e295d47fb",class:"map",ref:n=>this.mapElement=n},n("slot",{key:"6ca0b6bd7950014a129d1667cf62d681d63beaa3",name:"map"})),(!this.tabView&&this.documentPanelOpen||this.tabView&&this.activeTab==="document")&&n(f,{key:"bc120705d49a3ebcb750b79f2838d1eb0179facd",tabView:this.tabView,panelSize:this.documentPanelSize,shrinkDocumentPanel:this.shrinkDocumentPanel,expandDocumentPanel:this.expandDocumentPanel,dsoDocumentPanelSizeChangeAnimationEnd:this.dsoDocumentPanelSizeChangeAnimationEnd}),n(m,{key:"a7458ef8892524572b84833571437ea1b6afbefa",ref:n=>this.overlay=n,dsoCloseOverlay:n=>this.dsoCloseOverlay.emit({originalEvent:n})}))}get host(){return s(this)}static get watchers(){return{documentPanelOpen:["documentPanelOpenWatcher"],filterpanelOpen:["filterpanelOpenWatcher"],overlayOpen:["overlayOpenWatcher"]}}};C.style=x;export{C as dso_viewer_grid};
|
|
2
|
-
//# sourceMappingURL=p-7da2df9d.entry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["viewerGridVrkTabs","viewerGridVdkTabs","viewerGridTabLabelMap","main","map","document","search","viewerGridSizeLabelMap","small","medium","large","SizingButton","className","onClick","label","icon","h","type","class","SizingButtons","shrink","expand","size","panelLabel","placement","buttons","push","toLocaleLowerCase","DocumentPanel","tabView","panelSize","shrinkDocumentPanel","expandDocumentPanel","dsoDocumentPanelSizeChangeAnimationEnd","onTransitionEnd","e","propertyName","emit","currentSize","name","ViewerGridFilterpanelButtons","onApply","onCancel","Filterpanel","ref","id","preventDefault","MainPanel","mode","mainSize","documentPanelOpen","mainPanelExpanded","mainPanelHidden","shrinkMain","expandMain","toggleMainPanel","dsoMainSizeChangeAnimationEnd","clsx","compact","contracted","expanded","collapsed","invisible","Overlay","dsoCloseOverlay","viewerGridCss","DsoViewerGridStyle0","resizeObserver","ResizeObserver","debounce","entry","shadowRoot","target","getRootNode","ShadowRoot","isDsoViewerGridComponent","host","_checkMainPanelVisibility","element","tagName","buttonWidth","tabViewBreakpoint","minMapElementWidth","ViewerGrid","this","mediaCondition","switchActiveTab","tab","dsoActiveTabSwitch","emitShrinkMain","dsoMainSizeChange","nextSize","emitExpandMain","dsoDocumentPanelSizeChange","documentPanelSize","mapElement","HTMLDivElement","clientWidth","dsoMainPanelToggle","hide","changeListener","largeScreen","matches","handleFilterpanelApply","mouseEvent","dsoFilterpanelApply","originalEvent","handleFilterpanelCancel","dsoFilterpanelCancel","window","innerWidth","filterpanelSlot","querySelector","overlaySlot","documentPanelOpenWatcher","open","filterpanelOpenWatcher","console","warn","_a","filterpanel","showModal","_b","close","overlayOpenWatcher","overlay","connectedCallback","matchMedia","addEventListener","componentDidLoad","filterpanelOpen","overlayOpen","observe","disconnectedCallback","removeEventListener","unobserve","render","tabLabels","Fragment","key","activeTab"],"sources":["src/components/viewer-grid/viewer-grid.interfaces.ts","src/components/viewer-grid/components/sizing-buttons.tsx","src/components/viewer-grid/components/document-panel.tsx","src/components/viewer-grid/components/viewer-grid-filterpanel-buttons.tsx","src/components/viewer-grid/components/filterpanel.tsx","src/components/viewer-grid/components/main-panel.tsx","src/components/viewer-grid/components/overlay.tsx","src/components/viewer-grid/viewer-grid.scss?tag=dso-viewer-grid&encapsulation=shadow","src/components/viewer-grid/viewer-grid.tsx"],"sourcesContent":["export interface ViewerGridChangeSizeEvent {\r\n currentSize: ViewerGridPanelSize;\r\n nextSize: ViewerGridPanelSize;\r\n}\r\n\r\nexport interface ViewerGridChangeSizeAnimationEndEvent {\r\n currentSize: ViewerGridPanelSize;\r\n}\r\n\r\nexport interface ViewerGridCloseOverlayEvent {\r\n originalEvent: MouseEvent | Event;\r\n}\r\n\r\nexport interface ViewerGridFilterpanelCancelEvent {\r\n originalEvent: MouseEvent | Event;\r\n}\r\n\r\nexport interface ViewerGridFilterpanelApplyEvent {\r\n originalEvent: MouseEvent | Event;\r\n}\r\n\r\nexport interface ViewerGridActiveTabSwitchEvent {\r\n tab: ViewerGridTab;\r\n}\r\n\r\nexport interface ViewerGridMainExpandEvent {\r\n expand: boolean;\r\n}\r\n\r\nexport interface ViewerGridMainToggleEvent {\r\n hide: boolean;\r\n}\r\n\r\nexport type ViewerGridMode = \"vdk\" | \"vrk\";\r\n\r\nexport type ViewerGridPanelSize = \"small\" | \"medium\" | \"large\";\r\n\r\nexport type ViewerGridLabelSizeMap = { [key in ViewerGridPanelSize]: string };\r\n\r\nexport const viewerGridVrkTabs = [\"main\", \"map\"] as const;\r\nexport type ViewerGridVrkTab = (typeof viewerGridVrkTabs)[number];\r\n\r\nexport const viewerGridVdkTabs = [\"search\", \"map\", \"document\"] as const;\r\nexport type ViewerGridVdkTab = (typeof viewerGridVdkTabs)[number];\r\n\r\nexport type ViewerGridTab = ViewerGridVrkTab | ViewerGridVdkTab;\r\n\r\nexport type ViewerGridTabLabelMap = { [key in ViewerGridTab]: string };\r\n\r\nexport const viewerGridTabLabelMap: ViewerGridTabLabelMap = {\r\n main: \"Hoofdpaneel\",\r\n map: \"Kaart\",\r\n document: \"Document\",\r\n search: \"Zoeken\",\r\n};\r\n\r\nexport const viewerGridSizeLabelMap: ViewerGridLabelSizeMap = {\r\n small: \"smal\",\r\n medium: \"middel\",\r\n large: \"breed\",\r\n};\r\n","import { FunctionalComponent, h } from \"@stencil/core\";\r\nimport { ViewerGridPanelSize, viewerGridSizeLabelMap } from \"../viewer-grid.interfaces\";\r\n\r\ninterface SizingButtonProp {\r\n className: string;\r\n onClick: any;\r\n label: string;\r\n icon: \"chevron-left\" | \"chevron-right\";\r\n}\r\n\r\nconst SizingButton: FunctionalComponent<SizingButtonProp> = ({ className, onClick, label, icon }) => (\r\n <button type=\"button\" class={className} onClick={onClick}>\r\n <span class=\"sr-only\">{label}</span>\r\n <dso-icon icon={icon}></dso-icon>\r\n </button>\r\n);\r\n\r\ninterface SizingButtonProps {\r\n panelLabel: string;\r\n size: ViewerGridPanelSize;\r\n expand: () => void;\r\n shrink: () => void;\r\n placement: \"left\" | \"right\";\r\n}\r\n\r\nexport const SizingButtons: FunctionalComponent<SizingButtonProps> = ({\r\n shrink,\r\n expand,\r\n size,\r\n panelLabel,\r\n placement,\r\n}) => {\r\n const buttons = [];\r\n\r\n if (size !== \"small\") {\r\n buttons.push(\r\n <SizingButton\r\n onClick={shrink}\r\n label={`${panelLabel} smaller maken`}\r\n icon={placement === \"right\" ? \"chevron-right\" : \"chevron-left\"}\r\n className=\"shrink\"\r\n />,\r\n );\r\n }\r\n\r\n if (size !== \"large\") {\r\n buttons.push(\r\n <SizingButton\r\n onClick={expand}\r\n label={`${panelLabel} breder maken`}\r\n icon={placement === \"right\" ? \"chevron-left\" : \"chevron-right\"}\r\n className=\"expand\"\r\n />,\r\n );\r\n }\r\n\r\n return (\r\n <div class=\"sizing-buttons\">\r\n <span class=\"sr-only\" aria-live=\"polite\" aria-atomic=\"true\">\r\n Breedte {panelLabel.toLocaleLowerCase()}: {viewerGridSizeLabelMap[size]}\r\n </span>\r\n {buttons}\r\n </div>\r\n );\r\n};\r\n","import { EventEmitter, FunctionalComponent, h } from \"@stencil/core\";\r\n\r\nimport { ViewerGridPanelSize, ViewerGridChangeSizeAnimationEndEvent } from \"../viewer-grid.interfaces\";\r\nimport { SizingButtons } from \"./sizing-buttons\";\r\n\r\nexport interface ViewerGridDocumentPanelProps {\r\n tabView: boolean;\r\n panelSize: ViewerGridPanelSize;\r\n shrinkDocumentPanel: () => void;\r\n expandDocumentPanel: () => void;\r\n dsoDocumentPanelSizeChangeAnimationEnd: EventEmitter<ViewerGridChangeSizeAnimationEndEvent>;\r\n}\r\n\r\nexport const DocumentPanel: FunctionalComponent<ViewerGridDocumentPanelProps> = ({\r\n tabView,\r\n panelSize,\r\n shrinkDocumentPanel,\r\n expandDocumentPanel,\r\n dsoDocumentPanelSizeChangeAnimationEnd,\r\n}) => (\r\n <div\r\n class=\"dso-document-panel\"\r\n onTransitionEnd={(e) => {\r\n if (e.propertyName === \"flex-basis\") {\r\n dsoDocumentPanelSizeChangeAnimationEnd.emit({ currentSize: panelSize });\r\n }\r\n }}\r\n >\r\n {!tabView && (\r\n <SizingButtons\r\n panelLabel=\"Documentpaneel\"\r\n size={panelSize}\r\n expand={expandDocumentPanel}\r\n shrink={shrinkDocumentPanel}\r\n placement=\"right\"\r\n />\r\n )}\r\n <div class=\"content\">\r\n <slot name=\"document-panel\" />\r\n </div>\r\n </div>\r\n);\r\n","import { FunctionalComponent, h } from \"@stencil/core\";\r\n\r\nexport interface ViewerGridFilterpanelButtonsProps {\r\n onApply: (mouseEvent: MouseEvent) => void;\r\n onCancel: (mouseEvent: MouseEvent) => void;\r\n}\r\n\r\nexport const ViewerGridFilterpanelButtons: FunctionalComponent<ViewerGridFilterpanelButtonsProps> = ({\r\n onApply,\r\n onCancel,\r\n}) => (\r\n <div class=\"filterpanel-buttons\">\r\n <button type=\"button\" class=\"cancel-button\" onClick={onCancel}>\r\n <span>Annuleren</span>\r\n </button>\r\n <button type=\"button\" class=\"apply-button\" onClick={onApply}>\r\n <span>Toepassen</span>\r\n <dso-icon icon=\"chevron-right\"></dso-icon>\r\n </button>\r\n </div>\r\n);\r\n","import { FunctionalComponent, h } from \"@stencil/core\";\r\n\r\nimport { ViewerGridFilterpanelButtons } from \"./viewer-grid-filterpanel-buttons\";\r\n\r\nexport interface ViewerGridFilterpanelProps {\r\n ref: ((element: HTMLDialogElement | undefined) => void) | undefined;\r\n onApply: (mouseEvent: MouseEvent) => void;\r\n onCancel: (event: MouseEvent | Event) => void;\r\n}\r\n\r\nexport const Filterpanel: FunctionalComponent<ViewerGridFilterpanelProps> = ({ ref, onApply, onCancel }) => (\r\n <dialog\r\n id=\"filterpanel\"\r\n class=\"filterpanel\"\r\n ref={ref}\r\n onCancel={(e) => {\r\n e.preventDefault();\r\n\r\n onCancel(e);\r\n }}\r\n >\r\n <h1>Uw keuzes</h1>\r\n <ViewerGridFilterpanelButtons onApply={onApply} onCancel={onCancel} />\r\n <slot name=\"filterpanel\" />\r\n <ViewerGridFilterpanelButtons onApply={onApply} onCancel={onCancel} />\r\n </dialog>\r\n);\r\n","import { EventEmitter, FunctionalComponent, h } from \"@stencil/core\";\r\nimport clsx from \"clsx\";\r\n\r\nimport { ViewerGridPanelSize, ViewerGridChangeSizeAnimationEndEvent, ViewerGridMode } from \"../viewer-grid.interfaces\";\r\nimport { SizingButtons } from \"./sizing-buttons\";\r\n\r\nexport interface ViewerGridMainPanelProps {\r\n mode: ViewerGridMode;\r\n tabView: boolean;\r\n mainSize: ViewerGridPanelSize;\r\n documentPanelOpen: boolean;\r\n mainPanelExpanded: boolean;\r\n mainPanelHidden: boolean;\r\n shrinkMain: () => void;\r\n expandMain: () => void;\r\n toggleMainPanel: () => void;\r\n dsoMainSizeChangeAnimationEnd: EventEmitter<ViewerGridChangeSizeAnimationEndEvent>;\r\n}\r\n\r\nexport const MainPanel: FunctionalComponent<ViewerGridMainPanelProps> = ({\r\n mode,\r\n tabView,\r\n mainSize,\r\n documentPanelOpen,\r\n mainPanelExpanded,\r\n mainPanelHidden,\r\n shrinkMain,\r\n expandMain,\r\n toggleMainPanel,\r\n dsoMainSizeChangeAnimationEnd,\r\n}) => (\r\n <div\r\n class={clsx(\"dso-main-panel\", {\r\n compact: !tabView && documentPanelOpen && !mainPanelExpanded,\r\n contracted: !tabView && !documentPanelOpen && !mainPanelExpanded && mode === \"vdk\",\r\n expanded: !tabView && documentPanelOpen && mainPanelExpanded,\r\n collapsed: mainPanelHidden,\r\n })}\r\n onTransitionEnd={(e) => {\r\n if (e.propertyName === \"flex-basis\") {\r\n dsoMainSizeChangeAnimationEnd.emit({ currentSize: mainSize });\r\n }\r\n }}\r\n >\r\n {!tabView &&\r\n ((mode === \"vrk\" && (\r\n <SizingButtons\r\n panelLabel=\"Hoofdpaneel\"\r\n size={mainSize}\r\n expand={expandMain}\r\n shrink={shrinkMain}\r\n placement=\"left\"\r\n />\r\n )) ||\r\n (mode === \"vdk\" && documentPanelOpen && (\r\n <div class=\"toggle-button\">\r\n <button type=\"button\" onClick={toggleMainPanel}>\r\n <span class=\"sr-only\">Zoeken paneel {mainPanelHidden ? \"tonen\" : \"verbergen\"}</span>\r\n <dso-icon icon={mainPanelHidden ? \"chevron-right\" : \"chevron-left\"}></dso-icon>\r\n </button>\r\n </div>\r\n )))}\r\n <div class={clsx(\"content\", { invisible: mainPanelHidden })}>\r\n <slot name=\"main\" />\r\n </div>\r\n </div>\r\n);\r\n","import { FunctionalComponent, h } from \"@stencil/core\";\r\n\r\nexport interface ViewerGridOverlayProps {\r\n ref: ((element: HTMLDialogElement | undefined) => void) | undefined;\r\n dsoCloseOverlay: (event: MouseEvent | Event) => void;\r\n}\r\n\r\nexport const Overlay: FunctionalComponent<ViewerGridOverlayProps> = ({ ref, dsoCloseOverlay }) => (\r\n <dialog\r\n class=\"overlay\"\r\n ref={ref}\r\n onCancel={(e) => {\r\n e.preventDefault();\r\n\r\n dsoCloseOverlay(e);\r\n }}\r\n >\r\n <button type=\"button\" class=\"overlay-close-button\" onClick={dsoCloseOverlay}>\r\n <dso-icon icon=\"times\"></dso-icon>\r\n <span class=\"sr-only\">sluiten</span>\r\n </button>\r\n <slot name=\"overlay\" />\r\n </dialog>\r\n);\r\n","@use \"~dso-toolkit/src/components/grid\" as css-grid;\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/zindex\";\r\n@use \"~dso-toolkit/src/components/button\";\r\n@use \"~dso-toolkit/src/components/headings\";\r\n@use \"~dso-toolkit/src/components/navbar\";\r\n\r\n@use \"viewer-grid.variables\" as core-viewer-grid-variables;\r\n\r\n@include utilities.box-sizing();\r\n\r\n:host([mode=\"vdk\"]) {\r\n .overlay {\r\n height: calc(100% - units.$u4);\r\n margin-block: units.$u2;\r\n margin-inline: auto units.$u2;\r\n }\r\n}\r\n\r\nbutton {\r\n @include button.element();\r\n}\r\n\r\n.sr-only {\r\n @include utilities.sr-only();\r\n}\r\n\r\n.shrink,\r\n.expand,\r\n.overlay-close-button {\r\n @include button.tertiary($modifiers: false);\r\n\r\n &:hover {\r\n cursor: pointer;\r\n }\r\n}\r\n\r\n.overlay-close-button {\r\n position: absolute;\r\n top: units.$u1;\r\n right: css-grid.$grid-gutter-width * 0.5;\r\n}\r\n\r\n.content.invisible {\r\n visibility: hidden;\r\n}\r\n\r\n.dso-main-panel,\r\n.dso-document-panel {\r\n .content {\r\n height: 100%;\r\n padding: 0 css-grid.$grid-gutter-width * 0.5;\r\n }\r\n}\r\n\r\n.dso-main-panel {\r\n background-color: colors.$wit;\r\n flex-shrink: 0;\r\n flex-grow: 0;\r\n position: relative;\r\n transition:\r\n flex-basis core-viewer-grid-variables.$transition-time ease-in,\r\n max-width core-viewer-grid-variables.$transition-time ease-in,\r\n min-width core-viewer-grid-variables.$transition-time ease-in;\r\n z-index: zindex.$viewer-grid-main-panel;\r\n\r\n &.compact,\r\n &.expanded {\r\n &.collapsed {\r\n left: -432px;\r\n }\r\n }\r\n\r\n &.compact,\r\n &.contracted {\r\n flex-shrink: unset;\r\n flex-grow: unset;\r\n position: absolute;\r\n transition: none;\r\n }\r\n\r\n &.expanded.collapsed {\r\n position: absolute;\r\n height: 100%;\r\n }\r\n\r\n .dso-filterblok-address {\r\n font-weight: bold;\r\n margin: units.$u1 0;\r\n }\r\n\r\n .sizing-buttons,\r\n .toggle-button {\r\n left: calc(100% + 1px);\r\n transition: left core-viewer-grid-variables.$transition-time ease-in;\r\n padding: 0 units.$u1 * 0.5 units.$u1 * 0.5 0;\r\n\r\n button {\r\n border-bottom-right-radius: 4px;\r\n border-top-right-radius: 4px;\r\n }\r\n }\r\n}\r\n\r\n.dso-document-panel {\r\n background-color: colors.$wit;\r\n flex-shrink: 0;\r\n flex-grow: 0;\r\n position: relative;\r\n transition:\r\n flex-basis core-viewer-grid-variables.$transition-time ease-in,\r\n max-width core-viewer-grid-variables.$transition-time ease-in,\r\n min-width core-viewer-grid-variables.$transition-time ease-in;\r\n z-index: zindex.$viewer-grid-main-panel;\r\n\r\n .sizing-buttons {\r\n top: auto;\r\n bottom: core-viewer-grid-variables.$sizing-buttons-top;\r\n right: calc(100% + 1px);\r\n transition: right core-viewer-grid-variables.$transition-time ease-in;\r\n padding: 0 0 units.$u1 * 0.5 units.$u1 * 0.5;\r\n\r\n button {\r\n border-bottom-left-radius: 4px;\r\n border-top-left-radius: 4px;\r\n }\r\n }\r\n}\r\n\r\n.sizing-buttons,\r\n.toggle-button {\r\n overflow-x: hidden;\r\n position: absolute;\r\n top: core-viewer-grid-variables.$sizing-buttons-top;\r\n width: core-viewer-grid-variables.$resize-button-size + units.$u1 * 0.5;\r\n z-index: zindex.$viewer-grid-sizing-buttons;\r\n\r\n button {\r\n @include button.secondary($modifiers: false, $icon-only: true);\r\n @include button.map-focus();\r\n\r\n border: 0;\r\n padding: 8px;\r\n border-radius: 0;\r\n box-shadow: 0 1px units.$u1 * 0.5 0 rgba(0, 0, 0, 0.4);\r\n flex: 0 0 100%;\r\n height: core-viewer-grid-variables.$resize-button-size;\r\n min-width: auto;\r\n width: core-viewer-grid-variables.$resize-button-size;\r\n\r\n &:hover {\r\n dso-icon {\r\n color: colors.$wit;\r\n }\r\n }\r\n }\r\n}\r\n\r\n.map {\r\n height: 100%;\r\n width: 100%;\r\n overflow: hidden;\r\n position: relative;\r\n}\r\n\r\n.filterpanel,\r\n.overlay {\r\n background-color: colors.$wit;\r\n border: 0;\r\n height: 100%;\r\n margin-block: 0;\r\n max-height: 100vh;\r\n overflow-y: auto;\r\n z-index: zindex.$viewer-grid-main-panel + 1;\r\n}\r\n\r\n.filterpanel {\r\n padding: units.$u1 css-grid.$grid-gutter-width * 0.5;\r\n left: 0;\r\n\r\n @media screen and (max-width: core-viewer-grid-variables.$filterpanel-width) {\r\n width: 100vw;\r\n\r\n &::before {\r\n display: none !important;\r\n }\r\n }\r\n\r\n h1 {\r\n @include headings.base();\r\n @include headings.margin-large();\r\n @include headings.h1();\r\n }\r\n}\r\n\r\n.overlay {\r\n padding: units.$u5 css-grid.$grid-gutter-width * 0.5 units.$u1;\r\n right: 0;\r\n width: core-viewer-grid-variables.$overlay-width;\r\n\r\n &::backdrop {\r\n background-color: rgba(0, 0, 0, 0.5);\r\n }\r\n\r\n @media screen and (max-width: core-viewer-grid-variables.$overlay-width) {\r\n width: 100vw;\r\n }\r\n}\r\n\r\n.filterpanel-buttons {\r\n text-align: right;\r\n\r\n .cancel-button {\r\n @include button.secondary($modifiers: false);\r\n @include button.small();\r\n }\r\n\r\n .apply-button {\r\n @include button.primary($modifiers: false);\r\n @include button.small();\r\n }\r\n\r\n .cancel-button + .apply-button {\r\n margin-left: units.$u2;\r\n }\r\n}\r\n\r\n@media screen and (min-width: #{media-query-breakpoints.$screen-sm-min + units.$u5}) {\r\n :host([main-size=\"small\"]) .dso-main-panel,\r\n :host([document-panel-size=\"small\"]) .dso-document-panel {\r\n flex-basis: core-viewer-grid-variables.$small;\r\n min-width: 0;\r\n max-width: core-viewer-grid-variables.$small;\r\n\r\n @media screen and (max-width: core-viewer-grid-variables.$small) {\r\n flex-basis: 100vw;\r\n max-width: 100vw;\r\n min-width: 0;\r\n transition: none;\r\n }\r\n }\r\n\r\n :host([main-size=\"medium\"]) .dso-main-panel,\r\n :host([document-panel-size=\"medium\"]) .dso-document-panel {\r\n flex-basis: core-viewer-grid-variables.$medium;\r\n min-width: core-viewer-grid-variables.$small;\r\n max-width: core-viewer-grid-variables.$medium;\r\n\r\n @media screen and (max-width: core-viewer-grid-variables.$medium) {\r\n flex-basis: 100vw;\r\n max-width: 100vw;\r\n min-width: core-viewer-grid-variables.$small;\r\n transition: none;\r\n }\r\n }\r\n\r\n :host([main-size=\"large\"]) .dso-main-panel,\r\n :host([document-panel-size=\"large\"]) .dso-document-panel {\r\n flex-basis: core-viewer-grid-variables.$large;\r\n min-width: core-viewer-grid-variables.$large-min;\r\n max-width: core-viewer-grid-variables.$large-max;\r\n\r\n @media screen and (max-width: core-viewer-grid-variables.$large-min) {\r\n flex-basis: 100vw;\r\n max-width: 100vw;\r\n min-width: core-viewer-grid-variables.$large-min;\r\n transition: none;\r\n }\r\n }\r\n\r\n :host {\r\n display: flex;\r\n height: 100vh;\r\n overflow: hidden;\r\n position: relative;\r\n\r\n .dso-main-panel.compact,\r\n .dso-main-panel.expanded {\r\n flex-basis: unset;\r\n min-width: unset;\r\n max-width: unset;\r\n width: 440px;\r\n\r\n .content {\r\n height: auto;\r\n overflow-y: auto;\r\n }\r\n }\r\n }\r\n\r\n .dso-main-panel,\r\n .dso-document-panel {\r\n box-shadow: units.$u1 * 0.25 0 units.$u1 0 rgba(0, 0, 0, 0.4);\r\n\r\n .content {\r\n overflow-y: auto;\r\n }\r\n }\r\n\r\n .filterpanel {\r\n box-shadow: 2px 0 5px colors.$grijs-60;\r\n margin-inline: 0 auto;\r\n max-width: core-viewer-grid-variables.$filterpanel-max-width;\r\n width: calc(100vw - 40px);\r\n\r\n &::before {\r\n content: \"\";\r\n display: block;\r\n position: fixed;\r\n top: 0;\r\n bottom: 0;\r\n right: 0;\r\n left: core-viewer-grid-variables.$filterpanel-max-width;\r\n background-color: rgba(0, 0, 0, 0.5);\r\n\r\n @media screen and (max-width: #{core-viewer-grid-variables.$filterpanel-max-width + 40px}) {\r\n left: auto;\r\n width: 40px;\r\n }\r\n }\r\n }\r\n\r\n .overlay {\r\n box-shadow: -2px 0 5px colors.$grijs-60;\r\n margin-inline: auto 0;\r\n }\r\n}\r\n\r\n@media screen and (max-width: #{media-query-breakpoints.$screen-xs-max + units.$u5 + 0.99}) {\r\n @include navbar.root();\r\n\r\n .dso-navbar {\r\n padding-inline: units.$u2;\r\n }\r\n\r\n .dso-nav {\r\n @include navbar.nav-border();\r\n\r\n display: flex;\r\n gap: units.$u2;\r\n margin-block-start: 0;\r\n width: calc(100vw - units.$u4);\r\n }\r\n\r\n .dso-tertiary {\r\n @include button.tertiary($modifiers: false);\r\n\r\n font-weight: 300;\r\n }\r\n\r\n .filterpanel,\r\n .overlay {\r\n margin-inline: 0;\r\n max-width: 100vw;\r\n top: 0;\r\n width: 100vw;\r\n }\r\n}\r\n","import { Component, Element, Event, EventEmitter, Fragment, Method, Prop, State, Watch, h } from \"@stencil/core\";\r\nimport clsx from \"clsx\";\r\nimport debounce from \"debounce\";\r\n\r\nimport { DocumentPanel, Filterpanel, MainPanel, Overlay } from \"./components\";\r\nimport {\r\n ViewerGridPanelSize,\r\n ViewerGridVdkTab,\r\n ViewerGridVrkTab,\r\n ViewerGridChangeSizeAnimationEndEvent,\r\n ViewerGridChangeSizeEvent,\r\n ViewerGridCloseOverlayEvent,\r\n ViewerGridFilterpanelApplyEvent,\r\n ViewerGridFilterpanelCancelEvent,\r\n ViewerGridMainExpandEvent,\r\n ViewerGridMainToggleEvent,\r\n ViewerGridActiveTabSwitchEvent,\r\n ViewerGridMode,\r\n viewerGridTabLabelMap,\r\n viewerGridVdkTabs,\r\n viewerGridVrkTabs,\r\n ViewerGridTab,\r\n} from \"./viewer-grid.interfaces\";\r\n\r\nconst resizeObserver = new ResizeObserver(\r\n debounce(([entry]) => {\r\n const shadowRoot = entry?.target.getRootNode();\r\n if (shadowRoot instanceof ShadowRoot && isDsoViewerGridComponent(shadowRoot.host)) {\r\n shadowRoot.host._checkMainPanelVisibility();\r\n }\r\n }, 50),\r\n);\r\n\r\nfunction isDsoViewerGridComponent(element: Element): element is HTMLDsoViewerGridElement {\r\n return element.tagName === \"DSO-VIEWER-GRID\";\r\n}\r\n\r\nconst buttonWidth = 40;\r\n\r\nconst tabViewBreakpoint = 768 + buttonWidth;\r\n\r\nconst minMapElementWidth = 440;\r\n\r\n/**\r\n * @slot main\r\n * @slot map\r\n * @slot filterpanel\r\n * @slot overlay\r\n * @slot document-panel - VDK only\r\n */\r\n@Component({\r\n tag: \"dso-viewer-grid\",\r\n styleUrl: \"viewer-grid.scss\",\r\n shadow: true,\r\n})\r\nexport class ViewerGrid {\r\n private mediaCondition = `(min-width: ${tabViewBreakpoint}px)`;\r\n\r\n private mapElement?: HTMLDivElement;\r\n\r\n /**\r\n * VRK or VDK implementation.\r\n */\r\n @Prop({ reflect: true })\r\n mode: ViewerGridMode = \"vrk\";\r\n\r\n /**\r\n * Set to true when filterpanel should show.\r\n */\r\n @Prop({ reflect: true })\r\n filterpanelOpen = false;\r\n\r\n /**\r\n * Set to true when overlay should show.\r\n */\r\n @Prop({ reflect: true })\r\n overlayOpen = false;\r\n\r\n /**\r\n * **VDK only.** Set to true when document panel should show.\r\n */\r\n @Prop({ reflect: true })\r\n documentPanelOpen = false;\r\n\r\n /**\r\n * Size of the panel when component loads.\r\n *\r\n * Default size is `large`.\r\n */\r\n @Prop({ reflect: true })\r\n mainSize: ViewerGridPanelSize = \"large\";\r\n\r\n /**\r\n * Set active tab in tab view.\r\n */\r\n @Prop()\r\n activeTab?: ViewerGridVdkTab | ViewerGridVrkTab;\r\n\r\n /**\r\n * **VDK only.** Size of the panel when component loads.\r\n *\r\n * Default size is `large`.\r\n */\r\n @Prop({ reflect: true })\r\n documentPanelSize: ViewerGridPanelSize = \"large\";\r\n\r\n /**\r\n * **VDK only.** Set to show main panel expanded.\r\n */\r\n @Prop()\r\n mainPanelExpanded = false;\r\n\r\n /**\r\n * **VDK only.** Set to hide the main panel.\r\n */\r\n @Prop()\r\n mainPanelHidden = false;\r\n\r\n /**\r\n * Emitted when user wants to close the overlay.\r\n */\r\n @Event()\r\n dsoCloseOverlay!: EventEmitter<ViewerGridCloseOverlayEvent>;\r\n\r\n /**\r\n * Emitted when user cancels filterpanel.\r\n */\r\n @Event()\r\n dsoFilterpanelCancel!: EventEmitter<ViewerGridFilterpanelCancelEvent>;\r\n\r\n /**\r\n * Emitted when user applies filterpanel options.\r\n */\r\n @Event()\r\n dsoFilterpanelApply!: EventEmitter<ViewerGridFilterpanelApplyEvent>;\r\n\r\n /**\r\n * Emitted when user applies filterpanel options.\r\n */\r\n @Event()\r\n dsoActiveTabSwitch!: EventEmitter<ViewerGridActiveTabSwitchEvent>;\r\n\r\n /**\r\n * Emitted on interaction with sizing buttons.\r\n */\r\n @Event()\r\n dsoMainSizeChange!: EventEmitter<ViewerGridChangeSizeEvent>;\r\n\r\n /**\r\n * Emitted after main size animation.\r\n */\r\n @Event()\r\n dsoMainSizeChangeAnimationEnd!: EventEmitter<ViewerGridChangeSizeAnimationEndEvent>;\r\n\r\n /**\r\n * **VDK only.** Emitted on interaction with sizing buttons.\r\n */\r\n @Event()\r\n dsoDocumentPanelSizeChange!: EventEmitter<ViewerGridChangeSizeEvent>;\r\n\r\n /**\r\n * **VDK only.** Emitted after main size animation.\r\n */\r\n @Event()\r\n dsoDocumentPanelSizeChangeAnimationEnd!: EventEmitter<ViewerGridChangeSizeAnimationEndEvent>;\r\n\r\n /**\r\n * **VDK only.** Emitted when the user wants to expand the main panel.\r\n */\r\n @Event()\r\n dsoMainPanelExpand!: EventEmitter<ViewerGridMainExpandEvent>;\r\n\r\n /**\r\n * **VDK only.** Emitted when the user toggles the visibility of the main panel.\r\n *\r\n * Also emitted by scripting when the panels do not fit anymore.\r\n */\r\n @Event()\r\n dsoMainPanelToggle!: EventEmitter<ViewerGridMainToggleEvent>;\r\n\r\n @Element()\r\n host!: HTMLDsoViewerGridElement;\r\n\r\n @State()\r\n tabView = window.innerWidth < tabViewBreakpoint;\r\n\r\n private filterpanel: HTMLDialogElement | undefined;\r\n\r\n private get filterpanelSlot() {\r\n return this.host.querySelector(\"[slot='filterpanel']\");\r\n }\r\n\r\n private get overlaySlot() {\r\n return this.host.querySelector(\"[slot='overlay']\");\r\n }\r\n\r\n private overlay: HTMLDialogElement | undefined;\r\n\r\n @Watch(\"documentPanelOpen\")\r\n documentPanelOpenWatcher(open: boolean) {\r\n if (open) {\r\n this._checkMainPanelVisibility();\r\n }\r\n }\r\n\r\n @Watch(\"filterpanelOpen\")\r\n filterpanelOpenWatcher(open: boolean) {\r\n if (!this.filterpanelSlot) {\r\n console.warn(\"slot 'filterpanel' has not been set\");\r\n }\r\n\r\n if (open) {\r\n this.filterpanel?.showModal();\r\n } else {\r\n this.filterpanel?.close();\r\n }\r\n }\r\n\r\n @Watch(\"overlayOpen\")\r\n overlayOpenWatcher(open: boolean) {\r\n if (!this.overlaySlot) {\r\n console.warn(\"slot 'overlay' has not been set\");\r\n }\r\n\r\n if (open) {\r\n this.overlay?.showModal();\r\n } else {\r\n this.overlay?.close();\r\n }\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n @Method()\r\n async _checkMainPanelVisibility() {\r\n if (\r\n this.mode === \"vdk\" &&\r\n this.documentPanelOpen &&\r\n !this.mainPanelHidden &&\r\n this.mapElement instanceof HTMLDivElement &&\r\n ((this.mapElement.clientWidth <= minMapElementWidth + buttonWidth + buttonWidth && !this.mainPanelExpanded) ||\r\n (this.mapElement.clientWidth <= buttonWidth + buttonWidth && this.mainPanelExpanded))\r\n ) {\r\n this.dsoMainPanelToggle.emit({\r\n hide: true,\r\n });\r\n }\r\n }\r\n\r\n private switchActiveTab = (tab: ViewerGridTab) => {\r\n this.dsoActiveTabSwitch.emit({\r\n tab,\r\n });\r\n };\r\n\r\n private emitShrinkMain = () => {\r\n this.dsoMainSizeChange.emit({\r\n currentSize: this.mainSize,\r\n nextSize: this.mainSize === \"large\" ? \"medium\" : \"small\",\r\n });\r\n };\r\n\r\n private emitExpandMain = () => {\r\n this.dsoMainSizeChange.emit({\r\n currentSize: this.mainSize,\r\n nextSize: this.mainSize === \"small\" ? \"medium\" : \"large\",\r\n });\r\n };\r\n\r\n private shrinkDocumentPanel = () => {\r\n this.dsoDocumentPanelSizeChange.emit({\r\n currentSize: this.documentPanelSize,\r\n nextSize: this.documentPanelSize === \"large\" ? \"medium\" : \"small\",\r\n });\r\n };\r\n\r\n private expandDocumentPanel = () => {\r\n this.dsoDocumentPanelSizeChange.emit({\r\n currentSize: this.documentPanelSize,\r\n nextSize: this.documentPanelSize === \"small\" ? \"medium\" : \"large\",\r\n });\r\n };\r\n\r\n private toggleMainPanel = () => {\r\n if (\r\n this.mapElement instanceof HTMLDivElement &&\r\n this.mapElement.clientWidth <= minMapElementWidth + buttonWidth + buttonWidth\r\n ) {\r\n this.mainSize = \"small\";\r\n }\r\n\r\n this.dsoMainPanelToggle.emit({\r\n hide: !this.mainPanelHidden,\r\n });\r\n };\r\n\r\n private changeListener = (largeScreen: MediaQueryListEvent) => (this.tabView = !largeScreen.matches);\r\n\r\n private handleFilterpanelApply = (mouseEvent: MouseEvent | Event) => {\r\n this.dsoFilterpanelApply.emit({ originalEvent: mouseEvent });\r\n };\r\n\r\n private handleFilterpanelCancel = (mouseEvent: MouseEvent | Event) => {\r\n this.dsoFilterpanelCancel.emit({ originalEvent: mouseEvent });\r\n };\r\n\r\n connectedCallback() {\r\n window.matchMedia(this.mediaCondition).addEventListener(\"change\", this.changeListener);\r\n }\r\n\r\n componentDidLoad() {\r\n if (this.filterpanelOpen && this.filterpanelSlot) {\r\n this.filterpanel?.showModal();\r\n }\r\n\r\n if (this.overlayOpen && this.overlaySlot) {\r\n this.overlay?.showModal();\r\n }\r\n\r\n if (this.mode === \"vdk\" && this.mapElement instanceof HTMLDivElement) {\r\n resizeObserver.observe(this.mapElement);\r\n }\r\n }\r\n\r\n disconnectedCallback() {\r\n window.matchMedia(this.mediaCondition).removeEventListener(\"change\", this.changeListener);\r\n\r\n if (this.mode === \"vdk\" && this.mapElement) {\r\n resizeObserver.unobserve(this.mapElement);\r\n }\r\n }\r\n\r\n render() {\r\n const tabLabels = this.mode === \"vdk\" ? viewerGridVdkTabs : viewerGridVrkTabs;\r\n\r\n return (\r\n <>\r\n {this.tabView && (\r\n <nav class=\"dso-navbar\">\r\n <ul class=\"dso-nav dso-nav-sub\">\r\n {tabLabels.map((tab) => (\r\n <li key={tab} class={clsx({ \"dso-active\": this.activeTab === tab })}>\r\n <button type=\"button\" class=\"dso-tertiary\" onClick={() => this.switchActiveTab(tab)}>\r\n {viewerGridTabLabelMap[tab]}\r\n </button>\r\n </li>\r\n ))}\r\n </ul>\r\n </nav>\r\n )}\r\n {(!this.tabView || (this.tabView && (this.activeTab === \"main\" || this.activeTab === \"search\"))) && (\r\n <MainPanel\r\n mode={this.mode}\r\n tabView={this.tabView}\r\n mainSize={this.mainSize}\r\n documentPanelOpen={this.documentPanelOpen}\r\n mainPanelExpanded={this.mainPanelExpanded}\r\n mainPanelHidden={this.mainPanelHidden}\r\n shrinkMain={this.emitShrinkMain}\r\n expandMain={this.emitExpandMain}\r\n toggleMainPanel={this.toggleMainPanel}\r\n dsoMainSizeChangeAnimationEnd={this.dsoMainSizeChangeAnimationEnd}\r\n ></MainPanel>\r\n )}\r\n <Filterpanel\r\n ref={(element) => (this.filterpanel = element)}\r\n onApply={this.handleFilterpanelApply}\r\n onCancel={this.handleFilterpanelCancel}\r\n ></Filterpanel>\r\n {(!this.tabView || (this.tabView && this.activeTab === \"map\")) && (\r\n <div class=\"map\" ref={(element) => (this.mapElement = element)}>\r\n <slot name=\"map\" />\r\n </div>\r\n )}\r\n {((!this.tabView && this.documentPanelOpen) || (this.tabView && this.activeTab === \"document\")) && (\r\n <DocumentPanel\r\n tabView={this.tabView}\r\n panelSize={this.documentPanelSize}\r\n shrinkDocumentPanel={this.shrinkDocumentPanel}\r\n expandDocumentPanel={this.expandDocumentPanel}\r\n dsoDocumentPanelSizeChangeAnimationEnd={this.dsoDocumentPanelSizeChangeAnimationEnd}\r\n ></DocumentPanel>\r\n )}\r\n <Overlay\r\n ref={(element) => (this.overlay = element)}\r\n dsoCloseOverlay={(e) => this.dsoCloseOverlay.emit({ originalEvent: e })}\r\n ></Overlay>\r\n </>\r\n );\r\n }\r\n}\r\n"],"mappings":"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"}
|