@dso-toolkit/core 55.0.0 → 56.0.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 +30 -87
- package/dist/cjs/dso-accordion-section.cjs.entry.js.map +1 -1
- package/dist/cjs/dso-accordion.cjs.entry.js +197 -107
- package/dist/cjs/dso-accordion.cjs.entry.js.map +1 -1
- package/dist/cjs/dso-alert_5.cjs.entry.js +719 -0
- package/dist/cjs/dso-alert_5.cjs.entry.js.map +1 -0
- package/dist/cjs/dso-annotation-output_3.cjs.entry.js +143 -0
- package/dist/cjs/dso-annotation-output_3.cjs.entry.js.map +1 -0
- package/dist/cjs/dso-expandable.cjs.entry.js +17 -36
- package/dist/cjs/dso-expandable.cjs.entry.js.map +1 -1
- package/dist/cjs/dso-toolkit.cjs.js +1 -1
- package/dist/cjs/dsot-document-component-demo.cjs.entry.js +110 -0
- package/dist/cjs/dsot-document-component-demo.cjs.entry.js.map +1 -0
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/collection-manifest.json +5 -4
- package/dist/collection/components/accordion/accordion.interfaces.js.map +1 -1
- package/dist/collection/components/accordion/accordion.js +9 -254
- package/dist/collection/components/accordion/accordion.js.map +1 -1
- package/dist/collection/components/accordion/components/accordion-section.js +68 -126
- package/dist/collection/components/accordion/components/accordion-section.js.map +1 -1
- package/dist/collection/components/annotation-button/annotation-button.css +1003 -0
- package/dist/collection/components/annotation-button/annotation-button.js +48 -7
- package/dist/collection/components/annotation-button/annotation-button.js.map +1 -1
- package/dist/collection/components/annotation-output/annotation-output.css +2 -2
- package/dist/collection/components/annotation-output/annotation-output.js +32 -64
- package/dist/collection/components/annotation-output/annotation-output.js.map +1 -1
- package/dist/collection/components/document-component/document-component-heading.js +30 -0
- package/dist/collection/components/document-component/document-component-heading.js.map +1 -0
- package/dist/collection/components/document-component/document-component.css +135 -0
- package/dist/collection/components/document-component/document-component.demo.js +112 -0
- package/dist/collection/components/document-component/document-component.demo.js.map +1 -0
- package/dist/collection/components/document-component/document-component.js +414 -0
- package/dist/collection/components/document-component/document-component.js.map +1 -0
- package/dist/collection/components/document-component/document-component.types.js +2 -0
- package/dist/collection/components/document-component/document-component.types.js.map +1 -0
- package/dist/collection/components/expandable/expandable.js +28 -94
- package/dist/collection/components/expandable/expandable.js.map +1 -1
- package/dist/collection/components/ozon-content/ozon-content-mapper.js +9 -1
- package/dist/collection/components/ozon-content/ozon-content-mapper.js.map +1 -1
- package/dist/collection/components/ozon-content/ozon-content.css +49 -1
- package/dist/collection/components/ozon-content/ozon-content.js +1 -1
- package/dist/collection/components/ozon-content/ozon-content.js.map +1 -1
- package/dist/{esm/dso-alert.entry.js → components/alert.js} +33 -9
- package/dist/components/alert.js.map +1 -0
- package/dist/components/annotation-button.js +46 -0
- package/dist/components/annotation-button.js.map +1 -0
- package/dist/components/annotation-output.js +60 -0
- package/dist/components/annotation-output.js.map +1 -0
- package/dist/{esm/dso-badge.entry.js → components/badge.js} +26 -9
- package/dist/components/badge.js.map +1 -0
- package/dist/components/document-component.js +163 -0
- package/dist/components/document-component.js.map +1 -0
- package/dist/components/dso-accordion-section.js +35 -94
- package/dist/components/dso-accordion-section.js.map +1 -1
- package/dist/components/dso-accordion.js +199 -113
- package/dist/components/dso-accordion.js.map +1 -1
- package/dist/components/dso-alert.js +1 -50
- package/dist/components/dso-alert.js.map +1 -1
- package/dist/components/dso-annotation-button.js +1 -40
- package/dist/components/dso-annotation-button.js.map +1 -1
- package/dist/components/dso-annotation-output.js +1 -71
- package/dist/components/dso-annotation-output.js.map +1 -1
- package/dist/components/dso-autosuggest.js +1 -1
- package/dist/components/dso-badge.js +1 -32
- package/dist/components/dso-badge.js.map +1 -1
- package/dist/components/dso-document-component.d.ts +11 -0
- package/dist/components/dso-document-component.js +8 -0
- package/dist/components/dso-document-component.js.map +1 -0
- package/dist/components/dso-header.js +1 -1
- package/dist/components/dso-image-overlay.js +1 -1
- package/dist/components/dso-label.js +1 -161
- package/dist/components/dso-label.js.map +1 -1
- package/dist/components/dso-ozon-content.js +1 -544
- package/dist/components/dso-ozon-content.js.map +1 -1
- package/dist/components/dso-slide-toggle.js +1 -52
- package/dist/components/dso-slide-toggle.js.map +1 -1
- package/dist/components/dso-table.js +1 -1
- package/dist/components/dsot-document-component-demo.d.ts +11 -0
- package/dist/components/dsot-document-component-demo.js +202 -0
- package/dist/components/dsot-document-component-demo.js.map +1 -0
- package/dist/components/expandable.js +19 -40
- package/dist/components/expandable.js.map +1 -1
- package/dist/components/index.d.ts +4 -2
- package/dist/components/index.js +2 -1
- package/dist/components/index.js.map +1 -1
- package/dist/components/index2.js +61 -185
- package/dist/components/index2.js.map +1 -1
- package/dist/{esm/dso-label.entry.js → components/label.js} +50 -11
- package/dist/components/label.js.map +1 -0
- package/dist/{esm/dso-ozon-content.entry.js → components/ozon-content.js} +43 -14
- package/dist/components/ozon-content.js.map +1 -0
- package/dist/components/scrollable.js +1 -1
- package/dist/{esm/dso-slide-toggle.entry.js → components/slide-toggle.js} +31 -10
- package/dist/{dso-toolkit/p-b1627d68.entry.js.map → components/slide-toggle.js.map} +1 -1
- package/dist/components/tooltip.js +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-12c3fc19.entry.js → p-05ea1fba.entry.js} +2 -2
- package/dist/dso-toolkit/{p-657c43f4.entry.js → p-0e5a93c3.entry.js} +2 -2
- package/dist/dso-toolkit/p-14453f73.entry.js +2 -0
- package/dist/dso-toolkit/p-14453f73.entry.js.map +1 -0
- package/dist/dso-toolkit/{p-63ce173c.entry.js → p-168750a2.entry.js} +2 -2
- package/dist/dso-toolkit/{p-554e7d6a.entry.js → p-1cc75e0b.entry.js} +2 -2
- package/dist/dso-toolkit/{p-904a2caf.entry.js → p-29752a45.entry.js} +2 -2
- package/dist/dso-toolkit/{p-9c2d4a91.entry.js → p-29b741cb.entry.js} +2 -2
- package/dist/dso-toolkit/p-39f6447d.entry.js +2 -0
- package/dist/dso-toolkit/p-39f6447d.entry.js.map +1 -0
- package/dist/dso-toolkit/{p-fdf8bd94.entry.js → p-3c554a18.entry.js} +2 -2
- package/dist/dso-toolkit/{p-d4f8e1e0.entry.js → p-3fa7489e.entry.js} +2 -2
- package/dist/dso-toolkit/{p-fa6d8d5a.entry.js → p-422bcf93.entry.js} +2 -2
- package/dist/dso-toolkit/p-42d3c595.entry.js +2 -0
- package/dist/dso-toolkit/{p-1d3ed808.entry.js.map → p-42d3c595.entry.js.map} +1 -1
- package/dist/dso-toolkit/p-484ea1d2.entry.js +2 -0
- package/dist/dso-toolkit/p-484ea1d2.entry.js.map +1 -0
- package/dist/dso-toolkit/p-5265e22b.entry.js +2 -0
- package/dist/dso-toolkit/p-56d87a53.entry.js +2 -0
- package/dist/dso-toolkit/p-56d87a53.entry.js.map +1 -0
- package/dist/dso-toolkit/{p-71143eef.entry.js → p-6050e8e6.entry.js} +2 -2
- package/dist/dso-toolkit/{p-5040a304.entry.js → p-674e2406.entry.js} +2 -2
- package/dist/dso-toolkit/{p-2bd5d2a2.entry.js → p-68e9f61b.entry.js} +2 -2
- package/dist/dso-toolkit/{p-f70d6a66.entry.js → p-818d032e.entry.js} +2 -2
- package/dist/dso-toolkit/{p-a4e3638a.entry.js → p-83cdfde8.entry.js} +2 -2
- package/dist/dso-toolkit/{p-8f166691.entry.js → p-909ccf98.entry.js} +2 -2
- package/dist/dso-toolkit/{p-58bed94b.entry.js → p-9b587a94.entry.js} +2 -2
- package/dist/dso-toolkit/p-9c0477fc.entry.js +2 -0
- package/dist/dso-toolkit/{p-56069350.entry.js.map → p-9c0477fc.entry.js.map} +1 -1
- package/dist/dso-toolkit/{p-79767cc1.entry.js → p-9f2bb98b.entry.js} +2 -2
- package/dist/dso-toolkit/{p-6e0b67c9.entry.js → p-9fee52e5.entry.js} +2 -2
- package/dist/dso-toolkit/{p-9b14a015.entry.js → p-a616ab8a.entry.js} +2 -2
- package/dist/dso-toolkit/{p-ef23bffb.entry.js → p-b627d9ac.entry.js} +2 -2
- package/dist/dso-toolkit/{p-9d64a2f4.entry.js → p-b67631ef.entry.js} +2 -2
- package/dist/dso-toolkit/{p-0653b5d2.entry.js → p-bcae3f55.entry.js} +2 -2
- package/dist/dso-toolkit/{p-b1b53cb3.entry.js → p-bf203ab8.entry.js} +2 -2
- package/dist/dso-toolkit/{p-ee2771d4.entry.js → p-c8165a50.entry.js} +2 -2
- package/dist/dso-toolkit/{p-26cdce1c.js → p-ce928197.js} +2 -2
- package/dist/dso-toolkit/{p-601b4ce0.entry.js → p-cfd6f4ef.entry.js} +2 -2
- package/dist/dso-toolkit/{p-b6f1ae13.entry.js → p-d3f69d06.entry.js} +2 -2
- package/dist/dso-toolkit/{p-3ab9390b.entry.js → p-d8c137b5.entry.js} +2 -2
- package/dist/dso-toolkit/p-debbe184.entry.js +2 -0
- package/dist/dso-toolkit/{p-c3178955.entry.js.map → p-debbe184.entry.js.map} +1 -1
- package/dist/dso-toolkit/{p-7098eb9d.entry.js → p-ec4b568d.entry.js} +2 -2
- package/dist/dso-toolkit/p-ec4b568d.entry.js.map +1 -0
- package/dist/dso-toolkit/p-fafa5ea1.entry.js +2 -0
- package/dist/dso-toolkit/p-fafa5ea1.entry.js.map +1 -0
- package/dist/esm/dso-accordion-section.entry.js +31 -88
- package/dist/esm/dso-accordion-section.entry.js.map +1 -1
- package/dist/esm/dso-accordion.entry.js +198 -108
- 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.entry.js +1 -1
- package/dist/esm/dso-alert_5.entry.js +711 -0
- package/dist/esm/dso-alert_5.entry.js.map +1 -0
- package/dist/esm/dso-annotation-output_3.entry.js +137 -0
- package/dist/esm/dso-annotation-output_3.entry.js.map +1 -0
- package/dist/esm/dso-attachments-counter.entry.js +1 -1
- package/dist/esm/dso-autosuggest.entry.js +1 -1
- 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.entry.js +1 -1
- package/dist/esm/dso-dropdown-menu.entry.js +1 -1
- package/dist/esm/dso-expandable.entry.js +18 -37
- package/dist/esm/dso-expandable.entry.js.map +1 -1
- package/dist/esm/dso-header.entry.js +1 -1
- package/dist/esm/dso-helpcenter-panel.entry.js +1 -1
- package/dist/esm/dso-highlight-box.entry.js +1 -1
- package/dist/esm/dso-icon.entry.js +1 -1
- package/dist/esm/dso-image-overlay.entry.js +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 +1 -1
- package/dist/esm/dso-map-base-layers.entry.js +1 -1
- package/dist/esm/dso-map-controls.entry.js +1 -1
- package/dist/esm/dso-map-overlays.entry.js +1 -1
- package/dist/esm/dso-modal.entry.js +1 -1
- package/dist/esm/dso-pagination.entry.js +1 -1
- package/dist/esm/dso-progress-bar.entry.js +1 -1
- package/dist/esm/dso-progress-indicator.entry.js +1 -1
- package/dist/esm/dso-responsive-element.entry.js +1 -1
- package/dist/esm/dso-scrollable.entry.js +1 -1
- package/dist/esm/dso-table.entry.js +1 -1
- package/dist/esm/dso-toggletip.entry.js +1 -1
- package/dist/esm/dso-toolkit.js +3 -3
- package/dist/esm/dso-tooltip.entry.js +1 -1
- package/dist/esm/dso-tree-view.entry.js +1 -1
- package/dist/esm/dso-viewer-grid.entry.js +1 -1
- package/dist/esm/dsot-document-component-demo.entry.js +106 -0
- package/dist/esm/dsot-document-component-demo.entry.js.map +1 -0
- package/dist/esm/{index-898d8443.js → index-367cff36.js} +2 -2
- package/dist/esm/{index-898d8443.js.map → index-367cff36.js.map} +1 -1
- package/dist/esm/loader.js +3 -3
- package/dist/types/components/accordion/accordion.d.ts +6 -39
- package/dist/types/components/accordion/accordion.interfaces.d.ts +21 -15
- package/dist/types/components/accordion/components/accordion-section.d.ts +15 -18
- package/dist/types/components/annotation-button/annotation-button.d.ts +15 -4
- package/dist/types/components/annotation-output/annotation-output.d.ts +7 -5
- package/dist/types/components/document-component/document-component-heading.d.ts +7 -0
- package/dist/types/components/document-component/document-component.d.ts +84 -0
- package/dist/types/components/document-component/document-component.demo.d.ts +40 -0
- package/dist/types/components/document-component/document-component.types.d.ts +8 -0
- package/dist/types/components/expandable/expandable.d.ts +5 -12
- package/dist/types/components.d.ts +233 -125
- package/package.json +2 -2
- package/dist/cjs/annotation.service-60e6b0f1.js +0 -23
- package/dist/cjs/annotation.service-60e6b0f1.js.map +0 -1
- package/dist/cjs/dso-alert.cjs.entry.js +0 -34
- package/dist/cjs/dso-alert.cjs.entry.js.map +0 -1
- package/dist/cjs/dso-annotation-button.cjs.entry.js +0 -27
- package/dist/cjs/dso-annotation-button.cjs.entry.js.map +0 -1
- package/dist/cjs/dso-annotation-output.cjs.entry.js +0 -44
- package/dist/cjs/dso-annotation-output.cjs.entry.js.map +0 -1
- package/dist/cjs/dso-badge.cjs.entry.js +0 -23
- package/dist/cjs/dso-badge.cjs.entry.js.map +0 -1
- package/dist/cjs/dso-expandable-heading.cjs.entry.js +0 -54
- package/dist/cjs/dso-expandable-heading.cjs.entry.js.map +0 -1
- package/dist/cjs/dso-label.cjs.entry.js +0 -130
- package/dist/cjs/dso-label.cjs.entry.js.map +0 -1
- package/dist/cjs/dso-ozon-content.cjs.entry.js +0 -532
- package/dist/cjs/dso-ozon-content.cjs.entry.js.map +0 -1
- package/dist/cjs/dso-slide-toggle.cjs.entry.js +0 -39
- package/dist/cjs/dso-slide-toggle.cjs.entry.js.map +0 -1
- package/dist/cjs/index-a189d603.js +0 -198
- package/dist/cjs/index-a189d603.js.map +0 -1
- package/dist/collection/components/annotation-output/annotation-output.interfaces.js +0 -2
- package/dist/collection/components/annotation-output/annotation-output.interfaces.js.map +0 -1
- package/dist/collection/components/expandable/expandable.functions.js +0 -4
- package/dist/collection/components/expandable/expandable.functions.js.map +0 -1
- package/dist/collection/components/expandable-heading/expandable-heading.css +0 -200
- package/dist/collection/components/expandable-heading/expandable-heading.interfaces.js +0 -2
- package/dist/collection/components/expandable-heading/expandable-heading.interfaces.js.map +0 -1
- package/dist/collection/components/expandable-heading/expandable-heading.js +0 -163
- package/dist/collection/components/expandable-heading/expandable-heading.js.map +0 -1
- package/dist/collection/components/expandable-heading/heading.js +0 -17
- package/dist/collection/components/expandable-heading/heading.js.map +0 -1
- package/dist/collection/services/annotation.service.js +0 -17
- package/dist/collection/services/annotation.service.js.map +0 -1
- package/dist/components/annotation.service.js +0 -21
- package/dist/components/annotation.service.js.map +0 -1
- package/dist/components/dso-expandable-heading.d.ts +0 -11
- package/dist/components/dso-expandable-heading.js +0 -86
- package/dist/components/dso-expandable-heading.js.map +0 -1
- package/dist/components/index3.js +0 -72
- package/dist/components/index3.js.map +0 -1
- package/dist/dso-toolkit/p-0c762ac9.entry.js +0 -2
- package/dist/dso-toolkit/p-0c762ac9.entry.js.map +0 -1
- package/dist/dso-toolkit/p-0ffae824.entry.js +0 -2
- package/dist/dso-toolkit/p-0ffae824.entry.js.map +0 -1
- package/dist/dso-toolkit/p-1d3ed808.entry.js +0 -2
- package/dist/dso-toolkit/p-26713aef.js +0 -2
- package/dist/dso-toolkit/p-26713aef.js.map +0 -1
- package/dist/dso-toolkit/p-52f2be73.entry.js +0 -2
- package/dist/dso-toolkit/p-52f2be73.entry.js.map +0 -1
- package/dist/dso-toolkit/p-56069350.entry.js +0 -2
- package/dist/dso-toolkit/p-59ff4e19.entry.js +0 -2
- package/dist/dso-toolkit/p-59ff4e19.entry.js.map +0 -1
- package/dist/dso-toolkit/p-7098eb9d.entry.js.map +0 -1
- package/dist/dso-toolkit/p-835a599b.entry.js +0 -2
- package/dist/dso-toolkit/p-91453b47.entry.js +0 -2
- package/dist/dso-toolkit/p-91453b47.entry.js.map +0 -1
- package/dist/dso-toolkit/p-9eccd618.js +0 -2
- package/dist/dso-toolkit/p-9eccd618.js.map +0 -1
- package/dist/dso-toolkit/p-b1627d68.entry.js +0 -2
- package/dist/dso-toolkit/p-c3178955.entry.js +0 -2
- package/dist/dso-toolkit/p-c464da66.entry.js +0 -2
- package/dist/dso-toolkit/p-c464da66.entry.js.map +0 -1
- package/dist/dso-toolkit/p-c4e1c7cb.entry.js +0 -2
- package/dist/dso-toolkit/p-c4e1c7cb.entry.js.map +0 -1
- package/dist/dso-toolkit/p-dd9e9c47.entry.js +0 -2
- package/dist/dso-toolkit/p-dd9e9c47.entry.js.map +0 -1
- package/dist/dso-toolkit/p-de310a49.entry.js +0 -2
- package/dist/dso-toolkit/p-de310a49.entry.js.map +0 -1
- package/dist/esm/annotation.service-cd25eba0.js +0 -21
- package/dist/esm/annotation.service-cd25eba0.js.map +0 -1
- package/dist/esm/dso-alert.entry.js.map +0 -1
- package/dist/esm/dso-annotation-button.entry.js +0 -23
- package/dist/esm/dso-annotation-button.entry.js.map +0 -1
- package/dist/esm/dso-annotation-output.entry.js +0 -40
- package/dist/esm/dso-annotation-output.entry.js.map +0 -1
- package/dist/esm/dso-badge.entry.js.map +0 -1
- package/dist/esm/dso-expandable-heading.entry.js +0 -50
- package/dist/esm/dso-expandable-heading.entry.js.map +0 -1
- package/dist/esm/dso-label.entry.js.map +0 -1
- package/dist/esm/dso-ozon-content.entry.js.map +0 -1
- package/dist/esm/dso-slide-toggle.entry.js.map +0 -1
- package/dist/esm/index-b57dbe04.js +0 -196
- package/dist/esm/index-b57dbe04.js.map +0 -1
- package/dist/types/components/annotation-output/annotation-output.interfaces.d.ts +0 -4
- package/dist/types/components/expandable/expandable.functions.d.ts +0 -1
- package/dist/types/components/expandable-heading/expandable-heading.d.ts +0 -33
- package/dist/types/components/expandable-heading/expandable-heading.interfaces.d.ts +0 -6
- package/dist/types/components/expandable-heading/heading.d.ts +0 -9
- package/dist/types/services/annotation.service.d.ts +0 -10
- /package/dist/dso-toolkit/{p-12c3fc19.entry.js.map → p-05ea1fba.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-657c43f4.entry.js.map → p-0e5a93c3.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-63ce173c.entry.js.map → p-168750a2.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-554e7d6a.entry.js.map → p-1cc75e0b.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-904a2caf.entry.js.map → p-29752a45.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-9c2d4a91.entry.js.map → p-29b741cb.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-fdf8bd94.entry.js.map → p-3c554a18.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-d4f8e1e0.entry.js.map → p-3fa7489e.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-fa6d8d5a.entry.js.map → p-422bcf93.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-835a599b.entry.js.map → p-5265e22b.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-71143eef.entry.js.map → p-6050e8e6.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-5040a304.entry.js.map → p-674e2406.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-2bd5d2a2.entry.js.map → p-68e9f61b.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-f70d6a66.entry.js.map → p-818d032e.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-a4e3638a.entry.js.map → p-83cdfde8.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-8f166691.entry.js.map → p-909ccf98.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-58bed94b.entry.js.map → p-9b587a94.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-79767cc1.entry.js.map → p-9f2bb98b.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-6e0b67c9.entry.js.map → p-9fee52e5.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-9b14a015.entry.js.map → p-a616ab8a.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-ef23bffb.entry.js.map → p-b627d9ac.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-9d64a2f4.entry.js.map → p-b67631ef.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-0653b5d2.entry.js.map → p-bcae3f55.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-b1b53cb3.entry.js.map → p-bf203ab8.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-ee2771d4.entry.js.map → p-c8165a50.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-26cdce1c.js.map → p-ce928197.js.map} +0 -0
- /package/dist/dso-toolkit/{p-601b4ce0.entry.js.map → p-cfd6f4ef.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-b6f1ae13.entry.js.map → p-d3f69d06.entry.js.map} +0 -0
- /package/dist/dso-toolkit/{p-3ab9390b.entry.js.map → p-d8c137b5.entry.js.map} +0 -0
|
@@ -1,73 +1,52 @@
|
|
|
1
1
|
import { h, forceUpdate, Fragment, Host, } from "@stencil/core";
|
|
2
|
-
import { isExpandable } from "../../expandable/expandable.functions";
|
|
3
2
|
import { stateMap } from "./accordion-section.interfaces";
|
|
4
3
|
import { Handle, HandleElement, HandleIcon } from "./handles";
|
|
5
4
|
export class AccordionSection {
|
|
6
5
|
constructor() {
|
|
6
|
+
this.handleClick = (event) => {
|
|
7
|
+
this.dsoToggleClick.emit({
|
|
8
|
+
originalEvent: event,
|
|
9
|
+
open: !this.open,
|
|
10
|
+
});
|
|
11
|
+
};
|
|
12
|
+
this.handleExpandableAnimationEnd = (e) => {
|
|
13
|
+
this.dsoAnimationEnd.emit({
|
|
14
|
+
open: this.open,
|
|
15
|
+
scrollIntoView: () => this.scrollIntoView(e.detail.bodyHeight),
|
|
16
|
+
});
|
|
17
|
+
};
|
|
7
18
|
this.handleTitle = undefined;
|
|
8
19
|
this.heading = "h2";
|
|
9
20
|
this.handleUrl = undefined;
|
|
10
|
-
this.
|
|
21
|
+
this.status = undefined;
|
|
11
22
|
this.attachmentCount = undefined;
|
|
12
23
|
this.icon = undefined;
|
|
13
|
-
this.
|
|
24
|
+
this.statusDescription = undefined;
|
|
14
25
|
this.open = false;
|
|
15
|
-
this.
|
|
26
|
+
this.hasNestedAccordion = false;
|
|
16
27
|
this.hover = false;
|
|
17
28
|
}
|
|
18
29
|
componentWillLoad() {
|
|
19
|
-
const accordion = this.host.parentElement;
|
|
20
|
-
this.hasNestedSection = this.host.querySelector("dso-accordion") !== null;
|
|
21
|
-
if (accordion && isAccordion(accordion)) {
|
|
22
|
-
this.accordion = accordion;
|
|
23
|
-
accordion._getState().then((state) => {
|
|
24
|
-
this.accordionState = state;
|
|
25
|
-
forceUpdate(this.host);
|
|
26
|
-
});
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
* Toggle this section.
|
|
31
|
-
* @param scrollIntoView boolean - defaults to true
|
|
32
|
-
*/
|
|
33
|
-
async toggleSection(scrollIntoView = true) {
|
|
34
30
|
var _a;
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
})
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* Scroll this section into view when needed.
|
|
43
|
-
*/
|
|
44
|
-
async scrollSectionIntoView() {
|
|
45
|
-
await this.scrollIntoViewWhenNeeded(false);
|
|
31
|
+
this.hasNestedAccordion = this.host.querySelector("dso-accordion") !== null;
|
|
32
|
+
(_a = this.accordion) === null || _a === void 0 ? void 0 : _a._getState().then((state) => {
|
|
33
|
+
this.accordionState = state;
|
|
34
|
+
forceUpdate(this.host);
|
|
35
|
+
});
|
|
46
36
|
}
|
|
47
37
|
get isNeutral() {
|
|
48
38
|
var _a;
|
|
49
39
|
return ((_a = this.accordionState) === null || _a === void 0 ? void 0 : _a.variant) === "neutral";
|
|
50
40
|
}
|
|
51
|
-
async
|
|
52
|
-
var _a, _b
|
|
53
|
-
AccordionSection.scrollCandidate = undefined;
|
|
41
|
+
async scrollIntoView(bodyHeight) {
|
|
42
|
+
var _a, _b;
|
|
54
43
|
const bodyClientRect = (_a = this.sectionBody) === null || _a === void 0 ? void 0 : _a.getBoundingClientRect();
|
|
55
44
|
const headingClientRect = (_b = this.sectionHeading) === null || _b === void 0 ? void 0 : _b.getBoundingClientRect();
|
|
56
45
|
if (!bodyClientRect || !headingClientRect || !this.accordionState) {
|
|
57
46
|
return;
|
|
58
47
|
}
|
|
59
|
-
const waitForAnimationBeforeScrolling = async (state) => {
|
|
60
|
-
var _a, _b;
|
|
61
|
-
this.bodyHeight = await ((_a = this.expandable) === null || _a === void 0 ? void 0 : _a._getBodyHeight());
|
|
62
|
-
const sectionBottomOffsetTop = this.host.offsetTop + headingClientRect.height + (this.open ? (_b = this.bodyHeight) !== null && _b !== void 0 ? _b : 0 : 0);
|
|
63
|
-
return (sectionToggled && (sectionBottomOffsetTop > document.documentElement.scrollHeight || state.allowMultipleOpen));
|
|
64
|
-
};
|
|
65
|
-
if (await waitForAnimationBeforeScrolling(this.accordionState)) {
|
|
66
|
-
AccordionSection.scrollCandidate = this.host;
|
|
67
|
-
return;
|
|
68
|
-
}
|
|
69
48
|
// this y is relative to the top of the viewport.
|
|
70
|
-
const sectionBottomY = headingClientRect.top + headingClientRect.height + (this.open ?
|
|
49
|
+
const sectionBottomY = headingClientRect.top + headingClientRect.height + (this.open ? bodyHeight !== null && bodyHeight !== void 0 ? bodyHeight : 0 : 0);
|
|
71
50
|
if (sectionBottomY > window.innerHeight) {
|
|
72
51
|
const expandedAccordionHeight = sectionBottomY - headingClientRect.top;
|
|
73
52
|
const shouldScrollToTopOfSection = expandedAccordionHeight > window.innerHeight;
|
|
@@ -85,51 +64,19 @@ export class AccordionSection {
|
|
|
85
64
|
});
|
|
86
65
|
}
|
|
87
66
|
}
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
if (!(expandableElement instanceof HTMLElement)) {
|
|
91
|
-
return;
|
|
92
|
-
}
|
|
93
|
-
if (isExpandable(expandableElement)) {
|
|
94
|
-
this.expandable = expandableElement;
|
|
95
|
-
this.expandable._getAnimeInstance().then((animeInstance) => {
|
|
96
|
-
if (animeInstance) {
|
|
97
|
-
animeInstance.changeComplete = async () => {
|
|
98
|
-
if (!section) {
|
|
99
|
-
return;
|
|
100
|
-
}
|
|
101
|
-
const accordion = section.parentElement;
|
|
102
|
-
if (accordion && isAccordion(accordion)) {
|
|
103
|
-
accordion === null || accordion === void 0 ? void 0 : accordion.animationEnd(section);
|
|
104
|
-
}
|
|
105
|
-
if (AccordionSection.scrollCandidate === this.host) {
|
|
106
|
-
AccordionSection.scrollCandidate = undefined;
|
|
107
|
-
await this.scrollSectionIntoView();
|
|
108
|
-
}
|
|
109
|
-
};
|
|
110
|
-
}
|
|
111
|
-
});
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
async toggle(e) {
|
|
115
|
-
var _a;
|
|
116
|
-
e === null || e === void 0 ? void 0 : e.preventDefault();
|
|
117
|
-
(_a = this.accordion) === null || _a === void 0 ? void 0 : _a.toggleSection(this.host, e).then(async (isOpen) => {
|
|
118
|
-
if (isOpen) {
|
|
119
|
-
await this.scrollIntoViewWhenNeeded(true);
|
|
120
|
-
}
|
|
121
|
-
});
|
|
67
|
+
get accordion() {
|
|
68
|
+
return this.host.closest("dso-accordion");
|
|
122
69
|
}
|
|
123
70
|
render() {
|
|
124
71
|
var _a;
|
|
125
72
|
const { variant, reverseAlign } = (_a = this.accordionState) !== null && _a !== void 0 ? _a : {};
|
|
126
|
-
const hasAddons = !!this.
|
|
73
|
+
const hasAddons = !!this.statusDescription || !!this.status || !!this.icon || !!this.attachmentCount;
|
|
127
74
|
return (h(Host, { class: {
|
|
128
75
|
"dso-accordion-section": true,
|
|
129
76
|
["dso-accordion-" + variant]: true,
|
|
130
|
-
"dso-nested-accordion": this.
|
|
77
|
+
"dso-nested-accordion": this.hasNestedAccordion,
|
|
131
78
|
"dso-accordion-reverse-align": reverseAlign !== null && reverseAlign !== void 0 ? reverseAlign : false,
|
|
132
|
-
}, hidden: !variant, onMouseenter: () => (this.hover = true), onMouseleave: () => (this.hover = false) }, h(Handle, { heading: this.heading, ref: (element) => (this.sectionHeading = element) }, h(HandleElement, { handleUrl: this.handleUrl, onClick:
|
|
79
|
+
}, hidden: !variant, onMouseenter: () => (this.hover = true), onMouseleave: () => (this.hover = false) }, h(Handle, { heading: this.heading, ref: (element) => (this.sectionHeading = element) }, h(HandleElement, { handleUrl: this.handleUrl, onClick: this.handleClick, open: this.open }, reverseAlign ? (h(Fragment, null, hasAddons && (h("div", { class: "dso-section-handle-addons" }, h(HandleIcon, { icon: this.icon }))), h("span", null, this.handleTitle), h("dso-icon", { class: "dso-section-handle-chevron", icon: "chevron-down" }))) : (h(Fragment, null, h("dso-icon", { class: "dso-section-handle-chevron", icon: "chevron-right" }), this.status && h("span", { class: "sr-only" }, stateMap[this.status]), h("span", null, this.handleTitle, this.isNeutral && (h("dso-icon", { class: "info-icon", icon: this.open || this.hover ? "info-active" : "info" }))), hasAddons && (h("div", { class: "dso-section-handle-addons" }, this.statusDescription && h("span", { class: "dso-status" }, this.statusDescription), h(HandleIcon, { state: this.status, icon: this.icon, attachmentCount: this.attachmentCount }))))))), h("dso-expandable", { class: "dso-section-body", open: this.open, enableAnimation: true, minimumHeight: this.isNeutral ? 0 : 4, onDsoExpandableAnimationEnd: this.handleExpandableAnimationEnd }, h("div", { class: "dso-section-body-content", ref: (element) => (this.sectionBody = element) }, h("slot", null)))));
|
|
133
80
|
}
|
|
134
81
|
static get is() { return "dso-accordion-section"; }
|
|
135
82
|
static get encapsulation() { return "shadow"; }
|
|
@@ -202,7 +149,7 @@ export class AccordionSection {
|
|
|
202
149
|
"attribute": "handle-url",
|
|
203
150
|
"reflect": false
|
|
204
151
|
},
|
|
205
|
-
"
|
|
152
|
+
"status": {
|
|
206
153
|
"type": "string",
|
|
207
154
|
"mutable": false,
|
|
208
155
|
"complexType": {
|
|
@@ -221,7 +168,7 @@ export class AccordionSection {
|
|
|
221
168
|
"tags": [],
|
|
222
169
|
"text": "`state` takes precedence over `attachmentCount` and `icon`"
|
|
223
170
|
},
|
|
224
|
-
"attribute": "
|
|
171
|
+
"attribute": "status",
|
|
225
172
|
"reflect": false
|
|
226
173
|
},
|
|
227
174
|
"attachmentCount": {
|
|
@@ -258,7 +205,7 @@ export class AccordionSection {
|
|
|
258
205
|
"attribute": "icon",
|
|
259
206
|
"reflect": false
|
|
260
207
|
},
|
|
261
|
-
"
|
|
208
|
+
"statusDescription": {
|
|
262
209
|
"type": "string",
|
|
263
210
|
"mutable": false,
|
|
264
211
|
"complexType": {
|
|
@@ -272,7 +219,7 @@ export class AccordionSection {
|
|
|
272
219
|
"tags": [],
|
|
273
220
|
"text": "The status of the section."
|
|
274
221
|
},
|
|
275
|
-
"attribute": "status",
|
|
222
|
+
"attribute": "status-description",
|
|
276
223
|
"reflect": false
|
|
277
224
|
},
|
|
278
225
|
"open": {
|
|
@@ -287,7 +234,7 @@ export class AccordionSection {
|
|
|
287
234
|
"optional": false,
|
|
288
235
|
"docs": {
|
|
289
236
|
"tags": [],
|
|
290
|
-
"text": "
|
|
237
|
+
"text": "Set the Accordion Section open."
|
|
291
238
|
},
|
|
292
239
|
"attribute": "open",
|
|
293
240
|
"reflect": true,
|
|
@@ -297,58 +244,53 @@ export class AccordionSection {
|
|
|
297
244
|
}
|
|
298
245
|
static get states() {
|
|
299
246
|
return {
|
|
300
|
-
"
|
|
247
|
+
"hasNestedAccordion": {},
|
|
301
248
|
"hover": {}
|
|
302
249
|
};
|
|
303
250
|
}
|
|
304
|
-
static get
|
|
305
|
-
return {
|
|
306
|
-
|
|
251
|
+
static get events() {
|
|
252
|
+
return [{
|
|
253
|
+
"method": "dsoToggleClick",
|
|
254
|
+
"name": "dsoToggleClick",
|
|
255
|
+
"bubbles": false,
|
|
256
|
+
"cancelable": true,
|
|
257
|
+
"composed": true,
|
|
258
|
+
"docs": {
|
|
259
|
+
"tags": [],
|
|
260
|
+
"text": "Emitted when the user activates the toggle button."
|
|
261
|
+
},
|
|
307
262
|
"complexType": {
|
|
308
|
-
"
|
|
309
|
-
"
|
|
310
|
-
"tags": [{
|
|
311
|
-
"name": "param",
|
|
312
|
-
"text": "scrollIntoView boolean - defaults to true"
|
|
313
|
-
}],
|
|
314
|
-
"text": "boolean - defaults to true"
|
|
315
|
-
}],
|
|
263
|
+
"original": "AccordionSectionToggleClickEvent",
|
|
264
|
+
"resolved": "AccordionSectionToggleClickEvent",
|
|
316
265
|
"references": {
|
|
317
|
-
"
|
|
318
|
-
"location": "
|
|
266
|
+
"AccordionSectionToggleClickEvent": {
|
|
267
|
+
"location": "import",
|
|
268
|
+
"path": "../accordion.interfaces"
|
|
319
269
|
}
|
|
320
|
-
}
|
|
321
|
-
"return": "Promise<void>"
|
|
322
|
-
},
|
|
323
|
-
"docs": {
|
|
324
|
-
"text": "Toggle this section.",
|
|
325
|
-
"tags": [{
|
|
326
|
-
"name": "param",
|
|
327
|
-
"text": "scrollIntoView boolean - defaults to true"
|
|
328
|
-
}]
|
|
270
|
+
}
|
|
329
271
|
}
|
|
330
|
-
},
|
|
331
|
-
|
|
272
|
+
}, {
|
|
273
|
+
"method": "dsoAnimationEnd",
|
|
274
|
+
"name": "dsoAnimationEnd",
|
|
275
|
+
"bubbles": false,
|
|
276
|
+
"cancelable": true,
|
|
277
|
+
"composed": true,
|
|
278
|
+
"docs": {
|
|
279
|
+
"tags": [],
|
|
280
|
+
"text": "Event emitted when the Accordion Section completes its toggle animation."
|
|
281
|
+
},
|
|
332
282
|
"complexType": {
|
|
333
|
-
"
|
|
334
|
-
"
|
|
283
|
+
"original": "AccordionSectionAnimationEndEvent",
|
|
284
|
+
"resolved": "AccordionSectionAnimationEndEvent",
|
|
335
285
|
"references": {
|
|
336
|
-
"
|
|
337
|
-
"location": "
|
|
286
|
+
"AccordionSectionAnimationEndEvent": {
|
|
287
|
+
"location": "import",
|
|
288
|
+
"path": "../accordion.interfaces"
|
|
338
289
|
}
|
|
339
|
-
}
|
|
340
|
-
"return": "Promise<void>"
|
|
341
|
-
},
|
|
342
|
-
"docs": {
|
|
343
|
-
"text": "Scroll this section into view when needed.",
|
|
344
|
-
"tags": []
|
|
290
|
+
}
|
|
345
291
|
}
|
|
346
|
-
}
|
|
347
|
-
};
|
|
292
|
+
}];
|
|
348
293
|
}
|
|
349
294
|
static get elementRef() { return "host"; }
|
|
350
295
|
}
|
|
351
|
-
function isAccordion(element) {
|
|
352
|
-
return element.tagName === "DSO-ACCORDION";
|
|
353
|
-
}
|
|
354
296
|
//# sourceMappingURL=accordion-section.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accordion-section.js","sourceRoot":"","sources":["../../../../src/components/accordion/components/accordion-section.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\r\n h,\r\n Component,\r\n ComponentInterface,\r\n Element,\r\n forceUpdate,\r\n Fragment,\r\n Host,\r\n Method,\r\n Prop,\r\n State,\r\n} from \"@stencil/core\";\r\nimport { isExpandable } from \"../../expandable/expandable.functions\";\r\n\r\nimport { AccordionInternalState } from \"../accordion.interfaces\";\r\nimport { AccordionHeading, AccordionSectionState, stateMap } from \"./accordion-section.interfaces\";\r\nimport { Handle, HandleElement, HandleIcon } from \"./handles\";\r\n\r\n@Component({\r\n tag: \"dso-accordion-section\",\r\n styleUrl: \"accordion-section.scss\",\r\n shadow: true,\r\n})\r\nexport class AccordionSection implements ComponentInterface {\r\n private static scrollCandidate?: HTMLElement;\r\n\r\n private accordion?: HTMLDsoAccordionElement;\r\n\r\n private accordionState?: AccordionInternalState;\r\n\r\n private sectionBody?: HTMLDivElement;\r\n\r\n private sectionHeading?: HTMLHeadingElement;\r\n\r\n private bodyHeight?: number;\r\n\r\n private expandable?: HTMLDsoExpandableElement;\r\n\r\n @Element()\r\n host!: HTMLDsoAccordionSectionElement;\r\n\r\n /**\r\n * The title of the handle\r\n */\r\n @Prop()\r\n handleTitle?: string;\r\n\r\n /**\r\n * Which heading element to use.\r\n */\r\n @Prop()\r\n heading: AccordionHeading = \"h2\";\r\n\r\n /**\r\n * When set the handle will render as a `<a>`. When undefined it renders as a `<button>`\r\n */\r\n @Prop()\r\n handleUrl?: string;\r\n\r\n /**\r\n * `state` takes precedence over `attachmentCount` and `icon`\r\n */\r\n @Prop()\r\n state?: AccordionSectionState;\r\n\r\n /**\r\n * `attachmentCount` takes precedence over `icon`\r\n */\r\n @Prop()\r\n attachmentCount?: number;\r\n\r\n /**\r\n * To set an icon in the heading handle.\r\n */\r\n @Prop()\r\n icon?: string;\r\n\r\n /**\r\n * The status of the section.\r\n */\r\n @Prop()\r\n status?: string;\r\n\r\n /**\r\n * To open the Accordion Section.\r\n */\r\n @Prop({ reflect: true })\r\n open = false;\r\n\r\n @State()\r\n hasNestedSection = false;\r\n\r\n @State()\r\n hover = false;\r\n\r\n componentWillLoad() {\r\n const accordion = this.host.parentElement;\r\n\r\n this.hasNestedSection = this.host.querySelector(\"dso-accordion\") !== null;\r\n\r\n if (accordion && isAccordion(accordion)) {\r\n this.accordion = accordion;\r\n\r\n accordion._getState().then((state) => {\r\n this.accordionState = state;\r\n forceUpdate(this.host);\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Toggle this section.\r\n * @param scrollIntoView boolean - defaults to true\r\n */\r\n @Method()\r\n async toggleSection(scrollIntoView = true): Promise<void> {\r\n await this.accordion?.toggleSection(this.host).then(async () => {\r\n if (scrollIntoView) {\r\n await this.scrollIntoViewWhenNeeded(true);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Scroll this section into view when needed.\r\n */\r\n @Method()\r\n async scrollSectionIntoView(): Promise<void> {\r\n await this.scrollIntoViewWhenNeeded(false);\r\n }\r\n\r\n get isNeutral() {\r\n return this.accordionState?.variant === \"neutral\";\r\n }\r\n\r\n private async scrollIntoViewWhenNeeded(sectionToggled: boolean): Promise<void> {\r\n AccordionSection.scrollCandidate = undefined;\r\n\r\n const bodyClientRect = this.sectionBody?.getBoundingClientRect();\r\n const headingClientRect = this.sectionHeading?.getBoundingClientRect();\r\n\r\n if (!bodyClientRect || !headingClientRect || !this.accordionState) {\r\n return;\r\n }\r\n\r\n const waitForAnimationBeforeScrolling = async (state: AccordionInternalState) => {\r\n this.bodyHeight = await this.expandable?._getBodyHeight();\r\n\r\n const sectionBottomOffsetTop =\r\n this.host.offsetTop + headingClientRect.height + (this.open ? this.bodyHeight ?? 0 : 0);\r\n\r\n return (\r\n sectionToggled && (sectionBottomOffsetTop > document.documentElement.scrollHeight || state.allowMultipleOpen)\r\n );\r\n };\r\n\r\n if (await waitForAnimationBeforeScrolling(this.accordionState)) {\r\n AccordionSection.scrollCandidate = this.host;\r\n return;\r\n }\r\n\r\n // this y is relative to the top of the viewport.\r\n const sectionBottomY = headingClientRect.top + headingClientRect.height + (this.open ? this.bodyHeight ?? 0 : 0);\r\n if (sectionBottomY > window.innerHeight) {\r\n const expandedAccordionHeight = sectionBottomY - headingClientRect.top;\r\n const shouldScrollToTopOfSection = expandedAccordionHeight > window.innerHeight;\r\n\r\n window.scrollTo({\r\n top: shouldScrollToTopOfSection\r\n ? this.host.offsetTop\r\n : this.host.offsetTop - (window.innerHeight - expandedAccordionHeight),\r\n behavior: \"smooth\",\r\n });\r\n } else if (headingClientRect.top < 0) {\r\n window.scrollTo({\r\n top: this.host.offsetTop,\r\n behavior: \"smooth\",\r\n });\r\n }\r\n }\r\n\r\n private setAnimationBehaviour(event: Event, section?: HTMLElement): void {\r\n const expandableElement = event.target;\r\n\r\n if (!(expandableElement instanceof HTMLElement)) {\r\n return;\r\n }\r\n\r\n if (isExpandable(expandableElement)) {\r\n this.expandable = expandableElement;\r\n this.expandable._getAnimeInstance().then((animeInstance) => {\r\n if (animeInstance) {\r\n animeInstance.changeComplete = async () => {\r\n if (!section) {\r\n return;\r\n }\r\n\r\n const accordion = section.parentElement;\r\n\r\n if (accordion && isAccordion(accordion)) {\r\n accordion?.animationEnd(section);\r\n }\r\n\r\n if (AccordionSection.scrollCandidate === this.host) {\r\n AccordionSection.scrollCandidate = undefined;\r\n await this.scrollSectionIntoView();\r\n }\r\n };\r\n }\r\n });\r\n }\r\n }\r\n\r\n private async toggle(e?: MouseEvent): Promise<void> {\r\n e?.preventDefault();\r\n\r\n this.accordion?.toggleSection(this.host, e).then(async (isOpen) => {\r\n if (isOpen) {\r\n await this.scrollIntoViewWhenNeeded(true);\r\n }\r\n });\r\n }\r\n\r\n render() {\r\n const { variant, reverseAlign } = this.accordionState ?? {};\r\n const hasAddons = !!this.status || !!this.state || !!this.icon || !!this.attachmentCount;\r\n\r\n return (\r\n <Host\r\n class={{\r\n \"dso-accordion-section\": true,\r\n [\"dso-accordion-\" + variant]: true,\r\n \"dso-nested-accordion\": this.hasNestedSection,\r\n \"dso-accordion-reverse-align\": reverseAlign ?? false,\r\n }}\r\n hidden={!variant}\r\n onMouseenter={() => (this.hover = true)}\r\n onMouseleave={() => (this.hover = false)}\r\n >\r\n <Handle heading={this.heading} ref={(element) => (this.sectionHeading = element)}>\r\n <HandleElement\r\n handleUrl={this.handleUrl}\r\n onClick={async (event) => await this.toggle(event)}\r\n open={this.open}\r\n >\r\n {reverseAlign ? (\r\n <Fragment>\r\n {hasAddons && (\r\n <div class=\"dso-section-handle-addons\">\r\n <HandleIcon icon={this.icon} />\r\n </div>\r\n )}\r\n\r\n <span>{this.handleTitle}</span>\r\n\r\n <dso-icon class=\"dso-section-handle-chevron\" icon=\"chevron-down\"></dso-icon>\r\n </Fragment>\r\n ) : (\r\n <Fragment>\r\n <dso-icon class=\"dso-section-handle-chevron\" icon=\"chevron-right\"></dso-icon>\r\n\r\n {this.state && <span class=\"sr-only\">{stateMap[this.state]}</span>}\r\n\r\n <span>\r\n {this.handleTitle}\r\n {this.isNeutral && (\r\n <dso-icon class=\"info-icon\" icon={this.open || this.hover ? \"info-active\" : \"info\"} />\r\n )}\r\n </span>\r\n\r\n {hasAddons && (\r\n <div class=\"dso-section-handle-addons\">\r\n {this.status && <span class=\"dso-status\">{this.status}</span>}\r\n <HandleIcon state={this.state} icon={this.icon} attachmentCount={this.attachmentCount} />\r\n </div>\r\n )}\r\n </Fragment>\r\n )}\r\n </HandleElement>\r\n </Handle>\r\n <dso-expandable\r\n class=\"dso-section-body\"\r\n open={this.open}\r\n enableAnimation\r\n minimumHeight={this.isNeutral ? 0 : 4}\r\n on_animationInstantiated={(e: Event) => this.setAnimationBehaviour(e, this.host)}\r\n >\r\n <div\r\n slot=\"expandable-content\"\r\n class=\"dso-section-body-content\"\r\n ref={(element) => (this.sectionBody = element)}\r\n >\r\n <slot />\r\n </div>\r\n </dso-expandable>\r\n </Host>\r\n );\r\n }\r\n}\r\n\r\nfunction isAccordion(element: Element): element is HTMLDsoAccordionElement {\r\n return element.tagName === \"DSO-ACCORDION\";\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"accordion-section.js","sourceRoot":"","sources":["../../../../src/components/accordion/components/accordion-section.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\r\n h,\r\n Component,\r\n ComponentInterface,\r\n Element,\r\n Event,\r\n forceUpdate,\r\n Fragment,\r\n Host,\r\n Prop,\r\n State,\r\n EventEmitter,\r\n} from \"@stencil/core\";\r\n\r\nimport {\r\n AccordionInternalState,\r\n AccordionSectionAnimationEndEvent,\r\n AccordionSectionToggleClickEvent,\r\n} from \"../accordion.interfaces\";\r\nimport { AccordionHeading, AccordionSectionState, stateMap } from \"./accordion-section.interfaces\";\r\nimport { Handle, HandleElement, HandleIcon } from \"./handles\";\r\nimport { ExpandableAnimationEndEvent } from \"../../expandable/expandable\";\r\n\r\n@Component({\r\n tag: \"dso-accordion-section\",\r\n styleUrl: \"accordion-section.scss\",\r\n shadow: true,\r\n})\r\nexport class AccordionSection implements ComponentInterface {\r\n private accordionState?: AccordionInternalState;\r\n\r\n private sectionBody?: HTMLDivElement;\r\n\r\n private sectionHeading?: HTMLHeadingElement;\r\n\r\n @Element()\r\n host!: HTMLDsoAccordionSectionElement;\r\n\r\n /**\r\n * The title of the handle\r\n */\r\n @Prop()\r\n handleTitle?: string;\r\n\r\n /**\r\n * Which heading element to use.\r\n */\r\n @Prop()\r\n heading: AccordionHeading = \"h2\";\r\n\r\n /**\r\n * When set the handle will render as a `<a>`. When undefined it renders as a `<button>`\r\n */\r\n @Prop()\r\n handleUrl?: string;\r\n\r\n /**\r\n * `state` takes precedence over `attachmentCount` and `icon`\r\n */\r\n @Prop()\r\n status?: AccordionSectionState;\r\n\r\n /**\r\n * `attachmentCount` takes precedence over `icon`\r\n */\r\n @Prop()\r\n attachmentCount?: number;\r\n\r\n /**\r\n * To set an icon in the heading handle.\r\n */\r\n @Prop()\r\n icon?: string;\r\n\r\n /**\r\n * The status of the section.\r\n */\r\n @Prop()\r\n statusDescription?: string;\r\n\r\n /**\r\n * Set the Accordion Section open.\r\n */\r\n @Prop({ reflect: true })\r\n open = false;\r\n\r\n @State()\r\n hasNestedAccordion = false;\r\n\r\n @State()\r\n hover = false;\r\n\r\n componentWillLoad() {\r\n this.hasNestedAccordion = this.host.querySelector(\"dso-accordion\") !== null;\r\n\r\n this.accordion?._getState().then((state) => {\r\n this.accordionState = state;\r\n\r\n forceUpdate(this.host);\r\n });\r\n }\r\n\r\n get isNeutral() {\r\n return this.accordionState?.variant === \"neutral\";\r\n }\r\n\r\n private async scrollIntoView(bodyHeight: number | undefined): Promise<void> {\r\n const bodyClientRect = this.sectionBody?.getBoundingClientRect();\r\n const headingClientRect = this.sectionHeading?.getBoundingClientRect();\r\n\r\n if (!bodyClientRect || !headingClientRect || !this.accordionState) {\r\n return;\r\n }\r\n\r\n // this y is relative to the top of the viewport.\r\n const sectionBottomY = headingClientRect.top + headingClientRect.height + (this.open ? bodyHeight ?? 0 : 0);\r\n if (sectionBottomY > window.innerHeight) {\r\n const expandedAccordionHeight = sectionBottomY - headingClientRect.top;\r\n const shouldScrollToTopOfSection = expandedAccordionHeight > window.innerHeight;\r\n\r\n window.scrollTo({\r\n top: shouldScrollToTopOfSection\r\n ? this.host.offsetTop\r\n : this.host.offsetTop - (window.innerHeight - expandedAccordionHeight),\r\n behavior: \"smooth\",\r\n });\r\n } else if (headingClientRect.top < 0) {\r\n window.scrollTo({\r\n top: this.host.offsetTop,\r\n behavior: \"smooth\",\r\n });\r\n }\r\n }\r\n\r\n private get accordion() {\r\n return this.host.closest(\"dso-accordion\");\r\n }\r\n\r\n private handleClick = (event: MouseEvent) => {\r\n this.dsoToggleClick.emit({\r\n originalEvent: event,\r\n open: !this.open,\r\n });\r\n };\r\n\r\n private handleExpandableAnimationEnd = (e: CustomEvent<ExpandableAnimationEndEvent>) => {\r\n this.dsoAnimationEnd.emit({\r\n open: this.open,\r\n scrollIntoView: () => this.scrollIntoView(e.detail.bodyHeight),\r\n });\r\n };\r\n\r\n /**\r\n * Emitted when the user activates the toggle button.\r\n */\r\n @Event({ bubbles: false })\r\n dsoToggleClick!: EventEmitter<AccordionSectionToggleClickEvent>;\r\n\r\n /**\r\n * Event emitted when the Accordion Section completes its toggle animation.\r\n */\r\n @Event({ bubbles: false })\r\n dsoAnimationEnd!: EventEmitter<AccordionSectionAnimationEndEvent>;\r\n\r\n render() {\r\n const { variant, reverseAlign } = this.accordionState ?? {};\r\n const hasAddons = !!this.statusDescription || !!this.status || !!this.icon || !!this.attachmentCount;\r\n\r\n return (\r\n <Host\r\n class={{\r\n \"dso-accordion-section\": true,\r\n [\"dso-accordion-\" + variant]: true,\r\n \"dso-nested-accordion\": this.hasNestedAccordion,\r\n \"dso-accordion-reverse-align\": reverseAlign ?? false,\r\n }}\r\n hidden={!variant}\r\n onMouseenter={() => (this.hover = true)}\r\n onMouseleave={() => (this.hover = false)}\r\n >\r\n <Handle heading={this.heading} ref={(element) => (this.sectionHeading = element)}>\r\n <HandleElement handleUrl={this.handleUrl} onClick={this.handleClick} open={this.open}>\r\n {reverseAlign ? (\r\n <Fragment>\r\n {hasAddons && (\r\n <div class=\"dso-section-handle-addons\">\r\n <HandleIcon icon={this.icon} />\r\n </div>\r\n )}\r\n\r\n <span>{this.handleTitle}</span>\r\n\r\n <dso-icon class=\"dso-section-handle-chevron\" icon=\"chevron-down\"></dso-icon>\r\n </Fragment>\r\n ) : (\r\n <Fragment>\r\n <dso-icon class=\"dso-section-handle-chevron\" icon=\"chevron-right\"></dso-icon>\r\n\r\n {this.status && <span class=\"sr-only\">{stateMap[this.status]}</span>}\r\n\r\n <span>\r\n {this.handleTitle}\r\n {this.isNeutral && (\r\n <dso-icon class=\"info-icon\" icon={this.open || this.hover ? \"info-active\" : \"info\"} />\r\n )}\r\n </span>\r\n\r\n {hasAddons && (\r\n <div class=\"dso-section-handle-addons\">\r\n {this.statusDescription && <span class=\"dso-status\">{this.statusDescription}</span>}\r\n <HandleIcon state={this.status} icon={this.icon} attachmentCount={this.attachmentCount} />\r\n </div>\r\n )}\r\n </Fragment>\r\n )}\r\n </HandleElement>\r\n </Handle>\r\n <dso-expandable\r\n class=\"dso-section-body\"\r\n open={this.open}\r\n enableAnimation\r\n minimumHeight={this.isNeutral ? 0 : 4}\r\n onDsoExpandableAnimationEnd={this.handleExpandableAnimationEnd}\r\n >\r\n <div class=\"dso-section-body-content\" ref={(element) => (this.sectionBody = element)}>\r\n <slot />\r\n </div>\r\n </dso-expandable>\r\n </Host>\r\n );\r\n }\r\n}\r\n"]}
|