@dso-toolkit/core 58.1.0 → 58.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/{clsx.m-b81c6b86.js → clsx-fd0bee58.js} +1 -1
- package/dist/{esm/clsx.m-25174a58.js.map → cjs/clsx-fd0bee58.js.map} +1 -1
- package/dist/cjs/{create-identifier-6ee2a08b.js → create-identifier-5900c27b.js} +1 -1
- package/dist/cjs/create-identifier-5900c27b.js.map +1 -0
- package/dist/cjs/dso-accordion-section.cjs.entry.js +1 -1
- 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-accordion.cjs.entry.js.map +1 -1
- package/dist/cjs/dso-action-list-item.cjs.entry.js +1 -1
- 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-action-list.cjs.entry.js.map +1 -1
- package/dist/cjs/dso-alert_5.cjs.entry.js +9 -9
- package/dist/cjs/dso-alert_5.cjs.entry.js.map +1 -1
- package/dist/cjs/dso-annotation-output_3.cjs.entry.js +2 -2
- package/dist/cjs/dso-annotation-output_3.cjs.entry.js.map +1 -1
- package/dist/cjs/dso-attachments-counter.cjs.entry.js +1 -1
- package/dist/cjs/dso-attachments-counter.cjs.entry.js.map +1 -1
- package/dist/cjs/dso-autosuggest.cjs.entry.js +2 -2
- package/dist/cjs/dso-autosuggest.cjs.entry.js.map +1 -1
- package/dist/cjs/dso-banner.cjs.entry.js +3 -3
- package/dist/cjs/dso-banner.cjs.entry.js.map +1 -1
- package/dist/cjs/dso-card-container.cjs.entry.js +1 -1
- 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.cjs.entry.js +3 -2
- package/dist/cjs/dso-date-picker.cjs.entry.js.map +1 -1
- package/dist/cjs/dso-dropdown-menu.cjs.entry.js +3 -3
- package/dist/cjs/dso-dropdown-menu.cjs.entry.js.map +1 -1
- package/dist/cjs/dso-expandable.cjs.entry.js +3 -3
- package/dist/cjs/dso-expandable.cjs.entry.js.map +1 -1
- package/dist/cjs/dso-header.cjs.entry.js +5 -5
- package/dist/cjs/dso-header.cjs.entry.js.map +1 -1
- package/dist/cjs/dso-helpcenter-panel.cjs.entry.js +3 -3
- 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 +1 -1
- package/dist/cjs/dso-icon.cjs.entry.js.map +1 -1
- package/dist/cjs/dso-image-overlay.cjs.entry.js +3 -3
- package/dist/cjs/dso-image-overlay.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-list-button.cjs.entry.js +5 -5
- package/dist/cjs/dso-list-button.cjs.entry.js.map +1 -1
- package/dist/cjs/dso-map-base-layers.cjs.entry.js +1 -1
- package/dist/cjs/dso-map-base-layers.cjs.entry.js.map +1 -1
- package/dist/cjs/dso-map-controls.cjs.entry.js +1 -1
- package/dist/cjs/dso-map-controls.cjs.entry.js.map +1 -1
- package/dist/cjs/dso-map-overlays.cjs.entry.js +1 -1
- package/dist/cjs/dso-map-overlays.cjs.entry.js.map +1 -1
- package/dist/cjs/dso-modal.cjs.entry.js +1 -1
- 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 +1 -1
- package/dist/cjs/dso-progress-bar.cjs.entry.js.map +1 -1
- package/dist/cjs/dso-progress-indicator.cjs.entry.js +1 -1
- package/dist/cjs/dso-progress-indicator.cjs.entry.js.map +1 -1
- package/dist/cjs/dso-responsive-element.cjs.entry.js +1 -1
- package/dist/cjs/dso-responsive-element.cjs.entry.js.map +1 -1
- package/dist/cjs/dso-scrollable.cjs.entry.js +3 -3
- package/dist/cjs/dso-scrollable.cjs.entry.js.map +1 -1
- package/dist/cjs/dso-table.cjs.entry.js +3 -3
- package/dist/cjs/dso-table.cjs.entry.js.map +1 -1
- package/dist/cjs/dso-toggletip.cjs.entry.js +2 -2
- package/dist/cjs/dso-toggletip.cjs.entry.js.map +1 -1
- package/dist/cjs/dso-toolkit.cjs.js +2 -5
- package/dist/cjs/dso-toolkit.cjs.js.map +1 -1
- package/dist/cjs/dso-tooltip.cjs.entry.js +5 -5
- package/dist/cjs/dso-tooltip.cjs.entry.js.map +1 -1
- package/dist/cjs/dso-tree-view.cjs.entry.js +4 -4
- package/dist/cjs/dso-tree-view.cjs.entry.js.map +1 -1
- package/dist/cjs/dso-viewer-grid.cjs.entry.js +3 -3
- package/dist/cjs/dso-viewer-grid.cjs.entry.js.map +1 -1
- package/dist/cjs/dsot-document-component-demo.cjs.entry.js +1 -1
- package/dist/cjs/dsot-document-component-demo.cjs.entry.js.map +1 -1
- package/dist/cjs/{focus-trap.esm-a5b7273f.js → focus-trap.esm-b6bba312.js} +245 -97
- package/dist/cjs/focus-trap.esm-b6bba312.js.map +1 -0
- package/dist/cjs/{has-overflow-d7baff1e.js → has-overflow-27e20400.js} +1 -1
- package/dist/cjs/has-overflow-27e20400.js.map +1 -0
- package/dist/cjs/{index-d4003ee3.js → index-d46ec033.js} +91 -19
- package/dist/cjs/index-d46ec033.js.map +1 -0
- package/dist/cjs/{index.esm-0e935715.js → index.esm-970bc106.js} +49 -16
- package/dist/cjs/index.esm-970bc106.js.map +1 -0
- package/dist/cjs/{is-modified-event-dcab03a0.js → is-modified-event-ccd748ea.js} +1 -1
- package/dist/cjs/is-modified-event-ccd748ea.js.map +1 -0
- package/dist/cjs/loader.cjs.js +2 -11
- package/dist/cjs/loader.cjs.js.map +1 -1
- package/dist/collection/collection-manifest.json +45 -45
- package/dist/collection/components/accordion/accordion.js +6 -3
- package/dist/collection/components/accordion/accordion.js.map +1 -1
- package/dist/collection/components/accordion/components/accordion-section.js +8 -4
- package/dist/collection/components/accordion/components/accordion-section.js.map +1 -1
- package/dist/collection/components/annotation-button/annotation-button.js +2 -1
- package/dist/collection/components/annotation-button/annotation-button.js.map +1 -1
- package/dist/collection/components/annotation-output/annotation-output.js +2 -1
- package/dist/collection/components/annotation-output/annotation-output.js.map +1 -1
- package/dist/collection/components/autosuggest/autosuggest.js +5 -3
- package/dist/collection/components/autosuggest/autosuggest.js.map +1 -1
- package/dist/collection/components/card/card.js +4 -2
- package/dist/collection/components/card/card.js.map +1 -1
- package/dist/collection/components/card-container/card-container.js +2 -1
- package/dist/collection/components/card-container/card-container.js.map +1 -1
- package/dist/collection/components/date-picker/date-picker.js +18 -9
- package/dist/collection/components/date-picker/date-picker.js.map +1 -1
- package/dist/collection/components/date-picker/date-utils.js +1 -0
- package/dist/collection/components/date-picker/date-utils.js.map +1 -1
- package/dist/collection/components/document-component/document-component.css +1 -1
- package/dist/collection/components/document-component/document-component.js +6 -3
- package/dist/collection/components/document-component/document-component.js.map +1 -1
- package/dist/collection/components/expandable/expandable.js +2 -1
- package/dist/collection/components/expandable/expandable.js.map +1 -1
- package/dist/collection/components/header/header.js +4 -2
- package/dist/collection/components/header/header.js.map +1 -1
- package/dist/collection/components/info/info.js +2 -1
- package/dist/collection/components/info/info.js.map +1 -1
- package/dist/collection/components/info-button/info-button.js +4 -2
- package/dist/collection/components/info-button/info-button.js.map +1 -1
- package/dist/collection/components/label/label.js +4 -2
- package/dist/collection/components/label/label.js.map +1 -1
- package/dist/collection/components/list-button/list-button.js +4 -2
- package/dist/collection/components/list-button/list-button.js.map +1 -1
- package/dist/collection/components/map-base-layers/map-base-layers.js +4 -2
- package/dist/collection/components/map-base-layers/map-base-layers.js.map +1 -1
- package/dist/collection/components/map-controls/map-controls.js +12 -6
- package/dist/collection/components/map-controls/map-controls.js.map +1 -1
- package/dist/collection/components/map-overlays/map-overlays.js +4 -2
- package/dist/collection/components/map-overlays/map-overlays.js.map +1 -1
- package/dist/collection/components/modal/modal.js +2 -1
- package/dist/collection/components/modal/modal.js.map +1 -1
- package/dist/collection/components/ozon-content/ozon-content.css +5 -5
- package/dist/collection/components/ozon-content/ozon-content.js +4 -2
- package/dist/collection/components/ozon-content/ozon-content.js.map +1 -1
- package/dist/collection/components/pagination/pagination.js +2 -1
- package/dist/collection/components/pagination/pagination.js.map +1 -1
- package/dist/collection/components/responsive-element/responsive-element.js +6 -3
- package/dist/collection/components/responsive-element/responsive-element.js.map +1 -1
- package/dist/collection/components/scrollable/scrollable.js +4 -2
- package/dist/collection/components/scrollable/scrollable.js.map +1 -1
- package/dist/collection/components/selectable/selectable.css +1 -1
- package/dist/collection/components/selectable/selectable.js +4 -2
- package/dist/collection/components/selectable/selectable.js.map +1 -1
- package/dist/collection/components/slide-toggle/slide-toggle.js +2 -1
- package/dist/collection/components/slide-toggle/slide-toggle.js.map +1 -1
- package/dist/collection/components/toggletip/toggletip.js +1 -1
- package/dist/collection/components/toggletip/toggletip.js.map +1 -1
- package/dist/collection/components/tooltip/tooltip.css +1 -3
- package/dist/collection/components/tooltip/tooltip.js +4 -2
- package/dist/collection/components/tooltip/tooltip.js.map +1 -1
- package/dist/collection/components/tree-view/tree-view.js +14 -7
- package/dist/collection/components/tree-view/tree-view.js.map +1 -1
- package/dist/collection/components/viewer-grid/viewer-grid.js +10 -5
- package/dist/collection/components/viewer-grid/viewer-grid.js.map +1 -1
- package/dist/components/alert.js +1 -1
- package/dist/components/alert.js.map +1 -1
- package/dist/components/annotation-button.js.map +1 -1
- package/dist/components/annotation-output.js.map +1 -1
- package/dist/components/badge.js +1 -1
- package/dist/components/badge.js.map +1 -1
- package/dist/components/{clsx.m.js → clsx.js} +1 -1
- package/dist/components/clsx.js.map +1 -0
- package/dist/components/create-identifier.js.map +1 -1
- package/dist/components/document-component.js +1 -1
- package/dist/components/document-component.js.map +1 -1
- package/dist/components/dropdown-menu.js.map +1 -1
- package/dist/components/dso-accordion-section.js.map +1 -1
- package/dist/components/dso-accordion.js.map +1 -1
- package/dist/components/dso-action-list-item.js.map +1 -1
- package/dist/components/dso-action-list.js.map +1 -1
- package/dist/components/dso-attachments-counter.js.map +1 -1
- package/dist/components/dso-autosuggest.js +1 -1
- package/dist/components/dso-autosuggest.js.map +1 -1
- package/dist/components/dso-banner.js +1 -1
- package/dist/components/dso-banner.js.map +1 -1
- package/dist/components/dso-card-container.js.map +1 -1
- package/dist/components/dso-card.js +1 -1
- package/dist/components/dso-card.js.map +1 -1
- package/dist/components/dso-date-picker.js +1 -0
- 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.map +1 -1
- package/dist/components/dso-highlight-box.js +1 -1
- package/dist/components/dso-highlight-box.js.map +1 -1
- package/dist/components/dso-image-overlay.js.map +1 -1
- package/dist/components/dso-list-button.js +1 -1
- package/dist/components/dso-list-button.js.map +1 -1
- package/dist/components/dso-map-base-layers.js.map +1 -1
- package/dist/components/dso-map-controls.js.map +1 -1
- package/dist/components/dso-map-overlays.js.map +1 -1
- package/dist/components/dso-modal.js.map +1 -1
- package/dist/components/dso-pagination.js.map +1 -1
- package/dist/components/dso-progress-bar.js.map +1 -1
- package/dist/components/dso-table.js.map +1 -1
- package/dist/components/dso-toggletip.js +1 -1
- package/dist/components/dso-toggletip.js.map +1 -1
- package/dist/components/dso-tree-view.js +1 -1
- package/dist/components/dso-tree-view.js.map +1 -1
- package/dist/components/dso-viewer-grid.js +1 -1
- package/dist/components/dso-viewer-grid.js.map +1 -1
- 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/focus-trap.esm.js +244 -96
- package/dist/components/focus-trap.esm.js.map +1 -1
- package/dist/components/has-overflow.js.map +1 -1
- package/dist/components/icon.js.map +1 -1
- package/dist/components/index.d.ts +6 -0
- package/dist/components/index.esm.js +48 -16
- package/dist/components/index.esm.js.map +1 -1
- package/dist/components/index.js +1 -1
- package/dist/components/info-button.js +1 -1
- package/dist/components/info-button.js.map +1 -1
- package/dist/components/info.js.map +1 -1
- package/dist/components/is-modified-event.js.map +1 -1
- package/dist/components/label.js +1 -1
- package/dist/components/label.js.map +1 -1
- package/dist/components/ozon-content.js +2 -2
- package/dist/components/ozon-content.js.map +1 -1
- package/dist/components/progress-indicator.js.map +1 -1
- package/dist/components/responsive-element.js.map +1 -1
- package/dist/components/scrollable.js +1 -1
- 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.map +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/p-0bac5eea.entry.js +2 -0
- package/dist/dso-toolkit/p-0bac5eea.entry.js.map +1 -0
- package/dist/dso-toolkit/{p-bc9e3037.entry.js → p-0e095af8.entry.js} +2 -2
- package/dist/dso-toolkit/p-0e095af8.entry.js.map +1 -0
- package/dist/dso-toolkit/p-1521d319.js +6 -0
- package/dist/dso-toolkit/p-1521d319.js.map +1 -0
- package/dist/dso-toolkit/{p-1c721290.entry.js → p-169e3931.entry.js} +2 -2
- package/dist/dso-toolkit/p-169e3931.entry.js.map +1 -0
- package/dist/dso-toolkit/{p-4bc67e5c.entry.js → p-298453a9.entry.js} +2 -2
- package/dist/dso-toolkit/p-298453a9.entry.js.map +1 -0
- package/dist/dso-toolkit/{p-2ccbf58d.entry.js → p-3631ce14.entry.js} +2 -2
- package/dist/dso-toolkit/p-3631ce14.entry.js.map +1 -0
- package/dist/dso-toolkit/p-3ca5b6f4.js +3 -0
- package/dist/dso-toolkit/p-3ca5b6f4.js.map +1 -0
- package/dist/dso-toolkit/{p-3cbf8b97.entry.js → p-41066f6f.entry.js} +2 -2
- package/dist/dso-toolkit/p-41066f6f.entry.js.map +1 -0
- package/dist/dso-toolkit/{p-22baee8e.entry.js → p-42ba2c81.entry.js} +2 -2
- package/dist/dso-toolkit/p-42ba2c81.entry.js.map +1 -0
- package/dist/dso-toolkit/p-48d76094.entry.js +2 -0
- package/dist/dso-toolkit/p-48d76094.entry.js.map +1 -0
- package/dist/dso-toolkit/{p-4e86089d.entry.js → p-4ace5655.entry.js} +2 -2
- package/dist/dso-toolkit/p-4ace5655.entry.js.map +1 -0
- package/dist/dso-toolkit/{p-745b6678.entry.js → p-59fe2479.entry.js} +2 -2
- package/dist/dso-toolkit/p-59fe2479.entry.js.map +1 -0
- package/dist/dso-toolkit/p-5c5e43d3.entry.js +2 -0
- package/dist/dso-toolkit/p-5c5e43d3.entry.js.map +1 -0
- package/dist/dso-toolkit/{p-e69d7e62.entry.js → p-5c976ac9.entry.js} +2 -2
- package/dist/dso-toolkit/p-5c976ac9.entry.js.map +1 -0
- package/dist/dso-toolkit/{p-a00c4003.entry.js → p-60301d53.entry.js} +2 -2
- package/dist/dso-toolkit/{p-a00c4003.entry.js.map → p-60301d53.entry.js.map} +1 -1
- package/dist/dso-toolkit/{p-7a6be9c1.entry.js → p-6af09f64.entry.js} +2 -2
- package/dist/dso-toolkit/p-6af09f64.entry.js.map +1 -0
- package/dist/dso-toolkit/{p-5ee79846.entry.js → p-6f533d1a.entry.js} +2 -2
- package/dist/dso-toolkit/p-6f533d1a.entry.js.map +1 -0
- package/dist/dso-toolkit/{p-f21e4ccc.entry.js → p-755e55cf.entry.js} +2 -2
- package/dist/dso-toolkit/p-755e55cf.entry.js.map +1 -0
- package/dist/dso-toolkit/{p-420e0d23.entry.js → p-7ef42606.entry.js} +2 -2
- package/dist/dso-toolkit/p-7ef42606.entry.js.map +1 -0
- package/dist/dso-toolkit/p-86133aa5.js +6 -0
- package/dist/dso-toolkit/p-86133aa5.js.map +1 -0
- package/dist/dso-toolkit/{p-669c3743.entry.js → p-8af61320.entry.js} +2 -2
- package/dist/dso-toolkit/p-8af61320.entry.js.map +1 -0
- package/dist/dso-toolkit/{p-a4d423fd.entry.js → p-8bee65a1.entry.js} +2 -2
- package/dist/dso-toolkit/p-8bee65a1.entry.js.map +1 -0
- package/dist/dso-toolkit/{p-3d4308ba.entry.js → p-95b70498.entry.js} +2 -2
- package/dist/dso-toolkit/p-95b70498.entry.js.map +1 -0
- package/dist/dso-toolkit/{p-33df9903.js → p-9747c291.js} +1 -1
- package/dist/dso-toolkit/p-9747c291.js.map +1 -0
- package/dist/dso-toolkit/{p-5e5302ef.entry.js → p-9a3f154b.entry.js} +2 -2
- package/dist/dso-toolkit/p-9a3f154b.entry.js.map +1 -0
- package/dist/dso-toolkit/{p-4da2fa8b.entry.js → p-9dbe2931.entry.js} +2 -2
- package/dist/dso-toolkit/p-9dbe2931.entry.js.map +1 -0
- package/dist/dso-toolkit/{p-423fa057.entry.js → p-a2a82d7c.entry.js} +2 -2
- package/dist/dso-toolkit/p-a2a82d7c.entry.js.map +1 -0
- package/dist/dso-toolkit/{p-604eb60b.entry.js → p-a3dc08f4.entry.js} +2 -2
- package/dist/dso-toolkit/p-a3dc08f4.entry.js.map +1 -0
- package/dist/dso-toolkit/{p-712fca2c.entry.js → p-a63c82a4.entry.js} +2 -2
- package/dist/dso-toolkit/p-a63c82a4.entry.js.map +1 -0
- package/dist/dso-toolkit/{p-b34f24b4.entry.js → p-a7186c03.entry.js} +2 -2
- package/dist/dso-toolkit/p-a7186c03.entry.js.map +1 -0
- package/dist/dso-toolkit/{p-51f19c06.entry.js → p-aadd6311.entry.js} +2 -2
- package/dist/dso-toolkit/p-aadd6311.entry.js.map +1 -0
- package/dist/dso-toolkit/{p-440fc4ae.entry.js → p-b68ac725.entry.js} +2 -2
- package/dist/dso-toolkit/p-b68ac725.entry.js.map +1 -0
- package/dist/dso-toolkit/{p-6c543986.js → p-c19cfe3f.js} +1 -1
- package/dist/dso-toolkit/p-c19cfe3f.js.map +1 -0
- package/dist/dso-toolkit/{p-6a1980b4.js → p-c87b4d11.js} +1 -1
- package/dist/dso-toolkit/p-c87b4d11.js.map +1 -0
- package/dist/dso-toolkit/{p-0dffb117.entry.js → p-cbeb00cc.entry.js} +2 -2
- package/dist/dso-toolkit/p-cbeb00cc.entry.js.map +1 -0
- package/dist/dso-toolkit/{p-8b77b083.entry.js → p-cce85c45.entry.js} +2 -2
- package/dist/dso-toolkit/p-cce85c45.entry.js.map +1 -0
- package/dist/dso-toolkit/{p-98f7ede6.entry.js → p-d37a6c95.entry.js} +2 -2
- package/dist/dso-toolkit/p-d37a6c95.entry.js.map +1 -0
- package/dist/dso-toolkit/{p-54c65314.entry.js → p-d728a136.entry.js} +2 -2
- package/dist/dso-toolkit/p-d728a136.entry.js.map +1 -0
- package/dist/dso-toolkit/{p-bcecc743.entry.js → p-dae7d6f2.entry.js} +2 -2
- package/dist/dso-toolkit/p-dae7d6f2.entry.js.map +1 -0
- package/dist/dso-toolkit/{p-b9d441d5.entry.js → p-dc6e37dd.entry.js} +2 -2
- package/dist/dso-toolkit/p-dc6e37dd.entry.js.map +1 -0
- package/dist/dso-toolkit/{p-918bcdbe.entry.js → p-f08a5a06.entry.js} +2 -2
- package/dist/dso-toolkit/p-f08a5a06.entry.js.map +1 -0
- package/dist/dso-toolkit/{p-a1060560.entry.js → p-f0bc4a9d.entry.js} +2 -2
- package/dist/dso-toolkit/p-f0bc4a9d.entry.js.map +1 -0
- package/dist/dso-toolkit/p-fbb63820.entry.js +2 -0
- package/dist/dso-toolkit/p-fbb63820.entry.js.map +1 -0
- package/dist/dso-toolkit/{p-871bfdf9.js → p-fd7891ef.js} +1 -1
- package/dist/dso-toolkit/p-fd7891ef.js.map +1 -0
- package/dist/esm/{clsx.m-25174a58.js → clsx-93f1b68e.js} +1 -1
- package/dist/esm/clsx-93f1b68e.js.map +1 -0
- package/dist/esm/{create-identifier-51ee50c4.js → create-identifier-479a4699.js} +1 -1
- package/dist/esm/create-identifier-479a4699.js.map +1 -0
- package/dist/esm/dso-accordion-section.entry.js +1 -1
- package/dist/esm/dso-accordion-section.entry.js.map +1 -1
- package/dist/esm/dso-accordion.entry.js +1 -1
- package/dist/esm/dso-accordion.entry.js.map +1 -1
- package/dist/esm/dso-action-list-item.entry.js +1 -1
- 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-action-list.entry.js.map +1 -1
- package/dist/esm/dso-alert_5.entry.js +4 -4
- package/dist/esm/dso-alert_5.entry.js.map +1 -1
- package/dist/esm/dso-annotation-output_3.entry.js +2 -2
- package/dist/esm/dso-annotation-output_3.entry.js.map +1 -1
- package/dist/esm/dso-attachments-counter.entry.js +1 -1
- package/dist/esm/dso-attachments-counter.entry.js.map +1 -1
- package/dist/esm/dso-autosuggest.entry.js +2 -2
- package/dist/esm/dso-autosuggest.entry.js.map +1 -1
- package/dist/esm/dso-banner.entry.js +2 -2
- package/dist/esm/dso-banner.entry.js.map +1 -1
- package/dist/esm/dso-card-container.entry.js +1 -1
- package/dist/esm/dso-card-container.entry.js.map +1 -1
- package/dist/esm/dso-card.entry.js +3 -3
- package/dist/esm/dso-card.entry.js.map +1 -1
- package/dist/esm/dso-date-picker.entry.js +3 -2
- package/dist/esm/dso-date-picker.entry.js.map +1 -1
- package/dist/esm/dso-dropdown-menu.entry.js +3 -3
- package/dist/esm/dso-dropdown-menu.entry.js.map +1 -1
- 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 +3 -3
- package/dist/esm/dso-helpcenter-panel.entry.js.map +1 -1
- package/dist/esm/dso-highlight-box.entry.js +2 -2
- package/dist/esm/dso-highlight-box.entry.js.map +1 -1
- package/dist/esm/dso-icon.entry.js +1 -1
- package/dist/esm/dso-icon.entry.js.map +1 -1
- package/dist/esm/dso-image-overlay.entry.js +3 -3
- package/dist/esm/dso-image-overlay.entry.js.map +1 -1
- package/dist/esm/dso-info-button.entry.js +2 -2
- package/dist/esm/dso-info-button.entry.js.map +1 -1
- package/dist/esm/dso-info_2.entry.js +4 -4
- package/dist/esm/dso-info_2.entry.js.map +1 -1
- package/dist/esm/dso-list-button.entry.js +4 -4
- package/dist/esm/dso-list-button.entry.js.map +1 -1
- package/dist/esm/dso-map-base-layers.entry.js +1 -1
- package/dist/esm/dso-map-base-layers.entry.js.map +1 -1
- package/dist/esm/dso-map-controls.entry.js +1 -1
- package/dist/esm/dso-map-controls.entry.js.map +1 -1
- package/dist/esm/dso-map-overlays.entry.js +1 -1
- package/dist/esm/dso-map-overlays.entry.js.map +1 -1
- package/dist/esm/dso-modal.entry.js +1 -1
- 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 +1 -1
- package/dist/esm/dso-progress-bar.entry.js.map +1 -1
- package/dist/esm/dso-progress-indicator.entry.js +1 -1
- package/dist/esm/dso-progress-indicator.entry.js.map +1 -1
- package/dist/esm/dso-responsive-element.entry.js +1 -1
- package/dist/esm/dso-responsive-element.entry.js.map +1 -1
- package/dist/esm/dso-scrollable.entry.js +2 -2
- package/dist/esm/dso-scrollable.entry.js.map +1 -1
- package/dist/esm/dso-table.entry.js +3 -3
- package/dist/esm/dso-table.entry.js.map +1 -1
- package/dist/esm/dso-toggletip.entry.js +2 -2
- package/dist/esm/dso-toggletip.entry.js.map +1 -1
- package/dist/esm/dso-toolkit.js +3 -6
- 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 +2 -2
- package/dist/esm/dso-tree-view.entry.js.map +1 -1
- package/dist/esm/dso-viewer-grid.entry.js +2 -2
- package/dist/esm/dso-viewer-grid.entry.js.map +1 -1
- package/dist/esm/dsot-document-component-demo.entry.js +1 -1
- package/dist/esm/dsot-document-component-demo.entry.js.map +1 -1
- package/dist/esm/{focus-trap.esm-2a49a38f.js → focus-trap.esm-ad846bd4.js} +245 -97
- package/dist/esm/focus-trap.esm-ad846bd4.js.map +1 -0
- package/dist/esm/{has-overflow-814a0f4e.js → has-overflow-9f720f83.js} +1 -1
- package/dist/esm/has-overflow-9f720f83.js.map +1 -0
- package/dist/esm/{index-3e9ed0c5.js → index-f82ed648.js} +91 -19
- package/dist/esm/index-f82ed648.js.map +1 -0
- package/dist/esm/{index.esm-3d6c8190.js → index.esm-7e16e884.js} +49 -17
- package/dist/esm/index.esm-7e16e884.js.map +1 -0
- package/dist/esm/{is-modified-event-34370220.js → is-modified-event-587a0b0a.js} +1 -1
- package/dist/esm/is-modified-event-587a0b0a.js.map +1 -0
- package/dist/esm/loader.js +3 -12
- package/dist/esm/loader.js.map +1 -1
- package/dist/types/stencil-public-runtime.d.ts +14 -2
- package/loader/index.d.ts +1 -1
- package/package.json +13 -13
- package/dist/cjs/clsx.m-b81c6b86.js.map +0 -1
- package/dist/cjs/create-identifier-6ee2a08b.js.map +0 -1
- package/dist/cjs/focus-trap.esm-a5b7273f.js.map +0 -1
- package/dist/cjs/has-overflow-d7baff1e.js.map +0 -1
- package/dist/cjs/index-d4003ee3.js.map +0 -1
- package/dist/cjs/index.esm-0e935715.js.map +0 -1
- package/dist/cjs/is-modified-event-dcab03a0.js.map +0 -1
- package/dist/components/clsx.m.js.map +0 -1
- package/dist/dso-toolkit/p-0dffb117.entry.js.map +0 -1
- package/dist/dso-toolkit/p-14aa091d.entry.js +0 -2
- package/dist/dso-toolkit/p-14aa091d.entry.js.map +0 -1
- package/dist/dso-toolkit/p-1a1a43fd.js +0 -3
- package/dist/dso-toolkit/p-1a1a43fd.js.map +0 -1
- package/dist/dso-toolkit/p-1c721290.entry.js.map +0 -1
- package/dist/dso-toolkit/p-22baee8e.entry.js.map +0 -1
- package/dist/dso-toolkit/p-2ccbf58d.entry.js.map +0 -1
- package/dist/dso-toolkit/p-33df9903.js.map +0 -1
- package/dist/dso-toolkit/p-3cbf8b97.entry.js.map +0 -1
- package/dist/dso-toolkit/p-3d4308ba.entry.js.map +0 -1
- package/dist/dso-toolkit/p-420e0d23.entry.js.map +0 -1
- package/dist/dso-toolkit/p-423fa057.entry.js.map +0 -1
- package/dist/dso-toolkit/p-440fc4ae.entry.js.map +0 -1
- package/dist/dso-toolkit/p-4bc67e5c.entry.js.map +0 -1
- package/dist/dso-toolkit/p-4da2fa8b.entry.js.map +0 -1
- package/dist/dso-toolkit/p-4e86089d.entry.js.map +0 -1
- package/dist/dso-toolkit/p-51f19c06.entry.js.map +0 -1
- package/dist/dso-toolkit/p-54c65314.entry.js.map +0 -1
- package/dist/dso-toolkit/p-5950644a.js +0 -6
- package/dist/dso-toolkit/p-5950644a.js.map +0 -1
- package/dist/dso-toolkit/p-5e5302ef.entry.js.map +0 -1
- package/dist/dso-toolkit/p-5ee79846.entry.js.map +0 -1
- package/dist/dso-toolkit/p-604eb60b.entry.js.map +0 -1
- package/dist/dso-toolkit/p-669c3743.entry.js.map +0 -1
- package/dist/dso-toolkit/p-6a1980b4.js.map +0 -1
- package/dist/dso-toolkit/p-6c543986.js.map +0 -1
- package/dist/dso-toolkit/p-712fca2c.entry.js.map +0 -1
- package/dist/dso-toolkit/p-745b6678.entry.js.map +0 -1
- package/dist/dso-toolkit/p-7a6be9c1.entry.js.map +0 -1
- package/dist/dso-toolkit/p-871bfdf9.js.map +0 -1
- package/dist/dso-toolkit/p-8b77b083.entry.js.map +0 -1
- package/dist/dso-toolkit/p-8f8dd254.entry.js +0 -2
- package/dist/dso-toolkit/p-8f8dd254.entry.js.map +0 -1
- package/dist/dso-toolkit/p-918bcdbe.entry.js.map +0 -1
- package/dist/dso-toolkit/p-91963e3d.js +0 -6
- package/dist/dso-toolkit/p-91963e3d.js.map +0 -1
- package/dist/dso-toolkit/p-98f7ede6.entry.js.map +0 -1
- package/dist/dso-toolkit/p-a0798096.entry.js +0 -2
- package/dist/dso-toolkit/p-a0798096.entry.js.map +0 -1
- package/dist/dso-toolkit/p-a1060560.entry.js.map +0 -1
- package/dist/dso-toolkit/p-a4d423fd.entry.js.map +0 -1
- package/dist/dso-toolkit/p-b34f24b4.entry.js.map +0 -1
- package/dist/dso-toolkit/p-b911f052.entry.js +0 -2
- package/dist/dso-toolkit/p-b911f052.entry.js.map +0 -1
- package/dist/dso-toolkit/p-b9d441d5.entry.js.map +0 -1
- package/dist/dso-toolkit/p-bc9e3037.entry.js.map +0 -1
- package/dist/dso-toolkit/p-bcecc743.entry.js.map +0 -1
- package/dist/dso-toolkit/p-e69d7e62.entry.js.map +0 -1
- package/dist/dso-toolkit/p-f21e4ccc.entry.js.map +0 -1
- package/dist/esm/create-identifier-51ee50c4.js.map +0 -1
- package/dist/esm/focus-trap.esm-2a49a38f.js.map +0 -1
- package/dist/esm/has-overflow-814a0f4e.js.map +0 -1
- package/dist/esm/index-3e9ed0c5.js.map +0 -1
- package/dist/esm/index.esm-3d6c8190.js.map +0 -1
- package/dist/esm/is-modified-event-34370220.js.map +0 -1
- package/dist/esm/polyfills/css-shim.js +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread2","target","i","arguments","length","source","forEach","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","obj","value","_toPropertyKey","configurable","writable","_toPrimitive","input","hint","prim","Symbol","toPrimitive","undefined","res","call","TypeError","String","Number","arg","activeFocusTraps","activateTrap","trapStack","trap","activeTrap","pause","trapIndex","indexOf","splice","deactivateTrap","unpause","isSelectableInput","node","tagName","toLowerCase","select","isEscapeEvent","e","keyCode","isTabEvent","isKeyForward","shiftKey","isKeyBackward","delay","fn","setTimeout","findIndex","arr","idx","every","valueOrHandler","_len","params","Array","_key","getActualTarget","event","shadowRoot","composedPath","internalTrapStack","createFocusTrap","elements","userOptions","doc","document","config","returnFocusOnDeactivate","escapeDeactivates","delayInitialFocus","state","containers","containerGroups","tabbableGroups","nodeFocusedBeforeActivation","mostRecentlyFocusedNode","active","paused","delayInitialFocusTimer","getOption","configOverrideOptions","optionName","configOptionName","findContainerIndex","element","_ref","container","tabbableNodes","contains","includes","find","getNodeForOption","optionValue","_len2","_key2","Error","concat","querySelector","getInitialFocusNode","isFocusable","tabbableOptions","activeElement","firstTabbableGroup","firstTabbableNode","updateTabbableNodes","map","tabbable","focusableNodes","focusable","lastTabbableNode","nextTabbableNode","forward","nodeIdx","n","slice","isTabbable","reverse","group","tryFocus","focus","preventScroll","getReturnFocusNode","previousActiveElement","checkPointerDown","clickOutsideDeactivates","deactivate","returnFocus","allowOutsideClick","preventDefault","checkFocusIn","targetContained","Document","stopImmediatePropagation","checkKeyNav","isBackward","destinationNode","containerIndex","containerGroup","startOfGroupIndex","_ref2","destinationGroupIndex","destinationGroup","lastOfGroupIndex","_ref3","_destinationGroupIndex","_destinationGroup","checkKey","checkClick","addListeners","addEventListener","capture","passive","removeListeners","removeEventListener","checkDomRemoval","mutations","isFocusedNodeRemoved","some","mutation","removedNodes","from","mutationObserver","window","MutationObserver","updateObservedNodes","disconnect","observe","subtree","childList","activate","activateOptions","this","onActivate","onPostActivate","checkCanFocusTrap","finishActivation","then","deactivateOptions","options","onDeactivate","onPostDeactivate","checkCanReturnFocus","clearTimeout","finishDeactivation","pauseOptions","onPause","onPostPause","unpauseOptions","onUnpause","onPostUnpause","updateContainerElements","containerElements","elementsAsArray","Boolean"],"sources":["../../node_modules/focus-trap/dist/focus-trap.esm.js"],"sourcesContent":["/*!\n* focus-trap 7.4.3\n* @license MIT, https://github.com/focus-trap/focus-trap/blob/master/LICENSE\n*/\nimport { isFocusable, tabbable, focusable, isTabbable } from 'tabbable';\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n}\nfunction _defineProperty(obj, key, value) {\n key = _toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _toPrimitive(input, hint) {\n if (typeof input !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (typeof res !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\nfunction _toPropertyKey(arg) {\n var key = _toPrimitive(arg, \"string\");\n return typeof key === \"symbol\" ? key : String(key);\n}\n\nvar activeFocusTraps = {\n activateTrap: function activateTrap(trapStack, trap) {\n if (trapStack.length > 0) {\n var activeTrap = trapStack[trapStack.length - 1];\n if (activeTrap !== trap) {\n activeTrap.pause();\n }\n }\n var trapIndex = trapStack.indexOf(trap);\n if (trapIndex === -1) {\n trapStack.push(trap);\n } else {\n // move this existing trap to the front of the queue\n trapStack.splice(trapIndex, 1);\n trapStack.push(trap);\n }\n },\n deactivateTrap: function deactivateTrap(trapStack, trap) {\n var trapIndex = trapStack.indexOf(trap);\n if (trapIndex !== -1) {\n trapStack.splice(trapIndex, 1);\n }\n if (trapStack.length > 0) {\n trapStack[trapStack.length - 1].unpause();\n }\n }\n};\nvar isSelectableInput = function isSelectableInput(node) {\n return node.tagName && node.tagName.toLowerCase() === 'input' && typeof node.select === 'function';\n};\nvar isEscapeEvent = function isEscapeEvent(e) {\n return e.key === 'Escape' || e.key === 'Esc' || e.keyCode === 27;\n};\nvar isTabEvent = function isTabEvent(e) {\n return e.key === 'Tab' || e.keyCode === 9;\n};\n\n// checks for TAB by default\nvar isKeyForward = function isKeyForward(e) {\n return isTabEvent(e) && !e.shiftKey;\n};\n\n// checks for SHIFT+TAB by default\nvar isKeyBackward = function isKeyBackward(e) {\n return isTabEvent(e) && e.shiftKey;\n};\nvar delay = function delay(fn) {\n return setTimeout(fn, 0);\n};\n\n// Array.find/findIndex() are not supported on IE; this replicates enough\n// of Array.findIndex() for our needs\nvar findIndex = function findIndex(arr, fn) {\n var idx = -1;\n arr.every(function (value, i) {\n if (fn(value)) {\n idx = i;\n return false; // break\n }\n\n return true; // next\n });\n\n return idx;\n};\n\n/**\n * Get an option's value when it could be a plain value, or a handler that provides\n * the value.\n * @param {*} value Option's value to check.\n * @param {...*} [params] Any parameters to pass to the handler, if `value` is a function.\n * @returns {*} The `value`, or the handler's returned value.\n */\nvar valueOrHandler = function valueOrHandler(value) {\n for (var _len = arguments.length, params = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n params[_key - 1] = arguments[_key];\n }\n return typeof value === 'function' ? value.apply(void 0, params) : value;\n};\nvar getActualTarget = function getActualTarget(event) {\n // NOTE: If the trap is _inside_ a shadow DOM, event.target will always be the\n // shadow host. However, event.target.composedPath() will be an array of\n // nodes \"clicked\" from inner-most (the actual element inside the shadow) to\n // outer-most (the host HTML document). If we have access to composedPath(),\n // then use its first element; otherwise, fall back to event.target (and\n // this only works for an _open_ shadow DOM; otherwise,\n // composedPath()[0] === event.target always).\n return event.target.shadowRoot && typeof event.composedPath === 'function' ? event.composedPath()[0] : event.target;\n};\n\n// NOTE: this must be _outside_ `createFocusTrap()` to make sure all traps in this\n// current instance use the same stack if `userOptions.trapStack` isn't specified\nvar internalTrapStack = [];\nvar createFocusTrap = function createFocusTrap(elements, userOptions) {\n // SSR: a live trap shouldn't be created in this type of environment so this\n // should be safe code to execute if the `document` option isn't specified\n var doc = (userOptions === null || userOptions === void 0 ? void 0 : userOptions.document) || document;\n var trapStack = (userOptions === null || userOptions === void 0 ? void 0 : userOptions.trapStack) || internalTrapStack;\n var config = _objectSpread2({\n returnFocusOnDeactivate: true,\n escapeDeactivates: true,\n delayInitialFocus: true,\n isKeyForward: isKeyForward,\n isKeyBackward: isKeyBackward\n }, userOptions);\n var state = {\n // containers given to createFocusTrap()\n // @type {Array<HTMLElement>}\n containers: [],\n // list of objects identifying tabbable nodes in `containers` in the trap\n // NOTE: it's possible that a group has no tabbable nodes if nodes get removed while the trap\n // is active, but the trap should never get to a state where there isn't at least one group\n // with at least one tabbable node in it (that would lead to an error condition that would\n // result in an error being thrown)\n // @type {Array<{\n // container: HTMLElement,\n // tabbableNodes: Array<HTMLElement>, // empty if none\n // focusableNodes: Array<HTMLElement>, // empty if none\n // firstTabbableNode: HTMLElement|null,\n // lastTabbableNode: HTMLElement|null,\n // nextTabbableNode: (node: HTMLElement, forward: boolean) => HTMLElement|undefined\n // }>}\n containerGroups: [],\n // same order/length as `containers` list\n\n // references to objects in `containerGroups`, but only those that actually have\n // tabbable nodes in them\n // NOTE: same order as `containers` and `containerGroups`, but __not necessarily__\n // the same length\n tabbableGroups: [],\n nodeFocusedBeforeActivation: null,\n mostRecentlyFocusedNode: null,\n active: false,\n paused: false,\n // timer ID for when delayInitialFocus is true and initial focus in this trap\n // has been delayed during activation\n delayInitialFocusTimer: undefined\n };\n var trap; // eslint-disable-line prefer-const -- some private functions reference it, and its methods reference private functions, so we must declare here and define later\n\n /**\n * Gets a configuration option value.\n * @param {Object|undefined} configOverrideOptions If true, and option is defined in this set,\n * value will be taken from this object. Otherwise, value will be taken from base configuration.\n * @param {string} optionName Name of the option whose value is sought.\n * @param {string|undefined} [configOptionName] Name of option to use __instead of__ `optionName`\n * IIF `configOverrideOptions` is not defined. Otherwise, `optionName` is used.\n */\n var getOption = function getOption(configOverrideOptions, optionName, configOptionName) {\n return configOverrideOptions && configOverrideOptions[optionName] !== undefined ? configOverrideOptions[optionName] : config[configOptionName || optionName];\n };\n\n /**\n * Finds the index of the container that contains the element.\n * @param {HTMLElement} element\n * @param {Event} [event]\n * @returns {number} Index of the container in either `state.containers` or\n * `state.containerGroups` (the order/length of these lists are the same); -1\n * if the element isn't found.\n */\n var findContainerIndex = function findContainerIndex(element, event) {\n var composedPath = typeof (event === null || event === void 0 ? void 0 : event.composedPath) === 'function' ? event.composedPath() : undefined;\n // NOTE: search `containerGroups` because it's possible a group contains no tabbable\n // nodes, but still contains focusable nodes (e.g. if they all have `tabindex=-1`)\n // and we still need to find the element in there\n return state.containerGroups.findIndex(function (_ref) {\n var container = _ref.container,\n tabbableNodes = _ref.tabbableNodes;\n return container.contains(element) || ( // fall back to explicit tabbable search which will take into consideration any\n // web components if the `tabbableOptions.getShadowRoot` option was used for\n // the trap, enabling shadow DOM support in tabbable (`Node.contains()` doesn't\n // look inside web components even if open)\n composedPath === null || composedPath === void 0 ? void 0 : composedPath.includes(container)) || tabbableNodes.find(function (node) {\n return node === element;\n });\n });\n };\n\n /**\n * Gets the node for the given option, which is expected to be an option that\n * can be either a DOM node, a string that is a selector to get a node, `false`\n * (if a node is explicitly NOT given), or a function that returns any of these\n * values.\n * @param {string} optionName\n * @returns {undefined | false | HTMLElement | SVGElement} Returns\n * `undefined` if the option is not specified; `false` if the option\n * resolved to `false` (node explicitly not given); otherwise, the resolved\n * DOM node.\n * @throws {Error} If the option is set, not `false`, and is not, or does not\n * resolve to a node.\n */\n var getNodeForOption = function getNodeForOption(optionName) {\n var optionValue = config[optionName];\n if (typeof optionValue === 'function') {\n for (var _len2 = arguments.length, params = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n params[_key2 - 1] = arguments[_key2];\n }\n optionValue = optionValue.apply(void 0, params);\n }\n if (optionValue === true) {\n optionValue = undefined; // use default value\n }\n\n if (!optionValue) {\n if (optionValue === undefined || optionValue === false) {\n return optionValue;\n }\n // else, empty string (invalid), null (invalid), 0 (invalid)\n\n throw new Error(\"`\".concat(optionName, \"` was specified but was not a node, or did not return a node\"));\n }\n var node = optionValue; // could be HTMLElement, SVGElement, or non-empty string at this point\n\n if (typeof optionValue === 'string') {\n node = doc.querySelector(optionValue); // resolve to node, or null if fails\n if (!node) {\n throw new Error(\"`\".concat(optionName, \"` as selector refers to no known node\"));\n }\n }\n return node;\n };\n var getInitialFocusNode = function getInitialFocusNode() {\n var node = getNodeForOption('initialFocus');\n\n // false explicitly indicates we want no initialFocus at all\n if (node === false) {\n return false;\n }\n if (node === undefined || !isFocusable(node, config.tabbableOptions)) {\n // option not specified nor focusable: use fallback options\n if (findContainerIndex(doc.activeElement) >= 0) {\n node = doc.activeElement;\n } else {\n var firstTabbableGroup = state.tabbableGroups[0];\n var firstTabbableNode = firstTabbableGroup && firstTabbableGroup.firstTabbableNode;\n\n // NOTE: `fallbackFocus` option function cannot return `false` (not supported)\n node = firstTabbableNode || getNodeForOption('fallbackFocus');\n }\n }\n if (!node) {\n throw new Error('Your focus-trap needs to have at least one focusable element');\n }\n return node;\n };\n var updateTabbableNodes = function updateTabbableNodes() {\n state.containerGroups = state.containers.map(function (container) {\n var tabbableNodes = tabbable(container, config.tabbableOptions);\n\n // NOTE: if we have tabbable nodes, we must have focusable nodes; focusable nodes\n // are a superset of tabbable nodes\n var focusableNodes = focusable(container, config.tabbableOptions);\n return {\n container: container,\n tabbableNodes: tabbableNodes,\n focusableNodes: focusableNodes,\n firstTabbableNode: tabbableNodes.length > 0 ? tabbableNodes[0] : null,\n lastTabbableNode: tabbableNodes.length > 0 ? tabbableNodes[tabbableNodes.length - 1] : null,\n /**\n * Finds the __tabbable__ node that follows the given node in the specified direction,\n * in this container, if any.\n * @param {HTMLElement} node\n * @param {boolean} [forward] True if going in forward tab order; false if going\n * in reverse.\n * @returns {HTMLElement|undefined} The next tabbable node, if any.\n */\n nextTabbableNode: function nextTabbableNode(node) {\n var forward = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n // NOTE: If tabindex is positive (in order to manipulate the tab order separate\n // from the DOM order), this __will not work__ because the list of focusableNodes,\n // while it contains tabbable nodes, does not sort its nodes in any order other\n // than DOM order, because it can't: Where would you place focusable (but not\n // tabbable) nodes in that order? They have no order, because they aren't tabbale...\n // Support for positive tabindex is already broken and hard to manage (possibly\n // not supportable, TBD), so this isn't going to make things worse than they\n // already are, and at least makes things better for the majority of cases where\n // tabindex is either 0/unset or negative.\n // FYI, positive tabindex issue: https://github.com/focus-trap/focus-trap/issues/375\n var nodeIdx = focusableNodes.findIndex(function (n) {\n return n === node;\n });\n if (nodeIdx < 0) {\n return undefined;\n }\n if (forward) {\n return focusableNodes.slice(nodeIdx + 1).find(function (n) {\n return isTabbable(n, config.tabbableOptions);\n });\n }\n return focusableNodes.slice(0, nodeIdx).reverse().find(function (n) {\n return isTabbable(n, config.tabbableOptions);\n });\n }\n };\n });\n state.tabbableGroups = state.containerGroups.filter(function (group) {\n return group.tabbableNodes.length > 0;\n });\n\n // throw if no groups have tabbable nodes and we don't have a fallback focus node either\n if (state.tabbableGroups.length <= 0 && !getNodeForOption('fallbackFocus') // returning false not supported for this option\n ) {\n throw new Error('Your focus-trap must have at least one container with at least one tabbable node in it at all times');\n }\n };\n var tryFocus = function tryFocus(node) {\n if (node === false) {\n return;\n }\n if (node === doc.activeElement) {\n return;\n }\n if (!node || !node.focus) {\n tryFocus(getInitialFocusNode());\n return;\n }\n node.focus({\n preventScroll: !!config.preventScroll\n });\n state.mostRecentlyFocusedNode = node;\n if (isSelectableInput(node)) {\n node.select();\n }\n };\n var getReturnFocusNode = function getReturnFocusNode(previousActiveElement) {\n var node = getNodeForOption('setReturnFocus', previousActiveElement);\n return node ? node : node === false ? false : previousActiveElement;\n };\n\n // This needs to be done on mousedown and touchstart instead of click\n // so that it precedes the focus event.\n var checkPointerDown = function checkPointerDown(e) {\n var target = getActualTarget(e);\n if (findContainerIndex(target, e) >= 0) {\n // allow the click since it ocurred inside the trap\n return;\n }\n if (valueOrHandler(config.clickOutsideDeactivates, e)) {\n // immediately deactivate the trap\n trap.deactivate({\n // NOTE: by setting `returnFocus: false`, deactivate() will do nothing,\n // which will result in the outside click setting focus to the node\n // that was clicked (and if not focusable, to \"nothing\"); by setting\n // `returnFocus: true`, we'll attempt to re-focus the node originally-focused\n // on activation (or the configured `setReturnFocus` node), whether the\n // outside click was on a focusable node or not\n returnFocus: config.returnFocusOnDeactivate\n });\n return;\n }\n\n // This is needed for mobile devices.\n // (If we'll only let `click` events through,\n // then on mobile they will be blocked anyways if `touchstart` is blocked.)\n if (valueOrHandler(config.allowOutsideClick, e)) {\n // allow the click outside the trap to take place\n return;\n }\n\n // otherwise, prevent the click\n e.preventDefault();\n };\n\n // In case focus escapes the trap for some strange reason, pull it back in.\n var checkFocusIn = function checkFocusIn(e) {\n var target = getActualTarget(e);\n var targetContained = findContainerIndex(target, e) >= 0;\n\n // In Firefox when you Tab out of an iframe the Document is briefly focused.\n if (targetContained || target instanceof Document) {\n if (targetContained) {\n state.mostRecentlyFocusedNode = target;\n }\n } else {\n // escaped! pull it back in to where it just left\n e.stopImmediatePropagation();\n tryFocus(state.mostRecentlyFocusedNode || getInitialFocusNode());\n }\n };\n\n // Hijack key nav events on the first and last focusable nodes of the trap,\n // in order to prevent focus from escaping. If it escapes for even a\n // moment it can end up scrolling the page and causing confusion so we\n // kind of need to capture the action at the keydown phase.\n var checkKeyNav = function checkKeyNav(event) {\n var isBackward = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var target = getActualTarget(event);\n updateTabbableNodes();\n var destinationNode = null;\n if (state.tabbableGroups.length > 0) {\n // make sure the target is actually contained in a group\n // NOTE: the target may also be the container itself if it's focusable\n // with tabIndex='-1' and was given initial focus\n var containerIndex = findContainerIndex(target, event);\n var containerGroup = containerIndex >= 0 ? state.containerGroups[containerIndex] : undefined;\n if (containerIndex < 0) {\n // target not found in any group: quite possible focus has escaped the trap,\n // so bring it back into...\n if (isBackward) {\n // ...the last node in the last group\n destinationNode = state.tabbableGroups[state.tabbableGroups.length - 1].lastTabbableNode;\n } else {\n // ...the first node in the first group\n destinationNode = state.tabbableGroups[0].firstTabbableNode;\n }\n } else if (isBackward) {\n // REVERSE\n\n // is the target the first tabbable node in a group?\n var startOfGroupIndex = findIndex(state.tabbableGroups, function (_ref2) {\n var firstTabbableNode = _ref2.firstTabbableNode;\n return target === firstTabbableNode;\n });\n if (startOfGroupIndex < 0 && (containerGroup.container === target || isFocusable(target, config.tabbableOptions) && !isTabbable(target, config.tabbableOptions) && !containerGroup.nextTabbableNode(target, false))) {\n // an exception case where the target is either the container itself, or\n // a non-tabbable node that was given focus (i.e. tabindex is negative\n // and user clicked on it or node was programmatically given focus)\n // and is not followed by any other tabbable node, in which\n // case, we should handle shift+tab as if focus were on the container's\n // first tabbable node, and go to the last tabbable node of the LAST group\n startOfGroupIndex = containerIndex;\n }\n if (startOfGroupIndex >= 0) {\n // YES: then shift+tab should go to the last tabbable node in the\n // previous group (and wrap around to the last tabbable node of\n // the LAST group if it's the first tabbable node of the FIRST group)\n var destinationGroupIndex = startOfGroupIndex === 0 ? state.tabbableGroups.length - 1 : startOfGroupIndex - 1;\n var destinationGroup = state.tabbableGroups[destinationGroupIndex];\n destinationNode = destinationGroup.lastTabbableNode;\n } else if (!isTabEvent(event)) {\n // user must have customized the nav keys so we have to move focus manually _within_\n // the active group: do this based on the order determined by tabbable()\n destinationNode = containerGroup.nextTabbableNode(target, false);\n }\n } else {\n // FORWARD\n\n // is the target the last tabbable node in a group?\n var lastOfGroupIndex = findIndex(state.tabbableGroups, function (_ref3) {\n var lastTabbableNode = _ref3.lastTabbableNode;\n return target === lastTabbableNode;\n });\n if (lastOfGroupIndex < 0 && (containerGroup.container === target || isFocusable(target, config.tabbableOptions) && !isTabbable(target, config.tabbableOptions) && !containerGroup.nextTabbableNode(target))) {\n // an exception case where the target is the container itself, or\n // a non-tabbable node that was given focus (i.e. tabindex is negative\n // and user clicked on it or node was programmatically given focus)\n // and is not followed by any other tabbable node, in which\n // case, we should handle tab as if focus were on the container's\n // last tabbable node, and go to the first tabbable node of the FIRST group\n lastOfGroupIndex = containerIndex;\n }\n if (lastOfGroupIndex >= 0) {\n // YES: then tab should go to the first tabbable node in the next\n // group (and wrap around to the first tabbable node of the FIRST\n // group if it's the last tabbable node of the LAST group)\n var _destinationGroupIndex = lastOfGroupIndex === state.tabbableGroups.length - 1 ? 0 : lastOfGroupIndex + 1;\n var _destinationGroup = state.tabbableGroups[_destinationGroupIndex];\n destinationNode = _destinationGroup.firstTabbableNode;\n } else if (!isTabEvent(event)) {\n // user must have customized the nav keys so we have to move focus manually _within_\n // the active group: do this based on the order determined by tabbable()\n destinationNode = containerGroup.nextTabbableNode(target);\n }\n }\n } else {\n // no groups available\n // NOTE: the fallbackFocus option does not support returning false to opt-out\n destinationNode = getNodeForOption('fallbackFocus');\n }\n if (destinationNode) {\n if (isTabEvent(event)) {\n // since tab natively moves focus, we wouldn't have a destination node unless we\n // were on the edge of a container and had to move to the next/previous edge, in\n // which case we want to prevent default to keep the browser from moving focus\n // to where it normally would\n event.preventDefault();\n }\n tryFocus(destinationNode);\n }\n // else, let the browser take care of [shift+]tab and move the focus\n };\n\n var checkKey = function checkKey(event) {\n if (isEscapeEvent(event) && valueOrHandler(config.escapeDeactivates, event) !== false) {\n event.preventDefault();\n trap.deactivate();\n return;\n }\n if (config.isKeyForward(event) || config.isKeyBackward(event)) {\n checkKeyNav(event, config.isKeyBackward(event));\n }\n };\n var checkClick = function checkClick(e) {\n var target = getActualTarget(e);\n if (findContainerIndex(target, e) >= 0) {\n return;\n }\n if (valueOrHandler(config.clickOutsideDeactivates, e)) {\n return;\n }\n if (valueOrHandler(config.allowOutsideClick, e)) {\n return;\n }\n e.preventDefault();\n e.stopImmediatePropagation();\n };\n\n //\n // EVENT LISTENERS\n //\n\n var addListeners = function addListeners() {\n if (!state.active) {\n return;\n }\n\n // There can be only one listening focus trap at a time\n activeFocusTraps.activateTrap(trapStack, trap);\n\n // Delay ensures that the focused element doesn't capture the event\n // that caused the focus trap activation.\n state.delayInitialFocusTimer = config.delayInitialFocus ? delay(function () {\n tryFocus(getInitialFocusNode());\n }) : tryFocus(getInitialFocusNode());\n doc.addEventListener('focusin', checkFocusIn, true);\n doc.addEventListener('mousedown', checkPointerDown, {\n capture: true,\n passive: false\n });\n doc.addEventListener('touchstart', checkPointerDown, {\n capture: true,\n passive: false\n });\n doc.addEventListener('click', checkClick, {\n capture: true,\n passive: false\n });\n doc.addEventListener('keydown', checkKey, {\n capture: true,\n passive: false\n });\n return trap;\n };\n var removeListeners = function removeListeners() {\n if (!state.active) {\n return;\n }\n doc.removeEventListener('focusin', checkFocusIn, true);\n doc.removeEventListener('mousedown', checkPointerDown, true);\n doc.removeEventListener('touchstart', checkPointerDown, true);\n doc.removeEventListener('click', checkClick, true);\n doc.removeEventListener('keydown', checkKey, true);\n return trap;\n };\n\n //\n // MUTATION OBSERVER\n //\n\n var checkDomRemoval = function checkDomRemoval(mutations) {\n var isFocusedNodeRemoved = mutations.some(function (mutation) {\n var removedNodes = Array.from(mutation.removedNodes);\n return removedNodes.some(function (node) {\n return node === state.mostRecentlyFocusedNode;\n });\n });\n\n // If the currently focused is removed then browsers will move focus to the\n // <body> element. If this happens, try to move focus back into the trap.\n if (isFocusedNodeRemoved) {\n tryFocus(getInitialFocusNode());\n }\n };\n\n // Use MutationObserver - if supported - to detect if focused node is removed\n // from the DOM.\n var mutationObserver = typeof window !== 'undefined' && 'MutationObserver' in window ? new MutationObserver(checkDomRemoval) : undefined;\n var updateObservedNodes = function updateObservedNodes() {\n if (!mutationObserver) {\n return;\n }\n mutationObserver.disconnect();\n if (state.active && !state.paused) {\n state.containers.map(function (container) {\n mutationObserver.observe(container, {\n subtree: true,\n childList: true\n });\n });\n }\n };\n\n //\n // TRAP DEFINITION\n //\n\n trap = {\n get active() {\n return state.active;\n },\n get paused() {\n return state.paused;\n },\n activate: function activate(activateOptions) {\n if (state.active) {\n return this;\n }\n var onActivate = getOption(activateOptions, 'onActivate');\n var onPostActivate = getOption(activateOptions, 'onPostActivate');\n var checkCanFocusTrap = getOption(activateOptions, 'checkCanFocusTrap');\n if (!checkCanFocusTrap) {\n updateTabbableNodes();\n }\n state.active = true;\n state.paused = false;\n state.nodeFocusedBeforeActivation = doc.activeElement;\n onActivate === null || onActivate === void 0 ? void 0 : onActivate();\n var finishActivation = function finishActivation() {\n if (checkCanFocusTrap) {\n updateTabbableNodes();\n }\n addListeners();\n updateObservedNodes();\n onPostActivate === null || onPostActivate === void 0 ? void 0 : onPostActivate();\n };\n if (checkCanFocusTrap) {\n checkCanFocusTrap(state.containers.concat()).then(finishActivation, finishActivation);\n return this;\n }\n finishActivation();\n return this;\n },\n deactivate: function deactivate(deactivateOptions) {\n if (!state.active) {\n return this;\n }\n var options = _objectSpread2({\n onDeactivate: config.onDeactivate,\n onPostDeactivate: config.onPostDeactivate,\n checkCanReturnFocus: config.checkCanReturnFocus\n }, deactivateOptions);\n clearTimeout(state.delayInitialFocusTimer); // noop if undefined\n state.delayInitialFocusTimer = undefined;\n removeListeners();\n state.active = false;\n state.paused = false;\n updateObservedNodes();\n activeFocusTraps.deactivateTrap(trapStack, trap);\n var onDeactivate = getOption(options, 'onDeactivate');\n var onPostDeactivate = getOption(options, 'onPostDeactivate');\n var checkCanReturnFocus = getOption(options, 'checkCanReturnFocus');\n var returnFocus = getOption(options, 'returnFocus', 'returnFocusOnDeactivate');\n onDeactivate === null || onDeactivate === void 0 ? void 0 : onDeactivate();\n var finishDeactivation = function finishDeactivation() {\n delay(function () {\n if (returnFocus) {\n tryFocus(getReturnFocusNode(state.nodeFocusedBeforeActivation));\n }\n onPostDeactivate === null || onPostDeactivate === void 0 ? void 0 : onPostDeactivate();\n });\n };\n if (returnFocus && checkCanReturnFocus) {\n checkCanReturnFocus(getReturnFocusNode(state.nodeFocusedBeforeActivation)).then(finishDeactivation, finishDeactivation);\n return this;\n }\n finishDeactivation();\n return this;\n },\n pause: function pause(pauseOptions) {\n if (state.paused || !state.active) {\n return this;\n }\n var onPause = getOption(pauseOptions, 'onPause');\n var onPostPause = getOption(pauseOptions, 'onPostPause');\n state.paused = true;\n onPause === null || onPause === void 0 ? void 0 : onPause();\n removeListeners();\n updateObservedNodes();\n onPostPause === null || onPostPause === void 0 ? void 0 : onPostPause();\n return this;\n },\n unpause: function unpause(unpauseOptions) {\n if (!state.paused || !state.active) {\n return this;\n }\n var onUnpause = getOption(unpauseOptions, 'onUnpause');\n var onPostUnpause = getOption(unpauseOptions, 'onPostUnpause');\n state.paused = false;\n onUnpause === null || onUnpause === void 0 ? void 0 : onUnpause();\n updateTabbableNodes();\n addListeners();\n updateObservedNodes();\n onPostUnpause === null || onPostUnpause === void 0 ? void 0 : onPostUnpause();\n return this;\n },\n updateContainerElements: function updateContainerElements(containerElements) {\n var elementsAsArray = [].concat(containerElements).filter(Boolean);\n state.containers = elementsAsArray.map(function (element) {\n return typeof element === 'string' ? doc.querySelector(element) : element;\n });\n if (state.active) {\n updateTabbableNodes();\n }\n updateObservedNodes();\n return this;\n }\n };\n\n // initialize container elements\n trap.updateContainerElements(elements);\n return trap;\n};\n\nexport { createFocusTrap };\n//# sourceMappingURL=focus-trap.esm.js.map\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["listButtonCss","ListButton","watchManualCallback","this","manual","manualCount","stopManualCountInput","componentDidRender","undefined","manualInputWrapperElement","trap","createFocusTrap","escapeDeactivates","setReturnFocus","clickOutsideDeactivates","e","setCount","onDeactivate","onPostDeactivate","_a","manualInputButtonElement","focus","activate","deactivate","disconnectedCallback","handleOnChange","target","HTMLInputElement","valueAsNumber","stepValue","direction","count","newValue","isNewCountValid","dsoCountChange","emit","originalEvent","preventDefault","handleSelectClick","dsoSelectedChange","checked","startManualCountInput","min","max","Number","render","showButtonInputs","selected","h","class","clsx","disabled","onClick","id","type","value","name","label","htmlFor","sublabel","icon","tabIndex","readOnly","onSubmit","ref","element","hidden","onInput"],"sources":["./src/components/list-button/list-button.scss?tag=dso-list-button&encapsulation=shadow","./src/components/list-button/list-button.tsx"],"sourcesContent":["@use \"~dso-toolkit/src/variables/units\";\r\n@use \"~dso-toolkit/src/components/input-number\";\r\n@use \"~dso-toolkit/src/components/list-button\";\r\n@use \"~dso-toolkit/src/components/button\";\r\n@use \"~dso-toolkit/src/components/selectable\";\r\n@use \"~dso-toolkit/src/components/form-control\";\r\n@use \"~dso-toolkit/src/utilities\";\r\n\r\n@include utilities.box-sizing();\r\n\r\n:host {\r\n display: block;\r\n}\r\n\r\n.sr-only {\r\n @include utilities.sr-only();\r\n}\r\n\r\n.dso-manual-input-button {\r\n cursor: text;\r\n}\r\n\r\n.dso-tertiary {\r\n @include button.tertiary($modifiers: false);\r\n\r\n cursor: pointer;\r\n}\r\n\r\n.dso-input-number {\r\n @include input-number.root();\r\n}\r\n\r\n.dso-button-group {\r\n @include list-button.button-group(\".dso-input-number\", \".dso-list-button\");\r\n}\r\n\r\n.dso-selectable {\r\n @include selectable.root(\"dso-info\");\r\n\r\n label {\r\n font-weight: 700;\r\n }\r\n}\r\n\r\n.dso-list-button {\r\n @include button.base($modifiers: false);\r\n @include list-button.root();\r\n\r\n .dso-sublabel {\r\n padding-left: selectable.$size + units.$u1;\r\n }\r\n}\r\n\r\n.dso-list-button,\r\n.dso-button-group {\r\n + .dso-list-button,\r\n + .dso-button-group {\r\n @include list-button.sibling();\r\n }\r\n}\r\n\r\n.dso-input-wrapper {\r\n position: relative;\r\n\r\n .form-control {\r\n width: 9ch;\r\n }\r\n}\r\n\r\n.form-control {\r\n @include form-control.root();\r\n}\r\n\r\n.dso-manual-input-button[type=\"button\"] {\r\n background-color: transparent;\r\n border: 0;\r\n bottom: 0;\r\n left: 0;\r\n position: absolute;\r\n right: 0;\r\n top: 0;\r\n}\r\n\r\n.hidden {\r\n display: none !important;\r\n}\r\n","import { Component, ComponentInterface, h, Prop, Event, EventEmitter, State, Watch } from \"@stencil/core\";\r\nimport { ListButtonChangeEvent, ListButtonSelectedEvent } from \"./list-button.interfaces\";\r\n\r\nimport { createFocusTrap, FocusTrap } from \"focus-trap\";\r\nimport clsx from \"clsx\";\r\n\r\n@Component({\r\n tag: \"dso-list-button\",\r\n shadow: true,\r\n styleUrl: \"list-button.scss\",\r\n})\r\nexport class ListButton implements ComponentInterface {\r\n private trap?: FocusTrap;\r\n\r\n @State()\r\n private manualInputWrapperElement?: HTMLDivElement;\r\n\r\n private manualInputButtonElement?: HTMLButtonElement;\r\n\r\n @State()\r\n manualCount?: number;\r\n\r\n /**\r\n * The label of the List Button.\r\n */\r\n @Prop()\r\n label?: string;\r\n\r\n /**\r\n * The sublabel of the List Button.\r\n */\r\n @Prop()\r\n sublabel?: string;\r\n\r\n /**\r\n * When defined the count can show on the List Button.\r\n */\r\n @Prop()\r\n count?: number;\r\n\r\n /**\r\n * The minimum value.\r\n */\r\n @Prop()\r\n min?: string | number;\r\n\r\n /**\r\n * The maximum value.\r\n */\r\n @Prop()\r\n max?: string | number;\r\n\r\n /**\r\n * Whether the List Button is checked.\r\n */\r\n @Prop({ reflect: true })\r\n checked = false;\r\n\r\n /**\r\n * Whether the List Button is disabled.\r\n */\r\n @Prop({ reflect: true })\r\n disabled = false;\r\n\r\n /**\r\n * Allow user to directly input a value.\r\n *\r\n * Set to `false` to force users to use plus/minus buttons.\r\n */\r\n @Prop()\r\n manual = true;\r\n\r\n /**\r\n * Emitted when the user changes the count.\r\n */\r\n @Event()\r\n dsoCountChange!: EventEmitter<ListButtonChangeEvent>;\r\n\r\n /**\r\n * Emitted when the user activates the List Button itself.\r\n *\r\n * Does not fire when the user activates the count controls.\r\n */\r\n @Event()\r\n dsoSelectedChange!: EventEmitter<ListButtonSelectedEvent>;\r\n\r\n @Watch(\"manual\")\r\n watchManualCallback() {\r\n if (!this.manual && this.manualCount) {\r\n this.stopManualCountInput();\r\n }\r\n }\r\n\r\n componentDidRender(): void {\r\n if (this.manualCount !== undefined && this.manualInputWrapperElement && !this.trap) {\r\n this.trap = createFocusTrap(this.manualInputWrapperElement, {\r\n escapeDeactivates: true,\r\n setReturnFocus: false,\r\n\r\n clickOutsideDeactivates: (e) => {\r\n this.setCount(e);\r\n\r\n return true;\r\n },\r\n onDeactivate: () => this.stopManualCountInput(),\r\n onPostDeactivate: () => this.manualInputButtonElement?.focus(),\r\n }).activate();\r\n } else if (this.manualCount === undefined && this.trap) {\r\n this.trap?.deactivate();\r\n\r\n delete this.trap;\r\n }\r\n }\r\n\r\n disconnectedCallback(): void {\r\n this.trap?.deactivate();\r\n }\r\n\r\n private handleOnChange({ target }: Event): void {\r\n if (target instanceof HTMLInputElement) {\r\n this.manualCount = target.valueAsNumber;\r\n }\r\n }\r\n\r\n private stepValue(e: Event, direction: \"increment\" | \"decrement\"): void {\r\n if (typeof this.count === \"number\") {\r\n const newValue = direction === \"increment\" ? this.count + 1 : this.count - 1;\r\n\r\n if (this.isNewCountValid(newValue) === false) {\r\n return;\r\n }\r\n\r\n this.dsoCountChange.emit({\r\n originalEvent: e,\r\n count: newValue,\r\n });\r\n }\r\n }\r\n\r\n private setCount(e: Event): void {\r\n e.preventDefault();\r\n\r\n if (typeof this.manualCount === \"number\" && this.isNewCountValid(this.manualCount)) {\r\n this.dsoCountChange.emit({\r\n originalEvent: e,\r\n count: this.manualCount,\r\n });\r\n this.stopManualCountInput();\r\n }\r\n }\r\n\r\n private handleSelectClick(e: Event): void {\r\n e.preventDefault();\r\n\r\n if (this.count !== undefined) {\r\n this.dsoCountChange.emit({\r\n originalEvent: e,\r\n count: this.count > 0 ? 0 : 1,\r\n });\r\n\r\n return;\r\n }\r\n\r\n this.dsoSelectedChange.emit({\r\n originalEvent: e,\r\n checked: !this.checked,\r\n });\r\n }\r\n\r\n private startManualCountInput(): void {\r\n this.manualCount = this.count;\r\n }\r\n\r\n private stopManualCountInput(): void {\r\n this.manualCount = undefined;\r\n }\r\n\r\n private isNewCountValid(newValue: number): boolean {\r\n if (\r\n this.min !== undefined &&\r\n this.max !== undefined &&\r\n (newValue < Number(this.min) || newValue > Number(this.max))\r\n ) {\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n render() {\r\n const showButtonInputs = this.manualCount === undefined;\r\n\r\n const selected = this.checked || (this.count !== undefined && this.count > 0);\r\n\r\n return (\r\n <div class={clsx([\"dso-button-group\", { \"dso-disabled\": this.disabled }])}>\r\n <div\r\n class={clsx([\"dso-list-button\", { \"dso-selected\": selected, \"dso-single-count\": this.count === 1 }])}\r\n onClick={(e) => this.handleSelectClick(e)}\r\n >\r\n <div class=\"dso-selectable\">\r\n <input\r\n id=\"dso-list-button-checkbox\"\r\n type=\"checkbox\"\r\n value=\"list-button\"\r\n name=\"naam\"\r\n checked={selected}\r\n disabled={this.disabled}\r\n aria-label={this.label}\r\n />\r\n <label htmlFor=\"dso-list-button-checkbox\">{this.label}</label>\r\n </div>\r\n {this.sublabel && <span class=\"dso-sublabel\">{this.sublabel}</span>}\r\n <slot name=\"subcontent\" />\r\n </div>\r\n\r\n {this.count !== undefined && this.count > 0 && (\r\n <div class=\"dso-input-number\">\r\n {this.manualCount === undefined && this.count > 1 && (\r\n <button\r\n type=\"button\"\r\n class=\"dso-tertiary\"\r\n disabled={this.count === Number(this.min) || this.disabled}\r\n onClick={(e) => this.stepValue(e, \"decrement\")}\r\n >\r\n <dso-icon icon=\"minus-circle\"></dso-icon>\r\n <span class=\"sr-only\">Aantal verlagen</span>\r\n </button>\r\n )}\r\n\r\n <div class=\"dso-input-wrapper\">\r\n {this.manualCount === undefined && this.count > 1 && (\r\n <input\r\n class=\"dso-input-step-counter\"\r\n type=\"number\"\r\n tabIndex={-1}\r\n aria-label=\"Aantal\"\r\n value={this.count}\r\n readOnly\r\n />\r\n )}\r\n\r\n <form onSubmit={(e) => this.setCount(e)}>\r\n <div ref={(element) => (this.manualInputWrapperElement = element)}>\r\n <input\r\n class={clsx(\"form-control\", { hidden: showButtonInputs })}\r\n type=\"number\"\r\n aria-label=\"Aantal\"\r\n value={this.manualCount}\r\n min={this.min}\r\n max={this.max}\r\n onInput={(e) => this.handleOnChange(e)}\r\n />\r\n </div>\r\n\r\n {this.manual === true && (\r\n <button\r\n class={clsx(\"dso-manual-input-button\", { \"sr-only\": !showButtonInputs })}\r\n type={!showButtonInputs ? \"submit\" : \"button\"}\r\n disabled={this.disabled}\r\n onClick={() => showButtonInputs && this.startManualCountInput()}\r\n >\r\n {showButtonInputs ? (\r\n <span class=\"sr-only\">Handmatig aantal invullen</span>\r\n ) : (\r\n <span class=\"sr-only\">Zet waarde</span>\r\n )}\r\n </button>\r\n )}\r\n </form>\r\n </div>\r\n\r\n {showButtonInputs && (\r\n <button\r\n type=\"button\"\r\n class=\"dso-tertiary\"\r\n disabled={this.count === Number(this.max) || this.disabled}\r\n onClick={(e) => this.stepValue(e, \"increment\")}\r\n >\r\n <dso-icon icon=\"plus-circle\"></dso-icon>\r\n <span class=\"sr-only\">Aantal verhogen</span>\r\n </button>\r\n )}\r\n </div>\r\n )}\r\n </div>\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 e,H as a,a as i}from"./p-1a1a43fd.js";import{c as n}from"./p-6a1980b4.js";import{i as o}from"./p-33df9903.js";const l=s=>s instanceof HTMLButtonElement||s instanceof HTMLAnchorElement||s instanceof HTMLInputElement||s.tagName.startsWith("DSO-TOGGLETIP");const r=":host .dso-card-selectable,:host .dso-card-image{grid-row:span 2}*,*::after,*::before{box-sizing:border-box}:host{display:block}:host .dso-card-heading{align-items:center;display:flex;margin-bottom:8px}@media screen and (max-width: 480px){:host .dso-card-heading{flex-wrap:wrap}}:host .dso-card-image{margin-right:8px}";const d=class{constructor(e){s(this,e);this.dsoCardClicked=t(this,"dsoCardClicked",7);this.isSelectable=false;this.hasImage=false;this.clickable=true;this.imageShape="normal"}clickEventHandler(s){if(!(s.target instanceof HTMLElement)||!this.clickable){return}let t=s.target;while(t!==this.host&&t!==null){if(l(t)||t===null){return}if(t.parentNode instanceof ShadowRoot&&t.parentNode.host instanceof HTMLElement){t=t.parentNode.host}else{t=t.parentElement}}return this.dsoCardClicked.emit({originalEvent:s,isModifiedEvent:o(s)})}componentWillLoad(){this.isSelectable=this.host.querySelector("*[slot = 'selectable']")!==null;this.hasImage=this.host.querySelector("*[slot = 'image']")!==null}render(){return e(a,{class:n({"dso-not-clickable":!this.clickable}),onClick:s=>this.clickEventHandler(s)},e("div",{class:"dso-card-selectable",hidden:!this.isSelectable},e("slot",{name:"selectable"})),e("div",{class:"dso-card-image",hidden:!this.hasImage},e("slot",{name:"image"})),e("div",{class:"dso-card-heading"},e("slot",{name:"heading"}),e("slot",{name:"interactions"})),e("div",{class:"dso-card-content"},e("slot",{name:"content"})))}get host(){return i(this)}};d.style=r;export{d as dso_card};
|
|
2
|
-
//# sourceMappingURL=p-a0798096.entry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["isInteractiveElement","element","HTMLButtonElement","HTMLAnchorElement","HTMLInputElement","tagName","startsWith","cardCss","Card","clickEventHandler","e","target","HTMLElement","this","clickable","host","parentNode","ShadowRoot","parentElement","dsoCardClicked","emit","originalEvent","isModifiedEvent","componentWillLoad","isSelectable","querySelector","hasImage","render","h","Host","class","clsx","onClick","hidden","name"],"sources":["./src/utils/is-interactive-element.ts","./src/components/card/card.scss?tag=dso-card&encapsulation=shadow","./src/components/card/card.tsx"],"sourcesContent":["export const isInteractiveElement = (element: HTMLElement): boolean => {\r\n return (\r\n element instanceof HTMLButtonElement ||\r\n element instanceof HTMLAnchorElement ||\r\n element instanceof HTMLInputElement ||\r\n element.tagName.startsWith(\"DSO-TOGGLETIP\")\r\n );\r\n};\r\n","@use \"~dso-toolkit/src/utilities\";\r\n@use \"~dso-toolkit/src/variables/units\";\r\n@use \"~dso-toolkit/src/components/card\";\r\n\r\n@include utilities.box-sizing();\r\n\r\n:host {\r\n @include card.root();\r\n\r\n display: block;\r\n}\r\n","import { h, Component, ComponentInterface, Element, Event, EventEmitter, Host, Prop } from \"@stencil/core\";\r\nimport clsx from \"clsx\";\r\n\r\nimport { isInteractiveElement } from \"../../utils/is-interactive-element\";\r\nimport { isModifiedEvent } from \"../../utils/is-modified-event\";\r\n\r\nimport { DsoCardClickedEvent, ImageShape } from \"./card.interfaces\";\r\n\r\n@Component({\r\n tag: \"dso-card\",\r\n styleUrl: \"card.scss\",\r\n shadow: true,\r\n})\r\nexport class Card implements ComponentInterface {\r\n @Element()\r\n host!: HTMLDsoCardElement;\r\n\r\n /**\r\n * Do not use, this is set programmatically by the component.\r\n */\r\n @Prop({ reflect: true })\r\n isSelectable = false;\r\n\r\n /**\r\n * Do not use, this is set programmatically by the component.\r\n */\r\n @Prop({ reflect: true })\r\n hasImage = false;\r\n\r\n /**\r\n * Whether or not the Card is clickable.\r\n */\r\n @Prop()\r\n clickable = true;\r\n\r\n /**\r\n * Presentation of image in header.\r\n * - \"normal\" (\"24 x 24\").\r\n * - \"wide\" (\"30 x 26\")\r\n */\r\n @Prop({ reflect: true })\r\n imageShape: ImageShape = \"normal\";\r\n\r\n /**\r\n * Emitted when the Card is clickable and the user clicked the Card.\r\n */\r\n @Event()\r\n dsoCardClicked!: EventEmitter<DsoCardClickedEvent>;\r\n\r\n private clickEventHandler(e: MouseEvent) {\r\n if (!(e.target instanceof HTMLElement) || !this.clickable) {\r\n return;\r\n }\r\n\r\n let element: HTMLElement | null = e.target;\r\n\r\n while (element !== this.host && element !== null) {\r\n if (isInteractiveElement(element) || element === null) {\r\n return;\r\n }\r\n\r\n if (element.parentNode instanceof ShadowRoot && element.parentNode.host instanceof HTMLElement) {\r\n element = element.parentNode.host;\r\n } else {\r\n element = element.parentElement;\r\n }\r\n }\r\n\r\n return this.dsoCardClicked.emit({ originalEvent: e, isModifiedEvent: isModifiedEvent(e) });\r\n }\r\n\r\n componentWillLoad() {\r\n this.isSelectable = this.host.querySelector(\"*[slot = 'selectable']\") !== null;\r\n this.hasImage = this.host.querySelector(\"*[slot = 'image']\") !== null;\r\n }\r\n\r\n render() {\r\n return (\r\n <Host\r\n class={clsx({ \"dso-not-clickable\": !this.clickable })}\r\n onClick={(e: MouseEvent) => this.clickEventHandler(e)}\r\n >\r\n <div class=\"dso-card-selectable\" hidden={!this.isSelectable}>\r\n <slot name=\"selectable\" />\r\n </div>\r\n <div class=\"dso-card-image\" hidden={!this.hasImage}>\r\n <slot name=\"image\" />\r\n </div>\r\n <div class=\"dso-card-heading\">\r\n <slot name=\"heading\" />\r\n <slot name=\"interactions\" />\r\n </div>\r\n <div class=\"dso-card-content\">\r\n <slot name=\"content\" />\r\n </div>\r\n </Host>\r\n );\r\n }\r\n}\r\n"],"mappings":"wIAAO,MAAMA,EAAwBC,GAEjCA,aAAmBC,mBACnBD,aAAmBE,mBACnBF,aAAmBG,kBACnBH,EAAQI,QAAQC,WAAW,iBCL/B,MAAMC,EAAU,iU,MCaHC,EAAI,M,0FAQA,M,cAMJ,M,eAMC,K,gBAQa,Q,CAQjBC,kBAAkBC,GACxB,KAAMA,EAAEC,kBAAkBC,eAAiBC,KAAKC,UAAW,CACzD,M,CAGF,IAAIb,EAA8BS,EAAEC,OAEpC,MAAOV,IAAYY,KAAKE,MAAQd,IAAY,KAAM,CAChD,GAAID,EAAqBC,IAAYA,IAAY,KAAM,CACrD,M,CAGF,GAAIA,EAAQe,sBAAsBC,YAAchB,EAAQe,WAAWD,gBAAgBH,YAAa,CAC9FX,EAAUA,EAAQe,WAAWD,I,KACxB,CACLd,EAAUA,EAAQiB,a,EAItB,OAAOL,KAAKM,eAAeC,KAAK,CAAEC,cAAeX,EAAGY,gBAAiBA,EAAgBZ,I,CAGvFa,oBACEV,KAAKW,aAAeX,KAAKE,KAAKU,cAAc,4BAA8B,KAC1EZ,KAAKa,SAAWb,KAAKE,KAAKU,cAAc,uBAAyB,I,CAGnEE,SACE,OACEC,EAACC,EAAI,CACHC,MAAOC,EAAK,CAAE,qBAAsBlB,KAAKC,YACzCkB,QAAUtB,GAAkBG,KAAKJ,kBAAkBC,IAEnDkB,EAAA,OAAKE,MAAM,sBAAsBG,QAASpB,KAAKW,cAC7CI,EAAA,QAAMM,KAAK,gBAEbN,EAAA,OAAKE,MAAM,iBAAiBG,QAASpB,KAAKa,UACxCE,EAAA,QAAMM,KAAK,WAEbN,EAAA,OAAKE,MAAM,oBACTF,EAAA,QAAMM,KAAK,YACXN,EAAA,QAAMM,KAAK,kBAEbN,EAAA,OAAKE,MAAM,oBACTF,EAAA,QAAMM,KAAK,a"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["cardContainerCss","CardContainer","render","h","Fragment","this","mode","class"],"sources":["./src/components/card-container/card-container.scss?tag=dso-card-container&encapsulation=shadow","./src/components/card-container/card-container.tsx"],"sourcesContent":["@use \"~dso-toolkit/src/components/card-container\";\r\n@use \"~dso-toolkit/src/components/list\";\r\n@use \"~dso-toolkit/src/variables/media-query-breakpoints\";\r\n\r\n@use \"~dso-toolkit/src/components/grid/grid.variables\" as grid-variables;\r\n\r\n:host {\r\n .dso-card-list {\r\n @include list.unstyled();\r\n\r\n border-bottom: card-container.$border-width solid card-container.$border-color;\r\n margin-top: card-container.$border-width * -1;\r\n }\r\n\r\n .dso-card-grid {\r\n display: grid;\r\n gap: grid-variables.$grid-gutter-width;\r\n grid-auto-rows: 1fr;\r\n\r\n @media (max-width: media-query-breakpoints.$screen-sm-max) {\r\n grid-template-columns: repeat(1, 1fr);\r\n }\r\n\r\n @media (min-width: media-query-breakpoints.$screen-md-min) and (max-width: media-query-breakpoints.$screen-md-max) {\r\n grid-template-columns: repeat(2, 1fr);\r\n }\r\n\r\n @media (min-width: media-query-breakpoints.$screen-lg-min) {\r\n grid-template-columns: repeat(3, 1fr);\r\n }\r\n }\r\n}\r\n","import { h, Component, ComponentInterface, Fragment, Prop } from \"@stencil/core\";\r\nimport { CardContainerMode } from \"./card-container.interfaces\";\r\n\r\n@Component({\r\n tag: \"dso-card-container\",\r\n styleUrl: \"card-container.scss\",\r\n shadow: true,\r\n})\r\nexport class CardContainer implements ComponentInterface {\r\n /**\r\n * The mode of the Card Container.\r\n */\r\n @Prop({ reflect: true })\r\n mode: CardContainerMode = \"list\";\r\n\r\n render() {\r\n return (\r\n <>\r\n {this.mode === \"list\" && (\r\n <ul class=\"dso-card-list\">\r\n <slot />\r\n </ul>\r\n )}\r\n {this.mode === \"grid\" && (\r\n <div class=\"dso-card-grid\">\r\n <slot />\r\n </div>\r\n )}\r\n </>\r\n );\r\n }\r\n}\r\n"],"mappings":"kDAAA,MAAMA,EAAmB,0b,MCQZC,EAAa,M,mCAKE,M,CAE1BC,SACE,OACEC,EAAAC,EAAA,KACGC,KAAKC,OAAS,QACbH,EAAA,MAAII,MAAM,iBACRJ,EAAA,cAGHE,KAAKC,OAAS,QACbH,EAAA,OAAKI,MAAM,iBACTJ,EAAA,c"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["escapeStringRegexp","string","TypeError","replace","autosuggestCss","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","markTerms","suggestionValue","terms","undefined","termRegex","RegExp","split","map","valuePart","test","h","slice","selectSuggestion","suggestion","selectedSuggestion","listboxItemId","selectFirstSuggestion","suggestions","selectLastSuggestion","index","indexOf","_d","toString","dsoSelect","dsoSearch","render","filter","t","Fragment","class","loadingLabel","role","ref","element","hidden","onMouseEnter","onMouseLeave","onClick","type","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/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 display: flex;\r\n justify-content: space-between;\r\n padding: units.$u1 * 0.5 units.$u2;\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 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 color: colors.$grijs-60;\r\n}\r\n","import { Component, Element, h, Listen, Prop, State, Fragment, Event, EventEmitter, 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 { 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 * 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 markTerms(suggestionValue: string, terms: string[]): (VNode | string)[] {\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).map((valuePart: string) => {\r\n if (!valuePart) {\r\n return \"\";\r\n }\r\n\r\n if (termRegex.test(valuePart)) {\r\n return <mark>{valuePart}</mark>;\r\n }\r\n\r\n if (terms.length === 1) {\r\n return <span>{valuePart}</span>;\r\n }\r\n\r\n return this.markTerms(valuePart, terms.slice(1));\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 render() {\r\n const terms = this.input?.value.split(\" \").filter((t) => t) ?? [];\r\n\r\n return (\r\n <>\r\n <slot />\r\n {this.loading && this.showLoading ? (\r\n <div class=\"autosuggest-progress-box\">\r\n <dso-progress-indicator label={this.loadingLabel}></dso-progress-indicator>\r\n </div>\r\n ) : (\r\n <ul\r\n role=\"listbox\"\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 <span class=\"value\">{this.markTerms(suggestion.value, terms)}</span>\r\n {suggestion.type ? <span class=\"type\">{suggestion.type}</span> : undefined}\r\n </li>\r\n ))) ||\r\n (this.notFound && (\r\n <li>\r\n <span class=\"value\">\r\n {!this.notFoundLabel ? (\r\n this.markTerms(`${this.inputValue} is niet gevonden.`, terms)\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 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["highlightBoxCss","HighlightBox","render","hasCounter","this","step","element","querySelector","classes","clsx","yellow","border","white","dropShadow","h","class","_a","name"],"sources":["./src/components/highlight-box/highlight-box.scss?tag=dso-highlight-box&encapsulation=shadow","./src/components/highlight-box/highlight-box.tsx"],"sourcesContent":["@use \"~dso-toolkit/src/utilities\";\r\n@use \"~dso-toolkit/src/variables/units\";\r\n@use \"~dso-toolkit/src/components/highlight-box\";\r\n\r\n:host {\r\n display: block;\r\n}\r\n\r\n:host-context(.row.dso-equal-heights) {\r\n height: 100%;\r\n min-height: auto;\r\n\r\n > .dso-highlight-box {\r\n min-height: auto;\r\n\r\n &.dso-has-counter {\r\n height: calc(100% - #{units.$shared-equal-heights-highlight-box-height});\r\n }\r\n\r\n &:not(.dso-has-counter) {\r\n height: calc(100% - #{units.$u2});\r\n }\r\n }\r\n}\r\n\r\n@include utilities.box-sizing();\r\n\r\n.dso-highlight-box {\r\n @include highlight-box.root();\r\n}\r\n","import { Component, h, Prop, Element } from \"@stencil/core\";\r\nimport clsx from \"clsx\";\r\n\r\n@Component({\r\n tag: \"dso-highlight-box\",\r\n styleUrl: \"highlight-box.scss\",\r\n shadow: true,\r\n})\r\nexport class HighlightBox {\r\n /**\r\n * For yellow Highlight Box.\r\n */\r\n @Prop()\r\n yellow?: boolean;\r\n\r\n /**\r\n * For a bordered Highlight Box.\r\n */\r\n @Prop()\r\n border?: boolean;\r\n\r\n /**\r\n * For a while Highlight Box.\r\n */\r\n @Prop()\r\n white?: boolean;\r\n\r\n /**\r\n * For an Highlight Box with a drop shadow.\r\n */\r\n @Prop()\r\n dropShadow?: boolean;\r\n\r\n /**\r\n * To create a step indicator.\r\n */\r\n @Prop()\r\n step?: number;\r\n\r\n @Element()\r\n private element!: HTMLDsoHighlightBoxElement;\r\n\r\n render() {\r\n const hasCounter = this.step || !!this.element.querySelector(\"[slot=icon]\");\r\n const classes = clsx(\"dso-highlight-box\", {\r\n \"dso-yellow\": this.yellow,\r\n \"dso-border\": this.border,\r\n \"dso-white\": this.white,\r\n \"dso-drop-shadow\": this.dropShadow,\r\n \"dso-has-counter\": hasCounter,\r\n });\r\n\r\n return (\r\n <div class={classes}>\r\n {hasCounter && <div class=\"dso-step-counter\">{this.step ?? <slot name=\"icon\"></slot>}</div>}\r\n <slot></slot>\r\n </div>\r\n );\r\n }\r\n}\r\n"],"mappings":"sFAAA,MAAMA,EAAkB,oyC,MCQXC,EAAY,M,wIAkCvBC,S,MACE,MAAMC,EAAaC,KAAKC,QAAUD,KAAKE,QAAQC,cAAc,eAC7D,MAAMC,EAAUC,EAAK,oBAAqB,CACxC,aAAcL,KAAKM,OACnB,aAAcN,KAAKO,OACnB,YAAaP,KAAKQ,MAClB,kBAAmBR,KAAKS,WACxB,kBAAmBV,IAGrB,OACEW,EAAA,OAAKC,MAAOP,GACTL,GAAcW,EAAA,OAAKC,MAAM,qBAAoBC,EAAAZ,KAAKC,QAAI,MAAAW,SAAA,EAAAA,EAAIF,EAAA,QAAMG,KAAK,UACtEH,EAAA,a"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{r as s,h as o}from"./p-1a1a43fd.js";import{c as r}from"./p-6a1980b4.js";const t=":host{display:block}*,*::after,*::before{box-sizing:border-box}.dso-banner{padding:16px 0;position:relative}.dso-banner.dso-compact{padding:12px 0}";const a=class{constructor(o){s(this,o);this.status=undefined;this.compact=false;this.noIcon=true}render(){return o("section",{class:r("dso-banner",`alert-${this.status}`,{"dso-compact":this.compact}),role:"alert"},o("slot",null))}};a.style=t;export{a as dso_banner};
|
|
2
|
-
//# sourceMappingURL=p-b911f052.entry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["bannerCss","Banner","render","h","class","clsx","this","status","compact","role"],"sources":["./src/components/banner/banner.scss?tag=dso-banner&encapsulation=shadow","./src/components/banner/banner.tsx"],"sourcesContent":["@use \"~dso-toolkit/src/utilities\";\r\n@use \"~dso-toolkit/src/components/banner\";\r\n\r\n:host {\r\n display: block;\r\n}\r\n\r\n@include utilities.box-sizing();\r\n\r\n.dso-banner {\r\n @include banner.root();\r\n}\r\n","import { Component, h, Prop } from \"@stencil/core\";\r\nimport clsx from \"clsx\";\r\n\r\n@Component({\r\n tag: \"dso-banner\",\r\n styleUrl: \"banner.scss\",\r\n shadow: true,\r\n})\r\nexport class Banner {\r\n /**\r\n * The status of the banner.\r\n */\r\n @Prop({ reflect: true })\r\n status!: \"danger\" | \"error\" | \"info\" | \"warning\";\r\n\r\n /**\r\n * compact mode.\r\n */\r\n @Prop()\r\n compact = false;\r\n\r\n /**\r\n * *Only available when `compact` is set to `true`.\r\n *\r\n * Option to show banner icon.\r\n */\r\n @Prop()\r\n noIcon = true;\r\n\r\n render() {\r\n return (\r\n <section\r\n class={clsx(\"dso-banner\", `alert-${this.status}`, {\r\n \"dso-compact\": this.compact,\r\n })}\r\n role=\"alert\"\r\n >\r\n <slot></slot>\r\n </section>\r\n );\r\n }\r\n}\r\n"],"mappings":"+EAAA,MAAMA,EAAY,sJ,MCQLC,EAAM,M,4DAWP,M,YAQD,I,CAETC,SACE,OACEC,EAAA,WACEC,MAAOC,EAAK,aAAc,SAASC,KAAKC,SAAU,CAChD,cAAeD,KAAKE,UAEtBC,KAAK,SAELN,EAAA,a"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["headerCss","minDesktopViewportWidth","Header","this","onWindowResize","debounce","_a","dropdownElement","removeAttribute","_b","setDropDownMenu","setOverflowMenu","showDropDown","dropdownOptionsOffset","calculateDropdownOptionsOffset","MenuItem","item","h","class","active","undefined","href","url","onClick","e","clickHandler","menuItem","label","type","options","dsoHeaderClick","emit","originalEvent","isModifiedEvent","setShowDropDown","value","componentWillLoad","hasSubLogo","host","querySelector","shrinkMenuToFit","wrapper","nav","clientWidth","mainMenu","overflowMenuItems","length","componentDidRender","window","setTimeout","componentDidLoad","useDropDownMenu","innerWidth","clientHeight","getBoundingClientRect","bottom","top","connectedCallback","addEventListener","disconnectedCallback","removeEventListener","render","Fragment","clsx","ref","element","name","userHomeUrl","authStatus","strategy","slot","map","userProfileUrl","userProfileName","loginUrl","logoutUrl","filter","_","index","userHomeActive","icon"],"sources":["./src/components/header/header.scss?tag=dso-header&encapsulation=scoped","./src/components/header/header.tsx"],"sourcesContent":["@use \"~dso-toolkit/src/variables/units\";\r\n@use \"~dso-toolkit/src/variables/colors\";\r\n@use \"~dso-toolkit/src/variables/media-query-breakpoints\";\r\n@use \"~dso-toolkit/src/variables/typography\";\r\n\r\n@use \"~dso-toolkit/src/components/anchor\";\r\n\r\n@use \"header.variables\" as core-header-variables;\r\n\r\n@mixin nav-item-border($color) {\r\n border-bottom: 4px solid $color;\r\n}\r\n\r\n@mixin nav-item-main {\r\n font-size: 1.25em;\r\n line-height: 1;\r\n margin-top: units.$u1;\r\n padding: units.$u2 0;\r\n}\r\n\r\n:host {\r\n display: block;\r\n}\r\n\r\n.dso-header {\r\n border-bottom: 1px solid colors.$grijs-20;\r\n display: flex;\r\n flex-wrap: wrap;\r\n position: relative;\r\n\r\n @media screen and (min-width: media-query-breakpoints.$screen-sm-min) {\r\n align-items: center;\r\n }\r\n\r\n @media screen and (max-width: media-query-breakpoints.$screen-sm-max) {\r\n &.use-drop-down {\r\n flex-wrap: nowrap;\r\n }\r\n }\r\n\r\n .dso-nav {\r\n border: 0;\r\n }\r\n}\r\n\r\n.logo-container {\r\n display: flex;\r\n flex-wrap: wrap;\r\n gap: 0 units.$u3;\r\n padding-bottom: units.$u2;\r\n padding-top: units.$u2;\r\n}\r\n\r\n.login,\r\n.logout {\r\n .dso-tertiary {\r\n cursor: pointer;\r\n font-family: typography.$font-family-base;\r\n font-weight: 600;\r\n vertical-align: text-bottom;\r\n }\r\n}\r\n\r\n.profile,\r\n.logout,\r\n.login {\r\n a {\r\n @include anchor.clean();\r\n\r\n color: colors.$grasgroen;\r\n font-weight: 600;\r\n\r\n &:focus {\r\n color: colors.$wit;\r\n }\r\n }\r\n}\r\n\r\n.dso-header-session {\r\n display: flex;\r\n margin-left: auto;\r\n\r\n .profile {\r\n a {\r\n margin-left: units.$u1;\r\n }\r\n\r\n + .logout {\r\n border-left: 3px solid colors.$grijs-20;\r\n margin-left: units.$u2;\r\n padding-left: units.$u2;\r\n }\r\n }\r\n}\r\n\r\n.dso-navbar {\r\n flex-basis: 100%;\r\n\r\n .dso-dropdown-options {\r\n border-top: 1px solid colors.$grijs-20;\r\n }\r\n}\r\n\r\ndso-dropdown-menu {\r\n button {\r\n align-items: flex-end;\r\n background-color: transparent;\r\n border: 0;\r\n display: flex;\r\n font-family: typography.$font-family-base;\r\n padding-right: units.$u4;\r\n }\r\n\r\n .dso-dropdown-options {\r\n border: 0;\r\n border-radius: 0;\r\n\r\n @media screen and (min-width: media-query-breakpoints.$screen-sm-min) {\r\n width: 375px;\r\n }\r\n\r\n @media screen and (max-width: media-query-breakpoints.$screen-xs-max) {\r\n width: 100%;\r\n }\r\n\r\n ul li {\r\n a,\r\n button {\r\n color: colors.$bosgroen;\r\n font-size: 1.25rem;\r\n padding: units.$u2;\r\n white-space: pre-wrap;\r\n\r\n &:focus {\r\n color: colors.$wit;\r\n }\r\n\r\n &:hover {\r\n background-color: colors.$wit;\r\n color: colors.$bosgroen;\r\n text-decoration: underline;\r\n }\r\n }\r\n\r\n &.dso-active {\r\n a {\r\n font-weight: 600;\r\n }\r\n }\r\n\r\n + li {\r\n border-top: 1px solid colors.$grijs-20;\r\n }\r\n }\r\n }\r\n}\r\n\r\n.dropdown {\r\n margin-left: auto;\r\n\r\n dso-dropdown-menu {\r\n position: static;\r\n\r\n @media screen and (max-width: media-query-breakpoints.$screen-xs-max) {\r\n margin-top: units.$u1 * 3.5;\r\n }\r\n\r\n .dso-dropdown-options {\r\n right: 0;\r\n top: 100%;\r\n }\r\n\r\n > button {\r\n color: colors.$grasgroen;\r\n font-size: typography.$font-size-base;\r\n font-weight: 600;\r\n line-height: normal;\r\n position: relative;\r\n\r\n &::after {\r\n margin-left: units.$u1;\r\n position: absolute;\r\n right: 0px;\r\n top: 50%;\r\n transform: translateY(-50%);\r\n }\r\n\r\n &:hover,\r\n &:active {\r\n cursor: pointer;\r\n text-decoration: underline;\r\n }\r\n }\r\n }\r\n}\r\n\r\n.dso-nav {\r\n align-items: end;\r\n column-gap: units.$u4;\r\n display: flex;\r\n list-style: none;\r\n margin-bottom: 0;\r\n margin-top: 0;\r\n padding-left: 0;\r\n\r\n > li {\r\n margin-bottom: 4px;\r\n\r\n > a {\r\n display: block;\r\n\r\n &,\r\n &:hover,\r\n &:focus,\r\n &:visited {\r\n color: colors.$bosgroen;\r\n }\r\n }\r\n\r\n &.dso-active,\r\n &.is-active {\r\n margin-bottom: 0;\r\n\r\n > a {\r\n @include nav-item-border(core-header-variables.$navigation-selected-color);\r\n\r\n font-weight: bold;\r\n }\r\n }\r\n }\r\n\r\n &.dso-nav-main {\r\n display: flex !important;\r\n\r\n > li {\r\n > a {\r\n @include anchor.reverse();\r\n @include nav-item-main();\r\n\r\n // stylelint-disable-next-line declaration-property-value-disallowed-list -- no wrapping wanted because of icon\r\n white-space: nowrap;\r\n }\r\n }\r\n\r\n dso-dropdown-menu {\r\n .dso-dropdown-options {\r\n left: units.$ru2 * -1 !important;\r\n top: 3px !important;\r\n }\r\n\r\n button {\r\n @include nav-item-main();\r\n\r\n align-items: center;\r\n color: colors.$bosgroen;\r\n padding-right: units.$u4;\r\n\r\n &:hover,\r\n &:active {\r\n cursor: pointer;\r\n text-decoration: underline;\r\n }\r\n\r\n &::after {\r\n margin-left: units.$u1;\r\n position: absolute;\r\n right: 0px;\r\n top: auto;\r\n transform: none;\r\n }\r\n }\r\n }\r\n }\r\n\r\n .menu-user-home {\r\n margin-left: auto;\r\n\r\n dso-icon {\r\n height: 1em;\r\n margin-right: units.$u1;\r\n position: relative;\r\n top: -2px;\r\n width: 1.2em;\r\n }\r\n }\r\n}\r\n","import { Component, Element, Event, EventEmitter, Fragment, h, Prop, State, Watch } from \"@stencil/core\";\r\n\r\nimport clsx from \"clsx\";\r\nimport debounce from \"debounce\";\r\nimport { isModifiedEvent } from \"../../utils/is-modified-event\";\r\n\r\nimport { HeaderMenuItem, HeaderNavigationType, HeaderEvent } from \"./header.interfaces\";\r\n\r\nconst minDesktopViewportWidth = 992;\r\n\r\n@Component({\r\n tag: \"dso-header\",\r\n styleUrl: \"header.scss\",\r\n scoped: true,\r\n})\r\nexport class Header {\r\n private clickHandler(\r\n e: MouseEvent,\r\n type: HeaderNavigationType,\r\n options?: { menuItem?: HeaderMenuItem; url?: string }\r\n ) {\r\n this.dsoHeaderClick.emit({\r\n originalEvent: e,\r\n isModifiedEvent: isModifiedEvent(e),\r\n type,\r\n menuItem: options?.menuItem,\r\n url: options?.url ?? options?.menuItem?.url,\r\n });\r\n }\r\n\r\n private dropdownElement?: HTMLElement;\r\n\r\n @Element()\r\n host!: HTMLDsoHeaderElement;\r\n\r\n /**\r\n * The main menu items.\r\n */\r\n @Prop()\r\n mainMenu?: HeaderMenuItem[] = [];\r\n\r\n /**\r\n * Either have the dropdown menu appear automatically or always.\r\n */\r\n @Prop()\r\n useDropDownMenu: \"always\" | \"auto\" = \"auto\";\r\n\r\n /**\r\n * Used to show the login/logout option. 'none' renders nothing.\r\n */\r\n @Prop()\r\n authStatus: \"none\" | \"loggedIn\" | \"loggedOut\" = \"none\";\r\n\r\n /**\r\n * When the `authStatus` is `loggedOut` a loginUrl can be provided, the login button will render as an anchor.\r\n */\r\n @Prop()\r\n loginUrl?: string;\r\n\r\n /**\r\n * The URL to open when the user activates \"logout\".\r\n */\r\n @Prop()\r\n logoutUrl?: string;\r\n\r\n /**\r\n * The name to show when the user is logged in.\r\n */\r\n @Prop()\r\n userProfileName?: string;\r\n\r\n /**\r\n * The URL to open when the user activates the profile url.\r\n */\r\n @Prop()\r\n userProfileUrl?: string;\r\n\r\n /**\r\n * The URL to open when the user activates \"Mijn Omgevingsloket\".\r\n */\r\n @Prop()\r\n userHomeUrl?: string;\r\n\r\n /**\r\n * Set this to true when the user is at \"Mijn Omgevingsloket\".\r\n */\r\n @Prop()\r\n userHomeActive?: boolean;\r\n\r\n @State()\r\n showDropDown?: boolean;\r\n\r\n @State()\r\n hasSubLogo = false;\r\n\r\n @State()\r\n overflowMenuItems = 0;\r\n\r\n @State()\r\n dropdownOptionsOffset = 0;\r\n\r\n /**\r\n * Emitted when something in the header is selected.\r\n *\r\n * `event.detail.type` indicates the functionality the user pressed. eg. `'login'` or `'menuItem'`\r\n */\r\n @Event()\r\n dsoHeaderClick!: EventEmitter<HeaderEvent>;\r\n\r\n @Watch(\"useDropDownMenu\")\r\n setShowDropDown(value: \"always\" | \"auto\") {\r\n if (value === \"auto\") {\r\n this.setDropDownMenu();\r\n\r\n return;\r\n }\r\n\r\n this.showDropDown = value === \"always\";\r\n }\r\n\r\n private wrapper: HTMLDivElement | undefined;\r\n\r\n private nav: HTMLUListElement | undefined;\r\n\r\n componentWillLoad() {\r\n this.hasSubLogo = this.host.querySelector(\"*[slot = 'sub-logo']\") !== null;\r\n }\r\n\r\n private shrinkMenuToFit() {\r\n if (!this.wrapper || !this.nav) {\r\n return;\r\n }\r\n\r\n if (this.wrapper.clientWidth >= this.nav.clientWidth) {\r\n return;\r\n }\r\n\r\n if (this.mainMenu && this.overflowMenuItems >= this.mainMenu.length) {\r\n return;\r\n }\r\n\r\n this.overflowMenuItems++;\r\n }\r\n\r\n componentDidRender() {\r\n if (this.showDropDown) {\r\n this.dropdownOptionsOffset = this.calculateDropdownOptionsOffset();\r\n\r\n return;\r\n }\r\n\r\n window.setTimeout(() => this.shrinkMenuToFit(), 0);\r\n }\r\n\r\n componentDidLoad() {\r\n this.setShowDropDown(this.useDropDownMenu);\r\n\r\n if (this.showDropDown) {\r\n this.dropdownOptionsOffset = this.calculateDropdownOptionsOffset();\r\n }\r\n }\r\n\r\n private setOverflowMenu() {\r\n if (this.showDropDown) {\r\n return;\r\n }\r\n\r\n if (this.overflowMenuItems !== 0) {\r\n this.overflowMenuItems = 0;\r\n return;\r\n }\r\n\r\n this.shrinkMenuToFit();\r\n }\r\n\r\n private setDropDownMenu() {\r\n if (this.useDropDownMenu !== \"auto\") {\r\n return;\r\n }\r\n\r\n this.showDropDown = window.innerWidth < minDesktopViewportWidth;\r\n }\r\n\r\n private calculateDropdownOptionsOffset() {\r\n if (!this.dropdownElement) {\r\n return 0;\r\n }\r\n\r\n return (\r\n this.host.clientHeight -\r\n (this.dropdownElement?.getBoundingClientRect().bottom - this.host.getBoundingClientRect().top)\r\n );\r\n }\r\n\r\n private onWindowResize = debounce(() => {\r\n this.dropdownElement?.removeAttribute(\"open\");\r\n this.dropdownElement?.removeAttribute(\"tabindex\");\r\n\r\n this.setDropDownMenu();\r\n this.setOverflowMenu();\r\n\r\n if (this.showDropDown) {\r\n this.dropdownOptionsOffset = this.calculateDropdownOptionsOffset();\r\n }\r\n }, 100);\r\n\r\n connectedCallback() {\r\n window.addEventListener(\"resize\", this.onWindowResize);\r\n }\r\n\r\n disconnectedCallback() {\r\n window.removeEventListener(\"resize\", this.onWindowResize);\r\n }\r\n\r\n private MenuItem = (item: HeaderMenuItem) => {\r\n return (\r\n <li class={item.active ? \"dso-active\" : undefined}>\r\n <a\r\n href={item.url}\r\n aria-current={item.active ? \"page\" : undefined}\r\n onClick={(e) => this.clickHandler(e, \"menuItem\", { menuItem: item })}\r\n >\r\n {item.label}\r\n </a>\r\n </li>\r\n );\r\n };\r\n\r\n render() {\r\n // Prevent 'flickering' when useDropDownMenu = 'always'\r\n if (this.showDropDown === undefined) {\r\n return;\r\n }\r\n\r\n return (\r\n <>\r\n <div\r\n class={clsx(\"dso-header\", {\r\n [\"use-drop-down\"]: this.showDropDown,\r\n [\"has-sub-logo\"]: this.hasSubLogo,\r\n })}\r\n ref={(element) => (this.wrapper = element)}\r\n >\r\n <div class=\"logo-container\">\r\n <div class=\"logo\">\r\n <slot name=\"logo\" />\r\n </div>\r\n <div class=\"sub-logo\">\r\n <slot name=\"sub-logo\" />\r\n </div>\r\n </div>\r\n {this.showDropDown &&\r\n this.mainMenu &&\r\n (this.mainMenu.length > 0 || this.userHomeUrl || this.authStatus !== \"none\") && (\r\n <div class=\"dropdown\">\r\n <dso-dropdown-menu\r\n dropdown-align=\"right\"\r\n strategy=\"absolute\"\r\n dropdownOptionsOffset={this.dropdownOptionsOffset}\r\n ref={(element) => (this.dropdownElement = element)}\r\n >\r\n <button type=\"button\" slot=\"toggle\">\r\n <span>Menu</span>\r\n </button>\r\n <div class=\"dso-dropdown-options\">\r\n <ul>\r\n {this.mainMenu.map(this.MenuItem)}\r\n {this.userHomeUrl && (\r\n <li>\r\n <a\r\n href={this.userHomeUrl}\r\n onClick={(e) => this.clickHandler(e, \"userHome\", { url: this.userHomeUrl })}\r\n >\r\n Mijn Omgevingsloket\r\n </a>\r\n </li>\r\n )}\r\n {this.userProfileUrl && this.userProfileName && this.authStatus === \"loggedIn\" && (\r\n <li>\r\n <a\r\n href={this.userProfileUrl}\r\n onClick={(e) => this.clickHandler(e, \"profile\", { url: this.userProfileUrl })}\r\n >\r\n {this.userProfileName}\r\n <span class=\"profile-label\"> - Mijn profiel</span>\r\n </a>\r\n </li>\r\n )}\r\n {this.authStatus === \"loggedOut\" && (\r\n <li>\r\n {this.loginUrl ? (\r\n <a\r\n href={this.loginUrl}\r\n onClick={(e) => this.clickHandler(e, \"login\", { url: this.loginUrl })}\r\n >\r\n Inloggen\r\n </a>\r\n ) : (\r\n <button type=\"button\" onClick={(e) => this.clickHandler(e, \"login\")}>\r\n Inloggen\r\n </button>\r\n )}\r\n </li>\r\n )}\r\n {this.authStatus === \"loggedIn\" && (\r\n <li>\r\n {this.logoutUrl ? (\r\n <a\r\n href={this.logoutUrl}\r\n onClick={(e) => this.clickHandler(e, \"logout\", { url: this.logoutUrl })}\r\n >\r\n Uitloggen\r\n </a>\r\n ) : (\r\n <button type=\"button\" onClick={(e) => this.clickHandler(e, \"logout\")}>\r\n Uitloggen\r\n </button>\r\n )}\r\n </li>\r\n )}\r\n </ul>\r\n </div>\r\n </dso-dropdown-menu>\r\n </div>\r\n )}\r\n {!this.showDropDown && (\r\n <>\r\n <div class=\"dso-header-session\">\r\n {this.userProfileUrl && this.userProfileName && this.authStatus === \"loggedIn\" && (\r\n <div class=\"profile\">\r\n <span class=\"profile-label\">Welkom:</span>\r\n <a\r\n href={this.userProfileUrl}\r\n onClick={(e) => this.clickHandler(e, \"profile\", { url: this.userProfileUrl })}\r\n >\r\n {this.userProfileName}\r\n </a>\r\n </div>\r\n )}\r\n {this.authStatus === \"loggedOut\" && (\r\n <div class=\"login\">\r\n {this.loginUrl ? (\r\n <a href={this.loginUrl} onClick={(e) => this.clickHandler(e, \"login\", { url: this.loginUrl })}>\r\n Inloggen\r\n </a>\r\n ) : (\r\n <button class=\"dso-tertiary\" type=\"button\" onClick={(e) => this.clickHandler(e, \"login\")}>\r\n Inloggen\r\n </button>\r\n )}\r\n </div>\r\n )}\r\n {this.authStatus === \"loggedIn\" && (\r\n <div class=\"logout\">\r\n {this.logoutUrl ? (\r\n <a href={this.logoutUrl} onClick={(e) => this.clickHandler(e, \"logout\", { url: this.logoutUrl })}>\r\n Uitloggen\r\n </a>\r\n ) : (\r\n <button class=\"dso-tertiary\" type=\"button\" onClick={(e) => this.clickHandler(e, \"logout\")}>\r\n Uitloggen\r\n </button>\r\n )}\r\n </div>\r\n )}\r\n </div>\r\n {((this.mainMenu && this.mainMenu.length > 0) || this.userHomeUrl) && (\r\n <nav class=\"dso-navbar\">\r\n <ul class=\"dso-nav dso-nav-main\" ref={(element) => (this.nav = element)}>\r\n {this.mainMenu &&\r\n this.mainMenu\r\n .filter((_, index) => this.mainMenu && index < this.mainMenu.length - this.overflowMenuItems)\r\n .map(this.MenuItem)}\r\n {this.overflowMenuItems > 0 && (\r\n <li>\r\n <dso-dropdown-menu dropdown-align=\"left\">\r\n <button type=\"button\" slot=\"toggle\">\r\n <span>Meer</span>\r\n </button>\r\n <div class=\"dso-dropdown-options\">\r\n <ul>\r\n {this.mainMenu &&\r\n this.mainMenu\r\n .filter(\r\n (_, index) =>\r\n this.mainMenu && index >= this.mainMenu.length - this.overflowMenuItems\r\n )\r\n .map(this.MenuItem)}\r\n </ul>\r\n </div>\r\n </dso-dropdown-menu>\r\n </li>\r\n )}\r\n {this.userHomeUrl && (\r\n <li class={clsx(\"menu-user-home\", { \"dso-active\": this.userHomeActive })}>\r\n <a\r\n href={this.userHomeUrl}\r\n aria-current={this.userHomeActive ? \"page\" : undefined}\r\n onClick={(e) => this.clickHandler(e, \"userHome\", { url: this.userHomeUrl })}\r\n >\r\n <dso-icon icon=\"user-line\"></dso-icon>\r\n Mijn Omgevingsloket\r\n </a>\r\n </li>\r\n )}\r\n </ul>\r\n </nav>\r\n )}\r\n </>\r\n )}\r\n </div>\r\n </>\r\n );\r\n }\r\n}\r\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["mapControlsCss","transitionDuration","MapControls","this","panelTitle","_MapControls_closeButtonElement","set","_MapControls_toggleButtonElement","open","watchOpen","hideContent","setTimeout","_a","__classPrivateFieldGet","focus","async","e","dsoToggle","emit","originalEvent","render","h","Host","type","id","class","onClick","toggleVisibility","ref","element","__classPrivateFieldSet","icon","dsoZoomIn","disabled","disableZoom","dsoZoomOut","hidden"],"sources":["./src/components/map-controls/map-controls.scss?tag=dso-map-controls&encapsulation=shadow","./src/components/map-controls/map-controls.tsx"],"sourcesContent":["@use \"~dso-toolkit/src/utilities\";\r\n@use \"~dso-toolkit/src/variables/colors\";\r\n@use \"~dso-toolkit/src/variables/media-query-breakpoints\";\r\n@use \"~dso-toolkit/src/variables/typography\";\r\n@use \"~dso-toolkit/src/variables/units\";\r\n@use \"~dso-toolkit/src/components/button\";\r\n\r\n@use \"map-controls.variables\" as core-map-controls-variables;\r\n\r\n:host {\r\n background-color: colors.$wit;\r\n border: 1px solid colors.$grijs-20;\r\n bottom: 0;\r\n display: block;\r\n font-family: typography.$font-family-base;\r\n position: absolute;\r\n top: 0;\r\n left: 100%;\r\n transition: transform core-map-controls-variables.$transition-duration ease;\r\n width: 300px;\r\n}\r\n\r\n@include utilities.box-sizing();\r\n\r\n:host([open]) {\r\n box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.3);\r\n transform: translateX(-100%);\r\n\r\n .toggle-visibility-button {\r\n display: none;\r\n }\r\n\r\n .zoom-buttons {\r\n top: units.$u2;\r\n }\r\n}\r\n\r\nbutton {\r\n @include button.element();\r\n}\r\n\r\n.toggle-visibility-button {\r\n @include button.map();\r\n\r\n position: absolute;\r\n right: calc(100% + #{core-map-controls-variables.$controls-margin + core-map-controls-variables.$zoom-button-size});\r\n top: core-map-controls-variables.$controls-margin;\r\n}\r\n\r\n.zoom-buttons {\r\n border-radius: 4px;\r\n box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.5);\r\n display: flex;\r\n flex-wrap: wrap;\r\n flex: 0 0;\r\n position: absolute;\r\n right: calc(100% + core-map-controls-variables.$controls-margin);\r\n top: core-map-controls-variables.$controls-margin;\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 border-top-left-radius: 4px;\r\n border-top-right-radius: 4px;\r\n flex: 0 0 100%;\r\n height: core-map-controls-variables.$zoom-button-size;\r\n min-width: auto;\r\n width: core-map-controls-variables.$zoom-button-size;\r\n\r\n + button {\r\n border-radius: 0;\r\n border-bottom-left-radius: 4px;\r\n border-bottom-right-radius: 4px;\r\n border-top: 1px solid colors.$grijs-20;\r\n }\r\n }\r\n}\r\n\r\n.close-button {\r\n @include button.tertiary($modifiers: false, $icon-only: true);\r\n\r\n padding: 0;\r\n position: absolute;\r\n right: core-map-controls-variables.$controls-margin;\r\n top: core-map-controls-variables.$controls-margin;\r\n}\r\n\r\nsection:not([hidden]) {\r\n display: flex;\r\n flex-direction: column;\r\n height: 100%;\r\n}\r\n\r\nheader,\r\n.content {\r\n padding: units.$u2;\r\n}\r\n\r\nheader {\r\n border-bottom: 1px solid colors.$grijs-20;\r\n flex-grow: 0;\r\n position: relative;\r\n\r\n h2 {\r\n color: colors.$bosgroen;\r\n font-family: typography.$headings-font-family;\r\n line-height: 1;\r\n margin: 0;\r\n }\r\n}\r\n\r\n@media screen and (max-width: media-query-breakpoints.$screen-xs-max) {\r\n .toggle-visibility-button {\r\n height: units.$u5;\r\n margin-right: 0;\r\n min-width: auto;\r\n right: calc(100% + core-map-controls-variables.$controls-margin);\r\n width: units.$u5;\r\n\r\n dso-icon {\r\n margin-right: 0;\r\n }\r\n\r\n span {\r\n visibility: hidden;\r\n }\r\n }\r\n\r\n .zoom-buttons {\r\n top: units.$u9;\r\n }\r\n}\r\n","import { Component, h, Host, Prop, Event, EventEmitter, State, Watch, Method } from \"@stencil/core\";\r\nimport { MapControlsToggleEvent } from \"./map-controls.interfaces\";\r\n\r\n// Sync with $transition-duration in ./map-controls.scss\r\nconst transitionDuration = 300;\r\n\r\n@Component({\r\n tag: \"dso-map-controls\",\r\n styleUrl: \"./map-controls.scss\",\r\n shadow: true,\r\n})\r\nexport class MapControls {\r\n private panelTitle = \"Kaartlagen\";\r\n\r\n /**\r\n * To show and hide the Map Controls.\r\n */\r\n @Prop({ reflect: true, mutable: true })\r\n open = false;\r\n\r\n /**\r\n * To disable the zoom controls:\r\n *\r\n * * `in`: Disable zoom in button.\r\n * * `out`: Disable zoom out button.\r\n * * `both`: Disable zoom in and zoom out.\r\n */\r\n @Prop()\r\n disableZoom?: \"in\" | \"out\" | \"both\";\r\n\r\n /**\r\n * Emitted when the user activates the zoom in button.\r\n */\r\n @Event()\r\n dsoZoomIn!: EventEmitter<MouseEvent>;\r\n\r\n /**\r\n * Emitted when the user activates the zoom out button.\r\n */\r\n @Event()\r\n dsoZoomOut!: EventEmitter<MouseEvent>;\r\n\r\n /**\r\n * emits when the panel opens or closes.\r\n *\r\n * - `event.detail.originalEvent` contains the original `MouseEvent / KeyboardEvent` when the panel is toggled by clicking the visibility button or the close button.\r\n * - `event.detail.open` is true when the panel opens and false when the panel closes.\r\n */\r\n @Event()\r\n dsoToggle!: EventEmitter<MapControlsToggleEvent>;\r\n\r\n @State()\r\n hideContent = !this.open;\r\n\r\n @Watch(\"open\")\r\n watchOpen(open: boolean) {\r\n if (open) {\r\n this.hideContent = false;\r\n\r\n setTimeout(() => this.#closeButtonElement?.focus(), transitionDuration);\r\n } else {\r\n setTimeout(() => {\r\n this.hideContent = true;\r\n\r\n this.#toggleButtonElement?.focus();\r\n }, transitionDuration);\r\n }\r\n }\r\n\r\n /**\r\n * Emitted when the visibility is toggled.\r\n *\r\n * Can be used to recalculate map widths or reposition center when the Map Controls opens or closes.\r\n * @param e\r\n */\r\n @Method()\r\n async toggleVisibility(e: MouseEvent | KeyboardEvent) {\r\n this.open = !this.open;\r\n\r\n this.dsoToggle.emit({\r\n originalEvent: e,\r\n open: this.open,\r\n });\r\n }\r\n\r\n #closeButtonElement: HTMLButtonElement | undefined;\r\n #toggleButtonElement: HTMLButtonElement | undefined;\r\n\r\n render() {\r\n return (\r\n <Host>\r\n <button\r\n type=\"button\"\r\n id=\"toggle-visibility-button\"\r\n class=\"toggle-visibility-button\"\r\n onClick={(e) => this.toggleVisibility(e)}\r\n ref={(element) => (this.#toggleButtonElement = element)}\r\n >\r\n <dso-icon icon=\"layers\"></dso-icon>\r\n <span>Kaartlagen</span>\r\n </button>\r\n <div class=\"zoom-buttons\">\r\n <button\r\n type=\"button\"\r\n onClick={(e) => this.dsoZoomIn.emit(e)}\r\n disabled={this.disableZoom === \"in\" || this.disableZoom === \"both\"}\r\n >\r\n <span>Zoom in</span>\r\n <dso-icon icon=\"plus\"></dso-icon>\r\n </button>\r\n <button\r\n type=\"button\"\r\n onClick={(e) => this.dsoZoomOut.emit(e)}\r\n disabled={this.disableZoom === \"out\" || this.disableZoom === \"both\"}\r\n >\r\n <span>Zoom uit</span>\r\n <dso-icon icon=\"minus\"></dso-icon>\r\n </button>\r\n </div>\r\n <section hidden={this.hideContent}>\r\n <header>\r\n <h2>{this.panelTitle}</h2>\r\n <button\r\n type=\"button\"\r\n class=\"close-button\"\r\n onClick={(e) => this.toggleVisibility(e)}\r\n ref={(element) => (this.#closeButtonElement = element)}\r\n >\r\n <span>Verberg paneel {this.panelTitle}</span>\r\n <dso-icon icon=\"times\"></dso-icon>\r\n </button>\r\n </header>\r\n <dso-scrollable>\r\n <div class=\"content\">\r\n <slot></slot>\r\n </div>\r\n </dso-scrollable>\r\n </section>\r\n </Host>\r\n );\r\n }\r\n}\r\n"],"mappings":"yDAAA,MAAMA,EAAiB,u5jB,kwBCIvB,MAAMC,EAAqB,I,MAOdC,EAAW,M,0IACdC,KAAAC,WAAa,aAyErBC,EAAAC,IAAAH,UAAA,GACAI,EAAAD,IAAAH,UAAA,G,UApEO,M,6CAkCQA,KAAKK,I,CAGpBC,UAAUD,GACR,GAAIA,EAAM,CACRL,KAAKO,YAAc,MAEnBC,YAAW,SAAAC,EAAM,OAAAA,EAAAC,EAAAV,KAAIE,EAAA,QAAoB,MAAAO,SAAA,SAAAA,EAAEE,OAAO,GAAEb,E,KAC/C,CACLU,YAAW,K,MACTR,KAAKO,YAAc,MAEnBE,EAAAC,EAAAV,KAAII,EAAA,QAAqB,MAAAK,SAAA,SAAAA,EAAEE,OAAO,GACjCb,E,EAWPc,uBAAuBC,GACrBb,KAAKK,MAAQL,KAAKK,KAElBL,KAAKc,UAAUC,KAAK,CAClBC,cAAeH,EACfR,KAAML,KAAKK,M,CAOfY,SACE,OACEC,EAACC,EAAI,KACHD,EAAA,UACEE,KAAK,SACLC,GAAG,2BACHC,MAAM,2BACNC,QAAUV,GAAMb,KAAKwB,iBAAiBX,GACtCY,IAAMC,GAAaC,EAAA3B,KAAII,EAAwBsB,EAAO,MAEtDR,EAAA,YAAUU,KAAK,WACfV,EAAA,2BAEFA,EAAA,OAAKI,MAAM,gBACTJ,EAAA,UACEE,KAAK,SACLG,QAAUV,GAAMb,KAAK6B,UAAUd,KAAKF,GACpCiB,SAAU9B,KAAK+B,cAAgB,MAAQ/B,KAAK+B,cAAgB,QAE5Db,EAAA,uBACAA,EAAA,YAAUU,KAAK,UAEjBV,EAAA,UACEE,KAAK,SACLG,QAAUV,GAAMb,KAAKgC,WAAWjB,KAAKF,GACrCiB,SAAU9B,KAAK+B,cAAgB,OAAS/B,KAAK+B,cAAgB,QAE7Db,EAAA,wBACAA,EAAA,YAAUU,KAAK,YAGnBV,EAAA,WAASe,OAAQjC,KAAKO,aACpBW,EAAA,cACEA,EAAA,UAAKlB,KAAKC,YACViB,EAAA,UACEE,KAAK,SACLE,MAAM,eACNC,QAAUV,GAAMb,KAAKwB,iBAAiBX,GACtCY,IAAMC,GAAaC,EAAA3B,KAAIE,EAAuBwB,EAAO,MAErDR,EAAA,8BAAsBlB,KAAKC,YAC3BiB,EAAA,YAAUU,KAAK,YAGnBV,EAAA,sBACEA,EAAA,OAAKI,MAAM,WACTJ,EAAA,gB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["scrollableCss","resizeObserver","ResizeObserver","debounce","entries","forEach","entry","_a","getScrollableComponentFromResizeObserverEntry","_setScrollState","target","parentNode","ShadowRoot","isDsoScrollableComponent","host","parentElement","undefined","element","tagName","Scrollable","this","mutationObserver","MutationObserver","closest","async","scrollPosition","getScrollPosition","dsoScrollEnd","emit","scrollEnd","slottedElements","Array","from","children","scrollContainerDiv","scrollHeight","clientHeight","scrollTop","componentDidLoad","observe","characterData","attributes","childList","subtree","shadowContainerDiv","HTMLDivElement","disconnectedCallback","unobserve","disconnect","render","h","ref","el","class","clsx","onScroll"],"sources":["./src/components/scrollable/scrollable.scss?tag=dso-scrollable&encapsulation=shadow","./src/components/scrollable/scrollable.tsx"],"sourcesContent":["@use \"~dso-toolkit/src/utilities\";\r\n@use \"~dso-toolkit/src/variables/units\";\r\n\r\n:host {\r\n display: block;\r\n height: 100%;\r\n overflow-y: hidden;\r\n}\r\n\r\n@include utilities.box-sizing();\r\n\r\n.dso-shadow-container {\r\n height: 100%;\r\n max-height: inherit;\r\n min-height: inherit;\r\n position: relative;\r\n\r\n .dso-scroll-container {\r\n height: 100%;\r\n max-height: inherit;\r\n min-height: inherit;\r\n overflow-y: auto;\r\n\r\n &::before,\r\n &::after {\r\n background-repeat: no-repeat;\r\n background-size: 100% units.$u3;\r\n content: \"\";\r\n display: block;\r\n height: units.$u3;\r\n left: 0;\r\n opacity: 0;\r\n overflow: visible;\r\n position: absolute;\r\n transition: opacity 150ms ease-in-out;\r\n width: 100%;\r\n pointer-events: none;\r\n }\r\n\r\n &::before {\r\n background-image: linear-gradient(to top, rgba(183, 183, 183, 0), rgba(183, 183, 183, 0.7));\r\n top: 0;\r\n }\r\n\r\n &::after {\r\n background-image: linear-gradient(to bottom, rgba(183, 183, 183, 0), rgba(183, 183, 183, 0.7));\r\n bottom: 0;\r\n }\r\n\r\n &.dso-scroll-bottom {\r\n &::before {\r\n opacity: 1;\r\n }\r\n }\r\n\r\n &.dso-scroll-top {\r\n &::after {\r\n opacity: 1;\r\n }\r\n }\r\n\r\n &.dso-scroll-middle {\r\n &::before,\r\n &::after {\r\n opacity: 1;\r\n }\r\n }\r\n }\r\n}\r\n","import { Component, Element, Event, EventEmitter, h, Method, State } from \"@stencil/core\";\r\nimport clsx from \"clsx\";\r\nimport debounce from \"debounce\";\r\n\r\nimport { DsoScrollEndEvent, ScrollPosition } from \"./scrollable.interfaces\";\r\n\r\nconst resizeObserver = new ResizeObserver(\r\n debounce(\r\n (entries) => entries.forEach((entry) => getScrollableComponentFromResizeObserverEntry(entry)?._setScrollState()),\r\n 50\r\n )\r\n);\r\n\r\nfunction getScrollableComponentFromResizeObserverEntry({\r\n target,\r\n}: ResizeObserverEntry): HTMLDsoScrollableElement | undefined {\r\n if (target.parentNode instanceof ShadowRoot && isDsoScrollableComponent(target.parentNode.host)) {\r\n return target.parentNode.host;\r\n }\r\n\r\n if (target.parentElement && isDsoScrollableComponent(target.parentElement)) {\r\n return target.parentElement;\r\n }\r\n\r\n return undefined;\r\n}\r\n\r\nfunction isDsoScrollableComponent(element: Element): element is HTMLDsoScrollableElement {\r\n return element.tagName === \"DSO-SCROLLABLE\";\r\n}\r\n\r\n@Component({\r\n tag: \"dso-scrollable\",\r\n styleUrl: \"scrollable.scss\",\r\n shadow: true,\r\n})\r\nexport class Scrollable {\r\n // One MutationObserver per instance because of https://github.com/whatwg/dom/issues/126\r\n private mutationObserver = new MutationObserver((entries) =>\r\n entries.forEach(({ target }) => {\r\n const element = target.parentElement?.closest(\"dso-scrollable\");\r\n if (element !== this.host) {\r\n return;\r\n }\r\n\r\n this._setScrollState();\r\n })\r\n );\r\n\r\n private scrollContainerDiv?: HTMLDivElement;\r\n\r\n private shadowContainerDiv?: HTMLDivElement;\r\n\r\n @Element()\r\n host!: HTMLDsoScrollableElement;\r\n\r\n /**\r\n * Event emitted when the scrollbar has reached top or bottom.\r\n */\r\n @Event()\r\n dsoScrollEnd!: EventEmitter<DsoScrollEndEvent>;\r\n\r\n @State()\r\n scrollPosition: ScrollPosition = \"noScroll\";\r\n\r\n /**\r\n * @internal\r\n */\r\n @Method()\r\n async _setScrollState() {\r\n const scrollPosition = this.getScrollPosition();\r\n if (this.scrollPosition !== scrollPosition) {\r\n this.scrollPosition = scrollPosition;\r\n\r\n if (this.scrollPosition === \"top\" || this.scrollPosition === \"bottom\") {\r\n this.dsoScrollEnd.emit({ scrollEnd: this.scrollPosition });\r\n }\r\n }\r\n }\r\n\r\n private get slottedElements() {\r\n return Array.from(this.host.children);\r\n }\r\n\r\n private getScrollPosition(): ScrollPosition {\r\n if (!this.scrollContainerDiv) {\r\n return \"noScroll\";\r\n }\r\n\r\n const { scrollHeight, clientHeight, scrollTop } = this.scrollContainerDiv;\r\n\r\n if (scrollHeight <= clientHeight) {\r\n return \"noScroll\";\r\n }\r\n\r\n if (scrollTop === 0) {\r\n return \"top\";\r\n }\r\n\r\n if (scrollHeight - scrollTop - clientHeight < 1) {\r\n return \"bottom\";\r\n }\r\n\r\n if (scrollTop > 0) {\r\n return \"middle\";\r\n }\r\n\r\n return \"noScroll\";\r\n }\r\n\r\n componentDidLoad(): void {\r\n this.mutationObserver.observe(this.host, {\r\n characterData: true,\r\n attributes: false,\r\n childList: false,\r\n subtree: true,\r\n });\r\n\r\n if (this.shadowContainerDiv instanceof HTMLDivElement) {\r\n resizeObserver.observe(this.shadowContainerDiv);\r\n }\r\n\r\n this.slottedElements.forEach((element) => resizeObserver.observe(element));\r\n }\r\n\r\n disconnectedCallback(): void {\r\n if (this.shadowContainerDiv instanceof HTMLDivElement) {\r\n resizeObserver.unobserve(this.shadowContainerDiv);\r\n }\r\n\r\n this.mutationObserver.disconnect();\r\n\r\n this.slottedElements.forEach((element) => resizeObserver.unobserve(element));\r\n }\r\n\r\n render() {\r\n return (\r\n <div ref={(el) => (this.shadowContainerDiv = el)} class=\"dso-shadow-container\">\r\n <div\r\n ref={(el) => (this.scrollContainerDiv = el)}\r\n class={clsx(\"dso-scroll-container\", {\r\n [`dso-scroll-${this.scrollPosition}`]: this.scrollPosition !== \"noScroll\",\r\n })}\r\n onScroll={() => this._setScrollState()}\r\n >\r\n <slot></slot>\r\n </div>\r\n </div>\r\n );\r\n }\r\n}\r\n"],"mappings":"iIAAA,MAAMA,EAAgB,ksCCMtB,MAAMC,EAAiB,IAAIC,eACzBC,GACGC,GAAYA,EAAQC,SAASC,IAAK,IAAAC,EAAK,OAAAA,EAAAC,EAA8CF,MAAM,MAAAC,SAAA,SAAAA,EAAEE,iBAAiB,KAC/G,KAIJ,SAASD,GAA8CE,OACrDA,IAEA,GAAIA,EAAOC,sBAAsBC,YAAcC,EAAyBH,EAAOC,WAAWG,MAAO,CAC/F,OAAOJ,EAAOC,WAAWG,I,CAG3B,GAAIJ,EAAOK,eAAiBF,EAAyBH,EAAOK,eAAgB,CAC1E,OAAOL,EAAOK,a,CAGhB,OAAOC,SACT,CAEA,SAASH,EAAyBI,GAChC,OAAOA,EAAQC,UAAY,gBAC7B,C,MAOaC,EAAU,M,oEAEbC,KAAAC,iBAAmB,IAAIC,kBAAkBlB,GAC/CA,EAAQC,SAAQ,EAAGK,a,MACjB,MAAMO,GAAUV,EAAAG,EAAOK,iBAAa,MAAAR,SAAA,SAAAA,EAAEgB,QAAQ,kBAC9C,GAAIN,IAAYG,KAAKN,KAAM,CACzB,M,CAGFM,KAAKX,iBAAiB,M,oBAkBO,U,CAMjCe,wBACE,MAAMC,EAAiBL,KAAKM,oBAC5B,GAAIN,KAAKK,iBAAmBA,EAAgB,CAC1CL,KAAKK,eAAiBA,EAEtB,GAAIL,KAAKK,iBAAmB,OAASL,KAAKK,iBAAmB,SAAU,CACrEL,KAAKO,aAAaC,KAAK,CAAEC,UAAWT,KAAKK,gB,GAKnCK,sBACV,OAAOC,MAAMC,KAAKZ,KAAKN,KAAKmB,S,CAGtBP,oBACN,IAAKN,KAAKc,mBAAoB,CAC5B,MAAO,U,CAGT,MAAMC,aAAEA,EAAYC,aAAEA,EAAYC,UAAEA,GAAcjB,KAAKc,mBAEvD,GAAIC,GAAgBC,EAAc,CAChC,MAAO,U,CAGT,GAAIC,IAAc,EAAG,CACnB,MAAO,K,CAGT,GAAIF,EAAeE,EAAYD,EAAe,EAAG,CAC/C,MAAO,Q,CAGT,GAAIC,EAAY,EAAG,CACjB,MAAO,Q,CAGT,MAAO,U,CAGTC,mBACElB,KAAKC,iBAAiBkB,QAAQnB,KAAKN,KAAM,CACvC0B,cAAe,KACfC,WAAY,MACZC,UAAW,MACXC,QAAS,OAGX,GAAIvB,KAAKwB,8BAA8BC,eAAgB,CACrD5C,EAAesC,QAAQnB,KAAKwB,mB,CAG9BxB,KAAKU,gBAAgBzB,SAASY,GAAYhB,EAAesC,QAAQtB,I,CAGnE6B,uBACE,GAAI1B,KAAKwB,8BAA8BC,eAAgB,CACrD5C,EAAe8C,UAAU3B,KAAKwB,mB,CAGhCxB,KAAKC,iBAAiB2B,aAEtB5B,KAAKU,gBAAgBzB,SAASY,GAAYhB,EAAe8C,UAAU9B,I,CAGrEgC,SACE,OACEC,EAAA,OAAKC,IAAMC,GAAQhC,KAAKwB,mBAAqBQ,EAAKC,MAAM,wBACtDH,EAAA,OACEC,IAAMC,GAAQhC,KAAKc,mBAAqBkB,EACxCC,MAAOC,EAAK,uBAAwB,CAClC,CAAC,cAAclC,KAAKK,kBAAmBL,KAAKK,iBAAmB,aAEjE8B,SAAU,IAAMnC,KAAKX,mBAErByC,EAAA,c"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["responsiveElementCss","elementSizes","width","alias","ResponsiveElement","this","observer","ResizeObserver","entry","Error","size","_b","_a","find","s","contentRect","sizeAlias","dsoSizeChange","emit","async","componentWillLoad","observe","host","disconnectedCallback","unobserve","render","h","Host","small","medium","large"],"sources":["./src/components/responsive-element/responsive-element.scss?tag=dso-responsive-element&encapsulation=shadow","./src/components/responsive-element/responsive-element.tsx"],"sourcesContent":[":host {\r\n display: block;\r\n}\r\n","import { Component, ComponentInterface, Element, Event, EventEmitter, h, Host, Method, State } from \"@stencil/core\";\r\n\r\nimport { ElementSize, ResponsiveElementSize } from \"./responsive-element.interfaces\";\r\n\r\nconst elementSizes: [ElementSize, ElementSize, ElementSize] = [\r\n {\r\n width: 624,\r\n alias: \"large\",\r\n },\r\n {\r\n width: 375,\r\n alias: \"medium\",\r\n },\r\n {\r\n width: 0,\r\n alias: \"small\",\r\n },\r\n];\r\n\r\n@Component({\r\n tag: \"dso-responsive-element\",\r\n styleUrl: \"./responsive-element.scss\",\r\n shadow: true,\r\n})\r\nexport class ResponsiveElement implements ComponentInterface {\r\n @State()\r\n sizeAlias: ResponsiveElementSize = elementSizes[0].alias;\r\n\r\n @State()\r\n sizeWidth = 0;\r\n\r\n /**\r\n * Emitted when size has changed\r\n */\r\n @Event()\r\n dsoSizeChange!: EventEmitter<ResponsiveElementSize>;\r\n\r\n /**\r\n * The current size\r\n */\r\n @Method()\r\n async getSize(): Promise<ResponsiveElementSize> {\r\n return this.sizeAlias;\r\n }\r\n\r\n private observer = new ResizeObserver(([entry]) => {\r\n if (!entry) {\r\n throw new Error(\"No entry found\");\r\n }\r\n\r\n const size = elementSizes.find((s) => entry.contentRect.width >= s.width)?.alias ?? elementSizes[0].alias;\r\n\r\n this.sizeAlias = size;\r\n this.dsoSizeChange.emit(size);\r\n });\r\n\r\n @Element()\r\n host!: HTMLDsoResponsiveElementElement;\r\n\r\n componentWillLoad() {\r\n this.observer.observe(this.host);\r\n }\r\n\r\n disconnectedCallback() {\r\n this.observer.unobserve(this.host);\r\n }\r\n\r\n render() {\r\n return (\r\n <Host small={this.sizeAlias === \"small\"} medium={this.sizeAlias === \"medium\"} large={this.sizeAlias === \"large\"}>\r\n <slot />\r\n </Host>\r\n );\r\n }\r\n}\r\n"],"mappings":"2DAAA,MAAMA,EAAuB,uBCI7B,MAAMC,EAAwD,CAC5D,CACEC,MAAO,IACPC,MAAO,SAET,CACED,MAAO,IACPC,MAAO,UAET,CACED,MAAO,EACPC,MAAO,U,MASEC,EAAiB,M,sEAqBpBC,KAAAC,SAAW,IAAIC,gBAAe,EAAEC,M,QACtC,IAAKA,EAAO,CACV,MAAM,IAAIC,MAAM,iB,CAGlB,MAAMC,GAAOC,GAAAC,EAAAX,EAAaY,MAAMC,GAAMN,EAAMO,YAAYb,OAASY,EAAEZ,WAAM,MAAAU,SAAA,SAAAA,EAAET,SAAK,MAAAQ,SAAA,EAAAA,EAAIV,EAAa,GAAGE,MAEpGE,KAAKW,UAAYN,EACjBL,KAAKY,cAAcC,KAAKR,EAAK,I,eA3BIT,EAAa,GAAGE,M,eAGvC,C,CAYZgB,gBACE,OAAOd,KAAKW,S,CAiBdI,oBACEf,KAAKC,SAASe,QAAQhB,KAAKiB,K,CAG7BC,uBACElB,KAAKC,SAASkB,UAAUnB,KAAKiB,K,CAG/BG,SACE,OACEC,EAACC,EAAI,CAACC,MAAOvB,KAAKW,YAAc,QAASa,OAAQxB,KAAKW,YAAc,SAAUc,MAAOzB,KAAKW,YAAc,SACtGU,EAAA,a"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["infoButtonCss","InfoButton","async","_a","this","button","focus","handleToggle","e","active","dsoToggle","emit","originalEvent","render","h","Host","onMouseenter","hover","onMouseleave","type","class","clsx","secondary","toString","undefined","onClick","ref","element","icon","label"],"sources":["./src/components/info-button/info-button.scss?tag=dso-info-button&encapsulation=shadow","./src/components/info-button/info-button.tsx"],"sourcesContent":["@use \"~dso-toolkit/src/utilities\";\r\n@use \"~dso-toolkit/src/components/info-button\";\r\n\r\n:host {\r\n display: inline-block;\r\n}\r\n\r\n@include utilities.box-sizing();\r\n\r\n.sr-only {\r\n @include utilities.sr-only();\r\n}\r\n\r\nbutton {\r\n @include info-button.root();\r\n\r\n cursor: pointer;\r\n vertical-align: top;\r\n}\r\n\r\ndso-icon {\r\n display: block;\r\n}\r\n","import { h, Component, Event, Prop, EventEmitter, Method, Host, State } from \"@stencil/core\";\r\nimport clsx from \"clsx\";\r\n\r\nimport { InfoButtonToggleEvent } from \"./info-button.interfaces\";\r\n\r\n@Component({\r\n tag: \"dso-info-button\",\r\n shadow: true,\r\n styleUrl: \"info-button.scss\",\r\n})\r\nexport class InfoButton {\r\n private button?: HTMLButtonElement;\r\n\r\n /**\r\n * Whether the InfoButton is active.\r\n */\r\n @Prop({ mutable: true, reflect: true })\r\n active?: boolean;\r\n\r\n @State()\r\n hover = false;\r\n\r\n /**\r\n * For secondary Info Button.\r\n */\r\n @Prop()\r\n secondary?: boolean;\r\n\r\n /**\r\n * The label.\r\n */\r\n @Prop()\r\n label = \"Toelichting bij optie\";\r\n\r\n /**\r\n * Emitted when the user activates the Info Button.\r\n */\r\n @Event()\r\n dsoToggle!: EventEmitter<InfoButtonToggleEvent>;\r\n\r\n /**\r\n * To set focus to the toggle button.\r\n */\r\n @Method()\r\n async setFocus() {\r\n this.button?.focus();\r\n }\r\n\r\n private handleToggle(e: MouseEvent) {\r\n this.active = !this.active;\r\n this.dsoToggle.emit({ originalEvent: e, active: this.active });\r\n }\r\n\r\n render() {\r\n return (\r\n <Host onMouseenter={() => (this.hover = true)} onMouseleave={() => (this.hover = false)}>\r\n <button\r\n type=\"button\"\r\n class={clsx({ \"dso-open\": !!this.active, \"dso-info-secondary\": !!this.secondary })}\r\n aria-expanded={typeof this.active === \"boolean\" ? this.active.toString() : undefined}\r\n onClick={(e) => this.handleToggle(e)}\r\n ref={(element) => (this.button = element)}\r\n >\r\n <dso-icon icon={this.active || this.hover ? \"info-active\" : \"info\"}></dso-icon>\r\n <span class=\"sr-only\">{this.label}</span>\r\n </button>\r\n </Host>\r\n );\r\n }\r\n}\r\n"],"mappings":"6FAAA,MAAMA,EAAgB,iX,MCUTC,EAAU,M,+FAUb,M,oCAYA,uB,CAYRC,iB,OACEC,EAAAC,KAAKC,UAAM,MAAAF,SAAA,SAAAA,EAAEG,O,CAGPC,aAAaC,GACnBJ,KAAKK,QAAUL,KAAKK,OACpBL,KAAKM,UAAUC,KAAK,CAAEC,cAAeJ,EAAGC,OAAQL,KAAKK,Q,CAGvDI,SACE,OACEC,EAACC,EAAI,CAACC,aAAc,IAAOZ,KAAKa,MAAQ,KAAOC,aAAc,IAAOd,KAAKa,MAAQ,OAC/EH,EAAA,UACEK,KAAK,SACLC,MAAOC,EAAK,CAAE,aAAcjB,KAAKK,OAAQ,uBAAwBL,KAAKkB,YAAY,uBAC5DlB,KAAKK,SAAW,UAAYL,KAAKK,OAAOc,WAAaC,UAC3EC,QAAUjB,GAAMJ,KAAKG,aAAaC,GAClCkB,IAAMC,GAAavB,KAAKC,OAASsB,GAEjCb,EAAA,YAAUc,KAAMxB,KAAKK,QAAUL,KAAKa,MAAQ,cAAgB,SAC5DH,EAAA,QAAMM,MAAM,WAAWhB,KAAKyB,Q"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"file":"create-identifier-51ee50c4.js","mappings":"AAAA;;;SAGgB,IAAI;EAClB,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9C,CAAC;AAED;;;;SAIgB,gBAAgB,CAAC,MAAc;EAC7C,OAAO,GAAG,MAAM,IAAI,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,IAAI,EAAE,IAAI,IAAI,EAAE,IAAI,IAAI,EAAE,IAAI,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,CAAC;AAClG;;;;","names":[],"sources":["./src/utils/create-identifier.ts"],"sourcesContent":["/**\r\n * Form random hash\r\n */\r\nexport function chr4() {\r\n return Math.random().toString(16).slice(-4);\r\n}\r\n\r\n/**\r\n * Create random identifier with a prefix\r\n * @param prefix\r\n */\r\nexport function createIdentifier(prefix: string): string {\r\n return `${prefix}-${chr4()}${chr4()}-${chr4()}-${chr4()}-${chr4()}-${chr4()}${chr4()}${chr4()}`;\r\n}\r\n"],"version":3}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"file":"focus-trap.esm-2a49a38f.js","mappings":"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","names":[],"sources":["../../node_modules/focus-trap/dist/focus-trap.esm.js"],"sourcesContent":["/*!\n* focus-trap 7.4.3\n* @license MIT, https://github.com/focus-trap/focus-trap/blob/master/LICENSE\n*/\nimport { isFocusable, tabbable, focusable, isTabbable } from 'tabbable';\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n}\nfunction _defineProperty(obj, key, value) {\n key = _toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _toPrimitive(input, hint) {\n if (typeof input !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (typeof res !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\nfunction _toPropertyKey(arg) {\n var key = _toPrimitive(arg, \"string\");\n return typeof key === \"symbol\" ? key : String(key);\n}\n\nvar activeFocusTraps = {\n activateTrap: function activateTrap(trapStack, trap) {\n if (trapStack.length > 0) {\n var activeTrap = trapStack[trapStack.length - 1];\n if (activeTrap !== trap) {\n activeTrap.pause();\n }\n }\n var trapIndex = trapStack.indexOf(trap);\n if (trapIndex === -1) {\n trapStack.push(trap);\n } else {\n // move this existing trap to the front of the queue\n trapStack.splice(trapIndex, 1);\n trapStack.push(trap);\n }\n },\n deactivateTrap: function deactivateTrap(trapStack, trap) {\n var trapIndex = trapStack.indexOf(trap);\n if (trapIndex !== -1) {\n trapStack.splice(trapIndex, 1);\n }\n if (trapStack.length > 0) {\n trapStack[trapStack.length - 1].unpause();\n }\n }\n};\nvar isSelectableInput = function isSelectableInput(node) {\n return node.tagName && node.tagName.toLowerCase() === 'input' && typeof node.select === 'function';\n};\nvar isEscapeEvent = function isEscapeEvent(e) {\n return e.key === 'Escape' || e.key === 'Esc' || e.keyCode === 27;\n};\nvar isTabEvent = function isTabEvent(e) {\n return e.key === 'Tab' || e.keyCode === 9;\n};\n\n// checks for TAB by default\nvar isKeyForward = function isKeyForward(e) {\n return isTabEvent(e) && !e.shiftKey;\n};\n\n// checks for SHIFT+TAB by default\nvar isKeyBackward = function isKeyBackward(e) {\n return isTabEvent(e) && e.shiftKey;\n};\nvar delay = function delay(fn) {\n return setTimeout(fn, 0);\n};\n\n// Array.find/findIndex() are not supported on IE; this replicates enough\n// of Array.findIndex() for our needs\nvar findIndex = function findIndex(arr, fn) {\n var idx = -1;\n arr.every(function (value, i) {\n if (fn(value)) {\n idx = i;\n return false; // break\n }\n\n return true; // next\n });\n\n return idx;\n};\n\n/**\n * Get an option's value when it could be a plain value, or a handler that provides\n * the value.\n * @param {*} value Option's value to check.\n * @param {...*} [params] Any parameters to pass to the handler, if `value` is a function.\n * @returns {*} The `value`, or the handler's returned value.\n */\nvar valueOrHandler = function valueOrHandler(value) {\n for (var _len = arguments.length, params = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n params[_key - 1] = arguments[_key];\n }\n return typeof value === 'function' ? value.apply(void 0, params) : value;\n};\nvar getActualTarget = function getActualTarget(event) {\n // NOTE: If the trap is _inside_ a shadow DOM, event.target will always be the\n // shadow host. However, event.target.composedPath() will be an array of\n // nodes \"clicked\" from inner-most (the actual element inside the shadow) to\n // outer-most (the host HTML document). If we have access to composedPath(),\n // then use its first element; otherwise, fall back to event.target (and\n // this only works for an _open_ shadow DOM; otherwise,\n // composedPath()[0] === event.target always).\n return event.target.shadowRoot && typeof event.composedPath === 'function' ? event.composedPath()[0] : event.target;\n};\n\n// NOTE: this must be _outside_ `createFocusTrap()` to make sure all traps in this\n// current instance use the same stack if `userOptions.trapStack` isn't specified\nvar internalTrapStack = [];\nvar createFocusTrap = function createFocusTrap(elements, userOptions) {\n // SSR: a live trap shouldn't be created in this type of environment so this\n // should be safe code to execute if the `document` option isn't specified\n var doc = (userOptions === null || userOptions === void 0 ? void 0 : userOptions.document) || document;\n var trapStack = (userOptions === null || userOptions === void 0 ? void 0 : userOptions.trapStack) || internalTrapStack;\n var config = _objectSpread2({\n returnFocusOnDeactivate: true,\n escapeDeactivates: true,\n delayInitialFocus: true,\n isKeyForward: isKeyForward,\n isKeyBackward: isKeyBackward\n }, userOptions);\n var state = {\n // containers given to createFocusTrap()\n // @type {Array<HTMLElement>}\n containers: [],\n // list of objects identifying tabbable nodes in `containers` in the trap\n // NOTE: it's possible that a group has no tabbable nodes if nodes get removed while the trap\n // is active, but the trap should never get to a state where there isn't at least one group\n // with at least one tabbable node in it (that would lead to an error condition that would\n // result in an error being thrown)\n // @type {Array<{\n // container: HTMLElement,\n // tabbableNodes: Array<HTMLElement>, // empty if none\n // focusableNodes: Array<HTMLElement>, // empty if none\n // firstTabbableNode: HTMLElement|null,\n // lastTabbableNode: HTMLElement|null,\n // nextTabbableNode: (node: HTMLElement, forward: boolean) => HTMLElement|undefined\n // }>}\n containerGroups: [],\n // same order/length as `containers` list\n\n // references to objects in `containerGroups`, but only those that actually have\n // tabbable nodes in them\n // NOTE: same order as `containers` and `containerGroups`, but __not necessarily__\n // the same length\n tabbableGroups: [],\n nodeFocusedBeforeActivation: null,\n mostRecentlyFocusedNode: null,\n active: false,\n paused: false,\n // timer ID for when delayInitialFocus is true and initial focus in this trap\n // has been delayed during activation\n delayInitialFocusTimer: undefined\n };\n var trap; // eslint-disable-line prefer-const -- some private functions reference it, and its methods reference private functions, so we must declare here and define later\n\n /**\n * Gets a configuration option value.\n * @param {Object|undefined} configOverrideOptions If true, and option is defined in this set,\n * value will be taken from this object. Otherwise, value will be taken from base configuration.\n * @param {string} optionName Name of the option whose value is sought.\n * @param {string|undefined} [configOptionName] Name of option to use __instead of__ `optionName`\n * IIF `configOverrideOptions` is not defined. Otherwise, `optionName` is used.\n */\n var getOption = function getOption(configOverrideOptions, optionName, configOptionName) {\n return configOverrideOptions && configOverrideOptions[optionName] !== undefined ? configOverrideOptions[optionName] : config[configOptionName || optionName];\n };\n\n /**\n * Finds the index of the container that contains the element.\n * @param {HTMLElement} element\n * @param {Event} [event]\n * @returns {number} Index of the container in either `state.containers` or\n * `state.containerGroups` (the order/length of these lists are the same); -1\n * if the element isn't found.\n */\n var findContainerIndex = function findContainerIndex(element, event) {\n var composedPath = typeof (event === null || event === void 0 ? void 0 : event.composedPath) === 'function' ? event.composedPath() : undefined;\n // NOTE: search `containerGroups` because it's possible a group contains no tabbable\n // nodes, but still contains focusable nodes (e.g. if they all have `tabindex=-1`)\n // and we still need to find the element in there\n return state.containerGroups.findIndex(function (_ref) {\n var container = _ref.container,\n tabbableNodes = _ref.tabbableNodes;\n return container.contains(element) || ( // fall back to explicit tabbable search which will take into consideration any\n // web components if the `tabbableOptions.getShadowRoot` option was used for\n // the trap, enabling shadow DOM support in tabbable (`Node.contains()` doesn't\n // look inside web components even if open)\n composedPath === null || composedPath === void 0 ? void 0 : composedPath.includes(container)) || tabbableNodes.find(function (node) {\n return node === element;\n });\n });\n };\n\n /**\n * Gets the node for the given option, which is expected to be an option that\n * can be either a DOM node, a string that is a selector to get a node, `false`\n * (if a node is explicitly NOT given), or a function that returns any of these\n * values.\n * @param {string} optionName\n * @returns {undefined | false | HTMLElement | SVGElement} Returns\n * `undefined` if the option is not specified; `false` if the option\n * resolved to `false` (node explicitly not given); otherwise, the resolved\n * DOM node.\n * @throws {Error} If the option is set, not `false`, and is not, or does not\n * resolve to a node.\n */\n var getNodeForOption = function getNodeForOption(optionName) {\n var optionValue = config[optionName];\n if (typeof optionValue === 'function') {\n for (var _len2 = arguments.length, params = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n params[_key2 - 1] = arguments[_key2];\n }\n optionValue = optionValue.apply(void 0, params);\n }\n if (optionValue === true) {\n optionValue = undefined; // use default value\n }\n\n if (!optionValue) {\n if (optionValue === undefined || optionValue === false) {\n return optionValue;\n }\n // else, empty string (invalid), null (invalid), 0 (invalid)\n\n throw new Error(\"`\".concat(optionName, \"` was specified but was not a node, or did not return a node\"));\n }\n var node = optionValue; // could be HTMLElement, SVGElement, or non-empty string at this point\n\n if (typeof optionValue === 'string') {\n node = doc.querySelector(optionValue); // resolve to node, or null if fails\n if (!node) {\n throw new Error(\"`\".concat(optionName, \"` as selector refers to no known node\"));\n }\n }\n return node;\n };\n var getInitialFocusNode = function getInitialFocusNode() {\n var node = getNodeForOption('initialFocus');\n\n // false explicitly indicates we want no initialFocus at all\n if (node === false) {\n return false;\n }\n if (node === undefined || !isFocusable(node, config.tabbableOptions)) {\n // option not specified nor focusable: use fallback options\n if (findContainerIndex(doc.activeElement) >= 0) {\n node = doc.activeElement;\n } else {\n var firstTabbableGroup = state.tabbableGroups[0];\n var firstTabbableNode = firstTabbableGroup && firstTabbableGroup.firstTabbableNode;\n\n // NOTE: `fallbackFocus` option function cannot return `false` (not supported)\n node = firstTabbableNode || getNodeForOption('fallbackFocus');\n }\n }\n if (!node) {\n throw new Error('Your focus-trap needs to have at least one focusable element');\n }\n return node;\n };\n var updateTabbableNodes = function updateTabbableNodes() {\n state.containerGroups = state.containers.map(function (container) {\n var tabbableNodes = tabbable(container, config.tabbableOptions);\n\n // NOTE: if we have tabbable nodes, we must have focusable nodes; focusable nodes\n // are a superset of tabbable nodes\n var focusableNodes = focusable(container, config.tabbableOptions);\n return {\n container: container,\n tabbableNodes: tabbableNodes,\n focusableNodes: focusableNodes,\n firstTabbableNode: tabbableNodes.length > 0 ? tabbableNodes[0] : null,\n lastTabbableNode: tabbableNodes.length > 0 ? tabbableNodes[tabbableNodes.length - 1] : null,\n /**\n * Finds the __tabbable__ node that follows the given node in the specified direction,\n * in this container, if any.\n * @param {HTMLElement} node\n * @param {boolean} [forward] True if going in forward tab order; false if going\n * in reverse.\n * @returns {HTMLElement|undefined} The next tabbable node, if any.\n */\n nextTabbableNode: function nextTabbableNode(node) {\n var forward = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n // NOTE: If tabindex is positive (in order to manipulate the tab order separate\n // from the DOM order), this __will not work__ because the list of focusableNodes,\n // while it contains tabbable nodes, does not sort its nodes in any order other\n // than DOM order, because it can't: Where would you place focusable (but not\n // tabbable) nodes in that order? They have no order, because they aren't tabbale...\n // Support for positive tabindex is already broken and hard to manage (possibly\n // not supportable, TBD), so this isn't going to make things worse than they\n // already are, and at least makes things better for the majority of cases where\n // tabindex is either 0/unset or negative.\n // FYI, positive tabindex issue: https://github.com/focus-trap/focus-trap/issues/375\n var nodeIdx = focusableNodes.findIndex(function (n) {\n return n === node;\n });\n if (nodeIdx < 0) {\n return undefined;\n }\n if (forward) {\n return focusableNodes.slice(nodeIdx + 1).find(function (n) {\n return isTabbable(n, config.tabbableOptions);\n });\n }\n return focusableNodes.slice(0, nodeIdx).reverse().find(function (n) {\n return isTabbable(n, config.tabbableOptions);\n });\n }\n };\n });\n state.tabbableGroups = state.containerGroups.filter(function (group) {\n return group.tabbableNodes.length > 0;\n });\n\n // throw if no groups have tabbable nodes and we don't have a fallback focus node either\n if (state.tabbableGroups.length <= 0 && !getNodeForOption('fallbackFocus') // returning false not supported for this option\n ) {\n throw new Error('Your focus-trap must have at least one container with at least one tabbable node in it at all times');\n }\n };\n var tryFocus = function tryFocus(node) {\n if (node === false) {\n return;\n }\n if (node === doc.activeElement) {\n return;\n }\n if (!node || !node.focus) {\n tryFocus(getInitialFocusNode());\n return;\n }\n node.focus({\n preventScroll: !!config.preventScroll\n });\n state.mostRecentlyFocusedNode = node;\n if (isSelectableInput(node)) {\n node.select();\n }\n };\n var getReturnFocusNode = function getReturnFocusNode(previousActiveElement) {\n var node = getNodeForOption('setReturnFocus', previousActiveElement);\n return node ? node : node === false ? false : previousActiveElement;\n };\n\n // This needs to be done on mousedown and touchstart instead of click\n // so that it precedes the focus event.\n var checkPointerDown = function checkPointerDown(e) {\n var target = getActualTarget(e);\n if (findContainerIndex(target, e) >= 0) {\n // allow the click since it ocurred inside the trap\n return;\n }\n if (valueOrHandler(config.clickOutsideDeactivates, e)) {\n // immediately deactivate the trap\n trap.deactivate({\n // NOTE: by setting `returnFocus: false`, deactivate() will do nothing,\n // which will result in the outside click setting focus to the node\n // that was clicked (and if not focusable, to \"nothing\"); by setting\n // `returnFocus: true`, we'll attempt to re-focus the node originally-focused\n // on activation (or the configured `setReturnFocus` node), whether the\n // outside click was on a focusable node or not\n returnFocus: config.returnFocusOnDeactivate\n });\n return;\n }\n\n // This is needed for mobile devices.\n // (If we'll only let `click` events through,\n // then on mobile they will be blocked anyways if `touchstart` is blocked.)\n if (valueOrHandler(config.allowOutsideClick, e)) {\n // allow the click outside the trap to take place\n return;\n }\n\n // otherwise, prevent the click\n e.preventDefault();\n };\n\n // In case focus escapes the trap for some strange reason, pull it back in.\n var checkFocusIn = function checkFocusIn(e) {\n var target = getActualTarget(e);\n var targetContained = findContainerIndex(target, e) >= 0;\n\n // In Firefox when you Tab out of an iframe the Document is briefly focused.\n if (targetContained || target instanceof Document) {\n if (targetContained) {\n state.mostRecentlyFocusedNode = target;\n }\n } else {\n // escaped! pull it back in to where it just left\n e.stopImmediatePropagation();\n tryFocus(state.mostRecentlyFocusedNode || getInitialFocusNode());\n }\n };\n\n // Hijack key nav events on the first and last focusable nodes of the trap,\n // in order to prevent focus from escaping. If it escapes for even a\n // moment it can end up scrolling the page and causing confusion so we\n // kind of need to capture the action at the keydown phase.\n var checkKeyNav = function checkKeyNav(event) {\n var isBackward = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var target = getActualTarget(event);\n updateTabbableNodes();\n var destinationNode = null;\n if (state.tabbableGroups.length > 0) {\n // make sure the target is actually contained in a group\n // NOTE: the target may also be the container itself if it's focusable\n // with tabIndex='-1' and was given initial focus\n var containerIndex = findContainerIndex(target, event);\n var containerGroup = containerIndex >= 0 ? state.containerGroups[containerIndex] : undefined;\n if (containerIndex < 0) {\n // target not found in any group: quite possible focus has escaped the trap,\n // so bring it back into...\n if (isBackward) {\n // ...the last node in the last group\n destinationNode = state.tabbableGroups[state.tabbableGroups.length - 1].lastTabbableNode;\n } else {\n // ...the first node in the first group\n destinationNode = state.tabbableGroups[0].firstTabbableNode;\n }\n } else if (isBackward) {\n // REVERSE\n\n // is the target the first tabbable node in a group?\n var startOfGroupIndex = findIndex(state.tabbableGroups, function (_ref2) {\n var firstTabbableNode = _ref2.firstTabbableNode;\n return target === firstTabbableNode;\n });\n if (startOfGroupIndex < 0 && (containerGroup.container === target || isFocusable(target, config.tabbableOptions) && !isTabbable(target, config.tabbableOptions) && !containerGroup.nextTabbableNode(target, false))) {\n // an exception case where the target is either the container itself, or\n // a non-tabbable node that was given focus (i.e. tabindex is negative\n // and user clicked on it or node was programmatically given focus)\n // and is not followed by any other tabbable node, in which\n // case, we should handle shift+tab as if focus were on the container's\n // first tabbable node, and go to the last tabbable node of the LAST group\n startOfGroupIndex = containerIndex;\n }\n if (startOfGroupIndex >= 0) {\n // YES: then shift+tab should go to the last tabbable node in the\n // previous group (and wrap around to the last tabbable node of\n // the LAST group if it's the first tabbable node of the FIRST group)\n var destinationGroupIndex = startOfGroupIndex === 0 ? state.tabbableGroups.length - 1 : startOfGroupIndex - 1;\n var destinationGroup = state.tabbableGroups[destinationGroupIndex];\n destinationNode = destinationGroup.lastTabbableNode;\n } else if (!isTabEvent(event)) {\n // user must have customized the nav keys so we have to move focus manually _within_\n // the active group: do this based on the order determined by tabbable()\n destinationNode = containerGroup.nextTabbableNode(target, false);\n }\n } else {\n // FORWARD\n\n // is the target the last tabbable node in a group?\n var lastOfGroupIndex = findIndex(state.tabbableGroups, function (_ref3) {\n var lastTabbableNode = _ref3.lastTabbableNode;\n return target === lastTabbableNode;\n });\n if (lastOfGroupIndex < 0 && (containerGroup.container === target || isFocusable(target, config.tabbableOptions) && !isTabbable(target, config.tabbableOptions) && !containerGroup.nextTabbableNode(target))) {\n // an exception case where the target is the container itself, or\n // a non-tabbable node that was given focus (i.e. tabindex is negative\n // and user clicked on it or node was programmatically given focus)\n // and is not followed by any other tabbable node, in which\n // case, we should handle tab as if focus were on the container's\n // last tabbable node, and go to the first tabbable node of the FIRST group\n lastOfGroupIndex = containerIndex;\n }\n if (lastOfGroupIndex >= 0) {\n // YES: then tab should go to the first tabbable node in the next\n // group (and wrap around to the first tabbable node of the FIRST\n // group if it's the last tabbable node of the LAST group)\n var _destinationGroupIndex = lastOfGroupIndex === state.tabbableGroups.length - 1 ? 0 : lastOfGroupIndex + 1;\n var _destinationGroup = state.tabbableGroups[_destinationGroupIndex];\n destinationNode = _destinationGroup.firstTabbableNode;\n } else if (!isTabEvent(event)) {\n // user must have customized the nav keys so we have to move focus manually _within_\n // the active group: do this based on the order determined by tabbable()\n destinationNode = containerGroup.nextTabbableNode(target);\n }\n }\n } else {\n // no groups available\n // NOTE: the fallbackFocus option does not support returning false to opt-out\n destinationNode = getNodeForOption('fallbackFocus');\n }\n if (destinationNode) {\n if (isTabEvent(event)) {\n // since tab natively moves focus, we wouldn't have a destination node unless we\n // were on the edge of a container and had to move to the next/previous edge, in\n // which case we want to prevent default to keep the browser from moving focus\n // to where it normally would\n event.preventDefault();\n }\n tryFocus(destinationNode);\n }\n // else, let the browser take care of [shift+]tab and move the focus\n };\n\n var checkKey = function checkKey(event) {\n if (isEscapeEvent(event) && valueOrHandler(config.escapeDeactivates, event) !== false) {\n event.preventDefault();\n trap.deactivate();\n return;\n }\n if (config.isKeyForward(event) || config.isKeyBackward(event)) {\n checkKeyNav(event, config.isKeyBackward(event));\n }\n };\n var checkClick = function checkClick(e) {\n var target = getActualTarget(e);\n if (findContainerIndex(target, e) >= 0) {\n return;\n }\n if (valueOrHandler(config.clickOutsideDeactivates, e)) {\n return;\n }\n if (valueOrHandler(config.allowOutsideClick, e)) {\n return;\n }\n e.preventDefault();\n e.stopImmediatePropagation();\n };\n\n //\n // EVENT LISTENERS\n //\n\n var addListeners = function addListeners() {\n if (!state.active) {\n return;\n }\n\n // There can be only one listening focus trap at a time\n activeFocusTraps.activateTrap(trapStack, trap);\n\n // Delay ensures that the focused element doesn't capture the event\n // that caused the focus trap activation.\n state.delayInitialFocusTimer = config.delayInitialFocus ? delay(function () {\n tryFocus(getInitialFocusNode());\n }) : tryFocus(getInitialFocusNode());\n doc.addEventListener('focusin', checkFocusIn, true);\n doc.addEventListener('mousedown', checkPointerDown, {\n capture: true,\n passive: false\n });\n doc.addEventListener('touchstart', checkPointerDown, {\n capture: true,\n passive: false\n });\n doc.addEventListener('click', checkClick, {\n capture: true,\n passive: false\n });\n doc.addEventListener('keydown', checkKey, {\n capture: true,\n passive: false\n });\n return trap;\n };\n var removeListeners = function removeListeners() {\n if (!state.active) {\n return;\n }\n doc.removeEventListener('focusin', checkFocusIn, true);\n doc.removeEventListener('mousedown', checkPointerDown, true);\n doc.removeEventListener('touchstart', checkPointerDown, true);\n doc.removeEventListener('click', checkClick, true);\n doc.removeEventListener('keydown', checkKey, true);\n return trap;\n };\n\n //\n // MUTATION OBSERVER\n //\n\n var checkDomRemoval = function checkDomRemoval(mutations) {\n var isFocusedNodeRemoved = mutations.some(function (mutation) {\n var removedNodes = Array.from(mutation.removedNodes);\n return removedNodes.some(function (node) {\n return node === state.mostRecentlyFocusedNode;\n });\n });\n\n // If the currently focused is removed then browsers will move focus to the\n // <body> element. If this happens, try to move focus back into the trap.\n if (isFocusedNodeRemoved) {\n tryFocus(getInitialFocusNode());\n }\n };\n\n // Use MutationObserver - if supported - to detect if focused node is removed\n // from the DOM.\n var mutationObserver = typeof window !== 'undefined' && 'MutationObserver' in window ? new MutationObserver(checkDomRemoval) : undefined;\n var updateObservedNodes = function updateObservedNodes() {\n if (!mutationObserver) {\n return;\n }\n mutationObserver.disconnect();\n if (state.active && !state.paused) {\n state.containers.map(function (container) {\n mutationObserver.observe(container, {\n subtree: true,\n childList: true\n });\n });\n }\n };\n\n //\n // TRAP DEFINITION\n //\n\n trap = {\n get active() {\n return state.active;\n },\n get paused() {\n return state.paused;\n },\n activate: function activate(activateOptions) {\n if (state.active) {\n return this;\n }\n var onActivate = getOption(activateOptions, 'onActivate');\n var onPostActivate = getOption(activateOptions, 'onPostActivate');\n var checkCanFocusTrap = getOption(activateOptions, 'checkCanFocusTrap');\n if (!checkCanFocusTrap) {\n updateTabbableNodes();\n }\n state.active = true;\n state.paused = false;\n state.nodeFocusedBeforeActivation = doc.activeElement;\n onActivate === null || onActivate === void 0 ? void 0 : onActivate();\n var finishActivation = function finishActivation() {\n if (checkCanFocusTrap) {\n updateTabbableNodes();\n }\n addListeners();\n updateObservedNodes();\n onPostActivate === null || onPostActivate === void 0 ? void 0 : onPostActivate();\n };\n if (checkCanFocusTrap) {\n checkCanFocusTrap(state.containers.concat()).then(finishActivation, finishActivation);\n return this;\n }\n finishActivation();\n return this;\n },\n deactivate: function deactivate(deactivateOptions) {\n if (!state.active) {\n return this;\n }\n var options = _objectSpread2({\n onDeactivate: config.onDeactivate,\n onPostDeactivate: config.onPostDeactivate,\n checkCanReturnFocus: config.checkCanReturnFocus\n }, deactivateOptions);\n clearTimeout(state.delayInitialFocusTimer); // noop if undefined\n state.delayInitialFocusTimer = undefined;\n removeListeners();\n state.active = false;\n state.paused = false;\n updateObservedNodes();\n activeFocusTraps.deactivateTrap(trapStack, trap);\n var onDeactivate = getOption(options, 'onDeactivate');\n var onPostDeactivate = getOption(options, 'onPostDeactivate');\n var checkCanReturnFocus = getOption(options, 'checkCanReturnFocus');\n var returnFocus = getOption(options, 'returnFocus', 'returnFocusOnDeactivate');\n onDeactivate === null || onDeactivate === void 0 ? void 0 : onDeactivate();\n var finishDeactivation = function finishDeactivation() {\n delay(function () {\n if (returnFocus) {\n tryFocus(getReturnFocusNode(state.nodeFocusedBeforeActivation));\n }\n onPostDeactivate === null || onPostDeactivate === void 0 ? void 0 : onPostDeactivate();\n });\n };\n if (returnFocus && checkCanReturnFocus) {\n checkCanReturnFocus(getReturnFocusNode(state.nodeFocusedBeforeActivation)).then(finishDeactivation, finishDeactivation);\n return this;\n }\n finishDeactivation();\n return this;\n },\n pause: function pause(pauseOptions) {\n if (state.paused || !state.active) {\n return this;\n }\n var onPause = getOption(pauseOptions, 'onPause');\n var onPostPause = getOption(pauseOptions, 'onPostPause');\n state.paused = true;\n onPause === null || onPause === void 0 ? void 0 : onPause();\n removeListeners();\n updateObservedNodes();\n onPostPause === null || onPostPause === void 0 ? void 0 : onPostPause();\n return this;\n },\n unpause: function unpause(unpauseOptions) {\n if (!state.paused || !state.active) {\n return this;\n }\n var onUnpause = getOption(unpauseOptions, 'onUnpause');\n var onPostUnpause = getOption(unpauseOptions, 'onPostUnpause');\n state.paused = false;\n onUnpause === null || onUnpause === void 0 ? void 0 : onUnpause();\n updateTabbableNodes();\n addListeners();\n updateObservedNodes();\n onPostUnpause === null || onPostUnpause === void 0 ? void 0 : onPostUnpause();\n return this;\n },\n updateContainerElements: function updateContainerElements(containerElements) {\n var elementsAsArray = [].concat(containerElements).filter(Boolean);\n state.containers = elementsAsArray.map(function (element) {\n return typeof element === 'string' ? doc.querySelector(element) : element;\n });\n if (state.active) {\n updateTabbableNodes();\n }\n updateObservedNodes();\n return this;\n }\n };\n\n // initialize container elements\n trap.updateContainerElements(elements);\n return trap;\n};\n\nexport { createFocusTrap };\n//# sourceMappingURL=focus-trap.esm.js.map\n"],"version":3}
|