@dso-toolkit/core 74.0.0 → 75.1.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 (827) hide show
  1. package/dist/bundle/dso-accordion-section.js +8 -8
  2. package/dist/bundle/dso-accordion-section.js.map +1 -1
  3. package/dist/bundle/dso-accordion.js +1 -1
  4. package/dist/bundle/dso-accordion.js.map +1 -1
  5. package/dist/bundle/dso-action-list-item.js +2 -2
  6. package/dist/bundle/dso-action-list-item.js.map +1 -1
  7. package/dist/bundle/dso-action-list.js +1 -1
  8. package/dist/bundle/dso-action-list.js.map +1 -1
  9. package/dist/bundle/dso-advanced-select.js +5 -5
  10. package/dist/bundle/dso-advanced-select.js.map +1 -1
  11. package/dist/bundle/dso-alert.js +1 -1
  12. package/dist/bundle/dso-annotation-activiteit.js +6 -6
  13. package/dist/bundle/dso-annotation-activiteit.js.map +1 -1
  14. package/dist/bundle/dso-annotation-gebiedsaanwijzing.js +6 -6
  15. package/dist/bundle/dso-annotation-gebiedsaanwijzing.js.map +1 -1
  16. package/dist/bundle/dso-annotation-kaart.js +4 -4
  17. package/dist/bundle/dso-annotation-kaart.js.map +1 -1
  18. package/dist/bundle/dso-annotation-locatie.js +1 -1
  19. package/dist/bundle/dso-annotation-omgevingsnormwaarde.js +6 -6
  20. package/dist/bundle/dso-annotation-omgevingsnormwaarde.js.map +1 -1
  21. package/dist/bundle/dso-attachments-counter.js +1 -1
  22. package/dist/bundle/dso-autosuggest.js +3 -3
  23. package/dist/bundle/dso-badge.js +1 -1
  24. package/dist/bundle/dso-banner.js +1 -1
  25. package/dist/bundle/dso-banner.js.map +1 -1
  26. package/dist/bundle/dso-card.js +2 -2
  27. package/dist/bundle/dso-card.js.map +1 -1
  28. package/dist/bundle/dso-contact-information.js +1 -1
  29. package/dist/bundle/dso-contact-information.js.map +1 -1
  30. package/dist/bundle/dso-date-picker-legacy.js +2 -2
  31. package/dist/bundle/dso-date-picker-legacy.js.map +1 -1
  32. package/dist/bundle/dso-date-picker.js +1 -1
  33. package/dist/bundle/dso-date-picker.js.map +1 -1
  34. package/dist/bundle/dso-document-card.js +2 -2
  35. package/dist/bundle/dso-document-card.js.map +1 -1
  36. package/dist/bundle/dso-document-component.js +1 -1
  37. package/dist/bundle/dso-expandable.js +1 -1
  38. package/dist/bundle/dso-header.js +2 -2
  39. package/dist/bundle/dso-header.js.map +1 -1
  40. package/dist/bundle/dso-highlight-box.js +1 -1
  41. package/dist/bundle/dso-highlight-box.js.map +1 -1
  42. package/dist/bundle/dso-icon.js +1 -1
  43. package/dist/bundle/dso-image-overlay.js +1 -1
  44. package/dist/bundle/dso-info-button.js +1 -1
  45. package/dist/bundle/dso-info.js +1 -1
  46. package/dist/bundle/dso-input-range.js +1 -1
  47. package/dist/bundle/dso-input-range.js.map +1 -1
  48. package/dist/bundle/dso-label.js +1 -1
  49. package/dist/bundle/dso-legend-item.js +16 -17
  50. package/dist/bundle/dso-legend-item.js.map +1 -1
  51. package/dist/bundle/dso-list-button.js +22 -4
  52. package/dist/bundle/dso-list-button.js.map +1 -1
  53. package/dist/bundle/dso-logo.js +1 -1
  54. package/dist/bundle/dso-map-base-layers.js +6 -6
  55. package/dist/bundle/dso-map-base-layers.js.map +1 -1
  56. package/dist/bundle/dso-map-controls.js +4 -4
  57. package/dist/bundle/dso-map-controls.js.map +1 -1
  58. package/dist/bundle/dso-map-overlays.js +6 -6
  59. package/dist/bundle/dso-map-overlays.js.map +1 -1
  60. package/dist/bundle/dso-mark-bar.js +3 -3
  61. package/dist/bundle/dso-mark-bar.js.map +1 -1
  62. package/dist/bundle/dso-modal.js +4 -4
  63. package/dist/bundle/dso-modal.js.map +1 -1
  64. package/dist/bundle/dso-onboarding-tip.js +3 -3
  65. package/dist/bundle/dso-onboarding-tip.js.map +1 -1
  66. package/dist/bundle/dso-ozon-content.js +1 -1
  67. package/dist/bundle/dso-pagination.js +3 -3
  68. package/dist/bundle/dso-pagination.js.map +1 -1
  69. package/dist/bundle/dso-panel.js +1 -1
  70. package/dist/bundle/dso-plekinfo-card.js +3 -3
  71. package/dist/bundle/dso-plekinfo-card.js.map +1 -1
  72. package/dist/bundle/dso-progress-bar.js +2 -2
  73. package/dist/bundle/dso-progress-bar.js.map +1 -1
  74. package/dist/bundle/dso-progress-indicator.js +1 -1
  75. package/dist/bundle/dso-project-item.js +5 -5
  76. package/dist/bundle/dso-project-item.js.map +1 -1
  77. package/dist/bundle/dso-renvooi.js +1 -1
  78. package/dist/bundle/dso-responsive-element.js +1 -1
  79. package/dist/bundle/dso-scrollable.js +1 -1
  80. package/dist/bundle/dso-selectable.js +1 -1
  81. package/dist/bundle/dso-skiplink.js +3 -3
  82. package/dist/bundle/dso-skiplink.js.map +1 -1
  83. package/dist/bundle/dso-slide-toggle.js +1 -1
  84. package/dist/bundle/dso-survey-rating.js +5 -5
  85. package/dist/bundle/dso-survey-rating.js.map +1 -1
  86. package/dist/bundle/dso-tab.js +1 -1
  87. package/dist/bundle/dso-tab.js.map +1 -1
  88. package/dist/bundle/dso-table.js +1 -1
  89. package/dist/bundle/dso-tabs.js +2 -2
  90. package/dist/bundle/dso-tabs.js.map +1 -1
  91. package/dist/bundle/dso-toggletip.js +1 -1
  92. package/dist/bundle/dso-tooltip.js +1 -1
  93. package/dist/bundle/dso-tree-view.js +4 -4
  94. package/dist/bundle/dso-tree-view.js.map +1 -1
  95. package/dist/bundle/dso-viewer-grid.js +2 -2
  96. package/dist/bundle/dso-viewer-grid.js.map +1 -1
  97. package/dist/bundle/dsot-document-component-demo.js +14 -14
  98. package/dist/bundle/p-0OxrSmuX.js +36 -0
  99. package/dist/bundle/{p-CwXjPr2h.js.map → p-0OxrSmuX.js.map} +1 -1
  100. package/dist/bundle/p-57gCBWwP.js +115 -0
  101. package/dist/bundle/{p-BtcZ9oZ6.js.map → p-57gCBWwP.js.map} +1 -1
  102. package/dist/bundle/{p-WYm6cxra.js → p-Aoa5eJNp.js} +4 -4
  103. package/dist/bundle/{p-WYm6cxra.js.map → p-Aoa5eJNp.js.map} +1 -1
  104. package/dist/bundle/p-B0a0s4C8.js +122 -0
  105. package/dist/bundle/p-B0a0s4C8.js.map +1 -0
  106. package/dist/bundle/p-BAOb4Icr.js +1188 -0
  107. package/dist/bundle/p-BAOb4Icr.js.map +1 -0
  108. package/dist/bundle/{p-CZ2ipzNO.js → p-BX-MTpLY.js} +4 -4
  109. package/dist/bundle/{p-CZ2ipzNO.js.map → p-BX-MTpLY.js.map} +1 -1
  110. package/dist/bundle/{p-D2nuXSd0.js → p-BpUdPxfZ.js} +9 -4
  111. package/dist/bundle/p-BpUdPxfZ.js.map +1 -0
  112. package/dist/bundle/p-BvIWF0ZG.js +80 -0
  113. package/dist/bundle/{p-CkBk3gL8.js.map → p-BvIWF0ZG.js.map} +1 -1
  114. package/dist/bundle/{p-0JGmXD8O.js → p-C1QiwjOR.js} +5 -5
  115. package/dist/bundle/{p-0JGmXD8O.js.map → p-C1QiwjOR.js.map} +1 -1
  116. package/dist/bundle/{p-DcpG4jOU.js → p-CCkZUAjN.js} +7 -7
  117. package/dist/bundle/{p-DcpG4jOU.js.map → p-CCkZUAjN.js.map} +1 -1
  118. package/dist/bundle/{p-PMqbDJmA.js → p-CRZudroy.js} +4 -4
  119. package/dist/bundle/{p-PMqbDJmA.js.map → p-CRZudroy.js.map} +1 -1
  120. package/dist/bundle/{p-BdyXpl60.js → p-CTLPOSaJ.js} +3 -3
  121. package/dist/bundle/{p-BdyXpl60.js.map → p-CTLPOSaJ.js.map} +1 -1
  122. package/dist/bundle/{p-kDtv6DeD.js → p-CTntGBuq.js} +4 -4
  123. package/dist/bundle/{p-kDtv6DeD.js.map → p-CTntGBuq.js.map} +1 -1
  124. package/dist/bundle/{p-C_CoF0aB.js → p-CWKjZDtY.js} +5 -5
  125. package/dist/bundle/{p-C_CoF0aB.js.map → p-CWKjZDtY.js.map} +1 -1
  126. package/dist/bundle/{p-dB3K6tfb.js → p-Cg1tXclp.js} +4 -4
  127. package/dist/bundle/{p-dB3K6tfb.js.map → p-Cg1tXclp.js.map} +1 -1
  128. package/dist/bundle/p-D0Ir0GXP.js +145 -0
  129. package/dist/bundle/{p-Cng7insW.js.map → p-D0Ir0GXP.js.map} +1 -1
  130. package/dist/bundle/p-DBE1IrEJ.js +43 -0
  131. package/dist/bundle/{p-C1tscMvU.js.map → p-DBE1IrEJ.js.map} +1 -1
  132. package/dist/bundle/{p-DGWbWwct.js → p-DD69Irdl.js} +5 -5
  133. package/dist/bundle/{p-DGWbWwct.js.map → p-DD69Irdl.js.map} +1 -1
  134. package/dist/bundle/p-DbfxMDmf.js +259 -0
  135. package/dist/bundle/p-DbfxMDmf.js.map +1 -0
  136. package/dist/bundle/{p-CvGnEQcm.js → p-DkmiPgP0.js} +3 -3
  137. package/dist/bundle/p-DkmiPgP0.js.map +1 -0
  138. package/dist/bundle/{p-DrR9RuIM.js → p-Dxegur3q.js} +3 -3
  139. package/dist/bundle/{p-DrR9RuIM.js.map → p-Dxegur3q.js.map} +1 -1
  140. package/dist/bundle/p-QFeeViSZ.js +63 -0
  141. package/dist/bundle/{p-xNnEBBZG.js.map → p-QFeeViSZ.js.map} +1 -1
  142. package/dist/cjs/dso-accordion-section.cjs.entry.js +1 -1
  143. package/dist/cjs/dso-accordion-section.cjs.entry.js.map +1 -1
  144. package/dist/cjs/dso-accordion-section.entry.cjs.js.map +1 -1
  145. package/dist/cjs/dso-accordion.cjs.entry.js +1 -1
  146. package/dist/cjs/dso-accordion.cjs.entry.js.map +1 -1
  147. package/dist/cjs/dso-accordion.entry.cjs.js.map +1 -1
  148. package/dist/cjs/dso-action-list-item.cjs.entry.js +1 -1
  149. package/dist/cjs/dso-action-list-item.cjs.entry.js.map +1 -1
  150. package/dist/cjs/dso-action-list-item.entry.cjs.js.map +1 -1
  151. package/dist/cjs/dso-action-list.cjs.entry.js +1 -1
  152. package/dist/cjs/dso-action-list.cjs.entry.js.map +1 -1
  153. package/dist/cjs/dso-action-list.entry.cjs.js.map +1 -1
  154. package/dist/cjs/dso-advanced-select.cjs.entry.js +1 -1
  155. package/dist/cjs/dso-advanced-select.cjs.entry.js.map +1 -1
  156. package/dist/cjs/dso-advanced-select.entry.cjs.js.map +1 -1
  157. package/dist/cjs/dso-alert.dso-badge.dso-image-overlay.dso-ozon-content.dso-panel.dso-table.entry.cjs.js.map +1 -1
  158. package/dist/cjs/dso-alert_6.cjs.entry.js +48 -22
  159. package/dist/cjs/dso-alert_6.cjs.entry.js.map +1 -1
  160. package/dist/cjs/dso-annotation-activiteit.cjs.entry.js +1 -1
  161. package/dist/cjs/dso-annotation-activiteit.cjs.entry.js.map +1 -1
  162. package/dist/cjs/dso-annotation-activiteit.entry.cjs.js.map +1 -1
  163. package/dist/cjs/dso-annotation-gebiedsaanwijzing.cjs.entry.js +1 -1
  164. package/dist/cjs/dso-annotation-gebiedsaanwijzing.cjs.entry.js.map +1 -1
  165. package/dist/cjs/dso-annotation-gebiedsaanwijzing.entry.cjs.js.map +1 -1
  166. package/dist/cjs/dso-annotation-kaart.cjs.entry.js +1 -1
  167. package/dist/cjs/dso-annotation-kaart.cjs.entry.js.map +1 -1
  168. package/dist/cjs/dso-annotation-kaart.entry.cjs.js.map +1 -1
  169. package/dist/cjs/dso-annotation-locatie.dso-document-component.entry.cjs.js.map +1 -1
  170. package/dist/cjs/dso-annotation-locatie_2.cjs.entry.js +9 -3
  171. package/dist/cjs/dso-annotation-locatie_2.cjs.entry.js.map +1 -1
  172. package/dist/cjs/dso-annotation-omgevingsnormwaarde.cjs.entry.js +1 -1
  173. package/dist/cjs/dso-annotation-omgevingsnormwaarde.cjs.entry.js.map +1 -1
  174. package/dist/cjs/dso-annotation-omgevingsnormwaarde.entry.cjs.js.map +1 -1
  175. package/dist/cjs/dso-attachments-counter.dso-expandable.entry.cjs.js.map +1 -1
  176. package/dist/cjs/dso-attachments-counter_2.cjs.entry.js +2 -2
  177. package/dist/cjs/dso-attachments-counter_2.cjs.entry.js.map +1 -1
  178. package/dist/cjs/dso-banner.cjs.entry.js +1 -1
  179. package/dist/cjs/dso-banner.cjs.entry.js.map +1 -1
  180. package/dist/cjs/dso-banner.entry.cjs.js.map +1 -1
  181. package/dist/cjs/dso-card.cjs.entry.js +1 -1
  182. package/dist/cjs/dso-card.cjs.entry.js.map +1 -1
  183. package/dist/cjs/dso-card.entry.cjs.js.map +1 -1
  184. package/dist/cjs/dso-contact-information.cjs.entry.js +1 -1
  185. package/dist/cjs/dso-contact-information.cjs.entry.js.map +1 -1
  186. package/dist/cjs/dso-contact-information.entry.cjs.js.map +1 -1
  187. package/dist/cjs/dso-date-picker-legacy.cjs.entry.js +1 -1
  188. package/dist/cjs/dso-date-picker-legacy.cjs.entry.js.map +1 -1
  189. package/dist/cjs/dso-date-picker-legacy.entry.cjs.js.map +1 -1
  190. package/dist/cjs/dso-date-picker.cjs.entry.js +1 -1
  191. package/dist/cjs/dso-date-picker.cjs.entry.js.map +1 -1
  192. package/dist/cjs/dso-date-picker.entry.cjs.js.map +1 -1
  193. package/dist/cjs/dso-document-card.cjs.entry.js +1 -1
  194. package/dist/cjs/dso-document-card.cjs.entry.js.map +1 -1
  195. package/dist/cjs/dso-document-card.entry.cjs.js.map +1 -1
  196. package/dist/cjs/dso-header.cjs.entry.js +1 -1
  197. package/dist/cjs/dso-header.cjs.entry.js.map +1 -1
  198. package/dist/cjs/dso-header.entry.cjs.js.map +1 -1
  199. package/dist/cjs/dso-highlight-box.cjs.entry.js +1 -1
  200. package/dist/cjs/dso-highlight-box.cjs.entry.js.map +1 -1
  201. package/dist/cjs/dso-highlight-box.entry.cjs.js.map +1 -1
  202. package/dist/cjs/dso-icon.cjs.entry.js +7 -2
  203. package/dist/cjs/dso-icon.cjs.entry.js.map +1 -1
  204. package/dist/cjs/dso-icon.entry.cjs.js.map +1 -1
  205. package/dist/cjs/dso-info-button.cjs.entry.js +1 -1
  206. package/dist/cjs/dso-info-button.cjs.entry.js.map +1 -1
  207. package/dist/cjs/dso-info-button.entry.cjs.js.map +1 -1
  208. package/dist/cjs/dso-info.dso-selectable.entry.cjs.js.map +1 -1
  209. package/dist/cjs/dso-info_2.cjs.entry.js +3 -5
  210. package/dist/cjs/dso-info_2.cjs.entry.js.map +1 -1
  211. package/dist/cjs/dso-input-range.cjs.entry.js +1 -1
  212. package/dist/cjs/dso-input-range.cjs.entry.js.map +1 -1
  213. package/dist/cjs/dso-input-range.entry.cjs.js.map +1 -1
  214. package/dist/cjs/dso-label.dso-renvooi.dso-slide-toggle.entry.cjs.js.map +1 -1
  215. package/dist/cjs/dso-label_3.cjs.entry.js +4 -4
  216. package/dist/cjs/dso-label_3.cjs.entry.js.map +1 -1
  217. package/dist/cjs/dso-legend-item.cjs.entry.js +3 -10
  218. package/dist/cjs/dso-legend-item.cjs.entry.js.map +1 -1
  219. package/dist/cjs/dso-legend-item.entry.cjs.js.map +1 -1
  220. package/dist/cjs/dso-list-button.cjs.entry.js +2 -2
  221. package/dist/cjs/dso-list-button.cjs.entry.js.map +1 -1
  222. package/dist/cjs/dso-list-button.entry.cjs.js.map +1 -1
  223. package/dist/cjs/dso-logo.cjs.entry.js +1 -1
  224. package/dist/cjs/dso-map-base-layers.cjs.entry.js +2 -2
  225. package/dist/cjs/dso-map-base-layers.cjs.entry.js.map +1 -1
  226. package/dist/cjs/dso-map-base-layers.entry.cjs.js.map +1 -1
  227. package/dist/cjs/dso-map-controls.cjs.entry.js +2 -2
  228. package/dist/cjs/dso-map-controls.cjs.entry.js.map +1 -1
  229. package/dist/cjs/dso-map-controls.entry.cjs.js.map +1 -1
  230. package/dist/cjs/dso-map-overlays.cjs.entry.js +2 -2
  231. package/dist/cjs/dso-map-overlays.cjs.entry.js.map +1 -1
  232. package/dist/cjs/dso-map-overlays.entry.cjs.js.map +1 -1
  233. package/dist/cjs/dso-mark-bar.cjs.entry.js +2 -2
  234. package/dist/cjs/dso-mark-bar.cjs.entry.js.map +1 -1
  235. package/dist/cjs/dso-mark-bar.entry.cjs.js.map +1 -1
  236. package/dist/cjs/dso-modal.cjs.entry.js +2 -2
  237. package/dist/cjs/dso-modal.cjs.entry.js.map +1 -1
  238. package/dist/cjs/dso-modal.entry.cjs.js.map +1 -1
  239. package/dist/cjs/dso-onboarding-tip.cjs.entry.js +2 -2
  240. package/dist/cjs/dso-onboarding-tip.cjs.entry.js.map +1 -1
  241. package/dist/cjs/dso-onboarding-tip.entry.cjs.js.map +1 -1
  242. package/dist/cjs/dso-pagination.cjs.entry.js +1 -1
  243. package/dist/cjs/dso-pagination.cjs.entry.js.map +1 -1
  244. package/dist/cjs/dso-pagination.entry.cjs.js.map +1 -1
  245. package/dist/cjs/dso-plekinfo-card.cjs.entry.js +2 -2
  246. package/dist/cjs/dso-plekinfo-card.cjs.entry.js.map +1 -1
  247. package/dist/cjs/dso-plekinfo-card.entry.cjs.js.map +1 -1
  248. package/dist/cjs/dso-progress-bar.cjs.entry.js +2 -2
  249. package/dist/cjs/dso-progress-bar.cjs.entry.js.map +1 -1
  250. package/dist/cjs/dso-progress-bar.entry.cjs.js.map +1 -1
  251. package/dist/cjs/dso-progress-indicator.cjs.entry.js +2 -2
  252. package/dist/cjs/dso-progress-indicator.cjs.entry.js.map +1 -1
  253. package/dist/cjs/dso-progress-indicator.entry.cjs.js.map +1 -1
  254. package/dist/cjs/dso-project-item.cjs.entry.js +2 -2
  255. package/dist/cjs/dso-project-item.cjs.entry.js.map +1 -1
  256. package/dist/cjs/dso-project-item.entry.cjs.js.map +1 -1
  257. package/dist/cjs/dso-responsive-element.cjs.entry.js +1 -1
  258. package/dist/cjs/dso-scrollable.cjs.entry.js +3 -3
  259. package/dist/cjs/dso-scrollable.cjs.entry.js.map +1 -1
  260. package/dist/cjs/dso-scrollable.entry.cjs.js.map +1 -1
  261. package/dist/cjs/dso-skiplink.cjs.entry.js +2 -2
  262. package/dist/cjs/dso-skiplink.cjs.entry.js.map +1 -1
  263. package/dist/cjs/dso-skiplink.entry.cjs.js.map +1 -1
  264. package/dist/cjs/dso-survey-rating.cjs.entry.js +3 -3
  265. package/dist/cjs/dso-survey-rating.cjs.entry.js.map +1 -1
  266. package/dist/cjs/dso-survey-rating.entry.cjs.js.map +1 -1
  267. package/dist/cjs/dso-tab.cjs.entry.js +1 -1
  268. package/dist/cjs/dso-tab.cjs.entry.js.map +1 -1
  269. package/dist/cjs/dso-tab.entry.cjs.js.map +1 -1
  270. package/dist/cjs/dso-tabs.cjs.entry.js +2 -2
  271. package/dist/cjs/dso-tabs.cjs.entry.js.map +1 -1
  272. package/dist/cjs/dso-tabs.entry.cjs.js.map +1 -1
  273. package/dist/cjs/dso-toggletip.cjs.entry.js +2 -2
  274. package/dist/cjs/dso-toggletip.cjs.entry.js.map +1 -1
  275. package/dist/cjs/dso-toggletip.entry.cjs.js.map +1 -1
  276. package/dist/cjs/dso-toolkit.cjs.js +1 -1
  277. package/dist/cjs/dso-tooltip.cjs.entry.js +2 -2
  278. package/dist/cjs/dso-tooltip.cjs.entry.js.map +1 -1
  279. package/dist/cjs/dso-tooltip.entry.cjs.js.map +1 -1
  280. package/dist/cjs/dso-tree-view.cjs.entry.js +2 -2
  281. package/dist/cjs/dso-tree-view.cjs.entry.js.map +1 -1
  282. package/dist/cjs/dso-tree-view.entry.cjs.js.map +1 -1
  283. package/dist/cjs/dso-viewer-grid.cjs.entry.js +2 -2
  284. package/dist/cjs/dso-viewer-grid.cjs.entry.js.map +1 -1
  285. package/dist/cjs/dso-viewer-grid.entry.cjs.js.map +1 -1
  286. package/dist/cjs/loader.cjs.js +1 -1
  287. package/dist/collection/components/accordion/accordion.css +15 -0
  288. package/dist/collection/components/accordion/components/accordion-section.css +17 -2
  289. package/dist/collection/components/action-list/action-list.css +15 -0
  290. package/dist/collection/components/action-list/components/action-list-item.css +15 -0
  291. package/dist/collection/components/advanced-select/advanced-select.css +15 -0
  292. package/dist/collection/components/alert/alert.css +15 -0
  293. package/dist/collection/components/annotation/annotation.css +15 -0
  294. package/dist/collection/components/attachments-counter/attachments-counter.css +15 -0
  295. package/dist/collection/components/badge/badge.css +15 -0
  296. package/dist/collection/components/banner/banner.css +15 -0
  297. package/dist/collection/components/card/card.css +19 -0
  298. package/dist/collection/components/contact-information/contact-information.css +15 -0
  299. package/dist/collection/components/date-picker/date-picker.css +15 -0
  300. package/dist/collection/components/date-picker-legacy/date-picker-legacy.css +15 -0
  301. package/dist/collection/components/document-card/document-card.css +15 -0
  302. package/dist/collection/components/document-component/document-component-heading.js.map +1 -1
  303. package/dist/collection/components/document-component/document-component.css +32 -12
  304. package/dist/collection/components/document-component/document-component.js +7 -1
  305. package/dist/collection/components/document-component/document-component.js.map +1 -1
  306. package/dist/collection/components/expandable/expandable.css +19 -2
  307. package/dist/collection/components/header/header.css +17 -4
  308. package/dist/collection/components/highlight-box/highlight-box.css +15 -0
  309. package/dist/collection/components/icon/icon.css +15 -0
  310. package/dist/collection/components/icon/icon.js +3 -1
  311. package/dist/collection/components/icon/icon.js.map +1 -1
  312. package/dist/collection/components/image-overlay/image-overlay.css +15 -0
  313. package/dist/collection/components/info/info.css +15 -0
  314. package/dist/collection/components/info-button/info-button.css +15 -0
  315. package/dist/collection/components/input-range/input-range.css +15 -0
  316. package/dist/collection/components/label/label.css +17 -2
  317. package/dist/collection/components/legend-item/legend-item.css +42 -23
  318. package/dist/collection/components/legend-item/legend-item.interfaces.js.map +1 -1
  319. package/dist/collection/components/legend-item/legend-item.js +14 -21
  320. package/dist/collection/components/legend-item/legend-item.js.map +1 -1
  321. package/dist/collection/components/list-button/list-button.css +21 -132
  322. package/dist/collection/components/list-button/list-button.js +1 -1
  323. package/dist/collection/components/list-button/list-button.js.map +1 -1
  324. package/dist/collection/components/logo/logo.js +1 -1
  325. package/dist/collection/components/map-base-layers/map-base-layers.css +15 -0
  326. package/dist/collection/components/map-base-layers/map-base-layers.js +1 -1
  327. package/dist/collection/components/map-controls/map-controls.css +15 -0
  328. package/dist/collection/components/map-controls/map-controls.js +1 -1
  329. package/dist/collection/components/map-overlays/map-overlays.css +15 -0
  330. package/dist/collection/components/map-overlays/map-overlays.js +1 -1
  331. package/dist/collection/components/mark-bar/mark-bar.css +15 -0
  332. package/dist/collection/components/mark-bar/mark-bar.js +1 -1
  333. package/dist/collection/components/modal/modal.css +15 -0
  334. package/dist/collection/components/modal/modal.js +1 -1
  335. package/dist/collection/components/onboarding-tip/onboarding-tip.css +15 -0
  336. package/dist/collection/components/onboarding-tip/onboarding-tip.js +1 -1
  337. package/dist/collection/components/ozon-content/nodes/kop.node.js +28 -11
  338. package/dist/collection/components/ozon-content/nodes/kop.node.js.map +1 -1
  339. package/dist/collection/components/ozon-content/ozon-content-context.interface.js.map +1 -1
  340. package/dist/collection/components/ozon-content/ozon-content-mapper.js +1 -0
  341. package/dist/collection/components/ozon-content/ozon-content-mapper.js.map +1 -1
  342. package/dist/collection/components/ozon-content/ozon-content-node-context.interface.js.map +1 -1
  343. package/dist/collection/components/ozon-content/ozon-content.css +90 -0
  344. package/dist/collection/components/ozon-content/ozon-content.interfaces.js.map +1 -1
  345. package/dist/collection/components/ozon-content/ozon-content.js +24 -2
  346. package/dist/collection/components/ozon-content/ozon-content.js.map +1 -1
  347. package/dist/collection/components/pagination/pagination.css +15 -0
  348. package/dist/collection/components/panel/panel.css +15 -0
  349. package/dist/collection/components/plekinfo-card/plekinfo-card.css +15 -0
  350. package/dist/collection/components/plekinfo-card/plekinfo-card.js +1 -1
  351. package/dist/collection/components/progress-bar/progress-bar.css +15 -0
  352. package/dist/collection/components/progress-bar/progress-bar.js +1 -1
  353. package/dist/collection/components/progress-indicator/progress-indicator.css +15 -0
  354. package/dist/collection/components/progress-indicator/progress-indicator.js +1 -1
  355. package/dist/collection/components/project-item/project-item.css +15 -0
  356. package/dist/collection/components/project-item/project-item.js +1 -1
  357. package/dist/collection/components/renvooi/renvooi.css +15 -0
  358. package/dist/collection/components/responsive-element/responsive-element.js +1 -1
  359. package/dist/collection/components/scrollable/scrollable.css +15 -0
  360. package/dist/collection/components/scrollable/scrollable.js +2 -2
  361. package/dist/collection/components/selectable/selectable.css +21 -24
  362. package/dist/collection/components/selectable/selectable.js +2 -5
  363. package/dist/collection/components/selectable/selectable.js.map +1 -1
  364. package/dist/collection/components/skiplink/skiplink.css +15 -0
  365. package/dist/collection/components/skiplink/skiplink.js +1 -1
  366. package/dist/collection/components/slide-toggle/slide-toggle.css +16 -1
  367. package/dist/collection/components/slide-toggle/slide-toggle.js +1 -1
  368. package/dist/collection/components/survey-rating/survey-rating.css +15 -0
  369. package/dist/collection/components/survey-rating/survey-rating.js +2 -2
  370. package/dist/collection/components/table/table.css +15 -0
  371. package/dist/collection/components/table/table.js +1 -1
  372. package/dist/collection/components/tabs/components/tab.css +15 -0
  373. package/dist/collection/components/tabs/tabs.css +15 -0
  374. package/dist/collection/components/tabs/tabs.js +1 -1
  375. package/dist/collection/components/toggletip/toggletip.css +15 -0
  376. package/dist/collection/components/toggletip/toggletip.js +1 -1
  377. package/dist/collection/components/tooltip/tooltip.css +15 -0
  378. package/dist/collection/components/tooltip/tooltip.js +1 -1
  379. package/dist/collection/components/tree-view/tree-view.css +15 -0
  380. package/dist/collection/components/tree-view/tree-view.js +1 -1
  381. package/dist/collection/components/viewer-grid/viewer-grid.css +15 -0
  382. package/dist/collection/components/viewer-grid/viewer-grid.js +1 -1
  383. package/dist/components/alert.js +1 -1
  384. package/dist/components/alert.js.map +1 -1
  385. package/dist/components/annotation-locatie.js +1 -1
  386. package/dist/components/annotation-locatie.js.map +1 -1
  387. package/dist/components/attachments-counter.js +1 -1
  388. package/dist/components/attachments-counter.js.map +1 -1
  389. package/dist/components/badge.js +1 -1
  390. package/dist/components/badge.js.map +1 -1
  391. package/dist/components/document-component.js +8 -2
  392. package/dist/components/document-component.js.map +1 -1
  393. package/dist/components/dso-accordion-section.js +1 -1
  394. package/dist/components/dso-accordion-section.js.map +1 -1
  395. package/dist/components/dso-accordion.js +1 -1
  396. package/dist/components/dso-accordion.js.map +1 -1
  397. package/dist/components/dso-action-list-item.js +1 -1
  398. package/dist/components/dso-action-list-item.js.map +1 -1
  399. package/dist/components/dso-action-list.js +1 -1
  400. package/dist/components/dso-action-list.js.map +1 -1
  401. package/dist/components/dso-advanced-select.js +1 -1
  402. package/dist/components/dso-advanced-select.js.map +1 -1
  403. package/dist/components/dso-annotation-activiteit.js +1 -1
  404. package/dist/components/dso-annotation-activiteit.js.map +1 -1
  405. package/dist/components/dso-annotation-gebiedsaanwijzing.js +1 -1
  406. package/dist/components/dso-annotation-gebiedsaanwijzing.js.map +1 -1
  407. package/dist/components/dso-annotation-kaart.js +1 -1
  408. package/dist/components/dso-annotation-kaart.js.map +1 -1
  409. package/dist/components/dso-annotation-omgevingsnormwaarde.js +1 -1
  410. package/dist/components/dso-annotation-omgevingsnormwaarde.js.map +1 -1
  411. package/dist/components/dso-banner.js +1 -1
  412. package/dist/components/dso-banner.js.map +1 -1
  413. package/dist/components/dso-card.js +1 -1
  414. package/dist/components/dso-card.js.map +1 -1
  415. package/dist/components/dso-contact-information.js +1 -1
  416. package/dist/components/dso-contact-information.js.map +1 -1
  417. package/dist/components/dso-date-picker-legacy.js +1 -1
  418. package/dist/components/dso-date-picker-legacy.js.map +1 -1
  419. package/dist/components/dso-date-picker.js +1 -1
  420. package/dist/components/dso-date-picker.js.map +1 -1
  421. package/dist/components/dso-document-card.js +1 -1
  422. package/dist/components/dso-document-card.js.map +1 -1
  423. package/dist/components/dso-header.js +1 -1
  424. package/dist/components/dso-header.js.map +1 -1
  425. package/dist/components/dso-highlight-box.js +1 -1
  426. package/dist/components/dso-highlight-box.js.map +1 -1
  427. package/dist/components/dso-input-range.js +1 -1
  428. package/dist/components/dso-input-range.js.map +1 -1
  429. package/dist/components/dso-legend-item.js +14 -15
  430. package/dist/components/dso-legend-item.js.map +1 -1
  431. package/dist/components/dso-list-button.js +22 -4
  432. package/dist/components/dso-list-button.js.map +1 -1
  433. package/dist/components/dso-logo.js +1 -1
  434. package/dist/components/dso-map-base-layers.js +2 -2
  435. package/dist/components/dso-map-base-layers.js.map +1 -1
  436. package/dist/components/dso-map-controls.js +2 -2
  437. package/dist/components/dso-map-controls.js.map +1 -1
  438. package/dist/components/dso-map-overlays.js +2 -2
  439. package/dist/components/dso-map-overlays.js.map +1 -1
  440. package/dist/components/dso-mark-bar.js +2 -2
  441. package/dist/components/dso-mark-bar.js.map +1 -1
  442. package/dist/components/dso-modal.js +2 -2
  443. package/dist/components/dso-modal.js.map +1 -1
  444. package/dist/components/dso-onboarding-tip.js +2 -2
  445. package/dist/components/dso-onboarding-tip.js.map +1 -1
  446. package/dist/components/dso-pagination.js +1 -1
  447. package/dist/components/dso-pagination.js.map +1 -1
  448. package/dist/components/dso-plekinfo-card.js +2 -2
  449. package/dist/components/dso-plekinfo-card.js.map +1 -1
  450. package/dist/components/dso-progress-bar.js +2 -2
  451. package/dist/components/dso-progress-bar.js.map +1 -1
  452. package/dist/components/dso-project-item.js +2 -2
  453. package/dist/components/dso-project-item.js.map +1 -1
  454. package/dist/components/dso-skiplink.js +2 -2
  455. package/dist/components/dso-skiplink.js.map +1 -1
  456. package/dist/components/dso-survey-rating.js +3 -3
  457. package/dist/components/dso-survey-rating.js.map +1 -1
  458. package/dist/components/dso-tab.js +1 -1
  459. package/dist/components/dso-tab.js.map +1 -1
  460. package/dist/components/dso-tabs.js +2 -2
  461. package/dist/components/dso-tabs.js.map +1 -1
  462. package/dist/components/dso-tree-view.js +2 -2
  463. package/dist/components/dso-tree-view.js.map +1 -1
  464. package/dist/components/dso-viewer-grid.js +2 -2
  465. package/dist/components/dso-viewer-grid.js.map +1 -1
  466. package/dist/components/expandable.js +1 -1
  467. package/dist/components/expandable.js.map +1 -1
  468. package/dist/components/icon.js +7 -2
  469. package/dist/components/icon.js.map +1 -1
  470. package/dist/components/image-overlay.js +1 -1
  471. package/dist/components/image-overlay.js.map +1 -1
  472. package/dist/components/info-button.js +1 -1
  473. package/dist/components/info-button.js.map +1 -1
  474. package/dist/components/info.js +1 -1
  475. package/dist/components/info.js.map +1 -1
  476. package/dist/components/label.js +1 -1
  477. package/dist/components/label.js.map +1 -1
  478. package/dist/components/ozon-content.js +41 -15
  479. package/dist/components/ozon-content.js.map +1 -1
  480. package/dist/components/panel.js +1 -1
  481. package/dist/components/panel.js.map +1 -1
  482. package/dist/components/progress-indicator.js +2 -2
  483. package/dist/components/progress-indicator.js.map +1 -1
  484. package/dist/components/renvooi.js +1 -1
  485. package/dist/components/renvooi.js.map +1 -1
  486. package/dist/components/responsive-element.js +1 -1
  487. package/dist/components/scrollable.js +3 -3
  488. package/dist/components/scrollable.js.map +1 -1
  489. package/dist/components/selectable.js +2 -5
  490. package/dist/components/selectable.js.map +1 -1
  491. package/dist/components/slide-toggle.js +2 -2
  492. package/dist/components/slide-toggle.js.map +1 -1
  493. package/dist/components/table.js +2 -2
  494. package/dist/components/table.js.map +1 -1
  495. package/dist/components/toggletip.js +2 -2
  496. package/dist/components/toggletip.js.map +1 -1
  497. package/dist/components/tooltip.js +2 -2
  498. package/dist/components/tooltip.js.map +1 -1
  499. package/dist/dso-toolkit/dso-accordion-section.entry.esm.js.map +1 -1
  500. package/dist/dso-toolkit/dso-accordion.entry.esm.js.map +1 -1
  501. package/dist/dso-toolkit/dso-action-list-item.entry.esm.js.map +1 -1
  502. package/dist/dso-toolkit/dso-action-list.entry.esm.js.map +1 -1
  503. package/dist/dso-toolkit/dso-advanced-select.entry.esm.js.map +1 -1
  504. package/dist/dso-toolkit/dso-alert.dso-badge.dso-image-overlay.dso-ozon-content.dso-panel.dso-table.entry.esm.js.map +1 -1
  505. package/dist/dso-toolkit/dso-annotation-activiteit.entry.esm.js.map +1 -1
  506. package/dist/dso-toolkit/dso-annotation-gebiedsaanwijzing.entry.esm.js.map +1 -1
  507. package/dist/dso-toolkit/dso-annotation-kaart.entry.esm.js.map +1 -1
  508. package/dist/dso-toolkit/dso-annotation-locatie.dso-document-component.entry.esm.js.map +1 -1
  509. package/dist/dso-toolkit/dso-annotation-omgevingsnormwaarde.entry.esm.js.map +1 -1
  510. package/dist/dso-toolkit/dso-attachments-counter.dso-expandable.entry.esm.js.map +1 -1
  511. package/dist/dso-toolkit/dso-banner.entry.esm.js.map +1 -1
  512. package/dist/dso-toolkit/dso-card.entry.esm.js.map +1 -1
  513. package/dist/dso-toolkit/dso-contact-information.entry.esm.js.map +1 -1
  514. package/dist/dso-toolkit/dso-date-picker-legacy.entry.esm.js.map +1 -1
  515. package/dist/dso-toolkit/dso-date-picker.entry.esm.js.map +1 -1
  516. package/dist/dso-toolkit/dso-document-card.entry.esm.js.map +1 -1
  517. package/dist/dso-toolkit/dso-header.entry.esm.js.map +1 -1
  518. package/dist/dso-toolkit/dso-highlight-box.entry.esm.js.map +1 -1
  519. package/dist/dso-toolkit/dso-icon.entry.esm.js.map +1 -1
  520. package/dist/dso-toolkit/dso-info-button.entry.esm.js.map +1 -1
  521. package/dist/dso-toolkit/dso-info.dso-selectable.entry.esm.js.map +1 -1
  522. package/dist/dso-toolkit/dso-input-range.entry.esm.js.map +1 -1
  523. package/dist/dso-toolkit/dso-label.dso-renvooi.dso-slide-toggle.entry.esm.js.map +1 -1
  524. package/dist/dso-toolkit/dso-legend-item.entry.esm.js.map +1 -1
  525. package/dist/dso-toolkit/dso-list-button.entry.esm.js.map +1 -1
  526. package/dist/dso-toolkit/dso-map-base-layers.entry.esm.js.map +1 -1
  527. package/dist/dso-toolkit/dso-map-controls.entry.esm.js.map +1 -1
  528. package/dist/dso-toolkit/dso-map-overlays.entry.esm.js.map +1 -1
  529. package/dist/dso-toolkit/dso-mark-bar.entry.esm.js.map +1 -1
  530. package/dist/dso-toolkit/dso-modal.entry.esm.js.map +1 -1
  531. package/dist/dso-toolkit/dso-onboarding-tip.entry.esm.js.map +1 -1
  532. package/dist/dso-toolkit/dso-pagination.entry.esm.js.map +1 -1
  533. package/dist/dso-toolkit/dso-plekinfo-card.entry.esm.js.map +1 -1
  534. package/dist/dso-toolkit/dso-progress-bar.entry.esm.js.map +1 -1
  535. package/dist/dso-toolkit/dso-progress-indicator.entry.esm.js.map +1 -1
  536. package/dist/dso-toolkit/dso-project-item.entry.esm.js.map +1 -1
  537. package/dist/dso-toolkit/dso-scrollable.entry.esm.js.map +1 -1
  538. package/dist/dso-toolkit/dso-skiplink.entry.esm.js.map +1 -1
  539. package/dist/dso-toolkit/dso-survey-rating.entry.esm.js.map +1 -1
  540. package/dist/dso-toolkit/dso-tab.entry.esm.js.map +1 -1
  541. package/dist/dso-toolkit/dso-tabs.entry.esm.js.map +1 -1
  542. package/dist/dso-toolkit/dso-toggletip.entry.esm.js.map +1 -1
  543. package/dist/dso-toolkit/dso-toolkit.esm.js +1 -1
  544. package/dist/dso-toolkit/dso-tooltip.entry.esm.js.map +1 -1
  545. package/dist/dso-toolkit/dso-tree-view.entry.esm.js.map +1 -1
  546. package/dist/dso-toolkit/dso-viewer-grid.entry.esm.js.map +1 -1
  547. package/dist/dso-toolkit/p-0031a2bb.entry.js +2 -0
  548. package/dist/dso-toolkit/{p-94cea134.entry.js.map → p-0031a2bb.entry.js.map} +1 -1
  549. package/dist/dso-toolkit/p-05982f0c.entry.js +2 -0
  550. package/dist/dso-toolkit/{p-4160d2e0.entry.js.map → p-05982f0c.entry.js.map} +1 -1
  551. package/dist/dso-toolkit/p-08a680e3.entry.js +2 -0
  552. package/dist/dso-toolkit/{p-b615471f.entry.js.map → p-08a680e3.entry.js.map} +1 -1
  553. package/dist/dso-toolkit/p-0c2176c5.entry.js +2 -0
  554. package/dist/dso-toolkit/{p-469ca170.entry.js.map → p-0c2176c5.entry.js.map} +1 -1
  555. package/dist/dso-toolkit/p-11cd688b.entry.js +2 -0
  556. package/dist/dso-toolkit/{p-2b1c6af2.entry.js.map → p-11cd688b.entry.js.map} +1 -1
  557. package/dist/dso-toolkit/p-124316e8.entry.js +2 -0
  558. package/dist/dso-toolkit/{p-edda55f0.entry.js.map → p-124316e8.entry.js.map} +1 -1
  559. package/dist/dso-toolkit/p-133c1677.entry.js +2 -0
  560. package/dist/dso-toolkit/{p-19af64f1.entry.js.map → p-133c1677.entry.js.map} +1 -1
  561. package/dist/dso-toolkit/p-221c3b8b.entry.js +2 -0
  562. package/dist/dso-toolkit/{p-c3ed6804.entry.js.map → p-221c3b8b.entry.js.map} +1 -1
  563. package/dist/dso-toolkit/{p-909118a3.entry.js → p-23241161.entry.js} +2 -2
  564. package/dist/dso-toolkit/{p-909118a3.entry.js.map → p-23241161.entry.js.map} +1 -1
  565. package/dist/dso-toolkit/p-369e9eb0.entry.js +2 -0
  566. package/dist/dso-toolkit/p-369e9eb0.entry.js.map +1 -0
  567. package/dist/dso-toolkit/p-36e6a37b.entry.js +2 -0
  568. package/dist/dso-toolkit/p-36e6a37b.entry.js.map +1 -0
  569. package/dist/dso-toolkit/p-3d414fae.entry.js +2 -0
  570. package/dist/dso-toolkit/{p-8897189c.entry.js.map → p-3d414fae.entry.js.map} +1 -1
  571. package/dist/dso-toolkit/p-3daf3d1b.entry.js +2 -0
  572. package/dist/dso-toolkit/p-3e736489.entry.js +2 -0
  573. package/dist/dso-toolkit/p-3e736489.entry.js.map +1 -0
  574. package/dist/dso-toolkit/p-554d12b7.entry.js +2 -0
  575. package/dist/dso-toolkit/p-554d12b7.entry.js.map +1 -0
  576. package/dist/dso-toolkit/p-57a2730e.entry.js +2 -0
  577. package/dist/dso-toolkit/{p-b6f5ca5e.entry.js.map → p-57a2730e.entry.js.map} +1 -1
  578. package/dist/dso-toolkit/p-5870d108.entry.js +2 -0
  579. package/dist/dso-toolkit/{p-2510276b.entry.js.map → p-5870d108.entry.js.map} +1 -1
  580. package/dist/dso-toolkit/p-5b9803a2.entry.js +2 -0
  581. package/dist/dso-toolkit/{p-c4fe6ee2.entry.js.map → p-5b9803a2.entry.js.map} +1 -1
  582. package/dist/dso-toolkit/{p-eafec507.entry.js → p-66ec457d.entry.js} +2 -2
  583. package/dist/dso-toolkit/p-6d3d29ac.entry.js +2 -0
  584. package/dist/dso-toolkit/{p-6c1feb1f.entry.js.map → p-6d3d29ac.entry.js.map} +1 -1
  585. package/dist/dso-toolkit/p-75091e9b.entry.js +2 -0
  586. package/dist/dso-toolkit/{p-f9b41ef6.entry.js.map → p-75091e9b.entry.js.map} +1 -1
  587. package/dist/dso-toolkit/p-789aee43.entry.js +2 -0
  588. package/dist/dso-toolkit/{p-7a3c51ad.entry.js.map → p-789aee43.entry.js.map} +1 -1
  589. package/dist/dso-toolkit/p-7e09098c.entry.js +2 -0
  590. package/dist/dso-toolkit/p-7e09098c.entry.js.map +1 -0
  591. package/dist/dso-toolkit/p-7f073eed.entry.js +2 -0
  592. package/dist/dso-toolkit/{p-09ec6ce5.entry.js.map → p-7f073eed.entry.js.map} +1 -1
  593. package/dist/dso-toolkit/p-858970da.entry.js +2 -0
  594. package/dist/dso-toolkit/{p-90ead8a5.entry.js.map → p-858970da.entry.js.map} +1 -1
  595. package/dist/dso-toolkit/p-8b4a6a68.entry.js +2 -0
  596. package/dist/dso-toolkit/p-8b4a6a68.entry.js.map +1 -0
  597. package/dist/dso-toolkit/p-90521fc1.entry.js +2 -0
  598. package/dist/dso-toolkit/{p-400fede0.entry.js.map → p-90521fc1.entry.js.map} +1 -1
  599. package/dist/dso-toolkit/p-95c85ef7.entry.js +2 -0
  600. package/dist/dso-toolkit/{p-e85e3e06.entry.js.map → p-95c85ef7.entry.js.map} +1 -1
  601. package/dist/dso-toolkit/p-99b4b85a.entry.js +2 -0
  602. package/dist/dso-toolkit/{p-0764520c.entry.js.map → p-99b4b85a.entry.js.map} +1 -1
  603. package/dist/dso-toolkit/p-9cf46bde.entry.js +2 -0
  604. package/dist/dso-toolkit/p-9cf46bde.entry.js.map +1 -0
  605. package/dist/dso-toolkit/p-a2800a6f.entry.js +2 -0
  606. package/dist/dso-toolkit/{p-5c7331de.entry.js.map → p-a2800a6f.entry.js.map} +1 -1
  607. package/dist/dso-toolkit/p-a4618476.entry.js +2 -0
  608. package/dist/dso-toolkit/p-a4618476.entry.js.map +1 -0
  609. package/dist/dso-toolkit/p-a82b3993.entry.js +2 -0
  610. package/dist/dso-toolkit/{p-de3ed856.entry.js.map → p-a82b3993.entry.js.map} +1 -1
  611. package/dist/dso-toolkit/p-ac24cd1e.entry.js +2 -0
  612. package/dist/dso-toolkit/{p-db6b2bb9.entry.js.map → p-ac24cd1e.entry.js.map} +1 -1
  613. package/dist/dso-toolkit/p-aeac51e6.entry.js +2 -0
  614. package/dist/dso-toolkit/{p-8f4a2401.entry.js.map → p-aeac51e6.entry.js.map} +1 -1
  615. package/dist/dso-toolkit/{p-3888525c.entry.js → p-bbcffc90.entry.js} +2 -2
  616. package/dist/dso-toolkit/{p-3888525c.entry.js.map → p-bbcffc90.entry.js.map} +1 -1
  617. package/dist/dso-toolkit/p-bcc1bb8f.entry.js +2 -0
  618. package/dist/dso-toolkit/{p-a61470ad.entry.js.map → p-bcc1bb8f.entry.js.map} +1 -1
  619. package/dist/dso-toolkit/p-bcfeeafb.entry.js +2 -0
  620. package/dist/dso-toolkit/{p-514665a1.entry.js.map → p-bcfeeafb.entry.js.map} +1 -1
  621. package/dist/dso-toolkit/p-bfaa3608.entry.js +2 -0
  622. package/dist/dso-toolkit/{p-fa850439.entry.js.map → p-bfaa3608.entry.js.map} +1 -1
  623. package/dist/dso-toolkit/p-c93fae9e.entry.js +2 -0
  624. package/dist/dso-toolkit/{p-15c901ff.entry.js.map → p-c93fae9e.entry.js.map} +1 -1
  625. package/dist/dso-toolkit/p-dd5a59b3.entry.js +2 -0
  626. package/dist/dso-toolkit/{p-322b7db4.entry.js.map → p-dd5a59b3.entry.js.map} +1 -1
  627. package/dist/dso-toolkit/p-e04ebc7e.entry.js +2 -0
  628. package/dist/dso-toolkit/{p-1b3db27c.entry.js.map → p-e04ebc7e.entry.js.map} +1 -1
  629. package/dist/dso-toolkit/p-e7ba6656.entry.js +2 -0
  630. package/dist/dso-toolkit/{p-6f89da1c.entry.js.map → p-e7ba6656.entry.js.map} +1 -1
  631. package/dist/dso-toolkit/p-e9ea10ed.entry.js +2 -0
  632. package/dist/dso-toolkit/{p-2dc3dc9a.entry.js.map → p-e9ea10ed.entry.js.map} +1 -1
  633. package/dist/dso-toolkit/p-f8544d78.entry.js +2 -0
  634. package/dist/dso-toolkit/{p-d926863a.entry.js.map → p-f8544d78.entry.js.map} +1 -1
  635. package/dist/dso-toolkit/p-fcb3d0dc.entry.js +2 -0
  636. package/dist/dso-toolkit/p-fcb3d0dc.entry.js.map +1 -0
  637. package/dist/dso-toolkit/p-fe0021d0.entry.js +2 -0
  638. package/dist/dso-toolkit/{p-159be9e6.entry.js.map → p-fe0021d0.entry.js.map} +1 -1
  639. package/dist/dso-toolkit/p-fe4319c2.entry.js +2 -0
  640. package/dist/dso-toolkit/{p-dc33f3aa.entry.js.map → p-fe4319c2.entry.js.map} +1 -1
  641. package/dist/dso-toolkit/p-ffa6ca48.entry.js +2 -0
  642. package/dist/dso-toolkit/{p-9a30700a.entry.js.map → p-ffa6ca48.entry.js.map} +1 -1
  643. package/dist/esm/dso-accordion-section.entry.js +1 -1
  644. package/dist/esm/dso-accordion-section.entry.js.map +1 -1
  645. package/dist/esm/dso-accordion.entry.js +1 -1
  646. package/dist/esm/dso-accordion.entry.js.map +1 -1
  647. package/dist/esm/dso-action-list-item.entry.js +1 -1
  648. package/dist/esm/dso-action-list-item.entry.js.map +1 -1
  649. package/dist/esm/dso-action-list.entry.js +1 -1
  650. package/dist/esm/dso-action-list.entry.js.map +1 -1
  651. package/dist/esm/dso-advanced-select.entry.js +1 -1
  652. package/dist/esm/dso-advanced-select.entry.js.map +1 -1
  653. package/dist/esm/dso-alert.dso-badge.dso-image-overlay.dso-ozon-content.dso-panel.dso-table.entry.js.map +1 -1
  654. package/dist/esm/dso-alert_6.entry.js +48 -22
  655. package/dist/esm/dso-alert_6.entry.js.map +1 -1
  656. package/dist/esm/dso-annotation-activiteit.entry.js +1 -1
  657. package/dist/esm/dso-annotation-activiteit.entry.js.map +1 -1
  658. package/dist/esm/dso-annotation-gebiedsaanwijzing.entry.js +1 -1
  659. package/dist/esm/dso-annotation-gebiedsaanwijzing.entry.js.map +1 -1
  660. package/dist/esm/dso-annotation-kaart.entry.js +1 -1
  661. package/dist/esm/dso-annotation-kaart.entry.js.map +1 -1
  662. package/dist/esm/dso-annotation-locatie.dso-document-component.entry.js.map +1 -1
  663. package/dist/esm/dso-annotation-locatie_2.entry.js +9 -3
  664. package/dist/esm/dso-annotation-locatie_2.entry.js.map +1 -1
  665. package/dist/esm/dso-annotation-omgevingsnormwaarde.entry.js +1 -1
  666. package/dist/esm/dso-annotation-omgevingsnormwaarde.entry.js.map +1 -1
  667. package/dist/esm/dso-attachments-counter.dso-expandable.entry.js.map +1 -1
  668. package/dist/esm/dso-attachments-counter_2.entry.js +2 -2
  669. package/dist/esm/dso-attachments-counter_2.entry.js.map +1 -1
  670. package/dist/esm/dso-banner.entry.js +1 -1
  671. package/dist/esm/dso-banner.entry.js.map +1 -1
  672. package/dist/esm/dso-card.entry.js +1 -1
  673. package/dist/esm/dso-card.entry.js.map +1 -1
  674. package/dist/esm/dso-contact-information.entry.js +1 -1
  675. package/dist/esm/dso-contact-information.entry.js.map +1 -1
  676. package/dist/esm/dso-date-picker-legacy.entry.js +1 -1
  677. package/dist/esm/dso-date-picker-legacy.entry.js.map +1 -1
  678. package/dist/esm/dso-date-picker.entry.js +1 -1
  679. package/dist/esm/dso-date-picker.entry.js.map +1 -1
  680. package/dist/esm/dso-document-card.entry.js +1 -1
  681. package/dist/esm/dso-document-card.entry.js.map +1 -1
  682. package/dist/esm/dso-header.entry.js +1 -1
  683. package/dist/esm/dso-header.entry.js.map +1 -1
  684. package/dist/esm/dso-highlight-box.entry.js +1 -1
  685. package/dist/esm/dso-highlight-box.entry.js.map +1 -1
  686. package/dist/esm/dso-icon.entry.js +7 -2
  687. package/dist/esm/dso-icon.entry.js.map +1 -1
  688. package/dist/esm/dso-info-button.entry.js +1 -1
  689. package/dist/esm/dso-info-button.entry.js.map +1 -1
  690. package/dist/esm/dso-info.dso-selectable.entry.js.map +1 -1
  691. package/dist/esm/dso-info_2.entry.js +3 -5
  692. package/dist/esm/dso-info_2.entry.js.map +1 -1
  693. package/dist/esm/dso-input-range.entry.js +1 -1
  694. package/dist/esm/dso-input-range.entry.js.map +1 -1
  695. package/dist/esm/dso-label.dso-renvooi.dso-slide-toggle.entry.js.map +1 -1
  696. package/dist/esm/dso-label_3.entry.js +4 -4
  697. package/dist/esm/dso-label_3.entry.js.map +1 -1
  698. package/dist/esm/dso-legend-item.entry.js +3 -10
  699. package/dist/esm/dso-legend-item.entry.js.map +1 -1
  700. package/dist/esm/dso-list-button.entry.js +2 -2
  701. package/dist/esm/dso-list-button.entry.js.map +1 -1
  702. package/dist/esm/dso-logo.entry.js +1 -1
  703. package/dist/esm/dso-map-base-layers.entry.js +2 -2
  704. package/dist/esm/dso-map-base-layers.entry.js.map +1 -1
  705. package/dist/esm/dso-map-controls.entry.js +2 -2
  706. package/dist/esm/dso-map-controls.entry.js.map +1 -1
  707. package/dist/esm/dso-map-overlays.entry.js +2 -2
  708. package/dist/esm/dso-map-overlays.entry.js.map +1 -1
  709. package/dist/esm/dso-mark-bar.entry.js +2 -2
  710. package/dist/esm/dso-mark-bar.entry.js.map +1 -1
  711. package/dist/esm/dso-modal.entry.js +2 -2
  712. package/dist/esm/dso-modal.entry.js.map +1 -1
  713. package/dist/esm/dso-onboarding-tip.entry.js +2 -2
  714. package/dist/esm/dso-onboarding-tip.entry.js.map +1 -1
  715. package/dist/esm/dso-pagination.entry.js +1 -1
  716. package/dist/esm/dso-pagination.entry.js.map +1 -1
  717. package/dist/esm/dso-plekinfo-card.entry.js +2 -2
  718. package/dist/esm/dso-plekinfo-card.entry.js.map +1 -1
  719. package/dist/esm/dso-progress-bar.entry.js +2 -2
  720. package/dist/esm/dso-progress-bar.entry.js.map +1 -1
  721. package/dist/esm/dso-progress-indicator.entry.js +2 -2
  722. package/dist/esm/dso-progress-indicator.entry.js.map +1 -1
  723. package/dist/esm/dso-project-item.entry.js +2 -2
  724. package/dist/esm/dso-project-item.entry.js.map +1 -1
  725. package/dist/esm/dso-responsive-element.entry.js +1 -1
  726. package/dist/esm/dso-scrollable.entry.js +3 -3
  727. package/dist/esm/dso-scrollable.entry.js.map +1 -1
  728. package/dist/esm/dso-skiplink.entry.js +2 -2
  729. package/dist/esm/dso-skiplink.entry.js.map +1 -1
  730. package/dist/esm/dso-survey-rating.entry.js +3 -3
  731. package/dist/esm/dso-survey-rating.entry.js.map +1 -1
  732. package/dist/esm/dso-tab.entry.js +1 -1
  733. package/dist/esm/dso-tab.entry.js.map +1 -1
  734. package/dist/esm/dso-tabs.entry.js +2 -2
  735. package/dist/esm/dso-tabs.entry.js.map +1 -1
  736. package/dist/esm/dso-toggletip.entry.js +2 -2
  737. package/dist/esm/dso-toggletip.entry.js.map +1 -1
  738. package/dist/esm/dso-toolkit.js +1 -1
  739. package/dist/esm/dso-tooltip.entry.js +2 -2
  740. package/dist/esm/dso-tooltip.entry.js.map +1 -1
  741. package/dist/esm/dso-tree-view.entry.js +2 -2
  742. package/dist/esm/dso-tree-view.entry.js.map +1 -1
  743. package/dist/esm/dso-viewer-grid.entry.js +2 -2
  744. package/dist/esm/dso-viewer-grid.entry.js.map +1 -1
  745. package/dist/esm/loader.js +1 -1
  746. package/dist/types/components/document-component/document-component.d.ts +1 -0
  747. package/dist/types/components/legend-item/legend-item.d.ts +7 -8
  748. package/dist/types/components/legend-item/legend-item.interfaces.d.ts +10 -2
  749. package/dist/types/components/ozon-content/nodes/kop.node.d.ts +3 -2
  750. package/dist/types/components/ozon-content/ozon-content-context.interface.d.ts +2 -1
  751. package/dist/types/components/ozon-content/ozon-content-node-context.interface.d.ts +2 -1
  752. package/dist/types/components/ozon-content/ozon-content.d.ts +6 -2
  753. package/dist/types/components/ozon-content/ozon-content.interfaces.d.ts +8 -0
  754. package/dist/types/components/selectable/selectable.d.ts +0 -1
  755. package/dist/types/components.d.ts +23 -18
  756. package/package.json +3 -3
  757. package/dist/bundle/p-BJv2m9ZZ.js +0 -253
  758. package/dist/bundle/p-BJv2m9ZZ.js.map +0 -1
  759. package/dist/bundle/p-BtcZ9oZ6.js +0 -115
  760. package/dist/bundle/p-C1tscMvU.js +0 -43
  761. package/dist/bundle/p-CkBk3gL8.js +0 -80
  762. package/dist/bundle/p-Cng7insW.js +0 -145
  763. package/dist/bundle/p-CvGnEQcm.js.map +0 -1
  764. package/dist/bundle/p-CwXjPr2h.js +0 -36
  765. package/dist/bundle/p-D2nuXSd0.js.map +0 -1
  766. package/dist/bundle/p-D9Yjz_Sm.js +0 -125
  767. package/dist/bundle/p-D9Yjz_Sm.js.map +0 -1
  768. package/dist/bundle/p-DvqO1i1s.js +0 -1162
  769. package/dist/bundle/p-DvqO1i1s.js.map +0 -1
  770. package/dist/bundle/p-xNnEBBZG.js +0 -63
  771. package/dist/dso-toolkit/p-03fb6237.entry.js +0 -2
  772. package/dist/dso-toolkit/p-03fb6237.entry.js.map +0 -1
  773. package/dist/dso-toolkit/p-0764520c.entry.js +0 -2
  774. package/dist/dso-toolkit/p-09ec6ce5.entry.js +0 -2
  775. package/dist/dso-toolkit/p-0feea762.entry.js +0 -2
  776. package/dist/dso-toolkit/p-0feea762.entry.js.map +0 -1
  777. package/dist/dso-toolkit/p-159be9e6.entry.js +0 -2
  778. package/dist/dso-toolkit/p-15c901ff.entry.js +0 -2
  779. package/dist/dso-toolkit/p-19af64f1.entry.js +0 -2
  780. package/dist/dso-toolkit/p-1b3db27c.entry.js +0 -2
  781. package/dist/dso-toolkit/p-2510276b.entry.js +0 -2
  782. package/dist/dso-toolkit/p-2b1c6af2.entry.js +0 -2
  783. package/dist/dso-toolkit/p-2dc3dc9a.entry.js +0 -2
  784. package/dist/dso-toolkit/p-322b7db4.entry.js +0 -2
  785. package/dist/dso-toolkit/p-35e1d8a4.entry.js +0 -2
  786. package/dist/dso-toolkit/p-35e1d8a4.entry.js.map +0 -1
  787. package/dist/dso-toolkit/p-3c74fd03.entry.js +0 -2
  788. package/dist/dso-toolkit/p-3c74fd03.entry.js.map +0 -1
  789. package/dist/dso-toolkit/p-400fede0.entry.js +0 -2
  790. package/dist/dso-toolkit/p-4160d2e0.entry.js +0 -2
  791. package/dist/dso-toolkit/p-469ca170.entry.js +0 -2
  792. package/dist/dso-toolkit/p-514665a1.entry.js +0 -2
  793. package/dist/dso-toolkit/p-5c7331de.entry.js +0 -2
  794. package/dist/dso-toolkit/p-6c1feb1f.entry.js +0 -2
  795. package/dist/dso-toolkit/p-6f89da1c.entry.js +0 -2
  796. package/dist/dso-toolkit/p-73f027ff.entry.js +0 -2
  797. package/dist/dso-toolkit/p-73f027ff.entry.js.map +0 -1
  798. package/dist/dso-toolkit/p-7a3c51ad.entry.js +0 -2
  799. package/dist/dso-toolkit/p-8897189c.entry.js +0 -2
  800. package/dist/dso-toolkit/p-8f4a2401.entry.js +0 -2
  801. package/dist/dso-toolkit/p-90ead8a5.entry.js +0 -2
  802. package/dist/dso-toolkit/p-94cea134.entry.js +0 -2
  803. package/dist/dso-toolkit/p-9a30700a.entry.js +0 -2
  804. package/dist/dso-toolkit/p-9abdf5aa.entry.js +0 -2
  805. package/dist/dso-toolkit/p-9abdf5aa.entry.js.map +0 -1
  806. package/dist/dso-toolkit/p-a61470ad.entry.js +0 -2
  807. package/dist/dso-toolkit/p-aa5dc824.entry.js +0 -2
  808. package/dist/dso-toolkit/p-aa5dc824.entry.js.map +0 -1
  809. package/dist/dso-toolkit/p-b615471f.entry.js +0 -2
  810. package/dist/dso-toolkit/p-b6f5ca5e.entry.js +0 -2
  811. package/dist/dso-toolkit/p-bd717c9b.entry.js +0 -2
  812. package/dist/dso-toolkit/p-c3ed6804.entry.js +0 -2
  813. package/dist/dso-toolkit/p-c4fe6ee2.entry.js +0 -2
  814. package/dist/dso-toolkit/p-d4db08c7.entry.js +0 -2
  815. package/dist/dso-toolkit/p-d4db08c7.entry.js.map +0 -1
  816. package/dist/dso-toolkit/p-d926863a.entry.js +0 -2
  817. package/dist/dso-toolkit/p-db6b2bb9.entry.js +0 -2
  818. package/dist/dso-toolkit/p-dc33f3aa.entry.js +0 -2
  819. package/dist/dso-toolkit/p-de3ed856.entry.js +0 -2
  820. package/dist/dso-toolkit/p-e85e3e06.entry.js +0 -2
  821. package/dist/dso-toolkit/p-edda55f0.entry.js +0 -2
  822. package/dist/dso-toolkit/p-f1999525.entry.js +0 -2
  823. package/dist/dso-toolkit/p-f1999525.entry.js.map +0 -1
  824. package/dist/dso-toolkit/p-f9b41ef6.entry.js +0 -2
  825. package/dist/dso-toolkit/p-fa850439.entry.js +0 -2
  826. /package/dist/dso-toolkit/{p-bd717c9b.entry.js.map → p-3daf3d1b.entry.js.map} +0 -0
  827. /package/dist/dso-toolkit/{p-eafec507.entry.js.map → p-66ec457d.entry.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"names":["localization","buttonLabel","placeholder","selectedDateMessage","prevMonthLabel","nextMonthLabel","monthSelectLabel","yearSelectLabel","closeLabel","keyboardInstruction","calendarHeading","dayNames","monthNames","monthNamesShort","DaysOfWeek","createDate","year","month","day","dayInt","parseInt","monthInt","yearInt","isValid","Number","isInteger","Date","parseDutchDate","value","matches","split","length","printDutchDate","date","d","getDate","toString","padStart","m","getMonth","y","getFullYear","isEqual","a","b","addDays","days","setDate","startOfWeek","firstDayOfWeek","Monday","getDay","diff","endOfWeek","startOfMonth","endOfMonth","setMonth","setYear","setFullYear","inRange","min","max","clamp","time","getTime","getDaysInRange","start","end","current","push","getViewOfMonth","DatePickerLegacyDay","focusedDay","today","onDaySelect","onKeyboardNavigation","focusedDayRef","isToday","isFocused","notCurrentMonth","isOutsideRange","handleClick","e","h","class","tabIndex","onClick","onKeyDown","disabled","type","ref","el","chunk","array","chunkSize","result","i","slice","mapWithOffset","startingOffset","mapFn","map","_","adjustedIndex","item","Error","DatePickerLegacyMonth","selectedDate","focusedDate","labelledById","onDateSelect","onMouseDown","onFocusIn","role","onFocusin","dayName","scope","substr","week","undefined","monthRange","selectedYear","minDate","maxDate","minYear","minMonth","maxYear","maxMonth","filter","_month","index","range","from","to","datePickerLegacyCss","keyCode","TAB","ESC","PAGE_UP","PAGE_DOWN","END","HOME","LEFT","UP","RIGHT","DOWN","DISALLOWED_CHARACTERS","TRANSITION_MS","cleanValue","input","regex","cursor","selectionStart","beforeCursor","afterCursor","filteredBeforeCursor","replace","filterAfterCursor","newValue","newCursor","selectionEnd","DsoDatePickerLegacy","constructor","hostRef","this","monthSelectId","createIdentifier","yearSelectId","dialogLabelId","defaultLocalization","activeFocus","open","visible","name","direction","required","dsoAutofocus","enableActiveFocus","disableActiveFocus","toggleOpen","preventDefault","hide","show","handleEscKey","event","handleBlur","stopPropagation","dsoBlur","emit","component","handleKeyUp","dsoKeyUp","originalEvent","handleKeyDown","dsoKeyDown","handleFocus","dsoFocus","handleTouchStart","touch","changedTouches","initialTouchX","pageX","initialTouchY","pageY","handleTouchMove","handleTouchEnd","distX","_a","distY","_b","threshold","isHorizontalSwipe","Math","abs","isDownwardsSwipe","addMonths","handleNextMonthClick","handlePreviousMonthClick","handleFirstFocusableKeydown","shiftKey","focusedDayNode","focus","handleKeyboardNavigation","firstFocusableElement","handled","addYears","handleDaySelect","_event","setValue","setFocusedDay","handleMonthSelect","target","HTMLSelectElement","handleYearSelect","handleInputChange","cleanedValue","prepareEvent","valueAsDate","error","clampValue","processFocusedDayNode","element","setTimeout","handleDocumentClick","path","composedPath","Node","contains","setFocus","datePickerLegacyInput","hideTimeoutId","clearTimeout","focusTimeoutId","monthSelectNode","moveFocusToButton","datePickerLegacyButton","months","years","previousValue","dsoDateChange","componentWillLoad","componentDidLoad","render","formattedDate","focusedMonth","focusedYear","prevMonthDisabled","nextMonthDisabled","Host","key","id","identifier","invalid","describedBy","onInput","onFocus","onBlur","onKeyUp","autoComplete","icon","onTouchMove","onTouchStart","onTouchEnd","htmlFor","onChange","indexOf","selected"],"sources":["src/components/date-picker-legacy/date-localization.ts","src/components/date-picker-legacy/date-utils.ts","src/components/date-picker-legacy/date-picker-day.tsx","src/components/date-picker-legacy/date-picker-month.tsx","src/components/date-picker-legacy/utils/month-range.ts","src/components/date-picker-legacy/utils/range.ts","src/components/date-picker-legacy/date-picker-legacy.scss?tag=dso-date-picker-legacy&encapsulation=scoped","src/components/date-picker-legacy/date-picker-legacy.tsx"],"sourcesContent":["type MonthsNames = [string, string, string, string, string, string, string, string, string, string, string, string];\r\ntype DayNames = [string, string, string, string, string, string, string];\r\n\r\nexport type DsoLocalizedText = {\r\n buttonLabel: string;\r\n placeholder: string;\r\n selectedDateMessage: string;\r\n prevMonthLabel: string;\r\n nextMonthLabel: string;\r\n monthSelectLabel: string;\r\n yearSelectLabel: string;\r\n closeLabel: string;\r\n keyboardInstruction: string;\r\n calendarHeading: string;\r\n dayNames: DayNames;\r\n monthNames: MonthsNames;\r\n monthNamesShort: MonthsNames;\r\n};\r\n\r\nconst localization: DsoLocalizedText = {\r\n buttonLabel: \"Kies datum\",\r\n placeholder: \"dd-mm-jjjj\",\r\n selectedDateMessage: \"Geselecteerde datum is\",\r\n prevMonthLabel: \"Vorige maand\",\r\n nextMonthLabel: \"Volgende maand\",\r\n monthSelectLabel: \"Maand\",\r\n yearSelectLabel: \"Jaar\",\r\n closeLabel: \"Sluiten\",\r\n keyboardInstruction: \"Gebruik de pijltjestoetsen om een dag te kiezen\",\r\n calendarHeading: \"Kies een datum\",\r\n dayNames: [\"Zondag\", \"Maandag\", \"Dinsdag\", \"Woensdag\", \"Donderdag\", \"Vrijdag\", \"Zaterdag\"],\r\n monthNames: [\r\n \"Januari\",\r\n \"Februari\",\r\n \"Maart\",\r\n \"April\",\r\n \"Mei\",\r\n \"Juni\",\r\n \"Juli\",\r\n \"Augustus\",\r\n \"September\",\r\n \"Oktober\",\r\n \"November\",\r\n \"December\",\r\n ],\r\n monthNamesShort: [\"Jan\", \"Feb\", \"Mrt\", \"Apr\", \"Mei\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Okt\", \"Nov\", \"Dec\"],\r\n};\r\n\r\nexport default localization;\r\n","// eslint-disable-next-line @stencil-community/ban-exported-const-enums -- This enum is not part of public API\r\nexport enum DaysOfWeek {\r\n Sunday = 0,\r\n Monday = 1,\r\n Tuesday = 2,\r\n Wednesday = 3,\r\n Thursday = 4,\r\n Friday = 5,\r\n Saturday = 6,\r\n}\r\n\r\nexport function createDate(year: string, month: string, day: string): Date | undefined {\r\n const dayInt = parseInt(day, 10);\r\n const monthInt = parseInt(month, 10);\r\n const yearInt = parseInt(year, 10);\r\n\r\n const isValid =\r\n Number.isInteger(yearInt) && // all parts should be integers\r\n Number.isInteger(monthInt) &&\r\n Number.isInteger(dayInt) &&\r\n monthInt > 0 && // month must be 1-12\r\n monthInt <= 12 &&\r\n dayInt > 0 && // day must be 1-31\r\n dayInt <= 31 &&\r\n yearInt > 0;\r\n\r\n if (isValid) {\r\n return new Date(yearInt, monthInt - 1, dayInt);\r\n }\r\n}\r\n\r\n/**\r\n * @param value date string in Dutch format D-M-YYYY\r\n */\r\nexport function parseDutchDate(value: string | undefined): Date | undefined {\r\n if (!value) {\r\n return;\r\n }\r\n\r\n const matches = value.split(\"-\");\r\n\r\n if (\r\n matches.length === 3 &&\r\n typeof matches[0] === \"string\" &&\r\n typeof matches[1] === \"string\" &&\r\n typeof matches[2] === \"string\" &&\r\n matches[2].length === 4\r\n ) {\r\n return createDate(matches[2], matches[1], matches[0]);\r\n }\r\n}\r\n\r\n/**\r\n * print date in format DD-MM-YYYY\r\n * @param date\r\n */\r\nexport function printDutchDate(date: Date | undefined): string {\r\n if (!date) {\r\n return \"\";\r\n }\r\n\r\n const d = date.getDate().toString(10).padStart(2, \"0\");\r\n const m = (date.getMonth() + 1).toString(10).padStart(2, \"0\");\r\n const y = date.getFullYear().toString(10).padStart(2, \"0\");\r\n\r\n return `${d}-${m}-${y}`;\r\n}\r\n\r\n/**\r\n * Compare if two dates are equal in terms of day, month, and year\r\n */\r\nexport function isEqual(a: Date | undefined, b: Date | undefined): boolean {\r\n if (!a || !b) {\r\n return false;\r\n }\r\n\r\n return a.getFullYear() === b.getFullYear() && a.getMonth() === b.getMonth() && a.getDate() === b.getDate();\r\n}\r\n\r\nexport function addDays(date: Date, days: number): Date {\r\n const d = new Date(date);\r\n d.setDate(d.getDate() + days);\r\n return d;\r\n}\r\n\r\nexport function addMonths(date: Date, months: number): Date {\r\n const d = new Date(date);\r\n d.setMonth(date.getMonth() + months);\r\n return d;\r\n}\r\n\r\nexport function addYears(date: Date, years: number): Date {\r\n const d = new Date(date);\r\n d.setFullYear(date.getFullYear() + years);\r\n return d;\r\n}\r\n\r\nexport function startOfWeek(date: Date, firstDayOfWeek: DaysOfWeek = DaysOfWeek.Monday): Date {\r\n const d = new Date(date);\r\n const day = d.getDay();\r\n const diff = (day < firstDayOfWeek ? 7 : 0) + day - firstDayOfWeek;\r\n\r\n d.setDate(d.getDate() - diff);\r\n return d;\r\n}\r\n\r\nexport function endOfWeek(date: Date, firstDayOfWeek: DaysOfWeek = DaysOfWeek.Monday): Date {\r\n const d = new Date(date);\r\n const day = d.getDay();\r\n const diff = (day < firstDayOfWeek ? -7 : 0) + 6 - (day - firstDayOfWeek);\r\n\r\n d.setDate(d.getDate() + diff);\r\n return d;\r\n}\r\n\r\nexport function startOfMonth(date: Date): Date {\r\n return new Date(date.getFullYear(), date.getMonth(), 1);\r\n}\r\n\r\nexport function endOfMonth(date: Date): Date {\r\n return new Date(date.getFullYear(), date.getMonth() + 1, 0);\r\n}\r\n\r\nexport function setMonth(date: Date, month: number): Date {\r\n const d = new Date(date);\r\n d.setMonth(month);\r\n return d;\r\n}\r\n\r\nexport function setYear(date: Date, year: number): Date {\r\n const d = new Date(date);\r\n d.setFullYear(year);\r\n return d;\r\n}\r\n\r\n/**\r\n * Check if date is within a min and max\r\n */\r\nexport function inRange(date: Date, min?: Date, max?: Date): boolean {\r\n return clamp(date, min, max) === date;\r\n}\r\n\r\n/**\r\n * Ensures date is within range, returns min or max if out of bounds\r\n */\r\nexport function clamp(date: Date, min?: Date, max?: Date): Date {\r\n const time = date.getTime();\r\n\r\n if (min && min instanceof Date && time < min.getTime()) {\r\n return min;\r\n }\r\n\r\n if (max && max instanceof Date && time > max.getTime()) {\r\n return max;\r\n }\r\n\r\n return date;\r\n}\r\n\r\n/**\r\n * given start and end date, return an (inclusive) array of all dates in between\r\n * @param start\r\n * @param end\r\n */\r\nfunction getDaysInRange(start: Date, end: Date): Date[] {\r\n const days: Date[] = [];\r\n let current = start;\r\n\r\n while (!isEqual(current, end)) {\r\n days.push(current);\r\n current = addDays(current, 1);\r\n }\r\n\r\n days.push(current);\r\n\r\n return days;\r\n}\r\n\r\n/**\r\n * given a date, return an array of dates from a calendar perspective\r\n * @param date\r\n * @param firstDayOfWeek\r\n */\r\nexport function getViewOfMonth(date: Date, firstDayOfWeek: DaysOfWeek = DaysOfWeek.Monday): Date[] {\r\n const start = startOfWeek(startOfMonth(date), firstDayOfWeek);\r\n const end = endOfWeek(endOfMonth(date), firstDayOfWeek);\r\n\r\n return getDaysInRange(start, end);\r\n}\r\n","import { FunctionalComponent, h } from \"@stencil/core\";\r\n\r\nimport { isEqual, printDutchDate } from \"./date-utils\";\r\n\r\nexport type DatePickerLegacyDayProps = {\r\n focusedDay: Date;\r\n today: Date;\r\n day: Date;\r\n inRange: boolean;\r\n onDaySelect: (event: MouseEvent, day: Date) => void;\r\n onKeyboardNavigation: (event: KeyboardEvent) => void;\r\n focusedDayRef?: (element: HTMLButtonElement) => void;\r\n};\r\n\r\nexport const DatePickerLegacyDay: FunctionalComponent<DatePickerLegacyDayProps> = ({\r\n focusedDay,\r\n today,\r\n day,\r\n onDaySelect,\r\n onKeyboardNavigation,\r\n focusedDayRef,\r\n inRange,\r\n}) => {\r\n const isToday = isEqual(day, today);\r\n const isFocused = isEqual(day, focusedDay);\r\n const notCurrentMonth = day.getMonth() !== focusedDay.getMonth();\r\n const isOutsideRange = !inRange;\r\n\r\n function handleClick(e: MouseEvent) {\r\n onDaySelect(e, day);\r\n }\r\n\r\n return (\r\n <button\r\n class={{\r\n \"dso-date__day\": true,\r\n \"is-today\": isToday,\r\n }}\r\n tabIndex={isFocused ? 0 : -1}\r\n onClick={handleClick}\r\n onKeyDown={onKeyboardNavigation}\r\n disabled={isOutsideRange || notCurrentMonth}\r\n type=\"button\"\r\n ref={(el) => {\r\n if (isFocused && el && focusedDayRef) {\r\n focusedDayRef(el);\r\n }\r\n }}\r\n >\r\n <span aria-hidden=\"true\">{day.getDate()}</span>\r\n <span class=\"dso-date__vhidden\">{printDutchDate(day)}</span>\r\n </button>\r\n );\r\n};\r\n","import { FunctionalComponent, h } from \"@stencil/core\";\r\n\r\nimport { DsoLocalizedText } from \"./date-localization\";\r\nimport { DatePickerLegacyDay, DatePickerLegacyDayProps } from \"./date-picker-day\";\r\nimport { DaysOfWeek, getViewOfMonth, inRange, isEqual } from \"./date-utils\";\r\n\r\nfunction chunk<T>(array: T[], chunkSize: number): T[][] {\r\n const result = [];\r\n\r\n for (let i = 0; i < array.length; i += chunkSize) {\r\n result.push(array.slice(i, i + chunkSize));\r\n }\r\n\r\n return result;\r\n}\r\n\r\nfunction mapWithOffset<T, U>(array: T[], startingOffset: number, mapFn: (item: T) => U): U[] {\r\n return array.map((_, i) => {\r\n const adjustedIndex = (i + startingOffset) % array.length;\r\n const item = array[adjustedIndex];\r\n if (!item) {\r\n throw new Error(\"No item found\");\r\n }\r\n\r\n return mapFn(item);\r\n });\r\n}\r\n\r\ntype DatePickerLegacyMonthProps = {\r\n selectedDate: Date | undefined;\r\n focusedDate: Date;\r\n labelledById: string;\r\n localization: DsoLocalizedText;\r\n firstDayOfWeek: DaysOfWeek;\r\n min?: Date;\r\n max?: Date;\r\n onDateSelect: DatePickerLegacyDayProps[\"onDaySelect\"];\r\n onKeyboardNavigation: DatePickerLegacyDayProps[\"onKeyboardNavigation\"];\r\n focusedDayRef: (element: HTMLButtonElement) => void;\r\n onFocusIn?: (e: FocusEvent) => void;\r\n onMouseDown?: (e: MouseEvent) => void;\r\n};\r\n\r\nexport const DatePickerLegacyMonth: FunctionalComponent<DatePickerLegacyMonthProps> = ({\r\n selectedDate,\r\n focusedDate,\r\n labelledById,\r\n localization,\r\n firstDayOfWeek,\r\n min,\r\n max,\r\n onDateSelect,\r\n onKeyboardNavigation,\r\n focusedDayRef,\r\n onMouseDown,\r\n onFocusIn,\r\n}) => {\r\n const today = new Date();\r\n const days = getViewOfMonth(focusedDate, firstDayOfWeek);\r\n\r\n return (\r\n <table\r\n class=\"dso-date__table\"\r\n role=\"grid\"\r\n aria-labelledby={labelledById}\r\n onFocusin={onFocusIn}\r\n onMouseDown={onMouseDown}\r\n >\r\n <thead>\r\n <tr>\r\n {mapWithOffset(localization.dayNames, firstDayOfWeek, (dayName) => (\r\n <th class=\"dso-date__table-header\" scope=\"col\">\r\n <span aria-hidden=\"true\">{dayName.substr(0, 2)}</span>\r\n <span class=\"dso-date__vhidden\">{dayName}</span>\r\n </th>\r\n ))}\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {chunk(days, 7).map((week) => (\r\n <tr class=\"dso-date__row\">\r\n {week.map((day) => (\r\n <td\r\n class=\"dso-date__cell\"\r\n role=\"gridcell\"\r\n aria-selected={isEqual(day, selectedDate) ? \"true\" : undefined}\r\n aria-current={isEqual(day, today) ? \"date\" : undefined}\r\n >\r\n <DatePickerLegacyDay\r\n day={day}\r\n today={today}\r\n focusedDay={focusedDate}\r\n inRange={inRange(day, min, max)}\r\n onDaySelect={onDateSelect}\r\n onKeyboardNavigation={onKeyboardNavigation}\r\n focusedDayRef={focusedDayRef}\r\n />\r\n </td>\r\n ))}\r\n </tr>\r\n ))}\r\n </tbody>\r\n </table>\r\n );\r\n};\r\n","import { DsoLocalizedText } from \"../date-localization\";\r\n\r\nexport function monthRange(\r\n localization: DsoLocalizedText,\r\n selectedYear: number,\r\n minDate?: Date,\r\n maxDate?: Date,\r\n): string[] {\r\n if (minDate && maxDate) {\r\n const { minYear, minMonth } = { minYear: minDate.getFullYear(), minMonth: minDate.getMonth() };\r\n const { maxYear, maxMonth } = { maxYear: maxDate.getFullYear(), maxMonth: maxDate.getMonth() };\r\n\r\n return localization.monthNames.filter((_month, index) => {\r\n if (minYear === selectedYear && maxYear === selectedYear) {\r\n return index >= minMonth && index >= maxMonth;\r\n }\r\n\r\n if (minYear === selectedYear) {\r\n return index >= minMonth;\r\n }\r\n\r\n if (maxYear === selectedYear) {\r\n return index <= maxMonth;\r\n }\r\n\r\n return true;\r\n });\r\n }\r\n\r\n if (minDate) {\r\n const { minYear, minMonth } = { minYear: minDate.getFullYear(), minMonth: minDate.getMonth() };\r\n\r\n return localization.monthNames.filter((_month, index) => minYear === selectedYear && index >= minMonth);\r\n }\r\n\r\n if (maxDate) {\r\n const { maxYear, maxMonth } = { maxYear: maxDate.getFullYear(), maxMonth: maxDate.getMonth() };\r\n\r\n return localization.monthNames.filter((_month, index) => maxYear === selectedYear && index <= maxMonth);\r\n }\r\n\r\n return localization.monthNames;\r\n}\r\n","export function range(from: number, to: number) {\r\n const result: number[] = [];\r\n for (let i = from; i <= to; i++) {\r\n result.push(i);\r\n }\r\n return result;\r\n}\r\n","@use \"~dso-toolkit/src/variables/units\";\r\n@use \"~dso-toolkit/src/variables/colors\";\r\n@use \"~dso-toolkit/src/variables/zindex\";\r\n@use \"~dso-toolkit/src/components/form-control\";\r\n\r\n@use \"date-picker-legacy.variables\" as core-date-picker-legacy-variables;\r\n\r\n:host {\r\n display: block;\r\n\r\n &[invalid]:not([invalid=\"false\"]) {\r\n .dso-date__input {\r\n border-color: colors.$danger-color;\r\n }\r\n }\r\n}\r\n\r\n.dso-date *,\r\n.dso-date *::before,\r\n.dso-date *::after {\r\n box-sizing: border-box;\r\n}\r\n\r\n.dso-date {\r\n box-sizing: border-box;\r\n color: core-date-picker-legacy-variables.$color-text;\r\n display: block;\r\n font-family: core-date-picker-legacy-variables.$font;\r\n margin: 0;\r\n position: relative;\r\n text-align: start;\r\n inline-size: 100%;\r\n\r\n &:not(.dso-visible) {\r\n .dso-date__dialog {\r\n display: none;\r\n }\r\n }\r\n}\r\n\r\n.dso-date__input {\r\n @include form-control.root();\r\n}\r\n\r\n// ---------------------------------------------\r\n// dso DATE PICKER __ TOGGLE\r\n// ---------------------------------------------\r\n\r\n.dso-date__toggle {\r\n -moz-appearance: none;\r\n -webkit-appearance: none;\r\n -webkit-user-select: none;\r\n align-items: center;\r\n appearance: none;\r\n background: core-date-picker-legacy-variables.$color-button-bg;\r\n border: 0;\r\n border-radius: 0;\r\n border-end-end-radius: core-date-picker-legacy-variables.$radius;\r\n border-start-end-radius: core-date-picker-legacy-variables.$radius;\r\n color: core-date-picker-legacy-variables.$color-icon;\r\n cursor: pointer;\r\n display: flex;\r\n block-size: core-date-picker-legacy-variables.$size;\r\n justify-content: center;\r\n padding: 0;\r\n position: absolute;\r\n inset-inline-end: 0;\r\n transform: translateY(-50%);\r\n inset-block-start: 50%;\r\n user-select: none;\r\n inline-size: core-date-picker-legacy-variables.$size;\r\n z-index: zindex.$datepicker + 1;\r\n\r\n &:disabled {\r\n color: core-date-picker-legacy-variables.$nav-button-disabled;\r\n cursor: default;\r\n }\r\n}\r\n\r\n// ---------------------------------------------\r\n// dso DATE PICKER __ DIALOG\r\n// ---------------------------------------------\r\n\r\n.dso-date__dialog {\r\n border-width: core-date-picker-legacy-variables.$border-width;\r\n display: flex;\r\n inset-inline-end: 0;\r\n min-inline-size: 320px;\r\n opacity: 0;\r\n position: absolute;\r\n inset-block-start: 100%;\r\n transform: scale(0.96) translateZ(0) translateY(-20px);\r\n transform-origin: top right;\r\n transition:\r\n transform 300ms ease,\r\n opacity 300ms ease,\r\n visibility 300ms ease;\r\n visibility: hidden;\r\n will-change: transform, opacity, visibility;\r\n z-index: zindex.$datepicker-dialog;\r\n\r\n @media (max-width: 35.9375em) {\r\n background: core-date-picker-legacy-variables.$overlay;\r\n inset-block-end: 0;\r\n position: fixed;\r\n inset-inline-start: 0;\r\n inset-inline-end: 0;\r\n inset-block-start: 0;\r\n transform: translateZ(0);\r\n transform-origin: bottom center;\r\n }\r\n\r\n &.is-left {\r\n inset-inline-start: units.$padding-base-inline * -1 + core-date-picker-legacy-variables.$border-width;\r\n inset-inline-end: auto;\r\n inline-size: auto;\r\n }\r\n\r\n &.is-active {\r\n opacity: 1;\r\n // The value of 1.0001 fixes a Chrome glitch with scaling\r\n transform: scale(1.0001) translateZ(0) translateY(0);\r\n visibility: visible;\r\n }\r\n}\r\n\r\n.dso-date__dialog-content {\r\n background: core-date-picker-legacy-variables.$surface;\r\n border: 1px solid rgba(0, 0, 0, 0.1);\r\n border-radius: core-date-picker-legacy-variables.$radius;\r\n box-shadow: 0 8px 10px 1px rgba(0, 0, 0, 0.4);\r\n margin-inline-start: auto;\r\n margin-inline-end: -1px;\r\n margin-block-start: 8px;\r\n max-inline-size: 310px;\r\n min-inline-size: 290px;\r\n padding: 16px;\r\n position: relative;\r\n transform: none;\r\n inline-size: 100%;\r\n z-index: zindex.$datepicker-dialog;\r\n\r\n @media (max-width: 35.9375em) {\r\n border: 0;\r\n border-radius: 0;\r\n border-start-start-radius: core-date-picker-legacy-variables.$radius;\r\n border-start-end-radius: core-date-picker-legacy-variables.$radius;\r\n inset-block-end: 0;\r\n inset-inline-start: 0;\r\n margin: 0;\r\n max-inline-size: none;\r\n min-block-size: 26em;\r\n opacity: 0;\r\n padding-block: 0 20px;\r\n padding-inline: 8%;\r\n position: absolute;\r\n transform: translateZ(0) translateY(100%);\r\n transition:\r\n transform core-date-picker-legacy-variables.$transition-duration ease,\r\n opacity core-date-picker-legacy-variables.$transition-duration ease,\r\n visibility core-date-picker-legacy-variables.$transition-duration ease;\r\n visibility: hidden;\r\n will-change: transform, opacity, visibility;\r\n\r\n .is-active & {\r\n opacity: 1;\r\n transform: translateZ(0) translateY(0);\r\n visibility: visible;\r\n }\r\n }\r\n}\r\n\r\n// ---------------------------------------------\r\n// dso DATE PICKER __ TABLE\r\n// ---------------------------------------------\r\n\r\n.dso-date__table {\r\n border-collapse: collapse;\r\n border-spacing: 0;\r\n color: core-date-picker-legacy-variables.$color-text;\r\n font-size: 1rem;\r\n font-weight: core-date-picker-legacy-variables.$font-normal;\r\n line-height: 1.25;\r\n min-inline-size: (core-date-picker-legacy-variables.$size + 2) * 7;\r\n table-layout: fixed;\r\n text-align: center;\r\n inline-size: 100%;\r\n}\r\n\r\n.dso-date__table-header {\r\n font-size: 0.875em;\r\n font-weight: core-date-picker-legacy-variables.$font-bold;\r\n block-size: 36px;\r\n line-height: 36px;\r\n text-align: center;\r\n text-decoration: none;\r\n text-transform: uppercase;\r\n}\r\n\r\n.dso-date__cell {\r\n block-size: core-date-picker-legacy-variables.$size + 2;\r\n padding: 1px;\r\n text-align: center;\r\n inline-size: core-date-picker-legacy-variables.$size + 2;\r\n}\r\n\r\n.dso-date__day {\r\n -moz-appearance: none;\r\n -webkit-appearance: none;\r\n appearance: none;\r\n background: transparent;\r\n border: 0;\r\n border-radius: 50%;\r\n box-shadow: 0 0 0 1px transparent;\r\n color: core-date-picker-legacy-variables.$color-text;\r\n cursor: pointer;\r\n display: inline-block;\r\n font-family: core-date-picker-legacy-variables.$font;\r\n font-variant-numeric: tabular-nums;\r\n font-weight: core-date-picker-legacy-variables.$font-normal;\r\n block-size: core-date-picker-legacy-variables.$size;\r\n line-height: 0;\r\n padding: 0;\r\n position: relative;\r\n text-align: center;\r\n vertical-align: middle;\r\n inline-size: core-date-picker-legacy-variables.$size;\r\n z-index: zindex.$datepicker;\r\n\r\n &.is-today {\r\n background: transparent;\r\n block-size: core-date-picker-legacy-variables.$size - 2;\r\n box-shadow: 0 0 0 1px core-date-picker-legacy-variables.$color-button;\r\n inline-size: core-date-picker-legacy-variables.$size - 2;\r\n }\r\n\r\n &:hover,\r\n &:active {\r\n background: core-date-picker-legacy-variables.$color-button;\r\n color: core-date-picker-legacy-variables.$color-text-active;\r\n }\r\n\r\n &:focus {\r\n background: transparent;\r\n box-shadow: 0 0 0 2px colors.$bosgroen;\r\n color: core-date-picker-legacy-variables.$color-text;\r\n block-size: core-date-picker-legacy-variables.$size - 4;\r\n outline: 0;\r\n inline-size: core-date-picker-legacy-variables.$size - 4;\r\n }\r\n\r\n [aria-selected=\"true\"] & {\r\n background: core-date-picker-legacy-variables.$color-button;\r\n color: core-date-picker-legacy-variables.$color-text-active;\r\n\r\n &:focus {\r\n background: transparent;\r\n\r\n span[aria-hidden=\"true\"] {\r\n background: core-date-picker-legacy-variables.$color-button;\r\n border: 1px solid colors.$wit;\r\n line-height: core-date-picker-legacy-variables.$size - 6;\r\n }\r\n }\r\n }\r\n\r\n &:disabled {\r\n background: colors.$wit;\r\n color: core-date-picker-legacy-variables.$color-text-disabled;\r\n cursor: default;\r\n }\r\n\r\n span[aria-hidden=\"true\"] {\r\n border-radius: 50%;\r\n display: inline-block;\r\n block-size: core-date-picker-legacy-variables.$size - 4;\r\n line-height: core-date-picker-legacy-variables.$size - 4;\r\n inline-size: core-date-picker-legacy-variables.$size - 4;\r\n }\r\n}\r\n\r\n// ---------------------------------------------\r\n// dso DATE PICKER __ HEADER\r\n// ---------------------------------------------\r\n\r\n.dso-date__header {\r\n align-items: center;\r\n display: flex;\r\n justify-content: space-between;\r\n margin-block-end: 16px;\r\n inline-size: 100%;\r\n\r\n span {\r\n font-size: 0.875rem;\r\n }\r\n}\r\n\r\n// ---------------------------------------------\r\n// dso DATE PICKER __ NAVIGATION\r\n// ---------------------------------------------\r\n\r\n.dso-date__nav {\r\n white-space: nowrap; // stylelint-disable-line declaration-property-value-disallowed-list -- 3rd party code\r\n}\r\n\r\n.dso-date__prev,\r\n.dso-date__next {\r\n -moz-appearance: none;\r\n -webkit-appearance: none;\r\n align-items: center;\r\n appearance: none;\r\n background: core-date-picker-legacy-variables.$color-button-bg;\r\n border: 1px solid core-date-picker-legacy-variables.$color-button;\r\n border-radius: core-date-picker-legacy-variables.$radius;\r\n box-sizing: border-box;\r\n color: core-date-picker-legacy-variables.$color-button;\r\n cursor: pointer;\r\n display: inline-flex;\r\n font-size: 1em;\r\n block-size: 32px;\r\n justify-content: center;\r\n margin-inline-start: 8px;\r\n padding: 0;\r\n inline-size: 32px;\r\n\r\n @media (max-width: 35.9375em) {\r\n block-size: 40px;\r\n inline-size: 40px;\r\n }\r\n\r\n &:hover,\r\n &:active {\r\n background-color: core-date-picker-legacy-variables.$color-button;\r\n color: core-date-picker-legacy-variables.$color-text-active;\r\n }\r\n\r\n &:focus {\r\n background: core-date-picker-legacy-variables.$color-button-bg;\r\n color: core-date-picker-legacy-variables.$color-button;\r\n }\r\n\r\n &:disabled {\r\n &,\r\n &:hover {\r\n background-color: colors.$wit;\r\n border-color: core-date-picker-legacy-variables.$nav-button-disabled;\r\n color: core-date-picker-legacy-variables.$nav-button-disabled;\r\n opacity: 1;\r\n }\r\n }\r\n\r\n svg {\r\n margin-block: 0; // left this in, just to be sure ;)\r\n margin-inline: auto;\r\n }\r\n}\r\n\r\n// ---------------------------------------------\r\n// dso DATE PICKER __ SELECT\r\n// ---------------------------------------------\r\n\r\n.dso-date__select {\r\n display: inline-flex;\r\n block-size: units.$u1 * 4 - 4;\r\n line-height: units.$u1 * 4 - 4;\r\n position: relative;\r\n\r\n span {\r\n margin-inline-end: 4px;\r\n }\r\n\r\n select {\r\n color: core-date-picker-legacy-variables.$color-primary;\r\n cursor: pointer;\r\n font-size: 1rem;\r\n block-size: 100%;\r\n inset-inline-start: 0;\r\n opacity: 0;\r\n position: absolute;\r\n inset-block-start: 0;\r\n inline-size: 100%;\r\n z-index: zindex.$datepicker + 1;\r\n\r\n &:focus + .dso-date__select-label {\r\n box-shadow: 0 0 0 2px core-date-picker-legacy-variables.$color-primary;\r\n }\r\n\r\n &:disabled {\r\n color: core-date-picker-legacy-variables.$nav-button-disabled;\r\n }\r\n }\r\n}\r\n\r\n.dso-date__select-label {\r\n align-items: center;\r\n border-radius: core-date-picker-legacy-variables.$radius;\r\n color: core-date-picker-legacy-variables.$select;\r\n display: flex;\r\n padding-block: 0;\r\n padding-inline: 8px 4px;\r\n pointer-events: none;\r\n position: relative;\r\n inline-size: 100%;\r\n z-index: zindex.$datepicker;\r\n\r\n span {\r\n font-size: 1.25rem;\r\n font-weight: core-date-picker-legacy-variables.$font-bold;\r\n line-height: 1.25;\r\n }\r\n\r\n svg {\r\n inline-size: 16px;\r\n block-size: 16px;\r\n }\r\n}\r\n\r\n// ---------------------------------------------\r\n// dso DATE PICKER __ MOBILE\r\n// ---------------------------------------------\r\n\r\n.dso-date__mobile {\r\n align-items: center;\r\n border-block-end: 1px solid rgba(0, 0, 0, 0.12);\r\n display: flex;\r\n font-size: 1em;\r\n justify-content: space-between;\r\n margin-block-end: 20px;\r\n margin-inline-start: -10%;\r\n overflow: hidden;\r\n padding-block: 12px;\r\n padding-inline: 20px;\r\n position: relative;\r\n text-overflow: ellipsis; // stylelint-disable-line declaration-property-value-disallowed-list -- 3rd party code\r\n white-space: nowrap; // stylelint-disable-line declaration-property-value-disallowed-list -- 3rd party code\r\n inline-size: 120%;\r\n\r\n @media (min-width: 36em) {\r\n border: 0;\r\n margin: 0;\r\n overflow: visible;\r\n padding: 0;\r\n position: absolute;\r\n inset-inline-end: -16px;\r\n inset-block-start: -16px;\r\n inline-size: auto;\r\n }\r\n}\r\n\r\n.dso-date__mobile-heading {\r\n display: inline-block;\r\n font-weight: core-date-picker-legacy-variables.$font-bold;\r\n max-inline-size: 84%;\r\n overflow: hidden;\r\n text-overflow: ellipsis; // stylelint-disable-line declaration-property-value-disallowed-list -- 3rd party code\r\n white-space: nowrap; // stylelint-disable-line declaration-property-value-disallowed-list -- 3rd party code\r\n\r\n @media (min-width: 36em) {\r\n display: none;\r\n }\r\n}\r\n\r\n// ---------------------------------------------\r\n// dso DATE PICKER __ CLOSE\r\n// ---------------------------------------------\r\n\r\n.dso-date__close {\r\n -webkit-appearance: none;\r\n align-items: center;\r\n appearance: none;\r\n background-color: colors.$wit;\r\n border: 0;\r\n border-radius: 50%;\r\n color: core-date-picker-legacy-variables.$color-icon;\r\n cursor: pointer;\r\n display: flex;\r\n font-size: 1em;\r\n block-size: units.$u1 * 4;\r\n justify-content: center;\r\n margin-inline-end: -4px;\r\n padding: 0;\r\n inline-size: units.$u1 * 4;\r\n\r\n @media (min-width: 36em) {\r\n margin-inline-end: 0;\r\n opacity: 0;\r\n }\r\n\r\n &:focus {\r\n box-shadow: 0 0 0 2px colors.$bosgroen;\r\n outline: none;\r\n\r\n @media (min-width: 36em) {\r\n opacity: 1;\r\n }\r\n }\r\n}\r\n\r\n// ---------------------------------------------\r\n// dso DATE PICKER __ VISUALLY HIDDEN\r\n// ---------------------------------------------\r\n\r\n.dso-date__vhidden {\r\n border: 0;\r\n clip: rect(1px, 1px, 1px, 1px);\r\n block-size: 1px;\r\n overflow: hidden;\r\n padding: 0;\r\n position: absolute;\r\n inset-block-start: 0;\r\n inline-size: 1px;\r\n}\r\n","import {\r\n Component,\r\n ComponentInterface,\r\n Element,\r\n Event,\r\n EventEmitter,\r\n Host,\r\n Listen,\r\n Method,\r\n Prop,\r\n State,\r\n h,\r\n} from \"@stencil/core\";\r\n\r\nimport { createIdentifier } from \"../../utils/create-identifier\";\r\n\r\nimport defaultLocalization, { DsoLocalizedText } from \"./date-localization\";\r\nimport {\r\n DsoDatePickerLegacyChangeEvent,\r\n DsoDatePickerLegacyDirection,\r\n DsoDatePickerLegacyFocusEvent,\r\n DsoDatePickerLegacyKeyboardEvent,\r\n} from \"./date-picker-legacy.interfaces\";\r\nimport { DatePickerLegacyMonth } from \"./date-picker-month\";\r\nimport {\r\n DaysOfWeek,\r\n addDays,\r\n clamp,\r\n endOfMonth,\r\n endOfWeek,\r\n inRange,\r\n parseDutchDate,\r\n printDutchDate,\r\n setMonth,\r\n setYear,\r\n startOfMonth,\r\n startOfWeek,\r\n} from \"./date-utils\";\r\nimport { monthRange } from \"./utils/month-range\";\r\nimport { range } from \"./utils/range\";\r\n\r\nconst keyCode = {\r\n TAB: 9,\r\n ESC: 27,\r\n SPACE: 32,\r\n PAGE_UP: 33,\r\n PAGE_DOWN: 34,\r\n END: 35,\r\n HOME: 36,\r\n LEFT: 37,\r\n UP: 38,\r\n RIGHT: 39,\r\n DOWN: 40,\r\n};\r\n\r\nconst DISALLOWED_CHARACTERS = /[^0-9-]+/g;\r\nconst TRANSITION_MS = 300;\r\n\r\nfunction cleanValue(input: HTMLInputElement, regex: RegExp): string {\r\n const value = input.value;\r\n const cursor = input.selectionStart;\r\n\r\n if (!cursor) {\r\n return value;\r\n }\r\n\r\n const beforeCursor = value.slice(0, cursor);\r\n const afterCursor = value.slice(cursor, value.length);\r\n\r\n const filteredBeforeCursor = beforeCursor.replace(regex, \"\");\r\n const filterAfterCursor = afterCursor.replace(regex, \"\");\r\n\r\n const newValue = filteredBeforeCursor + filterAfterCursor;\r\n const newCursor = filteredBeforeCursor.length;\r\n\r\n input.value = newValue;\r\n input.selectionStart = input.selectionEnd = newCursor;\r\n\r\n return newValue;\r\n}\r\n\r\n@Component({\r\n tag: \"dso-date-picker-legacy\",\r\n styleUrl: \"date-picker-legacy.scss\",\r\n shadow: false,\r\n scoped: true,\r\n})\r\nexport class DsoDatePickerLegacy implements ComponentInterface {\r\n /**\r\n * Own Properties\r\n */\r\n private monthSelectId = createIdentifier(\"DsoDateMonth\");\r\n private yearSelectId = createIdentifier(\"DsoDateYear\");\r\n private dialogLabelId = createIdentifier(\"DsoDateLabel\");\r\n\r\n private datePickerLegacyButton: HTMLButtonElement | undefined;\r\n private datePickerLegacyInput: HTMLInputElement | undefined;\r\n private firstFocusableElement: HTMLElement | undefined;\r\n private monthSelectNode: HTMLElement | undefined;\r\n private focusedDayNode: HTMLButtonElement | undefined;\r\n\r\n private focusTimeoutId: ReturnType<typeof setTimeout> | undefined;\r\n private hideTimeoutId: ReturnType<typeof setTimeout> | undefined;\r\n\r\n private initialTouchX: number | undefined;\r\n private initialTouchY: number | undefined;\r\n\r\n private localization: DsoLocalizedText = defaultLocalization;\r\n private firstDayOfWeek: DaysOfWeek = DaysOfWeek.Monday;\r\n\r\n private previousValue: string | undefined;\r\n\r\n /**\r\n * Reference to host HTML element.\r\n */\r\n @Element()\r\n element!: HTMLDsoDatePickerLegacyElement;\r\n\r\n /**\r\n * State() variables\r\n */\r\n @State()\r\n activeFocus = false;\r\n\r\n @State()\r\n focusedDay = new Date();\r\n\r\n @State()\r\n open = false;\r\n\r\n @State()\r\n visible = false;\r\n\r\n /**\r\n * Public Property API\r\n */\r\n\r\n /**\r\n * Name of the date picker input.\r\n */\r\n @Prop()\r\n name = \"date\";\r\n\r\n /**\r\n * Adds a unique identifier for the date picker input. Use this instead of html `id` attribute.\r\n */\r\n @Prop()\r\n identifier: string | undefined;\r\n\r\n /**\r\n * Makes the date picker input component disabled. This prevents users from being able to\r\n * interact with the input, and conveys its inactive state to assistive technologies.\r\n */\r\n @Prop({ reflect: true })\r\n disabled = false;\r\n\r\n /**\r\n * Defines a specific role attribute for the date picker input.\r\n */\r\n @Prop()\r\n // eslint-disable-next-line @stencil-community/reserved-member-names\r\n role: string | null = null;\r\n\r\n /**\r\n * Forces the opening direction of the calendar modal to be always left or right.\r\n * This setting can be useful when the input is smaller than the opening date picker\r\n * would be as by default the picker always opens towards right.\r\n */\r\n @Prop()\r\n direction: DsoDatePickerLegacyDirection = \"right\";\r\n\r\n /**\r\n * Should the input be marked as required?\r\n */\r\n @Prop()\r\n required = false;\r\n\r\n /**\r\n * Is input invalid?\r\n */\r\n @Prop({ reflect: true })\r\n invalid?: boolean;\r\n\r\n /**\r\n * ID of element that describes the input element\r\n */\r\n @Prop()\r\n describedBy?: string;\r\n\r\n /**\r\n * Should the input be focused on load?\r\n */\r\n @Prop()\r\n dsoAutofocus = false;\r\n\r\n /**\r\n * Date value. Must be in Dutch date format: DD-MM-YYYY.\r\n */\r\n @Prop({ reflect: true, mutable: true })\r\n value = \"\";\r\n\r\n /**\r\n * Minimum date allowed to be picked. Must be in Dutch date format: DD-MM-YYYY.\r\n * This setting can be used alone or together with the max property.\r\n */\r\n @Prop()\r\n min: string | undefined;\r\n\r\n /**\r\n * Maximum date allowed to be picked. Must be in Dutch date format: DD-MM-YYYY.\r\n * This setting can be used alone or together with the min property.\r\n */\r\n @Prop()\r\n max: string | undefined;\r\n\r\n /**\r\n * Events section.\r\n */\r\n\r\n /**\r\n * Event emitted when a date is selected.\r\n */\r\n @Event()\r\n dsoDateChange!: EventEmitter<DsoDatePickerLegacyChangeEvent>;\r\n\r\n /**\r\n * Event emitted the date picker input is blurred.\r\n */\r\n @Event()\r\n dsoBlur!: EventEmitter<DsoDatePickerLegacyFocusEvent>;\r\n\r\n /**\r\n * Event emitted on key up in the date picker input.\r\n */\r\n @Event()\r\n dsoKeyUp!: EventEmitter<DsoDatePickerLegacyKeyboardEvent>;\r\n\r\n /**\r\n * Event emitted on key down in the date picker input.\r\n */\r\n @Event()\r\n dsoKeyDown!: EventEmitter<DsoDatePickerLegacyKeyboardEvent>;\r\n\r\n /**\r\n * Event emitted the date picker input is focused.\r\n */\r\n @Event()\r\n dsoFocus!: EventEmitter<DsoDatePickerLegacyFocusEvent>;\r\n\r\n /**\r\n * Component event handling.\r\n */\r\n @Listen(\"click\", { target: \"document\", capture: true })\r\n handleDocumentClick(e: MouseEvent) {\r\n if (!this.open) {\r\n return;\r\n }\r\n\r\n const path = e.composedPath();\r\n\r\n for (const target of path) {\r\n if (target instanceof Node && this.element.contains(target)) {\r\n return;\r\n }\r\n }\r\n\r\n this.hide(false);\r\n }\r\n\r\n /**\r\n * Sets focus on the date picker's input. Use this method instead of the global `focus()`.\r\n */\r\n @Method()\r\n async setFocus() {\r\n return this.datePickerLegacyInput?.focus();\r\n }\r\n\r\n /**\r\n * Public methods API\r\n */\r\n\r\n /**\r\n * Show the calendar modal, moving focus to the calendar inside.\r\n */\r\n @Method()\r\n async show() {\r\n if (typeof this.hideTimeoutId !== \"undefined\") {\r\n clearTimeout(this.hideTimeoutId);\r\n }\r\n\r\n this.visible = true;\r\n\r\n setTimeout(() => {\r\n this.open = true;\r\n this.setFocusedDay(parseDutchDate(this.value) || new Date());\r\n\r\n if (typeof this.focusTimeoutId !== \"undefined\") {\r\n clearTimeout(this.focusTimeoutId);\r\n }\r\n\r\n this.focusTimeoutId = setTimeout(() => this.monthSelectNode?.focus(), TRANSITION_MS);\r\n });\r\n }\r\n\r\n /**\r\n * Hide the calendar modal. Set `moveFocusToButton` to false to prevent focus\r\n * returning to the date picker's button. Default is true.\r\n */\r\n @Method()\r\n async hide(moveFocusToButton = true) {\r\n this.open = false;\r\n\r\n // in cases where calendar is quickly shown and hidden\r\n // we should avoid moving focus to the button\r\n if (typeof this.focusTimeoutId !== \"undefined\") {\r\n clearTimeout(this.focusTimeoutId);\r\n }\r\n\r\n this.hideTimeoutId = setTimeout(() => {\r\n if (moveFocusToButton && this.datePickerLegacyButton) {\r\n this.datePickerLegacyButton.focus();\r\n }\r\n\r\n this.visible = false;\r\n }, TRANSITION_MS + 200);\r\n }\r\n\r\n /**\r\n * Local methods.\r\n */\r\n private enableActiveFocus = () => {\r\n this.activeFocus = true;\r\n };\r\n\r\n private disableActiveFocus = () => {\r\n this.activeFocus = false;\r\n };\r\n\r\n private addDays(days: number) {\r\n this.setFocusedDay(addDays(this.focusedDay, days));\r\n }\r\n\r\n private addMonths(months: number) {\r\n this.setMonth(this.focusedDay.getMonth() + months);\r\n }\r\n\r\n private addYears(years: number) {\r\n this.setYear(this.focusedDay.getFullYear() + years);\r\n }\r\n\r\n private startOfWeek() {\r\n this.setFocusedDay(startOfWeek(this.focusedDay, this.firstDayOfWeek));\r\n }\r\n\r\n private endOfWeek() {\r\n this.setFocusedDay(endOfWeek(this.focusedDay, this.firstDayOfWeek));\r\n }\r\n\r\n private setMonth(month: number) {\r\n const min = setMonth(startOfMonth(this.focusedDay), month);\r\n const max = endOfMonth(min);\r\n const date = setMonth(this.focusedDay, month);\r\n\r\n this.setFocusedDay(clamp(date, min, max));\r\n }\r\n\r\n private setYear(year: number) {\r\n const min = setYear(startOfMonth(this.focusedDay), year);\r\n const max = endOfMonth(min);\r\n const date = setYear(this.focusedDay, year);\r\n\r\n this.setFocusedDay(clamp(date, min, max));\r\n }\r\n\r\n private setFocusedDay(day: Date) {\r\n this.focusedDay = clamp(day, parseDutchDate(this.min), parseDutchDate(this.max));\r\n }\r\n\r\n private toggleOpen = (e: Event) => {\r\n e.preventDefault();\r\n if (this.open) {\r\n this.hide(false);\r\n } else {\r\n this.show();\r\n }\r\n };\r\n\r\n private handleEscKey = (event: KeyboardEvent) => {\r\n if (event.keyCode === keyCode.ESC) {\r\n this.hide();\r\n }\r\n };\r\n\r\n private handleBlur = (event: Event) => {\r\n event.stopPropagation();\r\n\r\n this.dsoBlur.emit({\r\n component: \"dso-date-picker-legacy\",\r\n });\r\n };\r\n\r\n private handleKeyUp = (event: KeyboardEvent) => {\r\n event.stopPropagation();\r\n\r\n this.dsoKeyUp.emit({\r\n component: \"dso-date-picker-legacy\",\r\n originalEvent: event,\r\n });\r\n };\r\n\r\n private handleKeyDown = (event: KeyboardEvent) => {\r\n event.stopPropagation();\r\n\r\n this.dsoKeyDown.emit({\r\n component: \"dso-date-picker-legacy\",\r\n originalEvent: event,\r\n });\r\n };\r\n\r\n private handleFocus = (event: Event) => {\r\n event.stopPropagation();\r\n\r\n this.dsoFocus.emit({\r\n component: \"dso-date-picker-legacy\",\r\n });\r\n };\r\n\r\n private handleTouchStart = (event: TouchEvent) => {\r\n const touch = event.changedTouches[0];\r\n if (!touch) {\r\n throw new Error(\"No touch found\");\r\n }\r\n\r\n this.initialTouchX = touch.pageX;\r\n this.initialTouchY = touch.pageY;\r\n };\r\n\r\n private handleTouchMove = (event: TouchEvent) => {\r\n event.preventDefault();\r\n };\r\n\r\n private handleTouchEnd = (event: TouchEvent) => {\r\n const touch = event.changedTouches[0];\r\n if (!touch) {\r\n throw new Error(\"No touch found\");\r\n }\r\n\r\n const distX = touch.pageX - (this.initialTouchX ?? 0); // get horizontal dist traveled\r\n const distY = touch.pageY - (this.initialTouchY ?? 0); // get vertical dist traveled\r\n const threshold = 70;\r\n\r\n const isHorizontalSwipe = Math.abs(distX) >= threshold && Math.abs(distY) <= threshold;\r\n const isDownwardsSwipe = Math.abs(distY) >= threshold && Math.abs(distX) <= threshold && distY > 0;\r\n\r\n if (isHorizontalSwipe) {\r\n this.addMonths(distX < 0 ? 1 : -1);\r\n } else if (isDownwardsSwipe) {\r\n this.hide(false);\r\n event.preventDefault();\r\n }\r\n\r\n this.initialTouchY = undefined;\r\n this.initialTouchX = undefined;\r\n };\r\n\r\n private handleNextMonthClick = (event: MouseEvent) => {\r\n event.preventDefault();\r\n this.addMonths(1);\r\n };\r\n\r\n private handlePreviousMonthClick = (event: MouseEvent) => {\r\n event.preventDefault();\r\n this.addMonths(-1);\r\n };\r\n\r\n private handleFirstFocusableKeydown = (event: KeyboardEvent) => {\r\n // this ensures focus is trapped inside the dialog\r\n if (event.keyCode === keyCode.TAB && event.shiftKey) {\r\n this.focusedDayNode?.focus();\r\n event.preventDefault();\r\n }\r\n };\r\n\r\n private handleKeyboardNavigation = (event: KeyboardEvent) => {\r\n // handle tab separately, since it needs to be treated\r\n // differently to other keyboard interactions\r\n if (event.keyCode === keyCode.TAB && !event.shiftKey) {\r\n event.preventDefault();\r\n this.firstFocusableElement?.focus();\r\n return;\r\n }\r\n\r\n let handled = true;\r\n\r\n switch (event.keyCode) {\r\n case keyCode.RIGHT:\r\n this.addDays(1);\r\n break;\r\n case keyCode.LEFT:\r\n this.addDays(-1);\r\n break;\r\n case keyCode.DOWN:\r\n this.addDays(7);\r\n break;\r\n case keyCode.UP:\r\n this.addDays(-7);\r\n break;\r\n case keyCode.PAGE_UP:\r\n if (event.shiftKey) {\r\n this.addYears(-1);\r\n } else {\r\n this.addMonths(-1);\r\n }\r\n break;\r\n case keyCode.PAGE_DOWN:\r\n if (event.shiftKey) {\r\n this.addYears(1);\r\n } else {\r\n this.addMonths(1);\r\n }\r\n break;\r\n case keyCode.HOME:\r\n this.startOfWeek();\r\n break;\r\n case keyCode.END:\r\n this.endOfWeek();\r\n break;\r\n default:\r\n handled = false;\r\n }\r\n\r\n if (handled) {\r\n event.preventDefault();\r\n this.enableActiveFocus();\r\n }\r\n };\r\n\r\n private handleDaySelect = (_event: MouseEvent, day: Date) => {\r\n if (!inRange(day, parseDutchDate(this.min), parseDutchDate(this.max))) {\r\n return;\r\n }\r\n\r\n if (day.getMonth() === this.focusedDay.getMonth()) {\r\n this.setValue(day);\r\n this.hide();\r\n } else {\r\n this.setFocusedDay(day);\r\n }\r\n };\r\n\r\n private handleMonthSelect = (e: Event) => {\r\n // Todo\r\n if (e.target instanceof HTMLSelectElement) {\r\n this.setMonth(parseInt(e.target.value, 10));\r\n }\r\n };\r\n\r\n private handleYearSelect = (e: Event) => {\r\n if (e.target instanceof HTMLSelectElement) {\r\n this.setYear(parseInt(e.target.value, 10));\r\n }\r\n };\r\n\r\n private handleInputChange = (e: Event) => {\r\n const target = e.target as HTMLInputElement;\r\n\r\n const cleanedValue = cleanValue(target, DISALLOWED_CHARACTERS);\r\n\r\n this.setValue(cleanedValue);\r\n };\r\n\r\n private setValue(value: Date | string) {\r\n const event = this.prepareEvent(value);\r\n\r\n this.value = typeof value === \"string\" ? value : event.value;\r\n\r\n if (this.value !== this.previousValue) {\r\n this.dsoDateChange.emit(event);\r\n this.previousValue = this.value;\r\n }\r\n }\r\n\r\n private prepareEvent = (value: Date | string): DsoDatePickerLegacyChangeEvent => {\r\n const event: DsoDatePickerLegacyChangeEvent = {\r\n component: \"dso-date-picker-legacy\",\r\n value: \"\",\r\n valueAsDate: undefined,\r\n };\r\n\r\n if (value instanceof Date) {\r\n event.valueAsDate = value;\r\n } else {\r\n event.value = value;\r\n event.valueAsDate = parseDutchDate(value);\r\n }\r\n\r\n if (event.valueAsDate) {\r\n event.value = printDutchDate(event.valueAsDate);\r\n }\r\n\r\n if (!event.valueAsDate && this.required) {\r\n event.error = \"required\";\r\n }\r\n\r\n if (event.value && !event.valueAsDate) {\r\n event.error = \"invalid\";\r\n }\r\n\r\n if (event.valueAsDate && (this.min || this.max)) {\r\n const min = parseDutchDate(this.min);\r\n const max = parseDutchDate(this.max);\r\n const clampValue = clamp(event.valueAsDate, min, max);\r\n\r\n if (clampValue !== event.valueAsDate && clampValue === min) {\r\n event.valueAsDate = undefined;\r\n event.error = \"min-range\";\r\n } else if (clampValue !== event.valueAsDate && clampValue === max) {\r\n event.valueAsDate = undefined;\r\n event.error = \"max-range\";\r\n }\r\n }\r\n\r\n return event;\r\n };\r\n\r\n private processFocusedDayNode = (element: HTMLButtonElement) => {\r\n this.focusedDayNode = element;\r\n\r\n if (this.activeFocus && this.open) {\r\n setTimeout(() => element.focus(), 0);\r\n }\r\n };\r\n\r\n componentWillLoad(): void | Promise<void> {\r\n const minDate = parseDutchDate(this.min);\r\n const maxDate = parseDutchDate(this.max);\r\n\r\n if (minDate && minDate > this.focusedDay) {\r\n this.focusedDay = minDate;\r\n }\r\n\r\n if (maxDate && maxDate < this.focusedDay) {\r\n this.focusedDay = maxDate;\r\n }\r\n }\r\n\r\n componentDidLoad() {\r\n const valueAsDate = parseDutchDate(this.value);\r\n if (valueAsDate) {\r\n this.previousValue = this.value = printDutchDate(valueAsDate);\r\n }\r\n\r\n if (this.dsoAutofocus) {\r\n this.setFocus();\r\n }\r\n }\r\n\r\n /**\r\n * render() function\r\n * Always the last one in the class.\r\n */\r\n render() {\r\n const valueAsDate = parseDutchDate(this.value);\r\n const formattedDate = valueAsDate && printDutchDate(valueAsDate);\r\n const selectedYear = (valueAsDate || this.focusedDay).getFullYear();\r\n const focusedMonth = this.focusedDay.getMonth();\r\n const focusedYear = this.focusedDay.getFullYear();\r\n\r\n const minDate = parseDutchDate(this.min);\r\n const maxDate = parseDutchDate(this.max);\r\n const prevMonthDisabled = minDate && minDate.getMonth() === focusedMonth && minDate.getFullYear() === focusedYear;\r\n const nextMonthDisabled = maxDate && maxDate.getMonth() === focusedMonth && maxDate.getFullYear() === focusedYear;\r\n\r\n let minYear = selectedYear - 10;\r\n let maxYear = selectedYear + 10;\r\n if (minDate) {\r\n minYear = Math.max(minYear, minDate.getFullYear());\r\n }\r\n if (maxDate) {\r\n maxYear = Math.min(maxYear, maxDate.getFullYear());\r\n }\r\n\r\n return (\r\n <Host>\r\n <div class={{ \"dso-date\": true, \"dso-visible\": this.visible }}>\r\n <div class=\"dso-date__input-wrapper\">\r\n <input\r\n class=\"dso-date__input\"\r\n value={this.value}\r\n placeholder={this.localization.placeholder}\r\n id={this.identifier}\r\n disabled={this.disabled}\r\n role={this.role ?? undefined}\r\n required={this.required ? true : undefined}\r\n aria-autocomplete=\"none\"\r\n aria-invalid={this.invalid?.toString()}\r\n aria-describedby={this.describedBy}\r\n onInput={this.handleInputChange}\r\n onFocus={this.handleFocus}\r\n onBlur={this.handleBlur}\r\n onKeyUp={this.handleKeyUp}\r\n onKeyDown={this.handleKeyDown}\r\n autoComplete=\"off\"\r\n ref={(element) => (this.datePickerLegacyInput = element)}\r\n />\r\n <button\r\n type=\"button\"\r\n class=\"dso-date__toggle\"\r\n onClick={this.toggleOpen}\r\n disabled={this.disabled}\r\n ref={(element) => (this.datePickerLegacyButton = element)}\r\n >\r\n <span class=\"dso-date__toggle-icon\">\r\n <dso-icon icon=\"calendar\"></dso-icon>\r\n </span>\r\n <span class=\"dso-date__vhidden\">\r\n {this.localization.buttonLabel}\r\n {formattedDate && (\r\n <span>\r\n , {this.localization.selectedDateMessage} {formattedDate}\r\n </span>\r\n )}\r\n </span>\r\n </button>\r\n </div>\r\n\r\n <div\r\n class={{\r\n \"dso-date__dialog\": true,\r\n \"is-left\": this.direction === \"left\",\r\n \"is-active\": this.open,\r\n }}\r\n role=\"dialog\"\r\n aria-modal=\"true\"\r\n aria-hidden={this.open ? \"false\" : \"true\"}\r\n aria-labelledby={this.dialogLabelId}\r\n onTouchMove={this.handleTouchMove}\r\n onTouchStart={this.handleTouchStart}\r\n onTouchEnd={this.handleTouchEnd}\r\n >\r\n <div class=\"dso-date__dialog-content\" onKeyDown={this.handleEscKey}>\r\n <div class=\"dso-date__vhidden dso-date__instructions\" aria-live=\"polite\">\r\n {this.localization.keyboardInstruction}\r\n </div>\r\n <div class=\"dso-date__mobile\" onFocusin={this.disableActiveFocus}>\r\n <label class=\"dso-date__mobile-heading\">{this.localization.calendarHeading}</label>\r\n <button\r\n class=\"dso-date__close\"\r\n ref={(element) => (this.firstFocusableElement = element)}\r\n onKeyDown={this.handleFirstFocusableKeydown}\r\n onClick={() => this.hide()}\r\n type=\"button\"\r\n >\r\n <dso-icon icon=\"times\"></dso-icon>\r\n <span class=\"dso-date__vhidden\">{this.localization.closeLabel}</span>\r\n </button>\r\n </div>\r\n <div class=\"dso-date__header\" onFocusin={this.disableActiveFocus}>\r\n <div>\r\n <h2 id={this.dialogLabelId} class=\"dso-date__vhidden\" aria-live=\"polite\">\r\n {this.localization.monthNames[focusedMonth]} {this.focusedDay.getFullYear()}\r\n </h2>\r\n\r\n <label htmlFor={this.monthSelectId} class=\"dso-date__vhidden\">\r\n {this.localization.monthSelectLabel}\r\n </label>\r\n <div class=\"dso-date__select\">\r\n <select\r\n id={this.monthSelectId}\r\n class=\"dso-date__select--month\"\r\n ref={(element) => (this.monthSelectNode = element)}\r\n onChange={this.handleMonthSelect}\r\n >\r\n {monthRange(this.localization, selectedYear, minDate, maxDate).map((month) => {\r\n const index = this.localization.monthNames.indexOf(month);\r\n\r\n return (\r\n <option key={month} value={index} selected={index === focusedMonth}>\r\n {month}\r\n </option>\r\n );\r\n })}\r\n </select>\r\n <div class=\"dso-date__select-label\" aria-hidden=\"true\">\r\n <span>{this.localization.monthNamesShort[focusedMonth]}</span>\r\n <dso-icon icon=\"chevron-down\"></dso-icon>\r\n </div>\r\n </div>\r\n\r\n <label htmlFor={this.yearSelectId} class=\"dso-date__vhidden\">\r\n {this.localization.yearSelectLabel}\r\n </label>\r\n <div class=\"dso-date__select\">\r\n <select id={this.yearSelectId} class=\"dso-date__select--year\" onChange={this.handleYearSelect}>\r\n {range(minYear, maxYear).map((year) => (\r\n <option key={year} selected={year === focusedYear}>\r\n {year}\r\n </option>\r\n ))}\r\n </select>\r\n <div class=\"dso-date__select-label\" aria-hidden=\"true\">\r\n <span>{this.focusedDay.getFullYear()}</span>\r\n <dso-icon icon=\"chevron-down\"></dso-icon>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"dso-date__nav\">\r\n <button\r\n class=\"dso-date__prev\"\r\n onClick={this.handlePreviousMonthClick}\r\n disabled={prevMonthDisabled}\r\n type=\"button\"\r\n >\r\n <dso-icon icon=\"chevron-left\"></dso-icon>\r\n <span class=\"dso-date__vhidden\">{this.localization.prevMonthLabel}</span>\r\n </button>\r\n <button\r\n class=\"dso-date__next\"\r\n onClick={this.handleNextMonthClick}\r\n disabled={nextMonthDisabled}\r\n type=\"button\"\r\n >\r\n <dso-icon icon=\"chevron-right\"></dso-icon>\r\n <span class=\"dso-date__vhidden\">{this.localization.nextMonthLabel}</span>\r\n </button>\r\n </div>\r\n </div>\r\n <DatePickerLegacyMonth\r\n selectedDate={valueAsDate}\r\n focusedDate={this.focusedDay}\r\n onDateSelect={this.handleDaySelect}\r\n onKeyboardNavigation={this.handleKeyboardNavigation}\r\n labelledById={this.dialogLabelId}\r\n localization={this.localization}\r\n firstDayOfWeek={this.firstDayOfWeek}\r\n focusedDayRef={this.processFocusedDayNode}\r\n min={minDate}\r\n max={maxDate}\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n </Host>\r\n );\r\n }\r\n}\r\n"],"mappings":"oGAmBA,MAAMA,EAAiC,CACrCC,YAAa,aACbC,YAAa,aACbC,oBAAqB,yBACrBC,eAAgB,eAChBC,eAAgB,iBAChBC,iBAAkB,QAClBC,gBAAiB,OACjBC,WAAY,UACZC,oBAAqB,kDACrBC,gBAAiB,iBACjBC,SAAU,CAAC,SAAU,UAAW,UAAW,WAAY,YAAa,UAAW,YAC/EC,WAAY,CACV,UACA,WACA,QACA,QACA,MACA,OACA,OACA,WACA,YACA,UACA,WACA,YAEFC,gBAAiB,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,QC5CjG,IAAYC,GAAZ,SAAYA,GACVA,IAAA,sBACAA,IAAA,sBACAA,IAAA,wBACAA,IAAA,4BACAA,IAAA,0BACAA,IAAA,sBACAA,IAAA,yBACD,EARD,CAAYA,MAQX,K,SAEeC,EAAWC,EAAcC,EAAeC,GACtD,MAAMC,EAASC,SAASF,EAAK,IAC7B,MAAMG,EAAWD,SAASH,EAAO,IACjC,MAAMK,EAAUF,SAASJ,EAAM,IAE/B,MAAMO,EACJC,OAAOC,UAAUH,IACjBE,OAAOC,UAAUJ,IACjBG,OAAOC,UAAUN,IACjBE,EAAW,GACXA,GAAY,IACZF,EAAS,GACTA,GAAU,IACVG,EAAU,EAEZ,GAAIC,EAAS,CACX,OAAO,IAAIG,KAAKJ,EAASD,EAAW,EAAGF,E,CAE3C,CAKM,SAAUQ,EAAeC,GAC7B,IAAKA,EAAO,CACV,M,CAGF,MAAMC,EAAUD,EAAME,MAAM,KAE5B,GACED,EAAQE,SAAW,UACZF,EAAQ,KAAO,iBACfA,EAAQ,KAAO,iBACfA,EAAQ,KAAO,UACtBA,EAAQ,GAAGE,SAAW,EACtB,CACA,OAAOhB,EAAWc,EAAQ,GAAIA,EAAQ,GAAIA,EAAQ,G,CAEtD,CAMM,SAAUG,EAAeC,GAC7B,IAAKA,EAAM,CACT,MAAO,E,CAGT,MAAMC,EAAID,EAAKE,UAAUC,SAAS,IAAIC,SAAS,EAAG,KAClD,MAAMC,GAAKL,EAAKM,WAAa,GAAGH,SAAS,IAAIC,SAAS,EAAG,KACzD,MAAMG,EAAIP,EAAKQ,cAAcL,SAAS,IAAIC,SAAS,EAAG,KAEtD,MAAO,GAAGH,KAAKI,KAAKE,GACtB,CAKgB,SAAAE,EAAQC,EAAqBC,GAC3C,IAAKD,IAAMC,EAAG,CACZ,OAAO,K,CAGT,OAAOD,EAAEF,gBAAkBG,EAAEH,eAAiBE,EAAEJ,aAAeK,EAAEL,YAAcI,EAAER,YAAcS,EAAET,SACnG,CAEgB,SAAAU,EAAQZ,EAAYa,GAClC,MAAMZ,EAAI,IAAIR,KAAKO,GACnBC,EAAEa,QAAQb,EAAEC,UAAYW,GACxB,OAAOZ,CACT,CAcM,SAAUc,EAAYf,EAAYgB,EAA6BnC,EAAWoC,QAC9E,MAAMhB,EAAI,IAAIR,KAAKO,GACnB,MAAMf,EAAMgB,EAAEiB,SACd,MAAMC,GAAQlC,EAAM+B,EAAiB,EAAI,GAAK/B,EAAM+B,EAEpDf,EAAEa,QAAQb,EAAEC,UAAYiB,GACxB,OAAOlB,CACT,CAEM,SAAUmB,EAAUpB,EAAYgB,EAA6BnC,EAAWoC,QAC5E,MAAMhB,EAAI,IAAIR,KAAKO,GACnB,MAAMf,EAAMgB,EAAEiB,SACd,MAAMC,GAAQlC,EAAM+B,GAAiB,EAAK,GAAK,GAAK/B,EAAM+B,GAE1Df,EAAEa,QAAQb,EAAEC,UAAYiB,GACxB,OAAOlB,CACT,CAEM,SAAUoB,EAAarB,GAC3B,OAAO,IAAIP,KAAKO,EAAKQ,cAAeR,EAAKM,WAAY,EACvD,CAEM,SAAUgB,EAAWtB,GACzB,OAAO,IAAIP,KAAKO,EAAKQ,cAAeR,EAAKM,WAAa,EAAG,EAC3D,CAEgB,SAAAiB,EAASvB,EAAYhB,GACnC,MAAMiB,EAAI,IAAIR,KAAKO,GACnBC,EAAEsB,SAASvC,GACX,OAAOiB,CACT,CAEgB,SAAAuB,EAAQxB,EAAYjB,GAClC,MAAMkB,EAAI,IAAIR,KAAKO,GACnBC,EAAEwB,YAAY1C,GACd,OAAOkB,CACT,C,SAKgByB,EAAQ1B,EAAY2B,EAAYC,GAC9C,OAAOC,EAAM7B,EAAM2B,EAAKC,KAAS5B,CACnC,C,SAKgB6B,EAAM7B,EAAY2B,EAAYC,GAC5C,MAAME,EAAO9B,EAAK+B,UAElB,GAAIJ,GAAOA,aAAelC,MAAQqC,EAAOH,EAAII,UAAW,CACtD,OAAOJ,C,CAGT,GAAIC,GAAOA,aAAenC,MAAQqC,EAAOF,EAAIG,UAAW,CACtD,OAAOH,C,CAGT,OAAO5B,CACT,CAOA,SAASgC,EAAeC,EAAaC,GACnC,MAAMrB,EAAe,GACrB,IAAIsB,EAAUF,EAEd,OAAQxB,EAAQ0B,EAASD,GAAM,CAC7BrB,EAAKuB,KAAKD,GACVA,EAAUvB,EAAQuB,EAAS,E,CAG7BtB,EAAKuB,KAAKD,GAEV,OAAOtB,CACT,CAOM,SAAUwB,EAAerC,EAAYgB,EAA6BnC,EAAWoC,QACjF,MAAMgB,EAAQlB,EAAYM,EAAarB,GAAOgB,GAC9C,MAAMkB,EAAMd,EAAUE,EAAWtB,GAAOgB,GAExC,OAAOgB,EAAeC,EAAOC,EAC/B,CC9KO,MAAMI,EAAqE,EAChFC,aACAC,QACAvD,MACAwD,cACAC,uBACAC,gBACAjB,cAEA,MAAMkB,EAAUnC,EAAQxB,EAAKuD,GAC7B,MAAMK,EAAYpC,EAAQxB,EAAKsD,GAC/B,MAAMO,EAAkB7D,EAAIqB,aAAeiC,EAAWjC,WACtD,MAAMyC,GAAkBrB,EAExB,SAASsB,EAAYC,GACnBR,EAAYQ,EAAGhE,E,CAGjB,OACEiE,EACE,UAAAC,MAAO,CACL,gBAAiB,KACjB,WAAYP,GAEdQ,SAAUP,EAAY,GAAI,EAC1BQ,QAASL,EACTM,UAAWZ,EACXa,SAAUR,GAAkBD,EAC5BU,KAAK,SACLC,IAAMC,IACJ,GAAIb,GAAaa,GAAMf,EAAe,CACpCA,EAAce,E,IAIlBR,EAAA,sBAAkB,QAAQjE,EAAIiB,WAC9BgD,EAAM,QAAAC,MAAM,qBAAqBpD,EAAed,IACzC,EC7Cb,SAAS0E,EAASC,EAAYC,GAC5B,MAAMC,EAAS,GAEf,IAAK,IAAIC,EAAI,EAAGA,EAAIH,EAAM9D,OAAQiE,GAAKF,EAAW,CAChDC,EAAO1B,KAAKwB,EAAMI,MAAMD,EAAGA,EAAIF,G,CAGjC,OAAOC,CACT,CAEA,SAASG,EAAoBL,EAAYM,EAAwBC,GAC/D,OAAOP,EAAMQ,KAAI,CAACC,EAAGN,KACnB,MAAMO,GAAiBP,EAAIG,GAAkBN,EAAM9D,OACnD,MAAMyE,EAAOX,EAAMU,GACnB,IAAKC,EAAM,CACT,MAAM,IAAIC,MAAM,gB,CAGlB,OAAOL,EAAMI,EAAK,GAEtB,CAiBO,MAAME,EAAyE,EACpFC,eACAC,cACAC,eACA7G,eACAiD,iBACAW,MACAC,MACAiD,eACAnC,uBACAC,gBACAmC,cACAC,gBAEA,MAAMvC,EAAQ,IAAI/C,KAClB,MAAMoB,EAAOwB,EAAesC,EAAa3D,GAEzC,OACEkC,EACE,SAAAC,MAAM,kBACN6B,KAAK,OACY,kBAAAJ,EACjBK,UAAWF,EACXD,YAAaA,GAEb5B,EAAA,aACEA,EACG,UAAAe,EAAclG,EAAaW,SAAUsC,GAAiBkE,GACrDhC,EAAI,MAAAC,MAAM,yBAAyBgC,MAAM,OACvCjC,EAAkB,8BAAQgC,EAAQE,OAAO,EAAG,IAC5ClC,EAAM,QAAAC,MAAM,qBAAqB+B,QAKzChC,EAAA,aACGS,EAAM9C,EAAM,GAAGuD,KAAKiB,GACnBnC,EAAI,MAAAC,MAAM,iBACPkC,EAAKjB,KAAKnF,GACTiE,EAAA,MACEC,MAAM,iBACN6B,KAAK,WAAU,gBACAvE,EAAQxB,EAAKyF,GAAgB,OAASY,UACvC,eAAA7E,EAAQxB,EAAKuD,GAAS,OAAS8C,WAE7CpC,EAACZ,EAAmB,CAClBrD,IAAKA,EACLuD,MAAOA,EACPD,WAAYoC,EACZjD,QAASA,EAAQzC,EAAK0C,EAAKC,GAC3Ba,YAAaoC,EACbnC,qBAAsBA,EACtBC,cAAeA,WAOrB,ECpGN,SAAU4C,EACdxH,EACAyH,EACAC,EACAC,GAEA,GAAID,GAAWC,EAAS,CACtB,MAAMC,QAAEA,EAAOC,SAAEA,GAAa,CAAED,QAASF,EAAQjF,cAAeoF,SAAUH,EAAQnF,YAClF,MAAMuF,QAAEA,EAAOC,SAAEA,GAAa,CAAED,QAASH,EAAQlF,cAAesF,SAAUJ,EAAQpF,YAElF,OAAOvC,EAAaY,WAAWoH,QAAO,CAACC,EAAQC,KAC7C,GAAIN,IAAYH,GAAgBK,IAAYL,EAAc,CACxD,OAAOS,GAASL,GAAYK,GAASH,C,CAGvC,GAAIH,IAAYH,EAAc,CAC5B,OAAOS,GAASL,C,CAGlB,GAAIC,IAAYL,EAAc,CAC5B,OAAOS,GAASH,C,CAGlB,OAAO,IAAI,G,CAIf,GAAIL,EAAS,CACX,MAAME,QAAEA,EAAOC,SAAEA,GAAa,CAAED,QAASF,EAAQjF,cAAeoF,SAAUH,EAAQnF,YAElF,OAAOvC,EAAaY,WAAWoH,QAAO,CAACC,EAAQC,IAAUN,IAAYH,GAAgBS,GAASL,G,CAGhG,GAAIF,EAAS,CACX,MAAMG,QAAEA,EAAOC,SAAEA,GAAa,CAAED,QAASH,EAAQlF,cAAesF,SAAUJ,EAAQpF,YAElF,OAAOvC,EAAaY,WAAWoH,QAAO,CAACC,EAAQC,IAAUJ,IAAYL,GAAgBS,GAASH,G,CAGhG,OAAO/H,EAAaY,UACtB,CC1CgB,SAAAuH,EAAMC,EAAcC,GAClC,MAAMtC,EAAmB,GACzB,IAAK,IAAIC,EAAIoC,EAAMpC,GAAKqC,EAAIrC,IAAK,CAC/BD,EAAO1B,KAAK2B,E,CAEd,OAAOD,CACT,CCNA,MAAMuC,EAAsB,80VCyC5B,MAAMC,EAAU,CACdC,IAAK,EACLC,IAAK,GAELC,QAAS,GACTC,UAAW,GACXC,IAAK,GACLC,KAAM,GACNC,KAAM,GACNC,GAAI,GACJC,MAAO,GACPC,KAAM,IAGR,MAAMC,EAAwB,YAC9B,MAAMC,EAAgB,IAEtB,SAASC,EAAWC,EAAyBC,GAC3C,MAAM1H,EAAQyH,EAAMzH,MACpB,MAAM2H,EAASF,EAAMG,eAErB,IAAKD,EAAQ,CACX,OAAO3H,C,CAGT,MAAM6H,EAAe7H,EAAMqE,MAAM,EAAGsD,GACpC,MAAMG,EAAc9H,EAAMqE,MAAMsD,EAAQ3H,EAAMG,QAE9C,MAAM4H,EAAuBF,EAAaG,QAAQN,EAAO,IACzD,MAAMO,EAAoBH,EAAYE,QAAQN,EAAO,IAErD,MAAMQ,EAAWH,EAAuBE,EACxC,MAAME,EAAYJ,EAAqB5H,OAEvCsH,EAAMzH,MAAQkI,EACdT,EAAMG,eAAiBH,EAAMW,aAAeD,EAE5C,OAAOD,CACT,C,MAQaG,EAAmB,MANhC,WAAAC,CAAAC,G,qMAUUC,KAAAC,cAAgBC,EAAiB,gBACjCF,KAAAG,aAAeD,EAAiB,eAChCF,KAAAI,cAAgBF,EAAiB,gBAcjCF,KAAYpK,aAAqByK,EACjCL,KAAAnH,eAA6BnC,EAAWoC,OAchDkH,KAAWM,YAAG,MAGdN,KAAA5F,WAAa,IAAI9C,KAGjB0I,KAAIO,KAAG,MAGPP,KAAOQ,QAAG,MAUVR,KAAIS,KAAG,OAaPT,KAAQ5E,SAAG,MAOX4E,KAAInD,KAAkB,KAQtBmD,KAASU,UAAiC,QAM1CV,KAAQW,SAAG,MAkBXX,KAAYY,aAAG,MAMfZ,KAAKxI,MAAG,GAmIAwI,KAAiBa,kBAAG,KAC1Bb,KAAKM,YAAc,IAAI,EAGjBN,KAAkBc,mBAAG,KAC3Bd,KAAKM,YAAc,KAAK,EA2ClBN,KAAAe,WAAcjG,IACpBA,EAAEkG,iBACF,GAAIhB,KAAKO,KAAM,CACbP,KAAKiB,KAAK,M,KACL,CACLjB,KAAKkB,M,GAIDlB,KAAAmB,aAAgBC,IACtB,GAAIA,EAAMjD,UAAYA,EAAQE,IAAK,CACjC2B,KAAKiB,M,GAIDjB,KAAAqB,WAAcD,IACpBA,EAAME,kBAENtB,KAAKuB,QAAQC,KAAK,CAChBC,UAAW,0BACX,EAGIzB,KAAA0B,YAAeN,IACrBA,EAAME,kBAENtB,KAAK2B,SAASH,KAAK,CACjBC,UAAW,yBACXG,cAAeR,GACf,EAGIpB,KAAA6B,cAAiBT,IACvBA,EAAME,kBAENtB,KAAK8B,WAAWN,KAAK,CACnBC,UAAW,yBACXG,cAAeR,GACf,EAGIpB,KAAA+B,YAAeX,IACrBA,EAAME,kBAENtB,KAAKgC,SAASR,KAAK,CACjBC,UAAW,0BACX,EAGIzB,KAAAiC,iBAAoBb,IAC1B,MAAMc,EAAQd,EAAMe,eAAe,GACnC,IAAKD,EAAO,CACV,MAAM,IAAI7F,MAAM,iB,CAGlB2D,KAAKoC,cAAgBF,EAAMG,MAC3BrC,KAAKsC,cAAgBJ,EAAMK,KAAK,EAG1BvC,KAAAwC,gBAAmBpB,IACzBA,EAAMJ,gBAAgB,EAGhBhB,KAAAyC,eAAkBrB,I,QACxB,MAAMc,EAAQd,EAAMe,eAAe,GACnC,IAAKD,EAAO,CACV,MAAM,IAAI7F,MAAM,iB,CAGlB,MAAMqG,EAAQR,EAAMG,QAASM,EAAA3C,KAAKoC,iBAAiB,MAAAO,SAAA,EAAAA,EAAA,GACnD,MAAMC,EAAQV,EAAMK,QAASM,EAAA7C,KAAKsC,iBAAiB,MAAAO,SAAA,EAAAA,EAAA,GACnD,MAAMC,EAAY,GAElB,MAAMC,EAAoBC,KAAKC,IAAIP,IAAUI,GAAaE,KAAKC,IAAIL,IAAUE,EAC7E,MAAMI,EAAmBF,KAAKC,IAAIL,IAAUE,GAAaE,KAAKC,IAAIP,IAAUI,GAAaF,EAAQ,EAEjG,GAAIG,EAAmB,CACrB/C,KAAKmD,UAAUT,EAAQ,EAAI,GAAI,E,MAC1B,GAAIQ,EAAkB,CAC3BlD,KAAKiB,KAAK,OACVG,EAAMJ,gB,CAGRhB,KAAKsC,cAAgBnF,UACrB6C,KAAKoC,cAAgBjF,SAAS,EAGxB6C,KAAAoD,qBAAwBhC,IAC9BA,EAAMJ,iBACNhB,KAAKmD,UAAU,EAAE,EAGXnD,KAAAqD,yBAA4BjC,IAClCA,EAAMJ,iBACNhB,KAAKmD,WAAU,EAAG,EAGZnD,KAAAsD,4BAA+BlC,I,MAErC,GAAIA,EAAMjD,UAAYA,EAAQC,KAAOgD,EAAMmC,SAAU,EACnDZ,EAAA3C,KAAKwD,kBAAgB,MAAAb,SAAA,SAAAA,EAAAc,QACrBrC,EAAMJ,gB,GAIFhB,KAAA0D,yBAA4BtC,I,MAGlC,GAAIA,EAAMjD,UAAYA,EAAQC,MAAQgD,EAAMmC,SAAU,CACpDnC,EAAMJ,kBACN2B,EAAA3C,KAAK2D,yBAAuB,MAAAhB,SAAA,SAAAA,EAAAc,QAC5B,M,CAGF,IAAIG,EAAU,KAEd,OAAQxC,EAAMjD,SACZ,KAAKA,EAAQS,MACXoB,KAAKvH,QAAQ,GACb,MACF,KAAK0F,EAAQO,KACXsB,KAAKvH,SAAQ,GACb,MACF,KAAK0F,EAAQU,KACXmB,KAAKvH,QAAQ,GACb,MACF,KAAK0F,EAAQQ,GACXqB,KAAKvH,SAAQ,GACb,MACF,KAAK0F,EAAQG,QACX,GAAI8C,EAAMmC,SAAU,CAClBvD,KAAK6D,UAAS,E,KACT,CACL7D,KAAKmD,WAAU,E,CAEjB,MACF,KAAKhF,EAAQI,UACX,GAAI6C,EAAMmC,SAAU,CAClBvD,KAAK6D,SAAS,E,KACT,CACL7D,KAAKmD,UAAU,E,CAEjB,MACF,KAAKhF,EAAQM,KACXuB,KAAKpH,cACL,MACF,KAAKuF,EAAQK,IACXwB,KAAK/G,YACL,MACF,QACE2K,EAAU,MAGd,GAAIA,EAAS,CACXxC,EAAMJ,iBACNhB,KAAKa,mB,GAIDb,KAAA8D,gBAAkB,CAACC,EAAoBjN,KAC7C,IAAKyC,EAAQzC,EAAKS,EAAeyI,KAAKxG,KAAMjC,EAAeyI,KAAKvG,MAAO,CACrE,M,CAGF,GAAI3C,EAAIqB,aAAe6H,KAAK5F,WAAWjC,WAAY,CACjD6H,KAAKgE,SAASlN,GACdkJ,KAAKiB,M,KACA,CACLjB,KAAKiE,cAAcnN,E,GAIfkJ,KAAAkE,kBAAqBpJ,IAE3B,GAAIA,EAAEqJ,kBAAkBC,kBAAmB,CACzCpE,KAAK5G,SAASpC,SAAS8D,EAAEqJ,OAAO3M,MAAO,I,GAInCwI,KAAAqE,iBAAoBvJ,IAC1B,GAAIA,EAAEqJ,kBAAkBC,kBAAmB,CACzCpE,KAAK3G,QAAQrC,SAAS8D,EAAEqJ,OAAO3M,MAAO,I,GAIlCwI,KAAAsE,kBAAqBxJ,IAC3B,MAAMqJ,EAASrJ,EAAEqJ,OAEjB,MAAMI,EAAevF,EAAWmF,EAAQrF,GAExCkB,KAAKgE,SAASO,EAAa,EAcrBvE,KAAAwE,aAAgBhN,IACtB,MAAM4J,EAAwC,CAC5CK,UAAW,yBACXjK,MAAO,GACPiN,YAAatH,WAGf,GAAI3F,aAAiBF,KAAM,CACzB8J,EAAMqD,YAAcjN,C,KACf,CACL4J,EAAM5J,MAAQA,EACd4J,EAAMqD,YAAclN,EAAeC,E,CAGrC,GAAI4J,EAAMqD,YAAa,CACrBrD,EAAM5J,MAAQI,EAAewJ,EAAMqD,Y,CAGrC,IAAKrD,EAAMqD,aAAezE,KAAKW,SAAU,CACvCS,EAAMsD,MAAQ,U,CAGhB,GAAItD,EAAM5J,QAAU4J,EAAMqD,YAAa,CACrCrD,EAAMsD,MAAQ,S,CAGhB,GAAItD,EAAMqD,cAAgBzE,KAAKxG,KAAOwG,KAAKvG,KAAM,CAC/C,MAAMD,EAAMjC,EAAeyI,KAAKxG,KAChC,MAAMC,EAAMlC,EAAeyI,KAAKvG,KAChC,MAAMkL,EAAajL,EAAM0H,EAAMqD,YAAajL,EAAKC,GAEjD,GAAIkL,IAAevD,EAAMqD,aAAeE,IAAenL,EAAK,CAC1D4H,EAAMqD,YAActH,UACpBiE,EAAMsD,MAAQ,W,MACT,GAAIC,IAAevD,EAAMqD,aAAeE,IAAelL,EAAK,CACjE2H,EAAMqD,YAActH,UACpBiE,EAAMsD,MAAQ,W,EAIlB,OAAOtD,CAAK,EAGNpB,KAAA4E,sBAAyBC,IAC/B7E,KAAKwD,eAAiBqB,EAEtB,GAAI7E,KAAKM,aAAeN,KAAKO,KAAM,CACjCuE,YAAW,IAAMD,EAAQpB,SAAS,E,EAyNvC,CAjlBC,mBAAAsB,CAAoBjK,GAClB,IAAKkF,KAAKO,KAAM,CACd,M,CAGF,MAAMyE,EAAOlK,EAAEmK,eAEf,IAAK,MAAMd,KAAUa,EAAM,CACzB,GAAIb,aAAkBe,MAAQlF,KAAK6E,QAAQM,SAAShB,GAAS,CAC3D,M,EAIJnE,KAAKiB,KAAK,M,CAOZ,cAAMmE,G,MACJ,OAAOzC,EAAA3C,KAAKqF,yBAAuB,MAAA1C,SAAA,SAAAA,EAAAc,O,CAWrC,UAAMvC,GACJ,UAAWlB,KAAKsF,gBAAkB,YAAa,CAC7CC,aAAavF,KAAKsF,c,CAGpBtF,KAAKQ,QAAU,KAEfsE,YAAW,KACT9E,KAAKO,KAAO,KACZP,KAAKiE,cAAc1M,EAAeyI,KAAKxI,QAAU,IAAIF,MAErD,UAAW0I,KAAKwF,iBAAmB,YAAa,CAC9CD,aAAavF,KAAKwF,e,CAGpBxF,KAAKwF,eAAiBV,YAAW,SAAAnC,EAAM,OAAAA,EAAA3C,KAAKyF,mBAAe,MAAA9C,SAAA,SAAAA,EAAEc,OAAO,GAAE1E,EAAc,G,CASxF,UAAMkC,CAAKyE,EAAoB,MAC7B1F,KAAKO,KAAO,MAIZ,UAAWP,KAAKwF,iBAAmB,YAAa,CAC9CD,aAAavF,KAAKwF,e,CAGpBxF,KAAKsF,cAAgBR,YAAW,KAC9B,GAAIY,GAAqB1F,KAAK2F,uBAAwB,CACpD3F,KAAK2F,uBAAuBlC,O,CAG9BzD,KAAKQ,QAAU,KAAK,GACnBzB,EAAgB,I,CAcb,OAAAtG,CAAQC,GACdsH,KAAKiE,cAAcxL,EAAQuH,KAAK5F,WAAY1B,G,CAGtC,SAAAyK,CAAUyC,GAChB5F,KAAK5G,SAAS4G,KAAK5F,WAAWjC,WAAayN,E,CAGrC,QAAA/B,CAASgC,GACf7F,KAAK3G,QAAQ2G,KAAK5F,WAAW/B,cAAgBwN,E,CAGvC,WAAAjN,GACNoH,KAAKiE,cAAcrL,EAAYoH,KAAK5F,WAAY4F,KAAKnH,gB,CAG/C,SAAAI,GACN+G,KAAKiE,cAAchL,EAAU+G,KAAK5F,WAAY4F,KAAKnH,gB,CAG7C,QAAAO,CAASvC,GACf,MAAM2C,EAAMJ,EAASF,EAAa8G,KAAK5F,YAAavD,GACpD,MAAM4C,EAAMN,EAAWK,GACvB,MAAM3B,EAAOuB,EAAS4G,KAAK5F,WAAYvD,GAEvCmJ,KAAKiE,cAAcvK,EAAM7B,EAAM2B,EAAKC,G,CAG9B,OAAAJ,CAAQzC,GACd,MAAM4C,EAAMH,EAAQH,EAAa8G,KAAK5F,YAAaxD,GACnD,MAAM6C,EAAMN,EAAWK,GACvB,MAAM3B,EAAOwB,EAAQ2G,KAAK5F,WAAYxD,GAEtCoJ,KAAKiE,cAAcvK,EAAM7B,EAAM2B,EAAKC,G,CAG9B,aAAAwK,CAAcnN,GACpBkJ,KAAK5F,WAAaV,EAAM5C,EAAKS,EAAeyI,KAAKxG,KAAMjC,EAAeyI,KAAKvG,K,CAoMrE,QAAAuK,CAASxM,GACf,MAAM4J,EAAQpB,KAAKwE,aAAahN,GAEhCwI,KAAKxI,aAAeA,IAAU,SAAWA,EAAQ4J,EAAM5J,MAEvD,GAAIwI,KAAKxI,QAAUwI,KAAK8F,cAAe,CACrC9F,KAAK+F,cAAcvE,KAAKJ,GACxBpB,KAAK8F,cAAgB9F,KAAKxI,K,EAuD9B,iBAAAwO,GACE,MAAM1I,EAAU/F,EAAeyI,KAAKxG,KACpC,MAAM+D,EAAUhG,EAAeyI,KAAKvG,KAEpC,GAAI6D,GAAWA,EAAU0C,KAAK5F,WAAY,CACxC4F,KAAK5F,WAAakD,C,CAGpB,GAAIC,GAAWA,EAAUyC,KAAK5F,WAAY,CACxC4F,KAAK5F,WAAamD,C,EAItB,gBAAA0I,GACE,MAAMxB,EAAclN,EAAeyI,KAAKxI,OACxC,GAAIiN,EAAa,CACfzE,KAAK8F,cAAgB9F,KAAKxI,MAAQI,EAAe6M,E,CAGnD,GAAIzE,KAAKY,aAAc,CACrBZ,KAAKoF,U,EAQT,MAAAc,G,QACE,MAAMzB,EAAclN,EAAeyI,KAAKxI,OACxC,MAAM2O,EAAgB1B,GAAe7M,EAAe6M,GACpD,MAAMpH,GAAgBoH,GAAezE,KAAK5F,YAAY/B,cACtD,MAAM+N,EAAepG,KAAK5F,WAAWjC,WACrC,MAAMkO,EAAcrG,KAAK5F,WAAW/B,cAEpC,MAAMiF,EAAU/F,EAAeyI,KAAKxG,KACpC,MAAM+D,EAAUhG,EAAeyI,KAAKvG,KACpC,MAAM6M,EAAoBhJ,GAAWA,EAAQnF,aAAeiO,GAAgB9I,EAAQjF,gBAAkBgO,EACtG,MAAME,EAAoBhJ,GAAWA,EAAQpF,aAAeiO,GAAgB7I,EAAQlF,gBAAkBgO,EAEtG,IAAI7I,EAAUH,EAAe,GAC7B,IAAIK,EAAUL,EAAe,GAC7B,GAAIC,EAAS,CACXE,EAAUwF,KAAKvJ,IAAI+D,EAASF,EAAQjF,c,CAEtC,GAAIkF,EAAS,CACXG,EAAUsF,KAAKxJ,IAAIkE,EAASH,EAAQlF,c,CAGtC,OACE0C,EAACyL,EAAI,CAAAC,IAAA,4CACH1L,EAAA,OAAA0L,IAAA,2CAAKzL,MAAO,CAAE,WAAY,KAAM,cAAegF,KAAKQ,UAClDzF,EAAK,OAAA0L,IAAA,2CAAAzL,MAAM,2BACTD,EACE,SAAA0L,IAAA,2CAAAzL,MAAM,kBACNxD,MAAOwI,KAAKxI,MACZ1B,YAAakK,KAAKpK,aAAaE,YAC/B4Q,GAAI1G,KAAK2G,WACTvL,SAAU4E,KAAK5E,SACfyB,MAAM8F,EAAA3C,KAAKnD,QAAQ,MAAA8F,SAAA,EAAAA,EAAAxF,UACnBwD,SAAUX,KAAKW,SAAW,KAAOxD,UAAS,oBACxB,OAAM,gBACV0F,EAAA7C,KAAK4G,WAAO,MAAA/D,SAAA,SAAAA,EAAE7K,WACV,mBAAAgI,KAAK6G,YACvBC,QAAS9G,KAAKsE,kBACdyC,QAAS/G,KAAK+B,YACdiF,OAAQhH,KAAKqB,WACb4F,QAASjH,KAAK0B,YACdvG,UAAW6E,KAAK6B,cAChBqF,aAAa,MACb5L,IAAMuJ,GAAa7E,KAAKqF,sBAAwBR,IAElD9J,EAAA,UAAA0L,IAAA,2CACEpL,KAAK,SACLL,MAAM,mBACNE,QAAS8E,KAAKe,WACd3F,SAAU4E,KAAK5E,SACfE,IAAMuJ,GAAa7E,KAAK2F,uBAAyBd,GAEjD9J,EAAM,QAAA0L,IAAA,2CAAAzL,MAAM,yBACVD,EAAA,YAAA0L,IAAA,2CAAUU,KAAK,cAEjBpM,EAAM,QAAA0L,IAAA,2CAAAzL,MAAM,qBACTgF,KAAKpK,aAAaC,YAClBsQ,GACCpL,EAAA,QAAA0L,IAAA,iDACKzG,KAAKpK,aAAaG,oBAAmB,IAAGoQ,MAOrDpL,EAAA,OAAA0L,IAAA,2CACEzL,MAAO,CACL,mBAAoB,KACpB,UAAWgF,KAAKU,YAAc,OAC9B,YAAaV,KAAKO,MAEpB1D,KAAK,SACM,oBAAM,cACJmD,KAAKO,KAAO,QAAU,OAClB,kBAAAP,KAAKI,cACtBgH,YAAapH,KAAKwC,gBAClB6E,aAAcrH,KAAKiC,iBACnBqF,WAAYtH,KAAKyC,gBAEjB1H,EAAK,OAAA0L,IAAA,2CAAAzL,MAAM,2BAA2BG,UAAW6E,KAAKmB,cACpDpG,EAAK,OAAA0L,IAAA,2CAAAzL,MAAM,2CAAqD,sBAC7DgF,KAAKpK,aAAaS,qBAErB0E,EAAK,OAAA0L,IAAA,2CAAAzL,MAAM,mBAAmB8B,UAAWkD,KAAKc,oBAC5C/F,EAAO,SAAA0L,IAAA,2CAAAzL,MAAM,4BAA4BgF,KAAKpK,aAAaU,iBAC3DyE,EAAA,UAAA0L,IAAA,2CACEzL,MAAM,kBACNM,IAAMuJ,GAAa7E,KAAK2D,sBAAwBkB,EAChD1J,UAAW6E,KAAKsD,4BAChBpI,QAAS,IAAM8E,KAAKiB,OACpB5F,KAAK,UAELN,EAAU,YAAA0L,IAAA,2CAAAU,KAAK,UACfpM,EAAM,QAAA0L,IAAA,2CAAAzL,MAAM,qBAAqBgF,KAAKpK,aAAaQ,cAGvD2E,EAAK,OAAA0L,IAAA,2CAAAzL,MAAM,mBAAmB8B,UAAWkD,KAAKc,oBAC5C/F,EAAA,OAAA0L,IAAA,4CACE1L,EAAI,MAAA0L,IAAA,2CAAAC,GAAI1G,KAAKI,cAAepF,MAAM,oBAAmB,YAAW,UAC7DgF,KAAKpK,aAAaY,WAAW4P,GAAa,IAAGpG,KAAK5F,WAAW/B,eAGhE0C,EAAA,SAAA0L,IAAA,2CAAOc,QAASvH,KAAKC,cAAejF,MAAM,qBACvCgF,KAAKpK,aAAaM,kBAErB6E,EAAK,OAAA0L,IAAA,2CAAAzL,MAAM,oBACTD,EACE,UAAA0L,IAAA,2CAAAC,GAAI1G,KAAKC,cACTjF,MAAM,0BACNM,IAAMuJ,GAAa7E,KAAKyF,gBAAkBZ,EAC1C2C,SAAUxH,KAAKkE,mBAEd9G,EAAW4C,KAAKpK,aAAcyH,EAAcC,EAASC,GAAStB,KAAKpF,IAClE,MAAMiH,EAAQkC,KAAKpK,aAAaY,WAAWiR,QAAQ5Q,GAEnD,OACEkE,EAAQ,UAAA0L,IAAK5P,EAAOW,MAAOsG,EAAO4J,SAAU5J,IAAUsI,GACnDvP,EACM,KAIfkE,EAAA,OAAA0L,IAAA,2CAAKzL,MAAM,yBAAwB,cAAa,QAC9CD,EAAO,QAAA0L,IAAA,4CAAAzG,KAAKpK,aAAaa,gBAAgB2P,IACzCrL,EAAA,YAAA0L,IAAA,2CAAUU,KAAK,mBAInBpM,EAAA,SAAA0L,IAAA,2CAAOc,QAASvH,KAAKG,aAAcnF,MAAM,qBACtCgF,KAAKpK,aAAaO,iBAErB4E,EAAK,OAAA0L,IAAA,2CAAAzL,MAAM,oBACTD,EAAQ,UAAA0L,IAAA,2CAAAC,GAAI1G,KAAKG,aAAcnF,MAAM,yBAAyBwM,SAAUxH,KAAKqE,kBAC1EtG,EAAMP,EAASE,GAASzB,KAAKrF,GAC5BmE,EAAA,UAAQ0L,IAAK7P,EAAM8Q,SAAU9Q,IAASyP,GACnCzP,MAIPmE,EAAA,OAAA0L,IAAA,2CAAKzL,MAAM,yBAAwB,cAAa,QAC9CD,EAAA,QAAA0L,IAAA,4CAAOzG,KAAK5F,WAAW/B,eACvB0C,EAAA,YAAA0L,IAAA,2CAAUU,KAAK,oBAKrBpM,EAAK,OAAA0L,IAAA,2CAAAzL,MAAM,iBACTD,EAAA,UAAA0L,IAAA,2CACEzL,MAAM,iBACNE,QAAS8E,KAAKqD,yBACdjI,SAAUkL,EACVjL,KAAK,UAELN,EAAU,YAAA0L,IAAA,2CAAAU,KAAK,iBACfpM,EAAM,QAAA0L,IAAA,2CAAAzL,MAAM,qBAAqBgF,KAAKpK,aAAaI,iBAErD+E,EAAA,UAAA0L,IAAA,2CACEzL,MAAM,iBACNE,QAAS8E,KAAKoD,qBACdhI,SAAUmL,EACVlL,KAAK,UAELN,EAAU,YAAA0L,IAAA,2CAAAU,KAAK,kBACfpM,EAAA,QAAA0L,IAAA,2CAAMzL,MAAM,qBAAqBgF,KAAKpK,aAAaK,mBAIzD8E,EAACuB,EAAqB,CAAAmK,IAAA,2CACpBlK,aAAckI,EACdjI,YAAawD,KAAK5F,WAClBsC,aAAcsD,KAAK8D,gBACnBvJ,qBAAsByF,KAAK0D,yBAC3BjH,aAAcuD,KAAKI,cACnBxK,aAAcoK,KAAKpK,aACnBiD,eAAgBmH,KAAKnH,eACrB2B,cAAewF,KAAK4E,sBACpBpL,IAAK8D,EACL7D,IAAK8D,O","ignoreList":[]}
1
+ {"version":3,"names":["localization","buttonLabel","placeholder","selectedDateMessage","prevMonthLabel","nextMonthLabel","monthSelectLabel","yearSelectLabel","closeLabel","keyboardInstruction","calendarHeading","dayNames","monthNames","monthNamesShort","DaysOfWeek","createDate","year","month","day","dayInt","parseInt","monthInt","yearInt","isValid","Number","isInteger","Date","parseDutchDate","value","matches","split","length","printDutchDate","date","d","getDate","toString","padStart","m","getMonth","y","getFullYear","isEqual","a","b","addDays","days","setDate","startOfWeek","firstDayOfWeek","Monday","getDay","diff","endOfWeek","startOfMonth","endOfMonth","setMonth","setYear","setFullYear","inRange","min","max","clamp","time","getTime","getDaysInRange","start","end","current","push","getViewOfMonth","DatePickerLegacyDay","focusedDay","today","onDaySelect","onKeyboardNavigation","focusedDayRef","isToday","isFocused","notCurrentMonth","isOutsideRange","handleClick","e","h","class","tabIndex","onClick","onKeyDown","disabled","type","ref","el","chunk","array","chunkSize","result","i","slice","mapWithOffset","startingOffset","mapFn","map","_","adjustedIndex","item","Error","DatePickerLegacyMonth","selectedDate","focusedDate","labelledById","onDateSelect","onMouseDown","onFocusIn","role","onFocusin","dayName","scope","substr","week","undefined","monthRange","selectedYear","minDate","maxDate","minYear","minMonth","maxYear","maxMonth","filter","_month","index","range","from","to","datePickerLegacyCss","keyCode","TAB","ESC","PAGE_UP","PAGE_DOWN","END","HOME","LEFT","UP","RIGHT","DOWN","DISALLOWED_CHARACTERS","TRANSITION_MS","cleanValue","input","regex","cursor","selectionStart","beforeCursor","afterCursor","filteredBeforeCursor","replace","filterAfterCursor","newValue","newCursor","selectionEnd","DsoDatePickerLegacy","constructor","hostRef","this","monthSelectId","createIdentifier","yearSelectId","dialogLabelId","defaultLocalization","activeFocus","open","visible","name","direction","required","dsoAutofocus","enableActiveFocus","disableActiveFocus","toggleOpen","preventDefault","hide","show","handleEscKey","event","handleBlur","stopPropagation","dsoBlur","emit","component","handleKeyUp","dsoKeyUp","originalEvent","handleKeyDown","dsoKeyDown","handleFocus","dsoFocus","handleTouchStart","touch","changedTouches","initialTouchX","pageX","initialTouchY","pageY","handleTouchMove","handleTouchEnd","distX","_a","distY","_b","threshold","isHorizontalSwipe","Math","abs","isDownwardsSwipe","addMonths","handleNextMonthClick","handlePreviousMonthClick","handleFirstFocusableKeydown","shiftKey","focusedDayNode","focus","handleKeyboardNavigation","firstFocusableElement","handled","addYears","handleDaySelect","_event","setValue","setFocusedDay","handleMonthSelect","target","HTMLSelectElement","handleYearSelect","handleInputChange","cleanedValue","prepareEvent","valueAsDate","error","clampValue","processFocusedDayNode","element","setTimeout","handleDocumentClick","path","composedPath","Node","contains","setFocus","datePickerLegacyInput","hideTimeoutId","clearTimeout","focusTimeoutId","monthSelectNode","moveFocusToButton","datePickerLegacyButton","months","years","previousValue","dsoDateChange","componentWillLoad","componentDidLoad","render","formattedDate","focusedMonth","focusedYear","prevMonthDisabled","nextMonthDisabled","Host","key","id","identifier","invalid","describedBy","onInput","onFocus","onBlur","onKeyUp","autoComplete","icon","onTouchMove","onTouchStart","onTouchEnd","htmlFor","onChange","indexOf","selected"],"sources":["src/components/date-picker-legacy/date-localization.ts","src/components/date-picker-legacy/date-utils.ts","src/components/date-picker-legacy/date-picker-day.tsx","src/components/date-picker-legacy/date-picker-month.tsx","src/components/date-picker-legacy/utils/month-range.ts","src/components/date-picker-legacy/utils/range.ts","src/components/date-picker-legacy/date-picker-legacy.scss?tag=dso-date-picker-legacy&encapsulation=scoped","src/components/date-picker-legacy/date-picker-legacy.tsx"],"sourcesContent":["type MonthsNames = [string, string, string, string, string, string, string, string, string, string, string, string];\r\ntype DayNames = [string, string, string, string, string, string, string];\r\n\r\nexport type DsoLocalizedText = {\r\n buttonLabel: string;\r\n placeholder: string;\r\n selectedDateMessage: string;\r\n prevMonthLabel: string;\r\n nextMonthLabel: string;\r\n monthSelectLabel: string;\r\n yearSelectLabel: string;\r\n closeLabel: string;\r\n keyboardInstruction: string;\r\n calendarHeading: string;\r\n dayNames: DayNames;\r\n monthNames: MonthsNames;\r\n monthNamesShort: MonthsNames;\r\n};\r\n\r\nconst localization: DsoLocalizedText = {\r\n buttonLabel: \"Kies datum\",\r\n placeholder: \"dd-mm-jjjj\",\r\n selectedDateMessage: \"Geselecteerde datum is\",\r\n prevMonthLabel: \"Vorige maand\",\r\n nextMonthLabel: \"Volgende maand\",\r\n monthSelectLabel: \"Maand\",\r\n yearSelectLabel: \"Jaar\",\r\n closeLabel: \"Sluiten\",\r\n keyboardInstruction: \"Gebruik de pijltjestoetsen om een dag te kiezen\",\r\n calendarHeading: \"Kies een datum\",\r\n dayNames: [\"Zondag\", \"Maandag\", \"Dinsdag\", \"Woensdag\", \"Donderdag\", \"Vrijdag\", \"Zaterdag\"],\r\n monthNames: [\r\n \"Januari\",\r\n \"Februari\",\r\n \"Maart\",\r\n \"April\",\r\n \"Mei\",\r\n \"Juni\",\r\n \"Juli\",\r\n \"Augustus\",\r\n \"September\",\r\n \"Oktober\",\r\n \"November\",\r\n \"December\",\r\n ],\r\n monthNamesShort: [\"Jan\", \"Feb\", \"Mrt\", \"Apr\", \"Mei\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Okt\", \"Nov\", \"Dec\"],\r\n};\r\n\r\nexport default localization;\r\n","// eslint-disable-next-line @stencil-community/ban-exported-const-enums -- This enum is not part of public API\r\nexport enum DaysOfWeek {\r\n Sunday = 0,\r\n Monday = 1,\r\n Tuesday = 2,\r\n Wednesday = 3,\r\n Thursday = 4,\r\n Friday = 5,\r\n Saturday = 6,\r\n}\r\n\r\nexport function createDate(year: string, month: string, day: string): Date | undefined {\r\n const dayInt = parseInt(day, 10);\r\n const monthInt = parseInt(month, 10);\r\n const yearInt = parseInt(year, 10);\r\n\r\n const isValid =\r\n Number.isInteger(yearInt) && // all parts should be integers\r\n Number.isInteger(monthInt) &&\r\n Number.isInteger(dayInt) &&\r\n monthInt > 0 && // month must be 1-12\r\n monthInt <= 12 &&\r\n dayInt > 0 && // day must be 1-31\r\n dayInt <= 31 &&\r\n yearInt > 0;\r\n\r\n if (isValid) {\r\n return new Date(yearInt, monthInt - 1, dayInt);\r\n }\r\n}\r\n\r\n/**\r\n * @param value date string in Dutch format D-M-YYYY\r\n */\r\nexport function parseDutchDate(value: string | undefined): Date | undefined {\r\n if (!value) {\r\n return;\r\n }\r\n\r\n const matches = value.split(\"-\");\r\n\r\n if (\r\n matches.length === 3 &&\r\n typeof matches[0] === \"string\" &&\r\n typeof matches[1] === \"string\" &&\r\n typeof matches[2] === \"string\" &&\r\n matches[2].length === 4\r\n ) {\r\n return createDate(matches[2], matches[1], matches[0]);\r\n }\r\n}\r\n\r\n/**\r\n * print date in format DD-MM-YYYY\r\n * @param date\r\n */\r\nexport function printDutchDate(date: Date | undefined): string {\r\n if (!date) {\r\n return \"\";\r\n }\r\n\r\n const d = date.getDate().toString(10).padStart(2, \"0\");\r\n const m = (date.getMonth() + 1).toString(10).padStart(2, \"0\");\r\n const y = date.getFullYear().toString(10).padStart(2, \"0\");\r\n\r\n return `${d}-${m}-${y}`;\r\n}\r\n\r\n/**\r\n * Compare if two dates are equal in terms of day, month, and year\r\n */\r\nexport function isEqual(a: Date | undefined, b: Date | undefined): boolean {\r\n if (!a || !b) {\r\n return false;\r\n }\r\n\r\n return a.getFullYear() === b.getFullYear() && a.getMonth() === b.getMonth() && a.getDate() === b.getDate();\r\n}\r\n\r\nexport function addDays(date: Date, days: number): Date {\r\n const d = new Date(date);\r\n d.setDate(d.getDate() + days);\r\n return d;\r\n}\r\n\r\nexport function addMonths(date: Date, months: number): Date {\r\n const d = new Date(date);\r\n d.setMonth(date.getMonth() + months);\r\n return d;\r\n}\r\n\r\nexport function addYears(date: Date, years: number): Date {\r\n const d = new Date(date);\r\n d.setFullYear(date.getFullYear() + years);\r\n return d;\r\n}\r\n\r\nexport function startOfWeek(date: Date, firstDayOfWeek: DaysOfWeek = DaysOfWeek.Monday): Date {\r\n const d = new Date(date);\r\n const day = d.getDay();\r\n const diff = (day < firstDayOfWeek ? 7 : 0) + day - firstDayOfWeek;\r\n\r\n d.setDate(d.getDate() - diff);\r\n return d;\r\n}\r\n\r\nexport function endOfWeek(date: Date, firstDayOfWeek: DaysOfWeek = DaysOfWeek.Monday): Date {\r\n const d = new Date(date);\r\n const day = d.getDay();\r\n const diff = (day < firstDayOfWeek ? -7 : 0) + 6 - (day - firstDayOfWeek);\r\n\r\n d.setDate(d.getDate() + diff);\r\n return d;\r\n}\r\n\r\nexport function startOfMonth(date: Date): Date {\r\n return new Date(date.getFullYear(), date.getMonth(), 1);\r\n}\r\n\r\nexport function endOfMonth(date: Date): Date {\r\n return new Date(date.getFullYear(), date.getMonth() + 1, 0);\r\n}\r\n\r\nexport function setMonth(date: Date, month: number): Date {\r\n const d = new Date(date);\r\n d.setMonth(month);\r\n return d;\r\n}\r\n\r\nexport function setYear(date: Date, year: number): Date {\r\n const d = new Date(date);\r\n d.setFullYear(year);\r\n return d;\r\n}\r\n\r\n/**\r\n * Check if date is within a min and max\r\n */\r\nexport function inRange(date: Date, min?: Date, max?: Date): boolean {\r\n return clamp(date, min, max) === date;\r\n}\r\n\r\n/**\r\n * Ensures date is within range, returns min or max if out of bounds\r\n */\r\nexport function clamp(date: Date, min?: Date, max?: Date): Date {\r\n const time = date.getTime();\r\n\r\n if (min && min instanceof Date && time < min.getTime()) {\r\n return min;\r\n }\r\n\r\n if (max && max instanceof Date && time > max.getTime()) {\r\n return max;\r\n }\r\n\r\n return date;\r\n}\r\n\r\n/**\r\n * given start and end date, return an (inclusive) array of all dates in between\r\n * @param start\r\n * @param end\r\n */\r\nfunction getDaysInRange(start: Date, end: Date): Date[] {\r\n const days: Date[] = [];\r\n let current = start;\r\n\r\n while (!isEqual(current, end)) {\r\n days.push(current);\r\n current = addDays(current, 1);\r\n }\r\n\r\n days.push(current);\r\n\r\n return days;\r\n}\r\n\r\n/**\r\n * given a date, return an array of dates from a calendar perspective\r\n * @param date\r\n * @param firstDayOfWeek\r\n */\r\nexport function getViewOfMonth(date: Date, firstDayOfWeek: DaysOfWeek = DaysOfWeek.Monday): Date[] {\r\n const start = startOfWeek(startOfMonth(date), firstDayOfWeek);\r\n const end = endOfWeek(endOfMonth(date), firstDayOfWeek);\r\n\r\n return getDaysInRange(start, end);\r\n}\r\n","import { FunctionalComponent, h } from \"@stencil/core\";\r\n\r\nimport { isEqual, printDutchDate } from \"./date-utils\";\r\n\r\nexport type DatePickerLegacyDayProps = {\r\n focusedDay: Date;\r\n today: Date;\r\n day: Date;\r\n inRange: boolean;\r\n onDaySelect: (event: MouseEvent, day: Date) => void;\r\n onKeyboardNavigation: (event: KeyboardEvent) => void;\r\n focusedDayRef?: (element: HTMLButtonElement) => void;\r\n};\r\n\r\nexport const DatePickerLegacyDay: FunctionalComponent<DatePickerLegacyDayProps> = ({\r\n focusedDay,\r\n today,\r\n day,\r\n onDaySelect,\r\n onKeyboardNavigation,\r\n focusedDayRef,\r\n inRange,\r\n}) => {\r\n const isToday = isEqual(day, today);\r\n const isFocused = isEqual(day, focusedDay);\r\n const notCurrentMonth = day.getMonth() !== focusedDay.getMonth();\r\n const isOutsideRange = !inRange;\r\n\r\n function handleClick(e: MouseEvent) {\r\n onDaySelect(e, day);\r\n }\r\n\r\n return (\r\n <button\r\n class={{\r\n \"dso-date__day\": true,\r\n \"is-today\": isToday,\r\n }}\r\n tabIndex={isFocused ? 0 : -1}\r\n onClick={handleClick}\r\n onKeyDown={onKeyboardNavigation}\r\n disabled={isOutsideRange || notCurrentMonth}\r\n type=\"button\"\r\n ref={(el) => {\r\n if (isFocused && el && focusedDayRef) {\r\n focusedDayRef(el);\r\n }\r\n }}\r\n >\r\n <span aria-hidden=\"true\">{day.getDate()}</span>\r\n <span class=\"dso-date__vhidden\">{printDutchDate(day)}</span>\r\n </button>\r\n );\r\n};\r\n","import { FunctionalComponent, h } from \"@stencil/core\";\r\n\r\nimport { DsoLocalizedText } from \"./date-localization\";\r\nimport { DatePickerLegacyDay, DatePickerLegacyDayProps } from \"./date-picker-day\";\r\nimport { DaysOfWeek, getViewOfMonth, inRange, isEqual } from \"./date-utils\";\r\n\r\nfunction chunk<T>(array: T[], chunkSize: number): T[][] {\r\n const result = [];\r\n\r\n for (let i = 0; i < array.length; i += chunkSize) {\r\n result.push(array.slice(i, i + chunkSize));\r\n }\r\n\r\n return result;\r\n}\r\n\r\nfunction mapWithOffset<T, U>(array: T[], startingOffset: number, mapFn: (item: T) => U): U[] {\r\n return array.map((_, i) => {\r\n const adjustedIndex = (i + startingOffset) % array.length;\r\n const item = array[adjustedIndex];\r\n if (!item) {\r\n throw new Error(\"No item found\");\r\n }\r\n\r\n return mapFn(item);\r\n });\r\n}\r\n\r\ntype DatePickerLegacyMonthProps = {\r\n selectedDate: Date | undefined;\r\n focusedDate: Date;\r\n labelledById: string;\r\n localization: DsoLocalizedText;\r\n firstDayOfWeek: DaysOfWeek;\r\n min?: Date;\r\n max?: Date;\r\n onDateSelect: DatePickerLegacyDayProps[\"onDaySelect\"];\r\n onKeyboardNavigation: DatePickerLegacyDayProps[\"onKeyboardNavigation\"];\r\n focusedDayRef: (element: HTMLButtonElement) => void;\r\n onFocusIn?: (e: FocusEvent) => void;\r\n onMouseDown?: (e: MouseEvent) => void;\r\n};\r\n\r\nexport const DatePickerLegacyMonth: FunctionalComponent<DatePickerLegacyMonthProps> = ({\r\n selectedDate,\r\n focusedDate,\r\n labelledById,\r\n localization,\r\n firstDayOfWeek,\r\n min,\r\n max,\r\n onDateSelect,\r\n onKeyboardNavigation,\r\n focusedDayRef,\r\n onMouseDown,\r\n onFocusIn,\r\n}) => {\r\n const today = new Date();\r\n const days = getViewOfMonth(focusedDate, firstDayOfWeek);\r\n\r\n return (\r\n <table\r\n class=\"dso-date__table\"\r\n role=\"grid\"\r\n aria-labelledby={labelledById}\r\n onFocusin={onFocusIn}\r\n onMouseDown={onMouseDown}\r\n >\r\n <thead>\r\n <tr>\r\n {mapWithOffset(localization.dayNames, firstDayOfWeek, (dayName) => (\r\n <th class=\"dso-date__table-header\" scope=\"col\">\r\n <span aria-hidden=\"true\">{dayName.substr(0, 2)}</span>\r\n <span class=\"dso-date__vhidden\">{dayName}</span>\r\n </th>\r\n ))}\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {chunk(days, 7).map((week) => (\r\n <tr class=\"dso-date__row\">\r\n {week.map((day) => (\r\n <td\r\n class=\"dso-date__cell\"\r\n role=\"gridcell\"\r\n aria-selected={isEqual(day, selectedDate) ? \"true\" : undefined}\r\n aria-current={isEqual(day, today) ? \"date\" : undefined}\r\n >\r\n <DatePickerLegacyDay\r\n day={day}\r\n today={today}\r\n focusedDay={focusedDate}\r\n inRange={inRange(day, min, max)}\r\n onDaySelect={onDateSelect}\r\n onKeyboardNavigation={onKeyboardNavigation}\r\n focusedDayRef={focusedDayRef}\r\n />\r\n </td>\r\n ))}\r\n </tr>\r\n ))}\r\n </tbody>\r\n </table>\r\n );\r\n};\r\n","import { DsoLocalizedText } from \"../date-localization\";\r\n\r\nexport function monthRange(\r\n localization: DsoLocalizedText,\r\n selectedYear: number,\r\n minDate?: Date,\r\n maxDate?: Date,\r\n): string[] {\r\n if (minDate && maxDate) {\r\n const { minYear, minMonth } = { minYear: minDate.getFullYear(), minMonth: minDate.getMonth() };\r\n const { maxYear, maxMonth } = { maxYear: maxDate.getFullYear(), maxMonth: maxDate.getMonth() };\r\n\r\n return localization.monthNames.filter((_month, index) => {\r\n if (minYear === selectedYear && maxYear === selectedYear) {\r\n return index >= minMonth && index >= maxMonth;\r\n }\r\n\r\n if (minYear === selectedYear) {\r\n return index >= minMonth;\r\n }\r\n\r\n if (maxYear === selectedYear) {\r\n return index <= maxMonth;\r\n }\r\n\r\n return true;\r\n });\r\n }\r\n\r\n if (minDate) {\r\n const { minYear, minMonth } = { minYear: minDate.getFullYear(), minMonth: minDate.getMonth() };\r\n\r\n return localization.monthNames.filter((_month, index) => minYear === selectedYear && index >= minMonth);\r\n }\r\n\r\n if (maxDate) {\r\n const { maxYear, maxMonth } = { maxYear: maxDate.getFullYear(), maxMonth: maxDate.getMonth() };\r\n\r\n return localization.monthNames.filter((_month, index) => maxYear === selectedYear && index <= maxMonth);\r\n }\r\n\r\n return localization.monthNames;\r\n}\r\n","export function range(from: number, to: number) {\r\n const result: number[] = [];\r\n for (let i = from; i <= to; i++) {\r\n result.push(i);\r\n }\r\n return result;\r\n}\r\n","@use \"~dso-toolkit/src/variables/units\";\r\n@use \"~dso-toolkit/src/variables/colors\";\r\n@use \"~dso-toolkit/src/variables/zindex\";\r\n@use \"~dso-toolkit/src/components/form-control\";\r\n\r\n@use \"date-picker-legacy.variables\" as core-date-picker-legacy-variables;\r\n\r\n:host {\r\n display: block;\r\n\r\n &[invalid]:not([invalid=\"false\"]) {\r\n .dso-date__input {\r\n border-color: colors.$danger-color;\r\n }\r\n }\r\n}\r\n\r\n.dso-date *,\r\n.dso-date *::before,\r\n.dso-date *::after {\r\n box-sizing: border-box;\r\n}\r\n\r\n.dso-date {\r\n box-sizing: border-box;\r\n color: core-date-picker-legacy-variables.$color-text;\r\n display: block;\r\n font-family: core-date-picker-legacy-variables.$font;\r\n margin: 0;\r\n position: relative;\r\n text-align: start;\r\n inline-size: 100%;\r\n\r\n &:not(.dso-visible) {\r\n .dso-date__dialog {\r\n display: none;\r\n }\r\n }\r\n}\r\n\r\n.dso-date__input {\r\n @include form-control.root();\r\n}\r\n\r\n// ---------------------------------------------\r\n// dso DATE PICKER __ TOGGLE\r\n// ---------------------------------------------\r\n\r\n.dso-date__toggle {\r\n -moz-appearance: none;\r\n -webkit-appearance: none;\r\n -webkit-user-select: none;\r\n align-items: center;\r\n appearance: none;\r\n background: core-date-picker-legacy-variables.$color-button-bg;\r\n border: 0;\r\n border-radius: 0;\r\n border-end-end-radius: core-date-picker-legacy-variables.$radius;\r\n border-start-end-radius: core-date-picker-legacy-variables.$radius;\r\n color: core-date-picker-legacy-variables.$color-icon;\r\n cursor: pointer;\r\n display: flex;\r\n block-size: core-date-picker-legacy-variables.$size;\r\n justify-content: center;\r\n padding: 0;\r\n position: absolute;\r\n inset-inline-end: 0;\r\n transform: translateY(-50%);\r\n inset-block-start: 50%;\r\n user-select: none;\r\n inline-size: core-date-picker-legacy-variables.$size;\r\n z-index: zindex.$datepicker + 1;\r\n\r\n &:disabled {\r\n color: core-date-picker-legacy-variables.$nav-button-disabled;\r\n cursor: default;\r\n }\r\n}\r\n\r\n// ---------------------------------------------\r\n// dso DATE PICKER __ DIALOG\r\n// ---------------------------------------------\r\n\r\n.dso-date__dialog {\r\n border-width: core-date-picker-legacy-variables.$border-width;\r\n display: flex;\r\n inset-inline-end: 0;\r\n min-inline-size: 320px;\r\n opacity: 0;\r\n position: absolute;\r\n inset-block-start: 100%;\r\n transform: scale(0.96) translateZ(0) translateY(-20px);\r\n transform-origin: top right;\r\n transition:\r\n transform 300ms ease,\r\n opacity 300ms ease,\r\n visibility 300ms ease;\r\n visibility: hidden;\r\n will-change: transform, opacity, visibility;\r\n z-index: zindex.$datepicker-dialog;\r\n\r\n @media (max-width: 35.9375em) {\r\n background: core-date-picker-legacy-variables.$overlay;\r\n inset-block-end: 0;\r\n position: fixed;\r\n inset-inline-start: 0;\r\n inset-inline-end: 0;\r\n inset-block-start: 0;\r\n transform: translateZ(0);\r\n transform-origin: bottom center;\r\n }\r\n\r\n &.is-left {\r\n inset-inline-start: units.$padding-base-inline * -1 + core-date-picker-legacy-variables.$border-width;\r\n inset-inline-end: auto;\r\n inline-size: auto;\r\n }\r\n\r\n &.is-active {\r\n opacity: 1;\r\n // The value of 1.0001 fixes a Chrome glitch with scaling\r\n transform: scale(1.0001) translateZ(0) translateY(0);\r\n visibility: visible;\r\n }\r\n}\r\n\r\n.dso-date__dialog-content {\r\n background: core-date-picker-legacy-variables.$surface;\r\n border: 1px solid rgba(0, 0, 0, 0.1);\r\n border-radius: core-date-picker-legacy-variables.$radius;\r\n box-shadow: 0 8px 10px 1px rgba(0, 0, 0, 0.4);\r\n margin-inline-start: auto;\r\n margin-inline-end: -1px;\r\n margin-block-start: 8px;\r\n max-inline-size: 310px;\r\n min-inline-size: 290px;\r\n padding: 16px;\r\n position: relative;\r\n transform: none;\r\n inline-size: 100%;\r\n z-index: zindex.$datepicker-dialog;\r\n\r\n @media (max-width: 35.9375em) {\r\n border: 0;\r\n border-radius: 0;\r\n border-start-start-radius: core-date-picker-legacy-variables.$radius;\r\n border-start-end-radius: core-date-picker-legacy-variables.$radius;\r\n inset-block-end: 0;\r\n inset-inline-start: 0;\r\n margin: 0;\r\n max-inline-size: none;\r\n min-block-size: 26em;\r\n opacity: 0;\r\n padding-block: 0 20px;\r\n padding-inline: 8%;\r\n position: absolute;\r\n transform: translateZ(0) translateY(100%);\r\n transition:\r\n transform core-date-picker-legacy-variables.$transition-duration ease,\r\n opacity core-date-picker-legacy-variables.$transition-duration ease,\r\n visibility core-date-picker-legacy-variables.$transition-duration ease;\r\n visibility: hidden;\r\n will-change: transform, opacity, visibility;\r\n\r\n .is-active & {\r\n opacity: 1;\r\n transform: translateZ(0) translateY(0);\r\n visibility: visible;\r\n }\r\n }\r\n}\r\n\r\n// ---------------------------------------------\r\n// dso DATE PICKER __ TABLE\r\n// ---------------------------------------------\r\n\r\n.dso-date__table {\r\n border-collapse: collapse;\r\n border-spacing: 0;\r\n color: core-date-picker-legacy-variables.$color-text;\r\n font-size: 1rem;\r\n font-weight: core-date-picker-legacy-variables.$font-normal;\r\n line-height: 1.25;\r\n min-inline-size: (core-date-picker-legacy-variables.$size + 2) * 7;\r\n table-layout: fixed;\r\n text-align: center;\r\n inline-size: 100%;\r\n}\r\n\r\n.dso-date__table-header {\r\n font-size: 0.875em;\r\n font-weight: core-date-picker-legacy-variables.$font-bold;\r\n block-size: 36px;\r\n line-height: 36px;\r\n text-align: center;\r\n text-decoration: none;\r\n text-transform: uppercase;\r\n}\r\n\r\n.dso-date__cell {\r\n block-size: core-date-picker-legacy-variables.$size + 2;\r\n padding: 1px;\r\n text-align: center;\r\n inline-size: core-date-picker-legacy-variables.$size + 2;\r\n}\r\n\r\n.dso-date__day {\r\n -moz-appearance: none;\r\n -webkit-appearance: none;\r\n appearance: none;\r\n background: transparent;\r\n border: 0;\r\n border-radius: 50%;\r\n box-shadow: 0 0 0 1px transparent;\r\n color: core-date-picker-legacy-variables.$color-text;\r\n cursor: pointer;\r\n display: inline-block;\r\n font-family: core-date-picker-legacy-variables.$font;\r\n font-variant-numeric: tabular-nums;\r\n font-weight: core-date-picker-legacy-variables.$font-normal;\r\n block-size: core-date-picker-legacy-variables.$size;\r\n line-height: 0;\r\n padding: 0;\r\n position: relative;\r\n text-align: center;\r\n vertical-align: middle;\r\n inline-size: core-date-picker-legacy-variables.$size;\r\n z-index: zindex.$datepicker;\r\n\r\n &.is-today {\r\n background: transparent;\r\n block-size: core-date-picker-legacy-variables.$size - 2;\r\n box-shadow: 0 0 0 1px core-date-picker-legacy-variables.$color-button;\r\n inline-size: core-date-picker-legacy-variables.$size - 2;\r\n }\r\n\r\n &:hover,\r\n &:active {\r\n background: core-date-picker-legacy-variables.$color-button;\r\n color: core-date-picker-legacy-variables.$color-text-active;\r\n }\r\n\r\n &:focus {\r\n background: transparent;\r\n box-shadow: 0 0 0 2px colors.$bosgroen;\r\n color: core-date-picker-legacy-variables.$color-text;\r\n block-size: core-date-picker-legacy-variables.$size - 4;\r\n outline: 0;\r\n inline-size: core-date-picker-legacy-variables.$size - 4;\r\n }\r\n\r\n [aria-selected=\"true\"] & {\r\n background: core-date-picker-legacy-variables.$color-button;\r\n color: core-date-picker-legacy-variables.$color-text-active;\r\n\r\n &:focus {\r\n background: transparent;\r\n\r\n span[aria-hidden=\"true\"] {\r\n background: core-date-picker-legacy-variables.$color-button;\r\n border: 1px solid colors.$wit;\r\n line-height: core-date-picker-legacy-variables.$size - 6;\r\n }\r\n }\r\n }\r\n\r\n &:disabled {\r\n background: colors.$wit;\r\n color: core-date-picker-legacy-variables.$color-text-disabled;\r\n cursor: default;\r\n }\r\n\r\n span[aria-hidden=\"true\"] {\r\n border-radius: 50%;\r\n display: inline-block;\r\n block-size: core-date-picker-legacy-variables.$size - 4;\r\n line-height: core-date-picker-legacy-variables.$size - 4;\r\n inline-size: core-date-picker-legacy-variables.$size - 4;\r\n }\r\n}\r\n\r\n// ---------------------------------------------\r\n// dso DATE PICKER __ HEADER\r\n// ---------------------------------------------\r\n\r\n.dso-date__header {\r\n align-items: center;\r\n display: flex;\r\n justify-content: space-between;\r\n margin-block-end: 16px;\r\n inline-size: 100%;\r\n\r\n span {\r\n font-size: 0.875rem;\r\n }\r\n}\r\n\r\n// ---------------------------------------------\r\n// dso DATE PICKER __ NAVIGATION\r\n// ---------------------------------------------\r\n\r\n.dso-date__nav {\r\n white-space: nowrap; // stylelint-disable-line declaration-property-value-disallowed-list -- 3rd party code\r\n}\r\n\r\n.dso-date__prev,\r\n.dso-date__next {\r\n -moz-appearance: none;\r\n -webkit-appearance: none;\r\n align-items: center;\r\n appearance: none;\r\n background: core-date-picker-legacy-variables.$color-button-bg;\r\n border: 1px solid core-date-picker-legacy-variables.$color-button;\r\n border-radius: core-date-picker-legacy-variables.$radius;\r\n box-sizing: border-box;\r\n color: core-date-picker-legacy-variables.$color-button;\r\n cursor: pointer;\r\n display: inline-flex;\r\n font-size: 1em;\r\n block-size: 32px;\r\n justify-content: center;\r\n margin-inline-start: 8px;\r\n padding: 0;\r\n inline-size: 32px;\r\n\r\n @media (max-width: 35.9375em) {\r\n block-size: 40px;\r\n inline-size: 40px;\r\n }\r\n\r\n &:hover,\r\n &:active {\r\n background-color: core-date-picker-legacy-variables.$color-button;\r\n color: core-date-picker-legacy-variables.$color-text-active;\r\n }\r\n\r\n &:focus {\r\n background: core-date-picker-legacy-variables.$color-button-bg;\r\n color: core-date-picker-legacy-variables.$color-button;\r\n }\r\n\r\n &:disabled {\r\n &,\r\n &:hover {\r\n background-color: colors.$wit;\r\n border-color: core-date-picker-legacy-variables.$nav-button-disabled;\r\n color: core-date-picker-legacy-variables.$nav-button-disabled;\r\n opacity: 1;\r\n }\r\n }\r\n\r\n svg {\r\n margin-block: 0; // left this in, just to be sure ;)\r\n margin-inline: auto;\r\n }\r\n}\r\n\r\n// ---------------------------------------------\r\n// dso DATE PICKER __ SELECT\r\n// ---------------------------------------------\r\n\r\n.dso-date__select {\r\n display: inline-flex;\r\n block-size: units.$u1 * 4 - 4;\r\n line-height: units.$u1 * 4 - 4;\r\n position: relative;\r\n\r\n span {\r\n margin-inline-end: 4px;\r\n }\r\n\r\n select {\r\n color: core-date-picker-legacy-variables.$color-primary;\r\n cursor: pointer;\r\n font-size: 1rem;\r\n block-size: 100%;\r\n inset-inline-start: 0;\r\n opacity: 0;\r\n position: absolute;\r\n inset-block-start: 0;\r\n inline-size: 100%;\r\n z-index: zindex.$datepicker + 1;\r\n\r\n &:focus + .dso-date__select-label {\r\n box-shadow: 0 0 0 2px core-date-picker-legacy-variables.$color-primary;\r\n }\r\n\r\n &:disabled {\r\n color: core-date-picker-legacy-variables.$nav-button-disabled;\r\n }\r\n }\r\n}\r\n\r\n.dso-date__select-label {\r\n align-items: center;\r\n border-radius: core-date-picker-legacy-variables.$radius;\r\n color: core-date-picker-legacy-variables.$select;\r\n display: flex;\r\n padding-block: 0;\r\n padding-inline: 8px 4px;\r\n pointer-events: none;\r\n position: relative;\r\n inline-size: 100%;\r\n z-index: zindex.$datepicker;\r\n\r\n span {\r\n font-size: 1.25rem;\r\n font-weight: core-date-picker-legacy-variables.$font-bold;\r\n line-height: 1.25;\r\n }\r\n\r\n svg {\r\n inline-size: 16px;\r\n block-size: 16px;\r\n }\r\n}\r\n\r\n// ---------------------------------------------\r\n// dso DATE PICKER __ MOBILE\r\n// ---------------------------------------------\r\n\r\n.dso-date__mobile {\r\n align-items: center;\r\n border-block-end: 1px solid rgba(0, 0, 0, 0.12);\r\n display: flex;\r\n font-size: 1em;\r\n justify-content: space-between;\r\n margin-block-end: 20px;\r\n margin-inline-start: -10%;\r\n overflow: hidden;\r\n padding-block: 12px;\r\n padding-inline: 20px;\r\n position: relative;\r\n text-overflow: ellipsis; // stylelint-disable-line declaration-property-value-disallowed-list -- 3rd party code\r\n white-space: nowrap; // stylelint-disable-line declaration-property-value-disallowed-list -- 3rd party code\r\n inline-size: 120%;\r\n\r\n @media (min-width: 36em) {\r\n border: 0;\r\n margin: 0;\r\n overflow: visible;\r\n padding: 0;\r\n position: absolute;\r\n inset-inline-end: -16px;\r\n inset-block-start: -16px;\r\n inline-size: auto;\r\n }\r\n}\r\n\r\n.dso-date__mobile-heading {\r\n display: inline-block;\r\n font-weight: core-date-picker-legacy-variables.$font-bold;\r\n max-inline-size: 84%;\r\n overflow: hidden;\r\n text-overflow: ellipsis; // stylelint-disable-line declaration-property-value-disallowed-list -- 3rd party code\r\n white-space: nowrap; // stylelint-disable-line declaration-property-value-disallowed-list -- 3rd party code\r\n\r\n @media (min-width: 36em) {\r\n display: none;\r\n }\r\n}\r\n\r\n// ---------------------------------------------\r\n// dso DATE PICKER __ CLOSE\r\n// ---------------------------------------------\r\n\r\n.dso-date__close {\r\n -webkit-appearance: none;\r\n align-items: center;\r\n appearance: none;\r\n background-color: colors.$wit;\r\n border: 0;\r\n border-radius: 50%;\r\n color: core-date-picker-legacy-variables.$color-icon;\r\n cursor: pointer;\r\n display: flex;\r\n font-size: 1em;\r\n block-size: units.$u1 * 4;\r\n justify-content: center;\r\n margin-inline-end: -4px;\r\n padding: 0;\r\n inline-size: units.$u1 * 4;\r\n\r\n @media (min-width: 36em) {\r\n margin-inline-end: 0;\r\n opacity: 0;\r\n }\r\n\r\n &:focus {\r\n box-shadow: 0 0 0 2px colors.$bosgroen;\r\n outline: none;\r\n\r\n @media (min-width: 36em) {\r\n opacity: 1;\r\n }\r\n }\r\n}\r\n\r\n// ---------------------------------------------\r\n// dso DATE PICKER __ VISUALLY HIDDEN\r\n// ---------------------------------------------\r\n\r\n.dso-date__vhidden {\r\n border: 0;\r\n clip: rect(1px, 1px, 1px, 1px);\r\n block-size: 1px;\r\n overflow: hidden;\r\n padding: 0;\r\n position: absolute;\r\n inset-block-start: 0;\r\n inline-size: 1px;\r\n}\r\n","import {\r\n Component,\r\n ComponentInterface,\r\n Element,\r\n Event,\r\n EventEmitter,\r\n Host,\r\n Listen,\r\n Method,\r\n Prop,\r\n State,\r\n h,\r\n} from \"@stencil/core\";\r\n\r\nimport { createIdentifier } from \"../../utils/create-identifier\";\r\n\r\nimport defaultLocalization, { DsoLocalizedText } from \"./date-localization\";\r\nimport {\r\n DsoDatePickerLegacyChangeEvent,\r\n DsoDatePickerLegacyDirection,\r\n DsoDatePickerLegacyFocusEvent,\r\n DsoDatePickerLegacyKeyboardEvent,\r\n} from \"./date-picker-legacy.interfaces\";\r\nimport { DatePickerLegacyMonth } from \"./date-picker-month\";\r\nimport {\r\n DaysOfWeek,\r\n addDays,\r\n clamp,\r\n endOfMonth,\r\n endOfWeek,\r\n inRange,\r\n parseDutchDate,\r\n printDutchDate,\r\n setMonth,\r\n setYear,\r\n startOfMonth,\r\n startOfWeek,\r\n} from \"./date-utils\";\r\nimport { monthRange } from \"./utils/month-range\";\r\nimport { range } from \"./utils/range\";\r\n\r\nconst keyCode = {\r\n TAB: 9,\r\n ESC: 27,\r\n SPACE: 32,\r\n PAGE_UP: 33,\r\n PAGE_DOWN: 34,\r\n END: 35,\r\n HOME: 36,\r\n LEFT: 37,\r\n UP: 38,\r\n RIGHT: 39,\r\n DOWN: 40,\r\n};\r\n\r\nconst DISALLOWED_CHARACTERS = /[^0-9-]+/g;\r\nconst TRANSITION_MS = 300;\r\n\r\nfunction cleanValue(input: HTMLInputElement, regex: RegExp): string {\r\n const value = input.value;\r\n const cursor = input.selectionStart;\r\n\r\n if (!cursor) {\r\n return value;\r\n }\r\n\r\n const beforeCursor = value.slice(0, cursor);\r\n const afterCursor = value.slice(cursor, value.length);\r\n\r\n const filteredBeforeCursor = beforeCursor.replace(regex, \"\");\r\n const filterAfterCursor = afterCursor.replace(regex, \"\");\r\n\r\n const newValue = filteredBeforeCursor + filterAfterCursor;\r\n const newCursor = filteredBeforeCursor.length;\r\n\r\n input.value = newValue;\r\n input.selectionStart = input.selectionEnd = newCursor;\r\n\r\n return newValue;\r\n}\r\n\r\n@Component({\r\n tag: \"dso-date-picker-legacy\",\r\n styleUrl: \"date-picker-legacy.scss\",\r\n shadow: false,\r\n scoped: true,\r\n})\r\nexport class DsoDatePickerLegacy implements ComponentInterface {\r\n /**\r\n * Own Properties\r\n */\r\n private monthSelectId = createIdentifier(\"DsoDateMonth\");\r\n private yearSelectId = createIdentifier(\"DsoDateYear\");\r\n private dialogLabelId = createIdentifier(\"DsoDateLabel\");\r\n\r\n private datePickerLegacyButton: HTMLButtonElement | undefined;\r\n private datePickerLegacyInput: HTMLInputElement | undefined;\r\n private firstFocusableElement: HTMLElement | undefined;\r\n private monthSelectNode: HTMLElement | undefined;\r\n private focusedDayNode: HTMLButtonElement | undefined;\r\n\r\n private focusTimeoutId: ReturnType<typeof setTimeout> | undefined;\r\n private hideTimeoutId: ReturnType<typeof setTimeout> | undefined;\r\n\r\n private initialTouchX: number | undefined;\r\n private initialTouchY: number | undefined;\r\n\r\n private localization: DsoLocalizedText = defaultLocalization;\r\n private firstDayOfWeek: DaysOfWeek = DaysOfWeek.Monday;\r\n\r\n private previousValue: string | undefined;\r\n\r\n /**\r\n * Reference to host HTML element.\r\n */\r\n @Element()\r\n element!: HTMLDsoDatePickerLegacyElement;\r\n\r\n /**\r\n * State() variables\r\n */\r\n @State()\r\n activeFocus = false;\r\n\r\n @State()\r\n focusedDay = new Date();\r\n\r\n @State()\r\n open = false;\r\n\r\n @State()\r\n visible = false;\r\n\r\n /**\r\n * Public Property API\r\n */\r\n\r\n /**\r\n * Name of the date picker input.\r\n */\r\n @Prop()\r\n name = \"date\";\r\n\r\n /**\r\n * Adds a unique identifier for the date picker input. Use this instead of html `id` attribute.\r\n */\r\n @Prop()\r\n identifier: string | undefined;\r\n\r\n /**\r\n * Makes the date picker input component disabled. This prevents users from being able to\r\n * interact with the input, and conveys its inactive state to assistive technologies.\r\n */\r\n @Prop({ reflect: true })\r\n disabled = false;\r\n\r\n /**\r\n * Defines a specific role attribute for the date picker input.\r\n */\r\n @Prop()\r\n // eslint-disable-next-line @stencil-community/reserved-member-names\r\n role: string | null = null;\r\n\r\n /**\r\n * Forces the opening direction of the calendar modal to be always left or right.\r\n * This setting can be useful when the input is smaller than the opening date picker\r\n * would be as by default the picker always opens towards right.\r\n */\r\n @Prop()\r\n direction: DsoDatePickerLegacyDirection = \"right\";\r\n\r\n /**\r\n * Should the input be marked as required?\r\n */\r\n @Prop()\r\n required = false;\r\n\r\n /**\r\n * Is input invalid?\r\n */\r\n @Prop({ reflect: true })\r\n invalid?: boolean;\r\n\r\n /**\r\n * ID of element that describes the input element\r\n */\r\n @Prop()\r\n describedBy?: string;\r\n\r\n /**\r\n * Should the input be focused on load?\r\n */\r\n @Prop()\r\n dsoAutofocus = false;\r\n\r\n /**\r\n * Date value. Must be in Dutch date format: DD-MM-YYYY.\r\n */\r\n @Prop({ reflect: true, mutable: true })\r\n value = \"\";\r\n\r\n /**\r\n * Minimum date allowed to be picked. Must be in Dutch date format: DD-MM-YYYY.\r\n * This setting can be used alone or together with the max property.\r\n */\r\n @Prop()\r\n min: string | undefined;\r\n\r\n /**\r\n * Maximum date allowed to be picked. Must be in Dutch date format: DD-MM-YYYY.\r\n * This setting can be used alone or together with the min property.\r\n */\r\n @Prop()\r\n max: string | undefined;\r\n\r\n /**\r\n * Events section.\r\n */\r\n\r\n /**\r\n * Event emitted when a date is selected.\r\n */\r\n @Event()\r\n dsoDateChange!: EventEmitter<DsoDatePickerLegacyChangeEvent>;\r\n\r\n /**\r\n * Event emitted the date picker input is blurred.\r\n */\r\n @Event()\r\n dsoBlur!: EventEmitter<DsoDatePickerLegacyFocusEvent>;\r\n\r\n /**\r\n * Event emitted on key up in the date picker input.\r\n */\r\n @Event()\r\n dsoKeyUp!: EventEmitter<DsoDatePickerLegacyKeyboardEvent>;\r\n\r\n /**\r\n * Event emitted on key down in the date picker input.\r\n */\r\n @Event()\r\n dsoKeyDown!: EventEmitter<DsoDatePickerLegacyKeyboardEvent>;\r\n\r\n /**\r\n * Event emitted the date picker input is focused.\r\n */\r\n @Event()\r\n dsoFocus!: EventEmitter<DsoDatePickerLegacyFocusEvent>;\r\n\r\n /**\r\n * Component event handling.\r\n */\r\n @Listen(\"click\", { target: \"document\", capture: true })\r\n handleDocumentClick(e: MouseEvent) {\r\n if (!this.open) {\r\n return;\r\n }\r\n\r\n const path = e.composedPath();\r\n\r\n for (const target of path) {\r\n if (target instanceof Node && this.element.contains(target)) {\r\n return;\r\n }\r\n }\r\n\r\n this.hide(false);\r\n }\r\n\r\n /**\r\n * Sets focus on the date picker's input. Use this method instead of the global `focus()`.\r\n */\r\n @Method()\r\n async setFocus() {\r\n return this.datePickerLegacyInput?.focus();\r\n }\r\n\r\n /**\r\n * Public methods API\r\n */\r\n\r\n /**\r\n * Show the calendar modal, moving focus to the calendar inside.\r\n */\r\n @Method()\r\n async show() {\r\n if (typeof this.hideTimeoutId !== \"undefined\") {\r\n clearTimeout(this.hideTimeoutId);\r\n }\r\n\r\n this.visible = true;\r\n\r\n setTimeout(() => {\r\n this.open = true;\r\n this.setFocusedDay(parseDutchDate(this.value) || new Date());\r\n\r\n if (typeof this.focusTimeoutId !== \"undefined\") {\r\n clearTimeout(this.focusTimeoutId);\r\n }\r\n\r\n this.focusTimeoutId = setTimeout(() => this.monthSelectNode?.focus(), TRANSITION_MS);\r\n });\r\n }\r\n\r\n /**\r\n * Hide the calendar modal. Set `moveFocusToButton` to false to prevent focus\r\n * returning to the date picker's button. Default is true.\r\n */\r\n @Method()\r\n async hide(moveFocusToButton = true) {\r\n this.open = false;\r\n\r\n // in cases where calendar is quickly shown and hidden\r\n // we should avoid moving focus to the button\r\n if (typeof this.focusTimeoutId !== \"undefined\") {\r\n clearTimeout(this.focusTimeoutId);\r\n }\r\n\r\n this.hideTimeoutId = setTimeout(() => {\r\n if (moveFocusToButton && this.datePickerLegacyButton) {\r\n this.datePickerLegacyButton.focus();\r\n }\r\n\r\n this.visible = false;\r\n }, TRANSITION_MS + 200);\r\n }\r\n\r\n /**\r\n * Local methods.\r\n */\r\n private enableActiveFocus = () => {\r\n this.activeFocus = true;\r\n };\r\n\r\n private disableActiveFocus = () => {\r\n this.activeFocus = false;\r\n };\r\n\r\n private addDays(days: number) {\r\n this.setFocusedDay(addDays(this.focusedDay, days));\r\n }\r\n\r\n private addMonths(months: number) {\r\n this.setMonth(this.focusedDay.getMonth() + months);\r\n }\r\n\r\n private addYears(years: number) {\r\n this.setYear(this.focusedDay.getFullYear() + years);\r\n }\r\n\r\n private startOfWeek() {\r\n this.setFocusedDay(startOfWeek(this.focusedDay, this.firstDayOfWeek));\r\n }\r\n\r\n private endOfWeek() {\r\n this.setFocusedDay(endOfWeek(this.focusedDay, this.firstDayOfWeek));\r\n }\r\n\r\n private setMonth(month: number) {\r\n const min = setMonth(startOfMonth(this.focusedDay), month);\r\n const max = endOfMonth(min);\r\n const date = setMonth(this.focusedDay, month);\r\n\r\n this.setFocusedDay(clamp(date, min, max));\r\n }\r\n\r\n private setYear(year: number) {\r\n const min = setYear(startOfMonth(this.focusedDay), year);\r\n const max = endOfMonth(min);\r\n const date = setYear(this.focusedDay, year);\r\n\r\n this.setFocusedDay(clamp(date, min, max));\r\n }\r\n\r\n private setFocusedDay(day: Date) {\r\n this.focusedDay = clamp(day, parseDutchDate(this.min), parseDutchDate(this.max));\r\n }\r\n\r\n private toggleOpen = (e: Event) => {\r\n e.preventDefault();\r\n if (this.open) {\r\n this.hide(false);\r\n } else {\r\n this.show();\r\n }\r\n };\r\n\r\n private handleEscKey = (event: KeyboardEvent) => {\r\n if (event.keyCode === keyCode.ESC) {\r\n this.hide();\r\n }\r\n };\r\n\r\n private handleBlur = (event: Event) => {\r\n event.stopPropagation();\r\n\r\n this.dsoBlur.emit({\r\n component: \"dso-date-picker-legacy\",\r\n });\r\n };\r\n\r\n private handleKeyUp = (event: KeyboardEvent) => {\r\n event.stopPropagation();\r\n\r\n this.dsoKeyUp.emit({\r\n component: \"dso-date-picker-legacy\",\r\n originalEvent: event,\r\n });\r\n };\r\n\r\n private handleKeyDown = (event: KeyboardEvent) => {\r\n event.stopPropagation();\r\n\r\n this.dsoKeyDown.emit({\r\n component: \"dso-date-picker-legacy\",\r\n originalEvent: event,\r\n });\r\n };\r\n\r\n private handleFocus = (event: Event) => {\r\n event.stopPropagation();\r\n\r\n this.dsoFocus.emit({\r\n component: \"dso-date-picker-legacy\",\r\n });\r\n };\r\n\r\n private handleTouchStart = (event: TouchEvent) => {\r\n const touch = event.changedTouches[0];\r\n if (!touch) {\r\n throw new Error(\"No touch found\");\r\n }\r\n\r\n this.initialTouchX = touch.pageX;\r\n this.initialTouchY = touch.pageY;\r\n };\r\n\r\n private handleTouchMove = (event: TouchEvent) => {\r\n event.preventDefault();\r\n };\r\n\r\n private handleTouchEnd = (event: TouchEvent) => {\r\n const touch = event.changedTouches[0];\r\n if (!touch) {\r\n throw new Error(\"No touch found\");\r\n }\r\n\r\n const distX = touch.pageX - (this.initialTouchX ?? 0); // get horizontal dist traveled\r\n const distY = touch.pageY - (this.initialTouchY ?? 0); // get vertical dist traveled\r\n const threshold = 70;\r\n\r\n const isHorizontalSwipe = Math.abs(distX) >= threshold && Math.abs(distY) <= threshold;\r\n const isDownwardsSwipe = Math.abs(distY) >= threshold && Math.abs(distX) <= threshold && distY > 0;\r\n\r\n if (isHorizontalSwipe) {\r\n this.addMonths(distX < 0 ? 1 : -1);\r\n } else if (isDownwardsSwipe) {\r\n this.hide(false);\r\n event.preventDefault();\r\n }\r\n\r\n this.initialTouchY = undefined;\r\n this.initialTouchX = undefined;\r\n };\r\n\r\n private handleNextMonthClick = (event: MouseEvent) => {\r\n event.preventDefault();\r\n this.addMonths(1);\r\n };\r\n\r\n private handlePreviousMonthClick = (event: MouseEvent) => {\r\n event.preventDefault();\r\n this.addMonths(-1);\r\n };\r\n\r\n private handleFirstFocusableKeydown = (event: KeyboardEvent) => {\r\n // this ensures focus is trapped inside the dialog\r\n if (event.keyCode === keyCode.TAB && event.shiftKey) {\r\n this.focusedDayNode?.focus();\r\n event.preventDefault();\r\n }\r\n };\r\n\r\n private handleKeyboardNavigation = (event: KeyboardEvent) => {\r\n // handle tab separately, since it needs to be treated\r\n // differently to other keyboard interactions\r\n if (event.keyCode === keyCode.TAB && !event.shiftKey) {\r\n event.preventDefault();\r\n this.firstFocusableElement?.focus();\r\n return;\r\n }\r\n\r\n let handled = true;\r\n\r\n switch (event.keyCode) {\r\n case keyCode.RIGHT:\r\n this.addDays(1);\r\n break;\r\n case keyCode.LEFT:\r\n this.addDays(-1);\r\n break;\r\n case keyCode.DOWN:\r\n this.addDays(7);\r\n break;\r\n case keyCode.UP:\r\n this.addDays(-7);\r\n break;\r\n case keyCode.PAGE_UP:\r\n if (event.shiftKey) {\r\n this.addYears(-1);\r\n } else {\r\n this.addMonths(-1);\r\n }\r\n break;\r\n case keyCode.PAGE_DOWN:\r\n if (event.shiftKey) {\r\n this.addYears(1);\r\n } else {\r\n this.addMonths(1);\r\n }\r\n break;\r\n case keyCode.HOME:\r\n this.startOfWeek();\r\n break;\r\n case keyCode.END:\r\n this.endOfWeek();\r\n break;\r\n default:\r\n handled = false;\r\n }\r\n\r\n if (handled) {\r\n event.preventDefault();\r\n this.enableActiveFocus();\r\n }\r\n };\r\n\r\n private handleDaySelect = (_event: MouseEvent, day: Date) => {\r\n if (!inRange(day, parseDutchDate(this.min), parseDutchDate(this.max))) {\r\n return;\r\n }\r\n\r\n if (day.getMonth() === this.focusedDay.getMonth()) {\r\n this.setValue(day);\r\n this.hide();\r\n } else {\r\n this.setFocusedDay(day);\r\n }\r\n };\r\n\r\n private handleMonthSelect = (e: Event) => {\r\n // Todo\r\n if (e.target instanceof HTMLSelectElement) {\r\n this.setMonth(parseInt(e.target.value, 10));\r\n }\r\n };\r\n\r\n private handleYearSelect = (e: Event) => {\r\n if (e.target instanceof HTMLSelectElement) {\r\n this.setYear(parseInt(e.target.value, 10));\r\n }\r\n };\r\n\r\n private handleInputChange = (e: Event) => {\r\n const target = e.target as HTMLInputElement;\r\n\r\n const cleanedValue = cleanValue(target, DISALLOWED_CHARACTERS);\r\n\r\n this.setValue(cleanedValue);\r\n };\r\n\r\n private setValue(value: Date | string) {\r\n const event = this.prepareEvent(value);\r\n\r\n this.value = typeof value === \"string\" ? value : event.value;\r\n\r\n if (this.value !== this.previousValue) {\r\n this.dsoDateChange.emit(event);\r\n this.previousValue = this.value;\r\n }\r\n }\r\n\r\n private prepareEvent = (value: Date | string): DsoDatePickerLegacyChangeEvent => {\r\n const event: DsoDatePickerLegacyChangeEvent = {\r\n component: \"dso-date-picker-legacy\",\r\n value: \"\",\r\n valueAsDate: undefined,\r\n };\r\n\r\n if (value instanceof Date) {\r\n event.valueAsDate = value;\r\n } else {\r\n event.value = value;\r\n event.valueAsDate = parseDutchDate(value);\r\n }\r\n\r\n if (event.valueAsDate) {\r\n event.value = printDutchDate(event.valueAsDate);\r\n }\r\n\r\n if (!event.valueAsDate && this.required) {\r\n event.error = \"required\";\r\n }\r\n\r\n if (event.value && !event.valueAsDate) {\r\n event.error = \"invalid\";\r\n }\r\n\r\n if (event.valueAsDate && (this.min || this.max)) {\r\n const min = parseDutchDate(this.min);\r\n const max = parseDutchDate(this.max);\r\n const clampValue = clamp(event.valueAsDate, min, max);\r\n\r\n if (clampValue !== event.valueAsDate && clampValue === min) {\r\n event.valueAsDate = undefined;\r\n event.error = \"min-range\";\r\n } else if (clampValue !== event.valueAsDate && clampValue === max) {\r\n event.valueAsDate = undefined;\r\n event.error = \"max-range\";\r\n }\r\n }\r\n\r\n return event;\r\n };\r\n\r\n private processFocusedDayNode = (element: HTMLButtonElement) => {\r\n this.focusedDayNode = element;\r\n\r\n if (this.activeFocus && this.open) {\r\n setTimeout(() => element.focus(), 0);\r\n }\r\n };\r\n\r\n componentWillLoad(): void | Promise<void> {\r\n const minDate = parseDutchDate(this.min);\r\n const maxDate = parseDutchDate(this.max);\r\n\r\n if (minDate && minDate > this.focusedDay) {\r\n this.focusedDay = minDate;\r\n }\r\n\r\n if (maxDate && maxDate < this.focusedDay) {\r\n this.focusedDay = maxDate;\r\n }\r\n }\r\n\r\n componentDidLoad() {\r\n const valueAsDate = parseDutchDate(this.value);\r\n if (valueAsDate) {\r\n this.previousValue = this.value = printDutchDate(valueAsDate);\r\n }\r\n\r\n if (this.dsoAutofocus) {\r\n this.setFocus();\r\n }\r\n }\r\n\r\n /**\r\n * render() function\r\n * Always the last one in the class.\r\n */\r\n render() {\r\n const valueAsDate = parseDutchDate(this.value);\r\n const formattedDate = valueAsDate && printDutchDate(valueAsDate);\r\n const selectedYear = (valueAsDate || this.focusedDay).getFullYear();\r\n const focusedMonth = this.focusedDay.getMonth();\r\n const focusedYear = this.focusedDay.getFullYear();\r\n\r\n const minDate = parseDutchDate(this.min);\r\n const maxDate = parseDutchDate(this.max);\r\n const prevMonthDisabled = minDate && minDate.getMonth() === focusedMonth && minDate.getFullYear() === focusedYear;\r\n const nextMonthDisabled = maxDate && maxDate.getMonth() === focusedMonth && maxDate.getFullYear() === focusedYear;\r\n\r\n let minYear = selectedYear - 10;\r\n let maxYear = selectedYear + 10;\r\n if (minDate) {\r\n minYear = Math.max(minYear, minDate.getFullYear());\r\n }\r\n if (maxDate) {\r\n maxYear = Math.min(maxYear, maxDate.getFullYear());\r\n }\r\n\r\n return (\r\n <Host>\r\n <div class={{ \"dso-date\": true, \"dso-visible\": this.visible }}>\r\n <div class=\"dso-date__input-wrapper\">\r\n <input\r\n class=\"dso-date__input\"\r\n value={this.value}\r\n placeholder={this.localization.placeholder}\r\n id={this.identifier}\r\n disabled={this.disabled}\r\n role={this.role ?? undefined}\r\n required={this.required ? true : undefined}\r\n aria-autocomplete=\"none\"\r\n aria-invalid={this.invalid?.toString()}\r\n aria-describedby={this.describedBy}\r\n onInput={this.handleInputChange}\r\n onFocus={this.handleFocus}\r\n onBlur={this.handleBlur}\r\n onKeyUp={this.handleKeyUp}\r\n onKeyDown={this.handleKeyDown}\r\n autoComplete=\"off\"\r\n ref={(element) => (this.datePickerLegacyInput = element)}\r\n />\r\n <button\r\n type=\"button\"\r\n class=\"dso-date__toggle\"\r\n onClick={this.toggleOpen}\r\n disabled={this.disabled}\r\n ref={(element) => (this.datePickerLegacyButton = element)}\r\n >\r\n <span class=\"dso-date__toggle-icon\">\r\n <dso-icon icon=\"calendar\"></dso-icon>\r\n </span>\r\n <span class=\"dso-date__vhidden\">\r\n {this.localization.buttonLabel}\r\n {formattedDate && (\r\n <span>\r\n , {this.localization.selectedDateMessage} {formattedDate}\r\n </span>\r\n )}\r\n </span>\r\n </button>\r\n </div>\r\n\r\n <div\r\n class={{\r\n \"dso-date__dialog\": true,\r\n \"is-left\": this.direction === \"left\",\r\n \"is-active\": this.open,\r\n }}\r\n role=\"dialog\"\r\n aria-modal=\"true\"\r\n aria-hidden={this.open ? \"false\" : \"true\"}\r\n aria-labelledby={this.dialogLabelId}\r\n onTouchMove={this.handleTouchMove}\r\n onTouchStart={this.handleTouchStart}\r\n onTouchEnd={this.handleTouchEnd}\r\n >\r\n <div class=\"dso-date__dialog-content\" onKeyDown={this.handleEscKey}>\r\n <div class=\"dso-date__vhidden dso-date__instructions\" aria-live=\"polite\">\r\n {this.localization.keyboardInstruction}\r\n </div>\r\n <div class=\"dso-date__mobile\" onFocusin={this.disableActiveFocus}>\r\n <label class=\"dso-date__mobile-heading\">{this.localization.calendarHeading}</label>\r\n <button\r\n class=\"dso-date__close\"\r\n ref={(element) => (this.firstFocusableElement = element)}\r\n onKeyDown={this.handleFirstFocusableKeydown}\r\n onClick={() => this.hide()}\r\n type=\"button\"\r\n >\r\n <dso-icon icon=\"times\"></dso-icon>\r\n <span class=\"dso-date__vhidden\">{this.localization.closeLabel}</span>\r\n </button>\r\n </div>\r\n <div class=\"dso-date__header\" onFocusin={this.disableActiveFocus}>\r\n <div>\r\n <h2 id={this.dialogLabelId} class=\"dso-date__vhidden\" aria-live=\"polite\">\r\n {this.localization.monthNames[focusedMonth]} {this.focusedDay.getFullYear()}\r\n </h2>\r\n\r\n <label htmlFor={this.monthSelectId} class=\"dso-date__vhidden\">\r\n {this.localization.monthSelectLabel}\r\n </label>\r\n <div class=\"dso-date__select\">\r\n <select\r\n id={this.monthSelectId}\r\n class=\"dso-date__select--month\"\r\n ref={(element) => (this.monthSelectNode = element)}\r\n onChange={this.handleMonthSelect}\r\n >\r\n {monthRange(this.localization, selectedYear, minDate, maxDate).map((month) => {\r\n const index = this.localization.monthNames.indexOf(month);\r\n\r\n return (\r\n <option key={month} value={index} selected={index === focusedMonth}>\r\n {month}\r\n </option>\r\n );\r\n })}\r\n </select>\r\n <div class=\"dso-date__select-label\" aria-hidden=\"true\">\r\n <span>{this.localization.monthNamesShort[focusedMonth]}</span>\r\n <dso-icon icon=\"chevron-down\"></dso-icon>\r\n </div>\r\n </div>\r\n\r\n <label htmlFor={this.yearSelectId} class=\"dso-date__vhidden\">\r\n {this.localization.yearSelectLabel}\r\n </label>\r\n <div class=\"dso-date__select\">\r\n <select id={this.yearSelectId} class=\"dso-date__select--year\" onChange={this.handleYearSelect}>\r\n {range(minYear, maxYear).map((year) => (\r\n <option key={year} selected={year === focusedYear}>\r\n {year}\r\n </option>\r\n ))}\r\n </select>\r\n <div class=\"dso-date__select-label\" aria-hidden=\"true\">\r\n <span>{this.focusedDay.getFullYear()}</span>\r\n <dso-icon icon=\"chevron-down\"></dso-icon>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"dso-date__nav\">\r\n <button\r\n class=\"dso-date__prev\"\r\n onClick={this.handlePreviousMonthClick}\r\n disabled={prevMonthDisabled}\r\n type=\"button\"\r\n >\r\n <dso-icon icon=\"chevron-left\"></dso-icon>\r\n <span class=\"dso-date__vhidden\">{this.localization.prevMonthLabel}</span>\r\n </button>\r\n <button\r\n class=\"dso-date__next\"\r\n onClick={this.handleNextMonthClick}\r\n disabled={nextMonthDisabled}\r\n type=\"button\"\r\n >\r\n <dso-icon icon=\"chevron-right\"></dso-icon>\r\n <span class=\"dso-date__vhidden\">{this.localization.nextMonthLabel}</span>\r\n </button>\r\n </div>\r\n </div>\r\n <DatePickerLegacyMonth\r\n selectedDate={valueAsDate}\r\n focusedDate={this.focusedDay}\r\n onDateSelect={this.handleDaySelect}\r\n onKeyboardNavigation={this.handleKeyboardNavigation}\r\n labelledById={this.dialogLabelId}\r\n localization={this.localization}\r\n firstDayOfWeek={this.firstDayOfWeek}\r\n focusedDayRef={this.processFocusedDayNode}\r\n min={minDate}\r\n max={maxDate}\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n </Host>\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 d,h as s,g as l}from"./p-C-b4jsbt.js";import{g as i}from"./p-CodDyi2J.js";import{i as a}from"./p-B_kXuEcW.js";import{v as e}from"./p-BF0_OXTe.js";const t={en:{"dso-modal":{close:"Close",dialog:"Dialog"}},nl:{"dso-modal":{close:"Sluiten",dialog:"Dialoog"}}};const r='@charset "UTF-8";@keyframes ModalFadeIn{0%{opacity:0}100%{opacity:1}}*,*::after,*::before{box-sizing:border-box}:host{display:block}:host([fullscreen]) dialog{inline-size:100dvi;block-size:100dvb}:host([fullscreen]) dialog .dso-dialog{display:flex;flex-direction:column;inline-size:100%;block-size:100%}:host([fullscreen]) dialog .dso-dialog>dso-scrollable{flex-grow:1;max-block-size:unset}:host([fullscreen]) dialog .dso-footer{flex-shrink:0}@media screen and (max-width: 480px){:host dialog{inline-size:100dvi;block-size:100dvb}:host dialog .dso-dialog{display:flex;flex-direction:column;inline-size:100%;block-size:100%}:host dialog .dso-dialog>dso-scrollable{flex-grow:1;max-block-size:unset}:host dialog .dso-footer{flex-shrink:0}}.sr-only{position:absolute;inline-size:1px;block-size:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}button{-webkit-appearance:button;color:inherit;cursor:pointer;font:inherit;font-family:inherit;font-size:inherit;line-height:inherit;margin:0;overflow:visible;text-transform:none}button[disabled]{cursor:default}button::-moz-focus-inner{border:0;padding:0}.dso-modal{overflow:visible;padding:0;border:0}.dso-modal::backdrop{background-color:rgba(255, 255, 255, 0.8)}.dso-modal .dso-dialog{inline-size:640px;background-color:#fff;opacity:1;box-shadow:0 8px 24px 0 rgba(25, 25, 25, 0.4);animation:200ms ease-out 0s 1 ModalFadeIn}.dso-modal .dso-header{position:relative;padding:16px;border-block-end:1px solid #ccc}.dso-modal .dso-header h2{max-inline-size:calc(100% - 24px);margin:0;color:#275937}.dso-modal .dso-header .dso-close{position:absolute;inset-block-start:16px;inset-inline-end:13px;block-size:32px;inline-size:32px;padding:0;background-color:transparent;border:0;text-align:center}.dso-modal>.dso-dialog>.dso-body p{margin-block:0 var(--_dt-rich-content-margin-block, 16px);margin-inline:0}.dso-modal>.dso-dialog>.dso-body ul,.dso-modal>.dso-dialog>.dso-body ol{margin-block-end:16px}.dso-modal>.dso-dialog>.dso-body ul:not(.list-group):not(.dso-link-list):not(.dso-columns-list),.dso-modal>.dso-dialog>.dso-body ol:not(.list-group):not(.dso-link-list):not(.dso-columns-list){padding-inline-start:24px}.dso-modal>.dso-dialog>.dso-body ul ul,.dso-modal>.dso-dialog>.dso-body ul ol,.dso-modal>.dso-dialog>.dso-body ol ul,.dso-modal>.dso-dialog>.dso-body ol ol{margin-block-end:0}.dso-modal>.dso-dialog>.dso-body pre{margin-block:0 16px;margin-inline:0}.dso-modal>.dso-dialog>.dso-body blockquote{padding-block:16px;padding-inline:24px}.dso-modal>.dso-dialog>.dso-body dso-highlight-box,.dso-modal>.dso-dialog>.dso-body .dso-highlight-box{margin-block-end:24px}.dso-modal>.dso-dialog>.dso-body img{block-size:auto;max-inline-size:100%}.dso-modal>.dso-dialog>.dso-body{block-size:calc(100% - 96px - 1.5rem);max-block-size:calc(70vh - 144px - 1.5em);min-block-size:1.5rem;overflow-x:auto;padding:32px}.dso-modal>.dso-dialog>dso-scrollable{block-size:calc(100% - 96px - 1.5rem);max-block-size:calc(70vh - 144px - 1.5em);min-block-size:6.5rem}.dso-modal>.dso-dialog>dso-scrollable .dso-body p{margin-block:0 var(--_dt-rich-content-margin-block, 16px);margin-inline:0}.dso-modal>.dso-dialog>dso-scrollable .dso-body ul,.dso-modal>.dso-dialog>dso-scrollable .dso-body ol{margin-block-end:16px}.dso-modal>.dso-dialog>dso-scrollable .dso-body ul:not(.list-group):not(.dso-link-list):not(.dso-columns-list),.dso-modal>.dso-dialog>dso-scrollable .dso-body ol:not(.list-group):not(.dso-link-list):not(.dso-columns-list){padding-inline-start:24px}.dso-modal>.dso-dialog>dso-scrollable .dso-body ul ul,.dso-modal>.dso-dialog>dso-scrollable .dso-body ul ol,.dso-modal>.dso-dialog>dso-scrollable .dso-body ol ul,.dso-modal>.dso-dialog>dso-scrollable .dso-body ol ol{margin-block-end:0}.dso-modal>.dso-dialog>dso-scrollable .dso-body pre{margin-block:0 16px;margin-inline:0}.dso-modal>.dso-dialog>dso-scrollable .dso-body blockquote{padding-block:16px;padding-inline:24px}.dso-modal>.dso-dialog>dso-scrollable .dso-body dso-highlight-box,.dso-modal>.dso-dialog>dso-scrollable .dso-body .dso-highlight-box{margin-block-end:24px}.dso-modal>.dso-dialog>dso-scrollable .dso-body img{block-size:auto;max-inline-size:100%}.dso-modal>.dso-dialog>dso-scrollable .dso-body{padding:32px}.dso-modal .dso-body:focus-visible{outline:none}@media screen and (max-width: 767px){.dso-modal .dso-footer .dso-primary+.dso-primary,.dso-modal .dso-footer .dso-primary+.dso-secondary,.dso-modal .dso-footer .dso-primary+.dso-tertiary,.dso-modal .dso-footer .dso-secondary+.dso-primary,.dso-modal .dso-footer .dso-secondary+.dso-secondary,.dso-modal .dso-footer .dso-secondary+.dso-tertiary,.dso-modal .dso-footer .dso-tertiary+.dso-primary,.dso-modal .dso-footer .dso-tertiary+.dso-secondary,.dso-modal .dso-footer .dso-tertiary+.dso-tertiary{margin-inline-start:0}.dso-modal .dso-footer button{inline-size:100%;text-align:center}.dso-modal .dso-footer button+button{margin-block-start:8px}.dso-modal .dso-footer button.dso-tertiary,.dso-modal .dso-footer button.dso-tertiary span{float:none}}.dso-modal .dso-footer{min-block-size:80px;padding-block:16px;padding-inline:32px;text-align:end}@media screen and (min-width: 768px){.dso-modal .dso-footer .dso-primary+.dso-secondary,.dso-modal .dso-footer .dso-secondary+.dso-secondary,.dso-modal .dso-footer .dso-tertiary+.dso-secondary{margin-inline-start:16px}.dso-modal .dso-footer .dso-primary+.dso-tertiary,.dso-modal .dso-footer .dso-secondary+.dso-tertiary,.dso-modal .dso-footer .dso-tertiary+.dso-tertiary{margin-inline-start:0}}@media screen and (max-width: 767px){.dso-modal .dso-dialog{max-inline-size:100%;margin-block-start:0}.dso-modal .dso-footer .dso-primary+.dso-primary,.dso-modal .dso-footer .dso-primary+.dso-secondary,.dso-modal .dso-footer .dso-primary+.dso-tertiary,.dso-modal .dso-footer .dso-secondary+.dso-primary,.dso-modal .dso-footer .dso-secondary+.dso-secondary,.dso-modal .dso-footer .dso-secondary+.dso-tertiary,.dso-modal .dso-footer .dso-tertiary+.dso-primary,.dso-modal .dso-footer .dso-tertiary+.dso-secondary,.dso-modal .dso-footer .dso-tertiary+.dso-tertiary{margin-inline-start:0}.dso-modal .dso-footer button{inline-size:100%;text-align:center}.dso-modal .dso-footer button+button{margin-block-start:8px}.dso-modal .dso-footer button.dso-tertiary,.dso-modal .dso-footer button.dso-tertiary span{float:none}}@media screen and (max-height: 380px){.dso-modal .dso-dialog{min-block-size:216px;margin-block-start:8px;margin-block-end:8px}.dso-modal .dso-header{padding-block:8px;padding-inline:16px}.dso-modal .dso-header .dso-close{inset-block-start:8px}.dso-modal .dso-body{padding-block:16px;padding-inline:24px}.dso-modal .dso-footer{min-block-size:auto;overflow:auto;padding-block:8px;padding-inline:32px}}.dso-close dso-icon{color:#39870c}';const n=class{constructor(s){o(this,s);this.dsoClose=d(this,"dsoClose",7);this.ariaId=e();this.dialogRole="dialog";this.returnFocus=undefined;this.closable=false;this.text=a((()=>this.host),t);this.blockEscapeKey=o=>{if(o.key==="Escape"){o.preventDefault();if(this.closable){this.dsoClose.emit({originalEvent:o})}}}}get hasFooter(){return this.host.querySelector("[slot='footer']")!==null}componentDidLoad(){var o;if((o=this.htmlDialogElement)===null||o===void 0?void 0:o.isConnected){const o=i();if(o instanceof HTMLElement){this.returnFocusElement=o}this.htmlDialogElement.showModal()}}disconnectedCallback(){var o,d,s;(o=this.htmlDialogElement)===null||o===void 0?void 0:o.close();if(this.returnFocus===false){return}(s=(d=this.returnFocus)!==null&&d!==void 0?d:this.returnFocusElement)===null||s===void 0?void 0:s.focus()}handleDialogClick(o){if(!this.closable){return}if(o.target===this.htmlDialogElement){this.dsoClose.emit({originalEvent:o})}}render(){var o;return s("dialog",{key:"23c490a18db8a17d5907c4b3ed5e952c91cfe3c4",class:"dso-modal",role:(o=this.dialogRole)!==null&&o!==void 0?o:undefined,"aria-modal":"true","aria-labelledby":this.ariaId,ref:o=>this.htmlDialogElement=o,onClick:o=>this.handleDialogClick(o),onKeyDown:o=>this.blockEscapeKey(o)},s("div",{key:"6bbbc3203237dbfb7bf294da2111690f5588cbcf",class:"dso-dialog",role:"document"},this.modalTitle?s("div",{class:"dso-header"},s("h2",{id:this.ariaId},this.modalTitle),this.closable&&s("button",{type:"button",class:"dso-close",onClick:o=>this.dsoClose.emit({originalEvent:o})},s("dso-icon",{icon:"times"}),s("span",{class:"sr-only"},this.text("close")))):s("span",{class:"sr-only",id:this.ariaId},this.text("dialog")),s("dso-scrollable",{key:"554bad05ec30c487f740fbbc48de16c7ee2bc4d6"},s("div",{key:"0139bce5f4e6f801e114c3c0b9f4927209633533",class:"dso-body",tabIndex:0},s("slot",{key:"b3315d01734dbc5f5c43be1842da693c0c3ecb7a",name:"body"}))),this.hasFooter&&s("div",{key:"4bf6acf5846b92df4d39e48a772689cb567c484d",class:"dso-footer"},s("slot",{key:"13e88c3a01dcc812f2da84397ce26b06037b0ad1",name:"footer"}))))}get host(){return l(this)}};n.style=r;export{n as dso_modal};
2
+ //# sourceMappingURL=p-f8544d78.entry.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["translations","en","close","dialog","nl","modalCss","Modal","constructor","hostRef","this","ariaId","v4","dialogRole","returnFocus","undefined","closable","text","i18n","host","blockEscapeKey","e","key","preventDefault","dsoClose","emit","originalEvent","hasFooter","querySelector","componentDidLoad","_a","htmlDialogElement","isConnected","activeElement","getActiveElement","HTMLElement","returnFocusElement","showModal","disconnectedCallback","_c","_b","focus","handleDialogClick","target","render","h","class","role","ref","element","onClick","onKeyDown","modalTitle","id","type","icon","tabIndex","name"],"sources":["src/components/modal/modal.i18n.ts","src/components/modal/modal.scss?tag=dso-modal&encapsulation=shadow","src/components/modal/modal.tsx"],"sourcesContent":["import { Resource } from \"../../utils/i18n\";\r\n\r\nexport const translations: Resource = {\r\n en: {\r\n \"dso-modal\": {\r\n close: \"Close\",\r\n dialog: \"Dialog\",\r\n },\r\n },\r\n nl: {\r\n \"dso-modal\": {\r\n close: \"Sluiten\",\r\n dialog: \"Dialoog\",\r\n },\r\n },\r\n};\r\n","@use \"~dso-toolkit/src/utilities\";\r\n@use \"~dso-toolkit/src/components/button\";\r\n@use \"~dso-toolkit/src/components/modal\";\r\n@use \"~dso-toolkit/src/variables/media-query-breakpoints\";\r\n\r\n@include utilities.box-sizing();\r\n\r\n:host {\r\n display: block;\r\n}\r\n\r\n// fullscreen option\r\n:host([fullscreen]) dialog {\r\n @include modal.fullscreen();\r\n}\r\n\r\n// Go to fullscreen on =< 480px viewport\r\n@media screen and (max-width: media-query-breakpoints.$screen-xs-min) {\r\n :host dialog {\r\n @include modal.fullscreen();\r\n }\r\n}\r\n\r\n.sr-only {\r\n @include utilities.sr-only();\r\n}\r\n\r\nbutton {\r\n @include button.element();\r\n}\r\n\r\n.dso-modal {\r\n @include modal.root();\r\n}\r\n\r\n.dso-close {\r\n dso-icon {\r\n color: modal.$close-icon-color;\r\n }\r\n}\r\n","import { Component, ComponentInterface, Element, Event, EventEmitter, Prop, State, h } from \"@stencil/core\";\r\nimport { v4 } from \"uuid\";\r\n\r\nimport { getActiveElement } from \"../../utils/get-active-element\";\r\nimport { i18n } from \"../../utils/i18n\";\r\n\r\nimport { translations } from \"./modal.i18n\";\r\nimport { ModalCloseEvent } from \"./modal.interfaces\";\r\n\r\n@Component({\r\n tag: \"dso-modal\",\r\n styleUrl: \"modal.scss\",\r\n shadow: true,\r\n})\r\nexport class Modal implements ComponentInterface {\r\n private htmlDialogElement?: HTMLDialogElement;\r\n\r\n @Element()\r\n host!: HTMLDsoModalElement;\r\n\r\n @State()\r\n ariaId = v4();\r\n\r\n /**\r\n * when set the modal will be shown in fullscreen.\r\n */\r\n @Prop({ reflect: true })\r\n fullscreen?: boolean;\r\n\r\n /**\r\n * The title of the Modal.\r\n */\r\n @Prop()\r\n modalTitle?: string;\r\n\r\n /**\r\n * the role for the modal `dialog` | `alert` | `alertdialog`.\r\n */\r\n @Prop()\r\n dialogRole: string | null = \"dialog\";\r\n\r\n /**\r\n * The element to return focus to after the modal is closed.\r\n *\r\n * * `undefined` will return focus to the previously focused element (default).\r\n * * `false` will not return focus to any element.\r\n * * or, provide your own `HTMLElement` that will receive focus upon closing.\r\n */\r\n @Prop()\r\n returnFocus: false | HTMLElement | undefined = undefined;\r\n\r\n /**\r\n * when `false` the close button in the header will not be rendered.\r\n *\r\n * Needs `modalTitle` to be set.\r\n */\r\n @Prop()\r\n closable = false;\r\n\r\n private returnFocusElement: HTMLElement | undefined;\r\n\r\n /**\r\n * Emitted when the user:\r\n * - clicks the close button\r\n * - dismisses the Modal with the Escape button\r\n * - clicks or taps outside the Modal\r\n */\r\n @Event()\r\n dsoClose!: EventEmitter<ModalCloseEvent>;\r\n\r\n get hasFooter() {\r\n return this.host.querySelector(\"[slot='footer']\") !== null;\r\n }\r\n\r\n private text = i18n(() => this.host, translations);\r\n\r\n componentDidLoad(): void {\r\n if (this.htmlDialogElement?.isConnected) {\r\n const activeElement = getActiveElement();\r\n if (activeElement instanceof HTMLElement) {\r\n this.returnFocusElement = activeElement;\r\n }\r\n\r\n this.htmlDialogElement.showModal();\r\n }\r\n }\r\n\r\n disconnectedCallback(): void {\r\n this.htmlDialogElement?.close();\r\n\r\n if (this.returnFocus === false) {\r\n return;\r\n }\r\n\r\n (this.returnFocus ?? this.returnFocusElement)?.focus();\r\n }\r\n\r\n private handleDialogClick(e: MouseEvent) {\r\n if (!this.closable) {\r\n return;\r\n }\r\n\r\n if (e.target === this.htmlDialogElement) {\r\n this.dsoClose.emit({ originalEvent: e });\r\n }\r\n }\r\n\r\n private blockEscapeKey = (e: KeyboardEvent) => {\r\n if (e.key === \"Escape\") {\r\n e.preventDefault();\r\n\r\n if (this.closable) {\r\n this.dsoClose.emit({ originalEvent: e });\r\n }\r\n }\r\n };\r\n\r\n render() {\r\n return (\r\n <dialog\r\n class=\"dso-modal\"\r\n role={this.dialogRole ?? undefined}\r\n aria-modal=\"true\"\r\n aria-labelledby={this.ariaId}\r\n ref={(element) => (this.htmlDialogElement = element)}\r\n onClick={(e) => this.handleDialogClick(e)}\r\n onKeyDown={(e) => this.blockEscapeKey(e)}\r\n >\r\n <div class=\"dso-dialog\" role=\"document\">\r\n {this.modalTitle ? (\r\n <div class=\"dso-header\">\r\n <h2 id={this.ariaId}>{this.modalTitle}</h2>\r\n {this.closable && (\r\n <button type=\"button\" class=\"dso-close\" onClick={(e) => this.dsoClose.emit({ originalEvent: e })}>\r\n <dso-icon icon=\"times\"></dso-icon>\r\n <span class=\"sr-only\">{this.text(\"close\")}</span>\r\n </button>\r\n )}\r\n </div>\r\n ) : (\r\n <span class=\"sr-only\" id={this.ariaId}>\r\n {this.text(\"dialog\")}\r\n </span>\r\n )}\r\n\r\n <dso-scrollable>\r\n <div class=\"dso-body\" tabIndex={0}>\r\n <slot name=\"body\" />\r\n </div>\r\n </dso-scrollable>\r\n\r\n {this.hasFooter && (\r\n <div class=\"dso-footer\">\r\n <slot name=\"footer\" />\r\n </div>\r\n )}\r\n </div>\r\n </dialog>\r\n );\r\n }\r\n}\r\n"],"mappings":"qKAEO,MAAMA,EAAyB,CACpCC,GAAI,CACF,YAAa,CACXC,MAAO,QACPC,OAAQ,WAGZC,GAAI,CACF,YAAa,CACXF,MAAO,UACPC,OAAQ,aCZd,MAAME,EAAW,0lN,MCcJC,EAAK,MALlB,WAAAC,CAAAC,G,6CAYEC,KAAMC,OAAGC,IAkBTF,KAAUG,WAAkB,SAU5BH,KAAWI,YAAoCC,UAQ/CL,KAAQM,SAAG,MAiBHN,KAAAO,KAAOC,GAAK,IAAMR,KAAKS,MAAMlB,GAiC7BS,KAAAU,eAAkBC,IACxB,GAAIA,EAAEC,MAAQ,SAAU,CACtBD,EAAEE,iBAEF,GAAIb,KAAKM,SAAU,CACjBN,KAAKc,SAASC,KAAK,CAAEC,cAAeL,G,GAgD3C,CA1FC,aAAIM,GACF,OAAOjB,KAAKS,KAAKS,cAAc,qBAAuB,I,CAKxD,gBAAAC,G,MACE,IAAIC,EAAApB,KAAKqB,qBAAmB,MAAAD,SAAA,SAAAA,EAAAE,YAAa,CACvC,MAAMC,EAAgBC,IACtB,GAAID,aAAyBE,YAAa,CACxCzB,KAAK0B,mBAAqBH,C,CAG5BvB,KAAKqB,kBAAkBM,W,EAI3B,oBAAAC,G,WACER,EAAApB,KAAKqB,qBAAmB,MAAAD,SAAA,SAAAA,EAAA3B,QAExB,GAAIO,KAAKI,cAAgB,MAAO,CAC9B,M,EAGFyB,GAACC,EAAA9B,KAAKI,eAAW,MAAA0B,SAAA,EAAAA,EAAI9B,KAAK0B,sBAAqB,MAAAG,SAAA,SAAAA,EAAAE,O,CAGzC,iBAAAC,CAAkBrB,GACxB,IAAKX,KAAKM,SAAU,CAClB,M,CAGF,GAAIK,EAAEsB,SAAWjC,KAAKqB,kBAAmB,CACvCrB,KAAKc,SAASC,KAAK,CAAEC,cAAeL,G,EAcxC,MAAAuB,G,MACE,OACEC,EAAA,UAAAvB,IAAA,2CACEwB,MAAM,YACNC,MAAMjB,EAAApB,KAAKG,cAAc,MAAAiB,SAAA,EAAAA,EAAAf,UACd,oBACM,kBAAAL,KAAKC,OACtBqC,IAAMC,GAAavC,KAAKqB,kBAAoBkB,EAC5CC,QAAU7B,GAAMX,KAAKgC,kBAAkBrB,GACvC8B,UAAY9B,GAAMX,KAAKU,eAAeC,IAEtCwB,EAAA,OAAAvB,IAAA,2CAAKwB,MAAM,aAAaC,KAAK,YAC1BrC,KAAK0C,WACJP,EAAA,OAAKC,MAAM,cACTD,EAAI,MAAAQ,GAAI3C,KAAKC,QAASD,KAAK0C,YAC1B1C,KAAKM,UACJ6B,EAAQ,UAAAS,KAAK,SAASR,MAAM,YAAYI,QAAU7B,GAAMX,KAAKc,SAASC,KAAK,CAAEC,cAAeL,KAC1FwB,EAAU,YAAAU,KAAK,UACfV,EAAA,QAAMC,MAAM,WAAWpC,KAAKO,KAAK,YAKvC4B,EAAA,QAAMC,MAAM,UAAUO,GAAI3C,KAAKC,QAC5BD,KAAKO,KAAK,WAIf4B,EAAA,kBAAAvB,IAAA,4CACEuB,EAAA,OAAAvB,IAAA,2CAAKwB,MAAM,WAAWU,SAAU,GAC9BX,EAAA,QAAAvB,IAAA,2CAAMmC,KAAK,WAId/C,KAAKiB,WACJkB,EAAK,OAAAvB,IAAA,2CAAAwB,MAAM,cACTD,EAAM,QAAAvB,IAAA,2CAAAmC,KAAK,a","ignoreList":[]}
1
+ {"version":3,"names":["translations","en","close","dialog","nl","modalCss","Modal","constructor","hostRef","this","ariaId","v4","dialogRole","returnFocus","undefined","closable","text","i18n","host","blockEscapeKey","e","key","preventDefault","dsoClose","emit","originalEvent","hasFooter","querySelector","componentDidLoad","_a","htmlDialogElement","isConnected","activeElement","getActiveElement","HTMLElement","returnFocusElement","showModal","disconnectedCallback","_c","_b","focus","handleDialogClick","target","render","h","class","role","ref","element","onClick","onKeyDown","modalTitle","id","type","icon","tabIndex","name"],"sources":["src/components/modal/modal.i18n.ts","src/components/modal/modal.scss?tag=dso-modal&encapsulation=shadow","src/components/modal/modal.tsx"],"sourcesContent":["import { Resource } from \"../../utils/i18n\";\r\n\r\nexport const translations: Resource = {\r\n en: {\r\n \"dso-modal\": {\r\n close: \"Close\",\r\n dialog: \"Dialog\",\r\n },\r\n },\r\n nl: {\r\n \"dso-modal\": {\r\n close: \"Sluiten\",\r\n dialog: \"Dialoog\",\r\n },\r\n },\r\n};\r\n","@use \"~dso-toolkit/src/utilities\";\r\n@use \"~dso-toolkit/src/components/button\";\r\n@use \"~dso-toolkit/src/components/modal\";\r\n@use \"~dso-toolkit/src/variables/media-query-breakpoints\";\r\n\r\n@include utilities.box-sizing();\r\n\r\n:host {\r\n display: block;\r\n}\r\n\r\n// fullscreen option\r\n:host([fullscreen]) dialog {\r\n @include modal.fullscreen();\r\n}\r\n\r\n// Go to fullscreen on =< 480px viewport\r\n@media screen and (max-width: media-query-breakpoints.$screen-xs-min) {\r\n :host dialog {\r\n @include modal.fullscreen();\r\n }\r\n}\r\n\r\n.sr-only {\r\n @include utilities.sr-only();\r\n}\r\n\r\nbutton {\r\n @include button.element();\r\n}\r\n\r\n.dso-modal {\r\n @include modal.root();\r\n}\r\n\r\n.dso-close {\r\n dso-icon {\r\n color: modal.$close-icon-color;\r\n }\r\n}\r\n","import { Component, ComponentInterface, Element, Event, EventEmitter, Prop, State, h } from \"@stencil/core\";\r\nimport { v4 } from \"uuid\";\r\n\r\nimport { getActiveElement } from \"../../utils/get-active-element\";\r\nimport { i18n } from \"../../utils/i18n\";\r\n\r\nimport { translations } from \"./modal.i18n\";\r\nimport { ModalCloseEvent } from \"./modal.interfaces\";\r\n\r\n@Component({\r\n tag: \"dso-modal\",\r\n styleUrl: \"modal.scss\",\r\n shadow: true,\r\n})\r\nexport class Modal implements ComponentInterface {\r\n private htmlDialogElement?: HTMLDialogElement;\r\n\r\n @Element()\r\n host!: HTMLDsoModalElement;\r\n\r\n @State()\r\n ariaId = v4();\r\n\r\n /**\r\n * when set the modal will be shown in fullscreen.\r\n */\r\n @Prop({ reflect: true })\r\n fullscreen?: boolean;\r\n\r\n /**\r\n * The title of the Modal.\r\n */\r\n @Prop()\r\n modalTitle?: string;\r\n\r\n /**\r\n * the role for the modal `dialog` | `alert` | `alertdialog`.\r\n */\r\n @Prop()\r\n dialogRole: string | null = \"dialog\";\r\n\r\n /**\r\n * The element to return focus to after the modal is closed.\r\n *\r\n * * `undefined` will return focus to the previously focused element (default).\r\n * * `false` will not return focus to any element.\r\n * * or, provide your own `HTMLElement` that will receive focus upon closing.\r\n */\r\n @Prop()\r\n returnFocus: false | HTMLElement | undefined = undefined;\r\n\r\n /**\r\n * when `false` the close button in the header will not be rendered.\r\n *\r\n * Needs `modalTitle` to be set.\r\n */\r\n @Prop()\r\n closable = false;\r\n\r\n private returnFocusElement: HTMLElement | undefined;\r\n\r\n /**\r\n * Emitted when the user:\r\n * - clicks the close button\r\n * - dismisses the Modal with the Escape button\r\n * - clicks or taps outside the Modal\r\n */\r\n @Event()\r\n dsoClose!: EventEmitter<ModalCloseEvent>;\r\n\r\n get hasFooter() {\r\n return this.host.querySelector(\"[slot='footer']\") !== null;\r\n }\r\n\r\n private text = i18n(() => this.host, translations);\r\n\r\n componentDidLoad(): void {\r\n if (this.htmlDialogElement?.isConnected) {\r\n const activeElement = getActiveElement();\r\n if (activeElement instanceof HTMLElement) {\r\n this.returnFocusElement = activeElement;\r\n }\r\n\r\n this.htmlDialogElement.showModal();\r\n }\r\n }\r\n\r\n disconnectedCallback(): void {\r\n this.htmlDialogElement?.close();\r\n\r\n if (this.returnFocus === false) {\r\n return;\r\n }\r\n\r\n (this.returnFocus ?? this.returnFocusElement)?.focus();\r\n }\r\n\r\n private handleDialogClick(e: MouseEvent) {\r\n if (!this.closable) {\r\n return;\r\n }\r\n\r\n if (e.target === this.htmlDialogElement) {\r\n this.dsoClose.emit({ originalEvent: e });\r\n }\r\n }\r\n\r\n private blockEscapeKey = (e: KeyboardEvent) => {\r\n if (e.key === \"Escape\") {\r\n e.preventDefault();\r\n\r\n if (this.closable) {\r\n this.dsoClose.emit({ originalEvent: e });\r\n }\r\n }\r\n };\r\n\r\n render() {\r\n return (\r\n <dialog\r\n class=\"dso-modal\"\r\n role={this.dialogRole ?? undefined}\r\n aria-modal=\"true\"\r\n aria-labelledby={this.ariaId}\r\n ref={(element) => (this.htmlDialogElement = element)}\r\n onClick={(e) => this.handleDialogClick(e)}\r\n onKeyDown={(e) => this.blockEscapeKey(e)}\r\n >\r\n <div class=\"dso-dialog\" role=\"document\">\r\n {this.modalTitle ? (\r\n <div class=\"dso-header\">\r\n <h2 id={this.ariaId}>{this.modalTitle}</h2>\r\n {this.closable && (\r\n <button type=\"button\" class=\"dso-close\" onClick={(e) => this.dsoClose.emit({ originalEvent: e })}>\r\n <dso-icon icon=\"times\"></dso-icon>\r\n <span class=\"sr-only\">{this.text(\"close\")}</span>\r\n </button>\r\n )}\r\n </div>\r\n ) : (\r\n <span class=\"sr-only\" id={this.ariaId}>\r\n {this.text(\"dialog\")}\r\n </span>\r\n )}\r\n\r\n <dso-scrollable>\r\n <div class=\"dso-body\" tabIndex={0}>\r\n <slot name=\"body\" />\r\n </div>\r\n </dso-scrollable>\r\n\r\n {this.hasFooter && (\r\n <div class=\"dso-footer\">\r\n <slot name=\"footer\" />\r\n </div>\r\n )}\r\n </div>\r\n </dialog>\r\n );\r\n }\r\n}\r\n"],"mappings":"qKAEO,MAAMA,EAAyB,CACpCC,GAAI,CACF,YAAa,CACXC,MAAO,QACPC,OAAQ,WAGZC,GAAI,CACF,YAAa,CACXF,MAAO,UACPC,OAAQ,aCZd,MAAME,EAAW,2mN,MCcJC,EAAK,MALlB,WAAAC,CAAAC,G,6CAYEC,KAAMC,OAAGC,IAkBTF,KAAUG,WAAkB,SAU5BH,KAAWI,YAAoCC,UAQ/CL,KAAQM,SAAG,MAiBHN,KAAAO,KAAOC,GAAK,IAAMR,KAAKS,MAAMlB,GAiC7BS,KAAAU,eAAkBC,IACxB,GAAIA,EAAEC,MAAQ,SAAU,CACtBD,EAAEE,iBAEF,GAAIb,KAAKM,SAAU,CACjBN,KAAKc,SAASC,KAAK,CAAEC,cAAeL,G,GAgD3C,CA1FC,aAAIM,GACF,OAAOjB,KAAKS,KAAKS,cAAc,qBAAuB,I,CAKxD,gBAAAC,G,MACE,IAAIC,EAAApB,KAAKqB,qBAAmB,MAAAD,SAAA,SAAAA,EAAAE,YAAa,CACvC,MAAMC,EAAgBC,IACtB,GAAID,aAAyBE,YAAa,CACxCzB,KAAK0B,mBAAqBH,C,CAG5BvB,KAAKqB,kBAAkBM,W,EAI3B,oBAAAC,G,WACER,EAAApB,KAAKqB,qBAAmB,MAAAD,SAAA,SAAAA,EAAA3B,QAExB,GAAIO,KAAKI,cAAgB,MAAO,CAC9B,M,EAGFyB,GAACC,EAAA9B,KAAKI,eAAW,MAAA0B,SAAA,EAAAA,EAAI9B,KAAK0B,sBAAqB,MAAAG,SAAA,SAAAA,EAAAE,O,CAGzC,iBAAAC,CAAkBrB,GACxB,IAAKX,KAAKM,SAAU,CAClB,M,CAGF,GAAIK,EAAEsB,SAAWjC,KAAKqB,kBAAmB,CACvCrB,KAAKc,SAASC,KAAK,CAAEC,cAAeL,G,EAcxC,MAAAuB,G,MACE,OACEC,EAAA,UAAAvB,IAAA,2CACEwB,MAAM,YACNC,MAAMjB,EAAApB,KAAKG,cAAc,MAAAiB,SAAA,EAAAA,EAAAf,UACd,oBACM,kBAAAL,KAAKC,OACtBqC,IAAMC,GAAavC,KAAKqB,kBAAoBkB,EAC5CC,QAAU7B,GAAMX,KAAKgC,kBAAkBrB,GACvC8B,UAAY9B,GAAMX,KAAKU,eAAeC,IAEtCwB,EAAA,OAAAvB,IAAA,2CAAKwB,MAAM,aAAaC,KAAK,YAC1BrC,KAAK0C,WACJP,EAAA,OAAKC,MAAM,cACTD,EAAI,MAAAQ,GAAI3C,KAAKC,QAASD,KAAK0C,YAC1B1C,KAAKM,UACJ6B,EAAQ,UAAAS,KAAK,SAASR,MAAM,YAAYI,QAAU7B,GAAMX,KAAKc,SAASC,KAAK,CAAEC,cAAeL,KAC1FwB,EAAU,YAAAU,KAAK,UACfV,EAAA,QAAMC,MAAM,WAAWpC,KAAKO,KAAK,YAKvC4B,EAAA,QAAMC,MAAM,UAAUO,GAAI3C,KAAKC,QAC5BD,KAAKO,KAAK,WAIf4B,EAAA,kBAAAvB,IAAA,4CACEuB,EAAA,OAAAvB,IAAA,2CAAKwB,MAAM,WAAWU,SAAU,GAC9BX,EAAA,QAAAvB,IAAA,2CAAMmC,KAAK,WAId/C,KAAKiB,WACJkB,EAAK,OAAAvB,IAAA,2CAAAwB,MAAM,cACTD,EAAM,QAAAvB,IAAA,2CAAAmC,KAAK,a","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ import{r as e,c as s,h as t,F as l,f as o,g as c}from"./p-C-b4jsbt.js";import{c as a}from"./p-DSyv-znO.js";const i='@charset "UTF-8";:host{display:block;padding-block:16px;padding-inline:16px 32px;position:relative}:host{--link-color:currentColor;--link-hover-color:currentColor;--link-visited-color:currentColor;background-color:#f2f2f2;border-color:#f2f2f2;color:#191919}:host a:not(.dso-primary,.dso-secondary,.dso-tertiary):is(.download,.download:hover,.download:focus-visible){background-image:var(--_dso-di-background-image, url("./di.svg#download-zwart"))}:host a:not(.dso-primary,.dso-secondary,.dso-tertiary):is(.extern,.extern:hover,.extern:focus-visible){background-image:var(--_dso-di-background-image, url("./di.svg#external-link-zwart"))}:host a:not(.dso-primary,.dso-secondary,.dso-tertiary):is([href^="tel:"],[href^="tel:"]:hover,[href^="tel:"]:focus-visible){background-image:var(--_dso-di-background-image, url("./di.svg#call-zwart"))}:host a:not(.dso-primary,.dso-secondary,.dso-tertiary):is([href^="mailto:"],[href^="mailto:"]:hover,[href^="mailto:"]:focus-visible){background-image:var(--_dso-di-background-image, url("./di.svg#email-zwart"))}:host>button{background-color:transparent;border-style:none;padding:0;position:absolute;inset-inline-end:8px;inset-block-start:8px}:host(:not([active],[fixed])),:host([active=false]:not([fixed])),:host([active=false][fixed=false]){display:none}button{-webkit-appearance:button;color:inherit;cursor:pointer;font:inherit;font-family:inherit;font-size:inherit;line-height:inherit;margin:0;overflow:visible;text-transform:none}button[disabled]{cursor:default}button::-moz-focus-inner{border:0;padding:0}*,*::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}';const d=class{constructor(t){e(this,t);this.dsoClose=s(this,"dsoClose",7)}render(){return t(l,{key:"3b3a3390da24484d21869661692c293f766bb06b"},t("slot",{key:"83976a207e4c1505329876192c83e6eccc1f6a52"}),!this.fixed&&t("button",{key:"de983b145b9a2cfd1adccc13116f0f17e8130314",type:"button",onClick:e=>this.dsoClose.emit(e)},t("dso-icon",{key:"c34a3568d69b61537de385c4e9b6277be5ea7697",icon:"times"}),t("span",{key:"bc2069fa68085e27fd9bab79d41ec801f5da1c5f",class:"sr-only"},"Sluiten")))}};d.style=i;const n='@charset "UTF-8";.sc-dso-selectable-h{padding-inline-start:var(--_dt-selectable-padding-inline-start, 32px);position:relative;display:var(--dso-selectable-display, block)}.sc-dso-selectable-h label.sc-dso-selectable{font-weight:400;line-height:24px;margin:0}.sc-dso-selectable-h input[type=checkbox][disabled].sc-dso-selectable+label.sc-dso-selectable::before,.sc-dso-selectable-h input[type=checkbox][disabled].sc-dso-selectable:active+label.sc-dso-selectable::before,.sc-dso-selectable-h input[type=checkbox][disabled].sc-dso-selectable:focus+label.sc-dso-selectable::before,.sc-dso-selectable-h input[type=radio][disabled].sc-dso-selectable+label.sc-dso-selectable::before,.sc-dso-selectable-h input[type=radio][disabled].sc-dso-selectable:active+label.sc-dso-selectable::before,.sc-dso-selectable-h input[type=radio][disabled].sc-dso-selectable:focus+label.sc-dso-selectable::before{background-color:#fff;box-shadow:0 0 0 2px #e5e5e5}.sc-dso-selectable-h input[type=checkbox].sc-dso-selectable,.sc-dso-selectable-h input[type=radio].sc-dso-selectable{block-size:100%;inset-inline-start:0;margin:0;appearance:none;position:absolute;inset-block-start:0;inline-size:100%;z-index:100;zoom:1}@media (prefers-contrast: more){.sc-dso-selectable-h input[type=checkbox].sc-dso-selectable,.sc-dso-selectable-h input[type=radio].sc-dso-selectable{opacity:1}}.sc-dso-selectable-h input[type=checkbox].sc-dso-selectable:not([disabled]),.sc-dso-selectable-h input[type=radio].sc-dso-selectable:not([disabled]){cursor:pointer}.sc-dso-selectable-h input[type=checkbox].sc-dso-selectable+label.sc-dso-selectable,.sc-dso-selectable-h input[type=radio].sc-dso-selectable+label.sc-dso-selectable{display:inline;font-style:normal;padding-inline-start:0}.sc-dso-selectable-h input[type=checkbox].sc-dso-selectable+label.sc-dso-selectable::before,.sc-dso-selectable-h input[type=radio].sc-dso-selectable+label.sc-dso-selectable::before{background:#fff;border:0;box-shadow:0 0 0 2px var(--dso-selectable-color, #275937);content:"";block-size:20px;inset-inline-start:2px;position:absolute;inset-block-start:2px;inline-size:20px}.sc-dso-selectable-h input[type=checkbox].sc-dso-selectable:active+label.sc-dso-selectable::before,.sc-dso-selectable-h input[type=checkbox].active.sc-dso-selectable+label.sc-dso-selectable::before,.sc-dso-selectable-h input[type=radio].sc-dso-selectable:active+label.sc-dso-selectable::before,.sc-dso-selectable-h input[type=radio].active.sc-dso-selectable+label.sc-dso-selectable::before{background-color:#ebf3e6;box-shadow:0 0 0 1px #275937;block-size:22px;inset-inline-start:1px;inset-block-start:1px;inline-size:22px}.sc-dso-selectable-h input[type=checkbox].sc-dso-selectable+label.sc-dso-selectable::before{border-radius:4px}.sc-dso-selectable-h input[type=checkbox].sc-dso-selectable+label.sc-dso-selectable::after{background:transparent;content:"";inset-inline-start:6px;opacity:0;position:absolute;inset-block-start:6px;zoom:1}.sc-dso-selectable-h input[type=checkbox].sc-dso-selectable:checked+label.sc-dso-selectable::after,.sc-dso-selectable-h input[type=checkbox].sc-dso-selectable:indeterminate+label.sc-dso-selectable::after{opacity:1}.sc-dso-selectable-h input[type=checkbox].sc-dso-selectable:checked+label.sc-dso-selectable::after{border:solid;border-color:var(--dso-selectable-color, #39870c);border-block-start-color:transparent;border-width:0 0 3px 3px;block-size:8px;transform:rotate(-45deg);inline-size:13px}.sc-dso-selectable-h input[type=checkbox].sc-dso-selectable:indeterminate+label.sc-dso-selectable::after{background-color:var(--dso-selectable-color, #39870c);block-size:12px;inline-size:12px}.sc-dso-selectable-h input[type=radio].sc-dso-selectable+label.sc-dso-selectable::before{border-radius:50%}.sc-dso-selectable-h input[type=radio].sc-dso-selectable+label.sc-dso-selectable::after{background-color:transparent;border-radius:50%;content:"";block-size:12px;inset-inline-start:6px;opacity:0;position:absolute;inset-block-start:6px;inline-size:12px;zoom:1}.sc-dso-selectable-h input[type=radio].sc-dso-selectable:checked+label.sc-dso-selectable::after{background-color:var(--dso-selectable-color, #39870c);opacity:1}[invalid].sc-dso-selectable-h:not([invalid=false]){--dso-selectable-color:#ce3f51}.sc-dso-selectable-h>dso-info.sc-dso-selectable{float:none;margin-block:8px 0;margin-inline:0 16px;inline-size:100%}.sc-dso-selectable-h .dso-selectable-options.sc-dso-selectable{list-style:none;margin-block-start:8px;padding-inline-start:0}.sc-dso-selectable-h .dso-selectable-options.sc-dso-selectable li.sc-dso-selectable+li.sc-dso-selectable{margin-block-start:8px}.sc-dso-selectable-h:not(:last-child){margin-block-end:8px}*.sc-dso-selectable,*.sc-dso-selectable::after,*.sc-dso-selectable::before{box-sizing:border-box}.dso-selectable-container.sc-dso-selectable{display:inline-block}.dso-selectable-container.sc-dso-selectable .dso-selectable-input-wrapper.sc-dso-selectable{display:inline-block;min-block-size:24px;position:relative;margin-inline-start:var(--_dt-selectable-input-wrapper-margin-inline-start, -32px);padding-inline-start:var(--_dt-selectable-input-wrapper-padding-inline-start, 32px)}.dso-selectable-container.sc-dso-selectable .dso-selectable-input-wrapper.sc-dso-selectable input[type=radio].sc-dso-selectable:focus+label.sc-dso-selectable::before,.dso-selectable-container.sc-dso-selectable .dso-selectable-input-wrapper.sc-dso-selectable input[type=checkbox].sc-dso-selectable:focus+label.sc-dso-selectable::before{box-shadow:0 0 0 2px var(--dso-selectable-color, #275937);block-size:20px;inset-inline-start:2px;inset-block-start:2px;inline-size:20px}';const b=class{constructor(t){e(this,t);this.dsoChange=s(this,"dsoChange",7);this.infoActive=false;this.fallbackIdentifier=a("DsoSelectable");this.handleOnChange=e=>{const{target:s}=e;this.dsoChange.emit({originalEvent:e,checked:s instanceof HTMLInputElement&&s.checked});o(this.host)}}async toggleInfo(e){this.infoActive=e!==null&&e!==void 0?e:!this.infoActive}componentDidLoad(){var e;(e=this.mutationObserver)===null||e===void 0?void 0:e.disconnect();this.mutationObserver=new MutationObserver((()=>o(this.host)));this.mutationObserver.observe(this.host,{childList:true});this.setIndeterminate()}disconnectedCallback(){var e;(e=this.mutationObserver)===null||e===void 0?void 0:e.disconnect()}setIndeterminate(){if(!(this.input instanceof HTMLInputElement)||this.type!=="checkbox"){return}this.input.indeterminate=!!this.indeterminate}render(){var e;const s=!!this.host.querySelector('[slot="info"]');return t(l,{key:"2534184be166622bdaadee8f12acc8677838ba36"},t("div",{key:"2e2819d9cb5410f204e8e82db3fe117205a983d9",class:"dso-selectable-container"},t("div",{key:"56d506c5aa7d8d74afc03e6b38ef2589b8ffb717",class:"dso-selectable-input-wrapper"},t("input",{key:"96c54d64e1a6c85f21bb34e2338024d07ce35736",type:this.type,id:this.getIdentifier(),value:this.value,name:this.name,"aria-invalid":(e=this.invalid)===null||e===void 0?void 0:e.toString(),"aria-describedby":s&&this.infoFixed?this.describedById:undefined,"aria-labelledBy":this.labelledById,disabled:this.disabled,required:this.required,checked:this.checked,onChange:this.handleOnChange,ref:e=>this.input=e}),!this.labelledById?t("label",{htmlFor:this.getIdentifier()},t("slot",null)):t("label",null,t("slot",null))),s&&!this.infoFixed&&t("dso-info-button",{key:"8d4d6efa50d4db12e0fa2dbca4f9ba1feef350a2",active:this.infoActive,onDsoToggle:e=>this.infoActive=e.detail.active})),s&&t("dso-info",{key:"f1c1d611553a67a8144c85c62f26cdec60b725f1",id:s&&this.infoFixed?this.describedById:undefined,fixed:this.infoFixed,active:this.infoActive,onDsoClose:()=>this.infoActive=false},t("div",{key:"f226b76f318df6542efdc89ea71dc5f5beb0f0bc"},t("slot",{key:"8285d8bd98be43832dc6b381a83c441d282845f9",name:"info"}))),t("slot",{key:"9497982a5ffb4b53295e0ef170e8034114cb0f83",name:"options"}))}componentDidRender(){if(this.input&&typeof this.checked==="boolean"&&this.input.checked!==this.checked){this.input.checked=this.checked}}getIdentifier(){var e;return(e=this.identifier)!==null&&e!==void 0?e:this.fallbackIdentifier}get host(){return c(this)}static get watchers(){return{indeterminate:["setIndeterminate"]}}};b.style=n;export{d as dso_info,b as dso_selectable};
2
+ //# sourceMappingURL=p-fcb3d0dc.entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["infoCss","Info","render","h","Fragment","key","this","fixed","type","onClick","e","dsoClose","emit","icon","class","selectableCss","Selectable","constructor","hostRef","infoActive","fallbackIdentifier","createIdentifier","handleOnChange","target","dsoChange","originalEvent","checked","HTMLInputElement","forceUpdate","host","toggleInfo","active","componentDidLoad","_a","mutationObserver","disconnect","MutationObserver","observe","childList","setIndeterminate","disconnectedCallback","input","indeterminate","hasInfo","querySelector","id","getIdentifier","value","name","invalid","toString","infoFixed","describedById","undefined","labelledById","disabled","required","onChange","ref","el","htmlFor","onDsoToggle","detail","onDsoClose","componentDidRender","identifier"],"sources":["src/components/info/info.scss?tag=dso-info&encapsulation=shadow","src/components/info/info.tsx","src/components/selectable/selectable.scss?tag=dso-selectable&encapsulation=scoped","src/components/selectable/selectable.tsx"],"sourcesContent":["@use \"~dso-toolkit/src/utilities\";\r\n@use \"~dso-toolkit/src/components/button\";\r\n@use \"~dso-toolkit/src/components/info\";\r\n\r\n:host {\r\n display: block;\r\n\r\n @include info.root();\r\n}\r\n\r\n:host(:not([active], [fixed])),\r\n:host([active=\"false\"]:not([fixed])),\r\n:host([active=\"false\"][fixed=\"false\"]) {\r\n display: none;\r\n}\r\n\r\nbutton {\r\n @include button.element();\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","import { Component, Event, EventEmitter, Fragment, Prop, h } from \"@stencil/core\";\r\n\r\n@Component({\r\n tag: \"dso-info\",\r\n styleUrl: \"./info.scss\",\r\n shadow: true,\r\n})\r\nexport class Info {\r\n /**\r\n * Set to true if the Info should not be toggled and always visible.\r\n */\r\n @Prop({ reflect: true })\r\n fixed?: boolean;\r\n\r\n /**\r\n * Whether the Info is active.\r\n */\r\n @Prop({ reflect: true })\r\n active?: boolean;\r\n\r\n /**\r\n * Emitted when the user activates the close button.\r\n */\r\n @Event()\r\n dsoClose!: EventEmitter<MouseEvent>;\r\n\r\n render() {\r\n return (\r\n <Fragment>\r\n <slot></slot>\r\n {!this.fixed && (\r\n <button type=\"button\" onClick={(e) => this.dsoClose.emit(e)}>\r\n <dso-icon icon=\"times\"></dso-icon>\r\n <span class=\"sr-only\">Sluiten</span>\r\n </button>\r\n )}\r\n </Fragment>\r\n );\r\n }\r\n}\r\n","@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/zindex\";\r\n@use \"selectable.variables\" as selectable-variables;\r\n\r\n:host {\r\n padding-inline-start: var(--_dt-selectable-padding-inline-start, selectable-variables.$symbol-indent);\r\n position: relative;\r\n display: var(--dso-selectable-display, block);\r\n\r\n label {\r\n font-weight: 400;\r\n line-height: selectable-variables.$size;\r\n margin: 0;\r\n }\r\n\r\n input[type=\"checkbox\"][disabled],\r\n input[type=\"radio\"][disabled] {\r\n &,\r\n &:active,\r\n &:focus {\r\n + label {\r\n &::before {\r\n background-color: colors.$wit;\r\n box-shadow: 0 0 0 selectable-variables.$border-width selectable-variables.$disabled-color;\r\n }\r\n }\r\n }\r\n }\r\n\r\n input[type=\"checkbox\"],\r\n input[type=\"radio\"] {\r\n block-size: 100%;\r\n inset-inline-start: 0;\r\n margin: 0;\r\n appearance: none;\r\n position: absolute;\r\n inset-block-start: 0;\r\n inline-size: 100%;\r\n z-index: zindex.$selectable;\r\n zoom: 1;\r\n\r\n @media (prefers-contrast: more) {\r\n & {\r\n opacity: 1;\r\n }\r\n }\r\n\r\n &:not([disabled]) {\r\n cursor: pointer;\r\n }\r\n\r\n + label {\r\n display: inline;\r\n font-style: normal;\r\n padding-inline-start: 0;\r\n\r\n &::before {\r\n background: colors.$wit;\r\n border: 0;\r\n box-shadow: 0 0 0 selectable-variables.$border-width\r\n var(--dso-selectable-color, selectable-variables.$valid-color);\r\n content: \"\";\r\n block-size: selectable-variables.$size - 2 * selectable-variables.$border-width;\r\n inset-inline-start: selectable-variables.$border-width;\r\n position: absolute;\r\n inset-block-start: selectable-variables.$border-width;\r\n inline-size: selectable-variables.$size - 2 * selectable-variables.$border-width;\r\n }\r\n }\r\n\r\n &:active,\r\n &.active {\r\n + label::before {\r\n background-color: selectable-variables.$active-background-color;\r\n box-shadow: 0 0 0 1px selectable-variables.$valid-color;\r\n block-size: selectable-variables.$size - 2px;\r\n inset-inline-start: 1px;\r\n inset-block-start: 1px;\r\n inline-size: selectable-variables.$size - 2px;\r\n }\r\n }\r\n }\r\n\r\n input[type=\"checkbox\"] {\r\n + label {\r\n &::before {\r\n border-radius: 4px;\r\n }\r\n\r\n &::after {\r\n background: transparent;\r\n content: \"\";\r\n inset-inline-start: 6px;\r\n opacity: 0;\r\n position: absolute;\r\n inset-block-start: 6px;\r\n zoom: 1;\r\n }\r\n }\r\n\r\n &:checked,\r\n &:indeterminate {\r\n + label {\r\n &::after {\r\n opacity: 1;\r\n }\r\n }\r\n }\r\n\r\n &:checked {\r\n + label {\r\n &::after {\r\n border: solid;\r\n border-color: var(--dso-selectable-color, selectable-variables.$valid-marker-color);\r\n border-block-start-color: transparent;\r\n border-width: 0 0 3px 3px;\r\n block-size: 8px;\r\n transform: rotate(-45deg);\r\n inline-size: 13px;\r\n }\r\n }\r\n }\r\n\r\n &:indeterminate {\r\n + label {\r\n &::after {\r\n background-color: var(--dso-selectable-color, selectable-variables.$valid-marker-color);\r\n block-size: selectable-variables.$indeterminate-size;\r\n inline-size: selectable-variables.$indeterminate-size;\r\n }\r\n }\r\n }\r\n }\r\n\r\n input[type=\"radio\"] {\r\n + label {\r\n &::before {\r\n border-radius: 50%;\r\n }\r\n\r\n &::after {\r\n background-color: transparent;\r\n border-radius: 50%;\r\n content: \"\";\r\n block-size: 12px;\r\n inset-inline-start: 6px;\r\n opacity: 0;\r\n position: absolute;\r\n inset-block-start: 6px;\r\n inline-size: 12px;\r\n zoom: 1;\r\n }\r\n }\r\n\r\n &:checked {\r\n + label {\r\n &::after {\r\n background-color: var(--dso-selectable-color, selectable-variables.$valid-marker-color);\r\n opacity: 1;\r\n }\r\n }\r\n }\r\n }\r\n\r\n &[invalid]:not([invalid=\"false\"]) {\r\n --dso-selectable-color: #{selectable-variables.$invalid-color};\r\n }\r\n\r\n > dso-info {\r\n float: none;\r\n margin-block: units.$u1 0;\r\n margin-inline: 0 units.$u2;\r\n inline-size: 100%;\r\n }\r\n\r\n .dso-selectable-options {\r\n list-style: none;\r\n margin-block-start: units.$u1;\r\n padding-inline-start: 0;\r\n\r\n li + li {\r\n margin-block-start: units.$u1;\r\n }\r\n }\r\n}\r\n\r\n:host(:not(:last-child)) {\r\n margin-block-end: units.$u1;\r\n}\r\n\r\n@include utilities.box-sizing();\r\n\r\n.dso-selectable-container {\r\n display: inline-block;\r\n\r\n .dso-selectable-input-wrapper {\r\n display: inline-block;\r\n min-block-size: units.$u3;\r\n position: relative;\r\n margin-inline-start: var(\r\n --_dt-selectable-input-wrapper-margin-inline-start,\r\n -(selectable-variables.$symbol-indent)\r\n );\r\n padding-inline-start: var(--_dt-selectable-input-wrapper-padding-inline-start, selectable-variables.$symbol-indent);\r\n\r\n input[type=\"radio\"],\r\n input[type=\"checkbox\"] {\r\n &:focus + label::before {\r\n box-shadow: 0 0 0 selectable-variables.$border-width\r\n var(--dso-selectable-color, selectable-variables.$valid-color);\r\n block-size: selectable-variables.$size - 2 * selectable-variables.$border-width;\r\n inset-inline-start: selectable-variables.$border-width;\r\n inset-block-start: selectable-variables.$border-width;\r\n inline-size: selectable-variables.$size - 2 * selectable-variables.$border-width;\r\n }\r\n }\r\n }\r\n}\r\n","import {\r\n Component,\r\n ComponentInterface,\r\n Element,\r\n Event,\r\n EventEmitter,\r\n Fragment,\r\n Method,\r\n Prop,\r\n State,\r\n Watch,\r\n forceUpdate,\r\n h,\r\n} from \"@stencil/core\";\r\n\r\nimport { createIdentifier } from \"../../utils/create-identifier\";\r\n\r\nimport { SelectableChangeEvent } from \"./selectable.interfaces\";\r\n\r\n/**\r\n * @slot - The label for this control\r\n * @slot info - Rich Content to be slotted in Info.\r\n * @slot options - for further nested selectable options: `<ul class=\"dso-selectable-options\" slot=\"options\">` and wrap each Selectable in a `<li>`.\r\n */\r\n@Component({\r\n tag: \"dso-selectable\",\r\n styleUrl: \"selectable.scss\",\r\n scoped: true,\r\n})\r\nexport class Selectable implements ComponentInterface {\r\n /**\r\n * Type of Selectable.\r\n *\r\n * `checkbox`: Multiple options\r\n * `radio`: Single option.\r\n */\r\n @Prop()\r\n type!: \"checkbox\" | \"radio\";\r\n\r\n /**\r\n * To set `<input id>` attribute for external references.\r\n */\r\n @Prop()\r\n identifier?: string;\r\n\r\n /**\r\n * Name of the Selectable. Can be used to group Selectables.\r\n */\r\n @Prop()\r\n name?: string;\r\n\r\n /**\r\n * The value of the Selectable.\r\n */\r\n @Prop()\r\n value!: string;\r\n\r\n /**\r\n * Set to true of the current value is not valid.\r\n */\r\n @Prop()\r\n invalid?: boolean;\r\n\r\n /**\r\n * To link this control to an element that describes it.\r\n */\r\n @Prop()\r\n describedById?: string;\r\n\r\n /**\r\n * To link this control to an element that labels it.\r\n */\r\n @Prop()\r\n labelledById?: string;\r\n\r\n /**\r\n * To disable the Selectable.\r\n */\r\n @Prop()\r\n disabled?: boolean;\r\n\r\n /**\r\n * To mark the Selectable as required.\r\n */\r\n @Prop()\r\n required?: boolean;\r\n\r\n /**\r\n * Mark the Selectable as checked\r\n */\r\n @Prop({ reflect: true })\r\n checked?: boolean;\r\n\r\n /**\r\n * An indeterminate state is neither true or false. It means the answer is somewhere in between.\r\n *\r\n * Can be used to indicate child Selectables that are a mix of checked and unchecked.\r\n */\r\n @Prop()\r\n indeterminate?: boolean;\r\n\r\n /**\r\n * Set to true if the Info should not be toggled and always visible.\r\n */\r\n @Prop()\r\n infoFixed?: boolean;\r\n\r\n /**\r\n * Emitted when the user checks or unchecks the Selectable.\r\n */\r\n @Event()\r\n dsoChange!: EventEmitter<SelectableChangeEvent>;\r\n\r\n @Element()\r\n host!: HTMLDsoSelectableElement;\r\n\r\n @State()\r\n infoActive = false;\r\n\r\n /**\r\n * Method to toggle the Info. Is set to `active` when passed.\r\n *\r\n * If `active` is not passed, Info is toggled to opposite value.\r\n * @param active\r\n */\r\n @Method()\r\n async toggleInfo(active?: boolean) {\r\n this.infoActive = active ?? !this.infoActive;\r\n }\r\n\r\n private mutationObserver?: MutationObserver;\r\n\r\n private fallbackIdentifier = createIdentifier(\"DsoSelectable\");\r\n\r\n private input: HTMLInputElement | undefined;\r\n\r\n private handleOnChange = (e: Event) => {\r\n const { target } = e;\r\n\r\n this.dsoChange.emit({\r\n originalEvent: e,\r\n checked: target instanceof HTMLInputElement && target.checked,\r\n });\r\n\r\n forceUpdate(this.host);\r\n };\r\n\r\n componentDidLoad() {\r\n this.mutationObserver?.disconnect();\r\n\r\n this.mutationObserver = new MutationObserver(() => forceUpdate(this.host));\r\n this.mutationObserver.observe(this.host, {\r\n childList: true,\r\n });\r\n\r\n this.setIndeterminate();\r\n }\r\n\r\n disconnectedCallback() {\r\n this.mutationObserver?.disconnect();\r\n }\r\n\r\n @Watch(\"indeterminate\")\r\n setIndeterminate() {\r\n if (!(this.input instanceof HTMLInputElement) || this.type !== \"checkbox\") {\r\n return;\r\n }\r\n\r\n this.input.indeterminate = !!this.indeterminate;\r\n }\r\n\r\n render() {\r\n const hasInfo = !!this.host.querySelector('[slot=\"info\"]');\r\n\r\n return (\r\n <Fragment>\r\n <div class=\"dso-selectable-container\">\r\n <div class=\"dso-selectable-input-wrapper\">\r\n <input\r\n type={this.type}\r\n id={this.getIdentifier()}\r\n value={this.value}\r\n name={this.name}\r\n aria-invalid={this.invalid?.toString()}\r\n aria-describedby={hasInfo && this.infoFixed ? this.describedById : undefined}\r\n aria-labelledBy={this.labelledById}\r\n disabled={this.disabled}\r\n required={this.required}\r\n checked={this.checked}\r\n onChange={this.handleOnChange}\r\n ref={(el) => (this.input = el)}\r\n />\r\n {!this.labelledById ? (\r\n <label htmlFor={this.getIdentifier()}>\r\n <slot />\r\n </label>\r\n ) : (\r\n <label>\r\n <slot />\r\n </label>\r\n )}\r\n </div>\r\n {hasInfo && !this.infoFixed && (\r\n <dso-info-button\r\n active={this.infoActive}\r\n onDsoToggle={(e) => (this.infoActive = e.detail.active)}\r\n ></dso-info-button>\r\n )}\r\n </div>\r\n {hasInfo && (\r\n <dso-info\r\n id={hasInfo && this.infoFixed ? this.describedById : undefined}\r\n fixed={this.infoFixed}\r\n active={this.infoActive}\r\n onDsoClose={() => (this.infoActive = false)}\r\n >\r\n <div>\r\n <slot name=\"info\"></slot>\r\n </div>\r\n </dso-info>\r\n )}\r\n <slot name=\"options\" />\r\n </Fragment>\r\n );\r\n }\r\n\r\n componentDidRender(): void {\r\n if (this.input && typeof this.checked === \"boolean\" && this.input.checked !== this.checked) {\r\n this.input.checked = this.checked;\r\n }\r\n }\r\n\r\n private getIdentifier(): string {\r\n return this.identifier ?? this.fallbackIdentifier;\r\n }\r\n}\r\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ import{r as e,c as o,h as s,F as t,g as r}from"./p-C-b4jsbt.js";import{c as i}from"./p-ChV9xqsO.js";import{d as l}from"./p-DDU8nTJS.js";import{v as d}from"./p-BF0_OXTe.js";import"./p-BFTU3MAI.js";const a='@charset "UTF-8";:host{display:inline-block;max-inline-size:100%}*,*::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}.dso-label{border-radius:4px;display:inline-block;line-height:1.5;max-inline-size:100%;padding-block:4px;padding-inline:8px}.dso-label:focus-within,.dso-label.dso-hover{text-decoration:line-through}.dso-label button{background:none;border:0;border-radius:0 4px 4px 0;color:inherit;float:inline-end;font-size:1rem;margin-block-end:-4px;margin-inline-start:8px;margin-inline-end:-4px;margin-block-start:0;padding:0}.dso-label button:hover{cursor:pointer}.dso-label button>dso-icon,.dso-label button>svg.di{display:block}.dso-label{background-color:#f2f2f2;border-color:#f2f2f2;color:#191919}.dso-label.dso-label-info{background-color:#6ca4d9;border-color:#6ca4d9;color:#191919}.dso-label.dso-label-primary{background-color:#275937;border-color:#275937;color:#fff}.dso-label.dso-label-success{background-color:#39870c;border-color:#39870c;color:#fff}.dso-label.dso-label-warning{background-color:#dcd400;border-color:#dcd400;color:#191919}.dso-label.dso-label-error{background-color:#ce3f51;border-color:#ce3f51;color:#fff}.dso-label.dso-label-bright{background-color:#fff;border-color:#fff;color:#191919}.dso-label.dso-label-bright{outline:1px solid #ccc;outline-offset:-1px}.dso-label.dso-label-attention{background-color:#8b4a6a;border-color:#8b4a6a;color:#fff}.dso-label.dso-label-filter{background-color:#e1ecf7;border-color:#e1ecf7;color:#191919}.dso-label.dso-label-filter{border-inline-start:5px solid #2b5780}.dso-label.dso-compact{padding-block:0;padding-inline:8px}.dso-label.dso-hover .dso-label-content{text-decoration:line-through}.dso-truncate.dso-label-content{display:inline-block;max-inline-size:100%;overflow:hidden;text-overflow:ellipsis;vertical-align:bottom;white-space:nowrap}:host([removable]) .dso-truncate.dso-label-content{max-inline-size:calc(100% - 28px)}';const n=new ResizeObserver(l((e=>{e.forEach((({target:e})=>{if(c(e)){e._truncateLabel()}}))}),150));function c(e){return e.tagName==="DSO-LABEL"}function b(e){return e.scrollWidth>e.clientWidth}const h=class{constructor(s){e(this,s);this.dsoRemoveClick=o(this,"dsoRemoveClick",7);this.isTruncated=false;this.labelText=""}watchRemovable(e){if(e){this.startMutationObserver()}else{this.stopMutationObserver()}}watchTruncate(e){if(e){this.startTruncate()}else{this.stopTruncate()}}keyDownListener(e){if(e.key==="Escape"){this.textHover=false;this.textFocus=false}}async _truncateLabel(){setTimeout((()=>{this.isTruncated=!!this.labelContent&&b(this.labelContent)}))}syncLabelText(){var e,o;this.labelText=(o=(e=this.host.textContent)===null||e===void 0?void 0:e.trim())!==null&&o!==void 0?o:""}componentDidLoad(){if(this.truncate){this.startTruncate()}if(this.removable){this.startMutationObserver()}}disconnectedCallback(){this.stopTruncate();this.stopMutationObserver(true)}startMutationObserver(){this.mutationObserver=new MutationObserver((()=>this.syncLabelText()));this.mutationObserver.observe(this.host,{characterData:true,childList:true,subtree:true,attributes:true});this.syncLabelText()}stopMutationObserver(e=false){var o;if(e||!(this.truncate&&this.removable)){(o=this.mutationObserver)===null||o===void 0?void 0:o.disconnect();delete this.mutationObserver}}startTruncate(){n.observe(this.host);this.startMutationObserver();this._truncateLabel()}stopTruncate(){n.unobserve(this.host);this.stopMutationObserver();this.isTruncated=false}render(){return s(t,{key:"d89597ffc51b15962f552c29f36f521bdaf39c50"},s("span",{key:"f1e469e66f240054f1dfde27fdc8b8ab2420ff66","aria-describedby":"toggle-anchor",class:i("dso-label",{[`dso-label-${this.status}`]:this.status,"dso-compact":this.compact&&!this.removable,"dso-hover":this.removeHover||this.removeFocus})},s("slot",{key:"45f7379dff3dc6b90427bc6c16cae56f20c361bd",name:"symbol"}),s("span",{key:"881082872c27e2ded34841d16789e14a406769fc",class:i("dso-label-content",{"dso-truncate":!!this.truncate}),ref:e=>this.labelContent=e,tabindex:this.truncate&&this.isTruncated?0:undefined,onMouseEnter:()=>this.textHover=true,onMouseLeave:()=>this.textHover=false,onFocus:()=>this.textFocus=true,onBlur:()=>this.textFocus=false},s("slot",{key:"d39c1578c6da70686cd0f29bc1c11ea3fabce7b1"})),this.removable&&s("button",{key:"54c612faadd4f9c6c857d7a615f9272bd27b54d0",type:"button",onClick:e=>this.dsoRemoveClick.emit(e),onMouseEnter:()=>this.removeHover=true,onMouseLeave:()=>this.removeHover=false,onFocus:()=>this.removeFocus=true,onBlur:()=>this.removeFocus=false},s("span",{key:"c0c9ba47faa4fe975a44082d137737d556c78634",class:"sr-only"},"Verwijder: ",this.labelText),s("dso-icon",{key:"6120cb63ec101cccb6e36349576866cd5f8a5672",icon:"times"}))),this.isTruncated&&s("dso-tooltip",{key:"ae3d3d54388e85890b9a536557f27a084175ac6d",stateless:true,id:"toggle-anchor",active:this.textHover||this.textFocus,position:"top",strategy:"absolute"},this.labelText))}get host(){return r(this)}static get watchers(){return{removable:["watchRemovable"],truncate:["watchTruncate"]}}};h.style=a;const g=({text:e,mark:o,onMarkItemHighlight:r})=>{if(!o){return s(t,null,e)}const i=o(e);if(!i){return s(t,null,e)}return s(t,null,i.map((e=>{if(typeof e==="string"){return s(t,null,e)}return s("mark",{class:e.highlight?"dso-highlight":undefined,ref:o=>e.highlight&&o&&r(e.text,o)},e.text)})))};const f=({value:e,mark:o,onMarkItemHighlight:r})=>{if(typeof e==="string"||!e){return s("span",{class:"text"},s(g,{text:e,mark:o,onMarkItemHighlight:r}))}if("toegevoegd"in e){return s("ins",null,s(g,{text:e.toegevoegd,mark:o,onMarkItemHighlight:r}))}if("verwijderd"in e){return s("del",null,s(g,{text:e.verwijderd,mark:o,onMarkItemHighlight:r}))}return s(t,null,s("del",null,s(g,{text:e.was,mark:o,onMarkItemHighlight:r})),s("ins",null,s(g,{text:e.wordt,mark:o,onMarkItemHighlight:r})))};const u='@charset "UTF-8";ins{text-decoration:none}ins{--link-color:currentColor;--link-hover-color:currentColor;--link-visited-color:currentColor;background-color:#e4f1d4;border-color:#e4f1d4;color:#191919}ins a:not(.dso-primary,.dso-secondary,.dso-tertiary):is(.download,.download:hover,.download:focus-visible){background-image:var(--_dso-di-background-image, url("./di.svg#download-zwart"))}ins a:not(.dso-primary,.dso-secondary,.dso-tertiary):is(.extern,.extern:hover,.extern:focus-visible){background-image:var(--_dso-di-background-image, url("./di.svg#external-link-zwart"))}ins a:not(.dso-primary,.dso-secondary,.dso-tertiary):is([href^="tel:"],[href^="tel:"]:hover,[href^="tel:"]:focus-visible){background-image:var(--_dso-di-background-image, url("./di.svg#call-zwart"))}ins a:not(.dso-primary,.dso-secondary,.dso-tertiary):is([href^="mailto:"],[href^="mailto:"]:hover,[href^="mailto:"]:focus-visible){background-image:var(--_dso-di-background-image, url("./di.svg#email-zwart"))}ins{box-shadow:0 1px 3px 1px rgba(0, 0, 0, 0.25)}del{--link-color:currentColor;--link-hover-color:currentColor;--link-visited-color:currentColor;background-color:#f5d8dc;border-color:#f5d8dc;color:#191919}del a:not(.dso-primary,.dso-secondary,.dso-tertiary):is(.download,.download:hover,.download:focus-visible){background-image:var(--_dso-di-background-image, url("./di.svg#download-zwart"))}del a:not(.dso-primary,.dso-secondary,.dso-tertiary):is(.extern,.extern:hover,.extern:focus-visible){background-image:var(--_dso-di-background-image, url("./di.svg#external-link-zwart"))}del a:not(.dso-primary,.dso-secondary,.dso-tertiary):is([href^="tel:"],[href^="tel:"]:hover,[href^="tel:"]:focus-visible){background-image:var(--_dso-di-background-image, url("./di.svg#call-zwart"))}del a:not(.dso-primary,.dso-secondary,.dso-tertiary):is([href^="mailto:"],[href^="mailto:"]:hover,[href^="mailto:"]:focus-visible){background-image:var(--_dso-di-background-image, url("./di.svg#email-zwart"))}del{text-decoration:line-through}@media screen and (min--moz-device-pixel-ratio: 0){del{font-family:sans-serif}}mark{background-color:var(--_dt-mark-bg-color, #f8f5ce);color:var(--_dt-mark-color, #000);padding-block:var(--_dt-mark-padding-block, 0.2rem);font-weight:var(--_dt-mark-font-weight, normal)}mark.dso-highlight{background-color:#dbd136}:host{display:inline}*,*::after,*::before{box-sizing:border-box}.text{text-decoration:var(--_dso-renvooi-text-decoration)}';const m=class{constructor(s){e(this,s);this.dsoRenvooiMarkItemHighlight=o(this,"dsoRenvooiMarkItemHighlight",3);this.handleMarkItemHighlight=(e,o)=>{this.dsoRenvooiMarkItemHighlight.emit({text:e,elementRef:o})}}get values(){if(!this.value){return[]}return Array.isArray(this.value)?this.value:[this.value]}render(){return s(t,null,this.values.map((e=>s(f,{value:e,mark:this.mark&&(o=>{var s;return(s=this.mark)===null||s===void 0?void 0:s.call(this,o,e,this.values)}),onMarkItemHighlight:this.handleMarkItemHighlight}))))}};m.style=u;const k='@charset "UTF-8";.sc-dso-slide-toggle-h{display:inline-block;padding-block-start:2px}button.dso-slider.sc-dso-slide-toggle{border:0;padding:0}button.dso-slider.sc-dso-slide-toggle:focus-visible{outline:2px solid #323232;outline-offset:1px}button.dso-slider.sc-dso-slide-toggle svg.sc-dso-slide-toggle rect.sc-dso-slide-toggle{fill:#999;transition:fill 0.25s}button.dso-slider.sc-dso-slide-toggle svg.sc-dso-slide-toggle circle.sc-dso-slide-toggle{transition:transform 260ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transform:translateX(10px);fill:#fff}button.dso-slider[aria-checked=true].sc-dso-slide-toggle svg.sc-dso-slide-toggle rect.sc-dso-slide-toggle{fill:#275937}button.dso-slider[aria-checked=true].sc-dso-slide-toggle svg.sc-dso-slide-toggle circle.sc-dso-slide-toggle{transform:translateX(30px);fill:#fff}button.dso-slider[disabled].sc-dso-slide-toggle svg.sc-dso-slide-toggle rect.sc-dso-slide-toggle{fill:#ccc}button.dso-slider[disabled].sc-dso-slide-toggle svg.sc-dso-slide-toggle circle.sc-dso-slide-toggle{fill:#e5e5e5}button.dso-slider[disabled][aria-checked=true].sc-dso-slide-toggle svg.sc-dso-slide-toggle rect.sc-dso-slide-toggle{fill:#a8bcaf}button.dso-slider[disabled][aria-checked=true].sc-dso-slide-toggle svg.sc-dso-slide-toggle circle.sc-dso-slide-toggle{fill:#e5e5e5}.dso-slider.sc-dso-slide-toggle{border-radius:24px;display:inline-flex}.dso-slider.sc-dso-slide-toggle:hover{cursor:pointer}';const v=class{constructor(s){e(this,s);this.dsoActiveChange=o(this,"dsoActiveChange",5);this.checked=false;this.disabled=false;this.identifier=d()}handleSwitch(e){this.dsoActiveChange.emit({originalEvent:e,checked:!this.checked})}componentWillLoad(){this.hasVisibleLabel=this.host.querySelector("*")!==null}render(){return s(t,null,s("button",Object.assign({key:"dbbdfa26429a8f68cd9c1785c0083dbe715595ae",id:this.identifier,role:"switch",class:"dso-slider","aria-checked":""+this.checked,disabled:this.disabled,onClick:e=>this.handleSwitch(e)},this.accessibleLabel?{"aria-label":this.accessibleLabel}:{},this.labelledbyId?{"aria-labelledby":this.labelledbyId}:{}),s("svg",{key:"e52d22c5011f22d56f276f04dd88418ca9fa9bd3",xmlns:"http://www.w3.org/2000/svg",width:"40",height:"20",viewBox:"0 0 40 20"},s("g",{key:"f94f10415a5159b5629f5ebd5dee4c69b2743528",fill:"none","fill-rule":"evenodd"},s("rect",{key:"d67b7ed2762f2031bb83cb5d8bcd1fa478a7b652",width:"40",height:"20",fill:"currentColor",rx:"10"}),s("circle",{key:"11931b9b335f08c61398c3742a1970811009f6e3",cy:"10",r:"8",fill:"currentColor"})))),this.hasVisibleLabel&&s("label",{key:"1a87390566ff4e48a4196f9a665b59ede9a811cc",htmlFor:this.identifier},s("slot",{key:"6041e9938f97b0c1730c9824357a431d40498e59"})))}get host(){return r(this)}};v.style=k;export{h as dso_label,m as dso_renvooi,v as dso_slide_toggle};
2
+ //# sourceMappingURL=p-fe0021d0.entry.js.map