@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.
Files changed (321) hide show
  1. package/dist/cjs/dso-accordion-section.cjs.entry.js +30 -87
  2. package/dist/cjs/dso-accordion-section.cjs.entry.js.map +1 -1
  3. package/dist/cjs/dso-accordion.cjs.entry.js +197 -107
  4. package/dist/cjs/dso-accordion.cjs.entry.js.map +1 -1
  5. package/dist/cjs/dso-alert_5.cjs.entry.js +719 -0
  6. package/dist/cjs/dso-alert_5.cjs.entry.js.map +1 -0
  7. package/dist/cjs/dso-annotation-output_3.cjs.entry.js +143 -0
  8. package/dist/cjs/dso-annotation-output_3.cjs.entry.js.map +1 -0
  9. package/dist/cjs/dso-expandable.cjs.entry.js +17 -36
  10. package/dist/cjs/dso-expandable.cjs.entry.js.map +1 -1
  11. package/dist/cjs/dso-toolkit.cjs.js +1 -1
  12. package/dist/cjs/dsot-document-component-demo.cjs.entry.js +110 -0
  13. package/dist/cjs/dsot-document-component-demo.cjs.entry.js.map +1 -0
  14. package/dist/cjs/loader.cjs.js +1 -1
  15. package/dist/collection/collection-manifest.json +5 -4
  16. package/dist/collection/components/accordion/accordion.interfaces.js.map +1 -1
  17. package/dist/collection/components/accordion/accordion.js +9 -254
  18. package/dist/collection/components/accordion/accordion.js.map +1 -1
  19. package/dist/collection/components/accordion/components/accordion-section.js +68 -126
  20. package/dist/collection/components/accordion/components/accordion-section.js.map +1 -1
  21. package/dist/collection/components/annotation-button/annotation-button.css +1003 -0
  22. package/dist/collection/components/annotation-button/annotation-button.js +48 -7
  23. package/dist/collection/components/annotation-button/annotation-button.js.map +1 -1
  24. package/dist/collection/components/annotation-output/annotation-output.css +2 -2
  25. package/dist/collection/components/annotation-output/annotation-output.js +32 -64
  26. package/dist/collection/components/annotation-output/annotation-output.js.map +1 -1
  27. package/dist/collection/components/document-component/document-component-heading.js +30 -0
  28. package/dist/collection/components/document-component/document-component-heading.js.map +1 -0
  29. package/dist/collection/components/document-component/document-component.css +135 -0
  30. package/dist/collection/components/document-component/document-component.demo.js +112 -0
  31. package/dist/collection/components/document-component/document-component.demo.js.map +1 -0
  32. package/dist/collection/components/document-component/document-component.js +414 -0
  33. package/dist/collection/components/document-component/document-component.js.map +1 -0
  34. package/dist/collection/components/document-component/document-component.types.js +2 -0
  35. package/dist/collection/components/document-component/document-component.types.js.map +1 -0
  36. package/dist/collection/components/expandable/expandable.js +28 -94
  37. package/dist/collection/components/expandable/expandable.js.map +1 -1
  38. package/dist/collection/components/ozon-content/ozon-content-mapper.js +9 -1
  39. package/dist/collection/components/ozon-content/ozon-content-mapper.js.map +1 -1
  40. package/dist/collection/components/ozon-content/ozon-content.css +49 -1
  41. package/dist/collection/components/ozon-content/ozon-content.js +1 -1
  42. package/dist/collection/components/ozon-content/ozon-content.js.map +1 -1
  43. package/dist/{esm/dso-alert.entry.js → components/alert.js} +33 -9
  44. package/dist/components/alert.js.map +1 -0
  45. package/dist/components/annotation-button.js +46 -0
  46. package/dist/components/annotation-button.js.map +1 -0
  47. package/dist/components/annotation-output.js +60 -0
  48. package/dist/components/annotation-output.js.map +1 -0
  49. package/dist/{esm/dso-badge.entry.js → components/badge.js} +26 -9
  50. package/dist/components/badge.js.map +1 -0
  51. package/dist/components/document-component.js +163 -0
  52. package/dist/components/document-component.js.map +1 -0
  53. package/dist/components/dso-accordion-section.js +35 -94
  54. package/dist/components/dso-accordion-section.js.map +1 -1
  55. package/dist/components/dso-accordion.js +199 -113
  56. package/dist/components/dso-accordion.js.map +1 -1
  57. package/dist/components/dso-alert.js +1 -50
  58. package/dist/components/dso-alert.js.map +1 -1
  59. package/dist/components/dso-annotation-button.js +1 -40
  60. package/dist/components/dso-annotation-button.js.map +1 -1
  61. package/dist/components/dso-annotation-output.js +1 -71
  62. package/dist/components/dso-annotation-output.js.map +1 -1
  63. package/dist/components/dso-autosuggest.js +1 -1
  64. package/dist/components/dso-badge.js +1 -32
  65. package/dist/components/dso-badge.js.map +1 -1
  66. package/dist/components/dso-document-component.d.ts +11 -0
  67. package/dist/components/dso-document-component.js +8 -0
  68. package/dist/components/dso-document-component.js.map +1 -0
  69. package/dist/components/dso-header.js +1 -1
  70. package/dist/components/dso-image-overlay.js +1 -1
  71. package/dist/components/dso-label.js +1 -161
  72. package/dist/components/dso-label.js.map +1 -1
  73. package/dist/components/dso-ozon-content.js +1 -544
  74. package/dist/components/dso-ozon-content.js.map +1 -1
  75. package/dist/components/dso-slide-toggle.js +1 -52
  76. package/dist/components/dso-slide-toggle.js.map +1 -1
  77. package/dist/components/dso-table.js +1 -1
  78. package/dist/components/dsot-document-component-demo.d.ts +11 -0
  79. package/dist/components/dsot-document-component-demo.js +202 -0
  80. package/dist/components/dsot-document-component-demo.js.map +1 -0
  81. package/dist/components/expandable.js +19 -40
  82. package/dist/components/expandable.js.map +1 -1
  83. package/dist/components/index.d.ts +4 -2
  84. package/dist/components/index.js +2 -1
  85. package/dist/components/index.js.map +1 -1
  86. package/dist/components/index2.js +61 -185
  87. package/dist/components/index2.js.map +1 -1
  88. package/dist/{esm/dso-label.entry.js → components/label.js} +50 -11
  89. package/dist/components/label.js.map +1 -0
  90. package/dist/{esm/dso-ozon-content.entry.js → components/ozon-content.js} +43 -14
  91. package/dist/components/ozon-content.js.map +1 -0
  92. package/dist/components/scrollable.js +1 -1
  93. package/dist/{esm/dso-slide-toggle.entry.js → components/slide-toggle.js} +31 -10
  94. package/dist/{dso-toolkit/p-b1627d68.entry.js.map → components/slide-toggle.js.map} +1 -1
  95. package/dist/components/tooltip.js +1 -1
  96. package/dist/dso-toolkit/dso-toolkit.esm.js +1 -1
  97. package/dist/dso-toolkit/dso-toolkit.esm.js.map +1 -1
  98. package/dist/dso-toolkit/{p-12c3fc19.entry.js → p-05ea1fba.entry.js} +2 -2
  99. package/dist/dso-toolkit/{p-657c43f4.entry.js → p-0e5a93c3.entry.js} +2 -2
  100. package/dist/dso-toolkit/p-14453f73.entry.js +2 -0
  101. package/dist/dso-toolkit/p-14453f73.entry.js.map +1 -0
  102. package/dist/dso-toolkit/{p-63ce173c.entry.js → p-168750a2.entry.js} +2 -2
  103. package/dist/dso-toolkit/{p-554e7d6a.entry.js → p-1cc75e0b.entry.js} +2 -2
  104. package/dist/dso-toolkit/{p-904a2caf.entry.js → p-29752a45.entry.js} +2 -2
  105. package/dist/dso-toolkit/{p-9c2d4a91.entry.js → p-29b741cb.entry.js} +2 -2
  106. package/dist/dso-toolkit/p-39f6447d.entry.js +2 -0
  107. package/dist/dso-toolkit/p-39f6447d.entry.js.map +1 -0
  108. package/dist/dso-toolkit/{p-fdf8bd94.entry.js → p-3c554a18.entry.js} +2 -2
  109. package/dist/dso-toolkit/{p-d4f8e1e0.entry.js → p-3fa7489e.entry.js} +2 -2
  110. package/dist/dso-toolkit/{p-fa6d8d5a.entry.js → p-422bcf93.entry.js} +2 -2
  111. package/dist/dso-toolkit/p-42d3c595.entry.js +2 -0
  112. package/dist/dso-toolkit/{p-1d3ed808.entry.js.map → p-42d3c595.entry.js.map} +1 -1
  113. package/dist/dso-toolkit/p-484ea1d2.entry.js +2 -0
  114. package/dist/dso-toolkit/p-484ea1d2.entry.js.map +1 -0
  115. package/dist/dso-toolkit/p-5265e22b.entry.js +2 -0
  116. package/dist/dso-toolkit/p-56d87a53.entry.js +2 -0
  117. package/dist/dso-toolkit/p-56d87a53.entry.js.map +1 -0
  118. package/dist/dso-toolkit/{p-71143eef.entry.js → p-6050e8e6.entry.js} +2 -2
  119. package/dist/dso-toolkit/{p-5040a304.entry.js → p-674e2406.entry.js} +2 -2
  120. package/dist/dso-toolkit/{p-2bd5d2a2.entry.js → p-68e9f61b.entry.js} +2 -2
  121. package/dist/dso-toolkit/{p-f70d6a66.entry.js → p-818d032e.entry.js} +2 -2
  122. package/dist/dso-toolkit/{p-a4e3638a.entry.js → p-83cdfde8.entry.js} +2 -2
  123. package/dist/dso-toolkit/{p-8f166691.entry.js → p-909ccf98.entry.js} +2 -2
  124. package/dist/dso-toolkit/{p-58bed94b.entry.js → p-9b587a94.entry.js} +2 -2
  125. package/dist/dso-toolkit/p-9c0477fc.entry.js +2 -0
  126. package/dist/dso-toolkit/{p-56069350.entry.js.map → p-9c0477fc.entry.js.map} +1 -1
  127. package/dist/dso-toolkit/{p-79767cc1.entry.js → p-9f2bb98b.entry.js} +2 -2
  128. package/dist/dso-toolkit/{p-6e0b67c9.entry.js → p-9fee52e5.entry.js} +2 -2
  129. package/dist/dso-toolkit/{p-9b14a015.entry.js → p-a616ab8a.entry.js} +2 -2
  130. package/dist/dso-toolkit/{p-ef23bffb.entry.js → p-b627d9ac.entry.js} +2 -2
  131. package/dist/dso-toolkit/{p-9d64a2f4.entry.js → p-b67631ef.entry.js} +2 -2
  132. package/dist/dso-toolkit/{p-0653b5d2.entry.js → p-bcae3f55.entry.js} +2 -2
  133. package/dist/dso-toolkit/{p-b1b53cb3.entry.js → p-bf203ab8.entry.js} +2 -2
  134. package/dist/dso-toolkit/{p-ee2771d4.entry.js → p-c8165a50.entry.js} +2 -2
  135. package/dist/dso-toolkit/{p-26cdce1c.js → p-ce928197.js} +2 -2
  136. package/dist/dso-toolkit/{p-601b4ce0.entry.js → p-cfd6f4ef.entry.js} +2 -2
  137. package/dist/dso-toolkit/{p-b6f1ae13.entry.js → p-d3f69d06.entry.js} +2 -2
  138. package/dist/dso-toolkit/{p-3ab9390b.entry.js → p-d8c137b5.entry.js} +2 -2
  139. package/dist/dso-toolkit/p-debbe184.entry.js +2 -0
  140. package/dist/dso-toolkit/{p-c3178955.entry.js.map → p-debbe184.entry.js.map} +1 -1
  141. package/dist/dso-toolkit/{p-7098eb9d.entry.js → p-ec4b568d.entry.js} +2 -2
  142. package/dist/dso-toolkit/p-ec4b568d.entry.js.map +1 -0
  143. package/dist/dso-toolkit/p-fafa5ea1.entry.js +2 -0
  144. package/dist/dso-toolkit/p-fafa5ea1.entry.js.map +1 -0
  145. package/dist/esm/dso-accordion-section.entry.js +31 -88
  146. package/dist/esm/dso-accordion-section.entry.js.map +1 -1
  147. package/dist/esm/dso-accordion.entry.js +198 -108
  148. package/dist/esm/dso-accordion.entry.js.map +1 -1
  149. package/dist/esm/dso-action-list-item.entry.js +1 -1
  150. package/dist/esm/dso-action-list.entry.js +1 -1
  151. package/dist/esm/dso-alert_5.entry.js +711 -0
  152. package/dist/esm/dso-alert_5.entry.js.map +1 -0
  153. package/dist/esm/dso-annotation-output_3.entry.js +137 -0
  154. package/dist/esm/dso-annotation-output_3.entry.js.map +1 -0
  155. package/dist/esm/dso-attachments-counter.entry.js +1 -1
  156. package/dist/esm/dso-autosuggest.entry.js +1 -1
  157. package/dist/esm/dso-banner.entry.js +1 -1
  158. package/dist/esm/dso-card-container.entry.js +1 -1
  159. package/dist/esm/dso-card.entry.js +1 -1
  160. package/dist/esm/dso-date-picker.entry.js +1 -1
  161. package/dist/esm/dso-dropdown-menu.entry.js +1 -1
  162. package/dist/esm/dso-expandable.entry.js +18 -37
  163. package/dist/esm/dso-expandable.entry.js.map +1 -1
  164. package/dist/esm/dso-header.entry.js +1 -1
  165. package/dist/esm/dso-helpcenter-panel.entry.js +1 -1
  166. package/dist/esm/dso-highlight-box.entry.js +1 -1
  167. package/dist/esm/dso-icon.entry.js +1 -1
  168. package/dist/esm/dso-image-overlay.entry.js +1 -1
  169. package/dist/esm/dso-info-button.entry.js +1 -1
  170. package/dist/esm/dso-info_2.entry.js +1 -1
  171. package/dist/esm/dso-list-button.entry.js +1 -1
  172. package/dist/esm/dso-map-base-layers.entry.js +1 -1
  173. package/dist/esm/dso-map-controls.entry.js +1 -1
  174. package/dist/esm/dso-map-overlays.entry.js +1 -1
  175. package/dist/esm/dso-modal.entry.js +1 -1
  176. package/dist/esm/dso-pagination.entry.js +1 -1
  177. package/dist/esm/dso-progress-bar.entry.js +1 -1
  178. package/dist/esm/dso-progress-indicator.entry.js +1 -1
  179. package/dist/esm/dso-responsive-element.entry.js +1 -1
  180. package/dist/esm/dso-scrollable.entry.js +1 -1
  181. package/dist/esm/dso-table.entry.js +1 -1
  182. package/dist/esm/dso-toggletip.entry.js +1 -1
  183. package/dist/esm/dso-toolkit.js +3 -3
  184. package/dist/esm/dso-tooltip.entry.js +1 -1
  185. package/dist/esm/dso-tree-view.entry.js +1 -1
  186. package/dist/esm/dso-viewer-grid.entry.js +1 -1
  187. package/dist/esm/dsot-document-component-demo.entry.js +106 -0
  188. package/dist/esm/dsot-document-component-demo.entry.js.map +1 -0
  189. package/dist/esm/{index-898d8443.js → index-367cff36.js} +2 -2
  190. package/dist/esm/{index-898d8443.js.map → index-367cff36.js.map} +1 -1
  191. package/dist/esm/loader.js +3 -3
  192. package/dist/types/components/accordion/accordion.d.ts +6 -39
  193. package/dist/types/components/accordion/accordion.interfaces.d.ts +21 -15
  194. package/dist/types/components/accordion/components/accordion-section.d.ts +15 -18
  195. package/dist/types/components/annotation-button/annotation-button.d.ts +15 -4
  196. package/dist/types/components/annotation-output/annotation-output.d.ts +7 -5
  197. package/dist/types/components/document-component/document-component-heading.d.ts +7 -0
  198. package/dist/types/components/document-component/document-component.d.ts +84 -0
  199. package/dist/types/components/document-component/document-component.demo.d.ts +40 -0
  200. package/dist/types/components/document-component/document-component.types.d.ts +8 -0
  201. package/dist/types/components/expandable/expandable.d.ts +5 -12
  202. package/dist/types/components.d.ts +233 -125
  203. package/package.json +2 -2
  204. package/dist/cjs/annotation.service-60e6b0f1.js +0 -23
  205. package/dist/cjs/annotation.service-60e6b0f1.js.map +0 -1
  206. package/dist/cjs/dso-alert.cjs.entry.js +0 -34
  207. package/dist/cjs/dso-alert.cjs.entry.js.map +0 -1
  208. package/dist/cjs/dso-annotation-button.cjs.entry.js +0 -27
  209. package/dist/cjs/dso-annotation-button.cjs.entry.js.map +0 -1
  210. package/dist/cjs/dso-annotation-output.cjs.entry.js +0 -44
  211. package/dist/cjs/dso-annotation-output.cjs.entry.js.map +0 -1
  212. package/dist/cjs/dso-badge.cjs.entry.js +0 -23
  213. package/dist/cjs/dso-badge.cjs.entry.js.map +0 -1
  214. package/dist/cjs/dso-expandable-heading.cjs.entry.js +0 -54
  215. package/dist/cjs/dso-expandable-heading.cjs.entry.js.map +0 -1
  216. package/dist/cjs/dso-label.cjs.entry.js +0 -130
  217. package/dist/cjs/dso-label.cjs.entry.js.map +0 -1
  218. package/dist/cjs/dso-ozon-content.cjs.entry.js +0 -532
  219. package/dist/cjs/dso-ozon-content.cjs.entry.js.map +0 -1
  220. package/dist/cjs/dso-slide-toggle.cjs.entry.js +0 -39
  221. package/dist/cjs/dso-slide-toggle.cjs.entry.js.map +0 -1
  222. package/dist/cjs/index-a189d603.js +0 -198
  223. package/dist/cjs/index-a189d603.js.map +0 -1
  224. package/dist/collection/components/annotation-output/annotation-output.interfaces.js +0 -2
  225. package/dist/collection/components/annotation-output/annotation-output.interfaces.js.map +0 -1
  226. package/dist/collection/components/expandable/expandable.functions.js +0 -4
  227. package/dist/collection/components/expandable/expandable.functions.js.map +0 -1
  228. package/dist/collection/components/expandable-heading/expandable-heading.css +0 -200
  229. package/dist/collection/components/expandable-heading/expandable-heading.interfaces.js +0 -2
  230. package/dist/collection/components/expandable-heading/expandable-heading.interfaces.js.map +0 -1
  231. package/dist/collection/components/expandable-heading/expandable-heading.js +0 -163
  232. package/dist/collection/components/expandable-heading/expandable-heading.js.map +0 -1
  233. package/dist/collection/components/expandable-heading/heading.js +0 -17
  234. package/dist/collection/components/expandable-heading/heading.js.map +0 -1
  235. package/dist/collection/services/annotation.service.js +0 -17
  236. package/dist/collection/services/annotation.service.js.map +0 -1
  237. package/dist/components/annotation.service.js +0 -21
  238. package/dist/components/annotation.service.js.map +0 -1
  239. package/dist/components/dso-expandable-heading.d.ts +0 -11
  240. package/dist/components/dso-expandable-heading.js +0 -86
  241. package/dist/components/dso-expandable-heading.js.map +0 -1
  242. package/dist/components/index3.js +0 -72
  243. package/dist/components/index3.js.map +0 -1
  244. package/dist/dso-toolkit/p-0c762ac9.entry.js +0 -2
  245. package/dist/dso-toolkit/p-0c762ac9.entry.js.map +0 -1
  246. package/dist/dso-toolkit/p-0ffae824.entry.js +0 -2
  247. package/dist/dso-toolkit/p-0ffae824.entry.js.map +0 -1
  248. package/dist/dso-toolkit/p-1d3ed808.entry.js +0 -2
  249. package/dist/dso-toolkit/p-26713aef.js +0 -2
  250. package/dist/dso-toolkit/p-26713aef.js.map +0 -1
  251. package/dist/dso-toolkit/p-52f2be73.entry.js +0 -2
  252. package/dist/dso-toolkit/p-52f2be73.entry.js.map +0 -1
  253. package/dist/dso-toolkit/p-56069350.entry.js +0 -2
  254. package/dist/dso-toolkit/p-59ff4e19.entry.js +0 -2
  255. package/dist/dso-toolkit/p-59ff4e19.entry.js.map +0 -1
  256. package/dist/dso-toolkit/p-7098eb9d.entry.js.map +0 -1
  257. package/dist/dso-toolkit/p-835a599b.entry.js +0 -2
  258. package/dist/dso-toolkit/p-91453b47.entry.js +0 -2
  259. package/dist/dso-toolkit/p-91453b47.entry.js.map +0 -1
  260. package/dist/dso-toolkit/p-9eccd618.js +0 -2
  261. package/dist/dso-toolkit/p-9eccd618.js.map +0 -1
  262. package/dist/dso-toolkit/p-b1627d68.entry.js +0 -2
  263. package/dist/dso-toolkit/p-c3178955.entry.js +0 -2
  264. package/dist/dso-toolkit/p-c464da66.entry.js +0 -2
  265. package/dist/dso-toolkit/p-c464da66.entry.js.map +0 -1
  266. package/dist/dso-toolkit/p-c4e1c7cb.entry.js +0 -2
  267. package/dist/dso-toolkit/p-c4e1c7cb.entry.js.map +0 -1
  268. package/dist/dso-toolkit/p-dd9e9c47.entry.js +0 -2
  269. package/dist/dso-toolkit/p-dd9e9c47.entry.js.map +0 -1
  270. package/dist/dso-toolkit/p-de310a49.entry.js +0 -2
  271. package/dist/dso-toolkit/p-de310a49.entry.js.map +0 -1
  272. package/dist/esm/annotation.service-cd25eba0.js +0 -21
  273. package/dist/esm/annotation.service-cd25eba0.js.map +0 -1
  274. package/dist/esm/dso-alert.entry.js.map +0 -1
  275. package/dist/esm/dso-annotation-button.entry.js +0 -23
  276. package/dist/esm/dso-annotation-button.entry.js.map +0 -1
  277. package/dist/esm/dso-annotation-output.entry.js +0 -40
  278. package/dist/esm/dso-annotation-output.entry.js.map +0 -1
  279. package/dist/esm/dso-badge.entry.js.map +0 -1
  280. package/dist/esm/dso-expandable-heading.entry.js +0 -50
  281. package/dist/esm/dso-expandable-heading.entry.js.map +0 -1
  282. package/dist/esm/dso-label.entry.js.map +0 -1
  283. package/dist/esm/dso-ozon-content.entry.js.map +0 -1
  284. package/dist/esm/dso-slide-toggle.entry.js.map +0 -1
  285. package/dist/esm/index-b57dbe04.js +0 -196
  286. package/dist/esm/index-b57dbe04.js.map +0 -1
  287. package/dist/types/components/annotation-output/annotation-output.interfaces.d.ts +0 -4
  288. package/dist/types/components/expandable/expandable.functions.d.ts +0 -1
  289. package/dist/types/components/expandable-heading/expandable-heading.d.ts +0 -33
  290. package/dist/types/components/expandable-heading/expandable-heading.interfaces.d.ts +0 -6
  291. package/dist/types/components/expandable-heading/heading.d.ts +0 -9
  292. package/dist/types/services/annotation.service.d.ts +0 -10
  293. /package/dist/dso-toolkit/{p-12c3fc19.entry.js.map → p-05ea1fba.entry.js.map} +0 -0
  294. /package/dist/dso-toolkit/{p-657c43f4.entry.js.map → p-0e5a93c3.entry.js.map} +0 -0
  295. /package/dist/dso-toolkit/{p-63ce173c.entry.js.map → p-168750a2.entry.js.map} +0 -0
  296. /package/dist/dso-toolkit/{p-554e7d6a.entry.js.map → p-1cc75e0b.entry.js.map} +0 -0
  297. /package/dist/dso-toolkit/{p-904a2caf.entry.js.map → p-29752a45.entry.js.map} +0 -0
  298. /package/dist/dso-toolkit/{p-9c2d4a91.entry.js.map → p-29b741cb.entry.js.map} +0 -0
  299. /package/dist/dso-toolkit/{p-fdf8bd94.entry.js.map → p-3c554a18.entry.js.map} +0 -0
  300. /package/dist/dso-toolkit/{p-d4f8e1e0.entry.js.map → p-3fa7489e.entry.js.map} +0 -0
  301. /package/dist/dso-toolkit/{p-fa6d8d5a.entry.js.map → p-422bcf93.entry.js.map} +0 -0
  302. /package/dist/dso-toolkit/{p-835a599b.entry.js.map → p-5265e22b.entry.js.map} +0 -0
  303. /package/dist/dso-toolkit/{p-71143eef.entry.js.map → p-6050e8e6.entry.js.map} +0 -0
  304. /package/dist/dso-toolkit/{p-5040a304.entry.js.map → p-674e2406.entry.js.map} +0 -0
  305. /package/dist/dso-toolkit/{p-2bd5d2a2.entry.js.map → p-68e9f61b.entry.js.map} +0 -0
  306. /package/dist/dso-toolkit/{p-f70d6a66.entry.js.map → p-818d032e.entry.js.map} +0 -0
  307. /package/dist/dso-toolkit/{p-a4e3638a.entry.js.map → p-83cdfde8.entry.js.map} +0 -0
  308. /package/dist/dso-toolkit/{p-8f166691.entry.js.map → p-909ccf98.entry.js.map} +0 -0
  309. /package/dist/dso-toolkit/{p-58bed94b.entry.js.map → p-9b587a94.entry.js.map} +0 -0
  310. /package/dist/dso-toolkit/{p-79767cc1.entry.js.map → p-9f2bb98b.entry.js.map} +0 -0
  311. /package/dist/dso-toolkit/{p-6e0b67c9.entry.js.map → p-9fee52e5.entry.js.map} +0 -0
  312. /package/dist/dso-toolkit/{p-9b14a015.entry.js.map → p-a616ab8a.entry.js.map} +0 -0
  313. /package/dist/dso-toolkit/{p-ef23bffb.entry.js.map → p-b627d9ac.entry.js.map} +0 -0
  314. /package/dist/dso-toolkit/{p-9d64a2f4.entry.js.map → p-b67631ef.entry.js.map} +0 -0
  315. /package/dist/dso-toolkit/{p-0653b5d2.entry.js.map → p-bcae3f55.entry.js.map} +0 -0
  316. /package/dist/dso-toolkit/{p-b1b53cb3.entry.js.map → p-bf203ab8.entry.js.map} +0 -0
  317. /package/dist/dso-toolkit/{p-ee2771d4.entry.js.map → p-c8165a50.entry.js.map} +0 -0
  318. /package/dist/dso-toolkit/{p-26cdce1c.js.map → p-ce928197.js.map} +0 -0
  319. /package/dist/dso-toolkit/{p-601b4ce0.entry.js.map → p-cfd6f4ef.entry.js.map} +0 -0
  320. /package/dist/dso-toolkit/{p-b6f1ae13.entry.js.map → p-d3f69d06.entry.js.map} +0 -0
  321. /package/dist/dso-toolkit/{p-3ab9390b.entry.js.map → p-d8c137b5.entry.js.map} +0 -0
@@ -4,10 +4,6 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-efc2222e.js');
6
6
 
7
- function isExpandable(element) {
8
- return element instanceof Element && element.tagName === "DSO-EXPANDABLE";
9
- }
10
-
11
7
  const stateMap = {
12
8
  success: "succes:",
13
9
  info: "info:",
@@ -72,70 +68,52 @@ const accordionSectionCss = "*,*::after,*::before{box-sizing:border-box}.sr-only
72
68
  const AccordionSection = class {
73
69
  constructor(hostRef) {
74
70
  index.registerInstance(this, hostRef);
71
+ this.dsoToggleClick = index.createEvent(this, "dsoToggleClick", 3);
72
+ this.dsoAnimationEnd = index.createEvent(this, "dsoAnimationEnd", 3);
73
+ this.handleClick = (event) => {
74
+ this.dsoToggleClick.emit({
75
+ originalEvent: event,
76
+ open: !this.open,
77
+ });
78
+ };
79
+ this.handleExpandableAnimationEnd = (e) => {
80
+ this.dsoAnimationEnd.emit({
81
+ open: this.open,
82
+ scrollIntoView: () => this.scrollIntoView(e.detail.bodyHeight),
83
+ });
84
+ };
75
85
  this.handleTitle = undefined;
76
86
  this.heading = "h2";
77
87
  this.handleUrl = undefined;
78
- this.state = undefined;
88
+ this.status = undefined;
79
89
  this.attachmentCount = undefined;
80
90
  this.icon = undefined;
81
- this.status = undefined;
91
+ this.statusDescription = undefined;
82
92
  this.open = false;
83
- this.hasNestedSection = false;
93
+ this.hasNestedAccordion = false;
84
94
  this.hover = false;
85
95
  }
86
96
  componentWillLoad() {
87
- const accordion = this.host.parentElement;
88
- this.hasNestedSection = this.host.querySelector("dso-accordion") !== null;
89
- if (accordion && isAccordion(accordion)) {
90
- this.accordion = accordion;
91
- accordion._getState().then((state) => {
92
- this.accordionState = state;
93
- index.forceUpdate(this.host);
94
- });
95
- }
96
- }
97
- /**
98
- * Toggle this section.
99
- * @param scrollIntoView boolean - defaults to true
100
- */
101
- async toggleSection(scrollIntoView = true) {
102
97
  var _a;
103
- await ((_a = this.accordion) === null || _a === void 0 ? void 0 : _a.toggleSection(this.host).then(async () => {
104
- if (scrollIntoView) {
105
- await this.scrollIntoViewWhenNeeded(true);
106
- }
107
- }));
108
- }
109
- /**
110
- * Scroll this section into view when needed.
111
- */
112
- async scrollSectionIntoView() {
113
- await this.scrollIntoViewWhenNeeded(false);
98
+ this.hasNestedAccordion = this.host.querySelector("dso-accordion") !== null;
99
+ (_a = this.accordion) === null || _a === void 0 ? void 0 : _a._getState().then((state) => {
100
+ this.accordionState = state;
101
+ index.forceUpdate(this.host);
102
+ });
114
103
  }
115
104
  get isNeutral() {
116
105
  var _a;
117
106
  return ((_a = this.accordionState) === null || _a === void 0 ? void 0 : _a.variant) === "neutral";
118
107
  }
119
- async scrollIntoViewWhenNeeded(sectionToggled) {
120
- var _a, _b, _c;
121
- AccordionSection.scrollCandidate = undefined;
108
+ async scrollIntoView(bodyHeight) {
109
+ var _a, _b;
122
110
  const bodyClientRect = (_a = this.sectionBody) === null || _a === void 0 ? void 0 : _a.getBoundingClientRect();
123
111
  const headingClientRect = (_b = this.sectionHeading) === null || _b === void 0 ? void 0 : _b.getBoundingClientRect();
124
112
  if (!bodyClientRect || !headingClientRect || !this.accordionState) {
125
113
  return;
126
114
  }
127
- const waitForAnimationBeforeScrolling = async (state) => {
128
- var _a, _b;
129
- this.bodyHeight = await ((_a = this.expandable) === null || _a === void 0 ? void 0 : _a._getBodyHeight());
130
- const sectionBottomOffsetTop = this.host.offsetTop + headingClientRect.height + (this.open ? (_b = this.bodyHeight) !== null && _b !== void 0 ? _b : 0 : 0);
131
- return (sectionToggled && (sectionBottomOffsetTop > document.documentElement.scrollHeight || state.allowMultipleOpen));
132
- };
133
- if (await waitForAnimationBeforeScrolling(this.accordionState)) {
134
- AccordionSection.scrollCandidate = this.host;
135
- return;
136
- }
137
115
  // this y is relative to the top of the viewport.
138
- const sectionBottomY = headingClientRect.top + headingClientRect.height + (this.open ? (_c = this.bodyHeight) !== null && _c !== void 0 ? _c : 0 : 0);
116
+ const sectionBottomY = headingClientRect.top + headingClientRect.height + (this.open ? bodyHeight !== null && bodyHeight !== void 0 ? bodyHeight : 0 : 0);
139
117
  if (sectionBottomY > window.innerHeight) {
140
118
  const expandedAccordionHeight = sectionBottomY - headingClientRect.top;
141
119
  const shouldScrollToTopOfSection = expandedAccordionHeight > window.innerHeight;
@@ -153,57 +131,22 @@ const AccordionSection = class {
153
131
  });
154
132
  }
155
133
  }
156
- setAnimationBehaviour(event, section) {
157
- const expandableElement = event.target;
158
- if (!(expandableElement instanceof HTMLElement)) {
159
- return;
160
- }
161
- if (isExpandable(expandableElement)) {
162
- this.expandable = expandableElement;
163
- this.expandable._getAnimeInstance().then((animeInstance) => {
164
- if (animeInstance) {
165
- animeInstance.changeComplete = async () => {
166
- if (!section) {
167
- return;
168
- }
169
- const accordion = section.parentElement;
170
- if (accordion && isAccordion(accordion)) {
171
- accordion === null || accordion === void 0 ? void 0 : accordion.animationEnd(section);
172
- }
173
- if (AccordionSection.scrollCandidate === this.host) {
174
- AccordionSection.scrollCandidate = undefined;
175
- await this.scrollSectionIntoView();
176
- }
177
- };
178
- }
179
- });
180
- }
181
- }
182
- async toggle(e) {
183
- var _a;
184
- e === null || e === void 0 ? void 0 : e.preventDefault();
185
- (_a = this.accordion) === null || _a === void 0 ? void 0 : _a.toggleSection(this.host, e).then(async (isOpen) => {
186
- if (isOpen) {
187
- await this.scrollIntoViewWhenNeeded(true);
188
- }
189
- });
134
+ get accordion() {
135
+ return this.host.closest("dso-accordion");
190
136
  }
191
137
  render() {
192
138
  var _a;
193
139
  const { variant, reverseAlign } = (_a = this.accordionState) !== null && _a !== void 0 ? _a : {};
194
- const hasAddons = !!this.status || !!this.state || !!this.icon || !!this.attachmentCount;
140
+ const hasAddons = !!this.statusDescription || !!this.status || !!this.icon || !!this.attachmentCount;
195
141
  return (index.h(index.Host, { class: {
196
142
  "dso-accordion-section": true,
197
143
  ["dso-accordion-" + variant]: true,
198
- "dso-nested-accordion": this.hasNestedSection,
144
+ "dso-nested-accordion": this.hasNestedAccordion,
199
145
  "dso-accordion-reverse-align": reverseAlign !== null && reverseAlign !== void 0 ? reverseAlign : false,
200
- }, hidden: !variant, onMouseenter: () => (this.hover = true), onMouseleave: () => (this.hover = false) }, index.h(Handle, { heading: this.heading, ref: (element) => (this.sectionHeading = element) }, index.h(HandleElement, { handleUrl: this.handleUrl, onClick: async (event) => await this.toggle(event), open: this.open }, reverseAlign ? (index.h(index.Fragment, null, hasAddons && (index.h("div", { class: "dso-section-handle-addons" }, index.h(HandleIcon, { icon: this.icon }))), index.h("span", null, this.handleTitle), index.h("dso-icon", { class: "dso-section-handle-chevron", icon: "chevron-down" }))) : (index.h(index.Fragment, null, index.h("dso-icon", { class: "dso-section-handle-chevron", icon: "chevron-right" }), this.state && index.h("span", { class: "sr-only" }, stateMap[this.state]), index.h("span", null, this.handleTitle, this.isNeutral && (index.h("dso-icon", { class: "info-icon", icon: this.open || this.hover ? "info-active" : "info" }))), hasAddons && (index.h("div", { class: "dso-section-handle-addons" }, this.status && index.h("span", { class: "dso-status" }, this.status), index.h(HandleIcon, { state: this.state, icon: this.icon, attachmentCount: this.attachmentCount }))))))), index.h("dso-expandable", { class: "dso-section-body", open: this.open, enableAnimation: true, minimumHeight: this.isNeutral ? 0 : 4, on_animationInstantiated: (e) => this.setAnimationBehaviour(e, this.host) }, index.h("div", { slot: "expandable-content", class: "dso-section-body-content", ref: (element) => (this.sectionBody = element) }, index.h("slot", null)))));
146
+ }, hidden: !variant, onMouseenter: () => (this.hover = true), onMouseleave: () => (this.hover = false) }, index.h(Handle, { heading: this.heading, ref: (element) => (this.sectionHeading = element) }, index.h(HandleElement, { handleUrl: this.handleUrl, onClick: this.handleClick, open: this.open }, reverseAlign ? (index.h(index.Fragment, null, hasAddons && (index.h("div", { class: "dso-section-handle-addons" }, index.h(HandleIcon, { icon: this.icon }))), index.h("span", null, this.handleTitle), index.h("dso-icon", { class: "dso-section-handle-chevron", icon: "chevron-down" }))) : (index.h(index.Fragment, null, index.h("dso-icon", { class: "dso-section-handle-chevron", icon: "chevron-right" }), this.status && index.h("span", { class: "sr-only" }, stateMap[this.status]), index.h("span", null, this.handleTitle, this.isNeutral && (index.h("dso-icon", { class: "info-icon", icon: this.open || this.hover ? "info-active" : "info" }))), hasAddons && (index.h("div", { class: "dso-section-handle-addons" }, this.statusDescription && index.h("span", { class: "dso-status" }, this.statusDescription), index.h(HandleIcon, { state: this.status, icon: this.icon, attachmentCount: this.attachmentCount }))))))), index.h("dso-expandable", { class: "dso-section-body", open: this.open, enableAnimation: true, minimumHeight: this.isNeutral ? 0 : 4, onDsoExpandableAnimationEnd: this.handleExpandableAnimationEnd }, index.h("div", { class: "dso-section-body-content", ref: (element) => (this.sectionBody = element) }, index.h("slot", null)))));
201
147
  }
202
148
  get host() { return index.getElement(this); }
203
149
  };
204
- function isAccordion(element) {
205
- return element.tagName === "DSO-ACCORDION";
206
- }
207
150
  AccordionSection.style = accordionSectionCss;
208
151
 
209
152
  exports.dso_accordion_section = AccordionSection;
@@ -1 +1 @@
1
- {"file":"dso-accordion-section.entry.cjs.js","mappings":";;;;;;SAAgB,YAAY,CAAC,OAAuB;EAClD,OAAO,OAAO,YAAY,OAAO,IAAI,OAAO,CAAC,OAAO,KAAK,gBAAgB,CAAC;AAC5E;;ACEO,MAAM,QAAQ,GAA0C;EAC7D,OAAO,EAAE,SAAS;EAClB,IAAI,EAAE,OAAO;EACb,OAAO,EAAE,eAAe;EACxB,MAAM,EAAE,OAAO;EACf,KAAK,EAAE,OAAO;CACf;;ACRM,MAAM,aAAa,GAIrB,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,QAAQ;EAC1C,IAAI,SAAS,EAAE;IACb,QACEA,eAAG,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,mBAAiB,IAAI,GAAG,MAAM,GAAG,OAAO,IACzE,QAAQ,CACP,EACJ;GACH;EAED,QACEA,oBAAQ,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,OAAO,mBAAiB,IAAI,GAAG,MAAM,GAAG,OAAO,IAC3E,QAAQ,CACF,EACT;AACJ,CAAC;;AChBM,MAAM,MAAM,GAGd,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,QAAQ;EAC9B,QAAQ,OAAO;IACb,QAAQ;IACR,KAAK,IAAI;MACP,QACEA,gBAAI,GAAG,EAAE,GAAG,EAAE,KAAK,EAAC,oBAAoB,IACrC,QAAQ,CACN,EACL;IACJ,KAAK,IAAI;MACP,QACEA,gBAAI,GAAG,EAAE,GAAG,EAAE,KAAK,EAAC,oBAAoB,IACrC,QAAQ,CACN,EACL;IACJ,KAAK,IAAI;MACP,QACEA,gBAAI,GAAG,EAAE,GAAG,EAAE,KAAK,EAAC,oBAAoB,IACrC,QAAQ,CACN,EACL;IACJ,KAAK,IAAI;MACP,QACEA,gBAAI,GAAG,EAAE,GAAG,EAAE,KAAK,EAAC,oBAAoB,IACrC,QAAQ,CACN,EACL;GACL;AACH,CAAC;;AC/BM,MAAM,eAAe,GAA0D,CAAC,EAAE,KAAK,EAAE;EAC9F,IAAI,KAAK,KAAK,OAAO,EAAE;IACrB,OAAOA,sBAAU,IAAI,EAAC,cAAc,GAAY,CAAC;GAClD;EAED,IAAI,KAAK,KAAK,QAAQ,EAAE;IACtB,OAAOA,sBAAU,IAAI,EAAC,eAAe,GAAY,CAAC;GACnD;EAED,IAAI,KAAK,KAAK,SAAS,EAAE;IACvB,OAAOA,sBAAU,IAAI,EAAC,gBAAgB,GAAY,CAAC;GACpD;EAED,IAAI,KAAK,KAAK,MAAM,EAAE;IACpB,OAAOA,sBAAU,IAAI,EAAC,aAAa,GAAY,CAAC;GACjD;EAED,IAAI,KAAK,KAAK,SAAS,EAAE;IACvB,OAAOA,sBAAU,IAAI,EAAC,gBAAgB,GAAY,CAAC;GACpD;AACH,CAAC;;ACnBM,MAAM,UAAU,GAIlB,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,eAAe,EAAE;EACpC,IAAI,KAAK,EAAE;IACT,OAAOA,QAAC,eAAe,IAAC,KAAK,EAAE,KAAK,GAAI,CAAC;GAC1C;EAED,IAAI,eAAe,EAAE;IACnB,OAAOA,qCAAyB,KAAK,EAAE,eAAe,GAA4B,CAAC;GACpF;EAED,IAAI,IAAI,EAAE;IACR,OAAOA,sBAAU,IAAI,EAAE,IAAI,GAAa,CAAC;GAC1C;AACH,CAAC;;ACrBD,MAAM,mBAAmB,GAAG,q6SAAq6S;;MCuBp7S,gBAAgB;;;;mBA4BC,IAAI;;;;;;gBAoCzB,KAAK;4BAGO,KAAK;iBAGhB,KAAK;;EAEb,iBAAiB;IACf,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC;IAE1C,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,KAAK,IAAI,CAAC;IAE1E,IAAI,SAAS,IAAI,WAAW,CAAC,SAAS,CAAC,EAAE;MACvC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;MAE3B,SAAS,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK;QAC/B,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;QAC5BC,iBAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;OACxB,CAAC,CAAC;KACJ;GACF;;;;;EAOD,MAAM,aAAa,CAAC,cAAc,GAAG,IAAI;;IACvC,OAAM,MAAA,IAAI,CAAC,SAAS,0CAAE,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC;MAClD,IAAI,cAAc,EAAE;QAClB,MAAM,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC;OAC3C;KACF,CAAC,CAAA,CAAC;GACJ;;;;EAMD,MAAM,qBAAqB;IACzB,MAAM,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;GAC5C;EAED,IAAI,SAAS;;IACX,OAAO,CAAA,MAAA,IAAI,CAAC,cAAc,0CAAE,OAAO,MAAK,SAAS,CAAC;GACnD;EAEO,MAAM,wBAAwB,CAAC,cAAuB;;IAC5D,gBAAgB,CAAC,eAAe,GAAG,SAAS,CAAC;IAE7C,MAAM,cAAc,GAAG,MAAA,IAAI,CAAC,WAAW,0CAAE,qBAAqB,EAAE,CAAC;IACjE,MAAM,iBAAiB,GAAG,MAAA,IAAI,CAAC,cAAc,0CAAE,qBAAqB,EAAE,CAAC;IAEvE,IAAI,CAAC,cAAc,IAAI,CAAC,iBAAiB,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;MACjE,OAAO;KACR;IAED,MAAM,+BAA+B,GAAG,OAAO,KAA6B;;MAC1E,IAAI,CAAC,UAAU,GAAG,OAAM,MAAA,IAAI,CAAC,UAAU,0CAAE,cAAc,EAAE,CAAA,CAAC;MAE1D,MAAM,sBAAsB,GAC1B,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,iBAAiB,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,GAAG,MAAA,IAAI,CAAC,UAAU,mCAAI,CAAC,GAAG,CAAC,CAAC,CAAC;MAE1F,QACE,cAAc,KAAK,sBAAsB,GAAG,QAAQ,CAAC,eAAe,CAAC,YAAY,IAAI,KAAK,CAAC,iBAAiB,CAAC,EAC7G;KACH,CAAC;IAEF,IAAI,MAAM,+BAA+B,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE;MAC9D,gBAAgB,CAAC,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC;MAC7C,OAAO;KACR;;IAGD,MAAM,cAAc,GAAG,iBAAiB,CAAC,GAAG,GAAG,iBAAiB,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,GAAG,MAAA,IAAI,CAAC,UAAU,mCAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACjH,IAAI,cAAc,GAAG,MAAM,CAAC,WAAW,EAAE;MACvC,MAAM,uBAAuB,GAAG,cAAc,GAAG,iBAAiB,CAAC,GAAG,CAAC;MACvE,MAAM,0BAA0B,GAAG,uBAAuB,GAAG,MAAM,CAAC,WAAW,CAAC;MAEhF,MAAM,CAAC,QAAQ,CAAC;QACd,GAAG,EAAE,0BAA0B;YAC3B,IAAI,CAAC,IAAI,CAAC,SAAS;YACnB,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,MAAM,CAAC,WAAW,GAAG,uBAAuB,CAAC;QACxE,QAAQ,EAAE,QAAQ;OACnB,CAAC,CAAC;KACJ;SAAM,IAAI,iBAAiB,CAAC,GAAG,GAAG,CAAC,EAAE;MACpC,MAAM,CAAC,QAAQ,CAAC;QACd,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS;QACxB,QAAQ,EAAE,QAAQ;OACnB,CAAC,CAAC;KACJ;GACF;EAEO,qBAAqB,CAAC,KAAY,EAAE,OAAqB;IAC/D,MAAM,iBAAiB,GAAG,KAAK,CAAC,MAAM,CAAC;IAEvC,IAAI,EAAE,iBAAiB,YAAY,WAAW,CAAC,EAAE;MAC/C,OAAO;KACR;IAED,IAAI,YAAY,CAAC,iBAAiB,CAAC,EAAE;MACnC,IAAI,CAAC,UAAU,GAAG,iBAAiB,CAAC;MACpC,IAAI,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,IAAI,CAAC,CAAC,aAAa;QACrD,IAAI,aAAa,EAAE;UACjB,aAAa,CAAC,cAAc,GAAG;YAC7B,IAAI,CAAC,OAAO,EAAE;cACZ,OAAO;aACR;YAED,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC;YAExC,IAAI,SAAS,IAAI,WAAW,CAAC,SAAS,CAAC,EAAE;cACvC,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,YAAY,CAAC,OAAO,CAAC,CAAC;aAClC;YAED,IAAI,gBAAgB,CAAC,eAAe,KAAK,IAAI,CAAC,IAAI,EAAE;cAClD,gBAAgB,CAAC,eAAe,GAAG,SAAS,CAAC;cAC7C,MAAM,IAAI,CAAC,qBAAqB,EAAE,CAAC;aACpC;WACF,CAAC;SACH;OACF,CAAC,CAAC;KACJ;GACF;EAEO,MAAM,MAAM,CAAC,CAAc;;IACjC,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,cAAc,EAAE,CAAC;IAEpB,MAAA,IAAI,CAAC,SAAS,0CAAE,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,OAAO,MAAM;MAC5D,IAAI,MAAM,EAAE;QACV,MAAM,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC;OAC3C;KACF,CAAC,CAAC;GACJ;EAED,MAAM;;IACJ,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,MAAA,IAAI,CAAC,cAAc,mCAAI,EAAE,CAAC;IAC5D,MAAM,SAAS,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC;IAEzF,QACED,QAACE,UAAI,IACH,KAAK,EAAE;QACL,uBAAuB,EAAE,IAAI;QAC7B,CAAC,gBAAgB,GAAG,OAAO,GAAG,IAAI;QAClC,sBAAsB,EAAE,IAAI,CAAC,gBAAgB;QAC7C,6BAA6B,EAAE,YAAY,aAAZ,YAAY,cAAZ,YAAY,GAAI,KAAK;OACrD,EACD,MAAM,EAAE,CAAC,OAAO,EAChB,YAAY,EAAE,OAAO,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,EACvC,YAAY,EAAE,OAAO,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,IAExCF,QAAC,MAAM,IAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,MAAM,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,IAC9EA,QAAC,aAAa,IACZ,SAAS,EAAE,IAAI,CAAC,SAAS,EACzB,OAAO,EAAE,OAAO,KAAK,KAAK,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAClD,IAAI,EAAE,IAAI,CAAC,IAAI,IAEd,YAAY,IACXA,QAACG,cAAQ,QACN,SAAS,KACRH,iBAAK,KAAK,EAAC,2BAA2B,IACpCA,QAAC,UAAU,IAAC,IAAI,EAAE,IAAI,CAAC,IAAI,GAAI,CAC3B,CACP,EAEDA,sBAAO,IAAI,CAAC,WAAW,CAAQ,EAE/BA,sBAAU,KAAK,EAAC,4BAA4B,EAAC,IAAI,EAAC,cAAc,GAAY,CACnE,KAEXA,QAACG,cAAQ,QACPH,sBAAU,KAAK,EAAC,4BAA4B,EAAC,IAAI,EAAC,eAAe,GAAY,EAE5E,IAAI,CAAC,KAAK,IAAIA,kBAAM,KAAK,EAAC,SAAS,IAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAQ,EAElEA,sBACG,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,SAAS,KACbA,sBAAU,KAAK,EAAC,WAAW,EAAC,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,GAAG,aAAa,GAAG,MAAM,GAAI,CACvF,CACI,EAEN,SAAS,KACRA,iBAAK,KAAK,EAAC,2BAA2B,IACnC,IAAI,CAAC,MAAM,IAAIA,kBAAM,KAAK,EAAC,YAAY,IAAE,IAAI,CAAC,MAAM,CAAQ,EAC7DA,QAAC,UAAU,IAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,eAAe,EAAE,IAAI,CAAC,eAAe,GAAI,CACrF,CACP,CACQ,CACZ,CACa,CACT,EACTA,4BACE,KAAK,EAAC,kBAAkB,EACxB,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,eAAe,QACf,aAAa,EAAE,IAAI,CAAC,SAAS,GAAG,CAAC,GAAG,CAAC,EACrC,wBAAwB,EAAE,CAAC,CAAQ,KAAK,IAAI,CAAC,qBAAqB,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,IAEhFA,iBACE,IAAI,EAAC,oBAAoB,EACzB,KAAK,EAAC,0BAA0B,EAChC,GAAG,EAAE,CAAC,OAAO,MAAM,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,IAE9CA,qBAAQ,CACJ,CACS,CACZ,EACP;GACH;;;AAGH,SAAS,WAAW,CAAC,OAAgB;EACnC,OAAO,OAAO,CAAC,OAAO,KAAK,eAAe,CAAC;AAC7C,CAAC;;;;;","names":["h","forceUpdate","Host","Fragment"],"sources":["./src/components/expandable/expandable.functions.ts","./src/components/accordion/components/accordion-section.interfaces.ts","./src/components/accordion/components/handles/element.handle.tsx","./src/components/accordion/components/handles/heading.handle.tsx","./src/components/accordion/components/handles/state-icon.handle.tsx","./src/components/accordion/components/handles/icon.handle.tsx","./src/components/accordion/components/accordion-section.scss?tag=dso-accordion-section&encapsulation=shadow","./src/components/accordion/components/accordion-section.tsx"],"sourcesContent":["export function isExpandable(element: Element | null): element is HTMLDsoExpandableElement {\r\n return element instanceof Element && element.tagName === \"DSO-EXPANDABLE\";\r\n}\r\n","export type AccordionSectionState = \"success\" | \"info\" | \"warning\" | \"danger\" | \"error\";\r\n\r\nexport type AccordionHeading = \"h2\" | \"h3\" | \"h4\" | \"h5\";\r\n\r\nexport const stateMap: Record<AccordionSectionState, string> = {\r\n success: \"succes:\",\r\n info: \"info:\",\r\n warning: \"waarschuwing:\",\r\n danger: \"fout:\",\r\n error: \"fout:\",\r\n};\r\n","import { FunctionalComponent, h } from \"@stencil/core\";\r\n\r\nexport const HandleElement: FunctionalComponent<{\r\n handleUrl: string | undefined;\r\n open: boolean;\r\n onClick: (e: MouseEvent) => void;\r\n}> = ({ handleUrl, onClick, open }, children) => {\r\n if (handleUrl) {\r\n return (\r\n <a href={handleUrl} onClick={onClick} aria-expanded={open ? \"true\" : \"false\"}>\r\n {children}\r\n </a>\r\n );\r\n }\r\n\r\n return (\r\n <button type=\"button\" onClick={onClick} aria-expanded={open ? \"true\" : \"false\"}>\r\n {children}\r\n </button>\r\n );\r\n};\r\n","import { FunctionalComponent, h } from \"@stencil/core\";\r\n\r\nimport { AccordionHeading } from \"../accordion-section.interfaces\";\r\n\r\nexport const Handle: FunctionalComponent<{\r\n heading: AccordionHeading;\r\n ref: (element: HTMLHeadingElement | undefined) => void;\r\n}> = ({ heading, ref }, children) => {\r\n switch (heading) {\r\n default:\r\n case \"h2\":\r\n return (\r\n <h2 ref={ref} class=\"dso-section-handle\">\r\n {children}\r\n </h2>\r\n );\r\n case \"h3\":\r\n return (\r\n <h3 ref={ref} class=\"dso-section-handle\">\r\n {children}\r\n </h3>\r\n );\r\n case \"h4\":\r\n return (\r\n <h4 ref={ref} class=\"dso-section-handle\">\r\n {children}\r\n </h4>\r\n );\r\n case \"h5\":\r\n return (\r\n <h5 ref={ref} class=\"dso-section-handle\">\r\n {children}\r\n </h5>\r\n );\r\n }\r\n};\r\n","import { FunctionalComponent, h } from \"@stencil/core\";\r\n\r\nimport { AccordionSectionState } from \"../accordion-section.interfaces\";\r\n\r\nexport const HandleStateIcon: FunctionalComponent<{ state: AccordionSectionState }> = ({ state }) => {\r\n if (state === \"error\") {\r\n return <dso-icon icon=\"status-error\"></dso-icon>;\r\n }\r\n\r\n if (state === \"danger\") {\r\n return <dso-icon icon=\"status-danger\"></dso-icon>;\r\n }\r\n\r\n if (state === \"success\") {\r\n return <dso-icon icon=\"status-success\"></dso-icon>;\r\n }\r\n\r\n if (state === \"info\") {\r\n return <dso-icon icon=\"status-info\"></dso-icon>;\r\n }\r\n\r\n if (state === \"warning\") {\r\n return <dso-icon icon=\"status-warning\"></dso-icon>;\r\n }\r\n};\r\n","import { FunctionalComponent, h } from \"@stencil/core\";\r\n\r\nimport { AccordionSectionState } from \"../accordion-section.interfaces\";\r\nimport { HandleStateIcon } from \"./state-icon.handle\";\r\n\r\nexport const HandleIcon: FunctionalComponent<{\r\n state?: AccordionSectionState;\r\n icon?: string;\r\n attachmentCount?: number;\r\n}> = ({ state, icon, attachmentCount }) => {\r\n if (state) {\r\n return <HandleStateIcon state={state} />;\r\n }\r\n\r\n if (attachmentCount) {\r\n return <dso-attachments-counter count={attachmentCount}></dso-attachments-counter>;\r\n }\r\n\r\n if (icon) {\r\n return <dso-icon icon={icon}></dso-icon>;\r\n }\r\n};\r\n","@use \"~dso-toolkit/src/utilities\";\r\n@use \"~dso-toolkit/src/variables/units\";\r\n@use \"~dso-toolkit/src/variables/colors\";\r\n@use \"~dso-toolkit/src/variables/typography\";\r\n\r\n@use \"~dso-toolkit/src/components/accordion\";\r\n@use \"~dso-toolkit/src/components/anchor\";\r\n\r\n@use \"accordion-section-theme-compact\";\r\n@use \"accordion-section-theme-conclusion\";\r\n@use \"accordion-section-theme-default\";\r\n@use \"accordion-section-theme-neutral\";\r\n\r\n@include utilities.box-sizing();\r\n\r\n.sr-only {\r\n @include utilities.sr-only();\r\n}\r\n\r\n:host {\r\n display: block;\r\n\r\n .dso-section-handle {\r\n font-size: 1em;\r\n font-weight: 600;\r\n line-height: accordion.$handle-line-height;\r\n margin: 0;\r\n position: relative;\r\n\r\n > a:active {\r\n text-decoration: none;\r\n }\r\n\r\n a {\r\n @include anchor.clean();\r\n }\r\n\r\n .dso-status {\r\n font-weight: 400;\r\n text-decoration: underline;\r\n }\r\n }\r\n\r\n .dso-section-handle > button,\r\n .dso-section-handle > a {\r\n align-items: flex-start;\r\n background-color: transparent;\r\n border: 0;\r\n cursor: pointer;\r\n display: flex;\r\n font-family: typography.$font-family-base;\r\n font-size: 1em;\r\n font-weight: 600;\r\n line-height: accordion.$handle-line-height;\r\n margin: 0;\r\n padding: accordion.$vertical-padding accordion.$horizontal-padding accordion.$vertical-padding;\r\n text-align: start;\r\n width: 100%;\r\n word-break: break-word;\r\n\r\n dso-icon {\r\n flex-shrink: 0;\r\n\r\n &.dso-section-handle-chevron {\r\n @include utilities.transition(transform);\r\n\r\n transform: rotate(0);\r\n }\r\n }\r\n\r\n > .dso-section-handle-addons:first-child,\r\n > dso-icon:first-child {\r\n margin-right: units.$u1;\r\n }\r\n\r\n > dso-icon:last-child {\r\n margin-left: auto;\r\n }\r\n\r\n > .dso-section-handle-addons:last-child {\r\n margin-left: auto;\r\n\r\n dso-attachments-counter,\r\n dso-icon {\r\n margin-left: 16px;\r\n }\r\n }\r\n }\r\n}\r\n\r\n:host([open]) {\r\n .dso-section-handle {\r\n > button,\r\n > a {\r\n .dso-section-handle-chevron {\r\n &:first-child {\r\n transform: rotate(90deg);\r\n }\r\n\r\n &:last-child {\r\n transform: rotate(-180deg);\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\n.dso-section-body {\r\n background-color: colors.$wit;\r\n border-top: 0;\r\n margin-top: accordion.$border-radius * -1;\r\n\r\n .dso-section-body-content {\r\n padding: units.$u2 + accordion.$border-radius units.$u2 units.$u2;\r\n }\r\n}\r\n\r\n// Default\r\n:host(.dso-accordion-default) {\r\n @include accordion-section-theme-default.dso-web-component-accordion-default();\r\n}\r\n\r\n:host(.dso-accordion-default[open]) {\r\n @include accordion-section-theme-default.dso-web-component-accordion-default-open();\r\n}\r\n\r\n:host(.dso-accordion-default.dso-nested-accordion[open]) {\r\n @include accordion-section-theme-default.dso-web-component-accordion-default-open-nested();\r\n}\r\n\r\n// Compact\r\n:host(.dso-accordion-compact) {\r\n @include accordion-section-theme-compact.dso-web-component-accordion-compact();\r\n}\r\n\r\n:host(.dso-accordion-compact.dso-accordion-reverse-align) {\r\n @include accordion-section-theme-compact.dso-web-component-accordion-compact-reverse();\r\n}\r\n\r\n:host(.dso-accordion-compact[open]:not(.dso-nested-accordion)) {\r\n @include accordion-section-theme-compact.dso-web-component-accordion-compact-open();\r\n}\r\n\r\n:host(.dso-accordion-compact.dso-nested-accordion[open]) {\r\n @include accordion-section-theme-compact.dso-web-component-accordion-compact-open-nested();\r\n}\r\n\r\n// Conclusion\r\n:host(.dso-accordion-conclusion) {\r\n @include accordion-section-theme-conclusion.dso-web-component-accordion-conclusion();\r\n}\r\n\r\n:host(.dso-accordion-conclusion[open]:not(.dso-nested-accordion)) {\r\n @include accordion-section-theme-conclusion.dso-web-component-accordion-conclusion-open();\r\n}\r\n\r\n:host(.dso-accordion-conclusion.dso-nested-accordion[open]) {\r\n @include accordion-section-theme-conclusion.dso-web-component-accordion-conclusion-open-nested();\r\n}\r\n\r\n// Neutral\r\n:host(.dso-accordion-neutral) {\r\n @include accordion-section-theme-neutral.dso-web-component-accordion-neutral();\r\n}\r\n\r\n:host(.dso-accordion-neutral[open]) {\r\n @include accordion-section-theme-neutral.dso-web-component-accordion-neutral-open();\r\n}\r\n\r\n:host(.dso-accordion-neutral.dso-nested-accordion[open]) {\r\n @include accordion-section-theme-neutral.dso-web-component-accordion-neutral-open-nested();\r\n}\r\n","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"],"version":3}
1
+ {"file":"dso-accordion-section.entry.cjs.js","mappings":"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","names":["h","forceUpdate","Host","Fragment"],"sources":["./src/components/accordion/components/accordion-section.interfaces.ts","./src/components/accordion/components/handles/element.handle.tsx","./src/components/accordion/components/handles/heading.handle.tsx","./src/components/accordion/components/handles/state-icon.handle.tsx","./src/components/accordion/components/handles/icon.handle.tsx","./src/components/accordion/components/accordion-section.scss?tag=dso-accordion-section&encapsulation=shadow","./src/components/accordion/components/accordion-section.tsx"],"sourcesContent":["export type AccordionSectionState = \"success\" | \"info\" | \"warning\" | \"danger\" | \"error\";\r\n\r\nexport type AccordionHeading = \"h2\" | \"h3\" | \"h4\" | \"h5\";\r\n\r\nexport const stateMap: Record<AccordionSectionState, string> = {\r\n success: \"succes:\",\r\n info: \"info:\",\r\n warning: \"waarschuwing:\",\r\n danger: \"fout:\",\r\n error: \"fout:\",\r\n};\r\n","import { FunctionalComponent, h } from \"@stencil/core\";\r\n\r\nexport const HandleElement: FunctionalComponent<{\r\n handleUrl: string | undefined;\r\n open: boolean;\r\n onClick: (e: MouseEvent) => void;\r\n}> = ({ handleUrl, onClick, open }, children) => {\r\n if (handleUrl) {\r\n return (\r\n <a href={handleUrl} onClick={onClick} aria-expanded={open ? \"true\" : \"false\"}>\r\n {children}\r\n </a>\r\n );\r\n }\r\n\r\n return (\r\n <button type=\"button\" onClick={onClick} aria-expanded={open ? \"true\" : \"false\"}>\r\n {children}\r\n </button>\r\n );\r\n};\r\n","import { FunctionalComponent, h } from \"@stencil/core\";\r\n\r\nimport { AccordionHeading } from \"../accordion-section.interfaces\";\r\n\r\nexport const Handle: FunctionalComponent<{\r\n heading: AccordionHeading;\r\n ref: (element: HTMLHeadingElement | undefined) => void;\r\n}> = ({ heading, ref }, children) => {\r\n switch (heading) {\r\n default:\r\n case \"h2\":\r\n return (\r\n <h2 ref={ref} class=\"dso-section-handle\">\r\n {children}\r\n </h2>\r\n );\r\n case \"h3\":\r\n return (\r\n <h3 ref={ref} class=\"dso-section-handle\">\r\n {children}\r\n </h3>\r\n );\r\n case \"h4\":\r\n return (\r\n <h4 ref={ref} class=\"dso-section-handle\">\r\n {children}\r\n </h4>\r\n );\r\n case \"h5\":\r\n return (\r\n <h5 ref={ref} class=\"dso-section-handle\">\r\n {children}\r\n </h5>\r\n );\r\n }\r\n};\r\n","import { FunctionalComponent, h } from \"@stencil/core\";\r\n\r\nimport { AccordionSectionState } from \"../accordion-section.interfaces\";\r\n\r\nexport const HandleStateIcon: FunctionalComponent<{ state: AccordionSectionState }> = ({ state }) => {\r\n if (state === \"error\") {\r\n return <dso-icon icon=\"status-error\"></dso-icon>;\r\n }\r\n\r\n if (state === \"danger\") {\r\n return <dso-icon icon=\"status-danger\"></dso-icon>;\r\n }\r\n\r\n if (state === \"success\") {\r\n return <dso-icon icon=\"status-success\"></dso-icon>;\r\n }\r\n\r\n if (state === \"info\") {\r\n return <dso-icon icon=\"status-info\"></dso-icon>;\r\n }\r\n\r\n if (state === \"warning\") {\r\n return <dso-icon icon=\"status-warning\"></dso-icon>;\r\n }\r\n};\r\n","import { FunctionalComponent, h } from \"@stencil/core\";\r\n\r\nimport { AccordionSectionState } from \"../accordion-section.interfaces\";\r\nimport { HandleStateIcon } from \"./state-icon.handle\";\r\n\r\nexport const HandleIcon: FunctionalComponent<{\r\n state?: AccordionSectionState;\r\n icon?: string;\r\n attachmentCount?: number;\r\n}> = ({ state, icon, attachmentCount }) => {\r\n if (state) {\r\n return <HandleStateIcon state={state} />;\r\n }\r\n\r\n if (attachmentCount) {\r\n return <dso-attachments-counter count={attachmentCount}></dso-attachments-counter>;\r\n }\r\n\r\n if (icon) {\r\n return <dso-icon icon={icon}></dso-icon>;\r\n }\r\n};\r\n","@use \"~dso-toolkit/src/utilities\";\r\n@use \"~dso-toolkit/src/variables/units\";\r\n@use \"~dso-toolkit/src/variables/colors\";\r\n@use \"~dso-toolkit/src/variables/typography\";\r\n\r\n@use \"~dso-toolkit/src/components/accordion\";\r\n@use \"~dso-toolkit/src/components/anchor\";\r\n\r\n@use \"accordion-section-theme-compact\";\r\n@use \"accordion-section-theme-conclusion\";\r\n@use \"accordion-section-theme-default\";\r\n@use \"accordion-section-theme-neutral\";\r\n\r\n@include utilities.box-sizing();\r\n\r\n.sr-only {\r\n @include utilities.sr-only();\r\n}\r\n\r\n:host {\r\n display: block;\r\n\r\n .dso-section-handle {\r\n font-size: 1em;\r\n font-weight: 600;\r\n line-height: accordion.$handle-line-height;\r\n margin: 0;\r\n position: relative;\r\n\r\n > a:active {\r\n text-decoration: none;\r\n }\r\n\r\n a {\r\n @include anchor.clean();\r\n }\r\n\r\n .dso-status {\r\n font-weight: 400;\r\n text-decoration: underline;\r\n }\r\n }\r\n\r\n .dso-section-handle > button,\r\n .dso-section-handle > a {\r\n align-items: flex-start;\r\n background-color: transparent;\r\n border: 0;\r\n cursor: pointer;\r\n display: flex;\r\n font-family: typography.$font-family-base;\r\n font-size: 1em;\r\n font-weight: 600;\r\n line-height: accordion.$handle-line-height;\r\n margin: 0;\r\n padding: accordion.$vertical-padding accordion.$horizontal-padding accordion.$vertical-padding;\r\n text-align: start;\r\n width: 100%;\r\n word-break: break-word;\r\n\r\n dso-icon {\r\n flex-shrink: 0;\r\n\r\n &.dso-section-handle-chevron {\r\n @include utilities.transition(transform);\r\n\r\n transform: rotate(0);\r\n }\r\n }\r\n\r\n > .dso-section-handle-addons:first-child,\r\n > dso-icon:first-child {\r\n margin-right: units.$u1;\r\n }\r\n\r\n > dso-icon:last-child {\r\n margin-left: auto;\r\n }\r\n\r\n > .dso-section-handle-addons:last-child {\r\n margin-left: auto;\r\n\r\n dso-attachments-counter,\r\n dso-icon {\r\n margin-left: 16px;\r\n }\r\n }\r\n }\r\n}\r\n\r\n:host([open]) {\r\n .dso-section-handle {\r\n > button,\r\n > a {\r\n .dso-section-handle-chevron {\r\n &:first-child {\r\n transform: rotate(90deg);\r\n }\r\n\r\n &:last-child {\r\n transform: rotate(-180deg);\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\n.dso-section-body {\r\n background-color: colors.$wit;\r\n border-top: 0;\r\n margin-top: accordion.$border-radius * -1;\r\n\r\n .dso-section-body-content {\r\n padding: units.$u2 + accordion.$border-radius units.$u2 units.$u2;\r\n }\r\n}\r\n\r\n// Default\r\n:host(.dso-accordion-default) {\r\n @include accordion-section-theme-default.dso-web-component-accordion-default();\r\n}\r\n\r\n:host(.dso-accordion-default[open]) {\r\n @include accordion-section-theme-default.dso-web-component-accordion-default-open();\r\n}\r\n\r\n:host(.dso-accordion-default.dso-nested-accordion[open]) {\r\n @include accordion-section-theme-default.dso-web-component-accordion-default-open-nested();\r\n}\r\n\r\n// Compact\r\n:host(.dso-accordion-compact) {\r\n @include accordion-section-theme-compact.dso-web-component-accordion-compact();\r\n}\r\n\r\n:host(.dso-accordion-compact.dso-accordion-reverse-align) {\r\n @include accordion-section-theme-compact.dso-web-component-accordion-compact-reverse();\r\n}\r\n\r\n:host(.dso-accordion-compact[open]:not(.dso-nested-accordion)) {\r\n @include accordion-section-theme-compact.dso-web-component-accordion-compact-open();\r\n}\r\n\r\n:host(.dso-accordion-compact.dso-nested-accordion[open]) {\r\n @include accordion-section-theme-compact.dso-web-component-accordion-compact-open-nested();\r\n}\r\n\r\n// Conclusion\r\n:host(.dso-accordion-conclusion) {\r\n @include accordion-section-theme-conclusion.dso-web-component-accordion-conclusion();\r\n}\r\n\r\n:host(.dso-accordion-conclusion[open]:not(.dso-nested-accordion)) {\r\n @include accordion-section-theme-conclusion.dso-web-component-accordion-conclusion-open();\r\n}\r\n\r\n:host(.dso-accordion-conclusion.dso-nested-accordion[open]) {\r\n @include accordion-section-theme-conclusion.dso-web-component-accordion-conclusion-open-nested();\r\n}\r\n\r\n// Neutral\r\n:host(.dso-accordion-neutral) {\r\n @include accordion-section-theme-neutral.dso-web-component-accordion-neutral();\r\n}\r\n\r\n:host(.dso-accordion-neutral[open]) {\r\n @include accordion-section-theme-neutral.dso-web-component-accordion-neutral-open();\r\n}\r\n\r\n:host(.dso-accordion-neutral.dso-nested-accordion[open]) {\r\n @include accordion-section-theme-neutral.dso-web-component-accordion-neutral-open-nested();\r\n}\r\n","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"],"version":3}
@@ -3,141 +3,231 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-efc2222e.js');
6
- const index$1 = require('./index-a189d603.js');
6
+
7
+ const appendToMap = (map, propName, value) => {
8
+ const items = map.get(propName);
9
+ if (!items) {
10
+ map.set(propName, [value]);
11
+ }
12
+ else if (!items.includes(value)) {
13
+ items.push(value);
14
+ }
15
+ };
16
+ const debounce = (fn, ms) => {
17
+ let timeoutId;
18
+ return (...args) => {
19
+ if (timeoutId) {
20
+ clearTimeout(timeoutId);
21
+ }
22
+ timeoutId = setTimeout(() => {
23
+ timeoutId = 0;
24
+ fn(...args);
25
+ }, ms);
26
+ };
27
+ };
28
+
29
+ /**
30
+ * Check if a possible element isConnected.
31
+ * The property might not be there, so we check for it.
32
+ *
33
+ * We want it to return true if isConnected is not a property,
34
+ * otherwise we would remove these elements and would not update.
35
+ *
36
+ * Better leak in Edge than to be useless.
37
+ */
38
+ const isConnected = (maybeElement) => !('isConnected' in maybeElement) || maybeElement.isConnected;
39
+ const cleanupElements = debounce((map) => {
40
+ for (let key of map.keys()) {
41
+ map.set(key, map.get(key).filter(isConnected));
42
+ }
43
+ }, 2000);
44
+ const stencilSubscription = () => {
45
+ if (typeof index.getRenderingRef !== 'function') {
46
+ // If we are not in a stencil project, we do nothing.
47
+ // This function is not really exported by @stencil/core.
48
+ return {};
49
+ }
50
+ const elmsToUpdate = new Map();
51
+ return {
52
+ dispose: () => elmsToUpdate.clear(),
53
+ get: (propName) => {
54
+ const elm = index.getRenderingRef();
55
+ if (elm) {
56
+ appendToMap(elmsToUpdate, propName, elm);
57
+ }
58
+ },
59
+ set: (propName) => {
60
+ const elements = elmsToUpdate.get(propName);
61
+ if (elements) {
62
+ elmsToUpdate.set(propName, elements.filter(index.forceUpdate));
63
+ }
64
+ cleanupElements(elmsToUpdate);
65
+ },
66
+ reset: () => {
67
+ elmsToUpdate.forEach((elms) => elms.forEach(index.forceUpdate));
68
+ cleanupElements(elmsToUpdate);
69
+ },
70
+ };
71
+ };
72
+
73
+ const unwrap = (val) => (typeof val === 'function' ? val() : val);
74
+ const createObservableMap = (defaultState, shouldUpdate = (a, b) => a !== b) => {
75
+ const unwrappedState = unwrap(defaultState);
76
+ let states = new Map(Object.entries(unwrappedState !== null && unwrappedState !== void 0 ? unwrappedState : {}));
77
+ const handlers = {
78
+ dispose: [],
79
+ get: [],
80
+ set: [],
81
+ reset: [],
82
+ };
83
+ const reset = () => {
84
+ var _a;
85
+ // When resetting the state, the default state may be a function - unwrap it to invoke it.
86
+ // otherwise, the state won't be properly reset
87
+ states = new Map(Object.entries((_a = unwrap(defaultState)) !== null && _a !== void 0 ? _a : {}));
88
+ handlers.reset.forEach((cb) => cb());
89
+ };
90
+ const dispose = () => {
91
+ // Call first dispose as resetting the state would
92
+ // cause less updates ;)
93
+ handlers.dispose.forEach((cb) => cb());
94
+ reset();
95
+ };
96
+ const get = (propName) => {
97
+ handlers.get.forEach((cb) => cb(propName));
98
+ return states.get(propName);
99
+ };
100
+ const set = (propName, value) => {
101
+ const oldValue = states.get(propName);
102
+ if (shouldUpdate(value, oldValue, propName)) {
103
+ states.set(propName, value);
104
+ handlers.set.forEach((cb) => cb(propName, value, oldValue));
105
+ }
106
+ };
107
+ const state = (typeof Proxy === 'undefined'
108
+ ? {}
109
+ : new Proxy(unwrappedState, {
110
+ get(_, propName) {
111
+ return get(propName);
112
+ },
113
+ ownKeys(_) {
114
+ return Array.from(states.keys());
115
+ },
116
+ getOwnPropertyDescriptor() {
117
+ return {
118
+ enumerable: true,
119
+ configurable: true,
120
+ };
121
+ },
122
+ has(_, propName) {
123
+ return states.has(propName);
124
+ },
125
+ set(_, propName, value) {
126
+ set(propName, value);
127
+ return true;
128
+ },
129
+ }));
130
+ const on = (eventName, callback) => {
131
+ handlers[eventName].push(callback);
132
+ return () => {
133
+ removeFromArray(handlers[eventName], callback);
134
+ };
135
+ };
136
+ const onChange = (propName, cb) => {
137
+ const unSet = on('set', (key, newValue) => {
138
+ if (key === propName) {
139
+ cb(newValue);
140
+ }
141
+ });
142
+ // We need to unwrap the defaultState because it might be a function.
143
+ // Otherwise we might not be sending the right reset value.
144
+ const unReset = on('reset', () => cb(unwrap(defaultState)[propName]));
145
+ return () => {
146
+ unSet();
147
+ unReset();
148
+ };
149
+ };
150
+ const use = (...subscriptions) => {
151
+ const unsubs = subscriptions.reduce((unsubs, subscription) => {
152
+ if (subscription.set) {
153
+ unsubs.push(on('set', subscription.set));
154
+ }
155
+ if (subscription.get) {
156
+ unsubs.push(on('get', subscription.get));
157
+ }
158
+ if (subscription.reset) {
159
+ unsubs.push(on('reset', subscription.reset));
160
+ }
161
+ if (subscription.dispose) {
162
+ unsubs.push(on('dispose', subscription.dispose));
163
+ }
164
+ return unsubs;
165
+ }, []);
166
+ return () => unsubs.forEach((unsub) => unsub());
167
+ };
168
+ const forceUpdate = (key) => {
169
+ const oldValue = states.get(key);
170
+ handlers.set.forEach((cb) => cb(key, oldValue, oldValue));
171
+ };
172
+ return {
173
+ state,
174
+ get,
175
+ set,
176
+ on,
177
+ onChange,
178
+ use,
179
+ dispose,
180
+ reset,
181
+ forceUpdate,
182
+ };
183
+ };
184
+ const removeFromArray = (array, item) => {
185
+ const index = array.indexOf(item);
186
+ if (index >= 0) {
187
+ array[index] = array[array.length - 1];
188
+ array.length--;
189
+ }
190
+ };
191
+
192
+ const createStore = (defaultState, shouldUpdate) => {
193
+ const map = createObservableMap(defaultState, shouldUpdate);
194
+ map.use(stencilSubscription());
195
+ return map;
196
+ };
7
197
 
8
198
  const accordionCss = ":host{display:block}*,*::after,*::before{box-sizing:border-box}";
9
199
 
10
200
  const Accordion = class {
11
201
  updateVariant(variant = "default") {
12
- this.accordionState.variant = variant || "default";
202
+ this.accordionState.variant = variant;
13
203
  }
14
204
  updateReverseAlign(reverseAlign) {
15
205
  this.accordionState.reverseAlign = reverseAlign;
16
206
  }
17
- updateAllowMultipleOpen(allowMultipleOpen) {
18
- this.accordionState.allowMultipleOpen = allowMultipleOpen;
19
- if (!allowMultipleOpen) {
20
- const openSections = Array.from(this.host.querySelectorAll(":scope > dso-accordion-section[open]"));
21
- // By removing the first section, it is kept open;
22
- openSections.shift();
23
- openSections.forEach((section) => this.controlOpenAttribute(section, false));
24
- }
25
- }
26
207
  /**
27
208
  * @internal
28
209
  */
29
210
  async _getState() {
30
211
  return this.accordionState;
31
212
  }
32
- /**
33
- * Toggle a section. Pass the `<dso-accordion-section>` element or the index of the section.
34
- * @param sectionElement The section element that needs to toggle
35
- * @param event The event that the user triggered
36
- * @returns The state of the section
37
- */
38
- async toggleSection(sectionElement, event) {
39
- const sections = Array.from(this.host.querySelectorAll(":scope > dso-accordion-section"));
40
- if (typeof sectionElement === "number") {
41
- const section = sections[sectionElement];
42
- if (section instanceof HTMLElement) {
43
- sectionElement = section;
44
- }
45
- }
46
- if (!(sectionElement instanceof HTMLElement) || !sections.includes(sectionElement)) {
47
- return;
48
- }
49
- const sectionIsOpen = this.isSectionOpen(sectionElement);
50
- if (this.allowMultipleOpen) {
51
- this.controlOpenAttribute(sectionElement, !sectionIsOpen);
52
- this.emitToggleEvent(sectionElement, sections, event);
53
- return !sectionIsOpen;
54
- }
55
- if (sectionIsOpen) {
56
- this.controlOpenAttribute(sectionElement, false);
57
- this.emitToggleEvent(sectionElement, sections, event);
58
- return false;
59
- }
60
- await this.closeOpenSections();
61
- this.controlOpenAttribute(sectionElement, true);
62
- this.emitToggleEvent(sectionElement, sections, event);
63
- return true;
64
- }
65
- /**
66
- * Emitted when the animation of opening or closing ends.
67
- */
68
- async animationEnd(sectionElement) {
69
- this.dsoToggleSectionAnimationEnd.emit({
70
- section: {
71
- element: sectionElement,
72
- open: this.isSectionOpen(sectionElement),
73
- },
74
- });
75
- }
76
- /**
77
- * Closes all sections belonging to this accordion.
78
- */
79
- async closeOpenSections() {
80
- const sections = Array.from(this.host.querySelectorAll(":scope > dso-accordion-section"));
81
- const openSections = sections.filter((s) => this.isSectionOpen(s));
82
- openSections.forEach((section) => this.controlOpenAttribute(section, false));
83
- }
84
- // These checks are needed for a React timing issue.
85
213
  componentWillLoad() {
86
- if (this.accordionState.variant !== this.variant) {
87
- this.accordionState.variant = this.variant || "default";
88
- }
89
- if (this.accordionState.reverseAlign !== this.reverseAlign) {
90
- this.accordionState.reverseAlign = this.reverseAlign;
91
- }
92
- if (this.accordionState.allowMultipleOpen !== this.allowMultipleOpen) {
93
- this.accordionState.allowMultipleOpen = this.allowMultipleOpen;
94
- }
214
+ this.accordionState.variant = this.variant;
215
+ this.accordionState.reverseAlign = this.reverseAlign;
95
216
  }
96
217
  constructor(hostRef) {
97
218
  index.registerInstance(this, hostRef);
98
- this.dsoToggleSection = index.createEvent(this, "dsoToggleSection", 7);
99
- this.dsoToggleSectionAnimationEnd = index.createEvent(this, "dsoToggleSectionAnimationEnd", 7);
100
219
  this.variant = "default";
101
220
  this.reverseAlign = false;
102
- this.allowMultipleOpen = false;
103
- const { state } = index$1.createStore({
104
- variant: this.variant || "default",
105
- reverseAlign: this.reverseAlign,
106
- allowMultipleOpen: this.allowMultipleOpen,
107
- });
221
+ const { state } = createStore({});
108
222
  this.accordionState = state;
109
223
  }
110
224
  render() {
111
- return (index.h(index.Host, { class: {
112
- "dso-accordion": true,
113
- } }, index.h("slot", null)));
114
- }
115
- emitToggleEvent(sectionElement, sections, e) {
116
- this.dsoToggleSection.emit({
117
- originalEvent: e,
118
- section: {
119
- element: sectionElement,
120
- open: this.isSectionOpen(sectionElement),
121
- },
122
- sections,
123
- });
124
- }
125
- isSectionOpen(sectionElement) {
126
- return typeof sectionElement.getAttribute("open") === "string";
127
- }
128
- controlOpenAttribute(sectionElement, setAttribute) {
129
- if (setAttribute) {
130
- sectionElement.setAttribute("open", "");
131
- }
132
- else {
133
- sectionElement.removeAttribute("open");
134
- }
225
+ return (index.h(index.Host, { class: "dso-accordion" }, index.h("slot", null)));
135
226
  }
136
227
  get host() { return index.getElement(this); }
137
228
  static get watchers() { return {
138
229
  "variant": ["updateVariant"],
139
- "reverseAlign": ["updateReverseAlign"],
140
- "allowMultipleOpen": ["updateAllowMultipleOpen"]
230
+ "reverseAlign": ["updateReverseAlign"]
141
231
  }; }
142
232
  };
143
233
  Accordion.style = accordionCss;