@valtimo/components 0.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (611) hide show
  1. package/assets/css/carbon.scss +141 -0
  2. package/assets/css/color.scss +28 -0
  3. package/assets/css/compatibility.scss +800 -0
  4. package/assets/css/design-tokens.css +408 -0
  5. package/assets/css/formio-carbon.scss +7806 -0
  6. package/assets/css/ng-multiselect-dropdown.theme.scss +224 -0
  7. package/assets/fonts/IBMPlexMono-Regular.eot +0 -0
  8. package/assets/fonts/IBMPlexMono-Regular.otf +0 -0
  9. package/assets/fonts/IBMPlexMono-Regular.ttf +0 -0
  10. package/assets/fonts/IBMPlexMono-Regular.woff +0 -0
  11. package/assets/fonts/IBMPlexMono-Regular.woff2 +0 -0
  12. package/assets/fonts/IBMPlexSans-Regular.eot +0 -0
  13. package/assets/fonts/IBMPlexSans-Regular.otf +0 -0
  14. package/assets/fonts/IBMPlexSans-Regular.ttf +0 -0
  15. package/assets/fonts/IBMPlexSans-Regular.woff +0 -0
  16. package/assets/fonts/IBMPlexSans-Regular.woff2 +0 -0
  17. package/assets/fonts/IBMPlexSerif-Regular.eot +0 -0
  18. package/assets/fonts/IBMPlexSerif-Regular.otf +0 -0
  19. package/assets/fonts/IBMPlexSerif-Regular.ttf +0 -0
  20. package/assets/fonts/IBMPlexSerif-Regular.woff +0 -0
  21. package/assets/fonts/IBMPlexSerif-Regular.woff2 +0 -0
  22. package/assets/fonts/glyphicons-halflings-regular.eot +0 -0
  23. package/assets/fonts/glyphicons-halflings-regular.svg +288 -0
  24. package/assets/fonts/glyphicons-halflings-regular.ttf +0 -0
  25. package/assets/fonts/glyphicons-halflings-regular.woff +0 -0
  26. package/assets/fonts/glyphicons-halflings-regular.woff2 +0 -0
  27. package/fesm2022/valtimo-components.mjs +17271 -0
  28. package/fesm2022/valtimo-components.mjs.map +1 -0
  29. package/index.d.ts +6 -0
  30. package/lib/components/alert/alert.component.d.ts +24 -0
  31. package/lib/components/alert/alert.component.d.ts.map +1 -0
  32. package/lib/components/alert/alert.module.d.ts +9 -0
  33. package/lib/components/alert/alert.module.d.ts.map +1 -0
  34. package/lib/components/alert/alert.service.d.ts +25 -0
  35. package/lib/components/alert/alert.service.d.ts.map +1 -0
  36. package/lib/components/auto-key-input/auto-key-input.component.d.ts +50 -0
  37. package/lib/components/auto-key-input/auto-key-input.component.d.ts.map +1 -0
  38. package/lib/components/bpmn-js-diagram/bpmn-js-diagram.component.d.ts +31 -0
  39. package/lib/components/bpmn-js-diagram/bpmn-js-diagram.component.d.ts.map +1 -0
  40. package/lib/components/bpmn-js-diagram/bpmn-js-diagram.module.d.ts +9 -0
  41. package/lib/components/bpmn-js-diagram/bpmn-js-diagram.module.d.ts.map +1 -0
  42. package/lib/components/breadcrumb-navigation/breadcrumb-navigation.component.d.ts +21 -0
  43. package/lib/components/breadcrumb-navigation/breadcrumb-navigation.component.d.ts.map +1 -0
  44. package/lib/components/breadcrumb-navigation/breadcrumb-navigation.module.d.ts +12 -0
  45. package/lib/components/breadcrumb-navigation/breadcrumb-navigation.module.d.ts.map +1 -0
  46. package/lib/components/breadcrumb-navigation/breadcrumb.service.d.ts +32 -0
  47. package/lib/components/breadcrumb-navigation/breadcrumb.service.d.ts.map +1 -0
  48. package/lib/components/camunda/form/camunda-form.components.d.ts +13 -0
  49. package/lib/components/camunda/form/camunda-form.components.d.ts.map +1 -0
  50. package/lib/components/camunda/form/camunda-form.module.d.ts +11 -0
  51. package/lib/components/camunda/form/camunda-form.module.d.ts.map +1 -0
  52. package/lib/components/camunda/form/custom/camunda-custom-form.component.d.ts +12 -0
  53. package/lib/components/camunda/form/custom/camunda-custom-form.component.d.ts.map +1 -0
  54. package/lib/components/camunda/form/custom/camunda-custom-form.module.d.ts +9 -0
  55. package/lib/components/camunda/form/custom/camunda-custom-form.module.d.ts.map +1 -0
  56. package/lib/components/camunda/form/generated/camunda-generated-form.component.d.ts +23 -0
  57. package/lib/components/camunda/form/generated/camunda-generated-form.component.d.ts.map +1 -0
  58. package/lib/components/camunda/form/generated/camunda-generated-form.module.d.ts +19 -0
  59. package/lib/components/camunda/form/generated/camunda-generated-form.module.d.ts.map +1 -0
  60. package/lib/components/camunda/form/generated/formfield/boolean/camunda-boolean-formfield.component.d.ts +11 -0
  61. package/lib/components/camunda/form/generated/formfield/boolean/camunda-boolean-formfield.component.d.ts.map +1 -0
  62. package/lib/components/camunda/form/generated/formfield/camunda-formfield-generator.directive.d.ts +17 -0
  63. package/lib/components/camunda/form/generated/formfield/camunda-formfield-generator.directive.d.ts.map +1 -0
  64. package/lib/components/camunda/form/generated/formfield/camunda-formfield.service.d.ts +11 -0
  65. package/lib/components/camunda/form/generated/formfield/camunda-formfield.service.d.ts.map +1 -0
  66. package/lib/components/camunda/form/generated/formfield/choicefield/camunda-choicefield-formfield.component.d.ts +16 -0
  67. package/lib/components/camunda/form/generated/formfield/choicefield/camunda-choicefield-formfield.component.d.ts.map +1 -0
  68. package/lib/components/camunda/form/generated/formfield/date/camunda-date-formfield.component.d.ts +18 -0
  69. package/lib/components/camunda/form/generated/formfield/date/camunda-date-formfield.component.d.ts.map +1 -0
  70. package/lib/components/camunda/form/generated/formfield/enum/camunda-enum-formfield.component.d.ts +14 -0
  71. package/lib/components/camunda/form/generated/formfield/enum/camunda-enum-formfield.component.d.ts.map +1 -0
  72. package/lib/components/camunda/form/generated/formfield/formfield.model.d.ts +21 -0
  73. package/lib/components/camunda/form/generated/formfield/formfield.model.d.ts.map +1 -0
  74. package/lib/components/camunda/form/generated/formfield/long/camunda-long-formfield.component.d.ts +11 -0
  75. package/lib/components/camunda/form/generated/formfield/long/camunda-long-formfield.component.d.ts.map +1 -0
  76. package/lib/components/camunda/form/generated/formfield/string/camunda-string-formfield.component.d.ts +11 -0
  77. package/lib/components/camunda/form/generated/formfield/string/camunda-string-formfield.component.d.ts.map +1 -0
  78. package/lib/components/camunda/form/generated/formfield/textarea/camunda-textarea-formfield.component.d.ts +11 -0
  79. package/lib/components/camunda/form/generated/formfield/textarea/camunda-textarea-formfield.component.d.ts.map +1 -0
  80. package/lib/components/camunda/form/generated/formfield/validation/camunda-formfield-validation.component.d.ts +14 -0
  81. package/lib/components/camunda/form/generated/formfield/validation/camunda-formfield-validation.component.d.ts.map +1 -0
  82. package/lib/components/camunda/form/generated/formfield/validation/date.validators.d.ts +4 -0
  83. package/lib/components/camunda/form/generated/formfield/validation/date.validators.d.ts.map +1 -0
  84. package/lib/components/carbon-list/CarbonListFilterPipe.directive.d.ts +9 -0
  85. package/lib/components/carbon-list/CarbonListFilterPipe.directive.d.ts.map +1 -0
  86. package/lib/components/carbon-list/carbon-list.component.d.ts +144 -0
  87. package/lib/components/carbon-list/carbon-list.component.d.ts.map +1 -0
  88. package/lib/components/carbon-list/carbon-list.module.d.ts +18 -0
  89. package/lib/components/carbon-list/carbon-list.module.d.ts.map +1 -0
  90. package/lib/components/carbon-list/no-results/carbon-no-results.component.d.ts +21 -0
  91. package/lib/components/carbon-list/no-results/carbon-no-results.component.d.ts.map +1 -0
  92. package/lib/components/carbon-list/services/carbon-list-drag-and-drop.service.d.ts +40 -0
  93. package/lib/components/carbon-list/services/carbon-list-drag-and-drop.service.d.ts.map +1 -0
  94. package/lib/components/carbon-list/services/index.d.ts +2 -0
  95. package/lib/components/carbon-list/services/index.d.ts.map +1 -0
  96. package/lib/components/carbon-list/tags-modal/tags-modal.component.d.ts +14 -0
  97. package/lib/components/carbon-list/tags-modal/tags-modal.component.d.ts.map +1 -0
  98. package/lib/components/case-tags-selector/case-tags-selector.component.d.ts +20 -0
  99. package/lib/components/case-tags-selector/case-tags-selector.component.d.ts.map +1 -0
  100. package/lib/components/confirmation-modal/confirmation-modal.component.d.ts +37 -0
  101. package/lib/components/confirmation-modal/confirmation-modal.component.d.ts.map +1 -0
  102. package/lib/components/confirmation-modal/confirmation-modal.module.d.ts +12 -0
  103. package/lib/components/confirmation-modal/confirmation-modal.module.d.ts.map +1 -0
  104. package/lib/components/data-list/data-list.component.d.ts +8 -0
  105. package/lib/components/data-list/data-list.component.d.ts.map +1 -0
  106. package/lib/components/data-list/data-list.module.d.ts +9 -0
  107. package/lib/components/data-list/data-list.module.d.ts.map +1 -0
  108. package/lib/components/date-picker/date-picker.component.d.ts +46 -0
  109. package/lib/components/date-picker/date-picker.component.d.ts.map +1 -0
  110. package/lib/components/date-picker/date-picker.module.d.ts +16 -0
  111. package/lib/components/date-picker/date-picker.module.d.ts.map +1 -0
  112. package/lib/components/date-time-picker/date-time-picker.component.d.ts +40 -0
  113. package/lib/components/date-time-picker/date-time-picker.component.d.ts.map +1 -0
  114. package/lib/components/dropzone/dropzone.component.d.ts +46 -0
  115. package/lib/components/dropzone/dropzone.component.d.ts.map +1 -0
  116. package/lib/components/dropzone/dropzone.module.d.ts +13 -0
  117. package/lib/components/dropzone/dropzone.module.d.ts.map +1 -0
  118. package/lib/components/editor/editor.component.d.ts +44 -0
  119. package/lib/components/editor/editor.component.d.ts.map +1 -0
  120. package/lib/components/editor/editor.module.d.ts +10 -0
  121. package/lib/components/editor/editor.module.d.ts.map +1 -0
  122. package/lib/components/editor/editor.service.d.ts +21 -0
  123. package/lib/components/editor/editor.service.d.ts.map +1 -0
  124. package/lib/components/expansion-panel/expansion-panel.component.d.ts +10 -0
  125. package/lib/components/expansion-panel/expansion-panel.component.d.ts.map +1 -0
  126. package/lib/components/expansion-panel/expansion-panel.module.d.ts +11 -0
  127. package/lib/components/expansion-panel/expansion-panel.module.d.ts.map +1 -0
  128. package/lib/components/field-auto-focus/field-auto-focus.directive.d.ts +10 -0
  129. package/lib/components/field-auto-focus/field-auto-focus.directive.d.ts.map +1 -0
  130. package/lib/components/field-auto-focus/field-auto-focus.module.d.ts +9 -0
  131. package/lib/components/field-auto-focus/field-auto-focus.module.d.ts.map +1 -0
  132. package/lib/components/file-size/file-size.module.d.ts +9 -0
  133. package/lib/components/file-size/file-size.module.d.ts.map +1 -0
  134. package/lib/components/file-size/file-size.pipe.d.ts +9 -0
  135. package/lib/components/file-size/file-size.pipe.d.ts.map +1 -0
  136. package/lib/components/filter-sidebar/filter-sidebar.component.d.ts +12 -0
  137. package/lib/components/filter-sidebar/filter-sidebar.component.d.ts.map +1 -0
  138. package/lib/components/filter-sidebar/filter-sidebar.module.d.ts +9 -0
  139. package/lib/components/filter-sidebar/filter-sidebar.module.d.ts.map +1 -0
  140. package/lib/components/form/form.component.d.ts +33 -0
  141. package/lib/components/form/form.component.d.ts.map +1 -0
  142. package/lib/components/form/form.module.d.ts +9 -0
  143. package/lib/components/form/form.module.d.ts.map +1 -0
  144. package/lib/components/form-io/components/form-io/form-io.component.d.ts +74 -0
  145. package/lib/components/form-io/components/form-io/form-io.component.d.ts.map +1 -0
  146. package/lib/components/form-io/components/form-io-builder/form-io-builder.component.d.ts +36 -0
  147. package/lib/components/form-io/components/form-io-builder/form-io-builder.component.d.ts.map +1 -0
  148. package/lib/components/form-io/components/form-io-builder/form-io-builder.utils.d.ts +9 -0
  149. package/lib/components/form-io/components/form-io-builder/form-io-builder.utils.d.ts.map +1 -0
  150. package/lib/components/form-io/components/form-io-currency/currency-edit-form.d.ts +4 -0
  151. package/lib/components/form-io/components/form-io-currency/currency-edit-form.d.ts.map +1 -0
  152. package/lib/components/form-io/components/form-io-currency/currency.component.d.ts +31 -0
  153. package/lib/components/form-io/components/form-io-currency/currency.component.d.ts.map +1 -0
  154. package/lib/components/form-io/components/form-io-currency/currency.formio.d.ts +3 -0
  155. package/lib/components/form-io/components/form-io-currency/currency.formio.d.ts.map +1 -0
  156. package/lib/components/form-io/components/form-io-current-user/form-io-current-user-edit-form.d.ts +44 -0
  157. package/lib/components/form-io/components/form-io-current-user/form-io-current-user-edit-form.d.ts.map +1 -0
  158. package/lib/components/form-io/components/form-io-current-user/form-io-current-user.component.d.ts +14 -0
  159. package/lib/components/form-io/components/form-io-current-user/form-io-current-user.component.d.ts.map +1 -0
  160. package/lib/components/form-io/components/form-io-current-user/form-io-current-user.formio.d.ts +3 -0
  161. package/lib/components/form-io/components/form-io-current-user/form-io-current-user.formio.d.ts.map +1 -0
  162. package/lib/components/form-io/components/form-io-dummy/dummy.component.d.ts +12 -0
  163. package/lib/components/form-io/components/form-io-dummy/dummy.component.d.ts.map +1 -0
  164. package/lib/components/form-io/components/form-io-dummy/dummy.formio.d.ts +3 -0
  165. package/lib/components/form-io/components/form-io-dummy/dummy.formio.d.ts.map +1 -0
  166. package/lib/components/form-io/components/form-io-iban/iban.component.d.ts +23 -0
  167. package/lib/components/form-io/components/form-io-iban/iban.component.d.ts.map +1 -0
  168. package/lib/components/form-io/components/form-io-iban/iban.formio.d.ts +3 -0
  169. package/lib/components/form-io/components/form-io-iban/iban.formio.d.ts.map +1 -0
  170. package/lib/components/form-io/components/form-io-iban/iban.validators.d.ts +12 -0
  171. package/lib/components/form-io/components/form-io-iban/iban.validators.d.ts.map +1 -0
  172. package/lib/components/form-io/components/form-io-resource-selector/form-io-resource-selector.formio.d.ts +3 -0
  173. package/lib/components/form-io/components/form-io-resource-selector/form-io-resource-selector.formio.d.ts.map +1 -0
  174. package/lib/components/form-io/components/form-io-uploader/form-io-uploader-edit-form.d.ts +62 -0
  175. package/lib/components/form-io/components/form-io-uploader/form-io-uploader-edit-form.d.ts.map +1 -0
  176. package/lib/components/form-io/components/form-io-uploader/form-io-uploader.component.d.ts +32 -0
  177. package/lib/components/form-io/components/form-io-uploader/form-io-uploader.component.d.ts.map +1 -0
  178. package/lib/components/form-io/components/form-io-uploader/form-io-uploader.formio.d.ts +4 -0
  179. package/lib/components/form-io/components/form-io-uploader/form-io-uploader.formio.d.ts.map +1 -0
  180. package/lib/components/form-io/components/formio-value-resolver-selector/formio-value-resolver-selector-edit-form.d.ts +7 -0
  181. package/lib/components/form-io/components/formio-value-resolver-selector/formio-value-resolver-selector-edit-form.d.ts.map +1 -0
  182. package/lib/components/form-io/components/formio-value-resolver-selector/formio-value-resolver-selector.component.d.ts +20 -0
  183. package/lib/components/form-io/components/formio-value-resolver-selector/formio-value-resolver-selector.component.d.ts.map +1 -0
  184. package/lib/components/form-io/components/formio-value-resolver-selector/formio-value-resolver-selector.formio.d.ts +3 -0
  185. package/lib/components/form-io/components/formio-value-resolver-selector/formio-value-resolver-selector.formio.d.ts.map +1 -0
  186. package/lib/components/form-io/form-io.module.d.ts +25 -0
  187. package/lib/components/form-io/form-io.module.d.ts.map +1 -0
  188. package/lib/components/form-io/formio-config.d.ts +9 -0
  189. package/lib/components/form-io/formio-config.d.ts.map +1 -0
  190. package/lib/components/form-io/services/form-io-dom.service.d.ts +10 -0
  191. package/lib/components/form-io/services/form-io-dom.service.d.ts.map +1 -0
  192. package/lib/components/form-io/services/form-io-local-storage.service.d.ts +15 -0
  193. package/lib/components/form-io/services/form-io-local-storage.service.d.ts.map +1 -0
  194. package/lib/components/form-io/services/form-io-state.service.d.ts +22 -0
  195. package/lib/components/form-io/services/form-io-state.service.d.ts.map +1 -0
  196. package/lib/components/form-io/services/form-io-translation.service.d.ts +11 -0
  197. package/lib/components/form-io/services/form-io-translation.service.d.ts.map +1 -0
  198. package/lib/components/form-io/services/form-io.tags.service.d.ts +11 -0
  199. package/lib/components/form-io/services/form-io.tags.service.d.ts.map +1 -0
  200. package/lib/components/form-io/services/index.d.ts +6 -0
  201. package/lib/components/form-io/services/index.d.ts.map +1 -0
  202. package/lib/components/input/input.component.d.ts +63 -0
  203. package/lib/components/input/input.component.d.ts.map +1 -0
  204. package/lib/components/input/input.module.d.ts +14 -0
  205. package/lib/components/input/input.module.d.ts.map +1 -0
  206. package/lib/components/input-label/input-label.component.d.ts +25 -0
  207. package/lib/components/input-label/input-label.component.d.ts.map +1 -0
  208. package/lib/components/input-label/input-label.module.d.ts +14 -0
  209. package/lib/components/input-label/input-label.module.d.ts.map +1 -0
  210. package/lib/components/json-editor/json-editor.component.d.ts +45 -0
  211. package/lib/components/json-editor/json-editor.component.d.ts.map +1 -0
  212. package/lib/components/left-sidebar/left-sidebar.component.d.ts +42 -0
  213. package/lib/components/left-sidebar/left-sidebar.component.d.ts.map +1 -0
  214. package/lib/components/left-sidebar/left-sidebar.module.d.ts +15 -0
  215. package/lib/components/left-sidebar/left-sidebar.module.d.ts.map +1 -0
  216. package/lib/components/list-column-view/list-column-view.component.d.ts +29 -0
  217. package/lib/components/list-column-view/list-column-view.component.d.ts.map +1 -0
  218. package/lib/components/mdi-icon-selector/mdi-icon-selector.component.d.ts +29 -0
  219. package/lib/components/mdi-icon-selector/mdi-icon-selector.component.d.ts.map +1 -0
  220. package/lib/components/mdi-icon-viewer/mdi-icon-viewer.component.d.ts +7 -0
  221. package/lib/components/mdi-icon-viewer/mdi-icon-viewer.component.d.ts.map +1 -0
  222. package/lib/components/menu/menu-item-text.component.d.ts +15 -0
  223. package/lib/components/menu/menu-item-text.component.d.ts.map +1 -0
  224. package/lib/components/menu/menu-routing.module.d.ts +8 -0
  225. package/lib/components/menu/menu-routing.module.d.ts.map +1 -0
  226. package/lib/components/menu/menu.init.d.ts +4 -0
  227. package/lib/components/menu/menu.init.d.ts.map +1 -0
  228. package/lib/components/menu/menu.module.d.ts +14 -0
  229. package/lib/components/menu/menu.module.d.ts.map +1 -0
  230. package/lib/components/menu/services/index.d.ts +2 -0
  231. package/lib/components/menu/services/index.d.ts.map +1 -0
  232. package/lib/components/menu/services/menu.service.d.ts +47 -0
  233. package/lib/components/menu/services/menu.service.d.ts.map +1 -0
  234. package/lib/components/modal/modal.component.d.ts +27 -0
  235. package/lib/components/modal/modal.component.d.ts.map +1 -0
  236. package/lib/components/modal/modal.module.d.ts +9 -0
  237. package/lib/components/modal/modal.module.d.ts.map +1 -0
  238. package/lib/components/multi-input/carbon-multi-input.component.d.ts +76 -0
  239. package/lib/components/multi-input/carbon-multi-input.component.d.ts.map +1 -0
  240. package/lib/components/multi-input/carbon-multi-input.module.d.ts +20 -0
  241. package/lib/components/multi-input/carbon-multi-input.module.d.ts.map +1 -0
  242. package/lib/components/multi-input/components/arbitrary-amount-value/arbitrary-amount-value.component.d.ts +23 -0
  243. package/lib/components/multi-input/components/arbitrary-amount-value/arbitrary-amount-value.component.d.ts.map +1 -0
  244. package/lib/components/multi-input/components/arbitrary-amount-value/index.d.ts +2 -0
  245. package/lib/components/multi-input/components/arbitrary-amount-value/index.d.ts.map +1 -0
  246. package/lib/components/multi-input/components/index.d.ts +8 -0
  247. package/lib/components/multi-input/components/index.d.ts.map +1 -0
  248. package/lib/components/multi-input/components/key-dropdown-value/index.d.ts +2 -0
  249. package/lib/components/multi-input/components/key-dropdown-value/index.d.ts.map +1 -0
  250. package/lib/components/multi-input/components/key-dropdown-value/key-dropdown-value.component.d.ts +27 -0
  251. package/lib/components/multi-input/components/key-dropdown-value/key-dropdown-value.component.d.ts.map +1 -0
  252. package/lib/components/multi-input/components/key-value/index.d.ts +2 -0
  253. package/lib/components/multi-input/components/key-value/index.d.ts.map +1 -0
  254. package/lib/components/multi-input/components/key-value/key-value.component.d.ts +22 -0
  255. package/lib/components/multi-input/components/key-value/key-value.component.d.ts.map +1 -0
  256. package/lib/components/multi-input/components/key-value-path-selector/index.d.ts +2 -0
  257. package/lib/components/multi-input/components/key-value-path-selector/index.d.ts.map +1 -0
  258. package/lib/components/multi-input/components/key-value-path-selector/key-value-path-selector.component.d.ts +26 -0
  259. package/lib/components/multi-input/components/key-value-path-selector/key-value-path-selector.component.d.ts.map +1 -0
  260. package/lib/components/multi-input/components/single-value/index.d.ts +2 -0
  261. package/lib/components/multi-input/components/single-value/index.d.ts.map +1 -0
  262. package/lib/components/multi-input/components/single-value/single-value.component.d.ts +16 -0
  263. package/lib/components/multi-input/components/single-value/single-value.component.d.ts.map +1 -0
  264. package/lib/components/multi-input/components/value-path-selector-dropdown-value/index.d.ts +2 -0
  265. package/lib/components/multi-input/components/value-path-selector-dropdown-value/index.d.ts.map +1 -0
  266. package/lib/components/multi-input/components/value-path-selector-dropdown-value/value-path-selector-dropdown-value.component.d.ts +31 -0
  267. package/lib/components/multi-input/components/value-path-selector-dropdown-value/value-path-selector-dropdown-value.component.d.ts.map +1 -0
  268. package/lib/components/multi-input/components/value-path-selector-value/index.d.ts +2 -0
  269. package/lib/components/multi-input/components/value-path-selector-value/index.d.ts.map +1 -0
  270. package/lib/components/multi-input/components/value-path-selector-value/value-path-selector-value.component.d.ts +26 -0
  271. package/lib/components/multi-input/components/value-path-selector-value/value-path-selector-value.component.d.ts.map +1 -0
  272. package/lib/components/multi-input-form/default-value.pipe.d.ts +10 -0
  273. package/lib/components/multi-input-form/default-value.pipe.d.ts.map +1 -0
  274. package/lib/components/multi-input-form/multi-input-form.component.d.ts +50 -0
  275. package/lib/components/multi-input-form/multi-input-form.component.d.ts.map +1 -0
  276. package/lib/components/multi-input-form/multi-input-form.module.d.ts +15 -0
  277. package/lib/components/multi-input-form/multi-input-form.module.d.ts.map +1 -0
  278. package/lib/components/multiselect-dropdown/multiselect-dropdown.component.d.ts +19 -0
  279. package/lib/components/multiselect-dropdown/multiselect-dropdown.component.d.ts.map +1 -0
  280. package/lib/components/multiselect-dropdown/multiselect-dropdown.module.d.ts +11 -0
  281. package/lib/components/multiselect-dropdown/multiselect-dropdown.module.d.ts.map +1 -0
  282. package/lib/components/page-actions/page-actions.component.d.ts +29 -0
  283. package/lib/components/page-actions/page-actions.component.d.ts.map +1 -0
  284. package/lib/components/page-header/page-header.component.d.ts +24 -0
  285. package/lib/components/page-header/page-header.component.d.ts.map +1 -0
  286. package/lib/components/page-header/page-header.module.d.ts +14 -0
  287. package/lib/components/page-header/page-header.module.d.ts.map +1 -0
  288. package/lib/components/page-subtitle/page-subtitle.component.d.ts +20 -0
  289. package/lib/components/page-subtitle/page-subtitle.component.d.ts.map +1 -0
  290. package/lib/components/page-title/page-title.component.d.ts +42 -0
  291. package/lib/components/page-title/page-title.component.d.ts.map +1 -0
  292. package/lib/components/page-title/page-title.module.d.ts +11 -0
  293. package/lib/components/page-title/page-title.module.d.ts.map +1 -0
  294. package/lib/components/paragraph/paragraph.component.d.ts +15 -0
  295. package/lib/components/paragraph/paragraph.component.d.ts.map +1 -0
  296. package/lib/components/paragraph/paragraph.module.d.ts +13 -0
  297. package/lib/components/paragraph/paragraph.module.d.ts.map +1 -0
  298. package/lib/components/pending-changes/pending-changes.component.d.ts +20 -0
  299. package/lib/components/pending-changes/pending-changes.component.d.ts.map +1 -0
  300. package/lib/components/pending-changes/pending-changes.service.d.ts +9 -0
  301. package/lib/components/pending-changes/pending-changes.service.d.ts.map +1 -0
  302. package/lib/components/progress-bar/progress-bar.component.d.ts +6 -0
  303. package/lib/components/progress-bar/progress-bar.component.d.ts.map +1 -0
  304. package/lib/components/progress-bar/progress-bar.module.d.ts +9 -0
  305. package/lib/components/progress-bar/progress-bar.module.d.ts.map +1 -0
  306. package/lib/components/prompt/prompt.component.d.ts +31 -0
  307. package/lib/components/prompt/prompt.component.d.ts.map +1 -0
  308. package/lib/components/prompt/prompt.module.d.ts +14 -0
  309. package/lib/components/prompt/prompt.module.d.ts.map +1 -0
  310. package/lib/components/quick-search/modal/quick-search-modal.component.d.ts +25 -0
  311. package/lib/components/quick-search/modal/quick-search-modal.component.d.ts.map +1 -0
  312. package/lib/components/quick-search/quick-search.component.d.ts +32 -0
  313. package/lib/components/quick-search/quick-search.component.d.ts.map +1 -0
  314. package/lib/components/radio/radio.component.d.ts +36 -0
  315. package/lib/components/radio/radio.component.d.ts.map +1 -0
  316. package/lib/components/radio/radio.module.d.ts +13 -0
  317. package/lib/components/radio/radio.module.d.ts.map +1 -0
  318. package/lib/components/render-in-body/render-in-body.component.d.ts +14 -0
  319. package/lib/components/render-in-body/render-in-body.component.d.ts.map +1 -0
  320. package/lib/components/right-sidebar/right-sidebar.component.d.ts +75 -0
  321. package/lib/components/right-sidebar/right-sidebar.component.d.ts.map +1 -0
  322. package/lib/components/right-sidebar/right-sidebar.module.d.ts +14 -0
  323. package/lib/components/right-sidebar/right-sidebar.module.d.ts.map +1 -0
  324. package/lib/components/search-fields/search-fields.component.d.ts +62 -0
  325. package/lib/components/search-fields/search-fields.component.d.ts.map +1 -0
  326. package/lib/components/search-fields/search-fields.module.d.ts +19 -0
  327. package/lib/components/search-fields/search-fields.module.d.ts.map +1 -0
  328. package/lib/components/searchable-dropdown/searchable-dropdown.component.d.ts +43 -0
  329. package/lib/components/searchable-dropdown/searchable-dropdown.component.d.ts.map +1 -0
  330. package/lib/components/searchable-dropdown/searchable-dropdown.module.d.ts +10 -0
  331. package/lib/components/searchable-dropdown/searchable-dropdown.module.d.ts.map +1 -0
  332. package/lib/components/searchable-dropdown-select/searchable-dropdown-select.component.d.ts +25 -0
  333. package/lib/components/searchable-dropdown-select/searchable-dropdown-select.component.d.ts.map +1 -0
  334. package/lib/components/searchable-dropdown-select/searchable-dropdown-select.module.d.ts +11 -0
  335. package/lib/components/searchable-dropdown-select/searchable-dropdown-select.module.d.ts.map +1 -0
  336. package/lib/components/select/select.component.d.ts +62 -0
  337. package/lib/components/select/select.component.d.ts.map +1 -0
  338. package/lib/components/select/select.module.d.ts +13 -0
  339. package/lib/components/select/select.module.d.ts.map +1 -0
  340. package/lib/components/spinner/spinner.component.d.ts +14 -0
  341. package/lib/components/spinner/spinner.component.d.ts.map +1 -0
  342. package/lib/components/spinner/spinner.module.d.ts +11 -0
  343. package/lib/components/spinner/spinner.module.d.ts.map +1 -0
  344. package/lib/components/status-selector/status-selector.component.d.ts +24 -0
  345. package/lib/components/status-selector/status-selector.component.d.ts.map +1 -0
  346. package/lib/components/stepper/stepper-container/stepper-container.component.d.ts +29 -0
  347. package/lib/components/stepper/stepper-container/stepper-container.component.d.ts.map +1 -0
  348. package/lib/components/stepper/stepper-content/stepper-content.component.d.ts +18 -0
  349. package/lib/components/stepper/stepper-content/stepper-content.component.d.ts.map +1 -0
  350. package/lib/components/stepper/stepper-footer/stepper-footer.component.d.ts +14 -0
  351. package/lib/components/stepper/stepper-footer/stepper-footer.component.d.ts.map +1 -0
  352. package/lib/components/stepper/stepper-footer-step/stepper-footer-step.component.d.ts +27 -0
  353. package/lib/components/stepper/stepper-footer-step/stepper-footer-step.component.d.ts.map +1 -0
  354. package/lib/components/stepper/stepper-header/stepper-header.component.d.ts +16 -0
  355. package/lib/components/stepper/stepper-header/stepper-header.component.d.ts.map +1 -0
  356. package/lib/components/stepper/stepper-step/stepper-step.component.d.ts +16 -0
  357. package/lib/components/stepper/stepper-step/stepper-step.component.d.ts.map +1 -0
  358. package/lib/components/stepper/stepper.module.d.ts +19 -0
  359. package/lib/components/stepper/stepper.module.d.ts.map +1 -0
  360. package/lib/components/table/table.component.d.ts +52 -0
  361. package/lib/components/table/table.component.d.ts.map +1 -0
  362. package/lib/components/table/table.module.d.ts +17 -0
  363. package/lib/components/table/table.module.d.ts.map +1 -0
  364. package/lib/components/timeline/timeline.component.d.ts +14 -0
  365. package/lib/components/timeline/timeline.component.d.ts.map +1 -0
  366. package/lib/components/timeline/timeline.module.d.ts +12 -0
  367. package/lib/components/timeline/timeline.module.d.ts.map +1 -0
  368. package/lib/components/tooltip-icon/tooltip-icon.component.d.ts +8 -0
  369. package/lib/components/tooltip-icon/tooltip-icon.component.d.ts.map +1 -0
  370. package/lib/components/tooltip-icon/tooltip-icon.module.d.ts +12 -0
  371. package/lib/components/tooltip-icon/tooltip-icon.module.d.ts.map +1 -0
  372. package/lib/components/topbar/topbar.component.d.ts +40 -0
  373. package/lib/components/topbar/topbar.component.d.ts.map +1 -0
  374. package/lib/components/topbar/topbar.module.d.ts +12 -0
  375. package/lib/components/topbar/topbar.module.d.ts.map +1 -0
  376. package/lib/components/uploader/uploader-drag-drop.directive.d.ts +11 -0
  377. package/lib/components/uploader/uploader-drag-drop.directive.d.ts.map +1 -0
  378. package/lib/components/uploader/uploader.component.d.ts +17 -0
  379. package/lib/components/uploader/uploader.component.d.ts.map +1 -0
  380. package/lib/components/uploader/uploader.module.d.ts +11 -0
  381. package/lib/components/uploader/uploader.module.d.ts.map +1 -0
  382. package/lib/components/v-modal/modal.component.d.ts +29 -0
  383. package/lib/components/v-modal/modal.component.d.ts.map +1 -0
  384. package/lib/components/v-modal/modal.module.d.ts +10 -0
  385. package/lib/components/v-modal/modal.module.d.ts.map +1 -0
  386. package/lib/components/value-path-selector/index.d.ts +2 -0
  387. package/lib/components/value-path-selector/index.d.ts.map +1 -0
  388. package/lib/components/value-path-selector/value-path-selector.component.d.ts +85 -0
  389. package/lib/components/value-path-selector/value-path-selector.component.d.ts.map +1 -0
  390. package/lib/components/version/version.service.d.ts +15 -0
  391. package/lib/components/version/version.service.d.ts.map +1 -0
  392. package/lib/components/view-content/type-converters/booleanTypeConverter.d.ts +13 -0
  393. package/lib/components/view-content/type-converters/booleanTypeConverter.d.ts.map +1 -0
  394. package/lib/components/view-content/type-converters/currencyTypeConverter.d.ts +9 -0
  395. package/lib/components/view-content/type-converters/currencyTypeConverter.d.ts.map +1 -0
  396. package/lib/components/view-content/type-converters/dateTimeTypeConverter.d.ts +7 -0
  397. package/lib/components/view-content/type-converters/dateTimeTypeConverter.d.ts.map +1 -0
  398. package/lib/components/view-content/type-converters/dateTypeConverter.d.ts +7 -0
  399. package/lib/components/view-content/type-converters/dateTypeConverter.d.ts.map +1 -0
  400. package/lib/components/view-content/type-converters/enumTypeConverter.d.ts +7 -0
  401. package/lib/components/view-content/type-converters/enumTypeConverter.d.ts.map +1 -0
  402. package/lib/components/view-content/type-converters/linkTypeConverter.d.ts +7 -0
  403. package/lib/components/view-content/type-converters/linkTypeConverter.d.ts.map +1 -0
  404. package/lib/components/view-content/type-converters/numberTypeConverter.d.ts +9 -0
  405. package/lib/components/view-content/type-converters/numberTypeConverter.d.ts.map +1 -0
  406. package/lib/components/view-content/type-converters/percentTypeConverter.d.ts +9 -0
  407. package/lib/components/view-content/type-converters/percentTypeConverter.d.ts.map +1 -0
  408. package/lib/components/view-content/type-converters/relatedFilesTypeConverter.d.ts +7 -0
  409. package/lib/components/view-content/type-converters/relatedFilesTypeConverter.d.ts.map +1 -0
  410. package/lib/components/view-content/type-converters/stringReplaceUnderscoreTypeConverter.d.ts +8 -0
  411. package/lib/components/view-content/type-converters/stringReplaceUnderscoreTypeConverter.d.ts.map +1 -0
  412. package/lib/components/view-content/type-converters/stringTypeConverter.d.ts +7 -0
  413. package/lib/components/view-content/type-converters/stringTypeConverter.d.ts.map +1 -0
  414. package/lib/components/view-content/type-converters/type-converters.model.d.ts +19 -0
  415. package/lib/components/view-content/type-converters/type-converters.model.d.ts.map +1 -0
  416. package/lib/components/view-content/view-content.module.d.ts +8 -0
  417. package/lib/components/view-content/view-content.module.d.ts.map +1 -0
  418. package/lib/components/view-content/view-content.service.d.ts +10 -0
  419. package/lib/components/view-content/view-content.service.d.ts.map +1 -0
  420. package/lib/components/webcam/webcam.component.d.ts +24 -0
  421. package/lib/components/webcam/webcam.component.d.ts.map +1 -0
  422. package/lib/components/webcam/webcam.module.d.ts +10 -0
  423. package/lib/components/webcam/webcam.module.d.ts.map +1 -0
  424. package/lib/components/widget/widget.component.d.ts +32 -0
  425. package/lib/components/widget/widget.component.d.ts.map +1 -0
  426. package/lib/components/widget/widget.module.d.ts +9 -0
  427. package/lib/components/widget/widget.module.d.ts.map +1 -0
  428. package/lib/constants/carbon.constants.d.ts +5 -0
  429. package/lib/constants/carbon.constants.d.ts.map +1 -0
  430. package/lib/constants/index.d.ts +6 -0
  431. package/lib/constants/index.d.ts.map +1 -0
  432. package/lib/constants/mdi.constants.d.ts +2 -0
  433. package/lib/constants/mdi.constants.d.ts.map +1 -0
  434. package/lib/constants/quick-search.constants.d.ts +4 -0
  435. package/lib/constants/quick-search.constants.d.ts.map +1 -0
  436. package/lib/constants/status.constants.d.ts +3 -0
  437. package/lib/constants/status.constants.d.ts.map +1 -0
  438. package/lib/constants/view-type-converter.constants.d.ts +3 -0
  439. package/lib/constants/view-type-converter.constants.d.ts.map +1 -0
  440. package/lib/directives/context-menu.directive.d.ts +20 -0
  441. package/lib/directives/context-menu.directive.d.ts.map +1 -0
  442. package/lib/directives/ctrl-click/ctrl-click.directive.d.ts +14 -0
  443. package/lib/directives/ctrl-click/ctrl-click.directive.d.ts.map +1 -0
  444. package/lib/directives/digit-only/digit-only.directive.d.ts +35 -0
  445. package/lib/directives/digit-only/digit-only.directive.d.ts.map +1 -0
  446. package/lib/directives/fit-page/fit-page.directive.d.ts +21 -0
  447. package/lib/directives/fit-page/fit-page.directive.d.ts.map +1 -0
  448. package/lib/directives/muuri/muuri-directive.module.d.ts +10 -0
  449. package/lib/directives/muuri/muuri-directive.module.d.ts.map +1 -0
  450. package/lib/directives/muuri/muuri-item.component.d.ts +8 -0
  451. package/lib/directives/muuri/muuri-item.component.d.ts.map +1 -0
  452. package/lib/directives/muuri/muuri.directive.d.ts +27 -0
  453. package/lib/directives/muuri/muuri.directive.d.ts.map +1 -0
  454. package/lib/directives/observe-size/observe-size.directive.d.ts +16 -0
  455. package/lib/directives/observe-size/observe-size.directive.d.ts.map +1 -0
  456. package/lib/directives/read-only.directive.d.ts +15 -0
  457. package/lib/directives/read-only.directive.d.ts.map +1 -0
  458. package/lib/directives/remove-classnames/remove-classnames.directive.d.ts +16 -0
  459. package/lib/directives/remove-classnames/remove-classnames.directive.d.ts.map +1 -0
  460. package/lib/directives/render-in-page-header/render-in-page-header.directive.d.ts +18 -0
  461. package/lib/directives/render-in-page-header/render-in-page-header.directive.d.ts.map +1 -0
  462. package/lib/directives/render-page-header/render-page-header.directive.d.ts +15 -0
  463. package/lib/directives/render-page-header/render-page-header.directive.d.ts.map +1 -0
  464. package/lib/directives/render-page-subtitle/render-page-subtitle.directive.d.ts +15 -0
  465. package/lib/directives/render-page-subtitle/render-page-subtitle.directive.d.ts.map +1 -0
  466. package/lib/directives/tooltip/tooltip.component.d.ts +7 -0
  467. package/lib/directives/tooltip/tooltip.component.d.ts.map +1 -0
  468. package/lib/directives/tooltip/tooltip.directive.d.ts +19 -0
  469. package/lib/directives/tooltip/tooltip.directive.d.ts.map +1 -0
  470. package/lib/directives/tooltip/tooltip.module.d.ts +11 -0
  471. package/lib/directives/tooltip/tooltip.module.d.ts.map +1 -0
  472. package/lib/directives/valtimo-cds-modal/valtimo-cds-modal.directive.d.ts +20 -0
  473. package/lib/directives/valtimo-cds-modal/valtimo-cds-modal.directive.d.ts.map +1 -0
  474. package/lib/directives/valtimo-cds-overflow-button/valtimo-cds-overflow-button.directive.d.ts +23 -0
  475. package/lib/directives/valtimo-cds-overflow-button/valtimo-cds-overflow-button.directive.d.ts.map +1 -0
  476. package/lib/guards/index.d.ts +2 -0
  477. package/lib/guards/index.d.ts.map +1 -0
  478. package/lib/guards/pending-changes.guard.d.ts +4 -0
  479. package/lib/guards/pending-changes.guard.d.ts.map +1 -0
  480. package/lib/interfaces/index.d.ts +2 -0
  481. package/lib/interfaces/index.d.ts.map +1 -0
  482. package/lib/interfaces/quick-search-service.interface.d.ts +12 -0
  483. package/lib/interfaces/quick-search-service.interface.d.ts.map +1 -0
  484. package/lib/models/alert.model.d.ts +22 -0
  485. package/lib/models/alert.model.d.ts.map +1 -0
  486. package/lib/models/button.model.d.ts +3 -0
  487. package/lib/models/button.model.d.ts.map +1 -0
  488. package/lib/models/carbon-list.model.d.ts +90 -0
  489. package/lib/models/carbon-list.model.d.ts.map +1 -0
  490. package/lib/models/carbon-pagination.model.d.ts +11 -0
  491. package/lib/models/carbon-pagination.model.d.ts.map +1 -0
  492. package/lib/models/carbon-tag.model.d.ts +8 -0
  493. package/lib/models/carbon-tag.model.d.ts.map +1 -0
  494. package/lib/models/carbon-theme.model.d.ts +8 -0
  495. package/lib/models/carbon-theme.model.d.ts.map +1 -0
  496. package/lib/models/choice-field.model.d.ts +15 -0
  497. package/lib/models/choice-field.model.d.ts.map +1 -0
  498. package/lib/models/choicefield-value.model.d.ts +21 -0
  499. package/lib/models/choicefield-value.model.d.ts.map +1 -0
  500. package/lib/models/documenten-api-metadata.model.d.ts +19 -0
  501. package/lib/models/documenten-api-metadata.model.d.ts.map +1 -0
  502. package/lib/models/editor.model.d.ts +13 -0
  503. package/lib/models/editor.model.d.ts.map +1 -0
  504. package/lib/models/form-io.model.d.ts +118 -0
  505. package/lib/models/form-io.model.d.ts.map +1 -0
  506. package/lib/models/form.model.d.ts +5 -0
  507. package/lib/models/form.model.d.ts.map +1 -0
  508. package/lib/models/index.d.ts +35 -0
  509. package/lib/models/index.d.ts.map +1 -0
  510. package/lib/models/input.model.d.ts +3 -0
  511. package/lib/models/input.model.d.ts.map +1 -0
  512. package/lib/models/list-hidden-column.model.d.ts +8 -0
  513. package/lib/models/list-hidden-column.model.d.ts.map +1 -0
  514. package/lib/models/menu.model.d.ts +5 -0
  515. package/lib/models/menu.model.d.ts.map +1 -0
  516. package/lib/models/modal.model.d.ts +5 -0
  517. package/lib/models/modal.model.d.ts.map +1 -0
  518. package/lib/models/multi-input.model.d.ts +27 -0
  519. package/lib/models/multi-input.model.d.ts.map +1 -0
  520. package/lib/models/pagination.model.d.ts +12 -0
  521. package/lib/models/pagination.model.d.ts.map +1 -0
  522. package/lib/models/quick-search.model.d.ts +5 -0
  523. package/lib/models/quick-search.model.d.ts.map +1 -0
  524. package/lib/models/radio.model.d.ts +8 -0
  525. package/lib/models/radio.model.d.ts.map +1 -0
  526. package/lib/models/right-sidebar.model.d.ts +6 -0
  527. package/lib/models/right-sidebar.model.d.ts.map +1 -0
  528. package/lib/models/searchable-dropdown.model.d.ts +6 -0
  529. package/lib/models/searchable-dropdown.model.d.ts.map +1 -0
  530. package/lib/models/select.model.d.ts +9 -0
  531. package/lib/models/select.model.d.ts.map +1 -0
  532. package/lib/models/sort.model.d.ts +11 -0
  533. package/lib/models/sort.model.d.ts.map +1 -0
  534. package/lib/models/stepper.model.d.ts +8 -0
  535. package/lib/models/stepper.model.d.ts.map +1 -0
  536. package/lib/models/table.model.d.ts +14 -0
  537. package/lib/models/table.model.d.ts.map +1 -0
  538. package/lib/models/theme.model.d.ts +13 -0
  539. package/lib/models/theme.model.d.ts.map +1 -0
  540. package/lib/models/timeline.model.d.ts +30 -0
  541. package/lib/models/timeline.model.d.ts.map +1 -0
  542. package/lib/models/title.model.d.ts +3 -0
  543. package/lib/models/title.model.d.ts.map +1 -0
  544. package/lib/models/topbar.model.d.ts +6 -0
  545. package/lib/models/topbar.model.d.ts.map +1 -0
  546. package/lib/models/value-path-selector.model.d.ts +39 -0
  547. package/lib/models/value-path-selector.model.d.ts.map +1 -0
  548. package/lib/models/version.model.d.ts +5 -0
  549. package/lib/models/version.model.d.ts.map +1 -0
  550. package/lib/modules/custom-formio-component/create-custom-component.d.ts +249 -0
  551. package/lib/modules/custom-formio-component/create-custom-component.d.ts.map +1 -0
  552. package/lib/modules/custom-formio-component/elements.common.d.ts +31 -0
  553. package/lib/modules/custom-formio-component/elements.common.d.ts.map +1 -0
  554. package/lib/modules/custom-formio-component/index.d.ts +4 -0
  555. package/lib/modules/custom-formio-component/index.d.ts.map +1 -0
  556. package/lib/modules/custom-formio-component/register-custom-component.d.ts +6 -0
  557. package/lib/modules/custom-formio-component/register-custom-component.d.ts.map +1 -0
  558. package/lib/modules/index.d.ts +2 -0
  559. package/lib/modules/index.d.ts.map +1 -0
  560. package/lib/pipes/case-count.pipe.d.ts +8 -0
  561. package/lib/pipes/case-count.pipe.d.ts.map +1 -0
  562. package/lib/pipes/components-pipes.module.d.ts +8 -0
  563. package/lib/pipes/components-pipes.module.d.ts.map +1 -0
  564. package/lib/pipes/ellipsis.pipe.d.ts +8 -0
  565. package/lib/pipes/ellipsis.pipe.d.ts.map +1 -0
  566. package/lib/pipes/index.d.ts +6 -0
  567. package/lib/pipes/index.d.ts.map +1 -0
  568. package/lib/pipes/is-array.pipe.d.ts +8 -0
  569. package/lib/pipes/is-array.pipe.d.ts.map +1 -0
  570. package/lib/pipes/menu-item-translation.pipe.d.ts +13 -0
  571. package/lib/pipes/menu-item-translation.pipe.d.ts.map +1 -0
  572. package/lib/services/cds-theme.service.d.ts +21 -0
  573. package/lib/services/cds-theme.service.d.ts.map +1 -0
  574. package/lib/services/choice-field.service.d.ts +27 -0
  575. package/lib/services/choice-field.service.d.ts.map +1 -0
  576. package/lib/services/index.d.ts +15 -0
  577. package/lib/services/index.d.ts.map +1 -0
  578. package/lib/services/key-generator.service.d.ts +8 -0
  579. package/lib/services/key-generator.service.d.ts.map +1 -0
  580. package/lib/services/key-state.service.d.ts +12 -0
  581. package/lib/services/key-state.service.d.ts.map +1 -0
  582. package/lib/services/modal.service.d.ts +41 -0
  583. package/lib/services/modal.service.d.ts.map +1 -0
  584. package/lib/services/page-header.service.d.ts +34 -0
  585. package/lib/services/page-header.service.d.ts.map +1 -0
  586. package/lib/services/page-subtitle.service.d.ts +14 -0
  587. package/lib/services/page-subtitle.service.d.ts.map +1 -0
  588. package/lib/services/page-title.service.d.ts +41 -0
  589. package/lib/services/page-title.service.d.ts.map +1 -0
  590. package/lib/services/prompt.service.d.ts +55 -0
  591. package/lib/services/prompt.service.d.ts.map +1 -0
  592. package/lib/services/quick-search-state.service.d.ts +18 -0
  593. package/lib/services/quick-search-state.service.d.ts.map +1 -0
  594. package/lib/services/shell.service.d.ts +56 -0
  595. package/lib/services/shell.service.d.ts.map +1 -0
  596. package/lib/services/stepper.service.d.ts +32 -0
  597. package/lib/services/stepper.service.d.ts.map +1 -0
  598. package/lib/services/user-interface.service.d.ts +11 -0
  599. package/lib/services/user-interface.service.d.ts.map +1 -0
  600. package/lib/services/valtimo-modal.service.d.ts +13 -0
  601. package/lib/services/valtimo-modal.service.d.ts.map +1 -0
  602. package/lib/services/value-path-selector.service.d.ts +30 -0
  603. package/lib/services/value-path-selector.service.d.ts.map +1 -0
  604. package/lib/utils/carbon.utils.d.ts +3 -0
  605. package/lib/utils/carbon.utils.d.ts.map +1 -0
  606. package/lib/utils/index.d.ts +2 -0
  607. package/lib/utils/index.d.ts.map +1 -0
  608. package/package.json +55 -0
  609. package/public_api.d.ts +165 -0
  610. package/public_api.d.ts.map +1 -0
  611. package/valtimo-components.d.ts.map +1 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"valtimo-components.mjs","sources":["../../../../projects/valtimo/components/src/lib/models/alert.model.ts","../../../../projects/valtimo/components/src/lib/models/button.model.ts","../../../../projects/valtimo/components/src/lib/models/carbon-list.model.ts","../../../../projects/valtimo/components/src/lib/models/carbon-pagination.model.ts","../../../../projects/valtimo/components/src/lib/models/carbon-tag.model.ts","../../../../projects/valtimo/components/src/lib/models/carbon-theme.model.ts","../../../../projects/valtimo/components/src/lib/models/choice-field.model.ts","../../../../projects/valtimo/components/src/lib/models/choicefield-value.model.ts","../../../../projects/valtimo/components/src/lib/models/documenten-api-metadata.model.ts","../../../../projects/valtimo/components/src/lib/models/editor.model.ts","../../../../projects/valtimo/components/src/lib/models/form-io.model.ts","../../../../projects/valtimo/components/src/lib/models/form.model.ts","../../../../projects/valtimo/components/src/lib/models/input.model.ts","../../../../projects/valtimo/components/src/lib/models/modal.model.ts","../../../../projects/valtimo/components/src/lib/models/multi-input.model.ts","../../../../projects/valtimo/components/src/lib/models/pagination.model.ts","../../../../projects/valtimo/components/src/lib/models/radio.model.ts","../../../../projects/valtimo/components/src/lib/models/right-sidebar.model.ts","../../../../projects/valtimo/components/src/lib/models/searchable-dropdown.model.ts","../../../../projects/valtimo/components/src/lib/models/select.model.ts","../../../../projects/valtimo/components/src/lib/models/sort.model.ts","../../../../projects/valtimo/components/src/lib/models/stepper.model.ts","../../../../projects/valtimo/components/src/lib/models/table.model.ts","../../../../projects/valtimo/components/src/lib/models/theme.model.ts","../../../../projects/valtimo/components/src/lib/models/timeline.model.ts","../../../../projects/valtimo/components/src/lib/models/title.model.ts","../../../../projects/valtimo/components/src/lib/models/topbar.model.ts","../../../../projects/valtimo/components/src/lib/models/value-path-selector.model.ts","../../../../projects/valtimo/components/src/lib/models/menu.model.ts","../../../../projects/valtimo/components/src/lib/models/list-hidden-column.model.ts","../../../../projects/valtimo/components/src/lib/models/version.model.ts","../../../../projects/valtimo/components/src/lib/models/index.ts","../../../../projects/valtimo/components/src/lib/constants/carbon.constants.ts","../../../../projects/valtimo/components/src/lib/constants/view-type-converter.constants.ts","../../../../projects/valtimo/components/src/lib/constants/status.constants.ts","../../../../projects/valtimo/components/src/lib/constants/quick-search.constants.ts","../../../../projects/valtimo/components/src/lib/constants/mdi.constants.ts","../../../../projects/valtimo/components/src/lib/constants/index.ts","../../../../projects/valtimo/components/src/lib/pipes/menu-item-translation.pipe.ts","../../../../projects/valtimo/components/src/lib/pipes/components-pipes.module.ts","../../../../projects/valtimo/components/src/lib/pipes/case-count.pipe.ts","../../../../projects/valtimo/components/src/lib/pipes/is-array.pipe.ts","../../../../projects/valtimo/components/src/lib/pipes/ellipsis.pipe.ts","../../../../projects/valtimo/components/src/lib/pipes/index.ts","../../../../projects/valtimo/components/src/lib/services/cds-theme.service.ts","../../../../projects/valtimo/components/src/lib/services/choice-field.service.ts","../../../../projects/valtimo/components/src/lib/services/key-generator.service.ts","../../../../projects/valtimo/components/src/lib/services/modal.service.ts","../../../../projects/valtimo/components/src/lib/services/page-header.service.ts","../../../../projects/valtimo/components/src/lib/services/page-subtitle.service.ts","../../../../projects/valtimo/components/src/lib/services/page-title.service.ts","../../../../projects/valtimo/components/src/lib/services/prompt.service.ts","../../../../projects/valtimo/components/src/lib/services/quick-search-state.service.ts","../../../../projects/valtimo/components/src/lib/services/shell.service.ts","../../../../projects/valtimo/components/src/lib/services/stepper.service.ts","../../../../projects/valtimo/components/src/lib/services/user-interface.service.ts","../../../../projects/valtimo/components/src/lib/services/valtimo-modal.service.ts","../../../../projects/valtimo/components/src/lib/services/value-path-selector.service.ts","../../../../projects/valtimo/components/src/lib/services/index.ts","../../../../projects/valtimo/components/src/lib/guards/pending-changes.guard.ts","../../../../projects/valtimo/components/src/lib/guards/index.ts","../../../../projects/valtimo/components/src/lib/modules/custom-formio-component/create-custom-component.ts","../../../../projects/valtimo/components/src/lib/modules/custom-formio-component/elements.common.ts","../../../../projects/valtimo/components/src/lib/components/form-io/services/form-io.tags.service.ts","../../../../projects/valtimo/components/src/lib/modules/custom-formio-component/register-custom-component.ts","../../../../projects/valtimo/components/src/lib/modules/custom-formio-component/index.ts","../../../../projects/valtimo/components/src/lib/modules/index.ts","../../../../projects/valtimo/components/src/lib/utils/carbon.utils.ts","../../../../projects/valtimo/components/src/lib/utils/index.ts","../../../../projects/valtimo/components/src/lib/components/camunda/form/generated/formfield/validation/date.validators.ts","../../../../projects/valtimo/components/src/lib/components/camunda/form/generated/formfield/camunda-formfield.service.ts","../../../../projects/valtimo/components/src/lib/components/camunda/form/generated/formfield/validation/camunda-formfield-validation.component.ts","../../../../projects/valtimo/components/src/lib/components/camunda/form/generated/formfield/validation/camunda-formfield-validation.component.html","../../../../projects/valtimo/components/src/lib/components/camunda/form/generated/formfield/string/camunda-string-formfield.component.ts","../../../../projects/valtimo/components/src/lib/components/camunda/form/generated/formfield/string/camunda-string-formfield.component.html","../../../../projects/valtimo/components/src/lib/components/camunda/form/generated/formfield/boolean/camunda-boolean-formfield.component.ts","../../../../projects/valtimo/components/src/lib/components/camunda/form/generated/formfield/boolean/camunda-boolean-formfield.component.html","../../../../projects/valtimo/components/src/lib/components/camunda/form/generated/formfield/date/camunda-date-formfield.component.ts","../../../../projects/valtimo/components/src/lib/components/camunda/form/generated/formfield/date/camunda-date-formfield.component.html","../../../../projects/valtimo/components/src/lib/components/camunda/form/generated/formfield/long/camunda-long-formfield.component.ts","../../../../projects/valtimo/components/src/lib/components/camunda/form/generated/formfield/long/camunda-long-formfield.component.html","../../../../projects/valtimo/components/src/lib/components/camunda/form/generated/formfield/enum/camunda-enum-formfield.component.ts","../../../../projects/valtimo/components/src/lib/components/camunda/form/generated/formfield/enum/camunda-enum-formfield.component.html","../../../../projects/valtimo/components/src/lib/components/camunda/form/generated/formfield/textarea/camunda-textarea-formfield.component.ts","../../../../projects/valtimo/components/src/lib/components/camunda/form/generated/formfield/textarea/camunda-textarea-formfield.component.html","../../../../projects/valtimo/components/src/lib/components/camunda/form/generated/formfield/choicefield/camunda-choicefield-formfield.component.ts","../../../../projects/valtimo/components/src/lib/components/camunda/form/generated/formfield/choicefield/camunda-choicefield-formfield.component.html","../../../../projects/valtimo/components/src/lib/components/camunda/form/generated/formfield/camunda-formfield-generator.directive.ts","../../../../projects/valtimo/components/src/lib/components/camunda/form/generated/camunda-generated-form.component.ts","../../../../projects/valtimo/components/src/lib/components/camunda/form/generated/camunda-generated-form.component.html","../../../../projects/valtimo/components/src/lib/components/camunda/form/custom/camunda-custom-form.component.ts","../../../../projects/valtimo/components/src/lib/components/camunda/form/custom/camunda-custom-form.component.html","../../../../projects/valtimo/components/src/lib/components/camunda/form/camunda-form.components.ts","../../../../projects/valtimo/components/src/lib/components/camunda/form/camunda-form.component.html","../../../../projects/valtimo/components/src/lib/components/camunda/form/custom/camunda-custom-form.module.ts","../../../../projects/valtimo/components/src/lib/components/camunda/form/generated/camunda-generated-form.module.ts","../../../../projects/valtimo/components/src/lib/components/camunda/form/camunda-form.module.ts","../../../../projects/valtimo/components/src/lib/components/paragraph/paragraph.component.ts","../../../../projects/valtimo/components/src/lib/components/paragraph/paragraph.component.html","../../../../projects/valtimo/components/src/lib/components/topbar/topbar.component.ts","../../../../projects/valtimo/components/src/lib/components/topbar/topbar.component.html","../../../../projects/valtimo/components/src/lib/components/paragraph/paragraph.module.ts","../../../../projects/valtimo/components/src/lib/components/topbar/topbar.module.ts","../../../../projects/valtimo/components/src/lib/components/pending-changes/pending-changes.service.ts","../../../../projects/valtimo/components/src/lib/components/menu/services/menu.service.ts","../../../../projects/valtimo/components/src/lib/components/menu/services/index.ts","../../../../projects/valtimo/components/src/lib/components/menu/menu-routing.module.ts","../../../../projects/valtimo/components/src/lib/components/menu/menu-item-text.component.ts","../../../../projects/valtimo/components/src/lib/components/menu/menu-item-text.component.html","../../../../projects/valtimo/components/src/lib/components/menu/menu.module.ts","../../../../projects/valtimo/components/src/lib/components/menu/menu.init.ts","../../../../projects/valtimo/components/src/lib/components/version/version.service.ts","../../../../projects/valtimo/components/src/lib/components/right-sidebar/right-sidebar.component.ts","../../../../projects/valtimo/components/src/lib/components/right-sidebar/right-sidebar.component.html","../../../../projects/valtimo/components/src/lib/components/right-sidebar/right-sidebar.module.ts","../../../../projects/valtimo/components/src/lib/directives/ctrl-click/ctrl-click.directive.ts","../../../../projects/valtimo/components/src/lib/components/left-sidebar/left-sidebar.component.ts","../../../../projects/valtimo/components/src/lib/components/left-sidebar/left-sidebar.component.html","../../../../projects/valtimo/components/src/lib/components/page-title/page-title.component.ts","../../../../projects/valtimo/components/src/lib/components/page-title/page-title.component.html","../../../../projects/valtimo/components/src/lib/components/page-title/page-title.module.ts","../../../../projects/valtimo/components/src/lib/components/left-sidebar/left-sidebar.module.ts","../../../../projects/valtimo/components/src/lib/components/carbon-list/CarbonListFilterPipe.directive.ts","../../../../projects/valtimo/components/src/lib/components/carbon-list/services/carbon-list-drag-and-drop.service.ts","../../../../projects/valtimo/components/src/lib/components/carbon-list/services/index.ts","../../../../projects/valtimo/components/src/lib/components/view-content/type-converters/booleanTypeConverter.ts","../../../../projects/valtimo/components/src/lib/components/view-content/type-converters/currencyTypeConverter.ts","../../../../projects/valtimo/components/src/lib/components/view-content/type-converters/dateTimeTypeConverter.ts","../../../../projects/valtimo/components/src/lib/components/view-content/type-converters/dateTypeConverter.ts","../../../../projects/valtimo/components/src/lib/components/view-content/type-converters/enumTypeConverter.ts","../../../../projects/valtimo/components/src/lib/components/view-content/type-converters/numberTypeConverter.ts","../../../../projects/valtimo/components/src/lib/components/view-content/type-converters/percentTypeConverter.ts","../../../../projects/valtimo/components/src/lib/components/view-content/type-converters/relatedFilesTypeConverter.ts","../../../../projects/valtimo/components/src/lib/components/view-content/type-converters/stringReplaceUnderscoreTypeConverter.ts","../../../../projects/valtimo/components/src/lib/components/view-content/type-converters/stringTypeConverter.ts","../../../../projects/valtimo/components/src/lib/components/view-content/type-converters/linkTypeConverter.ts","../../../../projects/valtimo/components/src/lib/components/view-content/type-converters/type-converters.model.ts","../../../../projects/valtimo/components/src/lib/components/view-content/view-content.service.ts","../../../../projects/valtimo/components/src/lib/services/key-state.service.ts","../../../../projects/valtimo/components/src/lib/directives/valtimo-cds-modal/valtimo-cds-modal.directive.ts","../../../../projects/valtimo/components/src/lib/components/carbon-list/tags-modal/tags-modal.component.ts","../../../../projects/valtimo/components/src/lib/components/carbon-list/tags-modal/tags-modal.component.html","../../../../projects/valtimo/components/src/lib/components/carbon-list/carbon-list.component.ts","../../../../projects/valtimo/components/src/lib/components/carbon-list/carbon-list.component.html","../../../../projects/valtimo/components/src/lib/components/view-content/view-content.module.ts","../../../../projects/valtimo/components/src/lib/components/carbon-list/no-results/carbon-no-results.component.ts","../../../../projects/valtimo/components/src/lib/components/carbon-list/no-results/carbon-no-results.component.html","../../../../projects/valtimo/components/src/lib/components/carbon-list/carbon-list.module.ts","../../../../projects/valtimo/components/src/lib/components/breadcrumb-navigation/breadcrumb.service.ts","../../../../projects/valtimo/components/src/lib/components/breadcrumb-navigation/breadcrumb-navigation.component.ts","../../../../projects/valtimo/components/src/lib/components/breadcrumb-navigation/breadcrumb-navigation.component.html","../../../../projects/valtimo/components/src/lib/directives/render-page-header/render-page-header.directive.ts","../../../../projects/valtimo/components/src/lib/components/page-actions/page-actions.component.ts","../../../../projects/valtimo/components/src/lib/components/page-actions/page-actions.component.html","../../../../projects/valtimo/components/src/lib/directives/render-page-subtitle/render-page-subtitle.directive.ts","../../../../projects/valtimo/components/src/lib/components/page-subtitle/page-subtitle.component.ts","../../../../projects/valtimo/components/src/lib/components/page-subtitle/page-subtitle.component.html","../../../../projects/valtimo/components/src/lib/components/page-header/page-header.component.ts","../../../../projects/valtimo/components/src/lib/components/page-header/page-header.component.html","../../../../projects/valtimo/components/src/lib/components/breadcrumb-navigation/breadcrumb-navigation.module.ts","../../../../projects/valtimo/components/src/lib/components/page-header/page-header.module.ts","../../../../projects/valtimo/components/src/lib/components/widget/widget.component.ts","../../../../projects/valtimo/components/src/lib/components/widget/widget.component.html","../../../../projects/valtimo/components/src/lib/components/widget/widget.module.ts","../../../../projects/valtimo/components/src/lib/components/field-auto-focus/field-auto-focus.directive.ts","../../../../projects/valtimo/components/src/lib/components/field-auto-focus/field-auto-focus.module.ts","../../../../projects/valtimo/components/src/lib/components/bpmn-js-diagram/bpmn-js-diagram.component.ts","../../../../projects/valtimo/components/src/lib/components/bpmn-js-diagram/bpmn-js-diagram.component.html","../../../../projects/valtimo/components/src/lib/components/bpmn-js-diagram/bpmn-js-diagram.module.ts","../../../../projects/valtimo/components/src/lib/components/timeline/timeline.component.ts","../../../../projects/valtimo/components/src/lib/components/timeline/timeline.component.html","../../../../projects/valtimo/components/src/lib/components/timeline/timeline.module.ts","../../../../projects/valtimo/components/src/lib/components/filter-sidebar/filter-sidebar.component.ts","../../../../projects/valtimo/components/src/lib/components/filter-sidebar/filter-sidebar.component.html","../../../../projects/valtimo/components/src/lib/components/filter-sidebar/filter-sidebar.module.ts","../../../../projects/valtimo/components/src/lib/components/uploader/uploader-drag-drop.directive.ts","../../../../projects/valtimo/components/src/lib/components/file-size/file-size.pipe.ts","../../../../projects/valtimo/components/src/lib/components/uploader/uploader.component.ts","../../../../projects/valtimo/components/src/lib/components/uploader/uploader.component.html","../../../../projects/valtimo/components/src/lib/components/file-size/file-size.module.ts","../../../../projects/valtimo/components/src/lib/components/uploader/uploader.module.ts","../../../../projects/valtimo/components/src/lib/components/alert/alert.service.ts","../../../../projects/valtimo/components/src/lib/components/alert/alert.component.ts","../../../../projects/valtimo/components/src/lib/components/alert/alert.component.html","../../../../projects/valtimo/components/src/lib/components/alert/alert.module.ts","../../../../projects/valtimo/components/src/lib/components/data-list/data-list.component.ts","../../../../projects/valtimo/components/src/lib/components/data-list/data-list.component.html","../../../../projects/valtimo/components/src/lib/components/data-list/data-list.module.ts","../../../../projects/valtimo/components/src/lib/components/form-io/services/form-io-translation.service.ts","../../../../projects/valtimo/components/src/lib/components/form-io/services/form-io-state.service.ts","../../../../projects/valtimo/components/src/lib/components/form-io/services/form-io-dom.service.ts","../../../../projects/valtimo/components/src/lib/components/form-io/services/form-io-local-storage.service.ts","../../../../projects/valtimo/components/src/lib/components/form-io/services/index.ts","../../../../projects/valtimo/components/src/lib/components/form-io/components/form-io/form-io.component.ts","../../../../projects/valtimo/components/src/lib/components/form-io/components/form-io/form-io.component.html","../../../../projects/valtimo/components/src/lib/components/form-io/components/form-io-builder/form-io-builder.utils.ts","../../../../projects/valtimo/components/src/lib/components/form-io/components/form-io-builder/form-io-builder.component.ts","../../../../projects/valtimo/components/src/lib/components/form-io/components/form-io-builder/form-io-builder.component.html","../../../../projects/valtimo/components/src/lib/components/form-io/formio-config.ts","../../../../projects/valtimo/components/src/lib/components/progress-bar/progress-bar.component.ts","../../../../projects/valtimo/components/src/lib/components/progress-bar/progress-bar.component.html","../../../../projects/valtimo/components/src/lib/components/webcam/webcam.component.ts","../../../../projects/valtimo/components/src/lib/components/webcam/webcam.component.html","../../../../projects/valtimo/components/src/lib/components/dropzone/dropzone.component.ts","../../../../projects/valtimo/components/src/lib/components/dropzone/dropzone.component.html","../../../../projects/valtimo/components/src/lib/components/form-io/components/form-io-uploader/form-io-uploader.component.ts","../../../../projects/valtimo/components/src/lib/components/form-io/components/form-io-uploader/form-io-uploader.component.html","../../../../projects/valtimo/components/src/lib/components/progress-bar/progress-bar.module.ts","../../../../projects/valtimo/components/src/lib/components/webcam/webcam.module.ts","../../../../projects/valtimo/components/src/lib/components/dropzone/dropzone.module.ts","../../../../projects/valtimo/components/src/lib/components/form-io/components/form-io-current-user/form-io-current-user.component.ts","../../../../projects/valtimo/components/src/lib/components/form-io/components/form-io-iban/iban.validators.ts","../../../../projects/valtimo/components/src/lib/components/form-io/components/form-io-iban/iban.component.ts","../../../../projects/valtimo/components/src/lib/components/form-io/components/form-io-iban/iban.component.html","../../../../projects/valtimo/components/src/lib/directives/tooltip/tooltip.component.ts","../../../../projects/valtimo/components/src/lib/directives/tooltip/tooltip.component.html","../../../../projects/valtimo/components/src/lib/directives/tooltip/tooltip.directive.ts","../../../../projects/valtimo/components/src/lib/components/tooltip-icon/tooltip-icon.component.ts","../../../../projects/valtimo/components/src/lib/components/tooltip-icon/tooltip-icon.component.html","../../../../projects/valtimo/components/src/lib/components/input-label/input-label.component.ts","../../../../projects/valtimo/components/src/lib/components/input-label/input-label.component.html","../../../../projects/valtimo/components/src/lib/directives/tooltip/tooltip.module.ts","../../../../projects/valtimo/components/src/lib/components/tooltip-icon/tooltip-icon.module.ts","../../../../projects/valtimo/components/src/lib/components/input-label/input-label.module.ts","../../../../projects/valtimo/components/src/lib/components/value-path-selector/value-path-selector.component.ts","../../../../projects/valtimo/components/src/lib/components/value-path-selector/value-path-selector.component.html","../../../../projects/valtimo/components/src/lib/components/form-io/components/formio-value-resolver-selector/formio-value-resolver-selector.component.ts","../../../../projects/valtimo/components/src/lib/components/form-io/components/formio-value-resolver-selector/formio-value-resolver-selector.component.html","../../../../projects/valtimo/components/src/lib/components/form-io/components/form-io-dummy/dummy.component.ts","../../../../projects/valtimo/components/src/lib/components/form-io/components/form-io-currency/currency.component.ts","../../../../projects/valtimo/components/src/lib/components/form-io/components/form-io-currency/currency.component.html","../../../../projects/valtimo/components/src/lib/components/form-io/form-io.module.ts","../../../../projects/valtimo/components/src/lib/components/modal/modal.component.ts","../../../../projects/valtimo/components/src/lib/components/modal/modal.component.html","../../../../projects/valtimo/components/src/lib/components/modal/modal.module.ts","../../../../projects/valtimo/components/src/lib/components/spinner/spinner.component.ts","../../../../projects/valtimo/components/src/lib/components/spinner/spinner.component.html","../../../../projects/valtimo/components/src/lib/components/spinner/spinner.module.ts","../../../../projects/valtimo/components/src/lib/components/searchable-dropdown/searchable-dropdown.component.ts","../../../../projects/valtimo/components/src/lib/components/searchable-dropdown/searchable-dropdown.component.html","../../../../projects/valtimo/components/src/lib/components/searchable-dropdown/searchable-dropdown.module.ts","../../../../projects/valtimo/components/src/lib/components/form-io/components/form-io-uploader/form-io-uploader-edit-form.ts","../../../../projects/valtimo/components/src/lib/components/form-io/components/form-io-uploader/form-io-uploader.formio.ts","../../../../projects/valtimo/components/src/lib/components/form-io/components/form-io-current-user/form-io-current-user-edit-form.ts","../../../../projects/valtimo/components/src/lib/components/form-io/components/form-io-current-user/form-io-current-user.formio.ts","../../../../projects/valtimo/components/src/lib/components/form-io/components/form-io-iban/iban.formio.ts","../../../../projects/valtimo/components/src/lib/components/form-io/components/form-io-currency/currency-edit-form.ts","../../../../projects/valtimo/components/src/lib/components/form-io/components/form-io-currency/currency.formio.ts","../../../../projects/valtimo/components/src/lib/components/form-io/components/form-io-resource-selector/form-io-resource-selector.formio.ts","../../../../projects/valtimo/components/src/lib/components/searchable-dropdown-select/searchable-dropdown-select.component.ts","../../../../projects/valtimo/components/src/lib/components/searchable-dropdown-select/searchable-dropdown-select.component.html","../../../../projects/valtimo/components/src/lib/components/searchable-dropdown-select/searchable-dropdown-select.module.ts","../../../../projects/valtimo/components/src/lib/components/multiselect-dropdown/multiselect-dropdown.component.ts","../../../../projects/valtimo/components/src/lib/components/multiselect-dropdown/multiselect-dropdown.component.html","../../../../projects/valtimo/components/src/lib/components/multiselect-dropdown/multiselect-dropdown.module.ts","../../../../projects/valtimo/components/src/lib/directives/digit-only/digit-only.directive.ts","../../../../projects/valtimo/components/src/lib/components/input/input.component.ts","../../../../projects/valtimo/components/src/lib/components/input/input.component.html","../../../../projects/valtimo/components/src/lib/components/select/select.component.ts","../../../../projects/valtimo/components/src/lib/components/select/select.component.html","../../../../projects/valtimo/components/src/lib/components/multi-input/components/key-value/key-value.component.ts","../../../../projects/valtimo/components/src/lib/components/multi-input/components/key-value/key-value.component.html","../../../../projects/valtimo/components/src/lib/components/multi-input/components/single-value/single-value.component.ts","../../../../projects/valtimo/components/src/lib/components/multi-input/components/single-value/single-value.component.html","../../../../projects/valtimo/components/src/lib/components/multi-input/components/key-dropdown-value/key-dropdown-value.component.ts","../../../../projects/valtimo/components/src/lib/components/multi-input/components/key-dropdown-value/key-dropdown-value.component.html","../../../../projects/valtimo/components/src/lib/components/multi-input/components/arbitrary-amount-value/arbitrary-amount-value.component.ts","../../../../projects/valtimo/components/src/lib/components/multi-input/components/arbitrary-amount-value/arbitrary-amount-value.component.html","../../../../projects/valtimo/components/src/lib/components/value-path-selector/index.ts","../../../../projects/valtimo/components/src/lib/components/multi-input/components/key-value-path-selector/key-value-path-selector.component.ts","../../../../projects/valtimo/components/src/lib/components/multi-input/components/key-value-path-selector/key-value-path-selector.component.html","../../../../projects/valtimo/components/src/lib/components/multi-input/components/value-path-selector-value/value-path-selector-value.component.ts","../../../../projects/valtimo/components/src/lib/components/multi-input/components/value-path-selector-value/value-path-selector-value.component.html","../../../../projects/valtimo/components/src/lib/components/multi-input/components/value-path-selector-dropdown-value/value-path-selector-dropdown-value.component.ts","../../../../projects/valtimo/components/src/lib/components/multi-input/components/value-path-selector-dropdown-value/value-path-selector-dropdown-value.component.html","../../../../projects/valtimo/components/src/lib/components/multi-input/carbon-multi-input.component.ts","../../../../projects/valtimo/components/src/lib/components/multi-input/carbon-multi-input.component.html","../../../../projects/valtimo/components/src/lib/components/date-picker/date-picker.component.ts","../../../../projects/valtimo/components/src/lib/components/date-picker/date-picker.component.html","../../../../projects/valtimo/components/src/lib/components/multi-input-form/default-value.pipe.ts","../../../../projects/valtimo/components/src/lib/components/multi-input-form/multi-input-form.component.ts","../../../../projects/valtimo/components/src/lib/components/multi-input-form/multi-input-form.component.html","../../../../projects/valtimo/components/src/lib/components/radio/radio.component.ts","../../../../projects/valtimo/components/src/lib/components/radio/radio.component.html","../../../../projects/valtimo/components/src/lib/components/form/form.component.ts","../../../../projects/valtimo/components/src/lib/components/form/form.component.html","../../../../projects/valtimo/components/src/lib/components/search-fields/search-fields.component.ts","../../../../projects/valtimo/components/src/lib/components/search-fields/search-fields.component.html","../../../../projects/valtimo/components/src/lib/components/date-picker/date-picker.module.ts","../../../../projects/valtimo/components/src/lib/components/form/form.module.ts","../../../../projects/valtimo/components/src/lib/components/input/input.module.ts","../../../../projects/valtimo/components/src/lib/components/select/select.module.ts","../../../../projects/valtimo/components/src/lib/components/search-fields/search-fields.module.ts","../../../../projects/valtimo/components/src/lib/components/date-time-picker/date-time-picker.component.ts","../../../../projects/valtimo/components/src/lib/components/date-time-picker/date-time-picker.component.html","../../../../projects/valtimo/components/src/lib/components/multi-input/components/key-value/index.ts","../../../../projects/valtimo/components/src/lib/components/multi-input/components/single-value/index.ts","../../../../projects/valtimo/components/src/lib/components/multi-input/components/key-dropdown-value/index.ts","../../../../projects/valtimo/components/src/lib/components/multi-input/components/arbitrary-amount-value/index.ts","../../../../projects/valtimo/components/src/lib/components/multi-input/components/key-value-path-selector/index.ts","../../../../projects/valtimo/components/src/lib/components/multi-input/components/value-path-selector-value/index.ts","../../../../projects/valtimo/components/src/lib/components/multi-input/components/value-path-selector-dropdown-value/index.ts","../../../../projects/valtimo/components/src/lib/components/multi-input/components/index.ts","../../../../projects/valtimo/components/src/lib/components/multi-input/carbon-multi-input.module.ts","../../../../projects/valtimo/components/src/lib/components/confirmation-modal/confirmation-modal.component.ts","../../../../projects/valtimo/components/src/lib/components/confirmation-modal/confirmation-modal.component.html","../../../../projects/valtimo/components/src/lib/components/confirmation-modal/confirmation-modal.module.ts","../../../../projects/valtimo/components/src/lib/components/expansion-panel/expansion-panel.component.ts","../../../../projects/valtimo/components/src/lib/components/expansion-panel/expansion-panel.component.html","../../../../projects/valtimo/components/src/lib/components/expansion-panel/expansion-panel.module.ts","../../../../projects/valtimo/components/src/lib/components/editor/editor.service.ts","../../../../projects/valtimo/components/src/lib/directives/fit-page/fit-page.directive.ts","../../../../projects/valtimo/components/src/lib/components/editor/editor.component.ts","../../../../projects/valtimo/components/src/lib/components/editor/editor.component.html","../../../../projects/valtimo/components/src/lib/components/editor/editor.module.ts","../../../../projects/valtimo/components/src/lib/components/status-selector/status-selector.component.ts","../../../../projects/valtimo/components/src/lib/components/status-selector/status-selector.component.html","../../../../projects/valtimo/components/src/lib/components/form-io/components/formio-value-resolver-selector/formio-value-resolver-selector-edit-form.ts","../../../../projects/valtimo/components/src/lib/components/form-io/components/formio-value-resolver-selector/formio-value-resolver-selector.formio.ts","../../../../projects/valtimo/components/src/lib/components/form-io/components/form-io-dummy/dummy.formio.ts","../../../../projects/valtimo/components/src/lib/components/table/table.component.ts","../../../../projects/valtimo/components/src/lib/components/table/table.component.html","../../../../projects/valtimo/components/src/lib/components/table/table.module.ts","../../../../projects/valtimo/components/src/lib/components/v-modal/modal.component.ts","../../../../projects/valtimo/components/src/lib/components/v-modal/modal.component.html","../../../../projects/valtimo/components/src/lib/components/v-modal/modal.module.ts","../../../../projects/valtimo/components/src/lib/components/stepper/stepper-container/stepper-container.component.ts","../../../../projects/valtimo/components/src/lib/components/stepper/stepper-container/stepper-container.component.html","../../../../projects/valtimo/components/src/lib/components/stepper/stepper-step/stepper-step.component.ts","../../../../projects/valtimo/components/src/lib/components/stepper/stepper-step/stepper-step.component.html","../../../../projects/valtimo/components/src/lib/components/stepper/stepper-content/stepper-content.component.ts","../../../../projects/valtimo/components/src/lib/components/stepper/stepper-content/stepper-content.component.html","../../../../projects/valtimo/components/src/lib/components/stepper/stepper-footer-step/stepper-footer-step.component.ts","../../../../projects/valtimo/components/src/lib/components/stepper/stepper-footer-step/stepper-footer-step.component.html","../../../../projects/valtimo/components/src/lib/components/stepper/stepper-footer/stepper-footer.component.ts","../../../../projects/valtimo/components/src/lib/components/stepper/stepper-footer/stepper-footer.component.html","../../../../projects/valtimo/components/src/lib/components/stepper/stepper-header/stepper-header.component.ts","../../../../projects/valtimo/components/src/lib/components/stepper/stepper-header/stepper-header.component.html","../../../../projects/valtimo/components/src/lib/components/stepper/stepper.module.ts","../../../../projects/valtimo/components/src/lib/components/prompt/prompt.component.ts","../../../../projects/valtimo/components/src/lib/components/prompt/prompt.component.html","../../../../projects/valtimo/components/src/lib/components/prompt/prompt.module.ts","../../../../projects/valtimo/components/src/lib/components/multi-input-form/multi-input-form.module.ts","../../../../projects/valtimo/components/src/lib/components/radio/radio.module.ts","../../../../projects/valtimo/components/src/lib/components/pending-changes/pending-changes.component.ts","../../../../projects/valtimo/components/src/lib/components/case-tags-selector/case-tags-selector.component.ts","../../../../projects/valtimo/components/src/lib/components/case-tags-selector/case-tags-selector.component.html","../../../../projects/valtimo/components/src/lib/components/render-in-body/render-in-body.component.ts","../../../../projects/valtimo/components/src/lib/components/json-editor/json-editor.component.ts","../../../../projects/valtimo/components/src/lib/components/json-editor/json-editor.component.html","../../../../projects/valtimo/components/src/lib/components/auto-key-input/auto-key-input.component.ts","../../../../projects/valtimo/components/src/lib/components/auto-key-input/auto-key-input.component.html","../../../../projects/valtimo/components/src/lib/components/list-column-view/list-column-view.component.ts","../../../../projects/valtimo/components/src/lib/components/list-column-view/list-column-view.component.html","../../../../projects/valtimo/components/src/lib/directives/context-menu.directive.ts","../../../../projects/valtimo/components/src/lib/components/quick-search/modal/quick-search-modal.component.ts","../../../../projects/valtimo/components/src/lib/components/quick-search/modal/quick-search-modal.component.html","../../../../projects/valtimo/components/src/lib/components/quick-search/quick-search.component.ts","../../../../projects/valtimo/components/src/lib/components/quick-search/quick-search.component.html","../../../../projects/valtimo/components/src/lib/components/mdi-icon-selector/mdi-icon-selector.component.ts","../../../../projects/valtimo/components/src/lib/components/mdi-icon-selector/mdi-icon-selector.component.html","../../../../projects/valtimo/components/src/lib/components/mdi-icon-viewer/mdi-icon-viewer.component.ts","../../../../projects/valtimo/components/src/lib/components/mdi-icon-viewer/mdi-icon-viewer.component.html","../../../../projects/valtimo/components/src/lib/directives/render-in-page-header/render-in-page-header.directive.ts","../../../../projects/valtimo/components/src/lib/directives/valtimo-cds-overflow-button/valtimo-cds-overflow-button.directive.ts","../../../../projects/valtimo/components/src/lib/directives/remove-classnames/remove-classnames.directive.ts","../../../../projects/valtimo/components/src/lib/directives/muuri/muuri.directive.ts","../../../../projects/valtimo/components/src/lib/directives/muuri/muuri-item.component.ts","../../../../projects/valtimo/components/src/lib/directives/muuri/muuri-directive.module.ts","../../../../projects/valtimo/components/src/lib/directives/read-only.directive.ts","../../../../projects/valtimo/components/src/lib/directives/observe-size/observe-size.directive.ts","../../../../projects/valtimo/components/src/public_api.ts","../../../../projects/valtimo/components/src/valtimo-components.ts"],"sourcesContent":["/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport class Alert {\n type: AlertType;\n message: string;\n confirmations: Array<AlertConfirmation>;\n confirm: any;\n iconClass: string;\n constructor(init?: Partial<Alert>) {\n Object.assign(this, init);\n }\n}\n\nexport interface AlertConfirmation {\n label: string;\n class: string;\n value: any;\n}\n\nexport enum AlertType {\n Success,\n Error,\n Info,\n Warning,\n Notification,\n ModalNotification,\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\ntype ButtonType =\n | 'primary'\n | 'secondary'\n | 'success'\n | 'text'\n | 'icon-danger'\n | 'danger'\n | 'icon-grey'\n | 'icon-danger-small'\n | 'icon-grey-small';\n\nexport {ButtonType};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {TemplateRef} from '@angular/core';\nimport {CarbonTag} from './carbon-tag.model';\n\nenum ViewType {\n ACTION = 'dropdownActions',\n ARRAY_COUNT = 'arrayCount',\n BOOLEAN = 'boolean',\n CURRENCY = 'currency',\n DATE = 'date',\n DATE_TIME = 'datetime',\n ENUM = 'enum',\n NUMBER = 'number',\n PERCENT = 'percent',\n TAGS = 'tags',\n TEMPLATE = 'template',\n TEXT = 'text',\n UNDERSCORES_TO_SPACES = 'underscoresToSpaces',\n HIDDEN = 'hidden',\n}\ninterface CarbonListSelectTranslations {\n single: string;\n multiple: string;\n}\n\ninterface CarbonListPaginationTranslations {\n itemsPerPage: string;\n totalItem: string;\n totalItems: string;\n}\n\ninterface CarbonListItem {\n [key: string]: any;\n locked?: boolean;\n tags?: CarbonTag[];\n}\n\ninterface CarbonListTranslations {\n select: CarbonListSelectTranslations;\n pagination: CarbonListPaginationTranslations;\n}\n\ninterface CarbonListBatchText {\n SINGLE: string;\n MULTIPLE: string;\n}\n\ninterface ActionItem {\n label: string;\n callback: (_) => void;\n disabledCallback?: (_) => boolean;\n iconClass?: string;\n type?: 'normal' | 'danger';\n}\n\ninterface ColumnConfig extends ListField {\n viewType?: string | ViewType;\n className?: string;\n currencyCode?: string;\n digitsInfo?: string;\n display?: string;\n enum?: Array<string> | {[key: string]: string};\n format?: string;\n template?: TemplateRef<any>;\n templateData?: object;\n tooltipCharLimit?: number;\n tagAmount?: number;\n}\n\nenum MoveRowDirection {\n UP = 'UP',\n DOWN = 'DOWN',\n}\n\ninterface MoveRowEvent {\n direction: MoveRowDirection;\n index: number;\n}\n\nconst DEFAULT_LIST_TRANSLATIONS: CarbonListTranslations = {\n select: {single: 'interface.list.singleSelect', multiple: 'interface.list.multipleSelect'},\n pagination: {\n itemsPerPage: 'interface.list.itemsPerPage',\n totalItem: 'interface.list.totalItem',\n totalItems: 'interface.list.totalItems',\n },\n};\n\ninterface ListField {\n key: string;\n label: string;\n viewType?: string;\n default?: string | boolean;\n sortable?: boolean;\n tagAmount?: number;\n}\n\ninterface CarbonListNoResultsMessage {\n description: string;\n isSearchResult: boolean;\n title: string;\n}\n\ninterface DragAndDropEvent {\n startIndex: number;\n newIndex: number;\n}\n\nexport {\n ActionItem,\n CarbonListBatchText,\n CarbonListSelectTranslations,\n CarbonListItem,\n CarbonListTranslations,\n ColumnConfig,\n DEFAULT_LIST_TRANSLATIONS,\n ListField,\n MoveRowDirection,\n MoveRowEvent,\n ViewType,\n CarbonListNoResultsMessage,\n DragAndDropEvent,\n};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\ninterface CarbonPaginatorConfig {\n itemsPerPageOptions?: number[];\n showPageInput?: boolean;\n}\n\ninterface CarbonPaginationSelection {\n page: number;\n size: number;\n}\n\nconst DEFAULT_PAGINATOR_CONFIG: CarbonPaginatorConfig = {\n itemsPerPageOptions: [10, 20, 30, 40, 50],\n showPageInput: true,\n};\n\nexport {CarbonPaginatorConfig, CarbonPaginationSelection, DEFAULT_PAGINATOR_CONFIG};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {TagType} from 'carbon-components-angular';\n\nexport interface CarbonTag {\n content: string;\n type: TagType;\n ellipsisContent?: string;\n}\n\nexport const TAG_ELLIPSIS_LIMIT = 20;\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nenum CARBON_THEME {\n WHITE = 'white',\n G10 = 'g10',\n G90 = 'g90',\n G100 = 'g100',\n}\n\nexport {CARBON_THEME};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport interface ChoiceField {\n id: number;\n keyName: string;\n title: string;\n}\n\nexport interface ChoiceFieldValue {\n id: number;\n choiceField: ChoiceField;\n deprecated: boolean;\n name: string;\n sortOrder: number;\n value: string;\n deprecatedDisplayString: string;\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport interface ExternalConnector {\n reference: string;\n url: string;\n httpMethod: string;\n body: string;\n headers: {[key: string]: string};\n mappedVariablesResponse: {[key: string]: string};\n}\n\nexport interface ChoicefieldValue {\n id: number;\n name: string;\n deprecated: boolean;\n sortOrder: number;\n value: string;\n choiceField: any;\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\ntype ConfidentialityLevel =\n | 'openbaar'\n | 'beperkt_openbaar'\n | 'intern'\n | 'zaakvertrouwelijk'\n | 'vertrouwelijk'\n | 'confidentieel'\n | 'geheim'\n | 'zeer_geheim';\n\ntype DocumentStatus = 'in_bewerking' | 'ter_vaststelling' | 'definitief' | 'gearchiveerd';\n\ntype DocumentLanguage = 'nld' | 'eng' | 'deu';\n\ninterface DocumentenApiMetadata {\n title: string;\n description: string;\n filename: string;\n confidentialityLevel: ConfidentialityLevel;\n author: string;\n status: DocumentStatus;\n creationDate: string;\n receiptDate: string;\n sendDate: string;\n language: DocumentLanguage;\n informatieobjecttype: string;\n}\n\ntype AdditionalDocumentDate = 'sent' | 'received' | 'neither';\n\nexport {\n DocumentenApiMetadata,\n ConfidentialityLevel,\n DocumentStatus,\n DocumentLanguage,\n AdditionalDocumentDate,\n};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {editor} from 'monaco-editor';\n\ninterface EditorModel {\n value: string;\n language?: string;\n uri?: string;\n}\n\ntype MonacoEditor = typeof editor;\n\nenum MonacoTheme {\n VS = 'vs',\n VSDARK = 'vs-dark',\n}\n\nexport {EditorModel, MonacoEditor, MonacoTheme};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n AlertsOptions,\n ErrorsOptions,\n FormioBeforeSubmit,\n FormioHookOptions,\n FormioOptions,\n} from '@formio/angular';\n\ninterface FormioSubmission {\n data: {\n [key: string]: any;\n submit?: boolean;\n };\n metadata: object;\n state: string;\n}\n\ninterface ResourceOption {\n label: string;\n value: string;\n}\n\nclass AlertsOptionsImpl implements AlertsOptions {\n submitMessage: string;\n\n constructor(submitMessage: string) {\n this.submitMessage = submitMessage;\n }\n}\n\ninterface ValtimoFormioOptions extends FormioOptions {\n setAlertMessage(submitMessage: string);\n setHooks(submitFunction: FormioBeforeSubmit);\n}\n\nclass FormioOptionsImpl implements ValtimoFormioOptions {\n errors?: ErrorsOptions;\n alerts?: AlertsOptions;\n disableAlerts?: boolean;\n language?: string;\n i18n?: object;\n fileService?: object;\n hooks?: FormioHookOptions;\n readonly?: boolean;\n decimalSeparator?: string;\n thousandsSeparator?: string;\n\n constructor() {}\n\n setAlertMessage(submitMessage: string) {\n this.alerts = new AlertsOptionsImpl(submitMessage);\n }\n\n setHooks(beforeSubmit: FormioBeforeSubmit) {\n this.hooks = {beforeSubmit};\n }\n}\n\ninterface ValidateOptions {\n required?: boolean;\n minLength?: number;\n maxLength?: number;\n pattern?: string;\n custom?: any;\n customPrivate?: boolean;\n min?: number;\n max?: number;\n minSelectedCount?: number;\n maxSelectedCount?: number;\n minWords?: number;\n maxWords?: number;\n email?: boolean;\n url?: boolean;\n date?: boolean;\n day?: boolean;\n json?: string;\n mask?: boolean;\n minDate?: any;\n maxDate?: any;\n}\n\ninterface BuilderInfo {\n title: string;\n group: string;\n icon: string;\n documentation?: string;\n weight?: number;\n schema?: ExtendedComponentSchema;\n}\n\ninterface ComponentSchema<T = any> {\n type?: string;\n key?: string;\n label?: string;\n placeholder?: string;\n input?: boolean;\n tableView?: boolean;\n multiple?: boolean;\n protected?: boolean;\n prefix?: string;\n suffix?: string;\n defaultValue?: T;\n clearOnHide?: boolean;\n unique?: boolean;\n persistent?: boolean;\n hidden?: boolean;\n validate?: ValidateOptions;\n conditional?: ConditionalOptions;\n errors?: Object;\n logic?: Object[];\n customClass?: string;\n dataGridLabel?: boolean;\n labelPosition?: 'top' | 'bottom' | 'left' | 'right';\n labelWidth?: number;\n labelMargin?: number;\n description?: string;\n errorLabel?: string;\n tooltip?: string;\n hideLabel?: boolean;\n tabindex?: string;\n disabled?: boolean;\n autofocus?: boolean;\n dbIndex?: boolean;\n customDefaultValue?: any;\n calculateValue?: any;\n allowCalculateOverride?: boolean;\n widget?: any;\n refreshOn?: string;\n clearOnRefresh?: boolean;\n validateOn?: 'change' | 'blur';\n}\n\ntype ExtendedComponentSchema<T = any> = ComponentSchema<T> & {[key: string]: any};\n\ninterface ConditionalOptions {\n show?: boolean;\n when?: string;\n eq?: string;\n json?: Object;\n}\n\nexport {\n FormioSubmission,\n ResourceOption,\n AlertsOptionsImpl,\n FormioOptionsImpl,\n ValtimoFormioOptions,\n ValidateOptions,\n BuilderInfo,\n ComponentSchema,\n ExtendedComponentSchema,\n ConditionalOptions,\n};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\ninterface FormOutput {\n [key: string]: any;\n}\n\nexport {FormOutput};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\ntype InputType = 'text' | 'textarea' | 'number' | 'password' | 'digitOnly' | 'checkbox' | 'bsn';\n\nexport {InputType};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\ntype ModalData = any;\n\ntype ModalCloseEventType = 'close' | 'closeAndRefresh';\n\ntype CarbonModalSize = 'xs' | 'sm' | 'md' | 'lg';\n\nexport {ModalData, ModalCloseEventType, CarbonModalSize};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {FormOutput} from '../models';\nimport {ListItem} from 'carbon-components-angular';\n\ntype MultiInputType =\n | 'keyValue'\n | 'value'\n | 'keyDropdownValue'\n | 'arbitraryAmount'\n | 'keyValuePathSelector'\n | 'valuePathSelectorValue'\n | 'valuePathSelectorDropdownValue';\n\ninterface MultiInputKeyValue {\n uuid?: string;\n key?: string;\n value?: string;\n dropdown?: string;\n [index: string]: string;\n}\n\ninterface MultiInputFormValue {\n uuid?: string;\n value: FormOutput | object;\n expanded?: boolean;\n}\n\ntype MultiInputValues = Array<MultiInputKeyValue>;\n\ntype MultiInputFormsValues = Array<MultiInputFormValue>;\n\ntype MultiInputOutput = MultiInputValues | Array<string>;\n\ninterface ListItemWithId extends ListItem {\n id: string;\n}\n\ninterface ArbitraryInputTitles {\n [indexKey: string]: string;\n}\n\ntype MultiInputChangeEventType = 'key' | 'value' | 'dropdown' | 'arbitrary';\n\nexport {\n MultiInputType,\n MultiInputValues,\n MultiInputKeyValue,\n MultiInputOutput,\n MultiInputFormValue,\n MultiInputFormsValues,\n ListItemWithId,\n ArbitraryInputTitles,\n MultiInputChangeEventType,\n};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {SortState} from '@valtimo/document';\n\ninterface Pagination {\n collectionSize: number | string;\n page: number;\n size: number;\n sort?: SortState;\n itemsPerPageOptions?: number[];\n showPageInput?: boolean;\n}\n\nconst DEFAULT_PAGINATION: Pagination = {\n collectionSize: 0,\n page: 1,\n size: 10,\n itemsPerPageOptions: [10, 20, 30, 40, 50],\n showPageInput: true,\n};\n\nexport {Pagination, DEFAULT_PAGINATION};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\ninterface RadioValue {\n value: any;\n disabled?: boolean;\n title: string;\n titleTranslationKey?: string;\n}\n\nexport {RadioValue};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\ninterface ThemeOption {\n name: string;\n value: string;\n}\n\nexport {ThemeOption};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport interface DropdownItem {\n text: string;\n id: string;\n}\n\nexport type DropdownButtonStyle = 'button' | 'underlinedText';\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\ntype SelectItemId = string | number;\ntype SelectedValue = SelectItemId | Array<SelectItemId>;\n\ninterface SelectItem {\n id: SelectItemId;\n text?: string;\n translationKey?: string;\n}\n\nexport {SelectItem, SelectItemId, SelectedValue};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\ntype Direction = 'ASC' | 'DESC';\n\ninterface Sort {\n name: string;\n direction: Direction;\n}\n\ninterface SortState {\n state: Sort;\n isSorting: boolean;\n}\n\nexport {Direction, Sort, SortState};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\ninterface Step {\n titleTranslationKey: string;\n stepIndex: number;\n isFirst?: boolean;\n isLast?: boolean;\n}\n\nexport {Step};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\ninterface TableColumn {\n dataKey: string;\n labelTranslationKey: string;\n sortable?: boolean;\n viewType?: string;\n default?: boolean;\n}\n\ninterface TablePagination {\n collectionSize: number;\n page: number;\n size: number;\n}\n\nexport {TableColumn, TablePagination};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nenum SelectableCarbonTheme {\n G10 = 'g10',\n G90 = 'g90',\n SYSTEM = 'system',\n}\n\nenum CurrentCarbonTheme {\n G10 = 'g10',\n G90 = 'g90',\n G100 = 'g100',\n WHITE = 'white',\n}\n\nexport {SelectableCarbonTheme, CurrentCarbonTheme};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport interface TimelineItem {\n date: string;\n time: string;\n user: string;\n activity: string;\n summaryTranslationKey: string;\n summaryTranslationParams: object;\n supportedActionIds?: Array<string>;\n customData?: object;\n}\n\nexport class TimelineItemImpl implements TimelineItem {\n private readonly _date: string;\n private readonly _time: string;\n private readonly _user: string;\n private readonly _activity: string;\n private readonly _summaryTranslationKey: string;\n private readonly _summaryTranslationParams: object;\n private readonly _customData?: object;\n private readonly _supportedActionIds?: Array<string>;\n\n constructor(\n date: string,\n time: string,\n user: string,\n activity: string,\n summaryTranslationKey: string,\n summaryTranslationParams: object,\n customData?: object,\n supportedActionIds?: Array<string>\n ) {\n this._date = date;\n this._time = time;\n this._user = user;\n this._activity = activity;\n this._summaryTranslationKey = summaryTranslationKey;\n this._summaryTranslationParams = summaryTranslationParams;\n this._customData = customData;\n this._supportedActionIds = supportedActionIds;\n }\n\n get date(): string {\n return this._date;\n }\n\n get time(): string {\n return this._time;\n }\n\n get user(): string {\n return this._user;\n }\n\n get activity(): string {\n return this._activity;\n }\n\n get summaryTranslationKey(): string {\n return this._summaryTranslationKey;\n }\n\n get summaryTranslationParams(): object {\n return this._summaryTranslationParams;\n }\n\n get customData(): object {\n return this._customData;\n }\n\n get supportedActionIds(): Array<string> {\n return this._supportedActionIds;\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\ntype TitleType = 'h1' | 'h2' | 'h3' | 'h4' | 'h5';\n\nexport {TitleType};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\ninterface TopbarLogo {\n base64string: string;\n isSvg: boolean;\n}\n\nexport {TopbarLogo};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {ListItem} from 'carbon-components-angular';\n\nenum ValuePathType {\n FIELD = 'FIELD',\n COLLECTION = 'COLLECTION',\n}\n\ninterface ValuePathResponse {\n path: string;\n type: ValuePathType;\n children?: ValuePathResponse[];\n}\n\ninterface ValuePathSelectorCache {\n [documentDefinitionName: string]: {\n [version: string | number]: {\n [prefix: string]: {\n [type in ValuePathType]: ValuePathItem[];\n };\n };\n };\n}\n\ninterface ValuePathItem {\n path: string;\n children?: string[];\n}\n\ntype DocumentDefinitionItemsCache = ListItem[];\n\nenum ValuePathSelectorPrefix {\n DOC = 'doc',\n CASE = 'case',\n ZAAKOBJECT = 'zaakobject',\n ZAAKRESULTAAT = 'zaakresultaat',\n ZAAKSTATUS = 'zaakstatus',\n ZAAK = 'zaak',\n}\n\nenum ValuePathSelectorInputMode {\n DROPDOWN,\n MANUAL,\n}\n\ntype ValuePathSelectorNotation = 'dots' | 'slashes';\n\nexport {\n ValuePathSelectorPrefix,\n ValuePathSelectorInputMode,\n DocumentDefinitionItemsCache,\n ValuePathSelectorNotation,\n ValuePathType,\n ValuePathResponse,\n ValuePathSelectorCache,\n ValuePathItem,\n};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {MenuItem} from '@valtimo/shared';\nimport {Observable} from 'rxjs';\n\ntype AppendMenuItemsFunction = (items: MenuItem[]) => Observable<MenuItem[]>;\n\nexport {AppendMenuItemsFunction};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {ListField} from '.';\n\nexport interface ListHiddenColumn {\n columnKey: string;\n}\n\nexport interface ListAvailableField extends ListField {\n selected: boolean | undefined;\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport interface ValtimoVersion {\n title: string;\n version: string;\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './alert.model';\nexport * from './button.model';\nexport * from './carbon-list.model';\nexport * from './carbon-pagination.model';\nexport * from './carbon-tag.model';\nexport * from './carbon-theme.model';\nexport * from './choice-field.model';\nexport * from './choicefield-value.model';\nexport * from './documenten-api-metadata.model';\nexport * from './editor.model';\nexport * from './form-io.model';\nexport * from './form.model';\nexport * from './input.model';\nexport * from './modal.model';\nexport * from './multi-input.model';\nexport * from './multi-input.model';\nexport * from './multi-input.model';\nexport * from './pagination.model';\nexport * from './quick-search.model';\nexport * from './radio.model';\nexport * from './right-sidebar.model';\nexport * from './searchable-dropdown.model';\nexport * from './select.model';\nexport * from './sort.model';\nexport * from './stepper.model';\nexport * from './table.model';\nexport * from './theme.model';\nexport * from './timeline.model';\nexport * from './title.model';\nexport * from './topbar.model';\nexport * from './value-path-selector.model';\nexport * from './menu.model';\nexport * from './list-hidden-column.model';\nexport * from './version.model';\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nconst CARBON_CONSTANTS = {\n modalAnimationMs: 240,\n};\n\nexport {CARBON_CONSTANTS};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nconst BOOLEAN_CONVERTER_VALUES = ['Yes', 'No'];\n\nexport {BOOLEAN_CONVERTER_VALUES};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nconst CASES_WITHOUT_STATUS_KEY = 'CASES_WITHOUT_STATUS_KEY';\n\nexport {CASES_WITHOUT_STATUS_KEY};\n","import {InjectionToken} from '@angular/core';\nimport {IQuickSearchService} from '../interfaces';\n\nexport const QUICK_SEARCH_SERVICE = new InjectionToken<IQuickSearchService<any>>(\n 'QUICK_SEARCH_SERVICE'\n);\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport const POPULAR_MDI_ICONS: string[] = [\n 'mdi-home',\n 'mdi-home-city',\n 'mdi-office-building',\n 'mdi-city',\n 'mdi-domain',\n 'mdi-account',\n 'mdi-account-circle',\n 'mdi-account-tie',\n 'mdi-account-group',\n 'mdi-account-multiple',\n 'mdi-account-cog',\n 'mdi-account-clock',\n 'mdi-account-heart',\n 'mdi-account-star',\n 'mdi-account-box',\n 'mdi-account-plus',\n 'mdi-account-check',\n 'mdi-account-key',\n 'mdi-briefcase',\n 'mdi-briefcase-account',\n 'mdi-briefcase-check',\n 'mdi-calendar',\n 'mdi-calendar-month',\n 'mdi-calendar-check',\n 'mdi-calendar-range',\n 'mdi-clipboard-text',\n 'mdi-clipboard-list',\n 'mdi-clipboard-check',\n 'mdi-clipboard-edit',\n 'mdi-folder',\n 'mdi-folder-open',\n 'mdi-folder-account',\n 'mdi-folder-multiple',\n 'mdi-folder-star',\n 'mdi-file',\n 'mdi-file-document',\n 'mdi-file-cog',\n 'mdi-file-table',\n 'mdi-file-chart',\n 'mdi-file-sign',\n 'mdi-file-tree',\n 'mdi-file-multiple',\n 'mdi-file-download',\n 'mdi-file-upload',\n 'mdi-file-pdf-box',\n 'mdi-file-image',\n 'mdi-file-music',\n 'mdi-file-video',\n 'mdi-book',\n 'mdi-book-open',\n 'mdi-book-open-page-variant',\n 'mdi-book-account',\n 'mdi-book-information-variant',\n 'mdi-notebook',\n 'mdi-note-text',\n 'mdi-text-box',\n 'mdi-text-box-check',\n 'mdi-email',\n 'mdi-email-check',\n 'mdi-email-open',\n 'mdi-email-newsletter',\n 'mdi-inbox',\n 'mdi-inbox-arrow-down',\n 'mdi-message',\n 'mdi-message-text',\n 'mdi-chat',\n 'mdi-comment',\n 'mdi-comment-text',\n 'mdi-comment-multiple',\n 'mdi-comment-processing',\n 'mdi-bell',\n 'mdi-bell-outline',\n 'mdi-bell-alert',\n 'mdi-bell-ring',\n 'mdi-alert',\n 'mdi-alert-circle',\n 'mdi-help-circle',\n 'mdi-information',\n 'mdi-lightbulb',\n 'mdi-check',\n 'mdi-check-circle',\n 'mdi-close',\n 'mdi-lock',\n 'mdi-lock-open',\n 'mdi-lock-check',\n 'mdi-shield',\n 'mdi-shield-check',\n 'mdi-shield-account',\n 'mdi-security',\n 'mdi-key',\n 'mdi-cog',\n 'mdi-cog-clockwise',\n 'mdi-settings-helper',\n 'mdi-tune',\n 'mdi-gauge',\n 'mdi-speedometer',\n 'mdi-view-dashboard',\n 'mdi-view-list',\n 'mdi-view-grid',\n 'mdi-table',\n 'mdi-chart-bar',\n 'mdi-chart-line',\n 'mdi-chart-timeline',\n 'mdi-timeline-text',\n 'mdi-timeline-clock',\n 'mdi-map',\n 'mdi-map-marker',\n 'mdi-map-marker-radius',\n 'mdi-map-marker-multiple',\n 'mdi-compass',\n 'mdi-earth',\n 'mdi-navigation',\n 'mdi-laptop',\n 'mdi-monitor',\n 'mdi-cellphone',\n 'mdi-tablet',\n 'mdi-web',\n 'mdi-cloud',\n 'mdi-database',\n 'mdi-server',\n 'mdi-lan',\n 'mdi-api',\n 'mdi-application-braces',\n 'mdi-cube',\n 'mdi-view-module',\n 'mdi-puzzle',\n 'mdi-pipe',\n 'mdi-certificate',\n 'mdi-seal',\n 'mdi-tag',\n 'mdi-tag-multiple',\n 'mdi-wallet',\n 'mdi-credit-card',\n 'mdi-cash-multiple',\n 'mdi-store',\n 'mdi-storefront',\n 'mdi-cart',\n 'mdi-truck',\n 'mdi-package',\n 'mdi-gift',\n 'mdi-rocket',\n 'mdi-rocket-launch',\n 'mdi-flag',\n 'mdi-trophy',\n 'mdi-star',\n 'mdi-heart',\n 'mdi-thumb-up',\n 'mdi-thumb-down',\n 'mdi-play-circle',\n 'mdi-pause-circle',\n 'mdi-image',\n 'mdi-camera',\n 'mdi-video',\n 'mdi-microphone',\n 'mdi-magnify',\n 'mdi-link',\n 'mdi-account-search',\n 'mdi-school',\n 'mdi-clipboard-pulse',\n 'mdi-chart-areaspline',\n 'mdi-chart-gantt',\n 'mdi-finance',\n 'mdi-bank',\n 'mdi-cash-register',\n 'mdi-poll',\n 'mdi-progress-check',\n 'mdi-progress-clock',\n 'mdi-timeline',\n 'mdi-timeline-alert',\n 'mdi-calendar-text',\n 'mdi-folder-information',\n 'mdi-folder-lock',\n 'mdi-folder-key',\n 'mdi-file-lock',\n 'mdi-file-search',\n 'mdi-file-question',\n 'mdi-cloud-sync',\n 'mdi-cloud-alert',\n 'mdi-database-search',\n 'mdi-server-security',\n 'mdi-lock-alert',\n 'mdi-lock-reset',\n 'mdi-account-lock',\n 'mdi-account-alert',\n 'mdi-badge-account-horizontal',\n 'mdi-badge-account-horizontal-outline',\n 'mdi-lightbulb-on',\n 'mdi-lifebuoy',\n 'mdi-headset',\n 'mdi-wrench',\n 'mdi-hammer-wrench',\n 'mdi-cog-transfer',\n 'mdi-tune-variant',\n 'mdi-clipboard-text-clock',\n 'mdi-clipboard-text-play',\n 'mdi-clipboard-flow',\n];\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './carbon.constants';\nexport * from './view-type-converter.constants';\nexport * from './status.constants';\nexport * from './quick-search.constants';\nexport * from './mdi.constants';\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Pipe, PipeTransform} from '@angular/core';\nimport {MenuItem} from '@valtimo/shared';\nimport {combineLatest, map, Observable} from 'rxjs';\nimport {TranslateService} from '@ngx-translate/core';\n\n@Pipe({name: 'menuItemTranslate', standalone: false})\nexport class MenuItemTranslationPipe implements PipeTransform {\n constructor(private readonly translateService: TranslateService) {}\n\n transform(menuItem: MenuItem): Observable<string> {\n const pageTranslationKey = 'pages.' + menuItem.title.toLowerCase() + '.title';\n const titleTranslationKey = menuItem.title;\n\n return combineLatest([\n this.translateService.stream(pageTranslationKey),\n this.translateService.stream(titleTranslationKey),\n ]).pipe(\n map(([pageTranslation, menuItemTitleTranslation]) => {\n if (pageTranslation !== pageTranslationKey) {\n return pageTranslation;\n } else if (menuItemTitleTranslation !== titleTranslationKey) {\n return menuItemTitleTranslation;\n }\n\n return menuItem.title;\n })\n );\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {MenuItemTranslationPipe} from './';\nimport {NgModule} from '@angular/core';\n\n@NgModule({\n declarations: [MenuItemTranslationPipe],\n exports: [MenuItemTranslationPipe],\n})\nexport class ComponentsPipesModule {}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Pipe, PipeTransform} from '@angular/core';\n\n@Pipe({name: 'caseCount', standalone: false})\nexport class CaseCountPipe implements PipeTransform {\n transform(caseCount: any): string {\n if (typeof caseCount === 'number') {\n if (caseCount > 99) {\n return '99+';\n }\n\n return `${caseCount}`;\n }\n\n return '';\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Pipe, PipeTransform} from '@angular/core';\n\n@Pipe({name: 'isArray', standalone: true})\nexport class IsArrayPipe implements PipeTransform {\n transform(value: any, minLength = 0): boolean {\n return Array.isArray(value) && value.length >= minLength;\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Pipe, PipeTransform} from '@angular/core';\n\n@Pipe({name: 'valtimoEllipsis', standalone: true})\nexport class EllipsisPipe implements PipeTransform {\n public transform(content: string, limit?: number | null): string {\n if (!limit) return content;\n\n return content.substring(0, limit) + (content.length > limit ? '...' : '');\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './menu-item-translation.pipe';\nexport * from './components-pipes.module';\nexport * from './case-count.pipe';\nexport * from './is-array.pipe';\nexport * from './ellipsis.pipe';\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {Injectable, OnDestroy} from '@angular/core';\nimport {BehaviorSubject, combineLatest, Observable, Subscription} from 'rxjs';\nimport {filter, map} from 'rxjs/operators';\nimport {CurrentCarbonTheme, SelectableCarbonTheme} from '../models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CdsThemeService implements OnDestroy {\n private readonly _preferredTheme$ = new BehaviorSubject<SelectableCarbonTheme>(\n SelectableCarbonTheme.G10\n );\n private readonly _currentTheme$ = new BehaviorSubject<CurrentCarbonTheme | null>(null);\n\n public get preferredTheme$(): Observable<SelectableCarbonTheme> {\n return this._preferredTheme$.pipe(filter(theme => !!theme));\n }\n\n public get currentTheme$(): Observable<CurrentCarbonTheme> {\n return this._currentTheme$.pipe(filter(theme => !!theme));\n }\n\n public get toggletipTheme$(): Observable<CurrentCarbonTheme> {\n return this.currentTheme$.pipe(\n map(currentTheme =>\n currentTheme === CurrentCarbonTheme.G10 ? CurrentCarbonTheme.G90 : CurrentCarbonTheme.WHITE\n )\n );\n }\n\n private readonly _subscriptions = new Subscription();\n\n constructor() {\n this.openDarkModeSubscription();\n }\n\n public ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n public setPreferredTheme(selectedTheme: SelectableCarbonTheme): void {\n if (selectedTheme) this._preferredTheme$.next(selectedTheme);\n }\n\n private openDarkModeSubscription(): void {\n combineLatest([this.getBrowserPrefersDarkModeObservable(), this.preferredTheme$]).subscribe(\n ([browserPrefersDarkMode, preferredTheme]) => {\n switch (preferredTheme) {\n case SelectableCarbonTheme.SYSTEM:\n if (browserPrefersDarkMode) {\n this.setThemeOnDocument(CurrentCarbonTheme.G90);\n } else {\n this.setThemeOnDocument(CurrentCarbonTheme.G10);\n }\n break;\n case SelectableCarbonTheme.G10:\n this.setThemeOnDocument(CurrentCarbonTheme.G10);\n break;\n case SelectableCarbonTheme.G90:\n this.setThemeOnDocument(CurrentCarbonTheme.G90);\n break;\n }\n }\n );\n }\n\n private setThemeOnDocument(theme: CurrentCarbonTheme): void {\n document.documentElement.setAttribute('data-carbon-theme', theme);\n this._currentTheme$.next(theme);\n }\n\n private getBrowserPrefersDarkModeObservable(signal?: AbortSignal): Observable<boolean> {\n return new Observable<boolean>(subscriber => {\n if (!window.matchMedia) {\n subscriber.error(new Error('No windows Media Match available'));\n }\n\n function emitValue(event: Event) {\n subscriber.next((event as MediaQueryListEvent).matches);\n }\n\n const mediaListQuery = window.matchMedia('(prefers-color-scheme: dark)');\n\n if (signal) {\n signal.onabort = () => {\n mediaListQuery.removeEventListener('change', emitValue);\n !subscriber.closed && subscriber.complete();\n };\n }\n\n mediaListQuery.addEventListener('change', emitValue);\n subscriber.next(mediaListQuery.matches);\n\n return () => {\n mediaListQuery.removeEventListener('change', emitValue);\n !subscriber.closed && subscriber.complete();\n };\n });\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {HttpClient} from '@angular/common/http';\nimport {Injectable} from '@angular/core';\nimport {ConfigService, Page} from '@valtimo/shared';\nimport {Observable} from 'rxjs';\nimport {ChoiceField, ChoiceFieldValue, ChoicefieldValue} from '../models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ChoiceFieldService {\n private valtimoApiConfig: any;\n\n constructor(\n private http: HttpClient,\n private configService: ConfigService\n ) {\n this.valtimoApiConfig = this.configService.config.valtimoApi;\n }\n\n query(params?: any): Observable<any> {\n return this.http.get<ChoiceField>(`${this.valtimoApiConfig.endpointUri}v1/choice-fields`, {\n observe: 'response',\n params,\n });\n }\n\n queryPage(params?: any): Observable<Page<ChoiceField>> {\n return this.http.get<Page<ChoiceField>>(\n `${this.valtimoApiConfig.endpointUri}v2/choice-fields`,\n {\n params,\n }\n );\n }\n\n get(id: string): Observable<any> {\n return this.http.get<ChoiceField>(`${this.valtimoApiConfig.endpointUri}v1/choice-fields/${id}`);\n }\n\n create(choiceField: any): Observable<any> {\n return this.http.post(`${this.valtimoApiConfig.endpointUri}v1/choice-fields`, choiceField);\n }\n\n delete(id: any) {\n return this.http.delete(`${this.valtimoApiConfig.endpointUri}v1/choice-fields/${id}`);\n }\n\n update(choiceField: any): Observable<any> {\n return this.http.put(`${this.valtimoApiConfig.endpointUri}v1/choice-fields`, choiceField);\n }\n\n queryValues(keyName: string, params?: any): Observable<any> {\n return this.http.get<ChoiceField>(\n `${this.valtimoApiConfig.endpointUri}v1/choice-field-values/${keyName}/values`,\n {observe: 'response', params}\n );\n }\n\n queryValuesPage(keyName: string, params?: any): Observable<Page<ChoiceFieldValue>> {\n return this.http.get<Page<ChoiceFieldValue>>(\n `${this.valtimoApiConfig.endpointUri}v2/choice-field-values/${keyName}/values`,\n {params}\n );\n }\n\n getValue(choiceFieldId: string): Observable<any> {\n return this.http.get<ChoiceField>(\n `${this.valtimoApiConfig.endpointUri}v1/choice-field-values/${choiceFieldId}`\n );\n }\n\n updateValue(choiceFieldValue: any, choiceFieldName: string): Observable<any> {\n return this.http.put(\n `${this.valtimoApiConfig.endpointUri}v1/choice-field-values`,\n choiceFieldValue,\n {\n params: {choice_field_name: choiceFieldName},\n }\n );\n }\n\n createValue(choiceFieldValue: any, choiceFieldName: string): Observable<any> {\n return this.http.post(\n `${this.valtimoApiConfig.endpointUri}v1/choice-field-values`,\n choiceFieldValue,\n {params: {choice_field_name: choiceFieldName}}\n );\n }\n\n getChoiceFieldByName(name: string): Observable<any> {\n return this.http.get(this.valtimoApiConfig.endpointUri + 'v1/choice-fields/name/' + name);\n }\n\n getChoiceFieldValueByNameAndValue(name: string, value: string): Observable<any> {\n return this.http.get(\n this.valtimoApiConfig.endpointUri +\n 'v1/choice-field-values/choice-field/' +\n name +\n '/value/' +\n value\n );\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class KeyGeneratorService {\n public getUniqueKey(entityName: string, usedKeys: string[]): string {\n const dashCaseKey = `${entityName}`\n .toLowerCase()\n .replace(/[^a-z0-9-_]+|-[^a-z0-9]+/g, '-')\n .replace(/_[-_]+/g, '_')\n .replace(/^[^a-z]+|[^a-z0-9]+$/g, '');\n\n if (!usedKeys.includes(dashCaseKey)) {\n return dashCaseKey;\n }\n\n return this.getUniqueKeyWithNumber(dashCaseKey, usedKeys);\n }\n\n private getUniqueKeyWithNumber(dashCaseKey: string, usedKeys: string[]): string {\n const numbersFromCurrentKey = (dashCaseKey.match(/^\\d+|\\d+\\b|\\d+(?=\\w)/g) || []).map(\n (numberValue: string) => +numberValue\n );\n const lastNumberFromCurrentKey =\n numbersFromCurrentKey.length > 0 && numbersFromCurrentKey[numbersFromCurrentKey.length - 1];\n const newKey = lastNumberFromCurrentKey\n ? `${dashCaseKey.replace(`${lastNumberFromCurrentKey}`, `${lastNumberFromCurrentKey + 1}`)}`\n : `${dashCaseKey}-1`;\n\n if (usedKeys.includes(newKey)) {\n return this.getUniqueKeyWithNumber(newKey, usedKeys);\n }\n\n return newKey;\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Inject, Injectable, Renderer2, RendererFactory2, RendererStyleFlags2} from '@angular/core';\nimport {BehaviorSubject, combineLatest, Observable} from 'rxjs';\nimport {map, take, tap} from 'rxjs/operators';\nimport {VModalComponent} from '../components/v-modal/modal.component';\nimport {ModalData} from '../models';\nimport {DOCUMENT} from '@angular/common';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ModalService {\n private readonly _modalUuid$ = new BehaviorSubject<string>('');\n private readonly _modalVisible$ = new BehaviorSubject<boolean>(false);\n private readonly _appearing$ = new BehaviorSubject<boolean>(false);\n private readonly _disappearing$ = new BehaviorSubject<boolean>(false);\n private readonly _appearingDelayMs$ = new BehaviorSubject<number>(140);\n private readonly _modalData$ = new BehaviorSubject<ModalData>({});\n\n private renderer!: Renderer2;\n\n private _carbonModalElements: HTMLDivElement[] = [];\n\n get modalUuid$() {\n return this._modalUuid$.asObservable();\n }\n\n get modalVisible$() {\n return this._modalVisible$.asObservable();\n }\n\n get appearing$() {\n return this._appearing$.asObservable();\n }\n\n get disappearing$() {\n return this._disappearing$.asObservable();\n }\n\n get appearingDelayMs$() {\n return this._appearingDelayMs$.asObservable();\n }\n\n get appearingDelayMs() {\n return this._appearingDelayMs$.getValue();\n }\n\n get modalData$() {\n return this._modalData$.asObservable();\n }\n\n constructor(\n public rendererFactory2: RendererFactory2,\n @Inject(DOCUMENT) private readonly document: Document\n ) {\n this.renderer = rendererFactory2.createRenderer(null, null);\n }\n\n setCurrentModal(modalComponent: VModalComponent): void {\n this._modalUuid$.next(modalComponent.uuid);\n }\n\n setModalData(modalData: ModalData): void {\n this._modalData$.next(modalData);\n }\n\n clearModalData(): void {\n this._modalData$.next({});\n }\n\n openModal(modalComponent?: VModalComponent, modalData?: ModalData): void {\n this._modalVisible$.next(true);\n this.disablePageScroll();\n this.overrideCarbonModalStyles();\n\n if (modalComponent) {\n this._modalUuid$.pipe(take(1)).subscribe(currentModalUuid => {\n if (modalComponent.uuid !== currentModalUuid) {\n this.setCurrentModal(modalComponent);\n }\n });\n }\n\n if (modalData) {\n this.setModalData(modalData);\n }\n }\n\n closeModal(callBackFunction?: () => void): void {\n this._disappearing$.next(true);\n this.setDisappearingTimeout();\n this._modalVisible$.next(false);\n this.enablePageScroll();\n this.removeOverrideCarbonModalStyles();\n\n if (callBackFunction) {\n setTimeout(() => {\n this.clearModalData();\n callBackFunction();\n }, this.appearingDelayMs);\n }\n }\n\n getModalVisible(modalUuid: string): Observable<boolean> {\n return combineLatest([this._modalVisible$, this._modalUuid$]).pipe(\n map(\n ([currentModalVisible, currentModalUuid]) =>\n currentModalVisible && currentModalUuid === modalUuid\n ),\n tap(visible => {\n if (visible) {\n this._appearing$.next(true);\n this.setAppearingTimeout();\n }\n })\n );\n }\n\n setAppearingDelay(appearingDelayMs: number): void {\n this._appearingDelayMs$.next(appearingDelayMs);\n }\n\n private setAppearingTimeout(): void {\n this._appearingDelayMs$.pipe(take(1)).subscribe(appearingDelayMs => {\n setTimeout(() => {\n this._appearing$.next(false);\n }, appearingDelayMs);\n });\n }\n\n private setDisappearingTimeout(): void {\n this._appearingDelayMs$.pipe(take(1)).subscribe(appearingDelayMs => {\n setTimeout(() => {\n this._disappearing$.next(false);\n this.clearModalData();\n }, appearingDelayMs);\n });\n }\n\n private disablePageScroll(): void {\n this.renderer.setStyle(\n document.getElementsByTagName('html')[0],\n 'overflow',\n 'hidden',\n RendererStyleFlags2.Important\n );\n }\n\n private overrideCarbonModalStyles(): void {\n const carbonModalElements: HTMLDivElement[] = Array.from(\n this.document.querySelectorAll('.cds--modal-container')\n );\n this._carbonModalElements = carbonModalElements || [];\n\n this._carbonModalElements.forEach(carbonModalElement => {\n this.renderer.setStyle(\n carbonModalElement,\n 'transform',\n 'none',\n RendererStyleFlags2.Important\n );\n });\n }\n\n private removeOverrideCarbonModalStyles(): void {\n this._carbonModalElements.forEach(carbonModalElement => {\n this.renderer.removeStyle(carbonModalElement, 'transform');\n });\n }\n\n private enablePageScroll(): void {\n this.renderer.removeStyle(document.getElementsByTagName('html')[0], 'overflow');\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable, ViewContainerRef} from '@angular/core';\nimport {BehaviorSubject, Observable} from 'rxjs';\nimport {filter} from 'rxjs/operators';\nimport {ConfigService} from '@valtimo/shared';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PageHeaderService {\n private readonly _headerViewContainerRef$ = new BehaviorSubject<ViewContainerRef | null>(null);\n private readonly _contentViewContainerRef$ = new BehaviorSubject<ViewContainerRef | null>(null);\n private readonly _compactMode$ = new BehaviorSubject<boolean>(\n !!this.configService?.config?.featureToggles?.compactModeOnByDefault\n );\n private readonly _showUserNameInTopBar$ = new BehaviorSubject<boolean>(\n this.getDefaultShowUserNameInTopBarValue()\n );\n private readonly _pageActionsHasContent$ = new BehaviorSubject<boolean>(false);\n private readonly _pageHeadHeight$ = new BehaviorSubject<number | null>(null);\n\n private readonly _smallTitle$ = new BehaviorSubject<boolean>(false);\n\n public get headerViewContainerRef$(): Observable<ViewContainerRef> {\n return this._headerViewContainerRef$.pipe(filter(ref => !!ref));\n }\n\n public get contentViewContainerRef$(): Observable<ViewContainerRef> {\n return this._contentViewContainerRef$.pipe(filter(ref => !!ref));\n }\n\n public get compactMode$(): Observable<boolean> {\n return this._compactMode$.asObservable();\n }\n\n public get smallTitle$(): Observable<boolean> {\n return this._smallTitle$.asObservable();\n }\n\n public get showUserNameInTopBar$(): Observable<boolean> {\n return this._showUserNameInTopBar$.asObservable();\n }\n\n public get pageActionsHasContent$(): Observable<boolean> {\n return this._pageActionsHasContent$.asObservable();\n }\n\n public get pageHeadHeight$(): Observable<number> {\n return this._pageHeadHeight$.pipe(filter(height => height !== null));\n }\n\n constructor(private readonly configService: ConfigService) {}\n\n public setHeaderViewContainerRef(ref: ViewContainerRef): void {\n this._headerViewContainerRef$.next(ref);\n }\n\n public setContentViewContainerRef(ref: ViewContainerRef): void {\n this._contentViewContainerRef$.next(ref);\n }\n\n public setCompactMode(compactMode: boolean): void {\n this._compactMode$.next(compactMode);\n }\n\n public setShowUserNameInTopBar(show: boolean): void {\n this._showUserNameInTopBar$.next(show);\n }\n\n public setPageActionsHasContent(hasContent: boolean): void {\n this._pageActionsHasContent$.next(hasContent);\n }\n\n public setPageHeadHeight(height: number): void {\n this._pageHeadHeight$.next(height);\n }\n\n public enableSmallTitle(): void {\n this._smallTitle$.next(true);\n }\n\n public disableSmallTitle(): void {\n this._smallTitle$.next(false);\n }\n\n private getDefaultShowUserNameInTopBarValue(): boolean {\n const featureToggles = this.configService?.config?.featureToggles;\n\n if (featureToggles && featureToggles.hasOwnProperty('showUserNameInTopBar')) {\n return featureToggles.showUserNameInTopBar;\n }\n\n return true;\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable, ViewContainerRef} from '@angular/core';\nimport {BehaviorSubject, Observable} from 'rxjs';\nimport {filter} from 'rxjs/operators';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PageSubtitleService {\n private readonly _titleViewContainerRef$ = new BehaviorSubject<ViewContainerRef | null>(null);\n private readonly _actionsViewContainerRef$ = new BehaviorSubject<ViewContainerRef | null>(null);\n public get titleViewContainerRef$(): Observable<ViewContainerRef> {\n return this._titleViewContainerRef$.pipe(filter(ref => !!ref));\n }\n\n public get actionsViewContainerRef$(): Observable<ViewContainerRef> {\n return this._actionsViewContainerRef$.pipe(filter(ref => !!ref));\n }\n\n public setTitleViewContainerRef(ref: ViewContainerRef): void {\n this._titleViewContainerRef$.next(ref);\n }\n\n public setActionsViewContainerRef(ref: ViewContainerRef): void {\n this._actionsViewContainerRef$.next(ref);\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable, OnDestroy, ViewContainerRef} from '@angular/core';\nimport {BehaviorSubject, combineLatest, Observable, Subscription} from 'rxjs';\nimport {NavigationEnd, NavigationStart, ResolveEnd, Router} from '@angular/router';\nimport {filter, tap} from 'rxjs/operators';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PageTitleService implements OnDestroy {\n private readonly _customPageTitle$ = new BehaviorSubject<string>('');\n private readonly _customPageTitleSet$ = new BehaviorSubject<boolean>(false);\n private readonly _customPageSubtitle$ = new BehaviorSubject<string>('');\n private readonly _customPageSubtitleSet$ = new BehaviorSubject<boolean>(false);\n private readonly _hasPageActions$ = new BehaviorSubject<boolean>(false);\n private readonly _pageActionsFullWidth$ = new BehaviorSubject<boolean>(false);\n\n private readonly _pageActionsViewContainerRef$ = new BehaviorSubject<ViewContainerRef | null>(\n null\n );\n\n private readonly _pageTitleHidden$ = new BehaviorSubject<boolean>(false);\n\n private _routeSubscription!: Subscription;\n\n private readonly _preventReset$ = new BehaviorSubject<boolean>(false);\n\n public get customPageTitle$(): Observable<string> {\n return this._customPageTitle$.asObservable();\n }\n\n public get customPageTitleSet$(): Observable<boolean> {\n return this._customPageTitleSet$.asObservable();\n }\n\n public get customPageSubtitle$(): Observable<string> {\n return this._customPageSubtitle$.asObservable();\n }\n\n public get customPageSubtitleSet$(): Observable<boolean> {\n return this._customPageSubtitleSet$.asObservable();\n }\n\n public get pageActionsViewContainerRef$(): Observable<ViewContainerRef> {\n return this._pageActionsViewContainerRef$.pipe(filter(ref => !!ref));\n }\n\n public get hasPageActions$(): Observable<boolean> {\n return this._hasPageActions$.asObservable();\n }\n\n public get pageActionsFullWidth$(): Observable<boolean> {\n return this._pageActionsFullWidth$.asObservable();\n }\n\n public get pageTitleHidden$(): Observable<boolean> {\n return this._pageTitleHidden$.asObservable();\n }\n\n constructor(private readonly router: Router) {\n this.openRouteSubscription();\n }\n\n public ngOnDestroy(): void {\n this._routeSubscription?.unsubscribe();\n }\n\n public setCustomPageTitle(title: string, preventReset = false): void {\n this._customPageTitle$.next(title);\n this._customPageTitleSet$.next(true);\n\n if (preventReset) {\n this.disableReset();\n }\n }\n\n public setCustomPageSubtitle(title: string): void {\n this._customPageSubtitle$.next(title);\n this._customPageSubtitleSet$.next(true);\n }\n\n public disableReset(): void {\n this._preventReset$.next(true);\n }\n\n public enableReset(): void {\n this._preventReset$.next(false);\n }\n\n public setPageActionsViewContainerRef(ref: ViewContainerRef): void {\n this._pageActionsViewContainerRef$.next(ref);\n }\n\n public setHasPageActions(value: boolean): void {\n this._hasPageActions$.next(value);\n }\n\n public setPageActionsFullWidth(value: boolean): void {\n this._pageActionsFullWidth$.next(value);\n }\n\n public setCustomPageTitleSet(set: boolean): void {\n this._customPageTitleSet$.next(set);\n }\n\n public setPageTitleHidden(hidden: boolean): void {\n this._pageTitleHidden$.next(hidden);\n }\n\n public clearPageActionsViewContainerRef(): void {\n this._pageActionsViewContainerRef$.getValue()?.clear();\n }\n\n private openRouteSubscription(): void {\n this._routeSubscription = combineLatest([\n this.router.events,\n this.pageActionsViewContainerRef$,\n this._preventReset$,\n ])\n .pipe(\n filter(\n ([event]) =>\n event instanceof NavigationEnd ||\n event instanceof NavigationStart ||\n event instanceof ResolveEnd\n ),\n tap(([_, pageActionsViewContainerRef, preventReset]) => {\n if (!preventReset) {\n this._customPageTitle$.next('');\n this._customPageTitleSet$.next(false);\n this._customPageSubtitle$.next('');\n this._customPageSubtitleSet$.next(false);\n }\n\n if (pageActionsViewContainerRef && !preventReset) {\n pageActionsViewContainerRef.clear();\n this.setHasPageActions(false);\n }\n })\n )\n .subscribe();\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {BehaviorSubject, combineLatest, Observable} from 'rxjs';\nimport {take} from 'rxjs/operators';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PromptService {\n private readonly _promptVisible$ = new BehaviorSubject<boolean>(false);\n private readonly _appearing$ = new BehaviorSubject<boolean>(false);\n private readonly _disappearing$ = new BehaviorSubject<boolean>(false);\n private readonly _appearingDelayMs$ = new BehaviorSubject<number>(140);\n private readonly _identifier$ = new BehaviorSubject<string>('');\n private readonly _headerText$ = new BehaviorSubject<string>('');\n private readonly _bodyText$ = new BehaviorSubject<string>('');\n private readonly _cancelText$ = new BehaviorSubject<string>('');\n private readonly _confirmText$ = new BehaviorSubject<string>('');\n private readonly _closeOnConfirm$ = new BehaviorSubject<boolean>(false);\n private readonly _closeOnCancel$ = new BehaviorSubject<boolean>(false);\n private readonly _closeButtonVisible$ = new BehaviorSubject<boolean>(false);\n private readonly _cancelCallbackFunction$ = new BehaviorSubject<() => void>(() => {});\n private readonly _confirmCallbackFunction$ = new BehaviorSubject<() => void>(() => {});\n private readonly _closeCallbackFunction$ = new BehaviorSubject<() => void>(() => {});\n\n get promptVisible$() {\n return this._promptVisible$.asObservable();\n }\n\n get appearing$() {\n return this._appearing$.asObservable();\n }\n\n get disappearing$() {\n return this._disappearing$.asObservable();\n }\n\n get appearingDelayMs$() {\n return this._appearingDelayMs$.asObservable();\n }\n\n get appearingDelayMs() {\n return this._appearingDelayMs$.getValue();\n }\n\n get identifier$(): Observable<string> {\n return this._identifier$.asObservable();\n }\n\n get headerText$(): Observable<string> {\n return this._headerText$.asObservable();\n }\n\n get bodyText$(): Observable<string> {\n return this._bodyText$.asObservable();\n }\n\n get cancelText$(): Observable<string> {\n return this._cancelText$.asObservable();\n }\n\n get confirmText$(): Observable<string> {\n return this._confirmText$.asObservable();\n }\n\n get closeButtonVisible$(): Observable<boolean> {\n return this._closeButtonVisible$.asObservable();\n }\n\n openPrompt(promptParameters: {\n identifier?: string;\n headerText: string;\n bodyText: string;\n cancelButtonText: string;\n confirmButtonText: string;\n closeOnConfirm?: boolean;\n closeOnCancel?: boolean;\n closeButtonVisible?: boolean;\n cancelCallbackFunction?: () => void;\n confirmCallBackFunction?: () => void;\n closeCallBackFunction?: () => void;\n }): void {\n if (promptParameters.identifier) this._identifier$.next(promptParameters.identifier);\n this._headerText$.next(promptParameters.headerText);\n this._bodyText$.next(promptParameters.bodyText);\n this._cancelText$.next(promptParameters.cancelButtonText);\n this._confirmText$.next(promptParameters.confirmButtonText);\n\n if (promptParameters.closeOnConfirm)\n this._closeOnConfirm$.next(promptParameters.closeOnConfirm);\n if (promptParameters.closeOnCancel) this._closeOnCancel$.next(promptParameters.closeOnCancel);\n if (promptParameters.closeButtonVisible)\n this._closeButtonVisible$.next(promptParameters.closeButtonVisible);\n if (promptParameters.cancelCallbackFunction)\n this._cancelCallbackFunction$.next(promptParameters.cancelCallbackFunction);\n if (promptParameters.confirmCallBackFunction)\n this._confirmCallbackFunction$.next(promptParameters.confirmCallBackFunction);\n if (promptParameters.closeCallBackFunction)\n this._closeCallbackFunction$.next(promptParameters.closeCallBackFunction);\n\n this._promptVisible$.next(true);\n this._appearing$.next(true);\n this.setAppearingTimeout();\n }\n\n setAppearingDelay(appearingDelayMs: number): void {\n this._appearingDelayMs$.next(appearingDelayMs);\n }\n\n setBodyText(bodyText: string): void {\n this._bodyText$.next(bodyText);\n }\n\n confirm(): void {\n combineLatest([this._closeOnConfirm$, this._confirmCallbackFunction$])\n .pipe(take(1))\n .subscribe(([closeOnConfirm, confirmCallback]) => {\n if (closeOnConfirm) {\n this.closePrompt(confirmCallback);\n } else if (confirmCallback) {\n confirmCallback();\n }\n });\n }\n\n cancel(): void {\n combineLatest([this._closeOnCancel$, this._cancelCallbackFunction$])\n .pipe(take(1))\n .subscribe(([closeOnCancel, cancelCallback]) => {\n if (closeOnCancel) {\n this.closePrompt(cancelCallback);\n } else if (cancelCallback) {\n cancelCallback();\n }\n });\n }\n\n close(): void {\n combineLatest([this._closeButtonVisible$, this._closeCallbackFunction$])\n .pipe(take(1))\n .subscribe(([closeButtonVisible, cancelCallback]) => {\n if (closeButtonVisible) {\n this.closePrompt(cancelCallback);\n }\n });\n }\n\n private closePrompt(callBackFunction?: () => void): void {\n if (callBackFunction) {\n callBackFunction();\n }\n this._disappearing$.next(true);\n this.setDisappearingTimeout();\n this._promptVisible$.next(false);\n }\n\n private setAppearingTimeout(): void {\n this._appearingDelayMs$.pipe(take(1)).subscribe(appearingDelayMs => {\n setTimeout(() => {\n this._appearing$.next(false);\n }, appearingDelayMs);\n });\n }\n\n private setDisappearingTimeout(): void {\n this._appearingDelayMs$.pipe(take(1)).subscribe(appearingDelayMs => {\n setTimeout(() => {\n this._disappearing$.next(false);\n this.clear();\n }, appearingDelayMs);\n });\n }\n\n private clear(): void {\n this._identifier$.next('');\n this._headerText$.next('');\n this._bodyText$.next('');\n this._cancelText$.next('');\n this._confirmText$.next('');\n this._closeOnCancel$.next(false);\n this._closeOnConfirm$.next(false);\n this._cancelCallbackFunction$.next(() => {});\n this._confirmCallbackFunction$.next(() => {});\n this._closeCallbackFunction$.next(() => {});\n }\n}\n","import {Injectable, Signal, computed, signal} from '@angular/core';\nimport {BehaviorSubject, Observable, filter, tap} from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class QuickSearchStateService {\n private readonly _$modalOpen = signal<boolean>(false);\n public get $modalOpen(): Signal<boolean> {\n return computed(() => this._$modalOpen());\n }\n\n private readonly _paramsToSave$ = new BehaviorSubject<{[key: string]: string} | null>(null);\n public readonly paramsToSave$ = this._paramsToSave$.pipe(filter(params => !!params));\n\n public openModal(params?: {[key: string]: string}): void {\n this._paramsToSave$.next(params);\n this._$modalOpen.set(true);\n }\n\n public closeModal(): void {\n this._paramsToSave$.next(null);\n this._$modalOpen.set(false);\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable, OnDestroy, Renderer2, RendererFactory2} from '@angular/core';\nimport {\n BehaviorSubject,\n combineLatest,\n fromEvent,\n map,\n Observable,\n Subject,\n Subscription,\n} from 'rxjs';\nimport {debounceTime, take} from 'rxjs/operators';\nimport {ConfigService, ValtimoConfig} from '@valtimo/shared';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ShellService implements OnDestroy {\n private renderer!: Renderer2;\n private readonly _sideBarExpanded$ = new BehaviorSubject<boolean>(true);\n private readonly _panelExpanded$ = new BehaviorSubject<boolean>(false);\n private readonly _largeScreen$ = new BehaviorSubject<boolean>(true);\n private readonly _mouseOnTopBar$ = new BehaviorSubject<boolean>(false);\n private readonly _sidenavWidth$ = new BehaviorSubject<number>(300);\n private readonly _sidenavElement$ = new BehaviorSubject<HTMLElement>(undefined);\n private readonly _contentElement$ = new BehaviorSubject<HTMLElement>(undefined);\n private readonly _resizeBorderElement$ = new BehaviorSubject<HTMLElement>(undefined);\n private readonly _mouseX$ = fromEvent(document.body, 'mousemove').pipe(\n map((e: MouseEvent) => e.pageX)\n );\n private readonly _isResizing$ = new BehaviorSubject<boolean>(false);\n private readonly _collapsibleWidescreenMenu$ = new BehaviorSubject<boolean>(false);\n private readonly _mainContentResized$ = new Subject<null>();\n private sidenavWidthOnClick!: number;\n private xOnClick!: number;\n private sidenavSizeSubscription!: Subscription;\n private mouseXSubscription!: Subscription;\n private mouseUpSubscription!: Subscription;\n private maxMenuWidth!: number;\n private minMenuWidth!: number;\n\n get sideBarExpanded$(): Observable<boolean> {\n return this._sideBarExpanded$.asObservable();\n }\n get panelExpanded$(): Observable<boolean> {\n return this._panelExpanded$.asObservable();\n }\n get largeScreen$(): Observable<boolean> {\n return this._largeScreen$.asObservable();\n }\n get mouseOnTopBar$(): Observable<boolean> {\n return this._mouseOnTopBar$.asObservable();\n }\n\n get sidenavWidth$(): Observable<number> {\n return this._sidenavWidth$.asObservable();\n }\n\n get collapsibleWidescreenMenu$(): Observable<boolean> {\n return this._collapsibleWidescreenMenu$.asObservable();\n }\n\n get mainContentResized$(): Observable<null> {\n return this._mainContentResized$.asObservable();\n }\n\n constructor(\n private readonly rendererFactory2: RendererFactory2,\n private readonly configService: ConfigService\n ) {\n this.renderer = rendererFactory2.createRenderer(null, null);\n this.openSidenavSizeSubscription();\n this.openMouseSubscriptions();\n this.initMenuWidth(configService.config);\n }\n\n ngOnDestroy(): void {\n this.sidenavSizeSubscription.unsubscribe();\n }\n\n toggleSideBar(): void {\n const isExpanded = this._sideBarExpanded$.getValue();\n this._sideBarExpanded$.next(!isExpanded);\n }\n\n collapseSideBar(): void {\n this._sideBarExpanded$.next(false);\n }\n\n togglePanel(): void {\n const isExpanded = this._panelExpanded$.getValue();\n this._panelExpanded$.next(!isExpanded);\n }\n\n setPanelExpanded(isExpanded: boolean): void {\n this._panelExpanded$.next(isExpanded);\n }\n\n setSideBarExpanded(isExpanded: boolean): void {\n this._sideBarExpanded$.next(isExpanded);\n }\n\n setLargeScreen(isLarge: boolean): void {\n this._largeScreen$.next(isLarge);\n }\n\n setMouseOnTopBar(mouseOnTopBar: boolean): void {\n this._mouseOnTopBar$.next(mouseOnTopBar);\n }\n\n setSidenavElement(element: HTMLElement): void {\n this._sidenavElement$.next(element);\n this.createResizeBorderElement(element);\n }\n\n setContentElement(element: HTMLElement): void {\n this._contentElement$.next(element);\n }\n\n setCollapsibleWidescreenMenu(collapsible: boolean) {\n this._collapsibleWidescreenMenu$.next(collapsible);\n\n if (collapsible) {\n this.collapseSideBar();\n }\n }\n\n onMainContentResize(): void {\n this._mainContentResized$.next(null);\n }\n\n private createResizeBorderElement(sidenavElement: HTMLElement): void {\n const borderElement = this.renderer.createElement('div');\n this.renderer.addClass(borderElement, 'resize-border');\n this.renderer.appendChild(sidenavElement, borderElement);\n this._resizeBorderElement$.next(borderElement);\n\n this.renderer.listen(borderElement, 'mouseenter', () => {\n this.renderer.addClass(borderElement, 'resize-hover');\n });\n\n this.renderer.listen(borderElement, 'mouseleave', () => {\n this._isResizing$.pipe(take(1)).subscribe(isResizing => {\n if (!isResizing) {\n this.renderer.removeClass(borderElement, 'resize-hover');\n }\n });\n });\n\n this.renderer.listen(borderElement, 'mousedown', (event: MouseEvent) => {\n this._sidenavWidth$.pipe(take(1)).subscribe(sidenavWidth => {\n this.sidenavWidthOnClick = sidenavWidth;\n this.xOnClick = event.pageX;\n this._isResizing$.next(true);\n this.renderer.setStyle(document.body, 'user-select', 'none');\n this.renderer.setStyle(document.body, 'cursor', 'col-resize');\n this.renderer.setStyle(\n document.querySelector('.cds--side-nav__navigation'),\n 'pointer-events',\n 'none'\n );\n this.renderer.setStyle(document.querySelector('.main-content'), 'pointer-events', 'none');\n });\n });\n }\n\n private openSidenavSizeSubscription(): void {\n this.sidenavSizeSubscription = combineLatest([\n this._largeScreen$,\n this._sidenavWidth$,\n this._sidenavElement$,\n this._contentElement$,\n this._resizeBorderElement$,\n this._collapsibleWidescreenMenu$,\n ]).subscribe(\n ([\n largeScreen,\n sidenavWidth,\n sidenavElement,\n contentElement,\n resizeBorderElement,\n collapsibleWidescreenMenu,\n ]) => {\n if (\n (!largeScreen || collapsibleWidescreenMenu) &&\n sidenavElement &&\n contentElement &&\n resizeBorderElement\n ) {\n this.renderer.removeStyle(sidenavElement, 'min-width');\n this.renderer.removeStyle(sidenavElement, 'width');\n this.renderer.removeStyle(sidenavElement, 'transition');\n this.renderer.removeStyle(contentElement, 'padding-left');\n this.renderer.addClass(resizeBorderElement, 'resize-border--invisible');\n } else if (\n largeScreen &&\n sidenavElement &&\n contentElement &&\n typeof sidenavWidth === 'number'\n ) {\n const pixelWidth = `${sidenavWidth}px`;\n this.renderer.setStyle(sidenavElement, 'min-width', `${pixelWidth}`);\n this.renderer.setStyle(sidenavElement, 'width', `${pixelWidth}`);\n this.renderer.setStyle(sidenavElement, 'transition', 'none');\n this.renderer.setStyle(contentElement, 'padding-left', `calc(2rem + ${pixelWidth})`);\n this.renderer.removeClass(resizeBorderElement, 'resize-border--invisible');\n }\n }\n );\n }\n\n private openMouseSubscriptions(): void {\n this.mouseXSubscription = combineLatest([this._mouseX$, this._isResizing$])\n .pipe(debounceTime(3))\n .subscribe(([x, isResizing]) => {\n if (isResizing) {\n const offSetWidth = this.xOnClick - x;\n const newSidenavWidth = this.sidenavWidthOnClick - offSetWidth;\n\n if (newSidenavWidth <= this.maxMenuWidth && newSidenavWidth >= this.minMenuWidth) {\n this._sidenavWidth$.next(newSidenavWidth);\n }\n }\n });\n\n this.mouseUpSubscription = fromEvent(document, 'mouseup').subscribe(() => {\n this.stopResizing();\n });\n }\n\n private stopResizing(): void {\n const mainContent = document.querySelector('.main-content');\n const sideNav = document.querySelector('.cds--side-nav__navigation');\n\n this.renderer.removeStyle(document.body, 'user-select');\n this.renderer.removeStyle(document.body, 'cursor');\n this._isResizing$.next(false);\n this.renderer.removeClass(this._resizeBorderElement$.getValue(), 'resize-hover');\n\n if (sideNav) {\n this.renderer.removeStyle(sideNav, 'pointer-events');\n }\n\n if (mainContent) {\n this.renderer.removeStyle(mainContent, 'pointer-events');\n }\n localStorage.setItem('sidenavWidth', this._sidenavWidth$.getValue().toString());\n }\n\n private initMenuWidth(config: ValtimoConfig): void {\n const customLeftSidebar = config?.customLeftSidebar;\n const localStorageWidth = localStorage.getItem('sidenavWidth');\n const localStorageWidthNumber = localStorageWidth && +localStorageWidth;\n const configWidth = customLeftSidebar?.defaultMenuWidth;\n\n this._sidenavWidth$.next(localStorageWidthNumber || configWidth || 256);\n this.minMenuWidth = customLeftSidebar?.minMenuWidth || 150;\n this.maxMenuWidth = customLeftSidebar?.maxMenuWidth || 500;\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {BehaviorSubject, combineLatest, Subject} from 'rxjs';\nimport {map, take} from 'rxjs/operators';\nimport {Step} from '../models';\n\n@Injectable()\nexport class StepperService {\n private readonly _steps$ = new BehaviorSubject<Array<Step>>([]);\n private readonly _currentStepIndex$ = new BehaviorSubject<number>(0);\n private readonly _returnToFirstStep$ = new Subject();\n private readonly _cancelClick$ = new Subject();\n private readonly _complete$ = new Subject();\n private readonly _nextStep$ = new Subject<number>();\n private readonly _disabled$ = new BehaviorSubject<boolean>(false);\n\n get currentStepIndex$() {\n return this._currentStepIndex$.asObservable();\n }\n\n get steps$() {\n return this._steps$.asObservable();\n }\n\n get nextStepAvailable$() {\n return combineLatest([this._steps$, this._currentStepIndex$]).pipe(\n map(([steps, currentStepIndex]) => currentStepIndex < steps.length - 1)\n );\n }\n\n get previousStepAvailable$() {\n return this._currentStepIndex$.pipe(map(currentStepIndex => currentStepIndex > 0));\n }\n\n get returnToFirstStep$() {\n return this._returnToFirstStep$.asObservable();\n }\n\n get cancelClick$() {\n return this._cancelClick$.asObservable();\n }\n\n get complete$() {\n return this._complete$.asObservable();\n }\n\n get nextStep$() {\n return this._nextStep$.asObservable();\n }\n\n get disabled$() {\n return this._disabled$.asObservable();\n }\n\n setSteps(steps: Array<Step>): void {\n const mappedSteps = steps.map((step, index) => ({\n ...step,\n isFirst: index === 0,\n isLast: index === steps.length - 1,\n }));\n\n this._steps$.next(mappedSteps);\n }\n\n setCurrentStepIndex(index: number): void {\n this._currentStepIndex$.next(index);\n }\n\n goToNextStep(): void {\n combineLatest([this.nextStepAvailable$, this._currentStepIndex$])\n .pipe(take(1))\n .subscribe(([nextStepAvailable, currentStepIndex]) => {\n if (nextStepAvailable) {\n this.setCurrentStepIndex(currentStepIndex + 1);\n this._nextStep$.next(currentStepIndex);\n }\n });\n }\n\n goToPreviousStep(): void {\n combineLatest([this.previousStepAvailable$, this._currentStepIndex$])\n .pipe(take(1))\n .subscribe(([previousStepAvailable, currentStepIndex]) => {\n if (previousStepAvailable) {\n this.setCurrentStepIndex(currentStepIndex - 1);\n }\n });\n }\n\n cancelClick(): void {\n this._cancelClick$.next(null);\n }\n\n complete(): void {\n this._complete$.next(null);\n }\n\n disable(): void {\n this._disabled$.next(true);\n }\n\n enable(): void {\n this._disabled$.next(false);\n }\n\n returnToFirstStep(): void {\n this.setCurrentStepIndex(0);\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {BehaviorSubject} from 'rxjs';\nimport {take} from 'rxjs/operators';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class UserInterfaceService {\n private readonly _showPageHeader$ = new BehaviorSubject<boolean>(true);\n\n get showPageHeader$() {\n return this._showPageHeader$.asObservable();\n }\n\n showPageHeader(): void {\n this._showPageHeader$.next(true);\n }\n\n hidePageHeader(): void {\n this._showPageHeader$.next(false);\n }\n\n togglePageHeader(): void {\n this._showPageHeader$.pipe(take(1)).subscribe(showPageHeader => {\n this._showPageHeader$.next(!showPageHeader);\n });\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {BehaviorSubject, Observable, Subject} from 'rxjs';\nimport {filter, tap} from 'rxjs/operators';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ValtimoModalService {\n private readonly _scrollToTop$ = new Subject<null>();\n private readonly _caseDefinitionKey$ = new BehaviorSubject<string>('');\n\n public get scrollToTop$(): Observable<null> {\n return this._scrollToTop$.asObservable();\n }\n\n public get caseDefinitionKey$(): Observable<string> {\n return this._caseDefinitionKey$.pipe(filter(caseDefinitionKey => !!caseDefinitionKey));\n }\n\n public scrollToTop(): void {\n this._scrollToTop$.next(null);\n }\n\n public setCaseDefinitionKey(caseDefinitionKey: string): void {\n this._caseDefinitionKey$.next(caseDefinitionKey);\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {HttpClient} from '@angular/common/http';\nimport {Injectable, OnDestroy} from '@angular/core';\nimport {BaseApiService, ConfigService} from '@valtimo/shared';\nimport {BehaviorSubject, Observable, Subscription, interval, map, of, take, tap} from 'rxjs';\nimport {\n ValuePathItem,\n ValuePathResponse,\n ValuePathSelectorCache,\n ValuePathSelectorPrefix,\n ValuePathType,\n} from '../models';\nimport {deepmerge} from 'deepmerge-ts';\nimport {CaseDefinition} from '@valtimo/document';\nimport {isEqual} from 'lodash';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ValuePathSelectorService extends BaseApiService implements OnDestroy {\n private _prefixes: (ValuePathSelectorPrefix | string)[];\n private _caseDefinitionKey: string;\n private _caseDefinitionVersionTag: string;\n\n private _cache: ValuePathSelectorCache = {};\n private _caseDefinitionCache$ = new BehaviorSubject<CaseDefinition[] | null>(null);\n private readonly _subscriptions = new Subscription();\n\n constructor(\n protected readonly httpClient: HttpClient,\n protected readonly configService: ConfigService\n ) {\n super(httpClient, configService);\n this.openClearCacheSubscription();\n }\n\n public ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n public setCaseDefinitionCache(cache: CaseDefinition[]): void {\n this._caseDefinitionCache$.pipe(take(1)).subscribe(currentCache => {\n if (!isEqual(cache, currentCache)) this._caseDefinitionCache$.next(cache);\n });\n }\n\n public getCaseDefinitionCache(): Observable<CaseDefinition[] | null> {\n return this._caseDefinitionCache$.asObservable();\n }\n\n public getResolvableKeys(\n prefixes: ValuePathSelectorPrefix[],\n caseDefinitionKey: string,\n type: ValuePathType = ValuePathType.FIELD,\n caseDefinitionVersionTag: string = null\n ): Observable<ValuePathItem[]> {\n this._prefixes = prefixes;\n this._caseDefinitionKey = caseDefinitionKey;\n this._caseDefinitionVersionTag = caseDefinitionVersionTag;\n\n const url = !caseDefinitionVersionTag\n ? `/management/v1/value-resolver/case-definition/${caseDefinitionKey}/keys`\n : `/management/v1/value-resolver/case-definition/${caseDefinitionKey}/version/${caseDefinitionVersionTag}/keys`;\n\n const prefixesWithoutCache: (ValuePathSelectorPrefix | string)[] = this._prefixes.filter(\n (prefix: ValuePathSelectorPrefix) => !this.getCacheResult(prefix, type)\n );\n\n return (\n prefixesWithoutCache.length > 0 || this._prefixes.length === 0\n ? this.httpClient.post<ValuePathResponse[]>(this.getApiUrl(url), {\n prefixes: prefixesWithoutCache,\n type,\n })\n : of([])\n ).pipe(\n tap((results: ValuePathResponse[]) => {\n if (this._prefixes.length === 0) this._prefixes = this.getPrefixesFromResults(results);\n\n if (type === ValuePathType.FIELD)\n this.cacheMapping(\n results.map((result: ValuePathResponse) => ({path: result.path})),\n type\n );\n else\n this.cacheMapping(\n results.reduce((acc, curr) => [...acc, ...this.mapCollectionItem(curr)], []),\n type\n );\n }),\n map(() =>\n this._prefixes.reduce(\n (acc, curr) => [...acc, ...(this.getCacheResult(curr, type) ?? [])],\n []\n )\n )\n );\n }\n\n private openClearCacheSubscription(): void {\n this._subscriptions.add(\n interval(60 * 1000).subscribe(() => {\n this._cache = {};\n this._caseDefinitionCache$.next(null);\n })\n );\n }\n\n private getCacheResult(\n prefix: ValuePathSelectorPrefix | string,\n type: ValuePathType\n ): ValuePathItem[] | undefined {\n return this._cache[this._caseDefinitionKey]?.[this._caseDefinitionVersionTag]?.[prefix]?.[type];\n }\n\n private mapCollectionItem(item: ValuePathResponse, parentPath?: string): ValuePathItem[] {\n const fieldChildren = [];\n const collectionChildren = [];\n\n item.children.forEach((child: ValuePathResponse) => {\n if (child.type === ValuePathType.FIELD) fieldChildren.push(child);\n else collectionChildren.push(child);\n });\n\n return [\n {\n path: `${parentPath ?? ''}${item.path}`,\n children: fieldChildren.map((child: ValuePathResponse) => child.path),\n },\n ...collectionChildren.reduce(\n (acc, curr) => [...acc, ...this.mapCollectionItem(curr, `${parentPath ?? ''}${item.path}`)],\n []\n ),\n ];\n }\n\n private cacheMapping(results: ValuePathItem[], type: ValuePathType): void {\n if (!results.length) return;\n\n const prefixResults = this._prefixes.reduce(\n (acc, curr) => ({\n ...acc,\n ...(!this.getCacheResult(curr, type) && {\n [curr]: {\n [type]: results.filter((result: ValuePathItem) => result.path.split(':')[0] === curr),\n },\n }),\n }),\n {}\n );\n\n const tempCache: ValuePathSelectorCache = {\n [this._caseDefinitionKey]: {\n [this._caseDefinitionVersionTag]: prefixResults,\n },\n };\n\n this._cache = deepmerge(this._cache, tempCache);\n }\n\n private getPrefixesFromResults(results: ValuePathResponse[]): string[] {\n return [...new Set(results.map((result: ValuePathResponse) => result.path.split(':')[0]))];\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './cds-theme.service';\nexport * from './choice-field.service';\nexport * from './key-generator.service';\nexport * from './modal.service';\nexport * from './page-header.service';\nexport * from './page-subtitle.service';\nexport * from './page-title.service';\nexport * from './prompt.service';\nexport * from './quick-search-state.service';\nexport * from './shell.service';\nexport * from './stepper.service';\nexport * from './user-interface.service';\nexport * from './valtimo-modal.service';\nexport * from './value-path-selector.service';\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {CanDeactivateFn} from '@angular/router';\nimport {PendingChangesComponent} from '../components/pending-changes/pending-changes.component';\n\nexport const pendingChangesGuard: CanDeactivateFn<PendingChangesComponent> = (\n component: PendingChangesComponent\n) => component.canDeactivate();\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './pending-changes.guard';\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Components, Utils as FormioUtils} from 'formiojs';\nimport {FormioCustomComponentInfo, FormioCustomElement, FormioEvent} from './elements.common';\nimport {clone, isArray, isNil} from 'lodash';\nimport {BuilderInfo, ExtendedComponentSchema} from '../../models';\n\nconst BaseInputComponent = Components.components.input;\nconst TextfieldComponent = Components.components.textfield;\n\nexport function createCustomFormioComponent(customComponentOptions: FormioCustomComponentInfo) {\n return class CustomComponent extends BaseInputComponent {\n public static readonly editForm =\n customComponentOptions.editForm || TextfieldComponent.editForm;\n public readonly id = FormioUtils.getRandomComponentId();\n public readonly type = customComponentOptions.type;\n\n _customAngularElement!: FormioCustomElement;\n\n public static schema() {\n return BaseInputComponent.schema({\n ...customComponentOptions.schema,\n type: customComponentOptions.type,\n });\n }\n\n // @ts-ignore\n public get defaultSchema() {\n return CustomComponent.schema();\n }\n\n // @ts-ignore\n public get emptyValue() {\n return customComponentOptions.emptyValue || null;\n }\n\n public static get builderInfo(): BuilderInfo {\n return {\n title: customComponentOptions.title,\n group: customComponentOptions.group,\n icon: customComponentOptions.icon,\n weight: customComponentOptions.weight,\n documentation: customComponentOptions.documentation,\n schema: CustomComponent.schema(),\n };\n }\n\n public elementInfo() {\n const info = super.elementInfo();\n info.type = customComponentOptions.selector;\n info.changeEvent = customComponentOptions.changeEvent || 'valueChange';\n info.attr = {\n ...info.attr,\n class: info.attr.class.replace('form-control', 'form-control-custom-field'), // remove the form-control class as the custom angular component may look different\n };\n return info;\n }\n\n // @ts-ignore\n public get inputInfo() {\n const info = {\n id: this.key,\n ...this.elementInfo(),\n };\n return info;\n }\n\n // @ts-ignore\n public get defaultValue() {\n let defaultValue = this.emptyValue;\n\n // handle falsy default value\n if (!isNil(this.component.defaultValue)) {\n defaultValue = this.component.defaultValue;\n }\n\n if (this.component.customDefaultValue && !this.options.preview) {\n defaultValue = this.evaluate(this.component.customDefaultValue, {value: ''}, 'value');\n }\n\n return clone(defaultValue);\n }\n\n constructor(\n public component: ExtendedComponentSchema,\n options: any,\n data: any\n ) {\n super(\n component,\n {\n ...options,\n sanitizeConfig: {\n addTags: [customComponentOptions.selector],\n },\n },\n data\n );\n\n if (customComponentOptions.extraValidators) {\n this.validators = this.validators.concat(customComponentOptions.extraValidators);\n }\n }\n\n public renderElement(value: any, index: number) {\n const info = this.inputInfo;\n return this.renderTemplate(customComponentOptions.template || 'input', {\n input: info,\n value,\n index,\n });\n }\n\n public attach(element: HTMLElement) {\n let superAttach = super.attach(element);\n\n this._customAngularElement = element.querySelector(customComponentOptions.selector);\n\n // Bind the custom options and the validations to the Angular component's inputs (flattened)\n if (this._customAngularElement) {\n // To make sure we have working input in IE...\n // IE doesn't render it properly if it's not visible on the screen\n // due to the whole structure applied via innerHTML to the parent\n // so we need to use appendChild\n if (!this._customAngularElement.getAttribute('ng-version')) {\n this._customAngularElement.removeAttribute('ref');\n\n const newCustomElement = document.createElement(\n customComponentOptions.selector\n ) as FormioCustomElement;\n\n newCustomElement.setAttribute('ref', 'input');\n Object.keys(this.inputInfo.attr).forEach((attr: string) => {\n newCustomElement.setAttribute(attr, this.inputInfo.attr[attr]);\n });\n\n this._customAngularElement.appendChild(newCustomElement);\n this._customAngularElement = newCustomElement;\n\n superAttach = super.attach(element);\n }\n\n // Bind customOptions\n for (const key in this.component.customOptions) {\n if (this.component.customOptions.hasOwnProperty(key)) {\n this._customAngularElement[key] = this.component.customOptions[key];\n }\n }\n // Bind validate options\n for (const key in this.component.validate) {\n if (this.component.validate.hasOwnProperty(key)) {\n this._customAngularElement[key] = this.component.validate[key];\n }\n }\n // Bind options explicitly set\n const fieldOptions = customComponentOptions.fieldOptions;\n if (isArray(fieldOptions) && fieldOptions.length > 0) {\n for (const key in fieldOptions) {\n if (fieldOptions.hasOwnProperty(key)) {\n this._customAngularElement[fieldOptions[key]] = this.component[fieldOptions[key]];\n }\n }\n }\n\n // Attach event listener for emit event\n this._customAngularElement.addEventListener(\n 'formioEvent',\n (event: CustomEvent<FormioEvent>) => {\n this.emit(event.detail.eventName, {\n ...event.detail.data,\n component: this.component,\n });\n }\n );\n\n // Ensure we bind the value (if it isn't a multiple-value component with no wrapper)\n if (!this._customAngularElement.value && !this.component.disableMultiValueWrapper) {\n this.restoreValue();\n }\n }\n return superAttach;\n }\n\n // Add extra option to support multiple value (e.g. datagrid) with single angular component (disableMultiValueWrapper)\n public useWrapper() {\n return (\n this.component.hasOwnProperty('multiple') &&\n this.component.multiple &&\n !this.component.disableMultiValueWrapper\n );\n }\n\n // override setValue method to allow for array values\n public setValue(value): boolean {\n if (!this._customAngularElement || !('value' in this._customAngularElement)) {\n return false;\n }\n\n this._customAngularElement.value = value;\n\n return true;\n }\n };\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {EventEmitter} from '@angular/core';\nimport {NgElement, WithProperties} from '@angular/elements';\nimport {BuilderInfo, ExtendedComponentSchema, ValidateOptions} from '../../models';\n\n// Custom Angular Components\nexport interface FormioCustomComponentInfo extends BuilderInfo {\n type: string;\n selector: string;\n emptyValue?: any;\n extraValidators?: (keyof ValidateOptions)[];\n fieldOptions?: string[];\n template?: string;\n changeEvent?: string; // Default: valueChange\n editForm?: () => {components: ExtendedComponentSchema[]};\n}\n\nexport type FormioCustomElement = NgElement &\n WithProperties<{value: any} & ExtendedComponentSchema>;\n\nexport interface FormioEvent {\n eventName: string;\n data?: {\n [key: string]: any;\n };\n}\n\nexport interface FormioCustomComponent<T> {\n value: T; // Should be an @Input\n valueChange: EventEmitter<T>; // Should be an @Output\n disabled: boolean;\n formioEvent?: EventEmitter<FormioEvent>; // Should be an @Output\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable, Injector} from '@angular/core';\nimport {registerCustomTag} from '../../../modules';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FormIoTagsService {\n private _tagsToRegister: string[] = [];\n\n public get tagsToRegister(): string[] {\n return this._tagsToRegister;\n }\n\n public markTagForRegistration(tag: string): void {\n this._tagsToRegister = [...this._tagsToRegister, tag];\n }\n\n public reregisterTags(injector: Injector): void {\n this.tagsToRegister.forEach(tag => {\n registerCustomTag(tag, injector);\n });\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injector, Type} from '@angular/core';\nimport {createCustomElement} from '@angular/elements';\nimport {Components} from 'formiojs';\nimport {FormioCustomComponentInfo} from './elements.common';\nimport {createCustomFormioComponent} from './create-custom-component';\nimport {CustomTagsService} from '@formio/angular';\nimport {FormIoTagsService} from '../../components/form-io/services/form-io.tags.service';\n\nfunction registerCustomTag(tag: string, injector: Injector): void {\n injector.get(CustomTagsService).addCustomTag(tag);\n}\n\nfunction registerCustomFormioComponent(\n options: FormioCustomComponentInfo,\n angularComponent: Type<any>,\n injector: Injector\n): void {\n const tagsService = injector.get(FormIoTagsService);\n\n registerCustomTag(options.selector, injector);\n\n tagsService.markTagForRegistration(options.selector);\n\n if (!customElements.get(options.selector)) {\n const complexCustomComponent = createCustomElement(angularComponent, {injector});\n customElements.define(options.selector, complexCustomComponent);\n }\n\n Components.setComponent(options.type, createCustomFormioComponent(options));\n}\n\nexport {registerCustomTag, registerCustomFormioComponent};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './create-custom-component';\nexport * from './elements.common';\nexport * from './register-custom-component';\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './custom-formio-component';\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {CARBON_CONSTANTS} from '../constants';\n\nconst runAfterCarbonModalClosed = (functionToRun: () => void): void => {\n setTimeout(() => {\n functionToRun();\n }, CARBON_CONSTANTS.modalAnimationMs);\n};\n\nexport {runAfterCarbonModalClosed};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './carbon.utils';\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport moment from 'moment';\nimport {AbstractControl, ValidatorFn} from '@angular/forms';\n\nmoment.locale(localStorage.getItem('langKey'));\nconst DATE_FORMAT = 'DD-MM-YYYY';\n\nexport function minDate(minDateIn: string): ValidatorFn {\n return (control: AbstractControl): {[key: string]: any} | null => {\n if (!control.value) {\n return null;\n }\n const controlDate = moment.utc(control.value).startOf('day');\n const momentMinDate = moment.utc(minDateIn, DATE_FORMAT, true);\n\n if (!controlDate.isSameOrAfter(momentMinDate)) {\n return {\n minDate: {\n minDate: momentMinDate.format(DATE_FORMAT),\n actual: controlDate.format(DATE_FORMAT),\n },\n };\n }\n\n return null;\n };\n}\n\nexport function maxDate(maxDateIn: string): ValidatorFn {\n return (control: AbstractControl): {[key: string]: any} | null => {\n if (!control.value) {\n return null;\n }\n const controlDate = moment.utc(control.value).startOf('day');\n const momentMaxDate = moment.utc(maxDateIn, DATE_FORMAT, true);\n\n if (!controlDate.isSameOrBefore(momentMaxDate)) {\n return {\n maxDate: {\n maxDate: momentMaxDate.format(DATE_FORMAT),\n actual: controlDate.format(DATE_FORMAT),\n },\n };\n }\n\n return null;\n };\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {Validators} from '@angular/forms';\nimport {maxDate, minDate} from './validation/date.validators';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CamundaFormfieldService {\n constructor() {}\n\n public isFormFieldDisabled(formField) {\n return formField.validationConstraints.filter(vc => vc.name === 'readonly').length > 0;\n }\n\n public getMinDate(formField) {\n return formField.validationConstraints.filter(\n vc => vc.name === 'minDate' && vc.configuration\n )[0];\n }\n\n public getMaxDate(formField) {\n return formField.validationConstraints.filter(\n vc => vc.name === 'maxDate' && vc.configuration\n )[0];\n }\n\n public getValidatorTypes(formField) {\n const validatorTypes = [];\n formField.validationConstraints.forEach(validationConstraint => {\n if (validationConstraint.name === 'required') {\n validatorTypes.push(Validators.required);\n }\n if (validationConstraint.name === 'minlength') {\n validatorTypes.push(Validators.minLength(+validationConstraint.configuration));\n }\n if (validationConstraint.name === 'maxlength') {\n validatorTypes.push(Validators.maxLength(+validationConstraint.configuration));\n }\n if (validationConstraint.name === 'min') {\n validatorTypes.push(Validators.min(+validationConstraint.configuration));\n }\n if (validationConstraint.name === 'max') {\n validatorTypes.push(Validators.max(+validationConstraint.configuration));\n }\n if (validationConstraint.name === 'minDate') {\n validatorTypes.push(minDate(validationConstraint.configuration));\n }\n if (validationConstraint.name === 'maxDate') {\n validatorTypes.push(maxDate(validationConstraint.configuration));\n }\n });\n return validatorTypes;\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, Input, OnInit} from '@angular/core';\nimport {UntypedFormGroup} from '@angular/forms';\nimport {FormField} from '../formfield.model';\n\n@Component({\n selector: 'valtimo-camunda-formfield-validation',\n templateUrl: './camunda-formfield-validation.component.html',\n standalone: false,\n})\nexport class CamundaFormfieldValidationComponent implements OnInit {\n @Input() public formGroup: UntypedFormGroup;\n @Input() public formField: FormField;\n\n formControl: any;\n\n constructor() {}\n\n ngOnInit(): void {\n this.formControl = this.formGroup.get(this.formField.id);\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ul\n class=\"parsley-errors-list filled\"\n *ngIf=\"formControl.invalid && (formControl.dirty || formControl.touched)\"\n>\n <li *ngIf=\"formControl.errors.required\">This field is required.</li>\n <li *ngIf=\"formControl.errors.minlength\">\n This field should be more than {{ formControl.errors.minlength.requiredLength }} characters.\n </li>\n <li *ngIf=\"formControl.errors.maxlength\">\n This field cannot be more than {{ formControl.errors.maxlength.requiredLength }} characters.\n </li>\n <li *ngIf=\"formControl.errors.min\">\n This field should be more than {{ formControl.errors.min.min }}.\n </li>\n <li *ngIf=\"formControl.errors.max\">\n This field should be less or equal to {{ formControl.errors.max.max }}.\n </li>\n <li *ngIf=\"formControl.errors.minDate\">\n This field should be more than {{ formControl.errors.minDate.minDate }}.\n </li>\n <li *ngIf=\"formControl.errors.maxDate\">\n This field should be less or equal to {{ formControl.errors.maxDate.maxDate }}.\n </li>\n</ul>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component} from '@angular/core';\nimport {UntypedFormGroup} from '@angular/forms';\nimport {FormField} from '../formfield.model';\n\n@Component({\n selector: 'valtimo-camunda-string-formfield',\n templateUrl: './camunda-string-formfield.component.html',\n standalone: false,\n})\nexport class CamundaStringFormfieldComponent {\n public formGroup: UntypedFormGroup;\n public formField: FormField;\n\n constructor() {}\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div class=\"form-group row\" *ngIf=\"formGroup\" [formGroup]=\"formGroup\">\n <label for=\"{{ formField.id }}\" class=\"col-12 col-sm-3 col-form-label text-sm-right\">\n {{ formField.label }}\n </label>\n <div class=\"col-12 col-sm-8 col-lg-6\">\n <input\n id=\"{{ formField.id }}\"\n class=\"form-control\"\n type=\"text\"\n [attr.placeholder]=\"formField.defaultValue\"\n [formControlName]=\"formField.id\"\n />\n <valtimo-camunda-formfield-validation [formGroup]=\"formGroup\" [formField]=\"formField\">\n </valtimo-camunda-formfield-validation>\n </div>\n</div>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component} from '@angular/core';\nimport {UntypedFormGroup} from '@angular/forms';\nimport {FormField} from '../formfield.model';\n\n@Component({\n selector: 'valtimo-camunda-boolean-formfield',\n templateUrl: './camunda-boolean-formfield.component.html',\n standalone: false,\n})\nexport class CamundaBooleanFormfieldComponent {\n public formGroup: UntypedFormGroup;\n public formField: FormField;\n\n constructor() {}\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div class=\"form-group row\" *ngIf=\"formGroup\" [formGroup]=\"formGroup\">\n <label class=\"col-12 col-sm-3 col-form-label text-sm-right\">\n {{ formField.label }}\n </label>\n <div class=\"col-12 col-sm-8 col-lg-6 form-check mt-1\">\n <label for=\"yes_{{ formField.id }}\" class=\"custom-control custom-radio custom-control-inline\">\n <input\n class=\"custom-control-input\"\n id=\"yes_{{ formField.id }}\"\n type=\"radio\"\n [value]=\"true\"\n [formControlName]=\"formField.id\"\n />\n <span class=\"custom-control-label custom-control-color\">Yes</span>\n </label>\n <label for=\"no_{{ formField.id }}\" class=\"custom-control custom-radio custom-control-inline\">\n <input\n class=\"custom-control-input\"\n id=\"no_{{ formField.id }}\"\n type=\"radio\"\n [value]=\"false\"\n [formControlName]=\"formField.id\"\n />\n <span class=\"custom-control-label custom-control-color\">No</span>\n </label>\n <valtimo-camunda-formfield-validation [formGroup]=\"formGroup\" [formField]=\"formField\">\n </valtimo-camunda-formfield-validation>\n </div>\n</div>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {AfterViewInit, Component, OnInit} from '@angular/core';\nimport {UntypedFormGroup} from '@angular/forms';\nimport {FormField} from '../formfield.model';\nimport {CamundaFormfieldService} from '../camunda-formfield.service';\nimport moment from 'moment';\n\nmoment.locale(localStorage.getItem('langKey'));\n// eslint-disable-next-line no-var\ndeclare var $;\n\n@Component({\n selector: 'valtimo-camunda-date-formfield',\n templateUrl: './camunda-date-formfield.component.html',\n standalone: false,\n})\nexport class CamundaDateFormfieldComponent implements OnInit, AfterViewInit {\n public formGroup: UntypedFormGroup;\n public formField: FormField;\n\n private INPUT_SELECTOR: string;\n private datePickerOptions: any = {};\n\n constructor(private formFieldService: CamundaFormfieldService) {}\n\n ngOnInit(): void {\n this.INPUT_SELECTOR = '#' + this.formField.id;\n this.datePickerOptions = {\n autoclose: true,\n componentIcon: '.mdi.mdi-calendar',\n navIcons: {\n rightIcon: 'mdi mdi-chevron-right',\n leftIcon: 'mdi mdi-chevron-left',\n },\n format: 'dd-mm-yyyy',\n };\n }\n\n ngAfterViewInit(): void {\n const formGroup = this.formGroup;\n const formField = this.formField;\n\n const maxDate = this.formFieldService.getMaxDate(this.formField);\n if (maxDate) {\n this.datePickerOptions.endDate = maxDate.configuration;\n }\n\n const minDate = this.formFieldService.getMinDate(this.formField);\n if (minDate) {\n this.datePickerOptions.startDate = minDate.configuration;\n }\n\n $(this.INPUT_SELECTOR).datetimepicker(this.datePickerOptions);\n $(this.INPUT_SELECTOR).on('changeDate', function (e) {\n formGroup.patchValue({\n [formField.id]: moment(e.date.valueOf()).format('DD/MM/YYYY'),\n });\n });\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div class=\"form-group row\" *ngIf=\"formGroup\" [formGroup]=\"formGroup\">\n <label for=\"{{ formField.id }}\" class=\"col-12 col-sm-3 col-form-label text-sm-right\">\n {{ formField.label }}\n </label>\n <div class=\"col-12 col-sm-8 col-lg-6 pt1\">\n <input\n type=\"input\"\n class=\"form-control\"\n data-min-view=\"2\"\n id=\"{{ formField.id }}\"\n autocomplete=\"off\"\n [formControlName]=\"formField.id\"\n />\n <valtimo-camunda-formfield-validation [formGroup]=\"formGroup\" [formField]=\"formField\">\n </valtimo-camunda-formfield-validation>\n </div>\n</div>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component} from '@angular/core';\nimport {UntypedFormGroup} from '@angular/forms';\nimport {FormField} from '../formfield.model';\n\n@Component({\n selector: 'valtimo-camunda-long-formfield',\n templateUrl: './camunda-long-formfield.component.html',\n standalone: false,\n})\nexport class CamundaLongFormfieldComponent {\n public formGroup: UntypedFormGroup;\n public formField: FormField;\n\n constructor() {}\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div class=\"form-group row\" *ngIf=\"formGroup\" [formGroup]=\"formGroup\">\n <label for=\"{{ formField.id }}\" class=\"col-12 col-sm-3 col-form-label text-sm-right\">\n {{ formField.label }}\n </label>\n <div class=\"col-12 col-sm-8 col-lg-6\">\n <input\n id=\"{{ formField.id }}\"\n class=\"form-control\"\n type=\"number\"\n [attr.placeholder]=\"formField.defaultValue\"\n [formControlName]=\"formField.id\"\n />\n <valtimo-camunda-formfield-validation [formGroup]=\"formGroup\" [formField]=\"formField\">\n </valtimo-camunda-formfield-validation>\n </div>\n</div>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, OnInit} from '@angular/core';\nimport {UntypedFormGroup} from '@angular/forms';\nimport {FormField} from '../formfield.model';\n\n@Component({\n selector: 'valtimo-camunda-enum-formfield',\n templateUrl: './camunda-enum-formfield.component.html',\n standalone: false,\n})\nexport class CamundaEnumFormfieldComponent implements OnInit {\n public formGroup: UntypedFormGroup;\n public formField: FormField;\n\n public valueKeys;\n\n constructor() {}\n\n ngOnInit(): void {\n this.valueKeys = Object.keys(this.formField.type.values);\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div class=\"form-group row\" [formGroup]=\"formGroup\">\n <label for=\"{{ formField.id }}\" class=\"col-12 col-sm-3 col-form-label text-sm-right\">\n {{ formField.label }}\n </label>\n <div class=\"col-12 col-sm-8 col-lg-6\">\n <select class=\"form-control\" id=\"{{ formField.id }}\" [formControlName]=\"formField.id\">\n <option selected=\"selected\" value=\"\"></option>\n <option *ngFor=\"let key of valueKeys\" [value]=\"key\" id=\"option_{{ key }}\">\n {{ formField.type.values[key] }}\n </option>\n </select>\n <valtimo-camunda-formfield-validation [formGroup]=\"formGroup\" [formField]=\"formField\">\n </valtimo-camunda-formfield-validation>\n </div>\n</div>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component} from '@angular/core';\nimport {UntypedFormGroup} from '@angular/forms';\nimport {FormField} from '../formfield.model';\n\n@Component({\n selector: 'valtimo-camunda-textarea-formfield',\n templateUrl: './camunda-textarea-formfield.component.html',\n standalone: false,\n})\nexport class CamundaTextareaFormfieldComponent {\n public formGroup: UntypedFormGroup;\n public formField: FormField;\n\n constructor() {}\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div class=\"form-group row\" *ngIf=\"formGroup\" [formGroup]=\"formGroup\">\n <label for=\"{{ formField.id }}\" class=\"col-12 col-sm-3 col-form-label text-sm-right\">\n {{ formField.label }}\n </label>\n <div class=\"col-12 col-sm-8 col-lg-6\">\n <textarea\n id=\"{{ formField.id }}\"\n class=\"form-control\"\n [attr.placeholder]=\"formField.defaultValue\"\n [formControlName]=\"formField.id\"\n ></textarea>\n <valtimo-camunda-formfield-validation [formGroup]=\"formGroup\" [formField]=\"formField\">\n </valtimo-camunda-formfield-validation>\n </div>\n</div>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, OnInit} from '@angular/core';\nimport {UntypedFormGroup} from '@angular/forms';\nimport {FormField} from '../formfield.model';\nimport {ChoiceFieldService} from '../../../../../../services';\n\n@Component({\n selector: 'valtimo-camunda-choicefield-formfield',\n templateUrl: './camunda-choicefield-formfield.component.html',\n standalone: false,\n})\nexport class CamundaChoicefieldFormfieldComponent implements OnInit {\n public formGroup: UntypedFormGroup;\n public formField: FormField;\n public choicefieldValues: Array<any> = [];\n\n constructor(private choiceFieldService: ChoiceFieldService) {}\n\n ngOnInit(): void {\n this.choiceFieldService\n .queryValuesPage(this.formField.properties['choicefield'])\n .subscribe(data => {\n this.choicefieldValues = data.content;\n });\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div class=\"form-group row\" [formGroup]=\"formGroup\">\n <label for=\"{{ formField.id }}\" class=\"col-12 col-sm-3 col-form-label text-sm-right\">\n {{ formField.label }}\n </label>\n <div class=\"col-12 col-sm-8 col-lg-6\">\n <select class=\"form-control\" id=\"{{ formField.id }}\" [formControlName]=\"formField.id\">\n <option selected=\"selected\" value=\"\"></option>\n <ng-container *ngFor=\"let choicefieldValue of choicefieldValues\">\n <option\n *ngIf=\"!choicefieldValue.deprecated\"\n [value]=\"choicefieldValue.value\"\n id=\"option_{{ choicefieldValue.value }}\"\n >\n {{ choicefieldValue.name }}\n </option>\n </ng-container>\n </select>\n <valtimo-camunda-formfield-validation [formGroup]=\"formGroup\" [formField]=\"formField\">\n </valtimo-camunda-formfield-validation>\n </div>\n</div>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n ComponentFactoryResolver,\n ComponentRef,\n Directive,\n Input,\n OnInit,\n ViewContainerRef,\n} from '@angular/core';\nimport {FormGroup} from '@angular/forms';\nimport {FormField} from './formfield.model';\nimport {CamundaStringFormfieldComponent} from './string/camunda-string-formfield.component';\nimport {CamundaBooleanFormfieldComponent} from './boolean/camunda-boolean-formfield.component';\nimport {CamundaDateFormfieldComponent} from './date/camunda-date-formfield.component';\nimport {CamundaLongFormfieldComponent} from './long/camunda-long-formfield.component';\nimport {CamundaEnumFormfieldComponent} from './enum/camunda-enum-formfield.component';\nimport {CamundaTextareaFormfieldComponent} from './textarea/camunda-textarea-formfield.component';\nimport {CamundaChoicefieldFormfieldComponent} from './choicefield/camunda-choicefield-formfield.component';\n\n@Directive({\n selector: '[valtimoCamundaFormfieldGenerator]',\n standalone: false,\n})\nexport class CamundaFormfieldGeneratorDirective implements OnInit {\n @Input() formField: FormField;\n\n @Input() formGroup: FormGroup;\n\n private readonly COMPONENTS = {\n string: CamundaStringFormfieldComponent,\n boolean: CamundaBooleanFormfieldComponent,\n date: CamundaDateFormfieldComponent,\n long: CamundaLongFormfieldComponent,\n enum: CamundaEnumFormfieldComponent,\n textarea: CamundaTextareaFormfieldComponent,\n choicefield: CamundaChoicefieldFormfieldComponent,\n };\n\n private component: ComponentRef<any>;\n\n constructor(\n private viewContainerRef: ViewContainerRef,\n private componentFactoryResolver: ComponentFactoryResolver\n ) {}\n\n ngOnInit(): void {\n const typeName = this.formField.typeName.toLowerCase();\n if (!this.COMPONENTS[typeName]) {\n throw new Error('Could not find component for formfield type: ' + typeName);\n }\n const component = this.COMPONENTS[typeName];\n const factory = this.componentFactoryResolver.resolveComponentFactory(component);\n this.component = this.viewContainerRef.createComponent(factory);\n this.component.instance.formGroup = this.formGroup;\n this.component.instance.formField = this.formField;\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\nimport {UntypedFormBuilder, UntypedFormControl, UntypedFormGroup} from '@angular/forms';\nimport {FormField} from './formfield/formfield.model';\nimport {CamundaFormfieldService} from './formfield/camunda-formfield.service';\nimport {Location} from '@angular/common';\n\n@Component({\n selector: 'valtimo-camunda-generated-form',\n templateUrl: './camunda-generated-form.component.html',\n standalone: false,\n})\nexport class CamundaGeneratedFormComponent implements OnInit {\n @Output() submitted: EventEmitter<any> = new EventEmitter<any>();\n @Input() formFields: FormField[] = [];\n public formGroup: UntypedFormGroup;\n\n constructor(\n private formBuilder: UntypedFormBuilder,\n private camundaFormFieldService: CamundaFormfieldService,\n private location: Location\n ) {}\n\n ngOnInit(): void {\n this.formGroup = this.createFormGroup();\n }\n\n private createFormGroup() {\n const group = this.formBuilder.group({});\n this.formFields.forEach(formField => {\n const control = new UntypedFormControl(\n {\n value: formField.defaultValue,\n disabled: this.camundaFormFieldService.isFormFieldDisabled(formField),\n },\n this.camundaFormFieldService.getValidatorTypes(formField)\n );\n group.addControl(formField.id, control);\n });\n return group;\n }\n\n public reset() {\n this.formGroup.reset();\n }\n\n public back() {\n this.location.back();\n }\n\n public handleSubmit(event) {\n event.preventDefault();\n event.stopPropagation();\n this.submitted.emit(this.formGroup.value);\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<form [formGroup]=\"formGroup\" (ngSubmit)=\"handleSubmit($event)\">\n <ng-container\n *ngFor=\"let formField of formFields\"\n valtimoCamundaFormfieldGenerator\n [formGroup]=\"formGroup\"\n [formField]=\"formField\"\n >\n <ng-content></ng-content>\n </ng-container>\n <div class=\"row pt-3 mt-1\">\n <div class=\"col-sm-12\">\n <div class=\"text-right\">\n <button\n class=\"btn btn-space btn-default float-left\"\n type=\"button\"\n (click)=\"back()\"\n id=\"back-button\"\n >\n Back\n </button>\n <button\n class=\"btn btn-space btn-secondary\"\n type=\"button\"\n (click)=\"reset()\"\n id=\"reset-button\"\n >\n Reset\n </button>\n <button\n class=\"btn btn-space btn-primary\"\n [disabled]=\"!formGroup.disabled && !formGroup.valid\"\n type=\"submit\"\n id=\"submit-button\"\n >\n Submit\n </button>\n </div>\n </div>\n </div>\n</form>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n Component,\n ComponentFactoryResolver,\n Input,\n OnInit,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\n\n@Component({\n selector: 'valtimo-custom-form',\n templateUrl: './camunda-custom-form.component.html',\n styleUrls: ['./camunda-custom-form.component.css'],\n standalone: false,\n})\nexport class CamundaCustomFormComponent implements OnInit {\n @Input() componentName: string;\n @ViewChild('customFormContainer', {read: ViewContainerRef, static: true}) viewContainerRef;\n\n constructor(private resolver: ComponentFactoryResolver) {}\n\n ngOnInit() {\n const factories = Array.from(this.resolver['_factories'].keys());\n const factoryClass = factories.find((x: any) => x.name === this.componentName) as any;\n const cmpFactory = this.resolver.resolveComponentFactory(factoryClass);\n this.viewContainerRef.createComponent(cmpFactory);\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-template #customFormContainer></ng-template>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, EventEmitter, Input, Output} from '@angular/core';\nimport {FormField} from './generated/formfield/formfield.model';\n\n@Component({\n selector: 'valtimo-camunda-form',\n templateUrl: './camunda-form.component.html',\n standalone: false,\n})\nexport class CamundaFormComponent {\n @Input() componentName: string;\n @Input() formFields: FormField[];\n @Output() submitted?: EventEmitter<any> = new EventEmitter();\n\n constructor() {}\n\n onSubmitted(event) {\n this.submitted.emit(event);\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container *ngIf=\"!componentName && submitted\">\n <valtimo-camunda-generated-form\n *ngIf=\"formFields\"\n [formFields]=\"formFields\"\n (submitted)=\"onSubmitted($event)\"\n >\n </valtimo-camunda-generated-form>\n</ng-container>\n<ng-container *ngIf=\"componentName\">\n <valtimo-custom-form [componentName]=\"componentName\"></valtimo-custom-form>\n</ng-container>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {CamundaCustomFormComponent} from './camunda-custom-form.component';\n\n@NgModule({\n declarations: [CamundaCustomFormComponent],\n imports: [CommonModule],\n exports: [CamundaCustomFormComponent],\n})\nexport class CamundaCustomFormModule {}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {CamundaGeneratedFormComponent} from './camunda-generated-form.component';\nimport {ReactiveFormsModule} from '@angular/forms';\nimport {CamundaStringFormfieldComponent} from './formfield/string/camunda-string-formfield.component';\nimport {CamundaFormfieldGeneratorDirective} from './formfield/camunda-formfield-generator.directive';\nimport {CamundaBooleanFormfieldComponent} from './formfield/boolean/camunda-boolean-formfield.component';\nimport {CamundaDateFormfieldComponent} from './formfield/date/camunda-date-formfield.component';\nimport {CamundaLongFormfieldComponent} from './formfield/long/camunda-long-formfield.component';\nimport {CamundaEnumFormfieldComponent} from './formfield/enum/camunda-enum-formfield.component';\nimport {CamundaTextareaFormfieldComponent} from './formfield/textarea/camunda-textarea-formfield.component';\nimport {CamundaChoicefieldFormfieldComponent} from './formfield/choicefield/camunda-choicefield-formfield.component';\nimport {CamundaFormfieldValidationComponent} from './formfield/validation/camunda-formfield-validation.component';\n\n@NgModule({\n declarations: [\n CamundaStringFormfieldComponent,\n CamundaBooleanFormfieldComponent,\n CamundaDateFormfieldComponent,\n CamundaFormfieldGeneratorDirective,\n CamundaLongFormfieldComponent,\n CamundaEnumFormfieldComponent,\n CamundaTextareaFormfieldComponent,\n CamundaChoicefieldFormfieldComponent,\n CamundaFormfieldValidationComponent,\n CamundaGeneratedFormComponent,\n ],\n imports: [CommonModule, ReactiveFormsModule],\n exports: [CamundaGeneratedFormComponent],\n})\nexport class CamundaGeneratedFormModule {}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {CamundaFormComponent} from './camunda-form.components';\nimport {CamundaCustomFormModule} from './custom/camunda-custom-form.module';\nimport {CamundaGeneratedFormModule} from './generated/camunda-generated-form.module';\n\n@NgModule({\n declarations: [CamundaFormComponent],\n imports: [CommonModule, CamundaGeneratedFormModule, CamundaCustomFormModule],\n exports: [CamundaFormComponent],\n})\nexport class CamundaFormModule {}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, Input} from '@angular/core';\n\n/**\n * @deprecated Migrate old design to Carbon\n */\n@Component({\n selector: 'v-paragraph',\n templateUrl: './paragraph.component.html',\n styleUrls: ['./paragraph.component.scss'],\n standalone: false,\n})\nexport class ParagraphComponent {\n @Input() center = false;\n @Input() fullWidth = false;\n @Input() margin = false;\n @Input() italic = false;\n @Input() loading = false;\n @Input() dataTestId?: string;\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<p\n [attr.data-testid]=\"dataTestId\"\n class=\"v-paragraph\"\n [ngClass]=\"{\n 'v-paragraph--center': center,\n 'v-paragraph--full-width': fullWidth,\n 'v-paragraph--margin': margin,\n 'v-paragraph--italic': italic,\n }\"\n>\n <ng-container *ngIf=\"loading\">\n <ngx-skeleton-loader\n appearance=\"line\"\n [theme]=\"{\n width: 'var(--v-paragraph-skeleton-loading-width)',\n height: 'var(--v-paragraph-font-size)',\n margin: '0',\n 'background-color': 'var(--v-paragraph-loading-skeleton-bg-color)',\n }\"\n ></ngx-skeleton-loader>\n </ng-container>\n <ng-container *ngIf=\"!loading\">\n <ng-content></ng-content>\n </ng-container>\n</p>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n AfterViewInit,\n Component,\n HostBinding,\n OnInit,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport {KeycloakService} from 'keycloak-angular';\nimport {map, Observable, of, switchMap} from 'rxjs';\nimport {ConfigService, ValtimoConfig} from '@valtimo/shared';\nimport {IconService} from 'carbon-components-angular';\nimport User20 from '@carbon/icons/es/user/20';\nimport {ShellService} from '../../services/shell.service';\nimport {DomSanitizer, SafeResourceUrl} from '@angular/platform-browser';\nimport {CdsThemeService, PageHeaderService} from '../../services';\nimport {CurrentCarbonTheme, TopbarLogo} from '../../models';\n\n@Component({\n selector: 'valtimo-topbar',\n templateUrl: './topbar.component.html',\n styleUrls: ['./topbar.component.scss'],\n standalone: false,\n})\nexport class TopbarComponent implements OnInit, AfterViewInit {\n @HostBinding('class.cds--header') headerClass = true;\n\n @ViewChild('headerVcr', {static: true, read: ViewContainerRef})\n private readonly _headerVcr!: ViewContainerRef;\n\n public readonly logoBase64$: Observable<SafeResourceUrl> =\n this.cdsThemeService.currentTheme$.pipe(\n map(currentTheme => {\n const base64logo = this.getBase64Logo(this.configService.config, currentTheme);\n\n return this.sanitizer.bypassSecurityTrustResourceUrl(\n `${base64logo.isSvg ? 'data:image/svg+xml;base64' : 'data:image/png;base64'}, ${base64logo.base64string}`\n );\n })\n );\n\n public readonly userFullName$ = of(this.keyCloakService.isLoggedIn()).pipe(\n switchMap(() => this.keyCloakService.loadUserProfile()),\n map(profile => `${profile.firstName} ${profile.lastName}`)\n );\n\n public readonly applicationTitle = this.configService.config.applicationTitle;\n public readonly largeLogoMargin = this.configService.config.featureToggles?.largeLogoMargin;\n public readonly sideBarExpanded$ = this.shellService.sideBarExpanded$;\n public readonly largeScreen$ = this.shellService.largeScreen$;\n public readonly panelExpanded$ = this.shellService.panelExpanded$;\n public readonly collapsibleWidescreenMenu$ = this.shellService.collapsibleWidescreenMenu$;\n public readonly showUserNameInTopBar$ = this.pageHeaderService.showUserNameInTopBar$;\n\n constructor(\n private readonly keyCloakService: KeycloakService,\n private readonly configService: ConfigService,\n private readonly iconService: IconService,\n private readonly shellService: ShellService,\n private readonly sanitizer: DomSanitizer,\n private readonly pageHeaderService: PageHeaderService,\n private readonly cdsThemeService: CdsThemeService\n ) {}\n\n public ngOnInit(): void {\n this.iconService.registerAll([User20]);\n }\n\n public ngAfterViewInit(): void {\n this.pageHeaderService.setHeaderViewContainerRef(this._headerVcr);\n }\n\n public toggleSideBar(): void {\n this.shellService.toggleSideBar();\n }\n\n public setPanelExpanded(expanded: boolean): void {\n this.shellService.setPanelExpanded(expanded);\n }\n\n public mouseEnter(): void {\n this.shellService.setMouseOnTopBar(true);\n }\n\n public mouseLeave(): void {\n this.shellService.setMouseOnTopBar(false);\n }\n\n private getBase64Logo(config: ValtimoConfig, currentTheme: CurrentCarbonTheme): TopbarLogo {\n const {logoSvgBase64, logoPngBase64, darkModeLogoSvgBase64, darkModeLogoPngBase64} =\n this.configService.config;\n let base64string!: string;\n let isSvg = true;\n\n switch (currentTheme) {\n case CurrentCarbonTheme.G10:\n if (logoSvgBase64) {\n base64string = logoSvgBase64;\n } else if (logoPngBase64) {\n base64string = logoPngBase64;\n isSvg = false;\n } else if (darkModeLogoSvgBase64) {\n base64string = darkModeLogoSvgBase64;\n } else {\n base64string = darkModeLogoPngBase64;\n isSvg = false;\n }\n break;\n case CurrentCarbonTheme.G90:\n if (darkModeLogoSvgBase64) {\n base64string = darkModeLogoSvgBase64;\n } else if (darkModeLogoPngBase64) {\n base64string = darkModeLogoPngBase64;\n isSvg = false;\n } else if (logoSvgBase64) {\n base64string = logoSvgBase64;\n } else {\n base64string = logoPngBase64;\n isSvg = false;\n }\n break;\n }\n\n return {\n isSvg,\n base64string,\n };\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<cds-header [useRouter]=\"false\" (mouseenter)=\"mouseEnter()\" (mouseleave)=\"mouseLeave()\">\n <a\n *ngIf=\"logoBase64$ | async as logoBase64\"\n class=\"logo-link\"\n [ngClass]=\"{'logo-link--large-margin': largeLogoMargin}\"\n [routerLink]=\"['/']\"\n [title]=\"applicationTitle\"\n >\n <img [src]=\"logoBase64\" class=\"logo-image\" />\n </a>\n <cds-hamburger\n *ngIf=\"(largeScreen$ | async) === false || (collapsibleWidescreenMenu$ | async)\"\n [active]=\"sideBarExpanded$ | async\"\n (selected)=\"toggleSideBar()\"\n ></cds-hamburger>\n <cds-header-global>\n <ng-container #headerVcr></ng-container>\n\n <ng-container *ngTemplateOutlet=\"userFullName\"></ng-container>\n\n <cds-header-action\n title=\"action\"\n [active]=\"panelExpanded$ | async\"\n (activeChange)=\"setPanelExpanded($event)\"\n >\n <svg cdsIcon=\"user\" size=\"20\"></svg>\n </cds-header-action>\n </cds-header-global>\n</cds-header>\n\n<ng-template #userFullName>\n <div\n class=\"user-full-name\"\n *ngIf=\"(showUserNameInTopBar$ | async) && {userFullName: userFullName$ | async} as obs\"\n >\n <v-paragraph [loading]=\"!obs.userFullName\">{{ obs.userFullName }}</v-paragraph>\n </div>\n</ng-template>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {ParagraphComponent} from './paragraph.component';\nimport {NgxSkeletonLoaderModule} from 'ngx-skeleton-loader';\n\n/**\n * @deprecated Migrate old design to Carbon\n */\n@NgModule({\n declarations: [ParagraphComponent],\n imports: [CommonModule, NgxSkeletonLoaderModule],\n exports: [ParagraphComponent],\n})\nexport class ParagraphModule {}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {TopbarComponent} from './topbar.component';\nimport {RouterModule} from '@angular/router';\nimport {ParagraphModule} from '../paragraph/paragraph.module';\nimport {IconModule, UIShellModule} from 'carbon-components-angular';\n\n@NgModule({\n declarations: [TopbarComponent],\n imports: [CommonModule, RouterModule, ParagraphModule, UIShellModule, IconModule],\n exports: [TopbarComponent],\n})\nexport class TopbarModule {}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {Injectable} from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PendingChangesService {\n private _pendingChanges = false;\n public set pendingChanges(value: boolean) {\n this._pendingChanges = value;\n }\n public get pendingChanges(): boolean {\n return this._pendingChanges;\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {HttpClient} from '@angular/common/http';\nimport {Injectable, OnDestroy} from '@angular/core';\nimport {NavigationEnd, NavigationStart, ResolveEnd, Router} from '@angular/router';\nimport {ConfigService, MenuConfig, MenuIncludeService, MenuItem} from '@valtimo/shared';\nimport {UserProviderService} from '@valtimo/security';\nimport {NGXLogger} from 'ngx-logger';\nimport {\n BehaviorSubject,\n combineLatest,\n Observable,\n of,\n OperatorFunction,\n Subscription,\n switchMap,\n} from 'rxjs';\nimport {distinctUntilChanged, filter, map, tap} from 'rxjs/operators';\nimport {PendingChangesService} from '../../pending-changes/pending-changes.service';\nimport {AppendMenuItemsFunction} from '../../../models';\nimport {isEqual} from 'lodash';\nimport {KeycloakService} from 'keycloak-angular';\n\n@Injectable({providedIn: 'root'})\nexport class MenuService implements OnDestroy {\n private readonly _activeParentSequenceNumber$ = new BehaviorSubject<string>('');\n private readonly _menuItems$ = new BehaviorSubject<MenuItem[]>([]);\n\n private readonly reloadActiveSequence$ = new BehaviorSubject<null>(null);\n private readonly reload$ = new BehaviorSubject<null>(null);\n\n public includeFunctionObservables: {[key: string]: Observable<boolean>} = {};\n\n private readonly menuConfig: MenuConfig;\n\n private readonly currentRoute$ = this.router.events.pipe(\n filter(\n event =>\n event instanceof NavigationEnd ||\n event instanceof NavigationStart ||\n event instanceof ResolveEnd\n ),\n map(event => (event as NavigationEnd)?.url),\n filter(url => !!url)\n );\n\n public get menuItems$(): Observable<MenuItem[]> {\n return this._menuItems$.pipe(distinctUntilChanged((prev, curr) => isEqual(prev, curr)));\n }\n\n public get menuItemsLoaded$(): Observable<boolean> {\n return this._menuItems$.pipe(map(items => Array.isArray(items) && items.length > 0));\n }\n\n public get activeParentSequenceNumber$(): Observable<string> {\n return this._activeParentSequenceNumber$.asObservable();\n }\n\n public get closestSequence$(): Observable<string> {\n return combineLatest([this.currentRoute$, this.menuItems$]).pipe(\n filter(() => !this.pendingChangesService.pendingChanges),\n map(([currentRoute, menuItems]) => {\n let closestSequence = '0';\n let highestDiff = 0;\n\n const normalize = (value: string): string =>\n ('/' + decodeURIComponent(value).toLowerCase().replace(/^\\/+/, '')).replace(/\\/+$/, '');\n\n const normalizedCurrent = normalize(currentRoute);\n\n const checkItemMatch = (rawUrl: string, seq: string, parentSeq?: string): void => {\n const normalizedUrl = normalize(rawUrl);\n const diff =\n normalizedCurrent.length - normalizedCurrent.replace(normalizedUrl, '').length;\n\n if (diff > highestDiff) {\n highestDiff = diff;\n closestSequence = seq;\n this._activeParentSequenceNumber$.next(parentSeq || '');\n }\n };\n\n menuItems.forEach(item => {\n const topLink = Array.isArray(item.link) ? item.link.join('/') : '';\n checkItemMatch(topLink, `${item.sequence}`);\n\n item.children?.forEach(child => {\n if (Array.isArray(child.link)) {\n const fullLink = [...(item.link || []), ...child.link].join('/');\n checkItemMatch(fullLink, `${item.sequence}${child.sequence}`, `${item.sequence}`);\n }\n });\n });\n\n return closestSequence;\n }),\n distinctUntilChanged()\n );\n }\n\n private readonly _subscriptions = new Subscription();\n\n private readonly _appendMenuItemFunctions$ = new BehaviorSubject<AppendMenuItemsFunction[]>([]);\n\n constructor(\n private readonly configService: ConfigService,\n private readonly http: HttpClient,\n private readonly logger: NGXLogger,\n private readonly menuIncludeService: MenuIncludeService,\n private readonly pendingChangesService: PendingChangesService,\n private readonly router: Router,\n private readonly userProviderService: UserProviderService,\n private readonly keycloakService: KeycloakService\n ) {\n const config = configService.config;\n this.menuConfig = config?.menu;\n }\n\n public init(): void {\n this.initReload();\n this.logger.debug('Menu initialized');\n }\n\n public ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n public reload(): void {\n this.reloadActiveSequence$.next(null);\n this.reload$.next(null);\n }\n\n private loadMenuItems(userRoles: string[]): MenuItem[] {\n let menuItems: MenuItem[] = [];\n\n this.menuConfig.menuItems.forEach(menuItem => {\n if (menuItem.includeFunction) {\n this.includeFunctionObservables[menuItem.title] =\n this.menuIncludeService.getIncludeFunction(menuItem.includeFunction);\n }\n\n menuItem.show = true;\n\n if (!menuItem.roles || menuItem.roles.some(role => userRoles.includes(role))) {\n const filteredChildren = menuItem.children?.filter(\n child => !child.roles || child.roles.some(role => userRoles.includes(role))\n );\n menuItems.push({...menuItem, ...(filteredChildren && {children: filteredChildren})});\n }\n });\n\n return menuItems.sort((a, b) => a.sequence - b.sequence);\n }\n\n private applyMenuRoleSecurity(menuItems: MenuItem[]): MenuItem[] {\n this.userProviderService.getUserSubject().subscribe(user => {\n const roles = user?.roles || [];\n menuItems.forEach(item => {\n item.show = !item.roles || item.roles.some(role => roles.includes(role));\n });\n });\n return menuItems;\n }\n\n public initReload(): void {\n const roles = this.keycloakService.getUserRoles(true);\n const existingMenuItemsValue = this._menuItems$.getValue();\n const existingMenuItems =\n Array.isArray(existingMenuItemsValue) && existingMenuItemsValue.length > 0;\n const menuItems = existingMenuItems || this.loadMenuItems(roles);\n\n this._subscriptions.add(\n this.reload$\n .pipe(\n switchMap(() => of(menuItems as MenuItem[])),\n switchMap(items => combineLatest([of(items), this._appendMenuItemFunctions$])),\n switchMap(([items, appendMenuItemsFunctions]) => {\n const sourceObs = of(items);\n\n if (!Array.isArray(appendMenuItemsFunctions) || appendMenuItemsFunctions.length === 0) {\n return sourceObs;\n }\n\n const operators = appendMenuItemsFunctions.map(fn => switchMap(fn)) as [\n OperatorFunction<MenuItem[], MenuItem[]>,\n ...OperatorFunction<MenuItem[], MenuItem[]>[],\n ];\n\n // @ts-ignore\n return sourceObs.pipe(...operators);\n }),\n map(items => this.applyMenuRoleSecurity(items)),\n tap(items => {\n if (!isEqual(this._menuItems$.getValue(), items)) this._menuItems$.next(items);\n })\n )\n .subscribe()\n );\n }\n\n public registerAppendMenuItemsFunction(functionValue: AppendMenuItemsFunction): void {\n this._appendMenuItemFunctions$.next([\n ...this._appendMenuItemFunctions$.getValue(),\n functionValue,\n ]);\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './menu.service';\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {RouterModule, Routes} from '@angular/router';\nimport {NgModule} from '@angular/core';\n\nconst routes: Routes = [];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class MenuRoutingModule {}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, EventEmitter, Input, Output, ViewEncapsulation} from '@angular/core';\nimport {MenuItem} from '@valtimo/shared';\n\n@Component({\n selector: 'valtimo-menu-item-text',\n templateUrl: './menu-item-text.component.html',\n styleUrls: ['./menu-item-text.component.scss'],\n encapsulation: ViewEncapsulation.None,\n standalone: false,\n})\nexport class MenuItemTextComponent {\n @Input() menuItem: MenuItem;\n @Input() accent = false;\n @Input() showOverFlowMenu = false;\n @Output() overflowMenuClosed = new EventEmitter<any>();\n @Output() openInNewTab = new EventEmitter<any>();\n\n public onOpenChange(open: boolean): void {\n if (!open) {\n this.overflowMenuClosed.emit();\n }\n }\n\n public onSelectOpenInNewTab(): void {\n this.openInNewTab.emit();\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div\n *ngIf=\"{titleTranslation: menuItem | menuItemTranslate | async} as obs\"\n class=\"menu-item-text-container\"\n id=\"{{ menuItem?.id }}\"\n>\n <span *ngIf=\"obs.titleTranslation\" [ngClass]=\"{'cds--link empty-menu-icon-text': accent}\">\n <div class=\"menu-item-icon-container\">\n <i class=\"{{ menuItem.iconClass }}\"></i>\n </div>\n\n {{ obs.titleTranslation + (accent ? ' >' : '') }}\n </span>\n\n <ng-container *ngTemplateOutlet=\"overflowTrigger\"></ng-container>\n\n <cds-overflow-menu\n [customTrigger]=\"overflowTrigger\"\n [open]=\"showOverFlowMenu\"\n [offset]=\"{x: 100, y: -25}\"\n placement=\"bottom\"\n wrapperClass=\"--hide-after --wide\"\n (openChange)=\"onOpenChange($event)\"\n >\n <cds-overflow-menu-option (selected)=\"onSelectOpenInNewTab()\">{{\n 'interface.openInNewTab' | translate\n }}</cds-overflow-menu-option>\n </cds-overflow-menu>\n</div>\n\n<ng-template #overflowTrigger>\n <div></div>\n</ng-template>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {RouterModule} from '@angular/router';\nimport {NgbTooltipModule} from '@ng-bootstrap/ng-bootstrap';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {MenuItemTextComponent} from './menu-item-text.component';\nimport {ComponentsPipesModule} from '../../pipes';\nimport {DialogModule, LinkModule} from 'carbon-components-angular';\n\n@NgModule({\n declarations: [MenuItemTextComponent],\n imports: [\n CommonModule,\n RouterModule,\n NgbTooltipModule,\n TranslateModule,\n ComponentsPipesModule,\n LinkModule,\n DialogModule,\n ],\n exports: [MenuItemTextComponent],\n})\nexport class MenuModule {}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injector} from '@angular/core';\nimport {NGXLogger} from 'ngx-logger';\nimport {MenuService} from './services/menu.service';\n\nexport function menuInitializer(injector: Injector, logger: NGXLogger): () => Promise<any> {\n const menuService = injector.get<MenuService>(MenuService);\n return (): Promise<any> =>\n new Promise<void>((resolve, reject) => {\n try {\n logger.debug('menu initializer before init');\n menuService.init();\n logger.debug('menu initializer after init');\n resolve();\n } catch (error) {\n logger.debug('menu initializer error', error);\n reject(error);\n }\n });\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {HttpClient} from '@angular/common/http';\nimport {Observable} from 'rxjs';\nimport {ValtimoVersion} from '../../models';\nimport {ConfigService} from '@valtimo/shared';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class VersionService {\n private valtimoEndpointUri: string;\n\n constructor(\n private readonly http: HttpClient,\n private readonly configService: ConfigService\n ) {\n this.valtimoEndpointUri = configService.config.valtimoApi.endpointUri;\n }\n\n public getVersion(): Observable<ValtimoVersion> {\n return this.http.get<ValtimoVersion>(`${this.valtimoEndpointUri}v1/valtimo/version`);\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n Component,\n ElementRef,\n HostListener,\n OnDestroy,\n OnInit,\n ViewEncapsulation,\n} from '@angular/core';\nimport {FormBuilder} from '@angular/forms';\nimport {TranslateService} from '@ngx-translate/core';\nimport {SelectableCarbonTheme, ValtimoVersion} from '../../models';\nimport {\n ConfigService,\n FeedbackMailTo,\n UserIdentity,\n UserSettings,\n UserSettingsService,\n ValtimoConfig,\n VERSIONS,\n} from '@valtimo/shared';\nimport {UserProviderService} from '@valtimo/security';\nimport {BehaviorSubject, combineLatest, Observable, Subscription, switchMap, take} from 'rxjs';\nimport {VersionService} from '../version/version.service';\nimport {CdsThemeService, PageHeaderService, ShellService} from '../../services';\nimport {map} from 'rxjs/operators';\nimport {ListItem} from 'carbon-components-angular';\n\n@Component({\n selector: 'valtimo-right-sidebar',\n templateUrl: './right-sidebar.component.html',\n styleUrls: ['./right-sidebar.component.scss'],\n encapsulation: ViewEncapsulation.None,\n standalone: false,\n})\nexport class RightSidebarComponent implements OnInit, OnDestroy {\n @HostListener('document:click', ['$event.target'])\n public onPageClick(targetElement) {\n combineLatest([this.shellService.panelExpanded$, this.shellService.mouseOnTopBar$])\n .pipe(take(1))\n .subscribe(([panelExpanded, mouseOnTopBar]) => {\n const clickedInside =\n this.elementRef.nativeElement.contains(targetElement) || mouseOnTopBar;\n\n if (!clickedInside && panelExpanded) {\n this.shellService.setPanelExpanded(false);\n }\n });\n }\n\n public readonly panelExpanded$ = this.shellService.panelExpanded$;\n\n private readonly _selectedLanguage$ = new BehaviorSubject<string>('');\n private readonly _languageOptions$ = new BehaviorSubject<Array<string>>([]);\n\n public readonly languageListItems$: Observable<ListItem[]> = combineLatest([\n this._languageOptions$,\n this._selectedLanguage$,\n this.translateService.stream('key'),\n ]).pipe(\n map(([languageOptions, selectedLanguage]) =>\n languageOptions.map(languageKey => ({\n content: this.translateService.instant('settings.language.options.' + languageKey),\n key: languageKey,\n selected: selectedLanguage === languageKey,\n }))\n )\n );\n\n public readonly backendVersion$: Observable<ValtimoVersion> = this.versionService.getVersion();\n public readonly userSubject$: Observable<UserIdentity> =\n this.userProviderService.getUserSubject();\n public readonly updatingUserSettings$ = new BehaviorSubject<boolean>(true);\n\n public readonly collapsibleWidescreenMenu$ = this.shellService.collapsibleWidescreenMenu$;\n public readonly compactMode$ = this.pageHeaderService.compactMode$;\n public readonly showUserNameInTopBar$ = this.pageHeaderService.showUserNameInTopBar$;\n\n private readonly _preferredTheme$ = this.cdsThemeService.preferredTheme$;\n\n public frontendVersion!: string;\n\n public showValtimoVersions = true;\n\n public readonly themeOptions$: Observable<ListItem[]> = combineLatest([\n this._preferredTheme$,\n this.translateService.stream('key'),\n ]).pipe(\n map(([preferredTheme]) => [\n {\n content: this.translateService.instant('settings.interface.themes.light'),\n key: SelectableCarbonTheme.G10,\n selected: preferredTheme === SelectableCarbonTheme.G10,\n },\n {\n content: this.translateService.instant('settings.interface.themes.dark'),\n key: SelectableCarbonTheme.G90,\n selected: preferredTheme === SelectableCarbonTheme.G90,\n },\n {\n content: this.translateService.instant('settings.interface.themes.system'),\n key: SelectableCarbonTheme.SYSTEM,\n selected: preferredTheme === SelectableCarbonTheme.SYSTEM,\n },\n ])\n );\n\n public overrideFeedbackMenuItemToMailTo!: FeedbackMailTo;\n public allowUserThemeSwitching = true;\n public enableCompactModeToggle = true;\n public enableShowUserNameToggle = false;\n public showPlantATreeButton = false;\n public resetUrl!: string;\n\n private _hideValtimoVersionsForNonAdmins = false;\n\n private readonly _isAdmin$: Observable<boolean> = this.userProviderService\n .getUserSubject()\n .pipe(map(userIdentity => userIdentity?.roles.includes('ROLE_ADMIN')));\n\n private readonly _subscriptions = new Subscription();\n\n constructor(\n private readonly translateService: TranslateService,\n private readonly userProviderService: UserProviderService,\n private readonly formBuilder: FormBuilder,\n private readonly versionService: VersionService,\n private readonly shellService: ShellService,\n private readonly elementRef: ElementRef,\n private readonly configService: ConfigService,\n private readonly userSettingsService: UserSettingsService,\n private readonly pageHeaderService: PageHeaderService,\n private readonly cdsThemeService: CdsThemeService\n ) {}\n\n public ngOnInit(): void {\n this.initSettings();\n this.initFrontendVersion();\n this.openShowVersionsSubscription();\n this.setLanguage();\n this.getUserSettings();\n }\n\n public ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n public updateUserLanguage(langKey: string | {item?: {key?: string}}, saveSettings = true): void {\n const langKeyToUse = (langKey as any)?.item?.key\n ? (langKey as any)?.item.key\n : (langKey as string);\n\n this.translateService\n .use(langKeyToUse)\n .pipe(take(1))\n .subscribe(() => {\n localStorage.setItem('langKey', langKeyToUse);\n this._selectedLanguage$.next(langKeyToUse);\n\n if (saveSettings) {\n this.saveUserSettings();\n }\n });\n }\n\n public setCollapsibleWidescreenMenu(collapsible: boolean, saveSettings = true): void {\n this.shellService.setCollapsibleWidescreenMenu(collapsible);\n\n if (saveSettings) {\n this.saveUserSettings();\n }\n }\n\n public setCompactMode(compactMode: boolean, saveSettings = true): void {\n this.pageHeaderService.setCompactMode(compactMode);\n\n if (saveSettings) {\n this.saveUserSettings();\n }\n }\n\n public setShowUserName(showUserName: boolean, saveSettings = true): void {\n this.pageHeaderService.setShowUserNameInTopBar(showUserName);\n\n if (saveSettings) {\n this.saveUserSettings();\n }\n }\n\n public setPreferredTheme(\n selectedTheme: string | {item?: {key?: string}},\n saveSettings = true\n ): void {\n if (this.allowUserThemeSwitching) {\n if ((selectedTheme as any)?.item?.key) {\n this.cdsThemeService.setPreferredTheme(\n (selectedTheme as any).item?.key as SelectableCarbonTheme\n );\n } else {\n this.cdsThemeService.setPreferredTheme(selectedTheme as SelectableCarbonTheme);\n }\n\n if (saveSettings) {\n this.saveUserSettings();\n }\n }\n }\n\n public logout(): void {\n this.userProviderService.logout();\n }\n\n private initSettings(): void {\n const config: ValtimoConfig = this.configService?.config;\n const featureToggles = config?.featureToggles || {};\n\n this.resetUrl = config?.changePasswordUrl?.endpointUri;\n this.overrideFeedbackMenuItemToMailTo = config?.overrideFeedbackMenuItemToMailTo;\n\n this.enableShowUserNameToggle = !!featureToggles.enableUserNameInTopBarToggle;\n this.showPlantATreeButton = !!featureToggles.showPlantATreeButton;\n\n if (featureToggles.hasOwnProperty('allowUserThemeSwitching')) {\n this.allowUserThemeSwitching = !!featureToggles.allowUserThemeSwitching;\n }\n\n if (featureToggles.hasOwnProperty('enableCompactModeToggle')) {\n this.enableCompactModeToggle = !!featureToggles.enableCompactModeToggle;\n }\n\n if (featureToggles.hasOwnProperty('hideValtimoVersionsForNonAdmins')) {\n this._hideValtimoVersionsForNonAdmins = !!featureToggles.hideValtimoVersionsForNonAdmins;\n }\n }\n\n private initFrontendVersion(): void {\n this.frontendVersion = VERSIONS?.frontendLibraries;\n }\n\n private setLanguage(): void {\n this._selectedLanguage$.next(this.translateService.currentLang);\n this._languageOptions$.next(this.translateService.langs);\n }\n\n private sortObjectAlphabetically(jsObject: object): object {\n return Object.keys(jsObject)\n .sort()\n .reduce(\n (acc, key) => ({\n ...acc,\n [key]: jsObject[key],\n }),\n {}\n );\n }\n\n private getUserSettings(): void {\n this.userSettingsService.getUserSettings().subscribe(settings => {\n this.updatingUserSettings$.next(false);\n\n if (!settings?.languageCode) {\n this.saveUserSettings();\n } else {\n this.setUserSettings(settings);\n }\n });\n }\n\n private saveUserSettings(): void {\n this.updatingUserSettings$.next(true);\n\n combineLatest([\n this._selectedLanguage$,\n this.collapsibleWidescreenMenu$,\n this.compactMode$,\n this.showUserNameInTopBar$,\n this._preferredTheme$,\n ])\n .pipe(\n take(1),\n switchMap(\n ([\n languageCode,\n collapsibleWidescreenMenu,\n compactMode,\n showUserNameInTopBar,\n preferredTheme,\n ]) =>\n this.userSettingsService.saveUserSettings({\n collapsibleWidescreenMenu,\n languageCode,\n ...(this.enableCompactModeToggle && {compactMode}),\n ...(this.enableShowUserNameToggle && {showUserNameInTopBar}),\n ...(this.allowUserThemeSwitching && {preferredTheme}),\n })\n )\n )\n .subscribe(() => {\n this.updatingUserSettings$.next(false);\n });\n }\n\n private setUserSettings(settings: UserSettings): void {\n this._selectedLanguage$.next(settings.languageCode);\n this.updateUserLanguage(settings.languageCode, false);\n this.setCollapsibleWidescreenMenu(settings.collapsibleWidescreenMenu, false);\n if (this.enableCompactModeToggle) this.setCompactMode(settings.compactMode, false);\n if (this.enableShowUserNameToggle) this.setShowUserName(settings.showUserNameInTopBar, false);\n if (settings.preferredTheme && this.allowUserThemeSwitching) {\n this.setPreferredTheme(settings.preferredTheme, false);\n }\n }\n\n private openShowVersionsSubscription(): void {\n this._subscriptions.add(\n this._isAdmin$.subscribe(isAdmin => {\n if (this._hideValtimoVersionsForNonAdmins && !isAdmin) {\n this.showValtimoVersions = false;\n }\n })\n );\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div class=\"right-sidebar-menu\">\n <cds-panel [expanded]=\"panelExpanded$ | async\">\n <div cdsGrid [condensed]=\"true\">\n <div cdsRow>\n <div cdsCol [columnNumbers]=\"{lg: 16}\" class=\"menu-tabs\" cdsLayer>\n <cds-tabs class=\"cds--tab--list--full-width\">\n <cds-tab [heading]=\"'account.title' | translate\">\n <ng-container *ngTemplateOutlet=\"accountTabTemplate\"></ng-container>\n </cds-tab>\n\n <cds-tab [heading]=\"'settings.title' | translate\">\n <ng-container *ngTemplateOutlet=\"settingsTabTemplate\"></ng-container>\n </cds-tab>\n </cds-tabs>\n </div>\n </div>\n </div>\n </cds-panel>\n</div>\n\n<ng-template #accountTabTemplate>\n <ng-container *ngTemplateOutlet=\"accountInformationTemplate\"></ng-container>\n\n <ng-container *ngTemplateOutlet=\"linksTemplate\"></ng-container>\n</ng-template>\n\n<ng-template #settingsTabTemplate>\n <ng-container *ngTemplateOutlet=\"languageSettingsTemplate\"></ng-container>\n\n <ng-container *ngTemplateOutlet=\"interfaceSettingsTemplate\"></ng-container>\n\n @if (showValtimoVersions) {\n <ng-container *ngTemplateOutlet=\"versionTemplate\"></ng-container>\n }\n</ng-template>\n\n<ng-template #accountInformationTemplate>\n <cds-structured-list>\n <cds-list-header>\n <cds-list-column>{{ 'account.informationTitle' | translate }}</cds-list-column>\n </cds-list-header>\n\n <cds-list-row>\n <cds-list-column>\n <ng-container *ngTemplateOutlet=\"accountInformationTableTemplate\"></ng-container>\n </cds-list-column>\n </cds-list-row>\n </cds-structured-list>\n</ng-template>\n\n<ng-template #accountInformationTableTemplate>\n <div class=\"information-table account-information\">\n <cds-structured-list *ngIf=\"userSubject$ | async as userSubject\">\n <cds-list-row>\n <cds-list-column\n >{{ 'interface.email' | translate }}\n <cds-tag type=\"blue\">{{ userSubject.email }}</cds-tag>\n </cds-list-column>\n </cds-list-row>\n\n <cds-list-row>\n <cds-list-column\n >{{ 'interface.username' | translate }}\n <cds-tag type=\"blue\">{{ userSubject.username }}</cds-tag>\n </cds-list-column>\n </cds-list-row>\n\n <cds-list-row>\n <cds-list-column\n >{{ 'interface.name' | translate }}\n <cds-tag type=\"blue\">{{ userSubject.firstName + ' ' + userSubject.lastName }}</cds-tag>\n </cds-list-column>\n </cds-list-row>\n </cds-structured-list>\n </div>\n</ng-template>\n\n<ng-template #linksTemplate>\n <cds-structured-list>\n <cds-list-header>\n <cds-list-column>{{ 'account.quickLinks' | translate }}</cds-list-column>\n </cds-list-header>\n\n <cds-list-row>\n <cds-list-column>\n <ng-container *ngTemplateOutlet=\"linksTableTemplate\"></ng-container>\n </cds-list-column>\n </cds-list-row>\n </cds-structured-list>\n</ng-template>\n\n<ng-template #linksTableTemplate>\n <div class=\"information-table\">\n <cds-structured-list>\n <cds-list-row>\n <cds-list-column>\n <a href=\"https://docs.valtimo.nl\" target=\"_blank\" cdsLink>{{\n 'account.links.help' | translate\n }}</a>\n </cds-list-column>\n </cds-list-row>\n\n <cds-list-row>\n <cds-list-column *ngIf=\"!overrideFeedbackMenuItemToMailTo; else feedbackMailTo\">\n <a href=\"https://www.valtimo.nl/feedback\" target=\"_blank\" cdsLink>{{\n 'account.links.feedback' | translate\n }}</a>\n </cds-list-column>\n </cds-list-row>\n\n <cds-list-row *ngIf=\"resetUrl\">\n <cds-list-column>\n <a [href]=\"resetUrl\" cdsLink>{{ 'account.links.resetPassword' | translate }}</a>\n </cds-list-column>\n </cds-list-row>\n\n <cds-list-row>\n <cds-list-column>\n <a href=\"javascript:void(0)\" cdsLink (click)=\"logout()\">{{\n 'account.links.signOut' | translate\n }}</a>\n </cds-list-column>\n </cds-list-row>\n\n <cds-list-row *ngIf=\"showPlantATreeButton\">\n <cds-list-column>\n <a\n class=\"text-success\"\n href=\"mailto:valtimo@ritense.com?subject=Plant een boom voor Valtimo&body=Hallo Valtimo gebruiker,%0D%0DMet het versturen van deze e-mail gaan we gelijk aan de slag om een boom te planten. Hiermee compenseren we voor een deel de CO2 uitstoot van je Valtimo gebruik.%0D%0DMet Groene Groet,%0D%0DHet Valtimo team%0D%0D*Deze bomenplantactie kan 1 keer ingezet worden door elke geregistreerde Valtimo gebruiker.%0D%0D** Ritense plant ook jaarlijks bomen voor alle Valtimo installaties die in gebruik zijn.\"\n target=\"_blank\"\n cdsLink\n >\n {{ 'account.links.plantATree' | translate }}\n </a>\n </cds-list-column>\n </cds-list-row>\n </cds-structured-list>\n </div>\n</ng-template>\n\n<ng-template #languageSettingsTemplate>\n <cds-structured-list>\n <cds-list-header>\n <cds-list-column>{{ 'settings.language.title' | translate }}</cds-list-column>\n </cds-list-header>\n\n <cds-list-row>\n <cds-list-column>\n <cds-dropdown\n [id]=\"'language-dropdown'\"\n [appendInline]=\"true\"\n [dropUp]=\"false\"\n (click)=\"$event.stopPropagation()\"\n (selected)=\"updateUserLanguage($event)\"\n >\n <cds-dropdown-list [items]=\"(languageListItems$ | async) || []\"></cds-dropdown-list>\n </cds-dropdown>\n </cds-list-column>\n </cds-list-row>\n </cds-structured-list>\n</ng-template>\n\n<ng-template #interfaceSettingsTemplate>\n <cds-structured-list>\n <cds-list-header>\n <cds-list-column>{{ 'settings.interface.title' | translate }}</cds-list-column>\n </cds-list-header>\n\n <cds-list-row>\n <cds-list-column>\n <cds-toggle\n [label]=\"'settings.interface.collapsibleMenu' | translate\"\n [onText]=\"'interface.on' | translate\"\n [offText]=\"'interface.off' | translate\"\n [disabled]=\"updatingUserSettings$ | async\"\n [ngModel]=\"collapsibleWidescreenMenu$ | async\"\n (ngModelChange)=\"setCollapsibleWidescreenMenu($event)\"\n >\n </cds-toggle>\n </cds-list-column>\n </cds-list-row>\n\n <cds-list-row *ngIf=\"allowUserThemeSwitching\">\n <cds-list-column>\n <cds-dropdown\n [label]=\"'settings.interface.themePreference' | translate\"\n [appendInline]=\"true\"\n (click)=\"$event.stopPropagation()\"\n (selected)=\"setPreferredTheme($event)\"\n [dropUp]=\"false\"\n >\n <cds-dropdown-list [items]=\"(themeOptions$ | async) || []\"></cds-dropdown-list>\n </cds-dropdown>\n </cds-list-column>\n </cds-list-row>\n\n <cds-list-row *ngIf=\"enableCompactModeToggle\">\n <cds-list-column>\n <cds-toggle\n [label]=\"'settings.interface.compactMode' | translate\"\n [onText]=\"'interface.on' | translate\"\n [offText]=\"'interface.off' | translate\"\n [disabled]=\"updatingUserSettings$ | async\"\n [ngModel]=\"compactMode$ | async\"\n (ngModelChange)=\"setCompactMode($event)\"\n >\n </cds-toggle>\n </cds-list-column>\n </cds-list-row>\n\n <cds-list-row *ngIf=\"enableShowUserNameToggle\">\n <cds-list-column>\n <cds-toggle\n [label]=\"'settings.interface.showUserName' | translate\"\n [onText]=\"'interface.on' | translate\"\n [offText]=\"'interface.off' | translate\"\n [disabled]=\"updatingUserSettings$ | async\"\n [ngModel]=\"showUserNameInTopBar$ | async\"\n (ngModelChange)=\"setShowUserName($event)\"\n >\n </cds-toggle>\n </cds-list-column>\n </cds-list-row>\n </cds-structured-list>\n</ng-template>\n\n<ng-template #versionTemplate>\n <ng-container *ngIf=\"{backendVersion: backendVersion$ | async} as obs\">\n <cds-structured-list *ngIf=\"obs.backendVersion || frontendVersion\">\n <cds-list-header>\n <cds-list-column>{{ 'settings.version.title' | translate }}</cds-list-column>\n </cds-list-header>\n\n <cds-list-row *ngIf=\"obs.backendVersion\">\n <cds-list-column>\n <div class=\"build-information\">\n <span class=\"build-title\">{{\n 'interface.builds.' + obs.backendVersion.title | translate\n }}</span>\n <div class=\"tag-container\">\n <cds-tag type=\"blue\">{{ obs.backendVersion.version }}</cds-tag>\n </div>\n </div>\n </cds-list-column>\n </cds-list-row>\n\n <cds-list-row *ngIf=\"frontendVersion\">\n <cds-list-column>\n <div class=\"build-information\">\n <span class=\"build-title\">{{\n 'interface.builds.valtimo-frontend-libraries' | translate\n }}</span>\n <div class=\"tag-container\">\n <cds-tag type=\"blue\">{{ frontendVersion }}</cds-tag>\n </div>\n </div>\n </cds-list-column>\n </cds-list-row>\n </cds-structured-list>\n </ng-container>\n</ng-template>\n\n<ng-template #feedbackMailTo>\n <cds-list-column>\n <a\n [href]=\"\n 'mailto:' +\n overrideFeedbackMenuItemToMailTo.email +\n '?subject=' +\n (overrideFeedbackMenuItemToMailTo.subjectTranslationKey | translate) +\n '&body=' +\n (overrideFeedbackMenuItemToMailTo.bodyTranslationKey | translate)\n \"\n target=\"_blank\"\n cdsLink\n >\n {{ 'account.links.feedback' | translate }}\n </a>\n </cds-list-column>\n</ng-template>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {RightSidebarComponent} from './right-sidebar.component';\nimport {FormsModule, ReactiveFormsModule} from '@angular/forms';\nimport {RouterModule} from '@angular/router';\nimport {HttpClient} from '@angular/common/http';\nimport {TranslateLoader, TranslateModule} from '@ngx-translate/core';\nimport {HttpLoaderFactory} from '@valtimo/shared';\nimport {NgbTooltipModule} from '@ng-bootstrap/ng-bootstrap';\nimport {\n DropdownModule,\n GridModule,\n IconModule,\n LayerModule,\n LinkModule,\n StructuredListModule,\n TabsModule,\n TagModule,\n ToggleModule,\n UIShellModule,\n} from 'carbon-components-angular';\n\n@NgModule({\n declarations: [RightSidebarComponent],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n RouterModule,\n TranslateModule.forRoot({\n loader: {\n provide: TranslateLoader,\n useFactory: HttpLoaderFactory,\n deps: [HttpClient],\n },\n }),\n NgbTooltipModule,\n UIShellModule,\n IconModule,\n GridModule,\n TabsModule,\n StructuredListModule,\n ToggleModule,\n TagModule,\n LinkModule,\n DropdownModule,\n LayerModule,\n ],\n exports: [RightSidebarComponent],\n})\nexport class RightSidebarModule {}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n Directive,\n ElementRef,\n EventEmitter,\n OnDestroy,\n OnInit,\n Output,\n Renderer2,\n} from '@angular/core';\n\n@Directive({\n selector: '[ctrl-click]',\n standalone: true,\n})\nexport class CtrlClickDirective implements OnInit, OnDestroy {\n @Output('ctrl-click') ctrlClickEvent = new EventEmitter();\n\n private _unsubcribeFunction!: () => void;\n\n constructor(\n private readonly renderer: Renderer2,\n private readonly element: ElementRef\n ) {}\n\n public ngOnInit(): void {\n this._unsubcribeFunction = this.renderer.listen(this.element.nativeElement, 'click', event => {\n if (event.ctrlKey || event.metaKey) {\n event.preventDefault();\n event.stopPropagation();\n document.getSelection().removeAllRanges();\n this.ctrlClickEvent.emit(event);\n }\n });\n }\n\n public ngOnDestroy(): void {\n if (!this._unsubcribeFunction) {\n return;\n }\n\n this._unsubcribeFunction();\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {BreakpointObserver} from '@angular/cdk/layout';\nimport {\n AfterViewInit,\n Component,\n ElementRef,\n HostListener,\n OnDestroy,\n ViewChild,\n} from '@angular/core';\nimport {Router} from '@angular/router';\nimport {MenuItem, ConfigService} from '@valtimo/shared';\nimport {BehaviorSubject, combineLatest, Observable, Subscription} from 'rxjs';\nimport {take} from 'rxjs/operators';\n\nimport {ShellService} from '../../services/shell.service';\nimport {MenuService} from '../menu/services/menu.service';\n\n@Component({\n selector: 'valtimo-left-sidebar',\n templateUrl: './left-sidebar.component.html',\n styleUrls: ['./left-sidebar.component.scss'],\n standalone: false,\n})\nexport class LeftSidebarComponent implements AfterViewInit, OnDestroy {\n @ViewChild('toggleButton') toggleButtonRef: ElementRef;\n\n @HostListener('document:click', ['$event.target'])\n public onPageClick(targetElement) {\n combineLatest([\n this.shellService.sideBarExpanded$,\n this.shellService.mouseOnTopBar$,\n this.shellService.largeScreen$,\n this.shellService.collapsibleWidescreenMenu$,\n ])\n .pipe(take(1))\n .subscribe(([sideBarExpanded, mouseOnTopBar, largeScreen, collapsibleWidescreenMenu]) => {\n const clickedInside =\n this.elementRef.nativeElement.contains(targetElement) || mouseOnTopBar;\n\n if (!clickedInside && (!largeScreen || collapsibleWidescreenMenu) && sideBarExpanded) {\n this.shellService.setSideBarExpanded(false);\n }\n });\n }\n\n public includeFunctionObservables: {[key: string]: Observable<boolean>} = {};\n public readonly menuItems$: Observable<Array<MenuItem>> = this.menuService.menuItems$;\n public readonly menuItemsLoaded$ = this.menuService.menuItemsLoaded$;\n public readonly sideBarExpanded$ = this.shellService.sideBarExpanded$;\n public readonly closestSequence$: Observable<string> = this.menuService.closestSequence$;\n public readonly overflowMenuSequence$ = new BehaviorSubject<string>('');\n public readonly disableCaseCount$: Observable<boolean>;\n\n private _breakpointSubscription!: Subscription;\n private _breakpointsInitialized = false;\n private _lastSmallScreen!: boolean;\n private _lastLargeScreen!: boolean;\n\n constructor(\n private readonly elementRef: ElementRef,\n private readonly menuService: MenuService,\n private readonly shellService: ShellService,\n private readonly breakpointObserver: BreakpointObserver,\n private readonly router: Router,\n private readonly configService: ConfigService\n ) {\n this.includeFunctionObservables = this.menuService.includeFunctionObservables;\n this.disableCaseCount$ = this.configService.getFeatureToggleObservable('disableCaseCount');\n }\n\n public ngAfterViewInit(): void {\n this.openBreakpointSubscription();\n this.shellService.setSidenavElement(\n this.elementRef.nativeElement.querySelector('.cds--side-nav')\n );\n }\n\n public ngOnDestroy(): void {\n this._breakpointSubscription?.unsubscribe();\n }\n\n public navigateToRoute(route: Array<string>, event: MouseEvent): void {\n event.preventDefault();\n\n if (!event.ctrlKey && !event.metaKey) {\n this.router.navigate(route, {queryParams: {}});\n\n combineLatest([\n this.shellService.sideBarExpanded$,\n this.shellService.largeScreen$,\n this.shellService.collapsibleWidescreenMenu$,\n ])\n .pipe(take(1))\n .subscribe(([sideBarExpanded, largeScreen, collapsibleWidescreenMenu]) => {\n if ((!largeScreen || collapsibleWidescreenMenu) && sideBarExpanded) {\n this.shellService.setSideBarExpanded(false);\n }\n });\n }\n }\n\n public onRightClick(sequence: string): boolean {\n this.overflowMenuSequence$.next(sequence);\n\n return false;\n }\n\n public onOverflowMenuClosed(sequence: string): void {\n this.overflowMenuSequence$.pipe(take(1)).subscribe(overflowMenuSequence => {\n if (overflowMenuSequence === sequence) {\n this.overflowMenuSequence$.next('');\n }\n });\n }\n\n public openInNewTab(link: Array<string> | undefined): void {\n const url = this.router.serializeUrl(this.router.createUrlTree(link || ['/']));\n\n window.open(url, '_blank');\n }\n\n private openBreakpointSubscription(): void {\n this.breakpointObserver\n .observe(['(max-width: 1055px)', '(min-width: 1056px)'])\n .subscribe(state => {\n combineLatest([\n this.shellService.sideBarExpanded$,\n this.shellService.collapsibleWidescreenMenu$,\n ])\n .pipe(take(1))\n .subscribe(([sideBarExpanded, collapsibleWidescreenMenu]) => {\n const breakpoints = state.breakpoints;\n const breakpointKeys = Object.keys(breakpoints);\n const smallScreen = breakpoints[breakpointKeys[0]];\n const largeScreen = breakpoints[breakpointKeys[1]];\n\n if (!this._breakpointsInitialized) {\n if (smallScreen || collapsibleWidescreenMenu) {\n this.shellService.collapseSideBar();\n }\n this._breakpointsInitialized = true;\n }\n\n if (!collapsibleWidescreenMenu) {\n if (\n (this._lastSmallScreen && largeScreen && !sideBarExpanded) ||\n (this._lastLargeScreen && smallScreen && sideBarExpanded)\n ) {\n this.shellService.toggleSideBar();\n }\n }\n\n this._lastSmallScreen = smallScreen;\n this._lastLargeScreen = largeScreen;\n this.shellService.setLargeScreen(largeScreen);\n });\n });\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<cds-sidenav\n *ngIf=\"{\n closestSequence: closestSequence$ | async,\n overflowMenuSequence: overflowMenuSequence$ | async,\n sideBarExpanded: sideBarExpanded$ | async,\n menuItemsLoaded: menuItemsLoaded$ | async,\n menuItems: menuItems$ | async,\n } as obs\"\n [allowExpansion]=\"false\"\n [expanded]=\"obs.sideBarExpanded\"\n>\n <ng-container *ngIf=\"obs.menuItemsLoaded; else loadingTemplate\">\n <ng-container *ngFor=\"let menuItem of obs.menuItems\">\n <ng-container *ngIf=\"!menuItem.children\">\n <ng-container\n *ngTemplateOutlet=\"\n topMenuItem;\n context: {\n menuItem: menuItem,\n closestSequence: obs.closestSequence,\n overflowMenuSequence: obs.overflowMenuSequence,\n }\n \"\n ></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"menuItem.children\">\n <ng-container\n *ngTemplateOutlet=\"\n topMenuItem;\n context: {\n closestSequence: obs.closestSequence,\n menuItem: menuItem,\n overflowMenuSequence: obs.overflowMenuSequence,\n }\n \"\n ></ng-container>\n\n <ng-container *ngTemplateOutlet=\"subMenuIcon; context: {menuItem: menuItem}\"></ng-container>\n\n <cds-sidenav-menu\n [title]=\"menuItem | menuItemTranslate | async\"\n [attr.data-testid]=\"'sidenav-item-' + menuItem.title\"\n >\n <ng-container *ngFor=\"let childMenuItem of menuItem.children\">\n <ng-container\n *ngIf=\"{\n disableCaseCount: disableCaseCount$ | async,\n count: childMenuItem?.count$ && (childMenuItem?.count$ | async),\n sequence: '' + menuItem.sequence + childMenuItem.sequence,\n } as vars\"\n >\n <cds-sidenav-item\n [attr.data-testid]=\"'sidenav-item-' + childMenuItem?.title\"\n [ngClass]=\"{\n 'cds--side-nav__item--empty': !childMenuItem.link,\n 'menu-item--hidden': childMenuItem.includeFunction !== undefined,\n 'menu-item--visible':\n childMenuItem.includeFunction !== undefined &&\n (includeFunctionObservables[childMenuItem.title] | async),\n }\"\n [active]=\"vars.sequence === obs.closestSequence\"\n [href]=\"vars?.count ? 'javascript:return false;' : 'javascript:void(0);'\"\n (click)=\"navigateToRoute(childMenuItem.link, $event)\"\n (contextmenu)=\"onRightClick(vars.sequence)\"\n (ctrl-click)=\"openInNewTab(childMenuItem.link)\"\n >\n <valtimo-menu-item-text\n [accent]=\"!childMenuItem.link\"\n [menuItem]=\"childMenuItem\"\n [showOverFlowMenu]=\"obs.overflowMenuSequence === vars.sequence\"\n (openInNewTab)=\"openInNewTab(childMenuItem.link)\"\n (overflowMenuClosed)=\"onOverflowMenuClosed(vars.sequence)\"\n ></valtimo-menu-item-text>\n\n <ng-container\n *ngTemplateOutlet=\"countTemplate; context: {count: vars.count, disableCaseCount: vars.disableCaseCount}\"\n ></ng-container>\n </cds-sidenav-item>\n </ng-container>\n </ng-container>\n </cds-sidenav-menu>\n </ng-container>\n </ng-container>\n </ng-container>\n</cds-sidenav>\n\n<ng-template #subMenuIcon let-menuItem=\"menuItem\">\n <div class=\"menu-item-icon-container\"><i class=\"{{ menuItem.iconClass }}\"></i></div>\n</ng-template>\n\n<ng-template\n #topMenuItem\n let-closestSequence=\"closestSequence\"\n let-menuItem=\"menuItem\"\n let-overflowMenuSequence=\"overflowMenuSequence\"\n>\n <ng-container *ngIf=\"{sequence: '' + menuItem.sequence} as vars\"\n ><cds-sidenav-item\n *ngIf=\"!menuItem.children\"\n [attr.data-testid]=\"'sidenav-item-' + menuItem.title\"\n [ngClass]=\"{\n 'menu-item--hidden': menuItem.includeFunction !== undefined,\n 'menu-item--visible':\n menuItem.includeFunction !== undefined &&\n (includeFunctionObservables[menuItem.title] | async),\n }\"\n [active]=\"vars.sequence === closestSequence\"\n (click)=\"navigateToRoute(menuItem.link, $event)\"\n (contextmenu)=\"onRightClick(vars.sequence)\"\n (ctrl-click)=\"openInNewTab(menuItem.link.link)\"\n href=\"javascript:void(0)\"\n >\n <valtimo-menu-item-text\n [menuItem]=\"menuItem\"\n [showOverFlowMenu]=\"overflowMenuSequence === vars.sequence\"\n (openInNewTab)=\"openInNewTab(menuItem.link.link)\"\n (overflowMenuClosed)=\"onOverflowMenuClosed(vars.sequence)\"\n ></valtimo-menu-item-text>\n </cds-sidenav-item>\n </ng-container>\n</ng-template>\n\n<ng-template #countTemplate let-count=\"count\" let-disableCaseCount=\"disableCaseCount\">\n <ng-container *ngIf=\"count && !disableCaseCount\">\n <span class=\"case-count\">\n {{ count | caseCount }}\n </span>\n </ng-container>\n</ng-template>\n\n<ng-template #loadingTemplate>\n <div class=\"loading-container\">\n <cds-loading size=\"sm\"></cds-loading>\n </div>\n</ng-template>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {\n AfterViewInit,\n Component,\n HostBinding,\n OnDestroy,\n OnInit,\n ViewChild,\n ViewContainerRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport {Title} from '@angular/platform-browser';\nimport {ActivatedRoute, Router} from '@angular/router';\nimport {TranslateService} from '@ngx-translate/core';\nimport {ConfigService} from '@valtimo/shared';\nimport {NGXLogger} from 'ngx-logger';\nimport {\n BehaviorSubject,\n combineLatest,\n map,\n Observable,\n startWith,\n Subscription,\n switchMap,\n tap,\n} from 'rxjs';\nimport {PageHeaderService, PageSubtitleService, PageTitleService} from '../../services';\n\n@Component({\n selector: 'valtimo-page-title',\n templateUrl: './page-title.component.html',\n styleUrls: ['./page-title.component.scss'],\n encapsulation: ViewEncapsulation.None,\n standalone: false,\n})\nexport class PageTitleComponent implements OnInit, AfterViewInit, OnDestroy {\n @HostBinding('class.valtimo-page-title--compact') isCompact!: boolean;\n\n @ViewChild('subtitleVcr', {static: true, read: ViewContainerRef})\n private readonly _subtitleVcr!: ViewContainerRef;\n\n public hidePageTitle = false;\n public readonly appTitle = this.configService?.config?.applicationTitle || 'Valtimo';\n public readonly hasCustomPageTitle$: Observable<boolean> = this.router.events.pipe(\n startWith(this.router),\n switchMap(() => this.activatedRoute.firstChild.data),\n map(data => !!data?.customPageTitle)\n );\n public readonly customPageTitle$ = this.pageTitleService.customPageTitle$;\n public readonly customPageTitleSet$ = this.pageTitleService.customPageTitleSet$;\n public readonly translatedTitle$ = new BehaviorSubject<string>('');\n public readonly smallTitle$ = this.pageHeaderService.smallTitle$;\n\n private appTitleAsSuffix =\n this.configService?.config?.featureToggles?.applicationTitleAsSuffix || false;\n private readonly _subscriptions = new Subscription();\n private readonly _hidePageTitle$: Observable<boolean> = this.router.events.pipe(\n startWith(this.router),\n switchMap(() => this.activatedRoute.firstChild.data),\n map(data => !!data?.hidePageTitle),\n tap(hidden => this.pageTitleService.setPageTitleHidden(hidden))\n );\n\n constructor(\n private readonly router: Router,\n private readonly activatedRoute: ActivatedRoute,\n private readonly titleService: Title,\n private readonly translateService: TranslateService,\n private readonly logger: NGXLogger,\n private readonly configService: ConfigService,\n private readonly pageTitleService: PageTitleService,\n private readonly pageHeaderService: PageHeaderService,\n private readonly pageSubtitleService: PageSubtitleService\n ) {}\n\n public ngOnInit(): void {\n this.openRouterTranslateSubscription();\n this.openHidePageTitleSubscription();\n this.openCompactModeSubscription();\n }\n\n public ngAfterViewInit(): void {\n this.pageSubtitleService.setTitleViewContainerRef(this._subtitleVcr);\n }\n\n public ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n private openRouterTranslateSubscription(): void {\n this._subscriptions.add(\n combineLatest([\n this.router.events.pipe(startWith(null)),\n this.translateService.stream('key'),\n ]).subscribe(() => {\n const routeTitle =\n this.activatedRoute?.snapshot?.firstChild?.data?.title ||\n this.activatedRoute?.snapshot?.firstChild?.children[0]?.data?.title;\n const routeTitleTranslation = this.translateService.instant(routeTitle);\n const routeTitlePageTranslationString = `pages.${routeTitle?.toLowerCase()}.title`;\n const routeTitlePageTranslation = this.translateService.instant(\n routeTitlePageTranslationString\n );\n const translatedRouteTitle =\n routeTitle &&\n ((routeTitlePageTranslation !== routeTitlePageTranslationString\n ? routeTitlePageTranslation\n : '') ||\n (routeTitle !== routeTitleTranslation ? routeTitleTranslation : '') ||\n routeTitle);\n\n if (translatedRouteTitle) {\n this.logger.debug('PageTitle: setTitle translated async', translatedRouteTitle);\n this.translatedTitle$.next(translatedRouteTitle);\n if (this.appTitleAsSuffix) {\n this.titleService.setTitle(translatedRouteTitle + ' - ' + this.appTitle);\n } else {\n this.titleService.setTitle(this.appTitle + ' - ' + translatedRouteTitle);\n }\n } else {\n this.logger.debug('PageTitle: setTitle default', this.appTitle);\n this.translatedTitle$.next('');\n this.titleService.setTitle(this.appTitle);\n }\n })\n );\n }\n\n private openHidePageTitleSubscription(): void {\n this._subscriptions.add(\n this._hidePageTitle$.subscribe(hidePageTitle => {\n this.hidePageTitle = hidePageTitle;\n })\n );\n }\n\n private openCompactModeSubscription(): void {\n this._subscriptions.add(\n this.pageHeaderService.compactMode$.subscribe(compactMode => {\n this.isCompact = compactMode;\n })\n );\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div\n class=\"page-title-container\"\n [ngClass]=\"{\n 'page-title-container--no-margin': hidePageTitle || isCompact,\n 'page-title-container--compact': isCompact,\n }\"\n>\n <ng-container\n *ngIf=\"\n hidePageTitle === false && {\n title: translatedTitle$ | async,\n hasCustomPageTitle: hasCustomPageTitle$ | async,\n customPageTitle: customPageTitle$ | async,\n customPageTitleSet: customPageTitleSet$ | async,\n } as obs\n \"\n >\n <div\n class=\"skeleton-container\"\n *ngIf=\"obs.hasCustomPageTitle && !obs.customPageTitleSet\"\n [ngClass]=\"{'skeleton-container--compact': isCompact}\"\n >\n <cds-skeleton-placeholder></cds-skeleton-placeholder>\n </div>\n\n <ng-container *ngIf=\"obs.hasCustomPageTitle ? obs.customPageTitleSet : obs.title !== ''\">\n @if (!isCompact) {\n <h2\n [title]=\"obs.hasCustomPageTitle ? obs.customPageTitle : obs.title\"\n class=\"page-title\"\n [ngClass]=\"{'page-title--small-title': smallTitle$ | async}\"\n >\n {{ obs.hasCustomPageTitle ? obs.customPageTitle : obs.title }}\n </h2>\n } @else {\n <span\n [title]=\"obs.hasCustomPageTitle ? obs.customPageTitle : obs.title\"\n class=\"cds--breadcrumb compact-page-title\"\n >\n {{ obs.hasCustomPageTitle ? obs.customPageTitle : obs.title }}\n </span>\n }\n </ng-container>\n </ng-container>\n\n <ng-container #subtitleVcr></ng-container>\n</div>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {PageTitleComponent} from './page-title.component';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {SkeletonModule, UIShellModule} from 'carbon-components-angular';\n\n@NgModule({\n declarations: [PageTitleComponent],\n imports: [CommonModule, TranslateModule, SkeletonModule, UIShellModule],\n exports: [PageTitleComponent],\n})\nexport class PageTitleModule {}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {LeftSidebarComponent} from './left-sidebar.component';\nimport {PageTitleModule} from '../page-title/page-title.module';\nimport {MenuModule} from '../menu/menu.module';\nimport {IconModule, LoadingModule, UIShellModule} from 'carbon-components-angular';\nimport {CaseCountPipe, ComponentsPipesModule} from '../../pipes';\nimport {CtrlClickDirective} from '../../directives/ctrl-click/ctrl-click.directive';\n\n@NgModule({\n declarations: [LeftSidebarComponent, CaseCountPipe],\n imports: [\n CommonModule,\n MenuModule,\n PageTitleModule,\n IconModule,\n UIShellModule,\n ComponentsPipesModule,\n CtrlClickDirective,\n LoadingModule,\n ],\n exports: [LeftSidebarComponent],\n})\nexport class LeftSidebarModule {}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Pipe, PipeTransform} from '@angular/core';\nimport {TableItem} from 'carbon-components-angular';\n\n@Pipe({\n name: 'listFilter',\n standalone: false,\n})\nexport class CarbonListFilterPipe implements PipeTransform {\n transform(list: TableItem[][], filterText: string): TableItem[][] {\n list = list || [];\n\n return !filterText\n ? list\n : list.filter((row: TableItem[]) =>\n row.some((item: TableItem) =>\n item.data.toString().toLowerCase().includes(filterText.toLowerCase())\n )\n );\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {ElementRef, Injectable} from '@angular/core';\nimport {\n BehaviorSubject,\n combineLatest,\n filter,\n fromEvent,\n Observable,\n Subject,\n Subscription,\n take,\n} from 'rxjs';\nimport {CarbonListComponent} from '../carbon-list.component';\nimport {DragAndDropEvent, MoveRowDirection} from '../../../models';\n\n@Injectable()\nexport class CarbonListDragAndDropService {\n public readonly dragAndDropEvents$ = new Subject<DragAndDropEvent>();\n\n private readonly _ROW_DRAG_CLASS = 'valtimo-carbon-list__drag-table-row';\n\n private readonly _carbonListElementRefSubject$ =\n new BehaviorSubject<ElementRef<CarbonListComponent> | null>(null);\n private get _carbonListElementRef$(): Observable<ElementRef<CarbonListComponent>> {\n return this._carbonListElementRefSubject$.pipe(filter(ref => !!ref));\n }\n\n private readonly _tableRowsSubject$ = new BehaviorSubject<HTMLTableRowElement[] | null>(null);\n private get _tableRows$(): Observable<HTMLTableRowElement[]> {\n return this._tableRowsSubject$.pipe(filter(trs => !!trs));\n }\n\n private readonly _tableRowToMoveStartIndex$ = new BehaviorSubject<number>(0);\n private readonly _tableRowToMoveSubject$ = new BehaviorSubject<HTMLTableRowElement | null>(null);\n private get _tableRowToMove$(): Observable<HTMLTableRowElement> {\n return this._tableRowToMoveSubject$.pipe(filter(tr => !!tr));\n }\n\n private readonly _tableRowMouseOverSubject$ = new BehaviorSubject<HTMLTableRowElement | null>(\n null\n );\n private get _tableRowMouseOver$(): Observable<HTMLTableRowElement> {\n return this._tableRowMouseOverSubject$.pipe(filter(tr => !!tr));\n }\n\n private readonly _mouseMoveDirection$ = new BehaviorSubject<MoveRowDirection>(\n MoveRowDirection.UP\n );\n\n private _lastMouseY = 0;\n\n private readonly _pauseSwap$ = new BehaviorSubject<boolean>(false);\n\n private _mouseMoveSubscription!: Subscription;\n private _mouseupSubscription!: Subscription;\n private _tableRowsSubscription!: Subscription;\n\n public setCarbonListElementRef(ref: ElementRef<CarbonListComponent>): void {\n this._carbonListElementRefSubject$.next(ref);\n }\n\n public startDrag(startMouseY: number, rowToBeMovedStartIndex: number): void {\n this._lastMouseY = startMouseY;\n this._tableRowToMoveStartIndex$.next(rowToBeMovedStartIndex);\n this.setTableRows(rowToBeMovedStartIndex);\n this.openMouseMoveSubscription();\n this.openTableRowSubscription();\n this.openMouseUpSubscription();\n }\n\n private openMouseMoveSubscription(): void {\n this._mouseMoveSubscription = fromEvent(document, 'mousemove').subscribe((e: MouseEvent) => {\n this._mouseMoveDirection$.next(\n e.y > this._lastMouseY ? MoveRowDirection.DOWN : MoveRowDirection.UP\n );\n this._lastMouseY = e.y;\n\n const elementsUnderMouse = document.querySelectorAll(':hover');\n const arrayElementsUnderMouse = elementsUnderMouse && Array.from(elementsUnderMouse);\n const tableRowUnderMouse = arrayElementsUnderMouse?.find(\n element => element.localName === 'tr'\n );\n if (tableRowUnderMouse) this.setTableRowUnderMouse(tableRowUnderMouse as HTMLTableRowElement);\n });\n }\n\n private openTableRowSubscription(): void {\n this._tableRowsSubscription = combineLatest([\n this._pauseSwap$,\n this._tableRowMouseOver$,\n this._tableRowToMove$,\n this._mouseMoveDirection$,\n ]).subscribe(([pauseSwap, tableRowMouseOver, tableRowToMove, mouseMoveDirection]) => {\n if (tableRowMouseOver !== tableRowToMove && !pauseSwap) {\n this.pauseSwap();\n\n if (mouseMoveDirection === MoveRowDirection.UP) {\n tableRowToMove.parentNode.insertBefore(tableRowToMove, tableRowMouseOver);\n this.continueSwap();\n } else if (tableRowMouseOver.nextSibling) {\n tableRowToMove.parentNode.insertBefore(tableRowToMove, tableRowMouseOver.nextSibling);\n this.continueSwap();\n }\n }\n });\n }\n\n private openMouseUpSubscription(): void {\n this._mouseupSubscription = fromEvent(document, 'mouseup').subscribe(() => {\n this.stopDrag();\n });\n }\n\n private setTableRowUnderMouse(element: HTMLTableRowElement): void {\n combineLatest([this._tableRowMouseOverSubject$, this._tableRows$])\n .pipe(take(1))\n .subscribe(([currentTableRow, tableRows]) => {\n const findTableRow = tableRows.find(row => row === element);\n if (findTableRow && currentTableRow !== findTableRow)\n this._tableRowMouseOverSubject$.next(findTableRow);\n });\n }\n\n private pauseSwap(): void {\n this._pauseSwap$.next(true);\n }\n\n private continueSwap(): void {\n window.requestAnimationFrame(() =>\n window.requestAnimationFrame(() => this._pauseSwap$.next(false))\n );\n }\n\n private reset(): void {\n this._tableRowsSubject$.next(null);\n this._tableRowMouseOverSubject$.next(null);\n this._pauseSwap$.next(false);\n }\n\n private stopDrag(): void {\n this._mouseupSubscription?.unsubscribe();\n this._mouseMoveSubscription?.unsubscribe();\n this._tableRowsSubscription?.unsubscribe();\n this.reset();\n this.emitReorderEvent();\n }\n\n private emitReorderEvent(): void {\n combineLatest([\n this._carbonListElementRef$,\n this._tableRowToMove$,\n this._tableRowToMoveStartIndex$,\n ])\n .pipe(take(1))\n .subscribe(([elementRef, movedRow, startIndex]) => {\n movedRow.classList.remove(this._ROW_DRAG_CLASS);\n const htmlTableRowElements = this.getTableRows(elementRef);\n const newIndex =\n htmlTableRowElements && htmlTableRowElements.findIndex(row => row === movedRow);\n\n this.dragAndDropEvents$.next({startIndex, newIndex});\n });\n }\n\n private getTableRows(elementRef: ElementRef<CarbonListComponent>): HTMLTableRowElement[] | null {\n const carbonListElement = elementRef.nativeElement as any as HTMLDivElement;\n const carbonListChildren =\n carbonListElement?.children && Array.from(carbonListElement?.children);\n const tableContainerElement = carbonListChildren?.find(\n child => child.localName === 'cds-table-container'\n );\n const tableContainerElementChildren =\n tableContainerElement?.children && Array.from(tableContainerElement.children);\n const tableElement = tableContainerElementChildren?.find(\n child => child.localName === 'cds-table'\n );\n const tableElementChildren = tableElement?.children && Array.from(tableElement?.children);\n const htmlTableElement = tableElementChildren?.find(child => child.localName === 'table');\n const htmlTableElementChildren =\n htmlTableElement?.children && Array.from(htmlTableElement?.children);\n const htmlTableBodyElement = htmlTableElementChildren?.find(\n child => child.localName === 'tbody'\n );\n const htmlTableRowElements =\n htmlTableBodyElement?.children &&\n (Array.from(htmlTableBodyElement.children) as any as HTMLTableRowElement[]);\n\n return htmlTableRowElements || null;\n }\n\n private setTableRows(tableRowToMoveIndex: number): void {\n this._carbonListElementRef$.pipe(take(1)).subscribe(elementRef => {\n const htmlTableRowElements = this.getTableRows(elementRef);\n const tableRowToMove = htmlTableRowElements && htmlTableRowElements[tableRowToMoveIndex];\n\n if (htmlTableRowElements) this._tableRowsSubject$.next(htmlTableRowElements);\n\n if (tableRowToMove) {\n this._tableRowToMoveSubject$.next(tableRowToMove);\n tableRowToMove.classList.add(this._ROW_DRAG_CLASS);\n }\n });\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './carbon-list-drag-and-drop.service';\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {TypeConverter} from './type-converters.model';\nimport {Injectable} from '@angular/core';\nimport {TranslateService} from '@ngx-translate/core';\n\n@Injectable()\nexport class BooleanTypeConverter implements TypeConverter {\n constructor(private readonly translateService: TranslateService) {}\n\n public getTypeString(): string {\n return 'boolean';\n }\n\n public isRawValue(): boolean {\n return false;\n }\n\n public convert(value: any, definition: any): string {\n if (value === null || value === undefined) return '-';\n const enumeration = definition?.enum;\n\n if (enumeration && Array.isArray(enumeration) && enumeration.length > 1) {\n return value ? enumeration[0] || 'Yes' : enumeration[1] || 'No';\n } else if (enumeration && typeof enumeration === 'object') {\n return value\n ? Object.keys(enumeration)[0] || 'Yes'\n : enumeration[Object.keys(enumeration)[0]] || 'No';\n }\n\n return this.translateService.instant(\n `viewTypeConverter.${typeof value === 'boolean' ? (value ? 'Yes' : 'No') : 'errors.boolean'}`\n );\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {inject} from '@angular/core';\nimport {TypeConverter} from './type-converters.model';\nimport moment from 'moment';\nimport {CurrencyPipe, registerLocaleData} from '@angular/common';\nimport localeNl from '@angular/common/locales/nl';\nimport localeDe from '@angular/common/locales/nl';\nimport {TranslateService} from '@ngx-translate/core';\n\nregisterLocaleData(localeNl, 'nl');\nregisterLocaleData(localeDe, 'de');\n\nexport class CurrencyTypeConverter implements TypeConverter {\n private readonly _currencyPipe = inject(CurrencyPipe);\n private readonly _translateService = inject(TranslateService);\n\n public getTypeString(): string {\n return 'currency';\n }\n\n public isRawValue(): boolean {\n return false;\n }\n\n public convert(value: any, definition: any): string {\n if (!value) return '-';\n\n try {\n return (\n this._currencyPipe.transform(\n value,\n definition.currencyCode ?? 'EUR',\n definition.display,\n definition.digitsInfo,\n moment.locale(localStorage.getItem('langKey') ?? 'nl')\n ) ?? '-'\n );\n } catch {\n return this._translateService.instant('viewTypeConverter.errors.number');\n }\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport moment from 'moment';\nimport {TypeConverter} from './type-converters.model';\n\nexport class DateTimeTypeConverter implements TypeConverter {\n public getTypeString(): string {\n return 'datetime';\n }\n\n public isRawValue(): boolean {\n return false;\n }\n\n public convert(value: any, definition: any): string {\n if (!value) return '-';\n\n const dateValue = moment(value);\n return (dateValue.isValid() ? dateValue : moment(value, 'DD-MM-YYYY, HH:mm:ss'))\n .locale(localStorage.getItem('langKey') ?? 'nl')\n .format(definition?.format || 'DD-MM-YYYY, HH:mm:ss');\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport moment from 'moment';\nimport {TypeConverter} from './type-converters.model';\n\nexport class DateTypeConverter implements TypeConverter {\n public getTypeString(): string {\n return 'date';\n }\n\n public isRawValue(): boolean {\n return false;\n }\n\n public convert(value: any, definition: any): string {\n if (!value) return '-';\n\n const dateValue = moment(value);\n return (dateValue.isValid() ? dateValue : moment(value, 'DD-MM-YYYY'))\n .locale(localStorage.getItem('langKey') ?? 'nl')\n .format(definition?.format || 'DD-MM-YYYY');\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {TypeConverter} from './type-converters.model';\n\nexport class EnumTypeConverter implements TypeConverter {\n public getTypeString(): string {\n return 'enum';\n }\n\n public isRawValue(): boolean {\n return false;\n }\n\n public convert(value: any, definition: any): string {\n if (!value) return '-';\n\n return (definition?.values ?? definition?.enum)?.[value] ?? value;\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {DecimalPipe, registerLocaleData} from '@angular/common';\nimport {inject} from '@angular/core';\nimport {TypeConverter} from './type-converters.model';\nimport moment from 'moment';\nimport localeNl from '@angular/common/locales/nl';\nimport localeDe from '@angular/common/locales/nl';\nimport {TranslateService} from '@ngx-translate/core';\n\nregisterLocaleData(localeNl, 'nl');\nregisterLocaleData(localeDe, 'de');\n\nexport class NumberTypeConverter implements TypeConverter {\n private readonly _decimalPipe = inject(DecimalPipe);\n private readonly _translateService = inject(TranslateService);\n\n public getTypeString(): string {\n return 'number';\n }\n\n public isRawValue(): boolean {\n return false;\n }\n\n public convert(value: any, definition: any): string {\n if (!value) return '-';\n\n try {\n return (\n this._decimalPipe.transform(\n value,\n definition.digitsInfo,\n moment.locale(localStorage.getItem('langKey') ?? 'nl')\n ) ?? ''\n );\n } catch {\n return this._translateService.instant('viewTypeConverter.errors.number');\n }\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {PercentPipe, registerLocaleData} from '@angular/common';\nimport {inject} from '@angular/core';\nimport {TypeConverter} from './type-converters.model';\nimport moment from 'moment/moment';\nimport localeNl from '@angular/common/locales/nl';\nimport localeDe from '@angular/common/locales/nl';\nimport {TranslateService} from '@ngx-translate/core';\n\nregisterLocaleData(localeNl, 'nl');\nregisterLocaleData(localeDe, 'de');\n\nexport class PercentTypeConverter implements TypeConverter {\n private readonly _percentPipe = inject(PercentPipe);\n private readonly _translateService = inject(TranslateService);\n\n public getTypeString(): string {\n return 'percent';\n }\n\n public isRawValue(): boolean {\n return false;\n }\n\n public convert(value: any, definition: any): string {\n if (!value) return '-';\n\n try {\n return (\n this._percentPipe.transform(\n !!definition?.digitsInfo ? value / 100 : value,\n definition.digitsInfo,\n moment.locale(localStorage.getItem('langKey') ?? 'nl')\n ) ?? ''\n );\n } catch {\n return this._translateService.instant('viewTypeConverter.errors.number');\n }\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {TypeConverter} from './type-converters.model';\n\nexport class RelatedFilesTypeConverter implements TypeConverter {\n public getTypeString(): string {\n return 'relatedFiles';\n }\n\n public isRawValue(): boolean {\n return false;\n }\n\n public convert(value: any, definition: any): string {\n return value?.length || '-';\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {TypeConverter} from './type-converters.model';\n\nexport class StringReplaceUnderscoreTypeConverter implements TypeConverter {\n public regExpStringRemoveUnderscore = /_/g;\n\n public getTypeString(): string {\n return 'stringReplaceUnderscore';\n }\n\n public isRawValue(): boolean {\n return false;\n }\n\n public convert(value: any): string {\n return value.replace(this.regExpStringRemoveUnderscore, ' ');\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {TypeConverter} from './type-converters.model';\n\nexport class StringTypeConverter implements TypeConverter {\n public getTypeString(): string {\n return 'string';\n }\n\n public isRawValue(): boolean {\n return false;\n }\n\n public convert(value: any): string {\n if (!value) return '-';\n\n if (Array.isArray(value) && typeof value[0] === 'string')\n return value.reduce(\n (acc, curr, index) => `${acc}${index < value.length && index > 0 ? ', ' : ''}${curr}`,\n ''\n );\n\n return value;\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {TypeConverter} from './type-converters.model';\n\nexport class LinkTypeConverter implements TypeConverter {\n public getTypeString(): string {\n return 'link';\n }\n\n public isRawValue(): boolean {\n return true;\n }\n\n public convert(value: any, definition: any): string {\n if (!value) return '-';\n\n return (\n '<a href=\"' +\n value +\n '\" target=\"_blank\" rel=\"noopener noreferrer\">' +\n (definition?.linkText ?? value) +\n '</a>'\n );\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {InjectionToken} from '@angular/core';\n\nimport {BooleanTypeConverter} from './booleanTypeConverter';\nimport {CurrencyTypeConverter} from './currencyTypeConverter';\nimport {DateTimeTypeConverter} from './dateTimeTypeConverter';\nimport {DateTypeConverter} from './dateTypeConverter';\nimport {EnumTypeConverter} from './enumTypeConverter';\nimport {NumberTypeConverter} from './numberTypeConverter';\nimport {PercentTypeConverter} from './percentTypeConverter';\nimport {RelatedFilesTypeConverter} from './relatedFilesTypeConverter';\nimport {StringReplaceUnderscoreTypeConverter} from './stringReplaceUnderscoreTypeConverter';\nimport {StringTypeConverter} from './stringTypeConverter';\nimport {LinkTypeConverter} from './linkTypeConverter';\n\nexport const TYPE_CONVERTER_TOKEN = new InjectionToken<TypeConverter[]>('Type Converter');\n\nexport const TYPE_PROVIDERS = [\n {\n provide: TYPE_CONVERTER_TOKEN,\n useClass: StringTypeConverter,\n multi: true,\n },\n {\n provide: TYPE_CONVERTER_TOKEN,\n useClass: BooleanTypeConverter,\n multi: true,\n },\n {\n provide: TYPE_CONVERTER_TOKEN,\n useClass: DateTypeConverter,\n multi: true,\n },\n {\n provide: TYPE_CONVERTER_TOKEN,\n useClass: DateTimeTypeConverter,\n multi: true,\n },\n {\n provide: TYPE_CONVERTER_TOKEN,\n useClass: EnumTypeConverter,\n multi: true,\n },\n {\n provide: TYPE_CONVERTER_TOKEN,\n useClass: StringReplaceUnderscoreTypeConverter,\n multi: true,\n },\n {\n provide: TYPE_CONVERTER_TOKEN,\n useClass: RelatedFilesTypeConverter,\n multi: true,\n },\n {\n provide: TYPE_CONVERTER_TOKEN,\n useClass: NumberTypeConverter,\n multi: true,\n },\n {\n provide: TYPE_CONVERTER_TOKEN,\n useClass: PercentTypeConverter,\n multi: true,\n },\n {\n provide: TYPE_CONVERTER_TOKEN,\n useClass: CurrencyTypeConverter,\n multi: true,\n },\n {\n provide: TYPE_CONVERTER_TOKEN,\n useClass: LinkTypeConverter,\n multi: true,\n },\n];\n\nexport interface TypeConverter {\n getTypeString(): string;\n /*\n * Returns true if the converter returns a raw value, meaning it should be treated as HTML.\n */\n isRawValue(): boolean;\n\n convert(value: any, definition: any): string;\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {inject, Injectable} from '@angular/core';\nimport {TYPE_CONVERTER_TOKEN, TypeConverter} from './type-converters/type-converters.model';\n\n@Injectable()\nexport class ViewContentService {\n private readonly converters = inject(TYPE_CONVERTER_TOKEN);\n\n public get(value: any, definition: any) {\n const separator = ':';\n if (!definition.viewType) {\n definition.viewType = typeof value;\n }\n\n if (definition.viewType.includes(separator)) {\n // Get the substring of the string after the separator (:) and assign it to a new key\n definition.format = definition.viewType.slice(\n this.getSeparatorIndex(definition, separator) + 1\n );\n\n // Remove the substring after the separator and the separator from the string and assign it back to the viewType\n definition.viewType = definition.viewType.slice(\n 0,\n this.getSeparatorIndex(definition, separator)\n );\n }\n\n const converter: TypeConverter | undefined = this.converters.find(\n converter => converter.getTypeString() === definition.viewType\n );\n\n if (!!converter) {\n return converter.convert(value, definition);\n }\n\n return this.converters[0].convert(value, definition);\n }\n\n public isRawValue(definition: any): boolean {\n const converter: TypeConverter | undefined = this.converters.find(\n converter => converter.getTypeString() === definition.viewType\n );\n\n if (!!converter) {\n return converter.isRawValue();\n }\n\n return this.converters[0].isRawValue();\n }\n\n public getSeparatorIndex(definition, separator): number {\n return definition.viewType.indexOf(separator);\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable, OnDestroy} from '@angular/core';\nimport {fromEvent, merge, Observable, Subject} from 'rxjs';\nimport {map, takeUntil} from 'rxjs/operators';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class KeyStateService implements OnDestroy {\n private _isCtrlOrCmdPressed: boolean = false;\n private _destroy$ = new Subject<void>();\n\n constructor() {\n const keyDowns$: Observable<boolean> = fromEvent<KeyboardEvent>(document, 'keydown').pipe(\n map(event => event.ctrlKey || event.metaKey)\n );\n\n const keyUps$: Observable<boolean> = fromEvent<KeyboardEvent>(document, 'keyup').pipe(\n map(event => event.ctrlKey || event.metaKey)\n );\n\n const blur$ = fromEvent(window, 'blur').pipe(\n map(() => false),\n takeUntil(this._destroy$)\n );\n\n merge(keyDowns$, keyUps$, blur$)\n .pipe(takeUntil(this._destroy$))\n .subscribe(isPressed => {\n this._isCtrlOrCmdPressed = isPressed;\n });\n }\n\n public getCtrlOrCmdState(): boolean {\n return this._isCtrlOrCmdPressed;\n }\n\n public ngOnDestroy(): void {\n this._destroy$.next();\n this._destroy$.complete();\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {DOCUMENT} from '@angular/common';\nimport {\n AfterViewInit,\n Directive,\n ElementRef,\n Inject,\n Input,\n OnDestroy,\n Renderer2,\n RendererStyleFlags2,\n} from '@angular/core';\n\n@Directive({\n selector: '[valtimoCdsModal]',\n standalone: true,\n})\nexport class ValtimoCdsModalDirective implements AfterViewInit, OnDestroy {\n @Input() public readonly minContentHeight = 0;\n\n private _mutationObserver: MutationObserver;\n\n constructor(\n @Inject(DOCUMENT) private document: Document,\n private readonly elementRef: ElementRef,\n private readonly renderer: Renderer2\n ) {}\n\n public ngAfterViewInit(): void {\n this._mutationObserver = new MutationObserver((mutations: MutationRecord[]) => {\n this.handleMutations(mutations);\n });\n\n this._mutationObserver.observe(this.elementRef.nativeElement, {\n attributes: true,\n childList: true,\n subtree: true,\n characterData: true,\n });\n\n const open = this.elementRef.nativeElement.getAttribute('ng-reflect-open');\n if (open === 'true') {\n this.applyDocumentOverflowHidden();\n }\n\n this.applyStyleToModalElements();\n\n setTimeout(() => this.applyStyleToModalElements(), 0);\n }\n\n public ngOnDestroy(): void {\n this._mutationObserver?.disconnect();\n }\n\n private handleMutations(mutations: MutationRecord[]): void {\n const OPEN_ATTRIBUTE_NAME = 'ng-reflect-open';\n\n for (const mutation of mutations) {\n if (mutation.type === 'attributes' && mutation.attributeName === OPEN_ATTRIBUTE_NAME) {\n const open = this.elementRef.nativeElement.getAttribute(OPEN_ATTRIBUTE_NAME);\n if (open === 'true') {\n this.applyDocumentOverflowHidden();\n } else if (open === 'false') {\n this.removeDocumentOverflowHidden();\n }\n }\n }\n\n this.applyStyleToModalElements();\n }\n\n private applyDocumentOverflowHidden(): void {\n this.renderer.setStyle(this.document.body, 'overflow', 'hidden', RendererStyleFlags2.Important);\n this.renderer.setStyle(\n this.document.documentElement,\n 'overflow',\n 'hidden',\n RendererStyleFlags2.Important\n );\n this.preventModalCloseButtonTooltip();\n }\n\n private removeDocumentOverflowHidden(): void {\n this.renderer.removeStyle(this.document.body, 'overflow');\n this.renderer.removeStyle(this.document.documentElement, 'overflow');\n }\n\n private applyStyleToModalElements(): void {\n if (this.minContentHeight <= 0) return;\n\n const contentElements = this.elementRef.nativeElement.querySelectorAll('.cds--modal-content');\n\n for (const element of contentElements) {\n this.renderer.setStyle(\n element,\n 'min-height',\n `${this.minContentHeight}px`,\n RendererStyleFlags2.Important\n );\n }\n }\n\n private preventModalCloseButtonTooltip(): void {\n const modalElement = this.elementRef.nativeElement as HTMLElement;\n const closeButton = modalElement.querySelector('.cds--modal-close') as HTMLElement;\n\n let attempts = 0;\n const maxAttempts = 100;\n\n const blurIfFocused = () => {\n if (!closeButton || attempts >= maxAttempts) {\n return;\n }\n\n if (this.document.activeElement === closeButton) {\n closeButton.blur();\n } else {\n attempts++;\n requestAnimationFrame(blurIfFocused);\n }\n };\n\n requestAnimationFrame(blurIfFocused);\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {ChangeDetectionStrategy, Component, EventEmitter, Input, Output} from '@angular/core';\nimport {CarbonTag} from '../../../models';\nimport {cloneDeep} from 'lodash';\n\n@Component({\n selector: 'valtimo-tags-modal',\n templateUrl: './tags-modal.component.html',\n styleUrls: ['./tags-modal.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class CarbonTagsModalComponent {\n @Input() open = false;\n\n private _tags: CarbonTag[];\n @Input() public set tags(value: CarbonTag[]) {\n const deepCopy = cloneDeep(value);\n this._tags = deepCopy.sort((a: CarbonTag, b: CarbonTag) => (a.content < b.content ? -1 : 1));\n }\n public get tags(): CarbonTag[] {\n return this._tags;\n }\n\n @Output() public closeEvent = new EventEmitter();\n\n public onCloseSelect(): void {\n this.closeEvent.emit();\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<cds-modal\n valtimoCdsModal\n [title]=\"'interface.tags' | translate\"\n size=\"xs\"\n [open]=\"open\"\n (close)=\"onCloseSelect()\"\n>\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"onCloseSelect()\">\n <h3 cdsModalHeading>{{ 'interface.tags' | translate }}</h3>\n </cds-modal-header>\n\n <section cdsModalContent class=\"valtimo-tags-modal__content\">\n <div class=\"valtimo-tags-modal__container\">\n @for (tag of tags; track tag.content) {\n <cds-tag [type]=\"tag.type\">\n {{ tag.content }}\n </cds-tag>\n }\n </div>\n </section>\n</cds-modal>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport {FormControl} from '@angular/forms';\nimport {ArrowDown16, ArrowUp16, Draggable16, SettingsView16} from '@carbon/icons';\nimport {TranslateService} from '@ngx-translate/core';\nimport {SortState} from '@valtimo/document';\nimport {\n IconService,\n OverflowMenu,\n PaginationModel,\n PaginationTranslations,\n Table,\n TableHeaderItem,\n TableItem,\n TableModel,\n} from 'carbon-components-angular';\nimport {get as _get, isArray} from 'lodash';\nimport {NGXLogger} from 'ngx-logger';\nimport {\n BehaviorSubject,\n combineLatest,\n debounceTime,\n map,\n Observable,\n startWith,\n Subscription,\n switchMap,\n take,\n} from 'rxjs';\nimport {filter, tap} from 'rxjs/operators';\nimport {BOOLEAN_CONVERTER_VALUES, CASES_WITHOUT_STATUS_KEY} from '../../constants';\nimport {\n ActionItem,\n CarbonListBatchText,\n CarbonListItem,\n CarbonListTranslations,\n CarbonPaginatorConfig,\n CarbonTag,\n ColumnConfig,\n DEFAULT_LIST_TRANSLATIONS,\n DEFAULT_PAGINATION,\n DEFAULT_PAGINATOR_CONFIG,\n MoveRowDirection,\n MoveRowEvent,\n Pagination,\n ViewType,\n} from '../../models';\nimport {KeyStateService} from '../../services/key-state.service';\nimport {ViewContentService} from '../view-content/view-content.service';\nimport {CarbonListFilterPipe} from './CarbonListFilterPipe.directive';\nimport {CarbonListDragAndDropService} from './services';\nimport {EllipsisPipe} from '../../pipes';\n\n@Component({\n selector: 'valtimo-carbon-list',\n templateUrl: './carbon-list.component.html',\n styleUrls: ['./carbon-list.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [CarbonListFilterPipe, CarbonListDragAndDropService],\n standalone: false,\n})\nexport class CarbonListComponent implements OnInit, AfterViewInit, OnDestroy {\n @ViewChild('actionsMenuTemplate') actionsMenuTemplate: TemplateRef<OverflowMenu>;\n @ViewChild('actionTemplate') actionTemplate: TemplateRef<any>;\n @ViewChild('booleanTemplate') booleanTemplate: TemplateRef<any>;\n @ViewChild('moveRowsTemplate') moveRowsTemplate: TemplateRef<any>;\n @ViewChild('dragAndDropTemplate') dragAndDropTemplate: TemplateRef<any>;\n @ViewChild('rowDisabled') rowDisabled: TemplateRef<any>;\n @ViewChild('tagTemplate') tagTemplate: TemplateRef<any>;\n @ViewChild('defaultTemplate') defaultTemplate: TemplateRef<any>;\n @ViewChild(Table) private _table: Table;\n\n private _completeDataSource: TableItem[][];\n\n private readonly _items$ = new BehaviorSubject<CarbonListItem[]>([]);\n\n private get _items(): CarbonListItem[] {\n return this._items$.getValue();\n }\n\n public get items(): CarbonListItem[] {\n return this._items;\n }\n\n @Input() set items(value: CarbonListItem[]) {\n this._items$.next(value);\n }\n\n public currentOpenActionId: string | null = null;\n\n private readonly _fields$ = new BehaviorSubject<ColumnConfig[]>([]);\n\n @Input() set fields(value: ColumnConfig[]) {\n this._fields$.next(value);\n }\n\n private _tableTranslations$: BehaviorSubject<CarbonListTranslations> = new BehaviorSubject(\n DEFAULT_LIST_TRANSLATIONS\n );\n\n @Input() set tableTranslations(value: Partial<CarbonListTranslations>) {\n this._tableTranslations$.next({...DEFAULT_LIST_TRANSLATIONS, ...value});\n }\n\n @Input() paginatorConfig: CarbonPaginatorConfig = DEFAULT_PAGINATOR_CONFIG;\n private _pagination: Pagination;\n private _isPaginationInit = false;\n\n @Input()\n public set pagination(value: Partial<Pagination> | false) {\n if (!value) return;\n\n if (!this._pagination) this._pagination = {...DEFAULT_PAGINATION, ...value};\n\n this._pagination = {...this._pagination, ...value};\n this.buildPaginationModel();\n\n if (this._isPaginationInit || !value.size) return;\n\n this.setPaginationSize(value.size.toString());\n this._isPaginationInit = true;\n }\n\n public get pagination(): Pagination {\n return this._pagination;\n }\n\n @Input() loading: boolean;\n\n /**\n * @deprecated The actions field is deprecated. Actions can be added through the **@Input field**.\n */\n @Input() actions: any[] = [];\n @Input() actionItems: ActionItem[];\n @Input() showActionItems: boolean = true;\n @Input() header: boolean;\n @Input() hideColumnHeader: boolean;\n private _isSortInit = false;\n @Input() set initialSortState(value: SortState) {\n if (!value || this._isSortInit) return;\n\n this._isSortInit = true;\n this.sort$.next(value);\n }\n\n @Input() set sortState(value: SortState) {\n if (!value) return;\n this.sort$.next(value);\n }\n\n @Input() isSearchable = false;\n @Input() enableSingleSelection = false;\n /**\n * @deprecated The lastColumnTemplate field is deprecated. Any template column can be added through the **@Input field**.\n */\n @Input() lastColumnTemplate: TemplateRef<any>;\n @Input() paginationIdentifier: string;\n @Input() showSelectionColumn = false;\n @Input() striped = false;\n @Input() hideToolbar = false;\n @Input() lockedTooltipTranslationKey = '';\n @Input() movingRowsEnabled: boolean;\n @Input() dragAndDrop = false;\n @Input() dragAndDropDisabled = false;\n\n @Output() rowClicked = new EventEmitter<any>();\n @Output() paginationClicked = new EventEmitter<number>();\n @Output() paginationSet = new EventEmitter<any>();\n @Output() search = new EventEmitter<any>();\n @Output() sortChanged = new EventEmitter<SortState>();\n @Output() moveRow = new EventEmitter<MoveRowEvent>();\n @Output() itemsReordered = new EventEmitter<CarbonListItem[]>();\n\n public batchText$: Observable<CarbonListBatchText> = this._tableTranslations$.pipe(\n switchMap((translations: CarbonListTranslations) =>\n combineLatest([\n this.translateService.stream(translations.select.single),\n this.translateService.stream(translations.select.multiple),\n ]).pipe(\n startWith(\n this.translateService.instant(translations.select.single),\n this.translateService.instant(translations.select.multiple)\n )\n )\n ),\n map(([SINGLE, MULTIPLE]) => ({SINGLE, MULTIPLE}))\n );\n\n public paginationTranslations$: Observable<Partial<PaginationTranslations>> =\n this._tableTranslations$.pipe(\n switchMap((translations: CarbonListTranslations) =>\n combineLatest([\n this.translateService.stream(translations.pagination.itemsPerPage),\n this.translateService.stream(translations.pagination.totalItem),\n this.translateService.stream(translations.pagination.totalItems),\n this.translateService.stream('interface.list.ofLastPage'),\n this.translateService.stream('interface.list.ofLastPages'),\n ])\n ),\n map(([ITEMS_PER_PAGE, TOTAL_ITEM, TOTAL_ITEMS, OF_LAST_PAGE, OF_LAST_PAGES]) => ({\n ITEMS_PER_PAGE,\n TOTAL_ITEM,\n TOTAL_ITEMS,\n OF_LAST_PAGE,\n OF_LAST_PAGES,\n }))\n );\n\n public readonly sort$ = new BehaviorSubject<SortState>({\n state: {name: '', direction: 'DESC'},\n isSorting: false,\n });\n public readonly tagModalOpen$ = new BehaviorSubject<boolean>(false);\n public readonly tagModalData$ = new BehaviorSubject<CarbonTag[]>([]);\n\n public readonly CASES_WITHOUT_STATUS_KEY = CASES_WITHOUT_STATUS_KEY;\n public readonly ViewType = ViewType;\n public skeletonModel = Table.skeletonModel(5, 5);\n public paginationModel: PaginationModel;\n public searchFormControl = new FormControl('');\n\n private static readonly PAGINATION_SIZE = 'PaginationSize';\n private readonly _subscriptions = new Subscription();\n\n public get selectedItems(): CarbonListItem[] {\n const model = this._table.model;\n\n return model.data.reduce(\n (items: CarbonListItem[], _, index: number) =>\n model.isRowSelected(index) ? [...items, this.items[index]] : [...items],\n []\n );\n }\n\n private readonly _viewInitialized$ = new BehaviorSubject<boolean>(false);\n\n public get viewInitialized$(): Observable<boolean> {\n return this._viewInitialized$.pipe(filter(initialized => initialized));\n }\n\n public get model(): TableModel {\n return this._table.model;\n }\n\n constructor(\n private readonly ellipsisPipe: EllipsisPipe,\n private readonly filterPipe: CarbonListFilterPipe,\n private readonly iconService: IconService,\n private readonly logger: NGXLogger,\n private readonly translateService: TranslateService,\n private readonly viewContentService: ViewContentService,\n private readonly keyStateService: KeyStateService,\n private readonly dragAndDropService: CarbonListDragAndDropService,\n private readonly elementRef: ElementRef\n ) {\n this.iconService.registerAll([ArrowDown16, ArrowUp16, SettingsView16, Draggable16]);\n }\n\n public ngOnInit(): void {\n if (this.pagination) {\n this.loadPaginationSize();\n }\n\n this._subscriptions.add(\n this.searchFormControl.valueChanges\n .pipe(debounceTime(500))\n .subscribe((searchString: string | null) => {\n if (this.search.observed) {\n this.search.emit(searchString);\n return;\n }\n\n if (!searchString) {\n this._filteredItems$.next(null);\n return;\n }\n\n this._filteredItems$.next(\n this.filterPipe.transform(this._completeDataSource, searchString ?? '')\n );\n })\n );\n }\n\n public ngAfterViewInit(): void {\n this._viewInitialized$.next(true);\n this.openDragAndDropSubscription();\n }\n\n public ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n public openDragAndDropSubscription(): void {\n this._subscriptions.add(\n this.dragAndDropService.dragAndDropEvents$.subscribe(dragAndDropEvent => {\n const reorderedItems = this.swapItems(\n this._items,\n dragAndDropEvent.startIndex,\n dragAndDropEvent.newIndex\n );\n this.itemsReordered.emit(reorderedItems);\n })\n );\n }\n\n public onRowClick(index: number): void {\n const rowData = this._table.model.data[index];\n const firstItemWithData = rowData.find(item => !!item['item']);\n const firstItem = firstItemWithData?.['item'];\n\n if (firstItem) firstItem.ctrlClick = this.keyStateService.getCtrlOrCmdState();\n\n if (!firstItem || firstItem?.locked) return;\n\n this.rowClicked.emit(firstItem);\n }\n\n public onSelectPage(page: number): void {\n if (!this.paginationModel.pageLength) {\n return;\n }\n\n if (this.pagination.size !== this.paginationModel.pageLength) {\n this.setPaginationSize(this.paginationModel.pageLength.toString());\n return;\n }\n\n this.paginationClicked.emit(page);\n }\n\n public onSort(headerItem: TableHeaderItem & {key: string}): void {\n const {key, sortable} = headerItem;\n if (!sortable) {\n return;\n }\n\n this.sort$.pipe(take(1)).subscribe(sort => {\n let newState: SortState;\n\n if (sort.state.name === key) {\n if (!sort.isSorting) {\n newState = {state: {...sort.state, direction: 'DESC'}, isSorting: true};\n } else {\n if (sort.state.direction === 'DESC') {\n newState = {...sort, state: {...sort.state, direction: 'ASC'}};\n } else {\n newState = {state: {...sort.state, direction: 'DESC'}, isSorting: false};\n }\n }\n } else {\n newState = {state: {name: key, direction: 'DESC'}, isSorting: true};\n }\n\n this.sort$.next(newState);\n this.sortChanged.emit(newState);\n });\n }\n\n public onDragStart(\n mouseEvent: MouseEvent,\n carbonEvent: {index: number; item: CarbonListItem; length: number}\n ): void {\n if (this.dragAndDropDisabled) return;\n\n this.dragAndDropService.setCarbonListElementRef(this.elementRef);\n this.dragAndDropService.startDrag(mouseEvent.y, carbonEvent.index);\n }\n\n private buildPaginationModel(): void {\n this.paginationModel = {\n currentPage: this.pagination.page,\n totalDataLength: +this.pagination.collectionSize,\n pageLength: this.pagination.size,\n };\n }\n\n private _translatedFields$: Observable<ColumnConfig[]> = this.translateService.stream('key').pipe(\n switchMap(() => this._fields$),\n filter((fields: ColumnConfig[]) => !!fields),\n map((fields: ColumnConfig[]) =>\n fields.map((field: ColumnConfig) => ({\n ...field,\n label: !field.label ? '' : this.translateService.instant(field.label),\n }))\n )\n );\n\n private _headerItems$: Observable<TableHeaderItem[]> = combineLatest([\n this._translatedFields$,\n this.sort$,\n ]).pipe(\n map(([translatedFields, sortState]) =>\n translatedFields.map(\n (field: ColumnConfig) =>\n new TableHeaderItem({\n data: field.label,\n sortable: field.sortable,\n className: field.className,\n key: field.key,\n sorted: sortState.isSorting && field.key === sortState.state.name,\n ascending: field.key === sortState.state.name && sortState.state.direction === 'ASC',\n })\n )\n ),\n map((header: TableHeaderItem[]) => [\n ...this.dragAndDropHeaderColumns,\n ...header,\n ...this.extraColumns,\n ])\n );\n\n private readonly _tableItems$: Observable<TableItem[][]> = combineLatest([\n this._fields$,\n this._items$,\n this._viewInitialized$,\n ]).pipe(\n filter(([fields, items, viewInitialized]) => !!fields && !!items && viewInitialized),\n map(([fields, items]) =>\n items.map((item: CarbonListItem, index: number) => [\n ...this.getDragAndDropItemsItems(item, index, items.length),\n ...fields.map((field: ColumnConfig) => {\n switch (field.viewType) {\n case ViewType.TEMPLATE:\n return new TableItem({\n data: {item, index, length: items.length, ...field.templateData},\n item,\n template: field.template,\n });\n case ViewType.BOOLEAN:\n let data = this.resolveObject(field, item);\n data = !BOOLEAN_CONVERTER_VALUES.includes(data)\n ? data\n : `${'viewTypeConverter.' + data}`;\n return new TableItem({\n data,\n template: this.booleanTemplate,\n item,\n });\n case ViewType.TAGS: {\n return new TableItem({\n data: {\n tags: this.resolveTagObject(item, field.key),\n tagAmount: field?.tagAmount || 1,\n },\n item,\n template: this.tagTemplate,\n });\n }\n default:\n const resolvedObject: string = this.resolveObject(field, item);\n return new TableItem({\n title: resolvedObject ?? '-',\n data:\n (field.tooltipCharLimit\n ? this.ellipsisPipe.transform(resolvedObject, field.tooltipCharLimit)\n : resolvedObject) ?? '-',\n template: this.defaultTemplate,\n item,\n });\n }\n }),\n ...this.getExtraItems(item, index, items.length),\n ])\n ),\n tap((data: TableItem[][]) => {\n this._completeDataSource = data;\n })\n );\n\n private readonly _filteredItems$ = new BehaviorSubject<TableItem[][] | null>(null);\n\n public readonly model$: Observable<TableModel> = combineLatest([\n this._headerItems$,\n this._tableItems$,\n this._filteredItems$,\n ]).pipe(\n map(([header, data, filteredData]) => {\n const model = new TableModel();\n model.header = header;\n model.data = filteredData ?? data;\n return model;\n }),\n startWith(new TableModel())\n );\n\n private get dragAndDropHeaderColumns(): TableHeaderItem[] {\n const emptyHeader = new TableHeaderItem();\n\n emptyHeader.sortable = false;\n\n return [\n ...(this.dragAndDrop\n ? [\n new TableHeaderItem({\n className: 'valtimo-carbon-list__actions',\n sortable: false,\n }),\n ]\n : []),\n ];\n }\n\n private get extraColumns(): TableHeaderItem[] {\n const emptyHeader = new TableHeaderItem();\n\n emptyHeader.sortable = false;\n\n return [\n ...(this.movingRowsEnabled\n ? [\n new TableHeaderItem({\n className: 'valtimo-carbon-list__actions',\n sortable: false,\n }),\n ]\n : []),\n ...(!!this.actions\n ? this.actions.map(\n action =>\n new TableHeaderItem({\n data: action.columnName,\n key: action.columnName,\n sortable: false,\n })\n )\n : []),\n ...(!!this.lastColumnTemplate ? [emptyHeader] : []),\n ...(this._items?.some(item => item.locked) ? [emptyHeader] : []),\n ...(!!this.actionItems\n ? [\n new TableHeaderItem({\n className: 'valtimo-carbon-list__actions',\n sortable: false,\n }),\n ]\n : []),\n ];\n }\n\n public onMoveDownClick(\n event: Event,\n data: {index: number; item: CarbonListItem; length: number}\n ): void {\n event.stopImmediatePropagation();\n\n const moveRowEvent = {\n direction: MoveRowDirection.DOWN,\n index: data.index,\n };\n const orderedItems = this.swapItems(this._items, moveRowEvent.index, moveRowEvent.index + 1);\n\n this.moveRow.emit(moveRowEvent);\n this.itemsReordered.emit(orderedItems);\n }\n\n public onMoveUpClick(\n event: Event,\n data: {index: number; item: CarbonListItem; length: number}\n ): void {\n event.stopImmediatePropagation();\n\n const moveRowEvent = {\n direction: MoveRowDirection.UP,\n index: data.index,\n };\n const orderedItems = this.swapItems(this._items, moveRowEvent.index - 1, moveRowEvent.index);\n\n this.moveRow.emit(moveRowEvent);\n this.itemsReordered.emit(orderedItems);\n }\n\n public onTagClick(event: Event, tags: CarbonTag[]): void {\n event.stopImmediatePropagation();\n this.tagModalOpen$.next(true);\n this.tagModalData$.next(tags);\n }\n\n public onCloseEvent(): void {\n this.tagModalOpen$.next(false);\n }\n\n public handleActionOpenChange(actionId: string, isOpen: boolean): void {\n if (isOpen) {\n this.currentOpenActionId = actionId;\n } else if (this.currentOpenActionId === actionId) {\n this.currentOpenActionId = null;\n }\n }\n\n private getDragAndDropItemsItems(\n item: CarbonListItem,\n index: number,\n length: number\n ): TableItem[] {\n return [\n ...(!!this.dragAndDrop\n ? [new TableItem({data: {item, index, length}, template: this.dragAndDropTemplate})]\n : []),\n ];\n }\n\n private getExtraItems(item: CarbonListItem, index: number, length: number): TableItem[] {\n return [\n ...(!!this.actions\n ? this.actions.map(\n action =>\n new TableItem({\n data: {item, callback: action.callback, iconClass: action.iconClass},\n template: this.actionTemplate,\n })\n )\n : []),\n ...(this._items?.some(tableItem => tableItem.locked)\n ? [\n new TableItem({\n data: {locked: item.locked},\n template: this.rowDisabled,\n }),\n ]\n : []),\n ...(!!this.lastColumnTemplate\n ? [new TableItem({data: {item, index, length}, template: this.lastColumnTemplate})]\n : []),\n ...(this.movingRowsEnabled\n ? [\n new TableItem({\n data: {item, index, length},\n template: this.moveRowsTemplate,\n }),\n ]\n : []),\n ...(!!this.actionItems\n ? [\n new TableItem({\n className: 'valtimo-carbon-list__actions',\n data: {actions: this.actionItems, item},\n template: this.actionsMenuTemplate,\n }),\n ]\n : []),\n ];\n }\n\n private loadPaginationSize(): void {\n const entries = localStorage.getItem(\n `${this.paginationIdentifier}${CarbonListComponent.PAGINATION_SIZE}`\n );\n if (entries !== null) {\n this.pagination = {size: +entries};\n this.paginationSet.emit(+entries);\n this.logger.debug('Pagination loaded from local storage for this list. Current: ', entries);\n } else {\n this.logger.debug(\n 'Pagination does NOT exist in local storage for this list. Will use default. Change it to create an entry.'\n );\n this.paginationSet.emit(10);\n }\n }\n\n private setPaginationSize(numberOfEntries: string): void {\n localStorage.setItem(\n `${this.paginationIdentifier}${CarbonListComponent.PAGINATION_SIZE}`,\n numberOfEntries\n );\n this.logger.debug('Pagination set in local storage for this list: ', numberOfEntries);\n this.paginationSet.emit(numberOfEntries);\n }\n\n private resolveObject(definition: any, obj: any) {\n const definitionKey = definition.key;\n const customPropString = '$.';\n const key = definitionKey.includes(customPropString)\n ? definitionKey.split(customPropString)[1]\n : definitionKey;\n const resolvedObjValue = _get(obj, key, null);\n return this.viewContentService.get(resolvedObjValue, definition);\n }\n\n private swapItems(items: CarbonListItem[], index1: number, index2: number): CarbonListItem[] {\n const itemToInsert = items[index1];\n const filteredItems = items.filter((_, index) => index !== index1);\n filteredItems.splice(index2, 0, itemToInsert);\n\n return filteredItems;\n }\n\n private resolveTagObject(item: CarbonListItem, key: string): CarbonTag[] | null {\n const object: string | string[] | CarbonTag | CarbonTag[] = item[key];\n\n if (!object) return null;\n\n if (isArray(object) && typeof object[0] !== 'string') return object as CarbonTag[];\n\n if (!isArray(object) && typeof object !== 'string') return [object as CarbonTag];\n\n if (typeof object === 'string')\n return [\n {\n content: object,\n type: 'blue',\n },\n ];\n\n return (object as string[]).map((content: string) => ({\n content,\n type: 'blue',\n }));\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n<cds-table-container\n *ngIf=\"{\n sort: sort$ | async,\n model: model$ | async,\n viewInitialized: viewInitialized$ | async,\n } as obs\"\n class=\"valtimo-carbon-list\"\n>\n <cds-table-header *ngIf=\"header\">\n <ng-content select=\"[header]\"></ng-content>\n </cds-table-header>\n\n <ng-content select=\"[tabs]\"></ng-content>\n\n <cds-table-toolbar\n *ngIf=\"!hideToolbar\"\n class=\"valtimo-carbon-list__toolbar\"\n [model]=\"obs.model\"\n [batchText]=\"batchText$ | async\"\n >\n <cds-table-toolbar-actions>\n <ng-content select=\"[carbonToolbarActions]\"> </ng-content>\n </cds-table-toolbar-actions>\n\n <cds-table-toolbar-content>\n <cds-table-toolbar-search\n *ngIf=\"isSearchable\"\n [expandable]=\"true\"\n [formControl]=\"searchFormControl\"\n ></cds-table-toolbar-search>\n\n <ng-content select=\"[carbonToolbarContent]\"> </ng-content>\n </cds-table-toolbar-content>\n </cds-table-toolbar>\n\n <cds-table\n *ngIf=\"!!obs.sort\"\n [ngClass]=\"{\n 'valtimo-carbon-list__header--hidden': hideColumnHeader,\n 'valtimo-carbon-list--unclickable': !this.rowClicked.observed,\n }\"\n [enableSingleSelect]=\"enableSingleSelect\"\n [model]=\"loading || !obs.viewInitialized ? skeletonModel : obs.model\"\n [showSelectionColumn]=\"showSelectionColumn\"\n [skeleton]=\"loading\"\n [striped]=\"striped\"\n (sort)=\"onSort(obs.model.header[$event])\"\n (rowClick)=\"onRowClick($event)\"\n >\n <tbody cdsTableBody>\n <tr class=\"valtimo-carbon-list__no-results\">\n <td [attr.colspan]=\"obs.model.header.length + (showSelectionColumn ? 1 : 0)\">\n <ng-content></ng-content>\n </td>\n\n <td [attr.colspan]=\"obs.model.header.length + (showSelectionColumn ? 1 : 0)\">\n {{ 'list.noResults' | translate }}\n </td>\n </tr>\n </tbody>\n </cds-table>\n\n <cds-pagination\n *ngIf=\"paginationModel && items?.length\"\n [itemsPerPageOptions]=\"paginatorConfig.itemsPerPageOptions\"\n [model]=\"paginationModel\"\n [showPageInput]=\"paginatorConfig.showPageInput\"\n [skeleton]=\"loading\"\n [translations]=\"paginationTranslations$ | async\"\n (selectPage)=\"onSelectPage($event)\"\n ></cds-pagination>\n</cds-table-container>\n\n<ng-template #actionTemplate let-data=\"data\">\n <i\n class=\"clickable\"\n [ngClass]=\"data.iconClass\"\n (click)=\"$event.stopPropagation(); data.callback(data.item)\"\n ></i>\n</ng-template>\n\n<ng-template #booleanTemplate let-data=\"data\">\n {{ data | translate }}\n</ng-template>\n\n<ng-template #actionsMenuTemplate let-data=\"data\">\n <cds-overflow-menu\n *ngIf=\"showActionItems\"\n [open]=\"currentOpenActionId === data.item\"\n (openChange)=\"handleActionOpenChange(data.item, $event)\"\n [flip]=\"true\"\n [offset]=\"{x: 0, y: 50}\"\n placement=\"bottom\"\n role=\"menu\"\n (click)=\"$event.stopPropagation()\"\n >\n @for (action of data.actions; track action.label) {\n <cds-overflow-menu-option\n [disabled]=\"action.disabledCallback ? action.disabledCallback(data.item) : false\"\n [type]=\"action.type\"\n (selected)=\"action.callback(data.item)\"\n >\n <i *ngIf=\"!!action.iconClass\" [ngClass]=\"action.iconClass\"></i>\n\n {{ action.label | translate }}\n </cds-overflow-menu-option>\n }\n </cds-overflow-menu>\n</ng-template>\n\n<ng-template #rowDisabled let-data=\"data\">\n <div *ngIf=\"data.locked\" class=\"locked\">\n <span\n class=\"float-right badge badge-pill badge-secondary bg-grey\"\n ngbTooltip=\"{{ lockedTooltipTranslationKey | translate }}\"\n >\n <i class=\"icon mdi mdi-lock\"></i>\n </span>\n </div>\n</ng-template>\n\n<ng-template #moveRowsTemplate let-data=\"data\">\n <div class=\"valtimo-carbon-list__move-rows\">\n <button\n cdsButton=\"tertiary\"\n [disabled]=\"data.index === 0\"\n [iconOnly]=\"true\"\n size=\"sm\"\n (click)=\"onMoveUpClick($event, data)\"\n >\n <svg cdsIcon=\"arrow--up\" size=\"16\"></svg>\n </button>\n\n <button\n cdsButton=\"tertiary\"\n [disabled]=\"data.index === data.length - 1\"\n [iconOnly]=\"true\"\n size=\"sm\"\n (click)=\"onMoveDownClick($event, data)\"\n >\n <svg cdsIcon=\"arrow--down\" size=\"16\"></svg>\n </button>\n </div>\n</ng-template>\n\n<ng-template #dragAndDropTemplate let-data=\"data\">\n <div class=\"valtimo-carbon-list__draggable\">\n <button\n cdsButton=\"ghost\"\n [disabled]=\"dragAndDropDisabled\"\n [iconOnly]=\"true\"\n size=\"sm\"\n (mousedown)=\"onDragStart($event, data)\"\n >\n <svg cdsIcon=\"draggable\" size=\"16\"></svg>\n </button>\n </div>\n</ng-template>\n\n<ng-template #tagTemplate let-data=\"data\">\n @if (!data.tags) {\n -\n } @else {\n <div class=\"tag-template\">\n @if (data.tags.length === 0) {\n -\n } @else {\n @for (tag of data.tags.slice(0, data.tagAmount); track tag) {\n <cds-tag class=\"cds-tag--no-margin\" [type]=\"tag.type\">\n {{ tag.ellipsisContent ?? tag.content }}\n </cds-tag>\n }\n\n <cds-tag\n *ngIf=\"data.tags.length > data.tagAmount\"\n class=\"cds-tag--no-margin valtimo-carbon-list__expand-tag\"\n type=\"high-contrast\"\n (click)=\"onTagClick($event, data.tags)\"\n >\n {{ data.tags.length - data.tagAmount }} <svg cdsIcon=\"add\" size=\"16\"></svg>\n </cds-tag>\n }\n </div>\n }\n</ng-template>\n\n<ng-template #defaultTemplate let-data=\"data\">\n <span>{{ data }}</span>\n</ng-template>\n\n<valtimo-tags-modal\n [open]=\"tagModalOpen$ | async\"\n [tags]=\"tagModalData$ | async\"\n (closeEvent)=\"onCloseEvent()\"\n></valtimo-tags-modal>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {NgModule} from '@angular/core';\nimport {CommonModule, CurrencyPipe, DecimalPipe, PercentPipe} from '@angular/common';\nimport {ViewContentService} from './view-content.service';\nimport {TYPE_PROVIDERS} from './type-converters/type-converters.model';\n\n@NgModule({\n imports: [CommonModule],\n providers: [CurrencyPipe, DecimalPipe, PercentPipe, ViewContentService, ...TYPE_PROVIDERS],\n})\nexport class ViewContentModule {}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Input,\n OnDestroy,\n signal,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\n\n@Component({\n selector: 'valtimo-no-results',\n templateUrl: './carbon-no-results.component.html',\n styleUrls: ['./carbon-no-results.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class CarbonNoResultsComponent implements AfterViewInit, OnDestroy {\n @ViewChild('noResults') private _noResultsRef: ElementRef<HTMLDivElement>;\n\n @Input() action: TemplateRef<any>;\n @Input() description: string;\n @Input() illustration = 'valtimo-layout/img/no-results.svg';\n @Input() title: string;\n @Input() smallPadding = false;\n @Input() collapseVertically = false;\n @Input() alwaysRenderVertically = false;\n\n public readonly renderVertically = signal(false);\n\n private _observer!: ResizeObserver;\n\n public ngAfterViewInit(): void {\n if (this.collapseVertically) this.openWidthObserver();\n }\n\n public ngOnDestroy(): void {\n this._observer?.disconnect();\n }\n\n private openWidthObserver(): void {\n this._observer = new ResizeObserver(event => {\n this.observerMutation(event);\n });\n this._observer.observe(this._noResultsRef.nativeElement);\n }\n\n private observerMutation(event: Array<ResizeObserverEntry>): void {\n const elementWidth = event[0]?.borderBoxSize[0]?.inlineSize;\n\n if (typeof elementWidth === 'number' && elementWidth !== 0) {\n this.renderVertically.set(elementWidth < 480);\n }\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div\n #noResults\n class=\"valtimo-no-results\"\n [ngClass]=\"{\n 'valtimo-no-results--small-padding': smallPadding,\n 'valtimo-no-results--render-vertically': renderVertically() || alwaysRenderVertically,\n }\"\n>\n <img [src]=\"illustration\" alt=\"{{ 'interface.noResults' | translate }}\" />\n\n <div class=\"valtimo-no-results__content\">\n <h4 class=\"valtimo-no-results__title\">\n {{ title }}\n </h4>\n\n <span class=\"valtimo-no-results__description\" [innerHtml]=\"description\"></span>\n\n <ng-container [ngTemplateOutlet]=\"action\"></ng-container>\n </div>\n</div>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {FormsModule, ReactiveFormsModule} from '@angular/forms';\nimport {NgbPaginationModule, NgbTooltipModule} from '@ng-bootstrap/ng-bootstrap';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {\n ButtonModule,\n ContentSwitcherModule,\n DialogModule,\n IconModule,\n ModalModule,\n PaginationModule,\n TableModule,\n TagModule,\n} from 'carbon-components-angular';\nimport {ValtimoCdsModalDirective} from '../../directives/valtimo-cds-modal/valtimo-cds-modal.directive';\nimport {EllipsisPipe} from '../../pipes';\nimport {ViewContentModule} from '../view-content/view-content.module';\nimport {CarbonListComponent} from './carbon-list.component';\nimport {CarbonListFilterPipe} from './CarbonListFilterPipe.directive';\nimport {CarbonNoResultsComponent} from './no-results/carbon-no-results.component';\nimport {CarbonTagsModalComponent} from './tags-modal/tags-modal.component';\n\n@NgModule({\n declarations: [\n CarbonListComponent,\n CarbonListFilterPipe,\n CarbonNoResultsComponent,\n CarbonTagsModalComponent,\n ],\n imports: [\n CommonModule,\n FormsModule,\n NgbPaginationModule,\n PaginationModule,\n TableModule,\n TranslateModule,\n ReactiveFormsModule,\n ContentSwitcherModule,\n IconModule,\n ButtonModule,\n DialogModule,\n NgbTooltipModule,\n TagModule,\n ModalModule,\n ValtimoCdsModalDirective,\n ViewContentModule,\n ],\n exports: [CarbonListComponent, CarbonListFilterPipe, CarbonNoResultsComponent],\n providers: [EllipsisPipe],\n})\nexport class CarbonListModule {}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {Injectable} from '@angular/core';\nimport {Params, Router, UrlSerializer} from '@angular/router';\nimport {TranslateService} from '@ngx-translate/core';\nimport {BreadcrumbItem} from 'carbon-components-angular';\nimport {BehaviorSubject, combineLatest, Observable, startWith} from 'rxjs';\nimport {map} from 'rxjs/operators';\nimport {MenuService} from '../menu/services/menu.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class BreadcrumbService {\n private _cachedQueryParams: {[routeMatchString: string]: Params} = {};\n private readonly _manualSecondBreadcrumb$ = new BehaviorSubject<BreadcrumbItem | null>(null);\n private readonly _manualThirdBreadcrumb$ = new BehaviorSubject<BreadcrumbItem | null>(null);\n private readonly _manualFourthBreadcrumb$ = new BehaviorSubject<BreadcrumbItem | null>(null);\n\n private readonly _breadcrumbItems$: Observable<Array<BreadcrumbItem>> = combineLatest([\n this.menuService.activeParentSequenceNumber$,\n this.menuService.menuItems$,\n this._manualSecondBreadcrumb$,\n this._manualThirdBreadcrumb$,\n this._manualFourthBreadcrumb$,\n this.translateService.stream('key'),\n this.router.events.pipe(startWith(this.router)),\n ]).pipe(\n map(\n ([\n activeParentSequenceNumber,\n menuItems,\n manualSecondBreadcrumb,\n manualThirdBreadcrumb,\n manualFourthBreadcrumb,\n ]) => {\n const activeParentBreadcrumbTitle = menuItems.find(\n menuItem => `${menuItem.sequence}` === activeParentSequenceNumber\n )?.title;\n const activeParentBreadcrumbTitleTranslation =\n activeParentBreadcrumbTitle && this.translateService.instant(activeParentBreadcrumbTitle);\n const activeParentBreadcrumbItem = {\n content: activeParentBreadcrumbTitleTranslation,\n };\n const secondBreadCrumb = this.getSecondBreadcrumb();\n\n return [\n ...(activeParentSequenceNumber ? [activeParentBreadcrumbItem] : []),\n ...(manualSecondBreadcrumb ? [manualSecondBreadcrumb] : []),\n ...(secondBreadCrumb && !manualSecondBreadcrumb ? [secondBreadCrumb] : []),\n ...(!!manualThirdBreadcrumb ? [manualThirdBreadcrumb] : []),\n ...(!!manualFourthBreadcrumb ? [manualFourthBreadcrumb] : []),\n ];\n }\n ),\n map(breadCrumbItems => this.matchCachedQueryParams(breadCrumbItems))\n );\n\n get breadcrumbItems$(): Observable<Array<BreadcrumbItem>> {\n return this._breadcrumbItems$;\n }\n\n constructor(\n private readonly router: Router,\n private readonly menuService: MenuService,\n private readonly translateService: TranslateService,\n private readonly serializer: UrlSerializer\n ) {}\n\n public setSecondBreadcrumb(breadcrumb: BreadcrumbItem): void {\n this._manualSecondBreadcrumb$.next(breadcrumb);\n }\n\n public clearSecondBreadcrumb(): void {\n this._manualSecondBreadcrumb$.next(null);\n }\n\n public setThirdBreadcrumb(breadcrumb: BreadcrumbItem): void {\n this._manualThirdBreadcrumb$.next(breadcrumb);\n }\n\n public clearThirdBreadcrumb(): void {\n this._manualThirdBreadcrumb$.next(null);\n }\n\n public setFourthBreadcrumb(breadcrumb: BreadcrumbItem): void {\n this._manualFourthBreadcrumb$.next(breadcrumb);\n }\n\n public clearFourthBreadcrumb(): void {\n this._manualFourthBreadcrumb$.next(null);\n }\n\n public cacheQueryParams(routeMatchString: string, params: Params): void {\n if (routeMatchString && typeof params === 'object' && Object.keys(params).length > 0) {\n this._cachedQueryParams = {...this._cachedQueryParams, [routeMatchString]: params};\n }\n }\n\n private getSecondBreadcrumb(): BreadcrumbItem | false {\n const url = this.router.url;\n const urlWithoutParams = url.includes('?') ? url.split('?')[0] : url;\n const splitUrl = urlWithoutParams.split('/');\n const filteredSplitUrl = splitUrl.filter(urlPart => !!urlPart);\n\n if (filteredSplitUrl.length > 1) {\n const route = filteredSplitUrl[0];\n const routeString = `/${route}`;\n const content = this.router.config.find(routeConfig => routeConfig.path === route)?.data\n ?.title;\n\n if (route && content) {\n return {\n route: [routeString],\n content: this.translateService.instant(content),\n href: `${routeString}`,\n };\n }\n }\n\n return false;\n }\n\n private matchCachedQueryParams(breadcrumbItems: Array<BreadcrumbItem>): Array<BreadcrumbItem> {\n let hasCachedParams = false;\n\n const mappedItems = breadcrumbItems.map(breadCrumbItem => {\n const cachedParamKey = Object.keys(this._cachedQueryParams).find(cachedQueryParamKey =>\n this.routeStringToPlain(breadCrumbItem.href).includes(\n this.routeStringToPlain(cachedQueryParamKey)\n )\n );\n const cachedParams = cachedParamKey && this._cachedQueryParams[cachedParamKey];\n\n if (cachedParams) {\n const tree = this.router.createUrlTree(breadCrumbItem.route, {queryParams: cachedParams});\n const serializedUrl = this.serializer.serialize(tree);\n hasCachedParams = true;\n return {...breadCrumbItem, routeExtras: {queryParams: cachedParams}, href: serializedUrl};\n }\n\n return breadCrumbItem;\n });\n\n if (hasCachedParams) {\n this._cachedQueryParams = {};\n }\n\n return mappedItems;\n }\n\n private routeStringToPlain(routeString: string): string {\n return routeString?.replace('/', '').toLowerCase() || '';\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, HostBinding, OnDestroy, OnInit, ViewEncapsulation} from '@angular/core';\nimport {combineLatest, map, Observable, Subscription} from 'rxjs';\nimport {BreadcrumbItem} from 'carbon-components-angular';\nimport {BreadcrumbService} from './breadcrumb.service';\nimport {PageHeaderService, PageTitleService} from '../../services';\n\n@Component({\n selector: 'valtimo-breadcrumb-navigation',\n templateUrl: './breadcrumb-navigation.component.html',\n styleUrls: ['./breadcrumb-navigation.component.scss'],\n encapsulation: ViewEncapsulation.None,\n standalone: false,\n})\nexport class BreadcrumbNavigationComponent implements OnInit, OnDestroy {\n @HostBinding('class.valtimo-breadcrumb-navigation--compact') isCompact!: boolean;\n\n public readonly compactMode$ = this.pageHeaderService.compactMode$;\n\n public readonly breadcrumbItems$: Observable<Array<BreadcrumbItem>> = combineLatest([\n this.breadcrumbService.breadcrumbItems$,\n this.compactMode$,\n this.pageTitleService.pageTitleHidden$,\n ]).pipe(\n map(([breadCrumbItems, compactMode, pageTitleHidden]) => [\n ...(compactMode && !pageTitleHidden ? [{content: ''}] : []),\n ...breadCrumbItems,\n ])\n );\n\n private readonly _subscriptions = new Subscription();\n\n constructor(\n private readonly breadcrumbService: BreadcrumbService,\n private readonly pageHeaderService: PageHeaderService,\n private readonly pageTitleService: PageTitleService\n ) {}\n\n public ngOnInit(): void {\n this._subscriptions.add(\n this.pageHeaderService.compactMode$.subscribe(compactMode => {\n this.isCompact = compactMode;\n })\n );\n }\n\n public ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container *ngIf=\"breadcrumbItems$ | async as breadcrumbItems\">\n <div\n class=\"breadcrumbs-container\"\n *ngIf=\"breadcrumbItems.length > 0\"\n [ngClass]=\"{'--compact': compactMode$ | async}\"\n >\n <cds-breadcrumb [items]=\"breadcrumbItems\"></cds-breadcrumb>\n </div>\n</ng-container>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n AfterContentInit,\n ContentChild,\n Directive,\n EmbeddedViewRef,\n OnDestroy,\n TemplateRef,\n} from '@angular/core';\nimport {combineLatest, Subscription} from 'rxjs';\nimport {PageHeaderService} from '../../services';\n\n@Directive({selector: '[renderPageHeader]', standalone: true})\nexport class RenderPageHeaderDirective implements AfterContentInit, OnDestroy {\n @ContentChild(TemplateRef) templateRef;\n\n private embeddedView?: EmbeddedViewRef<any>;\n private readonly _subscriptions = new Subscription();\n constructor(private readonly pageHeaderService: PageHeaderService) {}\n\n public ngAfterContentInit(): void {\n this._subscriptions.add(\n combineLatest([\n this.pageHeaderService.compactMode$,\n this.pageHeaderService.headerViewContainerRef$,\n this.pageHeaderService.contentViewContainerRef$,\n ]).subscribe(([compactMode, headerViewContainerRef, contentViewContainerRef]) => {\n if (!this.templateRef) return;\n\n this.embeddedView?.destroy();\n\n if (compactMode) {\n this.embeddedView = headerViewContainerRef.createEmbeddedView(this.templateRef);\n } else {\n this.embeddedView = contentViewContainerRef.createEmbeddedView(this.templateRef);\n }\n })\n );\n }\n\n public ngOnDestroy(): void {\n this.embeddedView?.destroy();\n this._subscriptions.unsubscribe();\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n AfterViewInit,\n Component,\n ElementRef,\n HostBinding,\n OnDestroy,\n ViewChild,\n ViewContainerRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {SkeletonModule} from 'carbon-components-angular';\nimport {map, Observable, startWith, switchMap} from 'rxjs';\nimport {ActivatedRoute, Router} from '@angular/router';\nimport {PageHeaderService, PageSubtitleService, PageTitleService} from '../../services';\n\n@Component({\n selector: 'valtimo-page-actions',\n templateUrl: './page-actions.component.html',\n styleUrls: ['./page-actions.component.scss'],\n standalone: true,\n imports: [CommonModule, SkeletonModule],\n encapsulation: ViewEncapsulation.None,\n})\nexport class PageActionsComponent implements AfterViewInit, OnDestroy {\n @ViewChild('pageActionsVcr', {static: true, read: ViewContainerRef})\n private readonly _pageActionsVcr!: ViewContainerRef;\n @ViewChild('pageActions')\n private readonly _pageActions!: ElementRef<HTMLDivElement>;\n @ViewChild('subtitleVcr', {static: true, read: ViewContainerRef})\n private readonly _subtitleVcr!: ViewContainerRef;\n @HostBinding('class') class = 'valtimo-page-actions';\n\n public readonly hasCustomPageSubtitle$: Observable<boolean> = this.router.events.pipe(\n startWith(this.router),\n switchMap(() => this.activatedRoute.firstChild.data),\n map(data => !!data?.customPageSubtitle)\n );\n public readonly hasPageActions$ = this.pageTitleService.hasPageActions$;\n public readonly pageActionsFullWidth$ = this.pageTitleService.pageActionsFullWidth$;\n public readonly compactMode$ = this.pageHeaderService.compactMode$;\n\n private _pageActionsObserver!: MutationObserver;\n\n constructor(\n private readonly router: Router,\n private readonly activatedRoute: ActivatedRoute,\n private readonly pageTitleService: PageTitleService,\n private readonly pageHeaderService: PageHeaderService,\n private readonly pageSubtitleService: PageSubtitleService\n ) {}\n\n public ngAfterViewInit(): void {\n this.pageTitleService.setPageActionsViewContainerRef(this._pageActionsVcr);\n this.pageSubtitleService.setActionsViewContainerRef(this._subtitleVcr);\n this.openPageActionsMutationObserver();\n }\n\n public ngOnDestroy(): void {\n this._pageActionsObserver?.disconnect();\n }\n\n private openPageActionsMutationObserver(): void {\n if (!this._pageActions) return;\n\n this._pageActionsObserver = new MutationObserver(mutations => {\n const firstMutation = mutations[0];\n const target = firstMutation?.target as HTMLDivElement;\n const children = target?.children;\n const childrenArray = (children && Array.from(children)) || [];\n\n this.pageHeaderService.setPageActionsHasContent(childrenArray.length > 0);\n });\n\n this._pageActionsObserver.observe(this._pageActions.nativeElement, {childList: true});\n\n this.setInitialPageActionsHasChildren();\n }\n\n private setInitialPageActionsHasChildren(): void {\n const children = this._pageActions.nativeElement.children;\n const childrenArray = (children && Array.from(children)) || [];\n\n this.pageHeaderService.setPageActionsHasContent(childrenArray.length > 0);\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div\n class=\"page-actions-container\"\n [ngClass]=\"{\n '--compact': compactMode$ | async,\n }\"\n>\n <ng-container #subtitleVcr></ng-container>\n\n <div\n #pageActions\n [ngClass]=\"{\n 'page-actions--visible': hasPageActions$ | async,\n 'page-actions--full-width': (pageActionsFullWidth$ | async),\n 'page-actions--compact': (hasPageActions$ | async) && (compactMode$ | async),\n }\"\n class=\"page-actions\"\n >\n <ng-container #pageActionsVcr></ng-container>\n </div>\n</div>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {AfterContentInit, ContentChild, Directive, OnDestroy, TemplateRef} from '@angular/core';\nimport {combineLatest, Subscription} from 'rxjs';\nimport {PageHeaderService, PageSubtitleService} from '../../services';\n\n@Directive({selector: '[renderPageSubtitle]', standalone: true})\nexport class RenderPageSubtitleDirective implements AfterContentInit, OnDestroy {\n @ContentChild(TemplateRef) templateRef;\n\n private readonly _subscriptions = new Subscription();\n\n constructor(\n private readonly pageSubtitleService: PageSubtitleService,\n private readonly pageHeaderService: PageHeaderService\n ) {}\n\n public ngAfterContentInit(): void {\n this._subscriptions.add(\n combineLatest([\n this.pageHeaderService.compactMode$,\n this.pageSubtitleService.actionsViewContainerRef$,\n this.pageSubtitleService.titleViewContainerRef$,\n ]).subscribe(([compactMode, actionsViewContainerRef, titleViewContainerRef]) => {\n if (!this.templateRef) return;\n\n actionsViewContainerRef.clear();\n titleViewContainerRef.clear();\n\n if (compactMode) {\n actionsViewContainerRef.createEmbeddedView(this.templateRef);\n } else {\n titleViewContainerRef.createEmbeddedView(this.templateRef);\n }\n })\n );\n }\n\n public ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, ViewEncapsulation} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {SkeletonModule} from 'carbon-components-angular';\nimport {map, Observable, startWith, switchMap} from 'rxjs';\nimport {ActivatedRoute, Router} from '@angular/router';\nimport {PageHeaderService, PageTitleService} from '../../services';\nimport {RenderPageSubtitleDirective} from '../../directives/render-page-subtitle/render-page-subtitle.directive';\nimport {RenderPageHeaderDirective} from '../../directives/render-page-header/render-page-header.directive';\n\n@Component({\n selector: 'valtimo-page-subtitle',\n templateUrl: './page-subtitle.component.html',\n styleUrls: ['./page-subtitle.component.scss'],\n standalone: true,\n imports: [CommonModule, SkeletonModule, RenderPageSubtitleDirective, RenderPageHeaderDirective],\n encapsulation: ViewEncapsulation.None,\n})\nexport class PageSubtitleComponent {\n public readonly hasCustomPageSubtitle$: Observable<boolean> = this.router.events.pipe(\n startWith(this.router),\n switchMap(() => this.activatedRoute.firstChild.data),\n map(data => !!data?.customPageSubtitle)\n );\n public readonly hasPageActions$ = this.pageTitleService.hasPageActions$;\n public readonly pageActionsFullWidth$ = this.pageTitleService.pageActionsFullWidth$;\n public readonly customPageSubtitleSet$ = this.pageTitleService.customPageSubtitleSet$;\n public readonly customPageSubtitle$ = this.pageTitleService.customPageSubtitle$;\n public readonly compactMode$ = this.pageHeaderService.compactMode$;\n\n constructor(\n private readonly router: Router,\n private readonly activatedRoute: ActivatedRoute,\n private readonly pageTitleService: PageTitleService,\n private readonly pageHeaderService: PageHeaderService\n ) {}\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container renderPageSubtitle>\n <ng-template>\n <div\n class=\"subtitle-container\"\n *ngIf=\"{\n hasCustomPageSubtitle: hasCustomPageSubtitle$ | async,\n customPageSubtitleSet: customPageSubtitleSet$ | async,\n customPageSubtitle: customPageSubtitle$ | async,\n compactMode: compactMode$ | async,\n hasPageActions: hasPageActions$ | async,\n pageActionsFullWidth: pageActionsFullWidth$ | async,\n } as obs\"\n >\n <div\n *ngIf=\"obs.hasCustomPageSubtitle && !obs.customPageSubtitleSet\"\n class=\"subtitle-skeleton-container\"\n [ngClass]=\"{'--compact': obs.compactMode}\"\n >\n <cds-skeleton-placeholder></cds-skeleton-placeholder>\n </div>\n\n <span\n *ngIf=\"obs.hasCustomPageSubtitle && obs.customPageSubtitleSet\"\n [innerHtml]=\"obs.customPageSubtitle\"\n [title]=\"obs.customPageSubtitle\"\n class=\"page-subtitle\"\n [ngClass]=\"{'--compact': obs.compactMode}\"\n >\n </span>\n </div>\n </ng-template>\n</ng-container>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n AfterViewInit,\n Component,\n ElementRef,\n OnDestroy,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport {UserInterfaceService} from '../../services/user-interface.service';\nimport {PageHeaderService, PageTitleService} from '../../services';\n\n@Component({\n selector: 'valtimo-page-header',\n templateUrl: './page-header.component.html',\n styleUrls: ['./page-header.component.scss'],\n standalone: false,\n})\nexport class PageHeaderComponent implements AfterViewInit, OnDestroy {\n @ViewChild('contentVcr', {static: true, read: ViewContainerRef})\n private readonly _contentrVcr!: ViewContainerRef;\n @ViewChild('pageHead', {static: true, read: ElementRef})\n private readonly _pageHead!: ElementRef<HTMLDivElement>;\n public readonly showPageHeader$ = this.userInterfaceService.showPageHeader$;\n public readonly compactMode$ = this.pageHeaderService.compactMode$;\n public readonly smallTitle$ = this.pageHeaderService.smallTitle$;\n public readonly pageActionsHasContent$ = this.pageHeaderService.pageActionsHasContent$;\n public readonly pageTitleHidden$ = this.pageTitleService.pageTitleHidden$;\n\n private _pageHeadResizeObserver!: ResizeObserver;\n\n constructor(\n private readonly userInterfaceService: UserInterfaceService,\n private readonly pageHeaderService: PageHeaderService,\n private readonly pageTitleService: PageTitleService\n ) {}\n\n public ngAfterViewInit(): void {\n this.pageHeaderService.setContentViewContainerRef(this._contentrVcr);\n this.openPageHeadResizeObserver();\n }\n\n public ngOnDestroy(): void {\n this._pageHeadResizeObserver?.disconnect();\n }\n\n private openPageHeadResizeObserver(): void {\n this._pageHeadResizeObserver = new ResizeObserver(entries => {\n const pageHeadEntry = Array.isArray(entries) && entries[0];\n const pageHeadHeight = pageHeadEntry?.contentRect?.height;\n\n if (pageHeadHeight) this.pageHeaderService.setPageHeadHeight(pageHeadHeight);\n });\n\n this._pageHeadResizeObserver.observe(this._pageHead.nativeElement);\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div\n #pageHead\n class=\"page-head\"\n [ngClass]=\"{\n 'page-head--hidden': (showPageHeader$ | async) === false,\n 'page-head--compact': compactMode$ | async,\n 'page-head--no-content': (compactMode$ | async) && (pageActionsHasContent$ | async) === false,\n 'page-head--no-margin': pageTitleHidden$ | async,\n 'page-head--small-title': smallTitle$ | async,\n }\"\n>\n <ng-container #contentVcr></ng-container>\n\n <valtimo-page-subtitle></valtimo-page-subtitle>\n\n <valtimo-page-actions></valtimo-page-actions>\n</div>\n\n<ng-container renderPageHeader>\n <ng-template>\n <div\n class=\"page-header-container\"\n [ngClass]=\"{\n 'page-header-container--compact': compactMode$ | async,\n 'page-header-container--small-title': smallTitle$ | async,\n }\"\n >\n <valtimo-breadcrumb-navigation></valtimo-breadcrumb-navigation>\n\n <valtimo-page-title></valtimo-page-title>\n </div>\n </ng-template>\n</ng-container>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {RouterModule} from '@angular/router';\nimport {BreadcrumbNavigationComponent} from './breadcrumb-navigation.component';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {BreadcrumbModule} from 'carbon-components-angular';\n\n@NgModule({\n declarations: [BreadcrumbNavigationComponent],\n imports: [CommonModule, RouterModule, TranslateModule, BreadcrumbModule],\n exports: [BreadcrumbNavigationComponent],\n})\nexport class BreadcrumbNavigationModule {}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {PageHeaderComponent} from './page-header.component';\nimport {PageTitleModule} from '../page-title/page-title.module';\nimport {BreadcrumbNavigationModule} from '../breadcrumb-navigation/breadcrumb-navigation.module';\nimport {RenderPageHeaderDirective} from '../../directives/render-page-header/render-page-header.directive';\nimport {PageActionsComponent} from '../page-actions/page-actions.component';\nimport {PageSubtitleComponent} from '../page-subtitle/page-subtitle.component';\n\n@NgModule({\n declarations: [PageHeaderComponent],\n imports: [\n CommonModule,\n PageTitleModule,\n BreadcrumbNavigationModule,\n RenderPageHeaderDirective,\n PageActionsComponent,\n PageSubtitleComponent,\n ],\n exports: [PageHeaderComponent],\n})\nexport class PageHeaderModule {}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, Input, OnInit} from '@angular/core';\n\n/**\n * Component used to display a widget element\n */\n@Component({\n selector: 'valtimo-widget',\n templateUrl: './widget.component.html',\n styleUrls: ['./widget.component.css'],\n standalone: false,\n})\nexport class WidgetComponent implements OnInit {\n @Input() type?: string;\n @Input() name?: string;\n @Input() icon?: string;\n @Input() contrast?: string;\n @Input() divider?: string;\n @Input() title?: string;\n @Input() subtitle?: string;\n @Input() collapseAble?: string;\n @Input() collapse?: string;\n @Input() additionalClasses?: string;\n\n public cardClassName: string;\n public contrastClass: string;\n public dividerClass: string;\n public isCollapsed: boolean;\n\n ngOnInit(): void {\n this.setCardClassName();\n this.setType();\n this.setAdditionalClasses();\n this.setContrast();\n this.setDivider();\n this.setCollapse();\n }\n\n public toggleContent(): void {\n if (this.collapseAble) {\n this.isCollapsed = !this.isCollapsed;\n }\n }\n\n private setCardClassName(): void {\n this.cardClassName = 'card-full-default';\n }\n\n private setType(): void {\n if (this.type) {\n this.cardClassName = `card-full-${this.type}`;\n }\n }\n\n private setAdditionalClasses(): void {\n if (this.additionalClasses) {\n this.cardClassName = `${this.cardClassName} ${this.additionalClasses}`;\n }\n }\n\n private setContrast(): void {\n if (this.contrast) {\n this.contrastClass = 'card-header-contrast';\n }\n }\n\n private setDivider(): void {\n if (this.divider) {\n this.dividerClass = 'card-header-divider';\n }\n }\n\n private setCollapse(): void {\n this.isCollapsed = !(this.collapseAble && this.collapse === 'hide');\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div class=\"card card-border card-contrast {{ cardClassName }}\">\n <div class=\"card-header {{ contrastClass }} {{ dividerClass }}\" *ngIf=\"title || subtitle\">\n <div class=\"row\">\n <div class=\"col-7\" [ngClass]=\"{clickable: collapseAble}\" (click)=\"toggleContent()\">\n <!-- Title -->\n <div *ngIf=\"title\" class=\"text-truncate\">{{ title }}</div>\n <!-- Sub title -->\n <div *ngIf=\"subtitle\" class=\"card-subtitle text-truncate\">{{ subtitle }}</div>\n </div>\n\n <!-- Tools-->\n <div class=\"tools col-5 text-right\">\n <!-- Collapse content -->\n <a\n class=\"icon mdi\"\n *ngIf=\"collapseAble\"\n [ngClass]=\"{'mdi-chevron-up': isCollapsed, 'mdi-chevron-down': !isCollapsed}\"\n (click)=\"toggleContent()\"\n ></a>\n </div>\n </div>\n </div>\n <!-- content -->\n <div [hidden]=\"!isCollapsed\">\n <ng-content></ng-content>\n </div>\n</div>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {WidgetComponent} from './widget.component';\n\n@NgModule({\n declarations: [WidgetComponent],\n imports: [CommonModule],\n exports: [WidgetComponent],\n})\nexport class WidgetModule {}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {AfterContentInit, Directive, ElementRef} from '@angular/core';\n\n@Directive({\n selector: '[valtimoFieldAutoFocus]',\n standalone: false,\n})\nexport class FieldAutoFocusDirective implements AfterContentInit {\n constructor(private el: ElementRef) {}\n\n public ngAfterContentInit() {\n setTimeout(() => {\n this.el.nativeElement.focus();\n }, 300);\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {FieldAutoFocusDirective} from './field-auto-focus.directive';\n\n@NgModule({\n declarations: [FieldAutoFocusDirective],\n exports: [FieldAutoFocusDirective],\n imports: [CommonModule],\n})\nexport class FieldAutoFocusModule {}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n AfterContentInit,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n ViewChild,\n} from '@angular/core';\nimport BpmnViewer from 'bpmn-js';\nimport heatmap from 'heatmap.js-fixed/build/heatmap.js';\n\n@Component({\n selector: 'valtimo-bpmn-js-diagram',\n templateUrl: './bpmn-js-diagram.component.html',\n styleUrls: ['./bpmn-js-diagram.component.css'],\n standalone: false,\n})\nexport class BpmnJsDiagramComponent implements OnInit, AfterContentInit, OnDestroy {\n private bpmnViewer: BpmnViewer;\n private heatMapInstance: any;\n\n @ViewChild('ref', {static: true}) public el: ElementRef;\n @Output() public importDone: EventEmitter<any> = new EventEmitter();\n @Input() public bpmn20Xml: any;\n @Input() public heatmapDuration?: any;\n @Input() public heatmapCount?: any;\n @Input() public historicActivityInstances?: any;\n\n public heatmapMode: boolean;\n public heatPoints = {data: []};\n public min: number;\n public max: number;\n\n constructor() {}\n\n ngOnInit(): void {\n this.bpmnViewer = new BpmnViewer();\n this.bpmnViewer.on('import.done', (event: any) => {\n if (!event?.error) {\n const canvas = this.bpmnViewer.get('canvas') as any;\n const eventBus = this.bpmnViewer.get('eventBus') as any;\n\n if (this.historicActivityInstances) {\n this.historicActivityInstances.forEach(instance => {\n canvas.addMarker(\n instance.activityId,\n instance.endTime ? 'highlight-overlay-past' : 'highlight-overlay-current'\n );\n });\n }\n\n canvas.zoom('fit-viewport', 'auto');\n\n if (this.heatmapDuration || this.heatmapCount) {\n eventBus.on('canvas.init', () => {\n if (this.heatmapMode) {\n this.clearHeatmap();\n }\n this.getHeatmapData();\n });\n eventBus.on('canvas.viewbox.changing', () => {\n if (this.heatmapMode) {\n this.clearHeatmap();\n }\n });\n eventBus.on('canvas.viewbox.changed', () => {\n this.getHeatmapData();\n });\n }\n }\n });\n }\n\n ngAfterContentInit(): void {\n this.bpmnViewer.importXML(this.bpmn20Xml);\n this.bpmnViewer.attachTo(this.el.nativeElement);\n }\n\n getHeatmapData() {\n let inputData: any;\n let valueKey: any;\n\n this.heatPoints = {data: []};\n this.min = 0;\n this.max = 0;\n\n if (this.heatmapDuration) {\n inputData = this.heatmapDuration;\n valueKey = 'averageDurationInMilliseconds';\n } else if (this.heatmapCount) {\n inputData = this.heatmapCount;\n valueKey = 'totalCount';\n }\n\n if (inputData) {\n Object.keys(inputData).forEach(key => {\n const diagramContainer = this.el.nativeElement.querySelector('svg').getBoundingClientRect();\n const diagramElm = this.el.nativeElement\n .querySelector(`g[data-element-id=${key}]`)\n .getBoundingClientRect();\n this.setMax(key);\n this.heatPoints.data.push({\n x: Math.round(diagramElm.x - diagramContainer.x + diagramElm.width / 2),\n y: Math.round(diagramElm.y - diagramContainer.y + diagramElm.height / 2),\n value: inputData[key][valueKey],\n radius: diagramElm.width / 2,\n });\n if (inputData[key].count > 0) {\n this.addCounterActiveOverlays(key, inputData);\n }\n });\n\n if (this.heatmapMode) {\n this.showHeatmap();\n }\n }\n }\n\n setMax(key: any) {\n if (this.heatmapDuration) {\n this.max = Math.max(this.heatmapDuration[key].averageDurationInMilliseconds, this.max);\n } else if (this.heatmapCount) {\n this.max = Math.max(\n this.heatmapCount[key].totalCount + this.heatmapCount[key].count,\n this.max\n );\n }\n }\n\n addCounterActiveOverlays(key: any, inputData: any) {\n const overlays = this.bpmnViewer.get('overlays') as any;\n overlays.add(key, {\n position: {\n bottom: -10,\n left: 0,\n },\n show: {\n minZoom: 0,\n maxZoom: 5.0,\n },\n html: `<span class=\"badge badge-pill badge-primary\">${inputData[key].count}</span>`,\n });\n }\n\n showHeatmap() {\n this.heatMapInstance = heatmap.create({\n radius: 54,\n blur: 0.7,\n maxOpacity: 0.4,\n minOpacity: 0,\n container: this.el.nativeElement,\n });\n this.heatMapInstance.setData({\n min: this.min,\n max: this.max,\n data: this.heatPoints.data,\n });\n }\n\n clearHeatmap() {\n this.heatMapInstance.setData({data: []});\n }\n\n toggleHeatmap() {\n this.heatmapMode = !this.heatmapMode;\n if (this.heatmapMode) {\n this.showHeatmap();\n } else {\n this.clearHeatmap();\n }\n }\n\n ngOnDestroy(): void {\n this.bpmnViewer.destroy();\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div class=\"p-4\" *ngIf=\"heatmapDuration || heatmapCount\">\n <div class=\"switch-button switch-button-sm switch-button-success\">\n <input\n type=\"checkbox\"\n id=\"toggleHeatmap\"\n [checked]=\"heatmapMode\"\n (click)=\"toggleHeatmap()\"\n /><span> <label for=\"toggleHeatmap\"></label></span>\n </div>\n</div>\n\n<div #ref class=\"diagram-container\"></div>\n\n<div *ngIf=\"historicActivityInstances\" class=\"p-4 text-center legenda-holder\">\n <span\n ><div class=\"legenda highlight-overlay-past\"></div>\n Executed tasks</span\n >\n <span class=\"ml-3\"\n ><div class=\"legenda highlight-overlay-current\"></div>\n Current tasks</span\n >\n</div>\n\n<div *ngIf=\"heatmapDuration || heatmapCount\" class=\"p-4 text-center legenda-holder\">\n <span\n ><span class=\"badge badge-pill badge-primary\">N</span>&nbsp;&nbsp;Amount of currently active\n instances of this task.</span\n >\n <span\n >&nbsp;&nbsp;|&nbsp;&nbsp;Red/yellow/green orbs: The amount of times the task is executed in\n comparison to the other tasks.</span\n >\n</div>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {BpmnJsDiagramComponent} from './bpmn-js-diagram.component';\n\n@NgModule({\n declarations: [BpmnJsDiagramComponent],\n imports: [CommonModule],\n exports: [BpmnJsDiagramComponent],\n})\nexport class BpmnJsDiagramModule {}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {Component, Input, OnInit} from '@angular/core';\nimport {TimelineItem} from '../../models';\nimport {BehaviorSubject} from 'rxjs';\n\n@Component({\n selector: 'valtimo-timeline',\n templateUrl: './timeline.component.html',\n styleUrls: ['./timeline.component.scss'],\n standalone: false,\n})\nexport class TimelineComponent {\n public readonly items$ = new BehaviorSubject<Array<TimelineItem>>([]);\n @Input() public set items(value: Array<TimelineItem>) {\n this.items$.next(value);\n }\n\n public readonly actions$ = new BehaviorSubject<{[id: string]: object}>({});\n @Input() public set actions(value: any[]) {\n this.actions$.next(value.reduce((acc, curr) => ({...acc, [curr.id]: curr}), {}));\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n@if (items$ | async; as items) {\n <ul class=\"timeline mb-0 py-5\">\n @for (item of items; track item.customData.id) {\n <li class=\"timeline-item status-done\">\n <div class=\"timeline-date\">\n <span>{{ item.date }}</span>\n\n <br />\n\n <span>{{ item.time }}</span>\n </div>\n\n <div class=\"timeline-content\" *ngIf=\"actions$ | async as actions\">\n <div class=\"timeline-header\">\n <span class=\"timeline-author\">{{ item.user }}</span>\n\n <br />\n\n <p class=\"timeline-activity\">{{ item.activity }}</p>\n\n <p class=\"timeline-summary\">\n {{ item.summaryTranslationKey | translate: item.summaryTranslationParams }}\n </p>\n </div>\n\n <cds-overflow-menu *ngIf=\"item.supportedActionIds?.length > 0\">\n @for (actionId of item.supportedActionIds; track actionId) {\n <cds-overflow-menu-option (click)=\"actions[actionId].callback(item, $event)\">\n <i\n *ngIf=\"!!actions[actionId].icon\"\n class=\"icon mdi\"\n [ngClass]=\"actions[actionId].icon\"\n ></i>\n\n {{ actions[actionId]?.label || '-' }}\n </cds-overflow-menu-option>\n }\n </cds-overflow-menu>\n </div>\n </li>\n }\n </ul>\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {DialogModule} from 'carbon-components-angular';\nimport {CarbonListModule} from '../carbon-list/carbon-list.module';\nimport {TimelineComponent} from './timeline.component';\n\n@NgModule({\n declarations: [TimelineComponent],\n imports: [CommonModule, TranslateModule, CarbonListModule, DialogModule],\n exports: [TimelineComponent],\n})\nexport class TimelineModule {}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, OnDestroy, OnInit} from '@angular/core';\n\n// eslint-disable-next-line no-var\ndeclare var $;\n\n@Component({\n selector: 'valtimo-filter-sidebar',\n templateUrl: './filter-sidebar.component.html',\n styleUrls: ['./filter-sidebar.component.css'],\n standalone: false,\n})\nexport class FilterSidebarComponent implements OnInit, OnDestroy {\n public filterSidebar: string;\n\n constructor() {\n this.filterSidebar = localStorage.getItem('filterSidebar') || 'show';\n }\n\n ngOnInit() {\n if (this.filterSidebar === 'show') {\n localStorage.setItem('filterSidebar', 'show');\n $('.be-content').addClass('be-aside');\n }\n $('[data-toggle=\"tooltip\"]').tooltip();\n }\n\n ngOnDestroy() {\n $('.be-content').removeClass('be-aside');\n }\n\n toggleFilterSidebar() {\n const beContent = $('.be-content');\n beContent.toggleClass('be-aside');\n this.filterSidebar = beContent.hasClass('be-aside') ? 'show' : 'hide';\n localStorage.setItem('filterSidebar', this.filterSidebar);\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div>\n <a\n class=\"toggle-filter-sidebar\"\n data-toggle=\"tooltip\"\n data-trigger=\"hover\"\n data-placement=\"right\"\n title=\"Show / hide\"\n href=\"javascript:void(0)\"\n (click)=\"toggleFilterSidebar()\"\n [ngClass]=\"this.filterSidebar === 'show' && 'toggle-expanded'\"\n >\n <div class=\"icon-container p-0 bg-transparent\">\n <i class=\"click-able icon shadow mdi mdi-filter-variant\"></i>\n </div>\n </a>\n <aside class=\"page-aside p-4 mb-4 bg-light filter-holder\" *ngIf=\"this.filterSidebar === 'show'\">\n <ng-content></ng-content>\n </aside>\n</div>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {FilterSidebarComponent} from './filter-sidebar.component';\n\n@NgModule({\n declarations: [FilterSidebarComponent],\n imports: [CommonModule],\n exports: [FilterSidebarComponent],\n})\nexport class FilterSidebarModule {}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Directive, EventEmitter, HostListener, Output} from '@angular/core';\n\n@Directive({\n selector: '[valtimoUploaderDragDrop]',\n standalone: false,\n})\nexport class UploaderDragDropDirective {\n @Output() fileDropped = new EventEmitter<any>();\n\n @HostListener('dragover', ['$event']) onDragOver(evt) {\n evt.preventDefault();\n evt.stopPropagation();\n }\n\n @HostListener('dragleave', ['$event'])\n public onDragLeave(evt) {\n evt.preventDefault();\n evt.stopPropagation();\n }\n\n @HostListener('drop', ['$event'])\n public ondrop(evt) {\n evt.preventDefault();\n evt.stopPropagation();\n const files = evt.dataTransfer.files;\n if (files.length > 0) {\n this.fileDropped.emit(files);\n }\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Pipe, PipeTransform} from '@angular/core';\n\n@Pipe({\n name: 'filesize',\n standalone: false,\n})\nexport class FileSizePipe implements PipeTransform {\n private units = ['bytes', 'KB', 'MB', 'GB', 'TB', 'PB'];\n\n transform(bytes: number = 0, precision: number = 2): string {\n if (isNaN(parseFloat(String(bytes))) || !isFinite(bytes)) {\n return '?';\n }\n\n let unit = 0;\n\n while (bytes >= 1024) {\n bytes /= 1024;\n unit++;\n }\n\n return bytes.toFixed(+precision) + ' ' + this.units[unit];\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, EventEmitter, Input, Output} from '@angular/core';\nimport {S3Resource, S3Service} from '@valtimo/resource';\n\n@Component({\n selector: 'valtimo-uploader',\n templateUrl: './uploader.component.html',\n styleUrls: ['./uploader.component.css'],\n standalone: false,\n})\nexport class UploaderComponent {\n public resources: any = [];\n @Output() resourcesChanged: EventEmitter<any> = new EventEmitter();\n @Output() resourceRegistered: EventEmitter<S3Resource> = new EventEmitter();\n @Input() showFileList = true;\n\n constructor(private s3Service: S3Service) {}\n\n onFileFieldChange(files) {\n for (const file of files) {\n this.uploadFile(file);\n }\n }\n\n uploadFile(file: File) {\n this.s3Service.getPreSignedUrl(file.name).subscribe(value => {\n const preSignedUrl: URL = new URL(value);\n this.s3Service.upload(preSignedUrl, file).subscribe(result => {\n const s3ResourceDTO = new S3Resource(file, preSignedUrl);\n this.s3Service.registerResource(s3ResourceDTO).subscribe(resource => {\n this.resources.push(resource);\n this.resourceRegistered.emit(resource);\n this.resourcesChanged.emit(this.resources);\n });\n });\n });\n }\n\n deleteResource(resource) {\n this.s3Service.delete(resource.id).subscribe(result => {\n const index = this.resources.findIndex(res => res.id === resource.id);\n this.resources.splice(index, 1);\n this.resourcesChanged.emit(this.resources);\n });\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div\n class=\"upload-file-container p-5\"\n (click)=\"fileInput.click()\"\n valtimoUploaderDragDrop\n (fileDropped)=\"onFileFieldChange($event)\"\n>\n <span class=\"align-middle\"><i class=\"mdi mdi-cloud-upload\"></i></span>\n <input hidden type=\"file\" #fileInput (change)=\"onFileFieldChange($event.target.files)\" multiple />\n</div>\n<div *ngIf=\"showFileList\">\n <div class=\"files-list px-3 py-2\" *ngFor=\"let resource of resources\">\n <p class=\"m-0\">\n <strong>{{ resource.name }}</strong\n ><br />\n {{ resource.sizeInBytes | filesize }}\n </p>\n <button class=\"delete-file\" (click)=\"deleteResource(resource)\">\n <i class=\"icon mdi mdi-delete text-danger\"></i>\n </button>\n </div>\n</div>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {FileSizePipe} from './file-size.pipe';\n\n@NgModule({\n declarations: [FileSizePipe],\n imports: [CommonModule],\n exports: [FileSizePipe],\n})\nexport class FileSizeModule {}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {UploaderComponent} from './uploader.component';\nimport {UploaderDragDropDirective} from './uploader-drag-drop.directive';\nimport {FileSizeModule} from '../file-size/file-size.module';\n\n@NgModule({\n declarations: [UploaderComponent, UploaderDragDropDirective],\n imports: [CommonModule, FileSizeModule],\n exports: [UploaderComponent, UploaderDragDropDirective],\n})\nexport class UploaderModule {}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {EventEmitter, Injectable} from '@angular/core';\nimport {NavigationStart, Router} from '@angular/router';\nimport {Observable, Subject} from 'rxjs';\nimport {Alert, AlertType} from '../../models';\n\n@Injectable({providedIn: 'root'})\nexport class AlertService {\n public confirmed: EventEmitter<any> = new EventEmitter();\n private subject = new Subject<Alert>();\n\n constructor(private router: Router) {\n // clear alert messages on route change unless 'keepAfterRouteChange' flag is true\n this.router.events.subscribe(event => {\n if (event instanceof NavigationStart) {\n // clear alert messages\n this.clear();\n }\n });\n }\n\n // enable subscribing to alerts observable\n onAlert(): Observable<Alert> {\n return this.subject.asObservable();\n }\n\n // convenience methods\n success(message: string, confirmations?: any, iconClass?: string) {\n this.alert(new Alert({message, type: AlertType.Success, confirmations, iconClass}));\n }\n\n error(message: string, confirmations?: any, iconClass?: string) {\n this.alert(new Alert({message, type: AlertType.Error, confirmations, iconClass}));\n }\n\n info(message: string, confirmations?: any, iconClass?: string) {\n this.alert(new Alert({message, type: AlertType.Info, confirmations, iconClass}));\n }\n\n warning(message: string, confirmations?: any, iconClass?: string) {\n this.alert(new Alert({message, type: AlertType.Warning, confirmations, iconClass}));\n }\n\n notification(message: string, confirmations?: any, iconClass?: string) {\n this.alert(new Alert({message, type: AlertType.Notification, confirmations, iconClass}));\n }\n\n modalNotification(message: string, confirmations?: any, iconClass?: string) {\n this.alert(new Alert({message, type: AlertType.ModalNotification, confirmations, iconClass}));\n }\n\n // main alert method\n alert(alert: Alert) {\n this.subject.next(alert);\n }\n\n // clear alerts\n clear() {\n this.subject.next(new Alert({}));\n }\n\n // emit confirm\n emitAlertConfirmEvent(alert: Alert) {\n this.confirmed.emit(alert);\n }\n\n getAlertConfirmChangeEmitter() {\n return this.confirmed;\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {AfterContentInit, Component, OnDestroy} from '@angular/core';\nimport {Subscription} from 'rxjs';\nimport {Alert, AlertType} from '../../models';\nimport {AlertService} from './alert.service';\n\n// eslint-disable-next-line no-var\ndeclare var $;\n\n@Component({\n selector: 'valtimo-alert',\n templateUrl: './alert.component.html',\n styleUrls: ['./alert.component.css'],\n standalone: false,\n})\nexport class AlertComponent implements AfterContentInit, OnDestroy {\n alerts: Alert[] = [];\n subscription: Subscription;\n autoCloseInMS: number;\n\n constructor(private alertService: AlertService) {\n this.autoCloseInMS = 5000;\n }\n\n ngAfterContentInit() {\n this.subscription = this.alertService.onAlert().subscribe(alert => {\n if (!alert.message) {\n // clear alerts when an empty alert is received\n this.alerts = [];\n return;\n }\n\n // set empty array when an empty alert confirmations is received\n if (!alert.confirmations) {\n alert.confirmations = [];\n }\n\n // add alert to array if not exist\n const alertExist = this.alerts.filter(x => x.message === alert.message);\n if (alertExist.length === 0) {\n this.alerts.push(alert);\n }\n\n if (this.inModal(alert)) {\n setTimeout(() => {\n this.openModal();\n }, 300);\n }\n\n // auto close except alert confirmations not empty\n if (this.autoCloseInMS > 0 && alert.confirmations.length === 0) {\n setTimeout(() => {\n this.removeAlert(alert);\n }, this.autoCloseInMS);\n }\n });\n }\n\n closeModal() {\n $('#modalNotification').modal('hide');\n }\n\n openModal() {\n $('#modalNotification').modal('show');\n }\n\n alertConfirm(alert: Alert, confirm: any) {\n alert.confirm = confirm;\n this.alertService.emitAlertConfirmEvent(alert);\n this.removeAlert(alert);\n }\n\n ngOnDestroy() {\n // unsubscribe to avoid memory leaks\n this.subscription.unsubscribe();\n }\n\n removeAlert(alert: Alert) {\n if (this.inModal(alert)) {\n this.closeModal();\n }\n // remove specified alert from array\n this.alerts = this.alerts.filter(x => x.message !== alert.message);\n }\n\n inModal(alert: Alert) {\n if (!alert) {\n return;\n }\n\n // return true based on AlertType.ModalNotification\n switch (alert.type) {\n case AlertType.ModalNotification:\n return true;\n default:\n return false;\n }\n }\n\n cssClass(alert: Alert) {\n if (!alert) {\n return;\n }\n\n // return css class based on alert type\n switch (alert.type) {\n case AlertType.Success:\n return 'alert alert-success';\n case AlertType.Error:\n return 'alert alert-danger';\n case AlertType.Info:\n return 'alert alert-info';\n case AlertType.Warning:\n return 'alert alert-warning';\n case AlertType.Notification:\n return 'alert alert-light';\n case AlertType.ModalNotification:\n return 'alert alert-light';\n }\n }\n\n cssIconClass(alert: Alert) {\n if (!alert) {\n return;\n }\n\n // return css class based on alert type\n switch (alert.type) {\n case AlertType.Success:\n return 'mdi mdi-check';\n case AlertType.Error:\n return 'mdi mdi-close-circle-o';\n case AlertType.Info:\n return 'mdi mdi-info-outline';\n case AlertType.Warning:\n return 'mdi mdi-alert-triangle';\n case AlertType.Notification:\n return 'mdi mdi-notifications';\n case AlertType.ModalNotification:\n return 'mdi mdi-notifications';\n }\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div *ngFor=\"let alert of alerts\" class=\"{{ cssClass(alert) }} rounded-0 m-0 alert-dismissable\">\n <div *ngIf=\"inModal(alert)\">\n <!-- Modal -->\n <div class=\"modal fade\" id=\"modalNotification\" tabindex=\"-1\" role=\"dialog\">\n <div class=\"modal-dialog\" role=\"document\">\n <div class=\"modal-content\">\n <div class=\"modal-body p-0\">\n <button class=\"close\" type=\"button\" (click)=\"removeAlert(alert)\">\n <span class=\"mdi mdi-close\" aria-hidden=\"true\"></span>\n </button>\n <div class=\"icon\">\n <span class=\"{{ alert.iconClass || cssIconClass(alert) }}\"></span>\n </div>\n <div class=\"message\">\n <div [innerHTML]=\"alert.message\"></div>\n </div>\n </div>\n <div class=\"modal-footer pt-0\" *ngIf=\"alert.confirmations?.length\">\n <button\n class=\"{{ confirmation.class }} mr-2\"\n *ngFor=\"let confirmation of alert.confirmations\"\n (click)=\"alertConfirm(alert, confirmation.value)\"\n >\n {{ confirmation.label }}\n </button>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <div *ngIf=\"!inModal(alert)\" class=\"alert-block\">\n <div class=\"icon\"><span class=\"{{ alert.iconClass || cssIconClass(alert) }}\"></span></div>\n <div class=\"message\">\n <div [innerHTML]=\"alert.message\"></div>\n <div class=\"mt-3\" *ngIf=\"alert.confirmations?.length\">\n <button\n class=\"{{ confirmation.class }} mr-2\"\n *ngFor=\"let confirmation of alert.confirmations\"\n (click)=\"alertConfirm(alert, confirmation.value)\"\n >\n {{ confirmation.label }}\n </button>\n </div>\n </div>\n <button class=\"close\" type=\"button\" (click)=\"removeAlert(alert)\">\n <span class=\"mdi mdi-close\" aria-hidden=\"true\"></span>\n </button>\n </div>\n</div>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {AlertComponent} from './alert.component';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [AlertComponent],\n exports: [AlertComponent],\n})\nexport class AlertModule {}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, Input} from '@angular/core';\n\n@Component({\n selector: 'valtimo-data-list',\n templateUrl: './data-list.component.html',\n styleUrls: ['./data-list.component.css'],\n standalone: false,\n})\nexport class DataListComponent {\n @Input() collection?: Array<any>;\n @Input() object?: any;\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div *ngIf=\"collection\">\n <dl class=\"row mb-0\" *ngFor=\"let item of collection\">\n <dd class=\"col-12 col-md-4 col-lg-3\">{{ item.label }}</dd>\n <dt class=\"col-12 col-md-8 col-lg-9\" [innerHTML]=\"item.value || '-'\"></dt>\n </dl>\n</div>\n\n<div *ngIf=\"object\">\n <dl class=\"row mb-0\" *ngFor=\"let item of object | keyvalue\">\n <dd class=\"col-12 col-md-4 col-lg-3\">{{ item.key }}</dd>\n <dt class=\"col-12 col-md-8 col-lg-9\" [innerHTML]=\"item.value || '-'\"></dt>\n </dl>\n</div>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {DataListComponent} from './data-list.component';\n\n@NgModule({\n declarations: [DataListComponent],\n imports: [CommonModule],\n exports: [DataListComponent],\n})\nexport class DataListModule {}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {cloneDeepWith} from 'lodash';\nimport {TranslateService} from '@ngx-translate/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FormioTranslationService {\n constructor(private readonly translateService: TranslateService) {}\n\n public translateFormDefinition(definition: object): object {\n return cloneDeepWith(definition, value => {\n if (typeof value === 'string') {\n if (value.startsWith('translate:')) {\n return this.translateOrFallback(value.substring('translate:'.length));\n }\n\n if (value.includes('translate:')) {\n return value.replace(/translate:([a-zA-Z0-9_.-]+)/g, (_, key) =>\n this.translateOrFallback(key)\n );\n }\n }\n\n return undefined;\n });\n }\n\n private translateOrFallback(key: string): string {\n const translated = this.translateService.instant(key);\n return translated && translated !== key\n ? translated\n : this.translateService.instant('interface.noTranslationFound');\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable, signal} from '@angular/core';\nimport {BehaviorSubject, Observable} from 'rxjs';\nimport {FormioComponent} from '@formio/angular';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FormIoStateService {\n private _documentDefinitionName$ = new BehaviorSubject<string>(undefined);\n private _documentId$ = new BehaviorSubject<string>(undefined);\n private readonly _$processInstanceId = signal<string>('');\n public get processInstanceId(): string {\n return this._$processInstanceId();\n }\n\n private _currentForm$ = new BehaviorSubject<FormioComponent>(undefined);\n\n public get documentDefinitionName$(): Observable<string> {\n return this._documentDefinitionName$.asObservable();\n }\n\n public setDocumentDefinitionName(documentDefinitionName: string) {\n this._documentDefinitionName$.next(documentDefinitionName);\n }\n\n public get documentId$(): Observable<string> {\n return this._documentId$.asObservable();\n }\n\n public get documentId(): string {\n return this._documentId$.getValue();\n }\n\n public setDocumentId(documentId: string) {\n this._documentId$.next(documentId);\n }\n\n public get currentForm$(): Observable<FormioComponent> {\n return this._currentForm$.asObservable();\n }\n\n public set currentForm(form: FormioComponent) {\n this._currentForm$.next(form);\n }\n\n public flattenTranslationsObject(translations) {\n const stack = [{prefix: '', value: translations}];\n const flattened = {};\n\n while (stack.length > 0) {\n const {prefix, value} = stack.pop();\n\n Object.entries(value).forEach(([key, currentValue]) => {\n const currentPrefix = prefix + key + '.';\n\n if (typeof currentValue === 'object' && currentValue !== null) {\n stack.push({prefix: currentPrefix, value: currentValue});\n } else {\n flattened[currentPrefix.slice(0, -1)] = currentValue;\n }\n });\n }\n\n return flattened;\n }\n\n public setProcessInstanceId(id: string): void {\n this._$processInstanceId.set(id);\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {FormIoStateService} from './form-io-state.service';\nimport {take} from 'rxjs/operators';\n\n@Injectable()\nexport class FormIoDomService {\n constructor(private readonly stateService: FormIoStateService) {}\n\n toggleSubmitButton(disabled: boolean): void {\n this.stateService.currentForm$.pipe(take(1)).subscribe(form => {\n const button = form.formioElement.nativeElement\n .getElementsByClassName('formio-component-submit')[0]\n .getElementsByClassName('btn-primary')[0] as HTMLInputElement;\n\n button.disabled = disabled;\n });\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {BehaviorSubject, Observable} from 'rxjs';\n\n@Injectable()\nexport class FormIoLocalStorageService {\n private readonly _FORMIO_TOKEN_LOCAL_STORAGE_KEY = 'formioToken';\n private readonly _tokenSetInLocalStorage$ = new BehaviorSubject<boolean>(false);\n\n public get tokenSetInLocalStorage$(): Observable<boolean> {\n return this._tokenSetInLocalStorage$.asObservable();\n }\n\n public setTokenInLocalStorage(token: string): void {\n setTimeout(() => {\n localStorage.setItem(this._FORMIO_TOKEN_LOCAL_STORAGE_KEY, token);\n this.checkIfTokenExistsInLocalStorage();\n });\n }\n\n public clearTokenFromLocalStorage(): void {\n localStorage.removeItem(this._FORMIO_TOKEN_LOCAL_STORAGE_KEY);\n this.checkIfTokenIsRemovedFromLocalStorage();\n }\n\n private getTokenFromLocalStorage(): string | null {\n return localStorage.getItem(this._FORMIO_TOKEN_LOCAL_STORAGE_KEY);\n }\n\n private checkIfTokenExistsInLocalStorage(): void {\n const maxChecks = 100;\n let checks = 0;\n\n if (this.getTokenFromLocalStorage()) {\n this._tokenSetInLocalStorage$.next(true);\n } else if (checks <= maxChecks) {\n checks++;\n this.checkIfTokenExistsInLocalStorage();\n }\n }\n\n private checkIfTokenIsRemovedFromLocalStorage(): void {\n const maxChecks = 100;\n let checks = 0;\n\n if (this.getTokenFromLocalStorage() && checks <= maxChecks) {\n checks++;\n this.checkIfTokenIsRemovedFromLocalStorage();\n } else {\n this._tokenSetInLocalStorage$.next(false);\n }\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './form-io-translation.service';\nexport * from './form-io.tags.service';\nexport * from './form-io-dom.service';\nexport * from './form-io-local-storage.service';\nexport * from './form-io-state.service';\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n Component,\n EventEmitter,\n HostListener,\n Injector,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges,\n} from '@angular/core';\nimport {ValtimoFormioOptions} from '../../../../models';\nimport {ValtimoModalService} from '../../../../services';\nimport {UserProviderService} from '@valtimo/security';\nimport {\n FormioComponent as FormIoSourceComponent,\n FormioForm,\n FormioOptions,\n FormioRefreshValue,\n FormioSubmission,\n} from '@formio/angular';\nimport {jwtDecode} from 'jwt-decode';\nimport {NGXLogger} from 'ngx-logger';\nimport {BehaviorSubject, combineLatest, Observable, Subject, Subscription, timer} from 'rxjs';\nimport {distinctUntilChanged, filter, map, switchMap, take, tap} from 'rxjs/operators';\nimport {ActivatedRoute} from '@angular/router';\nimport {TranslateService} from '@ngx-translate/core';\nimport {deepmerge} from 'deepmerge-ts';\nimport {ConfigService, ValtimoConfig} from '@valtimo/shared';\nimport {isEqual} from 'lodash';\nimport {Formio} from 'formiojs';\nimport {\n FormIoLocalStorageService,\n FormIoStateService,\n FormIoTagsService,\n FormioTranslationService,\n} from '../../services';\n\n@Component({\n selector: 'valtimo-form-io',\n templateUrl: './form-io.component.html',\n styleUrls: ['./form-io.component.css'],\n providers: [FormIoLocalStorageService],\n standalone: false,\n})\nexport class FormioComponent implements OnInit, OnChanges, OnDestroy {\n @Input() set options(optionsValue: ValtimoFormioOptions) {\n this.options$.next(optionsValue);\n }\n @Input() set submission(submissionValue: FormioSubmission) {\n this.submission$.next(submissionValue);\n }\n @Input() set form(formValue: FormioForm) {\n this._form$.next(formValue);\n }\n @Input() set readOnly(readOnlyValue: boolean) {\n this.readOnly$.next(readOnlyValue);\n }\n @Input() formRefresh$!: Subject<FormioRefreshValue>;\n\n // eslint-disable-next-line @angular-eslint/no-output-native\n @Output() submit = new EventEmitter<any>();\n // eslint-disable-next-line @angular-eslint/no-output-native\n @Output() change = new EventEmitter<any>();\n @Output() event = new EventEmitter<any>();\n\n @HostListener('window:beforeunload', ['$event'])\n private handleBeforeUnload() {\n this.localStorageService.clearTokenFromLocalStorage();\n }\n\n public refreshForm = new EventEmitter<FormioRefreshValue>();\n\n public readonly submission$ = new BehaviorSubject<FormioSubmission>({});\n\n private readonly _form$ = new BehaviorSubject<FormioForm>(undefined);\n\n public readonly form$ = combineLatest([this._form$, this.translateService.stream('key')]).pipe(\n filter(([form]) => !!form),\n map(([form]) => this.formioTranslationService.translateFormDefinition(form)),\n distinctUntilChanged((prev, curr) => isEqual(prev, curr))\n );\n\n public readonly options$ = new BehaviorSubject<ValtimoFormioOptions>(undefined);\n public readonly readOnly$ = new BehaviorSubject<boolean>(false);\n public readonly errors$ = new BehaviorSubject<Array<string>>([]);\n\n public readonly languageEventEmitter = new EventEmitter<string>();\n\n public readonly currentLanguage$ = this.translateService.stream('key').pipe(\n map(() => this.translateService.currentLang),\n distinctUntilChanged(),\n tap(language => this.languageEventEmitter.emit(language))\n );\n\n private readonly _overrideOptions$ = new BehaviorSubject<FormioOptions>({});\n\n public readonly formioOptions$: Observable<ValtimoFormioOptions | FormioOptions> = combineLatest([\n this.options$,\n this.currentLanguage$,\n this._overrideOptions$,\n ]).pipe(\n map(([options, language, overrideOptions]) => {\n const formioTranslations = this.translateService.instant('formioTranslations');\n\n const defaultOptions = {\n ...options,\n ...(formioTranslations === 'object' && {\n i18n: {\n [language]: this.stateService.flattenTranslationsObject(formioTranslations),\n },\n }),\n };\n\n return deepmerge(defaultOptions, overrideOptions);\n }),\n distinctUntilChanged((prev, curr) => isEqual(prev, curr)),\n tap(options => this.logger.debug('Form.IO options used', options))\n );\n\n public readonly tokenSetInLocalStorage$ = this.localStorageService.tokenSetInLocalStorage$;\n\n private _tokenRefreshTimerSubscription!: Subscription;\n private _formRefreshSubscription!: Subscription;\n\n private readonly _subscriptions = new Subscription();\n private readonly _tokenTimerSubscription = new Subscription();\n\n constructor(\n private readonly userProviderService: UserProviderService,\n private readonly logger: NGXLogger,\n private readonly stateService: FormIoStateService,\n private readonly route: ActivatedRoute,\n private readonly translateService: TranslateService,\n private readonly localStorageService: FormIoLocalStorageService,\n private readonly modalService: ValtimoModalService,\n private readonly configService: ConfigService,\n private readonly tagsService: FormIoTagsService,\n private readonly injector: Injector,\n private readonly formioTranslationService: FormioTranslationService\n ) {\n this.setOverrideOptions(this.configService.config);\n this.tagsService.reregisterTags(this.injector);\n }\n\n public ngOnInit(): void {\n Formio.setProjectUrl(location.origin);\n Formio.authUrl = location.origin;\n\n this.openRouteSubscription();\n this.errors$.next([]);\n this.setInitialToken();\n this.subscribeFormRefresh();\n this.openReloadFormSubscription();\n this.openReloadSubmissionSubscription();\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (changes?.formDefinitionRefresh$) {\n this.unsubscribeFormRefresh();\n this.subscribeFormRefresh();\n }\n }\n\n public ngOnDestroy(): void {\n this.unsubscribeFormRefresh();\n this._tokenRefreshTimerSubscription?.unsubscribe();\n this._subscriptions.unsubscribe();\n this.localStorageService.clearTokenFromLocalStorage();\n }\n\n public showErrors(errors: string[]): void {\n this.errors$.next(errors);\n }\n\n public onSubmit(submission: FormioSubmission): void {\n this.errors$.next([]);\n this.submit.emit(submission);\n }\n\n public formReady(form: FormIoSourceComponent): void {\n this.stateService.currentForm = form;\n }\n\n public onChange(object: any): void {\n this.change.emit(object);\n }\n\n public onCustomEvent(event: any): void {\n this.event.emit(event);\n }\n\n public nextPage(): void {\n this.scrollToTop();\n }\n\n public prevPage(): void {\n this.scrollToTop();\n }\n\n private openReloadFormSubscription(): void {\n this._subscriptions.add(\n this.form$.subscribe(form => {\n this.refreshForm.emit({\n form,\n });\n })\n );\n }\n\n private openReloadSubmissionSubscription(): void {\n this._subscriptions.add(\n this.submission$.subscribe(submission => {\n this.refreshForm.emit({\n submission,\n });\n })\n );\n }\n\n private scrollToTop(): void {\n this.modalService.scrollToTop();\n }\n\n private setInitialToken(): void {\n this.userProviderService.getToken().then((token: string) => {\n this.setToken(token);\n });\n }\n\n private setToken(token: string): void {\n Formio.setUser(jwtDecode(token));\n Formio.setToken(token);\n this.setTimerForTokenRefresh(token);\n this.localStorageService.setTokenInLocalStorage(token);\n\n this.logger.debug('New token set for form.io.');\n }\n\n private setTimerForTokenRefresh(token: string): void {\n const tokenExp = jwtDecode(token).exp * 1000;\n const expiryTime = tokenExp - Date.now() - 1000;\n\n this._tokenTimerSubscription.add(\n timer(expiryTime)\n .pipe(\n switchMap(() => this.userProviderService.updateToken(-1)),\n switchMap(() => this.userProviderService.getToken()),\n take(1)\n )\n .subscribe((refreshedToken: string) => {\n this.setToken(refreshedToken);\n })\n );\n\n this.logger.debug(`Timer for form.io token refresh set for: ${expiryTime}ms.`);\n }\n\n private subscribeFormRefresh(): void {\n if (this.formRefresh$) {\n this._formRefreshSubscription = this.formRefresh$.subscribe(refreshValue => {\n if (refreshValue) {\n this.refreshForm.emit(refreshValue);\n }\n });\n }\n }\n\n private unsubscribeFormRefresh(): void {\n if (this._formRefreshSubscription) {\n this._formRefreshSubscription.unsubscribe();\n }\n }\n\n private openRouteSubscription(): void {\n this._subscriptions.add(\n this.route.params.subscribe(params => {\n const documentDefinitionName = params.documentDefinitionName;\n const documentId = params.documentId;\n\n if (documentDefinitionName) {\n this.stateService.setDocumentDefinitionName(documentDefinitionName);\n }\n\n if (documentId) {\n this.stateService.setDocumentId(documentId);\n }\n })\n );\n }\n\n private setOverrideOptions(config: ValtimoConfig): void {\n if (!config.formioOptions) return;\n\n this._overrideOptions$.next(config.formioOptions);\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div\n class=\"formio-carbon\"\n cdsLayer=\"1\"\n *ngIf=\"{\n currentLanguage: currentLanguage$ | async,\n formioOptions: formioOptions$ | async,\n submission: submission$ | async,\n readOnly: readOnly$ | async,\n form: form$ | async,\n errors: errors$ | async,\n tokenSetInLocalStorage: tokenSetInLocalStorage$ | async,\n } as obs\"\n>\n <div *ngIf=\"obs.errors.length > 0\" class=\"alert alert-danger pt-5 pb-5 mb-2\">\n <ol>\n <li *ngFor=\"let error of obs.errors\">\n {{ error }}\n </li>\n </ol>\n </div>\n\n <formio\n *ngIf=\"obs.formioOptions && obs.form && obs.tokenSetInLocalStorage\"\n [form]=\"obs.form\"\n [language]=\"languageEventEmitter\"\n [options]=\"obs.formioOptions\"\n [readOnly]=\"obs.readOnly\"\n [refresh]=\"refreshForm\"\n [submission]=\"obs.submission\"\n (change)=\"onChange($event)\"\n (nextPage)=\"nextPage()\"\n (prevPage)=\"prevPage()\"\n (ready)=\"formReady($event)\"\n (submit)=\"onSubmit($event)\"\n (customEvent)=\"onCustomEvent($event)\"\n ></formio>\n</div>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {ValtimoWindow} from '@valtimo/shared';\nimport {Observable} from 'rxjs';\n\nlet formioParams: Observable<{caseDefinitionKey: ''; caseDefinitionVersionTag: ''}>;\n\nconst modiyEditFormApiKeyInput = (editForm: any): void => {\n const keyField = editForm?.components\n ?.find(element => element?.key === 'tabs')\n ?.components?.find(element => element?.key === 'api')\n ?.components?.find(element => element?.key === 'key');\n\n if (keyField) delete keyField.validate;\n\n return editForm;\n};\n\nconst addValueResolverSelectorToEditform = (editForm: any, params: any): void => {\n const valtimoWindow = window as ValtimoWindow;\n const valtimoTabKey = 'valtimo';\n formioParams = params;\n\n if (valtimoWindow?.flags?.formioValueResolverSelectorComponentRegistered) {\n const tabComponents = editForm?.components?.find(element => element.key === 'tabs')?.components;\n const hasValtimoTab = tabComponents?.find(component => component.key === valtimoTabKey);\n\n if (tabComponents && !hasValtimoTab) {\n tabComponents.push({\n label: 'Valtimo',\n key: valtimoTabKey,\n weight: 70,\n components: [\n {\n weight: 0,\n type: 'valtimo-value-resolver-selector',\n key: 'properties.sourceKey',\n label: 'Value resolver',\n validate: {\n required: false,\n },\n },\n ],\n });\n }\n }\n\n return editForm;\n};\n\nexport {modiyEditFormApiKeyInput, addValueResolverSelectorToEditform, formioParams};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, EventEmitter, Injector, Input, OnInit, Output} from '@angular/core';\nimport {Components} from 'formiojs';\nimport {distinctUntilChanged, map, tap} from 'rxjs/operators';\nimport {TranslateService} from '@ngx-translate/core';\nimport {FormioOptions} from '@formio/angular/';\nimport {FormIoStateService} from '../../services/form-io-state.service';\nimport {BehaviorSubject, combineLatest, Observable, startWith} from 'rxjs';\nimport {\n addValueResolverSelectorToEditform,\n modiyEditFormApiKeyInput,\n} from './form-io-builder.utils';\nimport {ValtimoFormioOptions} from '../../../../models';\nimport {deepmerge} from 'deepmerge-ts';\nimport {isEqual} from 'lodash';\nimport {ConfigService, getCaseManagementRouteParams, ValtimoConfig} from '@valtimo/shared';\nimport {FormIoTagsService} from '../../services/form-io.tags.service';\nimport {ActivatedRoute} from '@angular/router';\n\n@Component({\n selector: 'valtimo-form-io-builder',\n templateUrl: './form-io-builder.component.html',\n styleUrls: ['./form-io-builder.component.css'],\n standalone: false,\n})\nexport class FormioBuilderComponent implements OnInit {\n public readonly form$ = new BehaviorSubject<object | null>(null);\n\n @Input() public set form(value: object) {\n const currentFormValue = this.form$.getValue();\n if (value && !currentFormValue) this.form$.next(value);\n }\n\n // eslint-disable-next-line @angular-eslint/no-output-native\n @Output() public change: EventEmitter<any> = new EventEmitter();\n\n public readonly triggerRebuild: EventEmitter<FormioOptions> = new EventEmitter();\n\n public readonly currentLanguage$ = this.translateService.stream('key').pipe(\n map(() => this.translateService.currentLang),\n distinctUntilChanged(),\n tap(language => this.languageEventEmitter.emit(language))\n );\n\n public readonly languageEventEmitter = new EventEmitter<string>();\n\n public readonly options$ = new BehaviorSubject<ValtimoFormioOptions>(undefined);\n\n private readonly _overrideOptions$ = new BehaviorSubject<FormioOptions>({});\n\n public readonly formioOptions$: Observable<ValtimoFormioOptions | FormioOptions> = combineLatest([\n this.options$.pipe(startWith({})),\n this.currentLanguage$,\n this._overrideOptions$,\n ]).pipe(\n map(([options, language, overrideOptions]) => {\n const formioTranslations = this.translateService.instant('formioTranslations');\n\n const defaultOptions = {\n ...options,\n ...(formioTranslations === 'object' && {\n i18n: {\n [language]: this.stateService.flattenTranslationsObject(formioTranslations),\n },\n }),\n };\n\n return deepmerge(defaultOptions, overrideOptions);\n }),\n distinctUntilChanged((prev, curr) => isEqual(prev, curr)),\n tap(() => this.triggerRebuild.emit())\n );\n\n public readonly editFormModified$ = new BehaviorSubject<boolean>(false);\n\n constructor(\n private readonly translateService: TranslateService,\n private readonly stateService: FormIoStateService,\n private readonly configService: ConfigService,\n private readonly injector: Injector,\n private readonly tagsService: FormIoTagsService,\n private readonly route: ActivatedRoute\n ) {\n this.setOverrideOptions(this.configService.config);\n this.tagsService.reregisterTags(this.injector);\n }\n\n public ngOnInit() {\n this.modifyEditForm();\n }\n\n public onChange(event) {\n this.change.emit(event);\n }\n\n private modifyEditForm = (): void => {\n const params = getCaseManagementRouteParams(this.route);\n const originalEditForm = Components.baseEditForm;\n Components.baseEditForm = function (...extend) {\n const editForm = originalEditForm(...extend);\n modiyEditFormApiKeyInput(editForm);\n addValueResolverSelectorToEditform(editForm, params);\n\n return editForm;\n };\n\n setTimeout(() => this.editFormModified$.next(true));\n };\n\n private setOverrideOptions(config: ValtimoConfig): void {\n if (!config.formioOptions) return;\n\n this._overrideOptions$.next(config.formioOptions);\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div\n class=\"formio-carbon\"\n cdsLayer=\"1\"\n *ngIf=\"(editFormModified$ | async) && form$ | async as formDefinition\"\n>\n <form-builder\n [form]=\"formDefinition\"\n [options]=\"formioOptions$ | async\"\n [rebuild]=\"triggerRebuild\"\n (change)=\"onChange($event)\"\n ></form-builder>\n</div>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {UrlUtils, ValtimoConfig} from '@valtimo/shared';\n\nconst getFormioAppConfig = (config: ValtimoConfig) => {\n const origin = window.location.origin;\n\n return {\n appUrl: origin,\n apiUrl: UrlUtils.formatUrlTrailingSlash(\n `${window.location.origin}${config.valtimoApi.endpointUri}`,\n false\n ),\n icons: 'fontawesome',\n formOnly: false,\n };\n};\n\nexport {getFormioAppConfig};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component} from '@angular/core';\n\n@Component({\n selector: 'valtimo-progress-bar',\n templateUrl: './progress-bar.component.html',\n styleUrls: ['./progress-bar.component.scss'],\n standalone: false,\n})\nexport class ProgressBarComponent {}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div class=\"progress\" style=\"position: relative\">\n <div class=\"progress-bar progress-bar-striped indeterminate\"></div>\n</div>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {AfterViewInit, Component, EventEmitter, Output} from '@angular/core';\nimport {BehaviorSubject} from 'rxjs';\nimport {take} from 'rxjs/operators';\n\n@Component({\n selector: 'valtimo-webcam',\n templateUrl: './webcam.component.html',\n styleUrls: ['./webcam.component.scss'],\n standalone: false,\n})\nexport class WebcamComponent implements AfterViewInit {\n @Output() imageSaved = new EventEmitter<File>();\n\n readonly showing$ = new BehaviorSubject<boolean>(false);\n\n readonly stream$ = new BehaviorSubject<MediaStream>(undefined);\n\n readonly picture$ = new BehaviorSubject<{file: File; uri: string}>(undefined);\n\n ngAfterViewInit(): void {\n const video = this.getVideoElement();\n\n setTimeout(() => {\n this.toggleFade();\n });\n\n if (navigator.mediaDevices.getUserMedia) {\n navigator.mediaDevices.getUserMedia({video: true}).then(stream => {\n video.srcObject = stream;\n this.stream$.next(stream);\n });\n }\n }\n\n captureImage(): boolean {\n const video = this.getVideoElement();\n const canvas: HTMLCanvasElement = document.querySelector('#canvas');\n\n canvas.width = 640;\n canvas.height = 480;\n\n const ctx = canvas.getContext('2d');\n\n ctx.drawImage(video, 0, 0, canvas.width, canvas.height);\n\n const dataURI = canvas.toDataURL('image/jpeg');\n\n this.picture$.next({file: this.dataURItoFile(dataURI), uri: dataURI});\n\n return false;\n }\n\n clearImage(): boolean {\n this.picture$.next(undefined);\n\n return false;\n }\n\n close(emitImage: boolean = true): boolean {\n if (!emitImage) {\n this.clearImage();\n }\n\n this.toggleFade();\n this.emitOnTimeOut();\n\n return false;\n }\n\n private stopStream(): void {\n this.stream$.pipe(take(1)).subscribe(mediaStream => {\n if (mediaStream) {\n mediaStream.getTracks().forEach(stream => stream.stop());\n }\n });\n }\n\n private getVideoElement(): HTMLVideoElement {\n return document.querySelector('#videoElement');\n }\n\n private emitOnTimeOut(): void {\n setTimeout(() => {\n this.stopStream();\n this.imageSaved.emit(this.picture$.getValue()?.file);\n }, 250);\n }\n\n private toggleFade(): void {\n this.showing$.next(!this.showing$.getValue());\n }\n\n private dataURItoFile(dataURI): File {\n const binary = atob(dataURI.split(',')[1]);\n const array = [];\n\n for (let i = 0; i < binary.length; i++) {\n array.push(binary.charCodeAt(i));\n }\n\n const blob = new Blob([new Uint8Array(array)], {type: 'image/jpeg'});\n\n const imgFileName = `IMG_${new Date().toISOString().replace(/[-:.]/g, '')}.jpg`;\n\n return new File([blob], imgFileName);\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div\n (click)=\"close(false)\"\n *ngIf=\"{picture: picture$ | async, stream: stream$ | async} as obs\"\n [ngClass]=\"{showing: showing$ | async}\"\n class=\"webcam-overlay\"\n>\n <div (click)=\"(false); $event.stopPropagation()\" class=\"inner-container\">\n <div class=\"webcam-container modal-content\">\n <div class=\"video-container\">\n <video autoplay=\"true\" id=\"videoElement\"></video>\n <canvas id=\"canvas\"></canvas>\n <img *ngIf=\"obs.picture?.uri\" [src]=\"obs.picture?.uri\" />\n </div>\n <div class=\"button-container\">\n <div class=\"picture-btn\">\n <button\n (click)=\"captureImage()\"\n [disabled]=\"obs.picture?.file || !obs.stream\"\n class=\"btn btn-primary btn-lg\"\n >\n <i class=\"icon mdi mdi-camera mr-1\"></i>{{ 'webcam.takePicture' | translate }}\n </button>\n </div>\n <div class=\"new-btn\">\n <button (click)=\"clearImage()\" [disabled]=\"!obs.picture?.file\" class=\"btn btn-primary\">\n <i class=\"icon mdi mdi-redo mr-1\"></i>{{ 'webcam.redo' | translate }}\n </button>\n </div>\n <div class=\"save-btn\">\n <button (click)=\"close()\" [disabled]=\"!obs.picture?.file\" class=\"btn btn-primary\">\n <i class=\"icon mdi mdi-save mr-1\"></i>{{ 'webcam.save' | translate }}\n </button>\n </div>\n </div>\n </div>\n <div class=\"modal-header\">\n <button (click)=\"close(false)\" aria-label=\"Close\" class=\"close\"><span>×</span></button>\n </div>\n </div>\n</div>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n Inject,\n Input,\n OnDestroy,\n OnInit,\n Output,\n Renderer2,\n ViewChild,\n} from '@angular/core';\nimport {DOCUMENT} from '@angular/common';\nimport {TranslateService} from '@ngx-translate/core';\nimport Dropzone from 'dropzone';\nimport {BehaviorSubject, combineLatest, Observable, Subject, Subscription} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\n@Component({\n selector: 'valtimo-dropzone',\n templateUrl: './dropzone.component.html',\n styleUrls: ['./dropzone.component.scss'],\n standalone: false,\n})\nexport class DropzoneComponent implements OnInit, AfterViewInit, OnDestroy {\n @ViewChild('dropzone') dropzoneRef: ElementRef<any>;\n\n @Input() title: string;\n @Input() hideTitle: boolean;\n @Input() subtitle: string;\n @Input() externalError$: BehaviorSubject<string> = new BehaviorSubject<string>('');\n @Input() maxFileSize = 5;\n @Input() showMaxFileSize = true;\n @Input() acceptedFiles = '.json';\n @Input() clear$: Subject<any> = new Subject();\n @Input() disabled: boolean;\n @Input() hideFilePreview: boolean;\n @Input() uploading: boolean;\n @Input() camera = false;\n @Input() maxFiles!: number;\n\n @Output() fileSelected: EventEmitter<File> = new EventEmitter();\n readonly file$ = new BehaviorSubject<File>(undefined);\n readonly showingCamera$ = new BehaviorSubject<boolean>(false);\n private clearSubscription: Subscription;\n private dropzone: Dropzone;\n private readonly error$ = new BehaviorSubject<string>('');\n\n private readonly errorMessagesStrings: {[key: string]: string} = {\n tooBig: 'too big',\n wrongType: 'this type',\n };\n\n readonly errorMessage$: Observable<string> = combineLatest([\n this.error$,\n this.translateService.stream('dropzone.error.generic'),\n this.translateService.stream('dropzone.error.tooBig'),\n this.translateService.stream('dropzone.error.wrongType'),\n ]).pipe(\n map(([dropzoneError, generic, tooBig, wrongType]) => {\n const strings = this.errorMessagesStrings;\n\n if (dropzoneError) {\n if (dropzoneError.includes(strings.tooBig)) {\n return tooBig;\n } else if (dropzoneError.includes(strings.wrongType)) {\n return wrongType;\n }\n\n return generic;\n }\n\n return '';\n })\n );\n\n constructor(\n private readonly translateService: TranslateService,\n private readonly renderer: Renderer2,\n @Inject(DOCUMENT) private readonly document: Document\n ) {}\n\n ngOnInit(): void {\n this.clearSubscription = this.clear$.subscribe(() => {\n this.clearFile();\n this.clearError();\n });\n }\n\n ngAfterViewInit() {\n this.initDropzone();\n }\n\n ngOnDestroy(): void {\n this.clearSubscription.unsubscribe();\n this.destroyHiddenInputs();\n }\n\n showCamera(): void {\n this.showingCamera$.next(true);\n }\n\n webcamImageSaved(image: File): void {\n if (image) {\n this.setFile(image);\n }\n\n this.showingCamera$.next(false);\n }\n\n private initDropzone(): void {\n this.dropzone = new Dropzone(this.dropzoneRef.nativeElement, {\n url: '/',\n maxFilesize: this.maxFileSize,\n clickable: this.dropzoneRef.nativeElement,\n autoProcessQueue: false,\n createImageThumbnails: false,\n acceptedFiles: this.acceptedFiles,\n previewTemplate: `<p style='display:none'></p>`,\n ...(this.maxFiles && {maxFiles: this.maxFiles}),\n accept: file => {\n this.dropzone.removeAllFiles();\n this.setFile(file);\n },\n });\n\n this.setDropzoneEvents();\n }\n\n private setDropzoneEvents(): void {\n this.dropzone.on('error', (file, message) => {\n this.clearFile();\n this.error$.next(message.toString());\n });\n }\n\n private clearFile(): void {\n this.file$.next(undefined);\n }\n\n private clearError(): void {\n this.error$.next('');\n }\n\n private setFile(file: File): void {\n this.file$.next(file);\n this.clearError();\n this.fileSelected.emit(file);\n }\n\n private destroyHiddenInputs(): void {\n const hiddenElements = this.document.getElementsByClassName('dz-hidden-input');\n\n Array.from(hiddenElements).forEach(element => {\n element.remove();\n });\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<form #dropzone [ngClass]=\"{disabled: disabled || uploading}\" class=\"dropzone dz-clickable\">\n <div class=\"dz-message\">\n <div class=\"icon large-icon\"><span class=\"mdi mdi-cloud-upload\"></span></div>\n <ng-container *ngTemplateOutlet=\"body\"></ng-container>\n <ng-container *ngIf=\"uploading\">\n <ng-container *ngTemplateOutlet=\"progressBar\"></ng-container>\n </ng-container>\n <div class=\"dropzone-mobile-trigger needsclick\"></div>\n </div>\n <button\n (click)=\"showCamera()\"\n *ngIf=\"camera\"\n type=\"button\"\n class=\"btn btn-primary px-3 webcam-button\"\n >\n <i class=\"icon mdi mdi-camera\" aria-hidden=\"true\"></i>\n </button>\n <ng-container *ngIf=\"showingCamera$ | async\">\n <ng-container *ngTemplateOutlet=\"webcam\"></ng-container>\n </ng-container>\n</form>\n\n<ng-template #body>\n <h2 *ngIf=\"!hideTitle\" class=\"mb-4 mt-2\">{{ title || ('dropzone.drop' | translate) }}</h2>\n <span *ngIf=\"subtitle\" class=\"note mb-3\">{{ subtitle }}</span>\n <span *ngIf=\"showMaxFileSize\" class=\"note mb-3 small-font\"\n >{{ 'dropzone.maxFileSize' | translate }}<b>{{ maxFileSize }}mb</b></span\n >\n <ng-container *ngTemplateOutlet=\"preview\"></ng-container>\n</ng-template>\n\n<ng-template #preview>\n <ng-container\n *ngIf=\"{\n errorMessage: errorMessage$ | async,\n externalError: externalError$ | async,\n file: file$ | async,\n } as obs\"\n >\n <ng-container *ngIf=\"obs.externalError || obs.errorMessage\">\n <div class=\"alert alert-danger mt-2 mb-0\">\n <div class=\"message\">\n {{ obs.externalError || obs.errorMessage }}\n </div>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"!hideFilePreview && obs.file && !obs.externalError && !obs.errorMessage\">\n <div class=\"file\">\n <i class=\"icon mdi mdi-file-text mr-2\"></i>\n <span class=\"note\">{{ obs.file.name }}</span>\n <span class=\"note file-size\">- {{ obs.file.size | filesize: 2 }}</span>\n </div>\n </ng-container>\n </ng-container>\n</ng-template>\n\n<ng-template #progressBar>\n <div class=\"progress-bar-container\">\n <valtimo-progress-bar></valtimo-progress-bar>\n </div>\n</ng-template>\n\n<ng-template #webcam>\n <valtimo-webcam (imageSaved)=\"webcamImageSaved($event)\"></valtimo-webcam>\n</ng-template>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, EventEmitter, Input, Output} from '@angular/core';\nimport {FormioCustomComponent} from '../../../../modules';\nimport {BehaviorSubject} from 'rxjs';\nimport {DownloadService, ResourceDto, ResourceFile, UploadProviderService} from '@valtimo/resource';\nimport {FormIoStateService} from '../../services/form-io-state.service';\nimport {take} from 'rxjs/operators';\nimport {FormIoDomService} from '../../services/form-io-dom.service';\n\n@Component({\n selector: 'valtimo-form-io-uploader',\n templateUrl: './form-io-uploader.component.html',\n styleUrls: ['./form-io-uploader.component.scss'],\n standalone: false,\n})\nexport class FormIoUploaderComponent implements FormioCustomComponent<Array<ResourceFile>> {\n @Input() disabled: boolean;\n @Input() title: string;\n @Input() hideTitle: boolean;\n @Input() subtitle: string;\n @Input() maxFileSize: number;\n @Input() hideMaxFileSize: boolean;\n @Input() camera: boolean;\n @Output() valueChange = new EventEmitter<Array<ResourceFile>>();\n\n readonly uploading$ = new BehaviorSubject<boolean>(false);\n\n constructor(\n private readonly uploadProviderService: UploadProviderService,\n private readonly stateService: FormIoStateService,\n private readonly domService: FormIoDomService,\n private readonly downloadService: DownloadService\n ) {}\n\n _value: Array<ResourceFile> = [];\n\n public get value(): Array<ResourceFile> {\n return this._value;\n }\n\n @Input()\n public set value(value: Array<ResourceFile>) {\n if (Array.isArray(value)) {\n this._value = value;\n }\n }\n\n downloadFile(resourceFile: ResourceFile) {\n this.uploadProviderService\n .getResource(resourceFile.data.resourceId)\n .subscribe((resource: ResourceDto) => {\n this.downloadService.downloadFile(resource.url, resource.resource.name);\n });\n }\n\n fileSelected(file: File) {\n this.domService.toggleSubmitButton(true);\n this.uploading$.next(true);\n this.stateService.documentDefinitionName$.pipe(take(1)).subscribe(name => {\n this.uploadProviderService.uploadFile(file, name).subscribe(result => {\n this.domService.toggleSubmitButton(false);\n this.uploading$.next(false);\n this._value.push(result);\n this.valueChange.emit(this._value);\n });\n });\n }\n\n deleteFile(resourceId: string): void {\n this.domService.toggleSubmitButton(true);\n this._value = this._value.filter((file: ResourceFile) =>\n file?.data ? file?.data?.resourceId !== resourceId : true\n );\n this.valueChange.emit(this._value);\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<valtimo-dropzone\n (fileSelected)=\"fileSelected($event)\"\n [acceptedFiles]=\"null\"\n [disabled]=\"disabled\"\n [hideFilePreview]=\"true\"\n [hideTitle]=\"hideTitle\"\n [maxFileSize]=\"maxFileSize\"\n [showMaxFileSize]=\"!hideMaxFileSize\"\n [subtitle]=\"subtitle\"\n [title]=\"title\"\n [camera]=\"camera\"\n [uploading]=\"uploading$ | async\"\n></valtimo-dropzone>\n\n<div class=\"file-preview\" *ngFor=\"let resource of _value\">\n <div class=\"file-preview-name\">\n <a href=\"#\" (click)=\"downloadFile(resource)\">\n {{ resource.originalName }}\n </a>\n </div>\n <div class=\"file-preview-size\">\n <span>\n {{ resource.size | filesize }}\n </span>\n </div>\n <div class=\"file-preview-delete\" *ngIf=\"!disabled\">\n <a (click)=\"deleteFile(resource.data.resourceId)\">\n <i class=\"icon mdi mdi-delete\"></i>\n </a>\n </div>\n</div>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {ProgressBarComponent} from './progress-bar.component';\n\n@NgModule({\n declarations: [ProgressBarComponent],\n imports: [CommonModule],\n exports: [ProgressBarComponent],\n})\nexport class ProgressBarModule {}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {WebcamComponent} from './webcam.component';\nimport {TranslateModule} from '@ngx-translate/core';\n\n@NgModule({\n declarations: [WebcamComponent],\n imports: [CommonModule, TranslateModule],\n exports: [WebcamComponent],\n})\nexport class WebcamModule {}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {DropzoneComponent} from './dropzone.component';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {FileSizeModule} from '../file-size/file-size.module';\nimport {ProgressBarModule} from '../progress-bar/progress-bar.module';\nimport {WebcamModule} from '../webcam/webcam.module';\n\n@NgModule({\n declarations: [DropzoneComponent],\n imports: [CommonModule, TranslateModule, FileSizeModule, ProgressBarModule, WebcamModule],\n exports: [DropzoneComponent],\n})\nexport class DropzoneModule {}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, EventEmitter, Input, Output} from '@angular/core';\nimport {FormioCustomComponent} from '../../../../modules';\nimport {KeycloakService} from 'keycloak-angular';\nimport {KeycloakProfile} from 'keycloak-js';\n\n@Component({\n selector: 'valtimo-formio-current-user',\n template: '{{ this.value?.firstName }} {{ this.value?.lastName }}<br />{{ this.value?.email }}',\n styles: [],\n standalone: false,\n})\nexport class FormIoCurrentUserComponent implements FormioCustomComponent<any> {\n @Input() value: any;\n @Input() disabled: boolean;\n @Output() valueChange = new EventEmitter<any>();\n\n constructor(private readonly keycloakService: KeycloakService) {\n this.keycloakService.loadUserProfile().then((profile: KeycloakProfile) => {\n this.value = profile;\n this.valueChange.emit();\n });\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {AbstractControl, ValidatorFn, ValidationErrors} from '@angular/forms';\n\n/**\n * Custom iban validator for angular forms.\n * Checks if the iban is valid.\n * First move the first four chracters from the beginngin to the end of the string.\n * Change the letter to a numeric representation.\n * Calculate the modulo in a parts, because javascript cannot accuratly calculate the modulus for large numbers.\n *\n * @returns Null if the iban is valid or the value is an empty string, else return an object with isIbanValid property.\n */\nexport function ibanValidator(): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n const valueString = String(control.value);\n if (valueString.match(/^$/)) {\n return null;\n }\n const rearranged = valueString.substring(4, valueString.length) + valueString.substring(0, 4);\n const numeric = Array.from(rearranged)\n .map(c => (isNaN(parseInt(c, 10)) ? (c.charCodeAt(0) - 55).toString() : c))\n .join('');\n const isValidIban = Array.from(numeric)\n .map(c => parseInt(c, 10))\n .reduce((remainder, value) => (remainder * 10 + value) % 97, 0);\n return isValidIban === 1 ? null : {isIbanValid: 'IBAN voldoet niet'};\n };\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {AfterViewInit, Component, EventEmitter, Input, OnDestroy, Output} from '@angular/core';\nimport {FormControl, FormGroup, Validators} from '@angular/forms';\nimport {ibanValidator} from './iban.validators';\nimport {Subscription} from 'rxjs';\nimport {FormioCustomComponent} from '../../../../modules';\n\n/**\n * Custom formio component for iban bank accounts.\n */\n@Component({\n selector: 'valtimo-iban',\n templateUrl: './iban.component.html',\n styleUrls: ['./iban.component.scss'],\n standalone: false,\n})\nexport class FormIoIbanComponent implements FormioCustomComponent<any>, AfterViewInit, OnDestroy {\n @Input() public value: string;\n @Input() public disabled = false;\n @Input() public required = false;\n @Output() public valueChange = new EventEmitter<any>();\n public ibanForm = new FormGroup({\n iban: new FormControl(''),\n });\n private readonly _subscriptions = new Subscription();\n\n public ngAfterViewInit(): void {\n setTimeout(() => {\n this.ibanForm.controls.iban.setValue(this.value);\n this.ibanForm.controls.iban.setValidators(\n this.required ? [Validators.required, ibanValidator()] : [ibanValidator()]\n );\n this.ibanForm.controls.iban.updateValueAndValidity();\n\n if (this.disabled) {\n Object.keys(this.ibanForm.controls).forEach(key => {\n this.ibanForm?.get(key)?.disable();\n });\n }\n\n this._subscriptions.add(\n this.ibanForm.valueChanges.subscribe(() => {\n this.onValueChange();\n })\n );\n });\n }\n\n public ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n private onValueChange(): void {\n (this.value as any) = this.ibanForm.valid\n ? this.ibanForm.controls.iban.value\n : [this.ibanForm.value];\n this.valueChange.emit(this.value);\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div class=\"ibanForm-container\" [formGroup]=\"ibanForm\">\n <div class=\"input-group\">\n <input cdsText id=\"iban\" type=\"text\" formControlName=\"iban\" class=\"form-control\" />\n\n <div\n class=\"formio-errors invalid-feedback\"\n *ngIf=\"\n ibanForm.controls.iban.invalid &&\n (ibanForm.controls.iban.touched || !ibanForm.controls.iban.pristine) &&\n ibanForm.controls?.iban?.errors\n \"\n >\n <div class=\"form-text error\">\n {{ 'formioTranslations.formioIbanComponent.errorMessage' | translate }}\n </div>\n </div>\n </div>\n</div>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, Input} from '@angular/core';\nimport {animate, style, transition, trigger} from '@angular/animations';\n\n@Component({\n standalone: false,\n selector: 'v-tooltip',\n styleUrls: ['./tooltip.component.scss'],\n templateUrl: './tooltip.component.html',\n animations: [\n trigger('tooltip', [\n transition(':enter', [style({opacity: 0}), animate(300, style({opacity: 1}))]),\n transition(':leave', [animate(300, style({opacity: 0}))]),\n ]),\n ],\n})\nexport class TooltipComponent {\n @Input() text = '';\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div @tooltip>{{ text }}</div>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {ComponentRef, Directive, ElementRef, HostListener, Input, OnInit} from '@angular/core';\nimport {Overlay, OverlayPositionBuilder, OverlayRef} from '@angular/cdk/overlay';\nimport {ComponentPortal} from '@angular/cdk/portal';\nimport {TooltipComponent} from './tooltip.component';\n\n@Directive({selector: '[vTooltip]', standalone: false})\nexport class TooltipDirective implements OnInit {\n @Input('vTooltip') text = '';\n @Input() onBottom = false;\n @Input() tooltipDisabled = false;\n\n private overlayRef!: OverlayRef;\n\n constructor(\n private overlay: Overlay,\n private overlayPositionBuilder: OverlayPositionBuilder,\n private elementRef: ElementRef\n ) {}\n\n ngOnInit(): void {\n const onBottom = this.onBottom;\n const positionStrategy = this.overlayPositionBuilder\n .flexibleConnectedTo(this.elementRef)\n .withPositions([\n {\n originX: 'center',\n originY: onBottom ? 'bottom' : 'top',\n overlayX: 'center',\n overlayY: onBottom ? 'top' : 'bottom',\n offsetY: onBottom ? 8 : -8,\n },\n ]);\n\n this.overlayRef = this.overlay.create({positionStrategy});\n }\n\n @HostListener('mouseenter')\n show() {\n if (!this.tooltipDisabled && !this.overlayRef.hasAttached()) {\n const tooltipRef: ComponentRef<TooltipComponent> = this.overlayRef.attach(\n new ComponentPortal(TooltipComponent)\n );\n tooltipRef.instance.text = this.text;\n }\n }\n\n @HostListener('mouseleave')\n hide() {\n if (this.overlayRef.hasAttached()) {\n this.overlayRef.detach();\n }\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, Input} from '@angular/core';\n\n@Component({\n selector: 'v-tooltip-icon',\n templateUrl: './tooltip-icon.component.html',\n styleUrls: ['./tooltip-icon.component.scss'],\n standalone: false,\n})\nexport class TooltipIconComponent {\n @Input() tooltip = '';\n @Input() disabled = false;\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<i\n class=\"v-input-label__tooltip mdi mdi-help-circle\"\n [ngClass]=\"{'v-input-label__tooltip--disabled': disabled}\"\n placement=\"right\"\n vTooltip=\"{{ tooltip }}\"\n></i>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, Input} from '@angular/core';\nimport {TranslateService} from '@ngx-translate/core';\nimport {BehaviorSubject, combineLatest, map, Observable} from 'rxjs';\n\n@Component({\n selector: 'v-input-label',\n templateUrl: './input-label.component.html',\n styleUrls: ['./input-label.component.scss'],\n standalone: false,\n})\nexport class InputLabelComponent {\n @Input() public name = '';\n @Input() public tooltip = '';\n @Input() public tooltipTranslationKey = '';\n @Input() public largeMargin = false;\n @Input() public small = false;\n @Input() public noMargin = false;\n\n @Input() public set title(value: string) {\n this._title$.next(value);\n }\n @Input() public set titleTranslationKey(value: string) {\n this._titleTranslationKey$.next(value);\n }\n @Input() public set required(value: boolean) {\n this._required$.next(value);\n }\n @Input() public disabled = false;\n @Input() public carbonTheme = 'g10';\n\n private readonly _title$ = new BehaviorSubject<string>('');\n private readonly _titleTranslationKey$ = new BehaviorSubject<string>('');\n private readonly _required$ = new BehaviorSubject<boolean>(false);\n\n public readonly displayTitle$: Observable<string> = combineLatest([\n this._title$,\n this._titleTranslationKey$,\n this._required$,\n this.translateService.stream('key'),\n ]).pipe(\n map(([title, translationKey, required]) => {\n const displayTitle = translationKey ? this.translateService.instant(translationKey) : title;\n\n return required\n ? `${displayTitle} (${this.translateService.instant('interface.required')})`\n : displayTitle;\n })\n );\n constructor(private readonly translateService: TranslateService) {}\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div\n class=\"v-input-label-container\"\n [ngClass]=\"{\n 'v-input-label-container--large-margin': largeMargin,\n 'v-input-label-container--no-margin': noMargin,\n }\"\n>\n <cds-label [disabled]=\"disabled\">\n <span class=\"label-with-tooltip\">\n {{ displayTitle$ | async }}\n\n <v-tooltip-icon\n *ngIf=\"tooltip || tooltipTranslationKey\"\n [disabled]=\"disabled\"\n [tooltip]=\"tooltipTranslationKey ? (tooltipTranslationKey | translate) : tooltip\"\n ></v-tooltip-icon>\n </span>\n\n <ng-content></ng-content>\n </cds-label>\n</div>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {TooltipDirective} from './tooltip.directive';\nimport {TooltipComponent} from './tooltip.component';\nimport {OverlayModule} from '@angular/cdk/overlay';\n\n@NgModule({\n declarations: [TooltipDirective, TooltipComponent],\n imports: [CommonModule, OverlayModule],\n exports: [TooltipComponent, TooltipDirective],\n})\nexport class TooltipModule {}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {FormsModule} from '@angular/forms';\nimport {TooltipIconComponent} from './tooltip-icon.component';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {TooltipModule} from '../../directives/tooltip/tooltip.module';\n\n@NgModule({\n declarations: [TooltipIconComponent],\n imports: [CommonModule, TranslateModule, FormsModule, TooltipModule],\n exports: [TooltipIconComponent],\n})\nexport class TooltipIconModule {}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {FormsModule} from '@angular/forms';\nimport {InputLabelComponent} from './input-label.component';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {TooltipModule} from '../../directives/tooltip/tooltip.module';\nimport {TooltipIconModule} from '../tooltip-icon/tooltip-icon.module';\nimport {InputModule} from 'carbon-components-angular';\n\n@NgModule({\n declarations: [InputLabelComponent],\n imports: [\n CommonModule,\n TranslateModule,\n FormsModule,\n TooltipModule,\n TooltipIconModule,\n InputModule,\n ],\n exports: [InputLabelComponent],\n})\nexport class InputLabelModule {}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {CommonModule} from '@angular/common';\nimport {\n Component,\n EventEmitter,\n forwardRef,\n HostBinding,\n HostListener,\n Input,\n OnDestroy,\n OnInit,\n Output,\n} from '@angular/core';\nimport {\n AbstractControl,\n ControlValueAccessor,\n FormBuilder,\n FormControl,\n NG_VALUE_ACCESSOR,\n ReactiveFormsModule,\n} from '@angular/forms';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {DocumentService} from '@valtimo/document';\nimport {\n DropdownModule,\n InputModule,\n LayerModule,\n ListItem,\n LoadingModule,\n ToggleModule,\n} from 'carbon-components-angular';\nimport {\n BehaviorSubject,\n combineLatest,\n filter,\n map,\n Observable,\n of,\n startWith,\n Subscription,\n switchMap,\n tap,\n} from 'rxjs';\nimport {distinctUntilChanged, take} from 'rxjs/operators';\nimport {\n ValuePathItem,\n ValuePathType,\n ValuePathSelectorInputMode,\n ValuePathSelectorNotation,\n ValuePathSelectorPrefix,\n} from '../../models';\nimport {ValuePathSelectorService} from '../../services';\nimport {InputLabelModule} from '../input-label/input-label.module';\nimport {getCaseManagementRouteParams} from '@valtimo/shared';\nimport {ActivatedRoute} from '@angular/router';\n\n@Component({\n selector: 'valtimo-value-path-selector',\n templateUrl: './value-path-selector.component.html',\n styleUrls: ['./value-path-selector.component.scss'],\n standalone: true,\n imports: [\n CommonModule,\n DropdownModule,\n LoadingModule,\n ReactiveFormsModule,\n ToggleModule,\n InputModule,\n InputLabelModule,\n InputLabelModule,\n TranslateModule,\n LayerModule,\n ],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n multi: true,\n useExisting: forwardRef(() => ValuePathSelectorComponent),\n },\n ],\n})\nexport class ValuePathSelectorComponent implements OnInit, OnDestroy, ControlValueAccessor {\n @HostBinding('class.value-path-selector--margin-bottom') private _showMargin: boolean = false;\n @HostBinding('class.value-path-selector--margin-bottom-lg') private _showMarginLg: boolean =\n false;\n @HostBinding('class.value-path-selector--margin-bottom-xl') private _showMarginXl: boolean =\n false;\n @HostListener('focusout')\n public onBlur(): void {\n this.onBlurEvent();\n }\n\n public readonly formGroup = this.formBuilder.group({\n selectedPath: new FormControl(''),\n });\n\n public get selectedPath(): AbstractControl<string> {\n return this.formGroup.get('selectedPath');\n }\n\n private _onChangeFunction!: (value: string) => void;\n private _onTouchedFunction!: () => void;\n\n public get _selectedPath$(): Observable<string> {\n return this.selectedPath.valueChanges.pipe(\n startWith(this.selectedPath.value),\n distinctUntilChanged(),\n tap(value => {\n if (this._onChangeFunction) {\n this._onChangeFunction(value);\n }\n })\n );\n }\n\n @Input() public name = '';\n @Input() public appendInline = false;\n @Input() public set margin(value: boolean) {\n this._showMargin = value;\n }\n @Input() public set marginLg(value: boolean) {\n this._showMarginLg = value;\n }\n @Input() public set marginXl(value: boolean) {\n this._showMarginXl = value;\n }\n @Input() public set disabled(value: boolean) {\n this.disabled$.next(!!value);\n\n if (value) {\n this.formGroup.disable();\n } else {\n this.formGroup.enable();\n }\n }\n\n private readonly _params$ = getCaseManagementRouteParams(this.route);\n\n public readonly caseDefinitionKey$ = this._params$.pipe(\n map(params => params?.caseDefinitionKey ?? null)\n );\n\n public readonly caseDefinitionVersionTag$ = this._params$.pipe(\n map(params => params?.caseDefinitionVersionTag ?? null)\n );\n\n @Input() set caseDefinitionKey(value: string | null) {\n if (value) {\n this._caseDefinitionKeySubject$.next(value);\n } else {\n this.caseDefinitionKey$.pipe(take(1)).subscribe(paramValue => {\n if (paramValue) {\n this._caseDefinitionKeySubject$.next(paramValue);\n } else {\n return;\n }\n });\n }\n }\n @Input() set caseDefinitionVersionTag(value: string | null) {\n if (value) {\n this._caseDefinitionVersionTag$.next(value);\n } else {\n this.caseDefinitionVersionTag$.pipe(take(1)).subscribe(paramValue => {\n if (paramValue) {\n this._caseDefinitionVersionTag$.next(paramValue);\n } else {\n return;\n }\n });\n }\n }\n @Input() public set prefixes(value: ValuePathSelectorPrefix[]) {\n this._prefixes$.next(value ?? []);\n }\n @Input() public label = '';\n @Input() public tooltip = '';\n @Input() public required = false;\n @Input() public showCaseDefinitionSelector = false;\n @Input() public notation: ValuePathSelectorNotation = 'dots';\n\n @Input() public set defaultValue(value: string) {\n if (!value) return;\n this.selectedPath.setValue(value);\n if (this.showCaseDefinitionSelector) this._inputMode$.next(ValuePathSelectorInputMode.MANUAL);\n }\n private readonly _type$ = new BehaviorSubject<ValuePathType>(ValuePathType.FIELD);\n @Input() public set type(value: ValuePathType) {\n this._type$.next(value);\n }\n private readonly _parentItem$ = new BehaviorSubject<ValuePathItem | null>(null);\n @Input() public set parentItem(value: ValuePathItem | null) {\n this._parentItem$.next(value);\n }\n @Output() valueChangeEvent: EventEmitter<string> = new EventEmitter();\n @Output() collectionSelected: EventEmitter<ValuePathItem> = new EventEmitter();\n\n private readonly _caseDefinitionKeySubject$ = new BehaviorSubject<string | null>(null);\n private get _caseDefinitionKey$(): Observable<string> {\n return this._caseDefinitionKeySubject$.pipe(filter(value => !!value));\n }\n private readonly _caseDefinitionVersionTag$ = new BehaviorSubject<string | null>(null);\n\n public readonly showToggle$ = this._caseDefinitionKey$.pipe(\n map(caseDefinitionKey => !!caseDefinitionKey)\n );\n\n private readonly _prefixes$ = new BehaviorSubject<ValuePathSelectorPrefix[]>([]);\n\n private readonly _inputMode$ = new BehaviorSubject<ValuePathSelectorInputMode>(\n ValuePathSelectorInputMode.DROPDOWN\n );\n public inputModeIsDropdown$: Observable<boolean> = this._inputMode$.pipe(\n map(mode => {\n return mode === ValuePathSelectorInputMode.DROPDOWN;\n })\n );\n\n public readonly loadingValuePathItems$ = new BehaviorSubject<boolean>(true);\n public readonly disabled$ = new BehaviorSubject<boolean>(false);\n\n private _cachedOptions: (ValuePathItem & {formattedPath: string})[] = [];\n\n public valuePathListItems$: Observable<ListItem[]> = this._parentItem$.pipe(\n tap(() => this.loadingValuePathItems$.next(true)),\n switchMap((parentItem: ValuePathItem | null) =>\n parentItem\n ? of(parentItem.children?.map((child: string) => ({path: child})) ?? [])\n : combineLatest([\n this._caseDefinitionKey$,\n this._prefixes$,\n this._type$,\n this._caseDefinitionVersionTag$,\n this.showToggle$,\n ]).pipe(\n filter(([, , , , showToggle]) => showToggle),\n switchMap(([caseDefinitionKey, prefixes, type, caseDefinitionVersionTag]) =>\n this.valuePathSelectorService.getResolvableKeys(\n prefixes,\n caseDefinitionKey,\n type,\n caseDefinitionVersionTag\n )\n )\n )\n ),\n map((results: ValuePathItem[]) =>\n results\n .map((result: ValuePathItem) => ({\n ...result,\n formattedPath: !this._parentItem$.getValue()\n ? this.getFormattedPath(result.path)\n : result.path,\n }))\n .sort((a, b) => a.formattedPath.localeCompare(b.formattedPath))\n ),\n tap(options => (this._cachedOptions = options)),\n switchMap(options =>\n combineLatest([of(options), this._selectedPath$, this.inputModeIsDropdown$])\n ),\n tap(([options, selectedPath, inputModeIsDropdown]) => {\n const formattedOptions = options.map(option => option.formattedPath);\n if (!formattedOptions.includes(selectedPath) && !!selectedPath && inputModeIsDropdown)\n this._inputMode$.next(ValuePathSelectorInputMode.MANUAL);\n }),\n map(([options, selectedPath]) =>\n options.map(option => {\n const mappedOption = {\n content: option.formattedPath,\n selected: option.formattedPath === selectedPath,\n path: option.path,\n ...(!!option.children && {children: option.children}),\n };\n\n if (mappedOption.selected) this.onPathSelected({item: mappedOption});\n return mappedOption;\n })\n ),\n tap(() => this.loadingValuePathItems$.next(false))\n );\n\n private readonly _subscriptions = new Subscription();\n\n constructor(\n private readonly valuePathSelectorService: ValuePathSelectorService,\n private readonly formBuilder: FormBuilder,\n private readonly documentService: DocumentService,\n private readonly route: ActivatedRoute\n ) {}\n\n public ngOnInit(): void {\n this._subscriptions.add(\n this._selectedPath$.subscribe(path => this.valueChangeEvent.emit(path))\n );\n }\n\n public ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n public writeValue(value: string) {\n this.selectedPath.setValue(value);\n }\n\n public registerOnChange(fn: (value: string) => void): void {\n this._onChangeFunction = fn;\n }\n\n public registerOnTouched(fn: () => void): void {\n this._onTouchedFunction = fn;\n }\n\n public onBlurEvent(): void {\n if (!this._onTouchedFunction) return;\n\n this._onTouchedFunction();\n }\n\n public setDisabledState(isDisabled: boolean): void {\n if (isDisabled) {\n this.formGroup.disable();\n } else {\n this.formGroup.enable();\n }\n }\n\n public onPathSelected(event: {item: {content: string} & ValuePathItem}): void {\n const selectedPath = event?.item?.content;\n if (!selectedPath) return;\n\n if (this.collectionSelected.observed) this.collectionSelected.emit(event.item);\n\n this.selectedPath.setValue(selectedPath);\n }\n\n public onCaseDefinitionSelected(event: {item: {id: string}}): void {\n const selectedDef = event?.item?.id;\n if (!selectedDef) return;\n this.selectedPath.setValue('');\n this._caseDefinitionKeySubject$.next(selectedDef);\n }\n\n public onInputModeChange(toDropdownMode: boolean): void {\n const currentPathValue = this.selectedPath.value;\n\n if (\n toDropdownMode &&\n !this._cachedOptions.map(option => option.formattedPath).includes(currentPathValue)\n ) {\n this.selectedPath.setValue('');\n }\n\n this._inputMode$.next(\n toDropdownMode ? ValuePathSelectorInputMode.DROPDOWN : ValuePathSelectorInputMode.MANUAL\n );\n }\n\n private getFormattedPath(unformattedPath: string): string {\n const splitPathPrefix = unformattedPath.split(':');\n const prefix = splitPathPrefix[0];\n const remainingPath = splitPathPrefix[1];\n const requiredNotation = this.notation;\n const pathNotation: ValuePathSelectorNotation = remainingPath.includes('/')\n ? 'slashes'\n : 'dots';\n const splitPath = remainingPath\n .split(pathNotation === 'slashes' ? '/' : '.')\n .filter(pathPart => pathPart !== '/' && pathPart !== '.')\n .filter(pathPart => !!pathPart)\n .map(pathPart => pathPart.replace('/', '').replace('.', ''));\n const formattedPath = splitPath.reduce(\n (acc, pathPart) => `${acc}${requiredNotation === 'slashes' ? '/' : '.'}${pathPart}`,\n ''\n );\n\n return `${prefix}:${requiredNotation === 'dots' ? formattedPath.substring(1) : formattedPath}`;\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n inputModeIsDropdown: inputModeIsDropdown$ | async,\n valuePathListItems: valuePathListItems$ | async,\n loadingValuePathItems: loadingValuePathItems$ | async,\n disabled: disabled$ | async,\n showToggle: showToggle$ | async,\n } as obs\"\n>\n <v-input-label *ngIf=\"!!label\" [required]=\"required\" [title]=\"label\" [tooltip]=\"tooltip\">\n </v-input-label>\n\n <form\n [formGroup]=\"formGroup\"\n [ngClass]=\"{\n 'value-path-selector__form--case-def-input':\n showCaseDefinitionSelector && obs.inputModeIsDropdown && !obs.showToggle,\n }\"\n class=\"value-path-selector__form\"\n >\n <cds-toggle\n *ngIf=\"obs.showToggle\"\n data-testid=\"value-path-selector-toggle\"\n size=\"sm\"\n [disabled]=\"obs.disabled\"\n [onText]=\"'valuePathSelector.dropdown' | translate\"\n [offText]=\"'valuePathSelector.manual' | translate\"\n [checked]=\"obs.inputModeIsDropdown\"\n (checkedChange)=\"onInputModeChange($event)\"\n ></cds-toggle>\n\n @if (obs.inputModeIsDropdown && obs.showToggle) {\n <cds-dropdown\n data-testid=\"value-path-selector-valuePath\"\n [appendInline]=\"appendInline\"\n [disabled]=\"\n obs.disabled ||\n obs.loadingValuePathItems ||\n !obs.valuePathListItems ||\n (obs.valuePathListItems || []).length === 0\n \"\n (selected)=\"onPathSelected($event)\"\n [placeholder]=\"'valuePathSelector.placeholder' | translate\"\n >\n <cds-dropdown-list [items]=\"obs.valuePathListItems || []\"></cds-dropdown-list>\n </cds-dropdown>\n } @else {\n <input\n data-testid=\"value-path-selector-input\"\n cdsText\n type=\"text\"\n formControlName=\"selectedPath\"\n />\n }\n </form>\n</ng-container>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, EventEmitter, Input, Output} from '@angular/core';\nimport {FormioCustomComponent} from '../../../../modules';\nimport {CommonModule} from '@angular/common';\nimport {ValuePathSelectorComponent} from '../../../value-path-selector/value-path-selector.component';\nimport {ValuePathSelectorPrefix} from '../../../../models';\nimport {BehaviorSubject, map} from 'rxjs';\nimport {formioParams} from '../form-io-builder/form-io-builder.utils';\n\n@Component({\n selector: 'valtimo-formio-value-resolver-selector',\n templateUrl: './formio-value-resolver-selector.component.html',\n standalone: true,\n imports: [CommonModule, ValuePathSelectorComponent],\n})\nexport class FormioValueResolverSelectorComponent implements FormioCustomComponent<string> {\n @Input() public readonly disabled: boolean;\n @Output() public readonly valueChange = new EventEmitter<string>();\n\n public readonly defaultValue$ = new BehaviorSubject<string>('');\n public readonly caseDefinitionKey$ = formioParams.pipe(map(params => params?.caseDefinitionKey));\n public readonly caseDefinitionVersionTag$ = formioParams.pipe(\n map(params => params?.caseDefinitionVersionTag)\n );\n private _value!: string;\n @Input() public set value(value: string) {\n if (!value) return;\n this.defaultValue$.next(value);\n this._value = value;\n }\n\n public get value(): string {\n return this._value;\n }\n\n public readonly ValuePathSelectorPrefix = ValuePathSelectorPrefix;\n\n public onValueChange(value: string): void {\n if (value !== this._value) {\n this._value = value;\n this.valueChange.emit(value);\n }\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<valtimo-value-path-selector\n [caseDefinitionKey]=\"caseDefinitionKey$ | async\"\n [caseDefinitionVersionTag]=\"caseDefinitionVersionTag$ | async\"\n [appendInline]=\"true\"\n [defaultValue]=\"defaultValue$ | async\"\n [showCaseDefinitionSelector]=\"true\"\n notation=\"slashes\"\n [prefixes]=\"[ValuePathSelectorPrefix.DOC]\"\n (valueChangeEvent)=\"onValueChange($event)\"\n></valtimo-value-path-selector>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, EventEmitter, Input, Output} from '@angular/core';\nimport {FormioCustomComponent} from '../../../../modules';\n\n@Component({\n selector: 'valtimo-dummy',\n template: '',\n standalone: false,\n})\nexport class FormioDummyComponent implements FormioCustomComponent<any> {\n @Input() public value: string;\n @Input() public disabled = false;\n @Input() public required = false;\n @Output() public valueChange = new EventEmitter<any>();\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges,\n ViewChild,\n} from '@angular/core';\nimport {FormControl, FormGroup} from '@angular/forms';\nimport {FormioCustomComponent} from '../../../../modules';\nimport Currency from '@tadashi/currency';\nimport {Subscription} from 'rxjs';\n\n/**\n * Custom formio component for currency number.\n */\n@Component({\n selector: 'valtimo-currency',\n templateUrl: './currency.component.html',\n standalone: false,\n})\nexport class FormIoCurrencyComponent\n implements FormioCustomComponent<number>, OnInit, AfterViewInit, OnChanges, OnDestroy\n{\n @ViewChild('currencyElement') currencyElement!: ElementRef<HTMLInputElement>;\n\n public readonly currencyForm = new FormGroup({\n currencyValue: new FormControl<string>(''),\n });\n\n private _value: number | null = null;\n\n public get value(): number | null {\n return this._value;\n }\n\n @Input() public set value(value: number) {\n this._value = value;\n this.currencyForm.setValue({\n currencyValue: Currency.masking(value, this.maskOpts),\n });\n }\n\n @Output() public readonly valueChange = new EventEmitter<number>();\n\n @Input() public set disabled(value: boolean) {\n if (value) {\n this.currencyForm.disable();\n } else {\n this.currencyForm.enable();\n }\n }\n\n @Input() public readonly currencyLocale: string;\n @Input() public readonly currencyCurrency: string;\n @Input() public readonly allowEmptyValue: boolean;\n\n private _currencyInstance!: Currency;\n\n private readonly _subscriptions = new Subscription();\n\n private get maskOpts(): any {\n return {\n empty: this.allowEmptyValue || false,\n locales: this.currencyLocale || 'nl-NL',\n digits: 2,\n options: {\n style: 'currency',\n currency: this.currencyCurrency || 'EUR',\n },\n };\n }\n\n public ngOnInit(): void {\n this._subscriptions.add(\n this.currencyForm.valueChanges.subscribe(() => {\n const unmasked = this._currencyInstance.getUnmasked(this.currencyForm.value.currencyValue);\n\n if (unmasked === 0 && this.allowEmptyValue) {\n this._value = null;\n this.valueChange.emit(null);\n } else {\n this._value = unmasked;\n this.valueChange.emit(unmasked);\n }\n })\n );\n }\n\n public ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n public ngAfterViewInit(): void {\n this._currencyInstance = new Currency(this.currencyElement.nativeElement, {\n maskOpts: this.maskOpts,\n });\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (changes.currencyLocale || changes.currencyCurrency || changes.allowEmptyValue) {\n if (typeof this.currencyLocale === 'string') {\n this._currencyInstance.opts.maskOpts.locales = this.currencyLocale;\n }\n\n if (typeof this.currencyCurrency === 'string') {\n this._currencyInstance.opts.maskOpts.options.currency = this.currencyCurrency;\n }\n\n if (typeof this.allowEmptyValue === 'boolean') {\n this._currencyInstance.opts.maskOpts.empty = this.allowEmptyValue;\n }\n\n this.currencyForm.setValue({\n currencyValue:\n typeof this._value === 'number'\n ? Currency.masking(this._value, this._currencyInstance.opts.maskOpts)\n : '',\n });\n }\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div class=\"currencyForm-container\" [formGroup]=\"currencyForm\">\n <div class=\"input-group\">\n <input #currencyElement id=\"currency\" formControlName=\"currencyValue\" class=\"form-control\" />\n </div>\n</div>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {FormioComponent} from './components/form-io/form-io.component';\nimport {FormioBuilderComponent} from './components/form-io-builder/form-io-builder.component';\nimport {FormioAppConfig, FormioModule} from '@formio/angular';\nimport {getFormioAppConfig} from './formio-config';\nimport {FormIoUploaderComponent} from './components/form-io-uploader/form-io-uploader.component';\nimport {DropzoneModule} from '../dropzone/dropzone.module';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {DocumentModule} from '@valtimo/document';\nimport {FormIoDomService} from './services/form-io-dom.service';\nimport {FileSizeModule} from '../file-size/file-size.module';\nimport {ResourceModule} from '@valtimo/resource';\nimport {RouterModule} from '@angular/router';\nimport {FormIoCurrentUserComponent} from './components/form-io-current-user/form-io-current-user.component';\nimport {ConfigService} from '@valtimo/shared';\nimport {FormIoIbanComponent} from './components/form-io-iban/iban.component';\nimport {ReactiveFormsModule} from '@angular/forms';\nimport {FormioValueResolverSelectorComponent} from './components/formio-value-resolver-selector/formio-value-resolver-selector.component';\nimport {FormioDummyComponent} from './components/form-io-dummy/dummy.component';\nimport {LayerModule} from 'carbon-components-angular';\nimport {FormIoCurrencyComponent} from './components/form-io-currency/currency.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FormioModule,\n DropzoneModule,\n TranslateModule,\n DocumentModule,\n FileSizeModule,\n ResourceModule,\n RouterModule,\n ReactiveFormsModule,\n FormioValueResolverSelectorComponent,\n LayerModule,\n ],\n declarations: [\n FormioComponent,\n FormioBuilderComponent,\n FormIoUploaderComponent,\n FormIoCurrentUserComponent,\n FormIoIbanComponent,\n FormIoCurrencyComponent,\n FormioDummyComponent,\n ],\n exports: [\n FormioComponent,\n FormioBuilderComponent,\n FormIoUploaderComponent,\n FormIoCurrentUserComponent,\n FormIoIbanComponent,\n FormIoCurrencyComponent,\n FormioDummyComponent,\n ],\n providers: [\n FormIoDomService,\n {\n provide: FormioAppConfig,\n deps: [ConfigService],\n useFactory: (configService: ConfigService) => getFormioAppConfig(configService.config),\n },\n ],\n})\nexport class FormIoModule {}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n AfterViewInit,\n Component,\n ElementRef,\n Input,\n OnDestroy,\n OnInit,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport {ValtimoModalService} from '../../services/valtimo-modal.service';\nimport {BehaviorSubject, Subscription} from 'rxjs';\n\n// eslint-disable-next-line no-var\ndeclare var $;\n\n@Component({\n selector: 'valtimo-modal',\n templateUrl: './modal.component.html',\n styleUrls: ['./modal.component.scss'],\n standalone: false,\n})\nexport class ModalComponent implements AfterViewInit, OnInit, OnDestroy {\n @Input() elementId: string;\n @Input() title = '';\n @Input() subtitle = '';\n @Input() templateBelowSubtitle: TemplateRef<any>;\n @Input() showFooter = false;\n\n @ViewChild('scrollModal') scrollModal: ElementRef<HTMLDivElement>;\n\n readonly modalShowing$ = new BehaviorSubject<boolean>(false);\n\n private scrollSubscription!: Subscription;\n\n private observer!: MutationObserver;\n\n constructor(private readonly modalService: ValtimoModalService) {}\n\n ngOnInit(): void {\n this.openScrollSubscription();\n }\n\n ngAfterViewInit() {\n $(`#${this.elementId}`).modal({show: false});\n this.watchForClassChanges();\n }\n\n show() {\n $(`#${this.elementId}`).modal('show');\n }\n\n hide() {\n $(`#${this.elementId}`).modal('hide');\n }\n\n ngOnDestroy(): void {\n this.scrollSubscription?.unsubscribe();\n this.observer?.disconnect();\n }\n\n private openScrollSubscription(): void {\n this.scrollSubscription = this.modalService.scrollToTop$.subscribe(() => {\n const element = this.scrollModal.nativeElement;\n\n if (element) element.scrollTo(0, 0);\n });\n }\n\n private watchForClassChanges(): void {\n this.observer = new MutationObserver(mutations => {\n mutations?.forEach(mutation => {\n if (mutation?.attributeName === 'class') {\n const modalShowing = (mutation?.target as any)?.classList?.contains('show');\n this.modalShowing$.next(modalShowing);\n }\n });\n });\n const config = {attributes: true, childList: false, characterData: false};\n this.observer.observe(this.scrollModal.nativeElement, config);\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div class=\"modal fade custom-width\" [id]=\"elementId\" role=\"dialog\" aria-modal=\"true\" #scrollModal>\n <div class=\"modal-dialog modal-lg\">\n <div class=\"modal-content\">\n <div class=\"modal-header modal-header-colored colored-header-grey\">\n <div class=\"modal-title\">\n <h4 class=\"title-text mb-2\">{{ title }}</h4>\n <h5 class=\"subtitle-text\">{{ subtitle }}</h5>\n <ng-container *ngIf=\"templateBelowSubtitle\">\n <ng-container *ngTemplateOutlet=\"templateBelowSubtitle\"></ng-container>\n </ng-container>\n </div>\n <div class=\"text-right\">\n <button type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-label=\"Close\">\n <span aria-hidden=\"true\">&times;</span>\n </button>\n </div>\n </div>\n <div class=\"modal-body\">\n <ng-content select=\"[body]\"></ng-content>\n </div>\n <div class=\"modal-footer\" *ngIf=\"showFooter\">\n <ng-content select=\"[footer]\"></ng-content>\n </div>\n </div>\n </div>\n</div>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {ModalComponent} from './modal.component';\n\n@NgModule({\n declarations: [ModalComponent],\n imports: [CommonModule],\n exports: [ModalComponent],\n})\nexport class ModalModule {}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, Input} from '@angular/core';\n\n@Component({\n selector: 'valtimo-spinner',\n templateUrl: './spinner.component.html',\n styleUrls: ['./spinner.component.scss'],\n standalone: false,\n})\nexport class SpinnerComponent {\n @Input() useBootstrapSpinner = true;\n @Input() name: string;\n @Input() type = 'ball-clip-rotate';\n @Input() size = 'medium';\n @Input() color = 'currentColor';\n @Input() bdColor = 'rgba(0,0,0,0)';\n @Input() fullScreen = false;\n @Input() noMarginTop = false;\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container *ngIf=\"useBootstrapSpinner; else ngxSpinner\">\n <div class=\"spinner-container\" [ngClass]=\"{'no-margin-top': noMarginTop}\">\n <div class=\"spinner-border text-primary\" role=\"status\">\n <span class=\"sr-only\">{{ 'interface.loading' | translate }}</span>\n </div>\n </div>\n</ng-container>\n\n<ng-template #ngxSpinner>\n <ngx-spinner\n [bdColor]=\"bdColor\"\n [fullScreen]=\"fullScreen\"\n [name]=\"name\"\n [color]=\"color\"\n [size]=\"size\"\n [type]=\"type\"\n >\n </ngx-spinner>\n</ng-template>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {SpinnerComponent} from './spinner.component';\nimport {NgxSpinnerModule} from 'ngx-spinner';\nimport {TranslateModule} from '@ngx-translate/core';\n\n@NgModule({\n declarations: [SpinnerComponent],\n exports: [SpinnerComponent],\n imports: [CommonModule, NgxSpinnerModule, TranslateModule],\n})\nexport class SpinnerModule {}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n Component,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n QueryList,\n SimpleChanges,\n ViewChildren,\n} from '@angular/core';\nimport {FormControl} from '@angular/forms';\nimport {DropdownButtonStyle, DropdownItem} from '../../models';\nimport {BehaviorSubject, combineLatest, fromEvent, Subscription} from 'rxjs';\nimport {debounceTime, take} from 'rxjs/operators';\n\n@Component({\n selector: 'valtimo-searchable-dropdown',\n templateUrl: './searchable-dropdown.component.html',\n styleUrls: ['./searchable-dropdown.component.scss'],\n standalone: false,\n})\nexport class SearchableDropdownComponent implements OnInit, OnDestroy, OnChanges {\n @Input() style: DropdownButtonStyle;\n @Input() items: Array<DropdownItem>;\n @Input() buttonText: string;\n @Input() searchText: string;\n @Input() noResultsText: string;\n @Input() disabled: boolean;\n @Input() width = 250;\n\n @Output() itemSelected = new EventEmitter();\n\n @ViewChildren('button') buttons: QueryList<ElementRef>;\n\n private readonly searchId = 'search';\n\n readonly searchTerm = new FormControl('');\n\n readonly focusedItemId$ = new BehaviorSubject<string>(this.searchId);\n\n readonly open$ = new BehaviorSubject<boolean>(false);\n\n readonly filteredItems$ = new BehaviorSubject<Array<DropdownItem>>(undefined);\n\n private wasInside = false;\n\n private keySubscription: Subscription;\n\n private searchSubscription: Subscription;\n\n private readonly mouseOnList$ = new BehaviorSubject<boolean>(false);\n\n @HostListener('click')\n clickInside() {\n this.wasInside = true;\n }\n\n @HostListener('document:click')\n clickout() {\n if (!this.wasInside) {\n this.closeDropdown();\n }\n this.wasInside = false;\n }\n\n ngOnInit(): void {\n this.openKeysSubscription();\n this.openSearchSubscription();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n const itemChanges = changes.items;\n const currenItems = itemChanges.currentValue;\n if (itemChanges && !itemChanges.previousValue && currenItems) {\n this.filteredItems$.next(currenItems);\n }\n }\n\n ngOnDestroy(): void {\n this.keySubscription.unsubscribe();\n this.searchSubscription.unsubscribe();\n }\n\n openDropdown(): void {\n this.open$.next(true);\n }\n\n hoverOverButton(id: string): void {\n this.focusedItemId$.next(id);\n }\n\n mouseEnterList(): void {\n this.mouseOnList$.next(true);\n }\n\n mouseLeaveList(): void {\n this.mouseOnList$.next(false);\n }\n\n resetFocus(): void {\n this.focusedItemId$.next(this.searchId);\n }\n\n submit(id: string): void {\n this.itemSelected.emit(id);\n }\n\n private closeDropdown(): void {\n this.searchTerm.setValue('');\n this.resetFocus();\n this.open$.next(false);\n }\n\n private openKeysSubscription(): void {\n this.keySubscription = fromEvent(document, 'keyup')\n .pipe(debounceTime(50))\n .subscribe((event: KeyboardEvent) => {\n combineLatest([this.mouseOnList$, this.filteredItems$, this.focusedItemId$])\n .pipe(take(1))\n .subscribe(([mouseOnList, items, focusedId]) => {\n const length = items.length;\n const focusedIndex = items.findIndex(item => item.id === focusedId);\n const code = event.code;\n const shiftKey = event.shiftKey;\n const down = 'ArrowDown';\n const tab = 'Tab';\n const up = 'ArrowUp';\n const enter = 'Enter';\n const escape = 'Escape';\n\n // close dropdown on pressing escape\n if (code === escape) {\n this.closeDropdown();\n }\n\n // submit item when focus is on an item in the list and enter is pressed\n if (code === enter && focusedId !== this.searchId) {\n this.submit(focusedId);\n }\n\n // only handle tab or arrow keypresses when items are shown and the mouse is not on the list\n if (length > 0 && !mouseOnList) {\n // handle moving down in the list with arrow down or tab\n if (code === down || (code === tab && !shiftKey)) {\n // move focus to first item in the list when focus is on search box\n if (focusedId === this.searchId) {\n this.focusedItemId$.next(items[0].id);\n this.scrollButtonIntoView(focusedId);\n // move focus to next item in the list if focus is not on last item\n } else if (focusedIndex + 1 < length) {\n this.focusedItemId$.next(items[focusedIndex + 1].id);\n this.scrollButtonIntoView(focusedId);\n }\n // handle moving up in the list with up arrow up or shift+tab\n } else if (\n (code === up || (code === tab && shiftKey)) &&\n focusedId !== this.searchId\n ) {\n // move to previous item if focus is not on the first item in the list\n if (focusedIndex > 0) {\n this.focusedItemId$.next(items[focusedIndex - 1].id);\n this.scrollButtonIntoView(focusedId);\n // move focus to search box if focus is on first item in the list\n } else {\n this.resetFocus();\n }\n }\n }\n });\n });\n }\n\n private openSearchSubscription(): void {\n this.searchSubscription = this.searchTerm.valueChanges.subscribe(searchTerm => {\n this.focusedItemId$.pipe(take(1)).subscribe(focusedItemId => {\n if (!searchTerm) {\n this.filteredItems$.next(this.items);\n } else {\n const filteredItems = this.items.filter(item =>\n item.text.toUpperCase().includes(searchTerm.toUpperCase())\n );\n\n this.filteredItems$.next(filteredItems);\n\n // move focus to search box if filtered list length is 0 or previously focused item is not in filtered list anymore\n if (\n filteredItems.length === 0 ||\n !filteredItems.some(item => item.id === focusedItemId)\n ) {\n this.resetFocus();\n }\n }\n\n // move scrolling button into view to end of queue, so that DOM can be updated first\n setTimeout(() => {\n this.scrollButtonIntoView(focusedItemId);\n });\n });\n });\n }\n\n private scrollButtonIntoView(id: string): void {\n this.filteredItems$.pipe(take(1)).subscribe(items => {\n const focusItemIndex = items.findIndex(item => item.id === id);\n const focusedButton = this.buttons.toArray()[focusItemIndex];\n\n if (focusedButton) {\n focusedButton.nativeElement.scrollIntoView({behavior: 'smooth', block: 'center'});\n }\n });\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container *ngIf=\"buttonText && items\">\n <ng-container [ngTemplateOutlet]=\"(open$ | async) ? opened : closed\"> </ng-container>\n</ng-container>\n\n<ng-template #closed>\n <ng-container *ngIf=\"style === 'button' || !style\">\n <button\n class=\"btn btn-primary btn-sm searchable-dropdown__size\"\n (click)=\"openDropdown()\"\n [style.width.px]=\"width\"\n >\n {{ buttonText }}\n </button>\n </ng-container>\n <ng-container *ngIf=\"style === 'underlinedText'\">\n <h5\n class=\"searchable-dropdown__underline-button\"\n (click)=\"openDropdown()\"\n [style.width.px]=\"width\"\n >\n <b>\n {{ buttonText }}\n </b>\n </h5>\n </ng-container>\n</ng-template>\n\n<ng-template #opened>\n <div class=\"searchable-dropdown__container\" [style.width.px]=\"width\">\n <div class=\"searchable-dropdown__size searchable-dropdown__search\" [style.width.px]=\"width\">\n <input\n #search\n [ngClass]=\"{disabled: disabled}\"\n [placeholder]=\"searchText\"\n [formControl]=\"searchTerm\"\n />\n {{ search.focus() }}\n </div>\n <div\n class=\"searchable-dropdown__list\"\n (mouseenter)=\"mouseEnterList()\"\n (mouseleave)=\"mouseLeaveList()\"\n >\n <ng-container *ngIf=\"filteredItems$ | async as filteredItems\">\n <ng-container\n *ngIf=\"\n filteredItems.length > 0 && focusedItemId$ | async as focusedItemId;\n else noResults\n \"\n >\n <button\n #button\n *ngFor=\"let item of filteredItems\"\n [ngClass]=\"{focus: focusedItemId === item.id, disabled: disabled}\"\n class=\"searchable-dropdown__button searchable-dropdown__size\"\n (click)=\"submit(item.id)\"\n (mouseenter)=\"hoverOverButton(item.id)\"\n (mouseleave)=\"resetFocus()\"\n [style.width.px]=\"width\"\n >\n <span class=\"searchable-dropdown__button-text\">\n {{ item.text }}\n </span>\n </button>\n </ng-container>\n </ng-container>\n </div>\n </div>\n <ng-container [ngTemplateOutlet]=\"space\"> </ng-container>\n</ng-template>\n\n<ng-template #noResults>\n <div\n class=\"searchable-dropdown__button searchable-dropdown__size disabled\"\n [style.width.px]=\"width\"\n >\n <span class=\"searchable-dropdown__button-text\">{{ noResultsText }}</span>\n </div>\n</ng-template>\n\n<ng-template #space>\n <div\n *ngIf=\"style === 'button' || !style\"\n class=\"searchable-dropdown__size\"\n [style.width.px]=\"width\"\n ></div>\n <h5 *ngIf=\"style === 'underlinedText'\" class=\"searchable-dropdown__underline-button\"><b>-</b></h5>\n</ng-template>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {ReactiveFormsModule} from '@angular/forms';\nimport {SearchableDropdownComponent} from './searchable-dropdown.component';\n\n@NgModule({\n declarations: [SearchableDropdownComponent],\n imports: [CommonModule, ReactiveFormsModule],\n exports: [SearchableDropdownComponent],\n})\nexport class SearchableDropdownModule {}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport const formIoUploaderEditForm = () => ({\n components: [\n {key: 'type', type: 'hidden'},\n {\n type: 'textfield',\n input: true,\n key: 'label',\n label: 'Label',\n placeholder: 'Label',\n validate: {\n required: true,\n },\n },\n {\n type: 'checkbox',\n input: true,\n inputType: 'checkbox',\n key: 'validate.required',\n label: 'Required',\n validate: {\n required: false,\n },\n },\n {\n type: 'textfield',\n input: true,\n key: 'key',\n label: 'Property Name',\n placeholder: 'Property Name',\n tooltip: 'The name of this field in the API endpoint.',\n validate: {\n required: true,\n },\n },\n {\n type: 'textfield',\n input: true,\n key: 'customOptions.title',\n label: 'Title',\n placeholder: 'Title',\n tooltip: 'Leave empty to use the default title',\n validate: {\n required: false,\n },\n },\n {\n type: 'checkbox',\n input: true,\n inputType: 'checkbox',\n key: 'customOptions.hideTitle',\n label: 'Hide title',\n validate: {\n required: false,\n },\n },\n {\n type: 'textfield',\n input: true,\n key: 'customOptions.subtitle',\n label: 'Subtitle',\n placeholder: 'Title',\n tooltip: 'Leave empty to hide subtitle',\n validate: {\n required: false,\n },\n },\n {\n type: 'number',\n input: true,\n key: 'customOptions.maxFileSize',\n label: 'Maximum file size',\n placeholder: 'Maximum file size',\n defaultValue: 5,\n validate: {\n required: true,\n },\n },\n {\n type: 'checkbox',\n input: true,\n inputType: 'checkbox',\n key: 'customOptions.hideMaxFileSize',\n label: 'Hide maximum file size',\n validate: {\n required: false,\n },\n },\n {\n type: 'checkbox',\n input: true,\n inputType: 'checkbox',\n key: 'customOptions.camera',\n label: 'Allow camera uploads',\n validate: {\n required: false,\n },\n },\n ],\n});\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injector} from '@angular/core';\nimport {FormioCustomComponentInfo, registerCustomFormioComponent} from '../../../../modules';\nimport {FormIoUploaderComponent} from './form-io-uploader.component';\nimport {formIoUploaderEditForm} from './form-io-uploader-edit-form';\n\nexport const customUploaderType = 'valtimo-file';\n\nconst COMPONENT_OPTIONS: FormioCustomComponentInfo = {\n type: customUploaderType,\n selector: 'valtimo-form-io-uploader',\n title: 'Valtimo File Upload',\n group: 'basic',\n icon: 'upload',\n // set empty value to force formio to accept arrays as valid input value for this field type\n emptyValue: [],\n editForm: formIoUploaderEditForm,\n};\n\nexport function registerFormioUploadComponent(injector: Injector) {\n if (!customElements.get(COMPONENT_OPTIONS.selector)) {\n registerCustomFormioComponent(COMPONENT_OPTIONS, FormIoUploaderComponent, injector);\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport const formIoCurrentUserEditForm = () => ({\n components: [\n {\n key: 'type',\n type: 'hidden',\n },\n {\n key: 'label',\n type: 'textfield',\n input: true,\n label: 'Label',\n placeholder: 'Label',\n defaultValue: 'Valtimo Current User',\n validate: {\n required: true,\n },\n },\n {\n key: 'key',\n type: 'textfield',\n input: true,\n label: 'Property Name',\n placeholder: 'Property Name',\n tooltip: 'The name of this field in the API endpoint.',\n validate: {\n required: true,\n },\n },\n {\n key: 'tableView',\n type: 'checkbox',\n label: 'Table View',\n tooltip: 'If checked, this value will show up in the table view of the submissions list.',\n },\n {\n key: 'hideLabel',\n type: 'checkbox',\n label: 'Hide Label',\n tooltip:\n 'Hide the label of this component. This setting will display the label in the form builder, but hide the label when the form is rendered.',\n },\n {\n key: 'hidden',\n type: 'checkbox',\n label: 'Hidden',\n tooltip:\n 'A hidden field is still a part of the form JSON, but is hidden when viewing the form is rendererd.',\n },\n ],\n});\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injector} from '@angular/core';\nimport {FormioCustomComponentInfo, registerCustomFormioComponent} from '../../../../modules';\nimport {formIoCurrentUserEditForm} from './form-io-current-user-edit-form';\nimport {FormIoCurrentUserComponent} from './form-io-current-user.component';\n\nconst COMPONENT_OPTIONS: FormioCustomComponentInfo = {\n type: 'valtimo-current-user',\n selector: 'valtimo-form-io-current-user',\n title: 'Valtimo Current User',\n group: 'basic',\n icon: 'user',\n editForm: formIoCurrentUserEditForm,\n schema: {\n label: 'Valtimo Current User',\n tableView: true,\n },\n};\n\nexport function registerFormioCurrentUserComponent(injector: Injector) {\n registerCustomFormioComponent(COMPONENT_OPTIONS, FormIoCurrentUserComponent, injector);\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injector} from '@angular/core';\nimport {FormIoIbanComponent} from './iban.component';\nimport {FormioCustomComponentInfo, registerCustomFormioComponent} from '../../../../modules';\n\nconst COMPONENT_OPTIONS: FormioCustomComponentInfo = {\n type: 'iban',\n selector: 'valtimo-iban',\n title: 'Iban',\n group: 'basic',\n icon: 'bank',\n schema: {\n label: 'Iban component',\n key: 'iban',\n hideLabel: false,\n tableView: true,\n validate: {\n required: false,\n },\n },\n};\n\nexport function registerFormioIbanComponent(injector: Injector) {\n registerCustomFormioComponent(COMPONENT_OPTIONS, FormIoIbanComponent, injector);\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Components} from 'formiojs';\n\nconst TextFieldEditForm = Components.components.textfield.editForm;\n\nexport const currencyEditForm = () => {\n const editForm = TextFieldEditForm();\n\n const localeSelection = {\n type: 'select',\n input: true,\n key: 'customOptions.currencyLocale',\n label: 'Currency locale',\n tooltip: 'The locale used for the currency input',\n weight: 20,\n defaultValue: 'nl-NL',\n dataSrc: 'values',\n data: {\n values: [\n {\n label: 'Dutch (Netherlands)',\n value: 'nl-NL',\n },\n {\n label: 'English (US)',\n value: 'en-US',\n },\n {\n label: 'English (UK)',\n value: 'en-GB',\n },\n {\n label: 'German',\n value: 'de-DE',\n },\n ],\n },\n };\n\n const currencySelection = {\n type: 'select',\n input: true,\n key: 'customOptions.currencyCurrency',\n label: 'Currency',\n tooltip: 'The currency used for the currency input',\n weight: 20,\n defaultValue: 'EUR',\n dataSrc: 'values',\n data: {\n values: [\n {\n label: 'Euro',\n value: 'EUR',\n },\n {\n label: 'British pound',\n value: 'GBP',\n },\n {\n label: 'United States Dollar',\n value: 'USD',\n },\n ],\n },\n };\n\n const allowEmptyValueCheckbox = {\n type: 'checkbox',\n input: true,\n key: 'customOptions.allowEmptyValue',\n label: 'Allow Empty Value',\n tooltip: 'Check to allow empty values for this field',\n weight: 10,\n defaultValue: false, // Default to false\n };\n\n const tabsComponent = editForm.components.find(component => component.key === 'tabs');\n if (tabsComponent) {\n const displayTab = tabsComponent.components.find(tab => tab.key === 'display');\n if (displayTab) {\n displayTab.components.unshift(localeSelection);\n displayTab.components.unshift(currencySelection);\n displayTab.components.unshift(allowEmptyValueCheckbox);\n }\n }\n\n return editForm;\n};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injector} from '@angular/core';\nimport {FormIoCurrencyComponent} from './currency.component';\nimport {FormioCustomComponentInfo, registerCustomFormioComponent} from '../../../../modules';\nimport {currencyEditForm} from './currency-edit-form';\n\nconst COMPONENT_OPTIONS: FormioCustomComponentInfo = {\n type: 'currency',\n selector: 'valtimo-currency',\n title: 'Currency',\n group: 'basic',\n icon: 'dollar',\n schema: {\n label: 'Currency component',\n key: 'currency',\n hideLabel: false,\n tableView: true,\n validate: {\n required: false,\n },\n },\n editForm: currencyEditForm,\n};\n\nexport function registerFormioCurrencyComponent(injector: Injector) {\n registerCustomFormioComponent(COMPONENT_OPTIONS, FormIoCurrencyComponent, injector);\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injector} from '@angular/core';\nimport {Components, Formio} from 'formiojs';\nimport {DocumentService} from '@valtimo/document';\nimport {FormIoStateService} from '../../services/form-io-state.service';\nimport {take} from 'rxjs/operators';\nimport {ResourceOption} from '../../../../models';\n\nconst SelectComponent = Components.components.select;\n\nexport function registerFormioFileSelectorComponent(injector: Injector) {\n const documentService = injector.get(DocumentService);\n const stateService = injector.get(FormIoStateService);\n\n const unavailableMessage: ResourceOption = {\n label: 'could not retrieve documents',\n value: null,\n };\n\n function getDocumentResources(documentId: string): Promise<ResourceOption[]> {\n if (!documentId) {\n return new Promise(resolve => {\n resolve([unavailableMessage]);\n });\n }\n return documentService\n .getDocument(documentId)\n .toPromise()\n .then(document =>\n document.relatedFiles.map(relatedFile => ({\n label: relatedFile.fileName,\n value: relatedFile.fileId,\n }))\n )\n .catch(\n () =>\n new Promise(resolve => {\n resolve([unavailableMessage]);\n })\n );\n }\n\n class ResourceSelectorComponent extends SelectComponent {\n static schema(...extend) {\n return SelectComponent.schema({\n type: 'resource-selector',\n label: 'Resource selector',\n key: 'resource-selector',\n dataSrc: 'custom',\n dataType: 'string',\n valueProperty: 'value',\n asyncValues: true,\n data: {\n custom: 'values = instance.getResources()',\n },\n ...extend,\n });\n }\n\n getResources() {\n return stateService.documentId$\n .pipe(take(1))\n .toPromise()\n .then(documentId => getDocumentResources(documentId));\n }\n\n static get builderInfo() {\n return {\n title: 'Document picker',\n icon: 'th-list',\n group: 'basic',\n documentation: '/userguide/#textfield',\n weight: 0,\n schema: ResourceSelectorComponent.schema(),\n };\n }\n }\n\n Formio.use({\n components: {\n 'resource-selector': ResourceSelectorComponent,\n },\n });\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, EventEmitter, Input, Output} from '@angular/core';\nimport {DropdownButtonStyle, DropdownItem} from '../../models';\n\n@Component({\n selector: 'valtimo-searchable-dropdown-select',\n templateUrl: './searchable-dropdown-select.component.html',\n styleUrls: ['./searchable-dropdown-select.component.scss'],\n standalone: false,\n})\nexport class SearchableDropdownSelectComponent {\n @Input() style: DropdownButtonStyle;\n @Input() items: Array<DropdownItem>;\n @Input() buttonText: string;\n @Input() searchText: string;\n @Input() noResultsText: string;\n @Input() disabled: boolean;\n @Input() selectedText: string;\n @Input() selectedTextValue: string;\n @Input() clearSelectionButtonTitle: string;\n @Input() hasSelection: boolean;\n @Input() width = 250;\n @Input() hasPermission = true;\n @Input() showClearSelection = true;\n\n @Output() itemSelected = new EventEmitter();\n @Output() clearSelection = new EventEmitter();\n\n onSelect(id: string): void {\n this.itemSelected.emit(id);\n }\n\n onClearSelection(): void {\n this.clearSelection.emit();\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container *ngIf=\"!hasSelection; else selection\">\n <valtimo-searchable-dropdown\n *ngIf=\"hasPermission\"\n [buttonText]=\"buttonText\"\n [disabled]=\"disabled\"\n [items]=\"items\"\n [noResultsText]=\"noResultsText\"\n [searchText]=\"searchText\"\n [style]=\"style\"\n [width]=\"width\"\n (itemSelected)=\"onSelect($event)\"\n >\n </valtimo-searchable-dropdown>\n</ng-container>\n\n<ng-template #selection>\n <div\n class=\"d-flex flex-row align-items-center\"\n [style.height.px]=\"style === 'button' ? 34 : null\"\n >\n <h5 class=\"selected-text\">\n {{ selectedText }} <b>{{ selectedTextValue }}</b>\n </h5>\n <button\n *ngIf=\"hasPermission && showClearSelection\"\n [title]=\"clearSelectionButtonTitle\"\n (click)=\"onClearSelection()\"\n aria-label=\"Close\"\n class=\"close p-0 m-0 ml-2 text-danger\"\n type=\"button\"\n >\n <i class=\"clear-icon mdi mdi-close text-danger\"></i>\n </button>\n </div>\n</ng-template>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {ReactiveFormsModule} from '@angular/forms';\nimport {SearchableDropdownSelectComponent} from './searchable-dropdown-select.component';\nimport {SearchableDropdownModule} from '../searchable-dropdown/searchable-dropdown.module';\n\n@NgModule({\n declarations: [SearchableDropdownSelectComponent],\n imports: [CommonModule, ReactiveFormsModule, SearchableDropdownModule],\n exports: [SearchableDropdownSelectComponent],\n})\nexport class SearchableDropdownSelectModule {}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, EventEmitter, Input, Output} from '@angular/core';\n\n@Component({\n selector: 'valtimo-multiselect-dropdown',\n templateUrl: './multiselect-dropdown.component.html',\n styleUrls: ['./multiselect-dropdown.component.scss'],\n standalone: false,\n})\nexport class MultiselectDropdownComponent {\n @Input() selectedItems: Array<string>;\n @Input() items = [];\n @Input() placeHolder: string;\n @Input() dropdownSettings = {\n singleSelection: false,\n selectAllText: 'Select All',\n unSelectAllText: 'UnSelect All',\n itemsShowLimit: 3,\n allowSearchFilter: true,\n };\n @Output() itemsSelected = new EventEmitter();\n\n onItemsSelected() {\n this.itemsSelected.emit(this.selectedItems);\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-multiselect-dropdown\n [placeholder]=\"placeHolder\"\n [data]=\"items\"\n [(ngModel)]=\"selectedItems\"\n [settings]=\"dropdownSettings\"\n (onDropDownClose)=\"onItemsSelected()\"\n></ng-multiselect-dropdown>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {FormsModule, ReactiveFormsModule} from '@angular/forms';\nimport {MultiselectDropdownComponent} from './multiselect-dropdown.component';\nimport {NgMultiSelectDropDownModule} from 'ng-multiselect-dropdown';\n\n@NgModule({\n declarations: [MultiselectDropdownComponent],\n imports: [CommonModule, ReactiveFormsModule, NgMultiSelectDropDownModule, FormsModule],\n exports: [MultiselectDropdownComponent],\n})\nexport class MultiselectDropdownModule {}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Directive, ElementRef, HostListener, Input, OnChanges, SimpleChanges} from '@angular/core';\n\n@Directive({\n selector: '[digitOnly]',\n standalone: false,\n})\nexport class DigitOnlyDirective implements OnChanges {\n private hasDecimalPoint = false;\n private hasNegativeSign = false;\n private navigationKeys = [\n 'Backspace',\n 'Delete',\n 'Tab',\n 'Escape',\n 'Enter',\n 'Home',\n 'End',\n 'ArrowLeft',\n 'ArrowRight',\n 'Clear',\n 'Copy',\n 'Paste',\n ];\n\n @Input() decimal = false;\n @Input() decimalSeparator = '.';\n @Input() allowNegatives = false;\n @Input() allowPaste = true;\n @Input() negativeSign = '-';\n @Input() min = -Infinity;\n @Input() max = Infinity;\n @Input() pattern?: string | RegExp;\n private regex: RegExp | null = null;\n inputElement: HTMLInputElement;\n\n constructor(public el: ElementRef) {\n this.inputElement = el.nativeElement;\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['pattern']) {\n this.regex = this.pattern ? RegExp(this.pattern) : null;\n }\n\n if (changes['min']) {\n const maybeMin = Number(this.min);\n this.min = isNaN(maybeMin) ? -Infinity : maybeMin;\n }\n\n if (changes['max']) {\n const maybeMax = Number(this.max);\n this.max = isNaN(maybeMax) ? Infinity : maybeMax;\n }\n }\n\n @HostListener('beforeinput', ['$event'])\n onBeforeInput(e: InputEvent): any {\n if (isNaN(Number(e.data))) {\n if (\n e.data === this.decimalSeparator ||\n (e.data === this.negativeSign && this.allowNegatives)\n ) {\n return; // go on\n }\n e.preventDefault();\n e.stopPropagation();\n }\n }\n\n @HostListener('keydown', ['$event'])\n onKeyDown(e: KeyboardEvent): any {\n if (\n this.navigationKeys.indexOf(e.key) > -1 || // Allow: navigation keys: backspace, delete, arrows etc.\n ((e.key === 'a' || e.code === 'KeyA') && e.ctrlKey === true) || // Allow: Ctrl+A\n ((e.key === 'c' || e.code === 'KeyC') && e.ctrlKey === true) || // Allow: Ctrl+C\n ((e.key === 'v' || e.code === 'KeyV') && e.ctrlKey === true) || // Allow: Ctrl+V\n ((e.key === 'x' || e.code === 'KeyX') && e.ctrlKey === true) || // Allow: Ctrl+X\n ((e.key === 'a' || e.code === 'KeyA') && e.metaKey === true) || // Allow: Cmd+A (Mac)\n ((e.key === 'c' || e.code === 'KeyC') && e.metaKey === true) || // Allow: Cmd+C (Mac)\n ((e.key === 'v' || e.code === 'KeyV') && e.metaKey === true) || // Allow: Cmd+V (Mac)\n ((e.key === 'x' || e.code === 'KeyX') && e.metaKey === true) // Allow: Cmd+X (Mac)\n ) {\n // let it happen, don't do anything\n return;\n }\n\n let newValue = '';\n\n if (this.decimal && e.key === this.decimalSeparator) {\n newValue = this.forecastValue(e.key);\n if (newValue.split(this.decimalSeparator).length > 2) {\n // has two or more decimal points\n e.preventDefault();\n return;\n }\n\n this.hasDecimalPoint = newValue.indexOf(this.decimalSeparator) > -1;\n return; // Allow: only one decimal point\n }\n\n if (e.key === this.negativeSign && this.allowNegatives) {\n newValue = this.forecastValue(e.key);\n if (\n newValue.charAt(0) !== this.negativeSign ||\n newValue.split(this.negativeSign).length > 2\n ) {\n e.preventDefault();\n return;\n }\n\n this.hasNegativeSign = newValue.split(this.negativeSign).length > -1;\n return;\n }\n\n // Ensure that it is a number and stop the keypress\n if (e.key === ' ' || isNaN(Number(e.key))) {\n e.preventDefault();\n return;\n }\n\n newValue = newValue || this.forecastValue(e.key);\n // check the input pattern RegExp\n if (this.regex) {\n if (!this.regex.test(newValue)) {\n e.preventDefault();\n return;\n }\n }\n\n const newNumber = Number(newValue);\n if (newNumber > this.max || newNumber < this.min) {\n e.preventDefault();\n }\n }\n\n @HostListener('paste', ['$event'])\n onPaste(event: any): void {\n if (this.allowPaste === true) {\n let pastedInput = '';\n if ((window as {[key: string]: any})['clipboardData']) {\n // Browser is IE\n pastedInput = (window as {[key: string]: any})['clipboardData'].getData('text');\n } else if (event.clipboardData && event.clipboardData.getData) {\n // Other browsers\n pastedInput = event.clipboardData.getData('text/plain');\n }\n\n this.pasteData(pastedInput);\n event.preventDefault();\n } else {\n // this prevents the paste\n event.preventDefault();\n event.stopPropagation();\n }\n }\n\n @HostListener('drop', ['$event'])\n onDrop(event: DragEvent): void {\n const textData = event.dataTransfer?.getData('text') ?? '';\n this.inputElement.focus();\n this.pasteData(textData);\n event.preventDefault();\n }\n\n private pasteData(pastedContent: string): void {\n const sanitizedContent = this.sanitizeInput(pastedContent);\n if (\n sanitizedContent.includes(this.negativeSign) &&\n this.hasNegativeSign &&\n !this.getSelection().includes(this.negativeSign)\n ) {\n return;\n }\n const pasted = document.execCommand('insertText', false, sanitizedContent);\n if (!pasted) {\n if (this.inputElement.setRangeText) {\n const {selectionStart: start, selectionEnd: end} = this.inputElement;\n this.inputElement.setRangeText(sanitizedContent, start ?? 0, end ?? 0, 'end');\n // Angular's Reactive Form relies on \"input\" event, but on Firefox, the setRangeText method doesn't trigger it\n // so we have to trigger it ourself.\n if (typeof (window as {[key: string]: any})['InstallTrigger'] !== 'undefined') {\n this.inputElement.dispatchEvent(new Event('input', {cancelable: true}));\n }\n } else {\n // Browser does not support setRangeText, e.g. IE\n this.insertAtCursor(this.inputElement, sanitizedContent);\n }\n }\n if (this.decimal) {\n this.hasDecimalPoint = this.inputElement.value?.indexOf(this.decimalSeparator) > -1;\n }\n this.hasNegativeSign = this.inputElement.value?.indexOf(this.negativeSign) > -1;\n }\n\n // The following 2 methods were added from the below article for browsers that do not support setRangeText\n // https://stackoverflow.com/questions/11076975/how-to-insert-text-into-the-textarea-at-the-current-cursor-position\n private insertAtCursor(myField: HTMLInputElement, myValue: string): void {\n const startPos = myField.selectionStart ?? 0;\n const endPos = myField.selectionEnd ?? 0;\n\n myField.value =\n myField.value.substring(0, startPos) +\n myValue +\n myField.value.substring(endPos, myField.value.length);\n\n const pos = startPos + myValue.length;\n myField.focus();\n myField.setSelectionRange(pos, pos);\n\n this.triggerEvent(myField, 'input');\n }\n\n private triggerEvent(el: HTMLInputElement, type: string): void {\n if ('createEvent' in document) {\n // modern browsers, IE9+\n const e = document.createEvent('HTMLEvents');\n e.initEvent(type, false, true);\n el.dispatchEvent(e);\n }\n }\n // end stack overflow code\n\n private sanitizeInput(input: string): string {\n let result = '';\n let regex;\n if (this.decimal && this.isValidDecimal(input)) {\n regex = new RegExp(`${this.getNegativeSignRegExp()}[^0-9${this.decimalSeparator}]`, 'g');\n } else {\n regex = new RegExp(`${this.getNegativeSignRegExp()}[^0-9]`, 'g');\n }\n result = input.replace(regex, '');\n\n const maxLength = this.inputElement.maxLength;\n if (maxLength > 0) {\n // the input element has maxLength limit\n const allowedLength =\n maxLength -\n this.inputElement.value.length +\n (result.includes(`${this.negativeSign}`) ? 1 : 0);\n result = allowedLength > 0 ? result.substring(0, allowedLength) : '';\n }\n return result;\n }\n\n private getNegativeSignRegExp(): string {\n return this.allowNegatives &&\n (!this.hasNegativeSign || this.getSelection().includes(this.negativeSign))\n ? `(?!^${this.negativeSign})`\n : '';\n }\n\n private isValidDecimal(string: string): boolean {\n const selectedText = this.getSelection();\n\n if (!this.hasDecimalPoint) {\n return string.split(this.decimalSeparator).length <= 2;\n }\n\n // the input element already has a decimal separator\n if (selectedText && selectedText?.indexOf(this.decimalSeparator) > -1) {\n return string.split(this.decimalSeparator).length <= 2;\n }\n\n return string?.indexOf(this.decimalSeparator) < 0;\n }\n\n private getSelection(): string {\n return this.inputElement.value.substring(\n this.inputElement.selectionStart ?? 0,\n this.inputElement.selectionEnd ?? 0\n );\n }\n\n private forecastValue(key: string): string {\n const selectionStart = this.inputElement.selectionStart ?? 0;\n const selectionEnd = this.inputElement.selectionEnd ?? 0;\n const oldValue = this.inputElement.value;\n return oldValue?.substring(0, selectionStart) + key + oldValue?.substring(selectionEnd);\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n Component,\n EventEmitter,\n HostBinding,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges,\n} from '@angular/core';\nimport {InputType} from '../../models';\nimport {BehaviorSubject, Observable, Subscription, take} from 'rxjs';\nimport {IconService} from 'carbon-components-angular';\nimport {View16, ViewOff16} from '@carbon/icons';\n\n@Component({\n selector: 'v-input',\n templateUrl: './input.component.html',\n styleUrls: ['./input.component.scss'],\n standalone: false,\n})\nexport class InputComponent implements OnInit, OnChanges, OnDestroy {\n @HostBinding('class.full-width') fullWidthClass = false;\n\n @Input() public name = '';\n @Input() public type: InputType = 'text';\n @Input() public title = '';\n @Input() public titleTranslationKey = '';\n private _defaultValue = '';\n @Input() public set defaultValue(value: string) {\n this._defaultValue = value;\n this.setDefaultValue(this.defaultValue);\n }\n public get defaultValue(): string {\n return this._defaultValue;\n }\n @Input() public widthPx!: number;\n @Input() public set fullWidth(value: boolean) {\n this.fullWidthClass = value;\n }\n @Input() public margin = false;\n @Input() public smallMargin = false;\n @Input() public disabled = false;\n @Input() public step!: number;\n @Input() public min!: number;\n @Input() public maxLength = 250;\n @Input() public tooltip = '';\n @Input() public required = false;\n @Input() public hideNumberSpinBox = false;\n @Input() public smallLabel = false;\n @Input() public rows!: number;\n @Input() public clear$!: Observable<null>;\n @Input() public carbonTheme = 'g10';\n @Input() public placeholder = '';\n @Input() public dataTestId?: string;\n @Input() public trim: boolean = false;\n @Input() public presetsTitle: string = 'Presets';\n @Input() public presetOptions: string[] = [];\n\n @Output() public valueChange: EventEmitter<any> = new EventEmitter();\n\n public inputValue$ = new BehaviorSubject<any>(undefined);\n\n public isText!: boolean;\n public isTextarea!: boolean;\n public isNumber!: boolean;\n public isPassword!: boolean;\n public isDigitOnly!: boolean;\n public isCheckbox!: boolean;\n public isBsn!: boolean;\n\n public readonly showPassword$ = new BehaviorSubject<boolean>(false);\n\n private valueSubscription!: Subscription;\n private clearSubscription!: Subscription;\n\n constructor(private readonly iconService: IconService) {}\n\n public ngOnInit(): void {\n this.setInputType();\n this.setDefaultValue(this.defaultValue);\n this.openValueSubscription();\n this.openClearSubscription();\n this.iconService.registerAll([View16, ViewOff16]);\n }\n\n public onValueChange(value: any): void {\n if (this.trim) {\n value = value?.trim();\n }\n this.inputValue$.next(value);\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n const currentDefaultValue = changes?.defaultValue?.currentValue;\n\n if (currentDefaultValue) {\n this.setDefaultValue(currentDefaultValue);\n }\n }\n\n public ngOnDestroy(): void {\n this.valueSubscription?.unsubscribe();\n this.clearSubscription?.unsubscribe();\n }\n\n public toggleShowPassword(): void {\n this.showPassword$.pipe(take(1)).subscribe(showPassword => {\n this.showPassword$.next(!showPassword);\n });\n }\n\n public stopCheckboxEventPropagation(event: MouseEvent): void {\n event.stopPropagation();\n }\n\n public presetWithValue(value: string): void {\n this.inputValue$.next(value);\n }\n\n private setDefaultValue(value: any): void {\n this.inputValue$.next(value);\n }\n\n private setInputType(): void {\n switch (this.type) {\n case 'text':\n this.isText = true;\n break;\n case 'textarea':\n this.isTextarea = true;\n break;\n case 'number':\n this.isNumber = true;\n break;\n case 'password':\n this.isPassword = true;\n break;\n case 'digitOnly':\n this.isDigitOnly = true;\n break;\n case 'checkbox':\n this.isCheckbox = true;\n break;\n case 'bsn':\n this.isBsn = true;\n break;\n }\n }\n\n private openValueSubscription(): void {\n this.inputValue$.subscribe(value => {\n this.valueChange.emit(value);\n });\n }\n\n private openClearSubscription(): void {\n if (this.clear$) {\n this.clearSubscription = this.clear$.subscribe(() => {\n this.onValueChange('');\n });\n }\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div class=\"v-input-container\">\n <ng-container *ngTemplateOutlet=\"inputTitle\"></ng-container>\n <ng-container *ngTemplateOutlet=\"textInput\"></ng-container>\n <ng-container *ngTemplateOutlet=\"textareaInput\"></ng-container>\n <ng-container *ngTemplateOutlet=\"passwordInput\"></ng-container>\n <ng-container *ngTemplateOutlet=\"numberInput\"></ng-container>\n <ng-container *ngTemplateOutlet=\"digitOnlyInput\"></ng-container>\n <ng-container *ngTemplateOutlet=\"checkboxInput\"></ng-container>\n <ng-container *ngTemplateOutlet=\"bsnInput\"></ng-container>\n <ng-container *ngTemplateOutlet=\"presets\"></ng-container>\n</div>\n\n<ng-template #inputTitle>\n <v-input-label\n *ngIf=\"title || titleTranslationKey\"\n [name]=\"name\"\n [required]=\"required\"\n [small]=\"smallLabel\"\n [titleTranslationKey]=\"titleTranslationKey\"\n [title]=\"title\"\n [tooltip]=\"tooltip\"\n >\n </v-input-label>\n</ng-template>\n\n<ng-template #textInput>\n <input\n *ngIf=\"isText\"\n [ngClass]=\"{\n 'v-input--full-width': fullWidthClass,\n 'v-input--margin': margin && presetOptions.length === 0,\n 'v-input--small-margin': smallMargin && presetOptions.length === 0,\n }\"\n [ngModel]=\"inputValue$ | async\"\n cdsText\n [attr.data-testid]=\"dataTestId\"\n [disabled]=\"disabled\"\n [maxLength]=\"maxLength\"\n [min]=\"0\"\n [name]=\"name\"\n [step]=\"step\"\n (ngModelChange)=\"onValueChange($event)\"\n [style.width.px]=\"widthPx\"\n [placeholder]=\"placeholder\"\n type=\"text\"\n />\n</ng-template>\n\n<ng-template #textareaInput>\n <textarea\n *ngIf=\"isTextarea\"\n [ngClass]=\"{\n 'v-input--full-width': fullWidthClass,\n 'v-input--margin': margin,\n 'v-input--small-margin': smallMargin,\n }\"\n cdsTextArea\n [attr.data-testid]=\"dataTestId\"\n [disabled]=\"disabled\"\n [name]=\"name\"\n [ngModel]=\"inputValue$ | async\"\n [rows]=\"rows\"\n (ngModelChange)=\"onValueChange($event)\"\n [style.width.px]=\"widthPx\"\n ></textarea>\n</ng-template>\n\n<ng-template #passwordInput>\n <ng-container *ngIf=\"isPassword\">\n <div\n *ngIf=\"{showPassword: showPassword$ | async} as obs\"\n [ngClass]=\"{\n 'v-input--full-width': fullWidthClass,\n 'v-input--margin': margin,\n 'v-input--small-margin': smallMargin,\n }\"\n class=\"v-input__password-container\"\n >\n <input\n [ngClass]=\"{\n 'v-input--full-width': fullWidthClass,\n }\"\n cdsText\n [attr.data-testid]=\"dataTestId\"\n [disabled]=\"disabled\"\n [maxLength]=\"maxLength\"\n [min]=\"0\"\n [name]=\"name\"\n [ngModel]=\"inputValue$ | async\"\n [step]=\"step\"\n (ngModelChange)=\"onValueChange($event)\"\n [style.width.px]=\"widthPx\"\n [type]=\"obs.showPassword ? 'text' : 'password'\"\n />\n\n <div class=\"v-input__password-icon\">\n <cds-icon-button align=\"top\" (click)=\"toggleShowPassword()\">\n <svg cdsIcon=\"{{ obs.showPassword ? 'view-off' : 'view' }}\" size=\"16\"></svg>\n </cds-icon-button>\n </div>\n </div>\n </ng-container>\n</ng-template>\n\n<ng-template #numberInput>\n <input\n *ngIf=\"isNumber\"\n [ngClass]=\"{\n 'v-input--full-width': fullWidthClass,\n 'v-input--margin': margin,\n 'v-input--small-margin': smallMargin,\n 'v-input--hide-spinbox': hideNumberSpinBox,\n }\"\n cdsText\n [attr.data-testid]=\"dataTestId\"\n [disabled]=\"disabled\"\n [maxLength]=\"maxLength\"\n [min]=\"min\"\n [name]=\"name\"\n [ngModel]=\"inputValue$ | async\"\n [step]=\"step\"\n (ngModelChange)=\"onValueChange($event)\"\n [placeholder]=\"placeholder\"\n [style.width.px]=\"widthPx\"\n type=\"number\"\n />\n</ng-template>\n\n<ng-template #digitOnlyInput>\n <input\n *ngIf=\"isDigitOnly\"\n [ngClass]=\"{\n 'v-input--full-width': fullWidthClass,\n 'v-input--margin': margin,\n 'v-input--small-margin': smallMargin,\n }\"\n cdsText\n digitOnly\n [attr.data-testid]=\"dataTestId\"\n [disabled]=\"disabled\"\n [maxLength]=\"maxLength\"\n [min]=\"0\"\n [name]=\"name\"\n [ngModel]=\"inputValue$ | async\"\n [step]=\"step\"\n (ngModelChange)=\"onValueChange($event)\"\n [style.width.px]=\"widthPx\"\n type=\"text\"\n />\n</ng-template>\n\n<ng-template #checkboxInput>\n <div *ngIf=\"isCheckbox\" (click)=\"stopCheckboxEventPropagation($event)\">\n <cds-checkbox\n [attr.data-testid]=\"dataTestId\"\n [disabled]=\"disabled\"\n [name]=\"name\"\n [ngModel]=\"inputValue$ | async\"\n (ngModelChange)=\"onValueChange($event)\"\n >\n </cds-checkbox>\n </div>\n</ng-template>\n\n<ng-template #presets>\n <div\n *ngIf=\"isText && presetOptions.length > 0\"\n [ngClass]=\"{\n 'v-input--margin': margin,\n 'v-input--small-margin': smallMargin,\n }\"\n class=\"v-input--preset-options\"\n >\n <span>{{ presetsTitle }}:</span>\n\n @for (preset of presetOptions; track $index) {\n @if (!$first) {\n |\n }\n <a (click)=\"presetWithValue(preset)\" class=\"v-input--preset-option\">{{ preset }}</a>\n }\n </div>\n</ng-template>\n\n<ng-template #bsnInput>\n <input\n *ngIf=\"isBsn\"\n [ngClass]=\"{\n 'v-input--full-width': fullWidthClass,\n 'v-input--margin': margin && presetOptions.length === 0,\n 'v-input--small-margin': smallMargin && presetOptions.length === 0,\n }\"\n [ngModel]=\"inputValue$ | async\"\n cdsText\n [attr.data-testid]=\"dataTestId\"\n [disabled]=\"disabled\"\n [maxLength]=\"'9'\"\n [min]=\"9\"\n [name]=\"name\"\n (ngModelChange)=\"onValueChange($event)\"\n [style.width.px]=\"widthPx\"\n [placeholder]=\"placeholder\"\n type=\"text\"\n />\n</ng-template>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n Component,\n EventEmitter,\n forwardRef,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n signal,\n SimpleChanges,\n ViewEncapsulation,\n} from '@angular/core';\nimport {SelectedValue, SelectItem} from '../../models';\nimport {BehaviorSubject, combineLatest, Observable, Subscription} from 'rxjs';\nimport {ListItem} from 'carbon-components-angular';\nimport {TranslateService} from '@ngx-translate/core';\nimport {map, take} from 'rxjs/operators';\nimport {NG_VALUE_ACCESSOR} from '@angular/forms';\n\n@Component({\n selector: 'v-select',\n templateUrl: './select.component.html',\n styleUrls: ['./select.component.scss'],\n standalone: false,\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SelectComponent),\n multi: true,\n },\n ],\n})\nexport class SelectComponent implements OnInit, OnChanges, OnDestroy {\n @Input() public set items(value: Array<SelectItem>) {\n this._listItems$.next(\n Array.isArray(value)\n ? value.map(\n item =>\n ({\n content: item.text || item.translationKey,\n id: item.id,\n selected: false,\n }) as ListItem\n )\n : []\n );\n }\n @Input() public defaultSelection!: SelectItem;\n @Input() public defaultSelectionId!: string;\n @Input() public defaultSelectionIds!: Array<string>;\n public readonly $disabled = signal<boolean>(false);\n @Input() public set disabled(value: boolean) {\n this.$disabled.set(value);\n }\n @Input() public dropUp?: boolean;\n @Input() public invalid = false;\n @Input() public multiple = false;\n @Input() public margin = false;\n @Input() public widthInPx!: number;\n @Input() public notFoundText!: string;\n @Input() public clearAllText!: string;\n @Input() public clearText!: string;\n @Input() public clearable = true;\n @Input() public name = '';\n @Input() public title = '';\n @Input() public titleTranslationKey = '';\n @Input() public clearSelectionSubject$!: Observable<void>;\n @Input() public tooltip = '';\n @Input() public required = false;\n @Input() public loading = false;\n @Input() public loadingText = '';\n @Input() public placeholder = '';\n @Input() public smallMargin = false;\n @Input() public carbonTheme = 'g10';\n @Input() public appendInline = true;\n @Input() public dataTestId?: string;\n\n @Output() public selectedChange: EventEmitter<SelectedValue> = new EventEmitter();\n\n public readonly selected$ = new BehaviorSubject<SelectedValue>('');\n private readonly _listItems$ = new BehaviorSubject<Array<ListItem>>([]);\n public readonly listItems$: Observable<Array<ListItem>> = combineLatest([\n this._listItems$,\n this.selected$,\n this.translateService.stream('key'),\n ]).pipe(\n map(([listItems, selected]) =>\n listItems.map(listItem => {\n const translation = this.translateService.instant(listItem.content);\n const isSelected: boolean = Array.isArray(selected)\n ? selected.includes(listItem.id)\n : selected === listItem.id;\n\n return {\n ...listItem,\n selected: isSelected,\n content: translation !== listItem.content ? translation : listItem.content,\n };\n })\n )\n );\n private _selectedSubscription!: Subscription;\n private _clearSubjectSubscription!: Subscription;\n\n private _onChange: (value: SelectedValue) => void = () => {};\n private _onTouched: () => void = () => {};\n\n public writeValue(value: SelectedValue): void {\n this.setSelectedValue(value);\n }\n\n public registerOnChange(fn: (value: SelectedValue) => void): void {\n this._onChange = fn;\n }\n\n public registerOnTouched(fn: () => void): void {\n this._onTouched = fn;\n }\n\n public setDisabledState(isDisabled: boolean): void {\n this.$disabled.set(isDisabled);\n }\n\n constructor(private readonly translateService: TranslateService) {}\n\n public ngOnInit(): void {\n this.setDefaultSelection();\n this.openSelectedSubscription();\n this.openClearSubjectSubscription();\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (\n changes?.items?.currentValue ||\n changes?.defaultSelectionId?.currentValue ||\n changes?.defaultSelection?.currentValue ||\n changes?.defaultSelectionIds?.currentValue\n ) {\n this.setDefaultSelection();\n }\n }\n\n public ngOnDestroy(): void {\n this._selectedSubscription?.unsubscribe();\n this._clearSubjectSubscription?.unsubscribe();\n }\n\n public setSelected(selectedValue: ListItem | Array<ListItem>): void {\n const id = !Array.isArray(selectedValue) && selectedValue?.id;\n\n if (Array.isArray(selectedValue)) {\n this.setSelectedValue(selectedValue.map(value => value.id));\n } else if (selectedValue && typeof id === 'string') {\n this.setSelectedValue(id);\n }\n }\n\n public setSelectedValue(selectedValue: SelectedValue): void {\n this.selected$.pipe(take(1)).subscribe(currentSelected => {\n if (JSON.stringify(currentSelected) !== JSON.stringify(selectedValue)) {\n this.selected$.next(selectedValue);\n this._onChange(selectedValue);\n this._onTouched();\n }\n });\n }\n\n public clear(): void {\n this.setSelectedValue(this.multiple ? [] : '');\n }\n\n private setDefaultSelection(): void {\n this.listItems$.pipe(take(1)).subscribe(listItems => {\n const itemsIds = listItems?.map(item => item.id);\n const defaultSelectionIds = this.defaultSelectionIds;\n const defaultSelectionId = this.defaultSelection?.id || this.defaultSelectionId;\n\n if (this.multiple && this.defaultSelectionIds) {\n this.setSelectedValue([...defaultSelectionIds]);\n } else if (defaultSelectionId && itemsIds?.includes(defaultSelectionId)) {\n if (this.multiple) {\n this.setSelectedValue([defaultSelectionId]);\n } else {\n this.setSelectedValue(defaultSelectionId);\n }\n } else if (defaultSelectionId && !itemsIds?.includes(defaultSelectionId)) {\n this.clear();\n }\n });\n }\n\n private openSelectedSubscription(): void {\n this._selectedSubscription = this.selected$.subscribe(selectedValue => {\n const defaultSelectionId = this.defaultSelection?.id || this.defaultSelectionId;\n\n if ((!this.multiple && selectedValue !== defaultSelectionId) || this.multiple) {\n this.selectedChange.emit(selectedValue);\n }\n });\n }\n\n private openClearSubjectSubscription(): void {\n if (this.clearSelectionSubject$) {\n this._clearSubjectSubscription = this.clearSelectionSubject$.subscribe(() => {\n this.clear();\n });\n }\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div\n *ngIf=\"{\n placeholderText: placeholder || ('interface.filter' | translate),\n loadingText: loadingText || ('interface.loading' | translate),\n clearText: clearText || ('interface.clear' | translate),\n clearAllText: clearAllText || ('interface.clearAll' | translate),\n notFoundText: notFoundText || ('interface.noItemsFound' | translate),\n items: listItems$ | async,\n } as vars\"\n class=\"v-select-container\"\n [ngClass]=\"{\n 'v-select-container--margin': margin,\n 'v-select-container--small-margin': smallMargin,\n 'v-select-container--not-clearable': !clearable,\n }\"\n [style.width.px]=\"widthInPx\"\n>\n <v-input-label\n *ngIf=\"title || titleTranslationKey\"\n [name]=\"name\"\n [required]=\"required\"\n [titleTranslationKey]=\"titleTranslationKey\"\n [title]=\"title\"\n [tooltip]=\"tooltip\"\n >\n </v-input-label>\n\n <cds-combo-box\n [attr.data-testid]=\"dataTestId\"\n [appendInline]=\"appendInline\"\n [clearSelectionTitle]=\"vars.clearText\"\n [clearSelectionsTitle]=\"vars.clearAllText\"\n [disabled]=\"$disabled() || loading || (vars?.items || []).length === 0\"\n [dropUp]=\"dropUp\"\n [invalid]=\"invalid\"\n [placeholder]=\"\n loading\n ? vars.loadingText\n : (vars?.items || []).length === 0\n ? vars.notFoundText\n : vars.placeholderText\n \"\n [type]=\"multiple ? 'multi' : 'single'\"\n (clear)=\"clear()\"\n (selected)=\"setSelected($event)\"\n >\n <cds-dropdown-list [items]=\"vars?.items || []\"></cds-dropdown-list>\n </cds-combo-box>\n</div>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, EventEmitter, HostBinding, Input, Output} from '@angular/core';\nimport {MultiInputChangeEventType, MultiInputKeyValue} from '../../../../models';\nimport {CommonModule} from '@angular/common';\nimport {InputModule, LayerModule} from 'carbon-components-angular';\n\n@Component({\n selector: 'valtimo-key-value',\n templateUrl: './key-value.component.html',\n styleUrls: ['key-value.component.scss'],\n standalone: true,\n imports: [CommonModule, InputModule, LayerModule],\n})\nexport class KeyValueComponent {\n @Input() public readonly keyColumnTitle!: string;\n @Input() public readonly valueColumnTitle!: string;\n @Input() public readonly index!: number;\n @Input() public readonly value!: MultiInputKeyValue;\n @Input() @HostBinding('class.--full-width') public readonly fullWidth = false;\n @Input() public readonly disabled = false;\n @Input() public readonly keyColumnFlex = 1;\n @Input() public readonly valueColumnFlex = 1;\n\n @Output() public readonly valueChange: EventEmitter<{\n value: MultiInputKeyValue;\n inputValue: string;\n type: MultiInputChangeEventType;\n }> = new EventEmitter();\n\n public onInputChange(type: MultiInputChangeEventType, inputValue: string): void {\n this.valueChange.emit({value: this.value, inputValue, type});\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div\n class=\"v-multi-input__input\"\n [ngClass]=\"{'--full-width': fullWidth}\"\n [style.flex]=\"keyColumnFlex\"\n>\n <cds-label *ngIf=\"index === 0 && keyColumnTitle\">{{ keyColumnTitle }}</cds-label>\n\n <input\n cdsText\n cdsLayer\n [defaultValue]=\"value.key\"\n [disabled]=\"disabled\"\n (input)=\"onInputChange('key', $event.target.value)\"\n />\n</div>\n\n<div class=\"v-multi-input__separator\"></div>\n\n<div\n class=\"v-multi-input__input\"\n [ngClass]=\"{'--full-width': fullWidth}\"\n [style.flex]=\"valueColumnFlex\"\n>\n <cds-label *ngIf=\"index === 0 && valueColumnTitle\">{{ valueColumnTitle }}</cds-label>\n\n <input\n cdsText\n cdsLayer\n [defaultValue]=\"value.value\"\n [disabled]=\"disabled\"\n (input)=\"onInputChange('value', $event.target.value)\"\n />\n</div>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, EventEmitter, HostBinding, Input, Output} from '@angular/core';\nimport {MultiInputKeyValue} from '../../../../models';\nimport {CommonModule} from '@angular/common';\nimport {InputModule} from 'carbon-components-angular';\n\n@Component({\n selector: 'valtimo-single-value',\n templateUrl: './single-value.component.html',\n styleUrls: ['./single-value.component.scss'],\n standalone: true,\n imports: [CommonModule, InputModule],\n})\nexport class SingleValueComponent {\n @Input() public readonly value!: MultiInputKeyValue;\n @Input() @HostBinding('class.--full-width') public readonly fullWidth = false;\n @Input() public readonly disabled = false;\n\n @Output() public readonly valueChange: EventEmitter<{\n value: MultiInputKeyValue;\n inputValue: string;\n }> = new EventEmitter();\n\n public onInputChange(inputValue: string): void {\n this.valueChange.emit({value: this.value, inputValue});\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div class=\"v-multi-input__input\" [ngClass]=\"{'--full-width': fullWidth}\">\n <input\n cdsText\n [defaultValue]=\"value?.value\"\n [disabled]=\"disabled\"\n (input)=\"onInputChange($event.target.value)\"\n />\n</div>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, EventEmitter, HostBinding, Input, Output} from '@angular/core';\nimport {ListItemWithId, MultiInputChangeEventType, MultiInputKeyValue} from '../../../../models';\nimport {CommonModule} from '@angular/common';\nimport {DropdownModule, InputModule} from 'carbon-components-angular';\nimport {Observable} from 'rxjs';\n\n@Component({\n selector: 'valtimo-key-dropdown-value',\n templateUrl: './key-dropdown-value.component.html',\n styleUrls: ['./key-dropdown-value.component.scss'],\n standalone: true,\n imports: [CommonModule, InputModule, DropdownModule],\n})\nexport class KeyDropdownValueComponent {\n @Input() public readonly keyColumnTitle!: string;\n @Input() public readonly valueColumnTitle!: string;\n @Input() public readonly dropdownColumnTitle!: string;\n @Input() public readonly index!: number;\n @Input() public readonly value!: MultiInputKeyValue;\n @Input() public readonly dropdownItems$!: Observable<Array<ListItemWithId>>;\n @Input() public readonly dropdownWidth = 250;\n @Input() @HostBinding('class.--full-width') public readonly fullWidth = false;\n @Input() public readonly disabled = false;\n @Input() public readonly keyColumnFlex = 1;\n @Input() public readonly dropdownColumnFlex = 1;\n @Input() public readonly valueColumnFlex = 1;\n\n @Output() public readonly valueChange: EventEmitter<{\n value: MultiInputKeyValue;\n inputValue: string;\n type: MultiInputChangeEventType;\n }> = new EventEmitter();\n\n public onInputChange(type: MultiInputChangeEventType, inputValue: string): void {\n this.valueChange.emit({value: this.value, inputValue, type});\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div\n class=\"v-multi-input__input\"\n [ngClass]=\"{'--full-width': fullWidth}\"\n [style.flex]=\"keyColumnFlex\"\n>\n <cds-label *ngIf=\"index === 0 && keyColumnTitle\">{{ keyColumnTitle }}</cds-label>\n\n <input\n cdsText\n [defaultValue]=\"value.key\"\n [disabled]=\"disabled\"\n (input)=\"onInputChange('key', $event.target.value)\"\n />\n</div>\n\n<div class=\"v-multi-input__separator\"></div>\n\n<div\n class=\"v-multi-input__input\"\n [ngClass]=\"{'--full-width': fullWidth}\"\n [style.minWidth.px]=\"dropdownWidth\"\n [style.flex]=\"dropdownColumnFlex\"\n>\n <cds-label *ngIf=\"index === 0 && dropdownColumnTitle\">{{ dropdownColumnTitle }}</cds-label>\n\n <cds-dropdown\n [dropUp]=\"false\"\n (selected)=\"onInputChange('dropdown', $event.item.id)\"\n [appendInline]=\"true\"\n >\n <cds-dropdown-list [items]=\"dropdownItems$ | async\" type=\"multi\"></cds-dropdown-list>\n </cds-dropdown>\n</div>\n\n<div class=\"v-multi-input__separator\"></div>\n\n<div\n class=\"v-multi-input__input\"\n [ngClass]=\"{'--full-width': fullWidth}\"\n [style.flex]=\"valueColumnFlex\"\n>\n <cds-label *ngIf=\"index === 0 && valueColumnTitle\">{{ valueColumnTitle }}</cds-label>\n\n <input\n cdsText\n [defaultValue]=\"value.value\"\n [disabled]=\"disabled\"\n (input)=\"onInputChange('value', $event.target.value)\"\n />\n</div>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, EventEmitter, HostBinding, Input, Output} from '@angular/core';\nimport {\n ArbitraryInputTitles,\n MultiInputChangeEventType,\n MultiInputKeyValue,\n} from '../../../../models';\nimport {CommonModule} from '@angular/common';\nimport {InputModule} from 'carbon-components-angular';\nimport {Observable} from 'rxjs';\n\n@Component({\n selector: 'valtimo-arbitrary-amount-value',\n templateUrl: './arbitrary-amount-value.component.html',\n styleUrls: ['./arbitrary-amount-value.component.scss'],\n standalone: true,\n imports: [CommonModule, InputModule],\n})\nexport class ArbitraryAmountValueComponent {\n @Input() public readonly index!: number;\n @Input() public readonly value!: MultiInputKeyValue;\n @Input() public readonly fullWidth = false;\n @Input() public readonly disabled = false;\n @Input() public readonly arbitraryAmountTitles!: ArbitraryInputTitles;\n @Input() public readonly amountOfArbitraryValuesArray$!: Observable<0[]>;\n\n @Output() public readonly valueChange: EventEmitter<{\n value: MultiInputKeyValue;\n inputValue: string;\n type: MultiInputChangeEventType;\n arbitraryIndex: number;\n }> = new EventEmitter();\n\n @HostBinding('class.--full-width') get isFullWidth(): boolean {\n return this.fullWidth;\n }\n\n public onInputChange(arbitraryIndex: number, inputValue: string): void {\n this.valueChange.emit({\n value: this.value,\n inputValue,\n type: 'arbitrary',\n arbitraryIndex,\n });\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n@for (_ of amountOfArbitraryValuesArray$ | async; let i = $index; track i) {\n <div class=\"v-multi-input__input\" [ngClass]=\"{'--full-width': fullWidth}\">\n <cds-label *ngIf=\"index === 0\">{{\n arbitraryAmountTitles ? arbitraryAmountTitles[i] : ''\n }}</cds-label>\n\n <input\n cdsText\n [defaultValue]=\"value ? value['' + i] : ''\"\n [disabled]=\"disabled\"\n (input)=\"onInputChange(i, $event.target.value)\"\n />\n </div>\n\n @if (((amountOfArbitraryValuesArray$ | async) || []).length - 1 !== i) {\n <div class=\"v-multi-input__separator\"></div>\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './value-path-selector.component';\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, EventEmitter, HostBinding, Input, Output} from '@angular/core';\nimport {\n MultiInputChangeEventType,\n MultiInputKeyValue,\n ValuePathSelectorNotation,\n ValuePathSelectorPrefix,\n} from '../../../../models';\nimport {CommonModule} from '@angular/common';\nimport {InputModule} from 'carbon-components-angular';\nimport {FormsModule, ReactiveFormsModule} from '@angular/forms';\nimport {ValuePathSelectorComponent} from '../../../value-path-selector';\n\n@Component({\n selector: 'valtimo-key-value-path-selector',\n templateUrl: './key-value-path-selector.component.html',\n styleUrls: ['key-value-path-selector.component.scss'],\n standalone: true,\n imports: [\n CommonModule,\n InputModule,\n ValuePathSelectorComponent,\n FormsModule,\n ReactiveFormsModule,\n ],\n})\nexport class KeyValuePathSelectorComponent {\n @Input() public readonly keyColumnTitle!: string;\n @Input() public readonly valueColumnTitle!: string;\n @Input() public readonly index!: number;\n @Input() public readonly value!: MultiInputKeyValue;\n @Input() @HostBinding('class.--full-width') public readonly fullWidth = false;\n @Input() public readonly disabled = false;\n\n @Input() public readonly caseDefinitionKey = '';\n @Input() public readonly prefixes: ValuePathSelectorPrefix[] = [];\n @Input() public readonly showCaseDefinitionSelector = false;\n @Input() public readonly notation: ValuePathSelectorNotation = 'dots';\n @Input() public readonly keyColumnFlex = 1;\n @Input() public readonly valueColumnFlex = 1;\n\n @Output() public readonly valueChange: EventEmitter<{\n value: MultiInputKeyValue;\n inputValue: string;\n type: MultiInputChangeEventType;\n }> = new EventEmitter();\n\n public onInputChange(type: MultiInputChangeEventType, inputValue: string): void {\n this.valueChange.emit({value: this.value, inputValue, type});\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div\n class=\"v-multi-input__input key\"\n [ngClass]=\"{'--full-width': fullWidth}\"\n [style.flex]=\"keyColumnFlex\"\n>\n <cds-label *ngIf=\"index === 0 && keyColumnTitle\">{{ keyColumnTitle }}</cds-label>\n\n <input\n cdsText\n [defaultValue]=\"value.key\"\n [disabled]=\"disabled\"\n (input)=\"onInputChange('key', $event.target.value)\"\n />\n</div>\n\n<div class=\"v-multi-input__separator\"></div>\n\n<div\n class=\"v-multi-input__input path-selector\"\n [ngClass]=\"{'--full-width': fullWidth}\"\n [style.flex]=\"valueColumnFlex\"\n>\n <cds-label *ngIf=\"index === 0 && valueColumnTitle\">{{ valueColumnTitle }}</cds-label>\n\n <valtimo-value-path-selector\n [caseDefinitionKey]=\"caseDefinitionKey\"\n [prefixes]=\"prefixes\"\n [showCaseDefinitionSelector]=\"showCaseDefinitionSelector\"\n [disabled]=\"disabled\"\n [defaultValue]=\"value?.value\"\n [notation]=\"notation\"\n (valueChangeEvent)=\"onInputChange('value', $event)\"\n ></valtimo-value-path-selector>\n</div>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, EventEmitter, HostBinding, Input, Output} from '@angular/core';\nimport {\n MultiInputChangeEventType,\n MultiInputKeyValue,\n ValuePathSelectorNotation,\n ValuePathSelectorPrefix,\n} from '../../../../models';\nimport {CommonModule} from '@angular/common';\nimport {InputModule} from 'carbon-components-angular';\nimport {FormsModule, ReactiveFormsModule} from '@angular/forms';\nimport {ValuePathSelectorComponent} from '../../../value-path-selector';\n\n@Component({\n selector: 'valtimo-value-path-selector-value',\n templateUrl: './value-path-selector-value.component.html',\n styleUrls: ['value-path-selector-value.component.scss'],\n standalone: true,\n imports: [\n CommonModule,\n InputModule,\n ValuePathSelectorComponent,\n FormsModule,\n ReactiveFormsModule,\n ],\n})\nexport class ValuePathSelectorValueComponent {\n @Input() public readonly keyColumnTitle!: string;\n @Input() public readonly valueColumnTitle!: string;\n @Input() public readonly index!: number;\n @Input() public readonly value!: MultiInputKeyValue;\n @Input() @HostBinding('class.--full-width') public readonly fullWidth = false;\n @Input() public readonly disabled = false;\n @Input() public readonly caseDefinitionKey = '';\n @Input() public readonly prefixes: ValuePathSelectorPrefix[] = [];\n @Input() public readonly showCaseDefinitionSelector = false;\n @Input() public readonly notation: ValuePathSelectorNotation = 'dots';\n @Input() public readonly keyColumnFlex = 1;\n @Input() public readonly valueColumnFlex = 1;\n\n @Output() public readonly valueChange: EventEmitter<{\n value: MultiInputKeyValue;\n inputValue: string;\n type: MultiInputChangeEventType;\n }> = new EventEmitter();\n\n public onInputChange(type: MultiInputChangeEventType, inputValue: string): void {\n this.valueChange.emit({value: this.value, inputValue, type});\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div\n class=\"v-multi-input__input path-selector\"\n [ngClass]=\"{'--full-width': fullWidth}\"\n [style.flex]=\"keyColumnFlex\"\n>\n <cds-label *ngIf=\"index === 0 && keyColumnTitle\">{{ keyColumnTitle }}</cds-label>\n\n <valtimo-value-path-selector\n [caseDefinitionKey]=\"caseDefinitionKey\"\n [prefixes]=\"prefixes\"\n [showCaseDefinitionSelector]=\"showCaseDefinitionSelector\"\n [disabled]=\"disabled\"\n [defaultValue]=\"value?.key\"\n [notation]=\"notation\"\n (valueChangeEvent)=\"onInputChange('key', $event)\"\n ></valtimo-value-path-selector>\n</div>\n\n<div class=\"v-multi-input__separator\"></div>\n\n<div\n class=\"v-multi-input__input\"\n [ngClass]=\"{'--full-width': fullWidth}\"\n [style.flex]=\"valueColumnFlex\"\n>\n <cds-label *ngIf=\"index === 0 && valueColumnTitle\">{{ valueColumnTitle }}</cds-label>\n\n <input\n cdsText\n [defaultValue]=\"value.value\"\n [disabled]=\"disabled\"\n (input)=\"onInputChange('value', $event.target.value)\"\n />\n</div>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, EventEmitter, HostBinding, Input, Output} from '@angular/core';\nimport {\n ListItemWithId,\n MultiInputChangeEventType,\n MultiInputKeyValue,\n ValuePathSelectorNotation,\n ValuePathSelectorPrefix,\n} from '../../../../models';\nimport {CommonModule} from '@angular/common';\nimport {DropdownModule, InputModule} from 'carbon-components-angular';\nimport {FormsModule, ReactiveFormsModule} from '@angular/forms';\nimport {ValuePathSelectorComponent} from '../../../value-path-selector';\nimport {Observable} from 'rxjs';\n\n@Component({\n selector: 'valtimo-value-path-selector-dropdown-value',\n templateUrl: './value-path-selector-dropdown-value.component.html',\n styleUrls: ['./value-path-selector-dropdown-value.component.scss'],\n standalone: true,\n imports: [\n CommonModule,\n InputModule,\n DropdownModule,\n ValuePathSelectorComponent,\n FormsModule,\n ReactiveFormsModule,\n ],\n})\nexport class ValuePathSelectorDropdownValueComponent {\n @Input() public readonly keyColumnTitle!: string;\n @Input() public readonly valueColumnTitle!: string;\n @Input() public readonly dropdownColumnTitle!: string;\n @Input() public readonly index!: number;\n @Input() public readonly value!: MultiInputKeyValue;\n @Input() public readonly dropdownItems$!: Observable<Array<ListItemWithId>>;\n @Input() public readonly caseDefinitionKey = '';\n @Input() public readonly prefixes: ValuePathSelectorPrefix[] = [];\n @Input() public readonly showCaseDefinitionSelector = false;\n @Input() public readonly notation: ValuePathSelectorNotation = 'dots';\n @Input() public readonly dropdownWidth = 250;\n @Input() @HostBinding('class.--full-width') public readonly fullWidth = false;\n @Input() public readonly disabled = false;\n @Input() public readonly keyColumnFlex = 1;\n @Input() public readonly dropdownColumnFlex = 1;\n @Input() public readonly valueColumnFlex = 1;\n\n @Output() public readonly valueChange: EventEmitter<{\n value: MultiInputKeyValue;\n inputValue: string;\n type: MultiInputChangeEventType;\n }> = new EventEmitter();\n\n public onInputChange(type: MultiInputChangeEventType, inputValue: string): void {\n this.valueChange.emit({value: this.value, inputValue, type});\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div\n class=\"v-multi-input__input path-selector\"\n [ngClass]=\"{'--full-width': fullWidth}\"\n [style.flex]=\"keyColumnFlex\"\n>\n <cds-label *ngIf=\"index === 0 && keyColumnTitle\">{{ keyColumnTitle }}</cds-label>\n\n <valtimo-value-path-selector\n [caseDefinitionKey]=\"caseDefinitionKey\"\n [prefixes]=\"prefixes\"\n [showCaseDefinitionSelector]=\"showCaseDefinitionSelector\"\n [disabled]=\"disabled\"\n [defaultValue]=\"value?.key\"\n [notation]=\"notation\"\n (valueChangeEvent)=\"onInputChange('key', $event)\"\n ></valtimo-value-path-selector>\n</div>\n\n<div class=\"v-multi-input__separator\"></div>\n\n<div\n class=\"v-multi-input__input\"\n [ngClass]=\"{'--full-width': fullWidth}\"\n [style.minWidth.px]=\"dropdownWidth\"\n [style.flex]=\"dropdownColumnFlex\"\n>\n <cds-label *ngIf=\"index === 0 && dropdownColumnTitle\">{{ dropdownColumnTitle }}</cds-label>\n\n <cds-dropdown (selected)=\"onInputChange('dropdown', $event.item.id)\" [appendInline]=\"true\">\n <cds-dropdown-list [items]=\"dropdownItems$ | async\" type=\"multi\"></cds-dropdown-list>\n </cds-dropdown>\n</div>\n\n<div class=\"v-multi-input__separator\"></div>\n\n<div\n class=\"v-multi-input__input\"\n [ngClass]=\"{'--full-width': fullWidth}\"\n [style.flex]=\"valueColumnFlex\"\n>\n <cds-label *ngIf=\"index === 0 && valueColumnTitle\">{{ valueColumnTitle }}</cds-label>\n\n <input\n cdsText\n [defaultValue]=\"value.value\"\n [disabled]=\"disabled\"\n (input)=\"onInputChange('value', $event.target.value)\"\n />\n</div>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n Component,\n EventEmitter,\n forwardRef,\n Input,\n OnDestroy,\n OnInit,\n Output,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport {\n ArbitraryInputTitles,\n ListItemWithId,\n MultiInputChangeEventType,\n MultiInputKeyValue,\n MultiInputOutput,\n MultiInputType,\n MultiInputValues,\n ValuePathSelectorNotation,\n ValuePathSelectorPrefix,\n} from '../../models';\nimport {BehaviorSubject, combineLatest, Observable, Subscription} from 'rxjs';\nimport {map, take} from 'rxjs/operators';\nimport {v4 as uuidv4} from 'uuid';\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from '@angular/forms';\n\n@Component({\n selector: 'valtimo-carbon-multi-input',\n templateUrl: './carbon-multi-input.component.html',\n styleUrls: ['./carbon-multi-input.component.scss'],\n encapsulation: ViewEncapsulation.None,\n standalone: false,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CarbonMultiInputComponent),\n multi: true,\n },\n ],\n})\nexport class CarbonMultiInputComponent implements ControlValueAccessor, OnInit, OnDestroy {\n @Input() public addRowText = '';\n @Input() public addButtonType = 'primary';\n @Input() public addRowTranslationKey = '';\n @Input() public arbitraryAmountTitles!: ArbitraryInputTitles;\n @Input() public set arbitraryValueAmount(value: number) {\n this._amountOfArbitraryValues = value;\n this.amountOfArbitraryValuesArray$.next(this.getArrayOfXLength(value));\n }\n\n private readonly _defaultValues$ = new BehaviorSubject<MultiInputValues>([]);\n\n @Input() public set defaultValues(value: MultiInputValues) {\n if (!Array.isArray(value)) return;\n this._defaultValues$.next(value);\n }\n\n @Input() public deleteRowText = '';\n @Input() public deleteRowTranslationKey = '';\n public readonly $disabled = signal<boolean>(false);\n @Input() public set disabled(value: boolean) {\n this.$disabled.set(value);\n }\n @Input() public dropdownColumnTitle = '';\n @Input() public set dropdownItems(value: Array<ListItemWithId>) {\n this.dropdownItems$.next(value);\n }\n @Input() public dropdownWidth = 250;\n @Input() public fullWidth = false;\n @Input() public hideAddButton = false;\n @Input() public hideDeleteButton = false;\n @Input() public initialAmountOfRows = 1;\n @Input() public keyColumnTitle = '';\n @Input() public margin = false;\n @Input() public maxRows = null;\n @Input() public minimumAmountOfRows = 1;\n @Input() public name = '';\n @Input() public required = false;\n @Input() public title = '';\n @Input() public titleTranslationKey = '';\n @Input() public tooltip = '';\n @Input() public type: MultiInputType = 'value';\n @Input() public valueColumnTitle = '';\n\n @Input() public readonly valuePathSelectorCaseDefinitionKey = '';\n @Input() public readonly valuePathSelectorPrefixes: ValuePathSelectorPrefix[] = [];\n @Input() public readonly valuePathSelectorShowCaseDefinitionSelector = false;\n @Input() public readonly valuePathSelectorNotation: ValuePathSelectorNotation = 'dots';\n\n @Input() public readonly keyColumnFlex = 1;\n @Input() public readonly dropdownColumnFlex = 1;\n @Input() public readonly valueColumnFlex = 1;\n\n @Output() public valueChange: EventEmitter<MultiInputOutput> = new EventEmitter();\n @Output() public allValuesValidEvent: EventEmitter<boolean> = new EventEmitter();\n\n private _amountOfArbitraryValues!: number;\n public readonly amountOfArbitraryValuesArray$ = new BehaviorSubject<Array<0>>([]);\n\n public readonly values$ = new BehaviorSubject<MultiInputValues>([]);\n public readonly mappedValues$: Observable<MultiInputOutput> = this.values$.pipe(\n map(values => this.filterAndMapValues(values))\n );\n public readonly addRowEnabled$: Observable<boolean> = this.values$.pipe(\n map(values => !!(this.maxRows === null || values.length < this.maxRows))\n );\n\n public readonly dropdownItems$ = new BehaviorSubject<Array<ListItemWithId>>([]);\n\n private readonly _subscriptions = new Subscription();\n\n private _onChange: (value: MultiInputOutput) => void = () => {};\n private _onTouched: () => void = () => {};\n\n public writeValue(value: MultiInputValues): void {\n if (Array.isArray(value)) {\n const withUuids = value.map(item => ({...item, uuid: uuidv4()}));\n this.values$.next(withUuids);\n }\n }\n\n public registerOnChange(fn: (value: MultiInputValues) => void): void {\n this._onChange = fn;\n }\n\n public registerOnTouched(fn: () => void): void {\n this._onTouched = fn;\n }\n\n public setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n public ngOnInit(): void {\n this.values$.next(this.getInitialRows());\n this.openValuesSubscription();\n this.openDefaultValuesSubscription();\n }\n\n public ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n public addRow(): void {\n combineLatest([this.values$, this.addRowEnabled$])\n .pipe(take(1))\n .subscribe(([values, addRowEnabled]) => {\n if (addRowEnabled) {\n this.values$.next([...values, this.getEmptyValue()]);\n }\n });\n }\n\n public deleteRow(uuid: string): void {\n this.values$.pipe(take(1)).subscribe(values => {\n if (values.length > this.minimumAmountOfRows) {\n this.values$.next(values.filter(value => value.uuid !== uuid));\n }\n });\n }\n\n public trackByFn(_: number, value: MultiInputKeyValue): string {\n return value.uuid as string;\n }\n\n public getDropdownItemsForRow(index: number): Observable<Array<ListItemWithId>> {\n return combineLatest([this.dropdownItems$, this.values$]).pipe(\n map(([dropdownItems, values]) => {\n const defaultValue = values[index] || this.defaultValues[index];\n\n return dropdownItems.map(dropdownItem => ({\n ...dropdownItem,\n selected: defaultValue ? dropdownItem.id === defaultValue.dropdown : false,\n }));\n })\n );\n }\n\n public onValueChange(\n templateValue: MultiInputKeyValue,\n inputValue: string,\n change: MultiInputChangeEventType,\n arbitraryIndex?: number\n ): void {\n this.values$.pipe(take(1)).subscribe(values => {\n const updatedValues = values.map(stateValue => {\n if (stateValue.uuid === templateValue.uuid) {\n if (change === 'value') {\n return {...stateValue, value: inputValue};\n } else if (change === 'key') {\n return {...stateValue, key: inputValue};\n } else if (change === 'dropdown') {\n return {...stateValue, dropdown: inputValue};\n } else if (change === 'arbitrary') {\n return {...stateValue, [arbitraryIndex]: inputValue};\n }\n }\n return stateValue;\n });\n\n this.values$.next(updatedValues);\n });\n }\n\n private getInitialRows(): MultiInputValues {\n const minimumRows = this.minimumAmountOfRows;\n const initialRows = this.initialAmountOfRows;\n const amountOfInitialRows = Math.max(minimumRows, initialRows);\n\n return new Array(amountOfInitialRows).fill(this.getEmptyValue());\n }\n\n private getEmptyValue(): MultiInputKeyValue {\n if (this.type === 'arbitraryAmount') {\n const emptyValue = {\n uuid: uuidv4(),\n };\n\n this.getArrayOfXLength(this._amountOfArbitraryValues).forEach((_, index) => {\n emptyValue[`${index}`] = '';\n });\n\n return emptyValue;\n }\n\n return {\n key: '',\n value: '',\n uuid: uuidv4(),\n dropdown: '',\n };\n }\n\n private getMappedValue(valueToMap: MultiInputKeyValue): MultiInputKeyValue | string {\n if (\n this.type === 'keyValue' ||\n this.type === 'keyValuePathSelector' ||\n this.type === 'valuePathSelectorValue'\n ) {\n return {key: valueToMap.key, value: valueToMap.value};\n } else if (this.type === 'keyDropdownValue' || this.type === 'valuePathSelectorDropdownValue') {\n return {key: valueToMap.key, value: valueToMap.value, dropdown: valueToMap.dropdown};\n } else if (this.type === 'arbitraryAmount') {\n const objCopy = {...valueToMap};\n delete objCopy.uuid;\n return objCopy;\n }\n\n return valueToMap.value;\n }\n\n private openValuesSubscription(): void {\n this._subscriptions.add(\n combineLatest([this.values$, this.mappedValues$]).subscribe(([values, mappedValues]) => {\n this.valueChange.emit(mappedValues);\n this.allValuesValidEvent.emit(values.length === mappedValues.length);\n this._onChange(mappedValues);\n this._onTouched();\n })\n );\n }\n\n private getArrayOfXLength(length: number): 0[] {\n return Array(length).fill(0);\n }\n\n private filterAndMapValues(values: MultiInputValues): MultiInputOutput {\n return values\n .map(value => this.getMappedValue(value))\n .filter(value => this.isValueValid(value)) as MultiInputOutput;\n }\n\n private isValueValid(value: MultiInputKeyValue | string): boolean {\n switch (this.type) {\n case 'value':\n return !!value;\n case 'keyValue':\n case 'keyValuePathSelector':\n case 'valuePathSelectorValue':\n return !!((value as MultiInputKeyValue).value || (value as MultiInputKeyValue).key);\n case 'keyDropdownValue':\n case 'valuePathSelectorDropdownValue':\n return !!(\n (value as MultiInputKeyValue).value &&\n (value as MultiInputKeyValue).key &&\n (value as MultiInputKeyValue).dropdown\n );\n case 'arbitraryAmount':\n const objectValues = Object.values(value as MultiInputKeyValue);\n const positiveValuesAmount = objectValues.filter(objectValue => !!objectValue);\n return objectValues.length === positiveValuesAmount.length;\n default:\n return false;\n }\n }\n\n private openDefaultValuesSubscription(): void {\n this._subscriptions.add(\n this._defaultValues$.subscribe(defaultValues => {\n if (defaultValues.length < this.minimumAmountOfRows) return;\n this.values$.next(defaultValues.map(defaultValue => ({...defaultValue, uuid: uuidv4()})));\n })\n );\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div\n *ngIf=\"{\n addRowText:\n addRowText || addRowTranslationKey\n ? addRowTranslationKey\n ? (addRowTranslationKey | translate)\n : addRowText\n : ('interface.addRow' | translate),\n deleteRowText:\n deleteRowText || deleteRowTranslationKey\n ? deleteRowTranslationKey\n ? (deleteRowTranslationKey | translate)\n : deleteRowText\n : ('interface.deleteRow' | translate),\n } as vars\"\n [ngClass]=\"{'v-multi-input--margin': margin, 'v-multi-input--no-delete-button': hideDeleteButton}\"\n class=\"v-multi-input\"\n>\n <v-input-label\n *ngIf=\"title || titleTranslationKey\"\n [name]=\"name\"\n [required]=\"required\"\n [titleTranslationKey]=\"titleTranslationKey\"\n [title]=\"title\"\n [tooltip]=\"tooltip\"\n >\n </v-input-label>\n\n <div class=\"v-multi-input__rows\">\n <div\n *ngFor=\"let value of values$ | async as values; trackBy: trackByFn; index as i\"\n class=\"v-multi-input__row\"\n >\n @switch (type) {\n @case ('value') {\n <valtimo-single-value\n [value]=\"value\"\n [fullWidth]=\"fullWidth\"\n [disabled]=\"$disabled()\"\n (valueChange)=\"onValueChange($event.value, $event.inputValue, 'value')\"\n ></valtimo-single-value>\n }\n @case ('keyValue') {\n <valtimo-key-value\n [keyColumnTitle]=\"keyColumnTitle\"\n [valueColumnTitle]=\"valueColumnTitle\"\n [index]=\"i\"\n [value]=\"value\"\n [fullWidth]=\"fullWidth\"\n [disabled]=\"$disabled()\"\n [keyColumnFlex]=\"keyColumnFlex\"\n [valueColumnFlex]=\"valueColumnFlex\"\n (valueChange)=\"onValueChange($event.value, $event.inputValue, $event.type)\"\n ></valtimo-key-value>\n }\n @case ('keyDropdownValue') {\n <valtimo-key-dropdown-value\n [keyColumnTitle]=\"keyColumnTitle\"\n [valueColumnTitle]=\"valueColumnTitle\"\n [dropdownColumnTitle]=\"dropdownColumnTitle\"\n [index]=\"i\"\n [value]=\"value\"\n [dropdownItems$]=\"getDropdownItemsForRow(i)\"\n [dropdownWidth]=\"dropdownWidth\"\n [fullWidth]=\"fullWidth\"\n [disabled]=\"$disabled()\"\n [keyColumnFlex]=\"keyColumnFlex\"\n [dropdownColumnFlex]=\"dropdownColumnFlex\"\n [valueColumnFlex]=\"valueColumnFlex\"\n (valueChange)=\"onValueChange($event.value, $event.inputValue, $event.type)\"\n ></valtimo-key-dropdown-value>\n }\n @case ('arbitraryAmount') {\n <valtimo-arbitrary-amount-value\n [index]=\"i\"\n [value]=\"value\"\n [fullWidth]=\"fullWidth\"\n [disabled]=\"$disabled()\"\n [arbitraryAmountTitles]=\"arbitraryAmountTitles\"\n [amountOfArbitraryValuesArray$]=\"amountOfArbitraryValuesArray$\"\n (valueChange)=\"\n onValueChange($event.value, $event.inputValue, $event.type, $event.arbitraryIndex)\n \"\n ></valtimo-arbitrary-amount-value>\n }\n @case ('keyValuePathSelector') {\n <valtimo-key-value-path-selector\n [keyColumnTitle]=\"keyColumnTitle\"\n [valueColumnTitle]=\"valueColumnTitle\"\n [index]=\"i\"\n [value]=\"value\"\n [fullWidth]=\"fullWidth\"\n [disabled]=\"$disabled()\"\n [caseDefinitionKey]=\"valuePathSelectorCaseDefinitionKey\"\n [prefixes]=\"valuePathSelectorPrefixes\"\n [showCaseDefinitionSelector]=\"valuePathSelectorShowCaseDefinitionSelector\"\n [notation]=\"valuePathSelectorNotation\"\n [keyColumnFlex]=\"keyColumnFlex\"\n [valueColumnFlex]=\"valueColumnFlex\"\n (valueChange)=\"onValueChange($event.value, $event.inputValue, $event.type)\"\n ></valtimo-key-value-path-selector>\n }\n @case ('valuePathSelectorValue') {\n <valtimo-value-path-selector-value\n [keyColumnTitle]=\"keyColumnTitle\"\n [valueColumnTitle]=\"valueColumnTitle\"\n [index]=\"i\"\n [value]=\"value\"\n [fullWidth]=\"fullWidth\"\n [disabled]=\"$disabled()\"\n [caseDefinitionKey]=\"valuePathSelectorCaseDefinitionKey\"\n [prefixes]=\"valuePathSelectorPrefixes\"\n [showCaseDefinitionSelector]=\"valuePathSelectorShowCaseDefinitionSelector\"\n [notation]=\"valuePathSelectorNotation\"\n [keyColumnFlex]=\"keyColumnFlex\"\n [valueColumnFlex]=\"valueColumnFlex\"\n (valueChange)=\"onValueChange($event.value, $event.inputValue, $event.type)\"\n ></valtimo-value-path-selector-value>\n }\n @case ('valuePathSelectorDropdownValue') {\n <valtimo-value-path-selector-dropdown-value\n [keyColumnTitle]=\"keyColumnTitle\"\n [dropdownColumnTitle]=\"dropdownColumnTitle\"\n [valueColumnTitle]=\"valueColumnTitle\"\n [index]=\"i\"\n [value]=\"value\"\n [fullWidth]=\"fullWidth\"\n [disabled]=\"$disabled()\"\n [caseDefinitionKey]=\"valuePathSelectorCaseDefinitionKey\"\n [prefixes]=\"valuePathSelectorPrefixes\"\n [dropdownItems$]=\"getDropdownItemsForRow(i)\"\n [dropdownWidth]=\"dropdownWidth\"\n [showCaseDefinitionSelector]=\"valuePathSelectorShowCaseDefinitionSelector\"\n [notation]=\"valuePathSelectorNotation\"\n [keyColumnFlex]=\"keyColumnFlex\"\n [dropdownColumnFlex]=\"dropdownColumnFlex\"\n [valueColumnFlex]=\"valueColumnFlex\"\n (valueChange)=\"onValueChange($event.value, $event.inputValue, $event.type)\"\n ></valtimo-value-path-selector-dropdown-value>\n }\n }\n\n <button\n *ngIf=\"!hideDeleteButton\"\n cdsButton=\"danger\"\n [disabled]=\"values?.length <= this.minimumAmountOfRows || $disabled()\"\n [iconOnly]=\"true\"\n size=\"md\"\n (click)=\"deleteRow(value.uuid)\"\n [title]=\"vars.deleteRowText\"\n >\n <svg cdsIcon=\"trash-can\" size=\"16\"></svg>\n </button>\n </div>\n\n <div class=\"v-multi-input__add-button\">\n <button\n *ngIf=\"!hideAddButton\"\n [cdsButton]=\"addButtonType\"\n size=\"md\"\n [disabled]=\"(addRowEnabled$ | async) === false || $disabled()\"\n (click)=\"addRow()\"\n >\n {{ vars.addRowText }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n </div>\n </div>\n</div>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n OnDestroy,\n Output,\n ViewChild,\n} from '@angular/core';\nimport flatpickr from 'flatpickr';\nimport {BehaviorSubject, Observable, Subscription} from 'rxjs';\nimport {TranslateService} from '@ngx-translate/core';\nimport {key as LocaleKey} from 'flatpickr/dist/types/locale';\nimport {Dutch} from 'flatpickr/dist/l10n/nl';\nimport {German} from 'flatpickr/dist/l10n/de';\nimport {english} from 'flatpickr/dist/l10n/default';\nimport Locale = flatpickr.Locale;\nimport CustomLocale = flatpickr.CustomLocale;\n\n/**\n * @deprecated Migrate old design to Carbon\n */\n@Component({\n selector: 'v-date-picker',\n templateUrl: './date-picker.component.html',\n styleUrls: ['./date-picker.component.scss'],\n standalone: false,\n})\nexport class DatePickerComponent implements AfterViewInit, OnDestroy {\n @HostBinding('class.full-width') fullWidthClass = false;\n\n @ViewChild('datePickerElement') datePickerElement!: ElementRef<HTMLInputElement>;\n\n @Input() public name = '';\n @Input() public title = '';\n @Input() public placeholder = '';\n @Input() public titleTranslationKey = '';\n @Input() public widthPx!: number;\n @Input() public set fullWidth(value: boolean) {\n this.fullWidthClass = value;\n }\n @Input() public margin = false;\n @Input() public disabled = false;\n @Input() public tooltip = '';\n @Input() public required = false;\n @Input() public set defaultDate(value: string) {\n this.dateValue$.next(value);\n }\n @Input() public defaultDateIsToday!: boolean;\n @Input() public smallLabel = false;\n @Input() public clear$!: Observable<null>;\n @Input() public enableTime = false;\n @Input() public carbonTheme = 'g10';\n\n @Output() public valueChange: EventEmitter<any> = new EventEmitter();\n\n public readonly dateValue$ = new BehaviorSubject<string>('');\n\n private _flatpickrInstance!: flatpickr.Instance;\n\n private readonly _subscriptions = new Subscription();\n\n constructor(private readonly translateService: TranslateService) {}\n\n public ngAfterViewInit(): void {\n this.openLocaleSubscription();\n this.openDateValueSubscription();\n this.openClearSubscription();\n }\n\n public ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n private openLocaleSubscription(): void {\n this._subscriptions.add(\n this.translateService.stream('key').subscribe(() => {\n this.setFlatpickrInstance(this.translateService.currentLang as LocaleKey);\n })\n );\n }\n\n private openDateValueSubscription(): void {\n this._subscriptions.add(\n this.dateValue$.subscribe(dateValue => {\n this.valueChange.emit(dateValue);\n })\n );\n }\n\n private setFlatpickrInstance(localeKey: LocaleKey): void {\n this._flatpickrInstance?.destroy();\n this._flatpickrInstance = flatpickr(this.datePickerElement.nativeElement, {\n locale: this.getLocale(localeKey),\n onChange: [this.onChange],\n defaultDate: this.getFlatpickrValue(),\n enableTime: this.enableTime,\n });\n this.emitDate();\n }\n\n private onChange = (selectedDates: Array<Date>, dateStr: string): void => {\n this.dateValue$.next(dateStr);\n };\n\n private emitDate(): void {\n const currentDate = this._flatpickrInstance.selectedDates[0];\n const formattedDate = currentDate && this._flatpickrInstance.formatDate(currentDate, 'Y-m-d');\n if (formattedDate) {\n this.dateValue$.next(formattedDate);\n }\n }\n\n private getFlatpickrValue(): string | Date {\n const savedValue = this.dateValue$.getValue();\n const todayDate = this.defaultDateIsToday && new Date();\n const defaultDate = this.defaultDate;\n return todayDate || defaultDate || savedValue;\n }\n\n private getLocale(localeKey: LocaleKey): Locale | CustomLocale {\n let locale!: Locale | CustomLocale;\n\n switch (localeKey) {\n case 'nl':\n locale = Dutch;\n break;\n case 'de':\n locale = German;\n break;\n case 'en':\n locale = english;\n break;\n default:\n locale = english;\n break;\n }\n\n return locale;\n }\n\n private openClearSubscription(): void {\n if (this.clear$) {\n this._subscriptions.add(\n this.clear$.subscribe(() => {\n this.dateValue$.next('');\n })\n );\n }\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div class=\"v-date-picker-container\">\n <ng-container *ngTemplateOutlet=\"inputTitle\"></ng-container>\n <ng-container *ngTemplateOutlet=\"dateInput\"></ng-container>\n</div>\n\n<ng-template #inputTitle>\n <v-input-label\n *ngIf=\"title || titleTranslationKey\"\n [name]=\"name\"\n [required]=\"required\"\n [small]=\"smallLabel\"\n [titleTranslationKey]=\"titleTranslationKey\"\n [title]=\"title\"\n [tooltip]=\"tooltip\"\n >\n </v-input-label>\n</ng-template>\n\n<ng-template #dateInput>\n <input\n #datePickerElement\n cdsText\n [ngClass]=\"{\n 'v-date-picker--full-width': fullWidthClass,\n 'v-date-picker--margin': margin,\n }\"\n [ngModel]=\"dateValue$ | async\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n [style.width.px]=\"widthPx + 20\"\n type=\"text\"\n />\n</ng-template>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Pipe, PipeTransform} from '@angular/core';\nimport {MultiInputFormsValues, MultiInputFormValue} from '../../models';\nimport {Observable} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\n@Pipe({\n name: 'defaultValue',\n standalone: true,\n})\nexport class DefaultValuePipe implements PipeTransform {\n public transform(\n values: Observable<MultiInputFormsValues>,\n uuid: string\n ): Observable<MultiInputFormValue | {}> {\n return values.pipe(\n map(valuesArray => valuesArray.find(value => value.uuid === uuid)?.value || {})\n );\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n TemplateRef,\n} from '@angular/core';\nimport {FormOutput, MultiInputFormsValues, MultiInputFormValue, MultiInputType} from '../../models';\nimport {BehaviorSubject, combineLatest, Observable, Subscription} from 'rxjs';\nimport {map, take} from 'rxjs/operators';\nimport {v4 as uuidv4} from 'uuid';\nimport {IconService} from 'carbon-components-angular';\nimport {Add16, ChevronDown16, ChevronUp16, Close16} from '@carbon/icons';\n\n@Component({\n selector: 'v-multi-input-form',\n templateUrl: './multi-input-form.component.html',\n styleUrls: ['./multi-input-form.component.scss'],\n standalone: false,\n})\nexport class MultiInputFormComponent implements OnInit, OnChanges, OnDestroy {\n @Input() name = '';\n @Input() title = '';\n @Input() titleTranslationKey = '';\n @Input() type: MultiInputType = 'value';\n @Input() initialAmountOfRows = 1;\n @Input() minimumAmountOfRows = 1;\n @Input() maxRows = null;\n @Input() addRowText = '';\n @Input() addRowTranslationKey = '';\n @Input() deleteRowText = '';\n @Input() deleteRowTranslationKey = '';\n @Input() disabled = false;\n @Input() defaultValues!: Array<FormOutput>;\n @Input() margin = false;\n @Input() tooltip = '';\n @Input() required = false;\n @Input() formTemplate!: TemplateRef<any>;\n @Output() valueChange: EventEmitter<Array<FormOutput>> = new EventEmitter();\n @Output() deleteRowEvent: EventEmitter<string> = new EventEmitter();\n\n readonly values$ = new BehaviorSubject<MultiInputFormsValues>([]);\n\n readonly mappedValues$: Observable<Array<FormOutput>> = this.values$.pipe(\n map(values => values.map(value => value.value))\n );\n\n readonly addRowEnabled$: Observable<boolean> = this.values$.pipe(\n map(values => !!(this.maxRows === null || values.length < this.maxRows))\n );\n\n public initialDefaultValues$ = new BehaviorSubject<MultiInputFormsValues>([]);\n\n private valuesSubscription!: Subscription;\n\n constructor(private readonly iconService: IconService) {}\n\n ngOnInit(): void {\n const initialValues = this.getInitialRows();\n this.initialDefaultValues$.next(initialValues);\n this.values$.next(initialValues);\n this.openValuesSubscription();\n this.iconService.registerAll([ChevronUp16, ChevronDown16, Close16, Add16]);\n }\n\n ngOnChanges(): void {\n const initialValues = this.getInitialRows();\n this.initialDefaultValues$.next(initialValues);\n this.values$.next(initialValues);\n this.openValuesSubscription();\n }\n\n ngOnDestroy(): void {\n this.valuesSubscription?.unsubscribe();\n }\n\n addRow(): void {\n combineLatest([this.values$, this.addRowEnabled$])\n .pipe(take(1))\n .subscribe(([values, addRowEnabled]) => {\n if (addRowEnabled) {\n const newValues = [\n ...values?.map(value => ({...value, expanded: false})),\n this.getEmptyValue(),\n ];\n this.values$.next(newValues);\n }\n });\n }\n\n deleteRow(uuid: string): void {\n this.values$.pipe(take(1)).subscribe(values => {\n if (values.length > this.minimumAmountOfRows) {\n this.deleteRowEvent.emit(uuid);\n\n this.values$.next(values.filter(value => value.uuid !== uuid));\n }\n });\n }\n\n toggleRow(uuid: string, expanded: boolean): void {\n if (expanded) {\n this.collapseRow(uuid);\n } else {\n this.expandRow(uuid);\n }\n }\n\n expandRow(uuid: string): void {\n this.values$.pipe(take(1)).subscribe(values => {\n this.values$.next(\n values.map(value =>\n value.uuid === uuid ? {...value, expanded: true} : {...value, expanded: false}\n )\n );\n });\n }\n\n collapseRow(uuid: string): void {\n this.values$.pipe(take(1)).subscribe(values => {\n this.values$.next(\n values.map(value => (value.uuid === uuid ? {...value, expanded: false} : value))\n );\n });\n }\n\n trackByFn(index: number, value: MultiInputFormValue): string {\n return `${value.uuid}`;\n }\n\n formValueChange = (newValue: FormOutput, rowUuid: string): void => {\n const currentValues = this.values$.getValue();\n const newValues: MultiInputFormsValues = [];\n\n currentValues.forEach(value => {\n if (value.uuid === rowUuid) {\n newValues.push({uuid: value.uuid, value: newValue, expanded: value.expanded});\n } else {\n newValues.push(value);\n }\n });\n\n this.values$.next(newValues);\n };\n\n getFirstValue(rowValue: MultiInputFormValue): string {\n const formValue = rowValue.value as any;\n const firstKey = Object.keys(formValue)[0];\n const firstValue: string = formValue[firstKey];\n return firstValue ? `${firstValue}` : '-';\n }\n\n private getInitialRows(): MultiInputFormsValues {\n const minimumRows = this.minimumAmountOfRows;\n const initialRows = this.initialAmountOfRows;\n const amountOfInitalRows =\n minimumRows > initialRows ? minimumRows : initialRows > 1 ? initialRows : 0;\n const fillArray = new Array(amountOfInitalRows);\n\n if (this.defaultValues) {\n return this.defaultValues.map(defaultValue => ({\n value: defaultValue,\n uuid: uuidv4(),\n expanded: false,\n }));\n }\n\n return fillArray\n .fill(this.getEmptyValue())\n .map((row, index) =>\n index + 1 === fillArray.length ? {...row, expanded: true} : {...row, expanded: false}\n );\n }\n\n private getEmptyValue(): MultiInputFormValue {\n return {\n expanded: true,\n value: {},\n uuid: uuidv4(),\n };\n }\n\n private openValuesSubscription(): void {\n this.valuesSubscription?.unsubscribe();\n this.valuesSubscription = this.values$.subscribe(values => {\n this.valueChange.emit(values);\n });\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div\n class=\"v-multi-input\"\n [ngClass]=\"{'v-multi-input--margin': margin}\"\n *ngIf=\"{\n addRowText:\n addRowText || addRowTranslationKey\n ? addRowTranslationKey\n ? (addRowTranslationKey | translate)\n : addRowText\n : ('interface.addRow' | translate),\n deleteRowText:\n deleteRowText || deleteRowTranslationKey\n ? deleteRowTranslationKey\n ? (deleteRowTranslationKey | translate)\n : deleteRowText\n : ('interface.deleteRow' | translate),\n } as vars\"\n>\n <v-input-label\n *ngIf=\"title || titleTranslationKey\"\n [title]=\"title\"\n [titleTranslationKey]=\"titleTranslationKey\"\n [name]=\"name\"\n [tooltip]=\"tooltip\"\n [required]=\"required\"\n >\n </v-input-label>\n <div class=\"v-multi-input__rows\" #rows>\n <div\n class=\"v-multi-input__row\"\n *ngFor=\"let value of values$ | async as values; trackBy: trackByFn; let i = index\"\n >\n <div\n class=\"full-width\"\n [ngClass]=\"{'v-multi-input__row-form--invisible': value.expanded === false}\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n formTemplate;\n context: {\n index: i,\n changeFunction: formValueChange,\n uuid: value.uuid,\n prefill: initialDefaultValues$ | defaultValue: value.uuid | async,\n }\n \"\n ></ng-container>\n </div>\n <div *ngIf=\"value.expanded === false\">\n <v-paragraph>{{ getFirstValue(value) }}</v-paragraph>\n </div>\n <div class=\"v-multi-input__buttons\">\n <div class=\"v-multi-input__toggle-button\">\n <cds-icon-button\n (click)=\"toggleRow(value.uuid, value.expanded)\"\n size=\"sm\"\n [title]=\"\n value.expanded ? ('interface.collapse' | translate) : ('interface.expand' | translate)\n \"\n >\n <svg\n [cdsIcon]=\"value.expanded === true ? 'chevron--up' : 'chevron--down'\"\n size=\"16\"\n ></svg>\n </cds-icon-button>\n </div>\n\n <div class=\"v-multi-input__delete-button\">\n <cds-icon-button\n [disabled]=\"values?.length <= this.minimumAmountOfRows || disabled\"\n (click)=\"deleteRow(value.uuid)\"\n size=\"sm\"\n kind=\"danger\"\n [title]=\"vars.deleteRowText\"\n >\n <svg cdsIcon=\"close\" size=\"16\"></svg>\n </cds-icon-button>\n </div>\n </div>\n </div>\n <div class=\"v-multi-input__add-button\">\n <button\n cdsButton\n (click)=\"addRow()\"\n [title]=\"vars.addRowText\"\n [disabled]=\"(addRowEnabled$ | async) === false || disabled\"\n >\n <svg cdsIcon=\"add\" size=\"16\"></svg>\n\n {{ vars.addRowText }}\n </button>\n </div>\n </div>\n</div>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges,\n} from '@angular/core';\nimport {BehaviorSubject, Observable, Subscription} from 'rxjs';\nimport {RadioValue} from '../../models';\n\n@Component({\n selector: 'v-radio',\n templateUrl: './radio.component.html',\n styleUrls: ['./radio.component.scss'],\n standalone: false,\n})\nexport class RadioComponent implements OnInit, OnChanges, OnDestroy {\n @Input() name = '';\n @Input() title = '';\n @Input() titleTranslationKey = '';\n @Input() defaultValue = '';\n @Input() widthPx!: number;\n @Input() fullWidth = false;\n @Input() margin = false;\n @Input() smallMargin = false;\n @Input() disabled = false;\n @Input() tooltip = '';\n @Input() required = false;\n @Input() smallLabel = false;\n @Input() rows!: number;\n @Input() clear$!: Observable<null>;\n @Input() radioValues: Array<RadioValue> = [];\n\n @Output() valueChange: EventEmitter<any> = new EventEmitter();\n\n radioValue$ = new BehaviorSubject<any>(undefined);\n\n private valueSubscription!: Subscription;\n private clearSubscription!: Subscription;\n\n ngOnInit(): void {\n this.setDefaultValue(this.defaultValue);\n this.openValueSubscription();\n this.openClearSubscription();\n }\n\n onValueChange(value: any): void {\n this.radioValue$.next(value);\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n const currentDefaultValue = changes?.defaultValue?.currentValue;\n\n if (currentDefaultValue) {\n this.setDefaultValue(currentDefaultValue);\n }\n }\n\n ngOnDestroy(): void {\n this.valueSubscription?.unsubscribe();\n this.clearSubscription?.unsubscribe();\n }\n\n stopRadioEventPropagation(event: MouseEvent): void {\n event.stopPropagation();\n }\n\n private setDefaultValue(value: any): void {\n this.radioValue$.next(value);\n }\n\n private openValueSubscription(): void {\n this.radioValue$.subscribe(value => {\n this.valueChange.emit(value);\n });\n }\n\n private openClearSubscription(): void {\n if (this.clear$) {\n this.clearSubscription = this.clear$.subscribe(() => {\n this.onValueChange('');\n });\n }\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div\n class=\"v-input-container\"\n [ngClass]=\"{\n 'v-input--margin': margin,\n 'v-input--small-margin': smallMargin,\n }\"\n (click)=\"stopRadioEventPropagation($event)\"\n>\n <ng-container *ngTemplateOutlet=\"inputTitle\"></ng-container>\n <ng-container *ngTemplateOutlet=\"radioInput\"></ng-container>\n</div>\n\n<ng-template #inputTitle>\n <v-input-label\n *ngIf=\"title || titleTranslationKey\"\n [title]=\"title\"\n [titleTranslationKey]=\"titleTranslationKey\"\n [name]=\"name\"\n [tooltip]=\"tooltip\"\n [required]=\"required\"\n [small]=\"smallLabel\"\n >\n </v-input-label>\n</ng-template>\n\n<ng-template #radioInput>\n <cds-radio-group\n [name]=\"name\"\n [disabled]=\"disabled\"\n [ngModel]=\"radioValue$ | async\"\n (ngModelChange)=\"onValueChange($event)\"\n >\n <cds-radio *ngFor=\"let radio of radioValues\" [value]=\"radio.value\" [disabled]=\"radio.disabled\">\n {{ radio.titleTranslationKey ? (radio.titleTranslationKey | translate) : radio.title }}\n </cds-radio>\n </cds-radio-group>\n</ng-template>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n AfterContentInit,\n Component,\n ContentChildren,\n EventEmitter,\n Input,\n OnDestroy,\n Output,\n QueryList,\n} from '@angular/core';\nimport {InputComponent} from '../input/input.component';\nimport {combineLatest, of, startWith, Subscription} from 'rxjs';\nimport {tap} from 'rxjs/operators';\nimport {FormOutput} from '../../models';\nimport {SelectComponent} from '../select/select.component';\nimport {CarbonMultiInputComponent} from '../multi-input/carbon-multi-input.component';\nimport {DatePickerComponent} from '../date-picker/date-picker.component';\nimport {MultiInputFormComponent} from '../multi-input-form/multi-input-form.component';\nimport {RadioComponent} from '../radio/radio.component';\nimport {ValuePathSelectorComponent} from '../value-path-selector/value-path-selector.component';\n\n@Component({\n selector: 'v-form',\n templateUrl: './form.component.html',\n styleUrls: ['./form.component.scss'],\n standalone: false,\n})\nexport class FormComponent implements AfterContentInit, OnDestroy {\n @ContentChildren(InputComponent) inputComponents!: QueryList<InputComponent>;\n @ContentChildren(SelectComponent) selectComponents!: QueryList<SelectComponent>;\n @ContentChildren(CarbonMultiInputComponent)\n multiInputComponents!: QueryList<CarbonMultiInputComponent>;\n @ContentChildren(DatePickerComponent) datePickerComponents!: QueryList<DatePickerComponent>;\n @ContentChildren(MultiInputFormComponent)\n multiInputFormComponents!: QueryList<MultiInputFormComponent>;\n @ContentChildren(RadioComponent)\n radioComponents!: QueryList<RadioComponent>;\n @ContentChildren(ValuePathSelectorComponent)\n valuePathSelectorComponents!: QueryList<ValuePathSelectorComponent>;\n @Input() className = '';\n\n @Output() valueChange: EventEmitter<FormOutput> = new EventEmitter();\n\n private componentValuesSubscription!: Subscription;\n private changesSubscription!: Subscription;\n private prevValuesObject?: FormOutput = undefined;\n\n ngAfterContentInit(): void {\n this.openChangesSubscription();\n }\n\n ngOnDestroy(): void {\n this.closeComponentValuesSubscription();\n this.changesSubscription?.unsubscribe();\n }\n\n onContentChange(): void {\n this.openComponentValuesSubscription();\n }\n\n private openComponentValuesSubscription(): void {\n const valueComponents = [\n ...this.inputComponents?.toArray(),\n ...this.selectComponents?.toArray(),\n ...this.multiInputComponents?.toArray(),\n ...this.datePickerComponents?.toArray(),\n ...this.multiInputFormComponents?.toArray(),\n ...this.radioComponents?.toArray(),\n ...this.valuePathSelectorComponents?.toArray(),\n ];\n\n this.componentValuesSubscription = combineLatest(\n valueComponents.map(component => {\n const inputComponent = component as InputComponent;\n const selectComponent = component as SelectComponent;\n const multiInputComponent = component as CarbonMultiInputComponent;\n const datePickerComponent = component as DatePickerComponent;\n const multiInputFormComponent = component as MultiInputFormComponent;\n const radioComponent = component as RadioComponent;\n const valuePathSelectorComponent = component as ValuePathSelectorComponent;\n\n if (selectComponent?.selected$) {\n return selectComponent.selected$.asObservable();\n } else if (multiInputComponent?.mappedValues$) {\n return multiInputComponent.mappedValues$;\n } else if (multiInputFormComponent?.mappedValues$) {\n return multiInputFormComponent.mappedValues$;\n } else if (datePickerComponent?.dateValue$) {\n return datePickerComponent.dateValue$;\n } else if (radioComponent?.radioValue$) {\n return radioComponent.radioValue$;\n } else if (inputComponent?.inputValue$) {\n return inputComponent.inputValue$.asObservable();\n } else if (valuePathSelectorComponent?._selectedPath$) {\n return valuePathSelectorComponent._selectedPath$;\n }\n\n return of(null);\n })\n )\n .pipe(\n tap(inputValues => {\n const valuesObject: FormOutput = {};\n\n valueComponents.forEach((component, index) => {\n valuesObject[component.name] = inputValues[index];\n });\n\n if (JSON.stringify(this.prevValuesObject) !== JSON.stringify(inputValues)) {\n this.prevValuesObject = inputValues;\n this.valueChange.emit(valuesObject);\n }\n })\n )\n .subscribe();\n }\n\n private closeComponentValuesSubscription(): void {\n this.componentValuesSubscription?.unsubscribe();\n }\n\n private openChangesSubscription(): void {\n this.changesSubscription = combineLatest([\n this.inputComponents.changes.pipe(startWith(null)),\n this.selectComponents.changes.pipe(startWith(null)),\n this.multiInputComponents.changes.pipe(startWith(null)),\n this.datePickerComponents.changes.pipe(startWith(null)),\n this.multiInputFormComponents.changes.pipe(startWith(null)),\n this.radioComponents.changes.pipe(startWith(null)),\n this.valuePathSelectorComponents.changes.pipe(startWith(null)),\n ]).subscribe(() => {\n this.closeComponentValuesSubscription();\n this.openComponentValuesSubscription();\n });\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<form [ngClass]=\"'v-form ' + className\" onsubmit=\"return false;\">\n <ng-content></ng-content>\n</form>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, EventEmitter, Input, OnDestroy, OnInit, Output} from '@angular/core';\nimport {\n SearchField,\n SearchFieldBoolean,\n SearchFieldValue,\n SearchFieldValues,\n} from '@valtimo/shared';\nimport {BehaviorSubject, combineLatest, map, Observable, Subject, Subscription, take} from 'rxjs';\nimport {SelectItem} from '../../models';\nimport {TranslateService} from '@ngx-translate/core';\nimport {DocumentService} from '@valtimo/document';\nimport {IconService} from 'carbon-components-angular';\nimport {ChevronDown16, ChevronUp16} from '@carbon/icons';\n\n@Component({\n selector: 'valtimo-search-fields',\n templateUrl: './search-fields.component.html',\n styleUrls: ['./search-fields.component.scss'],\n standalone: false,\n})\nexport class SearchFieldsComponent implements OnInit, OnDestroy {\n @Input() public loading!: boolean;\n @Input() public set searchFields(fields: Array<SearchField>) {\n this.searchFields$.next(fields);\n }\n private readonly _caseDefinitionKey$ = new BehaviorSubject<string>('');\n @Input() public set caseDefinitionKey(value: string) {\n this._caseDefinitionKey$.pipe(take(1)).subscribe(currentCaseDefinitionKey => {\n if (currentCaseDefinitionKey !== value) {\n this._caseDefinitionKey$.next(value);\n }\n });\n }\n @Input() public setValuesSubject$!: Observable<SearchFieldValues>;\n @Input() public clearValuesSubject$!: Observable<null>;\n private _defaultValues: SearchFieldValues;\n @Input() public set defaultValues(value: SearchFieldValues) {\n this._defaultValues = value;\n this.setDefaultValues();\n }\n public get defaultValues(): SearchFieldValues {\n return this._defaultValues;\n }\n @Input() public disableSaveSearch: boolean;\n @Input() public inputDisabled = false;\n @Input() public externalSearchField = false;\n @Input() public canSaveSearch = false;\n\n @Output() public readonly doSearch: EventEmitter<SearchFieldValues> =\n new EventEmitter<SearchFieldValues>();\n @Output() public readonly saveSearchEvent = new EventEmitter<SearchFieldValues>();\n @Output() public readonly clearEvent = new EventEmitter();\n\n public readonly searchFields$ = new BehaviorSubject<Array<SearchField>>([]);\n public readonly values$ = new BehaviorSubject<SearchFieldValues>({});\n public readonly hasValidValues$: Observable<boolean> = this.values$.pipe(\n map(values => {\n const hasValues = (Object.keys(values) || []).length > 0;\n const rangeValues =\n (hasValues && Object.values(values)?.filter(value => (value as any).start)) || [];\n const validRangeValues = rangeValues?.filter(\n value => (value as any).start < (value as any).end\n );\n\n return !!(hasValues && rangeValues.length === validRangeValues.length);\n })\n );\n public readonly expanded$ = new BehaviorSubject<boolean>(false);\n public readonly clear$ = new Subject<null>();\n\n public readonly isSearchEmpty$ = this.values$.pipe(\n map(\n (searchFieldValues: SearchFieldValues) =>\n !Object.values(searchFieldValues).some((value: SearchFieldValue) => !!value)\n )\n );\n\n private readonly _subscriptions = new Subscription();\n\n private readonly BOOLEAN_POSITIVE: SearchFieldBoolean = 'booleanPositive';\n private readonly BOOLEAN_NEGATIVE: SearchFieldBoolean = 'booleanNegative';\n\n private readonly _BOOLEAN_TYPES: Array<SearchFieldBoolean> = [\n this.BOOLEAN_POSITIVE,\n this.BOOLEAN_NEGATIVE,\n ];\n public readonly booleanItems$: Observable<Array<SelectItem>> = this.translateService\n .stream('key')\n .pipe(\n map(() =>\n this._BOOLEAN_TYPES.map(type => ({\n id: type,\n text: this.translateService.instant(`searchFields.${type}`),\n }))\n )\n );\n\n public readonly dropdownSelectItemsMap: Map<string, Array<SelectItem>> = new Map();\n\n constructor(\n private readonly documentService: DocumentService,\n private readonly translateService: TranslateService,\n private readonly iconService: IconService\n ) {\n this.iconService.registerAll([ChevronDown16, ChevronUp16]);\n }\n\n public ngOnInit(): void {\n this.openCaseDefinitionKeySubscription();\n this.openValuesSubjectSubscription();\n this.openClearSubscription();\n this.openDropdownSubscription();\n this.setDefaultValues();\n }\n\n public ngOnDestroy(): void {\n this.collapse();\n this._subscriptions.unsubscribe();\n }\n\n public singleValueChange(searchFieldKey: string, value: any, isDateTime?: boolean): void {\n this.values$.pipe(take(1)).subscribe(values => {\n if (value || Number.isInteger(value)) {\n this.values$.next({...values, [searchFieldKey]: this.getSingleValue(value, isDateTime)});\n } else if (Object.keys(values).includes(searchFieldKey)) {\n const valuesCopy = {...values};\n delete valuesCopy[searchFieldKey];\n this.values$.next(valuesCopy);\n }\n });\n }\n\n public multipleValueChange(searchFieldKey: string, value: any, isDateTime?: boolean): void {\n this.values$.pipe(take(1)).subscribe(values => {\n if (value.start && value.end) {\n this.values$.next({\n ...values,\n [searchFieldKey]: {\n start: this.getSingleValue(value.start, isDateTime),\n end: this.getSingleValue(value.end, isDateTime),\n },\n });\n } else if (Array.isArray(value) && value.length > 0) {\n this.values$.next({\n ...values,\n [searchFieldKey]: value.map(v => this.getSingleValue(v, isDateTime)),\n });\n } else if (values[searchFieldKey]) {\n const valuesCopy = {...values};\n delete valuesCopy[searchFieldKey];\n this.values$.next(valuesCopy);\n }\n });\n }\n\n public toggleExpanded(): void {\n this.expanded$.pipe(take(1)).subscribe(expanded => {\n this.expanded$.next(!expanded);\n });\n }\n\n public search(): void {\n this.values$.pipe(take(1)).subscribe(values => {\n this.doSearch.emit(values);\n });\n }\n\n public clear(): void {\n this.clear$.next(null);\n this.doSearch.emit({});\n this.clearEvent.emit();\n }\n\n public getDefaultBooleanSelectionId(\n values: SearchFieldValues,\n searchFieldKey: string\n ): string | null {\n const searchFieldValue = values[searchFieldKey];\n\n if (searchFieldValue === true) {\n return this.BOOLEAN_POSITIVE;\n } else if (searchFieldValue === false) {\n return this.BOOLEAN_NEGATIVE;\n }\n return null;\n }\n\n public saveSearch(): void {\n this.values$.pipe(take(1)).subscribe(values => this.saveSearchEvent.emit(values));\n }\n\n private getSingleValue(value: any, isDateTime?: boolean): any {\n if (isDateTime) {\n return new Date(value).toISOString();\n }\n if (value === this.BOOLEAN_POSITIVE) {\n return true;\n }\n if (value === this.BOOLEAN_NEGATIVE) {\n return false;\n }\n\n return value;\n }\n\n private openCaseDefinitionKeySubscription(): void {\n this._subscriptions.add(\n this._caseDefinitionKey$.subscribe(() => {\n this.collapse();\n this.clear();\n })\n );\n }\n\n private openValuesSubjectSubscription(): void {\n if (this.setValuesSubject$) {\n this._subscriptions.add(\n this.setValuesSubject$.subscribe(values => {\n if (Object.keys(values || {}).length > 0) {\n this.values$.next(values);\n this.search();\n this.expand();\n }\n })\n );\n }\n }\n\n private openClearSubscription(): void {\n if (this.clearValuesSubject$) {\n this._subscriptions.add(\n this.clearValuesSubject$.subscribe(values => {\n this.values$.next({});\n this.search();\n })\n );\n }\n }\n\n private openDropdownSubscription(): void {\n this._subscriptions.add(\n combineLatest([this._caseDefinitionKey$, this.searchFields$])\n .pipe(\n map(([caseDefinitionKey, searchFields]) =>\n searchFields\n ?.filter(searchField => searchField.dropdownDataProvider)\n .map(searchField =>\n this.documentService\n .getDropdownData(\n searchField.dropdownDataProvider,\n caseDefinitionKey,\n searchField.key\n )\n .subscribe(dropdownData => {\n if (dropdownData) {\n this.dropdownSelectItemsMap[searchField.key] = Object.keys(dropdownData).map(\n dropdownFieldKey => ({\n id: dropdownFieldKey,\n text: dropdownData[dropdownFieldKey],\n })\n );\n } else {\n this.dropdownSelectItemsMap[searchField.key] = [];\n }\n })\n )\n )\n )\n .subscribe()\n );\n }\n\n private collapse(): void {\n this.expanded$.next(false);\n }\n\n private expand(): void {\n this.expanded$.next(true);\n }\n\n private setDefaultValues(): void {\n if (\n this.defaultValues &&\n typeof this.defaultValues === 'object' &&\n !!Object.keys(this.defaultValues).length\n ) {\n this.values$.next(this.defaultValues);\n this.search();\n this.expand();\n }\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n<ng-container *ngIf=\"loading\">\n <ng-container *ngTemplateOutlet=\"loadingTemplate\"></ng-container>\n</ng-container>\n\n<ng-container *ngIf=\"!loading\">\n <cds-accordion>\n <cds-accordion-item\n [title]=\"'searchFields.searchButtonText' | translate\"\n (selected)=\"toggleExpanded()\"\n [expanded]=\"expanded$ | async\"\n >\n <ng-container *ngTemplateOutlet=\"searchFieldsTemplate\"></ng-container>\n </cds-accordion-item>\n </cds-accordion>\n</ng-container>\n\n<ng-template #loadingTemplate>\n <div class=\"loading-container\"><cds-loading></cds-loading></div>\n</ng-template>\n\n<ng-template #searchFieldsTemplate>\n <ng-container *ngIf=\"searchFields$ | async as searchFields\">\n <ng-container\n *ngIf=\"{\n noSearchFields: (!searchFields || searchFields.length === 0) && !externalSearchField,\n } as vars\"\n >\n <div\n *ngIf=\"!vars.noSearchFields\"\n class=\"search-fields-container\"\n [ngClass]=\"{'search-fields-container--hidden': (expanded$ | async) === false}\"\n [cdsLayer]=\"1\"\n >\n <ng-content></ng-content>\n\n <ng-container *ngFor=\"let searchField of searchFields\">\n <div class=\"search-field-container\">\n <ng-container\n *ngTemplateOutlet=\"searchFieldTemplate; context: {searchField: searchField}\"\n ></ng-container>\n </div>\n </ng-container>\n </div>\n\n <div class=\"meta-container\" *ngIf=\"expanded$ | async\">\n <ng-container\n *ngTemplateOutlet=\"buttonsTemplate; context: {noSearchFields: vars.noSearchFields}\"\n ></ng-container>\n </div>\n </ng-container>\n </ng-container>\n</ng-template>\n\n<ng-template #searchFieldTemplate let-searchField=\"searchField\">\n <ng-container\n *ngIf=\"{\n values: values$ | async,\n tooltipKey: 'searchFieldsTooltips.' + searchField.key,\n tooltip: 'searchFieldsTooltips.' + searchField.key | translate,\n searchField,\n title:\n searchField.title ||\n ('searchFields.' + searchField.key !== ('searchFields.' + searchField.key | translate)\n ? ('searchFields.' + searchField.key | translate)\n : searchField.key),\n } as vars\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n searchFieldTemplateText;\n context: {\n searchField: searchField,\n tooltipKey: vars.tooltipKey,\n tooltip: vars.tooltip,\n title: vars.title,\n values: vars.values,\n }\n \"\n ></ng-container>\n <ng-container\n *ngTemplateOutlet=\"\n searchFieldTemplateNumber;\n context: {\n searchField: searchField,\n tooltipKey: vars.tooltipKey,\n tooltip: vars.tooltip,\n title: vars.title,\n values: vars.values,\n }\n \"\n ></ng-container>\n <ng-container\n *ngTemplateOutlet=\"\n searchFieldTemplateDate;\n context: {\n searchField: searchField,\n tooltipKey: vars.tooltipKey,\n tooltip: vars.tooltip,\n title: vars.title,\n values: vars.values,\n }\n \"\n ></ng-container>\n <ng-container\n *ngTemplateOutlet=\"\n searchFieldTemplateBoolean;\n context: {\n searchField: searchField,\n tooltipKey: vars.tooltipKey,\n tooltip: vars.tooltip,\n title: vars.title,\n values: vars.values,\n }\n \"\n ></ng-container>\n <ng-container\n *ngTemplateOutlet=\"\n searchFieldTemplateDateTime;\n context: {\n searchField: searchField,\n tooltipKey: vars.tooltipKey,\n tooltip: vars.tooltip,\n title: vars.title,\n values: vars.values,\n }\n \"\n ></ng-container>\n <ng-container\n *ngTemplateOutlet=\"\n searchFieldTemplateNumberRange;\n context: {\n searchField: searchField,\n tooltipKey: vars.tooltipKey,\n tooltip: vars.tooltip,\n title: vars.title,\n values: vars.values,\n }\n \"\n ></ng-container>\n <ng-container\n *ngTemplateOutlet=\"\n searchFieldTemplateTextRange;\n context: {\n searchField: searchField,\n tooltipKey: vars.tooltipKey,\n tooltip: vars.tooltip,\n title: vars.title,\n values: vars.values,\n }\n \"\n ></ng-container>\n <ng-container\n *ngTemplateOutlet=\"\n searchFieldTemplateDateRange;\n context: {\n searchField: searchField,\n tooltipKey: vars.tooltipKey,\n tooltip: vars.tooltip,\n title: vars.title,\n values: vars.values,\n }\n \"\n ></ng-container>\n <ng-container\n *ngTemplateOutlet=\"\n searchFieldTemplateDateTimeRange;\n context: {\n searchField: searchField,\n tooltipKey: vars.tooltipKey,\n tooltip: vars.tooltip,\n title: vars.title,\n values: vars.values,\n }\n \"\n ></ng-container>\n <ng-container\n *ngTemplateOutlet=\"\n searchFieldTemplateSingleSelectDropdown;\n context: {\n searchField: searchField,\n tooltipKey: vars.tooltipKey,\n tooltip: vars.tooltip,\n title: vars.title,\n values: vars.values,\n }\n \"\n ></ng-container>\n <ng-container\n *ngTemplateOutlet=\"\n searchFieldTemplateMultiSelectDropdown;\n context: {\n searchField: searchField,\n tooltipKey: vars.tooltipKey,\n tooltip: vars.tooltip,\n title: vars.title,\n values: vars.values,\n }\n \"\n ></ng-container>\n </ng-container>\n</ng-template>\n\n<ng-template\n #searchFieldTemplateText\n let-searchField=\"searchField\"\n let-tooltip=\"tooltip\"\n let-tooltipKey=\"tooltipKey\"\n let-title=\"title\"\n let-values=\"values\"\n>\n <v-input\n *ngIf=\"searchField.dataType === 'text' && searchField.fieldType === 'single'\"\n [dataTestId]=\"'search-field-' + searchField.key\"\n [name]=\"searchField.key\"\n [title]=\"title\"\n [fullWidth]=\"true\"\n [tooltip]=\"tooltip !== tooltipKey && tooltip\"\n (valueChange)=\"singleValueChange(searchField.key, $event)\"\n [smallLabel]=\"true\"\n [clear$]=\"clear$\"\n (keyup.enter)=\"search()\"\n [defaultValue]=\"values[searchField.key]\"\n [disabled]=\"inputDisabled\"\n >\n </v-input>\n</ng-template>\n\n<ng-template\n #searchFieldTemplateNumber\n let-searchField=\"searchField\"\n let-tooltip=\"tooltip\"\n let-tooltipKey=\"tooltipKey\"\n let-title=\"title\"\n let-values=\"values\"\n>\n <v-input\n *ngIf=\"searchField.dataType === 'number' && searchField.fieldType === 'single'\"\n [dataTestId]=\"'search-field-' + searchField.key\"\n [name]=\"searchField.key\"\n [title]=\"title\"\n [fullWidth]=\"true\"\n (valueChange)=\"singleValueChange(searchField.key, $event)\"\n type=\"number\"\n [hideNumberSpinBox]=\"true\"\n [tooltip]=\"tooltip !== tooltipKey && tooltip\"\n [smallLabel]=\"true\"\n [clear$]=\"clear$\"\n (keyup.enter)=\"search()\"\n [defaultValue]=\"values[searchField.key]\"\n [disabled]=\"inputDisabled\"\n >\n </v-input>\n</ng-template>\n\n<ng-template\n #searchFieldTemplateDate\n let-searchField=\"searchField\"\n let-tooltip=\"tooltip\"\n let-tooltipKey=\"tooltipKey\"\n let-title=\"title\"\n let-values=\"values\"\n>\n <v-date-picker\n *ngIf=\"searchField.dataType === 'date' && searchField.fieldType === 'single'\"\n [title]=\"title\"\n [tooltip]=\"tooltip !== tooltipKey && tooltip\"\n [name]=\"searchField.key\"\n fullWidth=\"true\"\n (valueChange)=\"singleValueChange(searchField.key, $event)\"\n [smallLabel]=\"true\"\n [clear$]=\"clear$\"\n (keyup.enter)=\"search()\"\n [defaultDate]=\"values[searchField.key]\"\n [disabled]=\"inputDisabled\"\n ></v-date-picker>\n</ng-template>\n\n<ng-template\n #searchFieldTemplateTextRange\n let-searchField=\"searchField\"\n let-tooltip=\"tooltip\"\n let-tooltipKey=\"tooltipKey\"\n let-title=\"title\"\n let-values=\"values\"\n>\n <ng-container *ngIf=\"searchField.dataType === 'text' && searchField.fieldType === 'range'\">\n <v-input-label\n [title]=\"title\"\n [tooltip]=\"tooltip !== tooltipKey && tooltip\"\n [small]=\"true\"\n ></v-input-label>\n <v-form\n (valueChange)=\"multipleValueChange(searchField.key, $event)\"\n className=\"multiple-search-fields\"\n >\n <v-input\n name=\"start\"\n [dataTestId]=\"'search-field-' + searchField.key\"\n [fullWidth]=\"true\"\n [clear$]=\"clear$\"\n (keyup.enter)=\"search()\"\n [defaultValue]=\"values[searchField.key]?.start\"\n [disabled]=\"inputDisabled\"\n >\n </v-input>\n <ng-container *ngTemplateOutlet=\"toText\"></ng-container>\n <v-input\n name=\"end\"\n [dataTestId]=\"'search-field-' + searchField.key\"\n [fullWidth]=\"true\"\n [clear$]=\"clear$\"\n (keyup.enter)=\"search()\"\n [defaultValue]=\"values[searchField.key]?.end\"\n [disabled]=\"inputDisabled\"\n >\n </v-input>\n </v-form>\n </ng-container>\n</ng-template>\n\n<ng-template\n #searchFieldTemplateNumberRange\n let-searchField=\"searchField\"\n let-tooltip=\"tooltip\"\n let-tooltipKey=\"tooltipKey\"\n let-title=\"title\"\n let-values=\"values\"\n>\n <ng-container *ngIf=\"searchField.dataType === 'number' && searchField.fieldType === 'range'\">\n <v-input-label\n [title]=\"title\"\n [tooltip]=\"tooltip !== tooltipKey && tooltip\"\n [small]=\"true\"\n ></v-input-label>\n <v-form\n (valueChange)=\"multipleValueChange(searchField.key, $event)\"\n className=\"multiple-search-fields\"\n >\n <v-input\n name=\"start\"\n [dataTestId]=\"'search-field-' + searchField.key\"\n [fullWidth]=\"true\"\n type=\"number\"\n [hideNumberSpinBox]=\"true\"\n [clear$]=\"clear$\"\n (keyup.enter)=\"search()\"\n [defaultValue]=\"values[searchField.key]?.start\"\n [disabled]=\"inputDisabled\"\n >\n </v-input>\n <ng-container *ngTemplateOutlet=\"toText\"></ng-container>\n <v-input\n name=\"end\"\n [dataTestId]=\"'search-field-' + searchField.key\"\n [fullWidth]=\"true\"\n type=\"number\"\n [hideNumberSpinBox]=\"true\"\n [clear$]=\"clear$\"\n (keyup.enter)=\"search()\"\n [defaultValue]=\"values[searchField.key]?.end\"\n [disabled]=\"inputDisabled\"\n >\n </v-input>\n </v-form>\n </ng-container>\n</ng-template>\n\n<ng-template\n #searchFieldTemplateDateRange\n let-searchField=\"searchField\"\n let-tooltip=\"tooltip\"\n let-tooltipKey=\"tooltipKey\"\n let-title=\"title\"\n let-values=\"values\"\n>\n <ng-container *ngIf=\"searchField.dataType === 'date' && searchField.fieldType === 'range'\">\n <v-input-label\n [title]=\"title\"\n [tooltip]=\"tooltip !== tooltipKey && tooltip\"\n [small]=\"true\"\n ></v-input-label>\n <v-form\n (valueChange)=\"multipleValueChange(searchField.key, $event)\"\n className=\"multiple-search-fields\"\n >\n <v-date-picker\n name=\"start\"\n fullWidth=\"true\"\n [clear$]=\"clear$\"\n (keyup.enter)=\"search()\"\n [defaultDate]=\"values[searchField.key]?.start\"\n [disabled]=\"inputDisabled\"\n ></v-date-picker>\n <ng-container *ngTemplateOutlet=\"toText\"></ng-container>\n <v-date-picker\n name=\"end\"\n fullWidth=\"true\"\n [clear$]=\"clear$\"\n (keyup.enter)=\"search()\"\n [defaultDate]=\"values[searchField.key]?.end\"\n [disabled]=\"inputDisabled\"\n ></v-date-picker>\n </v-form>\n </ng-container>\n</ng-template>\n\n<ng-template\n #searchFieldTemplateBoolean\n let-searchField=\"searchField\"\n let-tooltip=\"tooltip\"\n let-tooltipKey=\"tooltipKey\"\n let-title=\"title\"\n let-values=\"values\"\n>\n <ng-container *ngIf=\"searchField.dataType === 'boolean'\">\n <v-input-label\n [title]=\"title\"\n [tooltip]=\"tooltip !== tooltipKey && tooltip\"\n [small]=\"true\"\n ></v-input-label>\n <v-select\n *ngIf=\"booleanItems$ | async as booleanItems\"\n [items]=\"booleanItems\"\n [margin]=\"false\"\n [required]=\"false\"\n [name]=\"searchField.key\"\n [clearSelectionSubject$]=\"clear$\"\n (selectedChange)=\"singleValueChange(searchField.key, $event)\"\n (keyup.enter)=\"search()\"\n [defaultSelectionId]=\"getDefaultBooleanSelectionId(values, searchField.key)\"\n [disabled]=\"inputDisabled\"\n [appendInline]=\"false\"\n ></v-select>\n </ng-container>\n</ng-template>\n\n<ng-template\n #searchFieldTemplateDateTime\n let-searchField=\"searchField\"\n let-tooltip=\"tooltip\"\n let-tooltipKey=\"tooltipKey\"\n let-title=\"title\"\n let-values=\"values\"\n>\n <v-date-picker\n *ngIf=\"searchField.dataType === 'datetime' && searchField.fieldType === 'single'\"\n [title]=\"title\"\n [tooltip]=\"tooltip !== tooltipKey && tooltip\"\n [name]=\"searchField.key\"\n fullWidth=\"true\"\n (valueChange)=\"singleValueChange(searchField.key, $event, true)\"\n [smallLabel]=\"true\"\n [enableTime]=\"true\"\n [clear$]=\"clear$\"\n (keyup.enter)=\"search()\"\n [defaultDate]=\"values[searchField.key]\"\n [disabled]=\"inputDisabled\"\n ></v-date-picker>\n</ng-template>\n\n<ng-template\n #searchFieldTemplateDateTimeRange\n let-searchField=\"searchField\"\n let-tooltip=\"tooltip\"\n let-tooltipKey=\"tooltipKey\"\n let-title=\"title\"\n let-values=\"values\"\n>\n <ng-container *ngIf=\"searchField.dataType === 'datetime' && searchField.fieldType === 'range'\">\n <v-input-label\n [title]=\"title\"\n [tooltip]=\"tooltip !== tooltipKey && tooltip\"\n [small]=\"true\"\n ></v-input-label>\n <v-form\n (valueChange)=\"multipleValueChange(searchField.key, $event, true)\"\n className=\"multiple-search-fields\"\n >\n <v-date-picker\n name=\"start\"\n fullWidth=\"true\"\n [enableTime]=\"true\"\n [clear$]=\"clear$\"\n (keyup.enter)=\"search()\"\n [defaultDate]=\"values[searchField.key]?.start\"\n [disabled]=\"inputDisabled\"\n ></v-date-picker>\n <ng-container *ngTemplateOutlet=\"toText\"></ng-container>\n <v-date-picker\n name=\"end\"\n fullWidth=\"true\"\n [enableTime]=\"true\"\n [clear$]=\"clear$\"\n (keyup.enter)=\"search()\"\n [defaultDate]=\"values[searchField.key]?.end\"\n [disabled]=\"inputDisabled\"\n ></v-date-picker>\n </v-form>\n </ng-container>\n</ng-template>\n\n<ng-template\n #searchFieldTemplateSingleSelectDropdown\n let-searchField=\"searchField\"\n let-tooltip=\"tooltip\"\n let-tooltipKey=\"tooltipKey\"\n let-title=\"title\"\n let-values=\"values\"\n>\n <ng-container\n *ngIf=\"\n searchField.dataType === 'text' &&\n (searchField.fieldType === 'single-select-dropdown' ||\n searchField.fieldType === 'single_select_dropdown')\n \"\n >\n <v-input-label\n [title]=\"title\"\n [tooltip]=\"tooltip !== tooltipKey && tooltip\"\n [small]=\"true\"\n ></v-input-label>\n <v-select\n *ngIf=\"dropdownSelectItemsMap[searchField.key] as searchFieldSelectItems\"\n [items]=\"searchFieldSelectItems\"\n [margin]=\"false\"\n [required]=\"false\"\n [name]=\"searchField.key\"\n [clearSelectionSubject$]=\"clear$\"\n (selectedChange)=\"singleValueChange(searchField.key, $event)\"\n (keyup.enter)=\"search()\"\n [defaultSelectionId]=\"values[searchField.key]\"\n [disabled]=\"inputDisabled\"\n [appendInline]=\"false\"\n ></v-select>\n </ng-container>\n</ng-template>\n\n<ng-template\n #searchFieldTemplateMultiSelectDropdown\n let-searchField=\"searchField\"\n let-tooltip=\"tooltip\"\n let-tooltipKey=\"tooltipKey\"\n let-title=\"title\"\n let-values=\"values\"\n>\n <ng-container\n *ngIf=\"\n searchField.dataType === 'text' &&\n (searchField.fieldType === 'multi-select-dropdown' ||\n searchField.fieldType === 'multi_select_dropdown')\n \"\n >\n <v-input-label\n [title]=\"title\"\n [tooltip]=\"tooltip !== tooltipKey && tooltip\"\n [small]=\"true\"\n ></v-input-label>\n <v-select\n *ngIf=\"dropdownSelectItemsMap[searchField.key] as searchFieldSelectItems\"\n [items]=\"searchFieldSelectItems\"\n [margin]=\"false\"\n [multiple]=\"true\"\n [required]=\"false\"\n [name]=\"searchField.key\"\n [clearSelectionSubject$]=\"clear$\"\n (selectedChange)=\"multipleValueChange(searchField.key, $event)\"\n (keyup.enter)=\"search()\"\n [defaultSelectionIds]=\"values[searchField.key]\"\n [disabled]=\"inputDisabled\"\n [appendInline]=\"false\"\n ></v-select>\n </ng-container>\n</ng-template>\n\n<ng-template #toText>\n <div class=\"to-text\">\n <v-paragraph>{{ 'searchFields.to' | translate }}</v-paragraph>\n </div>\n</ng-template>\n\n<ng-template #buttonsTemplate let-noSearchFields=\"noSearchFields\">\n <ng-container\n *ngTemplateOutlet=\"noSearchFieldsTemplate; context: {noSearchFields: noSearchFields}\"\n ></ng-container>\n\n <div\n class=\"buttons-container\"\n *ngIf=\"\n !noSearchFields && {expanded: expanded$ | async, isSearchEmpty: isSearchEmpty$ | async} as obs\n \"\n >\n <div class=\"right-buttons\">\n <button\n *ngIf=\"obs.expanded\"\n cdsButton=\"tertiary\"\n data-testid=\"search-fields-clear-button\"\n (click)=\"clear()\"\n [disabled]=\"loading || noSearchFields || inputDisabled\"\n type=\"button\"\n id=\"clear\"\n >\n <svg cdsIcon=\"trash-can\" size=\"16\" class=\"cds--btn__icon\"></svg>\n\n {{ 'searchFields.clearButtonText' | translate }}\n </button>\n\n <button\n *ngIf=\"obs.expanded && canSaveSearch\"\n cdsButton=\"secondary\"\n data-testid=\"search-fields-save-button\"\n [disabled]=\"disableSaveSearch && obs.isSearchEmpty\"\n (click)=\"saveSearch()\"\n type=\"button\"\n id=\"save\"\n >\n <svg cdsIcon=\"save\" size=\"16\" class=\"cds--btn__icon\"></svg>\n\n {{ 'searchFields.saveButtonText' | translate }}\n </button>\n\n <button\n *ngIf=\"obs.expanded\"\n cdsButton=\"primary\"\n data-testid=\"search-fields-search-button\"\n (click)=\"search()\"\n [disabled]=\"\n loading || noSearchFields || (hasValidValues$ | async) === false || inputDisabled\n \"\n type=\"button\"\n id=\"search\"\n >\n <svg cdsIcon=\"search\" size=\"16\" class=\"cds--btn__icon\"></svg>\n\n {{ 'searchFields.searchButtonText' | translate }}\n </button>\n </div>\n </div>\n</ng-template>\n\n<ng-template #noSearchFieldsTemplate let-noSearchFields=\"noSearchFields\">\n <div class=\"no-search-fields-message\" *ngIf=\"noSearchFields\">\n <v-paragraph dataTestId=\"search-fields-no-fields\" [fullWidth]=\"true\" [center]=\"true\">{{\n 'searchFields.noneConfigured' | translate\n }}</v-paragraph>\n </div>\n</ng-template>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {DatePickerComponent} from './date-picker.component';\nimport {FormsModule} from '@angular/forms';\nimport {InputLabelModule} from '../input-label/input-label.module';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {InputModule} from 'carbon-components-angular';\n\n/**\n * @deprecated Migrate old design to Carbon\n */\n@NgModule({\n declarations: [DatePickerComponent],\n imports: [CommonModule, InputLabelModule, FormsModule, TranslateModule, InputModule],\n exports: [DatePickerComponent],\n})\nexport class DatePickerModule {}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {FormComponent} from './form.component';\n\n@NgModule({\n declarations: [FormComponent],\n imports: [CommonModule],\n exports: [FormComponent],\n})\nexport class FormModule {}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {FormsModule} from '@angular/forms';\nimport {InputComponent} from './input.component';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {InputLabelModule} from '../input-label/input-label.module';\nimport {\n ButtonModule,\n CheckboxModule,\n IconModule,\n InputModule as CarbonInputModule,\n} from 'carbon-components-angular';\nimport {DigitOnlyDirective} from '../../directives/digit-only/digit-only.directive';\n\n@NgModule({\n declarations: [InputComponent, DigitOnlyDirective],\n imports: [\n CommonModule,\n TranslateModule,\n FormsModule,\n InputLabelModule,\n ButtonModule,\n CheckboxModule,\n CarbonInputModule,\n IconModule,\n ],\n exports: [InputComponent],\n})\nexport class InputModule {}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {SelectComponent} from './select.component';\nimport {FormsModule} from '@angular/forms';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {InputLabelModule} from '../input-label/input-label.module';\nimport {ComboBoxModule} from 'carbon-components-angular';\n\n@NgModule({\n declarations: [SelectComponent],\n imports: [CommonModule, FormsModule, TranslateModule, InputLabelModule, ComboBoxModule],\n exports: [SelectComponent],\n})\nexport class SelectModule {}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {SearchFieldsComponent} from './search-fields.component';\nimport {SpinnerModule} from '../spinner/spinner.module';\nimport {WidgetModule} from '../widget/widget.module';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {DatePickerModule} from '../date-picker/date-picker.module';\nimport {FormModule} from '../form/form.module';\nimport {InputLabelModule} from '../input-label/input-label.module';\nimport {InputModule} from '../input/input.module';\nimport {ParagraphModule} from '../paragraph/paragraph.module';\nimport {SelectModule} from '../select/select.module';\nimport {\n AccordionModule,\n ButtonModule,\n IconModule,\n LayerModule,\n LoadingModule,\n} from 'carbon-components-angular';\n\n@NgModule({\n declarations: [SearchFieldsComponent],\n imports: [\n CommonModule,\n SpinnerModule,\n WidgetModule,\n TranslateModule,\n InputModule,\n FormModule,\n DatePickerModule,\n InputLabelModule,\n ParagraphModule,\n ButtonModule,\n SelectModule,\n AccordionModule,\n LayerModule,\n ButtonModule,\n IconModule,\n LoadingModule,\n ],\n exports: [SearchFieldsComponent],\n})\nexport class SearchFieldsModule {}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {CommonModule} from '@angular/common';\nimport {AfterViewInit, Component, EventEmitter, HostBinding, Input, Output} from '@angular/core';\nimport {FormsModule} from '@angular/forms';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {\n DatePickerModule,\n InputModule,\n LayerModule,\n TimePickerModule,\n} from 'carbon-components-angular';\nimport {BehaviorSubject, Observable, Subscription} from 'rxjs';\nimport {InputLabelModule} from '../input-label/input-label.module';\n\n@Component({\n selector: 'valtimo-date-time-picker',\n templateUrl: './date-time-picker.component.html',\n styleUrls: ['./date-time-picker.component.scss'],\n standalone: true,\n imports: [\n CommonModule,\n InputLabelModule,\n FormsModule,\n TranslateModule,\n InputModule,\n DatePickerModule,\n TimePickerModule,\n LayerModule,\n ],\n})\nexport class DateTimePickerComponent implements AfterViewInit {\n @HostBinding('class.valtimo-date-time-picker')\n readonly hostClass = true;\n\n @Input()\n @HostBinding('class.full-width')\n fullWidth = false;\n\n @Input()\n @HostBinding('class.margin')\n margin = false;\n\n @Input() name = '';\n @Input() title = '';\n @Input() placeholder = '';\n @Input() titleTranslationKey = '';\n @Input() disabled = false;\n @Input() tooltip = '';\n @Input() required = false;\n @Input() smallLabel = false;\n @Input() enableTime = false;\n @Input() carbonTheme = 'white';\n @Input() dateFormat = 'd-m-Y';\n @Input() showFieldLabel = true;\n @Input() datePlaceholder = 'dd-mm-yyyy';\n @Input() timePlaceholder = 'hh:mm';\n @Input() labelText = '';\n\n @Input() set defaultDate(value: string | null) {\n if (value) {\n this.dateValue$.next(value);\n }\n }\n\n @Input() defaultDateIsToday = false;\n @Input() clear$!: Observable<null>;\n\n @Output() valueChange = new EventEmitter<string>();\n\n public readonly dateValue$ = new BehaviorSubject<string>('');\n private timeValueInternal = '';\n\n private readonly subscriptions = new Subscription();\n\n public ngAfterViewInit(): void {\n if (this.defaultDateIsToday) {\n this.dateValue$.next(this.formatDate(new Date()));\n }\n\n if (this.clear$) {\n this.subscriptions.add(\n this.clear$.subscribe(() => {\n this.dateValue$.next('');\n this.timeValueInternal = '';\n this.valueChange.emit('');\n })\n );\n }\n\n this.subscriptions.add(\n this.dateValue$.subscribe(date => this.emitValue(date, this.timeValueInternal))\n );\n }\n\n public onDateSelected(value: string | Date[]): void {\n const formatted = Array.isArray(value) ? value[0] : value;\n this.dateValue$.next(this.normalizeDate(formatted));\n }\n\n public onTimeSelected(value: string): void {\n this.timeValueInternal = value;\n this.emitValue(this.dateValue$.getValue(), value);\n }\n\n public get timeValue(): string {\n return this.timeValueInternal;\n }\n\n private emitValue(date: string, time: string): void {\n if (!date) {\n this.valueChange.emit('');\n return;\n }\n\n const fullValue = this.enableTime && time ? `${date} ${time}` : date;\n this.valueChange.emit(fullValue);\n }\n\n private normalizeDate(date: unknown): string {\n if (typeof date === 'string') return date;\n if (date instanceof Date) return this.formatDate(date);\n return '';\n }\n\n private formatDate(date: Date): string {\n return date.toLocaleDateString('nl-NL');\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n-->\n\n<v-input-label\n *ngIf=\"showFieldLabel && (title || titleTranslationKey)\"\n [name]=\"name\"\n [required]=\"required\"\n [small]=\"smallLabel\"\n [titleTranslationKey]=\"titleTranslationKey\"\n [title]=\"title\"\n [tooltip]=\"tooltip\"\n>\n</v-input-label>\n\n<div class=\"valtimo-date-time-picker__wrapper\">\n <cds-date-picker\n class=\"date-only\"\n [cdsLayer]=\"1\"\n [attr.data-carbon-theme]=\"carbonTheme\"\n [label]=\"labelText\"\n [placeholder]=\"datePlaceholder || 'dd-mm-yyyy'\"\n [dateFormat]=\"dateFormat\"\n [disabled]=\"disabled\"\n (valueChange)=\"onDateSelected($event)\"\n ></cds-date-picker>\n\n <cds-timepicker\n *ngIf=\"enableTime\"\n [cdsLayer]=\"1\"\n [attr.data-carbon-theme]=\"carbonTheme\"\n [placeholder]=\"timePlaceholder || 'hh:mm'\"\n [value]=\"timeValue\"\n [disabled]=\"disabled\"\n (valueChange)=\"onTimeSelected($event)\"\n >\n </cds-timepicker>\n</div>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './key-value.component';\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './single-value.component';\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './key-dropdown-value.component';\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './arbitrary-amount-value.component';\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './key-value-path-selector.component';\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './value-path-selector-value.component';\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './value-path-selector-dropdown-value.component';\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './key-value';\nexport * from './single-value';\nexport * from './key-dropdown-value';\nexport * from './arbitrary-amount-value';\nexport * from './key-value-path-selector';\nexport * from './value-path-selector-value';\nexport * from './value-path-selector-dropdown-value';\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {CarbonMultiInputComponent} from './carbon-multi-input.component';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {\n ButtonModule as CarbonButtonModule,\n DropdownModule,\n IconModule,\n InputModule as CarbonInputModule,\n} from 'carbon-components-angular';\nimport {InputLabelModule} from '../input-label/input-label.module';\nimport {InputModule} from '../input/input.module';\nimport {\n ArbitraryAmountValueComponent,\n KeyDropdownValueComponent,\n KeyValueComponent,\n KeyValuePathSelectorComponent,\n SingleValueComponent,\n ValuePathSelectorDropdownValueComponent,\n ValuePathSelectorValueComponent,\n} from './components';\n\n@NgModule({\n declarations: [CarbonMultiInputComponent],\n imports: [\n CommonModule,\n InputLabelModule,\n InputModule,\n TranslateModule,\n CarbonButtonModule,\n IconModule,\n CarbonInputModule,\n DropdownModule,\n KeyValueComponent,\n SingleValueComponent,\n KeyDropdownValueComponent,\n ArbitraryAmountValueComponent,\n KeyValuePathSelectorComponent,\n ValuePathSelectorValueComponent,\n ValuePathSelectorDropdownValueComponent,\n ],\n exports: [CarbonMultiInputComponent],\n})\nexport class CarbonMultiInputModule {}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {Component, EventEmitter, Input, OnDestroy, OnInit, Output} from '@angular/core';\nimport {ModalButtonType} from 'carbon-components-angular';\nimport {BehaviorSubject, Observable, Subscription} from 'rxjs';\n\n@Component({\n selector: 'valtimo-confirmation-modal',\n templateUrl: './confirmation-modal.component.html',\n styleUrls: ['./confirmation-modal.component.scss'],\n standalone: false,\n})\nexport class ConfirmationModalComponent implements OnInit, OnDestroy {\n @Input() public titleTranslationKey = '';\n @Input() public title = '';\n @Input() public content = '';\n @Input() public contentTranslationKey = '';\n @Input() public confirmButtonText = '';\n @Input() public confirmButtonTextTranslationKey = '';\n @Input() public confirmButtonType = ModalButtonType.primary;\n @Input() public showOptionalButton = false;\n @Input() public optionalButtonText = '';\n @Input() public optionalButtonTextTranslationKey = '';\n @Input() public optionalButtonType = ModalButtonType.tertiary;\n @Input() public cancelButtonText = '';\n @Input() public cancelButtonTextTranslationKey = '';\n @Input() public cancelButtonType = ModalButtonType.secondary;\n @Input() public showModalSubject$: Observable<boolean>;\n @Input() public outputOnConfirm: any = {};\n @Input() public outputOnOptional: any = {};\n @Input() public spacerAfterCancelButton = false;\n\n @Output() public confirmEvent = new EventEmitter<any>();\n @Output() public optionalEvent = new EventEmitter<void>();\n @Output() public cancelEvent = new EventEmitter<void>();\n\n public readonly modalOpen$ = new BehaviorSubject<boolean>(false);\n\n private _showModalSubscription!: Subscription;\n\n public ngOnInit(): void {\n if (this.showModalSubject$) {\n this._showModalSubscription = this.showModalSubject$.subscribe(showModal => {\n this.modalOpen$.next(showModal);\n });\n }\n }\n\n public ngOnDestroy(): void {\n this._showModalSubscription?.unsubscribe();\n }\n\n public closeModal(): void {\n this.modalOpen$.next(false);\n this.cancelEvent.emit();\n }\n\n public onConfirm(): void {\n this.modalOpen$.next(false);\n this.confirmEvent.emit(this.outputOnConfirm);\n }\n\n public onOptional(): void {\n this.modalOpen$.next(false);\n this.optionalEvent.emit(this.outputOnOptional);\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<cds-modal\n valtimoCdsModal\n [open]=\"modalOpen$ | async\"\n *ngIf=\"{\n deleteTranslation: 'interface.delete' | translate,\n deleteConfirmationTranslation: 'interface.deleteConfirmation' | translate,\n cancelTranslation: 'interface.cancel' | translate,\n titleTranslation: titleTranslationKey | translate,\n contentTranslation: contentTranslationKey | translate,\n confirmButtonTranslation: confirmButtonTextTranslationKey | translate,\n cancelButtonTranslation: cancelButtonTextTranslationKey | translate,\n optionalButtonTranslation: optionalButtonTextTranslationKey | translate,\n } as obs\"\n (close)=\"closeModal()\"\n>\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"closeModal()\">\n <h3 cdsModalHeaderHeading>\n {{\n (titleTranslationKey !== obs.titleTranslation ? obs.titleTranslation : '') ||\n title ||\n obs.deleteTranslation\n }}\n </h3>\n </cds-modal-header>\n\n <section cdsModalContent>\n {{\n (contentTranslationKey !== obs.contentTranslation ? obs.contentTranslation : '') ||\n content ||\n obs.deleteConfirmationTranslation\n }}\n\n <div class=\"modal-body-content\">\n <ng-content></ng-content>\n </div>\n </section>\n\n <cds-modal-footer>\n <ng-container>\n <button\n data-testid=\"confirmation-modal-close\"\n [attr.modal-primary-focus]=\"true\"\n [cdsButton]=\"cancelButtonType\"\n (click)=\"closeModal()\"\n >\n {{\n (cancelButtonTextTranslationKey !== obs.cancelButtonTranslation\n ? obs.cancelButtonTranslation\n : '') ||\n cancelButtonText ||\n obs.cancelTranslation\n }}\n </button>\n <div *ngIf=\"spacerAfterCancelButton\" class=\"modal-spacer\"></div>\n <button\n *ngIf=\"showOptionalButton\"\n data-testid=\"confirmation-modal-optional\"\n [attr.modal-primary-focus]=\"true\"\n [cdsButton]=\"optionalButtonType\"\n (click)=\"onOptional()\"\n >\n {{\n (optionalButtonTextTranslationKey !== obs.optionalButtonTranslation\n ? obs.optionalButtonTranslation\n : '') ||\n optionalButtonText ||\n obs.deleteTranslation\n }}\n </button>\n <button\n data-testid=\"confirmation-modal-confirm\"\n [attr.modal-primary-focus]=\"true\"\n [cdsButton]=\"confirmButtonType\"\n (click)=\"onConfirm()\"\n >\n {{\n (confirmButtonTextTranslationKey !== obs.confirmButtonTranslation\n ? obs.confirmButtonTranslation\n : '') ||\n confirmButtonText ||\n obs.deleteTranslation\n }}\n </button>\n </ng-container>\n </cds-modal-footer>\n</cds-modal>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {ConfirmationModalComponent} from './confirmation-modal.component';\nimport {ButtonModule, ModalModule} from 'carbon-components-angular';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {ValtimoCdsModalDirective} from '../../directives/valtimo-cds-modal/valtimo-cds-modal.directive';\n\n@NgModule({\n declarations: [ConfirmationModalComponent],\n imports: [CommonModule, ModalModule, TranslateModule, ButtonModule, ValtimoCdsModalDirective],\n exports: [ConfirmationModalComponent],\n})\nexport class ConfirmationModalModule {}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, HostListener, Input} from '@angular/core';\nimport {BehaviorSubject} from 'rxjs';\n\n@Component({\n selector: 'valtimo-expansion-panel-component',\n templateUrl: './expansion-panel.component.html',\n styleUrls: ['./expansion-panel.component.scss'],\n standalone: false,\n})\nexport class ExpansionPanelComponent {\n @Input() hideAboveFoldWhenExpanded = false;\n readonly open$ = new BehaviorSubject<boolean>(false);\n\n @HostListener('click')\n clickInside() {\n this.open$.next(!this.open$.value);\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<cds-expandable-tile>\n <div\n [hidden]=\"hideAboveFoldWhenExpanded && (open$ | async) === true\"\n class=\"cds--tile-content__above-the-fold above-fold\"\n >\n <ng-content select=\"[collapsed]\"></ng-content>\n </div>\n <div class=\"cds--tile-content__below-the-fold below-fold\">\n <ng-content select=\"[expanded]\"></ng-content>\n </div>\n</cds-expandable-tile>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {NgModule} from '@angular/core';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {TilesModule} from 'carbon-components-angular';\nimport {ExpansionPanelComponent} from './expansion-panel.component';\nimport {CommonModule} from '@angular/common';\n\n@NgModule({\n declarations: [ExpansionPanelComponent],\n imports: [CommonModule, TranslateModule, TilesModule],\n exports: [ExpansionPanelComponent],\n})\nexport class ExpansionPanelModule {}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Inject, Injectable, OnDestroy} from '@angular/core';\nimport {combineLatest, filter, map, Subject, Subscription} from 'rxjs';\nimport {CurrentCarbonTheme, MonacoTheme} from '../../models';\nimport {DOCUMENT} from '@angular/common';\nimport {CdsThemeService} from '../../services';\nimport {ValtimoWindow} from '@valtimo/shared';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class EditorService implements OnDestroy {\n public readonly loadingFinished$ = new Subject<null>();\n\n public readonly monacoEditor$ = this.loadingFinished$.pipe(\n map(() => (this.document.defaultView as ValtimoWindow)?.monaco?.editor),\n filter(editor => !!editor)\n );\n\n private _loaded = false;\n\n get loaded(): boolean {\n return this._loaded;\n }\n\n private readonly _subscriptions = new Subscription();\n\n constructor(\n @Inject(DOCUMENT) private readonly document: Document,\n private readonly cdsThemeService: CdsThemeService\n ) {\n this.openThemeSubscription();\n }\n\n public ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n public load(): void {\n const baseUrl = './assets' + '/monaco-editor/min/vs';\n\n if (typeof (window as ValtimoWindow).monaco === 'object') {\n this.finishLoading();\n return;\n }\n\n const onGotAmdLoader = () => {\n const win = window as any;\n\n if (typeof win.require === 'function' && typeof win.require.config === 'function') {\n win.require.config({paths: {vs: `${baseUrl}`}});\n win.require(['vs/editor/editor.main'], () => {\n this.finishLoading();\n });\n } else {\n setTimeout(onGotAmdLoader, 10);\n }\n };\n\n if (!(window as any).require) {\n const loaderScript: HTMLScriptElement = document.createElement('script');\n loaderScript.type = 'text/javascript';\n loaderScript.src = `${baseUrl}/loader.js`;\n loaderScript.addEventListener('load', onGotAmdLoader);\n document.body.appendChild(loaderScript);\n } else {\n onGotAmdLoader();\n }\n }\n\n private finishLoading(): void {\n this._loaded = true;\n this.loadingFinished$.next(null);\n }\n\n private openThemeSubscription(): void {\n this._subscriptions.add(\n combineLatest([this.monacoEditor$, this.cdsThemeService.currentTheme$]).subscribe(\n ([editor, currentTheme]) => {\n if (currentTheme === CurrentCarbonTheme.G10) {\n editor.setTheme(MonacoTheme.VS);\n } else {\n editor.setTheme(MonacoTheme.VSDARK);\n }\n }\n )\n );\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n AfterViewInit,\n Directive,\n ElementRef,\n Inject,\n Input,\n OnDestroy,\n Renderer2,\n RendererStyleFlags2,\n} from '@angular/core';\nimport {PageHeaderService} from '../../services';\nimport {combineLatest, Subscription} from 'rxjs';\nimport {DOCUMENT} from '@angular/common';\n\n@Directive({selector: '[fitPage]', standalone: true})\nexport class FitPageDirective implements AfterViewInit, OnDestroy {\n @Input() spaceAdjustment: number = 0;\n @Input() disabled = false;\n @Input() disableOverflow = false;\n\n private readonly _subscriptions = new Subscription();\n\n constructor(\n private readonly elementRef: ElementRef,\n private readonly pageHeaderService: PageHeaderService,\n private readonly renderer: Renderer2,\n @Inject(DOCUMENT) private readonly document: Document\n ) {}\n\n public ngAfterViewInit(): void {\n this._subscriptions.add(\n combineLatest([\n this.pageHeaderService.pageHeadHeight$,\n this.pageHeaderService.compactMode$,\n ]).subscribe(([pageHeadHeight, compactMode]) => {\n const nativeElement = this.elementRef?.nativeElement;\n\n if (nativeElement && !this.disabled) {\n this.addDocumentOverflowStyle();\n this.renderer.setStyle(\n nativeElement,\n 'height',\n `calc(100vh - ${compactMode ? 104 : 120}px - ${pageHeadHeight + this.spaceAdjustment}px)`\n );\n } else {\n this.removeDocumentOverflowStyle();\n }\n })\n );\n }\n\n public ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n this.removeDocumentOverflowStyle();\n }\n\n private addDocumentOverflowStyle(): void {\n if (!this.disableOverflow) return;\n\n this.renderer.setStyle(\n this.document.documentElement,\n 'overflow',\n 'hidden',\n RendererStyleFlags2.Important\n );\n }\n\n private removeDocumentOverflowStyle(): void {\n if (!this.disableOverflow) return;\n\n this.renderer.removeStyle(this.document.documentElement, 'overflow');\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n Output,\n ViewChild,\n} from '@angular/core';\nimport {editor} from 'monaco-editor';\nimport {first, Subscription} from 'rxjs';\nimport {EditorModel} from '../../models';\nimport {ShellService} from '../../services/shell.service';\nimport {EditorService} from './editor.service';\n\ndeclare const monaco: any;\n\n@Component({\n selector: 'valtimo-editor',\n templateUrl: './editor.component.html',\n styleUrls: ['./editor.component.scss'],\n standalone: false,\n})\nexport class EditorComponent implements AfterViewInit, OnDestroy {\n @ViewChild('editorContainer', {static: true}) editorContainer: ElementRef;\n\n @Input() set editorOptions(options: editor.IEditorOptions) {\n this._editorOptions = options;\n this.updateOptions(options);\n }\n @Input() set model(model: EditorModel) {\n this._model = model;\n this.updateModel();\n }\n @Input() set disabled(disabled: boolean) {\n this._disabled = disabled;\n this.setDisabled(disabled);\n }\n @Input() formatOnLoad = true;\n @Input() widthPx!: number;\n @Input() heightPx!: number;\n @Input() heightStyle!: string;\n @Input() jsonSchema?: string;\n @Input() fitPage = false;\n @Input() fitPageSpaceAdjustment = 0;\n\n @Output() validEvent: EventEmitter<boolean> = new EventEmitter();\n @Output() valueChangeEvent: EventEmitter<string> = new EventEmitter();\n\n private _disabled!: boolean;\n private _formatting = false;\n private _editor: editor.IStandaloneCodeEditor;\n private _editorOptions: editor.IEditorOptions;\n private _model: EditorModel;\n\n private _layoutSubscription!: Subscription;\n\n constructor(\n private readonly editorService: EditorService,\n private readonly shellService: ShellService\n ) {\n this.editorService.load();\n }\n\n public ngAfterViewInit(): void {\n this.openLayoutSubscription();\n this.initMonaco();\n }\n\n public ngOnDestroy(): void {\n this._layoutSubscription?.unsubscribe();\n }\n\n private openLayoutSubscription(): void {\n this._layoutSubscription = this.shellService.mainContentResized$.subscribe(() => {\n if (this._editor) {\n this._editor.layout();\n }\n });\n }\n\n private updateOptions(options: editor.IEditorOptions): void {\n if (this._editor) {\n this._editor.updateOptions(options);\n }\n }\n\n private updateModel(): void {\n if (this._editor && this._model && monaco?.editor) {\n let model = null;\n if (this._model.uri) {\n model = monaco.editor.getModel(monaco.Uri.parse(this._model.uri));\n if (model != null) {\n model.setValue(this._model.value);\n }\n }\n\n if (model == null) {\n model = monaco.editor.createModel(\n this._model.value,\n this._model.language,\n this._model.uri == null ? null : monaco.Uri.parse(this._model.uri)\n );\n }\n\n this._editor.setModel(model);\n this.initJsonSchemaValidation();\n this.formatDocument();\n }\n }\n\n private setDisabled(disabled: boolean): void {\n if (!this._editor || this._formatting) {\n return;\n }\n\n if (disabled) {\n this._editor.updateOptions({readOnly: true});\n } else {\n this._editor.updateOptions({readOnly: false});\n }\n }\n\n private formatDocument = (): void => {\n if (this.formatOnLoad && this._editor) {\n this.setDisabled(false);\n this._formatting = true;\n this._editor\n .getAction('editor.action.formatDocument')\n ?.run()\n .finally(() => {\n this._formatting = false;\n this.setDisabled(this._disabled);\n });\n this.checkValidity();\n }\n };\n\n private checkValidity(): void {\n const markers = monaco.editor.getModelMarkers() || [];\n const valid = markers.length === 0;\n\n this.validEvent.emit(valid);\n }\n\n private setEditorEvents(): void {\n this._editor.onDidChangeModel(this.formatDocument);\n this._editor.onDidChangeModelLanguageConfiguration(this.formatDocument);\n this._editor.onDidLayoutChange(this.formatDocument);\n this._editor.onDidChangeModelContent(() => {\n this.valueChangeEvent.emit(this._editor.getValue());\n });\n monaco?.editor?.onDidChangeMarkers(() => {\n this.checkValidity();\n });\n }\n\n private initMonaco(): void {\n if (!this.editorService.loaded) {\n this.editorService.loadingFinished$.pipe(first()).subscribe(() => {\n this.initMonaco();\n });\n return;\n }\n\n this._editor = monaco.editor.create(this.editorContainer.nativeElement, this._editorOptions);\n\n this.setEditorEvents();\n this.updateModel();\n }\n\n private initJsonSchemaValidation() {\n if (!!this.jsonSchema && !!this._model.uri) {\n const id = this.jsonSchema['$id'];\n const key = id.split('.')[0];\n monaco.languages.json.jsonDefaults.setDiagnosticsOptions({\n validate: true,\n schemas: [\n {\n uri: id,\n fileMatch: ['*.' + key + '.json'],\n schema: this.jsonSchema,\n },\n ],\n });\n } else {\n monaco.languages.json.jsonDefaults.setDiagnosticsOptions({\n validate: true,\n });\n }\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div\n class=\"editor-container\"\n #editorContainer\n [style.width.px]=\"widthPx\"\n [style.height.px]=\"!fitPage && heightPx\"\n [style.height]=\"!fitPage && heightStyle\"\n fitPage\n [disabled]=\"!fitPage\"\n [spaceAdjustment]=\"fitPageSpaceAdjustment\"\n></div>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {EditorComponent} from './editor.component';\nimport {FitPageDirective} from '../../directives/fit-page/fit-page.directive';\n\n@NgModule({\n declarations: [EditorComponent],\n imports: [CommonModule, FitPageDirective],\n exports: [EditorComponent],\n})\nexport class EditorModule {}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {ChangeDetectionStrategy, Component, EventEmitter, Input, Output} from '@angular/core';\nimport {BehaviorSubject, combineLatest, map, Observable} from 'rxjs';\nimport {InternalCaseStatus, InternalCaseStatusUtils} from '@valtimo/document';\nimport {\n CheckboxModule,\n DropdownModule,\n InputModule,\n ListItem,\n TagModule,\n} from 'carbon-components-angular';\nimport {CARBON_THEME} from '../../models';\nimport {CommonModule} from '@angular/common';\nimport {TranslateModule, TranslateService} from '@ngx-translate/core';\nimport {distinctUntilChanged, filter, take, tap} from 'rxjs/operators';\nimport {isEqual} from 'lodash';\nimport {CASES_WITHOUT_STATUS_KEY} from '../../constants';\n\n@Component({\n selector: 'valtimo-status-selector',\n templateUrl: './status-selector.component.html',\n styleUrls: ['./status-selector.component.scss'],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CommonModule, DropdownModule, CheckboxModule, InputModule, TranslateModule, TagModule],\n})\nexport class StatusSelectorComponent {\n @Input() public set statuses(value: InternalCaseStatus[]) {\n this._statuses$.next(\n (value || []).map(status => ({\n ...status,\n tagType: InternalCaseStatusUtils.getTagTypeFromInternalCaseStatusColor(status.color),\n }))\n );\n }\n @Input() public set selectedStatusKeys(value: string[]) {\n this._selectedStatusKeys$.next(value);\n }\n @Input() public carbonTheme: CARBON_THEME = CARBON_THEME.WHITE;\n @Input() public disabled!: boolean;\n\n @Output() public selectedStatusesChangeEvent = new EventEmitter<string[]>();\n\n private readonly _statuses$ = new BehaviorSubject<InternalCaseStatus[]>([]);\n\n private readonly _selectedStatusKeys$ = new BehaviorSubject<string[]>([]);\n\n public readonly CASES_WITHOUT_STATUS_KEY = CASES_WITHOUT_STATUS_KEY;\n\n public readonly listItems$: Observable<ListItem[]> = combineLatest([\n this._statuses$,\n this._selectedStatusKeys$,\n this.translateService.stream('key'),\n ]).pipe(\n filter(([statuses, selectedStatuses]) => !!statuses && !!selectedStatuses),\n map(([statuses, selectedStatuses]) =>\n statuses.map(status => ({\n content:\n status.key === this.CASES_WITHOUT_STATUS_KEY\n ? this.translateService.instant('caseManagement.statuses.withoutStatus')\n : status.title,\n selected: !!selectedStatuses.find(selectedStatusKey => selectedStatusKey === status.key),\n key: status.key,\n tagType: status.tagType,\n }))\n ),\n distinctUntilChanged((previous, current) => isEqual(previous, current))\n );\n\n constructor(private readonly translateService: TranslateService) {}\n\n public itemSelected(event: ListItem[]): void {\n const newSelectedItems = event?.filter(item => item?.selected) || [];\n\n this._statuses$.pipe(take(1)).subscribe(statuses => {\n const newSelectedStatuses = newSelectedItems\n .map(item => statuses.find(status => status.key === item.key))\n .filter(status => !!status)\n .map(status => status?.key ?? '');\n\n this.selectedStatusesChangeEvent.emit(newSelectedStatuses);\n });\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<cds-label class=\"status-selector\" *ngIf=\"listItems$ | async as listItems\">\n {{ 'caseManagement.statuses.searchFieldTitle' | translate }}\n\n <cds-dropdown\n [appendInline]=\"false\"\n type=\"multi\"\n [disabled]=\"disabled\"\n selectionFeedback=\"fixed\"\n (selected)=\"itemSelected($event)\"\n >\n <cds-dropdown-list\n [items]=\"listItems\"\n [listTpl]=\"colorDropdownItemTemplate\"\n ></cds-dropdown-list>\n </cds-dropdown>\n</cds-label>\n\n<ng-template #colorDropdownItemTemplate let-item=\"item\">\n <div class=\"status-selector-dropdown-template\">\n <cds-checkbox [checked]=\"item.selected\"></cds-checkbox>\n\n <span *ngIf=\"item.key === CASES_WITHOUT_STATUS_KEY\" class=\"generic-span\">{{\n item?.content\n }}</span>\n\n <cds-tag\n *ngIf=\"item.key !== CASES_WITHOUT_STATUS_KEY\"\n class=\"cds-tag--no-margin\"\n [type]=\"item?.tagType\"\n [title]=\"item?.content\"\n >\n {{ item?.content }}\n </cds-tag>\n </div>\n</ng-template>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport const formioValueResolverSelectorEditForm = () => ({\n components: [{key: 'type', type: 'hidden'}],\n});\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injector} from '@angular/core';\nimport {FormioCustomComponentInfo, registerCustomFormioComponent} from '../../../../modules';\nimport {formioValueResolverSelectorEditForm} from './formio-value-resolver-selector-edit-form';\nimport {FormioValueResolverSelectorComponent} from './formio-value-resolver-selector.component';\nimport {ValtimoWindow} from '@valtimo/shared';\n\ndeclare var window;\n\nconst COMPONENT_OPTIONS: FormioCustomComponentInfo = {\n type: 'valtimo-value-resolver-selector',\n selector: 'valtimo-value-resolver-selector',\n title: 'Valtimo value resolver selector',\n group: 'none',\n icon: 'user',\n editForm: formioValueResolverSelectorEditForm,\n schema: {\n label: 'Valtimo value resolver selector',\n tableView: true,\n },\n};\n\nexport function registerFormioValueResolverSelectorComponent(injector: Injector) {\n // @ts-ignore\n registerCustomFormioComponent(COMPONENT_OPTIONS, FormioValueResolverSelectorComponent, injector);\n\n setTimeout(() => {\n let valtimoWindow = window as ValtimoWindow;\n\n valtimoWindow.flags = {\n ...valtimoWindow.flags,\n formioValueResolverSelectorComponentRegistered: true,\n };\n });\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injector} from '@angular/core';\nimport {FormioCustomComponentInfo, registerCustomFormioComponent} from '../../../../modules';\nimport {FormioDummyComponent} from './dummy.component';\n\nconst COMPONENT_OPTIONS: FormioCustomComponentInfo = {\n type: 'dummy',\n selector: 'valtimo-dummy',\n title: 'Dummy',\n group: 'none',\n icon: 'bank',\n schema: {\n hidden: true,\n label: 'Dummy component',\n key: 'dummy',\n hideLabel: false,\n tableView: true,\n },\n};\n\nexport function enableCustomFormioComponents(injector: Injector) {\n registerCustomFormioComponent(COMPONENT_OPTIONS, FormioDummyComponent, injector);\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, EventEmitter, Input, OnDestroy, OnInit, Output} from '@angular/core';\nimport {BreakpointObserver, BreakpointState} from '@angular/cdk/layout';\nimport {BehaviorSubject, combineLatest, Subscription} from 'rxjs';\nimport {SelectItem, TableColumn, TablePagination} from '../../models';\nimport {map, take, tap} from 'rxjs/operators';\n\n/**\n * @deprecated Migrate old design to Carbon\n */\n@Component({\n selector: 'v-table',\n templateUrl: './table.component.html',\n styleUrls: ['./table.component.scss'],\n standalone: false,\n})\nexport class TableComponent implements OnInit, OnDestroy {\n @Input()\n set items(items: Array<object>) {\n this.items$.next(items);\n }\n @Input() columns!: Array<TableColumn>;\n @Input() loading = false;\n @Input() showEditButtons = false;\n @Input() showPagination = true;\n @Input() editButtonTranslationKey!: string;\n @Input() itemsTranslationKey!: string;\n @Input() noResultsTranslationKey!: string;\n @Input() mobileBreakpointPx = 768;\n @Input() amountOfLoadingRows = 3;\n\n @Input()\n set collectionSize(collectionSize: TablePagination['collectionSize']) {\n this.collectionSize$.next(collectionSize);\n }\n @Input()\n set page(page: TablePagination['page']) {\n this.page$.next(page);\n }\n @Input()\n set size(size: TablePagination['size']) {\n this.size$.next(size);\n }\n\n @Output() editButtonClicked: EventEmitter<any> = new EventEmitter();\n @Output() paginationSizeSet: EventEmitter<number> = new EventEmitter();\n @Output() paginationPageSet: EventEmitter<number> = new EventEmitter();\n\n readonly defaultPaginationSize$ = new BehaviorSubject<SelectItem | undefined>(undefined);\n readonly isMobile$ = new BehaviorSubject<boolean>(false);\n\n private readonly collectionSize$ = new BehaviorSubject<TablePagination['collectionSize']>(0);\n private readonly page$ = new BehaviorSubject<TablePagination['page']>(0);\n private readonly size$ = new BehaviorSubject<TablePagination['size']>(0);\n\n readonly pagination$ = combineLatest([this.collectionSize$, this.page$, this.size$]).pipe(\n map(([collectionSize, page, size]) => ({\n collectionSize,\n page,\n size,\n })),\n tap(({collectionSize, page, size}) => {\n const amountOfPagesAvailable = Math.ceil(collectionSize / size);\n\n if (\n !this.skippingToPreviousPage &&\n amountOfPagesAvailable > 0 &&\n page > amountOfPagesAvailable\n ) {\n this.skippingToPreviousPage = true;\n this.setPage(amountOfPagesAvailable);\n }\n })\n );\n\n readonly items$ = new BehaviorSubject<Array<object>>([]);\n\n readonly paginationOptions: Array<SelectItem> = [\n {id: 10, text: '10'},\n {id: 25, text: '25'},\n {id: 50, text: '50'},\n {id: 100, text: '100'},\n ];\n\n private breakpointSubscription!: Subscription;\n\n private skippingToPreviousPage = false;\n\n constructor(private readonly breakpointObserver: BreakpointObserver) {}\n\n ngOnInit() {\n this.setDefaultPaginationSize();\n this.openBreakpointSubscription();\n }\n\n ngOnDestroy() {\n this.breakpointSubscription?.unsubscribe();\n }\n\n getArrayOfLength(length: number): Array<0> {\n return new Array(length).fill(0);\n }\n\n setPage(setTo: 'previous' | 'next' | number): void {\n this.pagination$.pipe(take(1)).subscribe(pagination => {\n const currentPage = pagination?.page;\n\n if (currentPage) {\n let newPageNumber = 0;\n\n if (setTo === 'previous') {\n newPageNumber = currentPage - 1;\n } else if (setTo === 'next') {\n newPageNumber = currentPage + 1;\n } else if (typeof setTo === 'number') {\n newPageNumber = setTo;\n }\n\n this.paginationPageSet.emit(newPageNumber);\n this.page$.next(newPageNumber);\n this.skippingToPreviousPage = false;\n }\n });\n }\n\n setPaginationSize(newPageSize: number): void {\n this.paginationSizeSet.emit(newPageSize);\n this.size$.next(newPageSize);\n }\n\n private openBreakpointSubscription(): void {\n this.breakpointSubscription = this.breakpointObserver\n .observe([`(min-width: ${this.mobileBreakpointPx}px)`])\n .subscribe((state: BreakpointState) => {\n if (state.matches) {\n this.isMobile$.next(false);\n } else {\n this.isMobile$.next(true);\n }\n });\n }\n\n private setDefaultPaginationSize(): void {\n this.size$.pipe(take(1)).subscribe(size => {\n const defaultPaginationOption =\n size && this.paginationOptions.find(option => option.id === size);\n\n if (defaultPaginationOption) {\n this.defaultPaginationSize$.next(defaultPaginationOption);\n }\n });\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container *ngIf=\"{items: items$ | async} as obs\">\n <div class=\"v-table-container\">\n <table class=\"v-table\">\n <ng-container *ngTemplateOutlet=\"tableHead\"></ng-container>\n <ng-container *ngTemplateOutlet=\"tableBody; context: {tableItems: obs.items}\"></ng-container>\n <ng-container *ngTemplateOutlet=\"tableBodyLoading\"></ng-container>\n <ng-container\n *ngTemplateOutlet=\"tableBodyNoResults; context: {tableItems: obs.items}\"\n ></ng-container>\n </table>\n <ng-container *ngIf=\"showPagination\">\n <ng-container\n *ngTemplateOutlet=\"paginationContainer; context: {tableItems: obs.items}\"\n ></ng-container>\n </ng-container>\n </div>\n</ng-container>\n\n<ng-template #tableHead>\n <thead *ngIf=\"columns\">\n <tr>\n <th class=\"v-table__header\" *ngFor=\"let column of columns\">\n {{ column.labelTranslationKey | translate }}\n </th>\n <th *ngIf=\"showEditButtons\" class=\"v-table__header\"></th>\n </tr>\n </thead>\n</ng-template>\n\n<ng-template #tableBody let-tableItems=\"tableItems\">\n <tbody class=\"v-table__body\" *ngIf=\"!loading && tableItems && tableItems?.length > 0\">\n <tr *ngFor=\"let item of tableItems\" class=\"v-table__row\">\n <ng-container *ngTemplateOutlet=\"tableCell; context: {item: item}\"></ng-container>\n <ng-container *ngTemplateOutlet=\"tableEditButtonCell; context: {item: item}\"></ng-container>\n </tr>\n </tbody>\n</ng-template>\n\n<ng-template #tableBodyNoResults let-tableItems=\"tableItems\">\n <tbody class=\"v-table__body\" *ngIf=\"!loading && tableItems && tableItems?.length === 0\">\n <tr class=\"v-table__row\">\n <td class=\"v-table__cell\" *ngFor=\"let column of columns; let i = index\">\n <span *ngIf=\"i === 0\" class=\"v-table__cell-content\">\n {{\n noResultsTranslationKey\n ? (noResultsTranslationKey | translate)\n : ('interface.noResults' | translate)\n }}\n </span>\n </td>\n </tr>\n </tbody>\n</ng-template>\n\n<ng-template #tableCell let-item=\"item\">\n <td *ngFor=\"let column of columns\" class=\"v-table__cell\">\n <span class=\"v-table__cell-content\">\n {{ item[column.dataKey] }}\n </span>\n </td>\n</ng-template>\n\n<ng-template #tableEditButtonCell let-item=\"item\">\n <td *ngIf=\"showEditButtons\" class=\"v-table__cell v-table__cell--with-button\">\n <span class=\"v-table__cell-button-container\">\n <button cdsButton=\"secondary\" (click)=\"editButtonClicked.emit(item)\">\n {{ editButtonTranslationKey || 'interface.edit' | translate }}\n </button>\n </span>\n </td>\n</ng-template>\n\n<ng-template #tableBodyLoading>\n <tbody class=\"v-table__body\" *ngIf=\"loading\">\n <tr *ngFor=\"let item of getArrayOfLength(amountOfLoadingRows)\" class=\"v-table__row\">\n <ng-container *ngTemplateOutlet=\"tableCellLoading\"></ng-container>\n <ng-container *ngTemplateOutlet=\"tableEditButtonCellLoading\"></ng-container>\n </tr>\n </tbody>\n</ng-template>\n\n<ng-template #tableCellLoading>\n <td *ngFor=\"let column of columns\" class=\"v-table__cell\">\n <span class=\"v-table__cell-content\"\n ><ngx-skeleton-loader\n appearance=\"line\"\n [theme]=\"{\n width: 'var(--v-table-loading-skeleton-width)',\n height: 'var(--v-table-loading-skeleton-line-height)',\n margin: '0',\n 'background-color': 'var(--v-table-loading-skeleton-bg-color)',\n }\"\n ></ngx-skeleton-loader\n ></span>\n </td>\n</ng-template>\n\n<ng-template #tableEditButtonCellLoading>\n <td *ngIf=\"showEditButtons\" class=\"v-table__cell v-table__cell--with-button\">\n <span class=\"v-table__cell-button-container\">\n <button cdsButton=\"secondary\" [disabled]=\"true\">\n {{ editButtonTranslationKey || 'interface.edit' | translate }}\n </button>\n </span>\n </td>\n</ng-template>\n\n<ng-template #paginationContainer let-tableItems=\"tableItems\">\n <div *ngIf=\"pagination$ | async as paginationObject\" class=\"v-table__pagination-container\">\n <div class=\"v-table__pagination-size-container\">\n <ng-container\n *ngTemplateOutlet=\"paginationSizeSelect; context: {paginationObject: paginationObject}\"\n ></ng-container>\n <ng-container\n *ngTemplateOutlet=\"\n paginationSizeAmountText;\n context: {paginationObject: paginationObject, tableItems: tableItems}\n \"\n ></ng-container>\n </div>\n <ng-container\n *ngTemplateOutlet=\"paginationNavigation; context: {paginationObject: paginationObject}\"\n ></ng-container>\n </div>\n</ng-template>\n\n<ng-template #paginationSizeSelect let-paginationObject=\"paginationObject\">\n <span class=\"v-table__pagination-size-text\">{{ 'interface.show' | translate }}</span>\n <span class=\"v-table__pagination-size-select\">\n <v-select\n [items]=\"paginationOptions\"\n [clearable]=\"false\"\n [defaultSelection]=\"(defaultPaginationSize$ | async) || paginationOptions[0]\"\n [disabled]=\"loading\"\n (selectedChange)=\"setPaginationSize($event)\"\n ></v-select>\n </span>\n <span class=\"v-table__pagination-size-text\">{{\n itemsTranslationKey ? (itemsTranslationKey | translate) : ('interface.items' | translate)\n }}</span>\n</ng-template>\n\n<ng-template\n #paginationSizeAmountText\n let-paginationObject=\"paginationObject\"\n let-tableItems=\"tableItems\"\n>\n <ng-container *ngTemplateOutlet=\"paginationSizeAmountTextLoading\"></ng-container>\n <span\n class=\"v-table__pagination-amount-text\"\n *ngIf=\"!loading && tableItems && paginationObject\"\n >{{\n tableItems.length +\n ' ' +\n ('interface.of' | translate) +\n ' ' +\n paginationObject.collectionSize +\n ' ' +\n (itemsTranslationKey\n ? (itemsTranslationKey | translate)\n : ('interface.items' | translate)) +\n ' ' +\n ('interface.visible' | translate)\n }}</span\n >\n</ng-template>\n\n<ng-template #paginationSizeAmountTextLoading>\n <span class=\"v-table__pagination-amount-text\" *ngIf=\"loading\"\n ><ngx-skeleton-loader\n appearance=\"line\"\n [theme]=\"{\n width: 'var(--v-table-loading-skeleton-width)',\n height: 'var(--v-table-loading-skeleton-line-height)',\n margin: '0',\n 'background-color': 'var(--v-table-loading-skeleton-pagination-size-bg-color)',\n }\"\n ></ngx-skeleton-loader\n ></span>\n</ng-template>\n\n<ng-template #paginationNavigation let-paginationObject=\"paginationObject\">\n <div\n class=\"v-table__pagination-navigation-container\"\n *ngIf=\"paginationObject && paginationObject.collectionSize > paginationObject.size\"\n >\n <span *ngIf=\"paginationObject.page > 1\">\n <button cdsButton=\"ghost\" (click)=\"setPage('previous')\" [disabled]=\"loading\">\n {{ 'interface.previous' | translate }}\n </button>\n </span>\n\n <span *ngIf=\"paginationObject.page * paginationObject.size < paginationObject.collectionSize\">\n <button cdsButton=\"ghost\" (click)=\"setPage('next')\" [disabled]=\"loading\">\n {{ 'interface.nextArrow' | translate }}\n </button>\n </span>\n </div>\n</ng-template>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {TableComponent} from './table.component';\nimport {LayoutModule} from '@angular/cdk/layout';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {ButtonModule} from 'carbon-components-angular';\nimport {NgxSkeletonLoaderModule} from 'ngx-skeleton-loader';\nimport {SelectModule} from '../select/select.module';\n\n/**\n * @deprecated Migrate old design to Carbon\n */\n@NgModule({\n declarations: [TableComponent],\n imports: [\n CommonModule,\n LayoutModule,\n TranslateModule,\n ButtonModule,\n NgxSkeletonLoaderModule,\n SelectModule,\n ],\n exports: [TableComponent],\n})\nexport class TableModule {}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\nimport {BehaviorSubject, Observable} from 'rxjs';\nimport {delay} from 'rxjs/operators';\nimport {v4 as uuidv4} from 'uuid';\nimport {ModalService} from '../../services/modal.service';\nimport {IconService} from 'carbon-components-angular';\nimport {Close16} from '@carbon/icons';\n\n@Component({\n selector: 'v-modal',\n templateUrl: './modal.component.html',\n styleUrls: ['./modal.component.scss'],\n standalone: false,\n})\nexport class VModalComponent implements OnInit {\n @Input() appearingDelayMs = 140;\n @Input() maxWidthPx!: number;\n @Input() hideFooter = false;\n @Input() parentId: string;\n\n @Output() closeEvent: EventEmitter<any> = new EventEmitter();\n\n public uuid: string = uuidv4();\n\n readonly visible$: Observable<boolean> = this.modalService.getModalVisible(this.uuid);\n readonly showBackdrop$: Observable<boolean> = this.visible$.pipe(delay(0));\n readonly appearing$ = this.modalService.appearing$;\n readonly disappearing$ = this.modalService.disappearing$;\n readonly mouseInsideModal$ = new BehaviorSubject<boolean>(false);\n\n constructor(\n private readonly modalService: ModalService,\n private readonly iconService: IconService\n ) {\n this.iconService.register(Close16);\n }\n\n ngOnInit(): void {\n this.setAppearingDelayInService();\n }\n\n closeModal(): void {\n this.closeEvent.emit();\n this.modalService.closeModal();\n }\n\n modalMouseEnter(): void {\n this.mouseInsideModal$.next(true);\n }\n\n modalMouseLeave(): void {\n this.mouseInsideModal$.next(false);\n }\n\n private setAppearingDelayInService(): void {\n this.modalService.setAppearingDelay(this.appearingDelayMs);\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n visible: visible$ | async,\n appearing: appearing$ | async,\n disappearing: disappearing$ | async,\n showBackdrop: showBackdrop$ | async,\n mouseInsideModal: mouseInsideModal$ | async,\n } as obs\"\n>\n <div\n class=\"v-modal-backdrop\"\n [ngClass]=\"{\n 'v-modal-backdrop--visible': obs.visible || obs.disappearing,\n 'v-modal-backdrop--backdrop': obs.showBackdrop,\n 'v-modal-backdrop--hidden': !obs.visible,\n 'v-modal-backdrop--appearing': obs.appearing,\n 'v-modal-backdrop--disappearing': obs.disappearing,\n 'v-modal-backdrop--mouse-on-backdrop': !obs.mouseInsideModal,\n }\"\n >\n <ng-container\n *ngTemplateOutlet=\"modal; context: {appearing: obs.appearing, disappearing: obs.disappearing}\"\n ></ng-container>\n </div>\n</ng-container>\n\n<ng-template #modal let-appearing=\"appearing\" let-disappearing=\"disappearing\">\n <div\n class=\"v-modal\"\n (mouseenter)=\"modalMouseEnter()\"\n (mouseleave)=\"modalMouseLeave()\"\n [style.max-width.px]=\"maxWidthPx\"\n >\n <ng-container\n *ngTemplateOutlet=\"modalHeader; context: {appearing: appearing, disappearing: disappearing}\"\n ></ng-container>\n <ng-container *ngTemplateOutlet=\"modalContent\"></ng-container>\n <ng-container *ngTemplateOutlet=\"modalFooter\"></ng-container>\n </div>\n</ng-template>\n\n<ng-template #modalHeader let-appearing=\"appearing\" let-disappearing=\"disappearing\">\n <div class=\"v-modal__header\">\n <ng-content select=\"div[role=header]\"></ng-content>\n <div class=\"v-modal__header-overflow\">\n <div class=\"v-modal__header-overflow-gradient\"></div>\n <div class=\"v-modal__header-overflow-bg\"></div>\n </div>\n <div class=\"v-modal__header-buttons\">\n <button cdsButton=\"ghost\" iconOnly=\"true\" (click)=\"closeModal()\" size=\"sm\">\n <svg cdsIcon=\"close\" size=\"16\"></svg>\n </button>\n </div>\n </div>\n</ng-template>\n\n<ng-template #modalContent>\n <div class=\"v-modal__content\">\n <ng-content select=\"div[role=content]\"></ng-content>\n </div>\n</ng-template>\n\n<ng-template #modalFooter>\n <div class=\"v-modal__footer\" [ngClass]=\"{'v-modal__footer--hidden': hideFooter}\">\n <ng-content select=\"div[role=footer]\"></ng-content>\n </div>\n</ng-template>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {VModalComponent} from './modal.component';\nimport {ButtonModule, IconModule} from 'carbon-components-angular';\n\n@NgModule({\n declarations: [VModalComponent],\n imports: [CommonModule, ButtonModule, IconModule],\n exports: [VModalComponent],\n})\nexport class VModalModule {}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, EventEmitter, Input, OnDestroy, OnInit, Output} from '@angular/core';\nimport {StepperService} from '../../../services/stepper.service';\nimport {Subject, Subscription} from 'rxjs';\n\n/**\n * @deprecated Migrate old design to Carbon\n */\n@Component({\n selector: 'v-stepper-container',\n templateUrl: './stepper-container.component.html',\n styleUrls: ['./stepper-container.component.scss'],\n providers: [StepperService],\n standalone: false,\n})\nexport class StepperContainerComponent implements OnInit, OnDestroy {\n @Input() returnToFirstStepSubject$!: Subject<boolean>;\n @Input()\n set disabled(disabled: boolean) {\n if (disabled) {\n this.stepperService.disable();\n } else {\n this.stepperService.enable();\n }\n }\n\n @Output() cancelClickEvent: EventEmitter<any> = new EventEmitter();\n @Output() completeEvent: EventEmitter<any> = new EventEmitter();\n @Output() nextStepEvent: EventEmitter<number> = new EventEmitter();\n\n private cancelClickSubscription!: Subscription;\n private completeSubscription!: Subscription;\n private nextStepSubscription!: Subscription;\n private cancelSubjectSubscription!: Subscription;\n\n constructor(private readonly stepperService: StepperService) {}\n\n ngOnInit(): void {\n this.openCancelClickSubscription();\n this.openCompleteSubscription();\n this.openNextStepSubscription();\n this.openReturnToFirstStepSubscription();\n }\n\n ngOnDestroy(): void {\n this.cancelClickSubscription?.unsubscribe();\n this.completeSubscription?.unsubscribe();\n this.nextStepSubscription?.unsubscribe();\n this.cancelSubjectSubscription?.unsubscribe();\n }\n\n private openCancelClickSubscription(): void {\n this.cancelClickSubscription = this.stepperService.cancelClick$.subscribe(() => {\n this.cancelClickEvent.emit();\n });\n }\n\n private openCompleteSubscription(): void {\n this.completeSubscription = this.stepperService.complete$.subscribe(() => {\n this.completeEvent.emit();\n });\n }\n\n private openNextStepSubscription(): void {\n this.nextStepSubscription = this.stepperService.nextStep$.subscribe(currentStepIndex => {\n this.nextStepEvent.emit(currentStepIndex);\n });\n }\n\n private openReturnToFirstStepSubscription(): void {\n if (this.returnToFirstStepSubject$) {\n this.cancelSubjectSubscription = this.returnToFirstStepSubject$.subscribe(cancel => {\n if (cancel) {\n this.stepperService.returnToFirstStep();\n }\n });\n }\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-content></ng-content>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, Input} from '@angular/core';\nimport {StepperService} from '../../../services/stepper.service';\nimport {BehaviorSubject, Observable} from 'rxjs';\n\n/**\n * @deprecated Migrate old design to Carbon\n */\n@Component({\n selector: 'v-stepper-step',\n templateUrl: './stepper-step.component.html',\n styleUrls: ['./stepper-step.component.scss'],\n standalone: false,\n})\nexport class StepperStepComponent {\n @Input() titleTranslationKey!: string;\n\n public stepIndex$ = new BehaviorSubject<number>(-1);\n\n currentStepIndex$: Observable<number> = this.stepperService.currentStepIndex$;\n\n constructor(private readonly stepperService: StepperService) {}\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container *ngIf=\"(currentStepIndex$ | async) === (stepIndex$ | async)\">\n <ng-content></ng-content>\n</ng-container>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {AfterContentInit, Component, ContentChildren, QueryList} from '@angular/core';\nimport {StepperStepComponent} from '../stepper-step/stepper-step.component';\nimport {StepperService} from '../../../services/stepper.service';\n\n/**\n * @deprecated Migrate old design to Carbon\n */\n@Component({\n selector: 'v-stepper-content',\n templateUrl: './stepper-content.component.html',\n styleUrls: ['./stepper-content.component.scss'],\n standalone: false,\n})\nexport class StepperContentComponent implements AfterContentInit {\n @ContentChildren(StepperStepComponent) stepComponents!: QueryList<StepperStepComponent>;\n\n constructor(private readonly stepperService: StepperService) {}\n\n ngAfterContentInit(): void {\n this.setStepNumbers();\n }\n\n private setStepNumbers(): void {\n this.stepComponents.forEach((stepComponent, index) => {\n stepComponent.stepIndex$.next(index);\n });\n\n this.setStepsInService();\n }\n\n private setStepsInService(): void {\n this.stepperService.setSteps(\n this.stepComponents.map(stepComponent => ({\n titleTranslationKey: stepComponent.titleTranslationKey,\n stepIndex: stepComponent.stepIndex$.getValue(),\n }))\n );\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-content></ng-content>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, Input} from '@angular/core';\nimport {StepperService} from '../../../services/stepper.service';\nimport {BehaviorSubject, Observable} from 'rxjs';\n\n/**\n * @deprecated Migrate old design to Carbon\n */\n@Component({\n selector: 'v-stepper-footer-step',\n templateUrl: './stepper-footer-step.component.html',\n styleUrls: ['./stepper-footer-step.component.scss'],\n standalone: false,\n})\nexport class StepperFooterStepComponent {\n @Input() nextButtonEnabled = false;\n @Input() completeButtonEnabled = false;\n @Input() nextButtonTranslationKey = '';\n @Input() cancelButtonTranslationKey = '';\n @Input() completeButtonTranslationKey = '';\n @Input() completeButtonMdiIcon = '';\n @Input() showCompleteButton = true;\n\n public stepIndex$ = new BehaviorSubject<number>(-1);\n public isLastStep$ = new BehaviorSubject<boolean>(false);\n\n currentStepIndex$: Observable<number> = this.stepperService.currentStepIndex$;\n disabled$: Observable<boolean> = this.stepperService.disabled$;\n\n constructor(private readonly stepperService: StepperService) {}\n\n goToNextStep(): void {\n this.stepperService.goToNextStep();\n }\n\n cancel(): void {\n this.stepperService.cancelClick();\n }\n\n complete(): void {\n this.stepperService.complete();\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div class=\"stepper-footer-step\" *ngIf=\"(currentStepIndex$ | async) === (stepIndex$ | async)\">\n <ng-container *ngIf=\"{disabled: disabled$ | async, isLastStep: isLastStep$ | async} as obs\">\n <ng-container\n *ngTemplateOutlet=\"cancelButton; context: {disabled: obs.disabled}\"\n ></ng-container>\n <ng-container *ngIf=\"obs.isLastStep === false\">\n <ng-container\n *ngTemplateOutlet=\"nextButton; context: {disabled: obs.disabled}\"\n ></ng-container>\n </ng-container>\n <ng-container *ngIf=\"obs.isLastStep === true && showCompleteButton\">\n <ng-container\n *ngTemplateOutlet=\"completeButton; context: {disabled: obs.disabled}\"\n ></ng-container>\n </ng-container>\n </ng-container>\n</div>\n\n<ng-template #cancelButton let-disabled=\"disabled\">\n <button\n cdsButton=\"secondary\"\n data-test-id=\"stepperFooterCancelButton\"\n (click)=\"cancel()\"\n [disabled]=\"disabled\"\n >\n {{\n cancelButtonTranslationKey\n ? (cancelButtonTranslationKey | translate)\n : ('stepper.cancelButtonText' | translate)\n }}\n </button>\n</ng-template>\n\n<ng-template #nextButton let-disabled=\"disabled\">\n <button cdsButton=\"primary\" [disabled]=\"!nextButtonEnabled || disabled\" (click)=\"goToNextStep()\">\n {{\n nextButtonTranslationKey\n ? (nextButtonTranslationKey | translate)\n : ('stepper.nextButtonText' | translate)\n }}\n </button>\n</ng-template>\n\n<ng-template #completeButton let-disabled=\"disabled\">\n <button cdsButton=\"primary\" [disabled]=\"!completeButtonEnabled || disabled\" (click)=\"complete()\">\n {{\n completeButtonTranslationKey\n ? (completeButtonTranslationKey | translate)\n : ('stepper.completeButtonText' | translate)\n }}\n </button>\n</ng-template>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {AfterContentInit, Component, ContentChildren, QueryList} from '@angular/core';\nimport {StepperFooterStepComponent} from '../stepper-footer-step/stepper-footer-step.component';\n\n/**\n * @deprecated Migrate old design to Carbon\n */\n@Component({\n selector: 'v-stepper-footer',\n templateUrl: './stepper-footer.component.html',\n styleUrls: ['./stepper-footer.component.scss'],\n standalone: false,\n})\nexport class StepperFooterComponent implements AfterContentInit {\n @ContentChildren(StepperFooterStepComponent)\n footerStepComponents!: QueryList<StepperFooterStepComponent>;\n\n ngAfterContentInit(): void {\n this.setStepNumbers();\n }\n\n private setStepNumbers(): void {\n const footerStepComponents = this.footerStepComponents;\n\n footerStepComponents.forEach((footerStepComponent, index) => {\n footerStepComponent.stepIndex$.next(index);\n footerStepComponent.isLastStep$.next(index === footerStepComponents.length - 1);\n });\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-content></ng-content>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component} from '@angular/core';\nimport {StepperService} from '../../../services/stepper.service';\nimport {Observable} from 'rxjs';\nimport {Step} from '../../../models';\n\n/**\n * @deprecated Migrate old design to Carbon\n */\n@Component({\n selector: 'v-stepper-header',\n templateUrl: './stepper-header.component.html',\n styleUrls: ['./stepper-header.component.scss'],\n standalone: false,\n})\nexport class StepperHeaderComponent {\n steps$: Observable<Array<Step>> = this.stepperService.steps$;\n currentStepIndex$: Observable<number> = this.stepperService.currentStepIndex$;\n\n constructor(private readonly stepperService: StepperService) {}\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div class=\"stepper-header\" *ngIf=\"{currentStepIndex: currentStepIndex$ | async} as obs\">\n <div\n *ngFor=\"let step of steps$ | async\"\n class=\"stepper-header__step\"\n [ngClass]=\"{\n 'stepper-header__step--active': step.stepIndex <= obs.currentStepIndex,\n 'stepper-header__step--last': step.isLast,\n }\"\n >\n <div\n class=\"stepper-header__step-progress-bar\"\n [ngClass]=\"{\n 'stepper-header__step-progress-bar--first': step.isFirst,\n 'stepper-header__step-progress-bar--last': step.isLast,\n }\"\n >\n <div\n class=\"stepper-header__step-active-bar\"\n [ngClass]=\"{\n 'stepper-header__step-active-bar--visible': step.stepIndex <= obs.currentStepIndex,\n 'stepper-header__step-active-bar--last-visible':\n step.stepIndex === obs.currentStepIndex && !step.isLast,\n }\"\n ></div>\n </div>\n <span\n class=\"stepper-header__step-number\"\n [ngClass]=\"{\n 'stepper-header__step-number--active': step.stepIndex <= obs.currentStepIndex,\n }\"\n >{{ step.stepIndex + 1 }}</span\n >\n <span\n class=\"stepper-header__step-title\"\n [ngClass]=\"{\n 'stepper-header__step-title--active': step.stepIndex <= obs.currentStepIndex,\n }\"\n >{{ step.titleTranslationKey | translate }}</span\n >\n </div>\n</div>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {StepperContainerComponent} from './stepper-container/stepper-container.component';\nimport {StepperContentComponent} from './stepper-content/stepper-content.component';\nimport {StepperFooterComponent} from './stepper-footer/stepper-footer.component';\nimport {StepperHeaderComponent} from './stepper-header/stepper-header.component';\nimport {StepperStepComponent} from './stepper-step/stepper-step.component';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {StepperFooterStepComponent} from './stepper-footer-step/stepper-footer-step.component';\nimport {ButtonModule as CarbonButtonModule} from 'carbon-components-angular';\n\n/**\n * @deprecated Migrate old design to Carbon\n */\n@NgModule({\n declarations: [\n StepperContainerComponent,\n StepperContentComponent,\n StepperFooterComponent,\n StepperHeaderComponent,\n StepperStepComponent,\n StepperFooterStepComponent,\n ],\n imports: [CommonModule, TranslateModule, CarbonButtonModule],\n exports: [\n StepperContainerComponent,\n StepperContentComponent,\n StepperFooterComponent,\n StepperHeaderComponent,\n StepperStepComponent,\n StepperFooterStepComponent,\n ],\n})\nexport class StepperModule {}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\nimport {Observable} from 'rxjs';\nimport {delay} from 'rxjs/operators';\nimport {PromptService} from '../../services/prompt.service';\n\n/**\n * @deprecated Migrate old design to Carbon\n */\n@Component({\n selector: 'v-prompt',\n templateUrl: './prompt.component.html',\n styleUrls: ['./prompt.component.scss'],\n standalone: false,\n})\nexport class PromptComponent implements OnInit {\n @Input() appearingDelayMs = 140;\n @Input() maxWidthPx!: number;\n\n @Output() closeEvent: EventEmitter<any> = new EventEmitter();\n\n readonly visible$: Observable<boolean> = this.promptService.promptVisible$;\n readonly showBackdrop$: Observable<boolean> = this.visible$.pipe(delay(0));\n readonly appearing$ = this.promptService.appearing$;\n readonly disappearing$ = this.promptService.disappearing$;\n\n readonly headerText$ = this.promptService.headerText$;\n readonly bodyText$ = this.promptService.bodyText$;\n readonly cancelText$ = this.promptService.cancelText$;\n readonly confirmText$ = this.promptService.confirmText$;\n readonly closeButtonVisible$ = this.promptService.closeButtonVisible$;\n\n constructor(private readonly promptService: PromptService) {}\n\n ngOnInit(): void {\n this.setAppearingDelayInService();\n }\n\n cancel(): void {\n this.promptService.cancel();\n }\n\n confirm(): void {\n this.promptService.confirm();\n }\n\n close(): void {\n this.promptService.close();\n }\n\n private setAppearingDelayInService(): void {\n this.promptService.setAppearingDelay(this.appearingDelayMs);\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n visible: visible$ | async,\n appearing: appearing$ | async,\n disappearing: disappearing$ | async,\n showBackdrop: showBackdrop$ | async,\n } as obs\"\n>\n <div\n class=\"v-prompt-backdrop\"\n [ngClass]=\"{\n 'v-prompt-backdrop--visible': obs.visible || obs.disappearing,\n 'v-prompt-backdrop--backdrop': obs.showBackdrop,\n 'v-prompt-backdrop--hidden': !obs.visible,\n 'v-prompt-backdrop--appearing': obs.appearing,\n 'v-prompt-backdrop--disappearing': obs.disappearing,\n }\"\n >\n <ng-container\n *ngTemplateOutlet=\"modal; context: {appearing: obs.appearing, disappearing: obs.disappearing}\"\n ></ng-container>\n </div>\n</ng-container>\n\n<ng-template #modal let-appearing=\"appearing\" let-disappearing=\"disappearing\">\n <div class=\"v-prompt\" [style.max-width.px]=\"maxWidthPx\">\n <ng-container\n *ngTemplateOutlet=\"modalHeader; context: {appearing: appearing, disappearing: disappearing}\"\n ></ng-container>\n <ng-container *ngTemplateOutlet=\"modalContent\"></ng-container>\n <ng-container\n *ngTemplateOutlet=\"modalFooter; context: {appearing: appearing, disappearing: disappearing}\"\n ></ng-container>\n </div>\n</ng-template>\n\n<ng-template #modalHeader let-appearing=\"appearing\" let-disappearing=\"disappearing\">\n <div class=\"v-prompt__header\">\n <h4>{{ headerText$ | async }}</h4>\n </div>\n <div class=\"v-prompt__close\" *ngIf=\"closeButtonVisible$ | async\">\n <button type=\"button\" class=\"close\" aria-label=\"Close\" (click)=\"close()\">\n <span aria-hidden=\"true\">&times;</span>\n </button>\n </div>\n</ng-template>\n\n<ng-template #modalContent>\n <div class=\"v-prompt__content\">\n <v-paragraph>{{ bodyText$ | async }}</v-paragraph>\n </div>\n</ng-template>\n\n<ng-template #modalFooter let-appearing=\"appearing\" let-disappearing=\"disappearing\">\n <div class=\"v-prompt__footer\">\n <div class=\"v-prompt__buttons\">\n <button cdsButton=\"primary\" [disabled]=\"appearing || disappearing\" (click)=\"cancel()\">\n {{ cancelText$ | async }}\n </button>\n\n <button cdsButton=\"secondary\" [disabled]=\"appearing || disappearing\" (click)=\"confirm()\">\n {{ confirmText$ | async }}\n </button>\n </div>\n </div>\n</ng-template>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {PromptComponent} from './prompt.component';\nimport {ButtonModule} from 'carbon-components-angular';\nimport {ParagraphModule} from '../paragraph/paragraph.module';\n\n/**\n * @deprecated Migrate old design to Carbon\n */\n@NgModule({\n declarations: [PromptComponent],\n imports: [CommonModule, ButtonModule, ParagraphModule],\n exports: [PromptComponent],\n})\nexport class PromptModule {}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {MultiInputFormComponent} from './multi-input-form.component';\nimport {InputLabelModule} from '../input-label/input-label.module';\nimport {InputModule} from '../input/input.module';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {ParagraphModule} from '../paragraph/paragraph.module';\nimport {DefaultValuePipe} from './default-value.pipe';\nimport {ButtonModule, IconModule} from 'carbon-components-angular';\n\n@NgModule({\n declarations: [MultiInputFormComponent],\n imports: [\n CommonModule,\n InputLabelModule,\n InputModule,\n ButtonModule,\n TranslateModule,\n ParagraphModule,\n DefaultValuePipe,\n ButtonModule,\n IconModule,\n ],\n exports: [MultiInputFormComponent],\n})\nexport class MultiInputFormModule {}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {FormsModule} from '@angular/forms';\nimport {RadioComponent} from './radio.component';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {InputLabelModule} from '../input-label/input-label.module';\nimport {RadioModule as CarbonRadioModule} from 'carbon-components-angular';\n\n@NgModule({\n declarations: [RadioComponent],\n imports: [CommonModule, TranslateModule, FormsModule, InputLabelModule, CarbonRadioModule],\n exports: [RadioComponent],\n})\nexport class RadioModule {}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {ComponentRef, inject} from '@angular/core';\nimport {UrlTree} from '@angular/router';\nimport {TranslateService} from '@ngx-translate/core';\nimport {ModalButtonType, ModalService} from 'carbon-components-angular';\nimport {Observable, Subject} from 'rxjs';\nimport {PendingChangesService} from './pending-changes.service';\n\nexport class PendingChangesComponent {\n protected customModal: any = null;\n protected readonly deactivateSubject = new Subject<boolean>();\n\n private _activeModal: ComponentRef<any> | null = null;\n private _modalService: ModalService;\n private _pendingChangesService: PendingChangesService;\n private _translateService: TranslateService;\n\n protected set pendingChanges(value: boolean) {\n this._pendingChangesService.pendingChanges = value;\n }\n\n protected get pendingChanges(): boolean {\n return this._pendingChangesService.pendingChanges;\n }\n\n constructor() {\n this._modalService = inject(ModalService);\n this._pendingChangesService = inject(PendingChangesService);\n this._translateService = inject(TranslateService);\n }\n\n public canDeactivate():\n | Observable<boolean | UrlTree>\n | Promise<boolean | UrlTree>\n | boolean\n | UrlTree {\n if (!this._pendingChangesService.pendingChanges) {\n return true;\n }\n\n if (!!this._activeModal) {\n return false;\n }\n\n if (!!this.customModal) {\n this.onCanDeactivate();\n this._activeModal = this.customModal;\n return this.deactivateSubject;\n }\n\n this._activeModal = this._modalService.show({\n title: this._translateService.instant('interface.pendingChanges.title'),\n content: this._translateService.instant('interface.pendingChanges.content'),\n showCloseButton: false,\n buttons: [\n {\n text: this._translateService.instant('interface.cancel'),\n type: ModalButtonType.secondary,\n click: () => {\n this.onCancelRedirect();\n this.deactivateSubject.next(false);\n this._activeModal = null;\n },\n },\n {\n text: this._translateService.instant('interface.confirm'),\n type: ModalButtonType.primary,\n click: () => {\n this.onConfirmRedirect();\n this.deactivateSubject.next(true);\n this._activeModal = null;\n this.pendingChanges = false;\n },\n },\n ],\n close: () => false,\n });\n\n return this.deactivateSubject;\n }\n\n protected onCustomCancel(): void {\n this._activeModal = null;\n this.deactivateSubject.next(false);\n this.onCancelRedirect();\n }\n\n protected onCustomConfirm(): void {\n this._activeModal = null;\n this.deactivateSubject.next(true);\n this.onConfirmRedirect();\n }\n\n protected onCanDeactivate(): void {}\n\n protected onCancelRedirect(): void {}\n\n protected onConfirmRedirect(): void {}\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {ChangeDetectionStrategy, Component, EventEmitter, Input, Output} from '@angular/core';\nimport {BehaviorSubject, combineLatest, map, Observable} from 'rxjs';\nimport {\n CheckboxModule,\n DropdownModule,\n InputModule,\n ListItem,\n TagModule,\n} from 'carbon-components-angular';\nimport {CARBON_THEME} from '../../models';\nimport {CommonModule} from '@angular/common';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {distinctUntilChanged, filter, take} from 'rxjs/operators';\nimport {isEqual} from 'lodash';\nimport {CaseTag, CaseTagsUtils} from '@valtimo/document';\n\n@Component({\n selector: 'valtimo-case-tags-selector',\n templateUrl: './case-tags-selector.component.html',\n styleUrls: ['./case-tags-selector.component.scss'],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CommonModule, DropdownModule, CheckboxModule, InputModule, TranslateModule, TagModule],\n})\nexport class CaseTagsSelectorComponent {\n @Input() public set caseTags(value: CaseTag[]) {\n this._caseTags$.next(\n (value || []).map(caseTags => ({\n ...caseTags,\n tagType: CaseTagsUtils.getTagTypeFromCaseTagColor(caseTags.color),\n }))\n );\n }\n private readonly _selectedCaseTagKeys$ = new BehaviorSubject<string[]>([]);\n @Input() public set selectedCaseTagKeys(value: string[]) {\n this._selectedCaseTagKeys$.next(value);\n }\n @Input() public carbonTheme: CARBON_THEME = CARBON_THEME.WHITE;\n @Input() public disabled!: boolean;\n\n @Output() public selectedCaseTagsChangeEvent = new EventEmitter<string[]>();\n\n private readonly _caseTags$ = new BehaviorSubject<CaseTag[]>([]);\n\n public readonly listItems$: Observable<ListItem[]> = combineLatest([\n this._caseTags$,\n this._selectedCaseTagKeys$,\n ]).pipe(\n filter(([caseTags, selectedCaseTags]) => !!caseTags && !!selectedCaseTags),\n map(([caseTags, selectedCaseTags]) =>\n caseTags.map(caseTag => ({\n content: caseTag.title,\n selected: !!selectedCaseTags.find(selectedCaseTagKey => selectedCaseTagKey === caseTag.key),\n key: caseTag.key,\n tagType: caseTag.tagType,\n }))\n ),\n distinctUntilChanged((previous, current) => isEqual(previous, current))\n );\n\n public itemSelected(event: ListItem[]): void {\n const newSelectedItems = event?.filter(item => item?.selected) || [];\n\n this._caseTags$.pipe(take(1)).subscribe(caseTags => {\n const newSelectedCaseTags = newSelectedItems\n .map(item => caseTags.find(caseTag => caseTag.key === item.key))\n .filter(caseTag => !!caseTag)\n .map(caseTag => caseTag?.key ?? '');\n\n this.selectedCaseTagsChangeEvent.emit(newSelectedCaseTags);\n });\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<cds-label class=\"case-tag-selector\" *ngIf=\"listItems$ | async as listItems\">\n {{ 'caseManagement.caseTags.searchFieldTitle' | translate }}\n\n <cds-dropdown\n [appendInline]=\"false\"\n type=\"multi\"\n [disabled]=\"disabled\"\n selectionFeedback=\"fixed\"\n (selected)=\"itemSelected($event)\"\n >\n <cds-dropdown-list\n [items]=\"listItems\"\n [listTpl]=\"colorDropdownItemTemplate\"\n ></cds-dropdown-list>\n </cds-dropdown>\n</cds-label>\n\n<ng-template #colorDropdownItemTemplate let-item=\"item\">\n <div class=\"case-tag-selector-dropdown-template\">\n <cds-checkbox [checked]=\"item.selected\"></cds-checkbox>\n\n <cds-tag class=\"cds-tag--no-margin\" [type]=\"item?.tagType\">\n {{ item?.content }}\n </cds-tag>\n </div>\n</ng-template>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n AfterViewInit,\n Component,\n EmbeddedViewRef,\n Inject,\n OnDestroy,\n TemplateRef,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport {CommonModule, DOCUMENT} from '@angular/common';\n\n@Component({\n selector: 'valtimo-render-in-body',\n template: `<ng-template #content><ng-content></ng-content></ng-template>`,\n standalone: true,\n imports: [CommonModule],\n})\nexport class RenderInBodyComponent implements AfterViewInit, OnDestroy {\n @ViewChild('content', {read: TemplateRef, static: true})\n private readonly _contentTemplate!: TemplateRef<any>;\n\n private _viewRef!: EmbeddedViewRef<any>;\n\n constructor(\n private readonly viewContainerRef: ViewContainerRef,\n @Inject(DOCUMENT) private readonly document: Document\n ) {}\n\n public ngAfterViewInit(): void {\n this._viewRef = this.viewContainerRef.createEmbeddedView(this._contentTemplate);\n this._viewRef.detectChanges();\n\n this._viewRef.rootNodes.forEach(node => this.document.body.appendChild(node));\n }\n\n public ngOnDestroy(): void {\n this._viewRef?.rootNodes.forEach(node => {\n if (node instanceof Node && node.parentNode) {\n node.parentNode.removeChild(node);\n }\n });\n\n this._viewRef?.destroy();\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {CommonModule} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n EventEmitter,\n Input,\n Output,\n signal,\n} from '@angular/core';\nimport {Edit16, Save16} from '@carbon/icons';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {ButtonModule, IconModule, IconService} from 'carbon-components-angular';\nimport {BehaviorSubject} from 'rxjs';\nimport {EditorModel} from '../../models';\nimport {ConfirmationModalModule} from '../confirmation-modal/confirmation-modal.module';\nimport {EditorModule} from '../editor/editor.module';\n\n@Component({\n selector: 'valtimo-json-editor',\n templateUrl: './json-editor.component.html',\n styleUrl: './json-editor.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n CommonModule,\n EditorModule,\n ButtonModule,\n IconModule,\n TranslateModule,\n ConfirmationModalModule,\n ],\n})\nexport class JsonEditorComponent {\n private readonly _disabled = signal<boolean>(false);\n @Input() public set disabled(value: boolean) {\n this._disabled.set(value);\n }\n\n private _initialModel: EditorModel;\n @Input() public set model(value: EditorModel) {\n this._initialModel = value;\n }\n public get model(): EditorModel {\n return this._initialModel;\n }\n @Input() editorOptions;\n @Input() fitPage = false;\n @Input() fitPageSpaceAdjustment = 0;\n @Input() formatOnLoad = true;\n @Input() heightPx!: number;\n @Input() heightStyle!: string;\n @Input() jsonSchema?: string;\n @Input() showEditButton = true;\n @Input() widthPx!: number;\n\n @Output() public readonly changeEvent = new EventEmitter();\n @Output() public readonly discardEvent = new EventEmitter();\n @Output() public readonly keepEditingEvent = new EventEmitter();\n @Output() public readonly saveEvent = new EventEmitter<object>();\n\n public readonly isEditActive = signal<boolean>(false);\n public readonly isDisabled = computed(() => !this.isEditActive() || this._disabled());\n public readonly isValidJson = signal<boolean>(false);\n public readonly showSaveConfirmationModal$ = new BehaviorSubject<boolean>(false);\n public readonly showCancelConfirmationModal$ = new BehaviorSubject<boolean>(false);\n\n private _changesToSave: string | null = null;\n\n constructor(private readonly iconService: IconService) {\n this.iconService.registerAll([Edit16, Save16]);\n }\n\n public onCancelClick(): void {\n if (!this._changesToSave) {\n this.resetEditor();\n return;\n }\n\n this.showCancelConfirmationModal$.next(true);\n }\n\n public onEditClick(): void {\n this.isEditActive.set(true);\n }\n\n public onDiscardChanges(): void {\n this.discardEvent.emit();\n this.resetEditor();\n this.model = {...this._initialModel};\n }\n\n public onKeepEditingDefinition(): void {\n this.keepEditingEvent.emit();\n }\n\n public onSaveChanges(): void {\n if (!!this._changesToSave) this.saveEvent.emit(JSON.parse(this._changesToSave));\n\n this.resetEditor();\n }\n\n public onSaveClick(): void {\n this.showSaveConfirmationModal$.next(true);\n }\n\n public onValidEvent(isValid: boolean): void {\n this.isValidJson.set(isValid);\n }\n\n public onValueChangeEvent(value: string): void {\n this._changesToSave = value;\n if (!this.isValidJson()) return;\n\n this.changeEvent.emit();\n }\n\n private resetEditor(): void {\n this._changesToSave = null;\n this.isEditActive.set(false);\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div class=\"cds--toolbar-content\">\n @if (isEditActive()) {\n <button cdsButton=\"secondary\" (click)=\"onCancelClick()\">\n {{ 'interface.cancel' | translate }}\n\n <svg cdsIcon=\"close\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </button>\n\n <button cdsButton=\"primary\" [disabled]=\"!isValidJson()\" (click)=\"onSaveClick()\">\n {{ 'interface.save' | translate }}\n\n <svg cdsIcon=\"save\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </button>\n } @else {\n <ng-content></ng-content>\n\n <button\n *ngIf=\"showEditButton\"\n cdsButton=\"primary\"\n [disabled]=\"disableEditButton\"\n (click)=\"onEditClick()\"\n >\n {{ 'interface.edit' | translate }}\n\n <svg cdsIcon=\"edit\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </button>\n }\n</div>\n\n<valtimo-editor\n [disabled]=\"isDisabled()\"\n [fitPage]=\"fitPage\"\n [fitPageSpaceAdjustment]=\"fitPageSpaceAdjustment\"\n [formatOnLoad]=\"formatOnLoad\"\n [heightPx]=\"heightPx\"\n [heightStyle]=\"heightStyle\"\n [jsonSchema]=\"jsonSchema\"\n [model]=\"model\"\n [widthPx]=\"widthPx\"\n (validEvent)=\"onValidEvent($event)\"\n (valueChangeEvent)=\"onValueChangeEvent($event)\"\n>\n</valtimo-editor>\n\n<valtimo-confirmation-modal\n [showModalSubject$]=\"showSaveConfirmationModal$\"\n cancelButtonTextTranslationKey=\"interface.cancel\"\n confirmButtonTextTranslationKey=\"interface.save\"\n contentTranslationKey=\"interface.jsonEditor.saveModalContent\"\n titleTranslationKey=\"interface.save\"\n (cancelEvent)=\"onKeepEditingDefinition()\"\n (confirmEvent)=\"onSaveChanges()\"\n></valtimo-confirmation-modal>\n\n<valtimo-confirmation-modal\n [showModalSubject$]=\"showCancelConfirmationModal$\"\n cancelButtonTextTranslationKey=\"interface.pendingChanges.keepEditing\"\n cancelButtonType=\"ghost\"\n confirmButtonTextTranslationKey=\"interface.discard\"\n confirmButtonType=\"danger\"\n contentTranslationKey=\"interface.jsonEditor.cancelModal.content\"\n optionalButtonTextTranslationKey=\"interface.save\"\n optionalButtonType=\"secondary\"\n titleTranslationKey=\"interface.jsonEditor.cancelModal.title\"\n showOptionalButton=\"true\"\n spacerAfterCancelButton=\"true\"\n (cancelEvent)=\"onKeepEditingDefinition()\"\n (confirmEvent)=\"onDiscardChanges()\"\n (optionalEvent)=\"onSaveChanges()\"\n></valtimo-confirmation-modal>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n ChangeDetectionStrategy,\n Component,\n forwardRef,\n Input,\n OnChanges,\n OnDestroy,\n signal,\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ReactiveFormsModule,\n Validators,\n} from '@angular/forms';\nimport {CommonModule} from '@angular/common';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {ButtonModule, IconModule, IconService, InputModule} from 'carbon-components-angular';\nimport {BehaviorSubject, combineLatest, Observable, Subscription} from 'rxjs';\nimport {ModalMode} from '@valtimo/shared';\nimport {Close16, Edit16} from '@carbon/icons';\nimport {filter} from 'rxjs/operators';\n\n@Component({\n selector: 'valtimo-auto-key-input',\n standalone: true,\n templateUrl: './auto-key-input.component.html',\n styleUrls: ['./auto-key-input.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n CommonModule,\n ReactiveFormsModule,\n TranslateModule,\n InputModule,\n ButtonModule,\n IconModule,\n ],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AutoKeyInputComponent),\n multi: true,\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => AutoKeyInputComponent),\n multi: true,\n },\n ],\n})\nexport class AutoKeyInputComponent\n implements ControlValueAccessor, Validators, OnChanges, OnDestroy\n{\n @Input() public labelTranslationKey: string = 'Key';\n @Input() public placeholderTranslationKey: string = '';\n\n private readonly _mode$ = new BehaviorSubject<ModalMode | null>(null);\n @Input() public set mode(value: ModalMode) {\n this._mode$.next(value);\n }\n public get mode$(): Observable<ModalMode> {\n return this._mode$.pipe(filter(mode => !!mode));\n }\n\n private readonly _usedKeys$ = new BehaviorSubject<string[]>([]);\n @Input() public set usedKeys(value: string[]) {\n this._usedKeys$.next(value || []);\n }\n\n private readonly _sourceText$ = new BehaviorSubject<string>('');\n @Input() public set sourceText(value: string) {\n this._sourceText$.next(value || '');\n }\n\n public $disabled = signal<boolean>(false);\n\n public value = '';\n\n public readonly editingKey$ = new BehaviorSubject<boolean>(true);\n private duplicateInitialized: boolean = false;\n\n public readonly idError$ = new BehaviorSubject<string | null>(null);\n\n private onChange = (_: any) => {};\n public onTouched = () => {};\n public onValidatorChange = () => {};\n public validate = (control: any): {[key: string]: any} | null =>\n this.idError$.getValue() ? {idError: {value: this.idError$.getValue()}} : null;\n\n private readonly subscription = new Subscription();\n\n constructor(private readonly iconService: IconService) {\n this.iconService.registerAll([Edit16, Close16]);\n\n this.subscription.add(\n this.mode$.subscribe(mode => {\n this.editingKey$.next(mode === 'edit');\n\n if (mode === 'duplicate') {\n this.duplicateInitialized = false;\n }\n })\n );\n\n this.subscription.add(\n combineLatest([this.mode$, this.editingKey$, this._usedKeys$, this._sourceText$]).subscribe(\n ([mode, editingKey, usedKeys, sourceText]) => {\n if (mode === 'add' || mode === 'duplicate') {\n this.updateKey(mode, editingKey, usedKeys, sourceText);\n }\n }\n )\n );\n }\n\n public ngOnChanges(): void {\n this.onValidatorChange();\n }\n\n public ngOnDestroy(): void {\n this.subscription.unsubscribe();\n this.duplicateInitialized = false;\n this.idError$.next(null);\n }\n\n public setDisabledState(disabled: boolean): void {\n this.$disabled.set(disabled);\n }\n\n public writeValue(value: string | null): void {\n if (value === null || value === '') {\n this.resetInternalState();\n return;\n }\n\n this.value = value ?? '';\n }\n\n public registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n public registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n public registerOnValidatorChange(fn: () => void) {\n this.onValidatorChange = fn;\n }\n\n public onInputChange(event: InputEvent & {target: HTMLInputElement}): void {\n const usedKeys = this._usedKeys$.getValue();\n this.idError$.next(\n usedKeys.includes(event.target.value) ? 'caseManagement.statuses.keyDuplicated' : null\n );\n this.onChange((this.value = event.target.value));\n }\n\n public enableKeyEditing(): void {\n this.editingKey$.next(true);\n }\n\n public disableKeyEditing(): void {\n this.editingKey$.next(false);\n }\n\n private getUniqueKey(sourceText: string, usedKeys: string[]): string {\n const baseKey = sourceText\n .toLowerCase()\n .replace(/[^a-z0-9-_]+|-[^a-z0-9]+/g, '-')\n .replace(/_[-_]+/g, '_')\n .replace(/^[^a-z]+/g, '');\n\n if (!usedKeys.includes(baseKey) || this._mode$.getValue() === 'edit') {\n return baseKey;\n }\n\n return this.getUniqueKeyWithNumber(baseKey, usedKeys);\n }\n\n private resetInternalState(): void {\n this.value = '';\n this.idError$.next(null);\n this.disableKeyEditing();\n this.duplicateInitialized = false;\n }\n\n private updateKey(\n mode: ModalMode,\n editingKey: boolean,\n usedKeys: string[],\n sourceText: string\n ): void {\n if (editingKey) {\n return;\n }\n\n let newKey = sourceText ? this.getUniqueKey(sourceText, usedKeys) : '';\n\n if (mode === 'duplicate' && !this.duplicateInitialized && newKey) {\n newKey = `${newKey}-duplicate`;\n this.duplicateInitialized = true;\n }\n\n this.value = newKey;\n this.onChange(newKey);\n }\n\n private getUniqueKeyWithNumber(base: string, usedKeys: string[], suffix: number = 1): string {\n const newKey = `${base}-${suffix}`;\n\n if (usedKeys.includes(newKey)) {\n return this.getUniqueKeyWithNumber(base, usedKeys, suffix + 1);\n }\n\n return newKey;\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<cds-label\n *ngIf=\"{\n mode: mode$ | async,\n idError: idError$ | async,\n editingKey: editingKey$ | async,\n } as obs\"\n [invalid]=\"!!obs.idError\"\n [invalidText]=\"obs.idError | translate\"\n>\n {{ labelTranslationKey | translate }}\n\n <div class=\"edit-key-input\">\n <input\n cdsText\n type=\"text\"\n [value]=\"value\"\n [placeholder]=\"\n obs.mode === 'add' && !obs.editingKey\n ? ('caseManagement.statuses.keyAutoGenerated' | translate)\n : (placeholderTranslationKey | translate)\n \"\n [readOnly]=\"!obs.editingKey || obs.mode === 'edit'\"\n [invalid]=\"!!obs.idError\"\n (input)=\"onInputChange($event)\"\n (blur)=\"onTouched()\"\n />\n\n <cds-icon-button\n *ngIf=\"(obs.mode === 'add' || obs.mode === 'duplicate') && !obs.editingKey\"\n [disabled]=\"$disabled()\"\n (click)=\"enableKeyEditing()\"\n kind=\"secondary\"\n >\n <svg cdsIcon=\"edit\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </cds-icon-button>\n\n <cds-icon-button\n *ngIf=\"obs.mode === 'add' && obs.editingKey\"\n [disabled]=\"$disabled()\"\n (click)=\"disableKeyEditing()\"\n kind=\"secondary\"\n >\n <svg cdsIcon=\"close\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </cds-icon-button>\n </div>\n</cds-label>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {CommonModule} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n EventEmitter,\n Input,\n Output,\n Signal,\n signal,\n} from '@angular/core';\nimport {ViewOff16, WarningAltFilled16} from '@carbon/icons';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {\n ButtonModule,\n CheckboxModule,\n DialogModule,\n IconModule,\n IconService,\n InputModule,\n TagModule,\n TooltipModule,\n} from 'carbon-components-angular';\nimport {ListAvailableField, ListField, ListHiddenColumn} from '../../models';\n\n@Component({\n selector: 'valtimo-list-column-view',\n templateUrl: './list-column-view.component.html',\n styleUrl: './list-column-view.component.scss',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n CommonModule,\n DialogModule,\n TagModule,\n CheckboxModule,\n ButtonModule,\n TranslateModule,\n IconModule,\n InputModule,\n TooltipModule,\n ],\n})\nexport class ListColumnViewComponent {\n private readonly _$availableFields = signal<ListAvailableField[]>([]);\n @Input() public set availableFields(value: ListField[]) {\n if (!value) return;\n\n this._$availableFields.set(value.map(item => ({...item, selected: undefined})));\n }\n\n private readonly _$hiddenColumns = signal<ListField[]>([]);\n @Input() public set hiddenColumns(value: ListField[] | undefined) {\n if (!value) return;\n this._$hiddenColumns.set(value);\n }\n @Input() public disabled: boolean;\n\n @Output() public readonly viewUpdateEvent = new EventEmitter<ListHiddenColumn[]>();\n\n public readonly $availableFields = computed(() =>\n this._$availableFields().map(field => ({\n ...field,\n selected:\n field.selected === undefined\n ? !this._$hiddenColumns().find(hiddenColumn => hiddenColumn.key === field.key)\n : field.selected,\n }))\n );\n\n public readonly $checkedItemsCount: Signal<number> = computed(\n () => this.$availableFields().filter(field => field.selected).length\n );\n\n constructor(private readonly iconService: IconService) {\n this.iconService.registerAll([ViewOff16, WarningAltFilled16]);\n }\n\n public onCheckedChange(selected: boolean, fieldKey: string): void {\n this._$availableFields.update((fields: ListAvailableField[]) =>\n fields.map((field: ListAvailableField) =>\n fieldKey !== field.key ? field : {...field, selected}\n )\n );\n }\n\n public onOpenChange(paneOpen: boolean | undefined): void {\n if (paneOpen === undefined || paneOpen) return;\n const hiddenColumns = this.$availableFields().flatMap(field =>\n !field.selected ? [{columnKey: field.key}] : []\n );\n\n this.viewUpdateEvent.emit(hiddenColumns);\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n@if (disabled) {\n <cds-tooltip [description]=\"'listViewColumns.disabledTooltip' | translate\">\n <button [disabled]=\"disabled\" iconOnly=\"true\" cdsButton=\"ghost\">\n <svg cdsIcon=\"view--off\" size=\"16\"></svg>\n </button>\n </cds-tooltip>\n} @else {\n <cds-overflow-menu\n [customTrigger]=\"customTrigger\"\n [cdsOverflowMenu]=\"visibleColumns\"\n [customPane]=\"true\"\n [flip]=\"true\"\n [description]=\"'listViewColumns.tooltip' | translate\"\n [offset]=\"{x: 2, y: 64}\"\n placement=\"bottom\"\n (openChange)=\"onOpenChange($event)\"\n >\n </cds-overflow-menu>\n}\n\n<ng-template #customTrigger>\n <button iconOnly=\"true\" cdsButton=\"ghost\" (click)=\"onOpenChange()\">\n <svg cdsIcon=\"view--off\" size=\"16\"></svg>\n </button>\n\n <cds-tag type=\"blue\" class=\"valtimo-list-column-view__tag\">\n {{ $checkedItemsCount() }}/{{ $availableFields().length }}\n </cds-tag>\n</ng-template>\n\n<ng-template #visibleColumns>\n <section class=\"valtimo-list-column-view__container\" (click)=\"$event.stopImmediatePropagation()\">\n <cds-label>{{ 'listViewColumns.label' | translate }}</cds-label>\n\n <div class=\"valtimo-list-column-view__content\">\n @for (field of $availableFields(); track field.key) {\n <cds-checkbox\n [class.valtimo-list-column-view__checkbox--disabled]=\"\n field.selected && $checkedItemsCount() === 1\n \"\n [disabled]=\"field.selected && $checkedItemsCount() === 1\"\n [checked]=\"field.selected\"\n (checkedChange)=\"onCheckedChange($event, field.key)\"\n >\n {{ field.label }}\n </cds-checkbox>\n\n @if (field.selected && $checkedItemsCount() === 1) {\n <div class=\"valtimo-list-column-view__warning\">\n <svg cdsIcon=\"warning--alt--filled\" size=\"16\"></svg>\n\n {{ 'listViewColumns.warning' | translate }}\n </div>\n }\n }\n </div>\n </section>\n</ng-template>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {ConnectedPosition, Overlay, OverlayRef} from '@angular/cdk/overlay';\nimport {TemplatePortal} from '@angular/cdk/portal';\nimport {\n Directive,\n ElementRef,\n HostListener,\n inject,\n Input,\n OnDestroy,\n TemplateRef,\n ViewContainerRef,\n} from '@angular/core';\n\n@Directive({\n selector: '[valtimoContextMenu]',\n standalone: true,\n})\nexport class ContextMenuDirective implements OnDestroy {\n private readonly overlay = inject(Overlay);\n private readonly vcr = inject(ViewContainerRef);\n private readonly hostEl = inject(ElementRef<HTMLElement>);\n private overlayRef?: OverlayRef;\n\n @Input('valtimoContextMenu') menuTpl!: TemplateRef<any>;\n @Input() contextData: unknown;\n @Input() positions: ConnectedPosition[] = [\n {originX: 'start', originY: 'top', overlayX: 'start', overlayY: 'top'},\n {originX: 'end', originY: 'top', overlayX: 'end', overlayY: 'top'},\n {originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'bottom'},\n {originX: 'end', originY: 'bottom', overlayX: 'end', overlayY: 'bottom'},\n ];\n\n public ngOnDestroy(): void {\n this.close();\n }\n\n @HostListener('contextmenu', ['$event'])\n public onContextMenu(ev: MouseEvent): void {\n ev.preventDefault();\n ev.stopPropagation();\n\n this.openAt(ev.clientX, ev.clientY);\n }\n\n @HostListener('keydown', ['$event'])\n public onKeydown(ev: KeyboardEvent): void {\n if ((ev.shiftKey && ev.key === 'F10') || ev.key === 'ContextMenu') {\n ev.preventDefault();\n const rect = this.hostEl.nativeElement.getBoundingClientRect();\n this.openAt(rect.left + 12, rect.top + 12);\n }\n }\n\n private openAt(clientX: number, clientY: number): void {\n this.close();\n\n const positionStrategy = this.overlay\n .position()\n .flexibleConnectedTo({x: clientX, y: clientY})\n .withFlexibleDimensions(false)\n .withViewportMargin(8)\n .withPositions(this.positions);\n\n this.overlayRef = this.overlay.create({\n positionStrategy,\n scrollStrategy: this.overlay.scrollStrategies.close(),\n hasBackdrop: true,\n backdropClass: 'cdk-overlay-transparent-backdrop',\n panelClass: 'app-context-menu-panel',\n });\n\n const portal = new TemplatePortal(this.menuTpl, this.vcr, {\n data: this.contextData,\n close: () => this.close(),\n } as any);\n this.overlayRef.attach(portal);\n\n const subBackdropClick = this.overlayRef.backdropClick().subscribe(() => this.close());\n const subKeydown = this.overlayRef\n .keydownEvents()\n .subscribe(e => e.key === 'Escape' && this.close());\n\n const backdropEl = this.overlayRef.backdropElement!;\n const onBackdropContextMenu = (e: MouseEvent) => {\n e.preventDefault();\n e.stopPropagation();\n\n const {clientX: x, clientY: y} = e;\n this.close();\n\n setTimeout(() => {\n const target = document.elementFromPoint(x, y) as HTMLElement | null;\n if (target) {\n target.dispatchEvent(\n new MouseEvent('contextmenu', {\n bubbles: true,\n cancelable: true,\n clientX: x,\n clientY: y,\n })\n );\n }\n }, 0);\n };\n\n backdropEl.addEventListener('contextmenu', onBackdropContextMenu);\n\n const subDetach = this.overlayRef.detachments().subscribe(() => {\n subBackdropClick.unsubscribe();\n subKeydown.unsubscribe();\n subDetach.unsubscribe();\n backdropEl.removeEventListener('contextmenu', onBackdropContextMenu);\n });\n }\n\n public close(): void {\n if (this.overlayRef && this.overlayRef.hasAttached()) {\n this.overlayRef.detach();\n this.overlayRef.dispose();\n this.overlayRef = undefined;\n }\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {CommonModule} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n signal,\n} from '@angular/core';\nimport {\n AbstractControl,\n FormBuilder,\n ReactiveFormsModule,\n ValidationErrors,\n ValidatorFn,\n Validators,\n} from '@angular/forms';\nimport {WarningFilled16} from '@carbon/icons';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {\n ButtonModule,\n IconModule,\n IconService,\n InputModule,\n ModalModule,\n NotificationModule,\n} from 'carbon-components-angular';\n\nimport {CARBON_CONSTANTS} from '../../../constants';\nimport {ValtimoCdsModalDirective} from '../../../directives/valtimo-cds-modal/valtimo-cds-modal.directive';\nimport {QuickSearchItem} from '../../../models';\nimport {QuickSearchStateService} from '../../../services';\n\n@Component({\n selector: 'valtimo-quick-search-modal',\n templateUrl: './quick-search-modal.component.html',\n styleUrl: './quick-search-modal.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [\n CommonModule,\n ReactiveFormsModule,\n TranslateModule,\n ModalModule,\n ButtonModule,\n ValtimoCdsModalDirective,\n InputModule,\n NotificationModule,\n IconModule,\n ],\n})\nexport class QuickSearchModalComponent {\n @Input() public existingItems: QuickSearchItem[] = [];\n @Output() public readonly closeEvent = new EventEmitter<string | null>();\n\n public readonly $modalOpen = this.quickSearchStateService.$modalOpen;\n public readonly $showDuplicateError = signal<boolean>(false);\n public readonly formGroup = this.fb.group({\n title: this.fb.control('', [\n Validators.required,\n Validators.maxLength(50),\n this.uniqueTitleValidator(),\n this.noWhitespaceValidator(),\n ]),\n });\n\n constructor(\n private readonly fb: FormBuilder,\n private readonly iconService: IconService,\n private readonly quickSearchStateService: QuickSearchStateService\n ) {\n this.iconService.registerAll([WarningFilled16]);\n }\n\n public closeModal(save = false): void {\n this.closeEvent.emit(save ? this.formGroup.getRawValue().title : null);\n setTimeout(() => {\n this.formGroup.reset();\n this.$showDuplicateError.set(false);\n }, CARBON_CONSTANTS.modalAnimationMs);\n }\n\n private uniqueTitleValidator(): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n if (!control.value || !Array.isArray(this.existingItems)) return null;\n\n const value = control.value.trim().toLowerCase();\n const isDuplicate = this.existingItems\n .map((item: QuickSearchItem) => item.title)\n .some(item => item.trim().toLowerCase() === value);\n\n if (!isDuplicate) {\n this.$showDuplicateError.set(false);\n return null;\n }\n\n this.$showDuplicateError.set(true);\n return {titleExists: true};\n };\n }\n\n private noWhitespaceValidator(): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n if (typeof control.value !== 'string') return null;\n\n const isOnlyWhitespace = control.value.trim().length === 0;\n\n return isOnlyWhitespace ? {whitespace: true} : null;\n };\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<cds-modal\n valtimoCdsModal\n [minContentHeight]=\"0\"\n [open]=\"$modalOpen()\"\n size=\"sm\"\n showFooter=\"true\"\n (close)=\"closeModal()\"\n>\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"closeModal()\">\n <h3 cdsModalHeaderHeading>{{ 'quickSearch.addItem' | translate }}</h3>\n </cds-modal-header>\n\n <form cdsModalContent class=\"valtimo-qiuck-search-modal__content\" [formGroup]=\"formGroup\">\n <cds-text-label>\n {{ 'interface.title' | translate }}\n\n <input\n formControlName=\"title\"\n cdsText\n type=\"text\"\n maxlength=\"50\"\n [placeholder]=\"'interface.title' | translate\"\n [attr.modal-primary-focus]=\"true\"\n />\n </cds-text-label>\n\n <div *ngIf=\"$showDuplicateError()\" class=\"valtimo-qiuck-search-modal__error\">\n <svg cdsIcon=\"warning--filled\" size=\"16\"></svg>\n\n {{ 'quickSearch.duplicateError' | translate }}\n </div>\n\n <cds-inline-notification\n [notificationObj]=\"{\n type: 'info',\n message: 'quickSearch.deleteHelperText' | translate,\n showClose: false,\n lowContrast: true,\n }\"\n ></cds-inline-notification>\n </form>\n\n <cds-modal-footer>\n <button cdsButton=\"ghost\" (click)=\"closeModal()\">\n {{ 'interface.cancel' | translate }}\n </button>\n\n <button [disabled]=\"formGroup.invalid\" cdsButton=\"primary\" (click)=\"closeModal(true)\">\n {{ 'interface.save' | translate }}\n </button>\n </cds-modal-footer>\n</cds-modal>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {CommonModule} from '@angular/common';\nimport {Component, EventEmitter, Inject, Output, signal} from '@angular/core';\nimport {TrashCan16} from '@carbon/icons';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {\n ContextMenuModule,\n DialogModule,\n IconModule,\n IconService,\n TagModule,\n TooltipModule,\n} from 'carbon-components-angular';\nimport {BehaviorSubject, combineLatest, switchMap} from 'rxjs';\nimport {QUICK_SEARCH_SERVICE} from '../../constants/quick-search.constants';\nimport {ContextMenuDirective} from '../../directives/context-menu.directive';\nimport {IQuickSearchService} from '../../interfaces';\nimport {QuickSearchItem} from '../../models';\nimport {QuickSearchStateService} from '../../services';\nimport {ConfirmationModalModule} from '../confirmation-modal/confirmation-modal.module';\nimport {QuickSearchModalComponent} from './modal/quick-search-modal.component';\n\n@Component({\n selector: 'valtimo-quick-search',\n templateUrl: './quick-search.component.html',\n styleUrl: './quick-search.component.scss',\n standalone: true,\n imports: [\n CommonModule,\n TranslateModule,\n QuickSearchModalComponent,\n TagModule,\n ConfirmationModalModule,\n ContextMenuModule,\n IconModule,\n ContextMenuDirective,\n TooltipModule,\n DialogModule,\n ],\n})\nexport class QuickSearchComponent {\n public readonly $modalOpen = this.quickSearchStateService.$modalOpen;\n public readonly showDeleteModal$ = new BehaviorSubject<boolean>(false);\n public readonly $itemToDelete = signal<QuickSearchItem | null>(null);\n\n private readonly _refresh$ = new BehaviorSubject<null>(null);\n public readonly quickSearchItems$ = combineLatest([\n this._refresh$,\n this.quickSearchService.params$,\n ]).pipe(switchMap(() => this.quickSearchService.getQuickSearchItems()));\n public readonly paramsToSave$ = this.quickSearchStateService.paramsToSave$;\n\n @Output() public readonly quickSearchEvent = new EventEmitter<string>();\n\n public readonly TOOLTIP_DELAY = 1500;\n\n constructor(\n private readonly iconService: IconService,\n private readonly quickSearchStateService: QuickSearchStateService,\n @Inject(QUICK_SEARCH_SERVICE)\n private readonly quickSearchService: IQuickSearchService<any>\n ) {\n this.iconService.register(TrashCan16);\n }\n\n public deleteItem(item: QuickSearchItem): void {\n this.$itemToDelete.set(item);\n this.showDeleteModal$.next(true);\n }\n\n public onDeleteConfirm(item: QuickSearchItem): void {\n this.quickSearchService.deleteQuickSearchItem(item).subscribe(() => {\n this._refresh$.next(null);\n });\n }\n\n public onItemClick(item: QuickSearchItem): void {\n this.quickSearchEvent.emit(item.queryPath);\n }\n\n public onModalCloseEvent(\n title: string | null,\n paramsToSave: {[key: string]: string} | null\n ): void {\n this.quickSearchStateService.closeModal();\n\n if (!title) return;\n\n const queryPath = new URLSearchParams(paramsToSave ?? {}).toString();\n this.quickSearchService\n .createQuickSearchItem({\n title,\n queryPath,\n })\n .subscribe(() => this._refresh$.next(null));\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{paramsToSave: paramsToSave$ | async, quickSearchItems: quickSearchItems$ | async} as obs\"\n>\n @for (item of obs.quickSearchItems; track item.title) {\n <cds-tooltip\n [description]=\"'quickSearch.rightClickTooltip' | translate\"\n [enterDelayMs]=\"TOOLTIP_DELAY\"\n >\n <cds-tag\n type=\"blue\"\n [valtimoContextMenu]=\"contextMenuTpl\"\n [contextData]=\"item\"\n (click)=\"onItemClick(item)\"\n >\n {{ item.title }}\n </cds-tag>\n </cds-tooltip>\n }\n\n <valtimo-quick-search-modal\n [existingItems]=\"obs.quickSearchItems\"\n (closeEvent)=\"onModalCloseEvent($event, obs.paramsToSave)\"\n ></valtimo-quick-search-modal>\n\n <valtimo-confirmation-modal\n confirmButtonTextTranslationKey=\"interface.delete\"\n confirmButtonType=\"danger\"\n contentTranslationKey=\"quickSearch.deleteModalContent\"\n [outputOnConfirm]=\"$itemToDelete()\"\n [showModalSubject$]=\"showDeleteModal$\"\n titleTranslationKey=\"quickSearch.deleteModalTitle\"\n (confirmEvent)=\"onDeleteConfirm($event)\"\n ></valtimo-confirmation-modal>\n\n <ng-template #contextMenuTpl let-data=\"data\" let-close=\"close\">\n <cds-overflow-menu-option (click)=\"deleteItem(data); close()\">\n {{ 'interface.delete' | translate }}\n\n <svg cdsIcon=\"trash-can\" size=\"16\"></svg\n ></cds-overflow-menu-option>\n </ng-template>\n</ng-container>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {CommonModule} from '@angular/common';\nimport {ChangeDetectionStrategy, Component, forwardRef, Input, signal} from '@angular/core';\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR, ReactiveFormsModule} from '@angular/forms';\nimport {BehaviorSubject, combineLatest, Observable} from 'rxjs';\nimport {map} from 'rxjs/operators';\nimport {\n ComboBoxModule,\n IconModule,\n InputModule,\n ListItem,\n TagModule,\n} from 'carbon-components-angular';\nimport {TranslateModule, TranslateService} from '@ngx-translate/core';\nimport {POPULAR_MDI_ICONS} from '../../constants';\nimport {InputLabelModule} from '../input-label/input-label.module';\n\n@Component({\n selector: 'valtimo-mdi-icon-selector',\n standalone: true,\n templateUrl: './mdi-icon-selector.component.html',\n styleUrls: ['./mdi-icon-selector.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n CommonModule,\n TranslateModule,\n ComboBoxModule,\n ReactiveFormsModule,\n InputModule,\n IconModule,\n TagModule,\n InputLabelModule,\n ],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MdiIconSelectorComponent),\n multi: true,\n },\n ],\n})\nexport class MdiIconSelectorComponent implements ControlValueAccessor {\n @Input() public labelTranslationKey: string = 'interface.icon';\n @Input() public tooltipTranslationKey: string = 'interface.iconTooltip';\n @Input() public placeholderTranslationKey: string = 'interface.iconPlaceholder';\n @Input() public appendInline = true;\n @Input() public dropUp = false;\n\n public readonly $disabled = signal<boolean>(false);\n\n public readonly value$ = new BehaviorSubject<string | null>(null);\n\n public readonly items$: Observable<ListItem[]> = combineLatest([\n this.value$,\n this.translateService.stream('key'),\n ]).pipe(\n map(([selectedKey]) =>\n POPULAR_MDI_ICONS.map(iconKey => ({\n content: this.translateService.instant(`mdiIcons.${iconKey}`),\n key: iconKey,\n selected: iconKey === selectedKey,\n }))\n )\n );\n\n private onChangeFn: (value: string | null) => void = () => {};\n public onTouched: () => void = () => {};\n\n constructor(private readonly translateService: TranslateService) {}\n\n public writeValue(value: string | null): void {\n this.value$.next(value || null);\n }\n\n public registerOnChange(fn: (value: string | null) => void): void {\n this.onChangeFn = fn;\n }\n\n public registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n public setDisabledState(disabled: boolean): void {\n this.$disabled.set(disabled);\n }\n\n public onSelected(event: {key: string}): void {\n this.value$.next(event.key);\n this.onChangeFn(event.key);\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<cds-text-label>\n <v-input-label\n [title]=\"labelTranslationKey | translate\"\n [tooltip]=\"tooltipTranslationKey | translate\"\n >\n </v-input-label>\n\n <div class=\"mdi-icon-selector\">\n <span class=\"mdi-icon-preview mdi\" [ngClass]=\"(value$ | async) || 'mdi-minus'\"></span>\n\n <cds-combo-box\n [items]=\"(items$ | async) || []\"\n [placeholder]=\"placeholderTranslationKey | translate\"\n [disabled]=\"$disabled()\"\n (selected)=\"onSelected($event)\"\n [appendInline]=\"appendInline\"\n [dropUp]=\"dropUp\"\n (blur)=\"onTouched()\"\n >\n <cds-dropdown-list [listTpl]=\"iconListTemplate\"></cds-dropdown-list>\n </cds-combo-box>\n </div>\n</cds-text-label>\n\n<ng-template #iconListTemplate let-item=\"item\">\n <div class=\"mdi-list-item\">\n <span class=\"mdi\" [ngClass]=\"item.key\" aria-hidden=\"true\"></span>\n\n <span>{{ item.content }}</span>\n </div>\n</ng-template>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {CommonModule} from '@angular/common';\nimport {ChangeDetectionStrategy, Component, Input} from '@angular/core';\n\n@Component({\n selector: 'valtimo-mdi-icon-viewer',\n standalone: true,\n templateUrl: './mdi-icon-viewer.component.html',\n styleUrls: ['./mdi-icon-viewer.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CommonModule],\n})\nexport class MdiIconViewerComponent {\n @Input() public mdiIcon: string = 'mdi-minus';\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<span class=\"mdi-icon-preview mdi\" [ngClass]=\"mdiIcon\"></span>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n AfterContentInit,\n ContentChild,\n Directive,\n Input,\n OnDestroy,\n OnInit,\n TemplateRef,\n} from '@angular/core';\nimport {Subscription, take} from 'rxjs';\nimport {PageHeaderService, PageTitleService} from '../../services';\n\n@Directive({selector: '[renderInPageHeader]', standalone: true})\nexport class RenderInPageHeaderDirective implements OnInit, AfterContentInit, OnDestroy {\n @ContentChild(TemplateRef) templateRef;\n @Input() fullWidth = false;\n\n private readonly _subscriptions = new Subscription();\n\n constructor(\n private readonly pageTitleService: PageTitleService,\n private readonly pageHeaderService: PageHeaderService\n ) {}\n\n public ngOnInit(): void {\n this._subscriptions.add(\n this.pageHeaderService.compactMode$.subscribe(() => {\n this.renderTemplateRef();\n })\n );\n }\n\n public ngAfterContentInit(): void {\n this.renderTemplateRef();\n }\n\n public ngOnDestroy() {\n this._subscriptions.unsubscribe();\n }\n\n private renderTemplateRef(): void {\n this.pageTitleService.pageActionsViewContainerRef$.pipe(take(1)).subscribe(pageActionsVcr => {\n if (this.templateRef) {\n pageActionsVcr.clear();\n pageActionsVcr.createEmbeddedView(this.templateRef);\n this.pageTitleService.setHasPageActions(true);\n this.pageTitleService.setPageActionsFullWidth(this.fullWidth);\n }\n });\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {DOCUMENT} from '@angular/common';\nimport {\n AfterViewInit,\n Directive,\n ElementRef,\n Inject,\n Input,\n OnDestroy,\n Renderer2,\n} from '@angular/core';\nimport {OverflowMenu} from 'carbon-components-angular';\nimport {v4 as uuidv4} from 'uuid';\n\n@Directive({selector: '[valtimoCdsOverflowButton]', standalone: true})\nexport class ValtimoCdsOverflowButtonDirective implements AfterViewInit, OnDestroy {\n @Input() width = 0;\n\n private _observer!: MutationObserver;\n private readonly WRAPPER_CLASS = uuidv4();\n\n constructor(\n @Inject(DOCUMENT) private document: Document,\n private readonly elementRef: ElementRef<HTMLElement>,\n private readonly renderer: Renderer2,\n private readonly host: OverflowMenu\n ) {}\n\n public ngAfterViewInit(): void {\n this.openMutationObserver();\n this.setHostInputs();\n this.setStyles();\n }\n\n public ngOnDestroy(): void {\n this._observer?.disconnect();\n }\n\n private setStyles(): void {\n const overflowMenuElements = Array.from(\n this.elementRef.nativeElement.getElementsByClassName('cds--overflow-menu')\n );\n const overflowMenuElement = Array.isArray(overflowMenuElements) && overflowMenuElements[0];\n\n if (!overflowMenuElement) return;\n\n const firstChildElement = overflowMenuElement.firstChild;\n\n this.renderer.setStyle(overflowMenuElement, 'visibility', 'hidden');\n this.renderer.setStyle(overflowMenuElement, 'display', 'flex');\n this.renderer.setStyle(overflowMenuElement, 'width', 'min-content');\n this.renderer.setStyle(overflowMenuElement, 'height', 'min-content');\n this.renderer.setStyle(firstChildElement, 'visibility', 'visible');\n\n this.setAbsolutePositionForBtnIcons();\n }\n\n private setHostInputs(): void {\n this.host.wrapperClass = this.WRAPPER_CLASS;\n this.host.flip = true;\n }\n\n private openMutationObserver(): void {\n this._observer = new MutationObserver(() => {\n const overflowMenuElements = Array.from(\n this.document.getElementsByClassName(this.WRAPPER_CLASS)\n );\n const overFlowMenuElement = overflowMenuElements[0] as HTMLUListElement;\n\n if (overFlowMenuElement) {\n this.setOverFlowMenuProperties(overFlowMenuElement);\n }\n });\n\n this._observer.observe(this.document, {\n childList: true,\n subtree: true,\n });\n }\n\n private setOverFlowMenuProperties(element: HTMLUListElement): void {\n this.renderer.addClass(element, 'hide-after');\n\n if (this.width) {\n this.renderer.setStyle(element, 'width', `${this.width}px`);\n }\n }\n\n private setAbsolutePositionForBtnIcons(): void {\n const btnIconElements = Array.from(\n this.elementRef.nativeElement.querySelectorAll('.cds--btn__icon')\n );\n\n btnIconElements.forEach((btnIconEl: HTMLElement) => {\n this.renderer.setStyle(btnIconEl, 'position', 'absolute');\n });\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n AfterViewInit,\n ChangeDetectorRef,\n Directive,\n DoCheck,\n ElementRef,\n Input,\n OnDestroy,\n} from '@angular/core';\n\n@Directive({\n selector: '[removeClassnames]',\n standalone: true,\n})\nexport class RemoveClassnamesDirective implements AfterViewInit, DoCheck, OnDestroy {\n private _observer!: MutationObserver;\n\n @Input() public removeClassnames: string[] = [];\n\n constructor(\n private readonly el: ElementRef,\n private readonly cdr: ChangeDetectorRef\n ) {}\n\n public ngAfterViewInit(): void {\n this.removeClasses();\n\n setTimeout(() => this.removeClasses());\n\n this._observer = new MutationObserver(() => {\n this.removeClasses();\n this.cdr.detectChanges();\n });\n\n this._observer.observe(this.el.nativeElement, {\n childList: true,\n subtree: true,\n attributes: true,\n });\n }\n\n public ngDoCheck(): void {\n this.removeClasses();\n }\n\n public ngOnDestroy(): void {\n this._observer?.disconnect();\n }\n\n private removeClasses(): void {\n const hostElement = this.el.nativeElement as HTMLElement;\n\n this.removeClassnames.forEach(className => {\n if (hostElement.classList.contains(className)) {\n hostElement.classList.remove(className);\n }\n\n const childElements = this.el.nativeElement.querySelectorAll(`.${className}`);\n\n childElements.forEach((element: HTMLElement) => {\n element.classList.remove(className);\n });\n });\n\n this.cdr.markForCheck();\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {AfterViewInit, Directive, ElementRef, Input, OnDestroy, Renderer2} from '@angular/core';\nimport Muuri from 'muuri';\nimport {BehaviorSubject, combineLatest, fromEvent, Observable, Subscription, switchMap} from 'rxjs';\nimport {distinctUntilChanged, filter, tap} from 'rxjs/operators';\n\n@Directive({\n selector: '[muuri]',\n standalone: true,\n})\nexport class MuuriDirective implements AfterViewInit, OnDestroy {\n @Input() public readonly columnMinWidth = 250;\n\n private readonly _muuriSubject$ = new BehaviorSubject<Muuri | null>(null);\n private readonly _containerWidthSubject$ = new BehaviorSubject<number>(0);\n private readonly _mutationTrigger$ = new BehaviorSubject<null>(null);\n\n private resizeObserver?: ResizeObserver;\n private mutationObserver?: MutationObserver;\n\n private get _muuri$(): Observable<Muuri> {\n return this._muuriSubject$.pipe(filter(muuri => !!muuri));\n }\n\n private get _muuri(): Muuri {\n return this._muuriSubject$.getValue();\n }\n\n private get _containerWidth$(): Observable<number> {\n return this._containerWidthSubject$.pipe(distinctUntilChanged());\n }\n\n private readonly _subscriptions = new Subscription();\n\n constructor(\n private readonly elementRef: ElementRef,\n private readonly renderer: Renderer2\n ) {}\n\n public ngAfterViewInit(): void {\n this.setContainerStyles();\n this.observeContainerWidthChanges();\n this.observeMutations();\n this.initMuuri();\n this.openContainerChangeSubscription();\n this.setContainerStyles();\n }\n\n public ngOnDestroy(): void {\n this.resizeObserver?.disconnect();\n this.mutationObserver?.disconnect();\n this._subscriptions.unsubscribe();\n }\n\n private initMuuri(): void {\n this._muuriSubject$.next(\n new Muuri(this.elementRef.nativeElement, {\n layout: {\n fillGaps: true,\n },\n layoutOnResize: false,\n })\n );\n }\n\n private observeContainerWidthChanges(): void {\n const nativeElement = this.elementRef.nativeElement as HTMLElement;\n\n const getWidth = () => {\n const width = nativeElement.offsetWidth;\n this._containerWidthSubject$.next(width);\n };\n\n this.resizeObserver = new ResizeObserver(() => getWidth());\n this.resizeObserver.observe(nativeElement);\n\n this._subscriptions.add(fromEvent(window, 'resize').subscribe(() => getWidth()));\n\n getWidth();\n }\n\n private observeMutations(): void {\n const nativeElement = this.elementRef.nativeElement as HTMLElement;\n\n this.mutationObserver = new MutationObserver(() => {\n if (!this._muuri) return;\n\n const container = this.elementRef.nativeElement as HTMLElement;\n const items = Array.from(container.children).filter(\n el => !this._muuri!.getItems().some(item => item.getElement() === el)\n ) as HTMLElement[];\n\n if (items.length > 0) {\n this._muuri.add(items);\n }\n\n this._mutationTrigger$.next(null);\n });\n\n this.mutationObserver.observe(nativeElement, {\n childList: true,\n subtree: true,\n });\n }\n\n private openContainerChangeSubscription(): void {\n this._subscriptions.add(\n combineLatest([this._containerWidth$, this._mutationTrigger$])\n .pipe(\n tap(([containerWidth]) => {\n const nativeElement = this.elementRef.nativeElement as HTMLElement;\n const children = Array.from(nativeElement.children) as HTMLElement[];\n\n const amountOfHorizontalElements = Math.floor(containerWidth / this.columnMinWidth);\n\n const widthPerElement =\n amountOfHorizontalElements > 1\n ? Math.min(containerWidth / amountOfHorizontalElements)\n : containerWidth;\n\n children.forEach(item => {\n item.style.setProperty('position', 'absolute');\n item.style.setProperty('width', `${widthPerElement}px`);\n });\n }),\n switchMap(() => this._muuri$),\n tap(muuri => {\n muuri.refreshItems();\n muuri.layout(true);\n })\n )\n .subscribe()\n );\n }\n\n private setContainerStyles(): void {\n const el = this.elementRef.nativeElement as HTMLElement;\n\n const computedPosition = getComputedStyle(el).position;\n\n if (!computedPosition || computedPosition === 'static') {\n this.renderer.setStyle(el, 'position', 'relative');\n }\n\n this.renderer.setStyle(el, 'margin', '-8px');\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, ViewChild, ViewContainerRef} from '@angular/core';\nimport {CommonModule} from '@angular/common';\n\n@Component({\n selector: 'valtimo-muuri-item',\n standalone: true,\n template: `\n <div class=\"item\">\n <div class=\"item-content\">\n <ng-content></ng-content>\n <ng-template #container></ng-template>\n </div>\n </div>\n `,\n styles: `\n .item {\n margin: 8px;\n }\n `,\n imports: [CommonModule],\n})\nexport class MuuriItemComponent {\n @ViewChild('container', {read: ViewContainerRef, static: true})\n public container!: ViewContainerRef;\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {MuuriDirective} from './muuri.directive';\nimport {MuuriItemComponent} from './muuri-item.component';\n\n@NgModule({\n imports: [CommonModule, MuuriItemComponent, MuuriDirective],\n exports: [MuuriDirective, MuuriItemComponent],\n})\nexport class MuuriDirectiveModule {}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {AfterViewInit, Directive, ElementRef, HostBinding, Input, OnDestroy} from '@angular/core';\nimport {BehaviorSubject, Subscription} from 'rxjs';\n\n@Directive({selector: '[valtimoReadOnly]', standalone: true})\nexport class ReadOnlyDirective implements AfterViewInit, OnDestroy {\n private readonly _isReadOnly$ = new BehaviorSubject<boolean>(true);\n @Input() public set isReadOnly(value: boolean) {\n this._isReadOnly$.next(value);\n }\n @HostBinding('class') public readonly class = 'valtimo-read-only';\n\n private readonly _subscriptions = new Subscription();\n\n constructor(private readonly elementRef: ElementRef) {}\n\n public ngAfterViewInit(): void {\n this._subscriptions.add(\n this._isReadOnly$.subscribe((readonly: boolean) => {\n if (readonly) this.elementRef.nativeElement.classList.add(this.class);\n else this.elementRef.nativeElement.classList.remove(this.class);\n })\n );\n }\n\n public ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Directive, ElementRef, EventEmitter, OnDestroy, OnInit, Output} from '@angular/core';\n\n@Directive({\n selector: '[observeSize]',\n standalone: true,\n})\nexport class ObserveSizeDirective implements OnInit, OnDestroy {\n @Output() public widthChange = new EventEmitter<number>();\n @Output() public heightChange = new EventEmitter<number>();\n\n private _resizeObserver?: ResizeObserver;\n private _lastWidth = -1;\n private _lastHeight = -1;\n\n constructor(private host: ElementRef<HTMLElement>) {}\n\n public ngOnInit(): void {\n const element = this.host.nativeElement;\n\n const emitIfChanged = (width: number, height: number) => {\n if (width !== this._lastWidth) {\n this._lastWidth = width;\n this.widthChange.emit(width);\n }\n if (height !== this._lastHeight) {\n this._lastHeight = height;\n this.heightChange.emit(height);\n }\n };\n\n const rect = element.getBoundingClientRect();\n emitIfChanged(Math.round(rect.width), Math.round(rect.height));\n\n this._resizeObserver = new ResizeObserver(entries => {\n for (const entry of entries) {\n const {width, height} = entry.contentRect;\n emitIfChanged(Math.round(width), Math.round(height));\n }\n });\n\n this._resizeObserver.observe(element);\n }\n\n public ngOnDestroy(): void {\n this._resizeObserver?.disconnect();\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*\n * Public API Surface of components\n */\n\nexport * from './lib/models';\nexport * from './lib/constants';\nexport * from './lib/pipes';\nexport * from './lib/services';\nexport * from './lib/guards';\nexport * from './lib/modules';\nexport * from './lib/utils';\n\n/*\ncomponents\n */\nexport * from './lib/components/camunda/form/camunda-form.components';\nexport * from './lib/components/camunda/form/camunda-form.module';\n\nexport * from './lib/components/topbar/topbar.component';\nexport * from './lib/components/topbar/topbar.module';\n\nexport * from './lib/components/menu/services';\nexport * from './lib/components/menu/menu-routing.module';\nexport * from './lib/components/menu/menu.module';\nexport * from './lib/components/menu/menu.init';\nexport * from './lib/components/menu/menu-item-text.component';\n\nexport * from './lib/components/right-sidebar/right-sidebar.component';\nexport * from './lib/components/right-sidebar/right-sidebar.module';\n\nexport * from './lib/components/left-sidebar/left-sidebar.component';\nexport * from './lib/components/left-sidebar/left-sidebar.module';\n\nexport * from './lib/components/carbon-list/carbon-list.component';\nexport * from './lib/components/carbon-list/carbon-list.module';\nexport * from './lib/components/carbon-list/CarbonListFilterPipe.directive';\nexport * from './lib/components/carbon-list/no-results/carbon-no-results.component';\n\nexport * from './lib/components/page-header/page-header.component';\nexport * from './lib/components/page-header/page-header.module';\n\nexport * from './lib/components/page-title/page-title.component';\nexport * from './lib/components/page-title/page-title.module';\nexport * from './lib/services/page-title.service';\n\nexport * from './lib/components/breadcrumb-navigation/breadcrumb-navigation.component';\nexport * from './lib/components/breadcrumb-navigation/breadcrumb-navigation.module';\nexport * from './lib/components/breadcrumb-navigation/breadcrumb.service';\n\nexport * from './lib/components/widget/widget.component';\nexport * from './lib/components/widget/widget.module';\n\nexport * from './lib/components/field-auto-focus/field-auto-focus.directive';\nexport * from './lib/components/field-auto-focus/field-auto-focus.module';\n\nexport * from './lib/components/bpmn-js-diagram/bpmn-js-diagram.component';\nexport * from './lib/components/bpmn-js-diagram/bpmn-js-diagram.module';\n\nexport * from './lib/components/timeline/timeline.component';\nexport * from './lib/components/timeline/timeline.module';\n\nexport * from './lib/components/filter-sidebar/filter-sidebar.component';\nexport * from './lib/components/filter-sidebar/filter-sidebar.module';\n\nexport * from './lib/components/uploader/uploader.component';\nexport * from './lib/components/uploader/uploader-drag-drop.directive';\nexport * from './lib/components/uploader/uploader.module';\n\nexport * from './lib/components/file-size/file-size.module';\nexport * from './lib/components/file-size/file-size.pipe';\n\nexport * from './lib/components/alert/alert.component';\nexport * from './lib/components/alert/alert.service';\nexport * from './lib/components/alert/alert.module';\n\nexport * from './lib/components/data-list/data-list.component';\nexport * from './lib/components/data-list/data-list.module';\n\nexport * from './lib/components/view-content/view-content.service';\n\nexport * from './lib/components/form-io/components/form-io/form-io.component';\nexport * from './lib/components/form-io/components/form-io-builder/form-io-builder.component';\nexport * from './lib/components/form-io/form-io.module';\n\nexport * from './lib/components/modal/modal.module';\nexport * from './lib/components/modal/modal.component';\n\nexport * from './lib/components/spinner/spinner.module';\nexport * from './lib/components/spinner/spinner.component';\n\nexport * from './lib/components/searchable-dropdown/searchable-dropdown.module';\nexport * from './lib/components/searchable-dropdown/searchable-dropdown.component';\n\nexport * from './lib/components/dropzone/dropzone.module';\nexport * from './lib/components/dropzone/dropzone.component';\n\nexport * from './lib/components/form-io/components/form-io-uploader/form-io-uploader.component';\nexport * from './lib/components/form-io/components/form-io-uploader/form-io-uploader.formio';\n\nexport * from './lib/components/form-io/components/form-io-current-user/form-io-current-user.component';\nexport * from './lib/components/form-io/components/form-io-current-user/form-io-current-user.formio';\n\nexport * from './lib/components/form-io/components/form-io-iban/iban.component';\nexport * from './lib/components/form-io/components/form-io-iban/iban.formio';\n\nexport * from './lib/components/form-io/components/form-io-currency/currency.component';\nexport * from './lib/components/form-io/components/form-io-currency/currency.formio';\n\nexport * from './lib/components/form-io/components/form-io-resource-selector/form-io-resource-selector.formio';\n\nexport * from './lib/components/form-io/services/form-io-state.service';\nexport * from './lib/components/form-io/services/form-io-dom.service';\nexport * from './lib/components/form-io/services/form-io.tags.service';\n\nexport * from './lib/components/webcam/webcam.module';\nexport * from './lib/components/webcam/webcam.component';\n\nexport * from './lib/components/progress-bar/progress-bar.module';\nexport * from './lib/components/progress-bar/progress-bar.component';\n\nexport * from './lib/components/searchable-dropdown-select/searchable-dropdown-select.module';\nexport * from './lib/components/searchable-dropdown-select/searchable-dropdown-select.component';\n\nexport * from './lib/components/multiselect-dropdown/multiselect-dropdown.module';\nexport * from './lib/components/multiselect-dropdown/multiselect-dropdown.component';\n\nexport * from './lib/components/search-fields/search-fields.module';\nexport * from './lib/components/search-fields/search-fields.component';\n\nexport * from './lib/components/date-time-picker/date-time-picker.component';\n\nexport * from './lib/components/multi-input/carbon-multi-input.module';\nexport * from './lib/components/multi-input/carbon-multi-input.component';\n\nexport * from './lib/components/confirmation-modal/confirmation-modal.module';\nexport * from './lib/components/confirmation-modal/confirmation-modal.component';\n\nexport * from './lib/components/expansion-panel/expansion-panel.module';\nexport * from './lib/components/expansion-panel/expansion-panel.component';\n\nexport * from './lib/components/editor/editor.module';\nexport * from './lib/components/editor/editor.component';\n\n// status selector\nexport * from './lib/components/status-selector/status-selector.component';\n// value path selector\nexport * from './lib/components/value-path-selector/value-path-selector.component';\n// formio value resolver selector\nexport * from './lib/components/form-io/components/formio-value-resolver-selector/formio-value-resolver-selector.formio';\nexport * from './lib/components/form-io/components/formio-value-resolver-selector/formio-value-resolver-selector.component';\n// formio dummy\nexport * from './lib/components/form-io/components/form-io-dummy/dummy.component';\nexport * from './lib/components/form-io/components/form-io-dummy/dummy.formio';\n// Table component\nexport * from './lib/components/table/table.module';\nexport * from './lib/components/table/table.component';\n// Select component\nexport * from './lib/components/select/select.module';\nexport * from './lib/components/select/select.component';\n// V modal component\nexport * from './lib/components/v-modal/modal.module';\nexport * from './lib/components/v-modal/modal.component';\n// Stepper components\nexport * from './lib/components/stepper/stepper.module';\nexport * from './lib/components/stepper/stepper-header/stepper-header.component';\nexport * from './lib/components/stepper/stepper-footer/stepper-footer.component';\nexport * from './lib/components/stepper/stepper-content/stepper-content.component';\nexport * from './lib/components/stepper/stepper-container/stepper-container.component';\nexport * from './lib/components/stepper/stepper-step/stepper-step.component';\nexport * from './lib/components/stepper/stepper-footer-step/stepper-footer-step.component';\n// Text input\nexport * from './lib/components/input/input.component';\nexport * from './lib/components/input/input.module';\n// Input label\nexport * from './lib/components/input-label/input-label.component';\nexport * from './lib/components/input-label/input-label.module';\n// Paragraph\nexport * from './lib/components/paragraph/paragraph.module';\nexport * from './lib/components/paragraph/paragraph.component';\n// Form\nexport * from './lib/components/form/form.module';\nexport * from './lib/components/form/form.component';\n// Prompt component\nexport * from './lib/components/prompt/prompt.module';\nexport * from './lib/components/prompt/prompt.component';\n// Date picker\nexport * from './lib/components/date-picker/date-picker.module';\nexport * from './lib/components/date-picker/date-picker.component';\n// Tooltip icon\nexport * from './lib/components/tooltip-icon/tooltip-icon.module';\nexport * from './lib/components/tooltip-icon/tooltip-icon.component';\n// Multi input form\nexport * from './lib/components/multi-input-form/multi-input-form.component';\nexport * from './lib/components/multi-input-form/multi-input-form.module';\n// Radio\nexport * from './lib/components/radio/radio.component';\nexport * from './lib/components/radio/radio.module';\n\n// Pending Changes\nexport * from './lib/components/pending-changes/pending-changes.component';\nexport * from './lib/components/pending-changes/pending-changes.service';\n\n// Choice fields\nexport * from './lib/services/choice-field.service';\nexport * from './lib/models/choice-field.model';\nexport * from './lib/models/choicefield-value.model';\n\n// case tag selector\nexport * from './lib/components/case-tags-selector/case-tags-selector.component';\nexport * from './lib/components/case-tags-selector/case-tags-selector.component';\n\n// render in body\nexport * from './lib/components/render-in-body/render-in-body.component';\n\n// JSON editor\nexport * from './lib/components/json-editor/json-editor.component';\n\n// auto key\nexport * from './lib/components/auto-key-input/auto-key-input.component';\n\n// List column view\nexport * from './lib/components/list-column-view/list-column-view.component';\n\n// Quick search\nexport * from './lib/components/quick-search/quick-search.component';\n\n// MDI icon selector\nexport * from './lib/components/mdi-icon-selector/mdi-icon-selector.component';\n\n// MDI icon viewer\nexport * from './lib/components/mdi-icon-viewer/mdi-icon-viewer.component';\n\n/*\ndirectives\n */\n// valtimo cds modal\nexport * from './lib/directives/valtimo-cds-modal/valtimo-cds-modal.directive';\n// tooltip\nexport * from './lib/directives/tooltip/tooltip.directive';\nexport * from './lib/directives/tooltip/tooltip.component';\nexport * from './lib/directives/tooltip/tooltip.module';\n// render in page header\nexport * from './lib/directives/render-in-page-header/render-in-page-header.directive';\n// render page header\nexport * from './lib/directives/render-page-header/render-page-header.directive';\n// fit page\nexport * from './lib/directives/fit-page/fit-page.directive';\n// digit only\nexport * from './lib/directives/digit-only/digit-only.directive';\n// command click\nexport * from './lib/directives/ctrl-click/ctrl-click.directive';\n// cds overflow button\nexport * from './lib/directives/valtimo-cds-overflow-button/valtimo-cds-overflow-button.directive';\n// remove toggletip button class\nexport * from './lib/directives/remove-classnames/remove-classnames.directive';\n// muuri\nexport * from './lib/directives/muuri/muuri-directive.module';\nexport * from './lib/directives/muuri/muuri.directive';\nexport * from './lib/directives/muuri/muuri-item.component';\n// read-only\nexport * from './lib/directives/read-only.directive';\n// observe size\nexport * from './lib/directives/observe-size/observe-size.directive';\n// context-menu\nexport * from './lib/directives/context-menu.directive';\n// interfaces\nexport * from './lib/interfaces';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["map","i1","i2","filter","take","tap","FormioUtils","i3.CamundaFormfieldValidationComponent","i1.CamundaFormfieldService","i3","i4.CamundaFormfieldValidationComponent","i1.ChoiceFieldService","i2.CamundaFormfieldService","i4.CamundaFormfieldGeneratorDirective","i2.CamundaGeneratedFormComponent","i3.CamundaCustomFormComponent","i4.ShellService","i6.PageHeaderService","i6.CdsThemeService","i7","i8","i9.ParagraphComponent","i4.PendingChangesService","i5","i4.MenuItemTranslationPipe","i4.VersionService","i5.ShellService","i6","i5.PageHeaderService","i5.CdsThemeService","i1.MenuService","i2.ShellService","i4","i7.MenuItemTextComponent","i9.CtrlClickDirective","i10.MenuItemTranslationPipe","i11.CaseCountPipe","i6.PageTitleService","i6.PageSubtitleService","localeDe","moment","i2.ValtimoCdsModalDirective","debounceTime","_get","i1.EllipsisPipe","i2.CarbonListFilterPipe","i6.ViewContentService","i7.KeyStateService","i8.CarbonListDragAndDropService","i9","i10","i12.CarbonTagsModalComponent","TableModule","ModalModule","i2.MenuService","i1.BreadcrumbService","i2.PageHeaderService","i2.PageTitleService","i1.PageHeaderService","i2.PageSubtitleService","i1.PageSubtitleService","i1.UserInterfaceService","i4.PageTitleComponent","i5.BreadcrumbNavigationComponent","i6.RenderPageHeaderDirective","i7.PageActionsComponent","i8.PageSubtitleComponent","i3.UploaderDragDropDirective","i4.FileSizePipe","i1.AlertService","i1.FormIoStateService","switchMap","i3.FormIoStateService","i3.FormIoLocalStorageService","i6.ValtimoModalService","i3.FormIoTagsService","i3.FormioTranslationService","i2.FormIoStateService","i4.FormIoTagsService","i3.ProgressBarComponent","i4.WebcamComponent","i5.FileSizePipe","i3.FormIoDomService","i5.DropzoneComponent","i6.FileSizePipe","i2.TooltipDirective","i3.TooltipIconComponent","InputModule","i1.ValuePathSelectorService","i7.InputLabelComponent","i1.ValtimoModalService","COMPONENT_OPTIONS","SelectComponent","i2.SearchableDropdownComponent","i4.InputLabelComponent","i5.DigitOnlyDirective","i3.InputLabelComponent","uuidv4","i2.InputLabelComponent","i4.KeyValueComponent","i5.SingleValueComponent","i6.KeyDropdownValueComponent","i7.ArbitraryAmountValueComponent","i8.KeyValuePathSelectorComponent","i9.ValuePathSelectorValueComponent","i10.ValuePathSelectorDropdownValueComponent","i11","i4.ParagraphComponent","i6.DefaultValuePipe","i5.InputComponent","i6.FormComponent","i7.DatePickerComponent","i8.InputLabelComponent","i10.SelectComponent","CarbonInputModule","DatePickerModule","CarbonButtonModule","i3.ValtimoCdsModalDirective","i1.CdsThemeService","i1.EditorService","i3.FitPageDirective","i5.SelectComponent","i1.ModalService","i1.StepperService","i1.PromptService","CarbonRadioModule","ModalService","i3.EditorComponent","i5.ConfirmationModalComponent","TooltipModule","i3.QuickSearchStateService","i1.PageTitleService"],"mappings":"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"}