@valtimo/components 10.8.0 → 11.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 (516) hide show
  1. package/assets/css/carbon-beagle-compatibility.scss +1 -1
  2. package/assets/css/carbon.scss +38 -6
  3. package/assets/css/design-tokens.css +408 -0
  4. package/{esm2020 → esm2022}/lib/components/alert/alert.component.mjs +4 -4
  5. package/{esm2020 → esm2022}/lib/components/alert/alert.module.mjs +5 -5
  6. package/{esm2020 → esm2022}/lib/components/alert/alert.service.mjs +4 -4
  7. package/{esm2020 → esm2022}/lib/components/bpmn-js-diagram/bpmn-js-diagram.component.mjs +4 -4
  8. package/{esm2020 → esm2022}/lib/components/bpmn-js-diagram/bpmn-js-diagram.module.mjs +5 -5
  9. package/{esm2020 → esm2022}/lib/components/breadcrumb-navigation/breadcrumb-navigation.component.mjs +4 -4
  10. package/{esm2020 → esm2022}/lib/components/breadcrumb-navigation/breadcrumb-navigation.module.mjs +5 -5
  11. package/esm2022/lib/components/breadcrumb-navigation/breadcrumb.service.mjs +118 -0
  12. package/esm2022/lib/components/button/button.component.mjs +99 -0
  13. package/esm2022/lib/components/button/button.module.mjs +37 -0
  14. package/{esm2020 → esm2022}/lib/components/camunda/form/camunda-form.components.mjs +4 -4
  15. package/{esm2020 → esm2022}/lib/components/camunda/form/camunda-form.module.mjs +5 -5
  16. package/{esm2020 → esm2022}/lib/components/camunda/form/custom/camunda-custom-form.component.mjs +4 -4
  17. package/{esm2020 → esm2022}/lib/components/camunda/form/custom/camunda-custom-form.module.mjs +5 -5
  18. package/{esm2020 → esm2022}/lib/components/camunda/form/generated/camunda-generated-form.component.mjs +4 -4
  19. package/{esm2020 → esm2022}/lib/components/camunda/form/generated/camunda-generated-form.module.mjs +14 -14
  20. package/{esm2020 → esm2022}/lib/components/camunda/form/generated/formfield/boolean/camunda-boolean-formfield.component.mjs +4 -4
  21. package/{esm2020 → esm2022}/lib/components/camunda/form/generated/formfield/camunda-formfield-generator.directive.mjs +4 -4
  22. package/{esm2020 → esm2022}/lib/components/camunda/form/generated/formfield/camunda-formfield.service.mjs +4 -4
  23. package/{esm2020 → esm2022}/lib/components/camunda/form/generated/formfield/choicefield/camunda-choicefield-formfield.component.mjs +4 -4
  24. package/{esm2020 → esm2022}/lib/components/camunda/form/generated/formfield/date/camunda-date-formfield.component.mjs +4 -4
  25. package/{esm2020 → esm2022}/lib/components/camunda/form/generated/formfield/enum/camunda-enum-formfield.component.mjs +4 -4
  26. package/{esm2020 → esm2022}/lib/components/camunda/form/generated/formfield/long/camunda-long-formfield.component.mjs +4 -4
  27. package/{esm2020 → esm2022}/lib/components/camunda/form/generated/formfield/string/camunda-string-formfield.component.mjs +4 -4
  28. package/{esm2020 → esm2022}/lib/components/camunda/form/generated/formfield/textarea/camunda-textarea-formfield.component.mjs +4 -4
  29. package/{esm2020 → esm2022}/lib/components/camunda/form/generated/formfield/validation/camunda-formfield-validation.component.mjs +4 -4
  30. package/esm2022/lib/components/carbon-list/CarbonListFilterPipe.directive.mjs +34 -0
  31. package/esm2022/lib/components/carbon-list/carbon-list.component.mjs +360 -0
  32. package/esm2022/lib/components/carbon-list/carbon-list.module.mjs +75 -0
  33. package/esm2022/lib/components/carbon-list/no-results/carbon-no-results.component.mjs +39 -0
  34. package/{esm2020 → esm2022}/lib/components/card/card.component.mjs +4 -4
  35. package/{esm2020 → esm2022}/lib/components/card/card.module.mjs +5 -5
  36. package/esm2022/lib/components/confirmation-modal/confirmation-modal.component.mjs +94 -0
  37. package/{esm2020 → esm2022}/lib/components/confirmation-modal/confirmation-modal.module.mjs +14 -14
  38. package/{esm2020 → esm2022}/lib/components/data-list/data-list.component.mjs +4 -4
  39. package/{esm2020 → esm2022}/lib/components/data-list/data-list.module.mjs +5 -5
  40. package/esm2022/lib/components/date-picker/date-picker.component.mjs +160 -0
  41. package/esm2022/lib/components/date-picker/date-picker.module.mjs +40 -0
  42. package/esm2022/lib/components/documenten-api-metadata-modal/documenten-api-metadata-modal.component.mjs +223 -0
  43. package/esm2022/lib/components/documenten-api-metadata-modal/documenten-api-metadata-modal.module.mjs +74 -0
  44. package/esm2022/lib/components/dropzone/dropzone.component.mjs +168 -0
  45. package/{esm2020 → esm2022}/lib/components/dropzone/dropzone.module.mjs +5 -5
  46. package/esm2022/lib/components/editor/editor.component.mjs +141 -0
  47. package/esm2022/lib/components/editor/editor.module.mjs +33 -0
  48. package/esm2022/lib/components/editor/editor.service.mjs +63 -0
  49. package/esm2022/lib/components/expansion-panel/expansion-panel.component.mjs +41 -0
  50. package/{esm2020 → esm2022}/lib/components/expansion-panel/expansion-panel.module.mjs +6 -6
  51. package/{esm2020 → esm2022}/lib/components/field-auto-focus/field-auto-focus.directive.mjs +4 -4
  52. package/{esm2020 → esm2022}/lib/components/field-auto-focus/field-auto-focus.module.mjs +5 -5
  53. package/{esm2020 → esm2022}/lib/components/file-size/file-size.module.mjs +5 -5
  54. package/{esm2020 → esm2022}/lib/components/file-size/file-size.pipe.mjs +4 -4
  55. package/{esm2020 → esm2022}/lib/components/filter-sidebar/filter-sidebar.component.mjs +4 -4
  56. package/{esm2020 → esm2022}/lib/components/filter-sidebar/filter-sidebar.module.mjs +5 -5
  57. package/esm2022/lib/components/form/form.component.mjs +136 -0
  58. package/esm2022/lib/components/form/form.module.mjs +33 -0
  59. package/{esm2020 → esm2022}/lib/components/form-io/documenten-api-uploader/documenten-api-uploader.component.mjs +4 -4
  60. package/{esm2020 → esm2022}/lib/components/form-io/form-io-builder.component.mjs +4 -4
  61. package/{esm2020 → esm2022}/lib/components/form-io/form-io-current-user/form-io-current-user.component.mjs +4 -4
  62. package/{esm2020 → esm2022}/lib/components/form-io/form-io-uploader/form-io-uploader.component.mjs +4 -4
  63. package/{esm2020 → esm2022}/lib/components/form-io/form-io.component.mjs +4 -4
  64. package/{esm2020 → esm2022}/lib/components/form-io/form-io.module.mjs +29 -29
  65. package/{esm2020 → esm2022}/lib/components/form-io/services/form-io-dom.service.mjs +4 -4
  66. package/{esm2020 → esm2022}/lib/components/form-io/services/form-io-state.service.mjs +4 -4
  67. package/esm2022/lib/components/input/input.component.mjs +168 -0
  68. package/esm2022/lib/components/input/input.module.mjs +59 -0
  69. package/esm2022/lib/components/input-label/input-label.component.mjs +81 -0
  70. package/esm2022/lib/components/input-label/input-label.module.mjs +55 -0
  71. package/esm2022/lib/components/left-sidebar/left-sidebar.component.mjs +148 -0
  72. package/{esm2020 → esm2022}/lib/components/left-sidebar/left-sidebar.module.mjs +18 -18
  73. package/{esm2020 → esm2022}/lib/components/list/ListFilterPipe.directive.mjs +4 -4
  74. package/esm2022/lib/components/list/list.component.mjs +202 -0
  75. package/{esm2020 → esm2022}/lib/components/list/list.module.mjs +5 -5
  76. package/{esm2020 → esm2022}/lib/components/menu/menu-item-text.component.mjs +5 -5
  77. package/{esm2020 → esm2022}/lib/components/menu/menu-routing.module.mjs +5 -5
  78. package/{esm2020 → esm2022}/lib/components/menu/menu.module.mjs +17 -17
  79. package/esm2022/lib/components/menu/menu.service.mjs +258 -0
  80. package/{esm2020 → esm2022}/lib/components/modal/modal.component.mjs +4 -4
  81. package/{esm2020 → esm2022}/lib/components/modal/modal.module.mjs +5 -5
  82. package/esm2022/lib/components/multi-input/carbon-multi-input.component.mjs +217 -0
  83. package/esm2022/lib/components/multi-input/carbon-multi-input.module.mjs +64 -0
  84. package/esm2022/lib/components/multi-input-form/multi-input-form.component.mjs +190 -0
  85. package/esm2022/lib/components/multi-input-form/multi-input-form.module.mjs +55 -0
  86. package/{esm2020 → esm2022}/lib/components/multiselect-dropdown/multiselect-dropdown.component.mjs +4 -4
  87. package/{esm2020 → esm2022}/lib/components/multiselect-dropdown/multiselect-dropdown.module.mjs +5 -5
  88. package/esm2022/lib/components/page/page-container/page-container.component.mjs +29 -0
  89. package/esm2022/lib/components/page/page-content/page-content.component.mjs +29 -0
  90. package/esm2022/lib/components/page/page-header/page-header.component.mjs +29 -0
  91. package/esm2022/lib/components/page/page-header-actions/page-header-actions.component.mjs +29 -0
  92. package/esm2022/lib/components/page/page-header-introduction/page-header-introduction.component.mjs +29 -0
  93. package/esm2022/lib/components/page/page.module.mjs +60 -0
  94. package/{esm2020 → esm2022}/lib/components/page-header/page-header.component.mjs +5 -5
  95. package/{esm2020 → esm2022}/lib/components/page-header/page-header.module.mjs +5 -5
  96. package/esm2022/lib/components/page-title/page-title.component.mjs +105 -0
  97. package/{esm2020 → esm2022}/lib/components/page-title/page-title.module.mjs +5 -5
  98. package/esm2022/lib/components/page-title/page-title.service.mjs +107 -0
  99. package/esm2022/lib/components/paragraph/paragraph.component.mjs +48 -0
  100. package/esm2022/lib/components/paragraph/paragraph.module.mjs +37 -0
  101. package/{esm2020 → esm2022}/lib/components/progress-bar/progress-bar.component.mjs +4 -4
  102. package/{esm2020 → esm2022}/lib/components/progress-bar/progress-bar.module.mjs +5 -5
  103. package/esm2022/lib/components/prompt/prompt.component.mjs +74 -0
  104. package/esm2022/lib/components/prompt/prompt.module.mjs +39 -0
  105. package/esm2022/lib/components/radio/radio.component.mjs +116 -0
  106. package/esm2022/lib/components/radio/radio.module.mjs +55 -0
  107. package/esm2022/lib/components/right-sidebar/right-sidebar.component.mjs +203 -0
  108. package/esm2022/lib/components/right-sidebar/right-sidebar.module.mjs +95 -0
  109. package/esm2022/lib/components/search-fields/search-fields.component.mjs +221 -0
  110. package/esm2022/lib/components/search-fields/search-fields.module.mjs +75 -0
  111. package/{esm2020 → esm2022}/lib/components/searchable-dropdown/searchable-dropdown.component.mjs +4 -4
  112. package/{esm2020 → esm2022}/lib/components/searchable-dropdown/searchable-dropdown.module.mjs +5 -5
  113. package/{esm2020 → esm2022}/lib/components/searchable-dropdown-select/searchable-dropdown-select.component.mjs +4 -4
  114. package/{esm2020 → esm2022}/lib/components/searchable-dropdown-select/searchable-dropdown-select.module.mjs +5 -5
  115. package/esm2022/lib/components/select/select.component.mjs +194 -0
  116. package/esm2022/lib/components/select/select.module.mjs +37 -0
  117. package/{esm2020 → esm2022}/lib/components/spinner/spinner.component.mjs +4 -4
  118. package/{esm2020 → esm2022}/lib/components/spinner/spinner.module.mjs +5 -5
  119. package/esm2022/lib/components/stepper/stepper-container/stepper-container.component.mjs +91 -0
  120. package/esm2022/lib/components/stepper/stepper-content/stepper-content.component.mjs +52 -0
  121. package/esm2022/lib/components/stepper/stepper-footer/stepper-footer.component.mjs +43 -0
  122. package/esm2022/lib/components/stepper/stepper-footer-step/stepper-footer-step.component.mjs +71 -0
  123. package/esm2022/lib/components/stepper/stepper-header/stepper-header.component.mjs +37 -0
  124. package/esm2022/lib/components/stepper/stepper-step/stepper-step.component.mjs +39 -0
  125. package/esm2022/lib/components/stepper/stepper.module.mjs +67 -0
  126. package/esm2022/lib/components/table/table.component.mjs +172 -0
  127. package/esm2022/lib/components/table/table.module.mjs +58 -0
  128. package/esm2022/lib/components/timeline/timeline.component.mjs +42 -0
  129. package/{esm2020 → esm2022}/lib/components/timeline/timeline.module.mjs +5 -5
  130. package/esm2022/lib/components/title/title.component.mjs +57 -0
  131. package/esm2022/lib/components/title/title.module.mjs +36 -0
  132. package/esm2022/lib/components/tooltip-icon/tooltip-icon.component.mjs +39 -0
  133. package/esm2022/lib/components/tooltip-icon/tooltip-icon.module.mjs +39 -0
  134. package/{esm2020 → esm2022}/lib/components/topbar/topbar.component.mjs +5 -5
  135. package/{esm2020 → esm2022}/lib/components/topbar/topbar.module.mjs +6 -6
  136. package/{esm2020 → esm2022}/lib/components/uploader/uploader-drag-drop.directive.mjs +4 -4
  137. package/{esm2020 → esm2022}/lib/components/uploader/uploader.component.mjs +4 -4
  138. package/{esm2020 → esm2022}/lib/components/uploader/uploader.module.mjs +5 -5
  139. package/esm2022/lib/components/v-card/card.component.mjs +80 -0
  140. package/esm2022/lib/components/v-card/card.module.mjs +38 -0
  141. package/esm2022/lib/components/v-modal/modal.component.mjs +71 -0
  142. package/esm2022/lib/components/v-modal/modal.module.mjs +37 -0
  143. package/{esm2020 → esm2022}/lib/components/version/version.service.mjs +4 -4
  144. package/{esm2020 → esm2022}/lib/components/view-content/view-content.service.mjs +4 -4
  145. package/{esm2020 → esm2022}/lib/components/webcam/webcam.component.mjs +4 -4
  146. package/{esm2020 → esm2022}/lib/components/webcam/webcam.module.mjs +5 -5
  147. package/{esm2020 → esm2022}/lib/components/widget/widget.component.mjs +4 -4
  148. package/{esm2020 → esm2022}/lib/components/widget/widget.module.mjs +5 -5
  149. package/esm2022/lib/directives/command-click/command-click-directive.module.mjs +33 -0
  150. package/esm2022/lib/directives/command-click/command-click.directive.mjs +52 -0
  151. package/esm2022/lib/directives/digit-only/digit-only.directive.mjs +283 -0
  152. package/esm2022/lib/directives/render-in-page-header/render-in-page-header-directive.module.mjs +33 -0
  153. package/esm2022/lib/directives/render-in-page-header/render-in-page-header.directive.mjs +43 -0
  154. package/esm2022/lib/directives/tooltip/tooltip.component.mjs +42 -0
  155. package/esm2022/lib/directives/tooltip/tooltip.directive.mjs +74 -0
  156. package/esm2022/lib/directives/tooltip/tooltip.module.mjs +35 -0
  157. package/esm2022/lib/directives/valtimo-cds-modal/valtimo-cds-modal-directive.module.mjs +33 -0
  158. package/esm2022/lib/directives/valtimo-cds-modal/valtimo-cds-modal.directive.mjs +68 -0
  159. package/esm2022/lib/models/button.model.mjs +17 -0
  160. package/esm2022/lib/models/carbon-list.model.mjs +21 -0
  161. package/esm2022/lib/models/carbon-pagination.model.mjs +21 -0
  162. package/esm2022/lib/models/editor.model.mjs +17 -0
  163. package/{esm2020/lib/models/list.model.mjs → esm2022/lib/models/form.model.mjs} +1 -1
  164. package/esm2022/lib/models/index.mjs +39 -0
  165. package/esm2022/lib/models/input.model.mjs +17 -0
  166. package/esm2022/lib/models/modal.model.mjs +17 -0
  167. package/{esm2020 → esm2022}/lib/models/multi-input.model.mjs +1 -1
  168. package/esm2022/lib/models/pagination.model.mjs +24 -0
  169. package/esm2022/lib/models/radio.model.mjs +17 -0
  170. package/esm2022/lib/models/select.model.mjs +17 -0
  171. package/esm2022/lib/models/sort.model.mjs +17 -0
  172. package/esm2022/lib/models/stepper.model.mjs +17 -0
  173. package/esm2022/lib/models/table.model.mjs +17 -0
  174. package/esm2022/lib/models/timeline.model.mjs +52 -0
  175. package/esm2022/lib/models/title.model.mjs +17 -0
  176. package/{esm2020 → esm2022}/lib/pipes/case-count.pipe.mjs +4 -4
  177. package/{esm2020 → esm2022}/lib/pipes/components-pipes.module.mjs +5 -5
  178. package/{esm2020 → esm2022}/lib/pipes/menu-item-translation.pipe.mjs +4 -4
  179. package/esm2022/lib/services/index.mjs +7 -0
  180. package/esm2022/lib/services/modal.service.mjs +128 -0
  181. package/esm2022/lib/services/prompt.service.mjs +205 -0
  182. package/esm2022/lib/services/shell.service.mjs +213 -0
  183. package/esm2022/lib/services/stepper.service.mjs +108 -0
  184. package/esm2022/lib/services/user-interface.service.mjs +47 -0
  185. package/{esm2020 → esm2022}/lib/services/valtimo-modal.service.mjs +4 -4
  186. package/esm2022/public_api.mjs +194 -0
  187. package/fesm2022/valtimo-components.mjs +12375 -0
  188. package/fesm2022/valtimo-components.mjs.map +1 -0
  189. package/lib/components/alert/alert.component.d.ts +1 -1
  190. package/lib/components/bpmn-js-diagram/bpmn-js-diagram.component.d.ts +1 -1
  191. package/lib/components/breadcrumb-navigation/breadcrumb-navigation.component.d.ts +1 -1
  192. package/lib/components/breadcrumb-navigation/breadcrumb.service.d.ts.map +1 -1
  193. package/lib/components/button/button.component.d.ts +30 -0
  194. package/lib/components/button/button.component.d.ts.map +1 -0
  195. package/lib/components/button/button.module.d.ts +13 -0
  196. package/lib/components/button/button.module.d.ts.map +1 -0
  197. package/lib/components/camunda/form/camunda-form.components.d.ts +1 -1
  198. package/lib/components/camunda/form/custom/camunda-custom-form.component.d.ts +1 -1
  199. package/lib/components/camunda/form/generated/camunda-generated-form.component.d.ts +1 -1
  200. package/lib/components/camunda/form/generated/formfield/boolean/camunda-boolean-formfield.component.d.ts +1 -1
  201. package/lib/components/camunda/form/generated/formfield/camunda-formfield-generator.directive.d.ts +1 -1
  202. package/lib/components/camunda/form/generated/formfield/choicefield/camunda-choicefield-formfield.component.d.ts +1 -1
  203. package/lib/components/camunda/form/generated/formfield/date/camunda-date-formfield.component.d.ts +1 -1
  204. package/lib/components/camunda/form/generated/formfield/enum/camunda-enum-formfield.component.d.ts +1 -1
  205. package/lib/components/camunda/form/generated/formfield/long/camunda-long-formfield.component.d.ts +1 -1
  206. package/lib/components/camunda/form/generated/formfield/string/camunda-string-formfield.component.d.ts +1 -1
  207. package/lib/components/camunda/form/generated/formfield/textarea/camunda-textarea-formfield.component.d.ts +1 -1
  208. package/lib/components/camunda/form/generated/formfield/validation/camunda-formfield-validation.component.d.ts +1 -1
  209. package/lib/components/carbon-list/CarbonListFilterPipe.directive.d.ts +9 -0
  210. package/lib/components/carbon-list/CarbonListFilterPipe.directive.d.ts.map +1 -0
  211. package/lib/components/carbon-list/carbon-list.component.d.ts +86 -0
  212. package/lib/components/carbon-list/carbon-list.component.d.ts.map +1 -0
  213. package/lib/components/carbon-list/carbon-list.module.d.ts +16 -0
  214. package/lib/components/carbon-list/carbon-list.module.d.ts.map +1 -0
  215. package/lib/components/{carbon-table → carbon-list}/no-results/carbon-no-results.component.d.ts +1 -1
  216. package/lib/components/{carbon-table → carbon-list}/no-results/carbon-no-results.component.d.ts.map +1 -1
  217. package/lib/components/card/card.component.d.ts +1 -1
  218. package/lib/components/confirmation-modal/confirmation-modal.component.d.ts +2 -1
  219. package/lib/components/confirmation-modal/confirmation-modal.component.d.ts.map +1 -1
  220. package/lib/components/confirmation-modal/confirmation-modal.module.d.ts +1 -1
  221. package/lib/components/data-list/data-list.component.d.ts +1 -1
  222. package/lib/components/date-picker/date-picker.component.d.ts +44 -0
  223. package/lib/components/date-picker/date-picker.component.d.ts.map +1 -0
  224. package/lib/components/date-picker/date-picker.module.d.ts +16 -0
  225. package/lib/components/date-picker/date-picker.module.d.ts.map +1 -0
  226. package/lib/components/documenten-api-metadata-modal/documenten-api-metadata-modal.component.d.ts +5 -3
  227. package/lib/components/documenten-api-metadata-modal/documenten-api-metadata-modal.component.d.ts.map +1 -1
  228. package/lib/components/documenten-api-metadata-modal/documenten-api-metadata-modal.module.d.ts +9 -2
  229. package/lib/components/documenten-api-metadata-modal/documenten-api-metadata-modal.module.d.ts.map +1 -1
  230. package/lib/components/dropzone/dropzone.component.d.ts +6 -3
  231. package/lib/components/dropzone/dropzone.component.d.ts.map +1 -1
  232. package/lib/components/editor/editor.component.d.ts +38 -0
  233. package/lib/components/editor/editor.component.d.ts.map +1 -0
  234. package/lib/components/editor/editor.module.d.ts +9 -0
  235. package/lib/components/editor/editor.module.d.ts.map +1 -0
  236. package/lib/components/editor/editor.service.d.ts +12 -0
  237. package/lib/components/editor/editor.service.d.ts.map +1 -0
  238. package/lib/components/expansion-panel/expansion-panel.component.d.ts +1 -1
  239. package/lib/components/field-auto-focus/field-auto-focus.directive.d.ts +1 -1
  240. package/lib/components/filter-sidebar/filter-sidebar.component.d.ts +1 -1
  241. package/lib/components/form/form.component.d.ts +31 -0
  242. package/lib/components/form/form.component.d.ts.map +1 -0
  243. package/lib/components/form/form.module.d.ts +9 -0
  244. package/lib/components/form/form.module.d.ts.map +1 -0
  245. package/lib/components/form-io/documenten-api-uploader/documenten-api-uploader.component.d.ts +1 -1
  246. package/lib/components/form-io/form-io-builder.component.d.ts +1 -1
  247. package/lib/components/form-io/form-io-current-user/form-io-current-user.component.d.ts +1 -1
  248. package/lib/components/form-io/form-io-uploader/form-io-uploader.component.d.ts +1 -1
  249. package/lib/components/form-io/form-io.component.d.ts +1 -1
  250. package/lib/components/input/input.component.d.ts +52 -0
  251. package/lib/components/input/input.component.d.ts.map +1 -0
  252. package/lib/components/input/input.module.d.ts +15 -0
  253. package/lib/components/input/input.module.d.ts.map +1 -0
  254. package/lib/components/input-label/input-label.component.d.ts +23 -0
  255. package/lib/components/input-label/input-label.component.d.ts.map +1 -0
  256. package/lib/components/input-label/input-label.module.d.ts +14 -0
  257. package/lib/components/input-label/input-label.module.d.ts.map +1 -0
  258. package/lib/components/left-sidebar/left-sidebar.component.d.ts +1 -1
  259. package/lib/components/left-sidebar/left-sidebar.module.d.ts +1 -1
  260. package/lib/components/list/list.component.d.ts +4 -1
  261. package/lib/components/list/list.component.d.ts.map +1 -1
  262. package/lib/components/menu/menu-item-text.component.d.ts +1 -1
  263. package/lib/components/menu/menu.service.d.ts.map +1 -1
  264. package/lib/components/modal/modal.component.d.ts +1 -1
  265. package/lib/components/multi-input/carbon-multi-input.component.d.ts +1 -1
  266. package/lib/components/multi-input/carbon-multi-input.module.d.ts +6 -4
  267. package/lib/components/multi-input/carbon-multi-input.module.d.ts.map +1 -1
  268. package/lib/components/multi-input-form/multi-input-form.component.d.ts +45 -0
  269. package/lib/components/multi-input-form/multi-input-form.component.d.ts.map +1 -0
  270. package/lib/components/multi-input-form/multi-input-form.module.d.ts +14 -0
  271. package/lib/components/multi-input-form/multi-input-form.module.d.ts.map +1 -0
  272. package/lib/components/multiselect-dropdown/multiselect-dropdown.component.d.ts +1 -1
  273. package/lib/components/page/page-container/page-container.component.d.ts +9 -0
  274. package/lib/components/page/page-container/page-container.component.d.ts.map +1 -0
  275. package/lib/components/page/page-content/page-content.component.d.ts +9 -0
  276. package/lib/components/page/page-content/page-content.component.d.ts.map +1 -0
  277. package/lib/components/page/page-header/page-header.component.d.ts +9 -0
  278. package/lib/components/page/page-header/page-header.component.d.ts.map +1 -0
  279. package/lib/components/page/page-header-actions/page-header-actions.component.d.ts +9 -0
  280. package/lib/components/page/page-header-actions/page-header-actions.component.d.ts.map +1 -0
  281. package/lib/components/page/page-header-introduction/page-header-introduction.component.d.ts +9 -0
  282. package/lib/components/page/page-header-introduction/page-header-introduction.component.d.ts.map +1 -0
  283. package/lib/components/page/page.module.d.ts +16 -0
  284. package/lib/components/page/page.module.d.ts.map +1 -0
  285. package/lib/components/page-header/page-header.component.d.ts +2 -2
  286. package/lib/components/page-header/page-header.component.d.ts.map +1 -1
  287. package/lib/components/page-title/page-title.component.d.ts +4 -4
  288. package/lib/components/page-title/page-title.component.d.ts.map +1 -1
  289. package/lib/components/page-title/page-title.service.d.ts.map +1 -1
  290. package/lib/components/paragraph/paragraph.component.d.ts +14 -0
  291. package/lib/components/paragraph/paragraph.component.d.ts.map +1 -0
  292. package/lib/components/paragraph/paragraph.module.d.ts +13 -0
  293. package/lib/components/paragraph/paragraph.module.d.ts.map +1 -0
  294. package/lib/components/progress-bar/progress-bar.component.d.ts +1 -1
  295. package/lib/components/prompt/prompt.component.d.ts +35 -0
  296. package/lib/components/prompt/prompt.component.d.ts.map +1 -0
  297. package/lib/components/prompt/prompt.module.d.ts +15 -0
  298. package/lib/components/prompt/prompt.module.d.ts.map +1 -0
  299. package/lib/components/radio/radio.component.d.ts +36 -0
  300. package/lib/components/radio/radio.component.d.ts.map +1 -0
  301. package/lib/components/radio/radio.module.d.ts +14 -0
  302. package/lib/components/radio/radio.module.d.ts.map +1 -0
  303. package/lib/components/right-sidebar/right-sidebar.component.d.ts +2 -7
  304. package/lib/components/right-sidebar/right-sidebar.component.d.ts.map +1 -1
  305. package/lib/components/search-fields/search-fields.component.d.ts +3 -2
  306. package/lib/components/search-fields/search-fields.component.d.ts.map +1 -1
  307. package/lib/components/search-fields/search-fields.module.d.ts +8 -2
  308. package/lib/components/search-fields/search-fields.module.d.ts.map +1 -1
  309. package/lib/components/searchable-dropdown/searchable-dropdown.component.d.ts +1 -1
  310. package/lib/components/searchable-dropdown-select/searchable-dropdown-select.component.d.ts +1 -1
  311. package/lib/components/select/select.component.d.ts +50 -0
  312. package/lib/components/select/select.component.d.ts.map +1 -0
  313. package/lib/components/select/select.module.d.ts +13 -0
  314. package/lib/components/select/select.module.d.ts.map +1 -0
  315. package/lib/components/spinner/spinner.component.d.ts +1 -1
  316. package/lib/components/stepper/stepper-container/stepper-container.component.d.ts +29 -0
  317. package/lib/components/stepper/stepper-container/stepper-container.component.d.ts.map +1 -0
  318. package/lib/components/stepper/stepper-content/stepper-content.component.d.ts +18 -0
  319. package/lib/components/stepper/stepper-content/stepper-content.component.d.ts.map +1 -0
  320. package/lib/components/stepper/stepper-footer/stepper-footer.component.d.ts +14 -0
  321. package/lib/components/stepper/stepper-footer/stepper-footer.component.d.ts.map +1 -0
  322. package/lib/components/stepper/stepper-footer-step/stepper-footer-step.component.d.ts +27 -0
  323. package/lib/components/stepper/stepper-footer-step/stepper-footer-step.component.d.ts.map +1 -0
  324. package/lib/components/stepper/stepper-header/stepper-header.component.d.ts +16 -0
  325. package/lib/components/stepper/stepper-header/stepper-header.component.d.ts.map +1 -0
  326. package/lib/components/stepper/stepper-step/stepper-step.component.d.ts +16 -0
  327. package/lib/components/stepper/stepper-step/stepper-step.component.d.ts.map +1 -0
  328. package/lib/components/stepper/stepper.module.d.ts +19 -0
  329. package/lib/components/stepper/stepper.module.d.ts.map +1 -0
  330. package/lib/components/table/table.component.d.ts +52 -0
  331. package/lib/components/table/table.component.d.ts.map +1 -0
  332. package/lib/components/table/table.module.d.ts +17 -0
  333. package/lib/components/table/table.module.d.ts.map +1 -0
  334. package/lib/components/timeline/timeline.component.d.ts +2 -1
  335. package/lib/components/timeline/timeline.component.d.ts.map +1 -1
  336. package/lib/components/title/title.component.d.ts +19 -0
  337. package/lib/components/title/title.component.d.ts.map +1 -0
  338. package/lib/components/title/title.module.d.ts +12 -0
  339. package/lib/components/title/title.module.d.ts.map +1 -0
  340. package/lib/components/tooltip-icon/tooltip-icon.component.d.ts +11 -0
  341. package/lib/components/tooltip-icon/tooltip-icon.component.d.ts.map +1 -0
  342. package/lib/components/tooltip-icon/tooltip-icon.module.d.ts +15 -0
  343. package/lib/components/tooltip-icon/tooltip-icon.module.d.ts.map +1 -0
  344. package/lib/components/topbar/topbar.component.d.ts +1 -1
  345. package/lib/components/topbar/topbar.module.d.ts +1 -1
  346. package/lib/components/uploader/uploader-drag-drop.directive.d.ts +1 -1
  347. package/lib/components/uploader/uploader.component.d.ts +1 -1
  348. package/lib/components/v-card/card.component.d.ts +23 -0
  349. package/lib/components/v-card/card.component.d.ts.map +1 -0
  350. package/lib/components/v-card/card.module.d.ts +14 -0
  351. package/lib/components/v-card/card.module.d.ts.map +1 -0
  352. package/lib/components/v-modal/modal.component.d.ts +29 -0
  353. package/lib/components/v-modal/modal.component.d.ts.map +1 -0
  354. package/lib/components/v-modal/modal.module.d.ts +13 -0
  355. package/lib/components/v-modal/modal.module.d.ts.map +1 -0
  356. package/lib/components/version/version.service.d.ts.map +1 -1
  357. package/lib/components/webcam/webcam.component.d.ts +1 -1
  358. package/lib/components/widget/widget.component.d.ts +1 -1
  359. package/lib/directives/command-click/command-click-directive.module.d.ts.map +1 -0
  360. package/lib/directives/{command-click.directive.d.ts → command-click/command-click.directive.d.ts} +1 -1
  361. package/lib/directives/command-click/command-click.directive.d.ts.map +1 -0
  362. package/lib/directives/digit-only/digit-only.directive.d.ts +35 -0
  363. package/lib/directives/digit-only/digit-only.directive.d.ts.map +1 -0
  364. package/lib/directives/render-in-page-header/render-in-page-header-directive.module.d.ts.map +1 -0
  365. package/lib/directives/{render-in-page-header.directive.d.ts → render-in-page-header/render-in-page-header.directive.d.ts} +2 -2
  366. package/lib/directives/render-in-page-header/render-in-page-header.directive.d.ts.map +1 -0
  367. package/lib/directives/tooltip/tooltip.component.d.ts +7 -0
  368. package/lib/directives/tooltip/tooltip.component.d.ts.map +1 -0
  369. package/lib/directives/tooltip/tooltip.directive.d.ts +19 -0
  370. package/lib/directives/tooltip/tooltip.directive.d.ts.map +1 -0
  371. package/lib/directives/tooltip/tooltip.module.d.ts +11 -0
  372. package/lib/directives/tooltip/tooltip.module.d.ts.map +1 -0
  373. package/lib/directives/valtimo-cds-modal/valtimo-cds-modal-directive.module.d.ts.map +1 -0
  374. package/lib/directives/{valtimo-cds-modal.directive.d.ts → valtimo-cds-modal/valtimo-cds-modal.directive.d.ts} +1 -1
  375. package/lib/directives/valtimo-cds-modal/valtimo-cds-modal.directive.d.ts.map +1 -0
  376. package/lib/models/button.model.d.ts +3 -0
  377. package/lib/models/button.model.d.ts.map +1 -0
  378. package/lib/models/carbon-list.model.d.ts +54 -0
  379. package/lib/models/carbon-list.model.d.ts.map +1 -0
  380. package/lib/models/carbon-pagination.model.d.ts +6 -5
  381. package/lib/models/carbon-pagination.model.d.ts.map +1 -1
  382. package/lib/models/documenten-api-metadata.model.d.ts +4 -4
  383. package/lib/models/documenten-api-metadata.model.d.ts.map +1 -1
  384. package/lib/models/editor.model.d.ts +11 -0
  385. package/lib/models/editor.model.d.ts.map +1 -0
  386. package/lib/models/form.model.d.ts +5 -0
  387. package/lib/models/form.model.d.ts.map +1 -0
  388. package/lib/models/index.d.ts +14 -2
  389. package/lib/models/index.d.ts.map +1 -1
  390. package/lib/models/input.model.d.ts +3 -0
  391. package/lib/models/input.model.d.ts.map +1 -0
  392. package/lib/models/modal.model.d.ts +3 -0
  393. package/lib/models/modal.model.d.ts.map +1 -0
  394. package/lib/models/multi-input.model.d.ts +5 -5
  395. package/lib/models/multi-input.model.d.ts.map +1 -1
  396. package/lib/models/pagination.model.d.ts +5 -3
  397. package/lib/models/pagination.model.d.ts.map +1 -1
  398. package/lib/models/radio.model.d.ts +8 -0
  399. package/lib/models/radio.model.d.ts.map +1 -0
  400. package/lib/models/searchable-dropdown.model.d.ts +1 -1
  401. package/lib/models/searchable-dropdown.model.d.ts.map +1 -1
  402. package/lib/models/select.model.d.ts +9 -0
  403. package/lib/models/select.model.d.ts.map +1 -0
  404. package/lib/models/sort.model.d.ts +11 -0
  405. package/lib/models/sort.model.d.ts.map +1 -0
  406. package/lib/models/stepper.model.d.ts +8 -0
  407. package/lib/models/stepper.model.d.ts.map +1 -0
  408. package/lib/models/table.model.d.ts +14 -0
  409. package/lib/models/table.model.d.ts.map +1 -0
  410. package/lib/models/timeline.model.d.ts +4 -1
  411. package/lib/models/timeline.model.d.ts.map +1 -1
  412. package/lib/models/title.model.d.ts +3 -0
  413. package/lib/models/title.model.d.ts.map +1 -0
  414. package/lib/services/index.d.ts +7 -0
  415. package/lib/services/index.d.ts.map +1 -0
  416. package/lib/services/modal.service.d.ts +37 -0
  417. package/lib/services/modal.service.d.ts.map +1 -0
  418. package/lib/services/prompt.service.d.ts +68 -0
  419. package/lib/services/prompt.service.d.ts.map +1 -0
  420. package/lib/services/shell.service.d.ts +3 -0
  421. package/lib/services/shell.service.d.ts.map +1 -1
  422. package/lib/services/stepper.service.d.ts +32 -0
  423. package/lib/services/stepper.service.d.ts.map +1 -0
  424. package/lib/services/user-interface.service.d.ts +11 -0
  425. package/lib/services/user-interface.service.d.ts.map +1 -0
  426. package/package.json +30 -31
  427. package/public_api.d.ts +60 -7
  428. package/public_api.d.ts.map +1 -1
  429. package/esm2020/lib/components/breadcrumb-navigation/breadcrumb.service.mjs +0 -103
  430. package/esm2020/lib/components/carbon-table/carbon-table.component.mjs +0 -178
  431. package/esm2020/lib/components/carbon-table/carbon-table.module.mjs +0 -53
  432. package/esm2020/lib/components/carbon-table/no-results/carbon-no-results.component.mjs +0 -24
  433. package/esm2020/lib/components/components.module.mjs +0 -26
  434. package/esm2020/lib/components/confirmation-modal/confirmation-modal.component.mjs +0 -90
  435. package/esm2020/lib/components/documenten-api-metadata-modal/documenten-api-metadata-modal.component.mjs +0 -215
  436. package/esm2020/lib/components/documenten-api-metadata-modal/documenten-api-metadata-modal.module.mjs +0 -67
  437. package/esm2020/lib/components/dropzone/dropzone.component.mjs +0 -155
  438. package/esm2020/lib/components/expansion-panel/expansion-panel.component.mjs +0 -41
  439. package/esm2020/lib/components/left-sidebar/left-sidebar.component.mjs +0 -148
  440. package/esm2020/lib/components/list/list.component.mjs +0 -199
  441. package/esm2020/lib/components/menu/menu.service.mjs +0 -245
  442. package/esm2020/lib/components/multi-input/carbon-multi-input.component.mjs +0 -216
  443. package/esm2020/lib/components/multi-input/carbon-multi-input.module.mjs +0 -62
  444. package/esm2020/lib/components/page-title/page-title.component.mjs +0 -106
  445. package/esm2020/lib/components/page-title/page-title.service.mjs +0 -92
  446. package/esm2020/lib/components/right-sidebar/right-sidebar.component.mjs +0 -211
  447. package/esm2020/lib/components/right-sidebar/right-sidebar.module.mjs +0 -95
  448. package/esm2020/lib/components/search-fields/search-fields.component.mjs +0 -213
  449. package/esm2020/lib/components/search-fields/search-fields.module.mjs +0 -69
  450. package/esm2020/lib/components/timeline/timeline.component.mjs +0 -32
  451. package/esm2020/lib/directives/command-click-directive.module.mjs +0 -18
  452. package/esm2020/lib/directives/command-click.directive.mjs +0 -37
  453. package/esm2020/lib/directives/index.mjs +0 -22
  454. package/esm2020/lib/directives/render-in-page-header-directive.module.mjs +0 -18
  455. package/esm2020/lib/directives/render-in-page-header.directive.mjs +0 -27
  456. package/esm2020/lib/directives/valtimo-cds-modal-directive.module.mjs +0 -33
  457. package/esm2020/lib/directives/valtimo-cds-modal.directive.mjs +0 -68
  458. package/esm2020/lib/models/carbon-pagination.model.mjs +0 -9
  459. package/esm2020/lib/models/carbon-table.model.mjs +0 -21
  460. package/esm2020/lib/models/index.mjs +0 -27
  461. package/esm2020/lib/models/pagination.model.mjs +0 -17
  462. package/esm2020/lib/models/timeline.model.mjs +0 -48
  463. package/esm2020/lib/services/shell.service.mjs +0 -206
  464. package/esm2020/public_api.mjs +0 -113
  465. package/fesm2015/valtimo-components.mjs +0 -7945
  466. package/fesm2015/valtimo-components.mjs.map +0 -1
  467. package/fesm2020/valtimo-components.mjs +0 -8060
  468. package/fesm2020/valtimo-components.mjs.map +0 -1
  469. package/lib/components/carbon-table/carbon-table.component.d.ts +0 -49
  470. package/lib/components/carbon-table/carbon-table.component.d.ts.map +0 -1
  471. package/lib/components/carbon-table/carbon-table.module.d.ts +0 -12
  472. package/lib/components/carbon-table/carbon-table.module.d.ts.map +0 -1
  473. package/lib/components/components.module.d.ts +0 -7
  474. package/lib/components/components.module.d.ts.map +0 -1
  475. package/lib/directives/command-click-directive.module.d.ts.map +0 -1
  476. package/lib/directives/command-click.directive.d.ts.map +0 -1
  477. package/lib/directives/index.d.ts +0 -7
  478. package/lib/directives/index.d.ts.map +0 -1
  479. package/lib/directives/render-in-page-header-directive.module.d.ts.map +0 -1
  480. package/lib/directives/render-in-page-header.directive.d.ts.map +0 -1
  481. package/lib/directives/valtimo-cds-modal-directive.module.d.ts.map +0 -1
  482. package/lib/directives/valtimo-cds-modal.directive.d.ts.map +0 -1
  483. package/lib/models/carbon-table.model.d.ts +0 -33
  484. package/lib/models/carbon-table.model.d.ts.map +0 -1
  485. package/lib/models/list.model.d.ts +0 -9
  486. package/lib/models/list.model.d.ts.map +0 -1
  487. /package/{esm2020 → esm2022}/lib/components/camunda/form/generated/formfield/formfield.model.mjs +0 -0
  488. /package/{esm2020 → esm2022}/lib/components/camunda/form/generated/formfield/validation/date.validators.mjs +0 -0
  489. /package/{esm2020 → esm2022}/lib/components/form-io/documenten-api-uploader/documenten-api-uploader-edit-form.mjs +0 -0
  490. /package/{esm2020 → esm2022}/lib/components/form-io/documenten-api-uploader/documenten-api-uploader.formio.mjs +0 -0
  491. /package/{esm2020 → esm2022}/lib/components/form-io/form-io-current-user/form-io-current-user-edit-form.mjs +0 -0
  492. /package/{esm2020 → esm2022}/lib/components/form-io/form-io-current-user/form-io-current-user.formio.mjs +0 -0
  493. /package/{esm2020 → esm2022}/lib/components/form-io/form-io-resource-selector/form-io-resource-selector.formio.mjs +0 -0
  494. /package/{esm2020 → esm2022}/lib/components/form-io/form-io-uploader/form-io-uploader-edit-form.mjs +0 -0
  495. /package/{esm2020 → esm2022}/lib/components/form-io/form-io-uploader/form-io-uploader.formio.mjs +0 -0
  496. /package/{esm2020 → esm2022}/lib/components/form-io/formio-config.mjs +0 -0
  497. /package/{esm2020 → esm2022}/lib/components/menu/menu.init.mjs +0 -0
  498. /package/{esm2020 → esm2022}/lib/components/view-content/type-converters/booleanTypeConverter.mjs +0 -0
  499. /package/{esm2020 → esm2022}/lib/components/view-content/type-converters/dateTypeConverter.mjs +0 -0
  500. /package/{esm2020 → esm2022}/lib/components/view-content/type-converters/enumTypeConverter.mjs +0 -0
  501. /package/{esm2020 → esm2022}/lib/components/view-content/type-converters/relatedFilesTypeConverter.mjs +0 -0
  502. /package/{esm2020 → esm2022}/lib/components/view-content/type-converters/stringReplaceUnderscoreTypeConverter.mjs +0 -0
  503. /package/{esm2020 → esm2022}/lib/components/view-content/type-converters/stringTypeConverter.mjs +0 -0
  504. /package/{esm2020 → esm2022}/lib/components/view-content/type-converters/type-converters.model.mjs +0 -0
  505. /package/{esm2020 → esm2022}/lib/constants/carbon.constants.mjs +0 -0
  506. /package/{esm2020 → esm2022}/lib/constants/index.mjs +0 -0
  507. /package/{esm2020 → esm2022}/lib/models/alert.model.mjs +0 -0
  508. /package/{esm2020 → esm2022}/lib/models/documenten-api-metadata.model.mjs +0 -0
  509. /package/{esm2020 → esm2022}/lib/models/form-io.model.mjs +0 -0
  510. /package/{esm2020 → esm2022}/lib/models/searchable-dropdown.model.mjs +0 -0
  511. /package/{esm2020 → esm2022}/lib/models/version.model.mjs +0 -0
  512. /package/{esm2020 → esm2022}/lib/pipes/index.mjs +0 -0
  513. /package/{esm2020 → esm2022}/valtimo-components.mjs +0 -0
  514. /package/lib/directives/{command-click-directive.module.d.ts → command-click/command-click-directive.module.d.ts} +0 -0
  515. /package/lib/directives/{render-in-page-header-directive.module.d.ts → render-in-page-header/render-in-page-header-directive.module.d.ts} +0 -0
  516. /package/lib/directives/{valtimo-cds-modal-directive.module.d.ts → valtimo-cds-modal/valtimo-cds-modal-directive.module.d.ts} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"valtimo-components.mjs","sources":["../../../../projects/valtimo/components/src/lib/models/alert.model.ts","../../../../projects/valtimo/components/src/lib/models/carbon-pagination.model.ts","../../../../projects/valtimo/components/src/lib/models/carbon-table.model.ts","../../../../projects/valtimo/components/src/lib/models/documenten-api-metadata.model.ts","../../../../projects/valtimo/components/src/lib/models/form-io.model.ts","../../../../projects/valtimo/components/src/lib/models/list.model.ts","../../../../projects/valtimo/components/src/lib/models/pagination.model.ts","../../../../projects/valtimo/components/src/lib/models/searchable-dropdown.model.ts","../../../../projects/valtimo/components/src/lib/models/timeline.model.ts","../../../../projects/valtimo/components/src/lib/models/version.model.ts","../../../../projects/valtimo/components/src/lib/models/multi-input.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/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/index.ts","../../../../projects/valtimo/components/src/lib/directives/valtimo-cds-modal.directive.ts","../../../../projects/valtimo/components/src/lib/directives/valtimo-cds-modal-directive.module.ts","../../../../projects/valtimo/components/src/lib/components/page-title/page-title.service.ts","../../../../projects/valtimo/components/src/lib/directives/render-in-page-header.directive.ts","../../../../projects/valtimo/components/src/lib/directives/render-in-page-header-directive.module.ts","../../../../projects/valtimo/components/src/lib/directives/command-click.directive.ts","../../../../projects/valtimo/components/src/lib/directives/command-click-directive.module.ts","../../../../projects/valtimo/components/src/lib/directives/index.ts","../../../../projects/valtimo/components/src/lib/services/valtimo-modal.service.ts","../../../../projects/valtimo/components/src/lib/services/shell.service.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/topbar/topbar.component.ts","../../../../projects/valtimo/components/src/lib/components/topbar/topbar.component.html","../../../../projects/valtimo/components/src/lib/components/topbar/topbar.module.ts","../../../../projects/valtimo/components/src/lib/components/menu/menu.service.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/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-table/no-results/carbon-no-results.component.ts","../../../../projects/valtimo/components/src/lib/components/carbon-table/no-results/carbon-no-results.component.html","../../../../projects/valtimo/components/src/lib/components/carbon-table/carbon-table.component.ts","../../../../projects/valtimo/components/src/lib/components/carbon-table/carbon-table.component.html","../../../../projects/valtimo/components/src/lib/components/carbon-table/carbon-table.module.ts","../../../../projects/valtimo/components/src/lib/components/view-content/type-converters/stringTypeConverter.ts","../../../../projects/valtimo/components/src/lib/components/view-content/type-converters/booleanTypeConverter.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/stringReplaceUnderscoreTypeConverter.ts","../../../../projects/valtimo/components/src/lib/components/view-content/type-converters/relatedFilesTypeConverter.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/components/list/ListFilterPipe.directive.ts","../../../../projects/valtimo/components/src/lib/components/list/list.component.ts","../../../../projects/valtimo/components/src/lib/components/list/list.component.html","../../../../projects/valtimo/components/src/lib/components/card/card.component.ts","../../../../projects/valtimo/components/src/lib/components/card/card.component.html","../../../../projects/valtimo/components/src/lib/components/card/card.module.ts","../../../../projects/valtimo/components/src/lib/components/list/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/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/components.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-state.service.ts","../../../../projects/valtimo/components/src/lib/components/form-io/form-io.component.ts","../../../../projects/valtimo/components/src/lib/components/form-io/form-io.component.html","../../../../projects/valtimo/components/src/lib/components/form-io/form-io-builder.component.ts","../../../../projects/valtimo/components/src/lib/components/form-io/form-io-builder.component.html","../../../../projects/valtimo/components/src/lib/components/form-io/formio-config.ts","../../../../projects/valtimo/components/src/lib/components/form-io/services/form-io-dom.service.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/form-io-uploader/form-io-uploader.component.ts","../../../../projects/valtimo/components/src/lib/components/form-io/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/documenten-api-metadata-modal/documenten-api-metadata-modal.component.ts","../../../../projects/valtimo/components/src/lib/components/documenten-api-metadata-modal/documenten-api-metadata-modal.component.html","../../../../projects/valtimo/components/src/lib/components/form-io/documenten-api-uploader/documenten-api-uploader.component.ts","../../../../projects/valtimo/components/src/lib/components/form-io/documenten-api-uploader/documenten-api-uploader.component.html","../../../../projects/valtimo/components/src/lib/components/documenten-api-metadata-modal/documenten-api-metadata-modal.module.ts","../../../../projects/valtimo/components/src/lib/components/form-io/form-io-current-user/form-io-current-user.component.ts","../../../../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/form-io-uploader/form-io-uploader-edit-form.ts","../../../../projects/valtimo/components/src/lib/components/form-io/form-io-uploader/form-io-uploader.formio.ts","../../../../projects/valtimo/components/src/lib/components/form-io/documenten-api-uploader/documenten-api-uploader-edit-form.ts","../../../../projects/valtimo/components/src/lib/components/form-io/documenten-api-uploader/documenten-api-uploader.formio.ts","../../../../projects/valtimo/components/src/lib/components/form-io/form-io-current-user/form-io-current-user-edit-form.ts","../../../../projects/valtimo/components/src/lib/components/form-io/form-io-current-user/form-io-current-user.formio.ts","../../../../projects/valtimo/components/src/lib/components/form-io/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/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/search-fields/search-fields.module.ts","../../../../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/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/public_api.ts","../../../../projects/valtimo/components/src/valtimo-components.ts"],"sourcesContent":["/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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","export interface CarbonPaginationConfig {\n itemsPerPageOptions?: number[];\n showPageInput?: boolean;\n}\n\nexport interface CarbonPaginationSelection {\n currentPage: number;\n pageLength: number;\n}\n\nconst defaultPaginationConfig: CarbonPaginationConfig = {\n itemsPerPageOptions: [10, 20, 30, 40, 50],\n showPageInput: true,\n};\n\nexport const createPaginationConfig = (\n config?: CarbonPaginationConfig\n): CarbonPaginationConfig => ({\n ...defaultPaginationConfig,\n ...config,\n});\n","import {TemplateRef} from '@angular/core';\nimport {TableRowSize} from 'carbon-components-angular';\n\nexport enum ColumnType {\n ACTION = 'action',\n TEMPLATE = 'template',\n TEXT = 'text',\n}\n\nexport interface CarbonTableConfig {\n fields: ColumnConfig[];\n enableSingleSelect?: boolean;\n searchable?: boolean;\n showSelectionColumn?: boolean;\n size?: TableRowSize;\n sortable?: boolean;\n striped?: boolean;\n withPagination?: boolean;\n}\n\nexport interface ActionItem {\n actionName: string;\n callback: (_) => void;\n type?: 'normal' | 'danger';\n}\n\nexport interface ColumnConfig {\n columnType: ColumnType;\n fieldName: string;\n translationKey: string;\n actions?: ActionItem[];\n className?: string;\n sortable?: boolean;\n template?: TemplateRef<any>;\n}\n\nconst defaultTableConfig: CarbonTableConfig = {\n fields: [],\n enableSingleSelect: false,\n searchable: false,\n size: 'md',\n showSelectionColumn: false,\n sortable: true,\n striped: false,\n withPagination: false,\n};\n\nexport const createCarbonTableConfig = (config: CarbonTableConfig): CarbonTableConfig => ({\n ...defaultTableConfig,\n ...config,\n});\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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/formio.common';\n\nexport interface FormioSubmission {\n data: {\n submit: boolean;\n };\n metadata: object;\n state: string;\n}\n\nexport interface ResourceOption {\n label: string;\n value: string;\n}\n\nexport class AlertsOptionsImpl implements AlertsOptions {\n submitMessage: string;\n\n constructor(submitMessage: string) {\n this.submitMessage = submitMessage;\n }\n}\n\nexport interface ValtimoFormioOptions extends FormioOptions {\n setAlertMessage(submitMessage: string);\n setHooks(submitFunction: FormioBeforeSubmit);\n}\n\nexport class 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","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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 ListField {\n key: string;\n label: string;\n sortable: boolean;\n viewType: string;\n default?: string | boolean;\n}\n\nexport {ListField};\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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;\n page: number;\n size: number;\n maxPaginationItemSize: number;\n sort?: SortState;\n}\n\nexport {Pagination};\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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 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\n constructor(\n date: string,\n time: string,\n user: string,\n activity: string,\n summaryTranslationKey: string,\n summaryTranslationParams: object,\n customData?: object\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 }\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","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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 '@valtimo/user-interface';\nimport {ListItem} from 'carbon-components-angular';\n\ntype MultiInputType = 'keyValue' | 'value' | 'keyDropdownValue';\n\ninterface MultiInputKeyValue {\n uuid?: string;\n key: string;\n value: string;\n dropdown?: 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\nexport {\n MultiInputType,\n MultiInputValues,\n MultiInputKeyValue,\n MultiInputOutput,\n MultiInputFormValue,\n MultiInputFormsValues,\n ListItemWithId,\n};\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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 './carbon-pagination.model';\nexport * from './carbon-table.model';\nexport * from './documenten-api-metadata.model';\nexport * from './form-io.model';\nexport * from './list.model';\nexport * from './pagination.model';\nexport * from './searchable-dropdown.model';\nexport * from './timeline.model';\nexport * from './version.model';\nexport * from './multi-input.model';\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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';\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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/config';\nimport {combineLatest, map, Observable} from 'rxjs';\nimport {TranslateService} from '@ngx-translate/core';\n\n@Pipe({name: 'menuItemTranslate'})\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-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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'})\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-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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';\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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 OnDestroy,\n Renderer2,\n RendererStyleFlags2,\n} from '@angular/core';\n\n@Directive({selector: '[valtimoCdsModal]'})\nexport class ValtimoCdsModalDirective implements AfterViewInit, OnDestroy {\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 this._mutationObserver = new MutationObserver((mutations: MutationRecord[]) => {\n mutations.forEach((mutation: MutationRecord) => this.attributeMutation(mutation));\n });\n }\n\n ngAfterViewInit(): void {\n this._mutationObserver.observe(this.elementRef.nativeElement, {\n attributes: true,\n });\n }\n\n ngOnDestroy(): void {\n this._mutationObserver.disconnect();\n }\n\n private attributeMutation = (mutation: MutationRecord): void => {\n const OPEN_ATTRIBUTE_NAME = 'ng-reflect-open';\n\n if (mutation.attributeName === OPEN_ATTRIBUTE_NAME) {\n const open: 'true' | 'false' =\n this.elementRef.nativeElement.getAttribute(OPEN_ATTRIBUTE_NAME);\n\n if (typeof open === 'string') {\n if (open === 'true') {\n this.setStyle();\n } else if (open === 'false') {\n this.removeStyle();\n }\n }\n }\n };\n\n private setStyle(): 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 }\n\n private removeStyle(): void {\n this.renderer.removeStyle(this.document.body, 'overflow');\n this.renderer.removeStyle(this.document.documentElement, 'overflow');\n }\n}\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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 {ValtimoCdsModalDirective} from './valtimo-cds-modal.directive';\n\n@NgModule({\n declarations: [ValtimoCdsModalDirective],\n imports: [CommonModule],\n exports: [ValtimoCdsModalDirective],\n})\nexport class ValtimoCdsModalDirectiveModule {}\n","import {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\n private readonly _pageActionsViewContainerRef$ = new BehaviorSubject<ViewContainerRef | null>(\n null\n );\n\n private _routeSubscription!: Subscription;\n\n private _preventReset!: boolean;\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$.asObservable();\n }\n\n public get hasPageActions$(): Observable<boolean> {\n return this._hasPageActions$.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 = true;\n }\n\n public enableReset(): void {\n this._preventReset = 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 private openRouteSubscription(): void {\n this._routeSubscription = combineLatest([\n this.router.events,\n this._pageActionsViewContainerRef$,\n ])\n .pipe(\n filter(\n ([event]) =>\n event instanceof NavigationEnd ||\n event instanceof NavigationStart ||\n event instanceof ResolveEnd\n ),\n tap(([event, pageActionsViewContainerRef]) => {\n if (!this._preventReset) {\n this._customPageTitle$.next('');\n this._customPageTitleSet$.next(false);\n this._customPageSubtitle$.next('');\n this._customPageSubtitleSet$.next(false);\n\n if (pageActionsViewContainerRef) {\n pageActionsViewContainerRef.clear();\n this.setHasPageActions(false);\n }\n }\n })\n )\n .subscribe();\n }\n}\n","import {AfterContentInit, ContentChild, Directive, TemplateRef} from '@angular/core';\nimport {take} from 'rxjs';\nimport {PageTitleService} from '../components/page-title/page-title.service';\n\n@Directive({selector: '[renderInPageHeader]'})\nexport class RenderInPageHeaderDirective implements AfterContentInit {\n @ContentChild(TemplateRef) templateRef;\n constructor(private readonly pageTitleService: PageTitleService) {}\n\n ngAfterContentInit(): void {\n this.pageTitleService.pageActionsViewContainerRef$.pipe(take(1)).subscribe(pageActionsVcr => {\n if (this.templateRef) {\n pageActionsVcr.createEmbeddedView(this.templateRef);\n this.pageTitleService.setHasPageActions(true);\n }\n });\n }\n}\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {RenderInPageHeaderDirective} from './render-in-page-header.directive';\n\n@NgModule({\n declarations: [RenderInPageHeaderDirective],\n imports: [CommonModule],\n exports: [RenderInPageHeaderDirective],\n})\nexport class RenderInPageHeaderDirectiveModule {}\n","import {\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})\nexport class CtrlClickDirective implements OnInit, OnDestroy {\n @Output('ctrl-click') ctrlClickEvent = new EventEmitter();\n\n private _unsubcribeFunction!: () => void;\n\n constructor(private readonly renderer: Renderer2, private readonly element: ElementRef) {}\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","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {CtrlClickDirective} from './command-click.directive';\n\n@NgModule({\n declarations: [CtrlClickDirective],\n imports: [CommonModule],\n exports: [CtrlClickDirective],\n})\nexport class CommandClickDirectiveModule {}\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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 './valtimo-cds-modal.directive';\nexport * from './valtimo-cds-modal-directive.module';\nexport * from './render-in-page-header.directive';\nexport * from './render-in-page-header-directive.module';\nexport * from './command-click.directive';\nexport * from './command-click-directive.module';\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ValtimoModalService {\n private readonly _scrollToTop$ = new Subject<null>();\n private readonly _documentDefinitionName$ = new BehaviorSubject<string>('');\n\n get scrollToTop$(): Observable<null> {\n return this._scrollToTop$.asObservable();\n }\n\n get documentDefinitionName$(): Observable<string> {\n return this._documentDefinitionName$.asObservable();\n }\n\n scrollToTop(): void {\n this._scrollToTop$.next(null);\n }\n\n setDocumentDefinitionName(documentDefinitionName: string): void {\n this._documentDefinitionName$.next(documentDefinitionName);\n }\n}\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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 {BehaviorSubject, combineLatest, fromEvent, map, Observable, Subscription} from 'rxjs';\nimport {debounceTime, take} from 'rxjs/operators';\nimport {ConfigService, ValtimoConfig} from '@valtimo/config';\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 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 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 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-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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})\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-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF 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-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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})\nexport class CamundaStringFormfieldComponent {\n public formGroup: UntypedFormGroup;\n public formField: FormField;\n\n constructor() {}\n}\n","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF 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-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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})\nexport class CamundaBooleanFormfieldComponent {\n public formGroup: UntypedFormGroup;\n public formField: FormField;\n\n constructor() {}\n}\n","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF 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-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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})\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-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF 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-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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})\nexport class CamundaLongFormfieldComponent {\n public formGroup: UntypedFormGroup;\n public formField: FormField;\n\n constructor() {}\n}\n","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF 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-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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})\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-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF 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-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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})\nexport class CamundaTextareaFormfieldComponent {\n public formGroup: UntypedFormGroup;\n public formField: FormField;\n\n constructor() {}\n}\n","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF 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-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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 '@valtimo/choicefield';\n\n@Component({\n selector: 'valtimo-camunda-choicefield-formfield',\n templateUrl: './camunda-choicefield-formfield.component.html',\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 .getChoiceFieldValuesByName(this.formField.properties['choicefield'])\n .subscribe(data => {\n this.choicefieldValues = data;\n });\n }\n}\n","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF 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-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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})\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-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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})\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-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF 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-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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 Type,\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})\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-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF 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-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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})\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-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF 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-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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, OnInit} from '@angular/core';\nimport {KeycloakService} from 'keycloak-angular';\nimport {from, map, switchMap} from 'rxjs';\nimport {ConfigService} from '@valtimo/config';\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';\n\n@Component({\n selector: 'valtimo-topbar',\n templateUrl: './topbar.component.html',\n styleUrls: ['./topbar.component.scss'],\n})\nexport class TopbarComponent implements OnInit {\n @HostBinding('class.cds--header') headerClass = true;\n\n showUserNameInTopBar!: boolean;\n\n logoBase64!: SafeResourceUrl;\n\n readonly userFullName$ = from(this.keyCloakService.isLoggedIn()).pipe(\n switchMap(() => this.keyCloakService.loadUserProfile()),\n map(profile => `${profile.firstName} ${profile.lastName}`)\n );\n\n readonly applicationTitle = this.configService.config.applicationTitle;\n readonly largeLogoMargin = this.configService.config.featureToggles?.largeLogoMargin;\n readonly sideBarExpanded$ = this.shellService.sideBarExpanded$;\n readonly largeScreen$ = this.shellService.largeScreen$;\n readonly panelExpanded$ = this.shellService.panelExpanded$;\n readonly collapsibleWidescreenMenu$ = this.shellService.collapsibleWidescreenMenu$;\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 ) {}\n\n ngOnInit(): void {\n this.iconService.registerAll([User20]);\n this.showUserNameInTopBar = this.configService.config.featureToggles?.showUserNameInTopBar;\n this.setLogo();\n }\n\n toggleSideBar(): void {\n this.shellService.toggleSideBar();\n }\n\n setPanelExpanded(expanded: boolean): void {\n this.shellService.setPanelExpanded(expanded);\n }\n\n mouseEnter(): void {\n this.shellService.setMouseOnTopBar(true);\n }\n\n mouseLeave(): void {\n this.shellService.setMouseOnTopBar(false);\n }\n\n private setLogo(): void {\n const config = this.configService.config;\n\n if (config.logoSvgBase64) {\n this.logoBase64 = this.sanitizer.bypassSecurityTrustResourceUrl(\n `data:image/svg+xml;base64, ${config.logoSvgBase64}`\n );\n } else if (config.logoPngBase64) {\n this.logoBase64 = this.sanitizer.bypassSecurityTrustResourceUrl(\n `data:image/png;base64, ${config.logoPngBase64}`\n );\n }\n }\n}\n","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF 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\"\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 *ngTemplateOutlet=\"userFullName\"></ng-container>\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 && {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-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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 '@valtimo/user-interface';\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-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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 {ConfigService, MenuConfig, MenuIncludeService, MenuItem} from '@valtimo/config';\nimport {NGXLogger} from 'ngx-logger';\nimport {UserProviderService} from '@valtimo/security';\nimport {NavigationEnd, NavigationStart, ResolveEnd, Router} from '@angular/router';\nimport {BehaviorSubject, combineLatest, Observable, Subject, timer} from 'rxjs';\nimport {DocumentDefinitions, DocumentService} from '@valtimo/document';\nimport {filter, map, take} from 'rxjs/operators';\nimport {KeycloakService} from 'keycloak-angular';\nimport {HttpClient} from '@angular/common/http';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class MenuService {\n private readonly _activeParentSequenceNumber$ = new BehaviorSubject<string>('');\n public includeFunctionObservables: {[key: string]: Observable<boolean>} = {};\n\n private _menuItems$ = new BehaviorSubject<MenuItem[]>(undefined);\n private menuConfig: MenuConfig;\n\n private readonly disableCaseCount!: boolean;\n private readonly enableObjectManagement!: boolean;\n\n get activeParentSequenceNumber$(): Observable<string> {\n return this._activeParentSequenceNumber$.asObservable();\n }\n\n constructor(\n private readonly configService: ConfigService,\n private readonly documentService: DocumentService,\n private readonly userProviderService: UserProviderService,\n private readonly logger: NGXLogger,\n private readonly menuIncludeService: MenuIncludeService,\n private readonly router: Router,\n private readonly keycloakService: KeycloakService,\n private http: HttpClient\n ) {\n const config = configService?.config;\n this.menuConfig = config?.menu;\n this.disableCaseCount = config?.featureToggles?.disableCaseCount;\n this.enableObjectManagement = config?.featureToggles?.enableObjectManagement;\n }\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 private readonly dossierItemsAppended$ = new BehaviorSubject<boolean>(false);\n private readonly objectsItemsAppended$ = new BehaviorSubject<boolean>(false);\n\n // Find out which menu item sequence number matches the current url the closest\n public get closestSequence$(): Observable<string> {\n return combineLatest([\n this.dossierItemsAppended$,\n this.objectsItemsAppended$,\n this.currentRoute$,\n this.menuItems$,\n ]).pipe(\n filter(\n ([dossierItemsAppended, objectsItemsAppended]) =>\n dossierItemsAppended || objectsItemsAppended\n ),\n map(([dossierItemsAppended, objectsItemsAppended, currentRoute, menuItems]) => {\n let closestSequence = '0';\n let highestDifference = 0;\n\n // recursive function to check how closely each item matches to the current url\n const checkItemMatch = (\n stringUrl: string,\n sequence: string,\n parentSequence?: string\n ): void => {\n // length of the current full url\n const currentRouteUrlLength = currentRoute.length;\n // length of the current full url with the item's url substracted\n const currentRouteSubstractLength = currentRoute.replace(stringUrl, '').length;\n // the amount of characters that could be substracted\n const difference = currentRouteUrlLength - currentRouteSubstractLength;\n\n // the larger the amount of characters that could be substracted, the more closely the menu item url matches the current url\n if (difference > highestDifference) {\n highestDifference = difference;\n closestSequence = sequence;\n\n if (parentSequence) {\n this._activeParentSequenceNumber$.next(parentSequence);\n } else {\n this._activeParentSequenceNumber$.next('');\n }\n }\n };\n\n // check how closely each menu item (and child menu item) matches the current url using a recursive function\n menuItems.forEach(item => {\n checkItemMatch(item.link?.join('') || '', `${item.sequence}`);\n\n if (item.children) {\n item.children.forEach(childItem => {\n if (Array.isArray(childItem.link)) {\n checkItemMatch(\n Array.isArray(item.link)\n ? [...item.link, ...childItem.link].join('')\n : childItem.link.join(''),\n `${item.sequence}${childItem.sequence}`,\n `${item.sequence}`\n );\n }\n });\n }\n });\n\n // returns the closest sequence number (each menu item has a sequence number)\n\n return closestSequence;\n })\n );\n }\n\n public get menuItems$(): Observable<MenuItem[]> {\n return this._menuItems$.asObservable();\n }\n\n init(): void {\n this.reload();\n this.logger.debug('Menu initialized');\n }\n\n public reload(): void {\n const roles = this.keycloakService.getUserRoles(true);\n return this._menuItems$.next(this.loadMenuItems(roles));\n }\n\n private loadMenuItems(userRoles: Array<string>): MenuItem[] {\n let menuItems: MenuItem[] = [];\n this.menuConfig.menuItems.forEach((menuItem: MenuItem) => {\n if (menuItem.includeFunction !== undefined) {\n this.includeFunctionObservables[menuItem.title] =\n this.menuIncludeService.getIncludeFunction(menuItem.includeFunction);\n }\n\n menuItem.show = true;\n\n if (userRoles.find(userRole => menuItem.roles.includes(userRole))) {\n menuItems.push(menuItem);\n }\n });\n menuItems = this.sortMenuItems(menuItems);\n this.appendDossierSubMenuItems(menuItems).subscribe(\n value => (menuItems = this.applyMenuRoleSecurity(value))\n );\n\n if (this.enableObjectManagement) {\n this.appendObjectsSubMenuItems(menuItems).subscribe(\n value => (menuItems = this.applyMenuRoleSecurity(value))\n );\n }\n return menuItems;\n }\n\n private sortMenuItems(menuItems: MenuItem[]): MenuItem[] {\n return menuItems.sort((a, b) => a.sequence - b.sequence);\n }\n\n private appendDossierSubMenuItems(menuItems: MenuItem[]): Observable<MenuItem[]> {\n return new Observable(subscriber => {\n this.logger.debug('appendDossierSubMenuItems');\n this.documentService.getAllDefinitions().subscribe(definitions => {\n combineLatest([\n ...definitions.content.map(definition =>\n this.documentService.getCaseSettings(definition?.id?.name)\n ),\n ])\n .pipe(take(1))\n .subscribe(allCaseSettings => {\n const openDocumentCountMap =\n !this.disableCaseCount && this.getOpenDocumentCountMap(definitions);\n\n const dossierMenuItems: MenuItem[] = definitions.content.map((definition, index) => {\n const caseSettings = allCaseSettings?.find(\n setting => setting.name === definition.id.name\n );\n\n return {\n link: ['/dossiers/' + definition.id.name],\n title: definition.schema.title,\n iconClass: 'icon mdi mdi-dot-circle',\n sequence: index,\n show: true,\n ...(!this.disableCaseCount &&\n caseSettings?.canHaveAssignee && {\n count$: openDocumentCountMap.get(definition.id.name),\n }),\n } as MenuItem;\n });\n this.logger.debug('found dossierMenuItems', dossierMenuItems);\n const menuItemIndex = menuItems.findIndex(({title}) => title === 'Dossiers');\n if (menuItemIndex > 0) {\n const dossierMenu = menuItems[menuItemIndex];\n this.logger.debug('updating dossierMenu', dossierMenu);\n dossierMenu.children = dossierMenuItems;\n menuItems[menuItemIndex] = dossierMenu;\n }\n subscriber.next(menuItems);\n this.dossierItemsAppended$.next(true);\n this.logger.debug('appendDossierSubMenuItems finished');\n });\n });\n });\n }\n\n private appendObjectsSubMenuItems(menuItems: MenuItem[]): Observable<MenuItem[]> {\n return new Observable(subscriber => {\n this.logger.debug('appendObjectManagementSubMenuItems');\n this.getAllObjects().subscribe(objects => {\n const visibleObjects = objects.filter(object => object?.showInDataMenu !== false);\n if (visibleObjects?.length > 0) {\n const objectsMenuItems: MenuItem[] = visibleObjects.map(\n (object, index) =>\n ({\n link: ['/objects/' + object.id],\n title: object.title,\n iconClass: 'icon mdi mdi-dot-circle',\n sequence: index,\n show: true,\n } as MenuItem)\n );\n this.logger.debug('found objectsMenuItems', objectsMenuItems);\n const menuItemIndex = menuItems.findIndex(({title}) => title === 'Objects');\n if (menuItemIndex > 0) {\n const objectsMenu = menuItems[menuItemIndex];\n this.logger.debug('updating objectsMenu', objectsMenu);\n objectsMenu.children = objectsMenuItems;\n menuItems[menuItemIndex] = objectsMenu;\n }\n subscriber.next(menuItems);\n this.objectsItemsAppended$.next(true);\n this.logger.debug('appendObjectsSubMenuItems finished');\n }\n });\n });\n }\n\n private getOpenDocumentCountMap(definitions: DocumentDefinitions): Map<string, Subject<number>> {\n const countMap = new Map<string, Subject<number>>();\n definitions.content.forEach(definition =>\n countMap.set(definition.id.name, new Subject<number>())\n );\n\n timer(0, 5000).subscribe(() => {\n this.documentService.getOpenDocumentCount().subscribe(openDocumentCountList => {\n openDocumentCountList.forEach(openDocumentCount =>\n countMap\n .get(openDocumentCount.documentDefinitionName)\n .next(openDocumentCount.openDocumentCount)\n );\n });\n });\n return countMap;\n }\n\n private applyMenuRoleSecurity(menuItems: MenuItem[]): MenuItem[] {\n this.userProviderService.getUserSubject().subscribe(user => {\n if (user.roles != null) {\n this.logger.debug('applyMenuRoleSecurity');\n const userRoles = user.roles;\n menuItems.forEach((menuItem: MenuItem) => {\n const access = this.determineRoleAccess(menuItem, userRoles);\n this.logger.debug('Menu: check role access', menuItem.roles, access);\n if (menuItem.show !== access) {\n this.logger.debug('Menu: Change access', menuItem, access);\n menuItem.show = access;\n }\n });\n }\n });\n return menuItems;\n }\n\n private determineRoleAccess(menuItem: MenuItem, roles: string[]): boolean {\n return !menuItem.roles || menuItem.roles.some(role => roles.includes(role));\n }\n\n private getAllObjects(): Observable<any> {\n return this.http.get(\n `${this.configService.config.valtimoApi.endpointUri}v1/object/management/configuration`\n );\n }\n}\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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/config';\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})\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-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF 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 [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: 75, 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-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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 './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-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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/config';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class VersionService {\n private valtimoEndpointUri: string;\n\n constructor(private readonly http: HttpClient, private readonly configService: ConfigService) {\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-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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 {\n Component,\n ElementRef,\n HostListener,\n OnDestroy,\n OnInit,\n ViewEncapsulation,\n} from '@angular/core';\nimport {FormBuilder, FormControl, FormGroup} from '@angular/forms';\nimport {TranslateService} from '@ngx-translate/core';\nimport {ContextService} from '@valtimo/context';\nimport {ValtimoVersion} from '../../models';\nimport {\n ConfigService,\n EmailNotificationSettings,\n FeedbackMailTo,\n UserIdentity,\n UserSettings,\n UserSettingsService,\n VERSIONS,\n} from '@valtimo/config';\nimport {UserProviderService} from '@valtimo/security';\nimport {NGXLogger} from 'ngx-logger';\nimport {BehaviorSubject, combineLatest, Observable, Subscription, switchMap, take} from 'rxjs';\nimport {VersionService} from '../version/version.service';\nimport {ShellService} from '../../services/shell.service';\nimport {map, tap} from 'rxjs/operators';\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})\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 frequencies: Array<any> = [\n 'emailNotificationOnMonday',\n 'emailNotificationOnTuesday',\n 'emailNotificationOnWednesday',\n 'emailNotificationOnThursday',\n 'emailNotificationOnFriday',\n 'emailNotificationOnSaturday',\n 'emailNotificationOnSunday',\n ];\n public settingsForm: FormGroup = this.formBuilder.group({\n taskNotifications: new FormControl(false),\n emailNotifications: new FormControl(false),\n emailNotificationOnMonday: new FormControl(false),\n emailNotificationOnTuesday: new FormControl(false),\n emailNotificationOnWednesday: new FormControl(false),\n emailNotificationOnThursday: new FormControl(false),\n emailNotificationOnFriday: new FormControl(false),\n emailNotificationOnSaturday: new FormControl(false),\n emailNotificationOnSunday: new FormControl(false),\n });\n public overrideFeedbackMenuItemToMailTo: FeedbackMailTo;\n readonly panelExpanded$ = this.shellService.panelExpanded$;\n\n readonly selectedLanguage$ = new BehaviorSubject<string>('');\n readonly languageOptions$ = new BehaviorSubject<Array<string>>([]);\n\n readonly backendVersion$: Observable<ValtimoVersion> = this.versionService.getVersion();\n\n readonly userSubject$: Observable<UserIdentity> = this.userProviderService.getUserSubject();\n\n readonly updatingSettings$ = new BehaviorSubject<boolean>(true);\n\n readonly updatingUserSettings$ = new BehaviorSubject<boolean>(true);\n\n private readonly emailNotificationSettings$ = new BehaviorSubject<EmailNotificationSettings>(\n undefined\n );\n\n readonly emailNotificationSettingsWithSideEffects$: Observable<EmailNotificationSettings> =\n this.emailNotificationSettings$.pipe(\n tap(results => {\n if (results) {\n this.settingsForm.setValue(results);\n this.updatingSettings$.next(false);\n }\n })\n );\n\n readonly userContexts$ = this.contextService.getUserContexts();\n readonly activeContext$ = this.contextService.getUserContextActive();\n\n readonly collapsibleWidescreenMenu$ = this.shellService.collapsibleWidescreenMenu$;\n\n readonly frontendVersion!: string;\n\n private formSubscription!: Subscription;\n\n private hideValtimoVersionsForNonAdmins =\n this.configService?.config?.featureToggles?.hideValtimoVersionsForNonAdmins || false;\n\n readonly isAdmin$: Observable<boolean> = this.userProviderService\n .getUserSubject()\n .pipe(map(userIdentity => userIdentity?.roles.includes('ROLE_ADMIN')));\n\n public showValtimoVersions = true;\n\n constructor(\n public translate: TranslateService,\n private readonly userProviderService: UserProviderService,\n private readonly formBuilder: FormBuilder,\n private readonly versionService: VersionService,\n private readonly contextService: ContextService,\n private readonly http: HttpClient,\n private readonly logger: NGXLogger,\n private readonly shellService: ShellService,\n private readonly elementRef: ElementRef,\n private readonly configService: ConfigService,\n private readonly userSettingsService: UserSettingsService\n ) {\n this.frontendVersion = VERSIONS?.frontendLibraries;\n this.isAdmin$.subscribe(isAdmin => {\n if (this.hideValtimoVersionsForNonAdmins && !isAdmin) {\n this.showValtimoVersions = false;\n }\n })\n }\n\n showPlantATreeButton: boolean;\n resetUrl: string;\n\n ngOnInit(): void {\n this.setLanguage();\n this.loadEmailNotificationSettings();\n this.openFormSubscription();\n this.showPlantATreeButton = this.configService.config.featureToggles?.showPlantATreeButton;\n this.resetUrl = this.configService.config.changePasswordUrl?.endpointUri;\n this.overrideFeedbackMenuItemToMailTo =\n this.configService.config?.overrideFeedbackMenuItemToMailTo;\n this.getUserSettings();\n }\n\n ngOnDestroy(): void {\n this.formSubscription?.unsubscribe();\n }\n\n setUserContext(contextId: number): void {\n this.contextService.setUserContext(contextId).subscribe();\n location.href = '/';\n }\n\n updateUserLanguage(langKey: string, saveSettings = true): void {\n this.translate\n .use(langKey)\n .pipe(take(1))\n .subscribe(() => {\n localStorage.setItem('langKey', langKey);\n this.selectedLanguage$.next(langKey);\n\n if (saveSettings) {\n this.saveUserSettings();\n }\n });\n }\n\n setCollapsibleWidescreenMenu(collapsible: boolean, saveSettings = true): void {\n this.shellService.setCollapsibleWidescreenMenu(collapsible);\n\n if (saveSettings) {\n this.saveUserSettings();\n }\n }\n\n logout(): void {\n this.userProviderService.logout();\n }\n\n private openFormSubscription(): void {\n this.formSubscription = combineLatest([\n this.emailNotificationSettings$,\n this.settingsForm.valueChanges,\n this.updatingSettings$,\n ])\n .pipe(\n tap(([settings, formValue, updatingSettings]) => {\n if (settings && formValue) {\n const settingsStringified = JSON.stringify(this.sortObjectAlphabetically(settings));\n const formStringified = JSON.stringify(this.sortObjectAlphabetically(formValue));\n\n if (settingsStringified !== formStringified && !updatingSettings) {\n this.updatingSettings$.next(true);\n this.userProviderService.updateEmailNotificationSettings(formValue).subscribe(\n results => {\n this.emailNotificationSettings$.next(results);\n this.updatingSettings$.next(false);\n },\n () => {\n this.emailNotificationSettings$.next(settings);\n this.updatingSettings$.next(false);\n }\n );\n }\n }\n })\n )\n .subscribe();\n }\n\n private loadEmailNotificationSettings(): void {\n this.userProviderService.getEmailNotificationSettings().subscribe(results => {\n if (results) {\n this.emailNotificationSettings$.next(results);\n } else {\n this.emailNotificationSettings$.next(this.settingsForm.value);\n }\n });\n }\n\n private setLanguage(): void {\n this.selectedLanguage$.next(this.translate.currentLang);\n this.languageOptions$.next(this.translate.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([this.selectedLanguage$, this.collapsibleWidescreenMenu$])\n .pipe(\n take(1),\n switchMap(([languageCode, collapsibleWidescreenMenu]) =>\n this.userSettingsService.saveUserSettings({\n collapsibleWidescreenMenu,\n languageCode,\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 }\n}\n","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF 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\">\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 <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 <ng-container *ngTemplateOutlet=\"contextTemplate\"></ng-container>\n <ng-container *ngTemplateOutlet=\"linksTemplate\"></ng-container>\n</ng-template>\n\n<ng-template #settingsTabTemplate>\n <ng-container *ngTemplateOutlet=\"languageSettingsTemplate\"></ng-container>\n <ng-container *ngTemplateOutlet=\"interfaceSettingsTemplate\"></ng-container>\n <ng-container *ngTemplateOutlet=\"notificationSettingsTemplate\"></ng-container>\n <ng-container *ngTemplateOutlet=\"versionTemplate\"></ng-container>\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 <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 <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 <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 #contextTemplate>\n <ng-container\n *ngIf=\"{userContexts: userContexts$ | async, activeContext: activeContext$ | async} as obs\"\n >\n <cds-structured-list *ngIf=\"obs.userContexts?.length > 1 && obs.activeContext?.id\">\n <cds-list-header>\n <cds-list-column>{{ 'settings.context.title' | translate }}</cds-list-column>\n </cds-list-header>\n <cds-list-row>\n <cds-list-column>\n <cds-select [ngModel]=\"obs.activeContext?.id\" (ngModelChange)=\"setUserContext($event)\">\n <option *ngFor=\"let context of obs.userContexts\" [value]=\"context.id\">\n {{ context.name }}\n </option>\n </cds-select>\n </cds-list-column>\n </cds-list-row>\n </cds-structured-list>\n </ng-container>\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 <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 <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 <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 <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 <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 <cds-list-row>\n <cds-list-column>\n <cds-select\n [disabled]=\"updatingUserSettings$ | async\"\n [ngModel]=\"selectedLanguage$ | async\"\n (ngModelChange)=\"updateUserLanguage($event)\"\n >\n <option *ngFor=\"let lang of languageOptions$ | async\" [value]=\"lang\">\n {{ 'settings.language.options.' + lang | translate }}\n </option>\n </cds-select>\n </cds-list-column>\n </cds-list-row>\n </cds-structured-list>\n</ng-template>\n\n<ng-template #notificationSettingsTemplate>\n <cds-structured-list *ngIf=\"emailNotificationSettingsWithSideEffects$ | async\">\n <cds-list-header>\n <cds-list-column>{{ 'settings.notification.title' | translate }}</cds-list-column>\n </cds-list-header>\n <cds-list-row>\n <cds-list-column>\n <form [formGroup]=\"settingsForm\" class=\"toggle-group\">\n <cds-toggle\n [label]=\"'settings.notification.taskNotifications' | translate\"\n [onText]=\"'interface.on' | translate\"\n [offText]=\"'interface.off' | translate\"\n formControlName=\"taskNotifications\"\n [disabled]=\"updatingSettings$ | async\"\n >\n </cds-toggle>\n <span class=\"description\">{{\n 'settings.notification.emailNotificationsIntro' | translate\n }}</span>\n </form>\n </cds-list-column>\n </cds-list-row>\n <cds-list-row>\n <cds-list-column>\n <form [formGroup]=\"settingsForm\" class=\"toggle-group\">\n <cds-toggle\n [label]=\"'settings.notification.emailNotifications' | translate\"\n [onText]=\"'interface.on' | translate\"\n [offText]=\"'interface.off' | translate\"\n formControlName=\"emailNotifications\"\n [disabled]=\"updatingSettings$ | async\"\n >\n </cds-toggle>\n <span class=\"description\">{{\n 'settings.notification.taskNotificationsIntro' | translate\n }}</span>\n </form>\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 <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 </cds-structured-list>\n</ng-template>\n\n<ng-template #versionTemplate>\n <ng-container *ngIf=\"showValtimoVersions\">\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 <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 <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-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-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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/config';\nimport {NgbTooltipModule} from '@ng-bootstrap/ng-bootstrap';\nimport {\n GridModule,\n IconModule,\n LinkModule,\n SelectModule,\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 SelectModule,\n ToggleModule,\n TagModule,\n LinkModule,\n ],\n exports: [RightSidebarComponent],\n})\nexport class RightSidebarModule {}\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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 HostListener,\n OnDestroy,\n ViewChild,\n} from '@angular/core';\nimport {TranslateService} from '@ngx-translate/core';\nimport {BehaviorSubject, combineLatest, Observable, Subscription} from 'rxjs';\nimport {take} from 'rxjs/operators';\nimport {ConfigService, MenuItem} from '@valtimo/config';\nimport {MenuService} from '../menu/menu.service';\nimport {ShellService} from '../../services/shell.service';\nimport {BreakpointObserver} from '@angular/cdk/layout';\nimport {Router} from '@angular/router';\n\n@Component({\n selector: 'valtimo-left-sidebar',\n templateUrl: './left-sidebar.component.html',\n styleUrls: ['./left-sidebar.component.scss'],\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 sideBarExpanded$ = this.shellService.sideBarExpanded$;\n public readonly closestSequence$: Observable<string> = this.menuService.closestSequence$;\n public readonly overflowMenuSequence$ = new BehaviorSubject<string>('');\n\n private _breakpointSubscription!: Subscription;\n private _breakpointsInitialized = false;\n private _lastSmallScreen!: boolean;\n private _lastLargeScreen!: boolean;\n\n constructor(\n private readonly translateService: TranslateService,\n private readonly elementRef: ElementRef,\n private readonly configService: ConfigService,\n private readonly menuService: MenuService,\n private readonly shellService: ShellService,\n private readonly breakpointObserver: BreakpointObserver,\n private readonly router: Router\n ) {\n this.includeFunctionObservables = this.menuService.includeFunctionObservables;\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) {\n event.preventDefault();\n\n if (!event.ctrlKey && !event.metaKey) {\n this.router.navigate(route);\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-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF 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 } as obs\"\n [allowExpansion]=\"false\"\n [expanded]=\"obs.sideBarExpanded\"\n>\n <ng-container *ngFor=\"let menuItem of menuItems$ | async\">\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 [title]=\"menuItem | menuItemTranslate | async\">\n <ng-container *ngFor=\"let childMenuItem of menuItem.children\">\n <ng-container\n *ngIf=\"{\n count: childMenuItem?.count$ && (childMenuItem?.count$ | async),\n sequence: '' + menuItem.sequence + childMenuItem.sequence\n } as vars\"\n >\n <cds-sidenav-item\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}\"\n ></ng-container>\n </cds-sidenav-item>\n </ng-container>\n </ng-container>\n </cds-sidenav-menu>\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 [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> </cds-sidenav-item\n ></ng-container>\n</ng-template>\n\n<ng-template #countTemplate let-count=\"count\">\n <ng-container *ngIf=\"count\">\n <span class=\"case-count\">\n {{ count | caseCount }}\n </span>\n </ng-container>\n</ng-template>\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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 OnDestroy,\n OnInit,\n ViewChild,\n ViewContainerRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport {ActivatedRoute, Router} from '@angular/router';\nimport {Title} from '@angular/platform-browser';\nimport {BehaviorSubject, combineLatest, Observable, startWith, Subscription, switchMap} from 'rxjs';\nimport {TranslateService} from '@ngx-translate/core';\nimport {NGXLogger} from 'ngx-logger';\nimport {ConfigService} from '@valtimo/config';\nimport {map} from 'rxjs/operators';\nimport {PageTitleService} from './page-title.service';\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})\nexport class PageTitleComponent implements OnInit, OnDestroy, AfterViewInit {\n @ViewChild('pageActionsVcr', {static: true, read: ViewContainerRef})\n private readonly _pageActionsVcr!: ViewContainerRef;\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 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 customPageTitle$ = this.pageTitleService.customPageTitle$;\n public readonly customPageTitleSet$ = this.pageTitleService.customPageTitleSet$;\n public readonly customPageSubtitle$ = this.pageTitleService.customPageSubtitle$;\n public readonly customPageSubtitleSet$ = this.pageTitleService.customPageSubtitleSet$;\n public readonly hasPageActions$ = this.pageTitleService.hasPageActions$;\n public readonly translatedTitle$ = new BehaviorSubject<string>('');\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 );\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 ) {}\n\n public ngOnInit(): void {\n this.openRouterTranslateSubscription();\n this.openHidePageTitleSubscription();\n }\n\n public ngAfterViewInit(): void {\n this.pageTitleService.setPageActionsViewContainerRef(this._pageActionsVcr);\n }\n\n ngOnDestroy() {\n this._subscriptions.unsubscribe();\n }\n\n private openRouterTranslateSubscription(): void {\n this._subscriptions.add(\n combineLatest([this.router.events, this.translateService.stream('key')]).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","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF 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 [ngClass]=\"{'--no-margin': hidePageTitle}\" class=\"page-title-container\">\n <ng-container\n *ngIf=\"\n hidePageTitle === false && {\n title: translatedTitle$ | async,\n hasCustomPageTitle: hasCustomPageTitle$ | async,\n hasCustomPageSubtitle: hasCustomPageSubtitle$ | async,\n customPageTitle: customPageTitle$ | async,\n customPageTitleSet: customPageTitleSet$ | async,\n customPageSubtitle: customPageSubtitle$ | async,\n customPageSubtitleSet: customPageSubtitleSet$ | async\n } as obs\n \"\n >\n <div class=\"skeleton-container\" *ngIf=\"obs.hasCustomPageTitle && !obs.customPageTitleSet\">\n <cds-skeleton-placeholder></cds-skeleton-placeholder>\n </div>\n\n <h2\n *ngIf=\"obs.hasCustomPageTitle ? obs.customPageTitleSet : obs.title !== ''\"\n [title]=\"obs.hasCustomPageTitle ? obs.customPageTitle : obs.title\"\n class=\"page-title\"\n >\n {{ obs.hasCustomPageTitle ? obs.customPageTitle : obs.title }}\n </h2>\n\n <div\n *ngIf=\"obs.hasCustomPageSubtitle && !obs.customPageSubtitleSet\"\n class=\"subtitle-skeleton-container\"\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 >\n </span>\n </ng-container>\n\n <div [ngClass]=\"{'--visible': hasPageActions$ | async}\" class=\"page-actions\">\n <ng-container #pageActionsVcr></ng-container>\n </div>\n</div>\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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} from 'carbon-components-angular';\n\n@NgModule({\n declarations: [PageTitleComponent],\n imports: [CommonModule, TranslateModule, SkeletonModule],\n exports: [PageTitleComponent],\n})\nexport class PageTitleModule {}\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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, UIShellModule} from 'carbon-components-angular';\nimport {CaseCountPipe, ComponentsPipesModule} from '../../pipes';\nimport {CommandClickDirectiveModule} from '../../directives';\n\n@NgModule({\n declarations: [LeftSidebarComponent, CaseCountPipe],\n imports: [\n CommonModule,\n MenuModule,\n PageTitleModule,\n IconModule,\n UIShellModule,\n ComponentsPipesModule,\n CommandClickDirectiveModule,\n ],\n exports: [LeftSidebarComponent],\n})\nexport class LeftSidebarModule {}\n","import {ChangeDetectionStrategy, Component, Input, TemplateRef} 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})\nexport class CarbonNoResultsComponent {\n @Input() action: TemplateRef<any>;\n @Input() description: string;\n @Input() illustration = 'valtimo-layout/img/no-results.svg';\n @Input() title: string;\n}\n","<div class=\"valtimo-no-results\">\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 [innerHtml]=\"description\"></span>\n\n <ng-container [ngTemplateOutlet]=\"action\"></ng-container>\n </div>\n</div>\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n HostBinding,\n Input,\n OnDestroy,\n Output,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport {TranslateService} from '@ngx-translate/core';\nimport {\n OverflowMenu,\n PaginationTranslations,\n Table,\n TableHeaderItem,\n TableItem,\n TableModel,\n} from 'carbon-components-angular';\nimport {combineLatest, map, Observable, of, startWith, Subscription} from 'rxjs';\nimport {\n ActionItem,\n CarbonPaginationConfig,\n CarbonPaginationSelection,\n CarbonTableConfig,\n ColumnConfig,\n ColumnType,\n createPaginationConfig,\n} from '../../models';\n\n@Component({\n selector: 'valtimo-carbon-table',\n templateUrl: './carbon-table.component.html',\n styleUrls: ['./carbon-table.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class CarbonTableComponent<T> implements AfterViewInit, OnDestroy {\n @HostBinding('attr.data-carbon-theme') public theme = 'g10';\n\n @ViewChild('actionsMenu', {static: false}) actionsMenu: TemplateRef<OverflowMenu>;\n\n @Input() tableConfig: CarbonTableConfig;\n @Input() paginationConfig: CarbonPaginationConfig = createPaginationConfig();\n @Input() hideTableHeader = false;\n\n private _tableData: TableItem[][];\n private _data: Array<T>;\n @Input() set data(value: Array<T>) {\n this._data = value;\n\n if (!this.tableConfig || !value) {\n return;\n }\n\n this._tableData = this.getTableItems(value);\n this._tableModel.data = this._tableData;\n\n if (!this.paginationConfig) {\n return;\n }\n\n this.setPaginationModel();\n }\n public get data(): T[] {\n return this._data;\n }\n\n @Input() loading = true;\n\n @Output() paginationChange: EventEmitter<CarbonPaginationSelection> = new EventEmitter();\n @Output() rowClick: EventEmitter<T> = new EventEmitter();\n @Output() search: EventEmitter<string | null> = new EventEmitter();\n\n public batchText$: Observable<{SINGLE: any; MULTIPLE: any}> = combineLatest([\n this.translateService.stream('interface.table.singleSelect'),\n this.translateService.stream('interface.table.multipleSelect'),\n ]).pipe(\n map(([SINGLE, MULTIPLE]) => ({SINGLE, MULTIPLE})),\n startWith({\n SINGLE: this.translateService.instant('interface.table.singleSelect'),\n MULTIPLE: this.translateService.instant('interface.table.multipleSelect'),\n })\n );\n\n public paginationTranslations$: Observable<Partial<PaginationTranslations>> = combineLatest([\n this.translateService.stream('interface.table.itemsPerPage'),\n this.translateService.stream('interface.table.ofLastPage'),\n this.translateService.stream('interface.table.ofLastPages'),\n this.translateService.stream('interface.table.totalItems'),\n ]).pipe(\n map(([ITEMS_PER_PAGE, OF_LAST_PAGES, OF_LAST_PAGE, TOTAL_ITEMS]) => ({\n ITEMS_PER_PAGE,\n OF_LAST_PAGES,\n OF_LAST_PAGE,\n TOTAL_ITEMS,\n }))\n );\n\n private _skeletonTableModel: TableModel = Table.skeletonModel(5, 5);\n private _tableModel: TableModel = new TableModel();\n private _subscriptions$: Subscription = new Subscription();\n\n public get numberOfColumns(): number | null {\n return this.tableConfig.fields.length + (this.tableConfig.enableSingleSelect ? 0 : 1);\n }\n public get tableModel(): TableModel {\n return this.loading ? this._skeletonTableModel : this._tableModel;\n }\n\n public get selectedItems(): T[] {\n return this._tableModel.data.reduce(\n (items: T[], _, index: number) =>\n this._tableModel.isRowSelected(index)\n ? [...items, this.data[this.getItemInitialIndex(index)]]\n : [...items],\n []\n );\n }\n\n constructor(\n private readonly cd: ChangeDetectorRef,\n private readonly translateService: TranslateService\n ) {}\n\n public ngAfterViewInit(): void {\n this._subscriptions$.add(this.getHeaderItems());\n\n if (!this.data) {\n return;\n }\n\n this._tableData = this.getTableItems(this.data);\n this._tableModel.data = this._tableData;\n\n if (this.tableConfig.withPagination) {\n this.setPaginationModel();\n }\n\n this.cd.detectChanges();\n }\n\n public ngOnDestroy(): void {\n this._subscriptions$.unsubscribe();\n }\n\n public onActionItemClick(action: ActionItem, item: T) {\n action.callback(item);\n }\n\n public onRowClick(rowIndex: number): void {\n const itemInitialIndex: number = this.getItemInitialIndex(rowIndex);\n\n if (!this.data[itemInitialIndex]) {\n return;\n }\n\n this.rowClick.emit(this.data[itemInitialIndex]);\n }\n\n public onSearch(searchString: string | null): void {\n this.search.emit(searchString);\n }\n\n public onSelectPage(pageIndex: number): void {\n this._tableModel.currentPage = pageIndex;\n this.paginationChange.emit({\n currentPage: pageIndex,\n pageLength: this._tableModel.pageLength,\n });\n }\n\n public trackByIndex(index: number): number {\n return index;\n }\n\n public getHeaderItems(): Subscription {\n const fields: ColumnConfig[] = this.tableConfig.fields;\n\n const translations = fields.map((field: ColumnConfig) =>\n !field.translationKey ? of('') : this.translateService.stream(field.translationKey)\n );\n\n return combineLatest(translations).subscribe((translationResults: string[]) => {\n this._tableModel.header = translationResults.map(\n (translation: string, index: number) =>\n new TableHeaderItem({\n data: translation,\n sortable: fields[index].sortable ?? true,\n className: fields[index].className ?? '',\n })\n );\n });\n }\n\n private getItemInitialIndex(rowIndex: number): number {\n return (this._tableModel.currentPage - 1) * this._tableModel.pageLength + rowIndex;\n }\n\n private getTableItems(items: T[]): TableItem[][] {\n return !items.length\n ? []\n : items.map((item: T, index: number) =>\n this.tableConfig.fields.map((column: ColumnConfig) => {\n switch (column.columnType) {\n case ColumnType.TEXT:\n return new TableItem({data: item[column.fieldName] ?? '-'});\n case ColumnType.ACTION:\n return new TableItem({\n data: {actions: column.actions, item},\n template: this.actionsMenu,\n });\n case ColumnType.TEMPLATE:\n return new TableItem({\n data: {item, index},\n template: column.template,\n });\n default:\n return new TableItem({data: item[column.fieldName] ?? '-'});\n }\n })\n );\n }\n\n private setPaginationModel(): void {\n this._tableModel.totalDataLength = this.data.length;\n this._tableModel.pageLength = !this.paginationConfig.itemsPerPageOptions\n ? 10\n : this.paginationConfig.itemsPerPageOptions[0] ?? 10;\n this.onSelectPage(1);\n }\n}\n","<cds-table-container>\n <cds-table-header *ngIf=\"!hideTableHeader\">\n <h4 cdsTableHeaderTitle>\n <ng-content select=\"[carbonTableTitle]\"></ng-content>\n </h4>\n\n <p cdsTableHeaderDescription>\n <ng-content select=\"[carbonTableDescription]\"></ng-content>\n </p>\n </cds-table-header>\n\n <cds-table-toolbar [model]=\"tableModel\" [batchText]=\"batchText$ | async\">\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=\"tableConfig.searchable\"\n [expandable]=\"true\"\n ></cds-table-toolbar-search>\n\n <ng-content select=\"[carbonToolbarContent]\"> </ng-content>\n </cds-table-toolbar-content>\n </cds-table-toolbar>\n\n <ng-template #actionsMenu let-data=\"data\">\n <cds-overflow-menu (click)=\"$event.stopPropagation()\">\n <cds-overflow-menu-option\n *ngFor=\"let action of data.actions\"\n [type]=\"action.type\"\n (selected)=\"onActionItemClick(action, data.item)\"\n >\n {{ action.actionName }}\n </cds-overflow-menu-option>\n </cds-overflow-menu>\n </ng-template>\n\n <cds-table\n [enableSingleSelect]=\"tableConfig.enableSingleSelect\"\n [model]=\"tableModel\"\n [size]=\"tableConfig.size\"\n [skeleton]=\"loading\"\n [sortable]=\"tableConfig.sortable\"\n [showSelectionColumn]=\"tableConfig.showSelectionColumn\"\n [striped]=\"tableConfig.striped\"\n (rowClick)=\"onRowClick($event)\"\n >\n <tbody>\n <tr>\n <td [attr.colspan]=\"numberOfColumns\">\n <ng-content></ng-content>\n </td>\n </tr>\n </tbody>\n </cds-table>\n\n <cds-pagination\n *ngIf=\"tableModel.totalDataLength && tableConfig.withPagination\"\n [itemsPerPageOptions]=\"paginationConfig.itemsPerPageOptions\"\n [model]=\"tableModel\"\n [showPageInput]=\"paginationConfig.showPageInput\"\n [skeleton]=\"loading\"\n [translations]=\"paginationTranslations$ | async\"\n (selectPage)=\"onSelectPage($event)\"\n ></cds-pagination>\n</cds-table-container>\n","/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS 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 {ButtonModule, DialogModule, PaginationModule, TableModule} from 'carbon-components-angular';\nimport {CarbonTableComponent} from './carbon-table.component';\nimport {CarbonNoResultsComponent} from './no-results/carbon-no-results.component';\n\n@NgModule({\n declarations: [CarbonNoResultsComponent, CarbonTableComponent],\n imports: [\n CommonModule,\n DialogModule,\n TranslateModule,\n TableModule,\n PaginationModule,\n ButtonModule,\n ],\n exports: [CarbonNoResultsComponent, CarbonTableComponent],\n})\nexport class CarbonTableModule {}\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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 getTypeString(): string {\n return 'string';\n }\n\n convert(value: any, definition: any): string {\n return value;\n }\n}\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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 BooleanTypeConverter implements TypeConverter {\n getTypeString(): string {\n return 'boolean';\n }\n\n convert(value: any, definition: any): string {\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 value ? 'Yes' : 'No';\n }\n}\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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 moment from 'moment';\n\nmoment.locale(localStorage.getItem('langKey'));\n\nexport class DateTypeConverter implements TypeConverter {\n getTypeString(): string {\n return 'date';\n }\n\n convert(value: any, definition: any): string {\n if (!value) {\n return '-';\n }\n\n return moment(value).format(definition?.format || 'DD-MM-YYYY, hh:mm A');\n }\n}\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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 getTypeString(): string {\n return 'enum';\n }\n\n convert(value: any, definition: any): string {\n return definition.enum[value];\n }\n}\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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 getTypeString(): string {\n return 'stringReplaceUnderscore';\n }\n\n convert(value: any, definition: any): string {\n return value.replace(this.regExpStringRemoveUnderscore, ' ');\n }\n}\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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 getTypeString(): string {\n return 'relatedFiles';\n }\n\n convert(value: any, definition: any): string {\n return value?.length || '-';\n }\n}\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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 {StringTypeConverter} from './stringTypeConverter';\nimport {BooleanTypeConverter} from './booleanTypeConverter';\nimport {DateTypeConverter} from './dateTypeConverter';\nimport {EnumTypeConverter} from './enumTypeConverter';\nimport {StringReplaceUnderscoreTypeConverter} from './stringReplaceUnderscoreTypeConverter';\nimport {RelatedFilesTypeConverter} from './relatedFilesTypeConverter';\n\nconst stringTypeConverter = new StringTypeConverter();\nconst booleanTypeConverter = new BooleanTypeConverter();\nconst dateTypeConverter = new DateTypeConverter();\nconst enumTypeConverter = new EnumTypeConverter();\nconst stringReplaceUnderscoreTypeConverter = new StringReplaceUnderscoreTypeConverter();\nconst relatedFilesTypeConverter = new RelatedFilesTypeConverter();\n\n// TODO: Via injection\nexport const TYPE_CONVERTERS: Array<TypeConverter> = [\n stringTypeConverter,\n booleanTypeConverter,\n dateTypeConverter,\n enumTypeConverter,\n stringReplaceUnderscoreTypeConverter,\n relatedFilesTypeConverter,\n];\n\nexport interface TypeConverter {\n getTypeString(): string;\n\n convert(value: any, definition: any): string;\n}\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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 {StringTypeConverter} from './type-converters/stringTypeConverter';\nimport {TYPE_CONVERTERS, TypeConverter} from './type-converters/type-converters.model';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ViewContentService {\n private converters: {[key: string]: TypeConverter} = {};\n private defaultConverter: TypeConverter;\n\n constructor() {\n this.defaultConverter = new StringTypeConverter();\n\n TYPE_CONVERTERS.forEach(converter => this.addConverter(converter));\n }\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 if (typeof this.converters[definition.viewType] !== 'undefined') {\n return this.converters[definition.viewType].convert(value, definition);\n }\n\n return this.defaultConverter.convert(value, definition);\n }\n\n public addConverter(converter: TypeConverter) {\n if (typeof this.converters[converter.getTypeString()] !== 'undefined') {\n throw new Error('Converter with name ' + converter.getTypeString() + ' already exists');\n }\n\n this.converters[converter.getTypeString()] = converter;\n }\n\n getSeparatorIndex(definition, separator) {\n return definition.viewType.indexOf(separator);\n }\n}\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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: 'listFilter',\n})\nexport class ListFilterPipe implements PipeTransform {\n transform(list: any[], filterText: string): any {\n list = list || [];\n if (!filterText) {\n return list;\n }\n return list.filter(item =>\n Object.keys(item).some(\n k => item[k] != null && item[k].toString().toLowerCase().includes(filterText.toLowerCase())\n )\n );\n }\n}\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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 OnInit,\n Output,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport {Direction, SortState} from '@valtimo/document';\nimport {NGXLogger} from 'ngx-logger';\nimport {BehaviorSubject, fromEvent} from 'rxjs';\nimport {debounceTime, take} from 'rxjs/operators';\nimport {ViewContentService} from '../view-content/view-content.service';\nimport {get as _get} from 'lodash';\n\n@Component({\n selector: 'valtimo-list',\n templateUrl: './list.component.html',\n styleUrls: ['./list.component.scss'],\n})\nexport class ListComponent implements OnChanges, OnInit, AfterViewInit {\n private static PAGINATION_SIZE = 'PaginationSize';\n\n @Input() items: Array<any>;\n @Input() fields: Array<any>;\n @Input() pagination?: any;\n @Input() viewMode?: boolean;\n @Input() isSearchable?: boolean;\n @Input() header?: boolean;\n @Input() actions: any[] = [];\n @Input() paginationIdentifier?: string;\n @Input() initialSortState: SortState;\n @Input() lastColumnTemplate?: TemplateRef<any>;\n\n @Output() rowClicked: EventEmitter<any> = new EventEmitter();\n @Output() paginationClicked: EventEmitter<any> = new EventEmitter();\n @Output() paginationSet: EventEmitter<any> = new EventEmitter();\n @Output() search: EventEmitter<any> = new EventEmitter();\n @Output() sortChanged: EventEmitter<SortState> = new EventEmitter();\n\n public headerProvided = false;\n public viewListAs: string;\n public searchModel: string;\n public regExpStringRemoveUnderscore = /_/g;\n @ViewChild('searchBox') searchBox: ElementRef;\n\n readonly sort$ = new BehaviorSubject<SortState>({\n state: {name: '', direction: 'DESC'},\n isSorting: false,\n });\n\n constructor(private viewContentService: ViewContentService, private logger: NGXLogger) {\n this.viewListAs = localStorage.getItem('viewListAs') || 'table';\n }\n\n loadPaginationSize(): void {\n const entries = localStorage.getItem(\n `${this.paginationIdentifier}${ListComponent.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 setPaginationSize(numberOfEntries: string) {\n localStorage.setItem(\n `${this.paginationIdentifier}${ListComponent.PAGINATION_SIZE}`,\n numberOfEntries\n );\n this.pagination.size = numberOfEntries;\n this.logger.debug('Pagination set in local storage for this list: ', numberOfEntries);\n this.paginationSet.emit(numberOfEntries);\n }\n\n ngOnInit() {\n if (this.pagination) {\n this.loadPaginationSize();\n }\n\n if (this.initialSortState) {\n this.sort$.next(this.initialSortState);\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.items && changes.items.currentValue) {\n this.transformListItemsMatchFields();\n }\n\n if (changes?.initialSortState?.currentValue) {\n this.sort$.next(changes?.initialSortState?.currentValue);\n }\n }\n\n ngAfterViewInit() {\n if (this.isSearchable) {\n fromEvent(this.searchBox.nativeElement, 'keyup')\n .pipe(debounceTime(500))\n .subscribe(() => {\n const value = this.searchBox.nativeElement.value;\n if (this.search.observers.length > 0) {\n // custom search callbak is specified, perhaps to query on the server side\n this.search.emit(value);\n } else {\n this.searchModel = value;\n }\n });\n }\n }\n\n public transformListItemsMatchFields() {\n if (this.items && this.fields) {\n this.items.forEach(item => {\n item.listItemFields = this.fields.map(field => ({\n key: field.key,\n label: field.label,\n type: field.type || '',\n value: this.resolveObject(field, item),\n }));\n });\n }\n }\n\n public onClickRow(item) {\n this.rowClicked.emit(item);\n }\n\n public 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 public switchView(type) {\n localStorage.setItem('viewListAs', type);\n this.viewListAs = type;\n }\n\n public getTotalPageCount() {\n return Math.ceil(this.pagination.collectionSize / this.pagination.size);\n }\n\n public onClickPagination(page) {\n this.paginationClicked.emit(page);\n }\n\n public handleFieldClick(key: string, sortable: boolean): void {\n const desc: Direction = 'DESC';\n const asc: Direction = 'ASC';\n\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","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF 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 <div *ngIf=\"(items?.length > 0 && fields?.length > 0) || header\">\n <div\n class=\"d-flex align-items-center search-holder bg-light\"\n [ngClass]=\"{'pb-4 pt-4': !header}\"\n *ngIf=\"isSearchable || viewMode || header\"\n >\n <div class=\"align-self-start\">\n <ng-content select=\"[header]\"></ng-content>\n </div>\n\n <div class=\"ml-auto row\">\n <input\n *ngIf=\"isSearchable\"\n class=\"form-control col-sm-8\"\n type=\"text\"\n placeholder=\"{{ 'list.search' | translate }}\"\n #searchBox\n />\n\n <div\n class=\"switch-view-holder btn-group col-sm-4 mt-1 mt-sm-0\"\n role=\"group\"\n *ngIf=\"viewMode\"\n >\n <button\n class=\"btn\"\n [ngClass]=\"viewListAs === 'table' ? 'btn-primary' : 'btn-default'\"\n (click)=\"switchView('table')\"\n >\n <i class=\"icon mdi mdi-view-headline view-icon\"></i>\n </button>\n <button\n class=\"btn\"\n [ngClass]=\"viewListAs === 'tile' ? 'btn-primary' : 'btn-default'\"\n (click)=\"switchView('tile')\"\n >\n <i class=\"icon mdi mdi-view-module view-icon\"></i>\n </button>\n </div>\n </div>\n </div>\n </div>\n\n <ng-content select=\"[tabs]\"></ng-content>\n\n <div *ngIf=\"items?.length > 0 && fields?.length > 0\">\n <div class=\"table-responsive noSwipe\" *ngIf=\"!viewMode || viewListAs === 'table'\">\n <table class=\"table table-striped table-hover m-0\" *ngIf=\"sort$ | async as sort\">\n <thead>\n <tr>\n <th\n *ngFor=\"let field of fields\"\n (click)=\"handleFieldClick(field.key, field.sortable)\"\n [ngClass]=\"{\n sortable: field.sortable,\n 'is-being-sorted': field.key === sort.state.name && sort.isSorting,\n ascending: sort.state.direction === 'ASC'\n }\"\n >\n {{ field.label }}\n </th>\n <th *ngFor=\"let action of actions\">\n {{ action.columnName }}\n </th>\n </tr>\n </thead>\n <tbody>\n <tr\n [ngClass]=\"{'click-able': this.rowClicked.observers.length > 0}\"\n *ngFor=\"let item of items | listFilter : searchModel; let i = index\"\n (click)=\"onClickRow(item)\"\n >\n <td class=\"align-top\" *ngFor=\"let listItemField of item.listItemFields\">\n <ng-container\n *ngIf=\"\n listItemField.type === '' && {\n valueTranslationKey: 'viewTypeConverter.' + listItemField.value,\n valueTranslation: 'viewTypeConverter.' + listItemField.value | translate\n } as vars\n \"\n >\n {{\n listItemField.value\n ? vars.valueTranslation !== vars.valueTranslationKey\n ? vars.valueTranslation\n : listItemField.value\n : '-'\n }}\n </ng-container>\n\n <ng-container\n *ngIf=\"listItemField.type === 'dropdownActions'\"\n [ngTemplateOutlet]=\"dropdownActions\"\n [ngTemplateOutletContext]=\"{listItemField: listItemField, item: item}\"\n ></ng-container>\n </td>\n <td class=\"align-top\" *ngFor=\"let action of actions\">\n <i\n class=\"action-icon\"\n style=\"cursor: pointer\"\n [ngClass]=\"action.iconClass\"\n (click)=\"action.callback(item, $event)\"\n ></i>\n </td>\n <td *ngIf=\"lastColumnTemplate\">\n <ng-container\n *ngTemplateOutlet=\"\n lastColumnTemplate;\n context: {index: i, length: items.length, item: item}\n \"\n ></ng-container>\n </td>\n </tr>\n <tr>\n <td *ngIf=\"(items | listFilter : searchModel).length === 0\" [colSpan]=\"fields.length\">\n {{ 'list.noMatchingItems' | translate }}<i>\"{{ searchModel }}\"</i>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n\n <div class=\"container-fluid\" *ngIf=\"viewMode && viewListAs === 'tile'\">\n <div class=\"row p-2\">\n <div\n class=\"col-12 col-sm-6 col-xl-4 p-2\"\n *ngFor=\"let item of items | listFilter : searchModel\"\n (click)=\"onClickRow(item)\"\n >\n <div class=\"click-able tile-holder p-4\">\n <dl class=\"row mb-0\" *ngFor=\"let listItemField of item.listItemFields\">\n <dt class=\"col-12 col-md-5 text-xl-right\">{{ listItemField.label }}</dt>\n <dd class=\"col-12 col-md-7\">{{ listItemField.value || '-' }}</dd>\n </dl>\n </div>\n </div>\n <div class=\"col-12\" *ngIf=\"(items | listFilter : searchModel).length === 0\">\n {{ 'list.noMatchingItems' | translate }}<i>\"{{ searchModel }}\"</i>\n </div>\n </div>\n </div>\n </div>\n\n <div\n class=\"pagination-holder bg-light px-4 pt-4 pb-2 overflow-auto row mr-0 ml-0\"\n *ngIf=\"pagination && items?.length > 0 && fields?.length > 0\"\n >\n <div class=\"float-left page-count col-4\">\n <strong>{{\n 'list.currentPage'\n | translate\n : {current: pagination.page > 0 ? pagination.page : 1, total: getTotalPageCount()}\n }}</strong>\n {{\n pagination.collectionSize === 1\n ? ('list.showingResult' | translate : {number: (items | listFilter : searchModel).length})\n : ('list.showingResults'\n | translate\n : {\n number: (items | listFilter : searchModel).length,\n total: pagination.collectionSize\n })\n }}\n </div>\n <div class=\"col-4 text-center\">\n {{ 'list.show' | translate }}\n <select [(ngModel)]=\"pagination.size\" (ngModelChange)=\"setPaginationSize($event)\">\n <option [ngValue]=\"10\">10</option>\n <option [ngValue]=\"25\">25</option>\n <option [ngValue]=\"50\">50</option>\n <option [ngValue]=\"100\">100</option>\n </select>\n {{ 'list.entries' | translate }}\n </div>\n <div class=\"col-4\">\n <ngb-pagination\n *ngIf=\"pagination.collectionSize > pagination.size\"\n class=\"float-right\"\n [collectionSize]=\"pagination.collectionSize\"\n [(page)]=\"pagination.page\"\n [pageSize]=\"pagination.size\"\n [maxSize]=\"pagination.maxPaginationItemSize\"\n [rotate]=\"true\"\n (pageChange)=\"onClickPagination(pagination.page)\"\n ></ngb-pagination>\n </div>\n </div>\n\n <div id=\"no-results\" class=\"p-5\" *ngIf=\"items?.length === 0\">\n {{ 'list.noResults' | translate }}\n </div>\n\n <div id=\"no-field-definitions\" class=\"p-5\" *ngIf=\"items?.length > 0 && fields?.length === 0\">\n {{ 'list.noFieldDefinitions' | translate }}\n </div>\n</div>\n\n<ng-template #dropdownActions let-listItemField=\"listItemField\" let-item=\"item\">\n <div class=\"dropdown\" *ngIf=\"listItemField?.value.length > 0\">\n <a\n style=\"cursor: pointer\"\n class=\"dropdown-toggle d-block\"\n id=\"dropdownMenu\"\n data-toggle=\"dropdown\"\n aria-haspopup=\"true\"\n aria-expanded=\"false\"\n >\n <i class=\"action-icon icon mdi mdi-dots-vertical\"></i>\n </a>\n <div class=\"dropdown-menu\" aria-labelledby=\"dropdownMenu\">\n <a\n (click)=\"action.callback(item, $event)\"\n class=\"dropdown-item p-2\"\n *ngFor=\"let action of listItemField.value\"\n >\n <ng-container *ngIf=\"action.iconClass !== null\">\n <i [ngClass]=\"action.iconClass\"></i>\n </ng-container>\n {{ action?.label || '-' }}\n </a>\n </div>\n </div>\n</ng-template>\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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 card element\n */\n@Component({\n selector: 'valtimo-card',\n templateUrl: './card.component.html',\n styleUrls: ['./card.component.css'],\n})\nexport class CardComponent implements OnInit {\n /**\n * The main title used on the card\n */\n @Input() title?: string;\n\n /**\n * The smaller font size sub title used on the card\n */\n @Input() subtitle?: string;\n\n constructor() {}\n\n ngOnInit() {}\n}\n","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF 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-color card-border-color-primary\">\n <div *ngIf=\"title || subtitle\" class=\"card-header card-header-divider\">\n <span *ngIf=\"title\">{{ title }}</span>\n <span *ngIf=\"subtitle\" class=\"card-subtitle\">{{ subtitle }}</span>\n </div>\n <div class=\"card-body\">\n <ng-content></ng-content>\n </div>\n</div>\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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 {CardComponent} from './card.component';\n\n@NgModule({\n declarations: [CardComponent],\n imports: [CommonModule],\n exports: [CardComponent],\n})\nexport class CardModule {}\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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} from '@angular/forms';\nimport {NgbPaginationModule} from '@ng-bootstrap/ng-bootstrap';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {CardModule} from '../card/card.module';\nimport {ListComponent} from './list.component';\nimport {ListFilterPipe} from './ListFilterPipe.directive';\n\n@NgModule({\n declarations: [ListComponent, ListFilterPipe],\n imports: [CommonModule, CardModule, NgbPaginationModule, FormsModule, TranslateModule],\n exports: [ListComponent, ListFilterPipe],\n})\nexport class ListModule {}\n","import {Injectable} from '@angular/core';\nimport {BehaviorSubject, combineLatest, Observable, startWith} from 'rxjs';\nimport {BreadcrumbItem} from 'carbon-components-angular';\nimport {map} from 'rxjs/operators';\nimport {ActivatedRoute, Params, Router, UrlSerializer} from '@angular/router';\nimport {ConfigService} from '@valtimo/config';\nimport {MenuService} from '../menu/menu.service';\nimport {TranslateService} from '@ngx-translate/core';\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 _breadcrumbItems$: Observable<Array<BreadcrumbItem>> = combineLatest([\n this.menuService.activeParentSequenceNumber$,\n this.menuService.menuItems$,\n this._manualSecondBreadcrumb$,\n this.translateService.stream('key'),\n this.router.events.pipe(startWith(this.router)),\n ]).pipe(\n map(([activeParentSequenceNumber, menuItems, manualSecondBreadcrumb]) => {\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 ];\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 route: ActivatedRoute,\n private readonly configService: ConfigService,\n private readonly menuService: MenuService,\n private readonly translateService: TranslateService,\n private readonly serializer: UrlSerializer\n ) {}\n\n setSecondBreadcrumb(breadcrumb: BreadcrumbItem): void {\n this._manualSecondBreadcrumb$.next(breadcrumb);\n }\n\n clearSecondBreadcrumb(): void {\n this._manualSecondBreadcrumb$.next(null);\n }\n\n 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-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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 {Observable} from 'rxjs';\nimport {BreadcrumbItem} from 'carbon-components-angular';\nimport {BreadcrumbService} from './breadcrumb.service';\n\n@Component({\n selector: 'valtimo-breadcrumb-navigation',\n templateUrl: './breadcrumb-navigation.component.html',\n styleUrls: ['./breadcrumb-navigation.component.css'],\n})\nexport class BreadcrumbNavigationComponent {\n public readonly breadcrumbItems$: Observable<Array<BreadcrumbItem>> =\n this.breadcrumbService.breadcrumbItems$;\n\n constructor(private readonly breadcrumbService: BreadcrumbService) {}\n}\n","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF 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 class=\"breadcrumbs-container\" *ngIf=\"breadcrumbItems.length > 0\">\n <cds-breadcrumb [items]=\"breadcrumbItems\"></cds-breadcrumb>\n </div>\n</ng-container>\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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 {UserInterfaceService} from '@valtimo/user-interface';\n\n@Component({\n selector: 'valtimo-page-header',\n templateUrl: './page-header.component.html',\n styleUrls: ['./page-header.component.css'],\n})\nexport class PageHeaderComponent implements OnInit {\n readonly showPageHeader$ = this.userInterfaceService.showPageHeader$;\n\n constructor(private readonly userInterfaceService: UserInterfaceService) {}\n\n ngOnInit() {}\n}\n","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF 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=\"page-head\" [ngClass]=\"{'page-head--hidden': (showPageHeader$ | async) === false}\">\n <valtimo-breadcrumb-navigation></valtimo-breadcrumb-navigation>\n <valtimo-page-title></valtimo-page-title>\n</div>\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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';\n\n@NgModule({\n declarations: [PageHeaderComponent],\n imports: [CommonModule, PageTitleModule, BreadcrumbNavigationModule],\n exports: [PageHeaderComponent],\n})\nexport class PageHeaderModule {}\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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})\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-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF 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-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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})\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-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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 Input,\n OnDestroy,\n Output,\n ViewChild,\n EventEmitter,\n OnInit,\n} from '@angular/core';\nimport BpmnJS from 'bpmn-js/dist/bpmn-navigated-viewer.production.min.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})\nexport class BpmnJsDiagramComponent implements OnInit, AfterContentInit, OnDestroy {\n private bpmnJS: BpmnJS;\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.bpmnJS = new BpmnJS();\n this.bpmnJS.on('import.done', ({error}) => {\n if (!error) {\n const canvas = this.bpmnJS.get('canvas');\n const eventBus = this.bpmnJS.get('eventBus');\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.bpmnJS.importXML(this.bpmn20Xml);\n this.bpmnJS.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.bpmnJS.get('overlays');\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.bpmnJS.destroy();\n }\n}\n","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF 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-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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 {TimelineItem} from '../../models';\n\n@Component({\n selector: 'valtimo-timeline',\n templateUrl: './timeline.component.html',\n styleUrls: ['./timeline.component.css'],\n})\nexport class TimelineComponent {\n @Input() items: Array<TimelineItem>;\n @Input() actions?: any[];\n}\n","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF 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 <div id=\"no-results\" class=\"p-5\" *ngIf=\"items?.length === 0\">No result found</div>\n <div class=\"pb-5\" *ngIf=\"items?.length > 0\">\n <ul class=\"timeline mb-0 py-5\">\n <li class=\"timeline-item status-done\" *ngFor=\"let item of items\">\n <div class=\"timeline-date\">\n <span>{{ item.date }}</span>\n <br />\n <span>{{ item.time }}</span>\n </div>\n <div class=\"timeline-content mt-1\">\n <div class=\"timeline-header p-0\">\n <span class=\"timeline-author\">{{ item.user }}</span>\n\n <div class=\"dropdown actions-dropdown\" *ngIf=\"actions?.length > 0\">\n <a\n class=\"dropdown-toggle d-block\"\n id=\"dropdownMenu\"\n data-toggle=\"dropdown\"\n aria-haspopup=\"true\"\n aria-expanded=\"false\"\n >\n <i class=\"action-icon icon mdi mdi-dots-vertical\"></i>\n </a>\n <div class=\"dropdown-menu\" aria-labelledby=\"dropdownMenu\">\n <a\n (click)=\"action.callback(item, $event)\"\n class=\"dropdown-item p-2\"\n *ngFor=\"let action of actions\"\n >\n <ng-container *ngIf=\"action.icon !== null\">\n <i class=\"icon mdi\" [ngClass]=\"action.icon\"></i>\n </ng-container>\n {{ action?.label || '-' }}\n </a>\n </div>\n </div>\n <br />\n <p class=\"timeline-activity\">{{ item.activity }}</p>\n <div class=\"timeline-summary\">\n <p>{{ item.summaryTranslationKey | translate : item.summaryTranslationParams }}</p>\n </div>\n </div>\n </div>\n </li>\n </ul>\n </div>\n</div>\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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 {TimelineComponent} from './timeline.component';\nimport {TranslateModule} from '@ngx-translate/core';\n\n@NgModule({\n declarations: [TimelineComponent],\n imports: [CommonModule, TranslateModule],\n exports: [TimelineComponent],\n})\nexport class TimelineModule {}\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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';\n\n@NgModule()\nexport class ComponentsModule {}\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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})\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-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF 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-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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})\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-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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})\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-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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 {S3Service, S3Resource} from '@valtimo/resource';\n\n@Component({\n selector: 'valtimo-uploader',\n templateUrl: './uploader.component.html',\n styleUrls: ['./uploader.component.css'],\n})\nexport class UploaderComponent implements OnInit {\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 ngOnInit() {}\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-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF 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-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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, OnInit} 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})\nexport class AlertComponent implements OnInit, AfterContentInit, OnDestroy {\n alerts: Alert[] = [];\n subscription: Subscription;\n autoCloseInMS: number;\n\n constructor(private alertService: AlertService) {\n this.autoCloseInMS = 5000;\n }\n\n ngOnInit() {}\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-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF 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-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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@Component({\n selector: 'valtimo-data-list',\n templateUrl: './data-list.component.html',\n styleUrls: ['./data-list.component.css'],\n})\nexport class DataListComponent implements OnInit {\n @Input() collection?: Array<any>;\n @Input() object?: any;\n\n constructor() {}\n\n ngOnInit() {}\n}\n","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF 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-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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';\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\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 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 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","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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 {FormioSubmission, ValtimoFormioOptions} from '../../models';\nimport {ValtimoModalService} from '../../services/valtimo-modal.service';\nimport {UserProviderService} from '@valtimo/security';\nimport {Formio, FormioComponent as FormIoSourceComponent, FormioForm} from '@formio/angular';\nimport {FormioRefreshValue} from '@formio/angular/formio.common';\nimport jwt_decode from 'jwt-decode';\nimport {NGXLogger} from 'ngx-logger';\nimport {from, Observable, Subject, Subscription, timer} from 'rxjs';\nimport {distinctUntilChanged, map, switchMap, take} from 'rxjs/operators';\nimport {FormIoStateService} from './services/form-io-state.service';\nimport {ActivatedRoute} from '@angular/router';\nimport {TranslateService} from '@ngx-translate/core';\n\n@Component({\n selector: 'valtimo-form-io',\n templateUrl: './form-io.component.html',\n styleUrls: ['./form-io.component.css'],\n})\nexport class FormioComponent implements OnInit, OnChanges, OnDestroy {\n @Input() form: any;\n @Input() options: ValtimoFormioOptions;\n @Input() submission?: object = {};\n @Input() readOnly?: boolean;\n @Input() formRefresh$!: Subject<FormioRefreshValue>;\n // eslint-disable-next-line @angular-eslint/no-output-native\n @Output() submit: EventEmitter<any> = new EventEmitter();\n // eslint-disable-next-line @angular-eslint/no-output-native\n @Output() change: EventEmitter<any> = new EventEmitter();\n refreshForm: EventEmitter<FormioRefreshValue> = new EventEmitter();\n formDefinition: FormioForm;\n public errors: string[] = [];\n\n private tokenRefreshTimerSubscription: Subscription;\n private formRefreshSubscription: Subscription;\n\n readonly currentLanguage$ = this.translateService.stream('key').pipe(\n map(() => this.translateService.currentLang),\n distinctUntilChanged()\n );\n\n readonly formioOptions$: Observable<ValtimoFormioOptions> = this.currentLanguage$.pipe(\n map(language => {\n const formioTranslations = this.translateService.instant('formioTranslations');\n return typeof formioTranslations === 'object'\n ? {\n ...this.options,\n language,\n i18n: {\n [language]: this.stateService.flattenTranslationsObject(formioTranslations),\n },\n }\n : this.options;\n })\n );\n\n constructor(\n private userProviderService: UserProviderService,\n private logger: NGXLogger,\n private readonly stateService: FormIoStateService,\n private readonly route: ActivatedRoute,\n private readonly translateService: TranslateService,\n private readonly modalService: ValtimoModalService\n ) {}\n\n ngOnInit() {\n const documentDefinitionName = this.route.snapshot.paramMap.get('documentDefinitionName');\n const documentId = this.route.snapshot.paramMap.get('documentId');\n\n this.formDefinition = this.form;\n this.errors = [];\n\n this.setInitialToken();\n\n if (documentDefinitionName) {\n this.stateService.setDocumentDefinitionName(documentDefinitionName);\n }\n if (documentId) {\n this.stateService.setDocumentId(documentId);\n }\n\n this.subscribeFormRefresh();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n const currentForm = changes?.form?.currentValue;\n\n if (currentForm) {\n this.formDefinition = currentForm;\n this.reloadForm();\n }\n\n this.setInitialToken();\n\n if (changes.formDefinitionRefresh$) {\n this.unsubscribeFormRefresh();\n this.subscribeFormRefresh();\n }\n }\n\n ngOnDestroy(): void {\n this.unsubscribeFormRefresh();\n\n this.tokenRefreshTimerSubscription?.unsubscribe();\n }\n\n reloadForm() {\n this.refreshForm.emit({\n form: this.formDefinition,\n });\n }\n\n showErrors(errors: string[]) {\n this.errors = errors;\n }\n\n onSubmit(submission: FormioSubmission) {\n this.errors = [];\n this.submit.emit(submission);\n }\n\n formReady(form: FormIoSourceComponent): void {\n this.reloadForm();\n this.stateService.currentForm = form;\n }\n\n onChange(object: any): void {\n this.change.emit(object);\n }\n\n nextPage(): void {\n this.scrollToTop();\n }\n\n prevPage(): void {\n this.scrollToTop();\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.setToken(token);\n localStorage.setItem('formioToken', token);\n this.setTimerForTokenRefresh(token);\n\n this.logger.debug('New token set for form.io.');\n }\n\n private setTimerForTokenRefresh(token: string): void {\n const tokenExp = (jwt_decode(token) as any).exp * 1000;\n const expiryTime = tokenExp - Date.now() - 1000;\n if (!this.tokenRefreshTimerSubscription) {\n this.tokenRefreshTimerSubscription = timer(expiryTime).subscribe(() => {\n this.refreshToken();\n });\n }\n\n this.logger.debug(`Timer for form.io token refresh set for: ${expiryTime}ms.`);\n }\n\n private refreshToken(): void {\n from(this.userProviderService.updateToken(-1))\n .pipe(\n switchMap(() => this.userProviderService.getToken()),\n take(1)\n )\n .subscribe(token => {\n this.setToken(token);\n });\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","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF 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 <div *ngIf=\"errors.length > 0\" class=\"alert alert-danger pt-5 pb-5 mb-2\">\n <ol>\n <li *ngFor=\"let error of errors\">\n {{ error }}\n </li>\n </ol>\n </div>\n <formio\n *ngIf=\"{\n currentLanguage: currentLanguage$ | async,\n formioOptions: formioOptions$ | async\n } as obs\"\n [submission]=\"submission\"\n [form]=\"formDefinition\"\n [refresh]=\"refreshForm\"\n [options]=\"obs.formioOptions || options\"\n [readOnly]=\"readOnly\"\n [language]=\"obs.currentLanguage\"\n (submit)=\"onSubmit($event)\"\n (ready)=\"formReady($event)\"\n (change)=\"onChange($event)\"\n (nextPage)=\"nextPage()\"\n (prevPage)=\"prevPage()\"\n ></formio>\n</div>\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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 {Components} from '@formio/angular';\nimport {distinctUntilChanged, map} from 'rxjs/operators';\nimport {Observable} from 'rxjs';\nimport {TranslateService} from '@ngx-translate/core';\nimport {FormioOptions} from '@formio/angular/formio.common';\nimport {FormIoStateService} from './services/form-io-state.service';\n\n@Component({\n selector: 'valtimo-form-io-builder',\n templateUrl: './form-io-builder.component.html',\n styleUrls: ['./form-io-builder.component.css'],\n})\nexport class FormioBuilderComponent implements OnInit {\n @Input() form: any;\n // eslint-disable-next-line @angular-eslint/no-output-native\n @Output() change: EventEmitter<any> = new EventEmitter();\n public triggerRebuild: EventEmitter<FormioOptions> = new EventEmitter();\n\n readonly currentLanguage$ = this.translateService.stream('key').pipe(\n map(() => this.translateService.currentLang),\n distinctUntilChanged()\n );\n\n readonly formioOptions$: Observable<FormioOptions> = this.currentLanguage$.pipe(\n map(language => {\n const formioTranslations = this.translateService.instant('formioTranslations');\n const options =\n typeof formioTranslations === 'object'\n ? {\n language,\n i18n: {\n [language]: this.stateService.flattenTranslationsObject(formioTranslations),\n },\n }\n : null;\n\n this.triggerRebuild.emit(options);\n return options;\n })\n );\n\n constructor(\n private translateService: TranslateService,\n private stateService: FormIoStateService\n ) {}\n\n ngOnInit() {\n const originalEditForm = Components.baseEditForm;\n Components.baseEditForm = function (...extend) {\n const editForm = originalEditForm(...extend);\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 delete keyField.validate;\n return editForm;\n };\n }\n\n onChange(event) {\n this.change.emit(event);\n }\n}\n","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF 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 <form-builder\n [form]=\"form\"\n [rebuild]=\"triggerRebuild\"\n [options]=\"formioOptions$ | async\"\n (change)=\"onChange($event)\"\n ></form-builder>\n</div>\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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 AppConfig = {\n appUrl: 'http://localhost:4200',\n apiUrl: 'http://localhost:4200',\n icons: 'fontawesome',\n formOnly: false,\n};\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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})\nexport class ProgressBarComponent {}\n","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF 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-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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})\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-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF 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-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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 OnDestroy,\n OnInit,\n Output,\n ViewChild,\n} from '@angular/core';\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})\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(private readonly translateService: TranslateService) {}\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 }\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","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF 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-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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 '@formio/angular';\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})\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-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF 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-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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, ViewChild} from '@angular/core';\nimport {ModalComponent, ModalService, SelectItem} from '@valtimo/user-interface';\nimport {\n BehaviorSubject,\n combineLatest,\n filter,\n from,\n map,\n Observable,\n of,\n Subject,\n Subscription,\n switchMap,\n take,\n} from 'rxjs';\nimport {\n AdditionalDocumentDate,\n ConfidentialityLevel,\n DocumentenApiMetadata,\n DocumentLanguage,\n DocumentStatus,\n} from '../../models';\nimport {TranslateService} from '@ngx-translate/core';\nimport {ActivatedRoute} from '@angular/router';\nimport {DocumentService} from '@valtimo/document';\nimport {KeycloakService} from 'keycloak-angular';\nimport {ValtimoModalService} from '../../services/valtimo-modal.service';\nimport {tap} from 'rxjs/operators';\n\n@Component({\n selector: 'valtimo-documenten-api-metadata-modal',\n templateUrl: './documenten-api-metadata-modal.component.html',\n styleUrls: ['./documenten-api-metadata-modal.component.scss'],\n})\nexport class DocumentenApiMetadataModalComponent implements OnInit, OnDestroy {\n @ViewChild('documentenApiMetadataModal') documentenApiMetadataModal: ModalComponent;\n\n @Input() show$!: Observable<null>;\n @Input() hide$!: Observable<null>;\n @Input() disabled$!: Observable<boolean>;\n @Input() file$!: Observable<File>;\n\n @Input() documentTitle = '';\n @Input() disableDocumentTitle: boolean;\n @Input() filename: string;\n @Input() disableFilename: boolean;\n @Input() author: string;\n @Input() disableAuthor: boolean;\n @Input() status: string;\n @Input() disableStatus: boolean;\n @Input() language: string;\n @Input() disableLanguage: boolean;\n @Input() documentType: string;\n @Input() disableDocumentType: boolean;\n @Input() description: string;\n @Input() disableDescription: boolean;\n @Input() confidentialityLevel: string;\n @Input() disableConfidentialityLevel: boolean;\n\n @Output() metadata: EventEmitter<DocumentenApiMetadata> = new EventEmitter();\n\n readonly CONFIDENTIALITY_LEVELS: Array<ConfidentialityLevel> = [\n 'openbaar',\n 'beperkt_openbaar',\n 'intern',\n 'zaakvertrouwelijk',\n 'vertrouwelijk',\n 'confidentieel',\n 'geheim',\n 'zeer_geheim',\n ];\n readonly confidentialityLevelItems$: Observable<Array<SelectItem>> = this.translateService\n .stream('key')\n .pipe(\n map(() =>\n this.CONFIDENTIALITY_LEVELS.map(confidentialityLevel => ({\n id: confidentialityLevel,\n text: this.translateService.instant(`document.${confidentialityLevel}`),\n }))\n )\n );\n readonly ADDITONAL_DOCUMENT_DATE_OPTIONS: Array<{\n value: AdditionalDocumentDate;\n translationKey: string;\n }> = [\n {\n value: 'neither',\n translationKey: 'document.noAdditionalDate',\n },\n {\n value: 'sent',\n translationKey: 'document.sendDate',\n },\n {\n value: 'received',\n translationKey: 'document.receiptDate',\n },\n ];\n readonly clearStatusSelection$ = new Subject<null>();\n readonly additionalDocumentDate$ = new BehaviorSubject<AdditionalDocumentDate>('neither');\n readonly STATUSES: Array<DocumentStatus> = [\n 'in_bewerking',\n 'ter_vaststelling',\n 'definitief',\n 'gearchiveerd',\n ];\n readonly RECEIPT_STATUSES: Array<DocumentStatus> = ['definitief', 'gearchiveerd'];\n readonly formData$ = new BehaviorSubject<DocumentenApiMetadata>(null);\n readonly statusItems$: Observable<Array<SelectItem>> = combineLatest([\n this.additionalDocumentDate$,\n this.translateService.stream('key'),\n ]).pipe(\n tap(([additionalDocumentDate]) => {\n this.formData$.pipe(take(1)).subscribe(formData => {\n if (\n additionalDocumentDate === 'received' &&\n (formData.status === 'in_bewerking' || formData.status === 'ter_vaststelling')\n ) {\n this.clearStatusSelection$.next(null);\n }\n });\n }),\n map(([additionalDocumentDate]) =>\n (additionalDocumentDate === 'received' ? this.RECEIPT_STATUSES : this.STATUSES).map(\n status => ({\n id: status,\n text: this.translateService.instant(`document.${status}`),\n })\n )\n )\n );\n readonly LANGUAGES: Array<DocumentLanguage> = ['nld', 'eng', 'deu'];\n readonly languageItems$: Observable<Array<SelectItem>> = this.translateService.stream('key').pipe(\n map(() =>\n this.LANGUAGES.map(language => ({\n id: language,\n text: this.translateService.instant(`document.${language}`),\n }))\n )\n );\n readonly documentTypeItems$: Observable<Array<SelectItem>> = combineLatest([\n this.route?.params || of(null),\n this.route?.firstChild?.params || of(null),\n this.valtimoModalService.documentDefinitionName$,\n ]).pipe(\n filter(\n ([params, firstChildParams, documentDefinitionName]) =>\n !!(\n params?.documentDefinitionName ||\n firstChildParams?.documentDefinitionName ||\n documentDefinitionName\n )\n ),\n switchMap(([params, firstChildParams, documentDefinitionName]) =>\n this.documentService.getDocumentTypes(\n params?.documentDefinitionName ||\n firstChildParams?.documentDefinitionName ||\n documentDefinitionName\n )\n ),\n map(documentTypes => documentTypes.map(type => ({id: type.url, text: type.name})))\n );\n readonly showForm$: Observable<boolean> = this.modalService.modalVisible$;\n readonly valid$ = new BehaviorSubject<boolean>(false);\n readonly userEmail$ = from(this.keycloakService.loadUserProfile()).pipe(\n map(userProfile => userProfile?.email || '')\n );\n\n private showSubscription!: Subscription;\n private hideSubscription!: Subscription;\n\n constructor(\n private readonly modalService: ModalService,\n private readonly translateService: TranslateService,\n private readonly route: ActivatedRoute,\n private readonly documentService: DocumentService,\n private readonly keycloakService: KeycloakService,\n private readonly valtimoModalService: ValtimoModalService\n ) {}\n\n ngOnInit(): void {\n this.openShowSubscription();\n this.openHideSubscription();\n }\n\n ngOnDestroy(): void {\n this.showSubscription?.unsubscribe();\n this.hideSubscription?.unsubscribe();\n }\n\n hide(): void {\n this.formData$.next(null);\n this.valid$.next(false);\n this.additionalDocumentDate$.next('neither');\n this.modalService.closeModal();\n }\n\n cancel(): void {\n this.hide();\n }\n\n save(): void {\n combineLatest([this.valid$, this.formData$])\n .pipe(take(1))\n .subscribe(([valid, formData]) => {\n if (valid) {\n this.metadata.emit(formData);\n }\n });\n }\n\n formValueChange(data: DocumentenApiMetadata): void {\n this.formData$.next(data);\n this.setValid(data);\n }\n\n setAdditionalDate(value: AdditionalDocumentDate): void {\n this.additionalDocumentDate$.next(value);\n }\n\n private setValid(data: DocumentenApiMetadata): void {\n this.valid$.next(\n !!(\n data.filename &&\n data.title &&\n data.author &&\n data.creationDate &&\n data.status &&\n data.language &&\n data.informatieobjecttype &&\n data.description &&\n data.confidentialityLevel\n )\n );\n }\n\n private openShowSubscription(): void {\n this.showSubscription = this.show$.subscribe(() => {\n this.modalService.openModal(this.documentenApiMetadataModal);\n });\n }\n\n private openHideSubscription(): void {\n this.hideSubscription = this.hide$.subscribe(() => {\n this.hide();\n });\n }\n}\n","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF 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-modal\n #documentenApiMetadataModal\n (closeEvent)=\"hide()\"\n *ngIf=\"{file: file$ | async, disabled: disabled$ | async, valid: valid$ | async} as obs\"\n>\n <div role=\"header\">\n <div class=\"edit-configuration-title\">\n <v-title [center]=\"true\" [fullWidth]=\"true\" [margin]=\"false\" type=\"h2\">{{\n 'document.fillInMetadata' | translate\n }}</v-title>\n </div>\n </div>\n <div role=\"content\">\n <ng-container *ngTemplateOutlet=\"metadataForm; context: {obs: obs}\"></ng-container>\n </div>\n <div role=\"footer\">\n <div class=\"buttons\">\n <v-button (clickEvent)=\"cancel()\" [disabled]=\"obs.disabled\" type=\"secondary\">{{\n 'document.cancel' | translate\n }}</v-button>\n <v-button\n (clickEvent)=\"save()\"\n [disabled]=\"obs.disabled || !obs.valid\"\n mdiIcon=\"upload\"\n type=\"success\"\n >{{ 'document.upload' | translate }}</v-button\n >\n </div>\n </div>\n</v-modal>\n\n<ng-template #metadataForm let-obs=\"obs\">\n <ng-container *ngIf=\"showForm$ | async\">\n <v-form\n (valueChange)=\"formValueChange($event)\"\n *ngIf=\"additionalDocumentDate$ | async as additionalDate\"\n >\n <v-input\n [defaultValue]=\"filename || obs.file?.name\"\n [disabled]=\"obs.disabled || disableFilename\"\n [fullWidth]=\"true\"\n [margin]=\"true\"\n [required]=\"true\"\n [title]=\"'document.filename' | translate\"\n [tooltip]=\"'document.filenameTooltip' | translate\"\n name=\"filename\"\n >\n </v-input>\n <v-input\n [defaultValue]=\"documentTitle\"\n [disabled]=\"obs.disabled || disableDocumentTitle\"\n [margin]=\"true\"\n [required]=\"true\"\n [title]=\"'document.inputTitle' | translate\"\n [tooltip]=\"'document.inputTitleTooltip' | translate\"\n [widthPx]=\"400\"\n name=\"title\"\n >\n </v-input>\n <v-input\n [defaultValue]=\"author || (userEmail$ | async)\"\n [disabled]=\"obs.disabled || disableAuthor\"\n [margin]=\"true\"\n [required]=\"true\"\n [title]=\"'document.author' | translate\"\n [tooltip]=\"'document.authorTooltip' | translate\"\n [widthPx]=\"300\"\n name=\"author\"\n >\n </v-input>\n <v-select\n *ngIf=\"languageItems$ | async as languageItems\"\n [defaultSelectionId]=\"language || languageItems[0].id\"\n [disabled]=\"obs.disabled || disableLanguage\"\n [items]=\"languageItems\"\n [margin]=\"true\"\n [required]=\"true\"\n [title]=\"'document.language' | translate\"\n [tooltip]=\"'document.languageTooltip' | translate\"\n [widthInPx]=\"200\"\n name=\"language\"\n ></v-select>\n <ng-container *ngIf=\"{documentTypeItems: documentTypeItems$ | async} as obs\">\n <v-select\n [defaultSelectionId]=\"documentType\"\n [disabled]=\"obs.disabled || disableDocumentType\"\n [items]=\"obs.documentTypeItems\"\n [loading]=\"!obs.documentTypeItems\"\n [margin]=\"true\"\n [required]=\"true\"\n [title]=\"'document.informatieobjecttype' | translate\"\n [tooltip]=\"'document.informatieobjecttypeTooltip' | translate\"\n [widthInPx]=\"200\"\n name=\"informatieobjecttype\"\n ></v-select>\n </ng-container>\n <v-date-picker\n [defaultDateIsToday]=\"true\"\n [disabled]=\"obs.disabled\"\n [margin]=\"true\"\n [required]=\"true\"\n [title]=\"'document.creationDate' | translate\"\n [tooltip]=\"'document.creationDateTooltip' | translate\"\n [widthPx]=\"100\"\n name=\"creationDate\"\n ></v-date-picker>\n <ng-container\n *ngTemplateOutlet=\"additionalDatePicker; context: {additionalDate: additionalDate}\"\n ></ng-container>\n <v-date-picker\n *ngIf=\"additionalDate === 'received'\"\n [defaultDateIsToday]=\"true\"\n [disabled]=\"obs.disabled\"\n [margin]=\"true\"\n [title]=\"'document.receiptDate' | translate\"\n [tooltip]=\"'document.receiptDateTooltip' | translate\"\n [widthPx]=\"100\"\n name=\"receiptDate\"\n ></v-date-picker>\n <v-date-picker\n *ngIf=\"additionalDate === 'sent'\"\n [defaultDateIsToday]=\"true\"\n [disabled]=\"obs.disabled\"\n [margin]=\"true\"\n [title]=\"'document.sendDate' | translate\"\n [tooltip]=\"'document.sendDateTooltip' | translate\"\n [widthPx]=\"100\"\n name=\"sendDate\"\n ></v-date-picker>\n <v-select\n [defaultSelectionId]=\"status\"\n [disabled]=\"obs.disabled || disableStatus\"\n [items]=\"statusItems$ | async\"\n [margin]=\"true\"\n [required]=\"true\"\n [title]=\"'document.status' | translate\"\n [tooltip]=\"'document.statusTooltip' | translate\"\n [widthInPx]=\"200\"\n [clearSelectionSubject$]=\"clearStatusSelection$\"\n name=\"status\"\n ></v-select>\n <v-input\n [defaultValue]=\"description\"\n [disabled]=\"obs.disabled || disableDescription\"\n [fullWidth]=\"true\"\n [margin]=\"true\"\n [title]=\"'document.inputDescription' | translate\"\n [tooltip]=\"'document.inputDescriptionTooltip' | translate\"\n [required]=\"true\"\n name=\"description\"\n >\n </v-input>\n <v-select\n [defaultSelectionId]=\"confidentialityLevel\"\n [disabled]=\"obs.disabled || disableConfidentialityLevel\"\n [items]=\"confidentialityLevelItems$ | async\"\n [margin]=\"true\"\n [title]=\"'document.confidentialityLevel' | translate\"\n [tooltip]=\"'document.confidentialityLevelTooltip' | translate\"\n [widthInPx]=\"200\"\n [required]=\"true\"\n name=\"confidentialityLevel\"\n ></v-select>\n </v-form>\n </ng-container>\n</ng-template>\n\n<ng-template #additionalDatePicker let-additionalDate=\"additionalDate\">\n <v-input-label\n [title]=\"'document.additionalDate' | translate\"\n [name]=\"'additionalDate'\"\n [tooltip]=\"'document.additionalDateTooltip' | translate\"\n [required]=\"true\"\n >\n </v-input-label>\n <div class=\"col-12 col-sm-8 col-lg-6 form-check mt-1 additional-date\">\n <label\n class=\"custom-control custom-radio custom-control-inline\"\n *ngFor=\"let option of ADDITONAL_DOCUMENT_DATE_OPTIONS\"\n (click)=\"setAdditionalDate(option.value)\"\n >\n <input\n class=\"custom-control-input\"\n type=\"radio\"\n name=\"radio-inline\"\n [checked]=\"additionalDate === option.value\"\n /><span class=\"custom-control-label\">{{ option.translationKey | translate }}</span>\n </label>\n </div>\n</ng-template>\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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 '@formio/angular';\nimport {BehaviorSubject, combineLatest, Observable, of, startWith, Subject, switchMap} from 'rxjs';\nimport {\n DocumentenApiFileReference,\n DownloadService,\n UploadProviderService,\n} from '@valtimo/resource';\nimport {FormIoStateService} from '../services/form-io-state.service';\nimport {FormIoDomService} from '../services/form-io-dom.service';\nimport {DocumentenApiMetadata} from '../../../models';\nimport {filter, map, take, tap} from 'rxjs/operators';\nimport {ValtimoModalService} from '../../../services/valtimo-modal.service';\nimport {UserProviderService} from '@valtimo/security';\nimport {ActivatedRoute} from '@angular/router';\n\n@Component({\n selector: 'valtimo-documenten-api-formio-uploader',\n templateUrl: './documenten-api-uploader.component.html',\n styleUrls: ['./documenten-api-uploader.component.scss'],\n})\nexport class DocumentenApiUploaderComponent\n implements FormioCustomComponent<Array<DocumentenApiFileReference>>\n{\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\n @Input() documentTitle: string;\n @Input() disableDocumentTitle: boolean;\n @Input() filename: string;\n @Input() disableFilename: boolean;\n @Input() author: string;\n @Input() disableAuthor: boolean;\n @Input() status: string;\n @Input() disableStatus: boolean;\n @Input() language: string;\n @Input() disableLanguage: boolean;\n @Input() documentType: string;\n @Input() disableDocumentType: boolean;\n @Input() description: string;\n @Input() disableDescription: boolean;\n @Input() confidentialityLevel: string;\n @Input() disableConfidentialityLevel: boolean;\n\n @Output() valueChange = new EventEmitter<Array<DocumentenApiFileReference>>();\n\n readonly uploading$ = new BehaviorSubject<boolean>(false);\n readonly fileToBeUploaded$ = new BehaviorSubject<File | null>(null);\n readonly modalDisabled$ = new BehaviorSubject<boolean>(false);\n readonly showModal$ = new Subject<null>();\n readonly hideModal$ = new Subject<null>();\n readonly uploadProcessLinked$: Observable<boolean | string> = combineLatest([\n this.route?.params || of(null),\n this.route?.firstChild?.params || of(null),\n this.modalService.documentDefinitionName$,\n ]).pipe(\n filter(\n ([params, firstChildParams, documentDefinitionName]) =>\n !!(\n params?.documentDefinitionName ||\n firstChildParams?.documentDefinitionName ||\n documentDefinitionName\n )\n ),\n switchMap(([params, firstChildParams, documentDefinitionName]) =>\n this.uploadProviderService.checkUploadProcessLink(\n params?.documentDefinitionName ||\n firstChildParams?.documentDefinitionName ||\n documentDefinitionName\n )\n ),\n startWith('loading')\n );\n readonly isAdmin$: Observable<boolean> = this.userProviderService\n .getUserSubject()\n .pipe(map(userIdentity => userIdentity?.roles.includes('ROLE_ADMIN')));\n\n constructor(\n private readonly uploadProviderService: UploadProviderService,\n private readonly stateService: FormIoStateService,\n private readonly domService: FormIoDomService,\n private readonly downloadService: DownloadService,\n private readonly modalService: ValtimoModalService,\n private readonly userProviderService: UserProviderService,\n private readonly route: ActivatedRoute\n ) {}\n\n _value: Array<DocumentenApiFileReference> = [];\n\n public get value(): Array<DocumentenApiFileReference> {\n return this._value;\n }\n\n @Input()\n public set value(value: Array<DocumentenApiFileReference>) {\n if (Array.isArray(value)) {\n this._value = value;\n }\n }\n\n fileSelected(file: File): void {\n this.fileToBeUploaded$.next(file);\n this.showModal$.next(null);\n }\n\n deleteFile(id: string): void {\n this.domService.toggleSubmitButton(true);\n this._value = this._value.filter((file: DocumentenApiFileReference) =>\n file?.id ? file?.id !== id : true\n );\n this.valueChange.emit(this._value);\n }\n\n metadataSet(metadata: DocumentenApiMetadata): void {\n this.uploading$.next(true);\n this.hideModal$.next(null);\n this.domService.toggleSubmitButton(true);\n\n this.fileToBeUploaded$\n .pipe(\n take(1),\n switchMap(file => this.uploadProviderService.uploadTempFileWithMetadata(file, metadata)),\n tap(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 .subscribe();\n }\n}\n","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF 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=\"{linked: uploadProcessLinked$ | async, isAdmin: isAdmin$ | async} as obs\">\n <div *ngIf=\"obs.linked === false\">\n <div\n *ngIf=\"obs.isAdmin\"\n [translate]=\"'dossier.documenten.noProcessLinked.adminRole'\"\n class=\"bg-warning text-black mb-2 p-3 text-center\"\n ></div>\n <div\n *ngIf=\"!obs.isAdmin\"\n [translate]=\"'dossier.documenten.noProcessLinked.regularUser'\"\n class=\"bg-warning text-black mb-2 p-3 text-center\"\n ></div>\n </div>\n <valtimo-dropzone\n (fileSelected)=\"fileSelected($event)\"\n [acceptedFiles]=\"null\"\n [camera]=\"camera\"\n [disabled]=\"disabled || obs.linked === false || obs.linked === 'loading'\"\n [hideFilePreview]=\"true\"\n [hideTitle]=\"hideTitle\"\n [maxFileSize]=\"maxFileSize\"\n [maxFiles]=\"1\"\n [showMaxFileSize]=\"!hideMaxFileSize\"\n [subtitle]=\"subtitle\"\n [title]=\"title\"\n [uploading]=\"uploading$ | async\"\n ></valtimo-dropzone>\n</ng-container>\n\n<div *ngFor=\"let resource of _value\" class=\"file-preview\">\n <div class=\"file-preview-name\">\n <span>\n {{ resource.filename }}\n </span>\n </div>\n <div class=\"file-preview-size\">\n <span>\n {{ resource.sizeInBytes | filesize }}\n </span>\n </div>\n <div *ngIf=\"!disabled\" class=\"file-preview-delete\">\n <a (click)=\"deleteFile(resource.id)\">\n <i class=\"icon mdi mdi-delete\"></i>\n </a>\n </div>\n</div>\n\n<valtimo-documenten-api-metadata-modal\n (metadata)=\"metadataSet($event)\"\n [author]=\"author\"\n [confidentialityLevel]=\"confidentialityLevel\"\n [description]=\"description\"\n [disableAuthor]=\"disableAuthor\"\n [disableConfidentialityLevel]=\"disableConfidentialityLevel\"\n [disableDescription]=\"disableDescription\"\n [disableDocumentTitle]=\"disableDocumentTitle\"\n [disableDocumentType]=\"disableDocumentType\"\n [disableFilename]=\"disableFilename\"\n [disableLanguage]=\"disableLanguage\"\n [disableStatus]=\"disableStatus\"\n [disabled$]=\"modalDisabled$\"\n [documentTitle]=\"documentTitle\"\n [documentType]=\"documentType\"\n [file$]=\"fileToBeUploaded$\"\n [filename]=\"filename\"\n [hide$]=\"hideModal$\"\n [language]=\"language\"\n [show$]=\"showModal$\"\n [status]=\"status\"\n></valtimo-documenten-api-metadata-modal>\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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 {DocumentenApiMetadataModalComponent} from './documenten-api-metadata-modal.component';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {\n ButtonModule,\n DatePickerModule,\n FormModule,\n InputLabelModule,\n InputModule,\n ModalModule,\n SelectModule,\n TitleModule,\n} from '@valtimo/user-interface';\n\n@NgModule({\n declarations: [DocumentenApiMetadataModalComponent],\n exports: [DocumentenApiMetadataModalComponent],\n imports: [\n CommonModule,\n TranslateModule,\n ModalModule,\n TitleModule,\n ButtonModule,\n TranslateModule,\n FormModule,\n InputModule,\n SelectModule,\n DatePickerModule,\n InputLabelModule,\n ],\n})\nexport class DocumentenApiMetadataModalModule {}\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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 '@formio/angular';\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})\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-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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 './form-io.component';\nimport {FormioBuilderComponent} from './form-io-builder.component';\nimport {FormioAppConfig, FormioModule} from '@formio/angular';\nimport {AppConfig} from './formio-config';\nimport {FormIoUploaderComponent} from './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 {DocumentenApiUploaderComponent} from './documenten-api-uploader/documenten-api-uploader.component';\nimport {DocumentenApiMetadataModalModule} from '../documenten-api-metadata-modal/documenten-api-metadata-modal.module';\nimport {FormIoCurrentUserComponent} from './form-io-current-user/form-io-current-user.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FormioModule,\n DropzoneModule,\n TranslateModule,\n DocumentModule,\n FileSizeModule,\n ResourceModule,\n RouterModule,\n DocumentenApiMetadataModalModule,\n ],\n declarations: [\n FormioComponent,\n FormioBuilderComponent,\n FormIoUploaderComponent,\n DocumentenApiUploaderComponent,\n FormIoCurrentUserComponent,\n ],\n exports: [\n FormioComponent,\n FormioBuilderComponent,\n FormIoUploaderComponent,\n DocumentenApiUploaderComponent,\n FormIoCurrentUserComponent,\n ],\n providers: [FormIoDomService, {provide: FormioAppConfig, useValue: AppConfig}],\n})\nexport class FormIoModule {}\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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})\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-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF 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 <img src=\"assets/modal/header-image.png\" class=\"modal-header-image\" />\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-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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})\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-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF 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-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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})\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-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF 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-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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: '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-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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 {\n createCustomFormioComponent,\n FormioCustomComponentInfo,\n registerCustomFormioComponentWithClass,\n} from '@formio/angular';\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 const originalUploadComponent = createCustomFormioComponent(COMPONENT_OPTIONS);\n\n // override setValue function to allow for setting an array value\n class UploaderComponent extends originalUploadComponent {\n setValue(value): boolean {\n let componentValue = this._customAngularElement?.value;\n\n if (componentValue) {\n componentValue = value;\n }\n\n return true;\n }\n }\n\n if (!customElements.get(COMPONENT_OPTIONS.selector)) {\n registerCustomFormioComponentWithClass(\n COMPONENT_OPTIONS,\n FormIoUploaderComponent,\n UploaderComponent,\n injector\n );\n }\n}\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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 documentenApiUploaderEditForm = () => ({\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: '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 type: 'textfield',\n input: true,\n key: 'customOptions.documentTitle',\n label: 'Default document title',\n tooltip: 'Leave empty to let the user input their own title',\n validate: {\n required: false,\n },\n },\n {\n type: 'checkbox',\n input: true,\n inputType: 'checkbox',\n key: 'customOptions.disableDocumentTitle',\n label: 'Disable document title input',\n validate: {\n required: false,\n },\n },\n {\n type: 'textfield',\n input: true,\n key: 'customOptions.filename',\n label: 'Default filename',\n tooltip: 'Leave empty to let the user input their own filename',\n validate: {\n required: false,\n },\n },\n {\n type: 'checkbox',\n input: true,\n inputType: 'checkbox',\n key: 'customOptions.disableFilename',\n label: 'Disable filename input',\n validate: {\n required: false,\n },\n },\n {\n type: 'textfield',\n input: true,\n key: 'customOptions.author',\n label: 'Default author',\n tooltip: 'Leave empty to let the user input their own author',\n validate: {\n required: false,\n },\n },\n {\n type: 'checkbox',\n input: true,\n inputType: 'checkbox',\n key: 'customOptions.disableAuthor',\n label: 'Disable author input',\n validate: {\n required: false,\n },\n },\n {\n type: 'select',\n label: 'Default status',\n key: 'customOptions.status',\n placeholder: 'Select a default status',\n data: {\n values: [\n {value: 'in_bewerking', label: 'In editing'},\n {value: 'ter_vaststelling', label: 'To be confirmed'},\n {value: 'definitief', label: 'Definitive'},\n {value: 'gearchiveerd', label: 'Archived'},\n ],\n },\n dataSrc: 'values',\n input: true,\n validate: {\n required: false,\n },\n },\n {\n type: 'checkbox',\n input: true,\n inputType: 'checkbox',\n key: 'customOptions.disableStatus',\n label: 'Disable status input',\n validate: {\n required: false,\n },\n },\n {\n type: 'select',\n label: 'Default language',\n key: 'customOptions.language',\n placeholder: 'Select a default language',\n data: {\n values: [\n {value: 'nld', label: 'Dutch'},\n {value: 'eng', label: 'English'},\n {value: 'deu', label: 'German'},\n ],\n },\n dataSrc: 'values',\n input: true,\n validate: {\n required: false,\n },\n },\n {\n type: 'checkbox',\n input: true,\n inputType: 'checkbox',\n key: 'customOptions.disableLanguage',\n label: 'Disable language input',\n validate: {\n required: false,\n },\n },\n {\n type: 'textfield',\n input: true,\n key: 'customOptions.documentType',\n label: 'Default document type url',\n tooltip:\n 'Must match the document type url exactly. Leave empty to let the user input their own document type',\n validate: {\n required: false,\n },\n },\n {\n type: 'checkbox',\n input: true,\n inputType: 'checkbox',\n key: 'customOptions.disableDocumentType',\n label: 'Disable document type input',\n validate: {\n required: false,\n },\n },\n {\n type: 'textfield',\n input: true,\n key: 'customOptions.description',\n label: 'Default description',\n tooltip: 'Leave empty to let the user input their own description',\n validate: {\n required: false,\n },\n },\n {\n type: 'checkbox',\n input: true,\n inputType: 'checkbox',\n key: 'customOptions.disableDescription',\n label: 'Disable description input',\n validate: {\n required: false,\n },\n },\n {\n type: 'select',\n label: 'Default confidentiality level',\n key: 'customOptions.confidentialityLevel',\n placeholder: 'Select a default confidentiality level',\n data: {\n values: [\n {value: 'openbaar', label: 'Public'},\n {value: 'beperkt_openbaar', label: 'Restricted public'},\n {value: 'intern', label: 'Internal'},\n {value: 'zaakvertrouwelijk', label: 'Case confidential'},\n {value: 'vertrouwelijk', label: 'Private'},\n {value: 'confidentieel', label: 'Confidential'},\n {value: 'geheim', label: 'Secret'},\n {value: 'zeer_geheim', label: 'Very secret'},\n ],\n },\n dataSrc: 'values',\n input: true,\n validate: {\n required: false,\n },\n },\n {\n type: 'checkbox',\n input: true,\n inputType: 'checkbox',\n key: 'customOptions.disableConfidentialityLevel',\n label: 'Disable confidentiality level input',\n validate: {\n required: false,\n },\n },\n ],\n});\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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 {\n createCustomFormioComponent,\n FormioCustomComponentInfo,\n registerCustomFormioComponentWithClass,\n} from '@formio/angular';\nimport {DocumentenApiUploaderComponent} from './documenten-api-uploader.component';\nimport {documentenApiUploaderEditForm} from './documenten-api-uploader-edit-form';\n\nexport const customDocumentApiUploaderType = 'documenten-api-file';\n\nconst COMPONENT_OPTIONS: FormioCustomComponentInfo = {\n type: customDocumentApiUploaderType,\n selector: 'documenten-api-form-io-uploader',\n title: 'Documenten API File Upload',\n group: 'advanced',\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: documentenApiUploaderEditForm,\n};\n\nexport function registerDocumentenApiFormioUploadComponent(injector: Injector) {\n const originalUploadComponent = createCustomFormioComponent(COMPONENT_OPTIONS);\n\n // override setValue function to allow for setting an array value\n class UploaderComponent extends originalUploadComponent {\n setValue(value): boolean {\n this._customAngularElement.value = value;\n return true;\n }\n }\n\n if (!customElements.get(COMPONENT_OPTIONS.selector)) {\n registerCustomFormioComponentWithClass(\n COMPONENT_OPTIONS,\n DocumentenApiUploaderComponent,\n UploaderComponent,\n injector\n );\n }\n}\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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 '@formio/angular';\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-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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 '@formio/angular';\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-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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})\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\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-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF 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\"\n [title]=\"clearSelectionButtonTitle\"\n (click)=\"onClearSelection()\"\n aria-label=\"Close\"\n class=\"close p-0 m-0 ml-2 d-flex 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-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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})\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-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF 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-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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 {SearchField, SearchFieldBoolean, SearchFieldValues} from '@valtimo/config';\nimport {BehaviorSubject, combineLatest, map, Observable, Subject, Subscription, take} from 'rxjs';\nimport {SelectItem} from '@valtimo/user-interface';\nimport {TranslateService} from '@ngx-translate/core';\nimport {DocumentService} from '@valtimo/document';\n\n@Component({\n selector: 'valtimo-search-fields',\n templateUrl: './search-fields.component.html',\n styleUrls: ['./search-fields.component.scss'],\n})\nexport class SearchFieldsComponent implements OnInit, OnDestroy {\n @Input() loading: boolean;\n @Input() set searchFields(fields: Array<SearchField>) {\n this.searchFields$.next(fields);\n }\n @Input() set documentDefinitionName(documentDefinitionName: string) {\n this.documentDefinitionName$.pipe(take(1)).subscribe(currentDocumentDefinitionName => {\n if (currentDocumentDefinitionName !== documentDefinitionName) {\n this.documentDefinitionName$.next(documentDefinitionName);\n }\n });\n }\n @Input() setValuesSubject$: Observable<SearchFieldValues>;\n @Input() defaultValues: SearchFieldValues;\n @Output() doSearch: EventEmitter<SearchFieldValues> = new EventEmitter<SearchFieldValues>();\n\n readonly documentDefinitionName$ = new BehaviorSubject<string>('');\n\n readonly searchFields$ = new BehaviorSubject<Array<SearchField>>([]);\n\n readonly values$ = new BehaviorSubject<SearchFieldValues>({});\n\n 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\n readonly expanded$ = new BehaviorSubject<boolean>(false);\n readonly clear$ = new Subject<null>();\n\n private documentDefinitionNameSubscription!: Subscription;\n private dropdownSubscription!: Subscription;\n private valuesSubjectSubscription!: Subscription;\n\n private readonly BOOLEAN_POSITIVE: SearchFieldBoolean = 'booleanPositive';\n private readonly BOOLEAN_NEGATIVE: SearchFieldBoolean = 'booleanNegative';\n\n readonly BOOLEANTYPES: Array<SearchFieldBoolean> = [this.BOOLEAN_POSITIVE, this.BOOLEAN_NEGATIVE];\n readonly booleanItems$: Observable<Array<SelectItem>> = this.translateService.stream('key').pipe(\n map(() =>\n this.BOOLEANTYPES.map(type => ({\n id: type,\n text: this.translateService.instant(`searchFields.${type}`),\n }))\n )\n );\n\n readonly dropdownSelectItemsMap: Map<string, Array<SelectItem>> = new Map();\n\n constructor(\n private readonly documentService: DocumentService,\n private readonly translateService: TranslateService\n ) {}\n\n ngOnInit() {\n this.openDocumentDefinitionNameSubscription();\n this.openValuesSubjectSubscription();\n this.openDropdownSubscription();\n this.setDefaultValues();\n }\n\n ngOnDestroy(): void {\n this.documentDefinitionNameSubscription?.unsubscribe();\n this.valuesSubjectSubscription?.unsubscribe();\n this.dropdownSubscription?.unsubscribe();\n }\n\n 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 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 toggleExpanded(): void {\n this.expanded$.pipe(take(1)).subscribe(expanded => {\n this.expanded$.next(!expanded);\n });\n }\n\n search(): void {\n this.values$.pipe(take(1)).subscribe(values => {\n this.doSearch.emit(values);\n });\n }\n\n clear(): void {\n this.clear$.next(null);\n this.doSearch.emit({});\n }\n\n getDefaultBooleanSelectionId(values: SearchFieldValues, searchFieldKey: string): 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 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 openDocumentDefinitionNameSubscription(): void {\n this.documentDefinitionNameSubscription = this.documentDefinitionName$.subscribe(() => {\n this.collapse();\n this.clear();\n });\n }\n\n private openValuesSubjectSubscription(): void {\n if (this.setValuesSubject$) {\n this.valuesSubjectSubscription = 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 private openDropdownSubscription(): void {\n this.dropdownSubscription = combineLatest([this.documentDefinitionName$, this.searchFields$])\n .pipe(\n map(([documentDefinitionName, searchFields]) =>\n searchFields\n ?.filter(searchField => searchField.dropdownDataProvider)\n .map(searchField =>\n this.documentService\n .getDropdownData(\n searchField.dropdownDataProvider,\n documentDefinitionName,\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 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 > 0\n ) {\n this.values$.next(this.defaultValues);\n this.search();\n this.expand();\n }\n }\n}\n","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF 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=\"search fields\">\n <ng-container *ngIf=\"loading\">\n <ng-container *ngTemplateOutlet=\"loadingTemplate\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"!loading\">\n <ng-container *ngTemplateOutlet=\"searchFieldsTemplate\"></ng-container>\n </ng-container>\n</div>\n\n<ng-template #loadingTemplate>\n <valtimo-spinner></valtimo-spinner>\n</ng-template>\n\n<ng-template #searchFieldsTemplate>\n <valtimo-widget>\n <div class=\"row\">\n <div class=\"col-12\">\n <ng-container *ngTemplateOutlet=\"buttonAccordion\"></ng-container>\n </div>\n </div>\n <div\n class=\"row p-3\"\n [ngClass]=\"{'row--hidden': (expanded$ | async) === false}\"\n *ngIf=\"searchFields$ | async as searchFields\"\n >\n <ng-container *ngFor=\"let searchField of searchFields; let i = index\">\n <div class=\"col-4\">\n <ng-container\n *ngTemplateOutlet=\"searchFieldTemplate; context: {searchField: searchField}\"\n ></ng-container>\n </div>\n <div class=\"w-100\" *ngIf=\"(i + 1) % 3 === 0\"></div>\n </ng-container>\n <div class=\"col-12\">\n <ng-container\n *ngTemplateOutlet=\"\n buttonsTemplate;\n context: {noSearchFields: !searchFields || searchFields.length === 0}\n \"\n ></ng-container>\n </div>\n </div>\n </valtimo-widget>\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 [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 >\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 [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 >\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 ></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 [fullWidth]=\"true\"\n [clear$]=\"clear$\"\n (keyup.enter)=\"search()\"\n [defaultValue]=\"values[searchField.key]?.start\"\n >\n </v-input>\n <ng-container *ngTemplateOutlet=\"toText\"></ng-container>\n <v-input\n name=\"end\"\n [fullWidth]=\"true\"\n [clear$]=\"clear$\"\n (keyup.enter)=\"search()\"\n [defaultValue]=\"values[searchField.key]?.end\"\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 [fullWidth]=\"true\"\n type=\"number\"\n [hideNumberSpinBox]=\"true\"\n [clear$]=\"clear$\"\n (keyup.enter)=\"search()\"\n [defaultValue]=\"values[searchField.key]?.start\"\n >\n </v-input>\n <ng-container *ngTemplateOutlet=\"toText\"></ng-container>\n <v-input\n name=\"end\"\n [fullWidth]=\"true\"\n type=\"number\"\n [hideNumberSpinBox]=\"true\"\n [clear$]=\"clear$\"\n (keyup.enter)=\"search()\"\n [defaultValue]=\"values[searchField.key]?.end\"\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 ></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 ></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 [widthInPx]=\"200\"\n [name]=\"searchField.key\"\n [clearSelectionSubject$]=\"clear$\"\n (selectedChange)=\"singleValueChange(searchField.key, $event)\"\n (keyup.enter)=\"search()\"\n [defaultSelectionId]=\"getDefaultBooleanSelectionId(values, searchField.key)\"\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 ></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 ></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 ></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=\"searchField.dataType === 'text' && searchField.fieldType === 'single-select-dropdown'\"\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 [widthInPx]=\"200\"\n [name]=\"searchField.key\"\n [clearSelectionSubject$]=\"clear$\"\n (selectedChange)=\"singleValueChange(searchField.key, $event)\"\n (keyup.enter)=\"search()\"\n [defaultSelectionId]=\"values[searchField.key]\"\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=\"searchField.dataType === 'text' && searchField.fieldType === 'multi-select-dropdown'\"\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 [widthInPx]=\"200\"\n [name]=\"searchField.key\"\n [clearSelectionSubject$]=\"clear$\"\n (selectedChange)=\"multipleValueChange(searchField.key, $event)\"\n (keyup.enter)=\"search()\"\n [defaultSelectionIds]=\"values[searchField.key]\"\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 <div class=\"buttons-container\" *ngIf=\"{expanded: expanded$ | async} as obs\">\n <div class=\"right-buttons\">\n <button\n (click)=\"clear()\"\n [disabled]=\"loading || noSearchFields\"\n type=\"button\"\n id=\"clear\"\n class=\"btn btn-space btn-secondary\"\n *ngIf=\"obs.expanded\"\n >\n {{ 'searchFields.clearButtonText' | translate }}\n </button>\n <button\n (click)=\"search()\"\n [disabled]=\"loading || noSearchFields || (hasValidValues$ | async) === false\"\n type=\"button\"\n id=\"search\"\n class=\"btn btn-space btn-primary\"\n *ngIf=\"obs.expanded\"\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=\"w-100 mb-3\" *ngIf=\"noSearchFields\">\n <v-paragraph [fullWidth]=\"true\" [center]=\"true\">{{\n 'searchFields.noneConfigured' | translate\n }}</v-paragraph>\n </div>\n</ng-template>\n\n<ng-template #buttonAccordion>\n <div class=\"buttons-container\" *ngIf=\"{expanded: expanded$ | async} as obs\">\n <button\n [disabled]=\"loading\"\n type=\"button\"\n class=\"accordion-button\"\n (click)=\"toggleExpanded()\"\n [ngClass]=\"\n obs.expanded ? 'mdi mdi-chevron-right accordion-button--active' : 'mdi mdi-chevron-down'\n \"\n >\n {{ 'searchFields.searchButtonText' | translate }}\n </button>\n </div>\n</ng-template>\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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 {\n ButtonModule,\n DatePickerModule,\n FormModule,\n InputLabelModule,\n InputModule,\n ParagraphModule,\n SelectModule,\n} from '@valtimo/user-interface';\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 ],\n exports: [SearchFieldsComponent],\n})\nexport class SearchFieldsModule {}\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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 ListItemWithId,\n MultiInputKeyValue,\n MultiInputOutput,\n MultiInputType,\n MultiInputValues,\n} from '../../models';\nimport {BehaviorSubject, combineLatest, Observable, Subscription} from 'rxjs';\nimport {map, take} from 'rxjs/operators';\nimport {v4 as uuidv4} from 'uuid';\n\n@Component({\n selector: 'valtimo-carbon-multi-input',\n templateUrl: './carbon-multi-input.component.html',\n styleUrls: ['./carbon-multi-input.component.scss'],\n})\nexport class CarbonMultiInputComponent implements OnInit, OnDestroy {\n @Input() public name = '';\n @Input() public title = '';\n @Input() public titleTranslationKey = '';\n @Input() public type: MultiInputType = 'value';\n @Input() public initialAmountOfRows = 1;\n @Input() public minimumAmountOfRows = 1;\n @Input() public maxRows = null;\n @Input() public addRowText = '';\n @Input() public addRowTranslationKey = '';\n @Input() public deleteRowText = '';\n @Input() public deleteRowTranslationKey = '';\n @Input() public disabled = false;\n @Input() public defaultValues!: MultiInputValues;\n @Input() public margin = false;\n @Input() public tooltip = '';\n @Input() public required = false;\n @Input() public keyColumnTitle = '';\n @Input() public valueColumnTitle = '';\n @Input() public dropdownColumnTitle = '';\n @Input() public hideDeleteButton = false;\n @Input() public hideAddButton = false;\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\n @Output() public valueChange: EventEmitter<MultiInputOutput> = new EventEmitter();\n @Output() public allValuesValidEvent: EventEmitter<boolean> = new EventEmitter();\n\n public readonly values$ = new BehaviorSubject<MultiInputValues>([]);\n public readonly mappedValues$: Observable<MultiInputOutput> = this.values$.pipe(\n map(\n values =>\n values\n .map(value => this.getMappedValue(value))\n .filter(value => {\n switch (this.type) {\n case 'value':\n return value;\n case 'keyValue':\n return (value as MultiInputKeyValue).value && (value as MultiInputKeyValue).key;\n case 'keyDropdownValue':\n return (\n (value as MultiInputKeyValue).value &&\n (value as MultiInputKeyValue).key &&\n (value as MultiInputKeyValue).dropdown\n );\n }\n }) as MultiInputOutput\n )\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 _valuesSubscription!: Subscription;\n\n public ngOnInit(): void {\n this.values$.next(this.getInitialRows());\n this.openValuesSubscription();\n }\n\n public ngOnDestroy(): void {\n this._valuesSubscription?.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(index: 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: 'key' | 'value' | 'dropdown'\n ): void {\n this.values$.pipe(take(1)).subscribe(values => {\n this.values$.next(\n 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 }\n }\n return stateValue;\n })\n );\n });\n }\n\n private getInitialRows(): MultiInputValues {\n const minimumRows = this.minimumAmountOfRows;\n const initialRows = this.initialAmountOfRows;\n const amountOfInitalRows = Math.max(minimumRows, initialRows);\n\n if (!this.defaultValues) {\n return new Array(amountOfInitalRows).fill(this.getEmptyValue());\n }\n\n return this.defaultValues.map(defaultValue => ({...defaultValue, uuid: uuidv4()}));\n }\n\n private getEmptyValue(): MultiInputKeyValue {\n return {\n key: '',\n value: '',\n uuid: uuidv4(),\n dropdown: '',\n };\n }\n\n private getMappedValue(valueToMap: MultiInputKeyValue): MultiInputKeyValue | string {\n if (this.type === 'keyValue') {\n return {key: valueToMap.key, value: valueToMap.value};\n } else if (this.type === 'keyDropdownValue') {\n return {key: valueToMap.key, value: valueToMap.value, dropdown: valueToMap.dropdown};\n }\n\n return valueToMap.value;\n }\n\n private openValuesSubscription(): void {\n this._valuesSubscription = combineLatest([this.values$, this.mappedValues$]).subscribe(\n ([values, mappedValues]) => {\n this.valueChange.emit(mappedValues);\n this.allValuesValidEvent.emit(values.length === mappedValues.length);\n }\n );\n }\n}\n","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF 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}\"\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 <ng-container *ngIf=\"type === 'value'\">\n <ng-container *ngTemplateOutlet=\"singleValue; context: {value: value}\"></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"type === 'keyValue'\">\n <ng-container\n *ngTemplateOutlet=\"keyValue; context: {value: value, index: i}\"\n ></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"type === 'keyDropdownValue'\">\n <ng-container\n *ngTemplateOutlet=\"keyDropdownValue; context: {value: value, index: i}\"\n ></ng-container>\n </ng-container>\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 class=\"cds--btn__icon\" 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=\"primary\"\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<ng-template #singleValue let-value=\"value\">\n <div class=\"v-multi-input__input\">\n <input\n cdsText\n [defaultValue]=\"value.value\"\n [disabled]=\"disabled\"\n (change)=\"onValueChange(value, $event, 'value')\"\n />\n </div>\n</ng-template>\n\n<ng-template #keyValue let-value=\"value\" let-index=\"index\">\n <div class=\"v-multi-input__input\">\n <cds-label *ngIf=\"index === 0 && keyColumnTitle && valueColumnTitle\">{{\n keyColumnTitle\n }}</cds-label>\n\n <input\n cdsText\n [defaultValue]=\"value.key\"\n [disabled]=\"disabled\"\n (input)=\"onValueChange(value, $event.target.value, 'key')\"\n />\n </div>\n <div class=\"v-multi-input__input\">\n <cds-label *ngIf=\"index === 0 && keyColumnTitle && valueColumnTitle\">{{\n valueColumnTitle\n }}</cds-label>\n <input\n cdsText\n [defaultValue]=\"value.value\"\n [disabled]=\"disabled\"\n (input)=\"onValueChange(value, $event.target.value, 'value')\"\n />\n </div>\n</ng-template>\n\n<ng-template #keyDropdownValue let-value=\"value\" let-index=\"index\">\n <div [ngClass]=\"{'--full-width': fullWidth}\" class=\"v-multi-input__input\">\n <cds-label *ngIf=\"index === 0 && keyColumnTitle\">{{ keyColumnTitle }}</cds-label>\n\n <input\n cdsText\n [defaultValue]=\"value.key\"\n [disabled]=\"disabled\"\n (input)=\"onValueChange(value, $event.target.value, 'key')\"\n />\n </div>\n\n <div [style.minWidth.px]=\"dropdownWidth\" class=\"v-multi-input__input\">\n <cds-label *ngIf=\"index === 0 && dropdownColumnTitle\">{{ dropdownColumnTitle }}</cds-label>\n\n <cds-dropdown (selected)=\"onValueChange(value, $event.item.id, 'dropdown')\">\n <cds-dropdown-list\n [items]=\"getDropdownItemsForRow(index) | async\"\n type=\"multi\"\n ></cds-dropdown-list>\n </cds-dropdown>\n </div>\n\n <div [ngClass]=\"{'--full-width': fullWidth}\" class=\"v-multi-input__input\">\n <cds-label *ngIf=\"index === 0 && valueColumnTitle\">{{ valueColumnTitle }}</cds-label>\n\n <input\n cdsText\n [defaultValue]=\"value.value\"\n [disabled]=\"disabled\"\n (input)=\"onValueChange(value, $event.target.value, 'value')\"\n />\n </div>\n</ng-template>\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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 {ButtonModule, InputLabelModule, InputModule} from '@valtimo/user-interface';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {\n ButtonModule as CarbonButtonModule,\n DropdownModule,\n IconModule,\n InputModule as CarbonInputModule,\n} from 'carbon-components-angular';\n\n@NgModule({\n declarations: [CarbonMultiInputComponent],\n imports: [\n CommonModule,\n InputLabelModule,\n InputModule,\n ButtonModule,\n TranslateModule,\n CarbonButtonModule,\n IconModule,\n CarbonInputModule,\n DropdownModule,\n ],\n exports: [CarbonMultiInputComponent],\n})\nexport class CarbonMultiInputModule {}\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS 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})\nexport class ConfirmationModalComponent implements OnInit, OnDestroy {\n @Input() titleTranslationKey = '';\n @Input() title = '';\n @Input() content = '';\n @Input() contentTranslationKey = '';\n @Input() confirmButtonText = '';\n @Input() confirmButtonTextTranslationKey = '';\n @Input() confirmButtonType = ModalButtonType.primary;\n @Input() cancelButtonText = '';\n @Input() cancelButtonTextTranslationKey = '';\n @Input() cancelButtonType = ModalButtonType.secondary;\n @Input() showModalSubject$: Observable<boolean>;\n @Input() outputOnConfirm: any = {};\n\n @Output() confirmEvent: EventEmitter<any> = new EventEmitter();\n\n readonly modalOpen$ = new BehaviorSubject<boolean>(false);\n\n private showModalSubscription!: Subscription;\n\n closeModal(): void {\n this.modalOpen$.next(false);\n }\n\n confirm(): void {\n this.modalOpen$.next(false);\n this.confirmEvent.emit(this.outputOnConfirm);\n }\n\n ngOnInit(): void {\n if (this.showModalSubject$) {\n this.showModalSubscription = this.showModalSubject$.subscribe(showModal => {\n this.modalOpen$.next(showModal);\n });\n }\n }\n\n ngOnDestroy(): void {\n this.showModalSubscription?.unsubscribe();\n }\n}\n","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF 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 } as obs\"\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 <section cdsModalContent>\n {{\n (contentTranslationKey !== obs.contentTranslation ? obs.contentTranslation : '') ||\n content ||\n obs.deleteConfirmationTranslation\n }}\n </section>\n <cds-modal-footer>\n <ng-container>\n <button\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 <button [attr.modal-primary-focus]=\"true\" [cdsButton]=\"confirmButtonType\" (click)=\"confirm()\">\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-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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 {ValtimoCdsModalDirectiveModule} from '../../directives';\n\n@NgModule({\n declarations: [ConfirmationModalComponent],\n imports: [\n CommonModule,\n ModalModule,\n TranslateModule,\n ButtonModule,\n ValtimoCdsModalDirectiveModule,\n ],\n exports: [ConfirmationModalComponent],\n})\nexport class ConfirmationModalModule {}\n","/*\n * Copyright 2015-2020 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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})\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","<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-2022 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS 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-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF 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/directives';\nexport * from './lib/services/valtimo-modal.service';\nexport * from './lib/services/shell.service';\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/menu.service';\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-table/no-results/carbon-no-results.component';\nexport * from './lib/components/carbon-table/carbon-table.component';\nexport * from './lib/components/carbon-table/carbon-table.module';\n\nexport * from './lib/components/list/list.component';\nexport * from './lib/components/list/ListFilterPipe.directive';\nexport * from './lib/components/list/list.module';\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/components/page-title/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/card/card.component';\nexport * from './lib/components/card/card.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/components.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/form-io.component';\nexport * from './lib/components/form-io/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/form-io-uploader/form-io-uploader.component';\nexport * from './lib/components/form-io/form-io-uploader/form-io-uploader.formio';\n\nexport * from './lib/components/form-io/documenten-api-uploader/documenten-api-uploader.component';\nexport * from './lib/components/form-io/documenten-api-uploader/documenten-api-uploader.formio';\n\nexport * from './lib/components/form-io/form-io-current-user/form-io-current-user.component';\nexport * from './lib/components/form-io/form-io-current-user/form-io-current-user.formio';\n\nexport * from './lib/components/form-io/form-io-resource-selector/form-io-resource-selector.formio';\n\nexport * from './lib/components/form-io/services/form-io-state.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/documenten-api-metadata-modal/documenten-api-metadata-modal.module';\nexport * from './lib/components/documenten-api-metadata-modal/documenten-api-metadata-modal.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/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","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1","i1.PageTitleService","take","i2","i3.CamundaFormfieldValidationComponent","i1.CamundaFormfieldService","i3","i4.CamundaFormfieldValidationComponent","i2.CamundaFormfieldService","i4.CamundaFormfieldGeneratorDirective","i2.CamundaGeneratedFormComponent","i3.CamundaCustomFormComponent","i4.ShellService","i6","i7","i8","map","i5","i4.MenuItemTranslationPipe","i4.VersionService","i8.ShellService","i9","i10","i11","i3.MenuService","i8.MenuItemTextComponent","i10.CtrlClickDirective","i11.MenuItemTranslationPipe","i12.CaseCountPipe","i6.PageTitleService","_get","i1.ViewContentService","i4","i7.ListFilterPipe","i1.BreadcrumbService","i3.PageTitleComponent","i4.BreadcrumbNavigationComponent","i3.UploaderDragDropDirective","i4.FileSizePipe","i1.AlertService","switchMap","i3.FormIoStateService","i6.ValtimoModalService","i2.FormIoStateService","i1.FormIoStateService","i3.ProgressBarComponent","i4.WebcamComponent","i5.FileSizePipe","i3.FormIoDomService","i5.DropzoneComponent","i6.FileSizePipe","filter","i4.ValtimoModalService","i8.DropzoneComponent","i10.DocumentenApiMetadataModalComponent","i11.FileSizePipe","ModalModule","ButtonModule","SelectModule","i1.ValtimoModalService","COMPONENT_OPTIONS","i2.SearchableDropdownComponent","i4.SpinnerComponent","i5.WidgetComponent","uuidv4","CarbonButtonModule","CarbonInputModule","i3.ValtimoCdsModalDirective"],"mappings":"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"}