@dso-toolkit/core 62.3.2 → 62.5.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/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-action-list-item.cjs.entry.js +2 -2
- package/dist/cjs/dso-action-list-item.cjs.entry.js.map +1 -1
- package/dist/cjs/dso-action-list.cjs.entry.js +2 -2
- package/dist/cjs/dso-action-list.cjs.entry.js.map +1 -1
- package/dist/cjs/dso-alert_7.cjs.entry.js +6 -6
- package/dist/cjs/dso-alert_7.cjs.entry.js.map +1 -1
- package/dist/cjs/dso-annotation-output_3.cjs.entry.js +2 -2
- package/dist/cjs/dso-attachments-counter.cjs.entry.js +1 -1
- package/dist/cjs/dso-autosuggest.cjs.entry.js +3 -3
- package/dist/cjs/dso-banner.cjs.entry.js +1 -1
- package/dist/cjs/dso-card-container.cjs.entry.js +1 -1
- package/dist/cjs/dso-card.cjs.entry.js +1 -1
- package/dist/cjs/dso-date-picker-legacy.cjs.entry.js +1 -1
- package/dist/cjs/dso-date-picker-legacy.cjs.entry.js.map +1 -1
- package/dist/cjs/dso-date-picker.cjs.entry.js +1 -1
- package/dist/cjs/dso-dropdown-menu.cjs.entry.js +2 -2
- package/dist/cjs/dso-expandable.cjs.entry.js +2 -2
- package/dist/cjs/dso-expandable.cjs.entry.js.map +1 -1
- package/dist/cjs/dso-header.cjs.entry.js +2 -2
- package/dist/cjs/dso-header.cjs.entry.js.map +1 -1
- package/dist/cjs/dso-helpcenter-panel.cjs.entry.js +2 -2
- package/dist/cjs/dso-highlight-box.cjs.entry.js +1 -1
- package/dist/cjs/dso-icon.cjs.entry.js +7 -1
- package/dist/cjs/dso-icon.cjs.entry.js.map +1 -1
- package/dist/cjs/dso-info-button.cjs.entry.js +1 -1
- package/dist/cjs/dso-info_2.cjs.entry.js +1 -1
- package/dist/cjs/dso-list-button.cjs.entry.js +2 -2
- package/dist/cjs/dso-logo.cjs.entry.js +1 -1
- package/dist/cjs/dso-map-base-layers.cjs.entry.js +2 -2
- package/dist/cjs/dso-map-controls.cjs.entry.js +1 -1
- package/dist/cjs/dso-map-overlays.cjs.entry.js +2 -2
- package/dist/cjs/dso-mark-bar.cjs.entry.js +49 -0
- package/dist/cjs/dso-mark-bar.cjs.entry.js.map +1 -0
- package/dist/cjs/dso-modal.cjs.entry.js +2 -2
- package/dist/cjs/dso-pagination.cjs.entry.js +1 -1
- 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-indicator.cjs.entry.js +1 -1
- package/dist/cjs/dso-responsive-element.cjs.entry.js +1 -1
- package/dist/cjs/dso-scrollable.cjs.entry.js +2 -2
- package/dist/cjs/dso-scrollable.cjs.entry.js.map +1 -1
- package/dist/cjs/dso-toggletip.cjs.entry.js +1 -1
- package/dist/cjs/dso-toolkit.cjs.js +3 -3
- package/dist/cjs/dso-toolkit.cjs.js.map +1 -1
- package/dist/cjs/dso-tooltip.cjs.entry.js +2 -2
- package/dist/cjs/dso-tree-view.cjs.entry.js +2 -2
- 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-b6bba312.js → focus-trap.esm-6cff35a7.js} +45 -26
- package/dist/cjs/focus-trap.esm-6cff35a7.js.map +1 -0
- package/dist/cjs/index-1b083a00.js +100 -0
- package/dist/cjs/index-1b083a00.js.map +1 -0
- package/dist/cjs/{index-d46ec033.js → index-2556c4c6.js} +312 -127
- package/dist/cjs/index-2556c4c6.js.map +1 -0
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/{v4-abb5dc0c.js → v4-c23234d2.js} +2 -2
- package/dist/cjs/v4-c23234d2.js.map +1 -0
- package/dist/collection/collection-manifest.json +3 -2
- package/dist/collection/components/accordion/components/accordion-section.js.map +1 -1
- package/dist/collection/components/action-list/action-list.css +6 -1
- package/dist/collection/components/action-list/components/action-list-item.css +6 -1
- package/dist/collection/components/alert/alert.js +1 -3
- package/dist/collection/components/alert/alert.js.map +1 -1
- package/dist/collection/components/date-picker-legacy/utils/month-range.js.map +1 -1
- package/dist/collection/components/document-component-demo/document-component.demo.js.map +1 -1
- package/dist/collection/components/expandable/expandable.js.map +1 -1
- package/dist/collection/components/header/header.js.map +1 -1
- package/dist/collection/components/icon/icon.js +2 -0
- package/dist/collection/components/icon/icon.js.map +1 -1
- package/dist/collection/components/image-overlay/image-overlay.js.map +1 -1
- package/dist/collection/components/label/label.js +1 -1
- package/dist/collection/components/label/label.js.map +1 -1
- package/dist/collection/components/mark-bar/mark-bar.css +789 -0
- package/dist/collection/components/mark-bar/mark-bar.interfaces.js +2 -0
- package/dist/collection/components/mark-bar/mark-bar.interfaces.js.map +1 -0
- package/dist/collection/components/mark-bar/mark-bar.js +205 -0
- package/dist/collection/components/mark-bar/mark-bar.js.map +1 -0
- package/dist/collection/components/pagination/pagination.js.map +1 -1
- package/dist/collection/components/scrollable/scrollable.js.map +1 -1
- package/dist/collection/components/table/table.css +1 -0
- package/dist/collection/components/tree-view/tree-item.js +1 -1
- package/dist/collection/components/tree-view/tree-item.js.map +1 -1
- package/dist/collection/components/tree-view/tree-view.js.map +1 -1
- package/dist/collection/components/viewer-grid/components/sizing-buttons.js.map +1 -1
- package/dist/collection/components/viewer-grid/viewer-grid.css +14 -4
- package/dist/collection/components/viewer-grid/viewer-grid.js.map +1 -1
- package/dist/components/dropdown-menu.js +5 -0
- 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 +3 -0
- package/dist/components/dso-accordion.js.map +1 -1
- package/dist/components/dso-action-list-item.js +1 -1
- package/dist/components/dso-action-list-item.js.map +1 -1
- package/dist/components/dso-action-list.js +1 -1
- package/dist/components/dso-action-list.js.map +1 -1
- package/dist/components/dso-autosuggest.js +3 -1
- package/dist/components/dso-autosuggest.js.map +1 -1
- package/dist/components/dso-date-picker-legacy.js.map +1 -1
- package/dist/components/dso-header.js +2 -0
- package/dist/components/dso-header.js.map +1 -1
- package/dist/components/dso-helpcenter-panel.js +4 -1
- package/dist/components/dso-helpcenter-panel.js.map +1 -1
- package/dist/components/dso-list-button.js +2 -0
- package/dist/components/dso-list-button.js.map +1 -1
- package/dist/components/dso-map-controls.js +2 -0
- package/dist/components/dso-map-controls.js.map +1 -1
- package/dist/components/dso-mark-bar.d.ts +11 -0
- package/dist/components/dso-mark-bar.js +74 -0
- package/dist/components/dso-mark-bar.js.map +1 -0
- package/dist/components/dso-pagination.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 +5 -1
- package/dist/components/dso-viewer-grid.js.map +1 -1
- package/dist/components/dsot-document-component-demo.js +3 -0
- package/dist/components/dsot-document-component-demo.js.map +1 -1
- package/dist/components/expandable.js +3 -0
- package/dist/components/expandable.js.map +1 -1
- package/dist/components/focus-trap.esm.js +44 -25
- package/dist/components/focus-trap.esm.js.map +1 -1
- package/dist/components/icon.js +6 -0
- package/dist/components/icon.js.map +1 -1
- package/dist/components/image-overlay.js.map +1 -1
- package/dist/components/index.d.ts +2 -0
- package/dist/components/index.js +1 -0
- package/dist/components/index.js.map +1 -1
- package/dist/components/index2.js +90 -64
- package/dist/components/index2.js.map +1 -1
- package/dist/components/label.js +5 -2
- package/dist/components/label.js.map +1 -1
- package/dist/components/ozon-content.js +2 -0
- package/dist/components/ozon-content.js.map +1 -1
- package/dist/components/scrollable.js.map +1 -1
- package/dist/components/selectable.js +2 -0
- package/dist/components/selectable.js.map +1 -1
- package/dist/components/table.js +1 -1
- package/dist/components/table.js.map +1 -1
- package/dist/components/tooltip.js +4 -0
- package/dist/components/tooltip.js.map +1 -1
- package/dist/components/v4.js +1 -1
- package/dist/components/v4.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-fbb63820.entry.js → p-02c35f4e.entry.js} +2 -2
- package/dist/dso-toolkit/{p-f0bc4a9d.entry.js → p-09552584.entry.js} +2 -2
- package/dist/dso-toolkit/{p-4e2407bf.entry.js → p-09e0f1a6.entry.js} +2 -2
- package/dist/dso-toolkit/p-0afd6a86.entry.js +2 -0
- package/dist/dso-toolkit/{p-d728a136.entry.js.map → p-0afd6a86.entry.js.map} +1 -1
- package/dist/dso-toolkit/{p-dae7d6f2.entry.js → p-1180ebe3.entry.js} +2 -2
- package/dist/dso-toolkit/p-1180ebe3.entry.js.map +1 -0
- package/dist/dso-toolkit/{p-6f533d1a.entry.js → p-11eb95a2.entry.js} +2 -2
- package/dist/dso-toolkit/p-14616bce.js +2 -0
- package/dist/dso-toolkit/p-14616bce.js.map +1 -0
- package/dist/dso-toolkit/{p-0bac5eea.entry.js → p-15c3da8e.entry.js} +2 -2
- package/dist/dso-toolkit/{p-0c156f79.entry.js → p-2258933b.entry.js} +2 -2
- package/dist/dso-toolkit/{p-0c156f79.entry.js.map → p-2258933b.entry.js.map} +1 -1
- package/dist/dso-toolkit/{p-76c0fc1b.entry.js → p-2cd3e805.entry.js} +2 -2
- package/dist/dso-toolkit/{p-59fe2479.entry.js → p-302764ae.entry.js} +2 -2
- package/dist/dso-toolkit/p-302764ae.entry.js.map +1 -0
- package/dist/dso-toolkit/{p-0c14a2e5.entry.js → p-43511221.entry.js} +2 -2
- package/dist/dso-toolkit/p-4592810d.js +3 -0
- package/dist/dso-toolkit/p-4592810d.js.map +1 -0
- package/dist/dso-toolkit/{p-1db9f4a4.entry.js → p-482c8ebd.entry.js} +2 -2
- package/dist/dso-toolkit/p-4f601b8c.entry.js +2 -0
- package/dist/dso-toolkit/p-4f601b8c.entry.js.map +1 -0
- package/dist/dso-toolkit/{p-169e3931.entry.js → p-51f9702b.entry.js} +2 -2
- package/dist/dso-toolkit/{p-4e04b39f.entry.js → p-54444f78.entry.js} +2 -2
- package/dist/dso-toolkit/p-54444f78.entry.js.map +1 -0
- package/dist/dso-toolkit/{p-ca222ec3.entry.js → p-56136f3c.entry.js} +2 -2
- package/dist/dso-toolkit/p-5eb2019a.entry.js +2 -0
- package/dist/dso-toolkit/p-5eb2019a.entry.js.map +1 -0
- package/dist/dso-toolkit/{p-2ab99812.entry.js → p-5f39d08c.entry.js} +2 -2
- package/dist/dso-toolkit/{p-4423c2b5.entry.js → p-7371aee1.entry.js} +2 -2
- package/dist/dso-toolkit/{p-6dfe9062.entry.js → p-78baffb7.entry.js} +2 -2
- package/dist/dso-toolkit/{p-5a47a86e.entry.js → p-7b36db3a.entry.js} +2 -2
- package/dist/dso-toolkit/{p-6af09f64.entry.js → p-7cac2dd2.entry.js} +2 -2
- package/dist/dso-toolkit/{p-a377846a.entry.js → p-84be819d.entry.js} +2 -2
- package/dist/dso-toolkit/p-84be819d.entry.js.map +1 -0
- package/dist/dso-toolkit/p-94f26620.js +2 -0
- package/dist/dso-toolkit/p-94f26620.js.map +1 -0
- package/dist/dso-toolkit/p-a435b9fd.entry.js +2 -0
- package/dist/dso-toolkit/{p-5c976ac9.entry.js.map → p-a435b9fd.entry.js.map} +1 -1
- package/dist/dso-toolkit/{p-ebda3d53.entry.js → p-b0116121.entry.js} +2 -2
- package/dist/dso-toolkit/{p-60301d53.entry.js → p-b6af439e.entry.js} +2 -2
- package/dist/dso-toolkit/{p-c17c4294.entry.js → p-b8ff5318.entry.js} +2 -2
- package/dist/dso-toolkit/{p-c17c4294.entry.js.map → p-b8ff5318.entry.js.map} +1 -1
- package/dist/dso-toolkit/p-b9059ec2.entry.js +2 -0
- package/dist/dso-toolkit/{p-7ef42606.entry.js.map → p-b9059ec2.entry.js.map} +1 -1
- package/dist/dso-toolkit/{p-e729bdf2.entry.js → p-c1bab0f1.entry.js} +2 -2
- package/dist/dso-toolkit/{p-b68ac725.entry.js → p-d165ad74.entry.js} +2 -2
- package/dist/dso-toolkit/p-d165ad74.entry.js.map +1 -0
- package/dist/dso-toolkit/{p-8bee65a1.entry.js → p-df63a085.entry.js} +2 -2
- package/dist/dso-toolkit/{p-0e095af8.entry.js → p-e1cb1603.entry.js} +2 -2
- package/dist/dso-toolkit/{p-7edafced.entry.js → p-e2f7399e.entry.js} +2 -2
- package/dist/dso-toolkit/p-e348d48b.entry.js +2 -0
- package/dist/dso-toolkit/p-e348d48b.entry.js.map +1 -0
- package/dist/dso-toolkit/{p-cce85c45.entry.js → p-eb7275e9.entry.js} +2 -2
- package/dist/dso-toolkit/p-f3bd801e.entry.js +2 -0
- package/dist/dso-toolkit/p-f3bd801e.entry.js.map +1 -0
- package/dist/dso-toolkit/{p-2401e7f9.entry.js → p-f493248a.entry.js} +2 -2
- package/dist/dso-toolkit/{p-2401e7f9.entry.js.map → p-f493248a.entry.js.map} +1 -1
- package/dist/dso-toolkit/p-fbb226aa.js +6 -0
- package/dist/dso-toolkit/p-fbb226aa.js.map +1 -0
- package/dist/dso-toolkit/{p-755e55cf.entry.js → p-fd4b0b0b.entry.js} +2 -2
- 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-action-list-item.entry.js +2 -2
- package/dist/esm/dso-action-list-item.entry.js.map +1 -1
- package/dist/esm/dso-action-list.entry.js +2 -2
- package/dist/esm/dso-action-list.entry.js.map +1 -1
- package/dist/esm/dso-alert_7.entry.js +6 -6
- package/dist/esm/dso-alert_7.entry.js.map +1 -1
- package/dist/esm/dso-annotation-output_3.entry.js +2 -2
- package/dist/esm/dso-attachments-counter.entry.js +1 -1
- package/dist/esm/dso-autosuggest.entry.js +3 -3
- package/dist/esm/dso-banner.entry.js +1 -1
- package/dist/esm/dso-card-container.entry.js +1 -1
- package/dist/esm/dso-card.entry.js +1 -1
- package/dist/esm/dso-date-picker-legacy.entry.js +1 -1
- package/dist/esm/dso-date-picker-legacy.entry.js.map +1 -1
- package/dist/esm/dso-date-picker.entry.js +1 -1
- package/dist/esm/dso-dropdown-menu.entry.js +2 -2
- package/dist/esm/dso-expandable.entry.js +2 -2
- package/dist/esm/dso-expandable.entry.js.map +1 -1
- package/dist/esm/dso-header.entry.js +2 -2
- package/dist/esm/dso-header.entry.js.map +1 -1
- package/dist/esm/dso-helpcenter-panel.entry.js +2 -2
- package/dist/esm/dso-highlight-box.entry.js +1 -1
- package/dist/esm/dso-icon.entry.js +7 -1
- package/dist/esm/dso-icon.entry.js.map +1 -1
- package/dist/esm/dso-info-button.entry.js +1 -1
- package/dist/esm/dso-info_2.entry.js +1 -1
- package/dist/esm/dso-list-button.entry.js +2 -2
- package/dist/esm/dso-logo.entry.js +1 -1
- package/dist/esm/dso-map-base-layers.entry.js +2 -2
- package/dist/esm/dso-map-controls.entry.js +1 -1
- package/dist/esm/dso-map-overlays.entry.js +2 -2
- package/dist/esm/dso-mark-bar.entry.js +45 -0
- package/dist/esm/dso-mark-bar.entry.js.map +1 -0
- package/dist/esm/dso-modal.entry.js +2 -2
- package/dist/esm/dso-pagination.entry.js +1 -1
- 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-indicator.entry.js +1 -1
- package/dist/esm/dso-responsive-element.entry.js +1 -1
- package/dist/esm/dso-scrollable.entry.js +2 -2
- package/dist/esm/dso-scrollable.entry.js.map +1 -1
- package/dist/esm/dso-toggletip.entry.js +1 -1
- package/dist/esm/dso-toolkit.js +4 -4
- package/dist/esm/dso-toolkit.js.map +1 -1
- package/dist/esm/dso-tooltip.entry.js +2 -2
- 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 +3 -3
- 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-ad846bd4.js → focus-trap.esm-d8deb1f0.js} +45 -26
- package/dist/esm/focus-trap.esm-d8deb1f0.js.map +1 -0
- package/dist/esm/{index-f82ed648.js → index-528d5213.js} +312 -127
- package/dist/esm/index-528d5213.js.map +1 -0
- package/dist/esm/index-aaea0a65.js +98 -0
- package/dist/esm/index-aaea0a65.js.map +1 -0
- package/dist/esm/loader.js +3 -3
- package/dist/esm/{v4-d398bde5.js → v4-23648a96.js} +2 -2
- package/dist/esm/v4-23648a96.js.map +1 -0
- package/dist/types/components/mark-bar/mark-bar.d.ts +41 -0
- package/dist/types/components/mark-bar/mark-bar.interfaces.d.ts +10 -0
- package/dist/types/components.d.ts +409 -0
- package/dist/types/stencil-public-runtime.d.ts +24 -3
- package/package.json +17 -17
- package/dist/cjs/focus-trap.esm-b6bba312.js.map +0 -1
- package/dist/cjs/index-794ad37a.js +0 -74
- package/dist/cjs/index-794ad37a.js.map +0 -1
- package/dist/cjs/index-d46ec033.js.map +0 -1
- package/dist/cjs/v4-abb5dc0c.js.map +0 -1
- package/dist/dso-toolkit/p-0fbddb1a.entry.js +0 -2
- package/dist/dso-toolkit/p-0fbddb1a.entry.js.map +0 -1
- package/dist/dso-toolkit/p-1521d319.js +0 -6
- package/dist/dso-toolkit/p-1521d319.js.map +0 -1
- package/dist/dso-toolkit/p-1805f5b0.js +0 -2
- package/dist/dso-toolkit/p-1805f5b0.js.map +0 -1
- package/dist/dso-toolkit/p-3ca5b6f4.js +0 -3
- package/dist/dso-toolkit/p-3ca5b6f4.js.map +0 -1
- package/dist/dso-toolkit/p-4ace5655.entry.js +0 -2
- package/dist/dso-toolkit/p-4ace5655.entry.js.map +0 -1
- package/dist/dso-toolkit/p-4e04b39f.entry.js.map +0 -1
- package/dist/dso-toolkit/p-59fe2479.entry.js.map +0 -1
- package/dist/dso-toolkit/p-5c976ac9.entry.js +0 -2
- package/dist/dso-toolkit/p-5d7f4ff2.js +0 -2
- package/dist/dso-toolkit/p-5d7f4ff2.js.map +0 -1
- package/dist/dso-toolkit/p-7ef42606.entry.js +0 -2
- package/dist/dso-toolkit/p-85f5322e.entry.js +0 -2
- package/dist/dso-toolkit/p-85f5322e.entry.js.map +0 -1
- package/dist/dso-toolkit/p-a377846a.entry.js.map +0 -1
- package/dist/dso-toolkit/p-b68ac725.entry.js.map +0 -1
- package/dist/dso-toolkit/p-d728a136.entry.js +0 -2
- package/dist/dso-toolkit/p-dae7d6f2.entry.js.map +0 -1
- package/dist/esm/focus-trap.esm-ad846bd4.js.map +0 -1
- package/dist/esm/index-f2bf58ce.js +0 -72
- package/dist/esm/index-f2bf58ce.js.map +0 -1
- package/dist/esm/index-f82ed648.js.map +0 -1
- package/dist/esm/v4-d398bde5.js.map +0 -1
- /package/dist/dso-toolkit/{p-fbb63820.entry.js.map → p-02c35f4e.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-f0bc4a9d.entry.js.map → p-09552584.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-4e2407bf.entry.js.map → p-09e0f1a6.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-6f533d1a.entry.js.map → p-11eb95a2.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-0bac5eea.entry.js.map → p-15c3da8e.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-76c0fc1b.entry.js.map → p-2cd3e805.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-0c14a2e5.entry.js.map → p-43511221.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-1db9f4a4.entry.js.map → p-482c8ebd.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-169e3931.entry.js.map → p-51f9702b.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-ca222ec3.entry.js.map → p-56136f3c.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-2ab99812.entry.js.map → p-5f39d08c.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-4423c2b5.entry.js.map → p-7371aee1.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-6dfe9062.entry.js.map → p-78baffb7.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-5a47a86e.entry.js.map → p-7b36db3a.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-6af09f64.entry.js.map → p-7cac2dd2.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-ebda3d53.entry.js.map → p-b0116121.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-60301d53.entry.js.map → p-b6af439e.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-e729bdf2.entry.js.map → p-c1bab0f1.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-8bee65a1.entry.js.map → p-df63a085.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-0e095af8.entry.js.map → p-e1cb1603.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-7edafced.entry.js.map → p-e2f7399e.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-cce85c45.entry.js.map → p-eb7275e9.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-755e55cf.entry.js.map → p-fd4b0b0b.entry.js.map} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"image-overlay.js","mappings":"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","names":["debounce"],"sources":["src/components/image-overlay/image-overlay.scss?tag=dso-image-overlay&encapsulation=shadow","src/components/image-overlay/image-overlay.tsx"],"sourcesContent":["@use \"~dso-toolkit/src/variables/colors\";\r\n@use \"~dso-toolkit/src/variables/units\";\r\n@use \"~dso-toolkit/src/variables/zindex\";\r\n\r\n@use \"~dso-toolkit/src/components/button\";\r\n@use \"~dso-toolkit/src/utilities\";\r\n\r\n:host {\r\n display: inline-block;\r\n position: relative;\r\n}\r\n\r\n:host(:hover) .open,\r\n.open:focus {\r\n opacity: 1;\r\n}\r\n\r\nbutton {\r\n @include button.element();\r\n}\r\n\r\n.open {\r\n @include button.secondary($modifiers: false, $icon-only: true);\r\n\r\n border: 0;\r\n box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.5);\r\n min-width: auto;\r\n padding: units.$u1;\r\n opacity: 0;\r\n position: absolute;\r\n right: units.$u2;\r\n top: units.$u2;\r\n}\r\n\r\n.dimmer {\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n right: 0;\r\n bottom: 0;\r\n z-index: zindex.$image-overlay - 1;\r\n display: flex;\r\n padding: units.$u4;\r\n background-color: fade-out(colors.$wit, 0.2);\r\n justify-content: center;\r\n}\r\n\r\n.wrapper {\r\n align-self: center;\r\n box-shadow: 0 units.$u1 units.$u3 0 rgba(25, 25, 25, 0.4);\r\n line-height: 0;\r\n outline: 4px solid colors.$wit;\r\n position: relative;\r\n z-index: zindex.$image-overlay;\r\n\r\n .titel:not([hidden]) {\r\n background-color: colors.$wit;\r\n font-weight: 700;\r\n line-height: initial;\r\n padding: units.$u1;\r\n position: absolute;\r\n }\r\n\r\n img {\r\n width: auto;\r\n height: auto;\r\n max-width: 100%;\r\n max-height: calc(100vh - units.$u8);\r\n }\r\n\r\n .figuur-bijschrift:not([hidden]) {\r\n display: block;\r\n font-size: 0.75rem;\r\n font-style: italic;\r\n padding-bottom: units.$u1 * 1.5;\r\n padding-top: units.$u2;\r\n }\r\n}\r\n\r\n.close {\r\n @include button.secondary($modifiers: false, $icon-only: true);\r\n\r\n border: 0;\r\n box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.5);\r\n min-width: auto;\r\n padding: units.$u1;\r\n position: absolute;\r\n top: units.$u2;\r\n right: units.$u2;\r\n}\r\n","import { Component, ComponentInterface, Element, forceUpdate, h, Host, Listen, State } from \"@stencil/core\";\r\nimport debounce from \"debounce\";\r\nimport { createFocusTrap, FocusTrap } from \"focus-trap\";\r\n\r\n@Component({\r\n tag: \"dso-image-overlay\",\r\n styleUrl: \"./image-overlay.scss\",\r\n shadow: true,\r\n})\r\nexport class ImageOverlay implements ComponentInterface {\r\n @Element()\r\n host!: HTMLDsoImageOverlayElement;\r\n\r\n @State()\r\n active = false;\r\n\r\n @State()\r\n zoomable = false;\r\n\r\n private buttonElement: HTMLButtonElement | undefined;\r\n\r\n private wrapperElement: HTMLDivElement | undefined;\r\n\r\n private trap: FocusTrap | undefined;\r\n\r\n private titelSlot: HTMLElement | null = null;\r\n\r\n private bijschriftSlot: HTMLElement | null = null;\r\n\r\n private mutationObserver?: MutationObserver;\r\n\r\n private resizeObserver?: ResizeObserver;\r\n\r\n @Listen(\"load\", { capture: true })\r\n loadListener(event: Event) {\r\n if (event.target instanceof HTMLImageElement) {\r\n this.setZoomable(event.target);\r\n }\r\n }\r\n\r\n connectedCallback() {\r\n this.titelSlot = this.host.querySelector<HTMLDivElement>(\"div[slot='titel']\");\r\n\r\n this.bijschriftSlot = this.host.querySelector<HTMLDivElement>(\"div[slot='bijschrift']\");\r\n }\r\n\r\n componentDidLoad() {\r\n this.resizeObserver = new ResizeObserver(\r\n debounce(() => {\r\n const imgElement = this.host.querySelector(\"img\");\r\n\r\n if (imgElement instanceof HTMLImageElement) {\r\n this.setZoomable(imgElement);\r\n }\r\n }, 200)\r\n );\r\n\r\n this.mutationObserver = new MutationObserver((e) => {\r\n forceUpdate(this.host);\r\n\r\n if (e[0]?.type === \"childList\") {\r\n this.resizeObserver?.disconnect();\r\n // <img> is gone or a new element.\r\n this.initZoomableImage();\r\n }\r\n });\r\n\r\n this.mutationObserver.observe(this.host, {\r\n attributes: true,\r\n subtree: true,\r\n attributeFilter: [\"src\", \"alt\"],\r\n childList: true,\r\n });\r\n\r\n this.initZoomableImage();\r\n }\r\n\r\n disconnectedCallback() {\r\n this.trap?.deactivate();\r\n this.mutationObserver?.disconnect();\r\n this.resizeObserver?.disconnect();\r\n }\r\n\r\n private initZoomableImage(): void {\r\n const imgElement = this.host.querySelector(\"img\");\r\n\r\n if (!(imgElement instanceof HTMLImageElement)) {\r\n return;\r\n }\r\n\r\n // Due to timing issues where the image is loaded before we listen to load events we double check if the image is already complete.\r\n if (imgElement.complete) {\r\n this.setZoomable(imgElement);\r\n }\r\n\r\n this.resizeObserver?.observe(imgElement);\r\n }\r\n\r\n private setZoomable(imageElement: HTMLImageElement): void {\r\n const { width, naturalWidth, height, naturalHeight } = imageElement;\r\n\r\n this.zoomable = width < naturalWidth || height < naturalHeight;\r\n }\r\n\r\n render() {\r\n const { src, alt } = this.host.querySelector(\"img\") ?? {};\r\n\r\n return (\r\n <Host onClick={() => this.buttonElement?.focus()}>\r\n {this.active && src && alt && (\r\n <div class=\"dimmer\">\r\n <div class=\"wrapper\" ref={(element) => (this.wrapperElement = element)}>\r\n <div class=\"titel\" hidden={!this.titelSlot}>\r\n <slot name=\"titel\" />\r\n </div>\r\n <img src={src} alt={alt} />\r\n <button type=\"button\" class=\"close\" onClick={() => (this.active = false)}>\r\n <dso-icon icon=\"times\"></dso-icon>\r\n <span>Sluiten</span>\r\n </button>\r\n <div class=\"figuur-bijschrift\" hidden={!this.bijschriftSlot}>\r\n <slot name=\"bijschrift\" />\r\n </div>\r\n </div>\r\n </div>\r\n )}\r\n <slot />\r\n {this.zoomable && (\r\n <button\r\n type=\"button\"\r\n class=\"open\"\r\n ref={(element) => (this.buttonElement = element)}\r\n onClick={() => (this.active = true)}\r\n >\r\n <dso-icon icon=\"external-link\"></dso-icon>\r\n <span>Afbeelding vergroot weergeven</span>\r\n </button>\r\n )}\r\n </Host>\r\n );\r\n }\r\n\r\n componentDidRender() {\r\n if (this.active && this.wrapperElement && !this.trap) {\r\n this.trap = createFocusTrap(this.wrapperElement, {\r\n escapeDeactivates: true,\r\n clickOutsideDeactivates: (e) => {\r\n if (e instanceof MouseEvent && e.composedPath()[0] === this.wrapperElement) {\r\n this.active = false;\r\n\r\n return false;\r\n }\r\n\r\n return true;\r\n },\r\n setReturnFocus: this.buttonElement ?? false,\r\n onDeactivate: () => (this.active = false),\r\n }).activate();\r\n } else if (!this.active && this.trap) {\r\n this.trap?.deactivate();\r\n\r\n delete this.trap;\r\n }\r\n }\r\n}\r\n"],"version":3}
|
|
1
|
+
{"file":"image-overlay.js","mappings":";;;;;AAAA,MAAM,eAAe,GAAG,4zZAA4zZ;;MCSv0Z,YAAY;;;;;IAgBf,cAAS,GAAuB,IAAI,CAAC;IAErC,mBAAc,GAAuB,IAAI,CAAC;kBAbzC,KAAK;oBAGH,KAAK;;EAiBhB,YAAY,CAAC,KAAY;IACvB,IAAI,KAAK,CAAC,MAAM,YAAY,gBAAgB,EAAE;MAC5C,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;KAChC;GACF;EAED,iBAAiB;IACf,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAiB,mBAAmB,CAAC,CAAC;IAE9E,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAiB,wBAAwB,CAAC,CAAC;GACzF;EAED,gBAAgB;IACd,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,CACtCA,UAAQ,CAAC;MACP,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;MAElD,IAAI,UAAU,YAAY,gBAAgB,EAAE;QAC1C,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;OAC9B;KACF,EAAE,GAAG,CAAC,CACR,CAAC;IAEF,IAAI,CAAC,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,CAAC,CAAC;;MAC7C,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;MAEvB,IAAI,CAAA,MAAA,CAAC,CAAC,CAAC,CAAC,0CAAE,IAAI,MAAK,WAAW,EAAE;QAC9B,MAAA,IAAI,CAAC,cAAc,0CAAE,UAAU,EAAE,CAAC;;QAElC,IAAI,CAAC,iBAAiB,EAAE,CAAC;OAC1B;KACF,CAAC,CAAC;IAEH,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE;MACvC,UAAU,EAAE,IAAI;MAChB,OAAO,EAAE,IAAI;MACb,eAAe,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC;MAC/B,SAAS,EAAE,IAAI;KAChB,CAAC,CAAC;IAEH,IAAI,CAAC,iBAAiB,EAAE,CAAC;GAC1B;EAED,oBAAoB;;IAClB,MAAA,IAAI,CAAC,IAAI,0CAAE,UAAU,EAAE,CAAC;IACxB,MAAA,IAAI,CAAC,gBAAgB,0CAAE,UAAU,EAAE,CAAC;IACpC,MAAA,IAAI,CAAC,cAAc,0CAAE,UAAU,EAAE,CAAC;GACnC;EAEO,iBAAiB;;IACvB,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAElD,IAAI,EAAE,UAAU,YAAY,gBAAgB,CAAC,EAAE;MAC7C,OAAO;KACR;;IAGD,IAAI,UAAU,CAAC,QAAQ,EAAE;MACvB,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;KAC9B;IAED,MAAA,IAAI,CAAC,cAAc,0CAAE,OAAO,CAAC,UAAU,CAAC,CAAC;GAC1C;EAEO,WAAW,CAAC,YAA8B;IAChD,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,YAAY,CAAC;IAEpE,IAAI,CAAC,QAAQ,GAAG,KAAK,GAAG,YAAY,IAAI,MAAM,GAAG,aAAa,CAAC;GAChE;EAED,MAAM;;IACJ,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,MAAA,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,mCAAI,EAAE,CAAC;IAE1D,QACE,EAAC,IAAI,IAAC,OAAO,EAAE,gBAAM,OAAA,MAAA,IAAI,CAAC,aAAa,0CAAE,KAAK,EAAE,CAAA,EAAA,IAC7C,IAAI,CAAC,MAAM,IAAI,GAAG,IAAI,GAAG,KACxB,WAAK,KAAK,EAAC,QAAQ,IACjB,WAAK,KAAK,EAAC,SAAS,EAAC,GAAG,EAAE,CAAC,OAAO,MAAM,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,IACpE,WAAK,KAAK,EAAC,OAAO,EAAC,MAAM,EAAE,CAAC,IAAI,CAAC,SAAS,IACxC,YAAM,IAAI,EAAC,OAAO,GAAG,CACjB,EACN,WAAK,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAI,EAC3B,cAAQ,IAAI,EAAC,QAAQ,EAAC,KAAK,EAAC,OAAO,EAAC,OAAO,EAAE,OAAO,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,IACtE,gBAAU,IAAI,EAAC,OAAO,GAAY,EAClC,0BAAoB,CACb,EACT,WAAK,KAAK,EAAC,mBAAmB,EAAC,MAAM,EAAE,CAAC,IAAI,CAAC,cAAc,IACzD,YAAM,IAAI,EAAC,YAAY,GAAG,CACtB,CACF,CACF,CACP,EACD,eAAQ,EACP,IAAI,CAAC,QAAQ,KACZ,cACE,IAAI,EAAC,QAAQ,EACb,KAAK,EAAC,MAAM,EACZ,GAAG,EAAE,CAAC,OAAO,MAAM,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,EAChD,OAAO,EAAE,OAAO,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAEnC,gBAAU,IAAI,EAAC,eAAe,GAAY,EAC1C,gDAA0C,CACnC,CACV,CACI,EACP;GACH;EAED,kBAAkB;;IAChB,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;MACpD,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC,IAAI,CAAC,cAAc,EAAE;QAC/C,iBAAiB,EAAE,IAAI;QACvB,uBAAuB,EAAE,CAAC,CAAC;UACzB,IAAI,CAAC,YAAY,UAAU,IAAI,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,cAAc,EAAE;YAC1E,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;YAEpB,OAAO,KAAK,CAAC;WACd;UAED,OAAO,IAAI,CAAC;SACb;QACD,cAAc,EAAE,MAAA,IAAI,CAAC,aAAa,mCAAI,KAAK;QAC3C,YAAY,EAAE,OAAO,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;OAC1C,CAAC,CAAC,QAAQ,EAAE,CAAC;KACf;SAAM,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,EAAE;MACpC,MAAA,IAAI,CAAC,IAAI,0CAAE,UAAU,EAAE,CAAC;MAExB,OAAO,IAAI,CAAC,IAAI,CAAC;KAClB;GACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["debounce"],"sources":["src/components/image-overlay/image-overlay.scss?tag=dso-image-overlay&encapsulation=shadow","src/components/image-overlay/image-overlay.tsx"],"sourcesContent":["@use \"~dso-toolkit/src/variables/colors\";\r\n@use \"~dso-toolkit/src/variables/units\";\r\n@use \"~dso-toolkit/src/variables/zindex\";\r\n\r\n@use \"~dso-toolkit/src/components/button\";\r\n@use \"~dso-toolkit/src/utilities\";\r\n\r\n:host {\r\n display: inline-block;\r\n position: relative;\r\n}\r\n\r\n:host(:hover) .open,\r\n.open:focus {\r\n opacity: 1;\r\n}\r\n\r\nbutton {\r\n @include button.element();\r\n}\r\n\r\n.open {\r\n @include button.secondary($modifiers: false, $icon-only: true);\r\n\r\n border: 0;\r\n box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.5);\r\n min-width: auto;\r\n padding: units.$u1;\r\n opacity: 0;\r\n position: absolute;\r\n right: units.$u2;\r\n top: units.$u2;\r\n}\r\n\r\n.dimmer {\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n right: 0;\r\n bottom: 0;\r\n z-index: zindex.$image-overlay - 1;\r\n display: flex;\r\n padding: units.$u4;\r\n background-color: fade-out(colors.$wit, 0.2);\r\n justify-content: center;\r\n}\r\n\r\n.wrapper {\r\n align-self: center;\r\n box-shadow: 0 units.$u1 units.$u3 0 rgba(25, 25, 25, 0.4);\r\n line-height: 0;\r\n outline: 4px solid colors.$wit;\r\n position: relative;\r\n z-index: zindex.$image-overlay;\r\n\r\n .titel:not([hidden]) {\r\n background-color: colors.$wit;\r\n font-weight: 700;\r\n line-height: initial;\r\n padding: units.$u1;\r\n position: absolute;\r\n }\r\n\r\n img {\r\n width: auto;\r\n height: auto;\r\n max-width: 100%;\r\n max-height: calc(100vh - units.$u8);\r\n }\r\n\r\n .figuur-bijschrift:not([hidden]) {\r\n display: block;\r\n font-size: 0.75rem;\r\n font-style: italic;\r\n padding-bottom: units.$u1 * 1.5;\r\n padding-top: units.$u2;\r\n }\r\n}\r\n\r\n.close {\r\n @include button.secondary($modifiers: false, $icon-only: true);\r\n\r\n border: 0;\r\n box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.5);\r\n min-width: auto;\r\n padding: units.$u1;\r\n position: absolute;\r\n top: units.$u2;\r\n right: units.$u2;\r\n}\r\n","import { Component, ComponentInterface, Element, forceUpdate, h, Host, Listen, State } from \"@stencil/core\";\r\nimport debounce from \"debounce\";\r\nimport { createFocusTrap, FocusTrap } from \"focus-trap\";\r\n\r\n@Component({\r\n tag: \"dso-image-overlay\",\r\n styleUrl: \"./image-overlay.scss\",\r\n shadow: true,\r\n})\r\nexport class ImageOverlay implements ComponentInterface {\r\n @Element()\r\n host!: HTMLDsoImageOverlayElement;\r\n\r\n @State()\r\n active = false;\r\n\r\n @State()\r\n zoomable = false;\r\n\r\n private buttonElement: HTMLButtonElement | undefined;\r\n\r\n private wrapperElement: HTMLDivElement | undefined;\r\n\r\n private trap: FocusTrap | undefined;\r\n\r\n private titelSlot: HTMLElement | null = null;\r\n\r\n private bijschriftSlot: HTMLElement | null = null;\r\n\r\n private mutationObserver?: MutationObserver;\r\n\r\n private resizeObserver?: ResizeObserver;\r\n\r\n @Listen(\"load\", { capture: true })\r\n loadListener(event: Event) {\r\n if (event.target instanceof HTMLImageElement) {\r\n this.setZoomable(event.target);\r\n }\r\n }\r\n\r\n connectedCallback() {\r\n this.titelSlot = this.host.querySelector<HTMLDivElement>(\"div[slot='titel']\");\r\n\r\n this.bijschriftSlot = this.host.querySelector<HTMLDivElement>(\"div[slot='bijschrift']\");\r\n }\r\n\r\n componentDidLoad() {\r\n this.resizeObserver = new ResizeObserver(\r\n debounce(() => {\r\n const imgElement = this.host.querySelector(\"img\");\r\n\r\n if (imgElement instanceof HTMLImageElement) {\r\n this.setZoomable(imgElement);\r\n }\r\n }, 200),\r\n );\r\n\r\n this.mutationObserver = new MutationObserver((e) => {\r\n forceUpdate(this.host);\r\n\r\n if (e[0]?.type === \"childList\") {\r\n this.resizeObserver?.disconnect();\r\n // <img> is gone or a new element.\r\n this.initZoomableImage();\r\n }\r\n });\r\n\r\n this.mutationObserver.observe(this.host, {\r\n attributes: true,\r\n subtree: true,\r\n attributeFilter: [\"src\", \"alt\"],\r\n childList: true,\r\n });\r\n\r\n this.initZoomableImage();\r\n }\r\n\r\n disconnectedCallback() {\r\n this.trap?.deactivate();\r\n this.mutationObserver?.disconnect();\r\n this.resizeObserver?.disconnect();\r\n }\r\n\r\n private initZoomableImage(): void {\r\n const imgElement = this.host.querySelector(\"img\");\r\n\r\n if (!(imgElement instanceof HTMLImageElement)) {\r\n return;\r\n }\r\n\r\n // Due to timing issues where the image is loaded before we listen to load events we double check if the image is already complete.\r\n if (imgElement.complete) {\r\n this.setZoomable(imgElement);\r\n }\r\n\r\n this.resizeObserver?.observe(imgElement);\r\n }\r\n\r\n private setZoomable(imageElement: HTMLImageElement): void {\r\n const { width, naturalWidth, height, naturalHeight } = imageElement;\r\n\r\n this.zoomable = width < naturalWidth || height < naturalHeight;\r\n }\r\n\r\n render() {\r\n const { src, alt } = this.host.querySelector(\"img\") ?? {};\r\n\r\n return (\r\n <Host onClick={() => this.buttonElement?.focus()}>\r\n {this.active && src && alt && (\r\n <div class=\"dimmer\">\r\n <div class=\"wrapper\" ref={(element) => (this.wrapperElement = element)}>\r\n <div class=\"titel\" hidden={!this.titelSlot}>\r\n <slot name=\"titel\" />\r\n </div>\r\n <img src={src} alt={alt} />\r\n <button type=\"button\" class=\"close\" onClick={() => (this.active = false)}>\r\n <dso-icon icon=\"times\"></dso-icon>\r\n <span>Sluiten</span>\r\n </button>\r\n <div class=\"figuur-bijschrift\" hidden={!this.bijschriftSlot}>\r\n <slot name=\"bijschrift\" />\r\n </div>\r\n </div>\r\n </div>\r\n )}\r\n <slot />\r\n {this.zoomable && (\r\n <button\r\n type=\"button\"\r\n class=\"open\"\r\n ref={(element) => (this.buttonElement = element)}\r\n onClick={() => (this.active = true)}\r\n >\r\n <dso-icon icon=\"external-link\"></dso-icon>\r\n <span>Afbeelding vergroot weergeven</span>\r\n </button>\r\n )}\r\n </Host>\r\n );\r\n }\r\n\r\n componentDidRender() {\r\n if (this.active && this.wrapperElement && !this.trap) {\r\n this.trap = createFocusTrap(this.wrapperElement, {\r\n escapeDeactivates: true,\r\n clickOutsideDeactivates: (e) => {\r\n if (e instanceof MouseEvent && e.composedPath()[0] === this.wrapperElement) {\r\n this.active = false;\r\n\r\n return false;\r\n }\r\n\r\n return true;\r\n },\r\n setReturnFocus: this.buttonElement ?? false,\r\n onDeactivate: () => (this.active = false),\r\n }).activate();\r\n } else if (!this.active && this.trap) {\r\n this.trap?.deactivate();\r\n\r\n delete this.trap;\r\n }\r\n }\r\n}\r\n"],"version":3}
|
|
@@ -61,6 +61,8 @@ export { MapControls as DsoMapControls } from '../types/components/map-controls/
|
|
|
61
61
|
export { defineCustomElement as defineCustomElementDsoMapControls } from './dso-map-controls';
|
|
62
62
|
export { MapOverlays as DsoMapOverlays } from '../types/components/map-overlays/map-overlays';
|
|
63
63
|
export { defineCustomElement as defineCustomElementDsoMapOverlays } from './dso-map-overlays';
|
|
64
|
+
export { MarkBar as DsoMarkBar } from '../types/components/mark-bar/mark-bar';
|
|
65
|
+
export { defineCustomElement as defineCustomElementDsoMarkBar } from './dso-mark-bar';
|
|
64
66
|
export { Modal as DsoModal } from '../types/components/modal/modal';
|
|
65
67
|
export { defineCustomElement as defineCustomElementDsoModal } from './dso-modal';
|
|
66
68
|
export { OzonContent as DsoOzonContent } from '../types/components/ozon-content/ozon-content';
|
package/dist/components/index.js
CHANGED
|
@@ -30,6 +30,7 @@ export { DsoLogo, defineCustomElement as defineCustomElementDsoLogo } from './ds
|
|
|
30
30
|
export { DsoMapBaseLayers, defineCustomElement as defineCustomElementDsoMapBaseLayers } from './dso-map-base-layers.js';
|
|
31
31
|
export { DsoMapControls, defineCustomElement as defineCustomElementDsoMapControls } from './dso-map-controls.js';
|
|
32
32
|
export { DsoMapOverlays, defineCustomElement as defineCustomElementDsoMapOverlays } from './dso-map-overlays.js';
|
|
33
|
+
export { DsoMarkBar, defineCustomElement as defineCustomElementDsoMarkBar } from './dso-mark-bar.js';
|
|
33
34
|
export { DsoModal, defineCustomElement as defineCustomElementDsoModal } from './dso-modal.js';
|
|
34
35
|
export { DsoOzonContent, defineCustomElement as defineCustomElementDsoOzonContent } from './dso-ozon-content.js';
|
|
35
36
|
export { DsoPagination, defineCustomElement as defineCustomElementDsoPagination } from './dso-pagination.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"index.js","mappings":"
|
|
1
|
+
{"file":"index.js","mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":[],"sources":[],"sourcesContent":[],"version":3}
|
|
@@ -1,71 +1,97 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
1
|
+
function debounce(function_, wait = 100, options = {}) {
|
|
2
|
+
if (typeof function_ !== 'function') {
|
|
3
|
+
throw new TypeError(`Expected the first parameter to be a function, got \`${typeof function_}\`.`);
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
if (wait < 0) {
|
|
7
|
+
throw new RangeError('`wait` must not be negative.');
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
// TODO: Deprecate the boolean parameter at some point.
|
|
11
|
+
const {immediate} = typeof options === 'boolean' ? {immediate: options} : options;
|
|
12
|
+
|
|
13
|
+
let storedContext;
|
|
14
|
+
let storedArguments;
|
|
15
|
+
let timeoutId;
|
|
16
|
+
let timestamp;
|
|
17
|
+
let result;
|
|
18
|
+
|
|
19
|
+
function later() {
|
|
20
|
+
const last = Date.now() - timestamp;
|
|
21
|
+
|
|
22
|
+
if (last < wait && last >= 0) {
|
|
23
|
+
timeoutId = setTimeout(later, wait - last);
|
|
24
|
+
} else {
|
|
25
|
+
timeoutId = undefined;
|
|
26
|
+
|
|
27
|
+
if (!immediate) {
|
|
28
|
+
const callContext = storedContext;
|
|
29
|
+
const callArguments = storedArguments;
|
|
30
|
+
storedContext = undefined;
|
|
31
|
+
storedArguments = undefined;
|
|
32
|
+
result = function_.apply(callContext, callArguments);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
const debounced = function (...arguments_) {
|
|
38
|
+
if (storedContext && this !== storedContext) {
|
|
39
|
+
throw new Error('Debounced method called with different contexts.');
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
storedContext = this; // eslint-disable-line unicorn/no-this-assignment
|
|
43
|
+
storedArguments = arguments_;
|
|
44
|
+
timestamp = Date.now();
|
|
45
|
+
|
|
46
|
+
const callNow = immediate && !timeoutId;
|
|
47
|
+
|
|
48
|
+
if (!timeoutId) {
|
|
49
|
+
timeoutId = setTimeout(later, wait);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
if (callNow) {
|
|
53
|
+
const callContext = storedContext;
|
|
54
|
+
const callArguments = storedArguments;
|
|
55
|
+
storedContext = undefined;
|
|
56
|
+
storedArguments = undefined;
|
|
57
|
+
result = function_.apply(callContext, callArguments);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
return result;
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
debounced.clear = () => {
|
|
64
|
+
if (!timeoutId) {
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
clearTimeout(timeoutId);
|
|
69
|
+
timeoutId = undefined;
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
debounced.flush = () => {
|
|
73
|
+
if (!timeoutId) {
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
const callContext = storedContext;
|
|
78
|
+
const callArguments = storedArguments;
|
|
79
|
+
storedContext = undefined;
|
|
80
|
+
storedArguments = undefined;
|
|
81
|
+
result = function_.apply(callContext, callArguments);
|
|
82
|
+
|
|
83
|
+
clearTimeout(timeoutId);
|
|
84
|
+
timeoutId = undefined;
|
|
85
|
+
};
|
|
86
|
+
|
|
87
|
+
return debounced;
|
|
64
88
|
}
|
|
89
|
+
|
|
65
90
|
// Adds compatibility for ES modules
|
|
66
|
-
|
|
91
|
+
var debounce_2 = debounce;
|
|
67
92
|
|
|
68
93
|
var debounce_1 = debounce;
|
|
94
|
+
debounce_1.debounce = debounce_2;
|
|
69
95
|
|
|
70
96
|
export { debounce_1 as d };
|
|
71
97
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"index2.js","mappings":"AAAA
|
|
1
|
+
{"file":"index2.js","mappings":"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","names":[],"sources":["../../node_modules/debounce/index.js"],"sourcesContent":["function debounce(function_, wait = 100, options = {}) {\n\tif (typeof function_ !== 'function') {\n\t\tthrow new TypeError(`Expected the first parameter to be a function, got \\`${typeof function_}\\`.`);\n\t}\n\n\tif (wait < 0) {\n\t\tthrow new RangeError('`wait` must not be negative.');\n\t}\n\n\t// TODO: Deprecate the boolean parameter at some point.\n\tconst {immediate} = typeof options === 'boolean' ? {immediate: options} : options;\n\n\tlet storedContext;\n\tlet storedArguments;\n\tlet timeoutId;\n\tlet timestamp;\n\tlet result;\n\n\tfunction later() {\n\t\tconst last = Date.now() - timestamp;\n\n\t\tif (last < wait && last >= 0) {\n\t\t\ttimeoutId = setTimeout(later, wait - last);\n\t\t} else {\n\t\t\ttimeoutId = undefined;\n\n\t\t\tif (!immediate) {\n\t\t\t\tconst callContext = storedContext;\n\t\t\t\tconst callArguments = storedArguments;\n\t\t\t\tstoredContext = undefined;\n\t\t\t\tstoredArguments = undefined;\n\t\t\t\tresult = function_.apply(callContext, callArguments);\n\t\t\t}\n\t\t}\n\t}\n\n\tconst debounced = function (...arguments_) {\n\t\tif (storedContext && this !== storedContext) {\n\t\t\tthrow new Error('Debounced method called with different contexts.');\n\t\t}\n\n\t\tstoredContext = this; // eslint-disable-line unicorn/no-this-assignment\n\t\tstoredArguments = arguments_;\n\t\ttimestamp = Date.now();\n\n\t\tconst callNow = immediate && !timeoutId;\n\n\t\tif (!timeoutId) {\n\t\t\ttimeoutId = setTimeout(later, wait);\n\t\t}\n\n\t\tif (callNow) {\n\t\t\tconst callContext = storedContext;\n\t\t\tconst callArguments = storedArguments;\n\t\t\tstoredContext = undefined;\n\t\t\tstoredArguments = undefined;\n\t\t\tresult = function_.apply(callContext, callArguments);\n\t\t}\n\n\t\treturn result;\n\t};\n\n\tdebounced.clear = () => {\n\t\tif (!timeoutId) {\n\t\t\treturn;\n\t\t}\n\n\t\tclearTimeout(timeoutId);\n\t\ttimeoutId = undefined;\n\t};\n\n\tdebounced.flush = () => {\n\t\tif (!timeoutId) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst callContext = storedContext;\n\t\tconst callArguments = storedArguments;\n\t\tstoredContext = undefined;\n\t\tstoredArguments = undefined;\n\t\tresult = function_.apply(callContext, callArguments);\n\n\t\tclearTimeout(timeoutId);\n\t\ttimeoutId = undefined;\n\t};\n\n\treturn debounced;\n}\n\n// Adds compatibility for ES modules\nmodule.exports.debounce = debounce;\n\nmodule.exports = debounce;\n"],"version":3}
|
package/dist/components/label.js
CHANGED
|
@@ -6,7 +6,7 @@ import { d as defineCustomElement$1 } from './tooltip.js';
|
|
|
6
6
|
|
|
7
7
|
const labelCss = ":host{display:inline-block;max-width:100%}*,*::after,*::before{box-sizing:border-box}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.dso-label{background-color:#f2f2f2;border-radius:4px;color:#191919;display:inline-block;line-height:1.5;max-width:100%;padding:4px 8px}.dso-label:focus-within,.dso-label.dso-hover{text-decoration:line-through}.dso-label button{background:none;border:0;border-radius:0 4px 4px 0;color:inherit;float:right;font-size:1rem;margin-bottom:-4px;margin-left:8px;margin-right:-4px;margin-top:0;padding:0}.dso-label button:hover{cursor:pointer}.dso-label button>dso-icon,.dso-label button>svg.di{display:block}.dso-label.dso-label-info{background-color:#6ca4d9;color:#000}.dso-label.dso-label-primary{background-color:#275937;color:#fff}.dso-label.dso-label-success{background-color:#39870c;color:#fff}.dso-label.dso-label-warning{background-color:#dcd400;color:#000}.dso-label.dso-label-danger{background-color:#ce3f51;color:#fff}.dso-label.dso-label-error{background-color:#ce3f51;color:#fff}.dso-label.dso-label-bright{background-color:#fff;color:#191919;outline:1px solid #ccc;outline-offset:-1px}.dso-label.dso-label-attention{background-color:#8b4a6a;color:#fff}.dso-label.dso-compact{padding:0 8px}.dso-label.dso-hover .dso-label-content{text-decoration:line-through}.dso-truncate.dso-label-content{display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;vertical-align:bottom;white-space:nowrap}:host([removable]) .dso-truncate.dso-label-content{max-width:calc(100% - 28px)}";
|
|
8
8
|
|
|
9
|
-
const resizeObserver = new ResizeObserver(debounce_1
|
|
9
|
+
const resizeObserver = new ResizeObserver(debounce_1((entries) => {
|
|
10
10
|
entries.forEach(({ target }) => {
|
|
11
11
|
if (isDsoLabelComponent(target)) {
|
|
12
12
|
target._truncateLabel();
|
|
@@ -137,7 +137,10 @@ const Label = /*@__PURE__*/ proxyCustomElement(class Label extends HTMLElement {
|
|
|
137
137
|
"isTruncated": [32],
|
|
138
138
|
"labelText": [32],
|
|
139
139
|
"_truncateLabel": [64]
|
|
140
|
-
}, [[4, "keydown", "keyDownListener"]]
|
|
140
|
+
}, [[4, "keydown", "keyDownListener"]], {
|
|
141
|
+
"removable": ["watchRemovable"],
|
|
142
|
+
"truncate": ["watchTruncate"]
|
|
143
|
+
}]);
|
|
141
144
|
function defineCustomElement() {
|
|
142
145
|
if (typeof customElements === "undefined") {
|
|
143
146
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"label.js","mappings":"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","names":["debounce"],"sources":["src/components/label/label.scss?tag=dso-label&encapsulation=shadow","src/components/label/label.tsx"],"sourcesContent":["@use \"~dso-toolkit/src/utilities\";\r\n@use \"~dso-toolkit/src/variables/units\";\r\n@use \"~dso-toolkit/src/components/label\";\r\n\r\n:host {\r\n display: inline-block;\r\n max-width: 100%;\r\n}\r\n\r\n@include utilities.box-sizing();\r\n\r\n// Todo: Replace .sr-only selector with web component specific selector, no need for .sr-only if we can generate the SCSS\r\n.sr-only {\r\n @include utilities.sr-only();\r\n}\r\n\r\n.dso-label {\r\n @include label.root();\r\n\r\n &.dso-hover {\r\n .dso-label-content {\r\n text-decoration: line-through;\r\n }\r\n }\r\n}\r\n\r\n.dso-truncate.dso-label-content {\r\n display: inline-block;\r\n max-width: 100%;\r\n overflow: hidden;\r\n text-overflow: ellipsis; // stylelint-disable-line declaration-property-value-disallowed-list -- full text can be viewed via tooltip.\r\n vertical-align: bottom;\r\n white-space: nowrap; // stylelint-disable-line declaration-property-value-disallowed-list -- full text can be viewed via tooltip.\r\n}\r\n\r\n:host([removable]) {\r\n .dso-truncate.dso-label-content {\r\n max-width: calc(100% - (units.$u3 + 4px));\r\n }\r\n}\r\n","import {\r\n h,\r\n Component,\r\n ComponentInterface,\r\n Element,\r\n Event,\r\n EventEmitter,\r\n Fragment,\r\n Method,\r\n Prop,\r\n State,\r\n Watch,\r\n Listen,\r\n} from \"@stencil/core\";\r\nimport clsx from \"clsx\";\r\nimport { debounce } from \"debounce\";\r\n\r\nconst resizeObserver = new ResizeObserver(\r\n debounce((entries) => {\r\n entries.forEach(({ target }) => {\r\n if (isDsoLabelComponent(target)) {\r\n target._truncateLabel();\r\n }\r\n });\r\n }, 150)\r\n);\r\n\r\nfunction isDsoLabelComponent(element: Element): element is HTMLDsoLabelElement {\r\n return element.tagName === \"DSO-LABEL\";\r\n}\r\n\r\nfunction hasEllipses(el: HTMLElement): boolean {\r\n return el.scrollWidth > el.clientWidth;\r\n}\r\n\r\n@Component({\r\n tag: \"dso-label\",\r\n styleUrl: \"label.scss\",\r\n shadow: true,\r\n})\r\nexport class Label implements ComponentInterface {\r\n private labelContent: HTMLSpanElement | undefined;\r\n\r\n private mutationObserver?: MutationObserver;\r\n\r\n @Element()\r\n private host!: HTMLDsoLabelElement;\r\n\r\n /**\r\n * For compact Label\r\n */\r\n @Prop()\r\n compact?: boolean;\r\n\r\n /**\r\n * Shows a button that can be used to remove the Label.\r\n */\r\n @Prop()\r\n removable?: boolean;\r\n\r\n /**\r\n * The status of this Label.\r\n */\r\n @Prop()\r\n status?: \"primary\" | \"info\" | \"success\" | \"warning\" | \"danger\" | \"error\" | \"bright\" | \"attention\";\r\n\r\n /**\r\n * Emitted when the user activates the remove button.\r\n */\r\n @Event()\r\n dsoRemoveClick!: EventEmitter<MouseEvent>;\r\n\r\n @State()\r\n removeHover?: boolean;\r\n\r\n @State()\r\n removeFocus?: boolean;\r\n\r\n /**\r\n * Whether the Label is allowed to truncate the contents if it does not fit the container element.\r\n */\r\n @Prop()\r\n truncate?: boolean;\r\n\r\n @State()\r\n textHover?: boolean;\r\n\r\n @State()\r\n textFocus?: boolean;\r\n\r\n @State()\r\n isTruncated = false;\r\n\r\n @State()\r\n labelText = \"\";\r\n\r\n @Watch(\"removable\")\r\n watchRemovable(removable: boolean) {\r\n if (removable) {\r\n this.startMutationObserver();\r\n } else {\r\n this.stopMutationObserver();\r\n }\r\n }\r\n\r\n @Watch(\"truncate\")\r\n watchTruncate(truncate: boolean) {\r\n if (truncate) {\r\n this.startTruncate();\r\n } else {\r\n this.stopTruncate();\r\n }\r\n }\r\n\r\n @Listen(\"keydown\", { target: \"document\" })\r\n keyDownListener(event: KeyboardEvent) {\r\n if (event.key === \"Escape\") {\r\n this.textHover = false;\r\n this.textFocus = false;\r\n }\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n @Method()\r\n async _truncateLabel() {\r\n setTimeout(() => {\r\n this.isTruncated = !!this.labelContent && hasEllipses(this.labelContent);\r\n });\r\n }\r\n\r\n private syncLabelText() {\r\n this.labelText = this.host.textContent?.trim() ?? \"\";\r\n }\r\n\r\n componentDidLoad() {\r\n if (this.truncate) {\r\n this.startTruncate();\r\n }\r\n\r\n if (this.removable) {\r\n this.startMutationObserver();\r\n }\r\n }\r\n\r\n disconnectedCallback() {\r\n this.stopTruncate();\r\n\r\n this.stopMutationObserver(true);\r\n }\r\n\r\n /** The mutationObserver fetches the text placed inside the label, this is then used for the remove button and tooltip. */\r\n private startMutationObserver(): void {\r\n this.mutationObserver = new MutationObserver(() => this.syncLabelText());\r\n\r\n this.mutationObserver.observe(this.host, {\r\n characterData: true,\r\n childList: true,\r\n subtree: true,\r\n attributes: true,\r\n });\r\n\r\n this.syncLabelText();\r\n }\r\n\r\n private stopMutationObserver(force = false): void {\r\n if (force || !(this.truncate && this.removable)) {\r\n this.mutationObserver?.disconnect();\r\n\r\n delete this.mutationObserver;\r\n }\r\n }\r\n\r\n private startTruncate(): void {\r\n resizeObserver.observe(this.host);\r\n this.startMutationObserver();\r\n this._truncateLabel();\r\n }\r\n\r\n private stopTruncate(): void {\r\n resizeObserver.unobserve(this.host);\r\n this.stopMutationObserver();\r\n this.isTruncated = false;\r\n }\r\n\r\n render() {\r\n return (\r\n <Fragment>\r\n <span\r\n aria-describedby=\"toggle-anchor\"\r\n class={clsx(\"dso-label\", {\r\n [`dso-label-${this.status}`]: this.status,\r\n \"dso-compact\": this.compact && !this.removable,\r\n \"dso-hover\": this.removeHover || this.removeFocus,\r\n })}\r\n >\r\n <slot name=\"symbol\"></slot>\r\n <span\r\n class={clsx(\"dso-label-content\", {\r\n \"dso-truncate\": !!this.truncate,\r\n })}\r\n ref={(element) => (this.labelContent = element)}\r\n tabindex={this.truncate && this.isTruncated ? 0 : undefined}\r\n onMouseEnter={() => (this.textHover = true)}\r\n onMouseLeave={() => (this.textHover = false)}\r\n onFocus={() => (this.textFocus = true)}\r\n onBlur={() => (this.textFocus = false)}\r\n >\r\n <slot></slot>\r\n </span>\r\n {this.removable && (\r\n <button\r\n type=\"button\"\r\n onClick={(e) => this.dsoRemoveClick.emit(e)}\r\n onMouseEnter={() => (this.removeHover = true)}\r\n onMouseLeave={() => (this.removeHover = false)}\r\n onFocus={() => (this.removeFocus = true)}\r\n onBlur={() => (this.removeFocus = false)}\r\n >\r\n <span class=\"sr-only\">Verwijder: {this.labelText}</span>\r\n <dso-icon icon=\"times\"></dso-icon>\r\n </button>\r\n )}\r\n </span>\r\n {this.isTruncated && (\r\n <dso-tooltip\r\n stateless\r\n id=\"toggle-anchor\"\r\n active={this.textHover || this.textFocus}\r\n position=\"top\"\r\n strategy=\"absolute\"\r\n >\r\n {this.labelText}\r\n </dso-tooltip>\r\n )}\r\n </Fragment>\r\n );\r\n }\r\n}\r\n"],"version":3}
|
|
1
|
+
{"file":"label.js","mappings":";;;;;;AAAA,MAAM,QAAQ,GAAG,4jDAA4jD;;ACiB7kD,MAAM,cAAc,GAAG,IAAI,cAAc,CACvCA,UAAQ,CAAC,CAAC,OAA8B;EACtC,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE;IACzB,IAAI,mBAAmB,CAAC,MAAM,CAAC,EAAE;MAC/B,MAAM,CAAC,cAAc,EAAE,CAAC;KACzB;GACF,CAAC,CAAC;AACL,CAAC,EAAE,GAAG,CAAC,CACR,CAAC;AAEF,SAAS,mBAAmB,CAAC,OAAgB;EAC3C,OAAO,OAAO,CAAC,OAAO,KAAK,WAAW,CAAC;AACzC,CAAC;AAED,SAAS,WAAW,CAAC,EAAe;EAClC,OAAO,EAAE,CAAC,WAAW,GAAG,EAAE,CAAC,WAAW,CAAC;AACzC,CAAC;MAOY,KAAK;;;;;;;;;;;;;;uBAmDF,KAAK;qBAGP,EAAE;;EAGd,cAAc,CAAC,SAAkB;IAC/B,IAAI,SAAS,EAAE;MACb,IAAI,CAAC,qBAAqB,EAAE,CAAC;KAC9B;SAAM;MACL,IAAI,CAAC,oBAAoB,EAAE,CAAC;KAC7B;GACF;EAGD,aAAa,CAAC,QAAiB;IAC7B,IAAI,QAAQ,EAAE;MACZ,IAAI,CAAC,aAAa,EAAE,CAAC;KACtB;SAAM;MACL,IAAI,CAAC,YAAY,EAAE,CAAC;KACrB;GACF;EAGD,eAAe,CAAC,KAAoB;IAClC,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,EAAE;MAC1B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;MACvB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;KACxB;GACF;;;;EAMD,MAAM,cAAc;IAClB,UAAU,CAAC;MACT,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,IAAI,CAAC,YAAY,IAAI,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;KAC1E,CAAC,CAAC;GACJ;EAEO,aAAa;;IACnB,IAAI,CAAC,SAAS,GAAG,MAAA,MAAA,IAAI,CAAC,IAAI,CAAC,WAAW,0CAAE,IAAI,EAAE,mCAAI,EAAE,CAAC;GACtD;EAED,gBAAgB;IACd,IAAI,IAAI,CAAC,QAAQ,EAAE;MACjB,IAAI,CAAC,aAAa,EAAE,CAAC;KACtB;IAED,IAAI,IAAI,CAAC,SAAS,EAAE;MAClB,IAAI,CAAC,qBAAqB,EAAE,CAAC;KAC9B;GACF;EAED,oBAAoB;IAClB,IAAI,CAAC,YAAY,EAAE,CAAC;IAEpB,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;GACjC;;EAGO,qBAAqB;IAC3B,IAAI,CAAC,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;IAEzE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE;MACvC,aAAa,EAAE,IAAI;MACnB,SAAS,EAAE,IAAI;MACf,OAAO,EAAE,IAAI;MACb,UAAU,EAAE,IAAI;KACjB,CAAC,CAAC;IAEH,IAAI,CAAC,aAAa,EAAE,CAAC;GACtB;EAEO,oBAAoB,CAAC,KAAK,GAAG,KAAK;;IACxC,IAAI,KAAK,IAAI,EAAE,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC,EAAE;MAC/C,MAAA,IAAI,CAAC,gBAAgB,0CAAE,UAAU,EAAE,CAAC;MAEpC,OAAO,IAAI,CAAC,gBAAgB,CAAC;KAC9B;GACF;EAEO,aAAa;IACnB,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClC,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAC7B,IAAI,CAAC,cAAc,EAAE,CAAC;GACvB;EAEO,YAAY;IAClB,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpC,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC5B,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;GAC1B;EAED,MAAM;IACJ,QACE,EAAC,QAAQ,QACP,gCACmB,eAAe,EAChC,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE;QACvB,CAAC,aAAa,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM;QACzC,aAAa,EAAE,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS;QAC9C,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW;OAClD,CAAC,IAEF,YAAM,IAAI,EAAC,QAAQ,GAAQ,EAC3B,YACE,KAAK,EAAE,IAAI,CAAC,mBAAmB,EAAE;QAC/B,cAAc,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ;OAChC,CAAC,EACF,GAAG,EAAE,CAAC,OAAO,MAAM,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,EAC/C,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,GAAG,SAAS,EAC3D,YAAY,EAAE,OAAO,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,EAC3C,YAAY,EAAE,OAAO,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,EAC5C,OAAO,EAAE,OAAO,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,EACtC,MAAM,EAAE,OAAO,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,IAEtC,eAAa,CACR,EACN,IAAI,CAAC,SAAS,KACb,cACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAC3C,YAAY,EAAE,OAAO,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,EAC7C,YAAY,EAAE,OAAO,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,EAC9C,OAAO,EAAE,OAAO,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,EACxC,MAAM,EAAE,OAAO,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,IAExC,YAAM,KAAK,EAAC,SAAS,mBAAa,IAAI,CAAC,SAAS,CAAQ,EACxD,gBAAU,IAAI,EAAC,OAAO,GAAY,CAC3B,CACV,CACI,EACN,IAAI,CAAC,WAAW,KACf,mBACE,SAAS,QACT,EAAE,EAAC,eAAe,EAClB,MAAM,EAAE,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,EACxC,QAAQ,EAAC,KAAK,EACd,QAAQ,EAAC,UAAU,IAElB,IAAI,CAAC,SAAS,CACH,CACf,CACQ,EACX;GACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["debounce"],"sources":["src/components/label/label.scss?tag=dso-label&encapsulation=shadow","src/components/label/label.tsx"],"sourcesContent":["@use \"~dso-toolkit/src/utilities\";\r\n@use \"~dso-toolkit/src/variables/units\";\r\n@use \"~dso-toolkit/src/components/label\";\r\n\r\n:host {\r\n display: inline-block;\r\n max-width: 100%;\r\n}\r\n\r\n@include utilities.box-sizing();\r\n\r\n// Todo: Replace .sr-only selector with web component specific selector, no need for .sr-only if we can generate the SCSS\r\n.sr-only {\r\n @include utilities.sr-only();\r\n}\r\n\r\n.dso-label {\r\n @include label.root();\r\n\r\n &.dso-hover {\r\n .dso-label-content {\r\n text-decoration: line-through;\r\n }\r\n }\r\n}\r\n\r\n.dso-truncate.dso-label-content {\r\n display: inline-block;\r\n max-width: 100%;\r\n overflow: hidden;\r\n text-overflow: ellipsis; // stylelint-disable-line declaration-property-value-disallowed-list -- full text can be viewed via tooltip.\r\n vertical-align: bottom;\r\n white-space: nowrap; // stylelint-disable-line declaration-property-value-disallowed-list -- full text can be viewed via tooltip.\r\n}\r\n\r\n:host([removable]) {\r\n .dso-truncate.dso-label-content {\r\n max-width: calc(100% - (units.$u3 + 4px));\r\n }\r\n}\r\n","import {\r\n h,\r\n Component,\r\n ComponentInterface,\r\n Element,\r\n Event,\r\n EventEmitter,\r\n Fragment,\r\n Method,\r\n Prop,\r\n State,\r\n Watch,\r\n Listen,\r\n} from \"@stencil/core\";\r\nimport clsx from \"clsx\";\r\nimport debounce from \"debounce\";\r\n\r\nconst resizeObserver = new ResizeObserver(\r\n debounce((entries: ResizeObserverEntry[]) => {\r\n entries.forEach(({ target }) => {\r\n if (isDsoLabelComponent(target)) {\r\n target._truncateLabel();\r\n }\r\n });\r\n }, 150),\r\n);\r\n\r\nfunction isDsoLabelComponent(element: Element): element is HTMLDsoLabelElement {\r\n return element.tagName === \"DSO-LABEL\";\r\n}\r\n\r\nfunction hasEllipses(el: HTMLElement): boolean {\r\n return el.scrollWidth > el.clientWidth;\r\n}\r\n\r\n@Component({\r\n tag: \"dso-label\",\r\n styleUrl: \"label.scss\",\r\n shadow: true,\r\n})\r\nexport class Label implements ComponentInterface {\r\n private labelContent: HTMLSpanElement | undefined;\r\n\r\n private mutationObserver?: MutationObserver;\r\n\r\n @Element()\r\n private host!: HTMLDsoLabelElement;\r\n\r\n /**\r\n * For compact Label\r\n */\r\n @Prop()\r\n compact?: boolean;\r\n\r\n /**\r\n * Shows a button that can be used to remove the Label.\r\n */\r\n @Prop()\r\n removable?: boolean;\r\n\r\n /**\r\n * The status of this Label.\r\n */\r\n @Prop()\r\n status?: \"primary\" | \"info\" | \"success\" | \"warning\" | \"danger\" | \"error\" | \"bright\" | \"attention\";\r\n\r\n /**\r\n * Emitted when the user activates the remove button.\r\n */\r\n @Event()\r\n dsoRemoveClick!: EventEmitter<MouseEvent>;\r\n\r\n @State()\r\n removeHover?: boolean;\r\n\r\n @State()\r\n removeFocus?: boolean;\r\n\r\n /**\r\n * Whether the Label is allowed to truncate the contents if it does not fit the container element.\r\n */\r\n @Prop()\r\n truncate?: boolean;\r\n\r\n @State()\r\n textHover?: boolean;\r\n\r\n @State()\r\n textFocus?: boolean;\r\n\r\n @State()\r\n isTruncated = false;\r\n\r\n @State()\r\n labelText = \"\";\r\n\r\n @Watch(\"removable\")\r\n watchRemovable(removable: boolean) {\r\n if (removable) {\r\n this.startMutationObserver();\r\n } else {\r\n this.stopMutationObserver();\r\n }\r\n }\r\n\r\n @Watch(\"truncate\")\r\n watchTruncate(truncate: boolean) {\r\n if (truncate) {\r\n this.startTruncate();\r\n } else {\r\n this.stopTruncate();\r\n }\r\n }\r\n\r\n @Listen(\"keydown\", { target: \"document\" })\r\n keyDownListener(event: KeyboardEvent) {\r\n if (event.key === \"Escape\") {\r\n this.textHover = false;\r\n this.textFocus = false;\r\n }\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n @Method()\r\n async _truncateLabel() {\r\n setTimeout(() => {\r\n this.isTruncated = !!this.labelContent && hasEllipses(this.labelContent);\r\n });\r\n }\r\n\r\n private syncLabelText() {\r\n this.labelText = this.host.textContent?.trim() ?? \"\";\r\n }\r\n\r\n componentDidLoad() {\r\n if (this.truncate) {\r\n this.startTruncate();\r\n }\r\n\r\n if (this.removable) {\r\n this.startMutationObserver();\r\n }\r\n }\r\n\r\n disconnectedCallback() {\r\n this.stopTruncate();\r\n\r\n this.stopMutationObserver(true);\r\n }\r\n\r\n /** The mutationObserver fetches the text placed inside the label, this is then used for the remove button and tooltip. */\r\n private startMutationObserver(): void {\r\n this.mutationObserver = new MutationObserver(() => this.syncLabelText());\r\n\r\n this.mutationObserver.observe(this.host, {\r\n characterData: true,\r\n childList: true,\r\n subtree: true,\r\n attributes: true,\r\n });\r\n\r\n this.syncLabelText();\r\n }\r\n\r\n private stopMutationObserver(force = false): void {\r\n if (force || !(this.truncate && this.removable)) {\r\n this.mutationObserver?.disconnect();\r\n\r\n delete this.mutationObserver;\r\n }\r\n }\r\n\r\n private startTruncate(): void {\r\n resizeObserver.observe(this.host);\r\n this.startMutationObserver();\r\n this._truncateLabel();\r\n }\r\n\r\n private stopTruncate(): void {\r\n resizeObserver.unobserve(this.host);\r\n this.stopMutationObserver();\r\n this.isTruncated = false;\r\n }\r\n\r\n render() {\r\n return (\r\n <Fragment>\r\n <span\r\n aria-describedby=\"toggle-anchor\"\r\n class={clsx(\"dso-label\", {\r\n [`dso-label-${this.status}`]: this.status,\r\n \"dso-compact\": this.compact && !this.removable,\r\n \"dso-hover\": this.removeHover || this.removeFocus,\r\n })}\r\n >\r\n <slot name=\"symbol\"></slot>\r\n <span\r\n class={clsx(\"dso-label-content\", {\r\n \"dso-truncate\": !!this.truncate,\r\n })}\r\n ref={(element) => (this.labelContent = element)}\r\n tabindex={this.truncate && this.isTruncated ? 0 : undefined}\r\n onMouseEnter={() => (this.textHover = true)}\r\n onMouseLeave={() => (this.textHover = false)}\r\n onFocus={() => (this.textFocus = true)}\r\n onBlur={() => (this.textFocus = false)}\r\n >\r\n <slot></slot>\r\n </span>\r\n {this.removable && (\r\n <button\r\n type=\"button\"\r\n onClick={(e) => this.dsoRemoveClick.emit(e)}\r\n onMouseEnter={() => (this.removeHover = true)}\r\n onMouseLeave={() => (this.removeHover = false)}\r\n onFocus={() => (this.removeFocus = true)}\r\n onBlur={() => (this.removeFocus = false)}\r\n >\r\n <span class=\"sr-only\">Verwijder: {this.labelText}</span>\r\n <dso-icon icon=\"times\"></dso-icon>\r\n </button>\r\n )}\r\n </span>\r\n {this.isTruncated && (\r\n <dso-tooltip\r\n stateless\r\n id=\"toggle-anchor\"\r\n active={this.textHover || this.textFocus}\r\n position=\"top\"\r\n strategy=\"absolute\"\r\n >\r\n {this.labelText}\r\n </dso-tooltip>\r\n )}\r\n </Fragment>\r\n );\r\n }\r\n}\r\n"],"version":3}
|
|
@@ -1019,6 +1019,8 @@ const OzonContent = /*@__PURE__*/ proxyCustomElement(class OzonContent extends H
|
|
|
1019
1019
|
"inline": [516],
|
|
1020
1020
|
"mark": [16],
|
|
1021
1021
|
"state": [32]
|
|
1022
|
+
}, undefined, {
|
|
1023
|
+
"content": ["contentWatcher"]
|
|
1022
1024
|
}]);
|
|
1023
1025
|
function defineCustomElement() {
|
|
1024
1026
|
if (typeof customElements === "undefined") {
|