@dso-toolkit/core 64.0.0 → 65.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (316) hide show
  1. package/dist/cjs/dso-action-list-item.cjs.entry.js.map +1 -1
  2. package/dist/cjs/dso-action-list.cjs.entry.js +1 -1
  3. package/dist/cjs/dso-action-list.cjs.entry.js.map +1 -1
  4. package/dist/cjs/dso-advanced-select.cjs.entry.js +1 -1
  5. package/dist/cjs/dso-advanced-select.cjs.entry.js.map +1 -1
  6. package/dist/cjs/dso-alert_6.cjs.entry.js +4 -4
  7. package/dist/cjs/dso-alert_6.cjs.entry.js.map +1 -1
  8. package/dist/cjs/dso-annotation-activiteit.cjs.entry.js +1 -1
  9. package/dist/cjs/dso-annotation-activiteit.cjs.entry.js.map +1 -1
  10. package/dist/cjs/dso-annotation-gebiedsaanwijzing.cjs.entry.js +1 -1
  11. package/dist/cjs/dso-annotation-gebiedsaanwijzing.cjs.entry.js.map +1 -1
  12. package/dist/cjs/dso-annotation-kaart.cjs.entry.js +1 -1
  13. package/dist/cjs/dso-annotation-kaart.cjs.entry.js.map +1 -1
  14. package/dist/cjs/dso-annotation-locatie_2.cjs.entry.js +3 -3
  15. package/dist/cjs/dso-annotation-locatie_2.cjs.entry.js.map +1 -1
  16. package/dist/cjs/dso-annotation-omgevingsnormwaarde.cjs.entry.js +1 -1
  17. package/dist/cjs/dso-annotation-omgevingsnormwaarde.cjs.entry.js.map +1 -1
  18. package/dist/cjs/dso-autosuggest.cjs.entry.js +9 -3
  19. package/dist/cjs/dso-autosuggest.cjs.entry.js.map +1 -1
  20. package/dist/cjs/dso-card.cjs.entry.js +1 -1
  21. package/dist/cjs/dso-card.cjs.entry.js.map +1 -1
  22. package/dist/cjs/dso-helpcenter-panel.cjs.entry.js +1 -1
  23. package/dist/cjs/dso-helpcenter-panel.cjs.entry.js.map +1 -1
  24. package/dist/cjs/dso-info-button.cjs.entry.js +1 -1
  25. package/dist/cjs/dso-info-button.cjs.entry.js.map +1 -1
  26. package/dist/cjs/dso-info_2.cjs.entry.js +1 -1
  27. package/dist/cjs/dso-label_2.cjs.entry.js +2 -2
  28. package/dist/cjs/dso-label_2.cjs.entry.js.map +1 -1
  29. package/dist/cjs/dso-legend-item.cjs.entry.js +1 -1
  30. package/dist/cjs/dso-legend-item.cjs.entry.js.map +1 -1
  31. package/dist/cjs/dso-list-button.cjs.entry.js +1 -1
  32. package/dist/cjs/dso-list-button.cjs.entry.js.map +1 -1
  33. package/dist/cjs/dso-map-controls.cjs.entry.js +1 -1
  34. package/dist/cjs/dso-map-controls.cjs.entry.js.map +1 -1
  35. package/dist/cjs/dso-mark-bar.cjs.entry.js +1 -1
  36. package/dist/cjs/dso-mark-bar.cjs.entry.js.map +1 -1
  37. package/dist/cjs/dso-modal.cjs.entry.js +1 -1
  38. package/dist/cjs/dso-pagination.cjs.entry.js +3 -3
  39. package/dist/cjs/dso-pagination.cjs.entry.js.map +1 -1
  40. package/dist/cjs/dso-project-item.cjs.entry.js +23 -0
  41. package/dist/cjs/dso-project-item.cjs.entry.js.map +1 -0
  42. package/dist/cjs/dso-renvooi_2.cjs.entry.js +2 -2
  43. package/dist/cjs/dso-renvooi_2.cjs.entry.js.map +1 -1
  44. package/dist/cjs/dso-responsive-element.cjs.entry.js +1 -1
  45. package/dist/cjs/dso-scrollable.cjs.entry.js +2 -2
  46. package/dist/cjs/dso-tab.cjs.entry.js +54 -0
  47. package/dist/cjs/dso-tab.cjs.entry.js.map +1 -0
  48. package/dist/cjs/dso-tabs.cjs.entry.js +80 -0
  49. package/dist/cjs/dso-tabs.cjs.entry.js.map +1 -0
  50. package/dist/cjs/dso-toggletip.cjs.entry.js +1 -1
  51. package/dist/cjs/dso-toolkit.cjs.js +1 -1
  52. package/dist/cjs/dso-tree-view.cjs.entry.js +1 -1
  53. package/dist/cjs/dso-viewer-grid.cjs.entry.js +2 -2
  54. package/dist/cjs/dso-viewer-grid.cjs.entry.js.map +1 -1
  55. package/dist/cjs/loader.cjs.js +1 -1
  56. package/dist/collection/collection-manifest.json +3 -0
  57. package/dist/collection/components/action-list/action-list.css +7 -5
  58. package/dist/collection/components/advanced-select/advanced-select.css +2 -0
  59. package/dist/collection/components/annotation/annotation.css +14 -2
  60. package/dist/collection/components/autosuggest/autosuggest.js +9 -3
  61. package/dist/collection/components/autosuggest/autosuggest.js.map +1 -1
  62. package/dist/collection/components/card/card.css +8 -0
  63. package/dist/collection/components/document-component/document-component.css +53 -27
  64. package/dist/collection/components/document-component/document-component.js +1 -1
  65. package/dist/collection/components/document-component/document-component.js.map +1 -1
  66. package/dist/collection/components/helpcenter-panel/helpcenter-panel.css +28 -20
  67. package/dist/collection/components/image-overlay/image-overlay.css +48 -24
  68. package/dist/collection/components/info-button/info-button.css +4 -2
  69. package/dist/collection/components/label/label.css +2 -0
  70. package/dist/collection/components/legend-item/legend-item.css +7 -5
  71. package/dist/collection/components/list-button/list-button.css +29 -11
  72. package/dist/collection/components/map-controls/map-controls.css +35 -25
  73. package/dist/collection/components/mark-bar/mark-bar.css +3 -0
  74. package/dist/collection/components/modal/modal.css +16 -18
  75. package/dist/collection/components/ozon-content/ozon-content.css +86 -39
  76. package/dist/collection/components/pagination/pagination.css +24 -13
  77. package/dist/collection/components/pagination/pagination.js +2 -2
  78. package/dist/collection/components/pagination/pagination.js.map +1 -1
  79. package/dist/collection/components/project-item/project-item.css +75 -0
  80. package/dist/collection/components/project-item/project-item.js +43 -0
  81. package/dist/collection/components/project-item/project-item.js.map +1 -0
  82. package/dist/collection/components/renvooi/renvooi.css +8 -2
  83. package/dist/collection/components/responsive-element/responsive-element.js +1 -1
  84. package/dist/collection/components/scrollable/scrollable.js +2 -2
  85. package/dist/collection/components/selectable/selectable.js +1 -1
  86. package/dist/collection/components/slide-toggle/slide-toggle.js +1 -1
  87. package/dist/collection/components/table/table.css +61 -43
  88. package/dist/collection/components/table/table.js +1 -1
  89. package/dist/collection/components/tabs/components/tab.css +105 -0
  90. package/dist/collection/components/tabs/components/tab.js +158 -0
  91. package/dist/collection/components/tabs/components/tab.js.map +1 -0
  92. package/dist/collection/components/tabs/tabs.css +20 -0
  93. package/dist/collection/components/tabs/tabs.interfaces.js +2 -0
  94. package/dist/collection/components/tabs/tabs.interfaces.js.map +1 -0
  95. package/dist/collection/components/tabs/tabs.js +83 -0
  96. package/dist/collection/components/tabs/tabs.js.map +1 -0
  97. package/dist/collection/components/toggletip/toggletip.js +1 -1
  98. package/dist/collection/components/tooltip/tooltip.js +1 -1
  99. package/dist/collection/components/tree-view/tree-view.js +1 -1
  100. package/dist/collection/components/viewer-grid/viewer-grid.css +69 -43
  101. package/dist/collection/components/viewer-grid/viewer-grid.js +1 -1
  102. package/dist/components/annotation-locatie.js +1 -1
  103. package/dist/components/annotation-locatie.js.map +1 -1
  104. package/dist/components/document-component.js +2 -2
  105. package/dist/components/document-component.js.map +1 -1
  106. package/dist/components/dso-action-list-item.js.map +1 -1
  107. package/dist/components/dso-action-list.js +1 -1
  108. package/dist/components/dso-action-list.js.map +1 -1
  109. package/dist/components/dso-advanced-select.js +1 -1
  110. package/dist/components/dso-advanced-select.js.map +1 -1
  111. package/dist/components/dso-annotation-activiteit.js +1 -1
  112. package/dist/components/dso-annotation-activiteit.js.map +1 -1
  113. package/dist/components/dso-annotation-gebiedsaanwijzing.js +1 -1
  114. package/dist/components/dso-annotation-gebiedsaanwijzing.js.map +1 -1
  115. package/dist/components/dso-annotation-kaart.js +1 -1
  116. package/dist/components/dso-annotation-kaart.js.map +1 -1
  117. package/dist/components/dso-annotation-omgevingsnormwaarde.js +1 -1
  118. package/dist/components/dso-annotation-omgevingsnormwaarde.js.map +1 -1
  119. package/dist/components/dso-autosuggest.js +9 -3
  120. package/dist/components/dso-autosuggest.js.map +1 -1
  121. package/dist/components/dso-card.js +1 -1
  122. package/dist/components/dso-card.js.map +1 -1
  123. package/dist/components/dso-helpcenter-panel.js +1 -1
  124. package/dist/components/dso-helpcenter-panel.js.map +1 -1
  125. package/dist/components/dso-legend-item.js +1 -1
  126. package/dist/components/dso-legend-item.js.map +1 -1
  127. package/dist/components/dso-list-button.js +1 -1
  128. package/dist/components/dso-list-button.js.map +1 -1
  129. package/dist/components/dso-map-controls.js +1 -1
  130. package/dist/components/dso-map-controls.js.map +1 -1
  131. package/dist/components/dso-mark-bar.js +1 -1
  132. package/dist/components/dso-mark-bar.js.map +1 -1
  133. package/dist/components/dso-modal.js +1 -1
  134. package/dist/components/dso-pagination.js +3 -3
  135. package/dist/components/dso-pagination.js.map +1 -1
  136. package/dist/components/dso-project-item.d.ts +11 -0
  137. package/dist/components/dso-project-item.js +57 -0
  138. package/dist/components/dso-project-item.js.map +1 -0
  139. package/dist/components/dso-tab.d.ts +11 -0
  140. package/dist/components/dso-tab.js +73 -0
  141. package/dist/components/dso-tab.js.map +1 -0
  142. package/dist/components/dso-tabs.d.ts +11 -0
  143. package/dist/components/dso-tabs.js +94 -0
  144. package/dist/components/dso-tabs.js.map +1 -0
  145. package/dist/components/dso-tree-view.js +1 -1
  146. package/dist/components/dso-viewer-grid.js +2 -2
  147. package/dist/components/dso-viewer-grid.js.map +1 -1
  148. package/dist/components/image-overlay.js +1 -1
  149. package/dist/components/image-overlay.js.map +1 -1
  150. package/dist/components/index.d.ts +6 -0
  151. package/dist/components/index.js +3 -0
  152. package/dist/components/index.js.map +1 -1
  153. package/dist/components/info-button.js +1 -1
  154. package/dist/components/info-button.js.map +1 -1
  155. package/dist/components/label.js +1 -1
  156. package/dist/components/label.js.map +1 -1
  157. package/dist/components/ozon-content.js +1 -1
  158. package/dist/components/ozon-content.js.map +1 -1
  159. package/dist/components/renvooi.js +1 -1
  160. package/dist/components/renvooi.js.map +1 -1
  161. package/dist/components/responsive-element.js +1 -1
  162. package/dist/components/scrollable.js +2 -2
  163. package/dist/components/selectable.js +1 -1
  164. package/dist/components/slide-toggle.js +1 -1
  165. package/dist/components/table.js +2 -2
  166. package/dist/components/table.js.map +1 -1
  167. package/dist/components/toggletip.js +1 -1
  168. package/dist/components/tooltip.js +1 -1
  169. package/dist/dso-toolkit/dso-toolkit.esm.js +1 -1
  170. package/dist/dso-toolkit/dso-toolkit.esm.js.map +1 -1
  171. package/dist/dso-toolkit/{p-f7428e63.entry.js → p-0c228908.entry.js} +2 -2
  172. package/dist/dso-toolkit/p-18318bd5.entry.js +2 -0
  173. package/dist/dso-toolkit/{p-9ec63c53.entry.js.map → p-18318bd5.entry.js.map} +1 -1
  174. package/dist/dso-toolkit/{p-b69aca6c.entry.js → p-19dd99c6.entry.js} +2 -2
  175. package/dist/dso-toolkit/p-1a824699.entry.js +2 -0
  176. package/dist/dso-toolkit/{p-ea62fe33.entry.js.map → p-1a824699.entry.js.map} +1 -1
  177. package/dist/dso-toolkit/p-2dc8e61f.entry.js +2 -0
  178. package/dist/dso-toolkit/{p-9367abb1.entry.js.map → p-2dc8e61f.entry.js.map} +1 -1
  179. package/dist/dso-toolkit/p-2e413e3d.entry.js +2 -0
  180. package/dist/dso-toolkit/p-34c19fc1.entry.js +2 -0
  181. package/dist/dso-toolkit/p-34c19fc1.entry.js.map +1 -0
  182. package/dist/dso-toolkit/p-3735286c.entry.js +2 -0
  183. package/dist/dso-toolkit/p-3735286c.entry.js.map +1 -0
  184. package/dist/dso-toolkit/p-404ea2b9.entry.js +2 -0
  185. package/dist/dso-toolkit/{p-7acf6216.entry.js.map → p-404ea2b9.entry.js.map} +1 -1
  186. package/dist/dso-toolkit/p-448d84e3.entry.js +2 -0
  187. package/dist/dso-toolkit/p-448d84e3.entry.js.map +1 -0
  188. package/dist/dso-toolkit/p-487469c5.entry.js +2 -0
  189. package/dist/dso-toolkit/p-487469c5.entry.js.map +1 -0
  190. package/dist/dso-toolkit/p-5180315a.entry.js +2 -0
  191. package/dist/dso-toolkit/{p-949f5bc0.entry.js.map → p-5180315a.entry.js.map} +1 -1
  192. package/dist/dso-toolkit/{p-6742d457.entry.js → p-5db11fa4.entry.js} +2 -2
  193. package/dist/dso-toolkit/p-5f2d8a1f.entry.js +2 -0
  194. package/dist/dso-toolkit/{p-a13ad7da.entry.js.map → p-5f2d8a1f.entry.js.map} +1 -1
  195. package/dist/dso-toolkit/p-66689c5c.entry.js +2 -0
  196. package/dist/dso-toolkit/{p-dd680a61.entry.js.map → p-66689c5c.entry.js.map} +1 -1
  197. package/dist/dso-toolkit/p-786f3a41.entry.js.map +1 -1
  198. package/dist/dso-toolkit/p-7d7630d0.entry.js +2 -0
  199. package/dist/dso-toolkit/p-7d7630d0.entry.js.map +1 -0
  200. package/dist/dso-toolkit/p-88aebd15.entry.js +2 -0
  201. package/dist/dso-toolkit/{p-8e902d74.entry.js.map → p-88aebd15.entry.js.map} +1 -1
  202. package/dist/dso-toolkit/p-892b8003.entry.js +2 -0
  203. package/dist/dso-toolkit/{p-78daa04d.entry.js.map → p-892b8003.entry.js.map} +1 -1
  204. package/dist/dso-toolkit/p-9772e3b6.entry.js +2 -0
  205. package/dist/dso-toolkit/{p-eaa9146c.entry.js.map → p-9772e3b6.entry.js.map} +1 -1
  206. package/dist/dso-toolkit/p-9af9870b.entry.js +2 -0
  207. package/dist/dso-toolkit/p-9af9870b.entry.js.map +1 -0
  208. package/dist/dso-toolkit/p-a644f41c.entry.js +2 -0
  209. package/dist/dso-toolkit/p-a644f41c.entry.js.map +1 -0
  210. package/dist/dso-toolkit/p-a705c684.entry.js +2 -0
  211. package/dist/dso-toolkit/{p-d246e155.entry.js.map → p-a705c684.entry.js.map} +1 -1
  212. package/dist/dso-toolkit/p-b7ca8de2.entry.js +2 -0
  213. package/dist/dso-toolkit/{p-38210481.entry.js.map → p-b7ca8de2.entry.js.map} +1 -1
  214. package/dist/dso-toolkit/{p-9630207a.entry.js → p-d42db4af.entry.js} +2 -2
  215. package/dist/dso-toolkit/p-d7358e77.entry.js +2 -0
  216. package/dist/dso-toolkit/{p-8ff36cfa.entry.js.map → p-d7358e77.entry.js.map} +1 -1
  217. package/dist/dso-toolkit/p-e283ee51.entry.js +2 -0
  218. package/dist/dso-toolkit/{p-a40730f7.entry.js.map → p-e283ee51.entry.js.map} +1 -1
  219. package/dist/dso-toolkit/{p-ede5568b.entry.js → p-e4eed4a2.entry.js} +2 -2
  220. package/dist/dso-toolkit/p-eb79a374.entry.js +2 -0
  221. package/dist/dso-toolkit/{p-c0e4bcee.entry.js.map → p-eb79a374.entry.js.map} +1 -1
  222. package/dist/dso-toolkit/p-f1b0fe14.entry.js +2 -0
  223. package/dist/dso-toolkit/p-f1b0fe14.entry.js.map +1 -0
  224. package/dist/esm/dso-action-list-item.entry.js.map +1 -1
  225. package/dist/esm/dso-action-list.entry.js +1 -1
  226. package/dist/esm/dso-action-list.entry.js.map +1 -1
  227. package/dist/esm/dso-advanced-select.entry.js +1 -1
  228. package/dist/esm/dso-advanced-select.entry.js.map +1 -1
  229. package/dist/esm/dso-alert_6.entry.js +4 -4
  230. package/dist/esm/dso-alert_6.entry.js.map +1 -1
  231. package/dist/esm/dso-annotation-activiteit.entry.js +1 -1
  232. package/dist/esm/dso-annotation-activiteit.entry.js.map +1 -1
  233. package/dist/esm/dso-annotation-gebiedsaanwijzing.entry.js +1 -1
  234. package/dist/esm/dso-annotation-gebiedsaanwijzing.entry.js.map +1 -1
  235. package/dist/esm/dso-annotation-kaart.entry.js +1 -1
  236. package/dist/esm/dso-annotation-kaart.entry.js.map +1 -1
  237. package/dist/esm/dso-annotation-locatie_2.entry.js +3 -3
  238. package/dist/esm/dso-annotation-locatie_2.entry.js.map +1 -1
  239. package/dist/esm/dso-annotation-omgevingsnormwaarde.entry.js +1 -1
  240. package/dist/esm/dso-annotation-omgevingsnormwaarde.entry.js.map +1 -1
  241. package/dist/esm/dso-autosuggest.entry.js +9 -3
  242. package/dist/esm/dso-autosuggest.entry.js.map +1 -1
  243. package/dist/esm/dso-card.entry.js +1 -1
  244. package/dist/esm/dso-card.entry.js.map +1 -1
  245. package/dist/esm/dso-helpcenter-panel.entry.js +1 -1
  246. package/dist/esm/dso-helpcenter-panel.entry.js.map +1 -1
  247. package/dist/esm/dso-info-button.entry.js +1 -1
  248. package/dist/esm/dso-info-button.entry.js.map +1 -1
  249. package/dist/esm/dso-info_2.entry.js +1 -1
  250. package/dist/esm/dso-label_2.entry.js +2 -2
  251. package/dist/esm/dso-label_2.entry.js.map +1 -1
  252. package/dist/esm/dso-legend-item.entry.js +1 -1
  253. package/dist/esm/dso-legend-item.entry.js.map +1 -1
  254. package/dist/esm/dso-list-button.entry.js +1 -1
  255. package/dist/esm/dso-list-button.entry.js.map +1 -1
  256. package/dist/esm/dso-map-controls.entry.js +1 -1
  257. package/dist/esm/dso-map-controls.entry.js.map +1 -1
  258. package/dist/esm/dso-mark-bar.entry.js +1 -1
  259. package/dist/esm/dso-mark-bar.entry.js.map +1 -1
  260. package/dist/esm/dso-modal.entry.js +1 -1
  261. package/dist/esm/dso-pagination.entry.js +3 -3
  262. package/dist/esm/dso-pagination.entry.js.map +1 -1
  263. package/dist/esm/dso-project-item.entry.js +19 -0
  264. package/dist/esm/dso-project-item.entry.js.map +1 -0
  265. package/dist/esm/dso-renvooi_2.entry.js +2 -2
  266. package/dist/esm/dso-renvooi_2.entry.js.map +1 -1
  267. package/dist/esm/dso-responsive-element.entry.js +1 -1
  268. package/dist/esm/dso-scrollable.entry.js +2 -2
  269. package/dist/esm/dso-tab.entry.js +50 -0
  270. package/dist/esm/dso-tab.entry.js.map +1 -0
  271. package/dist/esm/dso-tabs.entry.js +76 -0
  272. package/dist/esm/dso-tabs.entry.js.map +1 -0
  273. package/dist/esm/dso-toggletip.entry.js +1 -1
  274. package/dist/esm/dso-toolkit.js +1 -1
  275. package/dist/esm/dso-tree-view.entry.js +1 -1
  276. package/dist/esm/dso-viewer-grid.entry.js +2 -2
  277. package/dist/esm/dso-viewer-grid.entry.js.map +1 -1
  278. package/dist/esm/loader.js +1 -1
  279. package/dist/types/components/project-item/project-item.d.ts +8 -0
  280. package/dist/types/components/tabs/components/tab.d.ts +33 -0
  281. package/dist/types/components/tabs/tabs.d.ts +18 -0
  282. package/dist/types/components/tabs/tabs.interfaces.d.ts +4 -0
  283. package/dist/types/components.d.ts +93 -0
  284. package/package.json +3 -3
  285. package/dist/dso-toolkit/p-09b3cda7.entry.js +0 -2
  286. package/dist/dso-toolkit/p-09b3cda7.entry.js.map +0 -1
  287. package/dist/dso-toolkit/p-142b052b.entry.js +0 -2
  288. package/dist/dso-toolkit/p-142b052b.entry.js.map +0 -1
  289. package/dist/dso-toolkit/p-38210481.entry.js +0 -2
  290. package/dist/dso-toolkit/p-64f032ae.entry.js +0 -2
  291. package/dist/dso-toolkit/p-64f032ae.entry.js.map +0 -1
  292. package/dist/dso-toolkit/p-78daa04d.entry.js +0 -2
  293. package/dist/dso-toolkit/p-7acf6216.entry.js +0 -2
  294. package/dist/dso-toolkit/p-8e902d74.entry.js +0 -2
  295. package/dist/dso-toolkit/p-8ff36cfa.entry.js +0 -2
  296. package/dist/dso-toolkit/p-9367abb1.entry.js +0 -2
  297. package/dist/dso-toolkit/p-949f5bc0.entry.js +0 -2
  298. package/dist/dso-toolkit/p-99a8a8d0.entry.js +0 -2
  299. package/dist/dso-toolkit/p-9ec63c53.entry.js +0 -2
  300. package/dist/dso-toolkit/p-9f22940a.entry.js +0 -2
  301. package/dist/dso-toolkit/p-9f22940a.entry.js.map +0 -1
  302. package/dist/dso-toolkit/p-a13ad7da.entry.js +0 -2
  303. package/dist/dso-toolkit/p-a40730f7.entry.js +0 -2
  304. package/dist/dso-toolkit/p-c0e4bcee.entry.js +0 -2
  305. package/dist/dso-toolkit/p-d246e155.entry.js +0 -2
  306. package/dist/dso-toolkit/p-d6c90738.entry.js +0 -2
  307. package/dist/dso-toolkit/p-d6c90738.entry.js.map +0 -1
  308. package/dist/dso-toolkit/p-dd680a61.entry.js +0 -2
  309. package/dist/dso-toolkit/p-ea62fe33.entry.js +0 -2
  310. package/dist/dso-toolkit/p-eaa9146c.entry.js +0 -2
  311. /package/dist/dso-toolkit/{p-f7428e63.entry.js.map → p-0c228908.entry.js.map} +0 -0
  312. /package/dist/dso-toolkit/{p-b69aca6c.entry.js.map → p-19dd99c6.entry.js.map} +0 -0
  313. /package/dist/dso-toolkit/{p-99a8a8d0.entry.js.map → p-2e413e3d.entry.js.map} +0 -0
  314. /package/dist/dso-toolkit/{p-6742d457.entry.js.map → p-5db11fa4.entry.js.map} +0 -0
  315. /package/dist/dso-toolkit/{p-9630207a.entry.js.map → p-d42db4af.entry.js.map} +0 -0
  316. /package/dist/dso-toolkit/{p-ede5568b.entry.js.map → p-e4eed4a2.entry.js.map} +0 -0
@@ -0,0 +1,2 @@
1
+ import{r as i,c as n,h as e,F as t,a}from"./p-b623c74b.js";import{i as l}from"./p-2d694112.js";const o=':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,.pagination ul>li>span: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}';const s=o;const r=class{constructor(e){i(this,e);this.dsoSelectPage=n(this,"dsoSelectPage",7);this.sizePositionsMap={small:7,medium:9,large:11};this.availablePositions=undefined;this.totalPages=undefined;this.currentPage=undefined;this.formatHref=i=>"#"+i}sizeChangeHandler(i){this.availablePositions=this.getAvailablePositions(this.sizePositionsMap[i.detail])}clickHandler(i,n){this.dsoSelectPage.emit({originalEvent:i,page:n,isModifiedEvent:l(i)})}componentDidLoad(){var i;(i=this.responsiveElement)===null||i===void 0?void 0:i.getSize().then((i=>this.availablePositions=this.getAvailablePositions(this.sizePositionsMap[i])))}render(){var i,n,a;if(!this.totalPages){return null}if(this.availablePositions===undefined){return e("dso-responsive-element",{ref:i=>this.responsiveElement=i})}const l=this.availablePositions;const o=(i=this.currentPage)!==null&&i!==void 0?i:0;const s=this.getPages(o,this.availablePositions,this.totalPages);return e("dso-responsive-element",{ref:i=>this.responsiveElement=i},e("nav",{class:"pagination","aria-label":"Paginering"},e("ul",null,e("li",{class:o<=1||o>this.totalPages?"dso-page-hidden":undefined},e("a",{href:this.formatHref((n=s[s.indexOf(o)-1])!==null&&n!==void 0?n:1),"aria-label":"Vorige",onClick:i=>{var n;return o&&this.clickHandler(i,(n=s[s.indexOf(o)-1])!==null&&n!==void 0?n:1)}},e("dso-icon",{icon:"chevron-left"}))),s.map((i=>e(t,null,this.showEllipsisBeforeLast(s,i,l)&&e("li",null,e("span",null,"...")),e("li",{key:i,class:o===i?"active":undefined},o===i?e("span",{"aria-current":"page"},i):e("a",{href:this.formatHref(i),onClick:n=>this.clickHandler(n,i)},i),i===this.totalPages?e("span",{class:"sr-only"}," (laatste pagina)"):null),this.showEllipsisAfterFirst(s,i,l)&&e("li",null,e("span",null,"..."))))),e("li",{class:o<1||o>=this.totalPages?"dso-page-hidden":undefined},e("a",{href:this.formatHref((a=s[s.indexOf(o)+1])!==null&&a!==void 0?a:this.totalPages),"aria-label":"Volgende",onClick:i=>{var n;return o&&this.totalPages&&this.clickHandler(i,(n=s[s.indexOf(o)+1])!==null&&n!==void 0?n:this.totalPages)}},e("dso-icon",{icon:"chevron-right"}))))))}getAvailablePositions(i){if(i%2===0){return i-1}if(i<=3){return 3}return i}getPages(i,n,e){if(e+2<=n){return Array.from({length:e},((i,n)=>n+1))}if(n===3){return[i]}if(n===5){return[1,i,e]}return[1,...this.getPageRange(i,n,e),e]}getPageRange(i,n,e){const t=[];const a=Math.floor(n/2);if(i<=a){for(let i=2;i<=n-4;i++){t.push(i)}}if(i>=a&&i<=e-a){if(a===1){if(i>e-2){t.push(e-2)}t.push(i);if(i<3){t.push(3)}}if(a>1){const n=a-3;for(let l=Math.min(i-n,e-a);l<=Math.max(i+n,a);l++){if(l>2&&l<e-1){t.push(l)}}}}if(i>e-a){for(let i=e-(n-5);i<=e-1;i++){t.push(i)}}return t.filter(((i,n,e)=>e.indexOf(i)===n))}showEllipsisAfterFirst(i,n,e){const t=i[i.length-1];if(!t){throw new Error("No totalPages")}return i.indexOf(n)===0&&t>e-2&&!i.some((i=>i===2))&&e>=7}showEllipsisBeforeLast(i,n,e){const t=i[i.length-1];if(!t){throw new Error("No totalPages")}return i.indexOf(n)===i.length-1&&t>e-2&&!i.some((i=>i===t-1))&&e>=7}get host(){return a(this)}};r.style=s;export{r as dso_pagination};
2
+ //# sourceMappingURL=p-a644f41c.entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["paginationCss","DsoPaginationStyle0","Pagination","this","sizePositionsMap","small","medium","large","page","sizeChangeHandler","event","availablePositions","getAvailablePositions","detail","clickHandler","e","dsoSelectPage","emit","originalEvent","isModifiedEvent","componentDidLoad","_a","responsiveElement","getSize","then","size","render","totalPages","undefined","h","ref","element","currentPage","pages","getPages","class","href","formatHref","_b","indexOf","onClick","icon","map","Fragment","showEllipsisBeforeLast","key","showEllipsisAfterFirst","_c","sizePositions","Array","from","length","_value","i","getPageRange","range","positionRange","Math","floor","push","pagesBeforeOrAfter","min","max","filter","v","a","Error","some","p"],"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/components/pagination\";\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 @include pagination.root();\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 h,\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} from \"@stencil/core\";\r\nimport { isModifiedEvent } from \"../../utils/is-modified-event\";\r\n\r\nimport { ResponsiveElementSize } from \"../responsive-element/responsive-element.interfaces\";\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) {\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 > this.totalPages ? \"dso-page-hidden\" : undefined}>\r\n <a\r\n href={this.formatHref(pages[pages.indexOf(currentPage) - 1] ?? 1)}\r\n aria-label=\"Vorige\"\r\n onClick={(e) => currentPage && this.clickHandler(e, pages[pages.indexOf(currentPage) - 1] ?? 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 <>\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 ))}\r\n <li class={currentPage < 1 || currentPage >= this.totalPages ? \"dso-page-hidden\" : undefined}>\r\n <a\r\n href={this.formatHref(pages[pages.indexOf(currentPage) + 1] ?? this.totalPages)}\r\n aria-label=\"Volgende\"\r\n onClick={(e) =>\r\n currentPage &&\r\n this.totalPages &&\r\n this.clickHandler(e, pages[pages.indexOf(currentPage) + 1] ?? this.totalPages)\r\n }\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 + 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\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 if (!totalPages) {\r\n throw new Error(\"No totalPages\");\r\n }\r\n\r\n return (\r\n pages.indexOf(page) === 0 &&\r\n totalPages > availablePositions - 2 &&\r\n !pages.some((p) => p === 2) &&\r\n availablePositions >= 7\r\n );\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 if (!totalPages) {\r\n throw new Error(\"No totalPages\");\r\n }\r\n\r\n return (\r\n pages.indexOf(page) === pages.length - 1 &&\r\n totalPages > availablePositions - 2 &&\r\n !pages.some((p) => p === totalPages - 1) &&\r\n availablePositions >= 7\r\n );\r\n }\r\n}\r\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ import{r as o,c as e,h as r,F as i,a}from"./p-b623c74b.js";import{A as t}from"./p-ae8b8810.js";import{w as n,A as s,a as d}from"./p-00caab3b.js";const l='a{background-color:transparent;color:var(--link-color);text-decoration:underline}a:hover,a:focus-visible{color:var(--link-hover-color);text-decoration:underline}a:active{text-decoration:none}a:visited{color:var(--link-visited-color)}a:where(:not(.dso-primary,.dso-secondary,.dso-tertiary)).download{background-repeat:no-repeat;background-size:1.25em 1.25em;padding-inline-end:1.5em;background-position:bottom 0 right 0}a:where(:not(.dso-primary,.dso-secondary,.dso-tertiary)).download{background-image:url("./dso-icons.svg#img-download")}a:where(:not(.dso-primary,.dso-secondary,.dso-tertiary)).download:hover,a:where(:not(.dso-primary,.dso-secondary,.dso-tertiary)).download:focus-visible{background-image:url("./dso-icons.svg#img-download-scampi")}a:where(:not(.dso-primary,.dso-secondary,.dso-tertiary)).extern{background-repeat:no-repeat;background-size:1.25em 1.25em;padding-inline-end:1.5em;background-position:bottom 0 right 0}a:where(:not(.dso-primary,.dso-secondary,.dso-tertiary)).extern{background-image:url("./dso-icons.svg#img-external-link")}a:where(:not(.dso-primary,.dso-secondary,.dso-tertiary)).extern:hover,a:where(:not(.dso-primary,.dso-secondary,.dso-tertiary)).extern:focus-visible{background-image:url("./dso-icons.svg#img-external-link-scampi")}a:where(:not(.dso-primary,.dso-secondary,.dso-tertiary))[href^="tel:"]{background-repeat:no-repeat;background-size:1.25em 1.25em;padding-inline-start:1.5em;background-position:bottom 0 left 0}a:where(:not(.dso-primary,.dso-secondary,.dso-tertiary))[href^="tel:"]{background-image:url("./dso-icons.svg#img-call-grasgroen")}a:where(:not(.dso-primary,.dso-secondary,.dso-tertiary))[href^="tel:"]:hover,a:where(:not(.dso-primary,.dso-secondary,.dso-tertiary))[href^="tel:"]:focus-visible{background-image:url("./dso-icons.svg#img-call-scampi")}a:where(:not(.dso-primary,.dso-secondary,.dso-tertiary))[href^="mailto:"]{background-repeat:no-repeat;background-size:1.25em 1.25em;padding-inline-start:1.5em;background-position:bottom 0 left 0}a:where(:not(.dso-primary,.dso-secondary,.dso-tertiary))[href^="mailto:"]{background-image:url("./dso-icons.svg#img-email-grasgroen")}a:where(:not(.dso-primary,.dso-secondary,.dso-tertiary))[href^="mailto:"]:hover,a:where(:not(.dso-primary,.dso-secondary,.dso-tertiary))[href^="mailto:"]:focus-visible{background-image:url("./dso-icons.svg#img-email-scampi")}:host{display:block;padding:2px}:host([wijzigactie=voegtoe]){--link-color:currentColor;--link-hover-color:currentColor;--link-visited-color:currentColor;background-color:#e4f1d4;border-color:#e4f1d4;color:#191919}:host([wijzigactie=voegtoe]) a:is(.download,.download:hover,.download:focus-visible){background-image:url("./dso-icons.svg#img-download-zwart")}:host([wijzigactie=voegtoe]) a:is(.extern,.extern:hover,.extern:focus-visible){background-image:url("./dso-icons.svg#img-external-link-zwart")}:host([wijzigactie=voegtoe]) a:is([href^="tel:"],[href^="tel:"]:hover,[href^="tel:"]:focus-visible){background-image:url("./dso-icons.svg#img-call-zwart")}:host([wijzigactie=voegtoe]) a:is([href^="mailto:"],[href^="mailto:"]:hover,[href^="mailto:"]:focus-visible){background-image:url("./dso-icons.svg#img-email-zwart")}:host([wijzigactie=voegtoe]){box-shadow:0 1px 3px 1px rgba(0, 0, 0, 0.25)}:host([wijzigactie=verwijder]){--link-color:currentColor;--link-hover-color:currentColor;--link-visited-color:currentColor;background-color:#f5d8dc;border-color:#f5d8dc;color:#191919}:host([wijzigactie=verwijder]) a:is(.download,.download:hover,.download:focus-visible){background-image:url("./dso-icons.svg#img-download-zwart")}:host([wijzigactie=verwijder]) a:is(.extern,.extern:hover,.extern:focus-visible){background-image:url("./dso-icons.svg#img-external-link-zwart")}:host([wijzigactie=verwijder]) a:is([href^="tel:"],[href^="tel:"]:hover,[href^="tel:"]:focus-visible){background-image:url("./dso-icons.svg#img-call-zwart")}:host([wijzigactie=verwijder]) a:is([href^="mailto:"],[href^="mailto:"]:hover,[href^="mailto:"]:focus-visible){background-image:url("./dso-icons.svg#img-email-zwart")}:host([wijzigactie=verwijder]){text-decoration:line-through}*,*::after,*::before{box-sizing:border-box}.annotation-body{display:flex;gap:8px}.annotation-info{flex-grow:1}.annotation-symbol,.annotation-control{flex-shrink:0}.annotation-title{font-weight:500}.annotation-title,.annotation-data{margin-block:0}.annotation-title .content:has(+dso-label),.annotation-data .content:has(+dso-label){margin-inline-end:4px}.annotation-data{font-size:0.875rem}';const c=l;const g=class{constructor(r){o(this,r);this.dsoActiveChange=e(this,"dsoActiveChange",7);this.watcher=n(this.host);this.wijzigactie=undefined;this.active=undefined;this.gewijzigdeLocatie=undefined;this.naam=undefined}connectedCallback(){this.watcher.watch()}disconnectedCallback(){this.watcher.unwatch()}render(){const o=this.watcher.hasSymbool();return r(t,{key:"c35c99144dfef7539a488b35cad62b761dd32a9b",symbol:o?r(s,null):undefined,active:this.active,dsoActiveChange:this.dsoActiveChange,title:r(i,null,r("span",{class:"content"},r("dso-renvooi",{value:this.naam})),this.gewijzigdeLocatie&&r(d,null))})}get host(){return a(this)}};g.style=c;export{g as dso_annotation_gebiedsaanwijzing};
2
+ //# sourceMappingURL=p-a705c684.entry.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["annotationCss","DsoAnnotationGebiedsaanwijzingStyle0","AnnotationGebiedsaanwijzing","this","watcher","host","connectedCallback","watch","disconnectedCallback","unwatch","render","hasSymbool","h","AnnotationBody","key","symbol","AnnotationSymbolSlot","undefined","active","dsoActiveChange","title","Fragment","class","value","naam","gewijzigdeLocatie","AnnotationGewijzigdeLocatie"],"sources":["src/components/annotation/annotation.scss?tag=dso-annotation-gebiedsaanwijzing&encapsulation=shadow","src/components/annotation/annotation-gebiedsaanwijzing/annotation-gebiedsaanwijzing.tsx"],"sourcesContent":["@use \"~dso-toolkit/src/utilities\";\r\n@use \"~dso-toolkit/src/variables/units\";\r\n\r\n@use \"~dso-toolkit/src/components/insert\";\r\n@use \"~dso-toolkit/src/components/delete\";\r\n\r\n@use \"~dso-toolkit/src/components/anchor/anchor\";\r\n\r\n:host {\r\n display: block;\r\n padding: 2px;\r\n}\r\n\r\n:host([wijzigactie=\"voegtoe\"]) {\r\n @include insert.root();\r\n}\r\n\r\n:host([wijzigactie=\"verwijder\"]) {\r\n @include delete.root();\r\n}\r\n\r\n@include utilities.box-sizing();\r\n\r\n.annotation-body {\r\n display: flex;\r\n gap: units.$u1;\r\n}\r\n\r\n.annotation-info {\r\n flex-grow: 1;\r\n}\r\n\r\n.annotation-symbol,\r\n.annotation-control {\r\n flex-shrink: 0;\r\n}\r\n\r\n.annotation-title {\r\n font-weight: 500;\r\n}\r\n\r\n.annotation-title,\r\n.annotation-data {\r\n margin-block: 0;\r\n\r\n .content:has(+ dso-label) {\r\n margin-inline-end: units.$u1 * 0.5;\r\n }\r\n}\r\n\r\n.annotation-data {\r\n font-size: 0.875rem;\r\n}\r\n","import { Component, ComponentInterface, Prop, Event, h, EventEmitter, Fragment, Element } from \"@stencil/core\";\r\nimport { AnnotationActiveChangeEvent, AnnotationWijzigactie } from \"../annotation.interfaces\";\r\nimport { AnnotationBody } from \"../annotation-body\";\r\nimport { AnnotationGewijzigdeLocatie } from \"../annotation-gewijzigde-locatie\";\r\nimport { watcher } from \"../annotation-watcher\";\r\nimport { AnnotationSymbolSlot } from \"../annotation-symbol-slot\";\r\nimport { RenvooiValue } from \"../../renvooi/renvooi.interfaces\";\r\n\r\n/**\r\n * @slot symbool - Een optionele afbeelding die de annotatie symboliseert.\r\n */\r\n@Component({\r\n tag: \"dso-annotation-gebiedsaanwijzing\",\r\n styleUrl: \"../annotation.scss\",\r\n shadow: true,\r\n})\r\nexport class AnnotationGebiedsaanwijzing implements ComponentInterface {\r\n /**\r\n * Een optionele wijzigactie die aangeeft of de annotatie toegevoegd of verwijderd is.\r\n */\r\n @Prop({ reflect: true })\r\n wijzigactie?: AnnotationWijzigactie;\r\n\r\n /**\r\n * Een optionele boolean die aangeeft of de annotatie actief is.\r\n */\r\n @Prop({ reflect: true })\r\n active?: boolean;\r\n\r\n /**\r\n * Een optionele boolean die aangeeft of de locatie van de annotatie gewijzigd is.\r\n */\r\n @Prop({ reflect: true })\r\n gewijzigdeLocatie?: boolean;\r\n\r\n /**\r\n * Een optionele event listener voor wijzigingen aan de status van de annotatie.\r\n */\r\n @Event()\r\n dsoActiveChange!: EventEmitter<AnnotationActiveChangeEvent>;\r\n\r\n /**\r\n * De naam van de gebiedsaanwijzing.\r\n */\r\n @Prop()\r\n naam?: RenvooiValue | string;\r\n\r\n @Element()\r\n private host!: HTMLDsoAnnotationGebiedsaanwijzingElement;\r\n\r\n private watcher = watcher(this.host);\r\n\r\n connectedCallback(): void {\r\n this.watcher.watch();\r\n }\r\n\r\n disconnectedCallback(): void {\r\n this.watcher.unwatch();\r\n }\r\n\r\n render() {\r\n const hasSymbool = this.watcher.hasSymbool();\r\n\r\n return (\r\n <AnnotationBody\r\n symbol={hasSymbool ? <AnnotationSymbolSlot /> : undefined}\r\n active={this.active}\r\n dsoActiveChange={this.dsoActiveChange}\r\n title={\r\n <>\r\n <span class=\"content\">\r\n <dso-renvooi value={this.naam} />\r\n </span>\r\n {this.gewijzigdeLocatie && <AnnotationGewijzigdeLocatie />}\r\n </>\r\n }\r\n />\r\n );\r\n }\r\n}\r\n"],"mappings":"iJAAA,MAAMA,EAAgB,6kIACtB,MAAAC,EAAeD,E,MCeFE,EAA2B,M,0EAkC9BC,KAAAC,QAAUA,EAAQD,KAAKE,M,sGAE/B,iBAAAC,GACEH,KAAKC,QAAQG,O,CAGf,oBAAAC,GACEL,KAAKC,QAAQK,S,CAGf,MAAAC,GACE,MAAMC,EAAaR,KAAKC,QAAQO,aAEhC,OACEC,EAACC,EAAc,CAAAC,IAAA,2CACbC,OAAQJ,EAAaC,EAACI,EAAoB,MAAMC,UAChDC,OAAQf,KAAKe,OACbC,gBAAiBhB,KAAKgB,gBACtBC,MACER,EAAAS,EAAA,KACET,EAAA,QAAMU,MAAM,WACVV,EAAA,eAAaW,MAAOpB,KAAKqB,QAE1BrB,KAAKsB,mBAAqBb,EAACc,EAA2B,Q","ignoreList":[]}
1
+ {"version":3,"names":["annotationCss","DsoAnnotationGebiedsaanwijzingStyle0","AnnotationGebiedsaanwijzing","this","watcher","host","connectedCallback","watch","disconnectedCallback","unwatch","render","hasSymbool","h","AnnotationBody","key","symbol","AnnotationSymbolSlot","undefined","active","dsoActiveChange","title","Fragment","class","value","naam","gewijzigdeLocatie","AnnotationGewijzigdeLocatie"],"sources":["src/components/annotation/annotation.scss?tag=dso-annotation-gebiedsaanwijzing&encapsulation=shadow","src/components/annotation/annotation-gebiedsaanwijzing/annotation-gebiedsaanwijzing.tsx"],"sourcesContent":["@use \"~dso-toolkit/src/utilities\";\r\n@use \"~dso-toolkit/src/variables/units\";\r\n\r\n@use \"~dso-toolkit/src/components/insert\";\r\n@use \"~dso-toolkit/src/components/delete\";\r\n\r\n@use \"~dso-toolkit/src/components/anchor/anchor\";\r\n\r\n:host {\r\n display: block;\r\n padding: 2px;\r\n}\r\n\r\n:host([wijzigactie=\"voegtoe\"]) {\r\n @include insert.root();\r\n}\r\n\r\n:host([wijzigactie=\"verwijder\"]) {\r\n @include delete.root();\r\n}\r\n\r\n@include utilities.box-sizing();\r\n\r\n.annotation-body {\r\n display: flex;\r\n gap: units.$u1;\r\n}\r\n\r\n.annotation-info {\r\n flex-grow: 1;\r\n}\r\n\r\n.annotation-symbol,\r\n.annotation-control {\r\n flex-shrink: 0;\r\n}\r\n\r\n.annotation-title {\r\n font-weight: 500;\r\n}\r\n\r\n.annotation-title,\r\n.annotation-data {\r\n margin-block: 0;\r\n\r\n .content:has(+ dso-label) {\r\n margin-inline-end: units.$u1 * 0.5;\r\n }\r\n}\r\n\r\n.annotation-data {\r\n font-size: 0.875rem;\r\n}\r\n","import { Component, ComponentInterface, Prop, Event, h, EventEmitter, Fragment, Element } from \"@stencil/core\";\r\nimport { AnnotationActiveChangeEvent, AnnotationWijzigactie } from \"../annotation.interfaces\";\r\nimport { AnnotationBody } from \"../annotation-body\";\r\nimport { AnnotationGewijzigdeLocatie } from \"../annotation-gewijzigde-locatie\";\r\nimport { watcher } from \"../annotation-watcher\";\r\nimport { AnnotationSymbolSlot } from \"../annotation-symbol-slot\";\r\nimport { RenvooiValue } from \"../../renvooi/renvooi.interfaces\";\r\n\r\n/**\r\n * @slot symbool - Een optionele afbeelding die de annotatie symboliseert.\r\n */\r\n@Component({\r\n tag: \"dso-annotation-gebiedsaanwijzing\",\r\n styleUrl: \"../annotation.scss\",\r\n shadow: true,\r\n})\r\nexport class AnnotationGebiedsaanwijzing implements ComponentInterface {\r\n /**\r\n * Een optionele wijzigactie die aangeeft of de annotatie toegevoegd of verwijderd is.\r\n */\r\n @Prop({ reflect: true })\r\n wijzigactie?: AnnotationWijzigactie;\r\n\r\n /**\r\n * Een optionele boolean die aangeeft of de annotatie actief is.\r\n */\r\n @Prop({ reflect: true })\r\n active?: boolean;\r\n\r\n /**\r\n * Een optionele boolean die aangeeft of de locatie van de annotatie gewijzigd is.\r\n */\r\n @Prop({ reflect: true })\r\n gewijzigdeLocatie?: boolean;\r\n\r\n /**\r\n * Een optionele event listener voor wijzigingen aan de status van de annotatie.\r\n */\r\n @Event()\r\n dsoActiveChange!: EventEmitter<AnnotationActiveChangeEvent>;\r\n\r\n /**\r\n * De naam van de gebiedsaanwijzing.\r\n */\r\n @Prop()\r\n naam?: RenvooiValue | string;\r\n\r\n @Element()\r\n private host!: HTMLDsoAnnotationGebiedsaanwijzingElement;\r\n\r\n private watcher = watcher(this.host);\r\n\r\n connectedCallback(): void {\r\n this.watcher.watch();\r\n }\r\n\r\n disconnectedCallback(): void {\r\n this.watcher.unwatch();\r\n }\r\n\r\n render() {\r\n const hasSymbool = this.watcher.hasSymbool();\r\n\r\n return (\r\n <AnnotationBody\r\n symbol={hasSymbool ? <AnnotationSymbolSlot /> : undefined}\r\n active={this.active}\r\n dsoActiveChange={this.dsoActiveChange}\r\n title={\r\n <>\r\n <span class=\"content\">\r\n <dso-renvooi value={this.naam} />\r\n </span>\r\n {this.gewijzigdeLocatie && <AnnotationGewijzigdeLocatie />}\r\n </>\r\n }\r\n />\r\n );\r\n }\r\n}\r\n"],"mappings":"iJAAA,MAAMA,EAAgB,45IACtB,MAAAC,EAAeD,E,MCeFE,EAA2B,M,0EAkC9BC,KAAAC,QAAUA,EAAQD,KAAKE,M,sGAE/B,iBAAAC,GACEH,KAAKC,QAAQG,O,CAGf,oBAAAC,GACEL,KAAKC,QAAQK,S,CAGf,MAAAC,GACE,MAAMC,EAAaR,KAAKC,QAAQO,aAEhC,OACEC,EAACC,EAAc,CAAAC,IAAA,2CACbC,OAAQJ,EAAaC,EAACI,EAAoB,MAAMC,UAChDC,OAAQf,KAAKe,OACbC,gBAAiBhB,KAAKgB,gBACtBC,MACER,EAAAS,EAAA,KACET,EAAA,QAAMU,MAAM,WACVV,EAAA,eAAaW,MAAOpB,KAAKqB,QAE1BrB,KAAKsB,mBAAqBb,EAACc,EAA2B,Q","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ import{r as e,c as n,h as t,H as i,a as o}from"./p-b623c74b.js";import{c as s}from"./p-8a1a6e56.js";const a=":host {\n display: block;\n padding-block: 4px;\n padding-inline: 4px;\n}\n\n*,\n*::after,\n*::before {\n box-sizing: border-box;\n}\n\n.legend-item {\n display: flex;\n position: relative;\n}\n.legend-item.legend-item-symbol + .body {\n margin-inline-start: 38px;\n}\n.legend-item.legend-item-selectable + .body {\n margin-inline-start: 32px;\n}\n.legend-item.legend-item-selectable.legend-item-symbol + .body {\n margin-inline-start: 70px;\n}\n\nbutton {\n display: inline-block;\n font-size: 1em;\n font-weight: 500;\n margin-block-end: 0;\n text-decoration: none;\n touch-action: manipulation;\n text-align: start;\n user-select: none;\n vertical-align: middle;\n position: absolute;\n inset-inline-end: 0;\n}\nbutton:focus, button:focus-visible {\n outline-offset: 2px;\n}\nbutton:active {\n outline: 0;\n}\nbutton {\n border: 0;\n color: #39870c;\n line-height: 1;\n padding: 0;\n background-color: transparent;\n}\nbutton[disabled] {\n color: #afcf9d;\n}\nbutton[disabled].dso-spinner-left, button[disabled].dso-spinner-right {\n color: #39870c;\n}\nbutton:not([disabled]):hover {\n color: #275937;\n text-decoration: underline;\n text-underline-position: under;\n}\nbutton:not([disabled]):active {\n color: #173521;\n}\nbutton.dso-align {\n line-height: calc(1.5em - 1px);\n padding-block: 11px;\n padding-inline: 0;\n position: relative;\n}\nbutton.dso-truncate {\n max-inline-size: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\nbutton.dso-spinner-left::before {\n background-image: url(\"data:image/svg+xml,%3Csvg class='spinner' viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg' %3E%3Cstyle%3E .spinner %7B animation: rotator 8s linear infinite; transform-origin: center; %7D @keyframes rotator %7B 0%25 %7B transform: rotate(0deg); %7D 100%25 %7B transform: rotate(360deg); %7D %7D .path %7B stroke-dasharray: 265; stroke-dashoffset: 0; transform-origin: center; stroke: %2339870c; animation: dash 2s ease-in-out infinite; %7D @keyframes dash %7B 0%25 %7B stroke-dashoffset: 265; %7D 50%25 %7B stroke-dashoffset: 65; transform:rotate(90deg); %7D 100%25 %7B stroke-dashoffset: 265; transform:rotate(360deg); %7D %3C/style%3E%3Ccircle class='path' fill='none' stroke-width='10' stroke-linecap='butt' cx='50' cy='50' r='45'%3E%3C/circle%3E%3C/svg%3E\");\n background-repeat: no-repeat;\n content: \"\";\n display: inline-block;\n block-size: 24px;\n vertical-align: middle;\n inline-size: 24px;\n margin-inline-end: 8px;\n}\nbutton.dso-spinner-right::after {\n background-image: url(\"data:image/svg+xml,%3Csvg class='spinner' viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg' %3E%3Cstyle%3E .spinner %7B animation: rotator 8s linear infinite; transform-origin: center; %7D @keyframes rotator %7B 0%25 %7B transform: rotate(0deg); %7D 100%25 %7B transform: rotate(360deg); %7D %7D .path %7B stroke-dasharray: 265; stroke-dashoffset: 0; transform-origin: center; stroke: %2339870c; animation: dash 2s ease-in-out infinite; %7D @keyframes dash %7B 0%25 %7B stroke-dashoffset: 265; %7D 50%25 %7B stroke-dashoffset: 65; transform:rotate(90deg); %7D 100%25 %7B stroke-dashoffset: 265; transform:rotate(360deg); %7D %3C/style%3E%3Ccircle class='path' fill='none' stroke-width='10' stroke-linecap='butt' cx='50' cy='50' r='45'%3E%3C/circle%3E%3C/svg%3E\");\n background-repeat: no-repeat;\n content: \"\";\n display: inline-block;\n block-size: 24px;\n vertical-align: middle;\n inline-size: 24px;\n margin-inline-start: 8px;\n}\nbutton > span {\n position: absolute;\n inline-size: 1px;\n block-size: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n border: 0;\n}";const r=a;const d=class{constructor(t){e(this,t);this.dsoRemoveClick=n(this,"dsoRemoveClick",7);this.dsoMouseEnter=n(this,"dsoMouseEnter",7);this.dsoMouseLeave=n(this,"dsoMouseLeave",7);this.disabled=false;this.disabledMessage=undefined;this.removable=undefined;this.showBody=false}get symbolSlottedElement(){return this.host.querySelector("[slot='symbol']")}get selectableSlottedElement(){return this.host.querySelector(":scope > dso-selectable")}get bodySlottedElement(){return this.host.querySelector("[slot='body']")}render(){const e=this.symbolSlottedElement!==null;const n=this.bodySlottedElement!==null;const o=this.selectableSlottedElement!==null;return t(i,{key:"3a732bff9d1e998b7468c7e508edf41e472cdf1f",onMouseEnter:()=>this.dsoMouseEnter.emit(),onMouseLeave:()=>this.dsoMouseLeave.emit()},t("div",{key:"8b2bba6b998955c91e5d67fa6dcd4424807b7c2a",class:s("legend-item",{"legend-item-symbol":e,"legend-item-selectable":o})},t("div",{key:"1f3bb12d214ed0877786a195dbae6185b00b6c97",hidden:!e},t("slot",{key:"032e27bcad7cf0a711e7afe05f782c7d51246d1d",name:"symbol"})),t("div",{key:"7ba425d10db6401e450090b94824bb66ff709e9b"},t("slot",{key:"a4f911e41c0a700a4aa13a7fb4aab1fcdbeffe8a"})),this.disabled&&this.disabledMessage&&t("dso-toggletip",{key:"f094a3c424c1d1fd181b57bfd51638bfb8ea0797",position:"bottom"},this.disabledMessage),this.removable&&t("button",{key:"025272a3802507a54d2e50741dd79ed8bd1ba130",id:"remove-button",type:"button",onClick:e=>this.dsoRemoveClick.emit({originalEvent:e})},t("span",{key:"a1f96e0028b2af5d115216676bb2a2f31403f53d",class:"sr-only"},"Legenda item verwijderen"),t("dso-icon",{key:"b2c18e31618d3ce43536c1b2d3d48f5d66c16658",icon:"trash"})),n&&!this.disabled&&t("button",{key:"ef084b28d39bac92df86f5e4e9f441588fa77d3f",id:"edit-button",type:"button",onClick:()=>this.showBody=!this.showBody},t("span",{key:"2ca66b1cadf279727750086f02e3423029b39fec",class:"sr-only"},"Legenda item aanpassen"),t("dso-icon",{key:"6fe03e75ecbc08e02956d75c10212ad3f566d6f4",icon:this.showBody?"times":"more"}))),t("div",{key:"061973981aa31be8a7b1ab51f94e301a1c4aa68b",hidden:!n||this.disabled||!this.showBody,class:"body"},t("slot",{key:"9817bbb5df6790ecf30c97c688aed899a7b9ef9e",name:"body"})))}get host(){return o(this)}};d.style=r;export{d as dso_legend_item};
2
+ //# sourceMappingURL=p-b7ca8de2.entry.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["legendItemCss","DsoLegendItemStyle0","LegendItem","symbolSlottedElement","this","host","querySelector","selectableSlottedElement","bodySlottedElement","render","hasSymbol","hasBody","isSelectable","h","Host","key","onMouseEnter","dsoMouseEnter","emit","onMouseLeave","dsoMouseLeave","class","clsx","hidden","name","disabled","disabledMessage","position","removable","id","type","onClick","e","dsoRemoveClick","originalEvent","icon","showBody"],"sources":["src/components/legend-item/legend-item.scss?tag=dso-legend-item&encapsulation=shadow","src/components/legend-item/legend-item.tsx"],"sourcesContent":["@use \"~dso-toolkit/src/utilities\";\r\n@use \"~dso-toolkit/src/variables/colors\";\r\n@use \"~dso-toolkit/src/variables/typography\";\r\n@use \"~dso-toolkit/src/variables/units\";\r\n@use \"~dso-toolkit/src/components/button\";\r\n@use \"~dso-toolkit/src/components/legend-item/legend-item.variables\" as legend-item-variables;\r\n\r\n:host {\r\n display: block;\r\n padding-block: units.$u1 * 0.5;\r\n padding-inline: units.$u1 * 0.5;\r\n}\r\n\r\n@include utilities.box-sizing();\r\n\r\n.legend-item {\r\n display: flex;\r\n position: relative;\r\n\r\n &.legend-item-symbol {\r\n + .body {\r\n margin-inline-start: legend-item-variables.$symbol-inline-size + units.$u1;\r\n }\r\n }\r\n\r\n &.legend-item-selectable {\r\n + .body {\r\n margin-inline-start: legend-item-variables.$selectable-inline-size;\r\n }\r\n\r\n &.legend-item-symbol {\r\n + .body {\r\n margin-inline-start: (\r\n legend-item-variables.$symbol-inline-size + units.$u1 + legend-item-variables.$selectable-inline-size\r\n );\r\n }\r\n }\r\n }\r\n}\r\n\r\nbutton {\r\n @include button.tertiary($icon-only: true, $modifiers: false);\r\n\r\n position: absolute;\r\n inset-inline-end: 0;\r\n}\r\n","import { Component, ComponentInterface, Element, Event, EventEmitter, h, Host, Prop, State } from \"@stencil/core\";\r\nimport clsx from \"clsx\";\r\nimport { LegendItemRemoveClickEvent } from \"./legend-item.interfaces\";\r\n\r\n/**\r\n * @slot - Either the label for this legend item or a `dso-selectable` holding the label.\r\n * @slot symbol - A span where the symbol is styled upon\r\n * @slot body - The slot to place controls in (i.e. `dso-input-range` or multiple `dso-selectable`\\`s). If present, this will cause the appearance of an edit-button (three dots) to show the controls. Will not be displayed if property `disabled` is set to true.\r\n */\r\n@Component({\r\n tag: \"dso-legend-item\",\r\n styleUrl: \"legend-item.scss\",\r\n shadow: true,\r\n})\r\nexport class LegendItem implements ComponentInterface {\r\n @Element()\r\n host!: HTMLDsoLegendItemElement;\r\n\r\n /**\r\n * To disable the Legend Item\r\n */\r\n @Prop({ reflect: true })\r\n disabled = false;\r\n\r\n /**\r\n * Message to be shown behind a toggletip when the Legend Item is disabled\r\n */\r\n @Prop()\r\n disabledMessage?: string;\r\n\r\n /**\r\n * Shows a trash-can that, when clicked, emits `dsoRemoveClick`.\r\n */\r\n @Prop()\r\n removable?: boolean;\r\n\r\n /**\r\n * Emitted when the user activates the remove button.\r\n */\r\n @Event()\r\n dsoRemoveClick!: EventEmitter<LegendItemRemoveClickEvent>;\r\n\r\n /**\r\n * Emitted when the mouse enters the Legend Item\r\n */\r\n @Event()\r\n dsoMouseEnter!: EventEmitter;\r\n\r\n /**\r\n * Emitted when the mouse leaves the Legend Item\r\n */\r\n @Event()\r\n dsoMouseLeave!: EventEmitter;\r\n\r\n @State()\r\n showBody = false;\r\n\r\n get symbolSlottedElement() {\r\n return this.host.querySelector(\"[slot='symbol']\");\r\n }\r\n\r\n get selectableSlottedElement() {\r\n return this.host.querySelector(\":scope > dso-selectable\");\r\n }\r\n\r\n get bodySlottedElement() {\r\n return this.host.querySelector(\"[slot='body']\");\r\n }\r\n\r\n render() {\r\n const hasSymbol = this.symbolSlottedElement !== null;\r\n const hasBody = this.bodySlottedElement !== null;\r\n const isSelectable = this.selectableSlottedElement !== null;\r\n\r\n return (\r\n <Host onMouseEnter={() => this.dsoMouseEnter.emit()} onMouseLeave={() => this.dsoMouseLeave.emit()}>\r\n <div\r\n class={clsx(\"legend-item\", {\r\n \"legend-item-symbol\": hasSymbol,\r\n \"legend-item-selectable\": isSelectable,\r\n })}\r\n >\r\n <div hidden={!hasSymbol}>\r\n <slot name=\"symbol\" />\r\n </div>\r\n <div>\r\n <slot></slot>\r\n </div>\r\n {this.disabled && this.disabledMessage && (\r\n <dso-toggletip position=\"bottom\">{this.disabledMessage}</dso-toggletip>\r\n )}\r\n {this.removable && (\r\n <button id=\"remove-button\" type=\"button\" onClick={(e) => this.dsoRemoveClick.emit({ originalEvent: e })}>\r\n <span class=\"sr-only\">Legenda item verwijderen</span>\r\n <dso-icon icon=\"trash\"></dso-icon>\r\n </button>\r\n )}\r\n\r\n {hasBody && !this.disabled && (\r\n <button id=\"edit-button\" type=\"button\" onClick={() => (this.showBody = !this.showBody)}>\r\n <span class=\"sr-only\">Legenda item aanpassen</span>\r\n <dso-icon icon={this.showBody ? \"times\" : \"more\"} />\r\n </button>\r\n )}\r\n </div>\r\n <div hidden={!hasBody || this.disabled || !this.showBody} class=\"body\">\r\n <slot name=\"body\" />\r\n </div>\r\n </Host>\r\n );\r\n }\r\n}\r\n"],"mappings":"oGAAA,MAAMA,EAAgB,unHACtB,MAAAC,EAAeD,E,MCaFE,EAAU,M,gLAQV,M,sEAiCA,K,CAEX,wBAAIC,GACF,OAAOC,KAAKC,KAAKC,cAAc,kB,CAGjC,4BAAIC,GACF,OAAOH,KAAKC,KAAKC,cAAc,0B,CAGjC,sBAAIE,GACF,OAAOJ,KAAKC,KAAKC,cAAc,gB,CAGjC,MAAAG,GACE,MAAMC,EAAYN,KAAKD,uBAAyB,KAChD,MAAMQ,EAAUP,KAAKI,qBAAuB,KAC5C,MAAMI,EAAeR,KAAKG,2BAA6B,KAEvD,OACEM,EAACC,EAAI,CAAAC,IAAA,2CAACC,aAAc,IAAMZ,KAAKa,cAAcC,OAAQC,aAAc,IAAMf,KAAKgB,cAAcF,QAC1FL,EAAA,OAAAE,IAAA,2CACEM,MAAOC,EAAK,cAAe,CACzB,qBAAsBZ,EACtB,yBAA0BE,KAG5BC,EAAA,OAAAE,IAAA,2CAAKQ,QAASb,GACZG,EAAA,QAAAE,IAAA,2CAAMS,KAAK,YAEbX,EAAA,OAAAE,IAAA,4CACEF,EAAA,QAAAE,IAAA,8CAEDX,KAAKqB,UAAYrB,KAAKsB,iBACrBb,EAAA,iBAAAE,IAAA,2CAAeY,SAAS,UAAUvB,KAAKsB,iBAExCtB,KAAKwB,WACJf,EAAA,UAAAE,IAAA,2CAAQc,GAAG,gBAAgBC,KAAK,SAASC,QAAUC,GAAM5B,KAAK6B,eAAef,KAAK,CAAEgB,cAAeF,KACjGnB,EAAA,QAAAE,IAAA,2CAAMM,MAAM,WAAS,4BACrBR,EAAA,YAAAE,IAAA,2CAAUoB,KAAK,WAIlBxB,IAAYP,KAAKqB,UAChBZ,EAAA,UAAAE,IAAA,2CAAQc,GAAG,cAAcC,KAAK,SAASC,QAAS,IAAO3B,KAAKgC,UAAYhC,KAAKgC,UAC3EvB,EAAA,QAAAE,IAAA,2CAAMM,MAAM,WAAS,0BACrBR,EAAA,YAAAE,IAAA,2CAAUoB,KAAM/B,KAAKgC,SAAW,QAAU,WAIhDvB,EAAA,OAAAE,IAAA,2CAAKQ,QAASZ,GAAWP,KAAKqB,WAAarB,KAAKgC,SAAUf,MAAM,QAC9DR,EAAA,QAAAE,IAAA,2CAAMS,KAAK,U","ignoreList":[]}
1
+ {"version":3,"names":["legendItemCss","DsoLegendItemStyle0","LegendItem","symbolSlottedElement","this","host","querySelector","selectableSlottedElement","bodySlottedElement","render","hasSymbol","hasBody","isSelectable","h","Host","key","onMouseEnter","dsoMouseEnter","emit","onMouseLeave","dsoMouseLeave","class","clsx","hidden","name","disabled","disabledMessage","position","removable","id","type","onClick","e","dsoRemoveClick","originalEvent","icon","showBody"],"sources":["src/components/legend-item/legend-item.scss?tag=dso-legend-item&encapsulation=shadow","src/components/legend-item/legend-item.tsx"],"sourcesContent":["@use \"~dso-toolkit/src/utilities\";\r\n@use \"~dso-toolkit/src/variables/colors\";\r\n@use \"~dso-toolkit/src/variables/typography\";\r\n@use \"~dso-toolkit/src/variables/units\";\r\n@use \"~dso-toolkit/src/components/button\";\r\n@use \"~dso-toolkit/src/components/legend-item/legend-item.variables\" as legend-item-variables;\r\n\r\n:host {\r\n display: block;\r\n padding-block: units.$u1 * 0.5;\r\n padding-inline: units.$u1 * 0.5;\r\n}\r\n\r\n@include utilities.box-sizing();\r\n\r\n.legend-item {\r\n display: flex;\r\n position: relative;\r\n\r\n &.legend-item-symbol {\r\n + .body {\r\n margin-inline-start: legend-item-variables.$symbol-inline-size + units.$u1;\r\n }\r\n }\r\n\r\n &.legend-item-selectable {\r\n + .body {\r\n margin-inline-start: legend-item-variables.$selectable-inline-size;\r\n }\r\n\r\n &.legend-item-symbol {\r\n + .body {\r\n margin-inline-start: (\r\n legend-item-variables.$symbol-inline-size + units.$u1 + legend-item-variables.$selectable-inline-size\r\n );\r\n }\r\n }\r\n }\r\n}\r\n\r\nbutton {\r\n @include button.tertiary($icon-only: true, $modifiers: false);\r\n\r\n position: absolute;\r\n inset-inline-end: 0;\r\n}\r\n","import { Component, ComponentInterface, Element, Event, EventEmitter, h, Host, Prop, State } from \"@stencil/core\";\r\nimport clsx from \"clsx\";\r\nimport { LegendItemRemoveClickEvent } from \"./legend-item.interfaces\";\r\n\r\n/**\r\n * @slot - Either the label for this legend item or a `dso-selectable` holding the label.\r\n * @slot symbol - A span where the symbol is styled upon\r\n * @slot body - The slot to place controls in (i.e. `dso-input-range` or multiple `dso-selectable`\\`s). If present, this will cause the appearance of an edit-button (three dots) to show the controls. Will not be displayed if property `disabled` is set to true.\r\n */\r\n@Component({\r\n tag: \"dso-legend-item\",\r\n styleUrl: \"legend-item.scss\",\r\n shadow: true,\r\n})\r\nexport class LegendItem implements ComponentInterface {\r\n @Element()\r\n host!: HTMLDsoLegendItemElement;\r\n\r\n /**\r\n * To disable the Legend Item\r\n */\r\n @Prop({ reflect: true })\r\n disabled = false;\r\n\r\n /**\r\n * Message to be shown behind a toggletip when the Legend Item is disabled\r\n */\r\n @Prop()\r\n disabledMessage?: string;\r\n\r\n /**\r\n * Shows a trash-can that, when clicked, emits `dsoRemoveClick`.\r\n */\r\n @Prop()\r\n removable?: boolean;\r\n\r\n /**\r\n * Emitted when the user activates the remove button.\r\n */\r\n @Event()\r\n dsoRemoveClick!: EventEmitter<LegendItemRemoveClickEvent>;\r\n\r\n /**\r\n * Emitted when the mouse enters the Legend Item\r\n */\r\n @Event()\r\n dsoMouseEnter!: EventEmitter;\r\n\r\n /**\r\n * Emitted when the mouse leaves the Legend Item\r\n */\r\n @Event()\r\n dsoMouseLeave!: EventEmitter;\r\n\r\n @State()\r\n showBody = false;\r\n\r\n get symbolSlottedElement() {\r\n return this.host.querySelector(\"[slot='symbol']\");\r\n }\r\n\r\n get selectableSlottedElement() {\r\n return this.host.querySelector(\":scope > dso-selectable\");\r\n }\r\n\r\n get bodySlottedElement() {\r\n return this.host.querySelector(\"[slot='body']\");\r\n }\r\n\r\n render() {\r\n const hasSymbol = this.symbolSlottedElement !== null;\r\n const hasBody = this.bodySlottedElement !== null;\r\n const isSelectable = this.selectableSlottedElement !== null;\r\n\r\n return (\r\n <Host onMouseEnter={() => this.dsoMouseEnter.emit()} onMouseLeave={() => this.dsoMouseLeave.emit()}>\r\n <div\r\n class={clsx(\"legend-item\", {\r\n \"legend-item-symbol\": hasSymbol,\r\n \"legend-item-selectable\": isSelectable,\r\n })}\r\n >\r\n <div hidden={!hasSymbol}>\r\n <slot name=\"symbol\" />\r\n </div>\r\n <div>\r\n <slot></slot>\r\n </div>\r\n {this.disabled && this.disabledMessage && (\r\n <dso-toggletip position=\"bottom\">{this.disabledMessage}</dso-toggletip>\r\n )}\r\n {this.removable && (\r\n <button id=\"remove-button\" type=\"button\" onClick={(e) => this.dsoRemoveClick.emit({ originalEvent: e })}>\r\n <span class=\"sr-only\">Legenda item verwijderen</span>\r\n <dso-icon icon=\"trash\"></dso-icon>\r\n </button>\r\n )}\r\n\r\n {hasBody && !this.disabled && (\r\n <button id=\"edit-button\" type=\"button\" onClick={() => (this.showBody = !this.showBody)}>\r\n <span class=\"sr-only\">Legenda item aanpassen</span>\r\n <dso-icon icon={this.showBody ? \"times\" : \"more\"} />\r\n </button>\r\n )}\r\n </div>\r\n <div hidden={!hasBody || this.disabled || !this.showBody} class=\"body\">\r\n <slot name=\"body\" />\r\n </div>\r\n </Host>\r\n );\r\n }\r\n}\r\n"],"mappings":"oGAAA,MAAMA,EAAgB,ooHACtB,MAAAC,EAAeD,E,MCaFE,EAAU,M,gLAQV,M,sEAiCA,K,CAEX,wBAAIC,GACF,OAAOC,KAAKC,KAAKC,cAAc,kB,CAGjC,4BAAIC,GACF,OAAOH,KAAKC,KAAKC,cAAc,0B,CAGjC,sBAAIE,GACF,OAAOJ,KAAKC,KAAKC,cAAc,gB,CAGjC,MAAAG,GACE,MAAMC,EAAYN,KAAKD,uBAAyB,KAChD,MAAMQ,EAAUP,KAAKI,qBAAuB,KAC5C,MAAMI,EAAeR,KAAKG,2BAA6B,KAEvD,OACEM,EAACC,EAAI,CAAAC,IAAA,2CAACC,aAAc,IAAMZ,KAAKa,cAAcC,OAAQC,aAAc,IAAMf,KAAKgB,cAAcF,QAC1FL,EAAA,OAAAE,IAAA,2CACEM,MAAOC,EAAK,cAAe,CACzB,qBAAsBZ,EACtB,yBAA0BE,KAG5BC,EAAA,OAAAE,IAAA,2CAAKQ,QAASb,GACZG,EAAA,QAAAE,IAAA,2CAAMS,KAAK,YAEbX,EAAA,OAAAE,IAAA,4CACEF,EAAA,QAAAE,IAAA,8CAEDX,KAAKqB,UAAYrB,KAAKsB,iBACrBb,EAAA,iBAAAE,IAAA,2CAAeY,SAAS,UAAUvB,KAAKsB,iBAExCtB,KAAKwB,WACJf,EAAA,UAAAE,IAAA,2CAAQc,GAAG,gBAAgBC,KAAK,SAASC,QAAUC,GAAM5B,KAAK6B,eAAef,KAAK,CAAEgB,cAAeF,KACjGnB,EAAA,QAAAE,IAAA,2CAAMM,MAAM,WAAS,4BACrBR,EAAA,YAAAE,IAAA,2CAAUoB,KAAK,WAIlBxB,IAAYP,KAAKqB,UAChBZ,EAAA,UAAAE,IAAA,2CAAQc,GAAG,cAAcC,KAAK,SAASC,QAAS,IAAO3B,KAAKgC,UAAYhC,KAAKgC,UAC3EvB,EAAA,QAAAE,IAAA,2CAAMM,MAAM,WAAS,0BACrBR,EAAA,YAAAE,IAAA,2CAAUoB,KAAM/B,KAAKgC,SAAW,QAAU,WAIhDvB,EAAA,OAAAE,IAAA,2CAAKQ,QAASZ,GAAWP,KAAKqB,WAAarB,KAAKgC,SAAUf,MAAM,QAC9DR,EAAA,QAAAE,IAAA,2CAAMS,KAAK,U","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- import{r as o,c as t,h as s,a as e}from"./p-b623c74b.js";import{c as i}from"./p-8a1a6e56.js";import{d as r}from"./p-9438a55c.js";const n=':host{display:block;block-size:100%;overflow-y:hidden}*,*::after,*::before{box-sizing:border-box}.dso-shadow-container{block-size:100%;max-block-size:inherit;min-block-size:inherit;position:relative}.dso-shadow-container .dso-scroll-container{block-size:100%;max-block-size:inherit;min-block-size:inherit;overflow-y:auto}.dso-shadow-container .dso-scroll-container::before,.dso-shadow-container .dso-scroll-container::after{background-repeat:no-repeat;background-size:100% 24px;content:"";display:block;block-size:24px;inset-inline-start:0;opacity:0;overflow:visible;position:absolute;transition:opacity 150ms ease-in-out;inline-size:100%;pointer-events:none;z-index:1}.dso-shadow-container .dso-scroll-container::before{background-image:linear-gradient(to top, rgba(183, 183, 183, 0), rgba(183, 183, 183, 0.7));inset-block-start:0}.dso-shadow-container .dso-scroll-container::after{background-image:linear-gradient(to bottom, rgba(183, 183, 183, 0), rgba(183, 183, 183, 0.7));inset-block-end:0}.dso-shadow-container .dso-scroll-container.dso-scroll-bottom::before{opacity:1}.dso-shadow-container .dso-scroll-container.dso-scroll-top::after{opacity:1}.dso-shadow-container .dso-scroll-container.dso-scroll-middle::before,.dso-shadow-container .dso-scroll-container.dso-scroll-middle::after{opacity:1}';const a=n;const c=new ResizeObserver(r((o=>o.forEach((o=>{var t;return(t=l(o))===null||t===void 0?void 0:t._setScrollState()}))),50));function l({target:o}){if(o.parentNode instanceof ShadowRoot&&d(o.parentNode.host)){return o.parentNode.host}if(o.parentElement&&d(o.parentElement)){return o.parentElement}return undefined}function d(o){return o.tagName==="DSO-SCROLLABLE"}const h=class{constructor(s){o(this,s);this.dsoScrollEnd=t(this,"dsoScrollEnd",7);this.mutationObserver=new MutationObserver((o=>o.forEach((({target:o})=>{var t;const s=(t=o.parentElement)===null||t===void 0?void 0:t.closest("dso-scrollable");if(s!==this.host){return}this._setScrollState()}))));this.scrollPosition="noScroll"}async _setScrollState(){const o=this.getScrollPosition();if(this.scrollPosition!==o){this.scrollPosition=o;if(this.scrollPosition==="top"||this.scrollPosition==="bottom"){this.dsoScrollEnd.emit({scrollEnd:this.scrollPosition})}}}get slottedElements(){return Array.from(this.host.children)}getScrollPosition(){if(!this.scrollContainerDiv){return"noScroll"}const{scrollHeight:o,clientHeight:t,scrollTop:s}=this.scrollContainerDiv;if(o<=t){return"noScroll"}if(s===0){return"top"}if(o-s-t<1){return"bottom"}if(s>0){return"middle"}return"noScroll"}componentDidLoad(){this.mutationObserver.observe(this.host,{characterData:true,attributes:false,childList:false,subtree:true});if(this.shadowContainerDiv instanceof HTMLDivElement){c.observe(this.shadowContainerDiv)}this.slottedElements.forEach((o=>c.observe(o)))}disconnectedCallback(){if(this.shadowContainerDiv instanceof HTMLDivElement){c.unobserve(this.shadowContainerDiv)}this.mutationObserver.disconnect();this.slottedElements.forEach((o=>c.unobserve(o)))}render(){return s("div",{key:"d9c73f524fa17860c1cad8a0ca960d7db540dbab",ref:o=>this.shadowContainerDiv=o,class:"dso-shadow-container"},s("div",{key:"b2ce5ba340f7907fcb111c0395d7e22324e58237",ref:o=>this.scrollContainerDiv=o,class:i("dso-scroll-container",{[`dso-scroll-${this.scrollPosition}`]:this.scrollPosition!=="noScroll"}),onScroll:()=>this._setScrollState()},s("slot",{key:"47cf6e7432017040b5e3c5815427f11d10f1b8e8"})))}get host(){return e(this)}};h.style=a;export{h as dso_scrollable};
2
- //# sourceMappingURL=p-9630207a.entry.js.map
1
+ import{r as o,c as t,h as s,a as e}from"./p-b623c74b.js";import{c as i}from"./p-8a1a6e56.js";import{d as r}from"./p-9438a55c.js";const n=':host{display:block;block-size:100%;overflow-y:hidden}*,*::after,*::before{box-sizing:border-box}.dso-shadow-container{block-size:100%;max-block-size:inherit;min-block-size:inherit;position:relative}.dso-shadow-container .dso-scroll-container{block-size:100%;max-block-size:inherit;min-block-size:inherit;overflow-y:auto}.dso-shadow-container .dso-scroll-container::before,.dso-shadow-container .dso-scroll-container::after{background-repeat:no-repeat;background-size:100% 24px;content:"";display:block;block-size:24px;inset-inline-start:0;opacity:0;overflow:visible;position:absolute;transition:opacity 150ms ease-in-out;inline-size:100%;pointer-events:none;z-index:1}.dso-shadow-container .dso-scroll-container::before{background-image:linear-gradient(to top, rgba(183, 183, 183, 0), rgba(183, 183, 183, 0.7));inset-block-start:0}.dso-shadow-container .dso-scroll-container::after{background-image:linear-gradient(to bottom, rgba(183, 183, 183, 0), rgba(183, 183, 183, 0.7));inset-block-end:0}.dso-shadow-container .dso-scroll-container.dso-scroll-bottom::before{opacity:1}.dso-shadow-container .dso-scroll-container.dso-scroll-top::after{opacity:1}.dso-shadow-container .dso-scroll-container.dso-scroll-middle::before,.dso-shadow-container .dso-scroll-container.dso-scroll-middle::after{opacity:1}';const a=n;const l=new ResizeObserver(r((o=>o.forEach((o=>{var t;return(t=c(o))===null||t===void 0?void 0:t._setScrollState()}))),50));function c({target:o}){if(o.parentNode instanceof ShadowRoot&&d(o.parentNode.host)){return o.parentNode.host}if(o.parentElement&&d(o.parentElement)){return o.parentElement}return undefined}function d(o){return o.tagName==="DSO-SCROLLABLE"}const h=class{constructor(s){o(this,s);this.dsoScrollEnd=t(this,"dsoScrollEnd",7);this.mutationObserver=new MutationObserver((o=>o.forEach((({target:o})=>{var t;const s=(t=o.parentElement)===null||t===void 0?void 0:t.closest("dso-scrollable");if(s!==this.host){return}this._setScrollState()}))));this.scrollPosition="noScroll"}async _setScrollState(){const o=this.getScrollPosition();if(this.scrollPosition!==o){this.scrollPosition=o;if(this.scrollPosition==="top"||this.scrollPosition==="bottom"){this.dsoScrollEnd.emit({scrollEnd:this.scrollPosition})}}}get slottedElements(){return Array.from(this.host.children)}getScrollPosition(){if(!this.scrollContainerDiv){return"noScroll"}const{scrollHeight:o,clientHeight:t,scrollTop:s}=this.scrollContainerDiv;if(o<=t){return"noScroll"}if(s===0){return"top"}if(o-s-t<1){return"bottom"}if(s>0){return"middle"}return"noScroll"}componentDidLoad(){this.mutationObserver.observe(this.host,{characterData:true,attributes:false,childList:false,subtree:true});if(this.shadowContainerDiv instanceof HTMLDivElement){l.observe(this.shadowContainerDiv)}this.slottedElements.forEach((o=>l.observe(o)))}disconnectedCallback(){if(this.shadowContainerDiv instanceof HTMLDivElement){l.unobserve(this.shadowContainerDiv)}this.mutationObserver.disconnect();this.slottedElements.forEach((o=>l.unobserve(o)))}render(){return s("div",{key:"b786c2765a723299a16956239d0a3f2814bdb365",ref:o=>this.shadowContainerDiv=o,class:"dso-shadow-container"},s("div",{key:"32629e90bd713faf99192825f4d5f6b730949724",ref:o=>this.scrollContainerDiv=o,class:i("dso-scroll-container",{[`dso-scroll-${this.scrollPosition}`]:this.scrollPosition!=="noScroll"}),onScroll:()=>this._setScrollState()},s("slot",{key:"3d02e6603fb849f9535529ae5143452e0ee0484e"})))}get host(){return e(this)}};h.style=a;export{h as dso_scrollable};
2
+ //# sourceMappingURL=p-d42db4af.entry.js.map
@@ -0,0 +1,2 @@
1
+ import{r as o,c as e,h as i,H as s}from"./p-b623c74b.js";import{c as t}from"./p-8a1a6e56.js";const n=":host{display:inline-block}*,*::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}button{cursor:pointer;vertical-align:top}button{background-color:transparent;color:#39870c;border:0;margin-inline-start:8px;padding:0}button.dso-info-secondary{color:#666}dso-icon{display:block}";const a=n;const r=class{constructor(i){o(this,i);this.dsoToggle=e(this,"dsoToggle",7);this.active=undefined;this.hover=false;this.secondary=undefined;this.label="Toelichting bij optie"}async setFocus(){var o;(o=this.button)===null||o===void 0?void 0:o.focus()}handleToggle(o){this.active=!this.active;this.dsoToggle.emit({originalEvent:o,active:this.active})}render(){return i(s,{key:"f92cf2e064117a666eff6e06918d1b8bfaa0ae4b",onMouseenter:()=>this.hover=true,onMouseleave:()=>this.hover=false},i("button",{key:"9a9a095f29dff2d7ef53be6df2a5bb0de1fd9673",type:"button",class:t({"dso-open":!!this.active,"dso-info-secondary":!!this.secondary}),"aria-expanded":typeof this.active==="boolean"?this.active.toString():undefined,onClick:o=>this.handleToggle(o),ref:o=>this.button=o},i("dso-icon",{key:"b2fc1665fa93d7a131833fc71b9cd17b0b29f5c6",icon:this.active||this.hover?"info-active":"info"}),i("span",{key:"9aa27a9e5ecc316e89c5ad0af463e711328d1857",class:"sr-only"},this.label)))}};r.style=a;export{r as dso_info_button};
2
+ //# sourceMappingURL=p-d7358e77.entry.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["infoButtonCss","DsoInfoButtonStyle0","InfoButton","setFocus","_a","this","button","focus","handleToggle","e","active","dsoToggle","emit","originalEvent","render","h","Host","key","onMouseenter","hover","onMouseleave","type","class","clsx","secondary","toString","undefined","onClick","ref","element","icon","label"],"sources":["src/components/info-button/info-button.scss?tag=dso-info-button&encapsulation=shadow","src/components/info-button/info-button.tsx"],"sourcesContent":["@use \"~dso-toolkit/src/utilities\";\r\n@use \"~dso-toolkit/src/components/info-button\";\r\n\r\n:host {\r\n display: inline-block;\r\n}\r\n\r\n@include utilities.box-sizing();\r\n\r\n.sr-only {\r\n @include utilities.sr-only();\r\n}\r\n\r\nbutton {\r\n @include info-button.root();\r\n\r\n cursor: pointer;\r\n vertical-align: top;\r\n}\r\n\r\ndso-icon {\r\n display: block;\r\n}\r\n","import { h, Component, Event, Prop, EventEmitter, Method, Host, State } from \"@stencil/core\";\r\nimport clsx from \"clsx\";\r\n\r\nimport { InfoButtonToggleEvent } from \"./info-button.interfaces\";\r\n\r\n@Component({\r\n tag: \"dso-info-button\",\r\n shadow: true,\r\n styleUrl: \"info-button.scss\",\r\n})\r\nexport class InfoButton {\r\n private button?: HTMLButtonElement;\r\n\r\n /**\r\n * Whether the InfoButton is active.\r\n */\r\n @Prop({ mutable: true, reflect: true })\r\n active?: boolean;\r\n\r\n @State()\r\n hover = false;\r\n\r\n /**\r\n * For secondary Info Button.\r\n */\r\n @Prop()\r\n secondary?: boolean;\r\n\r\n /**\r\n * The label.\r\n */\r\n @Prop()\r\n label = \"Toelichting bij optie\";\r\n\r\n /**\r\n * Emitted when the user activates the Info Button.\r\n */\r\n @Event()\r\n dsoToggle!: EventEmitter<InfoButtonToggleEvent>;\r\n\r\n /**\r\n * To set focus to the toggle button.\r\n */\r\n @Method()\r\n async setFocus() {\r\n this.button?.focus();\r\n }\r\n\r\n private handleToggle(e: MouseEvent) {\r\n this.active = !this.active;\r\n this.dsoToggle.emit({ originalEvent: e, active: this.active });\r\n }\r\n\r\n render() {\r\n return (\r\n <Host onMouseenter={() => (this.hover = true)} onMouseleave={() => (this.hover = false)}>\r\n <button\r\n type=\"button\"\r\n class={clsx({ \"dso-open\": !!this.active, \"dso-info-secondary\": !!this.secondary })}\r\n aria-expanded={typeof this.active === \"boolean\" ? this.active.toString() : undefined}\r\n onClick={(e) => this.handleToggle(e)}\r\n ref={(element) => (this.button = element)}\r\n >\r\n <dso-icon icon={this.active || this.hover ? \"info-active\" : \"info\"}></dso-icon>\r\n <span class=\"sr-only\">{this.label}</span>\r\n </button>\r\n </Host>\r\n );\r\n }\r\n}\r\n"],"mappings":"6FAAA,MAAMA,EAAgB,mYACtB,MAAAC,EAAeD,E,MCSFE,EAAU,M,+FAUb,M,oCAYA,uB,CAYR,cAAMC,G,OACJC,EAAAC,KAAKC,UAAM,MAAAF,SAAA,SAAAA,EAAEG,O,CAGP,YAAAC,CAAaC,GACnBJ,KAAKK,QAAUL,KAAKK,OACpBL,KAAKM,UAAUC,KAAK,CAAEC,cAAeJ,EAAGC,OAAQL,KAAKK,Q,CAGvD,MAAAI,GACE,OACEC,EAACC,EAAI,CAAAC,IAAA,2CAACC,aAAc,IAAOb,KAAKc,MAAQ,KAAOC,aAAc,IAAOf,KAAKc,MAAQ,OAC/EJ,EAAA,UAAAE,IAAA,2CACEI,KAAK,SACLC,MAAOC,EAAK,CAAE,aAAclB,KAAKK,OAAQ,uBAAwBL,KAAKmB,YAAY,uBAC5DnB,KAAKK,SAAW,UAAYL,KAAKK,OAAOe,WAAaC,UAC3EC,QAAUlB,GAAMJ,KAAKG,aAAaC,GAClCmB,IAAMC,GAAaxB,KAAKC,OAASuB,GAEjCd,EAAA,YAAAE,IAAA,2CAAUa,KAAMzB,KAAKK,QAAUL,KAAKc,MAAQ,cAAgB,SAC5DJ,EAAA,QAAAE,IAAA,2CAAMK,MAAM,WAAWjB,KAAK0B,Q","ignoreList":[]}
1
+ {"version":3,"names":["infoButtonCss","DsoInfoButtonStyle0","InfoButton","setFocus","_a","this","button","focus","handleToggle","e","active","dsoToggle","emit","originalEvent","render","h","Host","key","onMouseenter","hover","onMouseleave","type","class","clsx","secondary","toString","undefined","onClick","ref","element","icon","label"],"sources":["src/components/info-button/info-button.scss?tag=dso-info-button&encapsulation=shadow","src/components/info-button/info-button.tsx"],"sourcesContent":["@use \"~dso-toolkit/src/utilities\";\r\n@use \"~dso-toolkit/src/components/info-button\";\r\n\r\n:host {\r\n display: inline-block;\r\n}\r\n\r\n@include utilities.box-sizing();\r\n\r\n.sr-only {\r\n @include utilities.sr-only();\r\n}\r\n\r\nbutton {\r\n @include info-button.root();\r\n\r\n cursor: pointer;\r\n vertical-align: top;\r\n}\r\n\r\ndso-icon {\r\n display: block;\r\n}\r\n","import { h, Component, Event, Prop, EventEmitter, Method, Host, State } from \"@stencil/core\";\r\nimport clsx from \"clsx\";\r\n\r\nimport { InfoButtonToggleEvent } from \"./info-button.interfaces\";\r\n\r\n@Component({\r\n tag: \"dso-info-button\",\r\n shadow: true,\r\n styleUrl: \"info-button.scss\",\r\n})\r\nexport class InfoButton {\r\n private button?: HTMLButtonElement;\r\n\r\n /**\r\n * Whether the InfoButton is active.\r\n */\r\n @Prop({ mutable: true, reflect: true })\r\n active?: boolean;\r\n\r\n @State()\r\n hover = false;\r\n\r\n /**\r\n * For secondary Info Button.\r\n */\r\n @Prop()\r\n secondary?: boolean;\r\n\r\n /**\r\n * The label.\r\n */\r\n @Prop()\r\n label = \"Toelichting bij optie\";\r\n\r\n /**\r\n * Emitted when the user activates the Info Button.\r\n */\r\n @Event()\r\n dsoToggle!: EventEmitter<InfoButtonToggleEvent>;\r\n\r\n /**\r\n * To set focus to the toggle button.\r\n */\r\n @Method()\r\n async setFocus() {\r\n this.button?.focus();\r\n }\r\n\r\n private handleToggle(e: MouseEvent) {\r\n this.active = !this.active;\r\n this.dsoToggle.emit({ originalEvent: e, active: this.active });\r\n }\r\n\r\n render() {\r\n return (\r\n <Host onMouseenter={() => (this.hover = true)} onMouseleave={() => (this.hover = false)}>\r\n <button\r\n type=\"button\"\r\n class={clsx({ \"dso-open\": !!this.active, \"dso-info-secondary\": !!this.secondary })}\r\n aria-expanded={typeof this.active === \"boolean\" ? this.active.toString() : undefined}\r\n onClick={(e) => this.handleToggle(e)}\r\n ref={(element) => (this.button = element)}\r\n >\r\n <dso-icon icon={this.active || this.hover ? \"info-active\" : \"info\"}></dso-icon>\r\n <span class=\"sr-only\">{this.label}</span>\r\n </button>\r\n </Host>\r\n );\r\n }\r\n}\r\n"],"mappings":"6FAAA,MAAMA,EAAgB,0YACtB,MAAAC,EAAeD,E,MCSFE,EAAU,M,+FAUb,M,oCAYA,uB,CAYR,cAAMC,G,OACJC,EAAAC,KAAKC,UAAM,MAAAF,SAAA,SAAAA,EAAEG,O,CAGP,YAAAC,CAAaC,GACnBJ,KAAKK,QAAUL,KAAKK,OACpBL,KAAKM,UAAUC,KAAK,CAAEC,cAAeJ,EAAGC,OAAQL,KAAKK,Q,CAGvD,MAAAI,GACE,OACEC,EAACC,EAAI,CAAAC,IAAA,2CAACC,aAAc,IAAOb,KAAKc,MAAQ,KAAOC,aAAc,IAAOf,KAAKc,MAAQ,OAC/EJ,EAAA,UAAAE,IAAA,2CACEI,KAAK,SACLC,MAAOC,EAAK,CAAE,aAAclB,KAAKK,OAAQ,uBAAwBL,KAAKmB,YAAY,uBAC5DnB,KAAKK,SAAW,UAAYL,KAAKK,OAAOe,WAAaC,UAC3EC,QAAUlB,GAAMJ,KAAKG,aAAaC,GAClCmB,IAAMC,GAAaxB,KAAKC,OAASuB,GAEjCd,EAAA,YAAAE,IAAA,2CAAUa,KAAMzB,KAAKK,QAAUL,KAAKc,MAAQ,cAAgB,SAC5DJ,EAAA,QAAAE,IAAA,2CAAMK,MAAM,WAAWjB,KAAK0B,Q","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ import{r as o,c as e,h as r}from"./p-b623c74b.js";import{A as i}from"./p-ae8b8810.js";import{i as a}from"./p-2d694112.js";const t='a{background-color:transparent;color:var(--link-color);text-decoration:underline}a:hover,a:focus-visible{color:var(--link-hover-color);text-decoration:underline}a:active{text-decoration:none}a:visited{color:var(--link-visited-color)}a:where(:not(.dso-primary,.dso-secondary,.dso-tertiary)).download{background-repeat:no-repeat;background-size:1.25em 1.25em;padding-inline-end:1.5em;background-position:bottom 0 right 0}a:where(:not(.dso-primary,.dso-secondary,.dso-tertiary)).download{background-image:url("./dso-icons.svg#img-download")}a:where(:not(.dso-primary,.dso-secondary,.dso-tertiary)).download:hover,a:where(:not(.dso-primary,.dso-secondary,.dso-tertiary)).download:focus-visible{background-image:url("./dso-icons.svg#img-download-scampi")}a:where(:not(.dso-primary,.dso-secondary,.dso-tertiary)).extern{background-repeat:no-repeat;background-size:1.25em 1.25em;padding-inline-end:1.5em;background-position:bottom 0 right 0}a:where(:not(.dso-primary,.dso-secondary,.dso-tertiary)).extern{background-image:url("./dso-icons.svg#img-external-link")}a:where(:not(.dso-primary,.dso-secondary,.dso-tertiary)).extern:hover,a:where(:not(.dso-primary,.dso-secondary,.dso-tertiary)).extern:focus-visible{background-image:url("./dso-icons.svg#img-external-link-scampi")}a:where(:not(.dso-primary,.dso-secondary,.dso-tertiary))[href^="tel:"]{background-repeat:no-repeat;background-size:1.25em 1.25em;padding-inline-start:1.5em;background-position:bottom 0 left 0}a:where(:not(.dso-primary,.dso-secondary,.dso-tertiary))[href^="tel:"]{background-image:url("./dso-icons.svg#img-call-grasgroen")}a:where(:not(.dso-primary,.dso-secondary,.dso-tertiary))[href^="tel:"]:hover,a:where(:not(.dso-primary,.dso-secondary,.dso-tertiary))[href^="tel:"]:focus-visible{background-image:url("./dso-icons.svg#img-call-scampi")}a:where(:not(.dso-primary,.dso-secondary,.dso-tertiary))[href^="mailto:"]{background-repeat:no-repeat;background-size:1.25em 1.25em;padding-inline-start:1.5em;background-position:bottom 0 left 0}a:where(:not(.dso-primary,.dso-secondary,.dso-tertiary))[href^="mailto:"]{background-image:url("./dso-icons.svg#img-email-grasgroen")}a:where(:not(.dso-primary,.dso-secondary,.dso-tertiary))[href^="mailto:"]:hover,a:where(:not(.dso-primary,.dso-secondary,.dso-tertiary))[href^="mailto:"]:focus-visible{background-image:url("./dso-icons.svg#img-email-scampi")}:host{display:block;padding:2px}:host([wijzigactie=voegtoe]){--link-color:currentColor;--link-hover-color:currentColor;--link-visited-color:currentColor;background-color:#e4f1d4;border-color:#e4f1d4;color:#191919}:host([wijzigactie=voegtoe]) a:is(.download,.download:hover,.download:focus-visible){background-image:url("./dso-icons.svg#img-download-zwart")}:host([wijzigactie=voegtoe]) a:is(.extern,.extern:hover,.extern:focus-visible){background-image:url("./dso-icons.svg#img-external-link-zwart")}:host([wijzigactie=voegtoe]) a:is([href^="tel:"],[href^="tel:"]:hover,[href^="tel:"]:focus-visible){background-image:url("./dso-icons.svg#img-call-zwart")}:host([wijzigactie=voegtoe]) a:is([href^="mailto:"],[href^="mailto:"]:hover,[href^="mailto:"]:focus-visible){background-image:url("./dso-icons.svg#img-email-zwart")}:host([wijzigactie=voegtoe]){box-shadow:0 1px 3px 1px rgba(0, 0, 0, 0.25)}:host([wijzigactie=verwijder]){--link-color:currentColor;--link-hover-color:currentColor;--link-visited-color:currentColor;background-color:#f5d8dc;border-color:#f5d8dc;color:#191919}:host([wijzigactie=verwijder]) a:is(.download,.download:hover,.download:focus-visible){background-image:url("./dso-icons.svg#img-download-zwart")}:host([wijzigactie=verwijder]) a:is(.extern,.extern:hover,.extern:focus-visible){background-image:url("./dso-icons.svg#img-external-link-zwart")}:host([wijzigactie=verwijder]) a:is([href^="tel:"],[href^="tel:"]:hover,[href^="tel:"]:focus-visible){background-image:url("./dso-icons.svg#img-call-zwart")}:host([wijzigactie=verwijder]) a:is([href^="mailto:"],[href^="mailto:"]:hover,[href^="mailto:"]:focus-visible){background-image:url("./dso-icons.svg#img-email-zwart")}:host([wijzigactie=verwijder]){text-decoration:line-through}*,*::after,*::before{box-sizing:border-box}.annotation-body{display:flex;gap:8px}.annotation-info{flex-grow:1}.annotation-symbol,.annotation-control{flex-shrink:0}.annotation-title{font-weight:500}.annotation-title,.annotation-data{margin-block:0}.annotation-title .content:has(+dso-label),.annotation-data .content:has(+dso-label){margin-inline-end:4px}.annotation-data{font-size:0.875rem}';const n=t;const s=class{constructor(r){o(this,r);this.dsoClick=e(this,"dsoClick",3);this.clickHandler=o=>{if(!this.href){return}this.dsoClick.emit({href:this.href,originalEvent:o,isModifiedEvent:a(o)})};this.wijzigactie=undefined;this.naam=undefined;this.href=undefined}render(){const o=this.href?r("a",{class:"content",href:this.href,onClick:this.clickHandler},r("dso-renvooi",{value:this.naam})):r("span",{class:"content"},r("dso-renvooi",{value:this.naam}));return r(i,{key:"13790a8ac017fe49686a883e7c847480635d086d",symbol:r("dso-icon",{icon:"land"}),title:o})}};s.style=n;export{s as dso_annotation_kaart};
2
+ //# sourceMappingURL=p-e283ee51.entry.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["annotationCss","DsoAnnotationKaartStyle0","AnnotationKaart","this","clickHandler","e","href","dsoClick","emit","originalEvent","isModifiedEvent","render","title","h","class","onClick","value","naam","AnnotationBody","key","symbol","icon"],"sources":["src/components/annotation/annotation.scss?tag=dso-annotation-kaart&encapsulation=shadow","src/components/annotation/annotation-kaart/annotation-kaart.tsx"],"sourcesContent":["@use \"~dso-toolkit/src/utilities\";\r\n@use \"~dso-toolkit/src/variables/units\";\r\n\r\n@use \"~dso-toolkit/src/components/insert\";\r\n@use \"~dso-toolkit/src/components/delete\";\r\n\r\n@use \"~dso-toolkit/src/components/anchor/anchor\";\r\n\r\n:host {\r\n display: block;\r\n padding: 2px;\r\n}\r\n\r\n:host([wijzigactie=\"voegtoe\"]) {\r\n @include insert.root();\r\n}\r\n\r\n:host([wijzigactie=\"verwijder\"]) {\r\n @include delete.root();\r\n}\r\n\r\n@include utilities.box-sizing();\r\n\r\n.annotation-body {\r\n display: flex;\r\n gap: units.$u1;\r\n}\r\n\r\n.annotation-info {\r\n flex-grow: 1;\r\n}\r\n\r\n.annotation-symbol,\r\n.annotation-control {\r\n flex-shrink: 0;\r\n}\r\n\r\n.annotation-title {\r\n font-weight: 500;\r\n}\r\n\r\n.annotation-title,\r\n.annotation-data {\r\n margin-block: 0;\r\n\r\n .content:has(+ dso-label) {\r\n margin-inline-end: units.$u1 * 0.5;\r\n }\r\n}\r\n\r\n.annotation-data {\r\n font-size: 0.875rem;\r\n}\r\n","import { Component, ComponentInterface, Prop, h, Event, EventEmitter } from \"@stencil/core\";\r\nimport { AnnotationWijzigactie } from \"../annotation.interfaces\";\r\n\r\nimport { AnnotationBody } from \"../annotation-body\";\r\nimport { AnnotationKaartClickEvent } from \"./annotation-kaart.interfaces\";\r\nimport { isModifiedEvent } from \"../../../utils/is-modified-event\";\r\nimport { RenvooiValue } from \"../../renvooi/renvooi.interfaces\";\r\n\r\n@Component({\r\n tag: \"dso-annotation-kaart\",\r\n styleUrl: \"../annotation.scss\",\r\n shadow: true,\r\n})\r\nexport class AnnotationKaart implements ComponentInterface {\r\n /**\r\n * Een optionele wijzigactie die aangeeft of de annotatie is toegevoegd of verwijderd.\r\n */\r\n @Prop({ reflect: true })\r\n wijzigactie?: AnnotationWijzigactie;\r\n\r\n /**\r\n * De naam van de kaart.\r\n */\r\n @Prop()\r\n naam?: RenvooiValue | string;\r\n\r\n /**\r\n * De url naar de kaart.\r\n *\r\n * Gebruik het event `dsoClick` om de navigatie aan de router te koppelen.\r\n */\r\n @Prop({ reflect: true })\r\n href?: string;\r\n\r\n /**\r\n * Event als de gebruiker de kaartnaam selecteert.\r\n *\r\n * Let op \"isModifiedEvent\" om te bepalen of de navigatieactie door de router of de browser moet worden afgehandeld.\r\n */\r\n @Event({ bubbles: false })\r\n dsoClick!: EventEmitter<AnnotationKaartClickEvent>;\r\n\r\n private clickHandler = (e: MouseEvent): void => {\r\n if (!this.href) {\r\n return;\r\n }\r\n\r\n this.dsoClick.emit({\r\n href: this.href,\r\n originalEvent: e,\r\n isModifiedEvent: isModifiedEvent(e),\r\n });\r\n };\r\n\r\n render() {\r\n const title = this.href ? (\r\n <a class=\"content\" href={this.href} onClick={this.clickHandler}>\r\n <dso-renvooi value={this.naam} />\r\n </a>\r\n ) : (\r\n <span class=\"content\">\r\n <dso-renvooi value={this.naam} />\r\n </span>\r\n );\r\n\r\n return <AnnotationBody symbol={<dso-icon icon=\"land\" />} title={title} />;\r\n }\r\n}\r\n"],"mappings":"0HAAA,MAAMA,EAAgB,6kIACtB,MAAAC,EAAeD,E,MCYFE,EAAe,M,4DA6BlBC,KAAAC,aAAgBC,IACtB,IAAKF,KAAKG,KAAM,CACd,M,CAGFH,KAAKI,SAASC,KAAK,CACjBF,KAAMH,KAAKG,KACXG,cAAeJ,EACfK,gBAAiBA,EAAgBL,IACjC,E,mEAGJ,MAAAM,GACE,MAAMC,EAAQT,KAAKG,KACjBO,EAAA,KAAGC,MAAM,UAAUR,KAAMH,KAAKG,KAAMS,QAASZ,KAAKC,cAChDS,EAAA,eAAaG,MAAOb,KAAKc,QAG3BJ,EAAA,QAAMC,MAAM,WACVD,EAAA,eAAaG,MAAOb,KAAKc,QAI7B,OAAOJ,EAACK,EAAc,CAAAC,IAAA,2CAACC,OAAQP,EAAA,YAAUQ,KAAK,SAAWT,MAAOA,G","ignoreList":[]}
1
+ {"version":3,"names":["annotationCss","DsoAnnotationKaartStyle0","AnnotationKaart","this","clickHandler","e","href","dsoClick","emit","originalEvent","isModifiedEvent","render","title","h","class","onClick","value","naam","AnnotationBody","key","symbol","icon"],"sources":["src/components/annotation/annotation.scss?tag=dso-annotation-kaart&encapsulation=shadow","src/components/annotation/annotation-kaart/annotation-kaart.tsx"],"sourcesContent":["@use \"~dso-toolkit/src/utilities\";\r\n@use \"~dso-toolkit/src/variables/units\";\r\n\r\n@use \"~dso-toolkit/src/components/insert\";\r\n@use \"~dso-toolkit/src/components/delete\";\r\n\r\n@use \"~dso-toolkit/src/components/anchor/anchor\";\r\n\r\n:host {\r\n display: block;\r\n padding: 2px;\r\n}\r\n\r\n:host([wijzigactie=\"voegtoe\"]) {\r\n @include insert.root();\r\n}\r\n\r\n:host([wijzigactie=\"verwijder\"]) {\r\n @include delete.root();\r\n}\r\n\r\n@include utilities.box-sizing();\r\n\r\n.annotation-body {\r\n display: flex;\r\n gap: units.$u1;\r\n}\r\n\r\n.annotation-info {\r\n flex-grow: 1;\r\n}\r\n\r\n.annotation-symbol,\r\n.annotation-control {\r\n flex-shrink: 0;\r\n}\r\n\r\n.annotation-title {\r\n font-weight: 500;\r\n}\r\n\r\n.annotation-title,\r\n.annotation-data {\r\n margin-block: 0;\r\n\r\n .content:has(+ dso-label) {\r\n margin-inline-end: units.$u1 * 0.5;\r\n }\r\n}\r\n\r\n.annotation-data {\r\n font-size: 0.875rem;\r\n}\r\n","import { Component, ComponentInterface, Prop, h, Event, EventEmitter } from \"@stencil/core\";\r\nimport { AnnotationWijzigactie } from \"../annotation.interfaces\";\r\n\r\nimport { AnnotationBody } from \"../annotation-body\";\r\nimport { AnnotationKaartClickEvent } from \"./annotation-kaart.interfaces\";\r\nimport { isModifiedEvent } from \"../../../utils/is-modified-event\";\r\nimport { RenvooiValue } from \"../../renvooi/renvooi.interfaces\";\r\n\r\n@Component({\r\n tag: \"dso-annotation-kaart\",\r\n styleUrl: \"../annotation.scss\",\r\n shadow: true,\r\n})\r\nexport class AnnotationKaart implements ComponentInterface {\r\n /**\r\n * Een optionele wijzigactie die aangeeft of de annotatie is toegevoegd of verwijderd.\r\n */\r\n @Prop({ reflect: true })\r\n wijzigactie?: AnnotationWijzigactie;\r\n\r\n /**\r\n * De naam van de kaart.\r\n */\r\n @Prop()\r\n naam?: RenvooiValue | string;\r\n\r\n /**\r\n * De url naar de kaart.\r\n *\r\n * Gebruik het event `dsoClick` om de navigatie aan de router te koppelen.\r\n */\r\n @Prop({ reflect: true })\r\n href?: string;\r\n\r\n /**\r\n * Event als de gebruiker de kaartnaam selecteert.\r\n *\r\n * Let op \"isModifiedEvent\" om te bepalen of de navigatieactie door de router of de browser moet worden afgehandeld.\r\n */\r\n @Event({ bubbles: false })\r\n dsoClick!: EventEmitter<AnnotationKaartClickEvent>;\r\n\r\n private clickHandler = (e: MouseEvent): void => {\r\n if (!this.href) {\r\n return;\r\n }\r\n\r\n this.dsoClick.emit({\r\n href: this.href,\r\n originalEvent: e,\r\n isModifiedEvent: isModifiedEvent(e),\r\n });\r\n };\r\n\r\n render() {\r\n const title = this.href ? (\r\n <a class=\"content\" href={this.href} onClick={this.clickHandler}>\r\n <dso-renvooi value={this.naam} />\r\n </a>\r\n ) : (\r\n <span class=\"content\">\r\n <dso-renvooi value={this.naam} />\r\n </span>\r\n );\r\n\r\n return <AnnotationBody symbol={<dso-icon icon=\"land\" />} title={title} />;\r\n }\r\n}\r\n"],"mappings":"0HAAA,MAAMA,EAAgB,45IACtB,MAAAC,EAAeD,E,MCYFE,EAAe,M,4DA6BlBC,KAAAC,aAAgBC,IACtB,IAAKF,KAAKG,KAAM,CACd,M,CAGFH,KAAKI,SAASC,KAAK,CACjBF,KAAMH,KAAKG,KACXG,cAAeJ,EACfK,gBAAiBA,EAAgBL,IACjC,E,mEAGJ,MAAAM,GACE,MAAMC,EAAQT,KAAKG,KACjBO,EAAA,KAAGC,MAAM,UAAUR,KAAMH,KAAKG,KAAMS,QAASZ,KAAKC,cAChDS,EAAA,eAAaG,MAAOb,KAAKc,QAG3BJ,EAAA,QAAMC,MAAM,WACVD,EAAA,eAAaG,MAAOb,KAAKc,QAI7B,OAAOJ,EAACK,EAAc,CAAAC,IAAA,2CAACC,OAAQP,EAAA,YAAUQ,KAAK,SAAWT,MAAOA,G","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- import{r as t,h as i,F as s,a as e}from"./p-b623c74b.js";const o="*,*::after,*::before{box-sizing:border-box}:host{display:inline-block;--tooltip-margin-block-start:0;--tooltip-margin-inline-start:3px;--tooltip-margin-inline-end:units.$u1 * -1 !important}:host(:focus){outline:none;z-index:410}";const h=o;const n=class{constructor(i){t(this,i);this.click=()=>{if(this.active){this.close()}else{this.open()}};this.open=()=>{this.active=true;this.host.addEventListener("keydown",this.keyDownListener);this.host.addEventListener("focusout",this.focusOutListener)};this.close=()=>{this.host.removeEventListener("focusout",this.focusOutListener);this.host.removeEventListener("keydown",this.keyDownListener);this.active=false};this.focusOutListener=t=>{if(!this.host.contains(t.relatedTarget)){this.close()}};this.keyDownListener=t=>{var i;if(!t.defaultPrevented&&t.key==="Escape"){this.close();(i=this.infoButton)===null||i===void 0?void 0:i.setFocus();t.preventDefault()}return};this.active=false;this.label="Toelichting";this.position="right";this.small=undefined;this.secondary=undefined}render(){return i(s,null,i("dso-info-button",{key:"3304cffaef15d2628de0d345889ba52dbf60514a","aria-describedby":"toggle",onClick:this.click,label:this.label,active:this.active,secondary:this.secondary,ref:t=>this.infoButton=t}),i("dso-tooltip",{key:"4d120364ab6288ded65ea048f7dd7ec18b4f16e0",stateless:true,descriptive:true,id:"toggle",strategy:"absolute",active:this.active,position:this.position,small:this.small},i("slot",{key:"ab233a002b03fa23345df374366d2ba8f08b2b63"})))}get host(){return e(this)}};n.style=h;export{n as dso_toggletip};
2
- //# sourceMappingURL=p-ede5568b.entry.js.map
1
+ import{r as t,h as i,F as s,a as e}from"./p-b623c74b.js";const o="*,*::after,*::before{box-sizing:border-box}:host{display:inline-block;--tooltip-margin-block-start:0;--tooltip-margin-inline-start:3px;--tooltip-margin-inline-end:units.$u1 * -1 !important}:host(:focus){outline:none;z-index:410}";const h=o;const n=class{constructor(i){t(this,i);this.click=()=>{if(this.active){this.close()}else{this.open()}};this.open=()=>{this.active=true;this.host.addEventListener("keydown",this.keyDownListener);this.host.addEventListener("focusout",this.focusOutListener)};this.close=()=>{this.host.removeEventListener("focusout",this.focusOutListener);this.host.removeEventListener("keydown",this.keyDownListener);this.active=false};this.focusOutListener=t=>{if(!this.host.contains(t.relatedTarget)){this.close()}};this.keyDownListener=t=>{var i;if(!t.defaultPrevented&&t.key==="Escape"){this.close();(i=this.infoButton)===null||i===void 0?void 0:i.setFocus();t.preventDefault()}return};this.active=false;this.label="Toelichting";this.position="right";this.small=undefined;this.secondary=undefined}render(){return i(s,null,i("dso-info-button",{key:"d814dd230c0a2b7dd143f0c461a7c35c5a0e8256","aria-describedby":"toggle",onClick:this.click,label:this.label,active:this.active,secondary:this.secondary,ref:t=>this.infoButton=t}),i("dso-tooltip",{key:"8335db4a80d8bf7fdec4251caa9a3d4c5520b8f4",stateless:true,descriptive:true,id:"toggle",strategy:"absolute",active:this.active,position:this.position,small:this.small},i("slot",{key:"e4f9747977cd810999eb63ee413e63827ce106e3"})))}get host(){return e(this)}};n.style=h;export{n as dso_toggletip};
2
+ //# sourceMappingURL=p-e4eed4a2.entry.js.map
@@ -0,0 +1,2 @@
1
+ import{r as o,c as i,h as e,F as t,a as n}from"./p-b623c74b.js";import{c as r}from"./p-8a1a6e56.js";import{c as a}from"./p-808a98bc.js";import{t as s}from"./p-1dbcaeef.js";import{i as l}from"./p-2d694112.js";const c=':host{display:block}*,*::after,*::before{box-sizing:border-box}.active-option{display:flex;inline-size:100%;justify-content:flex-start;align-items:center;padding:0;border:1px solid #275937;border-radius:4px;cursor:pointer;background-color:#fff;line-height:inherit;font-family:inherit;font-size:inherit}.active-option.open{border-radius:4px 4px 0 0}.active-option dso-icon{color:#275937}.active-option dso-label{margin-inline-start:8px}.active-option-label{padding-block:4px;padding-inline:16px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.active-option-aside{display:flex;align-items:center;gap:8px;padding-block:0;padding-inline:8px;margin-inline-start:auto}.badges{display:flex;justify-content:space-between;align-items:center;gap:4px}.groups-container{position:relative}.groups{position:absolute;inset-block-start:-1px;inset-inline-start:0;inline-size:100%;max-block-size:500px;margin:0;padding:0;overflow-y:auto;background-color:#fff;border:1px solid #275937;border-radius:0 0 4px 4px}.groups li::marker{display:none}.group{border-block-end:1px solid #ccc}.group:last-child{border-block-end:none}.group .option{padding-inline-start:37px}.group .option-label::before{content:"";position:absolute;display:block;block-size:10px;inline-size:10px;inset-block:4px auto;inset-inline:-20px auto;border-radius:50%}.group .option-label::before{background-color:#ccc;border-color:#ccc;color:#191919}.group-label{margin:0;padding-block:4px;padding-inline:16px;color:#666;font-size:14px;font-weight:500;border-block-end:1px solid #ccc}.group-link{display:block;padding-block:8px;padding-inline:4px;text-align:end;color:#000;text-decoration:none}.group-link:hover{text-decoration:underline}.group-link dso-icon{color:#39870c}.group-info .option-label::before{background-color:#6ca4d9;border-color:#6ca4d9;color:#191919}.group-primary .option-label::before{background-color:#275937;border-color:#275937;color:#fff}.group-success .option-label::before{background-color:#39870c;border-color:#39870c;color:#fff}.group-warning .option-label::before{background-color:#dcd400;border-color:#dcd400;color:#191919}.group-danger .option-label::before{background-color:#ce3f51;border-color:#ce3f51;color:#fff}.group-error .option-label::before{background-color:#ce3f51;border-color:#ce3f51;color:#fff}.group-attention .option-label::before{background-color:#8b4a6a;border-color:#8b4a6a;color:#fff}.options{margin:0;padding:0}.option{display:block;inline-size:100%;padding-block:8px;padding-inline:16px;cursor:pointer;line-height:inherit;font-family:inherit;font-size:inherit;border:none;text-align:start;background-color:#fff}.option:hover{background-color:#ebf3e6}.option:hover .option-label{color:#39870c;font-weight:bold}.option.option-active .option-label{color:#39870c;font-weight:bold;text-decoration:underline}.option-label{position:relative;color:#000;font-size:Asap, sans-serif;font-weight:400}.option-hint{padding-inline-start:5px;color:#39870c;font-size:Asap, sans-serif;font-weight:bold}.placeholder{margin:0;padding-block:8px;padding-inline:16px;color:#666}';const d=c;const p=class{constructor(e){o(this,e);this.dsoChange=i(this,"dsoChange",3);this.dsoRedirect=i(this,"dsoRedirect",3);this.toggleOpen=()=>{this.open=!this.open};this.handleOptionClick=(o,i)=>{this.dsoChange.emit({originalEvent:o,option:i});this.open=false};this.handleRedirectClick=(o,i)=>{this.dsoRedirect.emit({originalEvent:o,isModifiedEvent:l(o),redirect:i});this.open=false};this.options=[];this.active=undefined;this.activeHint=undefined;this.open=false}keyDownListener(o){if(this.open&&o.key==="ArrowUp"){o.preventDefault();this.handleTab(-1)}else if(this.open&&o.key==="ArrowDown"){o.preventDefault();this.handleTab(1)}}componentDidRender(){if(this.open&&!this.trap){this.createTrap()}else if(!this.open&&this.trap){this.removeTrap()}}createTrap(){this.trap=a(this.host,{clickOutsideDeactivates:true,escapeDeactivates:true,setReturnFocus:this.toggleButtonElementRef,tabbableOptions:{getShadowRoot:true},onDeactivate:()=>{this.open=false}}).activate()}removeTrap(){var o;(o=this.trap)===null||o===void 0?void 0:o.deactivate();delete this.trap}handleTab(o){var i;const e=this.host.isConnected?s(this.host,{getShadowRoot:true}):[];const t=e.findIndex((o=>{var i;return o===((i=this.host.shadowRoot)===null||i===void 0?void 0:i.activeElement)}));let n=t+o;if(n>=e.length){n=0}else if(n<0){n=e.length-1}(i=e[n])===null||i===void 0?void 0:i.focus()}render(){var o,i;return e(t,null,e("button",{key:"443309104a25a8fabd949377c74383027450f404","aria-expanded":this.open.toString(),class:r(["active-option",{open:this.open}]),type:"button",onClick:this.toggleOpen,ref:o=>this.toggleButtonElementRef=o},e(u,{key:"e0f34941cabe1232ecf224d35f951f2fcb7affc7",active:this.active,options:this.options}),e("span",{key:"b1d4dfadfb02c8beaa6e8553be863abf6fa50c4f",class:"active-option-label"},(i=(o=this.active)===null||o===void 0?void 0:o.label)!==null&&i!==void 0?i:"Selecteer een optie"),e("span",{key:"29dc80cc20ebc9393119bd2e0251420099d8ac88",class:"active-option-aside"},this.options.some((o=>"summaryCounter"in o&&(o===null||o===void 0?void 0:o.summaryCounter)))&&e("span",{key:"08a59c09ec06900c761e44ce223c317414e401bf",class:"badges"},this.options.filter((o=>"options"in o&&"summaryCounter"in o&&!!(o===null||o===void 0?void 0:o.summaryCounter))).map((o=>{var i;return e("dso-badge",{status:(i=o.variant)!==null&&i!==void 0?i:"outline"},o.options.length)}))),e("dso-icon",{key:"06549ae93243ab2a9b0a36e397ef0808e90973f5",icon:"caret-down"}))),this.open&&e("div",{key:"9f7e0cb989feb1167d8b0bce0f2c3a9c371811b8",class:"groups-container"},e("ul",{key:"bd98ccdbe135d9145f8d1c41c3bf362030e37e26",class:"groups"},this.options.map((o=>"options"in o&&e("li",{class:r(["group",{[`group-${o.variant}`]:!!o.variant}])},e("p",{class:"group-label"},o.label),e("ul",{class:"options"},o.options.map((o=>e("li",null,e(b,{option:o,active:this.active,activeHint:this.activeHint,callback:this.handleOptionClick}))))),o.redirect&&e(f,{redirect:o.redirect,callback:this.handleRedirectClick}))||"placeholder"in o&&e("li",{class:"group"},e("p",{class:"group-label"},o.label),e("p",{class:"placeholder"},o.placeholder),o.redirect&&e(f,{redirect:o.redirect,callback:this.handleRedirectClick}))||e("li",null,e(b,{option:o,active:this.active,activeHint:this.activeHint,callback:this.handleOptionClick})))))))}get host(){return n(this)}};const b=({option:o,active:i,activeHint:t,callback:n})=>e("button",{class:r(["option",{"option-active":i===o}]),type:"button",onClick:i=>n(i,o)},e("span",{class:"option-label"},o.label),!!t&&i===o&&e("span",{class:"option-hint"},"(",t,")"));const f=({redirect:o,callback:i})=>e("a",{class:"group-link",href:o.href,onClick:e=>i(e,o)},o.label,e("dso-icon",{icon:"chevron-right"}));const u=({active:o,options:i})=>{const t=i.find((i=>"options"in i&&!!i.options.find((i=>i===o))&&!!i.activeLabel));return t?e("dso-label",{compact:true,status:t.variant},t.activeLabel):undefined};p.style=d;export{p as dso_advanced_select};
2
+ //# sourceMappingURL=p-eb79a374.entry.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["advancedSelectCss","DsoAdvancedSelectStyle0","AdvancedSelect","this","toggleOpen","open","handleOptionClick","event","option","dsoChange","emit","originalEvent","handleRedirectClick","redirect","dsoRedirect","isModifiedEvent","keyDownListener","key","preventDefault","handleTab","componentDidRender","trap","createTrap","removeTrap","createFocusTrap","host","clickOutsideDeactivates","escapeDeactivates","setReturnFocus","toggleButtonElementRef","tabbableOptions","getShadowRoot","onDeactivate","activate","_a","deactivate","direction","elements","isConnected","tabbable","currentIndex","findIndex","e","shadowRoot","activeElement","nextIndex","length","focus","render","h","Fragment","toString","class","clsx","type","onClick","ref","element","ActiveGroupLabel","active","options","_b","label","some","optionOrGroup","summaryCounter","filter","map","group","status","variant","icon","OptionButton","activeHint","callback","RedirectAnchor","placeholder","href","find","activeLabel","compact","undefined"],"sources":["src/components/advanced-select/advanced-select.scss?tag=dso-advanced-select&encapsulation=shadow","src/components/advanced-select/advanced-select.tsx"],"sourcesContent":["@use \"~dso-toolkit/src/utilities\";\r\n@use \"~dso-toolkit/src/global/mixins/set-colors.mixin\" as set-colors;\r\n@use \"~dso-toolkit/src/components/advanced-select\";\r\n\r\n:host {\r\n display: block;\r\n}\r\n\r\n@include utilities.box-sizing();\r\n\r\n.active-option {\r\n display: flex;\r\n inline-size: 100%;\r\n justify-content: flex-start;\r\n align-items: center;\r\n padding: 0;\r\n border: 1px solid advanced-select.$border-color;\r\n border-radius: advanced-select.$border-radius;\r\n cursor: pointer;\r\n background-color: advanced-select.$bg-color;\r\n line-height: inherit;\r\n font-family: inherit;\r\n font-size: inherit;\r\n\r\n &.open {\r\n border-radius: advanced-select.$border-radius advanced-select.$border-radius 0 0;\r\n }\r\n\r\n dso-icon {\r\n color: advanced-select.$icon-color;\r\n }\r\n\r\n dso-label {\r\n margin-inline-start: advanced-select.$inline-padding * 0.5;\r\n }\r\n}\r\n\r\n.active-option-label {\r\n padding-block: advanced-select.$block-padding;\r\n padding-inline: advanced-select.$inline-padding;\r\n overflow: hidden;\r\n /* stylelint-disable-next-line declaration-property-value-disallowed-list -- Nodig om lange titels op de zelfde regel te houden */\r\n white-space: nowrap;\r\n /* stylelint-disable-next-line declaration-property-value-disallowed-list -- Nodig om lange titels op de zelfde regel te houden */\r\n text-overflow: ellipsis;\r\n}\r\n\r\n.active-option-aside {\r\n display: flex;\r\n align-items: center;\r\n gap: advanced-select.$inline-padding * 0.5;\r\n padding-block: 0;\r\n padding-inline: advanced-select.$inline-padding * 0.5;\r\n margin-inline-start: auto;\r\n}\r\n\r\n.badges {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n gap: advanced-select.$block-padding;\r\n}\r\n\r\n.groups-container {\r\n position: relative;\r\n}\r\n\r\n.groups {\r\n position: absolute;\r\n inset-block-start: -1px;\r\n inset-inline-start: 0;\r\n inline-size: 100%;\r\n max-block-size: 500px;\r\n margin: 0;\r\n padding: 0;\r\n overflow-y: auto;\r\n background-color: advanced-select.$bg-color;\r\n border: 1px solid advanced-select.$border-color;\r\n border-radius: 0 0 advanced-select.$border-radius advanced-select.$border-radius;\r\n\r\n li {\r\n &::marker {\r\n display: none;\r\n }\r\n }\r\n}\r\n\r\n.group {\r\n border-block-end: 1px solid advanced-select.$hr-color;\r\n\r\n &:last-child {\r\n border-block-end: none;\r\n }\r\n\r\n .option {\r\n padding-inline-start: advanced-select.$inline-padding * 2 + advanced-select.$option-dot-size * 0.5;\r\n }\r\n\r\n .option-label::before {\r\n content: \"\";\r\n position: absolute;\r\n display: block;\r\n block-size: advanced-select.$option-dot-size;\r\n inline-size: advanced-select.$option-dot-size;\r\n inset-block: advanced-select.$block-padding auto;\r\n inset-inline: -#{advanced-select.$option-dot-size * 2} auto;\r\n border-radius: 50%;\r\n @include set-colors.apply(advanced-select.$default-variant-color, $icons: false, $links: false);\r\n }\r\n}\r\n\r\n.group-label {\r\n margin: 0;\r\n padding-block: advanced-select.$block-padding;\r\n padding-inline: advanced-select.$inline-padding;\r\n color: advanced-select.$group-label-color;\r\n font-size: advanced-select.$group-label-font-size;\r\n font-weight: advanced-select.$group-label-font-weight;\r\n border-block-end: 1px solid advanced-select.$hr-color;\r\n}\r\n\r\n.group-link {\r\n display: block;\r\n padding-block: advanced-select.$group-link-block-padding;\r\n padding-inline: advanced-select.$group-link-inline-padding;\r\n text-align: end;\r\n color: advanced-select.$group-link-color;\r\n text-decoration: none;\r\n\r\n &:hover {\r\n text-decoration: underline;\r\n }\r\n\r\n dso-icon {\r\n color: advanced-select.$redirect-icon-color;\r\n }\r\n}\r\n\r\n.group-info .option-label::before {\r\n @include set-colors.apply(advanced-select.$info-variant-color, $icons: false, $links: false);\r\n}\r\n\r\n.group-primary .option-label::before {\r\n @include set-colors.apply(advanced-select.$primary-variant-color, $icons: false, $links: false);\r\n}\r\n\r\n.group-success .option-label::before {\r\n @include set-colors.apply(advanced-select.$success-variant-color, $icons: false, $links: false);\r\n}\r\n\r\n.group-warning .option-label::before {\r\n @include set-colors.apply(advanced-select.$warning-variant-color, $icons: false, $links: false);\r\n}\r\n\r\n.group-danger .option-label::before {\r\n @include set-colors.apply(advanced-select.$danger-variant-color, $icons: false, $links: false);\r\n}\r\n\r\n.group-error .option-label::before {\r\n @include set-colors.apply(advanced-select.$error-variant-color, $icons: false, $links: false);\r\n}\r\n\r\n.group-attention .option-label::before {\r\n @include set-colors.apply(advanced-select.$attention-variant-color, $icons: false, $links: false);\r\n}\r\n\r\n.options {\r\n margin: 0;\r\n padding: 0;\r\n}\r\n\r\n.option {\r\n display: block;\r\n inline-size: 100%;\r\n padding-block: advanced-select.$block-padding * 2;\r\n padding-inline: advanced-select.$inline-padding;\r\n cursor: pointer;\r\n line-height: inherit;\r\n font-family: inherit;\r\n font-size: inherit;\r\n border: none;\r\n text-align: start;\r\n background-color: advanced-select.$bg-color;\r\n\r\n &:hover {\r\n background-color: advanced-select.$option-hover-bg-color;\r\n\r\n .option-label {\r\n color: advanced-select.$option-hover-color;\r\n font-weight: advanced-select.$option-hover-font-weight;\r\n }\r\n }\r\n}\r\n\r\n.option.option-active .option-label {\r\n color: advanced-select.$option-active-color;\r\n font-weight: advanced-select.$option-active-font-weight;\r\n text-decoration: underline;\r\n}\r\n\r\n.option-label {\r\n position: relative;\r\n color: advanced-select.$option-color;\r\n font-size: advanced-select.$option-font-size;\r\n font-weight: advanced-select.$option-font-weight;\r\n}\r\n\r\n.option-hint {\r\n padding-inline-start: 5px;\r\n color: advanced-select.$option-active-color;\r\n font-size: advanced-select.$option-font-size;\r\n font-weight: advanced-select.$option-active-font-weight;\r\n}\r\n\r\n.placeholder {\r\n margin: 0;\r\n padding-block: advanced-select.$block-padding * 2;\r\n padding-inline: advanced-select.$inline-padding;\r\n color: advanced-select.$option-placeholder-color;\r\n}\r\n","import {\r\n Component,\r\n ComponentInterface,\r\n Prop,\r\n h,\r\n FunctionalComponent,\r\n Element,\r\n Event,\r\n EventEmitter,\r\n State,\r\n Fragment,\r\n Listen,\r\n} from \"@stencil/core\";\r\nimport clsx from \"clsx\";\r\nimport {\r\n AdvancedSelectGroup,\r\n AdvancedSelectGroupRedirect,\r\n AdvancedSelectOption,\r\n AdvancedSelectChangeEvent,\r\n AdvancedSelectOptionOrGroup,\r\n AdvancedSelectRedirectEvent,\r\n} from \"./advanced-select.interfaces\";\r\nimport { createFocusTrap, FocusTrap } from \"focus-trap\";\r\nimport { tabbable } from \"tabbable\";\r\nimport { isModifiedEvent } from \"../../utils/is-modified-event\";\r\n\r\n@Component({\r\n tag: \"dso-advanced-select\",\r\n styleUrl: \"advanced-select.scss\",\r\n shadow: true,\r\n})\r\nexport class AdvancedSelect implements ComponentInterface {\r\n private trap?: FocusTrap;\r\n\r\n @Element()\r\n host!: HTMLDsoAdvancedSelectElement;\r\n\r\n /**\r\n * The options to display in the select.\r\n */\r\n @Prop()\r\n options: AdvancedSelectOptionOrGroup<never>[] = [];\r\n\r\n /**\r\n * The active option. By object reference.\r\n */\r\n @Prop()\r\n active?: AdvancedSelectOption<never>;\r\n\r\n /**\r\n * An extra text for the active option. Only visible in the list of options.\r\n */\r\n @Prop()\r\n activeHint?: string;\r\n\r\n /**\r\n * The open state of the options list.\r\n */\r\n @State()\r\n open: boolean = false;\r\n\r\n /**\r\n * Emitted when user selects an option\r\n */\r\n @Event({ bubbles: false })\r\n dsoChange!: EventEmitter<AdvancedSelectChangeEvent<never>>;\r\n\r\n /**\r\n * Emitted when user activates a group redirect link.\r\n */\r\n @Event({ bubbles: false })\r\n dsoRedirect!: EventEmitter<AdvancedSelectRedirectEvent>;\r\n\r\n private toggleButtonElementRef: HTMLButtonElement | undefined;\r\n\r\n @Listen(\"keydown\", { target: \"window\" })\r\n keyDownListener(event: KeyboardEvent) {\r\n if (this.open && event.key === \"ArrowUp\") {\r\n event.preventDefault();\r\n this.handleTab(-1);\r\n } else if (this.open && event.key === \"ArrowDown\") {\r\n event.preventDefault();\r\n this.handleTab(1);\r\n }\r\n }\r\n\r\n componentDidRender() {\r\n if (this.open && !this.trap) {\r\n this.createTrap();\r\n } else if (!this.open && this.trap) {\r\n this.removeTrap();\r\n }\r\n }\r\n\r\n private toggleOpen = () => {\r\n this.open = !this.open;\r\n };\r\n\r\n private createTrap() {\r\n this.trap = createFocusTrap(this.host, {\r\n clickOutsideDeactivates: true,\r\n escapeDeactivates: true,\r\n setReturnFocus: this.toggleButtonElementRef,\r\n tabbableOptions: {\r\n getShadowRoot: true,\r\n },\r\n onDeactivate: () => {\r\n this.open = false;\r\n },\r\n }).activate();\r\n }\r\n\r\n private removeTrap() {\r\n this.trap?.deactivate();\r\n delete this.trap;\r\n }\r\n\r\n private handleTab(direction: number) {\r\n const elements = this.host.isConnected ? tabbable(this.host, { getShadowRoot: true }) : [];\r\n const currentIndex = elements.findIndex((e) => e === this.host.shadowRoot?.activeElement);\r\n\r\n let nextIndex = currentIndex + direction;\r\n if (nextIndex >= elements.length) {\r\n nextIndex = 0;\r\n } else if (nextIndex < 0) {\r\n nextIndex = elements.length - 1;\r\n }\r\n\r\n elements[nextIndex]?.focus();\r\n }\r\n\r\n private handleOptionClick = (event: MouseEvent, option: AdvancedSelectOption<never>) => {\r\n this.dsoChange.emit({ originalEvent: event, option });\r\n this.open = false;\r\n };\r\n\r\n private handleRedirectClick = (event: MouseEvent, redirect: AdvancedSelectGroupRedirect) => {\r\n this.dsoRedirect.emit({ originalEvent: event, isModifiedEvent: isModifiedEvent(event), redirect });\r\n this.open = false;\r\n };\r\n\r\n render() {\r\n return (\r\n <>\r\n <button\r\n aria-expanded={this.open.toString()}\r\n class={clsx([\"active-option\", { open: this.open }])}\r\n type=\"button\"\r\n onClick={this.toggleOpen}\r\n ref={(element) => (this.toggleButtonElementRef = element)}\r\n >\r\n <ActiveGroupLabel active={this.active} options={this.options} />\r\n <span class=\"active-option-label\">{this.active?.label ?? \"Selecteer een optie\"}</span>\r\n <span class=\"active-option-aside\">\r\n {this.options.some(\r\n (optionOrGroup) => \"summaryCounter\" in optionOrGroup && optionOrGroup?.summaryCounter,\r\n ) && (\r\n <span class=\"badges\">\r\n {this.options\r\n .filter(\r\n (option): option is AdvancedSelectGroup<never> =>\r\n \"options\" in option && \"summaryCounter\" in option && !!option?.summaryCounter,\r\n )\r\n .map((group) => (\r\n <dso-badge status={group.variant ?? \"outline\"}>{group.options.length}</dso-badge>\r\n ))}\r\n </span>\r\n )}\r\n <dso-icon icon=\"caret-down\"></dso-icon>\r\n </span>\r\n </button>\r\n {this.open && (\r\n <div class=\"groups-container\">\r\n <ul class=\"groups\">\r\n {this.options.map(\r\n (optionOrGroup) =>\r\n (\"options\" in optionOrGroup && (\r\n <li class={clsx([\"group\", { [`group-${optionOrGroup.variant}`]: !!optionOrGroup.variant }])}>\r\n <p class=\"group-label\">{optionOrGroup.label}</p>\r\n <ul class=\"options\">\r\n {optionOrGroup.options.map((option) => (\r\n <li>\r\n <OptionButton\r\n option={option}\r\n active={this.active}\r\n activeHint={this.activeHint}\r\n callback={this.handleOptionClick}\r\n />\r\n </li>\r\n ))}\r\n </ul>\r\n {optionOrGroup.redirect && (\r\n <RedirectAnchor\r\n redirect={optionOrGroup.redirect}\r\n callback={this.handleRedirectClick}\r\n ></RedirectAnchor>\r\n )}\r\n </li>\r\n )) ||\r\n (\"placeholder\" in optionOrGroup && (\r\n <li class=\"group\">\r\n <p class=\"group-label\">{optionOrGroup.label}</p>\r\n <p class=\"placeholder\">{optionOrGroup.placeholder}</p>\r\n {optionOrGroup.redirect && (\r\n <RedirectAnchor\r\n redirect={optionOrGroup.redirect}\r\n callback={this.handleRedirectClick}\r\n ></RedirectAnchor>\r\n )}\r\n </li>\r\n )) || (\r\n <li>\r\n <OptionButton\r\n option={optionOrGroup}\r\n active={this.active}\r\n activeHint={this.activeHint}\r\n callback={this.handleOptionClick}\r\n />\r\n </li>\r\n ),\r\n )}\r\n </ul>\r\n </div>\r\n )}\r\n </>\r\n );\r\n }\r\n}\r\n\r\ninterface OptionButtonProps {\r\n option: AdvancedSelectOption<never>;\r\n active: AdvancedSelectOption<never> | undefined;\r\n activeHint: string | undefined;\r\n callback: (event: MouseEvent, value: AdvancedSelectOption<never>) => void;\r\n}\r\n\r\nconst OptionButton: FunctionalComponent<OptionButtonProps> = ({ option, active, activeHint, callback }) => (\r\n <button\r\n class={clsx([\"option\", { \"option-active\": active === option }])}\r\n type=\"button\"\r\n onClick={(e) => callback(e, option)}\r\n >\r\n <span class=\"option-label\">{option.label}</span>\r\n {!!activeHint && active === option && <span class=\"option-hint\">({activeHint})</span>}\r\n </button>\r\n);\r\n\r\ninterface RedirectAnchorProps {\r\n redirect: AdvancedSelectGroupRedirect;\r\n callback: (event: MouseEvent, value: AdvancedSelectGroupRedirect) => void;\r\n}\r\n\r\nconst RedirectAnchor: FunctionalComponent<RedirectAnchorProps> = ({ redirect, callback }) => (\r\n <a class=\"group-link\" href={redirect.href} onClick={(e) => callback(e, redirect)}>\r\n {redirect.label}\r\n <dso-icon icon=\"chevron-right\"></dso-icon>\r\n </a>\r\n);\r\n\r\ninterface ActiveGroupLabelProps {\r\n active: AdvancedSelectOption<never> | undefined;\r\n options: AdvancedSelectOptionOrGroup<never>[];\r\n}\r\n\r\nconst ActiveGroupLabel: FunctionalComponent<ActiveGroupLabelProps> = ({ active, options }) => {\r\n const group = options.find(\r\n (optionOrGroup): optionOrGroup is AdvancedSelectGroup<never> =>\r\n \"options\" in optionOrGroup &&\r\n !!optionOrGroup.options.find((option) => option === active) &&\r\n !!optionOrGroup.activeLabel,\r\n );\r\n\r\n return group ? (\r\n <dso-label compact status={group.variant}>\r\n {group.activeLabel}\r\n </dso-label>\r\n ) : undefined;\r\n};\r\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["advancedSelectCss","DsoAdvancedSelectStyle0","AdvancedSelect","this","toggleOpen","open","handleOptionClick","event","option","dsoChange","emit","originalEvent","handleRedirectClick","redirect","dsoRedirect","isModifiedEvent","keyDownListener","key","preventDefault","handleTab","componentDidRender","trap","createTrap","removeTrap","createFocusTrap","host","clickOutsideDeactivates","escapeDeactivates","setReturnFocus","toggleButtonElementRef","tabbableOptions","getShadowRoot","onDeactivate","activate","_a","deactivate","direction","elements","isConnected","tabbable","currentIndex","findIndex","e","shadowRoot","activeElement","nextIndex","length","focus","render","h","Fragment","toString","class","clsx","type","onClick","ref","element","ActiveGroupLabel","active","options","_b","label","some","optionOrGroup","summaryCounter","filter","map","group","status","variant","icon","OptionButton","activeHint","callback","RedirectAnchor","placeholder","href","find","activeLabel","compact","undefined"],"sources":["src/components/advanced-select/advanced-select.scss?tag=dso-advanced-select&encapsulation=shadow","src/components/advanced-select/advanced-select.tsx"],"sourcesContent":["@use \"~dso-toolkit/src/utilities\";\r\n@use \"~dso-toolkit/src/global/mixins/set-colors.mixin\" as set-colors;\r\n@use \"~dso-toolkit/src/components/advanced-select\";\r\n\r\n:host {\r\n display: block;\r\n}\r\n\r\n@include utilities.box-sizing();\r\n\r\n.active-option {\r\n display: flex;\r\n inline-size: 100%;\r\n justify-content: flex-start;\r\n align-items: center;\r\n padding: 0;\r\n border: 1px solid advanced-select.$border-color;\r\n border-radius: advanced-select.$border-radius;\r\n cursor: pointer;\r\n background-color: advanced-select.$bg-color;\r\n line-height: inherit;\r\n font-family: inherit;\r\n font-size: inherit;\r\n\r\n &.open {\r\n border-radius: advanced-select.$border-radius advanced-select.$border-radius 0 0;\r\n }\r\n\r\n dso-icon {\r\n color: advanced-select.$icon-color;\r\n }\r\n\r\n dso-label {\r\n margin-inline-start: advanced-select.$inline-padding * 0.5;\r\n }\r\n}\r\n\r\n.active-option-label {\r\n padding-block: advanced-select.$block-padding;\r\n padding-inline: advanced-select.$inline-padding;\r\n overflow: hidden;\r\n /* stylelint-disable-next-line declaration-property-value-disallowed-list -- Nodig om lange titels op de zelfde regel te houden */\r\n white-space: nowrap;\r\n /* stylelint-disable-next-line declaration-property-value-disallowed-list -- Nodig om lange titels op de zelfde regel te houden */\r\n text-overflow: ellipsis;\r\n}\r\n\r\n.active-option-aside {\r\n display: flex;\r\n align-items: center;\r\n gap: advanced-select.$inline-padding * 0.5;\r\n padding-block: 0;\r\n padding-inline: advanced-select.$inline-padding * 0.5;\r\n margin-inline-start: auto;\r\n}\r\n\r\n.badges {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n gap: advanced-select.$block-padding;\r\n}\r\n\r\n.groups-container {\r\n position: relative;\r\n}\r\n\r\n.groups {\r\n position: absolute;\r\n inset-block-start: -1px;\r\n inset-inline-start: 0;\r\n inline-size: 100%;\r\n max-block-size: 500px;\r\n margin: 0;\r\n padding: 0;\r\n overflow-y: auto;\r\n background-color: advanced-select.$bg-color;\r\n border: 1px solid advanced-select.$border-color;\r\n border-radius: 0 0 advanced-select.$border-radius advanced-select.$border-radius;\r\n\r\n li {\r\n &::marker {\r\n display: none;\r\n }\r\n }\r\n}\r\n\r\n.group {\r\n border-block-end: 1px solid advanced-select.$hr-color;\r\n\r\n &:last-child {\r\n border-block-end: none;\r\n }\r\n\r\n .option {\r\n padding-inline-start: advanced-select.$inline-padding * 2 + advanced-select.$option-dot-size * 0.5;\r\n }\r\n\r\n .option-label::before {\r\n content: \"\";\r\n position: absolute;\r\n display: block;\r\n block-size: advanced-select.$option-dot-size;\r\n inline-size: advanced-select.$option-dot-size;\r\n inset-block: advanced-select.$block-padding auto;\r\n inset-inline: -#{advanced-select.$option-dot-size * 2} auto;\r\n border-radius: 50%;\r\n @include set-colors.apply(advanced-select.$default-variant-color, $icons: false, $links: false);\r\n }\r\n}\r\n\r\n.group-label {\r\n margin: 0;\r\n padding-block: advanced-select.$block-padding;\r\n padding-inline: advanced-select.$inline-padding;\r\n color: advanced-select.$group-label-color;\r\n font-size: advanced-select.$group-label-font-size;\r\n font-weight: advanced-select.$group-label-font-weight;\r\n border-block-end: 1px solid advanced-select.$hr-color;\r\n}\r\n\r\n.group-link {\r\n display: block;\r\n padding-block: advanced-select.$group-link-block-padding;\r\n padding-inline: advanced-select.$group-link-inline-padding;\r\n text-align: end;\r\n color: advanced-select.$group-link-color;\r\n text-decoration: none;\r\n\r\n &:hover {\r\n text-decoration: underline;\r\n }\r\n\r\n dso-icon {\r\n color: advanced-select.$redirect-icon-color;\r\n }\r\n}\r\n\r\n.group-info .option-label::before {\r\n @include set-colors.apply(advanced-select.$info-variant-color, $icons: false, $links: false);\r\n}\r\n\r\n.group-primary .option-label::before {\r\n @include set-colors.apply(advanced-select.$primary-variant-color, $icons: false, $links: false);\r\n}\r\n\r\n.group-success .option-label::before {\r\n @include set-colors.apply(advanced-select.$success-variant-color, $icons: false, $links: false);\r\n}\r\n\r\n.group-warning .option-label::before {\r\n @include set-colors.apply(advanced-select.$warning-variant-color, $icons: false, $links: false);\r\n}\r\n\r\n.group-danger .option-label::before {\r\n @include set-colors.apply(advanced-select.$danger-variant-color, $icons: false, $links: false);\r\n}\r\n\r\n.group-error .option-label::before {\r\n @include set-colors.apply(advanced-select.$error-variant-color, $icons: false, $links: false);\r\n}\r\n\r\n.group-attention .option-label::before {\r\n @include set-colors.apply(advanced-select.$attention-variant-color, $icons: false, $links: false);\r\n}\r\n\r\n.options {\r\n margin: 0;\r\n padding: 0;\r\n}\r\n\r\n.option {\r\n display: block;\r\n inline-size: 100%;\r\n padding-block: advanced-select.$block-padding * 2;\r\n padding-inline: advanced-select.$inline-padding;\r\n cursor: pointer;\r\n line-height: inherit;\r\n font-family: inherit;\r\n font-size: inherit;\r\n border: none;\r\n text-align: start;\r\n background-color: advanced-select.$bg-color;\r\n\r\n &:hover {\r\n background-color: advanced-select.$option-hover-bg-color;\r\n\r\n .option-label {\r\n color: advanced-select.$option-hover-color;\r\n font-weight: advanced-select.$option-hover-font-weight;\r\n }\r\n }\r\n}\r\n\r\n.option.option-active .option-label {\r\n color: advanced-select.$option-active-color;\r\n font-weight: advanced-select.$option-active-font-weight;\r\n text-decoration: underline;\r\n}\r\n\r\n.option-label {\r\n position: relative;\r\n color: advanced-select.$option-color;\r\n font-size: advanced-select.$option-font-size;\r\n font-weight: advanced-select.$option-font-weight;\r\n}\r\n\r\n.option-hint {\r\n padding-inline-start: 5px;\r\n color: advanced-select.$option-active-color;\r\n font-size: advanced-select.$option-font-size;\r\n font-weight: advanced-select.$option-active-font-weight;\r\n}\r\n\r\n.placeholder {\r\n margin: 0;\r\n padding-block: advanced-select.$block-padding * 2;\r\n padding-inline: advanced-select.$inline-padding;\r\n color: advanced-select.$option-placeholder-color;\r\n}\r\n","import {\r\n Component,\r\n ComponentInterface,\r\n Prop,\r\n h,\r\n FunctionalComponent,\r\n Element,\r\n Event,\r\n EventEmitter,\r\n State,\r\n Fragment,\r\n Listen,\r\n} from \"@stencil/core\";\r\nimport clsx from \"clsx\";\r\nimport {\r\n AdvancedSelectGroup,\r\n AdvancedSelectGroupRedirect,\r\n AdvancedSelectOption,\r\n AdvancedSelectChangeEvent,\r\n AdvancedSelectOptionOrGroup,\r\n AdvancedSelectRedirectEvent,\r\n} from \"./advanced-select.interfaces\";\r\nimport { createFocusTrap, FocusTrap } from \"focus-trap\";\r\nimport { tabbable } from \"tabbable\";\r\nimport { isModifiedEvent } from \"../../utils/is-modified-event\";\r\n\r\n@Component({\r\n tag: \"dso-advanced-select\",\r\n styleUrl: \"advanced-select.scss\",\r\n shadow: true,\r\n})\r\nexport class AdvancedSelect implements ComponentInterface {\r\n private trap?: FocusTrap;\r\n\r\n @Element()\r\n host!: HTMLDsoAdvancedSelectElement;\r\n\r\n /**\r\n * The options to display in the select.\r\n */\r\n @Prop()\r\n options: AdvancedSelectOptionOrGroup<never>[] = [];\r\n\r\n /**\r\n * The active option. By object reference.\r\n */\r\n @Prop()\r\n active?: AdvancedSelectOption<never>;\r\n\r\n /**\r\n * An extra text for the active option. Only visible in the list of options.\r\n */\r\n @Prop()\r\n activeHint?: string;\r\n\r\n /**\r\n * The open state of the options list.\r\n */\r\n @State()\r\n open: boolean = false;\r\n\r\n /**\r\n * Emitted when user selects an option\r\n */\r\n @Event({ bubbles: false })\r\n dsoChange!: EventEmitter<AdvancedSelectChangeEvent<never>>;\r\n\r\n /**\r\n * Emitted when user activates a group redirect link.\r\n */\r\n @Event({ bubbles: false })\r\n dsoRedirect!: EventEmitter<AdvancedSelectRedirectEvent>;\r\n\r\n private toggleButtonElementRef: HTMLButtonElement | undefined;\r\n\r\n @Listen(\"keydown\", { target: \"window\" })\r\n keyDownListener(event: KeyboardEvent) {\r\n if (this.open && event.key === \"ArrowUp\") {\r\n event.preventDefault();\r\n this.handleTab(-1);\r\n } else if (this.open && event.key === \"ArrowDown\") {\r\n event.preventDefault();\r\n this.handleTab(1);\r\n }\r\n }\r\n\r\n componentDidRender() {\r\n if (this.open && !this.trap) {\r\n this.createTrap();\r\n } else if (!this.open && this.trap) {\r\n this.removeTrap();\r\n }\r\n }\r\n\r\n private toggleOpen = () => {\r\n this.open = !this.open;\r\n };\r\n\r\n private createTrap() {\r\n this.trap = createFocusTrap(this.host, {\r\n clickOutsideDeactivates: true,\r\n escapeDeactivates: true,\r\n setReturnFocus: this.toggleButtonElementRef,\r\n tabbableOptions: {\r\n getShadowRoot: true,\r\n },\r\n onDeactivate: () => {\r\n this.open = false;\r\n },\r\n }).activate();\r\n }\r\n\r\n private removeTrap() {\r\n this.trap?.deactivate();\r\n delete this.trap;\r\n }\r\n\r\n private handleTab(direction: number) {\r\n const elements = this.host.isConnected ? tabbable(this.host, { getShadowRoot: true }) : [];\r\n const currentIndex = elements.findIndex((e) => e === this.host.shadowRoot?.activeElement);\r\n\r\n let nextIndex = currentIndex + direction;\r\n if (nextIndex >= elements.length) {\r\n nextIndex = 0;\r\n } else if (nextIndex < 0) {\r\n nextIndex = elements.length - 1;\r\n }\r\n\r\n elements[nextIndex]?.focus();\r\n }\r\n\r\n private handleOptionClick = (event: MouseEvent, option: AdvancedSelectOption<never>) => {\r\n this.dsoChange.emit({ originalEvent: event, option });\r\n this.open = false;\r\n };\r\n\r\n private handleRedirectClick = (event: MouseEvent, redirect: AdvancedSelectGroupRedirect) => {\r\n this.dsoRedirect.emit({ originalEvent: event, isModifiedEvent: isModifiedEvent(event), redirect });\r\n this.open = false;\r\n };\r\n\r\n render() {\r\n return (\r\n <>\r\n <button\r\n aria-expanded={this.open.toString()}\r\n class={clsx([\"active-option\", { open: this.open }])}\r\n type=\"button\"\r\n onClick={this.toggleOpen}\r\n ref={(element) => (this.toggleButtonElementRef = element)}\r\n >\r\n <ActiveGroupLabel active={this.active} options={this.options} />\r\n <span class=\"active-option-label\">{this.active?.label ?? \"Selecteer een optie\"}</span>\r\n <span class=\"active-option-aside\">\r\n {this.options.some(\r\n (optionOrGroup) => \"summaryCounter\" in optionOrGroup && optionOrGroup?.summaryCounter,\r\n ) && (\r\n <span class=\"badges\">\r\n {this.options\r\n .filter(\r\n (option): option is AdvancedSelectGroup<never> =>\r\n \"options\" in option && \"summaryCounter\" in option && !!option?.summaryCounter,\r\n )\r\n .map((group) => (\r\n <dso-badge status={group.variant ?? \"outline\"}>{group.options.length}</dso-badge>\r\n ))}\r\n </span>\r\n )}\r\n <dso-icon icon=\"caret-down\"></dso-icon>\r\n </span>\r\n </button>\r\n {this.open && (\r\n <div class=\"groups-container\">\r\n <ul class=\"groups\">\r\n {this.options.map(\r\n (optionOrGroup) =>\r\n (\"options\" in optionOrGroup && (\r\n <li class={clsx([\"group\", { [`group-${optionOrGroup.variant}`]: !!optionOrGroup.variant }])}>\r\n <p class=\"group-label\">{optionOrGroup.label}</p>\r\n <ul class=\"options\">\r\n {optionOrGroup.options.map((option) => (\r\n <li>\r\n <OptionButton\r\n option={option}\r\n active={this.active}\r\n activeHint={this.activeHint}\r\n callback={this.handleOptionClick}\r\n />\r\n </li>\r\n ))}\r\n </ul>\r\n {optionOrGroup.redirect && (\r\n <RedirectAnchor\r\n redirect={optionOrGroup.redirect}\r\n callback={this.handleRedirectClick}\r\n ></RedirectAnchor>\r\n )}\r\n </li>\r\n )) ||\r\n (\"placeholder\" in optionOrGroup && (\r\n <li class=\"group\">\r\n <p class=\"group-label\">{optionOrGroup.label}</p>\r\n <p class=\"placeholder\">{optionOrGroup.placeholder}</p>\r\n {optionOrGroup.redirect && (\r\n <RedirectAnchor\r\n redirect={optionOrGroup.redirect}\r\n callback={this.handleRedirectClick}\r\n ></RedirectAnchor>\r\n )}\r\n </li>\r\n )) || (\r\n <li>\r\n <OptionButton\r\n option={optionOrGroup}\r\n active={this.active}\r\n activeHint={this.activeHint}\r\n callback={this.handleOptionClick}\r\n />\r\n </li>\r\n ),\r\n )}\r\n </ul>\r\n </div>\r\n )}\r\n </>\r\n );\r\n }\r\n}\r\n\r\ninterface OptionButtonProps {\r\n option: AdvancedSelectOption<never>;\r\n active: AdvancedSelectOption<never> | undefined;\r\n activeHint: string | undefined;\r\n callback: (event: MouseEvent, value: AdvancedSelectOption<never>) => void;\r\n}\r\n\r\nconst OptionButton: FunctionalComponent<OptionButtonProps> = ({ option, active, activeHint, callback }) => (\r\n <button\r\n class={clsx([\"option\", { \"option-active\": active === option }])}\r\n type=\"button\"\r\n onClick={(e) => callback(e, option)}\r\n >\r\n <span class=\"option-label\">{option.label}</span>\r\n {!!activeHint && active === option && <span class=\"option-hint\">({activeHint})</span>}\r\n </button>\r\n);\r\n\r\ninterface RedirectAnchorProps {\r\n redirect: AdvancedSelectGroupRedirect;\r\n callback: (event: MouseEvent, value: AdvancedSelectGroupRedirect) => void;\r\n}\r\n\r\nconst RedirectAnchor: FunctionalComponent<RedirectAnchorProps> = ({ redirect, callback }) => (\r\n <a class=\"group-link\" href={redirect.href} onClick={(e) => callback(e, redirect)}>\r\n {redirect.label}\r\n <dso-icon icon=\"chevron-right\"></dso-icon>\r\n </a>\r\n);\r\n\r\ninterface ActiveGroupLabelProps {\r\n active: AdvancedSelectOption<never> | undefined;\r\n options: AdvancedSelectOptionOrGroup<never>[];\r\n}\r\n\r\nconst ActiveGroupLabel: FunctionalComponent<ActiveGroupLabelProps> = ({ active, options }) => {\r\n const group = options.find(\r\n (optionOrGroup): optionOrGroup is AdvancedSelectGroup<never> =>\r\n \"options\" in optionOrGroup &&\r\n !!optionOrGroup.options.find((option) => option === active) &&\r\n !!optionOrGroup.activeLabel,\r\n );\r\n\r\n return group ? (\r\n <dso-label compact status={group.variant}>\r\n {group.activeLabel}\r\n </dso-label>\r\n ) : undefined;\r\n};\r\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ import{r as s,c as t,h as i,F as e,a as o}from"./p-b623c74b.js";import{d as h}from"./p-9438a55c.js";import{v as n}from"./p-f5ff676c.js";function a(s){if(typeof s!=="string"){throw new TypeError("Expected a string")}return s.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}const r=".sc-dso-autosuggest-h{display:block;position:relative}.listbox-container.sc-dso-autosuggest{inset-inline:0;inset-block-start:100%;block-size:auto;max-block-size:var(--max-block-size);min-block-size:48px;overflow-y:auto;position:absolute;z-index:200}ul.sc-dso-autosuggest,.autosuggest-progress-box.sc-dso-autosuggest{background-clip:padding-box;background-color:#fff;border:1px solid rgba(0, 0, 0, 0.15);border-radius:4px;box-shadow:0 6px 12px rgba(0, 0, 0, 0.175);list-style-type:none;margin-block:0}.autosuggest-progress-box.sc-dso-autosuggest{padding-block:12px;padding-inline:8px}ul.sc-dso-autosuggest{padding-block:8px;padding-inline:0}ul.sc-dso-autosuggest li.sc-dso-autosuggest{padding-block:4px;padding-inline:16px}ul.sc-dso-autosuggest li.sc-dso-autosuggest .suggestion-row.sc-dso-autosuggest{display:flex;justify-content:space-between}li[aria-selected=true].sc-dso-autosuggest{cursor:pointer;background-color:#39870c}li[aria-selected=true].sc-dso-autosuggest,li[aria-selected=true].sc-dso-autosuggest .type.sc-dso-autosuggest,li[aria-selected=true].sc-dso-autosuggest .extra.sc-dso-autosuggest{color:#fff}mark.sc-dso-autosuggest{font-weight:700;background-color:inherit;color:inherit;padding:0}.type.sc-dso-autosuggest,.extra.sc-dso-autosuggest{color:#666}.type.sc-dso-autosuggest{text-align:end}.extra.sc-dso-autosuggest{font-size:14px;line-height:21px}.extra.sc-dso-autosuggest:not(:first-child){text-align:end}";const l=r;const u=10;const d=8;const c=1;const g=class{constructor(i){s(this,i);this.dsoSelect=t(this,"dsoSelect",7);this.dsoChange=t(this,"dsoChange",7);this.dsoSearch=t(this,"dsoSearch",7);this.listboxItems=[];this.listboxId=n();this.inputId=n();this.labelId=n();this.resizeObserver=new ResizeObserver(h((()=>this.setListboxContainerMaxBlockSize()),150));this.debouncedEmitValue=h((s=>{this.dsoChange.emit(s);this.debouncedShowLoading()}),200);this.debouncedShowLoading=h((()=>{if(this.inputValue){this.showLoading=true}}),this.loadingDelayed);this.inputValue="";this.onInput=s=>{if(!(s.target instanceof HTMLInputElement)){return}this.showLoading=!this.loadingDelayed;this.inputValue=s.target.value;this.debouncedEmitValue(s.target.value.match(/(\S+)/g)?s.target.value:"")};this.onFocusIn=()=>{if(this.suggestOnFocus){this.openSuggestions()}};this.onWindowResize=h((()=>this.setListboxContainerMaxBlockSize()),150);this.onScrollend=()=>this.setListboxContainerMaxBlockSize();this.onKeyDown=s=>{if(s.defaultPrevented||this.loading){return}switch(s.key){case"ArrowDown":if(!this.showSuggestions){this.openSuggestions("first")}else{this.selectNextSuggestion()}break;case"ArrowUp":if(!this.showSuggestions){this.openSuggestions("last")}else{this.selectPreviousSuggestion()}break;case"Tab":this.closeSuggestions();return;case"Escape":this.closeSuggestions();break;case"Enter":this.pickSelectedValue();break;default:return}s.preventDefault()};this.suggestions=null;this.loading=false;this.loadingLabel="Een moment geduld.";this.loadingDelayed=undefined;this.notFoundLabel=undefined;this.suggestOnFocus=false;this.mark=undefined;this.showSuggestions=false;this.selectedSuggestion=undefined;this.notFound=false;this.showLoading=false;this.listItemBlockSize=0;this.listboxContainerMaxBlockSize=0}suggestionsWatcher(){this.resetSelectedSuggestion();if((!this.showSuggestions||!this.notFound)&&this.inputValue){this.openSuggestions()}else if((this.showSuggestions||this.notFound)&&!this.inputValue){this.closeSuggestions()}}onDocumentClick(s){if((this.showSuggestions||this.notFound)&&this.listbox&&s.target instanceof Node&&!this.listbox.contains(s.target)&&this.input!==s.target){this.closeSuggestions()}}componentDidRender(){this.setListboxContainerMaxBlockSize()}connectedCallback(){setTimeout((()=>{const s=this.host.querySelector('input[type="text"]');if(!(s instanceof HTMLInputElement)){return}this.input=s;if(s.id){this.inputId=s.id}else{s.id=this.inputId}if(!this.input.labels||this.input.labels.length<1){return}const t=this.input.labels[0];if(t===null||t===void 0?void 0:t.id){this.labelId=t.id}else if(t){t.id=this.labelId}this.input.setAttribute("role","combobox");this.input.setAttribute("aria-haspopup","listbox");this.input.setAttribute("aria-expanded","false");this.input.setAttribute("autocomplete","off");this.input.setAttribute("aria-autocomplete","list");this.input.setAttribute("aria-activedescendant","");this.input.addEventListener("input",this.onInput);this.input.addEventListener("keydown",this.onKeyDown);this.input.addEventListener("focusin",this.onFocusIn);window.addEventListener("resize",this.onWindowResize);document.addEventListener("scrollend",this.onScrollend);this.resizeObserver.observe(this.host);this.setListboxContainerMaxBlockSize()}))}disconnectedCallback(){var s,t,i;(s=this.input)===null||s===void 0?void 0:s.removeEventListener("input",this.onInput);(t=this.input)===null||t===void 0?void 0:t.removeEventListener("keydown",this.onKeyDown);(i=this.input)===null||i===void 0?void 0:i.removeEventListener("focusin",this.onFocusIn);window.removeEventListener("resize",this.onWindowResize);document.removeEventListener("scrollend",this.onScrollend);this.resizeObserver.disconnect()}setListboxContainerMaxBlockSize(){if(!this.listboxContainer||!this.showSuggestions){return}if(this.listboxItems[0]&&this.showSuggestions){this.listItemBlockSize=this.listboxItems[0].getBoundingClientRect().height}const s=window.innerHeight-this.host.getBoundingClientRect().bottom;const t=this.listItemBlockSize*u+2*d+2*c;if(s>this.listItemBlockSize){if(s<t){this.listboxContainerMaxBlockSize=s-2*d}else{this.listboxContainerMaxBlockSize=t}}}showInputValueNotFound(s){var t,i;return this.processAutosuggestMarkItems(this.markTerms(s,(i=(t=this.input)===null||t===void 0?void 0:t.value.split(" ").filter((s=>s)))!==null&&i!==void 0?i:[]))}handleMark(s,t,i,e){var o,h;if(this.mark&&i){return this.processAutosuggestMarkItems(this.mark(s,t,i,e))}return this.processAutosuggestMarkItems(this.markTerms(t,(h=(o=this.input)===null||o===void 0?void 0:o.value.split(" ").filter((s=>s)))!==null&&h!==void 0?h:[]))}markTerms(s,t){if(!s||!t||t.length===0||t[0]===undefined){return[""]}const i=new RegExp(`(${a(t[0])})`,"gi");return s.split(i).reduce(((s,e)=>{if(!e){s.push(e)}else if(i.test(e)){s.push({mark:e})}else if(t.length===1){s.push(e)}else{s.push(...this.markTerms(e,t.slice(1)))}return s}),[])}processAutosuggestMarkItems(s){if(s.length===0){return[""]}return s.map((s=>{if(typeof s==="object"){return i("mark",null,s.mark)}return s}))}selectSuggestion(s){this.selectedSuggestion=s;this.setAriaActiveDescendant()}selectFirstSuggestion(){if(!this.suggestions){return}this.selectedSuggestion=this.suggestions[0];this.setAriaActiveDescendant(true)}selectLastSuggestion(){if(!this.suggestions){return}this.selectedSuggestion=this.suggestions[this.suggestions.length-1];this.setAriaActiveDescendant(true)}selectNextSuggestion(){var s;if(!this.suggestions){return}const t=this.selectedSuggestion?this.suggestions.indexOf(this.selectedSuggestion):-1;this.selectedSuggestion=(s=this.suggestions[t+1])!==null&&s!==void 0?s:this.suggestions[0];this.setAriaActiveDescendant(true)}selectPreviousSuggestion(){var s;if(!this.suggestions){return}const t=this.selectedSuggestion?this.suggestions.indexOf(this.selectedSuggestion):0;this.selectedSuggestion=(s=this.suggestions[t-1])!==null&&s!==void 0?s:this.suggestions[this.suggestions.length-1];this.setAriaActiveDescendant(true)}setAriaActiveDescendant(s=false){var t,i;if(this.selectedSuggestion){const e=this.listboxItemId(this.selectedSuggestion);(t=this.input)===null||t===void 0?void 0:t.setAttribute("aria-activedescendant",e);if(s){(i=document.getElementById(e))===null||i===void 0?void 0:i.scrollIntoView({block:"nearest"})}}}resetSelectedSuggestion(){var s;this.showLoading=!this.loadingDelayed;this.notFound=false;this.selectedSuggestion=undefined;(s=this.input)===null||s===void 0?void 0:s.setAttribute("aria-activedescendant","")}openSuggestions(s){var t,i,e,o;this.showSuggestions=(t=this.suggestions&&this.suggestions.length>0)!==null&&t!==void 0?t:false;this.notFound=(e=this.suggestions&&((i=this.suggestions)===null||i===void 0?void 0:i.length)===0)!==null&&e!==void 0?e:false;(o=this.input)===null||o===void 0?void 0:o.setAttribute("aria-expanded",(this.showSuggestions||this.notFound).toString());if(this.showSuggestions&&s==="first"){this.selectFirstSuggestion()}else if(this.showSuggestions&&s==="last"){this.selectLastSuggestion()}}closeSuggestions(){var s;this.showSuggestions=false;this.notFound=false;(s=this.input)===null||s===void 0?void 0:s.setAttribute("aria-expanded","false");this.selectFirstSuggestion()}pickSelectedValue(){var s;if(this.selectedSuggestion&&this.showSuggestions){this.dsoSelect.emit(this.selectedSuggestion)}else{this.dsoSearch.emit((s=this.input)===null||s===void 0?void 0:s.value)}this.closeSuggestions()}listboxItemId(s){if(!this.suggestions){return""}return`${this.inputId}-${this.suggestions.indexOf(s)+1}`}getChunkedExtras(s){return s.reduce(((s,t,i)=>{var e;const o=Math.floor(i/2);if(!s[o]){s[o]=[]}(e=s[o])===null||e===void 0?void 0:e.push(t);return s}),[])}render(){this.listboxItems=[];const s=this.showSuggestions||this.notFound;if(s&&this.input){this.input.setAttribute("aria-controls",this.listboxId)}else if(this.input){this.input.removeAttribute("aria-controls")}return i(e,null,i("slot",{key:"1585cf97f00dd15bb651fb51745f156bbbd75891"}),this.loading&&this.showLoading?i("div",{class:"autosuggest-progress-box"},i("dso-progress-indicator",{label:this.loadingLabel})):s&&i("dso-scrollable",{class:"listbox-container",ref:s=>this.listboxContainer=s,style:{"--max-block-size":`${this.listboxContainerMaxBlockSize}px`}},i("ul",{role:"listbox","aria-live":"polite",id:this.listboxId,"aria-labelledby":this.labelId,ref:s=>this.listbox=s},this.showSuggestions&&this.suggestions&&this.suggestions.map((s=>i("li",{role:"option",id:this.listboxItemId(s),key:s.value,onMouseEnter:()=>this.selectSuggestion(s),onMouseLeave:()=>this.resetSelectedSuggestion(),onClick:()=>this.pickSelectedValue(),"aria-selected":(s===this.selectedSuggestion).toString(),"aria-label":s.value,ref:s=>s&&this.listboxItems.push(s)},i("div",{class:"suggestion-row"},i("span",{class:"value"},this.handleMark(s,s.value,"value")),s.type?i("span",{class:"type"},this.handleMark(s,s.type,"type")):undefined),s.extras&&this.getChunkedExtras(s.extras).map(((t,e)=>i("div",{class:"suggestion-row"},t.map(((t,o)=>i("span",{class:"extra"},this.handleMark(s,t,"extra",e*2+o))))))))))||this.notFound&&i("li",null,i("span",{class:"value"},!this.notFoundLabel?this.showInputValueNotFound(`${this.inputValue} is niet gevonden.`):i("span",null,this.notFoundLabel))))))}get host(){return o(this)}static get watchers(){return{suggestions:["suggestionsWatcher"]}}};g.style=l;export{g as dso_autosuggest};
2
+ //# sourceMappingURL=p-f1b0fe14.entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["escapeStringRegexp","string","TypeError","replace","autosuggestCss","DsoAutosuggestStyle0","maxSuggestionsViewable","listboxPaddingBlock","listboxBorderWidth","Autosuggest","this","listboxItems","listboxId","v4","inputId","labelId","resizeObserver","ResizeObserver","debounce","setListboxContainerMaxBlockSize","debouncedEmitValue","value","dsoChange","emit","debouncedShowLoading","inputValue","showLoading","loadingDelayed","onInput","event","target","HTMLInputElement","match","onFocusIn","suggestOnFocus","openSuggestions","onWindowResize","onScrollend","onKeyDown","defaultPrevented","loading","key","showSuggestions","selectNextSuggestion","selectPreviousSuggestion","closeSuggestions","pickSelectedValue","preventDefault","suggestionsWatcher","resetSelectedSuggestion","notFound","onDocumentClick","listbox","Node","contains","input","componentDidRender","connectedCallback","setTimeout","host","querySelector","id","labels","length","label","setAttribute","addEventListener","window","document","observe","disconnectedCallback","_a","removeEventListener","_b","_c","disconnect","listboxContainer","listItemBlockSize","getBoundingClientRect","height","availableBlockSize","innerHeight","bottom","listboxMaxBlockSize","listboxContainerMaxBlockSize","showInputValueNotFound","text","processAutosuggestMarkItems","markTerms","split","filter","t","handleMark","suggestion","type","extraIndex","mark","suggestionValue","terms","undefined","termRegex","RegExp","reduce","total","valuePart","push","test","slice","items","map","item","h","selectSuggestion","selectedSuggestion","setAriaActiveDescendant","selectFirstSuggestion","suggestions","selectLastSuggestion","index","indexOf","scroll","listboxItemId","getElementById","scrollIntoView","block","_d","toString","dsoSelect","dsoSearch","getChunkedExtras","extras","resultArray","extra","chunkIndex","Math","floor","render","showListbox","removeAttribute","Fragment","class","loadingLabel","ref","element","style","role","onMouseEnter","onMouseLeave","onClick","li","chunk","c","i","notFoundLabel"],"sources":["../../node_modules/escape-string-regexp/index.js","src/components/autosuggest/autosuggest.scss?tag=dso-autosuggest&encapsulation=scoped","src/components/autosuggest/autosuggest.tsx"],"sourcesContent":["export default function escapeStringRegexp(string) {\n\tif (typeof string !== 'string') {\n\t\tthrow new TypeError('Expected a string');\n\t}\n\n\t// Escape characters with special meaning either inside or outside character sets.\n\t// Use a simple backslash escape when it’s always valid, and a `\\xnn` escape when the simpler form would be disallowed by Unicode patterns’ stricter grammar.\n\treturn string\n\t\t.replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&')\n\t\t.replace(/-/g, '\\\\x2d');\n}\n","@use \"~dso-toolkit/src/variables/units\";\r\n@use \"~dso-toolkit/src/variables/colors\";\r\n@use \"~dso-toolkit/src/variables/scaffolding\";\r\n@use \"~dso-toolkit/src/variables/typography\";\r\n@use \"~dso-toolkit/src/variables/zindex\";\r\n\r\n@use \"autosuggest.variables\" as core-autosuggest-variables;\r\n\r\n:host {\r\n display: block;\r\n position: relative;\r\n}\r\n\r\n.listbox-container {\r\n inset-inline: 0;\r\n inset-block-start: 100%;\r\n block-size: auto;\r\n max-block-size: var(--max-block-size);\r\n min-block-size: core-autosuggest-variables.$listbox-min-block-size;\r\n overflow-y: auto;\r\n position: absolute;\r\n z-index: zindex.$autosuggest;\r\n}\r\n\r\nul,\r\n.autosuggest-progress-box {\r\n background-clip: padding-box;\r\n background-color: core-autosuggest-variables.$background-color;\r\n border: core-autosuggest-variables.$listbox-border-width solid core-autosuggest-variables.$border-color;\r\n border-radius: scaffolding.$border-radius-base;\r\n box-shadow: core-autosuggest-variables.$box-shadow;\r\n list-style-type: none;\r\n margin-block: 0;\r\n}\r\n\r\n.autosuggest-progress-box {\r\n padding-block: units.$u1 * 1.5;\r\n padding-inline: units.$u1;\r\n}\r\n\r\nul {\r\n padding-block: core-autosuggest-variables.$listbox-padding-block;\r\n padding-inline: 0;\r\n\r\n li {\r\n padding-block: core-autosuggest-variables.$list-item-padding-block;\r\n padding-inline: units.$u2;\r\n\r\n .suggestion-row {\r\n display: flex;\r\n justify-content: space-between;\r\n }\r\n }\r\n}\r\n\r\nli[aria-selected=\"true\"] {\r\n cursor: pointer;\r\n background-color: colors.$grasgroen;\r\n\r\n &,\r\n .type,\r\n .extra {\r\n color: colors.$wit;\r\n }\r\n}\r\n\r\nmark {\r\n font-weight: 700;\r\n background-color: inherit;\r\n color: inherit;\r\n padding: 0;\r\n}\r\n\r\n.type,\r\n.extra {\r\n color: colors.$grijs-60;\r\n}\r\n\r\n.type {\r\n text-align: end;\r\n}\r\n\r\n.extra {\r\n font-size: typography.$root-font-size-small;\r\n line-height: typography.$root-font-size-small * typography.$line-height-base;\r\n\r\n &:not(:first-child) {\r\n text-align: end;\r\n }\r\n}\r\n","import { Component, Element, Event, EventEmitter, Fragment, h, Listen, Prop, State, VNode, Watch } from \"@stencil/core\";\r\nimport debounce from \"debounce\";\r\nimport { v4 } from \"uuid\";\r\nimport escapeStringRegexp from \"escape-string-regexp\";\r\n\r\nimport { AutosuggestMarkFunction, AutosuggestMarkItem, Suggestion } from \"./autosuggest.interfaces\";\r\n\r\nconst maxSuggestionsViewable = 10;\r\nconst listboxPaddingBlock = 8;\r\nconst listboxBorderWidth = 1;\r\n\r\n@Component({\r\n tag: \"dso-autosuggest\",\r\n styleUrl: \"autosuggest.scss\",\r\n scoped: true,\r\n})\r\nexport class Autosuggest {\r\n /**\r\n * The suggestions for the value of the slotted input element. Optionally a\r\n * Suggestion can have a `type` and `item`.\r\n *\r\n * The `type` is used to style the suggestion. `item` can be use to reference\r\n * the original object that was used to create the suggestion.\r\n *\r\n * The value should be null when no suggestions have been fetched.\r\n */\r\n @Prop()\r\n readonly suggestions: Suggestion[] | null = null;\r\n\r\n /**\r\n * Shows progress indicator when fetching results.\r\n */\r\n @Prop()\r\n loading = false;\r\n\r\n /**\r\n * To override progress indicator's default loading label.\r\n */\r\n @Prop()\r\n loadingLabel?: string = \"Een moment geduld.\";\r\n\r\n /**\r\n * To delay progress indicator showing (in ms).\r\n */\r\n @Prop()\r\n loadingDelayed?: number;\r\n\r\n /**\r\n * To show text when no results are found.\r\n */\r\n @Prop()\r\n notFoundLabel?: string;\r\n\r\n /**\r\n * Whether the previous suggestions will be presented when the input gets focus again.\r\n */\r\n @Prop()\r\n suggestOnFocus = false;\r\n\r\n /**\r\n * A function provided by the consumer of the autosuggest component, that returns an array of `AutosuggestMarkItem`s\r\n */\r\n @Prop()\r\n mark?: AutosuggestMarkFunction;\r\n\r\n /**\r\n * Emitted when a suggestion is selected.\r\n * The `detail` property of the `CustomEvent` will contain the selected suggestion.\r\n */\r\n @Event()\r\n dsoSelect!: EventEmitter<Suggestion>;\r\n\r\n /**\r\n * This is emitted debounced for every change for the slotted input type=text element.\r\n */\r\n @Event()\r\n dsoChange!: EventEmitter<string>;\r\n\r\n /**\r\n * Emitted when enter is pressed.\r\n * The `detail` property of the `CustomEvent` will contain the input text.\r\n */\r\n @Event()\r\n dsoSearch!: EventEmitter<string>;\r\n\r\n @Element()\r\n host!: HTMLDsoAutosuggestElement;\r\n\r\n @State()\r\n showSuggestions = false;\r\n\r\n @State()\r\n selectedSuggestion: Suggestion | undefined;\r\n\r\n @State()\r\n notFound = false;\r\n\r\n @State()\r\n showLoading = false;\r\n\r\n @State()\r\n listItemBlockSize = 0;\r\n\r\n @State()\r\n listboxContainerMaxBlockSize = 0;\r\n\r\n @Watch(\"suggestions\")\r\n suggestionsWatcher() {\r\n this.resetSelectedSuggestion();\r\n\r\n if ((!this.showSuggestions || !this.notFound) && this.inputValue) {\r\n this.openSuggestions();\r\n } else if ((this.showSuggestions || this.notFound) && !this.inputValue) {\r\n this.closeSuggestions();\r\n }\r\n }\r\n\r\n private input?: HTMLInputElement;\r\n\r\n private listboxContainer: HTMLDsoScrollableElement | undefined;\r\n\r\n private listbox: HTMLUListElement | undefined;\r\n\r\n private listboxItems: HTMLLIElement[] = [];\r\n\r\n private listboxId: string = v4();\r\n\r\n private inputId: string = v4();\r\n\r\n private labelId: string = v4();\r\n\r\n private resizeObserver = new ResizeObserver(debounce(() => this.setListboxContainerMaxBlockSize(), 150));\r\n\r\n private debouncedEmitValue = debounce((value: string) => {\r\n this.dsoChange.emit(value);\r\n this.debouncedShowLoading();\r\n }, 200);\r\n\r\n private debouncedShowLoading = debounce(() => {\r\n if (this.inputValue) {\r\n this.showLoading = true;\r\n }\r\n }, this.loadingDelayed);\r\n\r\n private inputValue = \"\";\r\n\r\n private onInput = (event: Event) => {\r\n if (!(event.target instanceof HTMLInputElement)) {\r\n return;\r\n // throw new Error(\"event.target is not instanceof HTMLInputElement\"); #2293\r\n }\r\n\r\n this.showLoading = !this.loadingDelayed;\r\n this.inputValue = event.target.value;\r\n this.debouncedEmitValue(event.target.value.match(/(\\S+)/g) ? event.target.value : \"\");\r\n };\r\n\r\n private onFocusIn = () => {\r\n if (this.suggestOnFocus) {\r\n this.openSuggestions();\r\n }\r\n };\r\n\r\n @Listen(\"click\", { target: \"document\" })\r\n onDocumentClick(event: MouseEvent) {\r\n if (\r\n (this.showSuggestions || this.notFound) &&\r\n this.listbox &&\r\n event.target instanceof Node &&\r\n !this.listbox.contains(event.target) &&\r\n this.input !== event.target\r\n ) {\r\n this.closeSuggestions();\r\n }\r\n }\r\n\r\n componentDidRender() {\r\n this.setListboxContainerMaxBlockSize();\r\n }\r\n\r\n connectedCallback() {\r\n setTimeout(() => {\r\n const input = this.host.querySelector('input[type=\"text\"]');\r\n if (!(input instanceof HTMLInputElement)) {\r\n return;\r\n // throw new ReferenceError(\"Mandatory text input not found\"); #2293\r\n }\r\n\r\n this.input = input;\r\n if (input.id) {\r\n this.inputId = input.id;\r\n } else {\r\n input.id = this.inputId;\r\n }\r\n\r\n if (!this.input.labels || this.input.labels.length < 1) {\r\n return;\r\n // throw new ReferenceError(\"Mandatory label for text input not found\"); #2293\r\n }\r\n\r\n const label = this.input.labels[0];\r\n if (label?.id) {\r\n this.labelId = label.id;\r\n } else if (label) {\r\n label.id = this.labelId;\r\n }\r\n\r\n this.input.setAttribute(\"role\", \"combobox\");\r\n this.input.setAttribute(\"aria-haspopup\", \"listbox\");\r\n this.input.setAttribute(\"aria-expanded\", \"false\");\r\n this.input.setAttribute(\"autocomplete\", \"off\");\r\n this.input.setAttribute(\"aria-autocomplete\", \"list\");\r\n this.input.setAttribute(\"aria-activedescendant\", \"\");\r\n this.input.addEventListener(\"input\", this.onInput);\r\n this.input.addEventListener(\"keydown\", this.onKeyDown);\r\n this.input.addEventListener(\"focusin\", this.onFocusIn);\r\n\r\n window.addEventListener(\"resize\", this.onWindowResize);\r\n\r\n document.addEventListener(\"scrollend\", this.onScrollend);\r\n\r\n this.resizeObserver.observe(this.host);\r\n\r\n this.setListboxContainerMaxBlockSize();\r\n });\r\n }\r\n\r\n disconnectedCallback() {\r\n this.input?.removeEventListener(\"input\", this.onInput);\r\n this.input?.removeEventListener(\"keydown\", this.onKeyDown);\r\n this.input?.removeEventListener(\"focusin\", this.onFocusIn);\r\n\r\n window.removeEventListener(\"resize\", this.onWindowResize);\r\n\r\n document.removeEventListener(\"scrollend\", this.onScrollend);\r\n\r\n this.resizeObserver.disconnect();\r\n }\r\n\r\n private onWindowResize = debounce(() => this.setListboxContainerMaxBlockSize(), 150);\r\n\r\n private onScrollend = () => this.setListboxContainerMaxBlockSize();\r\n\r\n private setListboxContainerMaxBlockSize(): void {\r\n if (!this.listboxContainer || !this.showSuggestions) {\r\n return;\r\n }\r\n\r\n if (this.listboxItems[0] && this.showSuggestions) {\r\n this.listItemBlockSize = this.listboxItems[0].getBoundingClientRect().height;\r\n }\r\n\r\n const availableBlockSize = window.innerHeight - this.host.getBoundingClientRect().bottom;\r\n const listboxMaxBlockSize =\r\n this.listItemBlockSize * maxSuggestionsViewable + 2 * listboxPaddingBlock + 2 * listboxBorderWidth;\r\n\r\n if (availableBlockSize > this.listItemBlockSize) {\r\n if (availableBlockSize < listboxMaxBlockSize) {\r\n this.listboxContainerMaxBlockSize = availableBlockSize - 2 * listboxPaddingBlock;\r\n } else {\r\n this.listboxContainerMaxBlockSize = listboxMaxBlockSize;\r\n }\r\n }\r\n }\r\n\r\n private showInputValueNotFound(text: string) {\r\n return this.processAutosuggestMarkItems(this.markTerms(text, this.input?.value.split(\" \").filter((t) => t) ?? []));\r\n }\r\n\r\n private handleMark(\r\n suggestion: Suggestion,\r\n text: string,\r\n type?: \"value\" | \"type\" | \"extra\",\r\n extraIndex?: number,\r\n ): (VNode | string)[] {\r\n if (this.mark && type) {\r\n return this.processAutosuggestMarkItems(this.mark(suggestion, text, type, extraIndex));\r\n }\r\n return this.processAutosuggestMarkItems(this.markTerms(text, this.input?.value.split(\" \").filter((t) => t) ?? []));\r\n }\r\n\r\n private markTerms(suggestionValue: string, terms: string[]): AutosuggestMarkItem[] {\r\n if (!suggestionValue || !terms || terms.length === 0 || terms[0] === undefined) {\r\n return [\"\"];\r\n }\r\n\r\n const termRegex = new RegExp(`(${escapeStringRegexp(terms[0])})`, \"gi\");\r\n\r\n return suggestionValue.split(termRegex).reduce((total: AutosuggestMarkItem[], valuePart: string) => {\r\n if (!valuePart) {\r\n total.push(valuePart);\r\n } else if (termRegex.test(valuePart)) {\r\n total.push({ mark: valuePart });\r\n } else if (terms.length === 1) {\r\n total.push(valuePart);\r\n } else {\r\n total.push(...this.markTerms(valuePart, terms.slice(1)));\r\n }\r\n\r\n return total;\r\n }, []);\r\n }\r\n\r\n private processAutosuggestMarkItems(items: AutosuggestMarkItem[]): (VNode | string)[] {\r\n if (items.length === 0) {\r\n return [\"\"];\r\n }\r\n\r\n return items.map((item) => {\r\n if (typeof item === \"object\") {\r\n return <mark>{item.mark}</mark>;\r\n }\r\n return item;\r\n });\r\n }\r\n\r\n private selectSuggestion(suggestion: Suggestion) {\r\n this.selectedSuggestion = suggestion;\r\n\r\n this.setAriaActiveDescendant();\r\n }\r\n\r\n private selectFirstSuggestion() {\r\n if (!this.suggestions) {\r\n return;\r\n }\r\n\r\n this.selectedSuggestion = this.suggestions[0];\r\n\r\n this.setAriaActiveDescendant(true);\r\n }\r\n\r\n private selectLastSuggestion() {\r\n if (!this.suggestions) {\r\n return;\r\n }\r\n\r\n this.selectedSuggestion = this.suggestions[this.suggestions.length - 1];\r\n\r\n this.setAriaActiveDescendant(true);\r\n }\r\n\r\n private selectNextSuggestion() {\r\n if (!this.suggestions) {\r\n return;\r\n }\r\n\r\n const index = this.selectedSuggestion ? this.suggestions.indexOf(this.selectedSuggestion) : -1;\r\n\r\n this.selectedSuggestion = this.suggestions[index + 1] ?? this.suggestions[0];\r\n\r\n this.setAriaActiveDescendant(true);\r\n }\r\n\r\n private selectPreviousSuggestion() {\r\n if (!this.suggestions) {\r\n return;\r\n }\r\n\r\n const index = this.selectedSuggestion ? this.suggestions.indexOf(this.selectedSuggestion) : 0;\r\n\r\n this.selectedSuggestion = this.suggestions[index - 1] ?? this.suggestions[this.suggestions.length - 1];\r\n\r\n this.setAriaActiveDescendant(true);\r\n }\r\n\r\n private setAriaActiveDescendant(scroll = false): void {\r\n if (this.selectedSuggestion) {\r\n const id = this.listboxItemId(this.selectedSuggestion);\r\n this.input?.setAttribute(\"aria-activedescendant\", id);\r\n if (scroll) {\r\n document.getElementById(id)?.scrollIntoView({ block: \"nearest\" });\r\n }\r\n }\r\n }\r\n\r\n private resetSelectedSuggestion() {\r\n this.showLoading = !this.loadingDelayed;\r\n this.notFound = false;\r\n this.selectedSuggestion = undefined;\r\n this.input?.setAttribute(\"aria-activedescendant\", \"\");\r\n }\r\n\r\n private openSuggestions(selectSuggestion?: \"first\" | \"last\") {\r\n this.showSuggestions = (this.suggestions && this.suggestions.length > 0) ?? false;\r\n this.notFound = (this.suggestions && this.suggestions?.length === 0) ?? false;\r\n this.input?.setAttribute(\"aria-expanded\", (this.showSuggestions || this.notFound).toString());\r\n\r\n if (this.showSuggestions && selectSuggestion === \"first\") {\r\n this.selectFirstSuggestion();\r\n } else if (this.showSuggestions && selectSuggestion === \"last\") {\r\n this.selectLastSuggestion();\r\n }\r\n }\r\n\r\n private closeSuggestions() {\r\n this.showSuggestions = false;\r\n this.notFound = false;\r\n this.input?.setAttribute(\"aria-expanded\", \"false\");\r\n this.selectFirstSuggestion();\r\n }\r\n\r\n private pickSelectedValue() {\r\n if (this.selectedSuggestion && this.showSuggestions) {\r\n this.dsoSelect.emit(this.selectedSuggestion);\r\n } else {\r\n this.dsoSearch.emit(this.input?.value);\r\n }\r\n\r\n this.closeSuggestions();\r\n }\r\n\r\n private onKeyDown = (event: KeyboardEvent) => {\r\n if (event.defaultPrevented || this.loading) {\r\n return;\r\n }\r\n\r\n switch (event.key) {\r\n case \"ArrowDown\":\r\n if (!this.showSuggestions) {\r\n this.openSuggestions(\"first\");\r\n } else {\r\n this.selectNextSuggestion();\r\n }\r\n\r\n break;\r\n\r\n case \"ArrowUp\":\r\n if (!this.showSuggestions) {\r\n this.openSuggestions(\"last\");\r\n } else {\r\n this.selectPreviousSuggestion();\r\n }\r\n\r\n break;\r\n\r\n case \"Tab\":\r\n this.closeSuggestions();\r\n return;\r\n\r\n case \"Escape\":\r\n this.closeSuggestions();\r\n break;\r\n\r\n case \"Enter\":\r\n this.pickSelectedValue();\r\n break;\r\n\r\n default:\r\n return;\r\n }\r\n\r\n event.preventDefault();\r\n };\r\n\r\n private listboxItemId(suggestion: Suggestion): string {\r\n if (!this.suggestions) {\r\n return \"\";\r\n }\r\n return `${this.inputId}-${this.suggestions.indexOf(suggestion) + 1}`;\r\n }\r\n\r\n private getChunkedExtras(extras: string[]): string[][] {\r\n return extras.reduce((resultArray: string[][], extra, index) => {\r\n const chunkIndex = Math.floor(index / 2);\r\n\r\n if (!resultArray[chunkIndex]) {\r\n resultArray[chunkIndex] = [];\r\n }\r\n resultArray[chunkIndex]?.push(extra);\r\n return resultArray;\r\n }, []);\r\n }\r\n\r\n render() {\r\n this.listboxItems = [];\r\n\r\n const showListbox = this.showSuggestions || this.notFound;\r\n\r\n if (showListbox && this.input) {\r\n this.input.setAttribute(\"aria-controls\", this.listboxId);\r\n } else if (this.input) {\r\n this.input.removeAttribute(\"aria-controls\");\r\n }\r\n\r\n return (\r\n <>\r\n <slot />\r\n {this.loading && this.showLoading ? (\r\n <div class=\"autosuggest-progress-box\">\r\n <dso-progress-indicator label={this.loadingLabel}></dso-progress-indicator>\r\n </div>\r\n ) : (\r\n showListbox && (\r\n <dso-scrollable\r\n class=\"listbox-container\"\r\n ref={(element) => (this.listboxContainer = element)}\r\n style={{ \"--max-block-size\": `${this.listboxContainerMaxBlockSize}px` }}\r\n >\r\n <ul\r\n role=\"listbox\"\r\n aria-live=\"polite\"\r\n id={this.listboxId}\r\n aria-labelledby={this.labelId}\r\n ref={(element) => (this.listbox = element)}\r\n >\r\n {(this.showSuggestions &&\r\n this.suggestions &&\r\n this.suggestions.map((suggestion) => (\r\n <li\r\n role=\"option\"\r\n id={this.listboxItemId(suggestion)}\r\n key={suggestion.value}\r\n onMouseEnter={() => this.selectSuggestion(suggestion)}\r\n onMouseLeave={() => this.resetSelectedSuggestion()}\r\n onClick={() => this.pickSelectedValue()}\r\n aria-selected={(suggestion === this.selectedSuggestion).toString()}\r\n aria-label={suggestion.value}\r\n ref={(li) => li && this.listboxItems.push(li)}\r\n >\r\n <div class=\"suggestion-row\">\r\n <span class=\"value\">{this.handleMark(suggestion, suggestion.value, \"value\")}</span>\r\n {suggestion.type ? (\r\n <span class=\"type\">{this.handleMark(suggestion, suggestion.type, \"type\")}</span>\r\n ) : undefined}\r\n </div>\r\n {suggestion.extras &&\r\n this.getChunkedExtras(suggestion.extras).map((chunk, index) => (\r\n <div class=\"suggestion-row\">\r\n {chunk.map((c, i) => (\r\n <span class=\"extra\">{this.handleMark(suggestion, c, \"extra\", index * 2 + i)}</span>\r\n ))}\r\n </div>\r\n ))}\r\n </li>\r\n ))) ||\r\n (this.notFound && (\r\n <li>\r\n <span class=\"value\">\r\n {!this.notFoundLabel ? (\r\n this.showInputValueNotFound(`${this.inputValue} is niet gevonden.`)\r\n ) : (\r\n <span>{this.notFoundLabel}</span>\r\n )}\r\n </span>\r\n </li>\r\n ))}\r\n </ul>\r\n </dso-scrollable>\r\n )\r\n )}\r\n </>\r\n );\r\n }\r\n}\r\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"file":"dso-action-list-item.entry.js","mappings":";;AAAA,MAAM,iBAAiB,GAAG,y6CAAy6C,CAAC;AACp8C,gCAAe,iBAAiB;;MCMnB,cAAc;;;;;wBAiBd,KAAK;uBAMN,KAAK;uBAML,KAAK;;IAEf,MAAM;QACJ,QACE,EAAC,IAAI,qDACH,KAAK,EAAE;gBACL,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,WAAW,EAAE,IAAI,CAAC,QAAQ;aAC3B,IAED,4DAAK,KAAK,EAAC,sBAAsB,IAC9B,IAAI,CAAC,OAAO,GAAG,gBAAU,IAAI,EAAC,gBAAgB,GAAY,GAAG,WAAK,KAAK,EAAC,kBAAkB,IAAE,IAAI,CAAC,IAAI,CAAO,EAC7G,4DAAK,KAAK,EAAC,0BAA0B,IAClC,IAAI,CAAC,SAAS,IAAI,6DAAK,IAAI,CAAC,SAAS,CAAM,EAC5C,8DAAQ,CACJ,CACF,CACD,EACP;KACH;;;;;;","names":[],"sources":["src/components/action-list/components/action-list-item.scss?tag=dso-action-list-item&encapsulation=shadow","src/components/action-list/components/action-list-item.tsx"],"sourcesContent":["@use \"~dso-toolkit/src/utilities\";\r\n@use \"~dso-toolkit/src/variables/colors\";\r\n@use \"~dso-toolkit/src/variables/units\";\r\n@use \"~dso-toolkit/src/variables/media-query-breakpoints\";\r\n@use \"~dso-toolkit/src/components/headings\";\r\n@use \"~dso-toolkit/src/components/step-counter\";\r\n@use \"~dso-toolkit/src/components/action-list/action-list.variables\" as action-list-variables;\r\n@use \"~dso-toolkit/src/components/action-list/components/action-list-item.variables\" as action-list-item-variables;\r\n\r\n@include utilities.box-sizing();\r\n\r\n:host {\r\n @include step-counter.step-counter();\r\n\r\n display: block;\r\n padding-block: action-list-item-variables.$padding-block;\r\n position: relative;\r\n}\r\n\r\n:host(.divider) {\r\n .dso-action-list-item {\r\n &::after {\r\n border-block-end: 0.25rem dashed colors.$lichtblauw;\r\n inset-block-end: 0;\r\n content: \"\";\r\n display: block;\r\n block-size: units.$u3;\r\n position: absolute;\r\n inset-inline-start: calc(action-list-variables.$content-indent - action-list-item-variables.$step-counter-margin);\r\n inline-size: calc(\r\n 100% - (action-list-variables.$content-indent - action-list-item-variables.$step-counter-margin)\r\n );\r\n\r\n @media screen and (min-width: media-query-breakpoints.$screen-xs-min) {\r\n inset-inline-start: action-list-variables.$content-indent;\r\n inline-size: calc(100% - action-list-variables.$content-indent);\r\n }\r\n }\r\n }\r\n}\r\n\r\nh3 {\r\n @include headings.base();\r\n @include headings.h3();\r\n\r\n margin-block-end: units.$u2;\r\n margin-block-start: 0;\r\n min-block-size: units.$u6;\r\n padding-block-start: 9px;\r\n}\r\n\r\n.dso-action-list-item {\r\n display: grid;\r\n grid-template-columns: calc(action-list-variables.$content-indent - action-list-item-variables.$step-counter-margin) 1fr;\r\n\r\n @media screen and (min-width: media-query-breakpoints.$screen-xs-min) {\r\n grid-template-columns: action-list-variables.$content-indent 1fr;\r\n }\r\n\r\n .dso-step-counter {\r\n position: unset;\r\n }\r\n\r\n .action-list-item-content {\r\n grid-column: 2 / 2;\r\n }\r\n}\r\n\r\ndso-icon {\r\n block-size: units.$u6;\r\n inline-size: units.$u6;\r\n}\r\n","import { h, Component, ComponentInterface, Host, Prop } from \"@stencil/core\";\r\n\r\n@Component({\r\n tag: \"dso-action-list-item\",\r\n styleUrl: \"action-list-item.scss\",\r\n shadow: true,\r\n})\r\nexport class ActionListItem implements ComponentInterface {\r\n /**\r\n * The step of the Action List Item.\r\n */\r\n @Prop()\r\n step!: number;\r\n\r\n /**\r\n * The title of the item.\r\n */\r\n @Prop()\r\n itemTitle?: string;\r\n\r\n /**\r\n * Show flow line to next step\r\n */\r\n @Prop()\r\n flowLine = false;\r\n\r\n /**\r\n * When there is a warning.\r\n */\r\n @Prop()\r\n warning = false;\r\n\r\n /**\r\n * Places a dashed line at the bottom of the item.\r\n */\r\n @Prop()\r\n divider = false;\r\n\r\n render() {\r\n return (\r\n <Host\r\n class={{\r\n divider: this.divider,\r\n \"flow-line\": this.flowLine,\r\n }}\r\n >\r\n <div class=\"dso-action-list-item\">\r\n {this.warning ? <dso-icon icon=\"status-warning\"></dso-icon> : <div class=\"dso-step-counter\">{this.step}</div>}\r\n <div class=\"action-list-item-content\">\r\n {this.itemTitle && <h3>{this.itemTitle}</h3>}\r\n <slot />\r\n </div>\r\n </div>\r\n </Host>\r\n );\r\n }\r\n}\r\n"],"version":3}
1
+ {"file":"dso-action-list-item.entry.js","mappings":";;AAAA,MAAM,iBAAiB,GAAG,y6CAAy6C,CAAC;AACp8C,gCAAe,iBAAiB;;MCMnB,cAAc;;;;;wBAiBd,KAAK;uBAMN,KAAK;uBAML,KAAK;;IAEf,MAAM;QACJ,QACE,EAAC,IAAI,qDACH,KAAK,EAAE;gBACL,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,WAAW,EAAE,IAAI,CAAC,QAAQ;aAC3B,IAED,4DAAK,KAAK,EAAC,sBAAsB,IAC9B,IAAI,CAAC,OAAO,GAAG,gBAAU,IAAI,EAAC,gBAAgB,GAAY,GAAG,WAAK,KAAK,EAAC,kBAAkB,IAAE,IAAI,CAAC,IAAI,CAAO,EAC7G,4DAAK,KAAK,EAAC,0BAA0B,IAClC,IAAI,CAAC,SAAS,IAAI,6DAAK,IAAI,CAAC,SAAS,CAAM,EAC5C,8DAAQ,CACJ,CACF,CACD,EACP;KACH;;;;;;","names":[],"sources":["src/components/action-list/components/action-list-item.scss?tag=dso-action-list-item&encapsulation=shadow","src/components/action-list/components/action-list-item.tsx"],"sourcesContent":["@use \"~dso-toolkit/src/utilities\";\r\n@use \"~dso-toolkit/src/variables/colors\";\r\n@use \"~dso-toolkit/src/variables/units\";\r\n@use \"~dso-toolkit/src/variables/media-query-breakpoints\";\r\n@use \"~dso-toolkit/src/components/heading\";\r\n@use \"~dso-toolkit/src/components/step-counter\";\r\n@use \"~dso-toolkit/src/components/action-list/action-list.variables\" as action-list-variables;\r\n@use \"~dso-toolkit/src/components/action-list/components/action-list-item.variables\" as action-list-item-variables;\r\n\r\n@include utilities.box-sizing();\r\n\r\n:host {\r\n @include step-counter.step-counter();\r\n\r\n display: block;\r\n padding-block: action-list-item-variables.$padding-block;\r\n position: relative;\r\n}\r\n\r\n:host(.divider) {\r\n .dso-action-list-item {\r\n &::after {\r\n border-block-end: 0.25rem dashed colors.$lichtblauw;\r\n inset-block-end: 0;\r\n content: \"\";\r\n display: block;\r\n block-size: units.$u3;\r\n position: absolute;\r\n inset-inline-start: calc(action-list-variables.$content-indent - action-list-item-variables.$step-counter-margin);\r\n inline-size: calc(\r\n 100% - (action-list-variables.$content-indent - action-list-item-variables.$step-counter-margin)\r\n );\r\n\r\n @media screen and (min-width: media-query-breakpoints.$screen-xs-min) {\r\n inset-inline-start: action-list-variables.$content-indent;\r\n inline-size: calc(100% - action-list-variables.$content-indent);\r\n }\r\n }\r\n }\r\n}\r\n\r\nh3 {\r\n @include heading.base();\r\n @include heading.h3();\r\n\r\n margin-block-end: units.$u2;\r\n margin-block-start: 0;\r\n min-block-size: units.$u6;\r\n padding-block-start: 9px;\r\n}\r\n\r\n.dso-action-list-item {\r\n display: grid;\r\n grid-template-columns: calc(action-list-variables.$content-indent - action-list-item-variables.$step-counter-margin) 1fr;\r\n\r\n @media screen and (min-width: media-query-breakpoints.$screen-xs-min) {\r\n grid-template-columns: action-list-variables.$content-indent 1fr;\r\n }\r\n\r\n .dso-step-counter {\r\n position: unset;\r\n }\r\n\r\n .action-list-item-content {\r\n grid-column: 2 / 2;\r\n }\r\n}\r\n\r\ndso-icon {\r\n block-size: units.$u6;\r\n inline-size: units.$u6;\r\n}\r\n","import { h, Component, ComponentInterface, Host, Prop } from \"@stencil/core\";\r\n\r\n@Component({\r\n tag: \"dso-action-list-item\",\r\n styleUrl: \"action-list-item.scss\",\r\n shadow: true,\r\n})\r\nexport class ActionListItem implements ComponentInterface {\r\n /**\r\n * The step of the Action List Item.\r\n */\r\n @Prop()\r\n step!: number;\r\n\r\n /**\r\n * The title of the item.\r\n */\r\n @Prop()\r\n itemTitle?: string;\r\n\r\n /**\r\n * Show flow line to next step\r\n */\r\n @Prop()\r\n flowLine = false;\r\n\r\n /**\r\n * When there is a warning.\r\n */\r\n @Prop()\r\n warning = false;\r\n\r\n /**\r\n * Places a dashed line at the bottom of the item.\r\n */\r\n @Prop()\r\n divider = false;\r\n\r\n render() {\r\n return (\r\n <Host\r\n class={{\r\n divider: this.divider,\r\n \"flow-line\": this.flowLine,\r\n }}\r\n >\r\n <div class=\"dso-action-list-item\">\r\n {this.warning ? <dso-icon icon=\"status-warning\"></dso-icon> : <div class=\"dso-step-counter\">{this.step}</div>}\r\n <div class=\"action-list-item-content\">\r\n {this.itemTitle && <h3>{this.itemTitle}</h3>}\r\n <slot />\r\n </div>\r\n </div>\r\n </Host>\r\n );\r\n }\r\n}\r\n"],"version":3}
@@ -1,6 +1,6 @@
1
1
  import { r as registerInstance, h, H as Host } from './index-1a8f2a10.js';
2
2
 
3
- const actionListCss = ":host{display:block;padding-block:16px;padding-inline:16px;--link-color:currentColor;--link-hover-color:currentColor;--link-visited-color:currentColor;background-color:#e1ecf7;border-color:#e1ecf7;color:#191919}@media screen and (min-width: 768px){:host{padding-inline-end:96px}}:host a:is(.download,.download:hover,.download:focus-visible){background-image:url(\"./dso-icons.svg#img-download-zwart\")}:host a:is(.extern,.extern:hover,.extern:focus-visible){background-image:url(\"./dso-icons.svg#img-external-link-zwart\")}:host a:is([href^=\"tel:\"],[href^=\"tel:\"]:hover,[href^=\"tel:\"]:focus-visible){background-image:url(\"./dso-icons.svg#img-call-zwart\")}:host a:is([href^=\"mailto:\"],[href^=\"mailto:\"]:hover,[href^=\"mailto:\"]:focus-visible){background-image:url(\"./dso-icons.svg#img-email-zwart\")}*,*::after,*::before{box-sizing:border-box}h2{color:#275937;color:#275937;font-size:1.25rem;font-weight:700;margin-block:0 16px}@media screen and (min-width: 480px){h2{font-size:1.5rem}}.dso-action-list-content{padding-inline-start:calc(2rem + 16px + 16px + 8px - 8px)}@media screen and (min-width: 480px){.dso-action-list-content{padding-inline-start:calc(2rem + 16px + 16px + 8px)}}";
3
+ const actionListCss = ":host{display:block;padding-block:16px;padding-inline:16px}@media screen and (min-width: 768px){:host{padding-inline-end:96px}}:host{--link-color:currentColor;--link-hover-color:currentColor;--link-visited-color:currentColor;background-color:#e1ecf7;border-color:#e1ecf7;color:#191919}:host a:is(.download,.download:hover,.download:focus-visible){background-image:url(\"./dso-icons.svg#img-download-zwart\")}:host a:is(.extern,.extern:hover,.extern:focus-visible){background-image:url(\"./dso-icons.svg#img-external-link-zwart\")}:host a:is([href^=\"tel:\"],[href^=\"tel:\"]:hover,[href^=\"tel:\"]:focus-visible){background-image:url(\"./dso-icons.svg#img-call-zwart\")}:host a:is([href^=\"mailto:\"],[href^=\"mailto:\"]:hover,[href^=\"mailto:\"]:focus-visible){background-image:url(\"./dso-icons.svg#img-email-zwart\")}*,*::after,*::before{box-sizing:border-box}h2{color:#275937;color:#275937;font-size:1.25rem;font-weight:700;margin-block:0 16px}@media screen and (min-width: 480px){h2{font-size:1.5rem}}.dso-action-list-content{padding-inline-start:calc(2rem + 16px + 16px + 8px - 8px)}@media screen and (min-width: 480px){.dso-action-list-content{padding-inline-start:calc(2rem + 16px + 16px + 8px)}}";
4
4
  const DsoActionListStyle0 = actionListCss;
5
5
 
6
6
  const ActionList = class {
@@ -1 +1 @@
1
- {"file":"dso-action-list.entry.js","mappings":";;AAAA,MAAM,aAAa,GAAG,grCAAgrC,CAAC;AACvsC,4BAAe,aAAa;;MCMf,UAAU;;;;;IAOrB,MAAM;QACJ,QACE,EAAC,IAAI,uDACH,6DAAK,IAAI,CAAC,SAAS,CAAM,EACzB,4DAAK,KAAK,EAAC,yBAAyB,IAClC,8DAAQ,CACJ,CACD,EACP;KACH;;;;;;","names":[],"sources":["src/components/action-list/action-list.scss?tag=dso-action-list&encapsulation=shadow","src/components/action-list/action-list.tsx"],"sourcesContent":["@use \"~dso-toolkit/src/utilities\";\r\n@use \"~dso-toolkit/src/variables/colors\";\r\n@use \"~dso-toolkit/src/variables/units\";\r\n@use \"~dso-toolkit/src/variables/media-query-breakpoints\";\r\n@use \"~dso-toolkit/src/components/headings\";\r\n@use \"~dso-toolkit/src/global/mixins/set-colors.mixin\" as set-colors;\r\n\r\n@use \"~dso-toolkit/src/components/action-list/action-list.variables\" as action-list-variables;\r\n@use \"~dso-toolkit/src/components/action-list/components/action-list-item.variables\" as action-list-item-variables;\r\n\r\n:host {\r\n display: block;\r\n padding-block: action-list-variables.$padding-block;\r\n padding-inline: units.$u2;\r\n\r\n @media screen and (min-width: media-query-breakpoints.$screen-sm-min) {\r\n padding-inline-end: units.$u12;\r\n }\r\n\r\n @include set-colors.apply(colors.$lichtblauw-20);\r\n}\r\n\r\n@include utilities.box-sizing();\r\n\r\nh2 {\r\n @include headings.base();\r\n @include headings.h2();\r\n\r\n margin-block: 0 units.$u2;\r\n}\r\n\r\n.dso-action-list-content {\r\n padding-inline-start: calc(action-list-variables.$content-indent - action-list-item-variables.$step-counter-margin);\r\n\r\n @media screen and (min-width: media-query-breakpoints.$screen-xs-min) {\r\n padding-inline-start: action-list-variables.$content-indent;\r\n }\r\n}\r\n","import { h, Component, Host, ComponentInterface, Prop } from \"@stencil/core\";\r\n\r\n@Component({\r\n tag: \"dso-action-list\",\r\n styleUrl: \"action-list.scss\",\r\n shadow: true,\r\n})\r\nexport class ActionList implements ComponentInterface {\r\n /**\r\n * The title.\r\n */\r\n @Prop()\r\n listTitle!: string;\r\n\r\n render() {\r\n return (\r\n <Host>\r\n <h2>{this.listTitle}</h2>\r\n <div class=\"dso-action-list-content\">\r\n <slot />\r\n </div>\r\n </Host>\r\n );\r\n }\r\n}\r\n"],"version":3}
1
+ {"file":"dso-action-list.entry.js","mappings":";;AAAA,MAAM,aAAa,GAAG,srCAAsrC,CAAC;AAC7sC,4BAAe,aAAa;;MCMf,UAAU;;;;;IAOrB,MAAM;QACJ,QACE,EAAC,IAAI,uDACH,6DAAK,IAAI,CAAC,SAAS,CAAM,EACzB,4DAAK,KAAK,EAAC,yBAAyB,IAClC,8DAAQ,CACJ,CACD,EACP;KACH;;;;;;","names":[],"sources":["src/components/action-list/action-list.scss?tag=dso-action-list&encapsulation=shadow","src/components/action-list/action-list.tsx"],"sourcesContent":["@use \"~dso-toolkit/src/utilities\";\r\n@use \"~dso-toolkit/src/variables/colors\";\r\n@use \"~dso-toolkit/src/variables/units\";\r\n@use \"~dso-toolkit/src/variables/media-query-breakpoints\";\r\n@use \"~dso-toolkit/src/components/heading\";\r\n@use \"~dso-toolkit/src/global/mixins/set-colors.mixin\" as set-colors;\r\n\r\n@use \"~dso-toolkit/src/components/action-list/action-list.variables\" as action-list-variables;\r\n@use \"~dso-toolkit/src/components/action-list/components/action-list-item.variables\" as action-list-item-variables;\r\n\r\n:host {\r\n display: block;\r\n padding-block: action-list-variables.$padding-block;\r\n padding-inline: units.$u2;\r\n\r\n @media screen and (min-width: media-query-breakpoints.$screen-sm-min) {\r\n padding-inline-end: units.$u12;\r\n }\r\n\r\n @include set-colors.apply(colors.$lichtblauw-20);\r\n}\r\n\r\n@include utilities.box-sizing();\r\n\r\nh2 {\r\n @include heading.base();\r\n @include heading.h2();\r\n\r\n margin-block: 0 units.$u2;\r\n}\r\n\r\n.dso-action-list-content {\r\n padding-inline-start: calc(action-list-variables.$content-indent - action-list-item-variables.$step-counter-margin);\r\n\r\n @media screen and (min-width: media-query-breakpoints.$screen-xs-min) {\r\n padding-inline-start: action-list-variables.$content-indent;\r\n }\r\n}\r\n","import { h, Component, Host, ComponentInterface, Prop } from \"@stencil/core\";\r\n\r\n@Component({\r\n tag: \"dso-action-list\",\r\n styleUrl: \"action-list.scss\",\r\n shadow: true,\r\n})\r\nexport class ActionList implements ComponentInterface {\r\n /**\r\n * The title.\r\n */\r\n @Prop()\r\n listTitle!: string;\r\n\r\n render() {\r\n return (\r\n <Host>\r\n <h2>{this.listTitle}</h2>\r\n <div class=\"dso-action-list-content\">\r\n <slot />\r\n </div>\r\n </Host>\r\n );\r\n }\r\n}\r\n"],"version":3}