@dso-toolkit/core 79.0.0-pre.4 → 79.0.1

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 (792) hide show
  1. package/dist/bundle/dso-accordion-section.js +8 -8
  2. package/dist/bundle/dso-accordion-section.js.map +1 -1
  3. package/dist/bundle/dso-accordion.js +1 -1
  4. package/dist/bundle/dso-accordion.js.map +1 -1
  5. package/dist/bundle/dso-action-list-item.js +2 -2
  6. package/dist/bundle/dso-action-list-item.js.map +1 -1
  7. package/dist/bundle/dso-action-list.js +1 -1
  8. package/dist/bundle/dso-action-list.js.map +1 -1
  9. package/dist/bundle/dso-advanced-select.js +5 -5
  10. package/dist/bundle/dso-advanced-select.js.map +1 -1
  11. package/dist/bundle/dso-alert.js +1 -1
  12. package/dist/bundle/dso-annotation-activiteit.js +6 -6
  13. package/dist/bundle/dso-annotation-activiteit.js.map +1 -1
  14. package/dist/bundle/dso-annotation-gebiedsaanwijzing.js +6 -6
  15. package/dist/bundle/dso-annotation-gebiedsaanwijzing.js.map +1 -1
  16. package/dist/bundle/dso-annotation-kaart.js +4 -4
  17. package/dist/bundle/dso-annotation-kaart.js.map +1 -1
  18. package/dist/bundle/dso-annotation-locatie.js +1 -1
  19. package/dist/bundle/dso-annotation-omgevingsnormwaarde.js +6 -6
  20. package/dist/bundle/dso-annotation-omgevingsnormwaarde.js.map +1 -1
  21. package/dist/bundle/dso-attachments-counter.js +1 -1
  22. package/dist/bundle/dso-autosuggest.js +3 -3
  23. package/dist/bundle/dso-badge.js +1 -1
  24. package/dist/bundle/dso-banner.js +1 -1
  25. package/dist/bundle/dso-banner.js.map +1 -1
  26. package/dist/bundle/dso-button-group.js +1 -1
  27. package/dist/bundle/dso-card.js +2 -2
  28. package/dist/bundle/dso-card.js.map +1 -1
  29. package/dist/bundle/dso-contact-information.js +1 -1
  30. package/dist/bundle/dso-contact-information.js.map +1 -1
  31. package/dist/bundle/dso-date-picker-legacy.js +2 -2
  32. package/dist/bundle/dso-date-picker-legacy.js.map +1 -1
  33. package/dist/bundle/dso-date-picker.js +1 -1
  34. package/dist/bundle/dso-date-picker.js.map +1 -1
  35. package/dist/bundle/dso-document-card.js +2 -2
  36. package/dist/bundle/dso-document-card.js.map +1 -1
  37. package/dist/bundle/dso-document-component.js +1 -1
  38. package/dist/bundle/dso-dropdown-menu.js +1 -1
  39. package/dist/bundle/dso-expandable.js +1 -1
  40. package/dist/bundle/dso-header.js +9 -9
  41. package/dist/bundle/dso-header.js.map +1 -1
  42. package/dist/bundle/dso-highlight-box.js +1 -1
  43. package/dist/bundle/dso-highlight-box.js.map +1 -1
  44. package/dist/bundle/dso-icon.js +1 -1
  45. package/dist/bundle/dso-image-overlay.js +1 -1
  46. package/dist/bundle/dso-info-button.js +1 -1
  47. package/dist/bundle/dso-info.js +1 -1
  48. package/dist/bundle/dso-input-range.js +1 -1
  49. package/dist/bundle/dso-input-range.js.map +1 -1
  50. package/dist/bundle/dso-label.js +1 -1
  51. package/dist/bundle/dso-legend-item.js +6 -6
  52. package/dist/bundle/dso-legend-item.js.map +1 -1
  53. package/dist/bundle/dso-list-button.js +5 -5
  54. package/dist/bundle/dso-list-button.js.map +1 -1
  55. package/dist/bundle/dso-map-base-layers.js +5 -5
  56. package/dist/bundle/dso-map-base-layers.js.map +1 -1
  57. package/dist/bundle/dso-map-controls.js +4 -4
  58. package/dist/bundle/dso-map-controls.js.map +1 -1
  59. package/dist/bundle/dso-map-overlays.js +5 -5
  60. package/dist/bundle/dso-map-overlays.js.map +1 -1
  61. package/dist/bundle/dso-mark-bar.js +2 -2
  62. package/dist/bundle/dso-mark-bar.js.map +1 -1
  63. package/dist/bundle/dso-modal.js +3 -3
  64. package/dist/bundle/dso-modal.js.map +1 -1
  65. package/dist/bundle/dso-onboarding-tip.js +2 -2
  66. package/dist/bundle/dso-onboarding-tip.js.map +1 -1
  67. package/dist/bundle/dso-ozon-content.js +1 -1
  68. package/dist/bundle/dso-pagination.js +2 -2
  69. package/dist/bundle/dso-pagination.js.map +1 -1
  70. package/dist/bundle/dso-panel.js +1 -1
  71. package/dist/bundle/dso-plekinfo-card.js +2 -2
  72. package/dist/bundle/dso-plekinfo-card.js.map +1 -1
  73. package/dist/bundle/dso-progress-bar.js +1 -1
  74. package/dist/bundle/dso-progress-bar.js.map +1 -1
  75. package/dist/bundle/dso-progress-indicator.js +1 -1
  76. package/dist/bundle/dso-project-item.js +4 -4
  77. package/dist/bundle/dso-project-item.js.map +1 -1
  78. package/dist/bundle/dso-renvooi.js +1 -1
  79. package/dist/bundle/dso-scrollable.js +1 -1
  80. package/dist/bundle/dso-selectable.js +1 -1
  81. package/dist/bundle/dso-skiplink.js +2 -2
  82. package/dist/bundle/dso-skiplink.js.map +1 -1
  83. package/dist/bundle/dso-slide-toggle.js +1 -1
  84. package/dist/bundle/dso-survey-rating.js +3 -3
  85. package/dist/bundle/dso-survey-rating.js.map +1 -1
  86. package/dist/bundle/dso-tab.js +1 -1
  87. package/dist/bundle/dso-tab.js.map +1 -1
  88. package/dist/bundle/dso-table.js +1 -1
  89. package/dist/bundle/dso-tabs.js +1 -1
  90. package/dist/bundle/dso-tabs.js.map +1 -1
  91. package/dist/bundle/dso-toggletip.js +1 -1
  92. package/dist/bundle/dso-tooltip.js +1 -1
  93. package/dist/bundle/dso-tree-view.js +3 -3
  94. package/dist/bundle/dso-tree-view.js.map +1 -1
  95. package/dist/bundle/dso-viewer-grid.js +1 -1
  96. package/dist/bundle/dso-viewer-grid.js.map +1 -1
  97. package/dist/bundle/dsot-document-component-demo.js +13 -13
  98. package/dist/bundle/p-B7tl4vEP.js +1190 -0
  99. package/dist/bundle/p-B7tl4vEP.js.map +1 -0
  100. package/dist/bundle/{p-7ffg336s.js → p-BTM2KYEF.js} +3 -3
  101. package/dist/bundle/{p-7ffg336s.js.map → p-BTM2KYEF.js.map} +1 -1
  102. package/dist/bundle/{p-B8dmuT31.js → p-BgQ0LxOv.js} +7 -3
  103. package/dist/bundle/p-BgQ0LxOv.js.map +1 -0
  104. package/dist/bundle/{p-S0YMB18e.js → p-BkcOHFAA.js} +6 -6
  105. package/dist/bundle/{p-S0YMB18e.js.map → p-BkcOHFAA.js.map} +1 -1
  106. package/dist/bundle/p-BwZvADPO.js +80 -0
  107. package/dist/bundle/{p-X4ksz0z1.js.map → p-BwZvADPO.js.map} +1 -1
  108. package/dist/bundle/{p-COMP9T58.js → p-C8fuhhYl.js} +7 -5
  109. package/dist/bundle/p-C8fuhhYl.js.map +1 -0
  110. package/dist/bundle/{p-Bgqhjszl.js → p-CPTuKxMx.js} +4 -4
  111. package/dist/bundle/{p-Bgqhjszl.js.map → p-CPTuKxMx.js.map} +1 -1
  112. package/dist/bundle/{p-CEFYoazH.js → p-CTAU8JKT.js} +3 -3
  113. package/dist/bundle/{p-CEFYoazH.js.map → p-CTAU8JKT.js.map} +1 -1
  114. package/dist/bundle/{p-BELL2NPR.js → p-CVyaeh1_.js} +5 -5
  115. package/dist/bundle/{p-BELL2NPR.js.map → p-CVyaeh1_.js.map} +1 -1
  116. package/dist/bundle/p-CovD19j0.js +252 -0
  117. package/dist/bundle/{p-B_9Gan2F.js.map → p-CovD19j0.js.map} +1 -1
  118. package/dist/bundle/p-D6l-JcXE.js +36 -0
  119. package/dist/bundle/{p-C_-6M4mA.js.map → p-D6l-JcXE.js.map} +1 -1
  120. package/dist/bundle/p-DPxeR0Ey.js +78 -0
  121. package/dist/bundle/p-DPxeR0Ey.js.map +1 -0
  122. package/dist/bundle/{p-B9zUWbzS.js → p-DV5Lbo3I.js} +3 -3
  123. package/dist/bundle/{p-B9zUWbzS.js.map → p-DV5Lbo3I.js.map} +1 -1
  124. package/dist/bundle/{p-BrQ3aUVb.js → p-DZfdc557.js} +3 -3
  125. package/dist/bundle/{p-BrQ3aUVb.js.map → p-DZfdc557.js.map} +1 -1
  126. package/dist/bundle/{p-BqKuHNTU.js → p-D_cMLm_E.js} +3 -3
  127. package/dist/bundle/{p-BqKuHNTU.js.map → p-D_cMLm_E.js.map} +1 -1
  128. package/dist/bundle/{p-uUOjJ6kU.js → p-DiF7pR4b.js} +4 -4
  129. package/dist/bundle/{p-uUOjJ6kU.js.map → p-DiF7pR4b.js.map} +1 -1
  130. package/dist/bundle/p-DlnqD3t9.js +115 -0
  131. package/dist/bundle/{p-DrrX-h-R.js.map → p-DlnqD3t9.js.map} +1 -1
  132. package/dist/bundle/{p-B3BAWGAx.js → p-MqBCENXQ.js} +3 -3
  133. package/dist/bundle/{p-B3BAWGAx.js.map → p-MqBCENXQ.js.map} +1 -1
  134. package/dist/bundle/{p-BOvMM9C8.js → p-XWtPZYtK.js} +4 -4
  135. package/dist/bundle/{p-BOvMM9C8.js.map → p-XWtPZYtK.js.map} +1 -1
  136. package/dist/bundle/p-ZJRJQtDU.js +43 -0
  137. package/dist/bundle/{p-DrWTFwlB.js.map → p-ZJRJQtDU.js.map} +1 -1
  138. package/dist/bundle/p-bHDMgCsa.js +122 -0
  139. package/dist/bundle/{p-B3Alb07i.js.map → p-bHDMgCsa.js.map} +1 -1
  140. package/dist/bundle/p-piO4yUd2.js +145 -0
  141. package/dist/bundle/{p-CeXiA7z5.js.map → p-piO4yUd2.js.map} +1 -1
  142. package/dist/bundle/{p-CynPODEC.js → p-zc-ygIe_.js} +4 -4
  143. package/dist/bundle/{p-CynPODEC.js.map → p-zc-ygIe_.js.map} +1 -1
  144. package/dist/cjs/dso-accordion-section.cjs.entry.js +1 -1
  145. package/dist/cjs/dso-accordion-section.cjs.entry.js.map +1 -1
  146. package/dist/cjs/dso-accordion-section.entry.cjs.js.map +1 -1
  147. package/dist/cjs/dso-accordion.cjs.entry.js +1 -1
  148. package/dist/cjs/dso-accordion.cjs.entry.js.map +1 -1
  149. package/dist/cjs/dso-accordion.entry.cjs.js.map +1 -1
  150. package/dist/cjs/dso-action-list-item.cjs.entry.js +1 -1
  151. package/dist/cjs/dso-action-list-item.cjs.entry.js.map +1 -1
  152. package/dist/cjs/dso-action-list-item.entry.cjs.js.map +1 -1
  153. package/dist/cjs/dso-action-list.cjs.entry.js +1 -1
  154. package/dist/cjs/dso-action-list.cjs.entry.js.map +1 -1
  155. package/dist/cjs/dso-action-list.entry.cjs.js.map +1 -1
  156. package/dist/cjs/dso-advanced-select.cjs.entry.js +1 -1
  157. package/dist/cjs/dso-advanced-select.cjs.entry.js.map +1 -1
  158. package/dist/cjs/dso-advanced-select.entry.cjs.js.map +1 -1
  159. package/dist/cjs/dso-alert.dso-badge.dso-image-overlay.dso-ozon-content.dso-panel.dso-table.entry.cjs.js.map +1 -1
  160. package/dist/cjs/dso-alert_6.cjs.entry.js +9 -7
  161. package/dist/cjs/dso-alert_6.cjs.entry.js.map +1 -1
  162. package/dist/cjs/dso-annotation-activiteit.cjs.entry.js +1 -1
  163. package/dist/cjs/dso-annotation-activiteit.cjs.entry.js.map +1 -1
  164. package/dist/cjs/dso-annotation-activiteit.entry.cjs.js.map +1 -1
  165. package/dist/cjs/dso-annotation-gebiedsaanwijzing.cjs.entry.js +1 -1
  166. package/dist/cjs/dso-annotation-gebiedsaanwijzing.cjs.entry.js.map +1 -1
  167. package/dist/cjs/dso-annotation-gebiedsaanwijzing.entry.cjs.js.map +1 -1
  168. package/dist/cjs/dso-annotation-kaart.cjs.entry.js +1 -1
  169. package/dist/cjs/dso-annotation-kaart.cjs.entry.js.map +1 -1
  170. package/dist/cjs/dso-annotation-kaart.entry.cjs.js.map +1 -1
  171. package/dist/cjs/dso-annotation-locatie.dso-document-component.entry.cjs.js.map +1 -1
  172. package/dist/cjs/dso-annotation-locatie_2.cjs.entry.js +2 -2
  173. package/dist/cjs/dso-annotation-locatie_2.cjs.entry.js.map +1 -1
  174. package/dist/cjs/dso-annotation-omgevingsnormwaarde.cjs.entry.js +1 -1
  175. package/dist/cjs/dso-annotation-omgevingsnormwaarde.cjs.entry.js.map +1 -1
  176. package/dist/cjs/dso-annotation-omgevingsnormwaarde.entry.cjs.js.map +1 -1
  177. package/dist/cjs/dso-attachments-counter.dso-expandable.entry.cjs.js.map +1 -1
  178. package/dist/cjs/dso-attachments-counter_2.cjs.entry.js +6 -4
  179. package/dist/cjs/dso-attachments-counter_2.cjs.entry.js.map +1 -1
  180. package/dist/cjs/dso-banner.cjs.entry.js +1 -1
  181. package/dist/cjs/dso-banner.cjs.entry.js.map +1 -1
  182. package/dist/cjs/dso-banner.entry.cjs.js.map +1 -1
  183. package/dist/cjs/dso-button-group.cjs.entry.js +1 -1
  184. package/dist/cjs/dso-button-group.cjs.entry.js.map +1 -1
  185. package/dist/cjs/dso-button-group.entry.cjs.js.map +1 -1
  186. package/dist/cjs/dso-card.cjs.entry.js +1 -1
  187. package/dist/cjs/dso-card.cjs.entry.js.map +1 -1
  188. package/dist/cjs/dso-card.entry.cjs.js.map +1 -1
  189. package/dist/cjs/dso-contact-information.cjs.entry.js +1 -1
  190. package/dist/cjs/dso-contact-information.cjs.entry.js.map +1 -1
  191. package/dist/cjs/dso-contact-information.entry.cjs.js.map +1 -1
  192. package/dist/cjs/dso-date-picker-legacy.cjs.entry.js +1 -1
  193. package/dist/cjs/dso-date-picker-legacy.cjs.entry.js.map +1 -1
  194. package/dist/cjs/dso-date-picker-legacy.entry.cjs.js.map +1 -1
  195. package/dist/cjs/dso-date-picker.cjs.entry.js +1 -1
  196. package/dist/cjs/dso-date-picker.cjs.entry.js.map +1 -1
  197. package/dist/cjs/dso-date-picker.entry.cjs.js.map +1 -1
  198. package/dist/cjs/dso-document-card.cjs.entry.js +1 -1
  199. package/dist/cjs/dso-document-card.cjs.entry.js.map +1 -1
  200. package/dist/cjs/dso-document-card.entry.cjs.js.map +1 -1
  201. package/dist/cjs/dso-dropdown-menu.cjs.entry.js +5 -1
  202. package/dist/cjs/dso-dropdown-menu.cjs.entry.js.map +1 -1
  203. package/dist/cjs/dso-dropdown-menu.entry.cjs.js.map +1 -1
  204. package/dist/cjs/dso-header.cjs.entry.js +7 -7
  205. package/dist/cjs/dso-header.cjs.entry.js.map +1 -1
  206. package/dist/cjs/dso-header.entry.cjs.js.map +1 -1
  207. package/dist/cjs/dso-highlight-box.cjs.entry.js +1 -1
  208. package/dist/cjs/dso-highlight-box.cjs.entry.js.map +1 -1
  209. package/dist/cjs/dso-highlight-box.entry.cjs.js.map +1 -1
  210. package/dist/cjs/dso-icon.cjs.entry.js +1 -1
  211. package/dist/cjs/dso-icon.cjs.entry.js.map +1 -1
  212. package/dist/cjs/dso-icon.entry.cjs.js.map +1 -1
  213. package/dist/cjs/dso-info-button.cjs.entry.js +1 -1
  214. package/dist/cjs/dso-info-button.cjs.entry.js.map +1 -1
  215. package/dist/cjs/dso-info-button.entry.cjs.js.map +1 -1
  216. package/dist/cjs/dso-info.dso-selectable.entry.cjs.js.map +1 -1
  217. package/dist/cjs/dso-info_2.cjs.entry.js +2 -2
  218. package/dist/cjs/dso-info_2.cjs.entry.js.map +1 -1
  219. package/dist/cjs/dso-input-range.cjs.entry.js +1 -1
  220. package/dist/cjs/dso-input-range.cjs.entry.js.map +1 -1
  221. package/dist/cjs/dso-input-range.entry.cjs.js.map +1 -1
  222. package/dist/cjs/dso-label.dso-renvooi.dso-slide-toggle.entry.cjs.js.map +1 -1
  223. package/dist/cjs/dso-label_3.cjs.entry.js +3 -3
  224. package/dist/cjs/dso-label_3.cjs.entry.js.map +1 -1
  225. package/dist/cjs/dso-legend-item.cjs.entry.js +1 -1
  226. package/dist/cjs/dso-legend-item.cjs.entry.js.map +1 -1
  227. package/dist/cjs/dso-legend-item.entry.cjs.js.map +1 -1
  228. package/dist/cjs/dso-list-button.cjs.entry.js +1 -1
  229. package/dist/cjs/dso-list-button.cjs.entry.js.map +1 -1
  230. package/dist/cjs/dso-list-button.entry.cjs.js.map +1 -1
  231. package/dist/cjs/dso-map-base-layers.cjs.entry.js +1 -1
  232. package/dist/cjs/dso-map-base-layers.cjs.entry.js.map +1 -1
  233. package/dist/cjs/dso-map-base-layers.entry.cjs.js.map +1 -1
  234. package/dist/cjs/dso-map-controls.cjs.entry.js +1 -1
  235. package/dist/cjs/dso-map-controls.cjs.entry.js.map +1 -1
  236. package/dist/cjs/dso-map-controls.entry.cjs.js.map +1 -1
  237. package/dist/cjs/dso-map-overlays.cjs.entry.js +1 -1
  238. package/dist/cjs/dso-map-overlays.cjs.entry.js.map +1 -1
  239. package/dist/cjs/dso-map-overlays.entry.cjs.js.map +1 -1
  240. package/dist/cjs/dso-mark-bar.cjs.entry.js +1 -1
  241. package/dist/cjs/dso-mark-bar.cjs.entry.js.map +1 -1
  242. package/dist/cjs/dso-mark-bar.entry.cjs.js.map +1 -1
  243. package/dist/cjs/dso-modal.cjs.entry.js +1 -1
  244. package/dist/cjs/dso-modal.cjs.entry.js.map +1 -1
  245. package/dist/cjs/dso-modal.entry.cjs.js.map +1 -1
  246. package/dist/cjs/dso-onboarding-tip.cjs.entry.js +1 -1
  247. package/dist/cjs/dso-onboarding-tip.cjs.entry.js.map +1 -1
  248. package/dist/cjs/dso-onboarding-tip.entry.cjs.js.map +1 -1
  249. package/dist/cjs/dso-pagination.cjs.entry.js +1 -1
  250. package/dist/cjs/dso-pagination.cjs.entry.js.map +1 -1
  251. package/dist/cjs/dso-pagination.entry.cjs.js.map +1 -1
  252. package/dist/cjs/dso-plekinfo-card.cjs.entry.js +1 -1
  253. package/dist/cjs/dso-plekinfo-card.cjs.entry.js.map +1 -1
  254. package/dist/cjs/dso-plekinfo-card.entry.cjs.js.map +1 -1
  255. package/dist/cjs/dso-progress-bar.cjs.entry.js +1 -1
  256. package/dist/cjs/dso-progress-bar.cjs.entry.js.map +1 -1
  257. package/dist/cjs/dso-progress-bar.entry.cjs.js.map +1 -1
  258. package/dist/cjs/dso-progress-indicator.cjs.entry.js +1 -1
  259. package/dist/cjs/dso-progress-indicator.cjs.entry.js.map +1 -1
  260. package/dist/cjs/dso-progress-indicator.entry.cjs.js.map +1 -1
  261. package/dist/cjs/dso-project-item.cjs.entry.js +1 -1
  262. package/dist/cjs/dso-project-item.cjs.entry.js.map +1 -1
  263. package/dist/cjs/dso-project-item.entry.cjs.js.map +1 -1
  264. package/dist/cjs/dso-scrollable.cjs.entry.js +1 -1
  265. package/dist/cjs/dso-scrollable.cjs.entry.js.map +1 -1
  266. package/dist/cjs/dso-scrollable.entry.cjs.js.map +1 -1
  267. package/dist/cjs/dso-skiplink.cjs.entry.js +1 -1
  268. package/dist/cjs/dso-skiplink.cjs.entry.js.map +1 -1
  269. package/dist/cjs/dso-skiplink.entry.cjs.js.map +1 -1
  270. package/dist/cjs/dso-survey-rating.cjs.entry.js +1 -1
  271. package/dist/cjs/dso-survey-rating.cjs.entry.js.map +1 -1
  272. package/dist/cjs/dso-survey-rating.entry.cjs.js.map +1 -1
  273. package/dist/cjs/dso-tab.cjs.entry.js +1 -1
  274. package/dist/cjs/dso-tab.cjs.entry.js.map +1 -1
  275. package/dist/cjs/dso-tab.entry.cjs.js.map +1 -1
  276. package/dist/cjs/dso-tabs.cjs.entry.js +1 -1
  277. package/dist/cjs/dso-tabs.cjs.entry.js.map +1 -1
  278. package/dist/cjs/dso-tabs.entry.cjs.js.map +1 -1
  279. package/dist/cjs/dso-toggletip.cjs.entry.js +1 -1
  280. package/dist/cjs/dso-toggletip.cjs.entry.js.map +1 -1
  281. package/dist/cjs/dso-toggletip.entry.cjs.js.map +1 -1
  282. package/dist/cjs/dso-tooltip.cjs.entry.js +1 -1
  283. package/dist/cjs/dso-tooltip.cjs.entry.js.map +1 -1
  284. package/dist/cjs/dso-tooltip.entry.cjs.js.map +1 -1
  285. package/dist/cjs/dso-tree-view.cjs.entry.js +1 -1
  286. package/dist/cjs/dso-tree-view.cjs.entry.js.map +1 -1
  287. package/dist/cjs/dso-tree-view.entry.cjs.js.map +1 -1
  288. package/dist/cjs/dso-viewer-grid.cjs.entry.js +1 -1
  289. package/dist/cjs/dso-viewer-grid.cjs.entry.js.map +1 -1
  290. package/dist/cjs/dso-viewer-grid.entry.cjs.js.map +1 -1
  291. package/dist/collection/components/accordion/accordion.css +0 -15
  292. package/dist/collection/components/accordion/components/accordion-section.css +0 -15
  293. package/dist/collection/components/accordion/components/accordion-section.js +1 -1
  294. package/dist/collection/components/action-list/action-list.css +0 -15
  295. package/dist/collection/components/action-list/components/action-list-item.css +0 -15
  296. package/dist/collection/components/advanced-select/advanced-select.css +0 -15
  297. package/dist/collection/components/alert/alert.css +117 -15
  298. package/dist/collection/components/annotation/annotation.css +1 -16
  299. package/dist/collection/components/attachments-counter/attachments-counter.css +0 -15
  300. package/dist/collection/components/badge/badge.css +0 -15
  301. package/dist/collection/components/banner/banner.css +0 -15
  302. package/dist/collection/components/button-group/button-group.css +0 -15
  303. package/dist/collection/components/card/card.css +0 -15
  304. package/dist/collection/components/contact-information/contact-information.css +0 -15
  305. package/dist/collection/components/date-picker/date-picker.css +0 -15
  306. package/dist/collection/components/date-picker-legacy/date-picker-legacy.css +0 -15
  307. package/dist/collection/components/document-card/document-card.css +0 -15
  308. package/dist/collection/components/document-component/document-component.css +1 -16
  309. package/dist/collection/components/dropdown-menu/dropdown-menu.js +5 -1
  310. package/dist/collection/components/dropdown-menu/dropdown-menu.js.map +1 -1
  311. package/dist/collection/components/expandable/expandable.css +0 -15
  312. package/dist/collection/components/expandable/expandable.js +4 -2
  313. package/dist/collection/components/expandable/expandable.js.map +1 -1
  314. package/dist/collection/components/header/header.css +0 -15
  315. package/dist/collection/components/header/header.js +6 -6
  316. package/dist/collection/components/header/header.js.map +1 -1
  317. package/dist/collection/components/header/menu-item.functional-component.js.map +1 -1
  318. package/dist/collection/components/highlight-box/highlight-box.css +0 -15
  319. package/dist/collection/components/icon/icon.css +0 -15
  320. package/dist/collection/components/image-overlay/image-overlay.css +2 -17
  321. package/dist/collection/components/info/info.css +0 -15
  322. package/dist/collection/components/info-button/info-button.css +0 -15
  323. package/dist/collection/components/input-range/input-range.css +0 -15
  324. package/dist/collection/components/label/label.css +52 -16
  325. package/dist/collection/components/label/label.interfaces.js.map +1 -1
  326. package/dist/collection/components/label/label.js +1 -1
  327. package/dist/collection/components/legend-item/legend-item.css +0 -15
  328. package/dist/collection/components/list-button/list-button.css +0 -15
  329. package/dist/collection/components/map-base-layers/map-base-layers.css +0 -15
  330. package/dist/collection/components/map-controls/map-controls.css +0 -15
  331. package/dist/collection/components/map-overlays/map-overlays.css +0 -15
  332. package/dist/collection/components/mark-bar/mark-bar.css +0 -15
  333. package/dist/collection/components/modal/modal.css +0 -15
  334. package/dist/collection/components/onboarding-tip/onboarding-tip.css +0 -15
  335. package/dist/collection/components/ozon-content/nodes/figuur.node.js +3 -1
  336. package/dist/collection/components/ozon-content/nodes/figuur.node.js.map +1 -1
  337. package/dist/collection/components/ozon-content/ozon-content.css +4 -19
  338. package/dist/collection/components/pagination/pagination.css +0 -15
  339. package/dist/collection/components/panel/panel.css +0 -15
  340. package/dist/collection/components/plekinfo-card/plekinfo-card.css +1 -16
  341. package/dist/collection/components/progress-bar/progress-bar.css +0 -15
  342. package/dist/collection/components/progress-indicator/progress-indicator.css +0 -15
  343. package/dist/collection/components/project-item/project-item.css +0 -15
  344. package/dist/collection/components/renvooi/renvooi.css +1 -16
  345. package/dist/collection/components/scrollable/scrollable.css +0 -15
  346. package/dist/collection/components/selectable/selectable.css +0 -15
  347. package/dist/collection/components/skiplink/skiplink.css +0 -15
  348. package/dist/collection/components/slide-toggle/slide-toggle.css +0 -15
  349. package/dist/collection/components/survey-rating/survey-rating.css +0 -15
  350. package/dist/collection/components/table/table.css +0 -15
  351. package/dist/collection/components/tabs/components/tab.css +0 -15
  352. package/dist/collection/components/tabs/tabs.css +0 -15
  353. package/dist/collection/components/toggletip/toggletip.css +0 -15
  354. package/dist/collection/components/tooltip/tooltip.css +0 -15
  355. package/dist/collection/components/tree-view/tree-view.css +0 -15
  356. package/dist/collection/components/viewer-grid/viewer-grid.css +0 -15
  357. package/dist/components/alert.js +1 -1
  358. package/dist/components/alert.js.map +1 -1
  359. package/dist/components/annotation-locatie.js +1 -1
  360. package/dist/components/annotation-locatie.js.map +1 -1
  361. package/dist/components/attachments-counter.js +1 -1
  362. package/dist/components/attachments-counter.js.map +1 -1
  363. package/dist/components/badge.js +1 -1
  364. package/dist/components/badge.js.map +1 -1
  365. package/dist/components/button-group.js +1 -1
  366. package/dist/components/button-group.js.map +1 -1
  367. package/dist/components/document-component.js +1 -1
  368. package/dist/components/document-component.js.map +1 -1
  369. package/dist/components/dropdown-menu.js +5 -1
  370. package/dist/components/dropdown-menu.js.map +1 -1
  371. package/dist/components/dso-accordion-section.js +1 -1
  372. package/dist/components/dso-accordion-section.js.map +1 -1
  373. package/dist/components/dso-accordion.js +1 -1
  374. package/dist/components/dso-accordion.js.map +1 -1
  375. package/dist/components/dso-action-list-item.js +1 -1
  376. package/dist/components/dso-action-list-item.js.map +1 -1
  377. package/dist/components/dso-action-list.js +1 -1
  378. package/dist/components/dso-action-list.js.map +1 -1
  379. package/dist/components/dso-advanced-select.js +1 -1
  380. package/dist/components/dso-advanced-select.js.map +1 -1
  381. package/dist/components/dso-annotation-activiteit.js +1 -1
  382. package/dist/components/dso-annotation-activiteit.js.map +1 -1
  383. package/dist/components/dso-annotation-gebiedsaanwijzing.js +1 -1
  384. package/dist/components/dso-annotation-gebiedsaanwijzing.js.map +1 -1
  385. package/dist/components/dso-annotation-kaart.js +1 -1
  386. package/dist/components/dso-annotation-kaart.js.map +1 -1
  387. package/dist/components/dso-annotation-omgevingsnormwaarde.js +1 -1
  388. package/dist/components/dso-annotation-omgevingsnormwaarde.js.map +1 -1
  389. package/dist/components/dso-banner.js +1 -1
  390. package/dist/components/dso-banner.js.map +1 -1
  391. package/dist/components/dso-card.js +1 -1
  392. package/dist/components/dso-card.js.map +1 -1
  393. package/dist/components/dso-contact-information.js +1 -1
  394. package/dist/components/dso-contact-information.js.map +1 -1
  395. package/dist/components/dso-date-picker-legacy.js +1 -1
  396. package/dist/components/dso-date-picker-legacy.js.map +1 -1
  397. package/dist/components/dso-date-picker.js +1 -1
  398. package/dist/components/dso-date-picker.js.map +1 -1
  399. package/dist/components/dso-document-card.js +1 -1
  400. package/dist/components/dso-document-card.js.map +1 -1
  401. package/dist/components/dso-header.js +7 -7
  402. package/dist/components/dso-header.js.map +1 -1
  403. package/dist/components/dso-highlight-box.js +1 -1
  404. package/dist/components/dso-highlight-box.js.map +1 -1
  405. package/dist/components/dso-input-range.js +1 -1
  406. package/dist/components/dso-input-range.js.map +1 -1
  407. package/dist/components/dso-legend-item.js +1 -1
  408. package/dist/components/dso-legend-item.js.map +1 -1
  409. package/dist/components/dso-list-button.js +1 -1
  410. package/dist/components/dso-list-button.js.map +1 -1
  411. package/dist/components/dso-map-base-layers.js +1 -1
  412. package/dist/components/dso-map-base-layers.js.map +1 -1
  413. package/dist/components/dso-map-controls.js +1 -1
  414. package/dist/components/dso-map-controls.js.map +1 -1
  415. package/dist/components/dso-map-overlays.js +1 -1
  416. package/dist/components/dso-map-overlays.js.map +1 -1
  417. package/dist/components/dso-mark-bar.js +1 -1
  418. package/dist/components/dso-mark-bar.js.map +1 -1
  419. package/dist/components/dso-modal.js +1 -1
  420. package/dist/components/dso-modal.js.map +1 -1
  421. package/dist/components/dso-onboarding-tip.js +1 -1
  422. package/dist/components/dso-onboarding-tip.js.map +1 -1
  423. package/dist/components/dso-pagination.js +1 -1
  424. package/dist/components/dso-pagination.js.map +1 -1
  425. package/dist/components/dso-plekinfo-card.js +1 -1
  426. package/dist/components/dso-plekinfo-card.js.map +1 -1
  427. package/dist/components/dso-progress-bar.js +1 -1
  428. package/dist/components/dso-progress-bar.js.map +1 -1
  429. package/dist/components/dso-project-item.js +1 -1
  430. package/dist/components/dso-project-item.js.map +1 -1
  431. package/dist/components/dso-skiplink.js +1 -1
  432. package/dist/components/dso-skiplink.js.map +1 -1
  433. package/dist/components/dso-survey-rating.js +1 -1
  434. package/dist/components/dso-survey-rating.js.map +1 -1
  435. package/dist/components/dso-tab.js +1 -1
  436. package/dist/components/dso-tab.js.map +1 -1
  437. package/dist/components/dso-tabs.js +1 -1
  438. package/dist/components/dso-tabs.js.map +1 -1
  439. package/dist/components/dso-tree-view.js +1 -1
  440. package/dist/components/dso-tree-view.js.map +1 -1
  441. package/dist/components/dso-viewer-grid.js +1 -1
  442. package/dist/components/dso-viewer-grid.js.map +1 -1
  443. package/dist/components/expandable.js +5 -3
  444. package/dist/components/expandable.js.map +1 -1
  445. package/dist/components/icon.js +1 -1
  446. package/dist/components/icon.js.map +1 -1
  447. package/dist/components/image-overlay.js +1 -1
  448. package/dist/components/image-overlay.js.map +1 -1
  449. package/dist/components/info-button.js +1 -1
  450. package/dist/components/info-button.js.map +1 -1
  451. package/dist/components/info.js +1 -1
  452. package/dist/components/info.js.map +1 -1
  453. package/dist/components/label.js +1 -1
  454. package/dist/components/label.js.map +1 -1
  455. package/dist/components/ozon-content.js +4 -2
  456. package/dist/components/ozon-content.js.map +1 -1
  457. package/dist/components/panel.js +1 -1
  458. package/dist/components/panel.js.map +1 -1
  459. package/dist/components/progress-indicator.js +1 -1
  460. package/dist/components/progress-indicator.js.map +1 -1
  461. package/dist/components/renvooi.js +1 -1
  462. package/dist/components/renvooi.js.map +1 -1
  463. package/dist/components/scrollable.js +1 -1
  464. package/dist/components/scrollable.js.map +1 -1
  465. package/dist/components/selectable.js +1 -1
  466. package/dist/components/selectable.js.map +1 -1
  467. package/dist/components/slide-toggle.js +1 -1
  468. package/dist/components/slide-toggle.js.map +1 -1
  469. package/dist/components/table.js +1 -1
  470. package/dist/components/table.js.map +1 -1
  471. package/dist/components/toggletip.js +1 -1
  472. package/dist/components/toggletip.js.map +1 -1
  473. package/dist/components/tooltip.js +1 -1
  474. package/dist/components/tooltip.js.map +1 -1
  475. package/dist/dso-toolkit/dso-accordion-section.entry.esm.js.map +1 -1
  476. package/dist/dso-toolkit/dso-accordion.entry.esm.js.map +1 -1
  477. package/dist/dso-toolkit/dso-action-list-item.entry.esm.js.map +1 -1
  478. package/dist/dso-toolkit/dso-action-list.entry.esm.js.map +1 -1
  479. package/dist/dso-toolkit/dso-advanced-select.entry.esm.js.map +1 -1
  480. package/dist/dso-toolkit/dso-alert.dso-badge.dso-image-overlay.dso-ozon-content.dso-panel.dso-table.entry.esm.js.map +1 -1
  481. package/dist/dso-toolkit/dso-annotation-activiteit.entry.esm.js.map +1 -1
  482. package/dist/dso-toolkit/dso-annotation-gebiedsaanwijzing.entry.esm.js.map +1 -1
  483. package/dist/dso-toolkit/dso-annotation-kaart.entry.esm.js.map +1 -1
  484. package/dist/dso-toolkit/dso-annotation-locatie.dso-document-component.entry.esm.js.map +1 -1
  485. package/dist/dso-toolkit/dso-annotation-omgevingsnormwaarde.entry.esm.js.map +1 -1
  486. package/dist/dso-toolkit/dso-attachments-counter.dso-expandable.entry.esm.js.map +1 -1
  487. package/dist/dso-toolkit/dso-banner.entry.esm.js.map +1 -1
  488. package/dist/dso-toolkit/dso-button-group.entry.esm.js.map +1 -1
  489. package/dist/dso-toolkit/dso-card.entry.esm.js.map +1 -1
  490. package/dist/dso-toolkit/dso-contact-information.entry.esm.js.map +1 -1
  491. package/dist/dso-toolkit/dso-date-picker-legacy.entry.esm.js.map +1 -1
  492. package/dist/dso-toolkit/dso-date-picker.entry.esm.js.map +1 -1
  493. package/dist/dso-toolkit/dso-document-card.entry.esm.js.map +1 -1
  494. package/dist/dso-toolkit/dso-dropdown-menu.entry.esm.js.map +1 -1
  495. package/dist/dso-toolkit/dso-header.entry.esm.js.map +1 -1
  496. package/dist/dso-toolkit/dso-highlight-box.entry.esm.js.map +1 -1
  497. package/dist/dso-toolkit/dso-icon.entry.esm.js.map +1 -1
  498. package/dist/dso-toolkit/dso-info-button.entry.esm.js.map +1 -1
  499. package/dist/dso-toolkit/dso-info.dso-selectable.entry.esm.js.map +1 -1
  500. package/dist/dso-toolkit/dso-input-range.entry.esm.js.map +1 -1
  501. package/dist/dso-toolkit/dso-label.dso-renvooi.dso-slide-toggle.entry.esm.js.map +1 -1
  502. package/dist/dso-toolkit/dso-legend-item.entry.esm.js.map +1 -1
  503. package/dist/dso-toolkit/dso-list-button.entry.esm.js.map +1 -1
  504. package/dist/dso-toolkit/dso-map-base-layers.entry.esm.js.map +1 -1
  505. package/dist/dso-toolkit/dso-map-controls.entry.esm.js.map +1 -1
  506. package/dist/dso-toolkit/dso-map-overlays.entry.esm.js.map +1 -1
  507. package/dist/dso-toolkit/dso-mark-bar.entry.esm.js.map +1 -1
  508. package/dist/dso-toolkit/dso-modal.entry.esm.js.map +1 -1
  509. package/dist/dso-toolkit/dso-onboarding-tip.entry.esm.js.map +1 -1
  510. package/dist/dso-toolkit/dso-pagination.entry.esm.js.map +1 -1
  511. package/dist/dso-toolkit/dso-plekinfo-card.entry.esm.js.map +1 -1
  512. package/dist/dso-toolkit/dso-progress-bar.entry.esm.js.map +1 -1
  513. package/dist/dso-toolkit/dso-progress-indicator.entry.esm.js.map +1 -1
  514. package/dist/dso-toolkit/dso-project-item.entry.esm.js.map +1 -1
  515. package/dist/dso-toolkit/dso-scrollable.entry.esm.js.map +1 -1
  516. package/dist/dso-toolkit/dso-skiplink.entry.esm.js.map +1 -1
  517. package/dist/dso-toolkit/dso-survey-rating.entry.esm.js.map +1 -1
  518. package/dist/dso-toolkit/dso-tab.entry.esm.js.map +1 -1
  519. package/dist/dso-toolkit/dso-tabs.entry.esm.js.map +1 -1
  520. package/dist/dso-toolkit/dso-toggletip.entry.esm.js.map +1 -1
  521. package/dist/dso-toolkit/dso-toolkit.esm.js +1 -1
  522. package/dist/dso-toolkit/dso-tooltip.entry.esm.js.map +1 -1
  523. package/dist/dso-toolkit/dso-tree-view.entry.esm.js.map +1 -1
  524. package/dist/dso-toolkit/dso-viewer-grid.entry.esm.js.map +1 -1
  525. package/dist/dso-toolkit/p-068320ab.entry.js +2 -0
  526. package/dist/dso-toolkit/{p-6902ffb5.entry.js.map → p-068320ab.entry.js.map} +1 -1
  527. package/dist/dso-toolkit/p-070eb5c1.entry.js +2 -0
  528. package/dist/dso-toolkit/{p-b4ba87ac.entry.js.map → p-070eb5c1.entry.js.map} +1 -1
  529. package/dist/dso-toolkit/p-0982f8a3.entry.js +2 -0
  530. package/dist/dso-toolkit/{p-a21f00fc.entry.js.map → p-0982f8a3.entry.js.map} +1 -1
  531. package/dist/dso-toolkit/p-0a4afa12.entry.js +2 -0
  532. package/dist/dso-toolkit/{p-ce057c5c.entry.js.map → p-0a4afa12.entry.js.map} +1 -1
  533. package/dist/dso-toolkit/p-0f9f5005.entry.js +2 -0
  534. package/dist/dso-toolkit/{p-2165f443.entry.js.map → p-0f9f5005.entry.js.map} +1 -1
  535. package/dist/dso-toolkit/p-16a365f4.entry.js +2 -0
  536. package/dist/dso-toolkit/{p-246b1186.entry.js.map → p-16a365f4.entry.js.map} +1 -1
  537. package/dist/dso-toolkit/p-2bd67420.entry.js +2 -0
  538. package/dist/dso-toolkit/{p-ab39576c.entry.js.map → p-2bd67420.entry.js.map} +1 -1
  539. package/dist/dso-toolkit/p-340eb5f3.entry.js +2 -0
  540. package/dist/dso-toolkit/{p-9566b0a7.entry.js.map → p-340eb5f3.entry.js.map} +1 -1
  541. package/dist/dso-toolkit/p-3885ca9b.entry.js +2 -0
  542. package/dist/dso-toolkit/p-3885ca9b.entry.js.map +1 -0
  543. package/dist/dso-toolkit/p-3e8dbe03.entry.js +2 -0
  544. package/dist/dso-toolkit/{p-b4931ff4.entry.js.map → p-3e8dbe03.entry.js.map} +1 -1
  545. package/dist/dso-toolkit/p-4735ca42.entry.js +2 -0
  546. package/dist/dso-toolkit/p-4735ca42.entry.js.map +1 -0
  547. package/dist/dso-toolkit/{p-445aba67.entry.js → p-4c57777f.entry.js} +2 -2
  548. package/dist/dso-toolkit/{p-445aba67.entry.js.map → p-4c57777f.entry.js.map} +1 -1
  549. package/dist/dso-toolkit/p-4d1a7934.entry.js +2 -0
  550. package/dist/dso-toolkit/{p-f9bc4e87.entry.js.map → p-4d1a7934.entry.js.map} +1 -1
  551. package/dist/dso-toolkit/p-4e578d5c.entry.js +2 -0
  552. package/dist/dso-toolkit/{p-12e8bed3.entry.js.map → p-4e578d5c.entry.js.map} +1 -1
  553. package/dist/dso-toolkit/p-5852fa1a.entry.js +2 -0
  554. package/dist/dso-toolkit/{p-9591777b.entry.js.map → p-5852fa1a.entry.js.map} +1 -1
  555. package/dist/dso-toolkit/p-5960a967.entry.js +2 -0
  556. package/dist/dso-toolkit/{p-a735dc9b.entry.js.map → p-5960a967.entry.js.map} +1 -1
  557. package/dist/dso-toolkit/p-6362810d.entry.js +2 -0
  558. package/dist/dso-toolkit/{p-c45258d3.entry.js.map → p-6362810d.entry.js.map} +1 -1
  559. package/dist/dso-toolkit/p-693cd313.entry.js +2 -0
  560. package/dist/dso-toolkit/{p-d8a051b5.entry.js.map → p-693cd313.entry.js.map} +1 -1
  561. package/dist/dso-toolkit/p-710a47f1.entry.js +2 -0
  562. package/dist/dso-toolkit/{p-275e5ec7.entry.js.map → p-710a47f1.entry.js.map} +1 -1
  563. package/dist/dso-toolkit/p-71eae744.entry.js +2 -0
  564. package/dist/dso-toolkit/{p-add3ca45.entry.js.map → p-71eae744.entry.js.map} +1 -1
  565. package/dist/dso-toolkit/p-81e4a548.entry.js +2 -0
  566. package/dist/dso-toolkit/{p-9b2ca189.entry.js.map → p-81e4a548.entry.js.map} +1 -1
  567. package/dist/dso-toolkit/p-8936cf2f.entry.js +2 -0
  568. package/dist/dso-toolkit/{p-1cc4cc04.entry.js.map → p-8936cf2f.entry.js.map} +1 -1
  569. package/dist/dso-toolkit/{p-08efe022.entry.js → p-97e7153c.entry.js} +2 -2
  570. package/dist/dso-toolkit/{p-08efe022.entry.js.map → p-97e7153c.entry.js.map} +1 -1
  571. package/dist/dso-toolkit/p-9a7ab5aa.entry.js +2 -0
  572. package/dist/dso-toolkit/{p-e299ac60.entry.js.map → p-9a7ab5aa.entry.js.map} +1 -1
  573. package/dist/dso-toolkit/p-a835d419.entry.js +2 -0
  574. package/dist/dso-toolkit/{p-898de91a.entry.js.map → p-a835d419.entry.js.map} +1 -1
  575. package/dist/dso-toolkit/p-ac5a1a15.entry.js +2 -0
  576. package/dist/dso-toolkit/{p-81711068.entry.js.map → p-ac5a1a15.entry.js.map} +1 -1
  577. package/dist/dso-toolkit/p-b154c6d6.entry.js +2 -0
  578. package/dist/dso-toolkit/{p-f4a1a07b.entry.js.map → p-b154c6d6.entry.js.map} +1 -1
  579. package/dist/dso-toolkit/{p-915c332a.entry.js → p-b680b169.entry.js} +2 -2
  580. package/dist/dso-toolkit/{p-915c332a.entry.js.map → p-b680b169.entry.js.map} +1 -1
  581. package/dist/dso-toolkit/p-b6d75e39.entry.js +2 -0
  582. package/dist/dso-toolkit/{p-071846be.entry.js.map → p-b6d75e39.entry.js.map} +1 -1
  583. package/dist/dso-toolkit/p-b96ae76d.entry.js +2 -0
  584. package/dist/dso-toolkit/p-b96ae76d.entry.js.map +1 -0
  585. package/dist/dso-toolkit/p-c6413a5c.entry.js +2 -0
  586. package/dist/dso-toolkit/{p-01e90e48.entry.js.map → p-c6413a5c.entry.js.map} +1 -1
  587. package/dist/dso-toolkit/p-c7920b34.entry.js +2 -0
  588. package/dist/dso-toolkit/{p-03fe514a.entry.js.map → p-c7920b34.entry.js.map} +1 -1
  589. package/dist/dso-toolkit/p-c8ca21c3.entry.js +2 -0
  590. package/dist/dso-toolkit/{p-dd5f641f.entry.js.map → p-c8ca21c3.entry.js.map} +1 -1
  591. package/dist/dso-toolkit/p-ca0b79a6.entry.js +2 -0
  592. package/dist/dso-toolkit/{p-e17fa84d.entry.js.map → p-ca0b79a6.entry.js.map} +1 -1
  593. package/dist/dso-toolkit/p-cb354556.entry.js +2 -0
  594. package/dist/dso-toolkit/{p-2cec1fea.entry.js.map → p-cb354556.entry.js.map} +1 -1
  595. package/dist/dso-toolkit/p-cc1abdf3.entry.js +2 -0
  596. package/dist/dso-toolkit/{p-1aaf0bc4.entry.js.map → p-cc1abdf3.entry.js.map} +1 -1
  597. package/dist/dso-toolkit/p-cd149043.entry.js +2 -0
  598. package/dist/dso-toolkit/{p-f2a61198.entry.js.map → p-cd149043.entry.js.map} +1 -1
  599. package/dist/dso-toolkit/p-d2a54c44.entry.js +2 -0
  600. package/dist/dso-toolkit/{p-257a4650.entry.js.map → p-d2a54c44.entry.js.map} +1 -1
  601. package/dist/dso-toolkit/p-d45bf6f4.entry.js +2 -0
  602. package/dist/dso-toolkit/{p-7cab94ae.entry.js.map → p-d45bf6f4.entry.js.map} +1 -1
  603. package/dist/dso-toolkit/p-d8df33bb.entry.js +2 -0
  604. package/dist/dso-toolkit/{p-67b6a838.entry.js.map → p-d8df33bb.entry.js.map} +1 -1
  605. package/dist/dso-toolkit/p-d90537b3.entry.js +2 -0
  606. package/dist/dso-toolkit/{p-cc0db296.entry.js.map → p-d90537b3.entry.js.map} +1 -1
  607. package/dist/dso-toolkit/p-e1801352.entry.js +2 -0
  608. package/dist/dso-toolkit/{p-aa2f5070.entry.js.map → p-e1801352.entry.js.map} +1 -1
  609. package/dist/dso-toolkit/p-e798a831.entry.js +2 -0
  610. package/dist/dso-toolkit/{p-391bf858.entry.js.map → p-e798a831.entry.js.map} +1 -1
  611. package/dist/dso-toolkit/{p-25d0d432.entry.js → p-ef007619.entry.js} +2 -2
  612. package/dist/dso-toolkit/p-ef007619.entry.js.map +1 -0
  613. package/dist/dso-toolkit/p-f14e03b2.entry.js +2 -0
  614. package/dist/dso-toolkit/{p-ef042313.entry.js.map → p-f14e03b2.entry.js.map} +1 -1
  615. package/dist/dso-toolkit/p-f3e22802.entry.js +2 -0
  616. package/dist/dso-toolkit/{p-b0cbc330.entry.js.map → p-f3e22802.entry.js.map} +1 -1
  617. package/dist/dso-toolkit/p-f4d66373.entry.js +2 -0
  618. package/dist/dso-toolkit/{p-a62f368d.entry.js.map → p-f4d66373.entry.js.map} +1 -1
  619. package/dist/dso-toolkit/p-f5f8682c.entry.js +2 -0
  620. package/dist/dso-toolkit/{p-55637fe3.entry.js.map → p-f5f8682c.entry.js.map} +1 -1
  621. package/dist/dso-toolkit/p-fb60be4e.entry.js +2 -0
  622. package/dist/dso-toolkit/{p-a38fbc5c.entry.js.map → p-fb60be4e.entry.js.map} +1 -1
  623. package/dist/esm/dso-accordion-section.entry.js +1 -1
  624. package/dist/esm/dso-accordion-section.entry.js.map +1 -1
  625. package/dist/esm/dso-accordion.entry.js +1 -1
  626. package/dist/esm/dso-accordion.entry.js.map +1 -1
  627. package/dist/esm/dso-action-list-item.entry.js +1 -1
  628. package/dist/esm/dso-action-list-item.entry.js.map +1 -1
  629. package/dist/esm/dso-action-list.entry.js +1 -1
  630. package/dist/esm/dso-action-list.entry.js.map +1 -1
  631. package/dist/esm/dso-advanced-select.entry.js +1 -1
  632. package/dist/esm/dso-advanced-select.entry.js.map +1 -1
  633. package/dist/esm/dso-alert.dso-badge.dso-image-overlay.dso-ozon-content.dso-panel.dso-table.entry.js.map +1 -1
  634. package/dist/esm/dso-alert_6.entry.js +9 -7
  635. package/dist/esm/dso-alert_6.entry.js.map +1 -1
  636. package/dist/esm/dso-annotation-activiteit.entry.js +1 -1
  637. package/dist/esm/dso-annotation-activiteit.entry.js.map +1 -1
  638. package/dist/esm/dso-annotation-gebiedsaanwijzing.entry.js +1 -1
  639. package/dist/esm/dso-annotation-gebiedsaanwijzing.entry.js.map +1 -1
  640. package/dist/esm/dso-annotation-kaart.entry.js +1 -1
  641. package/dist/esm/dso-annotation-kaart.entry.js.map +1 -1
  642. package/dist/esm/dso-annotation-locatie.dso-document-component.entry.js.map +1 -1
  643. package/dist/esm/dso-annotation-locatie_2.entry.js +2 -2
  644. package/dist/esm/dso-annotation-locatie_2.entry.js.map +1 -1
  645. package/dist/esm/dso-annotation-omgevingsnormwaarde.entry.js +1 -1
  646. package/dist/esm/dso-annotation-omgevingsnormwaarde.entry.js.map +1 -1
  647. package/dist/esm/dso-attachments-counter.dso-expandable.entry.js.map +1 -1
  648. package/dist/esm/dso-attachments-counter_2.entry.js +6 -4
  649. package/dist/esm/dso-attachments-counter_2.entry.js.map +1 -1
  650. package/dist/esm/dso-banner.entry.js +1 -1
  651. package/dist/esm/dso-banner.entry.js.map +1 -1
  652. package/dist/esm/dso-button-group.entry.js +1 -1
  653. package/dist/esm/dso-button-group.entry.js.map +1 -1
  654. package/dist/esm/dso-card.entry.js +1 -1
  655. package/dist/esm/dso-card.entry.js.map +1 -1
  656. package/dist/esm/dso-contact-information.entry.js +1 -1
  657. package/dist/esm/dso-contact-information.entry.js.map +1 -1
  658. package/dist/esm/dso-date-picker-legacy.entry.js +1 -1
  659. package/dist/esm/dso-date-picker-legacy.entry.js.map +1 -1
  660. package/dist/esm/dso-date-picker.entry.js +1 -1
  661. package/dist/esm/dso-date-picker.entry.js.map +1 -1
  662. package/dist/esm/dso-document-card.entry.js +1 -1
  663. package/dist/esm/dso-document-card.entry.js.map +1 -1
  664. package/dist/esm/dso-dropdown-menu.entry.js +5 -1
  665. package/dist/esm/dso-dropdown-menu.entry.js.map +1 -1
  666. package/dist/esm/dso-header.entry.js +7 -7
  667. package/dist/esm/dso-header.entry.js.map +1 -1
  668. package/dist/esm/dso-highlight-box.entry.js +1 -1
  669. package/dist/esm/dso-highlight-box.entry.js.map +1 -1
  670. package/dist/esm/dso-icon.entry.js +1 -1
  671. package/dist/esm/dso-icon.entry.js.map +1 -1
  672. package/dist/esm/dso-info-button.entry.js +1 -1
  673. package/dist/esm/dso-info-button.entry.js.map +1 -1
  674. package/dist/esm/dso-info.dso-selectable.entry.js.map +1 -1
  675. package/dist/esm/dso-info_2.entry.js +2 -2
  676. package/dist/esm/dso-info_2.entry.js.map +1 -1
  677. package/dist/esm/dso-input-range.entry.js +1 -1
  678. package/dist/esm/dso-input-range.entry.js.map +1 -1
  679. package/dist/esm/dso-label.dso-renvooi.dso-slide-toggle.entry.js.map +1 -1
  680. package/dist/esm/dso-label_3.entry.js +3 -3
  681. package/dist/esm/dso-label_3.entry.js.map +1 -1
  682. package/dist/esm/dso-legend-item.entry.js +1 -1
  683. package/dist/esm/dso-legend-item.entry.js.map +1 -1
  684. package/dist/esm/dso-list-button.entry.js +1 -1
  685. package/dist/esm/dso-list-button.entry.js.map +1 -1
  686. package/dist/esm/dso-map-base-layers.entry.js +1 -1
  687. package/dist/esm/dso-map-base-layers.entry.js.map +1 -1
  688. package/dist/esm/dso-map-controls.entry.js +1 -1
  689. package/dist/esm/dso-map-controls.entry.js.map +1 -1
  690. package/dist/esm/dso-map-overlays.entry.js +1 -1
  691. package/dist/esm/dso-map-overlays.entry.js.map +1 -1
  692. package/dist/esm/dso-mark-bar.entry.js +1 -1
  693. package/dist/esm/dso-mark-bar.entry.js.map +1 -1
  694. package/dist/esm/dso-modal.entry.js +1 -1
  695. package/dist/esm/dso-modal.entry.js.map +1 -1
  696. package/dist/esm/dso-onboarding-tip.entry.js +1 -1
  697. package/dist/esm/dso-onboarding-tip.entry.js.map +1 -1
  698. package/dist/esm/dso-pagination.entry.js +1 -1
  699. package/dist/esm/dso-pagination.entry.js.map +1 -1
  700. package/dist/esm/dso-plekinfo-card.entry.js +1 -1
  701. package/dist/esm/dso-plekinfo-card.entry.js.map +1 -1
  702. package/dist/esm/dso-progress-bar.entry.js +1 -1
  703. package/dist/esm/dso-progress-bar.entry.js.map +1 -1
  704. package/dist/esm/dso-progress-indicator.entry.js +1 -1
  705. package/dist/esm/dso-progress-indicator.entry.js.map +1 -1
  706. package/dist/esm/dso-project-item.entry.js +1 -1
  707. package/dist/esm/dso-project-item.entry.js.map +1 -1
  708. package/dist/esm/dso-scrollable.entry.js +1 -1
  709. package/dist/esm/dso-scrollable.entry.js.map +1 -1
  710. package/dist/esm/dso-skiplink.entry.js +1 -1
  711. package/dist/esm/dso-skiplink.entry.js.map +1 -1
  712. package/dist/esm/dso-survey-rating.entry.js +1 -1
  713. package/dist/esm/dso-survey-rating.entry.js.map +1 -1
  714. package/dist/esm/dso-tab.entry.js +1 -1
  715. package/dist/esm/dso-tab.entry.js.map +1 -1
  716. package/dist/esm/dso-tabs.entry.js +1 -1
  717. package/dist/esm/dso-tabs.entry.js.map +1 -1
  718. package/dist/esm/dso-toggletip.entry.js +1 -1
  719. package/dist/esm/dso-toggletip.entry.js.map +1 -1
  720. package/dist/esm/dso-tooltip.entry.js +1 -1
  721. package/dist/esm/dso-tooltip.entry.js.map +1 -1
  722. package/dist/esm/dso-tree-view.entry.js +1 -1
  723. package/dist/esm/dso-tree-view.entry.js.map +1 -1
  724. package/dist/esm/dso-viewer-grid.entry.js +1 -1
  725. package/dist/esm/dso-viewer-grid.entry.js.map +1 -1
  726. package/dist/types/components/dropdown-menu/dropdown-menu.d.ts +1 -0
  727. package/dist/types/components/header/header.d.ts +1 -1
  728. package/dist/types/components/header/menu-item.functional-component.d.ts +1 -1
  729. package/dist/types/components/label/label.interfaces.d.ts +1 -1
  730. package/package.json +3 -3
  731. package/dist/bundle/p-B3Alb07i.js +0 -122
  732. package/dist/bundle/p-B8dmuT31.js.map +0 -1
  733. package/dist/bundle/p-B_9Gan2F.js +0 -252
  734. package/dist/bundle/p-C5KKL3gn.js +0 -1188
  735. package/dist/bundle/p-C5KKL3gn.js.map +0 -1
  736. package/dist/bundle/p-COMP9T58.js.map +0 -1
  737. package/dist/bundle/p-C_-6M4mA.js +0 -36
  738. package/dist/bundle/p-CeXiA7z5.js +0 -145
  739. package/dist/bundle/p-DrWTFwlB.js +0 -43
  740. package/dist/bundle/p-DrrX-h-R.js +0 -115
  741. package/dist/bundle/p-X4ksz0z1.js +0 -80
  742. package/dist/bundle/p-_H6ui1La.js +0 -78
  743. package/dist/bundle/p-_H6ui1La.js.map +0 -1
  744. package/dist/dso-toolkit/p-01e90e48.entry.js +0 -2
  745. package/dist/dso-toolkit/p-03fe514a.entry.js +0 -2
  746. package/dist/dso-toolkit/p-071846be.entry.js +0 -2
  747. package/dist/dso-toolkit/p-12e8bed3.entry.js +0 -2
  748. package/dist/dso-toolkit/p-1aaf0bc4.entry.js +0 -2
  749. package/dist/dso-toolkit/p-1cc4cc04.entry.js +0 -2
  750. package/dist/dso-toolkit/p-2165f443.entry.js +0 -2
  751. package/dist/dso-toolkit/p-246b1186.entry.js +0 -2
  752. package/dist/dso-toolkit/p-257a4650.entry.js +0 -2
  753. package/dist/dso-toolkit/p-25d0d432.entry.js.map +0 -1
  754. package/dist/dso-toolkit/p-275e5ec7.entry.js +0 -2
  755. package/dist/dso-toolkit/p-2cec1fea.entry.js +0 -2
  756. package/dist/dso-toolkit/p-391bf858.entry.js +0 -2
  757. package/dist/dso-toolkit/p-55637fe3.entry.js +0 -2
  758. package/dist/dso-toolkit/p-633f06a1.entry.js +0 -2
  759. package/dist/dso-toolkit/p-633f06a1.entry.js.map +0 -1
  760. package/dist/dso-toolkit/p-67b6a838.entry.js +0 -2
  761. package/dist/dso-toolkit/p-6902ffb5.entry.js +0 -2
  762. package/dist/dso-toolkit/p-7cab94ae.entry.js +0 -2
  763. package/dist/dso-toolkit/p-81711068.entry.js +0 -2
  764. package/dist/dso-toolkit/p-898de91a.entry.js +0 -2
  765. package/dist/dso-toolkit/p-9286a89d.entry.js +0 -2
  766. package/dist/dso-toolkit/p-9286a89d.entry.js.map +0 -1
  767. package/dist/dso-toolkit/p-9566b0a7.entry.js +0 -2
  768. package/dist/dso-toolkit/p-9591777b.entry.js +0 -2
  769. package/dist/dso-toolkit/p-9b2ca189.entry.js +0 -2
  770. package/dist/dso-toolkit/p-a21f00fc.entry.js +0 -2
  771. package/dist/dso-toolkit/p-a38fbc5c.entry.js +0 -2
  772. package/dist/dso-toolkit/p-a62f368d.entry.js +0 -2
  773. package/dist/dso-toolkit/p-a735dc9b.entry.js +0 -2
  774. package/dist/dso-toolkit/p-aa2f5070.entry.js +0 -2
  775. package/dist/dso-toolkit/p-ab39576c.entry.js +0 -2
  776. package/dist/dso-toolkit/p-add3ca45.entry.js +0 -2
  777. package/dist/dso-toolkit/p-b0cbc330.entry.js +0 -2
  778. package/dist/dso-toolkit/p-b4931ff4.entry.js +0 -2
  779. package/dist/dso-toolkit/p-b4ba87ac.entry.js +0 -2
  780. package/dist/dso-toolkit/p-c45258d3.entry.js +0 -2
  781. package/dist/dso-toolkit/p-cc0db296.entry.js +0 -2
  782. package/dist/dso-toolkit/p-ce057c5c.entry.js +0 -2
  783. package/dist/dso-toolkit/p-d864f7da.entry.js +0 -2
  784. package/dist/dso-toolkit/p-d864f7da.entry.js.map +0 -1
  785. package/dist/dso-toolkit/p-d8a051b5.entry.js +0 -2
  786. package/dist/dso-toolkit/p-dd5f641f.entry.js +0 -2
  787. package/dist/dso-toolkit/p-e17fa84d.entry.js +0 -2
  788. package/dist/dso-toolkit/p-e299ac60.entry.js +0 -2
  789. package/dist/dso-toolkit/p-ef042313.entry.js +0 -2
  790. package/dist/dso-toolkit/p-f2a61198.entry.js +0 -2
  791. package/dist/dso-toolkit/p-f4a1a07b.entry.js +0 -2
  792. package/dist/dso-toolkit/p-f9bc4e87.entry.js +0 -2
@@ -20,7 +20,7 @@ const translations = {
20
20
  },
21
21
  };
22
22
 
23
- const modalCss = "@charset \"UTF-8\";@keyframes ModalFadeIn{0%{opacity:0}100%{opacity:1}}*,*::after,*::before{box-sizing:border-box}:host{display:block}:host([fullscreen]) dialog{inline-size:100dvi;block-size:100dvb}:host([fullscreen]) dialog .dso-dialog{display:flex;flex-direction:column;inline-size:100%;block-size:100%}:host([fullscreen]) dialog .dso-dialog>dso-scrollable{flex-grow:1;max-block-size:unset}:host([fullscreen]) dialog .dso-footer{flex-shrink:0}@media screen and (max-width: 480px){:host dialog{inline-size:100dvi;block-size:100dvb}:host dialog .dso-dialog{display:flex;flex-direction:column;inline-size:100%;block-size:100%}:host dialog .dso-dialog>dso-scrollable{flex-grow:1;max-block-size:unset}:host dialog .dso-footer{flex-shrink:0}}.sr-only{position:absolute;inline-size:1px;block-size:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}button{-webkit-appearance:button;color:inherit;cursor:pointer;font:inherit;font-family:inherit;font-size:inherit;line-height:inherit;margin:0;overflow:visible;text-transform:none}button[disabled]{cursor:default}button::-moz-focus-inner{border:0;padding:0}.dso-modal{overflow:visible;padding:0;border:0}.dso-modal::backdrop{background-color:rgba(255, 255, 255, 0.8)}.dso-modal .dso-dialog{inline-size:640px;background-color:#fff;opacity:1;box-shadow:0 8px 24px 0 rgba(25, 25, 25, 0.4);animation:200ms ease-out 0s 1 ModalFadeIn}.dso-modal .dso-header{position:relative;padding:16px;border-block-end:1px solid #ccc}.dso-modal .dso-header h2{max-inline-size:calc(100% - 24px);margin:0;color:#275937}.dso-modal .dso-header .dso-close{position:absolute;inset-block-start:16px;inset-inline-end:13px;block-size:32px;inline-size:32px;padding:0;background-color:transparent;border:0;text-align:center}.dso-modal>.dso-dialog>.dso-body p{margin-block:0 var(--_dt-rich-content-margin-block, 16px);margin-inline:0}.dso-modal>.dso-dialog>.dso-body ul,.dso-modal>.dso-dialog>.dso-body ol{margin-block-end:16px}.dso-modal>.dso-dialog>.dso-body ul:not(.list-group):not(.dso-link-list):not(.dso-columns-list),.dso-modal>.dso-dialog>.dso-body ol:not(.list-group):not(.dso-link-list):not(.dso-columns-list){padding-inline-start:24px}.dso-modal>.dso-dialog>.dso-body ul ul,.dso-modal>.dso-dialog>.dso-body ul ol,.dso-modal>.dso-dialog>.dso-body ol ul,.dso-modal>.dso-dialog>.dso-body ol ol{margin-block-end:0}.dso-modal>.dso-dialog>.dso-body pre{margin-block:0 16px;margin-inline:0}.dso-modal>.dso-dialog>.dso-body blockquote{padding-block:16px;padding-inline:24px}.dso-modal>.dso-dialog>.dso-body dso-highlight-box,.dso-modal>.dso-dialog>.dso-body .dso-highlight-box{margin-block-end:24px}.dso-modal>.dso-dialog>.dso-body img{block-size:auto;max-inline-size:100%}.dso-modal>.dso-dialog>.dso-body{block-size:calc(100% - 96px - 1.5rem);max-block-size:calc(70vh - 144px - 1.5em);min-block-size:1.5rem;overflow-x:auto;padding:32px}.dso-modal>.dso-dialog>dso-scrollable{block-size:calc(100% - 96px - 1.5rem);max-block-size:calc(70vh - 144px - 1.5em);min-block-size:6.5rem}.dso-modal>.dso-dialog>dso-scrollable .dso-body p{margin-block:0 var(--_dt-rich-content-margin-block, 16px);margin-inline:0}.dso-modal>.dso-dialog>dso-scrollable .dso-body ul,.dso-modal>.dso-dialog>dso-scrollable .dso-body ol{margin-block-end:16px}.dso-modal>.dso-dialog>dso-scrollable .dso-body ul:not(.list-group):not(.dso-link-list):not(.dso-columns-list),.dso-modal>.dso-dialog>dso-scrollable .dso-body ol:not(.list-group):not(.dso-link-list):not(.dso-columns-list){padding-inline-start:24px}.dso-modal>.dso-dialog>dso-scrollable .dso-body ul ul,.dso-modal>.dso-dialog>dso-scrollable .dso-body ul ol,.dso-modal>.dso-dialog>dso-scrollable .dso-body ol ul,.dso-modal>.dso-dialog>dso-scrollable .dso-body ol ol{margin-block-end:0}.dso-modal>.dso-dialog>dso-scrollable .dso-body pre{margin-block:0 16px;margin-inline:0}.dso-modal>.dso-dialog>dso-scrollable .dso-body blockquote{padding-block:16px;padding-inline:24px}.dso-modal>.dso-dialog>dso-scrollable .dso-body dso-highlight-box,.dso-modal>.dso-dialog>dso-scrollable .dso-body .dso-highlight-box{margin-block-end:24px}.dso-modal>.dso-dialog>dso-scrollable .dso-body img{block-size:auto;max-inline-size:100%}.dso-modal>.dso-dialog>dso-scrollable .dso-body{padding:32px}.dso-modal .dso-body:focus-visible{outline:none}@media screen and (max-width: 767px){.dso-modal .dso-footer .dso-primary+.dso-primary,.dso-modal .dso-footer .dso-primary+.dso-secondary,.dso-modal .dso-footer .dso-primary+.dso-tertiary,.dso-modal .dso-footer .dso-secondary+.dso-primary,.dso-modal .dso-footer .dso-secondary+.dso-secondary,.dso-modal .dso-footer .dso-secondary+.dso-tertiary,.dso-modal .dso-footer .dso-tertiary+.dso-primary,.dso-modal .dso-footer .dso-tertiary+.dso-secondary,.dso-modal .dso-footer .dso-tertiary+.dso-tertiary{margin-inline-start:0}.dso-modal .dso-footer button{inline-size:100%;text-align:center}.dso-modal .dso-footer button+button{margin-block-start:8px}.dso-modal .dso-footer button.dso-tertiary,.dso-modal .dso-footer button.dso-tertiary span{float:none}}.dso-modal .dso-footer{min-block-size:80px;padding-block:16px;padding-inline:32px;text-align:end}@media screen and (min-width: 768px){.dso-modal .dso-footer .dso-primary+.dso-secondary,.dso-modal .dso-footer .dso-secondary+.dso-secondary,.dso-modal .dso-footer .dso-tertiary+.dso-secondary{margin-inline-start:16px}.dso-modal .dso-footer .dso-primary+.dso-tertiary,.dso-modal .dso-footer .dso-secondary+.dso-tertiary,.dso-modal .dso-footer .dso-tertiary+.dso-tertiary{margin-inline-start:0}}@media screen and (max-width: 767px){.dso-modal .dso-dialog{max-inline-size:100%;margin-block-start:0}.dso-modal .dso-footer .dso-primary+.dso-primary,.dso-modal .dso-footer .dso-primary+.dso-secondary,.dso-modal .dso-footer .dso-primary+.dso-tertiary,.dso-modal .dso-footer .dso-secondary+.dso-primary,.dso-modal .dso-footer .dso-secondary+.dso-secondary,.dso-modal .dso-footer .dso-secondary+.dso-tertiary,.dso-modal .dso-footer .dso-tertiary+.dso-primary,.dso-modal .dso-footer .dso-tertiary+.dso-secondary,.dso-modal .dso-footer .dso-tertiary+.dso-tertiary{margin-inline-start:0}.dso-modal .dso-footer button{inline-size:100%;text-align:center}.dso-modal .dso-footer button+button{margin-block-start:8px}.dso-modal .dso-footer button.dso-tertiary,.dso-modal .dso-footer button.dso-tertiary span{float:none}}@media screen and (max-height: 380px){.dso-modal .dso-dialog{min-block-size:216px;margin-block-start:8px;margin-block-end:8px}.dso-modal .dso-header{padding-block:8px;padding-inline:16px}.dso-modal .dso-header .dso-close{inset-block-start:8px}.dso-modal .dso-body{padding-block:16px;padding-inline:24px}.dso-modal .dso-footer{min-block-size:auto;overflow:auto;padding-block:8px;padding-inline:32px}}.dso-close dso-icon{color:#39870c}";
23
+ const modalCss = "@keyframes ModalFadeIn{0%{opacity:0}100%{opacity:1}}*,*::after,*::before{box-sizing:border-box}:host{display:block}:host([fullscreen]) dialog{inline-size:100dvi;block-size:100dvb}:host([fullscreen]) dialog .dso-dialog{display:flex;flex-direction:column;inline-size:100%;block-size:100%}:host([fullscreen]) dialog .dso-dialog>dso-scrollable{flex-grow:1;max-block-size:unset}:host([fullscreen]) dialog .dso-footer{flex-shrink:0}@media screen and (max-width: 480px){:host dialog{inline-size:100dvi;block-size:100dvb}:host dialog .dso-dialog{display:flex;flex-direction:column;inline-size:100%;block-size:100%}:host dialog .dso-dialog>dso-scrollable{flex-grow:1;max-block-size:unset}:host dialog .dso-footer{flex-shrink:0}}.sr-only{position:absolute;inline-size:1px;block-size:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}button{-webkit-appearance:button;color:inherit;cursor:pointer;font:inherit;font-family:inherit;font-size:inherit;line-height:inherit;margin:0;overflow:visible;text-transform:none}button[disabled]{cursor:default}button::-moz-focus-inner{border:0;padding:0}.dso-modal{overflow:visible;padding:0;border:0}.dso-modal::backdrop{background-color:rgba(255, 255, 255, 0.8)}.dso-modal .dso-dialog{inline-size:640px;background-color:#fff;opacity:1;box-shadow:0 8px 24px 0 rgba(25, 25, 25, 0.4);animation:200ms ease-out 0s 1 ModalFadeIn}.dso-modal .dso-header{position:relative;padding:16px;border-block-end:1px solid #ccc}.dso-modal .dso-header h2{max-inline-size:calc(100% - 24px);margin:0;color:#275937}.dso-modal .dso-header .dso-close{position:absolute;inset-block-start:16px;inset-inline-end:13px;block-size:32px;inline-size:32px;padding:0;background-color:transparent;border:0;text-align:center}.dso-modal>.dso-dialog>.dso-body p{margin-block:0 var(--_dt-rich-content-margin-block, 16px);margin-inline:0}.dso-modal>.dso-dialog>.dso-body ul,.dso-modal>.dso-dialog>.dso-body ol{margin-block-end:16px}.dso-modal>.dso-dialog>.dso-body ul:not(.list-group):not(.dso-link-list):not(.dso-columns-list),.dso-modal>.dso-dialog>.dso-body ol:not(.list-group):not(.dso-link-list):not(.dso-columns-list){padding-inline-start:24px}.dso-modal>.dso-dialog>.dso-body ul ul,.dso-modal>.dso-dialog>.dso-body ul ol,.dso-modal>.dso-dialog>.dso-body ol ul,.dso-modal>.dso-dialog>.dso-body ol ol{margin-block-end:0}.dso-modal>.dso-dialog>.dso-body pre{margin-block:0 16px;margin-inline:0}.dso-modal>.dso-dialog>.dso-body blockquote{padding-block:16px;padding-inline:24px}.dso-modal>.dso-dialog>.dso-body dso-highlight-box,.dso-modal>.dso-dialog>.dso-body .dso-highlight-box{margin-block-end:24px}.dso-modal>.dso-dialog>.dso-body img{block-size:auto;max-inline-size:100%}.dso-modal>.dso-dialog>.dso-body{block-size:calc(100% - 96px - 1.5rem);max-block-size:calc(70vh - 144px - 1.5em);min-block-size:1.5rem;overflow-x:auto;padding:32px}.dso-modal>.dso-dialog>dso-scrollable{block-size:calc(100% - 96px - 1.5rem);max-block-size:calc(70vh - 144px - 1.5em);min-block-size:6.5rem}.dso-modal>.dso-dialog>dso-scrollable .dso-body p{margin-block:0 var(--_dt-rich-content-margin-block, 16px);margin-inline:0}.dso-modal>.dso-dialog>dso-scrollable .dso-body ul,.dso-modal>.dso-dialog>dso-scrollable .dso-body ol{margin-block-end:16px}.dso-modal>.dso-dialog>dso-scrollable .dso-body ul:not(.list-group):not(.dso-link-list):not(.dso-columns-list),.dso-modal>.dso-dialog>dso-scrollable .dso-body ol:not(.list-group):not(.dso-link-list):not(.dso-columns-list){padding-inline-start:24px}.dso-modal>.dso-dialog>dso-scrollable .dso-body ul ul,.dso-modal>.dso-dialog>dso-scrollable .dso-body ul ol,.dso-modal>.dso-dialog>dso-scrollable .dso-body ol ul,.dso-modal>.dso-dialog>dso-scrollable .dso-body ol ol{margin-block-end:0}.dso-modal>.dso-dialog>dso-scrollable .dso-body pre{margin-block:0 16px;margin-inline:0}.dso-modal>.dso-dialog>dso-scrollable .dso-body blockquote{padding-block:16px;padding-inline:24px}.dso-modal>.dso-dialog>dso-scrollable .dso-body dso-highlight-box,.dso-modal>.dso-dialog>dso-scrollable .dso-body .dso-highlight-box{margin-block-end:24px}.dso-modal>.dso-dialog>dso-scrollable .dso-body img{block-size:auto;max-inline-size:100%}.dso-modal>.dso-dialog>dso-scrollable .dso-body{padding:32px}.dso-modal .dso-body:focus-visible{outline:none}@media screen and (max-width: 767px){.dso-modal .dso-footer .dso-primary+.dso-primary,.dso-modal .dso-footer .dso-primary+.dso-secondary,.dso-modal .dso-footer .dso-primary+.dso-tertiary,.dso-modal .dso-footer .dso-secondary+.dso-primary,.dso-modal .dso-footer .dso-secondary+.dso-secondary,.dso-modal .dso-footer .dso-secondary+.dso-tertiary,.dso-modal .dso-footer .dso-tertiary+.dso-primary,.dso-modal .dso-footer .dso-tertiary+.dso-secondary,.dso-modal .dso-footer .dso-tertiary+.dso-tertiary{margin-inline-start:0}.dso-modal .dso-footer button{inline-size:100%;text-align:center}.dso-modal .dso-footer button+button{margin-block-start:8px}.dso-modal .dso-footer button.dso-tertiary,.dso-modal .dso-footer button.dso-tertiary span{float:none}}.dso-modal .dso-footer{min-block-size:80px;padding-block:16px;padding-inline:32px;text-align:end}@media screen and (min-width: 768px){.dso-modal .dso-footer .dso-primary+.dso-secondary,.dso-modal .dso-footer .dso-secondary+.dso-secondary,.dso-modal .dso-footer .dso-tertiary+.dso-secondary{margin-inline-start:16px}.dso-modal .dso-footer .dso-primary+.dso-tertiary,.dso-modal .dso-footer .dso-secondary+.dso-tertiary,.dso-modal .dso-footer .dso-tertiary+.dso-tertiary{margin-inline-start:0}}@media screen and (max-width: 767px){.dso-modal .dso-dialog{max-inline-size:100%;margin-block-start:0}.dso-modal .dso-footer .dso-primary+.dso-primary,.dso-modal .dso-footer .dso-primary+.dso-secondary,.dso-modal .dso-footer .dso-primary+.dso-tertiary,.dso-modal .dso-footer .dso-secondary+.dso-primary,.dso-modal .dso-footer .dso-secondary+.dso-secondary,.dso-modal .dso-footer .dso-secondary+.dso-tertiary,.dso-modal .dso-footer .dso-tertiary+.dso-primary,.dso-modal .dso-footer .dso-tertiary+.dso-secondary,.dso-modal .dso-footer .dso-tertiary+.dso-tertiary{margin-inline-start:0}.dso-modal .dso-footer button{inline-size:100%;text-align:center}.dso-modal .dso-footer button+button{margin-block-start:8px}.dso-modal .dso-footer button.dso-tertiary,.dso-modal .dso-footer button.dso-tertiary span{float:none}}@media screen and (max-height: 380px){.dso-modal .dso-dialog{min-block-size:216px;margin-block-start:8px;margin-block-end:8px}.dso-modal .dso-header{padding-block:8px;padding-inline:16px}.dso-modal .dso-header .dso-close{inset-block-start:8px}.dso-modal .dso-body{padding-block:16px;padding-inline:24px}.dso-modal .dso-footer{min-block-size:auto;overflow:auto;padding-block:8px;padding-inline:32px}}.dso-close dso-icon{color:#39870c}";
24
24
 
25
25
  const Modal = class {
26
26
  constructor(hostRef) {
@@ -1 +1 @@
1
- {"file":"dso-modal.entry.cjs.js","mappings":"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","names":["v4","i18n","getActiveElement","h"],"sources":["src/components/modal/modal.i18n.ts","src/components/modal/modal.scss?tag=dso-modal&encapsulation=shadow","src/components/modal/modal.tsx"],"sourcesContent":["import { Resource } from \"../../utils/i18n\";\r\n\r\nexport const translations: Resource = {\r\n en: {\r\n \"dso-modal\": {\r\n close: \"Close\",\r\n dialog: \"Dialog\",\r\n },\r\n },\r\n nl: {\r\n \"dso-modal\": {\r\n close: \"Sluiten\",\r\n dialog: \"Dialoog\",\r\n },\r\n },\r\n};\r\n","@use \"~dso-toolkit/src/utilities\";\r\n@use \"~dso-toolkit/src/components/button\";\r\n@use \"~dso-toolkit/src/components/modal\";\r\n@use \"~dso-toolkit/src/variables/media-query-breakpoints\";\r\n\r\n@include utilities.box-sizing();\r\n\r\n:host {\r\n display: block;\r\n}\r\n\r\n// fullscreen option\r\n:host([fullscreen]) dialog {\r\n @include modal.fullscreen();\r\n}\r\n\r\n// Go to fullscreen on =< 480px viewport\r\n@media screen and (max-width: media-query-breakpoints.$screen-xs-min) {\r\n :host dialog {\r\n @include modal.fullscreen();\r\n }\r\n}\r\n\r\n.sr-only {\r\n @include utilities.sr-only();\r\n}\r\n\r\nbutton {\r\n @include button.element();\r\n}\r\n\r\n.dso-modal {\r\n @include modal.root();\r\n}\r\n\r\n.dso-close {\r\n dso-icon {\r\n color: modal.$close-icon-color;\r\n }\r\n}\r\n","import { Component, ComponentInterface, Element, Event, EventEmitter, Prop, State, h } from \"@stencil/core\";\r\nimport { v4 } from \"uuid\";\r\n\r\nimport { getActiveElement } from \"../../utils/get-active-element\";\r\nimport { i18n } from \"../../utils/i18n\";\r\n\r\nimport { translations } from \"./modal.i18n\";\r\nimport { ModalCloseEvent } from \"./modal.interfaces\";\r\n\r\n@Component({\r\n tag: \"dso-modal\",\r\n styleUrl: \"modal.scss\",\r\n shadow: true,\r\n})\r\nexport class Modal implements ComponentInterface {\r\n private htmlDialogElement?: HTMLDialogElement;\r\n\r\n @Element()\r\n host!: HTMLDsoModalElement;\r\n\r\n @State()\r\n ariaId = v4();\r\n\r\n /**\r\n * when set the modal will be shown in fullscreen.\r\n */\r\n @Prop({ reflect: true })\r\n fullscreen?: boolean;\r\n\r\n /**\r\n * The title of the Modal.\r\n */\r\n @Prop()\r\n modalTitle?: string;\r\n\r\n /**\r\n * the role for the modal `dialog` | `alert` | `alertdialog`.\r\n */\r\n @Prop()\r\n dialogRole: string | null = \"dialog\";\r\n\r\n /**\r\n * The element to return focus to after the modal is closed.\r\n *\r\n * * `undefined` will return focus to the previously focused element (default).\r\n * * `false` will not return focus to any element.\r\n * * or, provide your own `HTMLElement` that will receive focus upon closing.\r\n */\r\n @Prop()\r\n returnFocus: false | HTMLElement | undefined = undefined;\r\n\r\n /**\r\n * when `false` the close button in the header will not be rendered.\r\n *\r\n * Needs `modalTitle` to be set.\r\n */\r\n @Prop()\r\n closable = false;\r\n\r\n private returnFocusElement: HTMLElement | undefined;\r\n\r\n /**\r\n * Emitted when the user:\r\n * - clicks the close button\r\n * - dismisses the Modal with the Escape button\r\n * - clicks or taps outside the Modal\r\n */\r\n @Event()\r\n dsoClose!: EventEmitter<ModalCloseEvent>;\r\n\r\n get hasFooter() {\r\n return this.host.querySelector(\"[slot='footer']\") !== null;\r\n }\r\n\r\n private text = i18n(() => this.host, translations);\r\n\r\n componentDidLoad(): void {\r\n if (this.htmlDialogElement?.isConnected) {\r\n const activeElement = getActiveElement();\r\n if (activeElement instanceof HTMLElement) {\r\n this.returnFocusElement = activeElement;\r\n }\r\n\r\n this.htmlDialogElement.showModal();\r\n }\r\n }\r\n\r\n disconnectedCallback(): void {\r\n this.htmlDialogElement?.close();\r\n\r\n if (this.returnFocus === false) {\r\n return;\r\n }\r\n\r\n (this.returnFocus ?? this.returnFocusElement)?.focus();\r\n }\r\n\r\n private handleDialogClick(e: MouseEvent) {\r\n if (!this.closable) {\r\n return;\r\n }\r\n\r\n if (e.target === this.htmlDialogElement) {\r\n this.dsoClose.emit({ originalEvent: e });\r\n }\r\n }\r\n\r\n private blockEscapeKey = (e: KeyboardEvent) => {\r\n if (e.key === \"Escape\") {\r\n e.preventDefault();\r\n\r\n if (this.closable) {\r\n this.dsoClose.emit({ originalEvent: e });\r\n }\r\n }\r\n };\r\n\r\n render() {\r\n return (\r\n <dialog\r\n class=\"dso-modal\"\r\n role={this.dialogRole ?? undefined}\r\n aria-modal=\"true\"\r\n aria-labelledby={this.ariaId}\r\n ref={(element) => (this.htmlDialogElement = element)}\r\n onClick={(e) => this.handleDialogClick(e)}\r\n onKeyDown={(e) => this.blockEscapeKey(e)}\r\n >\r\n <div class=\"dso-dialog\" role=\"document\">\r\n {this.modalTitle ? (\r\n <div class=\"dso-header\">\r\n <h2 id={this.ariaId}>{this.modalTitle}</h2>\r\n {this.closable && (\r\n <button type=\"button\" class=\"dso-close\" onClick={(e) => this.dsoClose.emit({ originalEvent: e })}>\r\n <dso-icon icon=\"times\"></dso-icon>\r\n <span class=\"sr-only\">{this.text(\"close\")}</span>\r\n </button>\r\n )}\r\n </div>\r\n ) : (\r\n <span class=\"sr-only\" id={this.ariaId}>\r\n {this.text(\"dialog\")}\r\n </span>\r\n )}\r\n\r\n <dso-scrollable>\r\n <div class=\"dso-body\" tabIndex={0}>\r\n <slot name=\"body\" />\r\n </div>\r\n </dso-scrollable>\r\n\r\n {this.hasFooter && (\r\n <div class=\"dso-footer\">\r\n <slot name=\"footer\" />\r\n </div>\r\n )}\r\n </div>\r\n </dialog>\r\n );\r\n }\r\n}\r\n"],"version":3}
1
+ {"file":"dso-modal.entry.cjs.js","mappings":"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","names":["v4","i18n","getActiveElement","h"],"sources":["src/components/modal/modal.i18n.ts","src/components/modal/modal.scss?tag=dso-modal&encapsulation=shadow","src/components/modal/modal.tsx"],"sourcesContent":["import { Resource } from \"../../utils/i18n\";\r\n\r\nexport const translations: Resource = {\r\n en: {\r\n \"dso-modal\": {\r\n close: \"Close\",\r\n dialog: \"Dialog\",\r\n },\r\n },\r\n nl: {\r\n \"dso-modal\": {\r\n close: \"Sluiten\",\r\n dialog: \"Dialoog\",\r\n },\r\n },\r\n};\r\n","@use \"~dso-toolkit/src/utilities\";\r\n@use \"~dso-toolkit/src/components/button\";\r\n@use \"~dso-toolkit/src/components/modal\";\r\n@use \"~dso-toolkit/src/variables/media-query-breakpoints\";\r\n\r\n@include utilities.box-sizing();\r\n\r\n:host {\r\n display: block;\r\n}\r\n\r\n// fullscreen option\r\n:host([fullscreen]) dialog {\r\n @include modal.fullscreen();\r\n}\r\n\r\n// Go to fullscreen on =< 480px viewport\r\n@media screen and (max-width: media-query-breakpoints.$screen-xs-min) {\r\n :host dialog {\r\n @include modal.fullscreen();\r\n }\r\n}\r\n\r\n.sr-only {\r\n @include utilities.sr-only();\r\n}\r\n\r\nbutton {\r\n @include button.element();\r\n}\r\n\r\n.dso-modal {\r\n @include modal.root();\r\n}\r\n\r\n.dso-close {\r\n dso-icon {\r\n color: modal.$close-icon-color;\r\n }\r\n}\r\n","import { Component, ComponentInterface, Element, Event, EventEmitter, Prop, State, h } from \"@stencil/core\";\r\nimport { v4 } from \"uuid\";\r\n\r\nimport { getActiveElement } from \"../../utils/get-active-element\";\r\nimport { i18n } from \"../../utils/i18n\";\r\n\r\nimport { translations } from \"./modal.i18n\";\r\nimport { ModalCloseEvent } from \"./modal.interfaces\";\r\n\r\n@Component({\r\n tag: \"dso-modal\",\r\n styleUrl: \"modal.scss\",\r\n shadow: true,\r\n})\r\nexport class Modal implements ComponentInterface {\r\n private htmlDialogElement?: HTMLDialogElement;\r\n\r\n @Element()\r\n host!: HTMLDsoModalElement;\r\n\r\n @State()\r\n ariaId = v4();\r\n\r\n /**\r\n * when set the modal will be shown in fullscreen.\r\n */\r\n @Prop({ reflect: true })\r\n fullscreen?: boolean;\r\n\r\n /**\r\n * The title of the Modal.\r\n */\r\n @Prop()\r\n modalTitle?: string;\r\n\r\n /**\r\n * the role for the modal `dialog` | `alert` | `alertdialog`.\r\n */\r\n @Prop()\r\n dialogRole: string | null = \"dialog\";\r\n\r\n /**\r\n * The element to return focus to after the modal is closed.\r\n *\r\n * * `undefined` will return focus to the previously focused element (default).\r\n * * `false` will not return focus to any element.\r\n * * or, provide your own `HTMLElement` that will receive focus upon closing.\r\n */\r\n @Prop()\r\n returnFocus: false | HTMLElement | undefined = undefined;\r\n\r\n /**\r\n * when `false` the close button in the header will not be rendered.\r\n *\r\n * Needs `modalTitle` to be set.\r\n */\r\n @Prop()\r\n closable = false;\r\n\r\n private returnFocusElement: HTMLElement | undefined;\r\n\r\n /**\r\n * Emitted when the user:\r\n * - clicks the close button\r\n * - dismisses the Modal with the Escape button\r\n * - clicks or taps outside the Modal\r\n */\r\n @Event()\r\n dsoClose!: EventEmitter<ModalCloseEvent>;\r\n\r\n get hasFooter() {\r\n return this.host.querySelector(\"[slot='footer']\") !== null;\r\n }\r\n\r\n private text = i18n(() => this.host, translations);\r\n\r\n componentDidLoad(): void {\r\n if (this.htmlDialogElement?.isConnected) {\r\n const activeElement = getActiveElement();\r\n if (activeElement instanceof HTMLElement) {\r\n this.returnFocusElement = activeElement;\r\n }\r\n\r\n this.htmlDialogElement.showModal();\r\n }\r\n }\r\n\r\n disconnectedCallback(): void {\r\n this.htmlDialogElement?.close();\r\n\r\n if (this.returnFocus === false) {\r\n return;\r\n }\r\n\r\n (this.returnFocus ?? this.returnFocusElement)?.focus();\r\n }\r\n\r\n private handleDialogClick(e: MouseEvent) {\r\n if (!this.closable) {\r\n return;\r\n }\r\n\r\n if (e.target === this.htmlDialogElement) {\r\n this.dsoClose.emit({ originalEvent: e });\r\n }\r\n }\r\n\r\n private blockEscapeKey = (e: KeyboardEvent) => {\r\n if (e.key === \"Escape\") {\r\n e.preventDefault();\r\n\r\n if (this.closable) {\r\n this.dsoClose.emit({ originalEvent: e });\r\n }\r\n }\r\n };\r\n\r\n render() {\r\n return (\r\n <dialog\r\n class=\"dso-modal\"\r\n role={this.dialogRole ?? undefined}\r\n aria-modal=\"true\"\r\n aria-labelledby={this.ariaId}\r\n ref={(element) => (this.htmlDialogElement = element)}\r\n onClick={(e) => this.handleDialogClick(e)}\r\n onKeyDown={(e) => this.blockEscapeKey(e)}\r\n >\r\n <div class=\"dso-dialog\" role=\"document\">\r\n {this.modalTitle ? (\r\n <div class=\"dso-header\">\r\n <h2 id={this.ariaId}>{this.modalTitle}</h2>\r\n {this.closable && (\r\n <button type=\"button\" class=\"dso-close\" onClick={(e) => this.dsoClose.emit({ originalEvent: e })}>\r\n <dso-icon icon=\"times\"></dso-icon>\r\n <span class=\"sr-only\">{this.text(\"close\")}</span>\r\n </button>\r\n )}\r\n </div>\r\n ) : (\r\n <span class=\"sr-only\" id={this.ariaId}>\r\n {this.text(\"dialog\")}\r\n </span>\r\n )}\r\n\r\n <dso-scrollable>\r\n <div class=\"dso-body\" tabIndex={0}>\r\n <slot name=\"body\" />\r\n </div>\r\n </dso-scrollable>\r\n\r\n {this.hasFooter && (\r\n <div class=\"dso-footer\">\r\n <slot name=\"footer\" />\r\n </div>\r\n )}\r\n </div>\r\n </dialog>\r\n );\r\n }\r\n}\r\n"],"version":3}
@@ -1 +1 @@
1
- {"version":3,"file":"dso-modal.entry.cjs.js","sources":["src/components/modal/modal.i18n.ts","src/components/modal/modal.scss?tag=dso-modal&encapsulation=shadow","src/components/modal/modal.tsx"],"sourcesContent":["import { Resource } from \"../../utils/i18n\";\r\n\r\nexport const translations: Resource = {\r\n en: {\r\n \"dso-modal\": {\r\n close: \"Close\",\r\n dialog: \"Dialog\",\r\n },\r\n },\r\n nl: {\r\n \"dso-modal\": {\r\n close: \"Sluiten\",\r\n dialog: \"Dialoog\",\r\n },\r\n },\r\n};\r\n","@use \"~dso-toolkit/src/utilities\";\r\n@use \"~dso-toolkit/src/components/button\";\r\n@use \"~dso-toolkit/src/components/modal\";\r\n@use \"~dso-toolkit/src/variables/media-query-breakpoints\";\r\n\r\n@include utilities.box-sizing();\r\n\r\n:host {\r\n display: block;\r\n}\r\n\r\n// fullscreen option\r\n:host([fullscreen]) dialog {\r\n @include modal.fullscreen();\r\n}\r\n\r\n// Go to fullscreen on =< 480px viewport\r\n@media screen and (max-width: media-query-breakpoints.$screen-xs-min) {\r\n :host dialog {\r\n @include modal.fullscreen();\r\n }\r\n}\r\n\r\n.sr-only {\r\n @include utilities.sr-only();\r\n}\r\n\r\nbutton {\r\n @include button.element();\r\n}\r\n\r\n.dso-modal {\r\n @include modal.root();\r\n}\r\n\r\n.dso-close {\r\n dso-icon {\r\n color: modal.$close-icon-color;\r\n }\r\n}\r\n","import { Component, ComponentInterface, Element, Event, EventEmitter, Prop, State, h } from \"@stencil/core\";\r\nimport { v4 } from \"uuid\";\r\n\r\nimport { getActiveElement } from \"../../utils/get-active-element\";\r\nimport { i18n } from \"../../utils/i18n\";\r\n\r\nimport { translations } from \"./modal.i18n\";\r\nimport { ModalCloseEvent } from \"./modal.interfaces\";\r\n\r\n@Component({\r\n tag: \"dso-modal\",\r\n styleUrl: \"modal.scss\",\r\n shadow: true,\r\n})\r\nexport class Modal implements ComponentInterface {\r\n private htmlDialogElement?: HTMLDialogElement;\r\n\r\n @Element()\r\n host!: HTMLDsoModalElement;\r\n\r\n @State()\r\n ariaId = v4();\r\n\r\n /**\r\n * when set the modal will be shown in fullscreen.\r\n */\r\n @Prop({ reflect: true })\r\n fullscreen?: boolean;\r\n\r\n /**\r\n * The title of the Modal.\r\n */\r\n @Prop()\r\n modalTitle?: string;\r\n\r\n /**\r\n * the role for the modal `dialog` | `alert` | `alertdialog`.\r\n */\r\n @Prop()\r\n dialogRole: string | null = \"dialog\";\r\n\r\n /**\r\n * The element to return focus to after the modal is closed.\r\n *\r\n * * `undefined` will return focus to the previously focused element (default).\r\n * * `false` will not return focus to any element.\r\n * * or, provide your own `HTMLElement` that will receive focus upon closing.\r\n */\r\n @Prop()\r\n returnFocus: false | HTMLElement | undefined = undefined;\r\n\r\n /**\r\n * when `false` the close button in the header will not be rendered.\r\n *\r\n * Needs `modalTitle` to be set.\r\n */\r\n @Prop()\r\n closable = false;\r\n\r\n private returnFocusElement: HTMLElement | undefined;\r\n\r\n /**\r\n * Emitted when the user:\r\n * - clicks the close button\r\n * - dismisses the Modal with the Escape button\r\n * - clicks or taps outside the Modal\r\n */\r\n @Event()\r\n dsoClose!: EventEmitter<ModalCloseEvent>;\r\n\r\n get hasFooter() {\r\n return this.host.querySelector(\"[slot='footer']\") !== null;\r\n }\r\n\r\n private text = i18n(() => this.host, translations);\r\n\r\n componentDidLoad(): void {\r\n if (this.htmlDialogElement?.isConnected) {\r\n const activeElement = getActiveElement();\r\n if (activeElement instanceof HTMLElement) {\r\n this.returnFocusElement = activeElement;\r\n }\r\n\r\n this.htmlDialogElement.showModal();\r\n }\r\n }\r\n\r\n disconnectedCallback(): void {\r\n this.htmlDialogElement?.close();\r\n\r\n if (this.returnFocus === false) {\r\n return;\r\n }\r\n\r\n (this.returnFocus ?? this.returnFocusElement)?.focus();\r\n }\r\n\r\n private handleDialogClick(e: MouseEvent) {\r\n if (!this.closable) {\r\n return;\r\n }\r\n\r\n if (e.target === this.htmlDialogElement) {\r\n this.dsoClose.emit({ originalEvent: e });\r\n }\r\n }\r\n\r\n private blockEscapeKey = (e: KeyboardEvent) => {\r\n if (e.key === \"Escape\") {\r\n e.preventDefault();\r\n\r\n if (this.closable) {\r\n this.dsoClose.emit({ originalEvent: e });\r\n }\r\n }\r\n };\r\n\r\n render() {\r\n return (\r\n <dialog\r\n class=\"dso-modal\"\r\n role={this.dialogRole ?? undefined}\r\n aria-modal=\"true\"\r\n aria-labelledby={this.ariaId}\r\n ref={(element) => (this.htmlDialogElement = element)}\r\n onClick={(e) => this.handleDialogClick(e)}\r\n onKeyDown={(e) => this.blockEscapeKey(e)}\r\n >\r\n <div class=\"dso-dialog\" role=\"document\">\r\n {this.modalTitle ? (\r\n <div class=\"dso-header\">\r\n <h2 id={this.ariaId}>{this.modalTitle}</h2>\r\n {this.closable && (\r\n <button type=\"button\" class=\"dso-close\" onClick={(e) => this.dsoClose.emit({ originalEvent: e })}>\r\n <dso-icon icon=\"times\"></dso-icon>\r\n <span class=\"sr-only\">{this.text(\"close\")}</span>\r\n </button>\r\n )}\r\n </div>\r\n ) : (\r\n <span class=\"sr-only\" id={this.ariaId}>\r\n {this.text(\"dialog\")}\r\n </span>\r\n )}\r\n\r\n <dso-scrollable>\r\n <div class=\"dso-body\" tabIndex={0}>\r\n <slot name=\"body\" />\r\n </div>\r\n </dso-scrollable>\r\n\r\n {this.hasFooter && (\r\n <div class=\"dso-footer\">\r\n <slot name=\"footer\" />\r\n </div>\r\n )}\r\n </div>\r\n </dialog>\r\n );\r\n }\r\n}\r\n"],"names":["v4","i18n","getActiveElement","h"],"mappings":"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"}
1
+ {"version":3,"file":"dso-modal.entry.cjs.js","sources":["src/components/modal/modal.i18n.ts","src/components/modal/modal.scss?tag=dso-modal&encapsulation=shadow","src/components/modal/modal.tsx"],"sourcesContent":["import { Resource } from \"../../utils/i18n\";\r\n\r\nexport const translations: Resource = {\r\n en: {\r\n \"dso-modal\": {\r\n close: \"Close\",\r\n dialog: \"Dialog\",\r\n },\r\n },\r\n nl: {\r\n \"dso-modal\": {\r\n close: \"Sluiten\",\r\n dialog: \"Dialoog\",\r\n },\r\n },\r\n};\r\n","@use \"~dso-toolkit/src/utilities\";\r\n@use \"~dso-toolkit/src/components/button\";\r\n@use \"~dso-toolkit/src/components/modal\";\r\n@use \"~dso-toolkit/src/variables/media-query-breakpoints\";\r\n\r\n@include utilities.box-sizing();\r\n\r\n:host {\r\n display: block;\r\n}\r\n\r\n// fullscreen option\r\n:host([fullscreen]) dialog {\r\n @include modal.fullscreen();\r\n}\r\n\r\n// Go to fullscreen on =< 480px viewport\r\n@media screen and (max-width: media-query-breakpoints.$screen-xs-min) {\r\n :host dialog {\r\n @include modal.fullscreen();\r\n }\r\n}\r\n\r\n.sr-only {\r\n @include utilities.sr-only();\r\n}\r\n\r\nbutton {\r\n @include button.element();\r\n}\r\n\r\n.dso-modal {\r\n @include modal.root();\r\n}\r\n\r\n.dso-close {\r\n dso-icon {\r\n color: modal.$close-icon-color;\r\n }\r\n}\r\n","import { Component, ComponentInterface, Element, Event, EventEmitter, Prop, State, h } from \"@stencil/core\";\r\nimport { v4 } from \"uuid\";\r\n\r\nimport { getActiveElement } from \"../../utils/get-active-element\";\r\nimport { i18n } from \"../../utils/i18n\";\r\n\r\nimport { translations } from \"./modal.i18n\";\r\nimport { ModalCloseEvent } from \"./modal.interfaces\";\r\n\r\n@Component({\r\n tag: \"dso-modal\",\r\n styleUrl: \"modal.scss\",\r\n shadow: true,\r\n})\r\nexport class Modal implements ComponentInterface {\r\n private htmlDialogElement?: HTMLDialogElement;\r\n\r\n @Element()\r\n host!: HTMLDsoModalElement;\r\n\r\n @State()\r\n ariaId = v4();\r\n\r\n /**\r\n * when set the modal will be shown in fullscreen.\r\n */\r\n @Prop({ reflect: true })\r\n fullscreen?: boolean;\r\n\r\n /**\r\n * The title of the Modal.\r\n */\r\n @Prop()\r\n modalTitle?: string;\r\n\r\n /**\r\n * the role for the modal `dialog` | `alert` | `alertdialog`.\r\n */\r\n @Prop()\r\n dialogRole: string | null = \"dialog\";\r\n\r\n /**\r\n * The element to return focus to after the modal is closed.\r\n *\r\n * * `undefined` will return focus to the previously focused element (default).\r\n * * `false` will not return focus to any element.\r\n * * or, provide your own `HTMLElement` that will receive focus upon closing.\r\n */\r\n @Prop()\r\n returnFocus: false | HTMLElement | undefined = undefined;\r\n\r\n /**\r\n * when `false` the close button in the header will not be rendered.\r\n *\r\n * Needs `modalTitle` to be set.\r\n */\r\n @Prop()\r\n closable = false;\r\n\r\n private returnFocusElement: HTMLElement | undefined;\r\n\r\n /**\r\n * Emitted when the user:\r\n * - clicks the close button\r\n * - dismisses the Modal with the Escape button\r\n * - clicks or taps outside the Modal\r\n */\r\n @Event()\r\n dsoClose!: EventEmitter<ModalCloseEvent>;\r\n\r\n get hasFooter() {\r\n return this.host.querySelector(\"[slot='footer']\") !== null;\r\n }\r\n\r\n private text = i18n(() => this.host, translations);\r\n\r\n componentDidLoad(): void {\r\n if (this.htmlDialogElement?.isConnected) {\r\n const activeElement = getActiveElement();\r\n if (activeElement instanceof HTMLElement) {\r\n this.returnFocusElement = activeElement;\r\n }\r\n\r\n this.htmlDialogElement.showModal();\r\n }\r\n }\r\n\r\n disconnectedCallback(): void {\r\n this.htmlDialogElement?.close();\r\n\r\n if (this.returnFocus === false) {\r\n return;\r\n }\r\n\r\n (this.returnFocus ?? this.returnFocusElement)?.focus();\r\n }\r\n\r\n private handleDialogClick(e: MouseEvent) {\r\n if (!this.closable) {\r\n return;\r\n }\r\n\r\n if (e.target === this.htmlDialogElement) {\r\n this.dsoClose.emit({ originalEvent: e });\r\n }\r\n }\r\n\r\n private blockEscapeKey = (e: KeyboardEvent) => {\r\n if (e.key === \"Escape\") {\r\n e.preventDefault();\r\n\r\n if (this.closable) {\r\n this.dsoClose.emit({ originalEvent: e });\r\n }\r\n }\r\n };\r\n\r\n render() {\r\n return (\r\n <dialog\r\n class=\"dso-modal\"\r\n role={this.dialogRole ?? undefined}\r\n aria-modal=\"true\"\r\n aria-labelledby={this.ariaId}\r\n ref={(element) => (this.htmlDialogElement = element)}\r\n onClick={(e) => this.handleDialogClick(e)}\r\n onKeyDown={(e) => this.blockEscapeKey(e)}\r\n >\r\n <div class=\"dso-dialog\" role=\"document\">\r\n {this.modalTitle ? (\r\n <div class=\"dso-header\">\r\n <h2 id={this.ariaId}>{this.modalTitle}</h2>\r\n {this.closable && (\r\n <button type=\"button\" class=\"dso-close\" onClick={(e) => this.dsoClose.emit({ originalEvent: e })}>\r\n <dso-icon icon=\"times\"></dso-icon>\r\n <span class=\"sr-only\">{this.text(\"close\")}</span>\r\n </button>\r\n )}\r\n </div>\r\n ) : (\r\n <span class=\"sr-only\" id={this.ariaId}>\r\n {this.text(\"dialog\")}\r\n </span>\r\n )}\r\n\r\n <dso-scrollable>\r\n <div class=\"dso-body\" tabIndex={0}>\r\n <slot name=\"body\" />\r\n </div>\r\n </dso-scrollable>\r\n\r\n {this.hasFooter && (\r\n <div class=\"dso-footer\">\r\n <slot name=\"footer\" />\r\n </div>\r\n )}\r\n </div>\r\n </dialog>\r\n );\r\n }\r\n}\r\n"],"names":["v4","i18n","getActiveElement","h"],"mappings":";;;;;;;AAEO,MAAM,YAAY,GAAa;AACpC,IAAA,EAAE,EAAE;AACF,QAAA,WAAW,EAAE;AACX,YAAA,KAAK,EAAE,OAAO;AACd,YAAA,MAAM,EAAE,QAAQ;AACjB,SAAA;AACF,KAAA;AACD,IAAA,EAAE,EAAE;AACF,QAAA,WAAW,EAAE;AACX,YAAA,KAAK,EAAE,SAAS;AAChB,YAAA,MAAM,EAAE,SAAS;AAClB,SAAA;AACF,KAAA;CACF;;ACfD,MAAM,QAAQ,GAAG,ylNAAylN;;MCc7lN,KAAK,GAAA,MAAA;AALlB,IAAA,WAAA,CAAA,OAAA,EAAA;;;AAYE,QAAA,IAAM,CAAA,MAAA,GAAGA,KAAE,EAAE;AAcb;;AAEG;AAEH,QAAA,IAAU,CAAA,UAAA,GAAkB,QAAQ;AAEpC;;;;;;AAMG;AAEH,QAAA,IAAW,CAAA,WAAA,GAAoC,SAAS;AAExD;;;;AAIG;AAEH,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK;AAiBR,QAAA,IAAA,CAAA,IAAI,GAAGC,SAAI,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC;AAiC1C,QAAA,IAAA,CAAA,cAAc,GAAG,CAAC,CAAgB,KAAI;AAC5C,YAAA,IAAI,CAAC,CAAC,GAAG,KAAK,QAAQ,EAAE;gBACtB,CAAC,CAAC,cAAc,EAAE;AAElB,gBAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;oBACjB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC;;;AAG9C,SAAC;AA6CF;AA1FC,IAAA,IAAI,SAAS,GAAA;QACX,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,KAAK,IAAI;;IAK5D,gBAAgB,GAAA;;QACd,IAAI,MAAA,IAAI,CAAC,iBAAiB,MAAE,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,WAAW,EAAE;AACvC,YAAA,MAAM,aAAa,GAAGC,iCAAgB,EAAE;AACxC,YAAA,IAAI,aAAa,YAAY,WAAW,EAAE;AACxC,gBAAA,IAAI,CAAC,kBAAkB,GAAG,aAAa;;AAGzC,YAAA,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE;;;IAItC,oBAAoB,GAAA;;QAClB,CAAA,EAAA,GAAA,IAAI,CAAC,iBAAiB,MAAE,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,KAAK,EAAE;AAE/B,QAAA,IAAI,IAAI,CAAC,WAAW,KAAK,KAAK,EAAE;YAC9B;;QAGF,CAAA,EAAA,IAAC,CAAA,EAAA,GAAA,IAAI,CAAC,WAAW,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,IAAI,CAAC,kBAAkB,CAAC,MAAE,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,KAAK,EAAE;;AAGhD,IAAA,iBAAiB,CAAC,CAAa,EAAA;AACrC,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB;;QAGF,IAAI,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,iBAAiB,EAAE;YACvC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC;;;IAc5C,MAAM,GAAA;;AACJ,QAAA,QACEC,OAAA,CAAA,QAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,KAAK,EAAC,WAAW,EACjB,IAAI,EAAE,CAAA,EAAA,GAAA,IAAI,CAAC,UAAU,MAAI,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAA,SAAS,EACvB,YAAA,EAAA,MAAM,EACA,iBAAA,EAAA,IAAI,CAAC,MAAM,EAC5B,GAAG,EAAE,CAAC,OAAO,MAAM,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,EACpD,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,EACzC,SAAS,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,EAAA,EAExCA,OAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAC,YAAY,EAAC,IAAI,EAAC,UAAU,EAAA,EACpC,IAAI,CAAC,UAAU,IACdA,OAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,YAAY,EAAA,EACrBA,OAAI,CAAA,IAAA,EAAA,EAAA,EAAE,EAAE,IAAI,CAAC,MAAM,EAAG,EAAA,IAAI,CAAC,UAAU,CAAM,EAC1C,IAAI,CAAC,QAAQ,KACZA,OAAQ,CAAA,QAAA,EAAA,EAAA,IAAI,EAAC,QAAQ,EAAC,KAAK,EAAC,WAAW,EAAC,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC,EAAA,EAC9FA,OAAU,CAAA,UAAA,EAAA,EAAA,IAAI,EAAC,OAAO,EAAY,CAAA,EAClCA,OAAA,CAAA,MAAA,EAAA,EAAM,KAAK,EAAC,SAAS,EAAE,EAAA,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAQ,CAC1C,CACV,CACG,KAENA,OAAA,CAAA,MAAA,EAAA,EAAM,KAAK,EAAC,SAAS,EAAC,EAAE,EAAE,IAAI,CAAC,MAAM,EAAA,EAClC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CACf,CACR,EAEDA,OAAA,CAAA,gBAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EACEA,OAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAC,UAAU,EAAC,QAAQ,EAAE,CAAC,EAAA,EAC/BA,OAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAM,IAAI,EAAC,MAAM,EAAA,CAAG,CAChB,CACS,EAEhB,IAAI,CAAC,SAAS,KACbA,OAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,YAAY,EAAA,EACrBA,OAAM,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAC,QAAQ,EAAA,CAAG,CAClB,CACP,CACG,CACC;;;;;;;;"}
@@ -3,7 +3,7 @@
3
3
  var index = require('./index-DvLsepiK.js');
4
4
  var floatingUi_dom = require('./floating-ui.dom-uZgU2YQo.js');
5
5
 
6
- const onboardingTipCss = "@charset \"UTF-8\";*,*::after,*::before{box-sizing:border-box}.sr-only{position:absolute;inline-size:1px;block-size:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}::slotted([slot=heading]){display:flex !important;align-items:center !important;margin-block-end:0 !important;margin-block-start:0 !important;color:#fff !important;line-height:1.375 !important}:host{--_dso-button-primary-background-color:#fff;--_dso-button-primary-border-color:#fff;--_dso-button-primary-color:#000;--_dso-button-primary-hover-background-color:#ccc;--_dso-button-primary-hover-border-color:#ccc;--_dso-button-primary-hover-color:#000;--_dso-button-primary-active-background-color:#999;--_dso-button-primary-active-border-color:#999;--_dso-button-primary-active-color:#000;--_dso-button-primary-disabled-background-color:#fff;--_dso-button-primary-disabled-border-color:#fff;--_dso-button-primary-disabled-color:#b2b2b2;--_dso-button-secondary-background-color:#fff;--_dso-button-secondary-border-color:#fff;--_dso-button-secondary-color:#000;--_dso-button-secondary-hover-background-color:#ccc;--_dso-button-secondary-hover-border-color:#ccc;--_dso-button-secondary-hover-color:#000;--_dso-button-secondary-active-background-color:#999;--_dso-button-secondary-active-border-color:#999;--_dso-button-secondary-active-color:#000;--_dso-button-secondary-disabled-background-color:#fff;--_dso-button-secondary-disabled-border-color:#fff;--_dso-button-secondary-disabled-color:#b2b2b2;display:block;filter:drop-shadow(2px 2px 16px rgba(0, 0, 0, 0.4));transition:visibility 400ms, opacity 400ms}:host(:not([ready])){opacity:1;animation:400ms ease-in 1 normal both fadeInOpacity}:host([popover]){margin:0 !important;border:0;padding:0;background-color:transparent;overflow:unset}.onboarding-tip{font-family:Asap, sans-serif;font-style:normal;font-weight:400;line-height:1.5;line-break:auto;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;overflow-wrap:anywhere;word-spacing:normal;word-wrap:normal;white-space:normal;font-size:14px;inset-block-start:0;inset-inline-start:0;z-index:410}@media screen and (max-width: 360px){.onboarding-tip{padding-inline-start:8px !important}}.dso-close{-webkit-appearance:button;color:inherit;cursor:pointer;font:inherit;font-family:inherit;font-size:inherit;line-height:inherit;margin:0;overflow:visible;text-transform:none;position:absolute;inset-block-start:0;inset-inline-end:0;block-size:32px;inline-size:32px;padding:0;background-color:transparent;border:0;text-align:center}.dso-close[disabled]{cursor:default}.dso-close::-moz-focus-inner{border:0;padding:0}.onboarding-tip-inner{--link-color:#fff;--link-hover-color:#b2b2b2;--link-visited-color:#7f7f7f;max-inline-size:min(360px, 100vw - 2 * 8px);max-block-size:calc(100vh - 10px);overflow:auto;padding-block:32px 8px;padding-inline:8px;border-radius:4px;display:block;font-size:1rem;position:relative;z-index:2}.onboarding-tip-inner{background-color:#2b5780;border-color:#2b5780;color:#fff}@media screen and (max-width: 991px){.onboarding-tip-inner{max-block-size:unset}}.onboarding-tip-arrow{border-start-start-radius:4px;position:absolute;block-size:20px;inline-size:20px;background:#2b5780;z-index:1;pointer-events:none}.onboarding-tip-content-wrapper{padding-inline:16px;padding-block-end:16px}.onboarding-tip-content-heading{display:flex}.onboarding-tip-content-heading dso-icon{margin-inline-end:8px}@keyframes fadeInOpacity{0%{opacity:0}100%{opacity:1}}";
6
+ const onboardingTipCss = "*,*::after,*::before{box-sizing:border-box}.sr-only{position:absolute;inline-size:1px;block-size:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}::slotted([slot=heading]){display:flex !important;align-items:center !important;margin-block-end:0 !important;margin-block-start:0 !important;color:#fff !important;line-height:1.375 !important}:host{--_dso-button-primary-background-color:#fff;--_dso-button-primary-border-color:#fff;--_dso-button-primary-color:#000;--_dso-button-primary-hover-background-color:#ccc;--_dso-button-primary-hover-border-color:#ccc;--_dso-button-primary-hover-color:#000;--_dso-button-primary-active-background-color:#999;--_dso-button-primary-active-border-color:#999;--_dso-button-primary-active-color:#000;--_dso-button-primary-disabled-background-color:#fff;--_dso-button-primary-disabled-border-color:#fff;--_dso-button-primary-disabled-color:#b2b2b2;--_dso-button-secondary-background-color:#fff;--_dso-button-secondary-border-color:#fff;--_dso-button-secondary-color:#000;--_dso-button-secondary-hover-background-color:#ccc;--_dso-button-secondary-hover-border-color:#ccc;--_dso-button-secondary-hover-color:#000;--_dso-button-secondary-active-background-color:#999;--_dso-button-secondary-active-border-color:#999;--_dso-button-secondary-active-color:#000;--_dso-button-secondary-disabled-background-color:#fff;--_dso-button-secondary-disabled-border-color:#fff;--_dso-button-secondary-disabled-color:#b2b2b2;display:block;filter:drop-shadow(2px 2px 16px rgba(0, 0, 0, 0.4));transition:visibility 400ms, opacity 400ms}:host(:not([ready])){opacity:1;animation:400ms ease-in 1 normal both fadeInOpacity}:host([popover]){margin:0 !important;border:0;padding:0;background-color:transparent;overflow:unset}.onboarding-tip{font-family:Asap, sans-serif;font-style:normal;font-weight:400;line-height:1.5;line-break:auto;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;overflow-wrap:anywhere;word-spacing:normal;word-wrap:normal;white-space:normal;font-size:14px;inset-block-start:0;inset-inline-start:0;z-index:410}@media screen and (max-width: 360px){.onboarding-tip{padding-inline-start:8px !important}}.dso-close{-webkit-appearance:button;color:inherit;cursor:pointer;font:inherit;font-family:inherit;font-size:inherit;line-height:inherit;margin:0;overflow:visible;text-transform:none;position:absolute;inset-block-start:0;inset-inline-end:0;block-size:32px;inline-size:32px;padding:0;background-color:transparent;border:0;text-align:center}.dso-close[disabled]{cursor:default}.dso-close::-moz-focus-inner{border:0;padding:0}.onboarding-tip-inner{--link-color:#fff;--link-hover-color:#b2b2b2;--link-visited-color:#7f7f7f;max-inline-size:min(360px, 100vw - 2 * 8px);max-block-size:calc(100vh - 10px);overflow:auto;padding-block:32px 8px;padding-inline:8px;border-radius:4px;display:block;font-size:1rem;position:relative;z-index:2}.onboarding-tip-inner{background-color:#2b5780;border-color:#2b5780;color:#fff}@media screen and (max-width: 991px){.onboarding-tip-inner{max-block-size:unset}}.onboarding-tip-arrow{border-start-start-radius:4px;position:absolute;block-size:20px;inline-size:20px;background:#2b5780;z-index:1;pointer-events:none}.onboarding-tip-content-wrapper{padding-inline:16px;padding-block-end:16px}.onboarding-tip-content-heading{display:flex}.onboarding-tip-content-heading dso-icon{margin-inline-end:8px}@keyframes fadeInOpacity{0%{opacity:0}100%{opacity:1}}";
7
7
 
8
8
  const OnboardingTip = class {
9
9
  constructor(hostRef) {
@@ -1 +1 @@
1
- {"file":"dso-onboarding-tip.entry.cjs.js","mappings":"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","names":["autoUpdate","computePosition","offset","flip","shift","arrow","hide","h","Host"],"sources":["src/components/onboarding-tip/onboarding-tip.scss?tag=dso-onboarding-tip&encapsulation=shadow","src/components/onboarding-tip/onboarding-tip.tsx"],"sourcesContent":["@use \"~dso-toolkit/src/utilities\";\r\n@use \"~dso-toolkit/src/variables/colors\";\r\n@use \"~dso-toolkit/src/variables/media-query-breakpoints\";\r\n@use \"~dso-toolkit/src/variables/typography\";\r\n@use \"~dso-toolkit/src/variables/units\";\r\n@use \"~dso-toolkit/src/variables/zindex\";\r\n\r\n@use \"~dso-toolkit/src/components/button\";\r\n\r\n@use \"~dso-toolkit/src/global/mixins/set-colors.mixin\" as set-colors;\r\n\r\n@use \"onboarding-tip.variables\" as onboarding-tip-variables;\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::slotted([slot=\"heading\"]) {\r\n display: flex !important;\r\n align-items: center !important;\r\n\r\n margin-block-end: 0 !important;\r\n margin-block-start: 0 !important;\r\n\r\n color: colors.$wit !important;\r\n line-height: 1.375 !important;\r\n}\r\n\r\n:host {\r\n --_dso-button-primary-background-color: #{colors.$wit};\r\n --_dso-button-primary-border-color: #{colors.$wit};\r\n --_dso-button-primary-color: #{colors.$zwart};\r\n --_dso-button-primary-hover-background-color: #{colors.$grijs-20};\r\n --_dso-button-primary-hover-border-color: #{colors.$grijs-20};\r\n --_dso-button-primary-hover-color: #{colors.$zwart};\r\n --_dso-button-primary-active-background-color: #{colors.$grijs-40};\r\n --_dso-button-primary-active-border-color: #{colors.$grijs-40};\r\n --_dso-button-primary-active-color: #{colors.$zwart};\r\n --_dso-button-primary-disabled-background-color: #{colors.$wit};\r\n --_dso-button-primary-disabled-border-color: #{colors.$wit};\r\n --_dso-button-primary-disabled-color: #{colors.$grijs-30};\r\n\r\n --_dso-button-secondary-background-color: #{colors.$wit};\r\n --_dso-button-secondary-border-color: #{colors.$wit};\r\n --_dso-button-secondary-color: #{colors.$zwart};\r\n --_dso-button-secondary-hover-background-color: #{colors.$grijs-20};\r\n --_dso-button-secondary-hover-border-color: #{colors.$grijs-20};\r\n --_dso-button-secondary-hover-color: #{colors.$zwart};\r\n --_dso-button-secondary-active-background-color: #{colors.$grijs-40};\r\n --_dso-button-secondary-active-border-color: #{colors.$grijs-40};\r\n --_dso-button-secondary-active-color: #{colors.$zwart};\r\n --_dso-button-secondary-disabled-background-color: #{colors.$wit};\r\n --_dso-button-secondary-disabled-border-color: #{colors.$wit};\r\n --_dso-button-secondary-disabled-color: #{colors.$grijs-30};\r\n\r\n display: block;\r\n filter: drop-shadow(2px 2px 16px rgba(0, 0, 0, 0.4));\r\n\r\n // Visibility & opacity are updated using Floating-UI\r\n transition:\r\n visibility onboarding-tip-variables.$transition-time,\r\n opacity onboarding-tip-variables.$transition-time;\r\n}\r\n\r\n// Startup fade-in transition\r\n:host(:not([ready])) {\r\n opacity: 1;\r\n animation: onboarding-tip-variables.$transition-time ease-in 1 normal both fadeInOpacity;\r\n}\r\n\r\n:host([popover]) {\r\n margin: 0 !important;\r\n border: 0;\r\n padding: 0;\r\n background-color: transparent;\r\n overflow: unset;\r\n}\r\n\r\n.onboarding-tip {\r\n font-family: typography.$font-family-base;\r\n font-style: normal;\r\n font-weight: 400;\r\n line-height: typography.$line-height-base;\r\n line-break: auto;\r\n text-align: start;\r\n text-decoration: none;\r\n text-shadow: none;\r\n text-transform: none;\r\n letter-spacing: normal;\r\n overflow-wrap: anywhere;\r\n word-spacing: normal;\r\n word-wrap: normal;\r\n white-space: normal;\r\n font-size: typography.$font-size-small;\r\n inset-block-start: 0;\r\n inset-inline-start: 0;\r\n z-index: zindex.$onboarding-tip;\r\n\r\n @media screen and (max-width: onboarding-tip-variables.$max-inline-size) {\r\n padding-inline-start: units.$u1 !important;\r\n }\r\n}\r\n\r\n.dso-close {\r\n @include button.element();\r\n\r\n position: absolute;\r\n inset-block-start: 0;\r\n inset-inline-end: 0;\r\n block-size: units.$u4;\r\n inline-size: units.$u4;\r\n padding: 0;\r\n background-color: transparent;\r\n border: 0;\r\n text-align: center;\r\n}\r\n\r\n.onboarding-tip-inner {\r\n --link-color: #{colors.$wit};\r\n --link-hover-color: #{colors.$grijs-30};\r\n --link-visited-color: #{colors.$grijs-50};\r\n\r\n max-inline-size: min(#{onboarding-tip-variables.$max-inline-size}, calc(100vw - 2 * #{units.$u1}));\r\n max-block-size: calc(100vh - 10px); // 10px is the padding given to floating-ui\r\n overflow: auto;\r\n padding-block: onboarding-tip-variables.$padding-block;\r\n padding-inline: onboarding-tip-variables.$padding-inline;\r\n border-radius: onboarding-tip-variables.$border-radius;\r\n display: block;\r\n font-size: typography.$root-font-size-base;\r\n position: relative;\r\n z-index: 2; // z-index higher than the arrow\r\n\r\n @include set-colors.apply(onboarding-tip-variables.$background-color, $icons: false, $links: false);\r\n\r\n @media screen and (max-width: media-query-breakpoints.$screen-sm-max) {\r\n max-block-size: unset;\r\n }\r\n}\r\n\r\n.onboarding-tip-arrow {\r\n border-start-start-radius: onboarding-tip-variables.$border-radius;\r\n position: absolute;\r\n block-size: onboarding-tip-variables.$arrow-block-size;\r\n inline-size: onboarding-tip-variables.$arrow-inline-size;\r\n background: onboarding-tip-variables.$background-color;\r\n z-index: 1;\r\n pointer-events: none;\r\n}\r\n\r\n.onboarding-tip-content-wrapper {\r\n padding-inline: units.$u2;\r\n padding-block-end: units.$u2;\r\n}\r\n\r\n.onboarding-tip-content-heading {\r\n display: flex;\r\n\r\n dso-icon {\r\n margin-inline-end: units.$u1;\r\n }\r\n}\r\n\r\n@keyframes fadeInOpacity {\r\n 0% {\r\n opacity: 0;\r\n }\r\n 100% {\r\n opacity: 1;\r\n }\r\n}\r\n","import { arrow, autoUpdate, computePosition, flip, hide, offset, shift } from \"@floating-ui/dom\";\r\nimport { Side } from \"@floating-ui/utils\";\r\nimport { Placement } from \"@popperjs/core\";\r\nimport { Component, ComponentInterface, Element, Event, EventEmitter, Host, Prop, State, h } from \"@stencil/core\";\r\n\r\nimport { OnboardingTipCloseEvent, OnboardingTipPlacement } from \"./onboarding-tip.interfaces\";\r\n\r\n@Component({\r\n tag: \"dso-onboarding-tip\",\r\n styleUrl: \"onboarding-tip.scss\",\r\n shadow: true,\r\n})\r\nexport class OnboardingTip implements ComponentInterface {\r\n @Element()\r\n private host!: HTMLDsoOnboardingTipElement;\r\n\r\n /**\r\n * Where to place the Onboarding Tip relative to its reference element.\r\n */\r\n @Prop()\r\n placement: OnboardingTipPlacement = \"right\";\r\n\r\n /**\r\n * Emitted when the user closes the Onboarding Tip.\r\n */\r\n @Event()\r\n dsoClose!: EventEmitter<OnboardingTipCloseEvent>;\r\n\r\n @State()\r\n ready = false;\r\n\r\n componentDidRender() {\r\n if (!this.host.matches(\":popover-open\")) {\r\n this.host.showPopover();\r\n }\r\n\r\n if (!this.cleanUp && this.referenceElement && this.tipArrowRef instanceof HTMLElement) {\r\n this.cleanUp = OnboardingTip.positionTip(this.referenceElement, this.host, this.tipArrowRef, this.placement);\r\n }\r\n }\r\n\r\n disconnectedCallback(): void {\r\n if (this.host.matches(\":popover-open\")) {\r\n this.host.hidePopover();\r\n }\r\n\r\n this.cleanUp?.();\r\n this.cleanUp = undefined;\r\n }\r\n\r\n /**\r\n * This function positions the Onboarding Tip relative to its reference element. It is static so the position is calculated\r\n * only using the passed arguments.\r\n */\r\n private static positionTip(\r\n referenceElement: HTMLElement,\r\n tipRef: HTMLDsoOnboardingTipElement,\r\n tipArrowRef: HTMLDivElement,\r\n position: Side,\r\n ) {\r\n const padding = 5;\r\n return autoUpdate(referenceElement, tipRef, () => {\r\n const arrowLength = tipArrowRef.offsetWidth;\r\n\r\n // Get half the arrow box's hypotenuse length\r\n const mainAxisOffset = Math.sqrt(2 * arrowLength ** 2) / 2;\r\n\r\n // 1.5 times the diagonal of the arrow box\r\n const arrowPadding = arrowLength * Math.sqrt(2) * 1.5;\r\n\r\n // Same as media-query-breakpoints.$screen-md-min\r\n const smallViewport = document.body.clientWidth < 992;\r\n\r\n // Only use top and bottom placement when the viewport is small\r\n const placement: Placement = smallViewport ? \"top\" : `${position}-start`;\r\n\r\n computePosition(referenceElement, tipRef, {\r\n strategy: \"fixed\",\r\n middleware: [\r\n offset({\r\n mainAxis: mainAxisOffset,\r\n alignmentAxis: -arrowPadding,\r\n }),\r\n flip({\r\n padding,\r\n }),\r\n shift({\r\n padding,\r\n }),\r\n arrow({\r\n padding: arrowPadding,\r\n element: tipArrowRef,\r\n }),\r\n hide({\r\n padding: arrowPadding + arrowLength + padding,\r\n }),\r\n ],\r\n placement,\r\n }).then(({ x, y, middlewareData, placement: computedPlacement }) => {\r\n if (middlewareData.hide) {\r\n // Tooltip needs to be visible at all times on small viewports\r\n const disappear = !smallViewport && middlewareData.hide.referenceHidden;\r\n Object.assign(tipRef.style, {\r\n // Both of these properties have a CSS transition\r\n visibility: disappear ? \"hidden\" : \"visible\",\r\n opacity: disappear ? 0 : 1,\r\n });\r\n }\r\n\r\n Object.assign(tipRef.style, {\r\n left: `${x}px`,\r\n top: `${y}px`,\r\n });\r\n\r\n const side = computedPlacement.split(\"-\")[0];\r\n\r\n const staticSide = side\r\n ? {\r\n top: \"bottom\",\r\n right: \"left\",\r\n bottom: \"top\",\r\n left: \"right\",\r\n }[side]\r\n : \"top\";\r\n\r\n let angle;\r\n switch (staticSide) {\r\n default:\r\n case \"top\":\r\n angle = 45;\r\n break;\r\n case \"right\":\r\n angle = 135;\r\n break;\r\n case \"bottom\":\r\n angle = 225;\r\n break;\r\n case \"left\":\r\n angle = 315;\r\n break;\r\n }\r\n\r\n if (middlewareData.arrow && staticSide) {\r\n const { x: arrowX, y: arrowY } = middlewareData.arrow;\r\n\r\n Object.assign(tipArrowRef.style, {\r\n right: \"\",\r\n bottom: \"\",\r\n left: arrowX ? `${arrowX}px` : \"\",\r\n top: arrowY ? `${arrowY}px` : \"\",\r\n [staticSide]: `${-arrowLength / 2}px`,\r\n transform: `rotate(${angle}deg)`,\r\n });\r\n }\r\n });\r\n });\r\n }\r\n\r\n render() {\r\n return (\r\n <Host popover=\"manual\" ready={this.ready} onAnimationend={() => (this.ready = true)}>\r\n <div class=\"onboarding-tip\" role=\"tooltip\">\r\n <div class=\"onboarding-tip-inner\">\r\n <div class=\"onboarding-tip-content-wrapper\">\r\n {this.headingSlottedElement !== null && (\r\n <div class=\"onboarding-tip-content-heading\">\r\n <dso-icon icon=\"light-bulb\"></dso-icon>\r\n <slot name=\"heading\" />\r\n </div>\r\n )}\r\n <button type=\"button\" class=\"dso-close\" onClick={(e) => this.dsoClose.emit({ originalEvent: e })}>\r\n <dso-icon icon=\"times\"></dso-icon>\r\n <span class=\"sr-only\">Sluiten</span>\r\n </button>\r\n <slot></slot>\r\n </div>\r\n </div>\r\n <div class=\"onboarding-tip-arrow\" ref={(ref) => (this.tipArrowRef = ref)}></div>\r\n </div>\r\n </Host>\r\n );\r\n }\r\n\r\n private tipArrowRef: HTMLDivElement | undefined;\r\n\r\n private get headingSlottedElement() {\r\n return this.host.querySelector(\"[slot='heading']\");\r\n }\r\n\r\n private cleanUp: ReturnType<typeof autoUpdate> | undefined;\r\n\r\n private get referenceElement(): HTMLElement | undefined {\r\n const id = this.host.id;\r\n\r\n if (!id) {\r\n console.warn(\"Unable to find reference. Onboarding Tip has no [id] attribute.\");\r\n\r\n return;\r\n }\r\n\r\n const rootNode = this.host.getRootNode();\r\n if (!(rootNode instanceof Document || rootNode instanceof ShadowRoot)) {\r\n console.warn(`rootNode is not instance of Document or ShadowRoot`);\r\n\r\n return;\r\n }\r\n\r\n const reference = rootNode.querySelector<HTMLElement>(`[aria-describedby=\"${id}`);\r\n if (!reference) {\r\n console.warn(`Unable to find reference element with aria-describedby ${id}`);\r\n\r\n return;\r\n }\r\n\r\n return reference;\r\n }\r\n}\r\n"],"version":3}
1
+ {"file":"dso-onboarding-tip.entry.cjs.js","mappings":"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","names":["autoUpdate","computePosition","offset","flip","shift","arrow","hide","h","Host"],"sources":["src/components/onboarding-tip/onboarding-tip.scss?tag=dso-onboarding-tip&encapsulation=shadow","src/components/onboarding-tip/onboarding-tip.tsx"],"sourcesContent":["@use \"~dso-toolkit/src/utilities\";\r\n@use \"~dso-toolkit/src/variables/colors\";\r\n@use \"~dso-toolkit/src/variables/media-query-breakpoints\";\r\n@use \"~dso-toolkit/src/variables/typography\";\r\n@use \"~dso-toolkit/src/variables/units\";\r\n@use \"~dso-toolkit/src/variables/zindex\";\r\n\r\n@use \"~dso-toolkit/src/components/button\";\r\n\r\n@use \"~dso-toolkit/src/global/mixins/set-colors.mixin\" as set-colors;\r\n\r\n@use \"onboarding-tip.variables\" as onboarding-tip-variables;\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::slotted([slot=\"heading\"]) {\r\n display: flex !important;\r\n align-items: center !important;\r\n\r\n margin-block-end: 0 !important;\r\n margin-block-start: 0 !important;\r\n\r\n color: colors.$wit !important;\r\n line-height: 1.375 !important;\r\n}\r\n\r\n:host {\r\n --_dso-button-primary-background-color: #{colors.$wit};\r\n --_dso-button-primary-border-color: #{colors.$wit};\r\n --_dso-button-primary-color: #{colors.$zwart};\r\n --_dso-button-primary-hover-background-color: #{colors.$grijs-20};\r\n --_dso-button-primary-hover-border-color: #{colors.$grijs-20};\r\n --_dso-button-primary-hover-color: #{colors.$zwart};\r\n --_dso-button-primary-active-background-color: #{colors.$grijs-40};\r\n --_dso-button-primary-active-border-color: #{colors.$grijs-40};\r\n --_dso-button-primary-active-color: #{colors.$zwart};\r\n --_dso-button-primary-disabled-background-color: #{colors.$wit};\r\n --_dso-button-primary-disabled-border-color: #{colors.$wit};\r\n --_dso-button-primary-disabled-color: #{colors.$grijs-30};\r\n\r\n --_dso-button-secondary-background-color: #{colors.$wit};\r\n --_dso-button-secondary-border-color: #{colors.$wit};\r\n --_dso-button-secondary-color: #{colors.$zwart};\r\n --_dso-button-secondary-hover-background-color: #{colors.$grijs-20};\r\n --_dso-button-secondary-hover-border-color: #{colors.$grijs-20};\r\n --_dso-button-secondary-hover-color: #{colors.$zwart};\r\n --_dso-button-secondary-active-background-color: #{colors.$grijs-40};\r\n --_dso-button-secondary-active-border-color: #{colors.$grijs-40};\r\n --_dso-button-secondary-active-color: #{colors.$zwart};\r\n --_dso-button-secondary-disabled-background-color: #{colors.$wit};\r\n --_dso-button-secondary-disabled-border-color: #{colors.$wit};\r\n --_dso-button-secondary-disabled-color: #{colors.$grijs-30};\r\n\r\n display: block;\r\n filter: drop-shadow(2px 2px 16px rgba(0, 0, 0, 0.4));\r\n\r\n // Visibility & opacity are updated using Floating-UI\r\n transition:\r\n visibility onboarding-tip-variables.$transition-time,\r\n opacity onboarding-tip-variables.$transition-time;\r\n}\r\n\r\n// Startup fade-in transition\r\n:host(:not([ready])) {\r\n opacity: 1;\r\n animation: onboarding-tip-variables.$transition-time ease-in 1 normal both fadeInOpacity;\r\n}\r\n\r\n:host([popover]) {\r\n margin: 0 !important;\r\n border: 0;\r\n padding: 0;\r\n background-color: transparent;\r\n overflow: unset;\r\n}\r\n\r\n.onboarding-tip {\r\n font-family: typography.$font-family-base;\r\n font-style: normal;\r\n font-weight: 400;\r\n line-height: typography.$line-height-base;\r\n line-break: auto;\r\n text-align: start;\r\n text-decoration: none;\r\n text-shadow: none;\r\n text-transform: none;\r\n letter-spacing: normal;\r\n overflow-wrap: anywhere;\r\n word-spacing: normal;\r\n word-wrap: normal;\r\n white-space: normal;\r\n font-size: typography.$font-size-small;\r\n inset-block-start: 0;\r\n inset-inline-start: 0;\r\n z-index: zindex.$onboarding-tip;\r\n\r\n @media screen and (max-width: onboarding-tip-variables.$max-inline-size) {\r\n padding-inline-start: units.$u1 !important;\r\n }\r\n}\r\n\r\n.dso-close {\r\n @include button.element();\r\n\r\n position: absolute;\r\n inset-block-start: 0;\r\n inset-inline-end: 0;\r\n block-size: units.$u4;\r\n inline-size: units.$u4;\r\n padding: 0;\r\n background-color: transparent;\r\n border: 0;\r\n text-align: center;\r\n}\r\n\r\n.onboarding-tip-inner {\r\n --link-color: #{colors.$wit};\r\n --link-hover-color: #{colors.$grijs-30};\r\n --link-visited-color: #{colors.$grijs-50};\r\n\r\n max-inline-size: min(#{onboarding-tip-variables.$max-inline-size}, calc(100vw - 2 * #{units.$u1}));\r\n max-block-size: calc(100vh - 10px); // 10px is the padding given to floating-ui\r\n overflow: auto;\r\n padding-block: onboarding-tip-variables.$padding-block;\r\n padding-inline: onboarding-tip-variables.$padding-inline;\r\n border-radius: onboarding-tip-variables.$border-radius;\r\n display: block;\r\n font-size: typography.$root-font-size-base;\r\n position: relative;\r\n z-index: 2; // z-index higher than the arrow\r\n\r\n @include set-colors.apply(onboarding-tip-variables.$background-color, $icons: false, $links: false);\r\n\r\n @media screen and (max-width: media-query-breakpoints.$screen-sm-max) {\r\n max-block-size: unset;\r\n }\r\n}\r\n\r\n.onboarding-tip-arrow {\r\n border-start-start-radius: onboarding-tip-variables.$border-radius;\r\n position: absolute;\r\n block-size: onboarding-tip-variables.$arrow-block-size;\r\n inline-size: onboarding-tip-variables.$arrow-inline-size;\r\n background: onboarding-tip-variables.$background-color;\r\n z-index: 1;\r\n pointer-events: none;\r\n}\r\n\r\n.onboarding-tip-content-wrapper {\r\n padding-inline: units.$u2;\r\n padding-block-end: units.$u2;\r\n}\r\n\r\n.onboarding-tip-content-heading {\r\n display: flex;\r\n\r\n dso-icon {\r\n margin-inline-end: units.$u1;\r\n }\r\n}\r\n\r\n@keyframes fadeInOpacity {\r\n 0% {\r\n opacity: 0;\r\n }\r\n 100% {\r\n opacity: 1;\r\n }\r\n}\r\n","import { arrow, autoUpdate, computePosition, flip, hide, offset, shift } from \"@floating-ui/dom\";\r\nimport { Side } from \"@floating-ui/utils\";\r\nimport { Placement } from \"@popperjs/core\";\r\nimport { Component, ComponentInterface, Element, Event, EventEmitter, Host, Prop, State, h } from \"@stencil/core\";\r\n\r\nimport { OnboardingTipCloseEvent, OnboardingTipPlacement } from \"./onboarding-tip.interfaces\";\r\n\r\n@Component({\r\n tag: \"dso-onboarding-tip\",\r\n styleUrl: \"onboarding-tip.scss\",\r\n shadow: true,\r\n})\r\nexport class OnboardingTip implements ComponentInterface {\r\n @Element()\r\n private host!: HTMLDsoOnboardingTipElement;\r\n\r\n /**\r\n * Where to place the Onboarding Tip relative to its reference element.\r\n */\r\n @Prop()\r\n placement: OnboardingTipPlacement = \"right\";\r\n\r\n /**\r\n * Emitted when the user closes the Onboarding Tip.\r\n */\r\n @Event()\r\n dsoClose!: EventEmitter<OnboardingTipCloseEvent>;\r\n\r\n @State()\r\n ready = false;\r\n\r\n componentDidRender() {\r\n if (!this.host.matches(\":popover-open\")) {\r\n this.host.showPopover();\r\n }\r\n\r\n if (!this.cleanUp && this.referenceElement && this.tipArrowRef instanceof HTMLElement) {\r\n this.cleanUp = OnboardingTip.positionTip(this.referenceElement, this.host, this.tipArrowRef, this.placement);\r\n }\r\n }\r\n\r\n disconnectedCallback(): void {\r\n if (this.host.matches(\":popover-open\")) {\r\n this.host.hidePopover();\r\n }\r\n\r\n this.cleanUp?.();\r\n this.cleanUp = undefined;\r\n }\r\n\r\n /**\r\n * This function positions the Onboarding Tip relative to its reference element. It is static so the position is calculated\r\n * only using the passed arguments.\r\n */\r\n private static positionTip(\r\n referenceElement: HTMLElement,\r\n tipRef: HTMLDsoOnboardingTipElement,\r\n tipArrowRef: HTMLDivElement,\r\n position: Side,\r\n ) {\r\n const padding = 5;\r\n return autoUpdate(referenceElement, tipRef, () => {\r\n const arrowLength = tipArrowRef.offsetWidth;\r\n\r\n // Get half the arrow box's hypotenuse length\r\n const mainAxisOffset = Math.sqrt(2 * arrowLength ** 2) / 2;\r\n\r\n // 1.5 times the diagonal of the arrow box\r\n const arrowPadding = arrowLength * Math.sqrt(2) * 1.5;\r\n\r\n // Same as media-query-breakpoints.$screen-md-min\r\n const smallViewport = document.body.clientWidth < 992;\r\n\r\n // Only use top and bottom placement when the viewport is small\r\n const placement: Placement = smallViewport ? \"top\" : `${position}-start`;\r\n\r\n computePosition(referenceElement, tipRef, {\r\n strategy: \"fixed\",\r\n middleware: [\r\n offset({\r\n mainAxis: mainAxisOffset,\r\n alignmentAxis: -arrowPadding,\r\n }),\r\n flip({\r\n padding,\r\n }),\r\n shift({\r\n padding,\r\n }),\r\n arrow({\r\n padding: arrowPadding,\r\n element: tipArrowRef,\r\n }),\r\n hide({\r\n padding: arrowPadding + arrowLength + padding,\r\n }),\r\n ],\r\n placement,\r\n }).then(({ x, y, middlewareData, placement: computedPlacement }) => {\r\n if (middlewareData.hide) {\r\n // Tooltip needs to be visible at all times on small viewports\r\n const disappear = !smallViewport && middlewareData.hide.referenceHidden;\r\n Object.assign(tipRef.style, {\r\n // Both of these properties have a CSS transition\r\n visibility: disappear ? \"hidden\" : \"visible\",\r\n opacity: disappear ? 0 : 1,\r\n });\r\n }\r\n\r\n Object.assign(tipRef.style, {\r\n left: `${x}px`,\r\n top: `${y}px`,\r\n });\r\n\r\n const side = computedPlacement.split(\"-\")[0];\r\n\r\n const staticSide = side\r\n ? {\r\n top: \"bottom\",\r\n right: \"left\",\r\n bottom: \"top\",\r\n left: \"right\",\r\n }[side]\r\n : \"top\";\r\n\r\n let angle;\r\n switch (staticSide) {\r\n default:\r\n case \"top\":\r\n angle = 45;\r\n break;\r\n case \"right\":\r\n angle = 135;\r\n break;\r\n case \"bottom\":\r\n angle = 225;\r\n break;\r\n case \"left\":\r\n angle = 315;\r\n break;\r\n }\r\n\r\n if (middlewareData.arrow && staticSide) {\r\n const { x: arrowX, y: arrowY } = middlewareData.arrow;\r\n\r\n Object.assign(tipArrowRef.style, {\r\n right: \"\",\r\n bottom: \"\",\r\n left: arrowX ? `${arrowX}px` : \"\",\r\n top: arrowY ? `${arrowY}px` : \"\",\r\n [staticSide]: `${-arrowLength / 2}px`,\r\n transform: `rotate(${angle}deg)`,\r\n });\r\n }\r\n });\r\n });\r\n }\r\n\r\n render() {\r\n return (\r\n <Host popover=\"manual\" ready={this.ready} onAnimationend={() => (this.ready = true)}>\r\n <div class=\"onboarding-tip\" role=\"tooltip\">\r\n <div class=\"onboarding-tip-inner\">\r\n <div class=\"onboarding-tip-content-wrapper\">\r\n {this.headingSlottedElement !== null && (\r\n <div class=\"onboarding-tip-content-heading\">\r\n <dso-icon icon=\"light-bulb\"></dso-icon>\r\n <slot name=\"heading\" />\r\n </div>\r\n )}\r\n <button type=\"button\" class=\"dso-close\" onClick={(e) => this.dsoClose.emit({ originalEvent: e })}>\r\n <dso-icon icon=\"times\"></dso-icon>\r\n <span class=\"sr-only\">Sluiten</span>\r\n </button>\r\n <slot></slot>\r\n </div>\r\n </div>\r\n <div class=\"onboarding-tip-arrow\" ref={(ref) => (this.tipArrowRef = ref)}></div>\r\n </div>\r\n </Host>\r\n );\r\n }\r\n\r\n private tipArrowRef: HTMLDivElement | undefined;\r\n\r\n private get headingSlottedElement() {\r\n return this.host.querySelector(\"[slot='heading']\");\r\n }\r\n\r\n private cleanUp: ReturnType<typeof autoUpdate> | undefined;\r\n\r\n private get referenceElement(): HTMLElement | undefined {\r\n const id = this.host.id;\r\n\r\n if (!id) {\r\n console.warn(\"Unable to find reference. Onboarding Tip has no [id] attribute.\");\r\n\r\n return;\r\n }\r\n\r\n const rootNode = this.host.getRootNode();\r\n if (!(rootNode instanceof Document || rootNode instanceof ShadowRoot)) {\r\n console.warn(`rootNode is not instance of Document or ShadowRoot`);\r\n\r\n return;\r\n }\r\n\r\n const reference = rootNode.querySelector<HTMLElement>(`[aria-describedby=\"${id}`);\r\n if (!reference) {\r\n console.warn(`Unable to find reference element with aria-describedby ${id}`);\r\n\r\n return;\r\n }\r\n\r\n return reference;\r\n }\r\n}\r\n"],"version":3}
@@ -1 +1 @@
1
- {"version":3,"file":"dso-onboarding-tip.entry.cjs.js","sources":["src/components/onboarding-tip/onboarding-tip.scss?tag=dso-onboarding-tip&encapsulation=shadow","src/components/onboarding-tip/onboarding-tip.tsx"],"sourcesContent":["@use \"~dso-toolkit/src/utilities\";\r\n@use \"~dso-toolkit/src/variables/colors\";\r\n@use \"~dso-toolkit/src/variables/media-query-breakpoints\";\r\n@use \"~dso-toolkit/src/variables/typography\";\r\n@use \"~dso-toolkit/src/variables/units\";\r\n@use \"~dso-toolkit/src/variables/zindex\";\r\n\r\n@use \"~dso-toolkit/src/components/button\";\r\n\r\n@use \"~dso-toolkit/src/global/mixins/set-colors.mixin\" as set-colors;\r\n\r\n@use \"onboarding-tip.variables\" as onboarding-tip-variables;\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::slotted([slot=\"heading\"]) {\r\n display: flex !important;\r\n align-items: center !important;\r\n\r\n margin-block-end: 0 !important;\r\n margin-block-start: 0 !important;\r\n\r\n color: colors.$wit !important;\r\n line-height: 1.375 !important;\r\n}\r\n\r\n:host {\r\n --_dso-button-primary-background-color: #{colors.$wit};\r\n --_dso-button-primary-border-color: #{colors.$wit};\r\n --_dso-button-primary-color: #{colors.$zwart};\r\n --_dso-button-primary-hover-background-color: #{colors.$grijs-20};\r\n --_dso-button-primary-hover-border-color: #{colors.$grijs-20};\r\n --_dso-button-primary-hover-color: #{colors.$zwart};\r\n --_dso-button-primary-active-background-color: #{colors.$grijs-40};\r\n --_dso-button-primary-active-border-color: #{colors.$grijs-40};\r\n --_dso-button-primary-active-color: #{colors.$zwart};\r\n --_dso-button-primary-disabled-background-color: #{colors.$wit};\r\n --_dso-button-primary-disabled-border-color: #{colors.$wit};\r\n --_dso-button-primary-disabled-color: #{colors.$grijs-30};\r\n\r\n --_dso-button-secondary-background-color: #{colors.$wit};\r\n --_dso-button-secondary-border-color: #{colors.$wit};\r\n --_dso-button-secondary-color: #{colors.$zwart};\r\n --_dso-button-secondary-hover-background-color: #{colors.$grijs-20};\r\n --_dso-button-secondary-hover-border-color: #{colors.$grijs-20};\r\n --_dso-button-secondary-hover-color: #{colors.$zwart};\r\n --_dso-button-secondary-active-background-color: #{colors.$grijs-40};\r\n --_dso-button-secondary-active-border-color: #{colors.$grijs-40};\r\n --_dso-button-secondary-active-color: #{colors.$zwart};\r\n --_dso-button-secondary-disabled-background-color: #{colors.$wit};\r\n --_dso-button-secondary-disabled-border-color: #{colors.$wit};\r\n --_dso-button-secondary-disabled-color: #{colors.$grijs-30};\r\n\r\n display: block;\r\n filter: drop-shadow(2px 2px 16px rgba(0, 0, 0, 0.4));\r\n\r\n // Visibility & opacity are updated using Floating-UI\r\n transition:\r\n visibility onboarding-tip-variables.$transition-time,\r\n opacity onboarding-tip-variables.$transition-time;\r\n}\r\n\r\n// Startup fade-in transition\r\n:host(:not([ready])) {\r\n opacity: 1;\r\n animation: onboarding-tip-variables.$transition-time ease-in 1 normal both fadeInOpacity;\r\n}\r\n\r\n:host([popover]) {\r\n margin: 0 !important;\r\n border: 0;\r\n padding: 0;\r\n background-color: transparent;\r\n overflow: unset;\r\n}\r\n\r\n.onboarding-tip {\r\n font-family: typography.$font-family-base;\r\n font-style: normal;\r\n font-weight: 400;\r\n line-height: typography.$line-height-base;\r\n line-break: auto;\r\n text-align: start;\r\n text-decoration: none;\r\n text-shadow: none;\r\n text-transform: none;\r\n letter-spacing: normal;\r\n overflow-wrap: anywhere;\r\n word-spacing: normal;\r\n word-wrap: normal;\r\n white-space: normal;\r\n font-size: typography.$font-size-small;\r\n inset-block-start: 0;\r\n inset-inline-start: 0;\r\n z-index: zindex.$onboarding-tip;\r\n\r\n @media screen and (max-width: onboarding-tip-variables.$max-inline-size) {\r\n padding-inline-start: units.$u1 !important;\r\n }\r\n}\r\n\r\n.dso-close {\r\n @include button.element();\r\n\r\n position: absolute;\r\n inset-block-start: 0;\r\n inset-inline-end: 0;\r\n block-size: units.$u4;\r\n inline-size: units.$u4;\r\n padding: 0;\r\n background-color: transparent;\r\n border: 0;\r\n text-align: center;\r\n}\r\n\r\n.onboarding-tip-inner {\r\n --link-color: #{colors.$wit};\r\n --link-hover-color: #{colors.$grijs-30};\r\n --link-visited-color: #{colors.$grijs-50};\r\n\r\n max-inline-size: min(#{onboarding-tip-variables.$max-inline-size}, calc(100vw - 2 * #{units.$u1}));\r\n max-block-size: calc(100vh - 10px); // 10px is the padding given to floating-ui\r\n overflow: auto;\r\n padding-block: onboarding-tip-variables.$padding-block;\r\n padding-inline: onboarding-tip-variables.$padding-inline;\r\n border-radius: onboarding-tip-variables.$border-radius;\r\n display: block;\r\n font-size: typography.$root-font-size-base;\r\n position: relative;\r\n z-index: 2; // z-index higher than the arrow\r\n\r\n @include set-colors.apply(onboarding-tip-variables.$background-color, $icons: false, $links: false);\r\n\r\n @media screen and (max-width: media-query-breakpoints.$screen-sm-max) {\r\n max-block-size: unset;\r\n }\r\n}\r\n\r\n.onboarding-tip-arrow {\r\n border-start-start-radius: onboarding-tip-variables.$border-radius;\r\n position: absolute;\r\n block-size: onboarding-tip-variables.$arrow-block-size;\r\n inline-size: onboarding-tip-variables.$arrow-inline-size;\r\n background: onboarding-tip-variables.$background-color;\r\n z-index: 1;\r\n pointer-events: none;\r\n}\r\n\r\n.onboarding-tip-content-wrapper {\r\n padding-inline: units.$u2;\r\n padding-block-end: units.$u2;\r\n}\r\n\r\n.onboarding-tip-content-heading {\r\n display: flex;\r\n\r\n dso-icon {\r\n margin-inline-end: units.$u1;\r\n }\r\n}\r\n\r\n@keyframes fadeInOpacity {\r\n 0% {\r\n opacity: 0;\r\n }\r\n 100% {\r\n opacity: 1;\r\n }\r\n}\r\n","import { arrow, autoUpdate, computePosition, flip, hide, offset, shift } from \"@floating-ui/dom\";\r\nimport { Side } from \"@floating-ui/utils\";\r\nimport { Placement } from \"@popperjs/core\";\r\nimport { Component, ComponentInterface, Element, Event, EventEmitter, Host, Prop, State, h } from \"@stencil/core\";\r\n\r\nimport { OnboardingTipCloseEvent, OnboardingTipPlacement } from \"./onboarding-tip.interfaces\";\r\n\r\n@Component({\r\n tag: \"dso-onboarding-tip\",\r\n styleUrl: \"onboarding-tip.scss\",\r\n shadow: true,\r\n})\r\nexport class OnboardingTip implements ComponentInterface {\r\n @Element()\r\n private host!: HTMLDsoOnboardingTipElement;\r\n\r\n /**\r\n * Where to place the Onboarding Tip relative to its reference element.\r\n */\r\n @Prop()\r\n placement: OnboardingTipPlacement = \"right\";\r\n\r\n /**\r\n * Emitted when the user closes the Onboarding Tip.\r\n */\r\n @Event()\r\n dsoClose!: EventEmitter<OnboardingTipCloseEvent>;\r\n\r\n @State()\r\n ready = false;\r\n\r\n componentDidRender() {\r\n if (!this.host.matches(\":popover-open\")) {\r\n this.host.showPopover();\r\n }\r\n\r\n if (!this.cleanUp && this.referenceElement && this.tipArrowRef instanceof HTMLElement) {\r\n this.cleanUp = OnboardingTip.positionTip(this.referenceElement, this.host, this.tipArrowRef, this.placement);\r\n }\r\n }\r\n\r\n disconnectedCallback(): void {\r\n if (this.host.matches(\":popover-open\")) {\r\n this.host.hidePopover();\r\n }\r\n\r\n this.cleanUp?.();\r\n this.cleanUp = undefined;\r\n }\r\n\r\n /**\r\n * This function positions the Onboarding Tip relative to its reference element. It is static so the position is calculated\r\n * only using the passed arguments.\r\n */\r\n private static positionTip(\r\n referenceElement: HTMLElement,\r\n tipRef: HTMLDsoOnboardingTipElement,\r\n tipArrowRef: HTMLDivElement,\r\n position: Side,\r\n ) {\r\n const padding = 5;\r\n return autoUpdate(referenceElement, tipRef, () => {\r\n const arrowLength = tipArrowRef.offsetWidth;\r\n\r\n // Get half the arrow box's hypotenuse length\r\n const mainAxisOffset = Math.sqrt(2 * arrowLength ** 2) / 2;\r\n\r\n // 1.5 times the diagonal of the arrow box\r\n const arrowPadding = arrowLength * Math.sqrt(2) * 1.5;\r\n\r\n // Same as media-query-breakpoints.$screen-md-min\r\n const smallViewport = document.body.clientWidth < 992;\r\n\r\n // Only use top and bottom placement when the viewport is small\r\n const placement: Placement = smallViewport ? \"top\" : `${position}-start`;\r\n\r\n computePosition(referenceElement, tipRef, {\r\n strategy: \"fixed\",\r\n middleware: [\r\n offset({\r\n mainAxis: mainAxisOffset,\r\n alignmentAxis: -arrowPadding,\r\n }),\r\n flip({\r\n padding,\r\n }),\r\n shift({\r\n padding,\r\n }),\r\n arrow({\r\n padding: arrowPadding,\r\n element: tipArrowRef,\r\n }),\r\n hide({\r\n padding: arrowPadding + arrowLength + padding,\r\n }),\r\n ],\r\n placement,\r\n }).then(({ x, y, middlewareData, placement: computedPlacement }) => {\r\n if (middlewareData.hide) {\r\n // Tooltip needs to be visible at all times on small viewports\r\n const disappear = !smallViewport && middlewareData.hide.referenceHidden;\r\n Object.assign(tipRef.style, {\r\n // Both of these properties have a CSS transition\r\n visibility: disappear ? \"hidden\" : \"visible\",\r\n opacity: disappear ? 0 : 1,\r\n });\r\n }\r\n\r\n Object.assign(tipRef.style, {\r\n left: `${x}px`,\r\n top: `${y}px`,\r\n });\r\n\r\n const side = computedPlacement.split(\"-\")[0];\r\n\r\n const staticSide = side\r\n ? {\r\n top: \"bottom\",\r\n right: \"left\",\r\n bottom: \"top\",\r\n left: \"right\",\r\n }[side]\r\n : \"top\";\r\n\r\n let angle;\r\n switch (staticSide) {\r\n default:\r\n case \"top\":\r\n angle = 45;\r\n break;\r\n case \"right\":\r\n angle = 135;\r\n break;\r\n case \"bottom\":\r\n angle = 225;\r\n break;\r\n case \"left\":\r\n angle = 315;\r\n break;\r\n }\r\n\r\n if (middlewareData.arrow && staticSide) {\r\n const { x: arrowX, y: arrowY } = middlewareData.arrow;\r\n\r\n Object.assign(tipArrowRef.style, {\r\n right: \"\",\r\n bottom: \"\",\r\n left: arrowX ? `${arrowX}px` : \"\",\r\n top: arrowY ? `${arrowY}px` : \"\",\r\n [staticSide]: `${-arrowLength / 2}px`,\r\n transform: `rotate(${angle}deg)`,\r\n });\r\n }\r\n });\r\n });\r\n }\r\n\r\n render() {\r\n return (\r\n <Host popover=\"manual\" ready={this.ready} onAnimationend={() => (this.ready = true)}>\r\n <div class=\"onboarding-tip\" role=\"tooltip\">\r\n <div class=\"onboarding-tip-inner\">\r\n <div class=\"onboarding-tip-content-wrapper\">\r\n {this.headingSlottedElement !== null && (\r\n <div class=\"onboarding-tip-content-heading\">\r\n <dso-icon icon=\"light-bulb\"></dso-icon>\r\n <slot name=\"heading\" />\r\n </div>\r\n )}\r\n <button type=\"button\" class=\"dso-close\" onClick={(e) => this.dsoClose.emit({ originalEvent: e })}>\r\n <dso-icon icon=\"times\"></dso-icon>\r\n <span class=\"sr-only\">Sluiten</span>\r\n </button>\r\n <slot></slot>\r\n </div>\r\n </div>\r\n <div class=\"onboarding-tip-arrow\" ref={(ref) => (this.tipArrowRef = ref)}></div>\r\n </div>\r\n </Host>\r\n );\r\n }\r\n\r\n private tipArrowRef: HTMLDivElement | undefined;\r\n\r\n private get headingSlottedElement() {\r\n return this.host.querySelector(\"[slot='heading']\");\r\n }\r\n\r\n private cleanUp: ReturnType<typeof autoUpdate> | undefined;\r\n\r\n private get referenceElement(): HTMLElement | undefined {\r\n const id = this.host.id;\r\n\r\n if (!id) {\r\n console.warn(\"Unable to find reference. Onboarding Tip has no [id] attribute.\");\r\n\r\n return;\r\n }\r\n\r\n const rootNode = this.host.getRootNode();\r\n if (!(rootNode instanceof Document || rootNode instanceof ShadowRoot)) {\r\n console.warn(`rootNode is not instance of Document or ShadowRoot`);\r\n\r\n return;\r\n }\r\n\r\n const reference = rootNode.querySelector<HTMLElement>(`[aria-describedby=\"${id}`);\r\n if (!reference) {\r\n console.warn(`Unable to find reference element with aria-describedby ${id}`);\r\n\r\n return;\r\n }\r\n\r\n return reference;\r\n }\r\n}\r\n"],"names":["autoUpdate","computePosition","offset","flip","shift","arrow","hide","h","Host"],"mappings":"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"}
1
+ {"version":3,"file":"dso-onboarding-tip.entry.cjs.js","sources":["src/components/onboarding-tip/onboarding-tip.scss?tag=dso-onboarding-tip&encapsulation=shadow","src/components/onboarding-tip/onboarding-tip.tsx"],"sourcesContent":["@use \"~dso-toolkit/src/utilities\";\r\n@use \"~dso-toolkit/src/variables/colors\";\r\n@use \"~dso-toolkit/src/variables/media-query-breakpoints\";\r\n@use \"~dso-toolkit/src/variables/typography\";\r\n@use \"~dso-toolkit/src/variables/units\";\r\n@use \"~dso-toolkit/src/variables/zindex\";\r\n\r\n@use \"~dso-toolkit/src/components/button\";\r\n\r\n@use \"~dso-toolkit/src/global/mixins/set-colors.mixin\" as set-colors;\r\n\r\n@use \"onboarding-tip.variables\" as onboarding-tip-variables;\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::slotted([slot=\"heading\"]) {\r\n display: flex !important;\r\n align-items: center !important;\r\n\r\n margin-block-end: 0 !important;\r\n margin-block-start: 0 !important;\r\n\r\n color: colors.$wit !important;\r\n line-height: 1.375 !important;\r\n}\r\n\r\n:host {\r\n --_dso-button-primary-background-color: #{colors.$wit};\r\n --_dso-button-primary-border-color: #{colors.$wit};\r\n --_dso-button-primary-color: #{colors.$zwart};\r\n --_dso-button-primary-hover-background-color: #{colors.$grijs-20};\r\n --_dso-button-primary-hover-border-color: #{colors.$grijs-20};\r\n --_dso-button-primary-hover-color: #{colors.$zwart};\r\n --_dso-button-primary-active-background-color: #{colors.$grijs-40};\r\n --_dso-button-primary-active-border-color: #{colors.$grijs-40};\r\n --_dso-button-primary-active-color: #{colors.$zwart};\r\n --_dso-button-primary-disabled-background-color: #{colors.$wit};\r\n --_dso-button-primary-disabled-border-color: #{colors.$wit};\r\n --_dso-button-primary-disabled-color: #{colors.$grijs-30};\r\n\r\n --_dso-button-secondary-background-color: #{colors.$wit};\r\n --_dso-button-secondary-border-color: #{colors.$wit};\r\n --_dso-button-secondary-color: #{colors.$zwart};\r\n --_dso-button-secondary-hover-background-color: #{colors.$grijs-20};\r\n --_dso-button-secondary-hover-border-color: #{colors.$grijs-20};\r\n --_dso-button-secondary-hover-color: #{colors.$zwart};\r\n --_dso-button-secondary-active-background-color: #{colors.$grijs-40};\r\n --_dso-button-secondary-active-border-color: #{colors.$grijs-40};\r\n --_dso-button-secondary-active-color: #{colors.$zwart};\r\n --_dso-button-secondary-disabled-background-color: #{colors.$wit};\r\n --_dso-button-secondary-disabled-border-color: #{colors.$wit};\r\n --_dso-button-secondary-disabled-color: #{colors.$grijs-30};\r\n\r\n display: block;\r\n filter: drop-shadow(2px 2px 16px rgba(0, 0, 0, 0.4));\r\n\r\n // Visibility & opacity are updated using Floating-UI\r\n transition:\r\n visibility onboarding-tip-variables.$transition-time,\r\n opacity onboarding-tip-variables.$transition-time;\r\n}\r\n\r\n// Startup fade-in transition\r\n:host(:not([ready])) {\r\n opacity: 1;\r\n animation: onboarding-tip-variables.$transition-time ease-in 1 normal both fadeInOpacity;\r\n}\r\n\r\n:host([popover]) {\r\n margin: 0 !important;\r\n border: 0;\r\n padding: 0;\r\n background-color: transparent;\r\n overflow: unset;\r\n}\r\n\r\n.onboarding-tip {\r\n font-family: typography.$font-family-base;\r\n font-style: normal;\r\n font-weight: 400;\r\n line-height: typography.$line-height-base;\r\n line-break: auto;\r\n text-align: start;\r\n text-decoration: none;\r\n text-shadow: none;\r\n text-transform: none;\r\n letter-spacing: normal;\r\n overflow-wrap: anywhere;\r\n word-spacing: normal;\r\n word-wrap: normal;\r\n white-space: normal;\r\n font-size: typography.$font-size-small;\r\n inset-block-start: 0;\r\n inset-inline-start: 0;\r\n z-index: zindex.$onboarding-tip;\r\n\r\n @media screen and (max-width: onboarding-tip-variables.$max-inline-size) {\r\n padding-inline-start: units.$u1 !important;\r\n }\r\n}\r\n\r\n.dso-close {\r\n @include button.element();\r\n\r\n position: absolute;\r\n inset-block-start: 0;\r\n inset-inline-end: 0;\r\n block-size: units.$u4;\r\n inline-size: units.$u4;\r\n padding: 0;\r\n background-color: transparent;\r\n border: 0;\r\n text-align: center;\r\n}\r\n\r\n.onboarding-tip-inner {\r\n --link-color: #{colors.$wit};\r\n --link-hover-color: #{colors.$grijs-30};\r\n --link-visited-color: #{colors.$grijs-50};\r\n\r\n max-inline-size: min(#{onboarding-tip-variables.$max-inline-size}, calc(100vw - 2 * #{units.$u1}));\r\n max-block-size: calc(100vh - 10px); // 10px is the padding given to floating-ui\r\n overflow: auto;\r\n padding-block: onboarding-tip-variables.$padding-block;\r\n padding-inline: onboarding-tip-variables.$padding-inline;\r\n border-radius: onboarding-tip-variables.$border-radius;\r\n display: block;\r\n font-size: typography.$root-font-size-base;\r\n position: relative;\r\n z-index: 2; // z-index higher than the arrow\r\n\r\n @include set-colors.apply(onboarding-tip-variables.$background-color, $icons: false, $links: false);\r\n\r\n @media screen and (max-width: media-query-breakpoints.$screen-sm-max) {\r\n max-block-size: unset;\r\n }\r\n}\r\n\r\n.onboarding-tip-arrow {\r\n border-start-start-radius: onboarding-tip-variables.$border-radius;\r\n position: absolute;\r\n block-size: onboarding-tip-variables.$arrow-block-size;\r\n inline-size: onboarding-tip-variables.$arrow-inline-size;\r\n background: onboarding-tip-variables.$background-color;\r\n z-index: 1;\r\n pointer-events: none;\r\n}\r\n\r\n.onboarding-tip-content-wrapper {\r\n padding-inline: units.$u2;\r\n padding-block-end: units.$u2;\r\n}\r\n\r\n.onboarding-tip-content-heading {\r\n display: flex;\r\n\r\n dso-icon {\r\n margin-inline-end: units.$u1;\r\n }\r\n}\r\n\r\n@keyframes fadeInOpacity {\r\n 0% {\r\n opacity: 0;\r\n }\r\n 100% {\r\n opacity: 1;\r\n }\r\n}\r\n","import { arrow, autoUpdate, computePosition, flip, hide, offset, shift } from \"@floating-ui/dom\";\r\nimport { Side } from \"@floating-ui/utils\";\r\nimport { Placement } from \"@popperjs/core\";\r\nimport { Component, ComponentInterface, Element, Event, EventEmitter, Host, Prop, State, h } from \"@stencil/core\";\r\n\r\nimport { OnboardingTipCloseEvent, OnboardingTipPlacement } from \"./onboarding-tip.interfaces\";\r\n\r\n@Component({\r\n tag: \"dso-onboarding-tip\",\r\n styleUrl: \"onboarding-tip.scss\",\r\n shadow: true,\r\n})\r\nexport class OnboardingTip implements ComponentInterface {\r\n @Element()\r\n private host!: HTMLDsoOnboardingTipElement;\r\n\r\n /**\r\n * Where to place the Onboarding Tip relative to its reference element.\r\n */\r\n @Prop()\r\n placement: OnboardingTipPlacement = \"right\";\r\n\r\n /**\r\n * Emitted when the user closes the Onboarding Tip.\r\n */\r\n @Event()\r\n dsoClose!: EventEmitter<OnboardingTipCloseEvent>;\r\n\r\n @State()\r\n ready = false;\r\n\r\n componentDidRender() {\r\n if (!this.host.matches(\":popover-open\")) {\r\n this.host.showPopover();\r\n }\r\n\r\n if (!this.cleanUp && this.referenceElement && this.tipArrowRef instanceof HTMLElement) {\r\n this.cleanUp = OnboardingTip.positionTip(this.referenceElement, this.host, this.tipArrowRef, this.placement);\r\n }\r\n }\r\n\r\n disconnectedCallback(): void {\r\n if (this.host.matches(\":popover-open\")) {\r\n this.host.hidePopover();\r\n }\r\n\r\n this.cleanUp?.();\r\n this.cleanUp = undefined;\r\n }\r\n\r\n /**\r\n * This function positions the Onboarding Tip relative to its reference element. It is static so the position is calculated\r\n * only using the passed arguments.\r\n */\r\n private static positionTip(\r\n referenceElement: HTMLElement,\r\n tipRef: HTMLDsoOnboardingTipElement,\r\n tipArrowRef: HTMLDivElement,\r\n position: Side,\r\n ) {\r\n const padding = 5;\r\n return autoUpdate(referenceElement, tipRef, () => {\r\n const arrowLength = tipArrowRef.offsetWidth;\r\n\r\n // Get half the arrow box's hypotenuse length\r\n const mainAxisOffset = Math.sqrt(2 * arrowLength ** 2) / 2;\r\n\r\n // 1.5 times the diagonal of the arrow box\r\n const arrowPadding = arrowLength * Math.sqrt(2) * 1.5;\r\n\r\n // Same as media-query-breakpoints.$screen-md-min\r\n const smallViewport = document.body.clientWidth < 992;\r\n\r\n // Only use top and bottom placement when the viewport is small\r\n const placement: Placement = smallViewport ? \"top\" : `${position}-start`;\r\n\r\n computePosition(referenceElement, tipRef, {\r\n strategy: \"fixed\",\r\n middleware: [\r\n offset({\r\n mainAxis: mainAxisOffset,\r\n alignmentAxis: -arrowPadding,\r\n }),\r\n flip({\r\n padding,\r\n }),\r\n shift({\r\n padding,\r\n }),\r\n arrow({\r\n padding: arrowPadding,\r\n element: tipArrowRef,\r\n }),\r\n hide({\r\n padding: arrowPadding + arrowLength + padding,\r\n }),\r\n ],\r\n placement,\r\n }).then(({ x, y, middlewareData, placement: computedPlacement }) => {\r\n if (middlewareData.hide) {\r\n // Tooltip needs to be visible at all times on small viewports\r\n const disappear = !smallViewport && middlewareData.hide.referenceHidden;\r\n Object.assign(tipRef.style, {\r\n // Both of these properties have a CSS transition\r\n visibility: disappear ? \"hidden\" : \"visible\",\r\n opacity: disappear ? 0 : 1,\r\n });\r\n }\r\n\r\n Object.assign(tipRef.style, {\r\n left: `${x}px`,\r\n top: `${y}px`,\r\n });\r\n\r\n const side = computedPlacement.split(\"-\")[0];\r\n\r\n const staticSide = side\r\n ? {\r\n top: \"bottom\",\r\n right: \"left\",\r\n bottom: \"top\",\r\n left: \"right\",\r\n }[side]\r\n : \"top\";\r\n\r\n let angle;\r\n switch (staticSide) {\r\n default:\r\n case \"top\":\r\n angle = 45;\r\n break;\r\n case \"right\":\r\n angle = 135;\r\n break;\r\n case \"bottom\":\r\n angle = 225;\r\n break;\r\n case \"left\":\r\n angle = 315;\r\n break;\r\n }\r\n\r\n if (middlewareData.arrow && staticSide) {\r\n const { x: arrowX, y: arrowY } = middlewareData.arrow;\r\n\r\n Object.assign(tipArrowRef.style, {\r\n right: \"\",\r\n bottom: \"\",\r\n left: arrowX ? `${arrowX}px` : \"\",\r\n top: arrowY ? `${arrowY}px` : \"\",\r\n [staticSide]: `${-arrowLength / 2}px`,\r\n transform: `rotate(${angle}deg)`,\r\n });\r\n }\r\n });\r\n });\r\n }\r\n\r\n render() {\r\n return (\r\n <Host popover=\"manual\" ready={this.ready} onAnimationend={() => (this.ready = true)}>\r\n <div class=\"onboarding-tip\" role=\"tooltip\">\r\n <div class=\"onboarding-tip-inner\">\r\n <div class=\"onboarding-tip-content-wrapper\">\r\n {this.headingSlottedElement !== null && (\r\n <div class=\"onboarding-tip-content-heading\">\r\n <dso-icon icon=\"light-bulb\"></dso-icon>\r\n <slot name=\"heading\" />\r\n </div>\r\n )}\r\n <button type=\"button\" class=\"dso-close\" onClick={(e) => this.dsoClose.emit({ originalEvent: e })}>\r\n <dso-icon icon=\"times\"></dso-icon>\r\n <span class=\"sr-only\">Sluiten</span>\r\n </button>\r\n <slot></slot>\r\n </div>\r\n </div>\r\n <div class=\"onboarding-tip-arrow\" ref={(ref) => (this.tipArrowRef = ref)}></div>\r\n </div>\r\n </Host>\r\n );\r\n }\r\n\r\n private tipArrowRef: HTMLDivElement | undefined;\r\n\r\n private get headingSlottedElement() {\r\n return this.host.querySelector(\"[slot='heading']\");\r\n }\r\n\r\n private cleanUp: ReturnType<typeof autoUpdate> | undefined;\r\n\r\n private get referenceElement(): HTMLElement | undefined {\r\n const id = this.host.id;\r\n\r\n if (!id) {\r\n console.warn(\"Unable to find reference. Onboarding Tip has no [id] attribute.\");\r\n\r\n return;\r\n }\r\n\r\n const rootNode = this.host.getRootNode();\r\n if (!(rootNode instanceof Document || rootNode instanceof ShadowRoot)) {\r\n console.warn(`rootNode is not instance of Document or ShadowRoot`);\r\n\r\n return;\r\n }\r\n\r\n const reference = rootNode.querySelector<HTMLElement>(`[aria-describedby=\"${id}`);\r\n if (!reference) {\r\n console.warn(`Unable to find reference element with aria-describedby ${id}`);\r\n\r\n return;\r\n }\r\n\r\n return reference;\r\n }\r\n}\r\n"],"names":["autoUpdate","computePosition","offset","flip","shift","arrow","hide","h","Host"],"mappings":"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"}
@@ -3,7 +3,7 @@
3
3
  var index = require('./index-DvLsepiK.js');
4
4
  var isModifiedEvent = require('./is-modified-event-Dh9YsHw8.js');
5
5
 
6
- const paginationCss = "@charset \"UTF-8\";:host{display:block}*,*::after,*::before{box-sizing:border-box}.pagination ul{padding-inline-start:initial;text-align:center}.pagination ul>li{display:inline-block;font-weight:bold;line-height:calc(2rem - 4px);text-align:center;vertical-align:middle}.pagination ul>li>a,.pagination ul>li>span{align-items:center;color:#39870c;display:flex;block-size:2rem;justify-content:center;position:relative;min-inline-size:2rem;padding:2px;padding-block:2px;padding-inline:2px}.pagination ul>li>a:active{background-color:#ebf3e6}.pagination ul>li>span{border:2px solid transparent;border-radius:1rem}.pagination ul>li a{line-height:2rem;text-decoration:none}.pagination ul>li a:hover,.pagination ul>li a:focus{text-decoration:none}.pagination ul>li a:hover::after,.pagination ul>li a:focus::after{border-block-end-color:#39870c}.pagination ul>li a::after{border-block-end:3px solid transparent;inset-block-end:0;content:\"\";display:inline-block;inset-inline-start:0;position:absolute;inline-size:100%}.pagination ul>li.active span{background-color:#39870c;color:#fff}.pagination ul>li+li{margin-inline-start:8px}.dso-page-hidden{visibility:hidden}.sr-only.sr-only{position:absolute;inline-size:1px;block-size:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}";
6
+ const paginationCss = ":host{display:block}*,*::after,*::before{box-sizing:border-box}.pagination ul{padding-inline-start:initial;text-align:center}.pagination ul>li{display:inline-block;font-weight:bold;line-height:calc(2rem - 4px);text-align:center;vertical-align:middle}.pagination ul>li>a,.pagination ul>li>span{align-items:center;color:#39870c;display:flex;block-size:2rem;justify-content:center;position:relative;min-inline-size:2rem;padding:2px;padding-block:2px;padding-inline:2px}.pagination ul>li>a:active{background-color:#ebf3e6}.pagination ul>li>span{border:2px solid transparent;border-radius:1rem}.pagination ul>li a{line-height:2rem;text-decoration:none}.pagination ul>li a:hover,.pagination ul>li a:focus{text-decoration:none}.pagination ul>li a:hover::after,.pagination ul>li a:focus::after{border-block-end-color:#39870c}.pagination ul>li a::after{border-block-end:3px solid transparent;inset-block-end:0;content:\"\";display:inline-block;inset-inline-start:0;position:absolute;inline-size:100%}.pagination ul>li.active span{background-color:#39870c;color:#fff}.pagination ul>li+li{margin-inline-start:8px}.dso-page-hidden{visibility:hidden}.sr-only.sr-only{position:absolute;inline-size:1px;block-size:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}";
7
7
 
8
8
  const Pagination = class {
9
9
  constructor(hostRef) {
@@ -1 +1 @@
1
- {"file":"dso-pagination.entry.cjs.js","mappings":"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","names":["isModifiedEvent","h","Fragment"],"sources":["src/components/pagination/pagination.scss?tag=dso-pagination&encapsulation=shadow","src/components/pagination/pagination.tsx"],"sourcesContent":["@use \"~dso-toolkit/src/utilities\";\r\n@use \"~dso-toolkit/src/variables/units\";\r\n@use \"~dso-toolkit/src/variables/colors\";\r\n@use \"pagination.variables\" as pagination-variables;\r\n\r\n:host {\r\n display: block;\r\n}\r\n\r\n@include utilities.box-sizing();\r\n\r\n.pagination {\r\n ul {\r\n padding-inline-start: initial;\r\n text-align: center;\r\n\r\n > li {\r\n display: inline-block;\r\n font-weight: bold;\r\n line-height: calc(pagination-variables.$item-size - pagination-variables.$border-size * 2);\r\n text-align: center;\r\n vertical-align: middle;\r\n\r\n > a,\r\n > span {\r\n align-items: center;\r\n color: colors.$grasgroen;\r\n display: flex;\r\n block-size: pagination-variables.$item-size;\r\n justify-content: center;\r\n position: relative;\r\n min-inline-size: pagination-variables.$item-size;\r\n padding: #{units.$u1 * 0.25};\r\n padding-block: units.$u1 * 0.25;\r\n padding-inline: units.$u1 * 0.25;\r\n }\r\n\r\n > a:active {\r\n background-color: colors.$grasgroen-10;\r\n }\r\n\r\n > span {\r\n border: pagination-variables.$border-size solid transparent;\r\n border-radius: pagination-variables.$item-size * 0.5;\r\n }\r\n\r\n a {\r\n line-height: pagination-variables.$line-height;\r\n text-decoration: none;\r\n\r\n &:hover,\r\n &:focus {\r\n text-decoration: none;\r\n\r\n &::after {\r\n border-block-end-color: colors.$grasgroen;\r\n }\r\n }\r\n\r\n &::after {\r\n border-block-end: 3px solid transparent;\r\n inset-block-end: 0;\r\n content: \"\";\r\n display: inline-block;\r\n inset-inline-start: 0;\r\n position: absolute;\r\n inline-size: 100%;\r\n }\r\n }\r\n\r\n &.active {\r\n span {\r\n background-color: colors.$grasgroen;\r\n color: colors.$wit;\r\n }\r\n }\r\n\r\n & + li {\r\n margin-inline-start: units.$u1;\r\n }\r\n }\r\n }\r\n}\r\n\r\n.dso-page-hidden {\r\n visibility: hidden;\r\n}\r\n\r\n.sr-only.sr-only {\r\n // class daisy-chained to prevent overwrites by other more specific styling set on this element.\r\n @include utilities.sr-only();\r\n}\r\n","import {\r\n Component,\r\n ComponentInterface,\r\n Element,\r\n Event,\r\n EventEmitter,\r\n Fragment,\r\n Listen,\r\n Prop,\r\n State,\r\n h,\r\n} from \"@stencil/core\";\r\n\r\nimport { isModifiedEvent } from \"../../utils/is-modified-event\";\r\nimport { ResponsiveElementSize } from \"../responsive-element/responsive-element.interfaces\";\r\n\r\nimport { PaginationSelectPageEvent } from \"./pagination.interfaces\";\r\n\r\n@Component({\r\n tag: \"dso-pagination\",\r\n styleUrl: \"pagination.scss\",\r\n shadow: true,\r\n})\r\nexport class Pagination implements ComponentInterface {\r\n private sizePositionsMap: Record<ResponsiveElementSize, number> = {\r\n small: 7,\r\n medium: 9,\r\n large: 11,\r\n };\r\n\r\n private responsiveElement?: HTMLDsoResponsiveElementElement;\r\n\r\n @Element()\r\n host!: HTMLDsoPaginationElement;\r\n\r\n @State()\r\n availablePositions?: number;\r\n /**\r\n * Total pages\r\n */\r\n @Prop()\r\n totalPages?: number;\r\n\r\n /**\r\n * Current page\r\n */\r\n @Prop()\r\n currentPage?: number;\r\n\r\n /**\r\n * This function is called to format the href\r\n */\r\n @Prop()\r\n formatHref: (page: number) => string = (page) => \"#\" + page;\r\n\r\n /**\r\n * Emitted on page select\r\n */\r\n @Event()\r\n dsoSelectPage!: EventEmitter<PaginationSelectPageEvent>;\r\n\r\n /**\r\n * Listens to the dsoSizeChange event on Responsive Element\r\n */\r\n @Listen(\"dsoSizeChange\")\r\n sizeChangeHandler(event: CustomEvent<ResponsiveElementSize>) {\r\n this.availablePositions = this.getAvailablePositions(this.sizePositionsMap[event.detail]);\r\n }\r\n\r\n private clickHandler(e: MouseEvent, page: number) {\r\n this.dsoSelectPage.emit({\r\n originalEvent: e,\r\n page,\r\n isModifiedEvent: isModifiedEvent(e),\r\n });\r\n }\r\n\r\n componentDidLoad(): void {\r\n this.responsiveElement\r\n ?.getSize()\r\n .then(\r\n (size: ResponsiveElementSize) =>\r\n (this.availablePositions = this.getAvailablePositions(this.sizePositionsMap[size])),\r\n );\r\n }\r\n\r\n render() {\r\n if (!this.totalPages && !this.currentPage) {\r\n return null;\r\n }\r\n\r\n if (this.availablePositions === undefined) {\r\n return <dso-responsive-element ref={(element) => (this.responsiveElement = element)}></dso-responsive-element>;\r\n }\r\n\r\n const availablePositions = this.availablePositions;\r\n\r\n const currentPage = this.currentPage ?? 0;\r\n\r\n const pages: number[] = this.getPages(currentPage, this.availablePositions, this.totalPages);\r\n\r\n return (\r\n <dso-responsive-element ref={(element) => (this.responsiveElement = element)}>\r\n <nav class=\"pagination\" aria-label=\"Paginering\">\r\n <ul>\r\n <li class={currentPage <= 1 || !currentPage ? \"dso-page-hidden\" : undefined}>\r\n <a\r\n href={this.formatHref(currentPage - 1)}\r\n aria-label=\"Vorige\"\r\n onClick={(e) => currentPage && this.clickHandler(e, currentPage - 1)}\r\n >\r\n <dso-icon icon=\"chevron-left\"></dso-icon>\r\n </a>\r\n </li>\r\n {pages.map((page) => (\r\n <Fragment>\r\n {this.showEllipsisBeforeLast(pages, page, availablePositions) && (\r\n <li>\r\n <span>...</span>\r\n </li>\r\n )}\r\n\r\n <li key={page} class={currentPage === page ? \"active\" : undefined}>\r\n {currentPage === page ? (\r\n <span aria-current=\"page\">{page}</span>\r\n ) : (\r\n <a href={this.formatHref(page)} onClick={(e) => this.clickHandler(e, page)}>\r\n {page}\r\n </a>\r\n )}\r\n {page === this.totalPages ? <span class=\"sr-only\"> (laatste pagina)</span> : null}\r\n </li>\r\n\r\n {this.showEllipsisAfterFirst(pages, page, availablePositions) && (\r\n <li>\r\n <span>...</span>\r\n </li>\r\n )}\r\n\r\n {this.showEllipsisLastWithoutTotal(pages, page, this.totalPages) && (\r\n <li>\r\n <span>...</span>\r\n </li>\r\n )}\r\n </Fragment>\r\n ))}\r\n <li\r\n class={\r\n (this.totalPages && currentPage >= this.totalPages) || !currentPage ? \"dso-page-hidden\" : undefined\r\n }\r\n >\r\n <a\r\n href={this.formatHref(currentPage + 1)}\r\n aria-label=\"Volgende\"\r\n onClick={(e) => currentPage && this.clickHandler(e, currentPage + 1)}\r\n >\r\n <dso-icon icon=\"chevron-right\"></dso-icon>\r\n </a>\r\n </li>\r\n </ul>\r\n </nav>\r\n </dso-responsive-element>\r\n );\r\n }\r\n\r\n private getAvailablePositions(sizePositions: number) {\r\n if (sizePositions % 2 === 0) {\r\n // Even aantal posities zorgt voor een scheve pagination\r\n return sizePositions - 1;\r\n }\r\n if (sizePositions <= 3) {\r\n // Voor het kunnen tonen van de vorige knop, volgende knop en 1 pagina zijn minimaal 3 posities nodig.\r\n return 3;\r\n }\r\n\r\n return sizePositions;\r\n }\r\n\r\n private getPages(currentPage: number, availablePositions: number, totalPages?: number): number[] {\r\n if (totalPages) {\r\n if (totalPages + 2 <= availablePositions) {\r\n // + 2 voor de vorige en volgende knop\r\n return Array.from({ length: totalPages }, (_value, i) => i + 1);\r\n }\r\n\r\n if (availablePositions === 3) {\r\n return [currentPage];\r\n }\r\n\r\n if (availablePositions === 5) {\r\n return [1, currentPage, totalPages];\r\n }\r\n\r\n return [1, ...this.getPageRange(currentPage, availablePositions, totalPages), totalPages];\r\n }\r\n return this.getPageRangeWithoutTotalPages(currentPage, availablePositions);\r\n }\r\n\r\n private getPageRange(currentPage: number, availablePositions: number, totalPages: number): number[] {\r\n const range: number[] = [];\r\n\r\n const positionRange = Math.floor(availablePositions / 2);\r\n\r\n if (currentPage <= positionRange) {\r\n for (let i = 2; i <= availablePositions - 4; i++) {\r\n range.push(i);\r\n }\r\n }\r\n\r\n if (currentPage >= positionRange && currentPage <= totalPages - positionRange) {\r\n if (positionRange === 1) {\r\n if (currentPage > totalPages - 2) {\r\n range.push(totalPages - 2);\r\n }\r\n\r\n range.push(currentPage);\r\n\r\n if (currentPage < 3) {\r\n range.push(3);\r\n }\r\n }\r\n\r\n if (positionRange > 1) {\r\n const pagesBeforeOrAfter = positionRange - 3;\r\n\r\n for (\r\n let i = Math.min(currentPage - pagesBeforeOrAfter, totalPages - positionRange);\r\n i <= Math.max(currentPage + pagesBeforeOrAfter, positionRange);\r\n i++\r\n ) {\r\n if (i > 2 && i < totalPages - 1) {\r\n range.push(i);\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (currentPage > totalPages - positionRange) {\r\n for (let i = totalPages - (availablePositions - 5); i <= totalPages - 1; i++) {\r\n range.push(i);\r\n }\r\n }\r\n\r\n return range.filter((v, i, a) => a.indexOf(v) === i);\r\n }\r\n\r\n private showEllipsisAfterFirst(pages: number[], page: number, availablePositions: number): boolean {\r\n const totalPages = pages[pages.length - 1];\r\n\r\n if (!totalPages) {\r\n throw new Error(\"No totalPages\");\r\n }\r\n\r\n const isFirstPage = pages.indexOf(page) === 0;\r\n const hasManyPages = totalPages > availablePositions - (this.totalPages ? 2 : 6);\r\n const isPageTwoMissing = !pages.includes(2);\r\n const hasEnoughPositions = availablePositions >= 7;\r\n\r\n return isFirstPage && hasManyPages && isPageTwoMissing && hasEnoughPositions;\r\n }\r\n\r\n private showEllipsisBeforeLast(pages: number[], page: number, availablePositions: number): boolean {\r\n const totalPages = pages[pages.length - 1];\r\n\r\n if (!totalPages) {\r\n throw new Error(\"No totalPages\");\r\n }\r\n\r\n const isLastPage = pages.indexOf(page) === pages.length - 1;\r\n const hasManyPages = totalPages > availablePositions - (this.totalPages ? 2 : 6);\r\n const isSecondLastPageMissing = !pages.includes(totalPages - 1);\r\n const hasEnoughPositions = availablePositions >= 7;\r\n\r\n return isLastPage && hasManyPages && isSecondLastPageMissing && hasEnoughPositions;\r\n }\r\n\r\n private showEllipsisLastWithoutTotal(pages: number[], page: number, totalPages?: number) {\r\n return totalPages ? false : pages.at(-1) === page;\r\n }\r\n\r\n private getPageRangeWithoutTotalPages(currentPage: number, availablePositions: number): number[] {\r\n const positionRange = availablePositions >= 9 ? 2 : 0;\r\n const start = Math.max(1, currentPage - positionRange);\r\n\r\n // Creates an array of numbers from `start` to `currentPage + 1`\r\n const result = Array.from({ length: currentPage - start + 2 }, (_, i) => start + i);\r\n\r\n // Adds 1 to the start of the result array if `start` is >= 2\r\n if (start >= 2) result.unshift(1);\r\n\r\n return result;\r\n }\r\n}\r\n"],"version":3}
1
+ {"file":"dso-pagination.entry.cjs.js","mappings":"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","names":["isModifiedEvent","h","Fragment"],"sources":["src/components/pagination/pagination.scss?tag=dso-pagination&encapsulation=shadow","src/components/pagination/pagination.tsx"],"sourcesContent":["@use \"~dso-toolkit/src/utilities\";\r\n@use \"~dso-toolkit/src/variables/units\";\r\n@use \"~dso-toolkit/src/variables/colors\";\r\n@use \"pagination.variables\" as pagination-variables;\r\n\r\n:host {\r\n display: block;\r\n}\r\n\r\n@include utilities.box-sizing();\r\n\r\n.pagination {\r\n ul {\r\n padding-inline-start: initial;\r\n text-align: center;\r\n\r\n > li {\r\n display: inline-block;\r\n font-weight: bold;\r\n line-height: calc(pagination-variables.$item-size - pagination-variables.$border-size * 2);\r\n text-align: center;\r\n vertical-align: middle;\r\n\r\n > a,\r\n > span {\r\n align-items: center;\r\n color: colors.$grasgroen;\r\n display: flex;\r\n block-size: pagination-variables.$item-size;\r\n justify-content: center;\r\n position: relative;\r\n min-inline-size: pagination-variables.$item-size;\r\n padding: #{units.$u1 * 0.25};\r\n padding-block: units.$u1 * 0.25;\r\n padding-inline: units.$u1 * 0.25;\r\n }\r\n\r\n > a:active {\r\n background-color: colors.$grasgroen-10;\r\n }\r\n\r\n > span {\r\n border: pagination-variables.$border-size solid transparent;\r\n border-radius: pagination-variables.$item-size * 0.5;\r\n }\r\n\r\n a {\r\n line-height: pagination-variables.$line-height;\r\n text-decoration: none;\r\n\r\n &:hover,\r\n &:focus {\r\n text-decoration: none;\r\n\r\n &::after {\r\n border-block-end-color: colors.$grasgroen;\r\n }\r\n }\r\n\r\n &::after {\r\n border-block-end: 3px solid transparent;\r\n inset-block-end: 0;\r\n content: \"\";\r\n display: inline-block;\r\n inset-inline-start: 0;\r\n position: absolute;\r\n inline-size: 100%;\r\n }\r\n }\r\n\r\n &.active {\r\n span {\r\n background-color: colors.$grasgroen;\r\n color: colors.$wit;\r\n }\r\n }\r\n\r\n & + li {\r\n margin-inline-start: units.$u1;\r\n }\r\n }\r\n }\r\n}\r\n\r\n.dso-page-hidden {\r\n visibility: hidden;\r\n}\r\n\r\n.sr-only.sr-only {\r\n // class daisy-chained to prevent overwrites by other more specific styling set on this element.\r\n @include utilities.sr-only();\r\n}\r\n","import {\r\n Component,\r\n ComponentInterface,\r\n Element,\r\n Event,\r\n EventEmitter,\r\n Fragment,\r\n Listen,\r\n Prop,\r\n State,\r\n h,\r\n} from \"@stencil/core\";\r\n\r\nimport { isModifiedEvent } from \"../../utils/is-modified-event\";\r\nimport { ResponsiveElementSize } from \"../responsive-element/responsive-element.interfaces\";\r\n\r\nimport { PaginationSelectPageEvent } from \"./pagination.interfaces\";\r\n\r\n@Component({\r\n tag: \"dso-pagination\",\r\n styleUrl: \"pagination.scss\",\r\n shadow: true,\r\n})\r\nexport class Pagination implements ComponentInterface {\r\n private sizePositionsMap: Record<ResponsiveElementSize, number> = {\r\n small: 7,\r\n medium: 9,\r\n large: 11,\r\n };\r\n\r\n private responsiveElement?: HTMLDsoResponsiveElementElement;\r\n\r\n @Element()\r\n host!: HTMLDsoPaginationElement;\r\n\r\n @State()\r\n availablePositions?: number;\r\n /**\r\n * Total pages\r\n */\r\n @Prop()\r\n totalPages?: number;\r\n\r\n /**\r\n * Current page\r\n */\r\n @Prop()\r\n currentPage?: number;\r\n\r\n /**\r\n * This function is called to format the href\r\n */\r\n @Prop()\r\n formatHref: (page: number) => string = (page) => \"#\" + page;\r\n\r\n /**\r\n * Emitted on page select\r\n */\r\n @Event()\r\n dsoSelectPage!: EventEmitter<PaginationSelectPageEvent>;\r\n\r\n /**\r\n * Listens to the dsoSizeChange event on Responsive Element\r\n */\r\n @Listen(\"dsoSizeChange\")\r\n sizeChangeHandler(event: CustomEvent<ResponsiveElementSize>) {\r\n this.availablePositions = this.getAvailablePositions(this.sizePositionsMap[event.detail]);\r\n }\r\n\r\n private clickHandler(e: MouseEvent, page: number) {\r\n this.dsoSelectPage.emit({\r\n originalEvent: e,\r\n page,\r\n isModifiedEvent: isModifiedEvent(e),\r\n });\r\n }\r\n\r\n componentDidLoad(): void {\r\n this.responsiveElement\r\n ?.getSize()\r\n .then(\r\n (size: ResponsiveElementSize) =>\r\n (this.availablePositions = this.getAvailablePositions(this.sizePositionsMap[size])),\r\n );\r\n }\r\n\r\n render() {\r\n if (!this.totalPages && !this.currentPage) {\r\n return null;\r\n }\r\n\r\n if (this.availablePositions === undefined) {\r\n return <dso-responsive-element ref={(element) => (this.responsiveElement = element)}></dso-responsive-element>;\r\n }\r\n\r\n const availablePositions = this.availablePositions;\r\n\r\n const currentPage = this.currentPage ?? 0;\r\n\r\n const pages: number[] = this.getPages(currentPage, this.availablePositions, this.totalPages);\r\n\r\n return (\r\n <dso-responsive-element ref={(element) => (this.responsiveElement = element)}>\r\n <nav class=\"pagination\" aria-label=\"Paginering\">\r\n <ul>\r\n <li class={currentPage <= 1 || !currentPage ? \"dso-page-hidden\" : undefined}>\r\n <a\r\n href={this.formatHref(currentPage - 1)}\r\n aria-label=\"Vorige\"\r\n onClick={(e) => currentPage && this.clickHandler(e, currentPage - 1)}\r\n >\r\n <dso-icon icon=\"chevron-left\"></dso-icon>\r\n </a>\r\n </li>\r\n {pages.map((page) => (\r\n <Fragment>\r\n {this.showEllipsisBeforeLast(pages, page, availablePositions) && (\r\n <li>\r\n <span>...</span>\r\n </li>\r\n )}\r\n\r\n <li key={page} class={currentPage === page ? \"active\" : undefined}>\r\n {currentPage === page ? (\r\n <span aria-current=\"page\">{page}</span>\r\n ) : (\r\n <a href={this.formatHref(page)} onClick={(e) => this.clickHandler(e, page)}>\r\n {page}\r\n </a>\r\n )}\r\n {page === this.totalPages ? <span class=\"sr-only\"> (laatste pagina)</span> : null}\r\n </li>\r\n\r\n {this.showEllipsisAfterFirst(pages, page, availablePositions) && (\r\n <li>\r\n <span>...</span>\r\n </li>\r\n )}\r\n\r\n {this.showEllipsisLastWithoutTotal(pages, page, this.totalPages) && (\r\n <li>\r\n <span>...</span>\r\n </li>\r\n )}\r\n </Fragment>\r\n ))}\r\n <li\r\n class={\r\n (this.totalPages && currentPage >= this.totalPages) || !currentPage ? \"dso-page-hidden\" : undefined\r\n }\r\n >\r\n <a\r\n href={this.formatHref(currentPage + 1)}\r\n aria-label=\"Volgende\"\r\n onClick={(e) => currentPage && this.clickHandler(e, currentPage + 1)}\r\n >\r\n <dso-icon icon=\"chevron-right\"></dso-icon>\r\n </a>\r\n </li>\r\n </ul>\r\n </nav>\r\n </dso-responsive-element>\r\n );\r\n }\r\n\r\n private getAvailablePositions(sizePositions: number) {\r\n if (sizePositions % 2 === 0) {\r\n // Even aantal posities zorgt voor een scheve pagination\r\n return sizePositions - 1;\r\n }\r\n if (sizePositions <= 3) {\r\n // Voor het kunnen tonen van de vorige knop, volgende knop en 1 pagina zijn minimaal 3 posities nodig.\r\n return 3;\r\n }\r\n\r\n return sizePositions;\r\n }\r\n\r\n private getPages(currentPage: number, availablePositions: number, totalPages?: number): number[] {\r\n if (totalPages) {\r\n if (totalPages + 2 <= availablePositions) {\r\n // + 2 voor de vorige en volgende knop\r\n return Array.from({ length: totalPages }, (_value, i) => i + 1);\r\n }\r\n\r\n if (availablePositions === 3) {\r\n return [currentPage];\r\n }\r\n\r\n if (availablePositions === 5) {\r\n return [1, currentPage, totalPages];\r\n }\r\n\r\n return [1, ...this.getPageRange(currentPage, availablePositions, totalPages), totalPages];\r\n }\r\n return this.getPageRangeWithoutTotalPages(currentPage, availablePositions);\r\n }\r\n\r\n private getPageRange(currentPage: number, availablePositions: number, totalPages: number): number[] {\r\n const range: number[] = [];\r\n\r\n const positionRange = Math.floor(availablePositions / 2);\r\n\r\n if (currentPage <= positionRange) {\r\n for (let i = 2; i <= availablePositions - 4; i++) {\r\n range.push(i);\r\n }\r\n }\r\n\r\n if (currentPage >= positionRange && currentPage <= totalPages - positionRange) {\r\n if (positionRange === 1) {\r\n if (currentPage > totalPages - 2) {\r\n range.push(totalPages - 2);\r\n }\r\n\r\n range.push(currentPage);\r\n\r\n if (currentPage < 3) {\r\n range.push(3);\r\n }\r\n }\r\n\r\n if (positionRange > 1) {\r\n const pagesBeforeOrAfter = positionRange - 3;\r\n\r\n for (\r\n let i = Math.min(currentPage - pagesBeforeOrAfter, totalPages - positionRange);\r\n i <= Math.max(currentPage + pagesBeforeOrAfter, positionRange);\r\n i++\r\n ) {\r\n if (i > 2 && i < totalPages - 1) {\r\n range.push(i);\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (currentPage > totalPages - positionRange) {\r\n for (let i = totalPages - (availablePositions - 5); i <= totalPages - 1; i++) {\r\n range.push(i);\r\n }\r\n }\r\n\r\n return range.filter((v, i, a) => a.indexOf(v) === i);\r\n }\r\n\r\n private showEllipsisAfterFirst(pages: number[], page: number, availablePositions: number): boolean {\r\n const totalPages = pages[pages.length - 1];\r\n\r\n if (!totalPages) {\r\n throw new Error(\"No totalPages\");\r\n }\r\n\r\n const isFirstPage = pages.indexOf(page) === 0;\r\n const hasManyPages = totalPages > availablePositions - (this.totalPages ? 2 : 6);\r\n const isPageTwoMissing = !pages.includes(2);\r\n const hasEnoughPositions = availablePositions >= 7;\r\n\r\n return isFirstPage && hasManyPages && isPageTwoMissing && hasEnoughPositions;\r\n }\r\n\r\n private showEllipsisBeforeLast(pages: number[], page: number, availablePositions: number): boolean {\r\n const totalPages = pages[pages.length - 1];\r\n\r\n if (!totalPages) {\r\n throw new Error(\"No totalPages\");\r\n }\r\n\r\n const isLastPage = pages.indexOf(page) === pages.length - 1;\r\n const hasManyPages = totalPages > availablePositions - (this.totalPages ? 2 : 6);\r\n const isSecondLastPageMissing = !pages.includes(totalPages - 1);\r\n const hasEnoughPositions = availablePositions >= 7;\r\n\r\n return isLastPage && hasManyPages && isSecondLastPageMissing && hasEnoughPositions;\r\n }\r\n\r\n private showEllipsisLastWithoutTotal(pages: number[], page: number, totalPages?: number) {\r\n return totalPages ? false : pages.at(-1) === page;\r\n }\r\n\r\n private getPageRangeWithoutTotalPages(currentPage: number, availablePositions: number): number[] {\r\n const positionRange = availablePositions >= 9 ? 2 : 0;\r\n const start = Math.max(1, currentPage - positionRange);\r\n\r\n // Creates an array of numbers from `start` to `currentPage + 1`\r\n const result = Array.from({ length: currentPage - start + 2 }, (_, i) => start + i);\r\n\r\n // Adds 1 to the start of the result array if `start` is >= 2\r\n if (start >= 2) result.unshift(1);\r\n\r\n return result;\r\n }\r\n}\r\n"],"version":3}
@@ -1 +1 @@
1
- {"version":3,"file":"dso-pagination.entry.cjs.js","sources":["src/components/pagination/pagination.scss?tag=dso-pagination&encapsulation=shadow","src/components/pagination/pagination.tsx"],"sourcesContent":["@use \"~dso-toolkit/src/utilities\";\r\n@use \"~dso-toolkit/src/variables/units\";\r\n@use \"~dso-toolkit/src/variables/colors\";\r\n@use \"pagination.variables\" as pagination-variables;\r\n\r\n:host {\r\n display: block;\r\n}\r\n\r\n@include utilities.box-sizing();\r\n\r\n.pagination {\r\n ul {\r\n padding-inline-start: initial;\r\n text-align: center;\r\n\r\n > li {\r\n display: inline-block;\r\n font-weight: bold;\r\n line-height: calc(pagination-variables.$item-size - pagination-variables.$border-size * 2);\r\n text-align: center;\r\n vertical-align: middle;\r\n\r\n > a,\r\n > span {\r\n align-items: center;\r\n color: colors.$grasgroen;\r\n display: flex;\r\n block-size: pagination-variables.$item-size;\r\n justify-content: center;\r\n position: relative;\r\n min-inline-size: pagination-variables.$item-size;\r\n padding: #{units.$u1 * 0.25};\r\n padding-block: units.$u1 * 0.25;\r\n padding-inline: units.$u1 * 0.25;\r\n }\r\n\r\n > a:active {\r\n background-color: colors.$grasgroen-10;\r\n }\r\n\r\n > span {\r\n border: pagination-variables.$border-size solid transparent;\r\n border-radius: pagination-variables.$item-size * 0.5;\r\n }\r\n\r\n a {\r\n line-height: pagination-variables.$line-height;\r\n text-decoration: none;\r\n\r\n &:hover,\r\n &:focus {\r\n text-decoration: none;\r\n\r\n &::after {\r\n border-block-end-color: colors.$grasgroen;\r\n }\r\n }\r\n\r\n &::after {\r\n border-block-end: 3px solid transparent;\r\n inset-block-end: 0;\r\n content: \"\";\r\n display: inline-block;\r\n inset-inline-start: 0;\r\n position: absolute;\r\n inline-size: 100%;\r\n }\r\n }\r\n\r\n &.active {\r\n span {\r\n background-color: colors.$grasgroen;\r\n color: colors.$wit;\r\n }\r\n }\r\n\r\n & + li {\r\n margin-inline-start: units.$u1;\r\n }\r\n }\r\n }\r\n}\r\n\r\n.dso-page-hidden {\r\n visibility: hidden;\r\n}\r\n\r\n.sr-only.sr-only {\r\n // class daisy-chained to prevent overwrites by other more specific styling set on this element.\r\n @include utilities.sr-only();\r\n}\r\n","import {\r\n Component,\r\n ComponentInterface,\r\n Element,\r\n Event,\r\n EventEmitter,\r\n Fragment,\r\n Listen,\r\n Prop,\r\n State,\r\n h,\r\n} from \"@stencil/core\";\r\n\r\nimport { isModifiedEvent } from \"../../utils/is-modified-event\";\r\nimport { ResponsiveElementSize } from \"../responsive-element/responsive-element.interfaces\";\r\n\r\nimport { PaginationSelectPageEvent } from \"./pagination.interfaces\";\r\n\r\n@Component({\r\n tag: \"dso-pagination\",\r\n styleUrl: \"pagination.scss\",\r\n shadow: true,\r\n})\r\nexport class Pagination implements ComponentInterface {\r\n private sizePositionsMap: Record<ResponsiveElementSize, number> = {\r\n small: 7,\r\n medium: 9,\r\n large: 11,\r\n };\r\n\r\n private responsiveElement?: HTMLDsoResponsiveElementElement;\r\n\r\n @Element()\r\n host!: HTMLDsoPaginationElement;\r\n\r\n @State()\r\n availablePositions?: number;\r\n /**\r\n * Total pages\r\n */\r\n @Prop()\r\n totalPages?: number;\r\n\r\n /**\r\n * Current page\r\n */\r\n @Prop()\r\n currentPage?: number;\r\n\r\n /**\r\n * This function is called to format the href\r\n */\r\n @Prop()\r\n formatHref: (page: number) => string = (page) => \"#\" + page;\r\n\r\n /**\r\n * Emitted on page select\r\n */\r\n @Event()\r\n dsoSelectPage!: EventEmitter<PaginationSelectPageEvent>;\r\n\r\n /**\r\n * Listens to the dsoSizeChange event on Responsive Element\r\n */\r\n @Listen(\"dsoSizeChange\")\r\n sizeChangeHandler(event: CustomEvent<ResponsiveElementSize>) {\r\n this.availablePositions = this.getAvailablePositions(this.sizePositionsMap[event.detail]);\r\n }\r\n\r\n private clickHandler(e: MouseEvent, page: number) {\r\n this.dsoSelectPage.emit({\r\n originalEvent: e,\r\n page,\r\n isModifiedEvent: isModifiedEvent(e),\r\n });\r\n }\r\n\r\n componentDidLoad(): void {\r\n this.responsiveElement\r\n ?.getSize()\r\n .then(\r\n (size: ResponsiveElementSize) =>\r\n (this.availablePositions = this.getAvailablePositions(this.sizePositionsMap[size])),\r\n );\r\n }\r\n\r\n render() {\r\n if (!this.totalPages && !this.currentPage) {\r\n return null;\r\n }\r\n\r\n if (this.availablePositions === undefined) {\r\n return <dso-responsive-element ref={(element) => (this.responsiveElement = element)}></dso-responsive-element>;\r\n }\r\n\r\n const availablePositions = this.availablePositions;\r\n\r\n const currentPage = this.currentPage ?? 0;\r\n\r\n const pages: number[] = this.getPages(currentPage, this.availablePositions, this.totalPages);\r\n\r\n return (\r\n <dso-responsive-element ref={(element) => (this.responsiveElement = element)}>\r\n <nav class=\"pagination\" aria-label=\"Paginering\">\r\n <ul>\r\n <li class={currentPage <= 1 || !currentPage ? \"dso-page-hidden\" : undefined}>\r\n <a\r\n href={this.formatHref(currentPage - 1)}\r\n aria-label=\"Vorige\"\r\n onClick={(e) => currentPage && this.clickHandler(e, currentPage - 1)}\r\n >\r\n <dso-icon icon=\"chevron-left\"></dso-icon>\r\n </a>\r\n </li>\r\n {pages.map((page) => (\r\n <Fragment>\r\n {this.showEllipsisBeforeLast(pages, page, availablePositions) && (\r\n <li>\r\n <span>...</span>\r\n </li>\r\n )}\r\n\r\n <li key={page} class={currentPage === page ? \"active\" : undefined}>\r\n {currentPage === page ? (\r\n <span aria-current=\"page\">{page}</span>\r\n ) : (\r\n <a href={this.formatHref(page)} onClick={(e) => this.clickHandler(e, page)}>\r\n {page}\r\n </a>\r\n )}\r\n {page === this.totalPages ? <span class=\"sr-only\"> (laatste pagina)</span> : null}\r\n </li>\r\n\r\n {this.showEllipsisAfterFirst(pages, page, availablePositions) && (\r\n <li>\r\n <span>...</span>\r\n </li>\r\n )}\r\n\r\n {this.showEllipsisLastWithoutTotal(pages, page, this.totalPages) && (\r\n <li>\r\n <span>...</span>\r\n </li>\r\n )}\r\n </Fragment>\r\n ))}\r\n <li\r\n class={\r\n (this.totalPages && currentPage >= this.totalPages) || !currentPage ? \"dso-page-hidden\" : undefined\r\n }\r\n >\r\n <a\r\n href={this.formatHref(currentPage + 1)}\r\n aria-label=\"Volgende\"\r\n onClick={(e) => currentPage && this.clickHandler(e, currentPage + 1)}\r\n >\r\n <dso-icon icon=\"chevron-right\"></dso-icon>\r\n </a>\r\n </li>\r\n </ul>\r\n </nav>\r\n </dso-responsive-element>\r\n );\r\n }\r\n\r\n private getAvailablePositions(sizePositions: number) {\r\n if (sizePositions % 2 === 0) {\r\n // Even aantal posities zorgt voor een scheve pagination\r\n return sizePositions - 1;\r\n }\r\n if (sizePositions <= 3) {\r\n // Voor het kunnen tonen van de vorige knop, volgende knop en 1 pagina zijn minimaal 3 posities nodig.\r\n return 3;\r\n }\r\n\r\n return sizePositions;\r\n }\r\n\r\n private getPages(currentPage: number, availablePositions: number, totalPages?: number): number[] {\r\n if (totalPages) {\r\n if (totalPages + 2 <= availablePositions) {\r\n // + 2 voor de vorige en volgende knop\r\n return Array.from({ length: totalPages }, (_value, i) => i + 1);\r\n }\r\n\r\n if (availablePositions === 3) {\r\n return [currentPage];\r\n }\r\n\r\n if (availablePositions === 5) {\r\n return [1, currentPage, totalPages];\r\n }\r\n\r\n return [1, ...this.getPageRange(currentPage, availablePositions, totalPages), totalPages];\r\n }\r\n return this.getPageRangeWithoutTotalPages(currentPage, availablePositions);\r\n }\r\n\r\n private getPageRange(currentPage: number, availablePositions: number, totalPages: number): number[] {\r\n const range: number[] = [];\r\n\r\n const positionRange = Math.floor(availablePositions / 2);\r\n\r\n if (currentPage <= positionRange) {\r\n for (let i = 2; i <= availablePositions - 4; i++) {\r\n range.push(i);\r\n }\r\n }\r\n\r\n if (currentPage >= positionRange && currentPage <= totalPages - positionRange) {\r\n if (positionRange === 1) {\r\n if (currentPage > totalPages - 2) {\r\n range.push(totalPages - 2);\r\n }\r\n\r\n range.push(currentPage);\r\n\r\n if (currentPage < 3) {\r\n range.push(3);\r\n }\r\n }\r\n\r\n if (positionRange > 1) {\r\n const pagesBeforeOrAfter = positionRange - 3;\r\n\r\n for (\r\n let i = Math.min(currentPage - pagesBeforeOrAfter, totalPages - positionRange);\r\n i <= Math.max(currentPage + pagesBeforeOrAfter, positionRange);\r\n i++\r\n ) {\r\n if (i > 2 && i < totalPages - 1) {\r\n range.push(i);\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (currentPage > totalPages - positionRange) {\r\n for (let i = totalPages - (availablePositions - 5); i <= totalPages - 1; i++) {\r\n range.push(i);\r\n }\r\n }\r\n\r\n return range.filter((v, i, a) => a.indexOf(v) === i);\r\n }\r\n\r\n private showEllipsisAfterFirst(pages: number[], page: number, availablePositions: number): boolean {\r\n const totalPages = pages[pages.length - 1];\r\n\r\n if (!totalPages) {\r\n throw new Error(\"No totalPages\");\r\n }\r\n\r\n const isFirstPage = pages.indexOf(page) === 0;\r\n const hasManyPages = totalPages > availablePositions - (this.totalPages ? 2 : 6);\r\n const isPageTwoMissing = !pages.includes(2);\r\n const hasEnoughPositions = availablePositions >= 7;\r\n\r\n return isFirstPage && hasManyPages && isPageTwoMissing && hasEnoughPositions;\r\n }\r\n\r\n private showEllipsisBeforeLast(pages: number[], page: number, availablePositions: number): boolean {\r\n const totalPages = pages[pages.length - 1];\r\n\r\n if (!totalPages) {\r\n throw new Error(\"No totalPages\");\r\n }\r\n\r\n const isLastPage = pages.indexOf(page) === pages.length - 1;\r\n const hasManyPages = totalPages > availablePositions - (this.totalPages ? 2 : 6);\r\n const isSecondLastPageMissing = !pages.includes(totalPages - 1);\r\n const hasEnoughPositions = availablePositions >= 7;\r\n\r\n return isLastPage && hasManyPages && isSecondLastPageMissing && hasEnoughPositions;\r\n }\r\n\r\n private showEllipsisLastWithoutTotal(pages: number[], page: number, totalPages?: number) {\r\n return totalPages ? false : pages.at(-1) === page;\r\n }\r\n\r\n private getPageRangeWithoutTotalPages(currentPage: number, availablePositions: number): number[] {\r\n const positionRange = availablePositions >= 9 ? 2 : 0;\r\n const start = Math.max(1, currentPage - positionRange);\r\n\r\n // Creates an array of numbers from `start` to `currentPage + 1`\r\n const result = Array.from({ length: currentPage - start + 2 }, (_, i) => start + i);\r\n\r\n // Adds 1 to the start of the result array if `start` is >= 2\r\n if (start >= 2) result.unshift(1);\r\n\r\n return result;\r\n }\r\n}\r\n"],"names":["isModifiedEvent","h","Fragment"],"mappings":"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"}
1
+ {"version":3,"file":"dso-pagination.entry.cjs.js","sources":["src/components/pagination/pagination.scss?tag=dso-pagination&encapsulation=shadow","src/components/pagination/pagination.tsx"],"sourcesContent":["@use \"~dso-toolkit/src/utilities\";\r\n@use \"~dso-toolkit/src/variables/units\";\r\n@use \"~dso-toolkit/src/variables/colors\";\r\n@use \"pagination.variables\" as pagination-variables;\r\n\r\n:host {\r\n display: block;\r\n}\r\n\r\n@include utilities.box-sizing();\r\n\r\n.pagination {\r\n ul {\r\n padding-inline-start: initial;\r\n text-align: center;\r\n\r\n > li {\r\n display: inline-block;\r\n font-weight: bold;\r\n line-height: calc(pagination-variables.$item-size - pagination-variables.$border-size * 2);\r\n text-align: center;\r\n vertical-align: middle;\r\n\r\n > a,\r\n > span {\r\n align-items: center;\r\n color: colors.$grasgroen;\r\n display: flex;\r\n block-size: pagination-variables.$item-size;\r\n justify-content: center;\r\n position: relative;\r\n min-inline-size: pagination-variables.$item-size;\r\n padding: #{units.$u1 * 0.25};\r\n padding-block: units.$u1 * 0.25;\r\n padding-inline: units.$u1 * 0.25;\r\n }\r\n\r\n > a:active {\r\n background-color: colors.$grasgroen-10;\r\n }\r\n\r\n > span {\r\n border: pagination-variables.$border-size solid transparent;\r\n border-radius: pagination-variables.$item-size * 0.5;\r\n }\r\n\r\n a {\r\n line-height: pagination-variables.$line-height;\r\n text-decoration: none;\r\n\r\n &:hover,\r\n &:focus {\r\n text-decoration: none;\r\n\r\n &::after {\r\n border-block-end-color: colors.$grasgroen;\r\n }\r\n }\r\n\r\n &::after {\r\n border-block-end: 3px solid transparent;\r\n inset-block-end: 0;\r\n content: \"\";\r\n display: inline-block;\r\n inset-inline-start: 0;\r\n position: absolute;\r\n inline-size: 100%;\r\n }\r\n }\r\n\r\n &.active {\r\n span {\r\n background-color: colors.$grasgroen;\r\n color: colors.$wit;\r\n }\r\n }\r\n\r\n & + li {\r\n margin-inline-start: units.$u1;\r\n }\r\n }\r\n }\r\n}\r\n\r\n.dso-page-hidden {\r\n visibility: hidden;\r\n}\r\n\r\n.sr-only.sr-only {\r\n // class daisy-chained to prevent overwrites by other more specific styling set on this element.\r\n @include utilities.sr-only();\r\n}\r\n","import {\r\n Component,\r\n ComponentInterface,\r\n Element,\r\n Event,\r\n EventEmitter,\r\n Fragment,\r\n Listen,\r\n Prop,\r\n State,\r\n h,\r\n} from \"@stencil/core\";\r\n\r\nimport { isModifiedEvent } from \"../../utils/is-modified-event\";\r\nimport { ResponsiveElementSize } from \"../responsive-element/responsive-element.interfaces\";\r\n\r\nimport { PaginationSelectPageEvent } from \"./pagination.interfaces\";\r\n\r\n@Component({\r\n tag: \"dso-pagination\",\r\n styleUrl: \"pagination.scss\",\r\n shadow: true,\r\n})\r\nexport class Pagination implements ComponentInterface {\r\n private sizePositionsMap: Record<ResponsiveElementSize, number> = {\r\n small: 7,\r\n medium: 9,\r\n large: 11,\r\n };\r\n\r\n private responsiveElement?: HTMLDsoResponsiveElementElement;\r\n\r\n @Element()\r\n host!: HTMLDsoPaginationElement;\r\n\r\n @State()\r\n availablePositions?: number;\r\n /**\r\n * Total pages\r\n */\r\n @Prop()\r\n totalPages?: number;\r\n\r\n /**\r\n * Current page\r\n */\r\n @Prop()\r\n currentPage?: number;\r\n\r\n /**\r\n * This function is called to format the href\r\n */\r\n @Prop()\r\n formatHref: (page: number) => string = (page) => \"#\" + page;\r\n\r\n /**\r\n * Emitted on page select\r\n */\r\n @Event()\r\n dsoSelectPage!: EventEmitter<PaginationSelectPageEvent>;\r\n\r\n /**\r\n * Listens to the dsoSizeChange event on Responsive Element\r\n */\r\n @Listen(\"dsoSizeChange\")\r\n sizeChangeHandler(event: CustomEvent<ResponsiveElementSize>) {\r\n this.availablePositions = this.getAvailablePositions(this.sizePositionsMap[event.detail]);\r\n }\r\n\r\n private clickHandler(e: MouseEvent, page: number) {\r\n this.dsoSelectPage.emit({\r\n originalEvent: e,\r\n page,\r\n isModifiedEvent: isModifiedEvent(e),\r\n });\r\n }\r\n\r\n componentDidLoad(): void {\r\n this.responsiveElement\r\n ?.getSize()\r\n .then(\r\n (size: ResponsiveElementSize) =>\r\n (this.availablePositions = this.getAvailablePositions(this.sizePositionsMap[size])),\r\n );\r\n }\r\n\r\n render() {\r\n if (!this.totalPages && !this.currentPage) {\r\n return null;\r\n }\r\n\r\n if (this.availablePositions === undefined) {\r\n return <dso-responsive-element ref={(element) => (this.responsiveElement = element)}></dso-responsive-element>;\r\n }\r\n\r\n const availablePositions = this.availablePositions;\r\n\r\n const currentPage = this.currentPage ?? 0;\r\n\r\n const pages: number[] = this.getPages(currentPage, this.availablePositions, this.totalPages);\r\n\r\n return (\r\n <dso-responsive-element ref={(element) => (this.responsiveElement = element)}>\r\n <nav class=\"pagination\" aria-label=\"Paginering\">\r\n <ul>\r\n <li class={currentPage <= 1 || !currentPage ? \"dso-page-hidden\" : undefined}>\r\n <a\r\n href={this.formatHref(currentPage - 1)}\r\n aria-label=\"Vorige\"\r\n onClick={(e) => currentPage && this.clickHandler(e, currentPage - 1)}\r\n >\r\n <dso-icon icon=\"chevron-left\"></dso-icon>\r\n </a>\r\n </li>\r\n {pages.map((page) => (\r\n <Fragment>\r\n {this.showEllipsisBeforeLast(pages, page, availablePositions) && (\r\n <li>\r\n <span>...</span>\r\n </li>\r\n )}\r\n\r\n <li key={page} class={currentPage === page ? \"active\" : undefined}>\r\n {currentPage === page ? (\r\n <span aria-current=\"page\">{page}</span>\r\n ) : (\r\n <a href={this.formatHref(page)} onClick={(e) => this.clickHandler(e, page)}>\r\n {page}\r\n </a>\r\n )}\r\n {page === this.totalPages ? <span class=\"sr-only\"> (laatste pagina)</span> : null}\r\n </li>\r\n\r\n {this.showEllipsisAfterFirst(pages, page, availablePositions) && (\r\n <li>\r\n <span>...</span>\r\n </li>\r\n )}\r\n\r\n {this.showEllipsisLastWithoutTotal(pages, page, this.totalPages) && (\r\n <li>\r\n <span>...</span>\r\n </li>\r\n )}\r\n </Fragment>\r\n ))}\r\n <li\r\n class={\r\n (this.totalPages && currentPage >= this.totalPages) || !currentPage ? \"dso-page-hidden\" : undefined\r\n }\r\n >\r\n <a\r\n href={this.formatHref(currentPage + 1)}\r\n aria-label=\"Volgende\"\r\n onClick={(e) => currentPage && this.clickHandler(e, currentPage + 1)}\r\n >\r\n <dso-icon icon=\"chevron-right\"></dso-icon>\r\n </a>\r\n </li>\r\n </ul>\r\n </nav>\r\n </dso-responsive-element>\r\n );\r\n }\r\n\r\n private getAvailablePositions(sizePositions: number) {\r\n if (sizePositions % 2 === 0) {\r\n // Even aantal posities zorgt voor een scheve pagination\r\n return sizePositions - 1;\r\n }\r\n if (sizePositions <= 3) {\r\n // Voor het kunnen tonen van de vorige knop, volgende knop en 1 pagina zijn minimaal 3 posities nodig.\r\n return 3;\r\n }\r\n\r\n return sizePositions;\r\n }\r\n\r\n private getPages(currentPage: number, availablePositions: number, totalPages?: number): number[] {\r\n if (totalPages) {\r\n if (totalPages + 2 <= availablePositions) {\r\n // + 2 voor de vorige en volgende knop\r\n return Array.from({ length: totalPages }, (_value, i) => i + 1);\r\n }\r\n\r\n if (availablePositions === 3) {\r\n return [currentPage];\r\n }\r\n\r\n if (availablePositions === 5) {\r\n return [1, currentPage, totalPages];\r\n }\r\n\r\n return [1, ...this.getPageRange(currentPage, availablePositions, totalPages), totalPages];\r\n }\r\n return this.getPageRangeWithoutTotalPages(currentPage, availablePositions);\r\n }\r\n\r\n private getPageRange(currentPage: number, availablePositions: number, totalPages: number): number[] {\r\n const range: number[] = [];\r\n\r\n const positionRange = Math.floor(availablePositions / 2);\r\n\r\n if (currentPage <= positionRange) {\r\n for (let i = 2; i <= availablePositions - 4; i++) {\r\n range.push(i);\r\n }\r\n }\r\n\r\n if (currentPage >= positionRange && currentPage <= totalPages - positionRange) {\r\n if (positionRange === 1) {\r\n if (currentPage > totalPages - 2) {\r\n range.push(totalPages - 2);\r\n }\r\n\r\n range.push(currentPage);\r\n\r\n if (currentPage < 3) {\r\n range.push(3);\r\n }\r\n }\r\n\r\n if (positionRange > 1) {\r\n const pagesBeforeOrAfter = positionRange - 3;\r\n\r\n for (\r\n let i = Math.min(currentPage - pagesBeforeOrAfter, totalPages - positionRange);\r\n i <= Math.max(currentPage + pagesBeforeOrAfter, positionRange);\r\n i++\r\n ) {\r\n if (i > 2 && i < totalPages - 1) {\r\n range.push(i);\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (currentPage > totalPages - positionRange) {\r\n for (let i = totalPages - (availablePositions - 5); i <= totalPages - 1; i++) {\r\n range.push(i);\r\n }\r\n }\r\n\r\n return range.filter((v, i, a) => a.indexOf(v) === i);\r\n }\r\n\r\n private showEllipsisAfterFirst(pages: number[], page: number, availablePositions: number): boolean {\r\n const totalPages = pages[pages.length - 1];\r\n\r\n if (!totalPages) {\r\n throw new Error(\"No totalPages\");\r\n }\r\n\r\n const isFirstPage = pages.indexOf(page) === 0;\r\n const hasManyPages = totalPages > availablePositions - (this.totalPages ? 2 : 6);\r\n const isPageTwoMissing = !pages.includes(2);\r\n const hasEnoughPositions = availablePositions >= 7;\r\n\r\n return isFirstPage && hasManyPages && isPageTwoMissing && hasEnoughPositions;\r\n }\r\n\r\n private showEllipsisBeforeLast(pages: number[], page: number, availablePositions: number): boolean {\r\n const totalPages = pages[pages.length - 1];\r\n\r\n if (!totalPages) {\r\n throw new Error(\"No totalPages\");\r\n }\r\n\r\n const isLastPage = pages.indexOf(page) === pages.length - 1;\r\n const hasManyPages = totalPages > availablePositions - (this.totalPages ? 2 : 6);\r\n const isSecondLastPageMissing = !pages.includes(totalPages - 1);\r\n const hasEnoughPositions = availablePositions >= 7;\r\n\r\n return isLastPage && hasManyPages && isSecondLastPageMissing && hasEnoughPositions;\r\n }\r\n\r\n private showEllipsisLastWithoutTotal(pages: number[], page: number, totalPages?: number) {\r\n return totalPages ? false : pages.at(-1) === page;\r\n }\r\n\r\n private getPageRangeWithoutTotalPages(currentPage: number, availablePositions: number): number[] {\r\n const positionRange = availablePositions >= 9 ? 2 : 0;\r\n const start = Math.max(1, currentPage - positionRange);\r\n\r\n // Creates an array of numbers from `start` to `currentPage + 1`\r\n const result = Array.from({ length: currentPage - start + 2 }, (_, i) => start + i);\r\n\r\n // Adds 1 to the start of the result array if `start` is >= 2\r\n if (start >= 2) result.unshift(1);\r\n\r\n return result;\r\n }\r\n}\r\n"],"names":["isModifiedEvent","h","Fragment"],"mappings":"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"}