@dso-toolkit/core 58.1.0 → 58.3.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 (482) hide show
  1. package/dist/cjs/{clsx.m-b81c6b86.js → clsx-fd0bee58.js} +1 -1
  2. package/dist/{esm/clsx.m-25174a58.js.map → cjs/clsx-fd0bee58.js.map} +1 -1
  3. package/dist/cjs/{create-identifier-6ee2a08b.js → create-identifier-5900c27b.js} +1 -1
  4. package/dist/cjs/create-identifier-5900c27b.js.map +1 -0
  5. package/dist/cjs/dso-accordion-section.cjs.entry.js +1 -1
  6. package/dist/cjs/dso-accordion-section.cjs.entry.js.map +1 -1
  7. package/dist/cjs/dso-accordion.cjs.entry.js +1 -1
  8. package/dist/cjs/dso-accordion.cjs.entry.js.map +1 -1
  9. package/dist/cjs/dso-action-list-item.cjs.entry.js +1 -1
  10. package/dist/cjs/dso-action-list-item.cjs.entry.js.map +1 -1
  11. package/dist/cjs/dso-action-list.cjs.entry.js +1 -1
  12. package/dist/cjs/dso-action-list.cjs.entry.js.map +1 -1
  13. package/dist/cjs/dso-alert_5.cjs.entry.js +9 -9
  14. package/dist/cjs/dso-alert_5.cjs.entry.js.map +1 -1
  15. package/dist/cjs/dso-annotation-output_3.cjs.entry.js +2 -2
  16. package/dist/cjs/dso-annotation-output_3.cjs.entry.js.map +1 -1
  17. package/dist/cjs/dso-attachments-counter.cjs.entry.js +1 -1
  18. package/dist/cjs/dso-attachments-counter.cjs.entry.js.map +1 -1
  19. package/dist/cjs/dso-autosuggest.cjs.entry.js +2 -2
  20. package/dist/cjs/dso-autosuggest.cjs.entry.js.map +1 -1
  21. package/dist/cjs/dso-banner.cjs.entry.js +3 -3
  22. package/dist/cjs/dso-banner.cjs.entry.js.map +1 -1
  23. package/dist/cjs/dso-card-container.cjs.entry.js +1 -1
  24. package/dist/cjs/dso-card-container.cjs.entry.js.map +1 -1
  25. package/dist/cjs/dso-card.cjs.entry.js +4 -4
  26. package/dist/cjs/dso-card.cjs.entry.js.map +1 -1
  27. package/dist/cjs/dso-date-picker.cjs.entry.js +3 -2
  28. package/dist/cjs/dso-date-picker.cjs.entry.js.map +1 -1
  29. package/dist/cjs/dso-dropdown-menu.cjs.entry.js +3 -3
  30. package/dist/cjs/dso-dropdown-menu.cjs.entry.js.map +1 -1
  31. package/dist/cjs/dso-expandable.cjs.entry.js +3 -3
  32. package/dist/cjs/dso-expandable.cjs.entry.js.map +1 -1
  33. package/dist/cjs/dso-header.cjs.entry.js +5 -5
  34. package/dist/cjs/dso-header.cjs.entry.js.map +1 -1
  35. package/dist/cjs/dso-helpcenter-panel.cjs.entry.js +3 -3
  36. package/dist/cjs/dso-helpcenter-panel.cjs.entry.js.map +1 -1
  37. package/dist/cjs/dso-highlight-box.cjs.entry.js +3 -3
  38. package/dist/cjs/dso-highlight-box.cjs.entry.js.map +1 -1
  39. package/dist/cjs/dso-icon.cjs.entry.js +1 -1
  40. package/dist/cjs/dso-icon.cjs.entry.js.map +1 -1
  41. package/dist/cjs/dso-image-overlay.cjs.entry.js +3 -3
  42. package/dist/cjs/dso-image-overlay.cjs.entry.js.map +1 -1
  43. package/dist/cjs/dso-info-button.cjs.entry.js +3 -3
  44. package/dist/cjs/dso-info-button.cjs.entry.js.map +1 -1
  45. package/dist/cjs/dso-info_2.cjs.entry.js +5 -5
  46. package/dist/cjs/dso-info_2.cjs.entry.js.map +1 -1
  47. package/dist/cjs/dso-list-button.cjs.entry.js +5 -5
  48. package/dist/cjs/dso-list-button.cjs.entry.js.map +1 -1
  49. package/dist/cjs/dso-map-base-layers.cjs.entry.js +1 -1
  50. package/dist/cjs/dso-map-base-layers.cjs.entry.js.map +1 -1
  51. package/dist/cjs/dso-map-controls.cjs.entry.js +1 -1
  52. package/dist/cjs/dso-map-controls.cjs.entry.js.map +1 -1
  53. package/dist/cjs/dso-map-overlays.cjs.entry.js +1 -1
  54. package/dist/cjs/dso-map-overlays.cjs.entry.js.map +1 -1
  55. package/dist/cjs/dso-modal.cjs.entry.js +1 -1
  56. package/dist/cjs/dso-modal.cjs.entry.js.map +1 -1
  57. package/dist/cjs/dso-pagination.cjs.entry.js +2 -2
  58. package/dist/cjs/dso-pagination.cjs.entry.js.map +1 -1
  59. package/dist/cjs/dso-progress-bar.cjs.entry.js +1 -1
  60. package/dist/cjs/dso-progress-bar.cjs.entry.js.map +1 -1
  61. package/dist/cjs/dso-progress-indicator.cjs.entry.js +1 -1
  62. package/dist/cjs/dso-progress-indicator.cjs.entry.js.map +1 -1
  63. package/dist/cjs/dso-responsive-element.cjs.entry.js +1 -1
  64. package/dist/cjs/dso-responsive-element.cjs.entry.js.map +1 -1
  65. package/dist/cjs/dso-scrollable.cjs.entry.js +3 -3
  66. package/dist/cjs/dso-scrollable.cjs.entry.js.map +1 -1
  67. package/dist/cjs/dso-table.cjs.entry.js +3 -3
  68. package/dist/cjs/dso-table.cjs.entry.js.map +1 -1
  69. package/dist/cjs/dso-toggletip.cjs.entry.js +2 -2
  70. package/dist/cjs/dso-toggletip.cjs.entry.js.map +1 -1
  71. package/dist/cjs/dso-toolkit.cjs.js +2 -5
  72. package/dist/cjs/dso-toolkit.cjs.js.map +1 -1
  73. package/dist/cjs/dso-tooltip.cjs.entry.js +5 -5
  74. package/dist/cjs/dso-tooltip.cjs.entry.js.map +1 -1
  75. package/dist/cjs/dso-tree-view.cjs.entry.js +4 -4
  76. package/dist/cjs/dso-tree-view.cjs.entry.js.map +1 -1
  77. package/dist/cjs/dso-viewer-grid.cjs.entry.js +3 -3
  78. package/dist/cjs/dso-viewer-grid.cjs.entry.js.map +1 -1
  79. package/dist/cjs/dsot-document-component-demo.cjs.entry.js +1 -1
  80. package/dist/cjs/dsot-document-component-demo.cjs.entry.js.map +1 -1
  81. package/dist/cjs/{focus-trap.esm-a5b7273f.js → focus-trap.esm-b6bba312.js} +245 -97
  82. package/dist/cjs/focus-trap.esm-b6bba312.js.map +1 -0
  83. package/dist/cjs/{has-overflow-d7baff1e.js → has-overflow-27e20400.js} +1 -1
  84. package/dist/cjs/has-overflow-27e20400.js.map +1 -0
  85. package/dist/cjs/{index-d4003ee3.js → index-d46ec033.js} +91 -19
  86. package/dist/cjs/index-d46ec033.js.map +1 -0
  87. package/dist/cjs/{index.esm-0e935715.js → index.esm-970bc106.js} +49 -16
  88. package/dist/cjs/index.esm-970bc106.js.map +1 -0
  89. package/dist/cjs/{is-modified-event-dcab03a0.js → is-modified-event-ccd748ea.js} +1 -1
  90. package/dist/cjs/is-modified-event-ccd748ea.js.map +1 -0
  91. package/dist/cjs/loader.cjs.js +2 -11
  92. package/dist/cjs/loader.cjs.js.map +1 -1
  93. package/dist/collection/collection-manifest.json +45 -45
  94. package/dist/collection/components/accordion/accordion.js +6 -3
  95. package/dist/collection/components/accordion/accordion.js.map +1 -1
  96. package/dist/collection/components/accordion/components/accordion-section.js +8 -4
  97. package/dist/collection/components/accordion/components/accordion-section.js.map +1 -1
  98. package/dist/collection/components/annotation-button/annotation-button.js +2 -1
  99. package/dist/collection/components/annotation-button/annotation-button.js.map +1 -1
  100. package/dist/collection/components/annotation-output/annotation-output.js +2 -1
  101. package/dist/collection/components/annotation-output/annotation-output.js.map +1 -1
  102. package/dist/collection/components/autosuggest/autosuggest.js +5 -3
  103. package/dist/collection/components/autosuggest/autosuggest.js.map +1 -1
  104. package/dist/collection/components/card/card.js +4 -2
  105. package/dist/collection/components/card/card.js.map +1 -1
  106. package/dist/collection/components/card-container/card-container.js +2 -1
  107. package/dist/collection/components/card-container/card-container.js.map +1 -1
  108. package/dist/collection/components/date-picker/date-picker.js +18 -9
  109. package/dist/collection/components/date-picker/date-picker.js.map +1 -1
  110. package/dist/collection/components/date-picker/date-utils.js +1 -0
  111. package/dist/collection/components/date-picker/date-utils.js.map +1 -1
  112. package/dist/collection/components/document-component/document-component.css +1 -1
  113. package/dist/collection/components/document-component/document-component.js +6 -3
  114. package/dist/collection/components/document-component/document-component.js.map +1 -1
  115. package/dist/collection/components/expandable/expandable.js +2 -1
  116. package/dist/collection/components/expandable/expandable.js.map +1 -1
  117. package/dist/collection/components/header/header.js +4 -2
  118. package/dist/collection/components/header/header.js.map +1 -1
  119. package/dist/collection/components/info/info.js +2 -1
  120. package/dist/collection/components/info/info.js.map +1 -1
  121. package/dist/collection/components/info-button/info-button.js +4 -2
  122. package/dist/collection/components/info-button/info-button.js.map +1 -1
  123. package/dist/collection/components/label/label.js +4 -2
  124. package/dist/collection/components/label/label.js.map +1 -1
  125. package/dist/collection/components/list-button/list-button.js +4 -2
  126. package/dist/collection/components/list-button/list-button.js.map +1 -1
  127. package/dist/collection/components/map-base-layers/map-base-layers.js +4 -2
  128. package/dist/collection/components/map-base-layers/map-base-layers.js.map +1 -1
  129. package/dist/collection/components/map-controls/map-controls.js +12 -6
  130. package/dist/collection/components/map-controls/map-controls.js.map +1 -1
  131. package/dist/collection/components/map-overlays/map-overlays.js +4 -2
  132. package/dist/collection/components/map-overlays/map-overlays.js.map +1 -1
  133. package/dist/collection/components/modal/modal.js +2 -1
  134. package/dist/collection/components/modal/modal.js.map +1 -1
  135. package/dist/collection/components/ozon-content/ozon-content.css +5 -5
  136. package/dist/collection/components/ozon-content/ozon-content.js +4 -2
  137. package/dist/collection/components/ozon-content/ozon-content.js.map +1 -1
  138. package/dist/collection/components/pagination/pagination.js +2 -1
  139. package/dist/collection/components/pagination/pagination.js.map +1 -1
  140. package/dist/collection/components/responsive-element/responsive-element.js +6 -3
  141. package/dist/collection/components/responsive-element/responsive-element.js.map +1 -1
  142. package/dist/collection/components/scrollable/scrollable.js +4 -2
  143. package/dist/collection/components/scrollable/scrollable.js.map +1 -1
  144. package/dist/collection/components/selectable/selectable.css +1 -1
  145. package/dist/collection/components/selectable/selectable.js +4 -2
  146. package/dist/collection/components/selectable/selectable.js.map +1 -1
  147. package/dist/collection/components/slide-toggle/slide-toggle.js +2 -1
  148. package/dist/collection/components/slide-toggle/slide-toggle.js.map +1 -1
  149. package/dist/collection/components/toggletip/toggletip.js +1 -1
  150. package/dist/collection/components/toggletip/toggletip.js.map +1 -1
  151. package/dist/collection/components/tooltip/tooltip.css +1 -3
  152. package/dist/collection/components/tooltip/tooltip.js +4 -2
  153. package/dist/collection/components/tooltip/tooltip.js.map +1 -1
  154. package/dist/collection/components/tree-view/tree-view.js +14 -7
  155. package/dist/collection/components/tree-view/tree-view.js.map +1 -1
  156. package/dist/collection/components/viewer-grid/viewer-grid.js +10 -5
  157. package/dist/collection/components/viewer-grid/viewer-grid.js.map +1 -1
  158. package/dist/components/alert.js +1 -1
  159. package/dist/components/alert.js.map +1 -1
  160. package/dist/components/annotation-button.js.map +1 -1
  161. package/dist/components/annotation-output.js.map +1 -1
  162. package/dist/components/badge.js +1 -1
  163. package/dist/components/badge.js.map +1 -1
  164. package/dist/components/{clsx.m.js → clsx.js} +1 -1
  165. package/dist/components/clsx.js.map +1 -0
  166. package/dist/components/create-identifier.js.map +1 -1
  167. package/dist/components/document-component.js +1 -1
  168. package/dist/components/document-component.js.map +1 -1
  169. package/dist/components/dropdown-menu.js.map +1 -1
  170. package/dist/components/dso-accordion-section.js.map +1 -1
  171. package/dist/components/dso-accordion.js.map +1 -1
  172. package/dist/components/dso-action-list-item.js.map +1 -1
  173. package/dist/components/dso-action-list.js.map +1 -1
  174. package/dist/components/dso-attachments-counter.js.map +1 -1
  175. package/dist/components/dso-autosuggest.js +1 -1
  176. package/dist/components/dso-autosuggest.js.map +1 -1
  177. package/dist/components/dso-banner.js +1 -1
  178. package/dist/components/dso-banner.js.map +1 -1
  179. package/dist/components/dso-card-container.js.map +1 -1
  180. package/dist/components/dso-card.js +1 -1
  181. package/dist/components/dso-card.js.map +1 -1
  182. package/dist/components/dso-date-picker.js +1 -0
  183. package/dist/components/dso-date-picker.js.map +1 -1
  184. package/dist/components/dso-header.js +1 -1
  185. package/dist/components/dso-header.js.map +1 -1
  186. package/dist/components/dso-helpcenter-panel.js.map +1 -1
  187. package/dist/components/dso-highlight-box.js +1 -1
  188. package/dist/components/dso-highlight-box.js.map +1 -1
  189. package/dist/components/dso-image-overlay.js.map +1 -1
  190. package/dist/components/dso-list-button.js +1 -1
  191. package/dist/components/dso-list-button.js.map +1 -1
  192. package/dist/components/dso-map-base-layers.js.map +1 -1
  193. package/dist/components/dso-map-controls.js.map +1 -1
  194. package/dist/components/dso-map-overlays.js.map +1 -1
  195. package/dist/components/dso-modal.js.map +1 -1
  196. package/dist/components/dso-pagination.js.map +1 -1
  197. package/dist/components/dso-progress-bar.js.map +1 -1
  198. package/dist/components/dso-table.js.map +1 -1
  199. package/dist/components/dso-toggletip.js +1 -1
  200. package/dist/components/dso-toggletip.js.map +1 -1
  201. package/dist/components/dso-tree-view.js +1 -1
  202. package/dist/components/dso-tree-view.js.map +1 -1
  203. package/dist/components/dso-viewer-grid.js +1 -1
  204. package/dist/components/dso-viewer-grid.js.map +1 -1
  205. package/dist/components/dsot-document-component-demo.js.map +1 -1
  206. package/dist/components/expandable.js +1 -1
  207. package/dist/components/expandable.js.map +1 -1
  208. package/dist/components/focus-trap.esm.js +244 -96
  209. package/dist/components/focus-trap.esm.js.map +1 -1
  210. package/dist/components/has-overflow.js.map +1 -1
  211. package/dist/components/icon.js.map +1 -1
  212. package/dist/components/index.d.ts +6 -0
  213. package/dist/components/index.esm.js +48 -16
  214. package/dist/components/index.esm.js.map +1 -1
  215. package/dist/components/index.js +1 -1
  216. package/dist/components/info-button.js +1 -1
  217. package/dist/components/info-button.js.map +1 -1
  218. package/dist/components/info.js.map +1 -1
  219. package/dist/components/is-modified-event.js.map +1 -1
  220. package/dist/components/label.js +1 -1
  221. package/dist/components/label.js.map +1 -1
  222. package/dist/components/ozon-content.js +2 -2
  223. package/dist/components/ozon-content.js.map +1 -1
  224. package/dist/components/progress-indicator.js.map +1 -1
  225. package/dist/components/responsive-element.js.map +1 -1
  226. package/dist/components/scrollable.js +1 -1
  227. package/dist/components/scrollable.js.map +1 -1
  228. package/dist/components/selectable.js +2 -2
  229. package/dist/components/selectable.js.map +1 -1
  230. package/dist/components/slide-toggle.js.map +1 -1
  231. package/dist/components/tooltip.js +2 -2
  232. package/dist/components/tooltip.js.map +1 -1
  233. package/dist/dso-toolkit/dso-toolkit.esm.js +1 -1
  234. package/dist/dso-toolkit/dso-toolkit.esm.js.map +1 -1
  235. package/dist/dso-toolkit/p-0bac5eea.entry.js +2 -0
  236. package/dist/dso-toolkit/p-0bac5eea.entry.js.map +1 -0
  237. package/dist/dso-toolkit/{p-bc9e3037.entry.js → p-0e095af8.entry.js} +2 -2
  238. package/dist/dso-toolkit/p-0e095af8.entry.js.map +1 -0
  239. package/dist/dso-toolkit/p-1521d319.js +6 -0
  240. package/dist/dso-toolkit/p-1521d319.js.map +1 -0
  241. package/dist/dso-toolkit/{p-1c721290.entry.js → p-169e3931.entry.js} +2 -2
  242. package/dist/dso-toolkit/p-169e3931.entry.js.map +1 -0
  243. package/dist/dso-toolkit/{p-4bc67e5c.entry.js → p-298453a9.entry.js} +2 -2
  244. package/dist/dso-toolkit/p-298453a9.entry.js.map +1 -0
  245. package/dist/dso-toolkit/{p-2ccbf58d.entry.js → p-3631ce14.entry.js} +2 -2
  246. package/dist/dso-toolkit/p-3631ce14.entry.js.map +1 -0
  247. package/dist/dso-toolkit/p-3ca5b6f4.js +3 -0
  248. package/dist/dso-toolkit/p-3ca5b6f4.js.map +1 -0
  249. package/dist/dso-toolkit/{p-3cbf8b97.entry.js → p-41066f6f.entry.js} +2 -2
  250. package/dist/dso-toolkit/p-41066f6f.entry.js.map +1 -0
  251. package/dist/dso-toolkit/{p-22baee8e.entry.js → p-42ba2c81.entry.js} +2 -2
  252. package/dist/dso-toolkit/p-42ba2c81.entry.js.map +1 -0
  253. package/dist/dso-toolkit/p-48d76094.entry.js +2 -0
  254. package/dist/dso-toolkit/p-48d76094.entry.js.map +1 -0
  255. package/dist/dso-toolkit/{p-4e86089d.entry.js → p-4ace5655.entry.js} +2 -2
  256. package/dist/dso-toolkit/p-4ace5655.entry.js.map +1 -0
  257. package/dist/dso-toolkit/{p-745b6678.entry.js → p-59fe2479.entry.js} +2 -2
  258. package/dist/dso-toolkit/p-59fe2479.entry.js.map +1 -0
  259. package/dist/dso-toolkit/p-5c5e43d3.entry.js +2 -0
  260. package/dist/dso-toolkit/p-5c5e43d3.entry.js.map +1 -0
  261. package/dist/dso-toolkit/{p-e69d7e62.entry.js → p-5c976ac9.entry.js} +2 -2
  262. package/dist/dso-toolkit/p-5c976ac9.entry.js.map +1 -0
  263. package/dist/dso-toolkit/{p-a00c4003.entry.js → p-60301d53.entry.js} +2 -2
  264. package/dist/dso-toolkit/{p-a00c4003.entry.js.map → p-60301d53.entry.js.map} +1 -1
  265. package/dist/dso-toolkit/{p-7a6be9c1.entry.js → p-6af09f64.entry.js} +2 -2
  266. package/dist/dso-toolkit/p-6af09f64.entry.js.map +1 -0
  267. package/dist/dso-toolkit/{p-5ee79846.entry.js → p-6f533d1a.entry.js} +2 -2
  268. package/dist/dso-toolkit/p-6f533d1a.entry.js.map +1 -0
  269. package/dist/dso-toolkit/{p-f21e4ccc.entry.js → p-755e55cf.entry.js} +2 -2
  270. package/dist/dso-toolkit/p-755e55cf.entry.js.map +1 -0
  271. package/dist/dso-toolkit/{p-420e0d23.entry.js → p-7ef42606.entry.js} +2 -2
  272. package/dist/dso-toolkit/p-7ef42606.entry.js.map +1 -0
  273. package/dist/dso-toolkit/p-86133aa5.js +6 -0
  274. package/dist/dso-toolkit/p-86133aa5.js.map +1 -0
  275. package/dist/dso-toolkit/{p-669c3743.entry.js → p-8af61320.entry.js} +2 -2
  276. package/dist/dso-toolkit/p-8af61320.entry.js.map +1 -0
  277. package/dist/dso-toolkit/{p-a4d423fd.entry.js → p-8bee65a1.entry.js} +2 -2
  278. package/dist/dso-toolkit/p-8bee65a1.entry.js.map +1 -0
  279. package/dist/dso-toolkit/{p-3d4308ba.entry.js → p-95b70498.entry.js} +2 -2
  280. package/dist/dso-toolkit/p-95b70498.entry.js.map +1 -0
  281. package/dist/dso-toolkit/{p-33df9903.js → p-9747c291.js} +1 -1
  282. package/dist/dso-toolkit/p-9747c291.js.map +1 -0
  283. package/dist/dso-toolkit/{p-5e5302ef.entry.js → p-9a3f154b.entry.js} +2 -2
  284. package/dist/dso-toolkit/p-9a3f154b.entry.js.map +1 -0
  285. package/dist/dso-toolkit/{p-4da2fa8b.entry.js → p-9dbe2931.entry.js} +2 -2
  286. package/dist/dso-toolkit/p-9dbe2931.entry.js.map +1 -0
  287. package/dist/dso-toolkit/{p-423fa057.entry.js → p-a2a82d7c.entry.js} +2 -2
  288. package/dist/dso-toolkit/p-a2a82d7c.entry.js.map +1 -0
  289. package/dist/dso-toolkit/{p-604eb60b.entry.js → p-a3dc08f4.entry.js} +2 -2
  290. package/dist/dso-toolkit/p-a3dc08f4.entry.js.map +1 -0
  291. package/dist/dso-toolkit/{p-712fca2c.entry.js → p-a63c82a4.entry.js} +2 -2
  292. package/dist/dso-toolkit/p-a63c82a4.entry.js.map +1 -0
  293. package/dist/dso-toolkit/{p-b34f24b4.entry.js → p-a7186c03.entry.js} +2 -2
  294. package/dist/dso-toolkit/p-a7186c03.entry.js.map +1 -0
  295. package/dist/dso-toolkit/{p-51f19c06.entry.js → p-aadd6311.entry.js} +2 -2
  296. package/dist/dso-toolkit/p-aadd6311.entry.js.map +1 -0
  297. package/dist/dso-toolkit/{p-440fc4ae.entry.js → p-b68ac725.entry.js} +2 -2
  298. package/dist/dso-toolkit/p-b68ac725.entry.js.map +1 -0
  299. package/dist/dso-toolkit/{p-6c543986.js → p-c19cfe3f.js} +1 -1
  300. package/dist/dso-toolkit/p-c19cfe3f.js.map +1 -0
  301. package/dist/dso-toolkit/{p-6a1980b4.js → p-c87b4d11.js} +1 -1
  302. package/dist/dso-toolkit/p-c87b4d11.js.map +1 -0
  303. package/dist/dso-toolkit/{p-0dffb117.entry.js → p-cbeb00cc.entry.js} +2 -2
  304. package/dist/dso-toolkit/p-cbeb00cc.entry.js.map +1 -0
  305. package/dist/dso-toolkit/{p-8b77b083.entry.js → p-cce85c45.entry.js} +2 -2
  306. package/dist/dso-toolkit/p-cce85c45.entry.js.map +1 -0
  307. package/dist/dso-toolkit/{p-98f7ede6.entry.js → p-d37a6c95.entry.js} +2 -2
  308. package/dist/dso-toolkit/p-d37a6c95.entry.js.map +1 -0
  309. package/dist/dso-toolkit/{p-54c65314.entry.js → p-d728a136.entry.js} +2 -2
  310. package/dist/dso-toolkit/p-d728a136.entry.js.map +1 -0
  311. package/dist/dso-toolkit/{p-bcecc743.entry.js → p-dae7d6f2.entry.js} +2 -2
  312. package/dist/dso-toolkit/p-dae7d6f2.entry.js.map +1 -0
  313. package/dist/dso-toolkit/{p-b9d441d5.entry.js → p-dc6e37dd.entry.js} +2 -2
  314. package/dist/dso-toolkit/p-dc6e37dd.entry.js.map +1 -0
  315. package/dist/dso-toolkit/{p-918bcdbe.entry.js → p-f08a5a06.entry.js} +2 -2
  316. package/dist/dso-toolkit/p-f08a5a06.entry.js.map +1 -0
  317. package/dist/dso-toolkit/{p-a1060560.entry.js → p-f0bc4a9d.entry.js} +2 -2
  318. package/dist/dso-toolkit/p-f0bc4a9d.entry.js.map +1 -0
  319. package/dist/dso-toolkit/p-fbb63820.entry.js +2 -0
  320. package/dist/dso-toolkit/p-fbb63820.entry.js.map +1 -0
  321. package/dist/dso-toolkit/{p-871bfdf9.js → p-fd7891ef.js} +1 -1
  322. package/dist/dso-toolkit/p-fd7891ef.js.map +1 -0
  323. package/dist/esm/{clsx.m-25174a58.js → clsx-93f1b68e.js} +1 -1
  324. package/dist/esm/clsx-93f1b68e.js.map +1 -0
  325. package/dist/esm/{create-identifier-51ee50c4.js → create-identifier-479a4699.js} +1 -1
  326. package/dist/esm/create-identifier-479a4699.js.map +1 -0
  327. package/dist/esm/dso-accordion-section.entry.js +1 -1
  328. package/dist/esm/dso-accordion-section.entry.js.map +1 -1
  329. package/dist/esm/dso-accordion.entry.js +1 -1
  330. package/dist/esm/dso-accordion.entry.js.map +1 -1
  331. package/dist/esm/dso-action-list-item.entry.js +1 -1
  332. package/dist/esm/dso-action-list-item.entry.js.map +1 -1
  333. package/dist/esm/dso-action-list.entry.js +1 -1
  334. package/dist/esm/dso-action-list.entry.js.map +1 -1
  335. package/dist/esm/dso-alert_5.entry.js +4 -4
  336. package/dist/esm/dso-alert_5.entry.js.map +1 -1
  337. package/dist/esm/dso-annotation-output_3.entry.js +2 -2
  338. package/dist/esm/dso-annotation-output_3.entry.js.map +1 -1
  339. package/dist/esm/dso-attachments-counter.entry.js +1 -1
  340. package/dist/esm/dso-attachments-counter.entry.js.map +1 -1
  341. package/dist/esm/dso-autosuggest.entry.js +2 -2
  342. package/dist/esm/dso-autosuggest.entry.js.map +1 -1
  343. package/dist/esm/dso-banner.entry.js +2 -2
  344. package/dist/esm/dso-banner.entry.js.map +1 -1
  345. package/dist/esm/dso-card-container.entry.js +1 -1
  346. package/dist/esm/dso-card-container.entry.js.map +1 -1
  347. package/dist/esm/dso-card.entry.js +3 -3
  348. package/dist/esm/dso-card.entry.js.map +1 -1
  349. package/dist/esm/dso-date-picker.entry.js +3 -2
  350. package/dist/esm/dso-date-picker.entry.js.map +1 -1
  351. package/dist/esm/dso-dropdown-menu.entry.js +3 -3
  352. package/dist/esm/dso-dropdown-menu.entry.js.map +1 -1
  353. package/dist/esm/dso-expandable.entry.js +2 -2
  354. package/dist/esm/dso-expandable.entry.js.map +1 -1
  355. package/dist/esm/dso-header.entry.js +3 -3
  356. package/dist/esm/dso-header.entry.js.map +1 -1
  357. package/dist/esm/dso-helpcenter-panel.entry.js +3 -3
  358. package/dist/esm/dso-helpcenter-panel.entry.js.map +1 -1
  359. package/dist/esm/dso-highlight-box.entry.js +2 -2
  360. package/dist/esm/dso-highlight-box.entry.js.map +1 -1
  361. package/dist/esm/dso-icon.entry.js +1 -1
  362. package/dist/esm/dso-icon.entry.js.map +1 -1
  363. package/dist/esm/dso-image-overlay.entry.js +3 -3
  364. package/dist/esm/dso-image-overlay.entry.js.map +1 -1
  365. package/dist/esm/dso-info-button.entry.js +2 -2
  366. package/dist/esm/dso-info-button.entry.js.map +1 -1
  367. package/dist/esm/dso-info_2.entry.js +4 -4
  368. package/dist/esm/dso-info_2.entry.js.map +1 -1
  369. package/dist/esm/dso-list-button.entry.js +4 -4
  370. package/dist/esm/dso-list-button.entry.js.map +1 -1
  371. package/dist/esm/dso-map-base-layers.entry.js +1 -1
  372. package/dist/esm/dso-map-base-layers.entry.js.map +1 -1
  373. package/dist/esm/dso-map-controls.entry.js +1 -1
  374. package/dist/esm/dso-map-controls.entry.js.map +1 -1
  375. package/dist/esm/dso-map-overlays.entry.js +1 -1
  376. package/dist/esm/dso-map-overlays.entry.js.map +1 -1
  377. package/dist/esm/dso-modal.entry.js +1 -1
  378. package/dist/esm/dso-modal.entry.js.map +1 -1
  379. package/dist/esm/dso-pagination.entry.js +2 -2
  380. package/dist/esm/dso-pagination.entry.js.map +1 -1
  381. package/dist/esm/dso-progress-bar.entry.js +1 -1
  382. package/dist/esm/dso-progress-bar.entry.js.map +1 -1
  383. package/dist/esm/dso-progress-indicator.entry.js +1 -1
  384. package/dist/esm/dso-progress-indicator.entry.js.map +1 -1
  385. package/dist/esm/dso-responsive-element.entry.js +1 -1
  386. package/dist/esm/dso-responsive-element.entry.js.map +1 -1
  387. package/dist/esm/dso-scrollable.entry.js +2 -2
  388. package/dist/esm/dso-scrollable.entry.js.map +1 -1
  389. package/dist/esm/dso-table.entry.js +3 -3
  390. package/dist/esm/dso-table.entry.js.map +1 -1
  391. package/dist/esm/dso-toggletip.entry.js +2 -2
  392. package/dist/esm/dso-toggletip.entry.js.map +1 -1
  393. package/dist/esm/dso-toolkit.js +3 -6
  394. package/dist/esm/dso-toolkit.js.map +1 -1
  395. package/dist/esm/dso-tooltip.entry.js +4 -4
  396. package/dist/esm/dso-tooltip.entry.js.map +1 -1
  397. package/dist/esm/dso-tree-view.entry.js +2 -2
  398. package/dist/esm/dso-tree-view.entry.js.map +1 -1
  399. package/dist/esm/dso-viewer-grid.entry.js +2 -2
  400. package/dist/esm/dso-viewer-grid.entry.js.map +1 -1
  401. package/dist/esm/dsot-document-component-demo.entry.js +1 -1
  402. package/dist/esm/dsot-document-component-demo.entry.js.map +1 -1
  403. package/dist/esm/{focus-trap.esm-2a49a38f.js → focus-trap.esm-ad846bd4.js} +245 -97
  404. package/dist/esm/focus-trap.esm-ad846bd4.js.map +1 -0
  405. package/dist/esm/{has-overflow-814a0f4e.js → has-overflow-9f720f83.js} +1 -1
  406. package/dist/esm/has-overflow-9f720f83.js.map +1 -0
  407. package/dist/esm/{index-3e9ed0c5.js → index-f82ed648.js} +91 -19
  408. package/dist/esm/index-f82ed648.js.map +1 -0
  409. package/dist/esm/{index.esm-3d6c8190.js → index.esm-7e16e884.js} +49 -17
  410. package/dist/esm/index.esm-7e16e884.js.map +1 -0
  411. package/dist/esm/{is-modified-event-34370220.js → is-modified-event-587a0b0a.js} +1 -1
  412. package/dist/esm/is-modified-event-587a0b0a.js.map +1 -0
  413. package/dist/esm/loader.js +3 -12
  414. package/dist/esm/loader.js.map +1 -1
  415. package/dist/types/stencil-public-runtime.d.ts +14 -2
  416. package/loader/index.d.ts +1 -1
  417. package/package.json +13 -13
  418. package/dist/cjs/clsx.m-b81c6b86.js.map +0 -1
  419. package/dist/cjs/create-identifier-6ee2a08b.js.map +0 -1
  420. package/dist/cjs/focus-trap.esm-a5b7273f.js.map +0 -1
  421. package/dist/cjs/has-overflow-d7baff1e.js.map +0 -1
  422. package/dist/cjs/index-d4003ee3.js.map +0 -1
  423. package/dist/cjs/index.esm-0e935715.js.map +0 -1
  424. package/dist/cjs/is-modified-event-dcab03a0.js.map +0 -1
  425. package/dist/components/clsx.m.js.map +0 -1
  426. package/dist/dso-toolkit/p-0dffb117.entry.js.map +0 -1
  427. package/dist/dso-toolkit/p-14aa091d.entry.js +0 -2
  428. package/dist/dso-toolkit/p-14aa091d.entry.js.map +0 -1
  429. package/dist/dso-toolkit/p-1a1a43fd.js +0 -3
  430. package/dist/dso-toolkit/p-1a1a43fd.js.map +0 -1
  431. package/dist/dso-toolkit/p-1c721290.entry.js.map +0 -1
  432. package/dist/dso-toolkit/p-22baee8e.entry.js.map +0 -1
  433. package/dist/dso-toolkit/p-2ccbf58d.entry.js.map +0 -1
  434. package/dist/dso-toolkit/p-33df9903.js.map +0 -1
  435. package/dist/dso-toolkit/p-3cbf8b97.entry.js.map +0 -1
  436. package/dist/dso-toolkit/p-3d4308ba.entry.js.map +0 -1
  437. package/dist/dso-toolkit/p-420e0d23.entry.js.map +0 -1
  438. package/dist/dso-toolkit/p-423fa057.entry.js.map +0 -1
  439. package/dist/dso-toolkit/p-440fc4ae.entry.js.map +0 -1
  440. package/dist/dso-toolkit/p-4bc67e5c.entry.js.map +0 -1
  441. package/dist/dso-toolkit/p-4da2fa8b.entry.js.map +0 -1
  442. package/dist/dso-toolkit/p-4e86089d.entry.js.map +0 -1
  443. package/dist/dso-toolkit/p-51f19c06.entry.js.map +0 -1
  444. package/dist/dso-toolkit/p-54c65314.entry.js.map +0 -1
  445. package/dist/dso-toolkit/p-5950644a.js +0 -6
  446. package/dist/dso-toolkit/p-5950644a.js.map +0 -1
  447. package/dist/dso-toolkit/p-5e5302ef.entry.js.map +0 -1
  448. package/dist/dso-toolkit/p-5ee79846.entry.js.map +0 -1
  449. package/dist/dso-toolkit/p-604eb60b.entry.js.map +0 -1
  450. package/dist/dso-toolkit/p-669c3743.entry.js.map +0 -1
  451. package/dist/dso-toolkit/p-6a1980b4.js.map +0 -1
  452. package/dist/dso-toolkit/p-6c543986.js.map +0 -1
  453. package/dist/dso-toolkit/p-712fca2c.entry.js.map +0 -1
  454. package/dist/dso-toolkit/p-745b6678.entry.js.map +0 -1
  455. package/dist/dso-toolkit/p-7a6be9c1.entry.js.map +0 -1
  456. package/dist/dso-toolkit/p-871bfdf9.js.map +0 -1
  457. package/dist/dso-toolkit/p-8b77b083.entry.js.map +0 -1
  458. package/dist/dso-toolkit/p-8f8dd254.entry.js +0 -2
  459. package/dist/dso-toolkit/p-8f8dd254.entry.js.map +0 -1
  460. package/dist/dso-toolkit/p-918bcdbe.entry.js.map +0 -1
  461. package/dist/dso-toolkit/p-91963e3d.js +0 -6
  462. package/dist/dso-toolkit/p-91963e3d.js.map +0 -1
  463. package/dist/dso-toolkit/p-98f7ede6.entry.js.map +0 -1
  464. package/dist/dso-toolkit/p-a0798096.entry.js +0 -2
  465. package/dist/dso-toolkit/p-a0798096.entry.js.map +0 -1
  466. package/dist/dso-toolkit/p-a1060560.entry.js.map +0 -1
  467. package/dist/dso-toolkit/p-a4d423fd.entry.js.map +0 -1
  468. package/dist/dso-toolkit/p-b34f24b4.entry.js.map +0 -1
  469. package/dist/dso-toolkit/p-b911f052.entry.js +0 -2
  470. package/dist/dso-toolkit/p-b911f052.entry.js.map +0 -1
  471. package/dist/dso-toolkit/p-b9d441d5.entry.js.map +0 -1
  472. package/dist/dso-toolkit/p-bc9e3037.entry.js.map +0 -1
  473. package/dist/dso-toolkit/p-bcecc743.entry.js.map +0 -1
  474. package/dist/dso-toolkit/p-e69d7e62.entry.js.map +0 -1
  475. package/dist/dso-toolkit/p-f21e4ccc.entry.js.map +0 -1
  476. package/dist/esm/create-identifier-51ee50c4.js.map +0 -1
  477. package/dist/esm/focus-trap.esm-2a49a38f.js.map +0 -1
  478. package/dist/esm/has-overflow-814a0f4e.js.map +0 -1
  479. package/dist/esm/index-3e9ed0c5.js.map +0 -1
  480. package/dist/esm/index.esm-3d6c8190.js.map +0 -1
  481. package/dist/esm/is-modified-event-34370220.js.map +0 -1
  482. package/dist/esm/polyfills/css-shim.js +0 -1
@@ -1 +1 @@
1
- {"file":"dso-tree-view.js","mappings":"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","names":[],"sources":["./src/components/tree-view/tree-item.tsx","./src/components/tree-view/tree-view.scss?tag=dso-tree-view&encapsulation=shadow","./src/components/tree-view/tree-view.tsx"],"sourcesContent":["import { h, FunctionalComponent, Fragment } from \"@stencil/core\";\r\nimport clsx from \"clsx\";\r\nimport { TreeViewItem, TreeViewItemIcon } from \"./tree-view.interfaces\";\r\n\r\nimport { TreeView } from \"./tree-view\";\r\n\r\ninterface TreeViewItemProps {\r\n owner: TreeView;\r\n ancestors: TreeViewItem[];\r\n item: TreeViewItem;\r\n index: number;\r\n level: number;\r\n setSize: number;\r\n}\r\n\r\nexport const DsoTreeItem: FunctionalComponent<TreeViewItemProps> = ({\r\n owner,\r\n ancestors,\r\n item,\r\n index,\r\n level,\r\n setSize,\r\n}) => (\r\n <li\r\n key={item.id}\r\n class={clsx(\"tree-item\", { \"has-child\": item.hasItems, \"is-expanded\": !!item.open && !!item.items?.length })}\r\n role=\"none\"\r\n >\r\n <div class=\"tree-branch-control\">\r\n {item.hasItems ? (\r\n <div onClick={(e) => owner.itemClick(e, ancestors, item)}>\r\n <dso-icon icon={item.open ? \"minus-square\" : \"plus-square\"}></dso-icon>\r\n </div>\r\n ) : (\r\n <dso-icon></dso-icon>\r\n )}\r\n </div>\r\n <p\r\n class={clsx(\"tree-content\", { active: item.active }, { selected: item.selected })}\r\n tabindex={level === 1 && index === 0 ? 0 : -1}\r\n role=\"treeitem\"\r\n aria-expanded={item.hasItems ? \"\" + (!!item.open && !!item.items?.length) : undefined}\r\n aria-current={item.active ? \"true\" : undefined}\r\n aria-level={level}\r\n aria-setsize={setSize}\r\n aria-posinset={index + 1}\r\n aria-busy={item.loading ? \"true\" : undefined}\r\n data-item-id={item.id}\r\n onClick={(e) => owner.itemClick(e, ancestors, item)}\r\n >\r\n {item.selected && <span class=\"sr-only\">Resultaat: </span>}\r\n {item.href ? (\r\n <a href={item.href} tabindex=\"-1\">\r\n {item.label}\r\n </a>\r\n ) : (\r\n <span>{item.label}</span>\r\n )}\r\n {item.icons?.map((icon: TreeViewItemIcon) => (\r\n <dso-icon icon={icon.icon} title={icon.label}></dso-icon>\r\n ))}\r\n </p>\r\n {item.open && (\r\n <>\r\n {item.hasItems && !item.items && item.loading ? (\r\n <dso-progress-indicator size=\"small\" label=\"Resultaten laden: een moment geduld alstublieft.\" />\r\n ) : (\r\n <ul role=\"group\">\r\n {item.items?.map((childItem: TreeViewItem, childIndex: number, org: TreeViewItem[]) => (\r\n <DsoTreeItem\r\n owner={owner}\r\n ancestors={[...ancestors, item]}\r\n item={childItem}\r\n index={childIndex}\r\n level={level + 1}\r\n setSize={org.length}\r\n ></DsoTreeItem>\r\n ))}\r\n </ul>\r\n )}\r\n </>\r\n )}\r\n </li>\r\n);\r\n","@use \"sass:math\";\r\n\r\n@use \"~dso-toolkit/src/utilities\";\r\n@use \"~dso-toolkit/src/variables/colors\";\r\n@use \"~dso-toolkit/src/variables/scaffolding\";\r\n\r\n@use \"tree-view.mixins\" as core-tree-view-mixins;\r\n@use \"tree-view.variables\" as core-tree-view-variables;\r\n\r\n:host {\r\n ul {\r\n list-style-type: none;\r\n padding-inline-start: core-tree-view-variables.$indent;\r\n position: relative;\r\n }\r\n\r\n li {\r\n position: relative;\r\n }\r\n\r\n ul[role=\"tree\"] {\r\n padding-left: 0;\r\n }\r\n\r\n // connects branch or leaf to parent\r\n ul[role=\"group\"]::before {\r\n @include core-tree-view-mixins.vertical-line(\r\n core-tree-view-variables.$indent + core-tree-view-variables.$hcenter,\r\n 0,\r\n core-tree-view-variables.$vspace\r\n );\r\n }\r\n\r\n li:not(.has-child) {\r\n // horizontal connector for a leaf\r\n &::before {\r\n @include core-tree-view-mixins.horizontal-line(\r\n core-tree-view-variables.$hcenter,\r\n core-tree-view-variables.$vcenter,\r\n core-tree-view-variables.$hspace + 0.5 * core-tree-view-variables.$icon-size - 4px\r\n );\r\n }\r\n\r\n // vertical connector for a leaf\r\n &::after {\r\n @include core-tree-view-mixins.vertical-line(\r\n core-tree-view-variables.$hcenter,\r\n core-tree-view-variables.$vspace,\r\n 100%\r\n );\r\n }\r\n\r\n // vertical connector for the last leaf\r\n &:last-child::after {\r\n height: core-tree-view-variables.$vcenter;\r\n top: 0;\r\n }\r\n }\r\n\r\n li.has-child {\r\n // horizontal connector for a branch\r\n &::before {\r\n @include core-tree-view-mixins.horizontal-line(\r\n core-tree-view-variables.$icon-size,\r\n core-tree-view-variables.$vcenter,\r\n core-tree-view-variables.$hspace - 4px\r\n );\r\n }\r\n\r\n // vertical connector for a branch (not last)\r\n &:not(:last-child)::after {\r\n @include core-tree-view-mixins.vertical-line(\r\n core-tree-view-variables.$hcenter,\r\n core-tree-view-variables.$vcenter + 0.5 * core-tree-view-variables.$icon-size,\r\n calc(100% - core-tree-view-variables.$icon-size)\r\n );\r\n }\r\n\r\n // vertical line after a expanded branch (creating dead ends)\r\n &.is-expanded:last-child::after {\r\n @include core-tree-view-mixins.vertical-line(\r\n core-tree-view-variables.$hcenter,\r\n core-tree-view-variables.$vcenter + 0.5 * core-tree-view-variables.$icon-size,\r\n calc(100% - (core-tree-view-variables.$vcenter + 0.5 * core-tree-view-variables.$icon-size))\r\n );\r\n }\r\n }\r\n\r\n .tree-branch-control {\r\n color: colors.$grasgroen;\r\n display: inline-block;\r\n font-size: math.div(2 * core-tree-view-variables.$icon-size, 3);\r\n margin: core-tree-view-variables.$vspace core-tree-view-variables.$hspace core-tree-view-variables.$vspace 0;\r\n vertical-align: top;\r\n\r\n > div {\r\n cursor: pointer;\r\n }\r\n }\r\n\r\n .tree-content {\r\n cursor: pointer;\r\n display: inline-block;\r\n margin: core-tree-view-variables.$vspace 0;\r\n max-width: calc(100% - (core-tree-view-variables.$indent + core-tree-view-variables.$hspace));\r\n\r\n a {\r\n color: scaffolding.$text-color;\r\n text-decoration: underline;\r\n\r\n &:hover,\r\n &:focus {\r\n color: scaffolding.$text-color;\r\n text-decoration: none;\r\n }\r\n\r\n &:active {\r\n text-decoration: none;\r\n }\r\n }\r\n\r\n &.selected {\r\n color: scaffolding.$text-color;\r\n font-weight: 700;\r\n text-decoration: underline;\r\n\r\n &:hover,\r\n &:focus {\r\n text-decoration: none;\r\n }\r\n }\r\n\r\n &.active {\r\n color: colors.$mauve;\r\n font-style: italic;\r\n font-weight: 700;\r\n\r\n text-decoration: underline;\r\n\r\n &:hover,\r\n &:focus {\r\n text-decoration: none;\r\n }\r\n\r\n a {\r\n color: colors.$mauve;\r\n\r\n &:hover,\r\n &:focus {\r\n text-decoration: none;\r\n }\r\n }\r\n }\r\n\r\n dso-icon {\r\n color: colors.$grasgroen;\r\n font-size: 0.75em;\r\n margin-left: 0.5em;\r\n vertical-align: text-bottom;\r\n }\r\n }\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 { h, Component, ComponentInterface, Event, EventEmitter, Prop, Method } from \"@stencil/core\";\r\n\r\nimport { TreeViewPointerEvent, TreeViewItem } from \"./tree-view.interfaces\";\r\nimport { DsoTreeItem } from \"./tree-item\";\r\n\r\n@Component({\r\n tag: \"dso-tree-view\",\r\n styleUrl: \"./tree-view.scss\",\r\n shadow: true,\r\n})\r\nexport class TreeView implements ComponentInterface {\r\n private tree?: HTMLElement;\r\n\r\n /**\r\n * The collection of TreeViewItems\r\n */\r\n @Prop()\r\n collection!: TreeViewItem[];\r\n\r\n /**\r\n * Emitted when a tree view item is opened.\r\n * The `detail` property of the `CustomEvent` will contain the complete path of TreeViewItems from the\r\n * root to the item that is emitting the open event. The consumer of the event is responsible for updating\r\n * the TreeView's collection (usually set the open state on the last TreeViewItem in path).\r\n */\r\n @Event()\r\n dsoOpenItem!: EventEmitter<TreeViewItem[]>;\r\n\r\n /**\r\n * Emitted when a tree view item is closed.\r\n * The `detail` property of the `CustomEvent` will contain the complete path of TreeViewItems from the\r\n * root to the item that is emitting the close event. The consumer of the event is responsible for updating\r\n * the TreeView's collection (usually set the closed state on the last TreeViewItem in path).\r\n */\r\n @Event()\r\n dsoCloseItem!: EventEmitter<TreeViewItem[]>;\r\n\r\n /**\r\n * Emitted when a tree view item is clicked.\r\n * The `detail` property of the `CustomEvent` will contain an object with:\r\n * `path` = the complete path of TreeViewItems from the root to the item that is emitting the clicked event.\r\n * `originalEvent` = the original click event.\r\n * The consumer of the event is responsible for updating the TreeView's collection (usually set the active\r\n * state on the last TreeViewItem in path and clear all other active item states).\r\n */\r\n @Event()\r\n dsoClickItem!: EventEmitter<TreeViewPointerEvent>;\r\n\r\n /**\r\n * Set focus on the last item in the specified path.\r\n * The consumer is responsible for providing a TreeView collection where the last item is visible.\r\n * @async\r\n * @returns Whether the item was found.\r\n */\r\n @Method()\r\n async focusItem(path: TreeViewItem[]): Promise<boolean> {\r\n const tree = this.tree;\r\n\r\n if (!tree || path.length === 0) {\r\n return false;\r\n }\r\n\r\n const itemToFocus = path[path.length - 1];\r\n if (!itemToFocus) {\r\n throw new Error(\"No itemToFocus found\");\r\n }\r\n\r\n const elementToFocus = (Array.from(tree.querySelectorAll(\"p\") ?? []) as HTMLElement[])\r\n .filter((item) => item.offsetWidth > 0 && item.offsetHeight > 0)\r\n .find((item) => item.dataset[\"itemId\"] === itemToFocus.id);\r\n\r\n if (!elementToFocus) {\r\n return false;\r\n }\r\n\r\n TreeView.setFocus(tree, elementToFocus);\r\n\r\n return true;\r\n }\r\n\r\n private keyDownListener = (event: KeyboardEvent) => {\r\n if (event.defaultPrevented) {\r\n return;\r\n }\r\n\r\n const isIndexLetter = (str: string) => str.length === 1 && str.match(/\\S/);\r\n\r\n const tree = event\r\n .composedPath()\r\n .find((item) => (item instanceof HTMLElement ? item.className === \"dso-tree\" : false));\r\n\r\n if (!(event.target instanceof HTMLParagraphElement) || !(tree instanceof HTMLElement)) {\r\n return;\r\n }\r\n\r\n switch (event.key) {\r\n case \"ArrowDown\":\r\n TreeView.moveFocus(tree, event.target, \"next\");\r\n break;\r\n case \"ArrowUp\":\r\n TreeView.moveFocus(tree, event.target, \"previous\");\r\n break;\r\n case \"ArrowRight\":\r\n TreeView.expandItemOrFocusChild(tree, event.target);\r\n break;\r\n case \"ArrowLeft\":\r\n TreeView.collapseItemOrFocusParent(tree, event.target);\r\n break;\r\n case \"End\":\r\n TreeView.moveFocus(tree, event.target, \"last\");\r\n break;\r\n case \"Home\":\r\n TreeView.moveFocus(tree, event.target, \"first\");\r\n break;\r\n case \"Enter\":\r\n case \" \":\r\n event.target.click();\r\n break;\r\n default:\r\n if (isIndexLetter(event.key)) {\r\n if (TreeView.setFocusByFirstCharacter(tree, event.target, event.key, event.shiftKey)) {\r\n break;\r\n }\r\n }\r\n\r\n return;\r\n }\r\n\r\n event.preventDefault();\r\n };\r\n\r\n // eslint-disable-next-line @stencil-community/own-props-must-be-private -- Omdat this als TreeView instance aan Functionele Components wordt gegeven\r\n itemClick = (event: MouseEvent, ancestors: TreeViewItem[], item: TreeViewItem) => {\r\n if (!(event.target instanceof HTMLElement)) {\r\n return;\r\n }\r\n\r\n const contentElement = event.target.closest(\".tree-content\");\r\n\r\n if (contentElement) {\r\n const tree = event\r\n .composedPath()\r\n .find((eventTarget) => (eventTarget instanceof HTMLElement ? eventTarget.className === \"dso-tree\" : false));\r\n if (!(contentElement instanceof HTMLParagraphElement) || !(tree instanceof HTMLElement)) {\r\n return;\r\n }\r\n\r\n TreeView.setFocus(tree, contentElement);\r\n this.dsoClickItem.emit({ path: [...ancestors, item], originalEvent: event });\r\n\r\n return;\r\n }\r\n\r\n if (item.open) {\r\n this.dsoCloseItem.emit([...ancestors, item]);\r\n } else {\r\n this.dsoOpenItem.emit([...ancestors, item]);\r\n }\r\n };\r\n\r\n private static setFocus(tree: HTMLElement, target: HTMLElement) {\r\n if (target) {\r\n (Array.from(tree.querySelectorAll(\"p\")) as HTMLElement[])\r\n .filter((item) => item.tabIndex === 0)\r\n .forEach((item) => (item.tabIndex = -1));\r\n\r\n target.tabIndex = 0;\r\n target.focus();\r\n }\r\n }\r\n\r\n private static moveFocus(tree: HTMLElement, el: HTMLElement, moveTo: \"first\" | \"previous\" | \"next\" | \"last\"): void {\r\n const focusableItems = (Array.from(tree.querySelectorAll(\"p\")) as HTMLElement[]).filter(\r\n (item) => item.offsetWidth > 0 && item.offsetHeight > 0\r\n );\r\n\r\n let index = 0;\r\n switch (moveTo) {\r\n case \"first\":\r\n index = 0;\r\n break;\r\n case \"previous\":\r\n index = focusableItems.indexOf(el) - 1;\r\n break;\r\n case \"next\":\r\n index = focusableItems.indexOf(el) + 1;\r\n break;\r\n case \"last\":\r\n index = focusableItems.length - 1;\r\n break;\r\n }\r\n\r\n const focusableItem = focusableItems[index];\r\n if (!focusableItem) {\r\n throw new Error(\"No focusableItem found\");\r\n }\r\n\r\n TreeView.setFocus(tree, focusableItem);\r\n }\r\n\r\n private static expandItemOrFocusChild(tree: HTMLElement, target: HTMLElement): void {\r\n if (target?.getAttribute(\"aria-expanded\") === \"true\") {\r\n TreeView.moveFocus(tree, target, \"next\");\r\n } else {\r\n const controlElement = target.previousElementSibling?.firstElementChild;\r\n if (controlElement instanceof HTMLElement) {\r\n controlElement.click();\r\n }\r\n }\r\n }\r\n\r\n private static collapseItemOrFocusParent(tree: HTMLElement, target: HTMLElement): void {\r\n if (target?.getAttribute(\"aria-expanded\") === \"true\") {\r\n const controlElement = target.previousElementSibling?.firstElementChild;\r\n if (controlElement instanceof HTMLElement) {\r\n controlElement.click();\r\n }\r\n } else {\r\n const parentTarget = target?.parentElement?.parentElement?.previousElementSibling;\r\n if (parentTarget instanceof HTMLElement) {\r\n TreeView.setFocus(tree, parentTarget);\r\n }\r\n }\r\n }\r\n\r\n private static setFocusByFirstCharacter(\r\n tree: HTMLElement,\r\n el: HTMLElement,\r\n char: string,\r\n backwards: boolean\r\n ): boolean {\r\n const focusableItems = (Array.from(tree.querySelectorAll(\"p\")) as HTMLElement[]).filter(\r\n (item) => item.offsetWidth > 0 && item.offsetHeight > 0\r\n );\r\n\r\n if (backwards) {\r\n focusableItems.reverse();\r\n }\r\n\r\n const current = focusableItems.indexOf(el);\r\n\r\n char = char.toLowerCase();\r\n let nextItem = focusableItems.find(\r\n (item, index) => index > current && item.textContent?.toLowerCase().startsWith(char)\r\n );\r\n if (!nextItem) {\r\n nextItem = focusableItems.find(\r\n (item, index) => index < current && item.textContent?.toLowerCase().startsWith(char)\r\n );\r\n }\r\n\r\n if (nextItem) {\r\n TreeView.setFocus(tree, nextItem);\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n render() {\r\n return (\r\n <div\r\n id=\"tree\"\r\n class=\"dso-tree\"\r\n onKeyDown={(e) => this.keyDownListener(e)}\r\n ref={(element) => (this.tree = element)}\r\n >\r\n <ul role=\"tree\" aria-label=\"Objectenboom\">\r\n {this.collection?.map((item, index) => (\r\n <DsoTreeItem\r\n owner={this}\r\n ancestors={[]}\r\n item={item}\r\n index={index}\r\n level={1}\r\n setSize={this.collection.length}\r\n ></DsoTreeItem>\r\n ))}\r\n </ul>\r\n </div>\r\n );\r\n }\r\n}\r\n"],"version":3}
1
+ {"file":"dso-tree-view.js","mappings":"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","names":[],"sources":["src/components/tree-view/tree-item.tsx","src/components/tree-view/tree-view.scss?tag=dso-tree-view&encapsulation=shadow","src/components/tree-view/tree-view.tsx"],"sourcesContent":["import { h, FunctionalComponent, Fragment } from \"@stencil/core\";\r\nimport clsx from \"clsx\";\r\nimport { TreeViewItem, TreeViewItemIcon } from \"./tree-view.interfaces\";\r\n\r\nimport { TreeView } from \"./tree-view\";\r\n\r\ninterface TreeViewItemProps {\r\n owner: TreeView;\r\n ancestors: TreeViewItem[];\r\n item: TreeViewItem;\r\n index: number;\r\n level: number;\r\n setSize: number;\r\n}\r\n\r\nexport const DsoTreeItem: FunctionalComponent<TreeViewItemProps> = ({\r\n owner,\r\n ancestors,\r\n item,\r\n index,\r\n level,\r\n setSize,\r\n}) => (\r\n <li\r\n key={item.id}\r\n class={clsx(\"tree-item\", { \"has-child\": item.hasItems, \"is-expanded\": !!item.open && !!item.items?.length })}\r\n role=\"none\"\r\n >\r\n <div class=\"tree-branch-control\">\r\n {item.hasItems ? (\r\n <div onClick={(e) => owner.itemClick(e, ancestors, item)}>\r\n <dso-icon icon={item.open ? \"minus-square\" : \"plus-square\"}></dso-icon>\r\n </div>\r\n ) : (\r\n <dso-icon></dso-icon>\r\n )}\r\n </div>\r\n <p\r\n class={clsx(\"tree-content\", { active: item.active }, { selected: item.selected })}\r\n tabindex={level === 1 && index === 0 ? 0 : -1}\r\n role=\"treeitem\"\r\n aria-expanded={item.hasItems ? \"\" + (!!item.open && !!item.items?.length) : undefined}\r\n aria-current={item.active ? \"true\" : undefined}\r\n aria-level={level}\r\n aria-setsize={setSize}\r\n aria-posinset={index + 1}\r\n aria-busy={item.loading ? \"true\" : undefined}\r\n data-item-id={item.id}\r\n onClick={(e) => owner.itemClick(e, ancestors, item)}\r\n >\r\n {item.selected && <span class=\"sr-only\">Resultaat: </span>}\r\n {item.href ? (\r\n <a href={item.href} tabindex=\"-1\">\r\n {item.label}\r\n </a>\r\n ) : (\r\n <span>{item.label}</span>\r\n )}\r\n {item.icons?.map((icon: TreeViewItemIcon) => (\r\n <dso-icon icon={icon.icon} title={icon.label}></dso-icon>\r\n ))}\r\n </p>\r\n {item.open && (\r\n <>\r\n {item.hasItems && !item.items && item.loading ? (\r\n <dso-progress-indicator size=\"small\" label=\"Resultaten laden: een moment geduld alstublieft.\" />\r\n ) : (\r\n <ul role=\"group\">\r\n {item.items?.map((childItem: TreeViewItem, childIndex: number, org: TreeViewItem[]) => (\r\n <DsoTreeItem\r\n owner={owner}\r\n ancestors={[...ancestors, item]}\r\n item={childItem}\r\n index={childIndex}\r\n level={level + 1}\r\n setSize={org.length}\r\n ></DsoTreeItem>\r\n ))}\r\n </ul>\r\n )}\r\n </>\r\n )}\r\n </li>\r\n);\r\n","@use \"sass:math\";\r\n\r\n@use \"~dso-toolkit/src/utilities\";\r\n@use \"~dso-toolkit/src/variables/colors\";\r\n@use \"~dso-toolkit/src/variables/scaffolding\";\r\n\r\n@use \"tree-view.mixins\" as core-tree-view-mixins;\r\n@use \"tree-view.variables\" as core-tree-view-variables;\r\n\r\n:host {\r\n ul {\r\n list-style-type: none;\r\n padding-inline-start: core-tree-view-variables.$indent;\r\n position: relative;\r\n }\r\n\r\n li {\r\n position: relative;\r\n }\r\n\r\n ul[role=\"tree\"] {\r\n padding-left: 0;\r\n }\r\n\r\n // connects branch or leaf to parent\r\n ul[role=\"group\"]::before {\r\n @include core-tree-view-mixins.vertical-line(\r\n core-tree-view-variables.$indent + core-tree-view-variables.$hcenter,\r\n 0,\r\n core-tree-view-variables.$vspace\r\n );\r\n }\r\n\r\n li:not(.has-child) {\r\n // horizontal connector for a leaf\r\n &::before {\r\n @include core-tree-view-mixins.horizontal-line(\r\n core-tree-view-variables.$hcenter,\r\n core-tree-view-variables.$vcenter,\r\n core-tree-view-variables.$hspace + 0.5 * core-tree-view-variables.$icon-size - 4px\r\n );\r\n }\r\n\r\n // vertical connector for a leaf\r\n &::after {\r\n @include core-tree-view-mixins.vertical-line(\r\n core-tree-view-variables.$hcenter,\r\n core-tree-view-variables.$vspace,\r\n 100%\r\n );\r\n }\r\n\r\n // vertical connector for the last leaf\r\n &:last-child::after {\r\n height: core-tree-view-variables.$vcenter;\r\n top: 0;\r\n }\r\n }\r\n\r\n li.has-child {\r\n // horizontal connector for a branch\r\n &::before {\r\n @include core-tree-view-mixins.horizontal-line(\r\n core-tree-view-variables.$icon-size,\r\n core-tree-view-variables.$vcenter,\r\n core-tree-view-variables.$hspace - 4px\r\n );\r\n }\r\n\r\n // vertical connector for a branch (not last)\r\n &:not(:last-child)::after {\r\n @include core-tree-view-mixins.vertical-line(\r\n core-tree-view-variables.$hcenter,\r\n core-tree-view-variables.$vcenter + 0.5 * core-tree-view-variables.$icon-size,\r\n calc(100% - core-tree-view-variables.$icon-size)\r\n );\r\n }\r\n\r\n // vertical line after a expanded branch (creating dead ends)\r\n &.is-expanded:last-child::after {\r\n @include core-tree-view-mixins.vertical-line(\r\n core-tree-view-variables.$hcenter,\r\n core-tree-view-variables.$vcenter + 0.5 * core-tree-view-variables.$icon-size,\r\n calc(100% - (core-tree-view-variables.$vcenter + 0.5 * core-tree-view-variables.$icon-size))\r\n );\r\n }\r\n }\r\n\r\n .tree-branch-control {\r\n color: colors.$grasgroen;\r\n display: inline-block;\r\n font-size: math.div(2 * core-tree-view-variables.$icon-size, 3);\r\n margin: core-tree-view-variables.$vspace core-tree-view-variables.$hspace core-tree-view-variables.$vspace 0;\r\n vertical-align: top;\r\n\r\n > div {\r\n cursor: pointer;\r\n }\r\n }\r\n\r\n .tree-content {\r\n cursor: pointer;\r\n display: inline-block;\r\n margin: core-tree-view-variables.$vspace 0;\r\n max-width: calc(100% - (core-tree-view-variables.$indent + core-tree-view-variables.$hspace));\r\n\r\n a {\r\n color: scaffolding.$text-color;\r\n text-decoration: underline;\r\n\r\n &:hover,\r\n &:focus {\r\n color: scaffolding.$text-color;\r\n text-decoration: none;\r\n }\r\n\r\n &:active {\r\n text-decoration: none;\r\n }\r\n }\r\n\r\n &.selected {\r\n color: scaffolding.$text-color;\r\n font-weight: 700;\r\n text-decoration: underline;\r\n\r\n &:hover,\r\n &:focus {\r\n text-decoration: none;\r\n }\r\n }\r\n\r\n &.active {\r\n color: colors.$mauve;\r\n font-style: italic;\r\n font-weight: 700;\r\n\r\n text-decoration: underline;\r\n\r\n &:hover,\r\n &:focus {\r\n text-decoration: none;\r\n }\r\n\r\n a {\r\n color: colors.$mauve;\r\n\r\n &:hover,\r\n &:focus {\r\n text-decoration: none;\r\n }\r\n }\r\n }\r\n\r\n dso-icon {\r\n color: colors.$grasgroen;\r\n font-size: 0.75em;\r\n margin-left: 0.5em;\r\n vertical-align: text-bottom;\r\n }\r\n }\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 { h, Component, ComponentInterface, Event, EventEmitter, Prop, Method } from \"@stencil/core\";\r\n\r\nimport { TreeViewPointerEvent, TreeViewItem } from \"./tree-view.interfaces\";\r\nimport { DsoTreeItem } from \"./tree-item\";\r\n\r\n@Component({\r\n tag: \"dso-tree-view\",\r\n styleUrl: \"./tree-view.scss\",\r\n shadow: true,\r\n})\r\nexport class TreeView implements ComponentInterface {\r\n private tree?: HTMLElement;\r\n\r\n /**\r\n * The collection of TreeViewItems\r\n */\r\n @Prop()\r\n collection!: TreeViewItem[];\r\n\r\n /**\r\n * Emitted when a tree view item is opened.\r\n * The `detail` property of the `CustomEvent` will contain the complete path of TreeViewItems from the\r\n * root to the item that is emitting the open event. The consumer of the event is responsible for updating\r\n * the TreeView's collection (usually set the open state on the last TreeViewItem in path).\r\n */\r\n @Event()\r\n dsoOpenItem!: EventEmitter<TreeViewItem[]>;\r\n\r\n /**\r\n * Emitted when a tree view item is closed.\r\n * The `detail` property of the `CustomEvent` will contain the complete path of TreeViewItems from the\r\n * root to the item that is emitting the close event. The consumer of the event is responsible for updating\r\n * the TreeView's collection (usually set the closed state on the last TreeViewItem in path).\r\n */\r\n @Event()\r\n dsoCloseItem!: EventEmitter<TreeViewItem[]>;\r\n\r\n /**\r\n * Emitted when a tree view item is clicked.\r\n * The `detail` property of the `CustomEvent` will contain an object with:\r\n * `path` = the complete path of TreeViewItems from the root to the item that is emitting the clicked event.\r\n * `originalEvent` = the original click event.\r\n * The consumer of the event is responsible for updating the TreeView's collection (usually set the active\r\n * state on the last TreeViewItem in path and clear all other active item states).\r\n */\r\n @Event()\r\n dsoClickItem!: EventEmitter<TreeViewPointerEvent>;\r\n\r\n /**\r\n * Set focus on the last item in the specified path.\r\n * The consumer is responsible for providing a TreeView collection where the last item is visible.\r\n * @async\r\n * @returns Whether the item was found.\r\n */\r\n @Method()\r\n async focusItem(path: TreeViewItem[]): Promise<boolean> {\r\n const tree = this.tree;\r\n\r\n if (!tree || path.length === 0) {\r\n return false;\r\n }\r\n\r\n const itemToFocus = path[path.length - 1];\r\n if (!itemToFocus) {\r\n throw new Error(\"No itemToFocus found\");\r\n }\r\n\r\n const elementToFocus = (Array.from(tree.querySelectorAll(\"p\") ?? []) as HTMLElement[])\r\n .filter((item) => item.offsetWidth > 0 && item.offsetHeight > 0)\r\n .find((item) => item.dataset[\"itemId\"] === itemToFocus.id);\r\n\r\n if (!elementToFocus) {\r\n return false;\r\n }\r\n\r\n TreeView.setFocus(tree, elementToFocus);\r\n\r\n return true;\r\n }\r\n\r\n private keyDownListener = (event: KeyboardEvent) => {\r\n if (event.defaultPrevented) {\r\n return;\r\n }\r\n\r\n const isIndexLetter = (str: string) => str.length === 1 && str.match(/\\S/);\r\n\r\n const tree = event\r\n .composedPath()\r\n .find((item) => (item instanceof HTMLElement ? item.className === \"dso-tree\" : false));\r\n\r\n if (!(event.target instanceof HTMLParagraphElement) || !(tree instanceof HTMLElement)) {\r\n return;\r\n }\r\n\r\n switch (event.key) {\r\n case \"ArrowDown\":\r\n TreeView.moveFocus(tree, event.target, \"next\");\r\n break;\r\n case \"ArrowUp\":\r\n TreeView.moveFocus(tree, event.target, \"previous\");\r\n break;\r\n case \"ArrowRight\":\r\n TreeView.expandItemOrFocusChild(tree, event.target);\r\n break;\r\n case \"ArrowLeft\":\r\n TreeView.collapseItemOrFocusParent(tree, event.target);\r\n break;\r\n case \"End\":\r\n TreeView.moveFocus(tree, event.target, \"last\");\r\n break;\r\n case \"Home\":\r\n TreeView.moveFocus(tree, event.target, \"first\");\r\n break;\r\n case \"Enter\":\r\n case \" \":\r\n event.target.click();\r\n break;\r\n default:\r\n if (isIndexLetter(event.key)) {\r\n if (TreeView.setFocusByFirstCharacter(tree, event.target, event.key, event.shiftKey)) {\r\n break;\r\n }\r\n }\r\n\r\n return;\r\n }\r\n\r\n event.preventDefault();\r\n };\r\n\r\n // eslint-disable-next-line @stencil-community/own-props-must-be-private -- Omdat this als TreeView instance aan Functionele Components wordt gegeven\r\n itemClick = (event: MouseEvent, ancestors: TreeViewItem[], item: TreeViewItem) => {\r\n if (!(event.target instanceof HTMLElement)) {\r\n return;\r\n }\r\n\r\n const contentElement = event.target.closest(\".tree-content\");\r\n\r\n if (contentElement) {\r\n const tree = event\r\n .composedPath()\r\n .find((eventTarget) => (eventTarget instanceof HTMLElement ? eventTarget.className === \"dso-tree\" : false));\r\n if (!(contentElement instanceof HTMLParagraphElement) || !(tree instanceof HTMLElement)) {\r\n return;\r\n }\r\n\r\n TreeView.setFocus(tree, contentElement);\r\n this.dsoClickItem.emit({ path: [...ancestors, item], originalEvent: event });\r\n\r\n return;\r\n }\r\n\r\n if (item.open) {\r\n this.dsoCloseItem.emit([...ancestors, item]);\r\n } else {\r\n this.dsoOpenItem.emit([...ancestors, item]);\r\n }\r\n };\r\n\r\n private static setFocus(tree: HTMLElement, target: HTMLElement) {\r\n if (target) {\r\n (Array.from(tree.querySelectorAll(\"p\")) as HTMLElement[])\r\n .filter((item) => item.tabIndex === 0)\r\n .forEach((item) => (item.tabIndex = -1));\r\n\r\n target.tabIndex = 0;\r\n target.focus();\r\n }\r\n }\r\n\r\n private static moveFocus(tree: HTMLElement, el: HTMLElement, moveTo: \"first\" | \"previous\" | \"next\" | \"last\"): void {\r\n const focusableItems = (Array.from(tree.querySelectorAll(\"p\")) as HTMLElement[]).filter(\r\n (item) => item.offsetWidth > 0 && item.offsetHeight > 0\r\n );\r\n\r\n let index = 0;\r\n switch (moveTo) {\r\n case \"first\":\r\n index = 0;\r\n break;\r\n case \"previous\":\r\n index = focusableItems.indexOf(el) - 1;\r\n break;\r\n case \"next\":\r\n index = focusableItems.indexOf(el) + 1;\r\n break;\r\n case \"last\":\r\n index = focusableItems.length - 1;\r\n break;\r\n }\r\n\r\n const focusableItem = focusableItems[index];\r\n if (!focusableItem) {\r\n throw new Error(\"No focusableItem found\");\r\n }\r\n\r\n TreeView.setFocus(tree, focusableItem);\r\n }\r\n\r\n private static expandItemOrFocusChild(tree: HTMLElement, target: HTMLElement): void {\r\n if (target?.getAttribute(\"aria-expanded\") === \"true\") {\r\n TreeView.moveFocus(tree, target, \"next\");\r\n } else {\r\n const controlElement = target.previousElementSibling?.firstElementChild;\r\n if (controlElement instanceof HTMLElement) {\r\n controlElement.click();\r\n }\r\n }\r\n }\r\n\r\n private static collapseItemOrFocusParent(tree: HTMLElement, target: HTMLElement): void {\r\n if (target?.getAttribute(\"aria-expanded\") === \"true\") {\r\n const controlElement = target.previousElementSibling?.firstElementChild;\r\n if (controlElement instanceof HTMLElement) {\r\n controlElement.click();\r\n }\r\n } else {\r\n const parentTarget = target?.parentElement?.parentElement?.previousElementSibling;\r\n if (parentTarget instanceof HTMLElement) {\r\n TreeView.setFocus(tree, parentTarget);\r\n }\r\n }\r\n }\r\n\r\n private static setFocusByFirstCharacter(\r\n tree: HTMLElement,\r\n el: HTMLElement,\r\n char: string,\r\n backwards: boolean\r\n ): boolean {\r\n const focusableItems = (Array.from(tree.querySelectorAll(\"p\")) as HTMLElement[]).filter(\r\n (item) => item.offsetWidth > 0 && item.offsetHeight > 0\r\n );\r\n\r\n if (backwards) {\r\n focusableItems.reverse();\r\n }\r\n\r\n const current = focusableItems.indexOf(el);\r\n\r\n char = char.toLowerCase();\r\n let nextItem = focusableItems.find(\r\n (item, index) => index > current && item.textContent?.toLowerCase().startsWith(char)\r\n );\r\n if (!nextItem) {\r\n nextItem = focusableItems.find(\r\n (item, index) => index < current && item.textContent?.toLowerCase().startsWith(char)\r\n );\r\n }\r\n\r\n if (nextItem) {\r\n TreeView.setFocus(tree, nextItem);\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n render() {\r\n return (\r\n <div\r\n id=\"tree\"\r\n class=\"dso-tree\"\r\n onKeyDown={(e) => this.keyDownListener(e)}\r\n ref={(element) => (this.tree = element)}\r\n >\r\n <ul role=\"tree\" aria-label=\"Objectenboom\">\r\n {this.collection?.map((item, index) => (\r\n <DsoTreeItem\r\n owner={this}\r\n ancestors={[]}\r\n item={item}\r\n index={index}\r\n level={1}\r\n setSize={this.collection.length}\r\n ></DsoTreeItem>\r\n ))}\r\n </ul>\r\n </div>\r\n );\r\n }\r\n}\r\n"],"version":3}
@@ -1,5 +1,5 @@
1
1
  import { h, proxyCustomElement, HTMLElement, createEvent, Host } from '@stencil/core/internal/client';
2
- import { c as clsx } from './clsx.m.js';
2
+ import { c as clsx } from './clsx.js';
3
3
 
4
4
  const tabs = ["main", "map"];
5
5
 
@@ -1 +1 @@
1
- {"file":"dso-viewer-grid.js","mappings":"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","names":[],"sources":["./src/components/viewer-grid/viewer-grid.interfaces.ts","./src/components/viewer-grid/components/viewer-grid-filterpanel-buttons.tsx","./src/components/viewer-grid/components/filterpanel.tsx","./src/components/viewer-grid/components/main-panel.tsx","./src/components/viewer-grid/components/overlay.tsx","./src/components/viewer-grid/viewer-grid.scss?tag=dso-viewer-grid&encapsulation=shadow","./src/components/viewer-grid/viewer-grid.tsx"],"sourcesContent":["export interface ViewerGridChangeSizeEvent {\r\n /**\r\n * Indicates whether it's before or after the animation\r\n */\r\n stage: \"start\" | \"end\";\r\n previousSize: MainSize;\r\n currentSize: MainSize;\r\n}\r\n\r\nexport interface ViewerGridCloseOverlayEvent {\r\n originalEvent: MouseEvent | Event;\r\n}\r\n\r\nexport interface ViewerGridFilterpanelCancelEvent {\r\n originalEvent: MouseEvent | Event;\r\n}\r\n\r\nexport interface ViewerGridFilterpanelApplyEvent {\r\n originalEvent: MouseEvent | Event;\r\n}\r\n\r\nexport type MainSize = \"small\" | \"medium\" | \"large\";\r\n\r\nexport type LabelSizeMap = { [key in MainSize]: string };\r\n\r\nexport const tabs = [\"main\", \"map\"] as const;\r\n\r\nexport type Tabs = (typeof tabs)[number];\r\n\r\nexport type TabLabelMap = { [key in Tabs]: string };\r\n","import { FunctionalComponent, h } from \"@stencil/core\";\r\n\r\nexport interface ViewerGridFilterpanelButtonsProps {\r\n onApply: (mouseEvent: MouseEvent) => void;\r\n onCancel: (mouseEvent: MouseEvent) => void;\r\n}\r\n\r\nexport const ViewerGridFilterpanelButtons: FunctionalComponent<ViewerGridFilterpanelButtonsProps> = ({\r\n onApply,\r\n onCancel,\r\n}) => (\r\n <div class=\"filterpanel-buttons\">\r\n <button type=\"button\" class=\"cancel-button\" onClick={onCancel}>\r\n <span>Annuleren</span>\r\n </button>\r\n <button type=\"button\" class=\"apply-button\" onClick={onApply}>\r\n <span>Toepassen</span>\r\n <dso-icon icon=\"chevron-right\"></dso-icon>\r\n </button>\r\n </div>\r\n);\r\n","import { FunctionalComponent, h } from \"@stencil/core\";\r\n\r\nimport { ViewerGridFilterpanelButtons } from \"./viewer-grid-filterpanel-buttons\";\r\n\r\nexport interface ViewerGridFilterpanelProps {\r\n ref: ((element: HTMLDialogElement | undefined) => void) | undefined;\r\n onApply: (mouseEvent: MouseEvent) => void;\r\n onCancel: (event: MouseEvent | Event) => void;\r\n}\r\n\r\nexport const Filterpanel: FunctionalComponent<ViewerGridFilterpanelProps> = ({ ref, onApply, onCancel }) => (\r\n <dialog\r\n id=\"filterpanel\"\r\n class=\"filterpanel\"\r\n ref={ref}\r\n onCancel={(e) => {\r\n e.preventDefault();\r\n\r\n onCancel(e);\r\n }}\r\n >\r\n <h1>Uw keuzes</h1>\r\n <ViewerGridFilterpanelButtons onApply={onApply} onCancel={onCancel} />\r\n <slot name=\"filterpanel\" />\r\n <ViewerGridFilterpanelButtons onApply={onApply} onCancel={onCancel} />\r\n </dialog>\r\n);\r\n","import { FunctionalComponent, h } from \"@stencil/core\";\r\nimport { LabelSizeMap, MainSize } from \"../viewer-grid.interfaces\";\r\n\r\nexport interface ViewerGridMainPanelProps {\r\n ref: ((element: HTMLDivElement | undefined) => void) | undefined;\r\n tabView: boolean;\r\n mainSize: MainSize;\r\n shrinkMain: () => void;\r\n expandMain: () => void;\r\n}\r\n\r\nexport const MainPanel: FunctionalComponent<ViewerGridMainPanelProps> = ({\r\n ref,\r\n tabView,\r\n mainSize,\r\n shrinkMain,\r\n expandMain,\r\n}) => {\r\n const sizeLabelMap: LabelSizeMap = {\r\n small: \"smal\",\r\n medium: \"middel\",\r\n large: \"breed\",\r\n };\r\n\r\n return (\r\n <div class=\"dso-main-panel\" ref={ref}>\r\n {!tabView && (\r\n <div class=\"sizing-buttons\">\r\n <span class=\"sr-only\" aria-live=\"polite\" aria-atomic=\"true\">\r\n Breedte hoofdpaneel: {sizeLabelMap[mainSize]}\r\n </span>\r\n <button type=\"button\" class=\"shrink\" disabled={mainSize === \"small\"} onClick={shrinkMain}>\r\n <span class=\"sr-only\">Hoofdpaneel smaller maken</span>\r\n <dso-icon icon=\"chevron-left\"></dso-icon>\r\n </button>\r\n <button type=\"button\" class=\"expand\" disabled={mainSize === \"large\"} onClick={expandMain}>\r\n <span class=\"sr-only\">Hoofdpaneel breder maken</span>\r\n <dso-icon icon=\"chevron-right\"></dso-icon>\r\n </button>\r\n </div>\r\n )}\r\n <div class=\"main\">\r\n <slot name=\"main\" />\r\n </div>\r\n </div>\r\n );\r\n};\r\n","import { FunctionalComponent, h } from \"@stencil/core\";\r\n\r\nexport interface ViewerGridOverlayProps {\r\n ref: ((element: HTMLDialogElement | undefined) => void) | undefined;\r\n dsoCloseOverlay: (event: MouseEvent | Event) => void;\r\n}\r\n\r\nexport const Overlay: FunctionalComponent<ViewerGridOverlayProps> = ({ ref, dsoCloseOverlay }) => (\r\n <dialog\r\n class=\"overlay\"\r\n ref={ref}\r\n onCancel={(e) => {\r\n e.preventDefault();\r\n\r\n dsoCloseOverlay(e);\r\n }}\r\n >\r\n <button type=\"button\" class=\"overlay-close-button\" onClick={dsoCloseOverlay}>\r\n <dso-icon icon=\"times\"></dso-icon>\r\n <span class=\"sr-only\">sluiten</span>\r\n </button>\r\n <slot name=\"overlay\" />\r\n </dialog>\r\n);\r\n","@use \"~dso-toolkit/src/components/grid\" as css-grid;\r\n\r\n@use \"~dso-toolkit/src/utilities\";\r\n@use \"~dso-toolkit/src/variables/units\";\r\n@use \"~dso-toolkit/src/variables/colors\";\r\n@use \"~dso-toolkit/src/variables/media-query-breakpoints\";\r\n@use \"~dso-toolkit/src/variables/zindex\";\r\n@use \"~dso-toolkit/src/components/button\";\r\n@use \"~dso-toolkit/src/components/headings\";\r\n@use \"~dso-toolkit/src/components/navbar\";\r\n\r\n@use \"viewer-grid.variables\" as core-viewer-grid-variables;\r\n\r\n@include utilities.box-sizing();\r\n\r\nbutton {\r\n @include button.element();\r\n}\r\n\r\n.sr-only {\r\n @include utilities.sr-only();\r\n}\r\n\r\n.shrink,\r\n.expand,\r\n.overlay-close-button {\r\n @include button.tertiary($modifiers: false);\r\n\r\n &:hover {\r\n cursor: pointer;\r\n }\r\n\r\n &[disabled] {\r\n display: none;\r\n }\r\n}\r\n\r\n.overlay-close-button {\r\n position: absolute;\r\n top: units.$u1;\r\n right: css-grid.$grid-gutter-width * 0.5;\r\n}\r\n\r\n.dso-main-panel {\r\n background-color: colors.$wit;\r\n flex-shrink: 0;\r\n flex-grow: 0;\r\n position: relative;\r\n transition: flex-basis core-viewer-grid-variables.$transition-time ease-in,\r\n max-width core-viewer-grid-variables.$transition-time ease-in,\r\n min-width core-viewer-grid-variables.$transition-time ease-in;\r\n z-index: zindex.$viewer-grid-main-panel;\r\n\r\n .dso-filterblok-address {\r\n font-weight: bold;\r\n margin: units.$u1 0;\r\n }\r\n\r\n .main {\r\n height: 100%;\r\n padding: 0 css-grid.$grid-gutter-width * 0.5 units.$u1;\r\n }\r\n}\r\n\r\n.sizing-buttons {\r\n left: calc(100% + 1px);\r\n overflow-x: hidden;\r\n padding: 0 units.$u1 * 0.5 units.$u1 * 0.5 0;\r\n position: absolute;\r\n top: core-viewer-grid-variables.$sizing-buttons-top;\r\n transition: left core-viewer-grid-variables.$transition-time ease-in;\r\n width: core-viewer-grid-variables.$resize-button-size + units.$u1 * 0.5;\r\n z-index: zindex.$viewer-grid-sizing-buttons;\r\n\r\n button {\r\n @include button.secondary($modifiers: false, $icon-only: true);\r\n @include button.map-focus();\r\n\r\n border: 0;\r\n padding: 8px;\r\n border-radius: 0;\r\n border-bottom-right-radius: 4px;\r\n border-top-right-radius: 4px;\r\n box-shadow: 0 1px units.$u1 * 0.5 0 rgba(0, 0, 0, 0.4);\r\n flex: 0 0 100%;\r\n height: core-viewer-grid-variables.$resize-button-size;\r\n min-width: auto;\r\n width: core-viewer-grid-variables.$resize-button-size;\r\n\r\n &:hover {\r\n dso-icon {\r\n color: colors.$wit;\r\n }\r\n }\r\n }\r\n}\r\n\r\n.map {\r\n height: 100%;\r\n width: 100%;\r\n overflow: hidden;\r\n position: relative;\r\n}\r\n\r\n.filterpanel,\r\n.overlay {\r\n background-color: colors.$wit;\r\n border: 0;\r\n height: 100%;\r\n margin-block: 0;\r\n max-height: 100vh;\r\n overflow-y: auto;\r\n z-index: zindex.$viewer-grid-main-panel + 1;\r\n}\r\n\r\n.filterpanel {\r\n padding: units.$u1 css-grid.$grid-gutter-width * 0.5;\r\n left: 0;\r\n\r\n @media screen and (max-width: core-viewer-grid-variables.$filterpanel-width) {\r\n width: 100vw;\r\n\r\n &::before {\r\n display: none !important;\r\n }\r\n }\r\n\r\n h1 {\r\n @include headings.base();\r\n @include headings.margin-large();\r\n @include headings.h1();\r\n }\r\n}\r\n\r\n.overlay {\r\n padding: units.$u5 css-grid.$grid-gutter-width * 0.5 units.$u1;\r\n right: 0;\r\n width: core-viewer-grid-variables.$overlay-width;\r\n\r\n &::backdrop {\r\n background-color: rgba(0, 0, 0, 0.5);\r\n }\r\n\r\n @media screen and (max-width: core-viewer-grid-variables.$overlay-width) {\r\n width: 100vw;\r\n }\r\n}\r\n\r\n.filterpanel-buttons {\r\n text-align: right;\r\n\r\n .cancel-button {\r\n @include button.secondary($modifiers: false);\r\n @include button.small();\r\n }\r\n\r\n .apply-button {\r\n @include button.primary($modifiers: false);\r\n @include button.small();\r\n }\r\n\r\n .cancel-button + .apply-button {\r\n margin-left: units.$u2;\r\n }\r\n}\r\n\r\n@media screen and (min-width: #{media-query-breakpoints.$screen-sm-min + units.$u5}) {\r\n :host {\r\n display: flex;\r\n height: 100vh;\r\n overflow: hidden;\r\n position: relative;\r\n }\r\n\r\n :host([small]) {\r\n .dso-main-panel {\r\n flex-basis: core-viewer-grid-variables.$small;\r\n min-width: 0;\r\n max-width: core-viewer-grid-variables.$small;\r\n\r\n @media screen and (max-width: core-viewer-grid-variables.$small) {\r\n flex-basis: 100vw;\r\n max-width: 100vw;\r\n min-width: 0;\r\n transition: none;\r\n }\r\n }\r\n }\r\n\r\n :host([medium]) {\r\n .dso-main-panel {\r\n flex-basis: core-viewer-grid-variables.$medium;\r\n min-width: core-viewer-grid-variables.$small;\r\n max-width: core-viewer-grid-variables.$medium;\r\n\r\n @media screen and (max-width: core-viewer-grid-variables.$medium) {\r\n flex-basis: 100vw;\r\n max-width: 100vw;\r\n min-width: core-viewer-grid-variables.$small;\r\n transition: none;\r\n }\r\n }\r\n }\r\n\r\n :host([large]) {\r\n .dso-main-panel {\r\n flex-basis: core-viewer-grid-variables.$large;\r\n min-width: core-viewer-grid-variables.$large-min;\r\n max-width: core-viewer-grid-variables.$large-max;\r\n\r\n @media screen and (max-width: core-viewer-grid-variables.$large-min) {\r\n flex-basis: 100vw;\r\n max-width: 100vw;\r\n min-width: core-viewer-grid-variables.$large-min;\r\n transition: none;\r\n }\r\n }\r\n }\r\n\r\n .dso-main-panel {\r\n box-shadow: units.$u1 * 0.25 0 units.$u1 0 rgba(0, 0, 0, 0.4);\r\n padding-right: units.$u1;\r\n\r\n .main {\r\n overflow-y: scroll;\r\n }\r\n }\r\n\r\n .filterpanel {\r\n box-shadow: 2px 0 5px colors.$grijs-60;\r\n margin-inline: 0 auto;\r\n max-width: core-viewer-grid-variables.$filterpanel-max-width;\r\n width: calc(100vw - 40px);\r\n\r\n &::before {\r\n content: \"\";\r\n display: block;\r\n position: fixed;\r\n top: 0;\r\n bottom: 0;\r\n right: 0;\r\n left: core-viewer-grid-variables.$filterpanel-max-width;\r\n background-color: rgba(0, 0, 0, 0.5);\r\n\r\n @media screen and (max-width: #{core-viewer-grid-variables.$filterpanel-max-width + 40px}) {\r\n left: auto;\r\n width: 40px;\r\n }\r\n }\r\n }\r\n\r\n .overlay {\r\n box-shadow: -2px 0 5px colors.$grijs-60;\r\n margin-inline: auto 0;\r\n }\r\n}\r\n\r\n@media screen and (max-width: #{media-query-breakpoints.$screen-xs-max + units.$u5 + 0.99}) {\r\n @include navbar.root();\r\n\r\n .dso-navbar {\r\n padding-inline: units.$u2;\r\n }\r\n\r\n .dso-nav {\r\n @include navbar.nav-border();\r\n\r\n display: flex;\r\n gap: units.$u2;\r\n margin-block-start: 0;\r\n width: calc(100vw - units.$u4);\r\n }\r\n\r\n .dso-tertiary {\r\n @include button.tertiary($modifiers: false);\r\n\r\n font-weight: 300;\r\n }\r\n\r\n .filterpanel,\r\n .overlay {\r\n margin-inline: 0;\r\n max-width: 100vw;\r\n top: 0;\r\n width: 100vw;\r\n }\r\n}\r\n","import { h, Component, Prop, State, Host, Element, Event, EventEmitter, Watch } from \"@stencil/core\";\r\nimport clsx from \"clsx\";\r\n\r\nimport {\r\n MainSize,\r\n TabLabelMap,\r\n Tabs,\r\n ViewerGridChangeSizeEvent,\r\n ViewerGridCloseOverlayEvent,\r\n ViewerGridFilterpanelApplyEvent,\r\n ViewerGridFilterpanelCancelEvent,\r\n tabs,\r\n} from \"./viewer-grid.interfaces\";\r\nimport { Filterpanel, MainPanel, Overlay } from \"./components\";\r\n\r\nconst tabViewWidth = 768 + 40;\r\n\r\n@Component({\r\n tag: \"dso-viewer-grid\",\r\n styleUrl: \"viewer-grid.scss\",\r\n shadow: true,\r\n})\r\nexport class ViewerGrid {\r\n private mediaCondition = `(min-width: ${tabViewWidth}px)`;\r\n\r\n private tabLabelMap: TabLabelMap = {\r\n main: \"Hoofdpaneel\",\r\n map: \"Kaart\",\r\n };\r\n\r\n private mainPanel?: HTMLDivElement;\r\n\r\n /**\r\n * Set to true when filterpanel should show.\r\n */\r\n @Prop({ reflect: true })\r\n filterpanelOpen = false;\r\n\r\n /**\r\n * Set to true when overlay should show.\r\n */\r\n @Prop({ reflect: true })\r\n overlayOpen = false;\r\n\r\n /**\r\n * Size of the main content panel when component loads. Changing this attribute afterwards has no effect.\r\n *\r\n * Default size is `large`.\r\n */\r\n @Prop()\r\n initialMainSize?: MainSize;\r\n\r\n @State()\r\n mainSize: MainSize = \"large\";\r\n\r\n @State()\r\n tabView = window.innerWidth < tabViewWidth;\r\n\r\n @State()\r\n activeTab: Tabs = \"main\";\r\n\r\n /**\r\n * Emitted when user wants to close the overlay.\r\n */\r\n @Event()\r\n dsoCloseOverlay!: EventEmitter<ViewerGridCloseOverlayEvent>;\r\n\r\n /**\r\n * Emitted when user cancels filterpanel.\r\n */\r\n @Event()\r\n dsoFilterpanelCancel!: EventEmitter<ViewerGridFilterpanelCancelEvent>;\r\n\r\n /**\r\n * Emitted when user applies filterpanel options.\r\n */\r\n @Event()\r\n dsoFilterpanelApply!: EventEmitter<ViewerGridFilterpanelApplyEvent>;\r\n\r\n /**\r\n * Emitted before and after main size animation. Inspect `detail` property for more information.\r\n */\r\n @Event()\r\n dsoMainSizeChange!: EventEmitter<ViewerGridChangeSizeEvent>;\r\n\r\n @Element()\r\n host!: HTMLDsoViewerGridElement;\r\n\r\n private filterpanel: HTMLDialogElement | undefined;\r\n\r\n private filterpanelSlot: HTMLElement | null = null;\r\n\r\n private overlay: HTMLDialogElement | undefined;\r\n\r\n private overlaySlot: HTMLDivElement | null = null;\r\n\r\n @Watch(\"mainSize\")\r\n mainSizeWatcher(currentSize: MainSize, previousSize: MainSize) {\r\n this.dsoMainSizeChange.emit({\r\n stage: \"start\",\r\n previousSize,\r\n currentSize,\r\n });\r\n\r\n this.mainPanel?.addEventListener(\r\n \"transitionend\",\r\n (e) => {\r\n if (e.propertyName === \"flex-basis\") {\r\n this.dsoMainSizeChange.emit({\r\n stage: \"end\",\r\n previousSize,\r\n currentSize,\r\n });\r\n }\r\n },\r\n { once: true }\r\n );\r\n }\r\n\r\n @Watch(\"filterpanelOpen\")\r\n filterpanelOpenWatcher(open: boolean) {\r\n if (!this.filterpanelSlot) {\r\n console.warn(\"slot 'filterpanel' has not been set\");\r\n }\r\n\r\n if (open) {\r\n this.filterpanel?.showModal();\r\n } else {\r\n this.filterpanel?.close();\r\n }\r\n }\r\n\r\n @Watch(\"overlayOpen\")\r\n overlayOpenWatcher(open: boolean) {\r\n if (!this.overlaySlot) {\r\n console.warn(\"slot 'overlay' has not been set\");\r\n }\r\n\r\n if (open) {\r\n this.overlay?.showModal();\r\n } else {\r\n this.overlay?.close();\r\n }\r\n }\r\n\r\n private shrinkMain = () => {\r\n this.mainSize = this.mainSize === \"large\" ? \"medium\" : \"small\";\r\n };\r\n\r\n private expandMain = () => {\r\n this.mainSize = this.mainSize === \"small\" ? \"medium\" : \"large\";\r\n };\r\n\r\n private changeListener = (largeScreen: MediaQueryListEvent) => (this.tabView = !largeScreen.matches);\r\n\r\n connectedCallback() {\r\n window.matchMedia(this.mediaCondition).addEventListener(\"change\", this.changeListener);\r\n\r\n this.filterpanelSlot = this.host.querySelector<HTMLDivElement>(\"div[slot='filterpanel']\");\r\n\r\n this.overlaySlot = this.host.querySelector<HTMLDivElement>(\"div[slot='overlay']\");\r\n }\r\n\r\n componentDidLoad() {\r\n if (this.filterpanelOpen && this.filterpanelSlot) {\r\n this.filterpanel?.showModal();\r\n }\r\n\r\n if (this.overlayOpen && this.overlaySlot) {\r\n this.overlay?.showModal();\r\n }\r\n }\r\n\r\n componentWillLoad() {\r\n if (this.initialMainSize) {\r\n this.mainSize = this.initialMainSize;\r\n }\r\n }\r\n\r\n disconnectedCallback() {\r\n window.matchMedia(this.mediaCondition).removeEventListener(\"change\", this.changeListener);\r\n }\r\n\r\n private handleFilterpanelApply(mouseEvent: MouseEvent | Event) {\r\n this.dsoFilterpanelApply.emit({ originalEvent: mouseEvent });\r\n }\r\n\r\n private handleFilterpanelCancel(mouseEvent: MouseEvent | Event) {\r\n this.dsoFilterpanelCancel.emit({ originalEvent: mouseEvent });\r\n }\r\n\r\n render() {\r\n return (\r\n <Host {...{ [this.mainSize]: true }}>\r\n {this.tabView && (\r\n <nav class=\"dso-navbar\">\r\n <ul class=\"dso-nav dso-nav-sub\">\r\n {tabs.map((tab) => (\r\n <li key={tab} class={clsx({ \"dso-active\": this.activeTab === tab })}>\r\n <button type=\"button\" class=\"dso-tertiary\" onClick={() => (this.activeTab = tab)}>\r\n {this.tabLabelMap[tab]}\r\n </button>\r\n </li>\r\n ))}\r\n </ul>\r\n </nav>\r\n )}\r\n {(!this.tabView || (this.tabView && this.activeTab === \"main\")) && (\r\n <MainPanel\r\n ref={(element: HTMLDivElement | undefined) => (this.mainPanel = element)}\r\n tabView={this.tabView}\r\n mainSize={this.mainSize}\r\n shrinkMain={this.shrinkMain}\r\n expandMain={this.expandMain}\r\n ></MainPanel>\r\n )}\r\n <Filterpanel\r\n ref={(element) => (this.filterpanel = element)}\r\n onApply={(e) => this.handleFilterpanelApply(e)}\r\n onCancel={(e) => this.handleFilterpanelCancel(e)}\r\n ></Filterpanel>\r\n {(!this.tabView || (this.tabView && this.activeTab === \"map\")) && (\r\n <div class=\"map\">\r\n <slot name=\"map\" />\r\n </div>\r\n )}\r\n <Overlay\r\n ref={(element) => (this.overlay = element)}\r\n dsoCloseOverlay={(e) => this.dsoCloseOverlay.emit({ originalEvent: e })}\r\n ></Overlay>\r\n </Host>\r\n );\r\n }\r\n}\r\n"],"version":3}
1
+ {"file":"dso-viewer-grid.js","mappings":"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","names":[],"sources":["src/components/viewer-grid/viewer-grid.interfaces.ts","src/components/viewer-grid/components/viewer-grid-filterpanel-buttons.tsx","src/components/viewer-grid/components/filterpanel.tsx","src/components/viewer-grid/components/main-panel.tsx","src/components/viewer-grid/components/overlay.tsx","src/components/viewer-grid/viewer-grid.scss?tag=dso-viewer-grid&encapsulation=shadow","src/components/viewer-grid/viewer-grid.tsx"],"sourcesContent":["export interface ViewerGridChangeSizeEvent {\r\n /**\r\n * Indicates whether it's before or after the animation\r\n */\r\n stage: \"start\" | \"end\";\r\n previousSize: MainSize;\r\n currentSize: MainSize;\r\n}\r\n\r\nexport interface ViewerGridCloseOverlayEvent {\r\n originalEvent: MouseEvent | Event;\r\n}\r\n\r\nexport interface ViewerGridFilterpanelCancelEvent {\r\n originalEvent: MouseEvent | Event;\r\n}\r\n\r\nexport interface ViewerGridFilterpanelApplyEvent {\r\n originalEvent: MouseEvent | Event;\r\n}\r\n\r\nexport type MainSize = \"small\" | \"medium\" | \"large\";\r\n\r\nexport type LabelSizeMap = { [key in MainSize]: string };\r\n\r\nexport const tabs = [\"main\", \"map\"] as const;\r\n\r\nexport type Tabs = (typeof tabs)[number];\r\n\r\nexport type TabLabelMap = { [key in Tabs]: string };\r\n","import { FunctionalComponent, h } from \"@stencil/core\";\r\n\r\nexport interface ViewerGridFilterpanelButtonsProps {\r\n onApply: (mouseEvent: MouseEvent) => void;\r\n onCancel: (mouseEvent: MouseEvent) => void;\r\n}\r\n\r\nexport const ViewerGridFilterpanelButtons: FunctionalComponent<ViewerGridFilterpanelButtonsProps> = ({\r\n onApply,\r\n onCancel,\r\n}) => (\r\n <div class=\"filterpanel-buttons\">\r\n <button type=\"button\" class=\"cancel-button\" onClick={onCancel}>\r\n <span>Annuleren</span>\r\n </button>\r\n <button type=\"button\" class=\"apply-button\" onClick={onApply}>\r\n <span>Toepassen</span>\r\n <dso-icon icon=\"chevron-right\"></dso-icon>\r\n </button>\r\n </div>\r\n);\r\n","import { FunctionalComponent, h } from \"@stencil/core\";\r\n\r\nimport { ViewerGridFilterpanelButtons } from \"./viewer-grid-filterpanel-buttons\";\r\n\r\nexport interface ViewerGridFilterpanelProps {\r\n ref: ((element: HTMLDialogElement | undefined) => void) | undefined;\r\n onApply: (mouseEvent: MouseEvent) => void;\r\n onCancel: (event: MouseEvent | Event) => void;\r\n}\r\n\r\nexport const Filterpanel: FunctionalComponent<ViewerGridFilterpanelProps> = ({ ref, onApply, onCancel }) => (\r\n <dialog\r\n id=\"filterpanel\"\r\n class=\"filterpanel\"\r\n ref={ref}\r\n onCancel={(e) => {\r\n e.preventDefault();\r\n\r\n onCancel(e);\r\n }}\r\n >\r\n <h1>Uw keuzes</h1>\r\n <ViewerGridFilterpanelButtons onApply={onApply} onCancel={onCancel} />\r\n <slot name=\"filterpanel\" />\r\n <ViewerGridFilterpanelButtons onApply={onApply} onCancel={onCancel} />\r\n </dialog>\r\n);\r\n","import { FunctionalComponent, h } from \"@stencil/core\";\r\nimport { LabelSizeMap, MainSize } from \"../viewer-grid.interfaces\";\r\n\r\nexport interface ViewerGridMainPanelProps {\r\n ref: ((element: HTMLDivElement | undefined) => void) | undefined;\r\n tabView: boolean;\r\n mainSize: MainSize;\r\n shrinkMain: () => void;\r\n expandMain: () => void;\r\n}\r\n\r\nexport const MainPanel: FunctionalComponent<ViewerGridMainPanelProps> = ({\r\n ref,\r\n tabView,\r\n mainSize,\r\n shrinkMain,\r\n expandMain,\r\n}) => {\r\n const sizeLabelMap: LabelSizeMap = {\r\n small: \"smal\",\r\n medium: \"middel\",\r\n large: \"breed\",\r\n };\r\n\r\n return (\r\n <div class=\"dso-main-panel\" ref={ref}>\r\n {!tabView && (\r\n <div class=\"sizing-buttons\">\r\n <span class=\"sr-only\" aria-live=\"polite\" aria-atomic=\"true\">\r\n Breedte hoofdpaneel: {sizeLabelMap[mainSize]}\r\n </span>\r\n <button type=\"button\" class=\"shrink\" disabled={mainSize === \"small\"} onClick={shrinkMain}>\r\n <span class=\"sr-only\">Hoofdpaneel smaller maken</span>\r\n <dso-icon icon=\"chevron-left\"></dso-icon>\r\n </button>\r\n <button type=\"button\" class=\"expand\" disabled={mainSize === \"large\"} onClick={expandMain}>\r\n <span class=\"sr-only\">Hoofdpaneel breder maken</span>\r\n <dso-icon icon=\"chevron-right\"></dso-icon>\r\n </button>\r\n </div>\r\n )}\r\n <div class=\"main\">\r\n <slot name=\"main\" />\r\n </div>\r\n </div>\r\n );\r\n};\r\n","import { FunctionalComponent, h } from \"@stencil/core\";\r\n\r\nexport interface ViewerGridOverlayProps {\r\n ref: ((element: HTMLDialogElement | undefined) => void) | undefined;\r\n dsoCloseOverlay: (event: MouseEvent | Event) => void;\r\n}\r\n\r\nexport const Overlay: FunctionalComponent<ViewerGridOverlayProps> = ({ ref, dsoCloseOverlay }) => (\r\n <dialog\r\n class=\"overlay\"\r\n ref={ref}\r\n onCancel={(e) => {\r\n e.preventDefault();\r\n\r\n dsoCloseOverlay(e);\r\n }}\r\n >\r\n <button type=\"button\" class=\"overlay-close-button\" onClick={dsoCloseOverlay}>\r\n <dso-icon icon=\"times\"></dso-icon>\r\n <span class=\"sr-only\">sluiten</span>\r\n </button>\r\n <slot name=\"overlay\" />\r\n </dialog>\r\n);\r\n","@use \"~dso-toolkit/src/components/grid\" as css-grid;\r\n\r\n@use \"~dso-toolkit/src/utilities\";\r\n@use \"~dso-toolkit/src/variables/units\";\r\n@use \"~dso-toolkit/src/variables/colors\";\r\n@use \"~dso-toolkit/src/variables/media-query-breakpoints\";\r\n@use \"~dso-toolkit/src/variables/zindex\";\r\n@use \"~dso-toolkit/src/components/button\";\r\n@use \"~dso-toolkit/src/components/headings\";\r\n@use \"~dso-toolkit/src/components/navbar\";\r\n\r\n@use \"viewer-grid.variables\" as core-viewer-grid-variables;\r\n\r\n@include utilities.box-sizing();\r\n\r\nbutton {\r\n @include button.element();\r\n}\r\n\r\n.sr-only {\r\n @include utilities.sr-only();\r\n}\r\n\r\n.shrink,\r\n.expand,\r\n.overlay-close-button {\r\n @include button.tertiary($modifiers: false);\r\n\r\n &:hover {\r\n cursor: pointer;\r\n }\r\n\r\n &[disabled] {\r\n display: none;\r\n }\r\n}\r\n\r\n.overlay-close-button {\r\n position: absolute;\r\n top: units.$u1;\r\n right: css-grid.$grid-gutter-width * 0.5;\r\n}\r\n\r\n.dso-main-panel {\r\n background-color: colors.$wit;\r\n flex-shrink: 0;\r\n flex-grow: 0;\r\n position: relative;\r\n transition: flex-basis core-viewer-grid-variables.$transition-time ease-in,\r\n max-width core-viewer-grid-variables.$transition-time ease-in,\r\n min-width core-viewer-grid-variables.$transition-time ease-in;\r\n z-index: zindex.$viewer-grid-main-panel;\r\n\r\n .dso-filterblok-address {\r\n font-weight: bold;\r\n margin: units.$u1 0;\r\n }\r\n\r\n .main {\r\n height: 100%;\r\n padding: 0 css-grid.$grid-gutter-width * 0.5 units.$u1;\r\n }\r\n}\r\n\r\n.sizing-buttons {\r\n left: calc(100% + 1px);\r\n overflow-x: hidden;\r\n padding: 0 units.$u1 * 0.5 units.$u1 * 0.5 0;\r\n position: absolute;\r\n top: core-viewer-grid-variables.$sizing-buttons-top;\r\n transition: left core-viewer-grid-variables.$transition-time ease-in;\r\n width: core-viewer-grid-variables.$resize-button-size + units.$u1 * 0.5;\r\n z-index: zindex.$viewer-grid-sizing-buttons;\r\n\r\n button {\r\n @include button.secondary($modifiers: false, $icon-only: true);\r\n @include button.map-focus();\r\n\r\n border: 0;\r\n padding: 8px;\r\n border-radius: 0;\r\n border-bottom-right-radius: 4px;\r\n border-top-right-radius: 4px;\r\n box-shadow: 0 1px units.$u1 * 0.5 0 rgba(0, 0, 0, 0.4);\r\n flex: 0 0 100%;\r\n height: core-viewer-grid-variables.$resize-button-size;\r\n min-width: auto;\r\n width: core-viewer-grid-variables.$resize-button-size;\r\n\r\n &:hover {\r\n dso-icon {\r\n color: colors.$wit;\r\n }\r\n }\r\n }\r\n}\r\n\r\n.map {\r\n height: 100%;\r\n width: 100%;\r\n overflow: hidden;\r\n position: relative;\r\n}\r\n\r\n.filterpanel,\r\n.overlay {\r\n background-color: colors.$wit;\r\n border: 0;\r\n height: 100%;\r\n margin-block: 0;\r\n max-height: 100vh;\r\n overflow-y: auto;\r\n z-index: zindex.$viewer-grid-main-panel + 1;\r\n}\r\n\r\n.filterpanel {\r\n padding: units.$u1 css-grid.$grid-gutter-width * 0.5;\r\n left: 0;\r\n\r\n @media screen and (max-width: core-viewer-grid-variables.$filterpanel-width) {\r\n width: 100vw;\r\n\r\n &::before {\r\n display: none !important;\r\n }\r\n }\r\n\r\n h1 {\r\n @include headings.base();\r\n @include headings.margin-large();\r\n @include headings.h1();\r\n }\r\n}\r\n\r\n.overlay {\r\n padding: units.$u5 css-grid.$grid-gutter-width * 0.5 units.$u1;\r\n right: 0;\r\n width: core-viewer-grid-variables.$overlay-width;\r\n\r\n &::backdrop {\r\n background-color: rgba(0, 0, 0, 0.5);\r\n }\r\n\r\n @media screen and (max-width: core-viewer-grid-variables.$overlay-width) {\r\n width: 100vw;\r\n }\r\n}\r\n\r\n.filterpanel-buttons {\r\n text-align: right;\r\n\r\n .cancel-button {\r\n @include button.secondary($modifiers: false);\r\n @include button.small();\r\n }\r\n\r\n .apply-button {\r\n @include button.primary($modifiers: false);\r\n @include button.small();\r\n }\r\n\r\n .cancel-button + .apply-button {\r\n margin-left: units.$u2;\r\n }\r\n}\r\n\r\n@media screen and (min-width: #{media-query-breakpoints.$screen-sm-min + units.$u5}) {\r\n :host {\r\n display: flex;\r\n height: 100vh;\r\n overflow: hidden;\r\n position: relative;\r\n }\r\n\r\n :host([small]) {\r\n .dso-main-panel {\r\n flex-basis: core-viewer-grid-variables.$small;\r\n min-width: 0;\r\n max-width: core-viewer-grid-variables.$small;\r\n\r\n @media screen and (max-width: core-viewer-grid-variables.$small) {\r\n flex-basis: 100vw;\r\n max-width: 100vw;\r\n min-width: 0;\r\n transition: none;\r\n }\r\n }\r\n }\r\n\r\n :host([medium]) {\r\n .dso-main-panel {\r\n flex-basis: core-viewer-grid-variables.$medium;\r\n min-width: core-viewer-grid-variables.$small;\r\n max-width: core-viewer-grid-variables.$medium;\r\n\r\n @media screen and (max-width: core-viewer-grid-variables.$medium) {\r\n flex-basis: 100vw;\r\n max-width: 100vw;\r\n min-width: core-viewer-grid-variables.$small;\r\n transition: none;\r\n }\r\n }\r\n }\r\n\r\n :host([large]) {\r\n .dso-main-panel {\r\n flex-basis: core-viewer-grid-variables.$large;\r\n min-width: core-viewer-grid-variables.$large-min;\r\n max-width: core-viewer-grid-variables.$large-max;\r\n\r\n @media screen and (max-width: core-viewer-grid-variables.$large-min) {\r\n flex-basis: 100vw;\r\n max-width: 100vw;\r\n min-width: core-viewer-grid-variables.$large-min;\r\n transition: none;\r\n }\r\n }\r\n }\r\n\r\n .dso-main-panel {\r\n box-shadow: units.$u1 * 0.25 0 units.$u1 0 rgba(0, 0, 0, 0.4);\r\n padding-right: units.$u1;\r\n\r\n .main {\r\n overflow-y: scroll;\r\n }\r\n }\r\n\r\n .filterpanel {\r\n box-shadow: 2px 0 5px colors.$grijs-60;\r\n margin-inline: 0 auto;\r\n max-width: core-viewer-grid-variables.$filterpanel-max-width;\r\n width: calc(100vw - 40px);\r\n\r\n &::before {\r\n content: \"\";\r\n display: block;\r\n position: fixed;\r\n top: 0;\r\n bottom: 0;\r\n right: 0;\r\n left: core-viewer-grid-variables.$filterpanel-max-width;\r\n background-color: rgba(0, 0, 0, 0.5);\r\n\r\n @media screen and (max-width: #{core-viewer-grid-variables.$filterpanel-max-width + 40px}) {\r\n left: auto;\r\n width: 40px;\r\n }\r\n }\r\n }\r\n\r\n .overlay {\r\n box-shadow: -2px 0 5px colors.$grijs-60;\r\n margin-inline: auto 0;\r\n }\r\n}\r\n\r\n@media screen and (max-width: #{media-query-breakpoints.$screen-xs-max + units.$u5 + 0.99}) {\r\n @include navbar.root();\r\n\r\n .dso-navbar {\r\n padding-inline: units.$u2;\r\n }\r\n\r\n .dso-nav {\r\n @include navbar.nav-border();\r\n\r\n display: flex;\r\n gap: units.$u2;\r\n margin-block-start: 0;\r\n width: calc(100vw - units.$u4);\r\n }\r\n\r\n .dso-tertiary {\r\n @include button.tertiary($modifiers: false);\r\n\r\n font-weight: 300;\r\n }\r\n\r\n .filterpanel,\r\n .overlay {\r\n margin-inline: 0;\r\n max-width: 100vw;\r\n top: 0;\r\n width: 100vw;\r\n }\r\n}\r\n","import { h, Component, Prop, State, Host, Element, Event, EventEmitter, Watch } from \"@stencil/core\";\r\nimport clsx from \"clsx\";\r\n\r\nimport {\r\n MainSize,\r\n TabLabelMap,\r\n Tabs,\r\n ViewerGridChangeSizeEvent,\r\n ViewerGridCloseOverlayEvent,\r\n ViewerGridFilterpanelApplyEvent,\r\n ViewerGridFilterpanelCancelEvent,\r\n tabs,\r\n} from \"./viewer-grid.interfaces\";\r\nimport { Filterpanel, MainPanel, Overlay } from \"./components\";\r\n\r\nconst tabViewWidth = 768 + 40;\r\n\r\n@Component({\r\n tag: \"dso-viewer-grid\",\r\n styleUrl: \"viewer-grid.scss\",\r\n shadow: true,\r\n})\r\nexport class ViewerGrid {\r\n private mediaCondition = `(min-width: ${tabViewWidth}px)`;\r\n\r\n private tabLabelMap: TabLabelMap = {\r\n main: \"Hoofdpaneel\",\r\n map: \"Kaart\",\r\n };\r\n\r\n private mainPanel?: HTMLDivElement;\r\n\r\n /**\r\n * Set to true when filterpanel should show.\r\n */\r\n @Prop({ reflect: true })\r\n filterpanelOpen = false;\r\n\r\n /**\r\n * Set to true when overlay should show.\r\n */\r\n @Prop({ reflect: true })\r\n overlayOpen = false;\r\n\r\n /**\r\n * Size of the main content panel when component loads. Changing this attribute afterwards has no effect.\r\n *\r\n * Default size is `large`.\r\n */\r\n @Prop()\r\n initialMainSize?: MainSize;\r\n\r\n @State()\r\n mainSize: MainSize = \"large\";\r\n\r\n @State()\r\n tabView = window.innerWidth < tabViewWidth;\r\n\r\n @State()\r\n activeTab: Tabs = \"main\";\r\n\r\n /**\r\n * Emitted when user wants to close the overlay.\r\n */\r\n @Event()\r\n dsoCloseOverlay!: EventEmitter<ViewerGridCloseOverlayEvent>;\r\n\r\n /**\r\n * Emitted when user cancels filterpanel.\r\n */\r\n @Event()\r\n dsoFilterpanelCancel!: EventEmitter<ViewerGridFilterpanelCancelEvent>;\r\n\r\n /**\r\n * Emitted when user applies filterpanel options.\r\n */\r\n @Event()\r\n dsoFilterpanelApply!: EventEmitter<ViewerGridFilterpanelApplyEvent>;\r\n\r\n /**\r\n * Emitted before and after main size animation. Inspect `detail` property for more information.\r\n */\r\n @Event()\r\n dsoMainSizeChange!: EventEmitter<ViewerGridChangeSizeEvent>;\r\n\r\n @Element()\r\n host!: HTMLDsoViewerGridElement;\r\n\r\n private filterpanel: HTMLDialogElement | undefined;\r\n\r\n private filterpanelSlot: HTMLElement | null = null;\r\n\r\n private overlay: HTMLDialogElement | undefined;\r\n\r\n private overlaySlot: HTMLDivElement | null = null;\r\n\r\n @Watch(\"mainSize\")\r\n mainSizeWatcher(currentSize: MainSize, previousSize: MainSize) {\r\n this.dsoMainSizeChange.emit({\r\n stage: \"start\",\r\n previousSize,\r\n currentSize,\r\n });\r\n\r\n this.mainPanel?.addEventListener(\r\n \"transitionend\",\r\n (e) => {\r\n if (e.propertyName === \"flex-basis\") {\r\n this.dsoMainSizeChange.emit({\r\n stage: \"end\",\r\n previousSize,\r\n currentSize,\r\n });\r\n }\r\n },\r\n { once: true }\r\n );\r\n }\r\n\r\n @Watch(\"filterpanelOpen\")\r\n filterpanelOpenWatcher(open: boolean) {\r\n if (!this.filterpanelSlot) {\r\n console.warn(\"slot 'filterpanel' has not been set\");\r\n }\r\n\r\n if (open) {\r\n this.filterpanel?.showModal();\r\n } else {\r\n this.filterpanel?.close();\r\n }\r\n }\r\n\r\n @Watch(\"overlayOpen\")\r\n overlayOpenWatcher(open: boolean) {\r\n if (!this.overlaySlot) {\r\n console.warn(\"slot 'overlay' has not been set\");\r\n }\r\n\r\n if (open) {\r\n this.overlay?.showModal();\r\n } else {\r\n this.overlay?.close();\r\n }\r\n }\r\n\r\n private shrinkMain = () => {\r\n this.mainSize = this.mainSize === \"large\" ? \"medium\" : \"small\";\r\n };\r\n\r\n private expandMain = () => {\r\n this.mainSize = this.mainSize === \"small\" ? \"medium\" : \"large\";\r\n };\r\n\r\n private changeListener = (largeScreen: MediaQueryListEvent) => (this.tabView = !largeScreen.matches);\r\n\r\n connectedCallback() {\r\n window.matchMedia(this.mediaCondition).addEventListener(\"change\", this.changeListener);\r\n\r\n this.filterpanelSlot = this.host.querySelector<HTMLDivElement>(\"div[slot='filterpanel']\");\r\n\r\n this.overlaySlot = this.host.querySelector<HTMLDivElement>(\"div[slot='overlay']\");\r\n }\r\n\r\n componentDidLoad() {\r\n if (this.filterpanelOpen && this.filterpanelSlot) {\r\n this.filterpanel?.showModal();\r\n }\r\n\r\n if (this.overlayOpen && this.overlaySlot) {\r\n this.overlay?.showModal();\r\n }\r\n }\r\n\r\n componentWillLoad() {\r\n if (this.initialMainSize) {\r\n this.mainSize = this.initialMainSize;\r\n }\r\n }\r\n\r\n disconnectedCallback() {\r\n window.matchMedia(this.mediaCondition).removeEventListener(\"change\", this.changeListener);\r\n }\r\n\r\n private handleFilterpanelApply(mouseEvent: MouseEvent | Event) {\r\n this.dsoFilterpanelApply.emit({ originalEvent: mouseEvent });\r\n }\r\n\r\n private handleFilterpanelCancel(mouseEvent: MouseEvent | Event) {\r\n this.dsoFilterpanelCancel.emit({ originalEvent: mouseEvent });\r\n }\r\n\r\n render() {\r\n return (\r\n <Host {...{ [this.mainSize]: true }}>\r\n {this.tabView && (\r\n <nav class=\"dso-navbar\">\r\n <ul class=\"dso-nav dso-nav-sub\">\r\n {tabs.map((tab) => (\r\n <li key={tab} class={clsx({ \"dso-active\": this.activeTab === tab })}>\r\n <button type=\"button\" class=\"dso-tertiary\" onClick={() => (this.activeTab = tab)}>\r\n {this.tabLabelMap[tab]}\r\n </button>\r\n </li>\r\n ))}\r\n </ul>\r\n </nav>\r\n )}\r\n {(!this.tabView || (this.tabView && this.activeTab === \"main\")) && (\r\n <MainPanel\r\n ref={(element: HTMLDivElement | undefined) => (this.mainPanel = element)}\r\n tabView={this.tabView}\r\n mainSize={this.mainSize}\r\n shrinkMain={this.shrinkMain}\r\n expandMain={this.expandMain}\r\n ></MainPanel>\r\n )}\r\n <Filterpanel\r\n ref={(element) => (this.filterpanel = element)}\r\n onApply={(e) => this.handleFilterpanelApply(e)}\r\n onCancel={(e) => this.handleFilterpanelCancel(e)}\r\n ></Filterpanel>\r\n {(!this.tabView || (this.tabView && this.activeTab === \"map\")) && (\r\n <div class=\"map\">\r\n <slot name=\"map\" />\r\n </div>\r\n )}\r\n <Overlay\r\n ref={(element) => (this.overlay = element)}\r\n dsoCloseOverlay={(e) => this.dsoCloseOverlay.emit({ originalEvent: e })}\r\n ></Overlay>\r\n </Host>\r\n );\r\n }\r\n}\r\n"],"version":3}
@@ -1 +1 @@
1
- {"file":"dsot-document-component-demo.js","mappings":"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","names":[],"sources":["./src/components/document-component/document-component.demo.tsx"],"sourcesContent":["import { h, Component, ComponentInterface, Fragment, State } from \"@stencil/core\";\r\nimport { DocumentComponentOpenToggleEvent, DsoDocumentComponentCustomEvent } from \"../../components\";\r\n\r\ninterface DocumentComponent {\r\n documentTechnischId: string;\r\n type?: string;\r\n labelXml?: string;\r\n nummerXml?: string;\r\n opschrift?: string;\r\n inhoud?: string;\r\n gereserveerd?: boolean;\r\n vervallen?: boolean;\r\n bevatOntwerpInformatie?: boolean;\r\n wijzigactie?: \"voegtoe\" | \"verwijder\" | \"nieuweContainer\" | \"verwijderContainer\";\r\n _embedded?: {\r\n ontwerpTekststructuurDocumentComponenten: DocumentComponent[];\r\n };\r\n}\r\n\r\n@Component({\r\n tag: \"dsot-document-component-demo\",\r\n})\r\nexport class DocumentComponentDemo implements ComponentInterface {\r\n @State()\r\n response?: DocumentComponent;\r\n\r\n @State()\r\n open: DocumentComponent[] = [];\r\n\r\n @State()\r\n openedAnnotation: DocumentComponent[] = [];\r\n\r\n @State()\r\n filtered: DocumentComponent[] = [];\r\n\r\n @State()\r\n notApplicable: DocumentComponent[] = [];\r\n\r\n @State()\r\n activeAnnotationSelectables: DocumentComponent[] = [];\r\n\r\n private fixData(documentComponent: DocumentComponent): DocumentComponent {\r\n return {\r\n ...documentComponent,\r\n nummerXml:\r\n documentComponent.type === \"LID\" && !documentComponent.nummerXml?.startsWith(\"<?\")\r\n ? `<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><Nummer xmlns=\"https://standaarden.overheid.nl/stop/imop/tekst/\">${documentComponent.nummerXml}</Nummer>`\r\n : documentComponent.nummerXml,\r\n _embedded: documentComponent._embedded && {\r\n ontwerpTekststructuurDocumentComponenten:\r\n documentComponent._embedded.ontwerpTekststructuurDocumentComponenten.map((d) => this.fixData(d)),\r\n },\r\n };\r\n }\r\n\r\n componentDidLoad(): void {\r\n fetch(\"ozon-response.json\")\r\n .then((response) => response.json())\r\n .then((result) => {\r\n this.response = this.fixData(result);\r\n\r\n /* eslint-disable @typescript-eslint/no-non-null-asserted-optional-chain */\r\n this.filtered = [\r\n this.response?._embedded?.ontwerpTekststructuurDocumentComponenten[0]!._embedded\r\n ?.ontwerpTekststructuurDocumentComponenten[10]!._embedded?.ontwerpTekststructuurDocumentComponenten[2]!\r\n ._embedded?.ontwerpTekststructuurDocumentComponenten[0]!,\r\n this.response?._embedded?.ontwerpTekststructuurDocumentComponenten[0]!._embedded\r\n ?.ontwerpTekststructuurDocumentComponenten[10]!._embedded?.ontwerpTekststructuurDocumentComponenten[0]!,\r\n ];\r\n\r\n this.notApplicable = [\r\n this.response?._embedded?.ontwerpTekststructuurDocumentComponenten[0]!._embedded\r\n ?.ontwerpTekststructuurDocumentComponenten[4]!,\r\n this.response?._embedded?.ontwerpTekststructuurDocumentComponenten[0]!._embedded\r\n ?.ontwerpTekststructuurDocumentComponenten[4]!._embedded?.ontwerpTekststructuurDocumentComponenten[0]!,\r\n this.response?._embedded?.ontwerpTekststructuurDocumentComponenten[0]!._embedded\r\n ?.ontwerpTekststructuurDocumentComponenten[9]!._embedded?.ontwerpTekststructuurDocumentComponenten[1]!,\r\n ];\r\n /* eslint-enable @typescript-eslint/no-non-null-asserted-optional-chain */\r\n });\r\n }\r\n\r\n private handleOpenToggle(\r\n e: DsoDocumentComponentCustomEvent<DocumentComponentOpenToggleEvent>,\r\n documentComponent: DocumentComponent\r\n ) {\r\n const isOpen = this.isOpen(documentComponent);\r\n\r\n if (e.detail.open && !isOpen) {\r\n this.open = [...this.open, documentComponent];\r\n } else if (!e.detail.open && isOpen) {\r\n this.open = this.open.filter((d) => d !== documentComponent);\r\n }\r\n }\r\n\r\n private handleAnnotationToggle(documentComponent: DocumentComponent) {\r\n this.openedAnnotation = this.isOpenedAnnotation(documentComponent)\r\n ? this.openedAnnotation.filter((d) => d !== documentComponent)\r\n : [...this.openedAnnotation, documentComponent];\r\n\r\n if (!this.isOpen(documentComponent)) {\r\n this.open = [...this.open, documentComponent];\r\n }\r\n }\r\n\r\n private handleSelectableChange(documentComponent: DocumentComponent) {\r\n this.activeAnnotationSelectables = this.isCheckedSlideToggle(documentComponent)\r\n ? this.activeAnnotationSelectables.filter((d) => d !== documentComponent)\r\n : [...this.activeAnnotationSelectables, documentComponent];\r\n }\r\n\r\n private isCheckedSlideToggle(documentComponent: DocumentComponent) {\r\n return this.activeAnnotationSelectables.includes(documentComponent);\r\n }\r\n\r\n private hasFilteredChildren(documentComponent: DocumentComponent): boolean {\r\n return (\r\n this.filtered.includes(documentComponent) ||\r\n (documentComponent._embedded?.ontwerpTekststructuurDocumentComponenten.some((d) => this.hasFilteredChildren(d)) ??\r\n false)\r\n );\r\n }\r\n\r\n private isOpen(documentComponent: DocumentComponent): boolean {\r\n return documentComponent.type === \"LID\" || this.open.includes(documentComponent);\r\n }\r\n\r\n private isOpenedAnnotation(documentComponent: DocumentComponent): boolean {\r\n return this.openedAnnotation.includes(documentComponent);\r\n }\r\n\r\n private isFiltered(documentComponent: DocumentComponent): boolean {\r\n return this.filtered.includes(documentComponent);\r\n }\r\n\r\n private isNotApplicable(documentComponent: DocumentComponent): boolean {\r\n return this.notApplicable.includes(documentComponent);\r\n }\r\n\r\n private hasNestedDraft(documentComponent: DocumentComponent): boolean {\r\n return (\r\n documentComponent._embedded?.ontwerpTekststructuurDocumentComponenten.some(\r\n (d) => !!d.bevatOntwerpInformatie || this.hasNestedDraft(d)\r\n ) ?? false\r\n );\r\n }\r\n\r\n private showContent(documentComponent: DocumentComponent): boolean {\r\n return (\r\n this.isOpen(documentComponent) &&\r\n !!(documentComponent._embedded?.ontwerpTekststructuurDocumentComponenten.length || documentComponent.inhoud)\r\n );\r\n }\r\n\r\n private DocumentComponent = ({ path }: DocumentComponentProps) => {\r\n const documentComponent = path.at(-1);\r\n\r\n const { DocumentComponent } = this;\r\n\r\n return (\r\n <ul>\r\n {documentComponent?._embedded?.ontwerpTekststructuurDocumentComponenten.map((d, i) => (\r\n <li key={d.documentTechnischId}>\r\n <dso-document-component\r\n annotated={i % 3 === 2}\r\n bevatOntwerpInformatie={!!d.bevatOntwerpInformatie}\r\n filtered={this.isOpen(d) ? this.isFiltered(d) : this.hasFilteredChildren(d)}\r\n genesteOntwerpInformatie={this.hasNestedDraft(d)}\r\n gereserveerd={d.gereserveerd}\r\n heading=\"h2\"\r\n inhoud={d.inhoud}\r\n label={d.labelXml}\r\n openAnnotation={this.isOpenedAnnotation(d)}\r\n notApplicable={this.isNotApplicable(d) || path.some((p) => this.isNotApplicable(p))}\r\n nummer={d.nummerXml}\r\n onDsoAnnotationToggle={() => this.handleAnnotationToggle(d)}\r\n onDsoOpenToggle={(e) => this.handleOpenToggle(e, d)}\r\n open={this.isOpen(d)}\r\n opschrift={d.opschrift}\r\n type={d.type}\r\n vervallen={d.vervallen}\r\n wijzigactie={d.wijzigactie}\r\n >\r\n {this.isOpenedAnnotation(d) && (\r\n <dso-annotation-output\r\n slot=\"annotation\"\r\n open\r\n identifier=\"test\"\r\n onDsoClose={() => this.handleAnnotationToggle(d)}\r\n >\r\n <span slot=\"title\">Annotaties</span>\r\n <dso-slide-toggle\r\n checked={this.isCheckedSlideToggle(d)}\r\n onDsoActiveChange={() => this.handleSelectableChange(d)}\r\n >\r\n Delfzijl\r\n </dso-slide-toggle>\r\n </dso-annotation-output>\r\n )}\r\n {this.showContent(d) && <DocumentComponent path={[...path, d]} />}\r\n </dso-document-component>\r\n </li>\r\n ))}\r\n </ul>\r\n );\r\n };\r\n\r\n render() {\r\n const { DocumentComponent } = this;\r\n\r\n return (\r\n <div style={{ margin: \"0 8px\", borderLeft: \"1px dashed pink\", borderRight: \"1px dashed pink\" }}>\r\n <dso-responsive-element class=\"dso-document-components\">\r\n {this.response?._embedded?.ontwerpTekststructuurDocumentComponenten.map((d) => (\r\n <>\r\n <DocumentComponent path={[d]} />\r\n <hr />\r\n </>\r\n ))}\r\n </dso-responsive-element>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\ninterface DocumentComponentProps {\r\n path: DocumentComponent[];\r\n}\r\n"],"version":3}
1
+ {"file":"dsot-document-component-demo.js","mappings":"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","names":[],"sources":["src/components/document-component/document-component.demo.tsx"],"sourcesContent":["import { h, Component, ComponentInterface, Fragment, State } from \"@stencil/core\";\r\nimport { DocumentComponentOpenToggleEvent, DsoDocumentComponentCustomEvent } from \"../../components\";\r\n\r\ninterface DocumentComponent {\r\n documentTechnischId: string;\r\n type?: string;\r\n labelXml?: string;\r\n nummerXml?: string;\r\n opschrift?: string;\r\n inhoud?: string;\r\n gereserveerd?: boolean;\r\n vervallen?: boolean;\r\n bevatOntwerpInformatie?: boolean;\r\n wijzigactie?: \"voegtoe\" | \"verwijder\" | \"nieuweContainer\" | \"verwijderContainer\";\r\n _embedded?: {\r\n ontwerpTekststructuurDocumentComponenten: DocumentComponent[];\r\n };\r\n}\r\n\r\n@Component({\r\n tag: \"dsot-document-component-demo\",\r\n})\r\nexport class DocumentComponentDemo implements ComponentInterface {\r\n @State()\r\n response?: DocumentComponent;\r\n\r\n @State()\r\n open: DocumentComponent[] = [];\r\n\r\n @State()\r\n openedAnnotation: DocumentComponent[] = [];\r\n\r\n @State()\r\n filtered: DocumentComponent[] = [];\r\n\r\n @State()\r\n notApplicable: DocumentComponent[] = [];\r\n\r\n @State()\r\n activeAnnotationSelectables: DocumentComponent[] = [];\r\n\r\n private fixData(documentComponent: DocumentComponent): DocumentComponent {\r\n return {\r\n ...documentComponent,\r\n nummerXml:\r\n documentComponent.type === \"LID\" && !documentComponent.nummerXml?.startsWith(\"<?\")\r\n ? `<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><Nummer xmlns=\"https://standaarden.overheid.nl/stop/imop/tekst/\">${documentComponent.nummerXml}</Nummer>`\r\n : documentComponent.nummerXml,\r\n _embedded: documentComponent._embedded && {\r\n ontwerpTekststructuurDocumentComponenten:\r\n documentComponent._embedded.ontwerpTekststructuurDocumentComponenten.map((d) => this.fixData(d)),\r\n },\r\n };\r\n }\r\n\r\n componentDidLoad(): void {\r\n fetch(\"ozon-response.json\")\r\n .then((response) => response.json())\r\n .then((result) => {\r\n this.response = this.fixData(result);\r\n\r\n /* eslint-disable @typescript-eslint/no-non-null-asserted-optional-chain */\r\n this.filtered = [\r\n this.response?._embedded?.ontwerpTekststructuurDocumentComponenten[0]!._embedded\r\n ?.ontwerpTekststructuurDocumentComponenten[10]!._embedded?.ontwerpTekststructuurDocumentComponenten[2]!\r\n ._embedded?.ontwerpTekststructuurDocumentComponenten[0]!,\r\n this.response?._embedded?.ontwerpTekststructuurDocumentComponenten[0]!._embedded\r\n ?.ontwerpTekststructuurDocumentComponenten[10]!._embedded?.ontwerpTekststructuurDocumentComponenten[0]!,\r\n ];\r\n\r\n this.notApplicable = [\r\n this.response?._embedded?.ontwerpTekststructuurDocumentComponenten[0]!._embedded\r\n ?.ontwerpTekststructuurDocumentComponenten[4]!,\r\n this.response?._embedded?.ontwerpTekststructuurDocumentComponenten[0]!._embedded\r\n ?.ontwerpTekststructuurDocumentComponenten[4]!._embedded?.ontwerpTekststructuurDocumentComponenten[0]!,\r\n this.response?._embedded?.ontwerpTekststructuurDocumentComponenten[0]!._embedded\r\n ?.ontwerpTekststructuurDocumentComponenten[9]!._embedded?.ontwerpTekststructuurDocumentComponenten[1]!,\r\n ];\r\n /* eslint-enable @typescript-eslint/no-non-null-asserted-optional-chain */\r\n });\r\n }\r\n\r\n private handleOpenToggle(\r\n e: DsoDocumentComponentCustomEvent<DocumentComponentOpenToggleEvent>,\r\n documentComponent: DocumentComponent\r\n ) {\r\n const isOpen = this.isOpen(documentComponent);\r\n\r\n if (e.detail.open && !isOpen) {\r\n this.open = [...this.open, documentComponent];\r\n } else if (!e.detail.open && isOpen) {\r\n this.open = this.open.filter((d) => d !== documentComponent);\r\n }\r\n }\r\n\r\n private handleAnnotationToggle(documentComponent: DocumentComponent) {\r\n this.openedAnnotation = this.isOpenedAnnotation(documentComponent)\r\n ? this.openedAnnotation.filter((d) => d !== documentComponent)\r\n : [...this.openedAnnotation, documentComponent];\r\n\r\n if (!this.isOpen(documentComponent)) {\r\n this.open = [...this.open, documentComponent];\r\n }\r\n }\r\n\r\n private handleSelectableChange(documentComponent: DocumentComponent) {\r\n this.activeAnnotationSelectables = this.isCheckedSlideToggle(documentComponent)\r\n ? this.activeAnnotationSelectables.filter((d) => d !== documentComponent)\r\n : [...this.activeAnnotationSelectables, documentComponent];\r\n }\r\n\r\n private isCheckedSlideToggle(documentComponent: DocumentComponent) {\r\n return this.activeAnnotationSelectables.includes(documentComponent);\r\n }\r\n\r\n private hasFilteredChildren(documentComponent: DocumentComponent): boolean {\r\n return (\r\n this.filtered.includes(documentComponent) ||\r\n (documentComponent._embedded?.ontwerpTekststructuurDocumentComponenten.some((d) => this.hasFilteredChildren(d)) ??\r\n false)\r\n );\r\n }\r\n\r\n private isOpen(documentComponent: DocumentComponent): boolean {\r\n return documentComponent.type === \"LID\" || this.open.includes(documentComponent);\r\n }\r\n\r\n private isOpenedAnnotation(documentComponent: DocumentComponent): boolean {\r\n return this.openedAnnotation.includes(documentComponent);\r\n }\r\n\r\n private isFiltered(documentComponent: DocumentComponent): boolean {\r\n return this.filtered.includes(documentComponent);\r\n }\r\n\r\n private isNotApplicable(documentComponent: DocumentComponent): boolean {\r\n return this.notApplicable.includes(documentComponent);\r\n }\r\n\r\n private hasNestedDraft(documentComponent: DocumentComponent): boolean {\r\n return (\r\n documentComponent._embedded?.ontwerpTekststructuurDocumentComponenten.some(\r\n (d) => !!d.bevatOntwerpInformatie || this.hasNestedDraft(d)\r\n ) ?? false\r\n );\r\n }\r\n\r\n private showContent(documentComponent: DocumentComponent): boolean {\r\n return (\r\n this.isOpen(documentComponent) &&\r\n !!(documentComponent._embedded?.ontwerpTekststructuurDocumentComponenten.length || documentComponent.inhoud)\r\n );\r\n }\r\n\r\n private DocumentComponent = ({ path }: DocumentComponentProps) => {\r\n const documentComponent = path.at(-1);\r\n\r\n const { DocumentComponent } = this;\r\n\r\n return (\r\n <ul>\r\n {documentComponent?._embedded?.ontwerpTekststructuurDocumentComponenten.map((d, i) => (\r\n <li key={d.documentTechnischId}>\r\n <dso-document-component\r\n annotated={i % 3 === 2}\r\n bevatOntwerpInformatie={!!d.bevatOntwerpInformatie}\r\n filtered={this.isOpen(d) ? this.isFiltered(d) : this.hasFilteredChildren(d)}\r\n genesteOntwerpInformatie={this.hasNestedDraft(d)}\r\n gereserveerd={d.gereserveerd}\r\n heading=\"h2\"\r\n inhoud={d.inhoud}\r\n label={d.labelXml}\r\n openAnnotation={this.isOpenedAnnotation(d)}\r\n notApplicable={this.isNotApplicable(d) || path.some((p) => this.isNotApplicable(p))}\r\n nummer={d.nummerXml}\r\n onDsoAnnotationToggle={() => this.handleAnnotationToggle(d)}\r\n onDsoOpenToggle={(e) => this.handleOpenToggle(e, d)}\r\n open={this.isOpen(d)}\r\n opschrift={d.opschrift}\r\n type={d.type}\r\n vervallen={d.vervallen}\r\n wijzigactie={d.wijzigactie}\r\n >\r\n {this.isOpenedAnnotation(d) && (\r\n <dso-annotation-output\r\n slot=\"annotation\"\r\n open\r\n identifier=\"test\"\r\n onDsoClose={() => this.handleAnnotationToggle(d)}\r\n >\r\n <span slot=\"title\">Annotaties</span>\r\n <dso-slide-toggle\r\n checked={this.isCheckedSlideToggle(d)}\r\n onDsoActiveChange={() => this.handleSelectableChange(d)}\r\n >\r\n Delfzijl\r\n </dso-slide-toggle>\r\n </dso-annotation-output>\r\n )}\r\n {this.showContent(d) && <DocumentComponent path={[...path, d]} />}\r\n </dso-document-component>\r\n </li>\r\n ))}\r\n </ul>\r\n );\r\n };\r\n\r\n render() {\r\n const { DocumentComponent } = this;\r\n\r\n return (\r\n <div style={{ margin: \"0 8px\", borderLeft: \"1px dashed pink\", borderRight: \"1px dashed pink\" }}>\r\n <dso-responsive-element class=\"dso-document-components\">\r\n {this.response?._embedded?.ontwerpTekststructuurDocumentComponenten.map((d) => (\r\n <>\r\n <DocumentComponent path={[d]} />\r\n <hr />\r\n </>\r\n ))}\r\n </dso-responsive-element>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\ninterface DocumentComponentProps {\r\n path: DocumentComponent[];\r\n}\r\n"],"version":3}
@@ -1,5 +1,5 @@
1
1
  import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
2
- import { c as clsx } from './clsx.m.js';
2
+ import { c as clsx } from './clsx.js';
3
3
  import { d as debounce_1 } from './index2.js';
4
4
 
5
5
  /*