@valtimo/components 10.8.0 → 11.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (536) hide show
  1. package/assets/css/carbon-beagle-compatibility.scss +1 -1
  2. package/assets/css/carbon.scss +42 -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/esm2022/lib/components/form-io/form-io.component.mjs +169 -0
  64. package/esm2022/lib/components/form-io/form-io.module.mjs +109 -0
  65. package/esm2022/lib/components/form-io/formio-config.mjs +27 -0
  66. package/{esm2020 → esm2022}/lib/components/form-io/services/form-io-dom.service.mjs +4 -4
  67. package/{esm2020 → esm2022}/lib/components/form-io/services/form-io-state.service.mjs +4 -4
  68. package/esm2022/lib/components/input/input.component.mjs +168 -0
  69. package/esm2022/lib/components/input/input.module.mjs +59 -0
  70. package/esm2022/lib/components/input-label/input-label.component.mjs +81 -0
  71. package/esm2022/lib/components/input-label/input-label.module.mjs +55 -0
  72. package/esm2022/lib/components/left-sidebar/left-sidebar.component.mjs +148 -0
  73. package/{esm2020 → esm2022}/lib/components/left-sidebar/left-sidebar.module.mjs +18 -18
  74. package/{esm2020 → esm2022}/lib/components/list/ListFilterPipe.directive.mjs +4 -4
  75. package/esm2022/lib/components/list/list.component.mjs +202 -0
  76. package/{esm2020 → esm2022}/lib/components/list/list.module.mjs +5 -5
  77. package/{esm2020 → esm2022}/lib/components/menu/menu-item-text.component.mjs +5 -5
  78. package/{esm2020 → esm2022}/lib/components/menu/menu-routing.module.mjs +5 -5
  79. package/{esm2020 → esm2022}/lib/components/menu/menu.module.mjs +17 -17
  80. package/esm2022/lib/components/menu/menu.service.mjs +258 -0
  81. package/{esm2020 → esm2022}/lib/components/modal/modal.component.mjs +4 -4
  82. package/{esm2020 → esm2022}/lib/components/modal/modal.module.mjs +5 -5
  83. package/esm2022/lib/components/multi-input/carbon-multi-input.component.mjs +217 -0
  84. package/esm2022/lib/components/multi-input/carbon-multi-input.module.mjs +64 -0
  85. package/esm2022/lib/components/multi-input-form/multi-input-form.component.mjs +190 -0
  86. package/esm2022/lib/components/multi-input-form/multi-input-form.module.mjs +55 -0
  87. package/{esm2020 → esm2022}/lib/components/multiselect-dropdown/multiselect-dropdown.component.mjs +4 -4
  88. package/{esm2020 → esm2022}/lib/components/multiselect-dropdown/multiselect-dropdown.module.mjs +5 -5
  89. package/esm2022/lib/components/page/page-container/page-container.component.mjs +29 -0
  90. package/esm2022/lib/components/page/page-content/page-content.component.mjs +29 -0
  91. package/esm2022/lib/components/page/page-header/page-header.component.mjs +29 -0
  92. package/esm2022/lib/components/page/page-header-actions/page-header-actions.component.mjs +29 -0
  93. package/esm2022/lib/components/page/page-header-introduction/page-header-introduction.component.mjs +29 -0
  94. package/esm2022/lib/components/page/page.module.mjs +60 -0
  95. package/{esm2020 → esm2022}/lib/components/page-header/page-header.component.mjs +5 -5
  96. package/{esm2020 → esm2022}/lib/components/page-header/page-header.module.mjs +5 -5
  97. package/esm2022/lib/components/page-title/page-title.component.mjs +105 -0
  98. package/{esm2020 → esm2022}/lib/components/page-title/page-title.module.mjs +5 -5
  99. package/esm2022/lib/components/page-title/page-title.service.mjs +107 -0
  100. package/esm2022/lib/components/paragraph/paragraph.component.mjs +48 -0
  101. package/esm2022/lib/components/paragraph/paragraph.module.mjs +37 -0
  102. package/esm2022/lib/components/pending-changes/pending-changes.component.mjs +49 -0
  103. package/{esm2020 → esm2022}/lib/components/progress-bar/progress-bar.component.mjs +4 -4
  104. package/{esm2020 → esm2022}/lib/components/progress-bar/progress-bar.module.mjs +5 -5
  105. package/esm2022/lib/components/prompt/prompt.component.mjs +74 -0
  106. package/esm2022/lib/components/prompt/prompt.module.mjs +39 -0
  107. package/esm2022/lib/components/radio/radio.component.mjs +116 -0
  108. package/esm2022/lib/components/radio/radio.module.mjs +55 -0
  109. package/esm2022/lib/components/right-sidebar/right-sidebar.component.mjs +203 -0
  110. package/esm2022/lib/components/right-sidebar/right-sidebar.module.mjs +95 -0
  111. package/esm2022/lib/components/search-fields/search-fields.component.mjs +221 -0
  112. package/esm2022/lib/components/search-fields/search-fields.module.mjs +75 -0
  113. package/{esm2020 → esm2022}/lib/components/searchable-dropdown/searchable-dropdown.component.mjs +4 -4
  114. package/{esm2020 → esm2022}/lib/components/searchable-dropdown/searchable-dropdown.module.mjs +5 -5
  115. package/{esm2020 → esm2022}/lib/components/searchable-dropdown-select/searchable-dropdown-select.component.mjs +4 -4
  116. package/{esm2020 → esm2022}/lib/components/searchable-dropdown-select/searchable-dropdown-select.module.mjs +5 -5
  117. package/esm2022/lib/components/select/select.component.mjs +194 -0
  118. package/esm2022/lib/components/select/select.module.mjs +37 -0
  119. package/{esm2020 → esm2022}/lib/components/spinner/spinner.component.mjs +4 -4
  120. package/{esm2020 → esm2022}/lib/components/spinner/spinner.module.mjs +5 -5
  121. package/esm2022/lib/components/stepper/stepper-container/stepper-container.component.mjs +91 -0
  122. package/esm2022/lib/components/stepper/stepper-content/stepper-content.component.mjs +52 -0
  123. package/esm2022/lib/components/stepper/stepper-footer/stepper-footer.component.mjs +43 -0
  124. package/esm2022/lib/components/stepper/stepper-footer-step/stepper-footer-step.component.mjs +71 -0
  125. package/esm2022/lib/components/stepper/stepper-header/stepper-header.component.mjs +37 -0
  126. package/esm2022/lib/components/stepper/stepper-step/stepper-step.component.mjs +39 -0
  127. package/esm2022/lib/components/stepper/stepper.module.mjs +67 -0
  128. package/esm2022/lib/components/table/table.component.mjs +172 -0
  129. package/esm2022/lib/components/table/table.module.mjs +58 -0
  130. package/esm2022/lib/components/timeline/timeline.component.mjs +42 -0
  131. package/{esm2020 → esm2022}/lib/components/timeline/timeline.module.mjs +5 -5
  132. package/esm2022/lib/components/title/title.component.mjs +57 -0
  133. package/esm2022/lib/components/title/title.module.mjs +36 -0
  134. package/esm2022/lib/components/tooltip-icon/tooltip-icon.component.mjs +39 -0
  135. package/esm2022/lib/components/tooltip-icon/tooltip-icon.module.mjs +39 -0
  136. package/{esm2020 → esm2022}/lib/components/topbar/topbar.component.mjs +5 -5
  137. package/{esm2020 → esm2022}/lib/components/topbar/topbar.module.mjs +6 -6
  138. package/{esm2020 → esm2022}/lib/components/uploader/uploader-drag-drop.directive.mjs +4 -4
  139. package/{esm2020 → esm2022}/lib/components/uploader/uploader.component.mjs +4 -4
  140. package/{esm2020 → esm2022}/lib/components/uploader/uploader.module.mjs +5 -5
  141. package/esm2022/lib/components/v-card/card.component.mjs +80 -0
  142. package/esm2022/lib/components/v-card/card.module.mjs +38 -0
  143. package/esm2022/lib/components/v-modal/modal.component.mjs +71 -0
  144. package/esm2022/lib/components/v-modal/modal.module.mjs +37 -0
  145. package/{esm2020 → esm2022}/lib/components/version/version.service.mjs +4 -4
  146. package/{esm2020 → esm2022}/lib/components/view-content/view-content.service.mjs +4 -4
  147. package/{esm2020 → esm2022}/lib/components/webcam/webcam.component.mjs +4 -4
  148. package/{esm2020 → esm2022}/lib/components/webcam/webcam.module.mjs +5 -5
  149. package/{esm2020 → esm2022}/lib/components/widget/widget.component.mjs +4 -4
  150. package/{esm2020 → esm2022}/lib/components/widget/widget.module.mjs +5 -5
  151. package/esm2022/lib/directives/command-click/command-click-directive.module.mjs +33 -0
  152. package/esm2022/lib/directives/command-click/command-click.directive.mjs +52 -0
  153. package/esm2022/lib/directives/digit-only/digit-only.directive.mjs +283 -0
  154. package/esm2022/lib/directives/render-in-page-header/render-in-page-header-directive.module.mjs +33 -0
  155. package/esm2022/lib/directives/render-in-page-header/render-in-page-header.directive.mjs +43 -0
  156. package/esm2022/lib/directives/tooltip/tooltip.component.mjs +42 -0
  157. package/esm2022/lib/directives/tooltip/tooltip.directive.mjs +74 -0
  158. package/esm2022/lib/directives/tooltip/tooltip.module.mjs +35 -0
  159. package/esm2022/lib/directives/valtimo-cds-modal/valtimo-cds-modal-directive.module.mjs +33 -0
  160. package/esm2022/lib/directives/valtimo-cds-modal/valtimo-cds-modal.directive.mjs +68 -0
  161. package/{esm2020/lib/models/pagination.model.mjs → esm2022/lib/guards/index.mjs} +2 -2
  162. package/esm2022/lib/guards/pending-changes.guard.mjs +2 -0
  163. package/esm2022/lib/models/button.model.mjs +17 -0
  164. package/esm2022/lib/models/carbon-list.model.mjs +21 -0
  165. package/esm2022/lib/models/carbon-pagination.model.mjs +21 -0
  166. package/esm2022/lib/models/editor.model.mjs +17 -0
  167. package/{esm2020/lib/models/list.model.mjs → esm2022/lib/models/form.model.mjs} +1 -1
  168. package/esm2022/lib/models/index.mjs +39 -0
  169. package/esm2022/lib/models/input.model.mjs +17 -0
  170. package/esm2022/lib/models/modal.model.mjs +17 -0
  171. package/{esm2020 → esm2022}/lib/models/multi-input.model.mjs +1 -1
  172. package/esm2022/lib/models/pagination.model.mjs +24 -0
  173. package/esm2022/lib/models/radio.model.mjs +17 -0
  174. package/esm2022/lib/models/select.model.mjs +17 -0
  175. package/esm2022/lib/models/sort.model.mjs +17 -0
  176. package/{esm2020/lib/components/form-io/formio-config.mjs → esm2022/lib/models/stepper.model.mjs} +2 -7
  177. package/esm2022/lib/models/table.model.mjs +17 -0
  178. package/esm2022/lib/models/timeline.model.mjs +52 -0
  179. package/esm2022/lib/models/title.model.mjs +17 -0
  180. package/{esm2020 → esm2022}/lib/pipes/case-count.pipe.mjs +4 -4
  181. package/{esm2020 → esm2022}/lib/pipes/components-pipes.module.mjs +5 -5
  182. package/esm2022/lib/pipes/index.mjs +20 -0
  183. package/esm2022/lib/pipes/is-array.pipe.mjs +29 -0
  184. package/{esm2020 → esm2022}/lib/pipes/menu-item-translation.pipe.mjs +4 -4
  185. package/esm2022/lib/services/index.mjs +7 -0
  186. package/esm2022/lib/services/modal.service.mjs +128 -0
  187. package/esm2022/lib/services/prompt.service.mjs +205 -0
  188. package/esm2022/lib/services/shell.service.mjs +213 -0
  189. package/esm2022/lib/services/stepper.service.mjs +108 -0
  190. package/esm2022/lib/services/user-interface.service.mjs +47 -0
  191. package/{esm2020 → esm2022}/lib/services/valtimo-modal.service.mjs +4 -4
  192. package/esm2022/public_api.mjs +197 -0
  193. package/fesm2022/valtimo-components.mjs +12473 -0
  194. package/fesm2022/valtimo-components.mjs.map +1 -0
  195. package/lib/components/alert/alert.component.d.ts +1 -1
  196. package/lib/components/bpmn-js-diagram/bpmn-js-diagram.component.d.ts +1 -1
  197. package/lib/components/breadcrumb-navigation/breadcrumb-navigation.component.d.ts +1 -1
  198. package/lib/components/breadcrumb-navigation/breadcrumb.service.d.ts.map +1 -1
  199. package/lib/components/button/button.component.d.ts +30 -0
  200. package/lib/components/button/button.component.d.ts.map +1 -0
  201. package/lib/components/button/button.module.d.ts +13 -0
  202. package/lib/components/button/button.module.d.ts.map +1 -0
  203. package/lib/components/camunda/form/camunda-form.components.d.ts +1 -1
  204. package/lib/components/camunda/form/custom/camunda-custom-form.component.d.ts +1 -1
  205. package/lib/components/camunda/form/generated/camunda-generated-form.component.d.ts +1 -1
  206. package/lib/components/camunda/form/generated/formfield/boolean/camunda-boolean-formfield.component.d.ts +1 -1
  207. package/lib/components/camunda/form/generated/formfield/camunda-formfield-generator.directive.d.ts +1 -1
  208. package/lib/components/camunda/form/generated/formfield/choicefield/camunda-choicefield-formfield.component.d.ts +1 -1
  209. package/lib/components/camunda/form/generated/formfield/date/camunda-date-formfield.component.d.ts +1 -1
  210. package/lib/components/camunda/form/generated/formfield/enum/camunda-enum-formfield.component.d.ts +1 -1
  211. package/lib/components/camunda/form/generated/formfield/long/camunda-long-formfield.component.d.ts +1 -1
  212. package/lib/components/camunda/form/generated/formfield/string/camunda-string-formfield.component.d.ts +1 -1
  213. package/lib/components/camunda/form/generated/formfield/textarea/camunda-textarea-formfield.component.d.ts +1 -1
  214. package/lib/components/camunda/form/generated/formfield/validation/camunda-formfield-validation.component.d.ts +1 -1
  215. package/lib/components/carbon-list/CarbonListFilterPipe.directive.d.ts +9 -0
  216. package/lib/components/carbon-list/CarbonListFilterPipe.directive.d.ts.map +1 -0
  217. package/lib/components/carbon-list/carbon-list.component.d.ts +86 -0
  218. package/lib/components/carbon-list/carbon-list.component.d.ts.map +1 -0
  219. package/lib/components/carbon-list/carbon-list.module.d.ts +16 -0
  220. package/lib/components/carbon-list/carbon-list.module.d.ts.map +1 -0
  221. package/lib/components/{carbon-table → carbon-list}/no-results/carbon-no-results.component.d.ts +1 -1
  222. package/lib/components/{carbon-table → carbon-list}/no-results/carbon-no-results.component.d.ts.map +1 -1
  223. package/lib/components/card/card.component.d.ts +1 -1
  224. package/lib/components/confirmation-modal/confirmation-modal.component.d.ts +2 -1
  225. package/lib/components/confirmation-modal/confirmation-modal.component.d.ts.map +1 -1
  226. package/lib/components/confirmation-modal/confirmation-modal.module.d.ts +1 -1
  227. package/lib/components/data-list/data-list.component.d.ts +1 -1
  228. package/lib/components/date-picker/date-picker.component.d.ts +44 -0
  229. package/lib/components/date-picker/date-picker.component.d.ts.map +1 -0
  230. package/lib/components/date-picker/date-picker.module.d.ts +16 -0
  231. package/lib/components/date-picker/date-picker.module.d.ts.map +1 -0
  232. package/lib/components/documenten-api-metadata-modal/documenten-api-metadata-modal.component.d.ts +5 -3
  233. package/lib/components/documenten-api-metadata-modal/documenten-api-metadata-modal.component.d.ts.map +1 -1
  234. package/lib/components/documenten-api-metadata-modal/documenten-api-metadata-modal.module.d.ts +9 -2
  235. package/lib/components/documenten-api-metadata-modal/documenten-api-metadata-modal.module.d.ts.map +1 -1
  236. package/lib/components/dropzone/dropzone.component.d.ts +6 -3
  237. package/lib/components/dropzone/dropzone.component.d.ts.map +1 -1
  238. package/lib/components/editor/editor.component.d.ts +38 -0
  239. package/lib/components/editor/editor.component.d.ts.map +1 -0
  240. package/lib/components/editor/editor.module.d.ts +9 -0
  241. package/lib/components/editor/editor.module.d.ts.map +1 -0
  242. package/lib/components/editor/editor.service.d.ts +12 -0
  243. package/lib/components/editor/editor.service.d.ts.map +1 -0
  244. package/lib/components/expansion-panel/expansion-panel.component.d.ts +1 -1
  245. package/lib/components/field-auto-focus/field-auto-focus.directive.d.ts +1 -1
  246. package/lib/components/filter-sidebar/filter-sidebar.component.d.ts +1 -1
  247. package/lib/components/form/form.component.d.ts +31 -0
  248. package/lib/components/form/form.component.d.ts.map +1 -0
  249. package/lib/components/form/form.module.d.ts +9 -0
  250. package/lib/components/form/form.module.d.ts.map +1 -0
  251. package/lib/components/form-io/documenten-api-uploader/documenten-api-uploader.component.d.ts +1 -1
  252. package/lib/components/form-io/form-io-builder.component.d.ts +1 -1
  253. package/lib/components/form-io/form-io-current-user/form-io-current-user.component.d.ts +1 -1
  254. package/lib/components/form-io/form-io-uploader/form-io-uploader.component.d.ts +1 -1
  255. package/lib/components/form-io/form-io.component.d.ts +13 -15
  256. package/lib/components/form-io/form-io.component.d.ts.map +1 -1
  257. package/lib/components/form-io/form-io.module.d.ts.map +1 -1
  258. package/lib/components/form-io/formio-config.d.ts +3 -1
  259. package/lib/components/form-io/formio-config.d.ts.map +1 -1
  260. package/lib/components/input/input.component.d.ts +52 -0
  261. package/lib/components/input/input.component.d.ts.map +1 -0
  262. package/lib/components/input/input.module.d.ts +15 -0
  263. package/lib/components/input/input.module.d.ts.map +1 -0
  264. package/lib/components/input-label/input-label.component.d.ts +23 -0
  265. package/lib/components/input-label/input-label.component.d.ts.map +1 -0
  266. package/lib/components/input-label/input-label.module.d.ts +14 -0
  267. package/lib/components/input-label/input-label.module.d.ts.map +1 -0
  268. package/lib/components/left-sidebar/left-sidebar.component.d.ts +1 -1
  269. package/lib/components/left-sidebar/left-sidebar.module.d.ts +1 -1
  270. package/lib/components/list/list.component.d.ts +4 -1
  271. package/lib/components/list/list.component.d.ts.map +1 -1
  272. package/lib/components/menu/menu-item-text.component.d.ts +1 -1
  273. package/lib/components/menu/menu.service.d.ts.map +1 -1
  274. package/lib/components/modal/modal.component.d.ts +1 -1
  275. package/lib/components/multi-input/carbon-multi-input.component.d.ts +1 -1
  276. package/lib/components/multi-input/carbon-multi-input.module.d.ts +6 -4
  277. package/lib/components/multi-input/carbon-multi-input.module.d.ts.map +1 -1
  278. package/lib/components/multi-input-form/multi-input-form.component.d.ts +45 -0
  279. package/lib/components/multi-input-form/multi-input-form.component.d.ts.map +1 -0
  280. package/lib/components/multi-input-form/multi-input-form.module.d.ts +14 -0
  281. package/lib/components/multi-input-form/multi-input-form.module.d.ts.map +1 -0
  282. package/lib/components/multiselect-dropdown/multiselect-dropdown.component.d.ts +1 -1
  283. package/lib/components/page/page-container/page-container.component.d.ts +9 -0
  284. package/lib/components/page/page-container/page-container.component.d.ts.map +1 -0
  285. package/lib/components/page/page-content/page-content.component.d.ts +9 -0
  286. package/lib/components/page/page-content/page-content.component.d.ts.map +1 -0
  287. package/lib/components/page/page-header/page-header.component.d.ts +9 -0
  288. package/lib/components/page/page-header/page-header.component.d.ts.map +1 -0
  289. package/lib/components/page/page-header-actions/page-header-actions.component.d.ts +9 -0
  290. package/lib/components/page/page-header-actions/page-header-actions.component.d.ts.map +1 -0
  291. package/lib/components/page/page-header-introduction/page-header-introduction.component.d.ts +9 -0
  292. package/lib/components/page/page-header-introduction/page-header-introduction.component.d.ts.map +1 -0
  293. package/lib/components/page/page.module.d.ts +16 -0
  294. package/lib/components/page/page.module.d.ts.map +1 -0
  295. package/lib/components/page-header/page-header.component.d.ts +2 -2
  296. package/lib/components/page-header/page-header.component.d.ts.map +1 -1
  297. package/lib/components/page-title/page-title.component.d.ts +4 -4
  298. package/lib/components/page-title/page-title.component.d.ts.map +1 -1
  299. package/lib/components/page-title/page-title.service.d.ts.map +1 -1
  300. package/lib/components/paragraph/paragraph.component.d.ts +14 -0
  301. package/lib/components/paragraph/paragraph.component.d.ts.map +1 -0
  302. package/lib/components/paragraph/paragraph.module.d.ts +13 -0
  303. package/lib/components/paragraph/paragraph.module.d.ts.map +1 -0
  304. package/lib/components/pending-changes/pending-changes.component.d.ts +15 -0
  305. package/lib/components/pending-changes/pending-changes.component.d.ts.map +1 -0
  306. package/lib/components/progress-bar/progress-bar.component.d.ts +1 -1
  307. package/lib/components/prompt/prompt.component.d.ts +35 -0
  308. package/lib/components/prompt/prompt.component.d.ts.map +1 -0
  309. package/lib/components/prompt/prompt.module.d.ts +15 -0
  310. package/lib/components/prompt/prompt.module.d.ts.map +1 -0
  311. package/lib/components/radio/radio.component.d.ts +36 -0
  312. package/lib/components/radio/radio.component.d.ts.map +1 -0
  313. package/lib/components/radio/radio.module.d.ts +14 -0
  314. package/lib/components/radio/radio.module.d.ts.map +1 -0
  315. package/lib/components/right-sidebar/right-sidebar.component.d.ts +2 -7
  316. package/lib/components/right-sidebar/right-sidebar.component.d.ts.map +1 -1
  317. package/lib/components/search-fields/search-fields.component.d.ts +3 -2
  318. package/lib/components/search-fields/search-fields.component.d.ts.map +1 -1
  319. package/lib/components/search-fields/search-fields.module.d.ts +8 -2
  320. package/lib/components/search-fields/search-fields.module.d.ts.map +1 -1
  321. package/lib/components/searchable-dropdown/searchable-dropdown.component.d.ts +1 -1
  322. package/lib/components/searchable-dropdown-select/searchable-dropdown-select.component.d.ts +1 -1
  323. package/lib/components/select/select.component.d.ts +50 -0
  324. package/lib/components/select/select.component.d.ts.map +1 -0
  325. package/lib/components/select/select.module.d.ts +13 -0
  326. package/lib/components/select/select.module.d.ts.map +1 -0
  327. package/lib/components/spinner/spinner.component.d.ts +1 -1
  328. package/lib/components/stepper/stepper-container/stepper-container.component.d.ts +29 -0
  329. package/lib/components/stepper/stepper-container/stepper-container.component.d.ts.map +1 -0
  330. package/lib/components/stepper/stepper-content/stepper-content.component.d.ts +18 -0
  331. package/lib/components/stepper/stepper-content/stepper-content.component.d.ts.map +1 -0
  332. package/lib/components/stepper/stepper-footer/stepper-footer.component.d.ts +14 -0
  333. package/lib/components/stepper/stepper-footer/stepper-footer.component.d.ts.map +1 -0
  334. package/lib/components/stepper/stepper-footer-step/stepper-footer-step.component.d.ts +27 -0
  335. package/lib/components/stepper/stepper-footer-step/stepper-footer-step.component.d.ts.map +1 -0
  336. package/lib/components/stepper/stepper-header/stepper-header.component.d.ts +16 -0
  337. package/lib/components/stepper/stepper-header/stepper-header.component.d.ts.map +1 -0
  338. package/lib/components/stepper/stepper-step/stepper-step.component.d.ts +16 -0
  339. package/lib/components/stepper/stepper-step/stepper-step.component.d.ts.map +1 -0
  340. package/lib/components/stepper/stepper.module.d.ts +19 -0
  341. package/lib/components/stepper/stepper.module.d.ts.map +1 -0
  342. package/lib/components/table/table.component.d.ts +52 -0
  343. package/lib/components/table/table.component.d.ts.map +1 -0
  344. package/lib/components/table/table.module.d.ts +17 -0
  345. package/lib/components/table/table.module.d.ts.map +1 -0
  346. package/lib/components/timeline/timeline.component.d.ts +2 -1
  347. package/lib/components/timeline/timeline.component.d.ts.map +1 -1
  348. package/lib/components/title/title.component.d.ts +19 -0
  349. package/lib/components/title/title.component.d.ts.map +1 -0
  350. package/lib/components/title/title.module.d.ts +12 -0
  351. package/lib/components/title/title.module.d.ts.map +1 -0
  352. package/lib/components/tooltip-icon/tooltip-icon.component.d.ts +11 -0
  353. package/lib/components/tooltip-icon/tooltip-icon.component.d.ts.map +1 -0
  354. package/lib/components/tooltip-icon/tooltip-icon.module.d.ts +15 -0
  355. package/lib/components/tooltip-icon/tooltip-icon.module.d.ts.map +1 -0
  356. package/lib/components/topbar/topbar.component.d.ts +1 -1
  357. package/lib/components/topbar/topbar.module.d.ts +1 -1
  358. package/lib/components/uploader/uploader-drag-drop.directive.d.ts +1 -1
  359. package/lib/components/uploader/uploader.component.d.ts +1 -1
  360. package/lib/components/v-card/card.component.d.ts +23 -0
  361. package/lib/components/v-card/card.component.d.ts.map +1 -0
  362. package/lib/components/v-card/card.module.d.ts +14 -0
  363. package/lib/components/v-card/card.module.d.ts.map +1 -0
  364. package/lib/components/v-modal/modal.component.d.ts +29 -0
  365. package/lib/components/v-modal/modal.component.d.ts.map +1 -0
  366. package/lib/components/v-modal/modal.module.d.ts +13 -0
  367. package/lib/components/v-modal/modal.module.d.ts.map +1 -0
  368. package/lib/components/version/version.service.d.ts.map +1 -1
  369. package/lib/components/webcam/webcam.component.d.ts +1 -1
  370. package/lib/components/widget/widget.component.d.ts +1 -1
  371. package/lib/directives/command-click/command-click-directive.module.d.ts.map +1 -0
  372. package/lib/directives/{command-click.directive.d.ts → command-click/command-click.directive.d.ts} +1 -1
  373. package/lib/directives/command-click/command-click.directive.d.ts.map +1 -0
  374. package/lib/directives/digit-only/digit-only.directive.d.ts +35 -0
  375. package/lib/directives/digit-only/digit-only.directive.d.ts.map +1 -0
  376. package/lib/directives/render-in-page-header/render-in-page-header-directive.module.d.ts.map +1 -0
  377. package/lib/directives/{render-in-page-header.directive.d.ts → render-in-page-header/render-in-page-header.directive.d.ts} +2 -2
  378. package/lib/directives/render-in-page-header/render-in-page-header.directive.d.ts.map +1 -0
  379. package/lib/directives/tooltip/tooltip.component.d.ts +7 -0
  380. package/lib/directives/tooltip/tooltip.component.d.ts.map +1 -0
  381. package/lib/directives/tooltip/tooltip.directive.d.ts +19 -0
  382. package/lib/directives/tooltip/tooltip.directive.d.ts.map +1 -0
  383. package/lib/directives/tooltip/tooltip.module.d.ts +11 -0
  384. package/lib/directives/tooltip/tooltip.module.d.ts.map +1 -0
  385. package/lib/directives/valtimo-cds-modal/valtimo-cds-modal-directive.module.d.ts.map +1 -0
  386. package/lib/directives/{valtimo-cds-modal.directive.d.ts → valtimo-cds-modal/valtimo-cds-modal.directive.d.ts} +1 -1
  387. package/lib/directives/valtimo-cds-modal/valtimo-cds-modal.directive.d.ts.map +1 -0
  388. package/lib/guards/index.d.ts +2 -0
  389. package/lib/guards/index.d.ts.map +1 -0
  390. package/lib/guards/pending-changes.guard.d.ts +4 -0
  391. package/lib/guards/pending-changes.guard.d.ts.map +1 -0
  392. package/lib/models/button.model.d.ts +3 -0
  393. package/lib/models/button.model.d.ts.map +1 -0
  394. package/lib/models/carbon-list.model.d.ts +54 -0
  395. package/lib/models/carbon-list.model.d.ts.map +1 -0
  396. package/lib/models/carbon-pagination.model.d.ts +6 -5
  397. package/lib/models/carbon-pagination.model.d.ts.map +1 -1
  398. package/lib/models/documenten-api-metadata.model.d.ts +4 -4
  399. package/lib/models/documenten-api-metadata.model.d.ts.map +1 -1
  400. package/lib/models/editor.model.d.ts +11 -0
  401. package/lib/models/editor.model.d.ts.map +1 -0
  402. package/lib/models/form.model.d.ts +5 -0
  403. package/lib/models/form.model.d.ts.map +1 -0
  404. package/lib/models/index.d.ts +14 -2
  405. package/lib/models/index.d.ts.map +1 -1
  406. package/lib/models/input.model.d.ts +3 -0
  407. package/lib/models/input.model.d.ts.map +1 -0
  408. package/lib/models/modal.model.d.ts +3 -0
  409. package/lib/models/modal.model.d.ts.map +1 -0
  410. package/lib/models/multi-input.model.d.ts +5 -5
  411. package/lib/models/multi-input.model.d.ts.map +1 -1
  412. package/lib/models/pagination.model.d.ts +5 -3
  413. package/lib/models/pagination.model.d.ts.map +1 -1
  414. package/lib/models/radio.model.d.ts +8 -0
  415. package/lib/models/radio.model.d.ts.map +1 -0
  416. package/lib/models/searchable-dropdown.model.d.ts +1 -1
  417. package/lib/models/searchable-dropdown.model.d.ts.map +1 -1
  418. package/lib/models/select.model.d.ts +9 -0
  419. package/lib/models/select.model.d.ts.map +1 -0
  420. package/lib/models/sort.model.d.ts +11 -0
  421. package/lib/models/sort.model.d.ts.map +1 -0
  422. package/lib/models/stepper.model.d.ts +8 -0
  423. package/lib/models/stepper.model.d.ts.map +1 -0
  424. package/lib/models/table.model.d.ts +14 -0
  425. package/lib/models/table.model.d.ts.map +1 -0
  426. package/lib/models/timeline.model.d.ts +4 -1
  427. package/lib/models/timeline.model.d.ts.map +1 -1
  428. package/lib/models/title.model.d.ts +3 -0
  429. package/lib/models/title.model.d.ts.map +1 -0
  430. package/lib/pipes/index.d.ts +1 -0
  431. package/lib/pipes/index.d.ts.map +1 -1
  432. package/lib/pipes/is-array.pipe.d.ts +8 -0
  433. package/lib/pipes/is-array.pipe.d.ts.map +1 -0
  434. package/lib/services/index.d.ts +7 -0
  435. package/lib/services/index.d.ts.map +1 -0
  436. package/lib/services/modal.service.d.ts +37 -0
  437. package/lib/services/modal.service.d.ts.map +1 -0
  438. package/lib/services/prompt.service.d.ts +68 -0
  439. package/lib/services/prompt.service.d.ts.map +1 -0
  440. package/lib/services/shell.service.d.ts +3 -0
  441. package/lib/services/shell.service.d.ts.map +1 -1
  442. package/lib/services/stepper.service.d.ts +32 -0
  443. package/lib/services/stepper.service.d.ts.map +1 -0
  444. package/lib/services/user-interface.service.d.ts +11 -0
  445. package/lib/services/user-interface.service.d.ts.map +1 -0
  446. package/package.json +30 -31
  447. package/public_api.d.ts +62 -7
  448. package/public_api.d.ts.map +1 -1
  449. package/esm2020/lib/components/breadcrumb-navigation/breadcrumb.service.mjs +0 -103
  450. package/esm2020/lib/components/carbon-table/carbon-table.component.mjs +0 -178
  451. package/esm2020/lib/components/carbon-table/carbon-table.module.mjs +0 -53
  452. package/esm2020/lib/components/carbon-table/no-results/carbon-no-results.component.mjs +0 -24
  453. package/esm2020/lib/components/components.module.mjs +0 -26
  454. package/esm2020/lib/components/confirmation-modal/confirmation-modal.component.mjs +0 -90
  455. package/esm2020/lib/components/documenten-api-metadata-modal/documenten-api-metadata-modal.component.mjs +0 -215
  456. package/esm2020/lib/components/documenten-api-metadata-modal/documenten-api-metadata-modal.module.mjs +0 -67
  457. package/esm2020/lib/components/dropzone/dropzone.component.mjs +0 -155
  458. package/esm2020/lib/components/expansion-panel/expansion-panel.component.mjs +0 -41
  459. package/esm2020/lib/components/form-io/form-io.component.mjs +0 -180
  460. package/esm2020/lib/components/form-io/form-io.module.mjs +0 -94
  461. package/esm2020/lib/components/left-sidebar/left-sidebar.component.mjs +0 -148
  462. package/esm2020/lib/components/list/list.component.mjs +0 -199
  463. package/esm2020/lib/components/menu/menu.service.mjs +0 -245
  464. package/esm2020/lib/components/multi-input/carbon-multi-input.component.mjs +0 -216
  465. package/esm2020/lib/components/multi-input/carbon-multi-input.module.mjs +0 -62
  466. package/esm2020/lib/components/page-title/page-title.component.mjs +0 -106
  467. package/esm2020/lib/components/page-title/page-title.service.mjs +0 -92
  468. package/esm2020/lib/components/right-sidebar/right-sidebar.component.mjs +0 -211
  469. package/esm2020/lib/components/right-sidebar/right-sidebar.module.mjs +0 -95
  470. package/esm2020/lib/components/search-fields/search-fields.component.mjs +0 -213
  471. package/esm2020/lib/components/search-fields/search-fields.module.mjs +0 -69
  472. package/esm2020/lib/components/timeline/timeline.component.mjs +0 -32
  473. package/esm2020/lib/directives/command-click-directive.module.mjs +0 -18
  474. package/esm2020/lib/directives/command-click.directive.mjs +0 -37
  475. package/esm2020/lib/directives/index.mjs +0 -22
  476. package/esm2020/lib/directives/render-in-page-header-directive.module.mjs +0 -18
  477. package/esm2020/lib/directives/render-in-page-header.directive.mjs +0 -27
  478. package/esm2020/lib/directives/valtimo-cds-modal-directive.module.mjs +0 -33
  479. package/esm2020/lib/directives/valtimo-cds-modal.directive.mjs +0 -68
  480. package/esm2020/lib/models/carbon-pagination.model.mjs +0 -9
  481. package/esm2020/lib/models/carbon-table.model.mjs +0 -21
  482. package/esm2020/lib/models/index.mjs +0 -27
  483. package/esm2020/lib/models/timeline.model.mjs +0 -48
  484. package/esm2020/lib/pipes/index.mjs +0 -19
  485. package/esm2020/lib/services/shell.service.mjs +0 -206
  486. package/esm2020/public_api.mjs +0 -113
  487. package/fesm2015/valtimo-components.mjs +0 -7945
  488. package/fesm2015/valtimo-components.mjs.map +0 -1
  489. package/fesm2020/valtimo-components.mjs +0 -8060
  490. package/fesm2020/valtimo-components.mjs.map +0 -1
  491. package/lib/components/carbon-table/carbon-table.component.d.ts +0 -49
  492. package/lib/components/carbon-table/carbon-table.component.d.ts.map +0 -1
  493. package/lib/components/carbon-table/carbon-table.module.d.ts +0 -12
  494. package/lib/components/carbon-table/carbon-table.module.d.ts.map +0 -1
  495. package/lib/components/components.module.d.ts +0 -7
  496. package/lib/components/components.module.d.ts.map +0 -1
  497. package/lib/directives/command-click-directive.module.d.ts.map +0 -1
  498. package/lib/directives/command-click.directive.d.ts.map +0 -1
  499. package/lib/directives/index.d.ts +0 -7
  500. package/lib/directives/index.d.ts.map +0 -1
  501. package/lib/directives/render-in-page-header-directive.module.d.ts.map +0 -1
  502. package/lib/directives/render-in-page-header.directive.d.ts.map +0 -1
  503. package/lib/directives/valtimo-cds-modal-directive.module.d.ts.map +0 -1
  504. package/lib/directives/valtimo-cds-modal.directive.d.ts.map +0 -1
  505. package/lib/models/carbon-table.model.d.ts +0 -33
  506. package/lib/models/carbon-table.model.d.ts.map +0 -1
  507. package/lib/models/list.model.d.ts +0 -9
  508. package/lib/models/list.model.d.ts.map +0 -1
  509. /package/{esm2020 → esm2022}/lib/components/camunda/form/generated/formfield/formfield.model.mjs +0 -0
  510. /package/{esm2020 → esm2022}/lib/components/camunda/form/generated/formfield/validation/date.validators.mjs +0 -0
  511. /package/{esm2020 → esm2022}/lib/components/form-io/documenten-api-uploader/documenten-api-uploader-edit-form.mjs +0 -0
  512. /package/{esm2020 → esm2022}/lib/components/form-io/documenten-api-uploader/documenten-api-uploader.formio.mjs +0 -0
  513. /package/{esm2020 → esm2022}/lib/components/form-io/form-io-current-user/form-io-current-user-edit-form.mjs +0 -0
  514. /package/{esm2020 → esm2022}/lib/components/form-io/form-io-current-user/form-io-current-user.formio.mjs +0 -0
  515. /package/{esm2020 → esm2022}/lib/components/form-io/form-io-resource-selector/form-io-resource-selector.formio.mjs +0 -0
  516. /package/{esm2020 → esm2022}/lib/components/form-io/form-io-uploader/form-io-uploader-edit-form.mjs +0 -0
  517. /package/{esm2020 → esm2022}/lib/components/form-io/form-io-uploader/form-io-uploader.formio.mjs +0 -0
  518. /package/{esm2020 → esm2022}/lib/components/menu/menu.init.mjs +0 -0
  519. /package/{esm2020 → esm2022}/lib/components/view-content/type-converters/booleanTypeConverter.mjs +0 -0
  520. /package/{esm2020 → esm2022}/lib/components/view-content/type-converters/dateTypeConverter.mjs +0 -0
  521. /package/{esm2020 → esm2022}/lib/components/view-content/type-converters/enumTypeConverter.mjs +0 -0
  522. /package/{esm2020 → esm2022}/lib/components/view-content/type-converters/relatedFilesTypeConverter.mjs +0 -0
  523. /package/{esm2020 → esm2022}/lib/components/view-content/type-converters/stringReplaceUnderscoreTypeConverter.mjs +0 -0
  524. /package/{esm2020 → esm2022}/lib/components/view-content/type-converters/stringTypeConverter.mjs +0 -0
  525. /package/{esm2020 → esm2022}/lib/components/view-content/type-converters/type-converters.model.mjs +0 -0
  526. /package/{esm2020 → esm2022}/lib/constants/carbon.constants.mjs +0 -0
  527. /package/{esm2020 → esm2022}/lib/constants/index.mjs +0 -0
  528. /package/{esm2020 → esm2022}/lib/models/alert.model.mjs +0 -0
  529. /package/{esm2020 → esm2022}/lib/models/documenten-api-metadata.model.mjs +0 -0
  530. /package/{esm2020 → esm2022}/lib/models/form-io.model.mjs +0 -0
  531. /package/{esm2020 → esm2022}/lib/models/searchable-dropdown.model.mjs +0 -0
  532. /package/{esm2020 → esm2022}/lib/models/version.model.mjs +0 -0
  533. /package/{esm2020 → esm2022}/valtimo-components.mjs +0 -0
  534. /package/lib/directives/{command-click-directive.module.d.ts → command-click/command-click-directive.module.d.ts} +0 -0
  535. /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
  536. /package/lib/directives/{valtimo-cds-modal-directive.module.d.ts → valtimo-cds-modal/valtimo-cds-modal-directive.module.d.ts} +0 -0
@@ -1,213 +0,0 @@
1
- /*
2
- * Copyright 2015-2023 Ritense BV, the Netherlands.
3
- *
4
- * Licensed under EUPL, Version 1.2 (the "License");
5
- * you may not use this file except in compliance with the License.
6
- * You may obtain a copy of the License at
7
- *
8
- * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
9
- *
10
- * Unless required by applicable law or agreed to in writing, software
11
- * distributed under the License is distributed on an "AS IS" basis,
12
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- * See the License for the specific language governing permissions and
14
- * limitations under the License.
15
- */
16
- import { Component, EventEmitter, Input, Output } from '@angular/core';
17
- import { BehaviorSubject, combineLatest, map, Subject, take } from 'rxjs';
18
- import * as i0 from "@angular/core";
19
- import * as i1 from "@valtimo/document";
20
- import * as i2 from "@ngx-translate/core";
21
- import * as i3 from "@angular/common";
22
- import * as i4 from "../spinner/spinner.component";
23
- import * as i5 from "../widget/widget.component";
24
- import * as i6 from "@valtimo/user-interface";
25
- export class SearchFieldsComponent {
26
- constructor(documentService, translateService) {
27
- this.documentService = documentService;
28
- this.translateService = translateService;
29
- this.doSearch = new EventEmitter();
30
- this.documentDefinitionName$ = new BehaviorSubject('');
31
- this.searchFields$ = new BehaviorSubject([]);
32
- this.values$ = new BehaviorSubject({});
33
- this.hasValidValues$ = this.values$.pipe(map(values => {
34
- const hasValues = (Object.keys(values) || []).length > 0;
35
- const rangeValues = (hasValues && Object.values(values)?.filter(value => value.start)) || [];
36
- const validRangeValues = rangeValues?.filter(value => value.start < value.end);
37
- return !!(hasValues && rangeValues.length === validRangeValues.length);
38
- }));
39
- this.expanded$ = new BehaviorSubject(false);
40
- this.clear$ = new Subject();
41
- this.BOOLEAN_POSITIVE = 'booleanPositive';
42
- this.BOOLEAN_NEGATIVE = 'booleanNegative';
43
- this.BOOLEANTYPES = [this.BOOLEAN_POSITIVE, this.BOOLEAN_NEGATIVE];
44
- this.booleanItems$ = this.translateService.stream('key').pipe(map(() => this.BOOLEANTYPES.map(type => ({
45
- id: type,
46
- text: this.translateService.instant(`searchFields.${type}`),
47
- }))));
48
- this.dropdownSelectItemsMap = new Map();
49
- }
50
- set searchFields(fields) {
51
- this.searchFields$.next(fields);
52
- }
53
- set documentDefinitionName(documentDefinitionName) {
54
- this.documentDefinitionName$.pipe(take(1)).subscribe(currentDocumentDefinitionName => {
55
- if (currentDocumentDefinitionName !== documentDefinitionName) {
56
- this.documentDefinitionName$.next(documentDefinitionName);
57
- }
58
- });
59
- }
60
- ngOnInit() {
61
- this.openDocumentDefinitionNameSubscription();
62
- this.openValuesSubjectSubscription();
63
- this.openDropdownSubscription();
64
- this.setDefaultValues();
65
- }
66
- ngOnDestroy() {
67
- this.documentDefinitionNameSubscription?.unsubscribe();
68
- this.valuesSubjectSubscription?.unsubscribe();
69
- this.dropdownSubscription?.unsubscribe();
70
- }
71
- singleValueChange(searchFieldKey, value, isDateTime) {
72
- this.values$.pipe(take(1)).subscribe(values => {
73
- if (value || Number.isInteger(value)) {
74
- this.values$.next({ ...values, [searchFieldKey]: this.getSingleValue(value, isDateTime) });
75
- }
76
- else if (Object.keys(values).includes(searchFieldKey)) {
77
- const valuesCopy = { ...values };
78
- delete valuesCopy[searchFieldKey];
79
- this.values$.next(valuesCopy);
80
- }
81
- });
82
- }
83
- multipleValueChange(searchFieldKey, value, isDateTime) {
84
- this.values$.pipe(take(1)).subscribe(values => {
85
- if (value.start && value.end) {
86
- this.values$.next({
87
- ...values,
88
- [searchFieldKey]: {
89
- start: this.getSingleValue(value.start, isDateTime),
90
- end: this.getSingleValue(value.end, isDateTime),
91
- },
92
- });
93
- }
94
- else if (Array.isArray(value) && value.length > 0) {
95
- this.values$.next({
96
- ...values,
97
- [searchFieldKey]: value.map(v => this.getSingleValue(v, isDateTime)),
98
- });
99
- }
100
- else if (values[searchFieldKey]) {
101
- const valuesCopy = { ...values };
102
- delete valuesCopy[searchFieldKey];
103
- this.values$.next(valuesCopy);
104
- }
105
- });
106
- }
107
- toggleExpanded() {
108
- this.expanded$.pipe(take(1)).subscribe(expanded => {
109
- this.expanded$.next(!expanded);
110
- });
111
- }
112
- search() {
113
- this.values$.pipe(take(1)).subscribe(values => {
114
- this.doSearch.emit(values);
115
- });
116
- }
117
- clear() {
118
- this.clear$.next(null);
119
- this.doSearch.emit({});
120
- }
121
- getDefaultBooleanSelectionId(values, searchFieldKey) {
122
- const searchFieldValue = values[searchFieldKey];
123
- if (searchFieldValue === true) {
124
- return this.BOOLEAN_POSITIVE;
125
- }
126
- else if (searchFieldValue === false) {
127
- return this.BOOLEAN_NEGATIVE;
128
- }
129
- return null;
130
- }
131
- getSingleValue(value, isDateTime) {
132
- if (isDateTime) {
133
- return new Date(value).toISOString();
134
- }
135
- if (value === this.BOOLEAN_POSITIVE) {
136
- return true;
137
- }
138
- if (value === this.BOOLEAN_NEGATIVE) {
139
- return false;
140
- }
141
- return value;
142
- }
143
- openDocumentDefinitionNameSubscription() {
144
- this.documentDefinitionNameSubscription = this.documentDefinitionName$.subscribe(() => {
145
- this.collapse();
146
- this.clear();
147
- });
148
- }
149
- openValuesSubjectSubscription() {
150
- if (this.setValuesSubject$) {
151
- this.valuesSubjectSubscription = this.setValuesSubject$.subscribe(values => {
152
- if (Object.keys(values || {}).length > 0) {
153
- this.values$.next(values);
154
- this.search();
155
- this.expand();
156
- }
157
- });
158
- }
159
- }
160
- openDropdownSubscription() {
161
- this.dropdownSubscription = combineLatest([this.documentDefinitionName$, this.searchFields$])
162
- .pipe(map(([documentDefinitionName, searchFields]) => searchFields
163
- ?.filter(searchField => searchField.dropdownDataProvider)
164
- .map(searchField => this.documentService
165
- .getDropdownData(searchField.dropdownDataProvider, documentDefinitionName, searchField.key)
166
- .subscribe(dropdownData => {
167
- if (dropdownData) {
168
- this.dropdownSelectItemsMap[searchField.key] = Object.keys(dropdownData).map(dropdownFieldKey => ({
169
- id: dropdownFieldKey,
170
- text: dropdownData[dropdownFieldKey],
171
- }));
172
- }
173
- else {
174
- this.dropdownSelectItemsMap[searchField.key] = [];
175
- }
176
- }))))
177
- .subscribe();
178
- }
179
- collapse() {
180
- this.expanded$.next(false);
181
- }
182
- expand() {
183
- this.expanded$.next(true);
184
- }
185
- setDefaultValues() {
186
- if (this.defaultValues &&
187
- typeof this.defaultValues === 'object' &&
188
- Object.keys(this.defaultValues).length > 0) {
189
- this.values$.next(this.defaultValues);
190
- this.search();
191
- this.expand();
192
- }
193
- }
194
- }
195
- SearchFieldsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: SearchFieldsComponent, deps: [{ token: i1.DocumentService }, { token: i2.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
196
- SearchFieldsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: SearchFieldsComponent, selector: "valtimo-search-fields", inputs: { loading: "loading", searchFields: "searchFields", documentDefinitionName: "documentDefinitionName", setValuesSubject$: "setValuesSubject$", defaultValues: "defaultValues" }, outputs: { doSearch: "doSearch" }, ngImport: i0, template: "<!--\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", styles: ["/*!\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 */.w-100{height:15px}.w-100:last-child{display:none}::ng-deep .multiple-search-fields{display:flex!important;flex-direction:row!important;align-items:center}.to-text{margin-inline-start:8px;margin-inline-end:8px}.buttons-container{width:100%;display:flex;flex-direction:row;justify-content:end}.right-buttons{display:flex;flex-direction:row}.right-buttons v-button:last-child{margin-left:8px}.row--hidden{display:none}.accordion-button{display:block;width:100%;padding:15px;border:none;outline:none;cursor:pointer;background:#f8f9f9;text-align:left;transition:background .2s;font-size:1.2rem;color:#404040}.accordion-button--active{background:#f1f1f1}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i4.SpinnerComponent, selector: "valtimo-spinner", inputs: ["useBootstrapSpinner", "name", "type", "size", "color", "bdColor", "fullScreen", "noMarginTop"] }, { kind: "component", type: i5.WidgetComponent, selector: "valtimo-widget", inputs: ["type", "name", "icon", "contrast", "divider", "title", "subtitle", "collapseAble", "collapse", "additionalClasses"] }, { kind: "component", type: i6.InputComponent, selector: "v-input", inputs: ["name", "type", "title", "titleTranslationKey", "defaultValue", "widthPx", "fullWidth", "margin", "smallMargin", "disabled", "step", "min", "maxLength", "tooltip", "required", "hideNumberSpinBox", "smallLabel", "rows", "clear$"], outputs: ["valueChange"] }, { kind: "component", type: i6.FormComponent, selector: "v-form", inputs: ["className"], outputs: ["valueChange"] }, { kind: "component", type: i6.DatePickerComponent, selector: "v-date-picker", inputs: ["name", "title", "titleTranslationKey", "widthPx", "fullWidth", "margin", "disabled", "tooltip", "required", "defaultDate", "defaultDateIsToday", "smallLabel", "clear$", "enableTime"], outputs: ["valueChange"] }, { kind: "component", type: i6.InputLabelComponent, selector: "v-input-label", inputs: ["name", "title", "titleTranslationKey", "tooltip", "required", "largeMargin", "small"] }, { kind: "component", type: i6.ParagraphComponent, selector: "v-paragraph", inputs: ["center", "fullWidth", "margin", "italic", "loading"] }, { kind: "component", type: i6.SelectComponent, selector: "v-select", inputs: ["items", "defaultSelection", "defaultSelectionId", "defaultSelectionIds", "clearable", "disabled", "multiple", "margin", "widthInPx", "notFoundText", "clearAllText", "name", "title", "titleTranslationKey", "clearSelectionSubject$", "tooltip", "required", "loading", "loadingText", "placeholder", "smallMargin"], outputs: ["selectedChange", "clear"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }] });
197
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: SearchFieldsComponent, decorators: [{
198
- type: Component,
199
- args: [{ selector: 'valtimo-search-fields', template: "<!--\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", styles: ["/*!\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 */.w-100{height:15px}.w-100:last-child{display:none}::ng-deep .multiple-search-fields{display:flex!important;flex-direction:row!important;align-items:center}.to-text{margin-inline-start:8px;margin-inline-end:8px}.buttons-container{width:100%;display:flex;flex-direction:row;justify-content:end}.right-buttons{display:flex;flex-direction:row}.right-buttons v-button:last-child{margin-left:8px}.row--hidden{display:none}.accordion-button{display:block;width:100%;padding:15px;border:none;outline:none;cursor:pointer;background:#f8f9f9;text-align:left;transition:background .2s;font-size:1.2rem;color:#404040}.accordion-button--active{background:#f1f1f1}\n"] }]
200
- }], ctorParameters: function () { return [{ type: i1.DocumentService }, { type: i2.TranslateService }]; }, propDecorators: { loading: [{
201
- type: Input
202
- }], searchFields: [{
203
- type: Input
204
- }], documentDefinitionName: [{
205
- type: Input
206
- }], setValuesSubject$: [{
207
- type: Input
208
- }], defaultValues: [{
209
- type: Input
210
- }], doSearch: [{
211
- type: Output
212
- }] } });
213
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWZpZWxkcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL2NvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3NlYXJjaC1maWVsZHMvc2VhcmNoLWZpZWxkcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL2NvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3NlYXJjaC1maWVsZHMvc2VhcmNoLWZpZWxkcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUVILE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXhGLE9BQU8sRUFBQyxlQUFlLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBYyxPQUFPLEVBQWdCLElBQUksRUFBQyxNQUFNLE1BQU0sQ0FBQzs7Ozs7Ozs7QUFVbEcsTUFBTSxPQUFPLHFCQUFxQjtJQXlEaEMsWUFDbUIsZUFBZ0MsRUFDaEMsZ0JBQWtDO1FBRGxDLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBN0MzQyxhQUFRLEdBQW9DLElBQUksWUFBWSxFQUFxQixDQUFDO1FBRW5GLDRCQUF1QixHQUFHLElBQUksZUFBZSxDQUFTLEVBQUUsQ0FBQyxDQUFDO1FBRTFELGtCQUFhLEdBQUcsSUFBSSxlQUFlLENBQXFCLEVBQUUsQ0FBQyxDQUFDO1FBRTVELFlBQU8sR0FBRyxJQUFJLGVBQWUsQ0FBb0IsRUFBRSxDQUFDLENBQUM7UUFFckQsb0JBQWUsR0FBd0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQy9ELEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNYLE1BQU0sU0FBUyxHQUFHLENB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QUNqQixDQUFDO0lBRU8sUUFBUTtRQUNkLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFTyxNQUFNO1FBQ1osSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVPLGdCQUFnQjtRQUN0QixJQUNFLElBQUksQ0FBQyxhQUFhO1lBQ2xCLE9BQU8sSUFBSSxDQUFDLGFBQWEsS0FBSyxRQUFRO1lBQ3RDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQzFDO1lBQ0EsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ3RDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNkLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUNmO0lBQ0gsQ0FBQzs7a0hBNU5VLHFCQUFxQjtzR0FBckIscUJBQXFCLHdSQzVCbEMsOGprQkFvbUJBOzJGRHhrQmEscUJBQXFCO2tCQUxqQyxTQUFTOytCQUNFLHVCQUF1QjtxSUFLeEIsT0FBTztzQkFBZixLQUFLO2dCQUNPLFlBQVk7c0JBQXhCLEtBQUs7Z0JBR08sc0JBQXNCO3NCQUFsQyxLQUFLO2dCQU9HLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNJLFFBQVE7c0JBQWpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyMyBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQge0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1NlYXJjaEZpZWxkLCBTZWFyY2hGaWVsZEJvb2xlYW4sIFNlYXJjaEZpZWxkVmFsdWVzfSBmcm9tICdAdmFsdGltby9jb25maWcnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIG1hcCwgT2JzZXJ2YWJsZSwgU3ViamVjdCwgU3Vic2NyaXB0aW9uLCB0YWtlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7U2VsZWN0SXRlbX0gZnJvbSAnQHZhbHRpbW8vdXNlci1pbnRlcmZhY2UnO1xuaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7RG9jdW1lbnRTZXJ2aWNlfSBmcm9tICdAdmFsdGltby9kb2N1bWVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbHRpbW8tc2VhcmNoLWZpZWxkcycsXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWFyY2gtZmllbGRzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc2VhcmNoLWZpZWxkcy5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBTZWFyY2hGaWVsZHNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIGxvYWRpbmc6IGJvb2xlYW47XG4gIEBJbnB1dCgpIHNldCBzZWFyY2hGaWVsZHMoZmllbGRzOiBBcnJheTxTZWFyY2hGaWVsZD4pIHtcbiAgICB0aGlzLnNlYXJjaEZpZWxkcyQubmV4dChmaWVsZHMpO1xuICB9XG4gIEBJbnB1dCgpIHNldCBkb2N1bWVudERlZmluaXRpb25OYW1lKGRvY3VtZW50RGVmaW5pdGlvbk5hbWU6IHN0cmluZykge1xuICAgIHRoaXMuZG9jdW1lbnREZWZpbml0aW9uTmFtZSQucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoY3VycmVudERvY3VtZW50RGVmaW5pdGlvbk5hbWUgPT4ge1xuICAgICAgaWYgKGN1cnJlbnREb2N1bWVudERlZmluaXRpb25OYW1lICE9PSBkb2N1bWVudERlZmluaXRpb25OYW1lKSB7XG4gICAgICAgIHRoaXMuZG9jdW1lbnREZWZpbml0aW9uTmFtZSQubmV4dChkb2N1bWVudERlZmluaXRpb25OYW1lKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuICBASW5wdXQoKSBzZXRWYWx1ZXNTdWJqZWN0JDogT2JzZXJ2YWJsZTxTZWFyY2hGaWVsZFZhbHVlcz47XG4gIEBJbnB1dCgpIGRlZmF1bHRWYWx1ZXM6IFNlYXJjaEZpZWxkVmFsdWVzO1xuICBAT3V0cHV0KCkgZG9TZWFyY2g6IEV2ZW50RW1pdHRlcjxTZWFyY2hGaWVsZFZhbHVlcz4gPSBuZXcgRXZlbnRFbWl0dGVyPFNlYXJjaEZpZWxkVmFsdWVzPigpO1xuXG4gIHJlYWRvbmx5IGRvY3VtZW50RGVmaW5pdGlvbk5hbWUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KCcnKTtcblxuICByZWFkb25seSBzZWFyY2hGaWVsZHMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBcnJheTxTZWFyY2hGaWVsZD4+KFtdKTtcblxuICByZWFkb25seSB2YWx1ZXMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxTZWFyY2hGaWVsZFZhbHVlcz4oe30pO1xuXG4gIHJlYWRvbmx5IGhhc1ZhbGlkVmFsdWVzJDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IHRoaXMudmFsdWVzJC5waXBlKFxuICAgIG1hcCh2YWx1ZXMgPT4ge1xuICAgICAgY29uc3QgaGFzVmFsdWVzID0gKE9iamVjdC5rZXlzKHZhbHVlcykgfHwgW10pLmxlbmd0aCA+IDA7XG4gICAgICBjb25zdCByYW5nZVZhbHVlcyA9XG4gICAgICAgIChoYXNWYWx1ZXMgJiYgT2JqZWN0LnZhbHVlcyh2YWx1ZXMpPy5maWx0ZXIodmFsdWUgPT4gKHZhbHVlIGFzIGFueSkuc3RhcnQpKSB8fCBbXTtcbiAgICAgIGNvbnN0IHZhbGlkUmFuZ2VWYWx1ZXMgPSByYW5nZVZhbHVlcz8uZmlsdGVyKFxuICAgICAgICB2YWx1ZSA9PiAodmFsdWUgYXMgYW55KS5zdGFydCA8ICh2YWx1ZSBhcyBhbnkpLmVuZFxuICAgICAgKTtcblxuICAgICAgcmV0dXJuICEhKGhhc1ZhbHVlcyAmJiByYW5nZVZhbHVlcy5sZW5ndGggPT09IHZhbGlkUmFuZ2VWYWx1ZXMubGVuZ3RoKTtcbiAgICB9KVxuICApO1xuXG4gIHJlYWRvbmx5IGV4cGFuZGVkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSBjbGVhciQgPSBuZXcgU3ViamVjdDxudWxsPigpO1xuXG4gIHByaXZhdGUgZG9jdW1lbnREZWZpbml0aW9uTmFtZVN1YnNjcmlwdGlvbiE6IFN1YnNjcmlwdGlvbjtcbiAgcHJpdmF0ZSBkcm9wZG93blN1YnNjcmlwdGlvbiE6IFN1YnNjcmlwdGlvbjtcbiAgcHJpdmF0ZSB2YWx1ZXNTdWJqZWN0U3Vic2NyaXB0aW9uITogU3Vic2NyaXB0aW9uO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgQk9PTEVBTl9QT1NJVElWRTogU2VhcmNoRmllbGRCb29sZWFuID0gJ2Jvb2xlYW5Qb3NpdGl2ZSc7XG4gIHByaXZhdGUgcmVhZG9ubHkgQk9PTEVBTl9ORUdBVElWRTogU2VhcmNoRmllbGRCb29sZWFuID0gJ2Jvb2xlYW5OZWdhdGl2ZSc7XG5cbiAgcmVhZG9ubHkgQk9PTEVBTlRZUEVTOiBBcnJheTxTZWFyY2hGaWVsZEJvb2xlYW4+ID0gW3RoaXMuQk9PTEVBTl9QT1NJVElWRSwgdGhpcy5CT09MRUFOX05FR0FUSVZFXTtcbiAgcmVhZG9ubHkgYm9vbGVhbkl0ZW1zJDogT2JzZXJ2YWJsZTxBcnJheTxTZWxlY3RJdGVtPj4gPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2Uuc3RyZWFtKCdrZXknKS5waXBlKFxuICAgIG1hcCgoKSA9PlxuICAgICAgdGhpcy5CT09MRUFOVFlQRVMubWFwKHR5cGUgPT4gKHtcbiAgICAgICAgaWQ6IHR5cGUsXG4gICAgICAgIHRleHQ6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KGBzZWFyY2hGaWVsZHMuJHt0eXBlfWApLFxuICAgICAgfSkpXG4gICAgKVxuICApO1xuXG4gIHJlYWRvbmx5IGRyb3Bkb3duU2VsZWN0SXRlbXNNYXA6IE1hcDxzdHJpbmcsIEFycmF5PFNlbGVjdEl0ZW0+PiA9IG5ldyBNYXAoKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRvY3VtZW50U2VydmljZTogRG9jdW1lbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZVxuICApIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5vcGVuRG9jdW1lbnREZWZpbml0aW9uTmFtZVN1YnNjcmlwdGlvbigpO1xuICAgIHRoaXMub3BlblZhbHVlc1N1YmplY3RTdWJzY3JpcHRpb24oKTtcbiAgICB0aGlzLm9wZW5Ecm9wZG93blN1YnNjcmlwdGlvbigpO1xuICAgIHRoaXMuc2V0RGVmYXVsdFZhbHVlcygpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5kb2N1bWVudERlZmluaXRpb25OYW1lU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMudmFsdWVzU3ViamVjdFN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLmRyb3Bkb3duU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgc2luZ2xlVmFsdWVDaGFuZ2Uoc2VhcmNoRmllbGRLZXk6IHN0cmluZywgdmFsdWU6IGFueSwgaXNEYXRlVGltZT86IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlcyQucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUodmFsdWVzID0+IHtcbiAgICAgIGlmICh2YWx1ZSB8fCBOdW1iZXIuaXNJbnRlZ2VyKHZhbHVlKSkge1xuICAgICAgICB0aGlzLnZhbHVlcyQubmV4dCh7Li4udmFsdWVzLCBbc2VhcmNoRmllbGRLZXldOiB0aGlzLmdldFNpbmdsZVZhbHVlKHZhbHVlLCBpc0RhdGVUaW1lKX0pO1xuICAgICAgfSBlbHNlIGlmIChPYmplY3Qua2V5cyh2YWx1ZXMpLmluY2x1ZGVzKHNlYXJjaEZpZWxkS2V5KSkge1xuICAgICAgICBjb25zdCB2YWx1ZXNDb3B5ID0gey4uLnZhbHVlc307XG4gICAgICAgIGRlbGV0ZSB2YWx1ZXNDb3B5W3NlYXJjaEZpZWxkS2V5XTtcbiAgICAgICAgdGhpcy52YWx1ZXMkLm5leHQodmFsdWVzQ29weSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBtdWx0aXBsZVZhbHVlQ2hhbmdlKHNlYXJjaEZpZWxkS2V5OiBzdHJpbmcsIHZhbHVlOiBhbnksIGlzRGF0ZVRpbWU/OiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZXMkLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKHZhbHVlcyA9PiB7XG4gICAgICBpZiAodmFsdWUuc3RhcnQgJiYgdmFsdWUuZW5kKSB7XG4gICAgICAgIHRoaXMudmFsdWVzJC5uZXh0KHtcbiAgICAgICAgICAuLi52YWx1ZXMsXG4gICAgICAgICAgW3NlYXJjaEZpZWxkS2V5XToge1xuICAgICAgICAgICAgc3RhcnQ6IHRoaXMuZ2V0U2luZ2xlVmFsdWUodmFsdWUuc3RhcnQsIGlzRGF0ZVRpbWUpLFxuICAgICAgICAgICAgZW5kOiB0aGlzLmdldFNpbmdsZVZhbHVlKHZhbHVlLmVuZCwgaXNEYXRlVGltZSksXG4gICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpICYmIHZhbHVlLmxlbmd0aCA+IDApIHtcbiAgICAgICAgdGhpcy52YWx1ZXMkLm5leHQoe1xuICAgICAgICAgIC4uLnZhbHVlcyxcbiAgICAgICAgICBbc2VhcmNoRmllbGRLZXldOiB2YWx1ZS5tYXAodiA9PiB0aGlzLmdldFNpbmdsZVZhbHVlKHYsIGlzRGF0ZVRpbWUpKSxcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2UgaWYgKHZhbHVlc1tzZWFyY2hGaWVsZEtleV0pIHtcbiAgICAgICAgY29uc3QgdmFsdWVzQ29weSA9IHsuLi52YWx1ZXN9O1xuICAgICAgICBkZWxldGUgdmFsdWVzQ29weVtzZWFyY2hGaWVsZEtleV07XG4gICAgICAgIHRoaXMudmFsdWVzJC5uZXh0KHZhbHVlc0NvcHkpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgdG9nZ2xlRXhwYW5kZWQoKTogdm9pZCB7XG4gICAgdGhpcy5leHBhbmRlZCQucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoZXhwYW5kZWQgPT4ge1xuICAgICAgdGhpcy5leHBhbmRlZCQubmV4dCghZXhwYW5kZWQpO1xuICAgIH0pO1xuICB9XG5cbiAgc2VhcmNoKCk6IHZvaWQge1xuICAgIHRoaXMudmFsdWVzJC5waXBlKHRha2UoMSkpLnN1YnNjcmliZSh2YWx1ZXMgPT4ge1xuICAgICAgdGhpcy5kb1NlYXJjaC5lbWl0KHZhbHVlcyk7XG4gICAgfSk7XG4gIH1cblxuICBjbGVhcigpOiB2b2lkIHtcbiAgICB0aGlzLmNsZWFyJC5uZXh0KG51bGwpO1xuICAgIHRoaXMuZG9TZWFyY2guZW1pdCh7fSk7XG4gIH1cblxuICBnZXREZWZhdWx0Qm9vbGVhblNlbGVjdGlvbklkKHZhbHVlczogU2VhcmNoRmllbGRWYWx1ZXMsIHNlYXJjaEZpZWxkS2V5OiBzdHJpbmcpOiBzdHJpbmcgfCBudWxsIHtcbiAgICBjb25zdCBzZWFyY2hGaWVsZFZhbHVlID0gdmFsdWVzW3NlYXJjaEZpZWxkS2V5XTtcblxuICAgIGlmIChzZWFyY2hGaWVsZFZhbHVlID09PSB0cnVlKSB7XG4gICAgICByZXR1cm4gdGhpcy5CT09MRUFOX1BPU0lUSVZFO1xuICAgIH0gZWxzZSBpZiAoc2VhcmNoRmllbGRWYWx1ZSA9PT0gZmFsc2UpIHtcbiAgICAgIHJldHVybiB0aGlzLkJPT0xFQU5fTkVHQVRJVkU7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRTaW5nbGVWYWx1ZSh2YWx1ZTogYW55LCBpc0RhdGVUaW1lPzogYm9vbGVhbik6IGFueSB7XG4gICAgaWYgKGlzRGF0ZVRpbWUpIHtcbiAgICAgIHJldHVybiBuZXcgRGF0ZSh2YWx1ZSkudG9JU09TdHJpbmcoKTtcbiAgICB9XG4gICAgaWYgKHZhbHVlID09PSB0aGlzLkJPT0xFQU5fUE9TSVRJVkUpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBpZiAodmFsdWUgPT09IHRoaXMuQk9PTEVBTl9ORUdBVElWRSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG4gIHByaXZhdGUgb3BlbkRvY3VtZW50RGVmaW5pdGlvbk5hbWVTdWJzY3JpcHRpb24oKTogdm9pZCB7XG4gICAgdGhpcy5kb2N1bWVudERlZmluaXRpb25OYW1lU3Vic2NyaXB0aW9uID0gdGhpcy5kb2N1bWVudERlZmluaXRpb25OYW1lJC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5jb2xsYXBzZSgpO1xuICAgICAgdGhpcy5jbGVhcigpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBvcGVuVmFsdWVzU3ViamVjdFN1YnNjcmlwdGlvbigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zZXRWYWx1ZXNTdWJqZWN0JCkge1xuICAgICAgdGhpcy52YWx1ZXNTdWJqZWN0U3Vic2NyaXB0aW9uID0gdGhpcy5zZXRWYWx1ZXNTdWJqZWN0JC5zdWJzY3JpYmUodmFsdWVzID0+IHtcbiAgICAgICAgaWYgKE9iamVjdC5rZXlzKHZhbHVlcyB8fCB7fSkubGVuZ3RoID4gMCkge1xuICAgICAgICAgIHRoaXMudmFsdWVzJC5uZXh0KHZhbHVlcyk7XG4gICAgICAgICAgdGhpcy5zZWFyY2goKTtcbiAgICAgICAgICB0aGlzLmV4cGFuZCgpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIG9wZW5Ecm9wZG93blN1YnNjcmlwdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLmRyb3Bkb3duU3Vic2NyaXB0aW9uID0gY29tYmluZUxhdGVzdChbdGhpcy5kb2N1bWVudERlZmluaXRpb25OYW1lJCwgdGhpcy5zZWFyY2hGaWVsZHMkXSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKFtkb2N1bWVudERlZmluaXRpb25OYW1lLCBzZWFyY2hGaWVsZHNdKSA9PlxuICAgICAgICAgIHNlYXJjaEZpZWxkc1xuICAgICAgICAgICAgPy5maWx0ZXIoc2VhcmNoRmllbGQgPT4gc2VhcmNoRmllbGQuZHJvcGRvd25EYXRhUHJvdmlkZXIpXG4gICAgICAgICAgICAubWFwKHNlYXJjaEZpZWxkID0+XG4gICAgICAgICAgICAgIHRoaXMuZG9jdW1lbnRTZXJ2aWNlXG4gICAgICAgICAgICAgICAgLmdldERyb3Bkb3duRGF0YShcbiAgICAgICAgICAgICAgICAgIHNlYXJjaEZpZWxkLmRyb3Bkb3duRGF0YVByb3ZpZGVyLFxuICAgICAgICAgICAgICAgICAgZG9jdW1lbnREZWZpbml0aW9uTmFtZSxcbiAgICAgICAgICAgICAgICAgIHNlYXJjaEZpZWxkLmtleVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKGRyb3Bkb3duRGF0YSA9PiB7XG4gICAgICAgICAgICAgICAgICBpZiAoZHJvcGRvd25EYXRhKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZHJvcGRvd25TZWxlY3RJdGVtc01hcFtzZWFyY2hGaWVsZC5rZXldID0gT2JqZWN0LmtleXMoZHJvcGRvd25EYXRhKS5tYXAoXG4gICAgICAgICAgICAgICAgICAgICAgZHJvcGRvd25GaWVsZEtleSA9PiAoe1xuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IGRyb3Bkb3duRmllbGRLZXksXG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0OiBkcm9wZG93bkRhdGFbZHJvcGRvd25GaWVsZEtleV0sXG4gICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZHJvcGRvd25TZWxlY3RJdGVtc01hcFtzZWFyY2hGaWVsZC5rZXldID0gW107XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBjb2xsYXBzZSgpOiB2b2lkIHtcbiAgICB0aGlzLmV4cGFuZGVkJC5uZXh0KGZhbHNlKTtcbiAgfVxuXG4gIHByaXZhdGUgZXhwYW5kKCk6IHZvaWQge1xuICAgIHRoaXMuZXhwYW5kZWQkLm5leHQodHJ1ZSk7XG4gIH1cblxuICBwcml2YXRlIHNldERlZmF1bHRWYWx1ZXMoKTogdm9pZCB7XG4gICAgaWYgKFxuICAgICAgdGhpcy5kZWZhdWx0VmFsdWVzICYmXG4gICAgICB0eXBlb2YgdGhpcy5kZWZhdWx0VmFsdWVzID09PSAnb2JqZWN0JyAmJlxuICAgICAgT2JqZWN0LmtleXModGhpcy5kZWZhdWx0VmFsdWVzKS5sZW5ndGggPiAwXG4gICAgKSB7XG4gICAgICB0aGlzLnZhbHVlcyQubmV4dCh0aGlzLmRlZmF1bHRWYWx1ZXMpO1xuICAgICAgdGhpcy5zZWFyY2goKTtcbiAgICAgIHRoaXMuZXhwYW5kKCk7XG4gICAgfVxuICB9XG59XG4iLCI8IS0tXG4gIH4gQ29weXJpZ2h0IDIwMTUtMjAyMyBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gIH5cbiAgfiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAgfiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gIH4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gIH5cbiAgfiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gIH5cbiAgfiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gIH4gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICB+IFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICB+IFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAgfiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAgLS0+XG5cbjxkaXYgY2xhc3M9XCJzZWFyY2ggZmllbGRzXCI+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJsb2FkaW5nXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImxvYWRpbmdUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFsb2FkaW5nXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInNlYXJjaEZpZWxkc1RlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gIDwvbmctY29udGFpbmVyPlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjbG9hZGluZ1RlbXBsYXRlPlxuICA8dmFsdGltby1zcGlubmVyPjwvdmFsdGltby1zcGlubmVyPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNzZWFyY2hGaWVsZHNUZW1wbGF0ZT5cbiAgPHZhbHRpbW8td2lkZ2V0PlxuICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTJcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImJ1dHRvbkFjY29yZGlvblwiPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJyb3cgcC0zXCJcbiAgICAgIFtuZ0NsYXNzXT1cInsncm93LS1oaWRkZW4nOiAoZXhwYW5kZWQkIHwgYXN5bmMpID09PSBmYWxzZX1cIlxuICAgICAgKm5nSWY9XCJzZWFyY2hGaWVsZHMkIHwgYXN5bmMgYXMgc2VhcmNoRmllbGRzXCJcbiAgICA+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBzZWFyY2hGaWVsZCBvZiBzZWFyY2hGaWVsZHM7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC00XCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzZWFyY2hGaWVsZFRlbXBsYXRlOyBjb250ZXh0OiB7c2VhcmNoRmllbGQ6IHNlYXJjaEZpZWxkfVwiXG4gICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInctMTAwXCIgKm5nSWY9XCIoaSArIDEpICUgMyA9PT0gMFwiPjwvZGl2PlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyXCI+XG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgYnV0dG9uc1RlbXBsYXRlO1xuICAgICAgICAgICAgY29udGV4dDoge25vU2VhcmNoRmllbGRzOiAhc2VhcmNoRmllbGRzIHx8IHNlYXJjaEZpZWxkcy5sZW5ndGggPT09IDB9XG4gICAgICAgICAgXCJcbiAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvdmFsdGltby13aWRnZXQ+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3NlYXJjaEZpZWxkVGVtcGxhdGUgbGV0LXNlYXJjaEZpZWxkPVwic2VhcmNoRmllbGRcIj5cbiAgPG5nLWNvbnRhaW5lclxuICAgICpuZ0lmPVwie1xuICAgICAgdmFsdWVzOiB2YWx1ZXMkIHwgYXN5bmMsXG4gICAgICB0b29sdGlwS2V5OiAnc2VhcmNoRmllbGRzVG9vbHRpcHMuJyArIHNlYXJjaEZpZWxkLmtleSxcbiAgICAgIHRvb2x0aXA6ICdzZWFyY2hGaWVsZHNUb29sdGlwcy4nICsgc2VhcmNoRmllbGQua2V5IHwgdHJhbnNsYXRlLFxuICAgICAgc2VhcmNoRmllbGQsXG4gICAgICB0aXRsZTpcbiAgICAgICAgc2VhcmNoRmllbGQudGl0bGUgfHxcbiAgICAgICAgKCdzZWFyY2hGaWVsZHMuJyArIHNlYXJjaEZpZWxkLmtleSAhPT0gKCdzZWFyY2hGaWVsZHMuJyArIHNlYXJjaEZpZWxkLmtleSB8IHRyYW5zbGF0ZSlcbiAgICAgICAgICA/ICgnc2VhcmNoRmllbGRzLicgKyBzZWFyY2hGaWVsZC5rZXkgfCB0cmFuc2xhdGUpXG4gICAgICAgICAgOiBzZWFyY2hGaWVsZC5rZXkpXG4gICAgfSBhcyB2YXJzXCJcbiAgPlxuICAgIDxuZy1jb250YWluZXJcbiAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgIHNlYXJjaEZpZWxkVGVtcGxhdGVUZXh0O1xuICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgc2VhcmNoRmllbGQ6IHNlYXJjaEZpZWxkLFxuICAgICAgICAgIHRvb2x0aXBLZXk6IHZhcnMudG9vbHRpcEtleSxcbiAgICAgICAgICB0b29sdGlwOiB2YXJzLnRvb2x0aXAsXG4gICAgICAgICAgdGl0bGU6IHZhcnMudGl0bGUsXG4gICAgICAgICAgdmFsdWVzOiB2YXJzLnZhbHVlc1xuICAgICAgICB9XG4gICAgICBcIlxuICAgID48L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICBzZWFyY2hGaWVsZFRlbXBsYXRlTnVtYmVyO1xuICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgc2VhcmNoRmllbGQ6IHNlYXJjaEZpZWxkLFxuICAgICAgICAgIHRvb2x0aXBLZXk6IHZhcnMudG9vbHRpcEtleSxcbiAgICAgICAgICB0b29sdGlwOiB2YXJzLnRvb2x0aXAsXG4gICAgICAgICAgdGl0bGU6IHZhcnMudGl0bGUsXG4gICAgICAgICAgdmFsdWVzOiB2YXJzLnZhbHVlc1xuICAgICAgICB9XG4gICAgICBcIlxuICAgID48L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICBzZWFyY2hGaWVsZFRlbXBsYXRlRGF0ZTtcbiAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgIHNlYXJjaEZpZWxkOiBzZWFyY2hGaWVsZCxcbiAgICAgICAgICB0b29sdGlwS2V5OiB2YXJzLnRvb2x0aXBLZXksXG4gICAgICAgICAgdG9vbHRpcDogdmFycy50b29sdGlwLFxuICAgICAgICAgIHRpdGxlOiB2YXJzLnRpdGxlLFxuICAgICAgICAgIHZhbHVlczogdmFycy52YWx1ZXNcbiAgICAgICAgfVxuICAgICAgXCJcbiAgICA+PC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgc2VhcmNoRmllbGRUZW1wbGF0ZUJvb2xlYW47XG4gICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICBzZWFyY2hGaWVsZDogc2VhcmNoRmllbGQsXG4gICAgICAgICAgdG9vbHRpcEtleTogdmFycy50b29sdGlwS2V5LFxuICAgICAgICAgIHRvb2x0aXA6IHZhcnMudG9vbHRpcCxcbiAgICAgICAgICB0aXRsZTogdmFycy50aXRsZSxcbiAgICAgICAgICB2YWx1ZXM6IHZhcnMudmFsdWVzXG4gICAgICAgIH1cbiAgICAgIFwiXG4gICAgPjwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXJcbiAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgIHNlYXJjaEZpZWxkVGVtcGxhdGVEYXRlVGltZTtcbiAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgIHNlYXJjaEZpZWxkOiBzZWFyY2hGaWVsZCxcbiAgICAgICAgICB0b29sdGlwS2V5OiB2YXJzLnRvb2x0aXBLZXksXG4gICAgICAgICAgdG9vbHRpcDogdmFycy50b29sdGlwLFxuICAgICAgICAgIHRpdGxlOiB2YXJzLnRpdGxlLFxuICAgICAgICAgIHZhbHVlczogdmFycy52YWx1ZXNcbiAgICAgICAgfVxuICAgICAgXCJcbiAgICA+PC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgc2VhcmNoRmllbGRUZW1wbGF0ZU51bWJlclJhbmdlO1xuICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgc2VhcmNoRmllbGQ6IHNlYXJjaEZpZWxkLFxuICAgICAgICAgIHRvb2x0aXBLZXk6IHZhcnMudG9vbHRpcEtleSxcbiAgICAgICAgICB0b29sdGlwOiB2YXJzLnRvb2x0aXAsXG4gICAgICAgICAgdGl0bGU6IHZhcnMudGl0bGUsXG4gICAgICAgICAgdmFsdWVzOiB2YXJzLnZhbHVlc1xuICAgICAgICB9XG4gICAgICBcIlxuICAgID48L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICBzZWFyY2hGaWVsZFRlbXBsYXRlVGV4dFJhbmdlO1xuICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgc2VhcmNoRmllbGQ6IHNlYXJjaEZpZWxkLFxuICAgICAgICAgIHRvb2x0aXBLZXk6IHZhcnMudG9vbHRpcEtleSxcbiAgICAgICAgICB0b29sdGlwOiB2YXJzLnRvb2x0aXAsXG4gICAgICAgICAgdGl0bGU6IHZhcnMudGl0bGUsXG4gICAgICAgICAgdmFsdWVzOiB2YXJzLnZhbHVlc1xuICAgICAgICB9XG4gICAgICBcIlxuICAgID48L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICBzZWFyY2hGaWVsZFRlbXBsYXRlRGF0ZVJhbmdlO1xuICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgc2VhcmNoRmllbGQ6IHNlYXJjaEZpZWxkLFxuICAgICAgICAgIHRvb2x0aXBLZXk6IHZhcnMudG9vbHRpcEtleSxcbiAgICAgICAgICB0b29sdGlwOiB2YXJzLnRvb2x0aXAsXG4gICAgICAgICAgdGl0bGU6IHZhcnMudGl0bGUsXG4gICAgICAgICAgdmFsdWVzOiB2YXJzLnZhbHVlc1xuICAgICAgICB9XG4gICAgICBcIlxuICAgID48L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICBzZWFyY2hGaWVsZFRlbXBsYXRlRGF0ZVRpbWVSYW5nZTtcbiAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgIHNlYXJjaEZpZWxkOiBzZWFyY2hGaWVsZCxcbiAgICAgICAgICB0b29sdGlwS2V5OiB2YXJzLnRvb2x0aXBLZXksXG4gICAgICAgICAgdG9vbHRpcDogdmFycy50b29sdGlwLFxuICAgICAgICAgIHRpdGxlOiB2YXJzLnRpdGxlLFxuICAgICAgICAgIHZhbHVlczogdmFycy52YWx1ZXNcbiAgICAgICAgfVxuICAgICAgXCJcbiAgICA+PC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgc2VhcmNoRmllbGRUZW1wbGF0ZVNpbmdsZVNlbGVjdERyb3Bkb3duO1xuICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgc2VhcmNoRmllbGQ6IHNlYXJjaEZpZWxkLFxuICAgICAgICAgIHRvb2x0aXBLZXk6IHZhcnMudG9vbHRpcEtleSxcbiAgICAgICAgICB0b29sdGlwOiB2YXJzLnRvb2x0aXAsXG4gICAgICAgICAgdGl0bGU6IHZhcnMudGl0bGUsXG4gICAgICAgICAgdmFsdWVzOiB2YXJzLnZhbHVlc1xuICAgICAgICB9XG4gICAgICBcIlxuICAgID48L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICBzZWFyY2hGaWVsZFRlbXBsYXRlTXVsdGlTZWxlY3REcm9wZG93bjtcbiAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgIHNlYXJjaEZpZWxkOiBzZWFyY2hGaWVsZCxcbiAgICAgICAgICB0b29sdGlwS2V5OiB2YXJzLnRvb2x0aXBLZXksXG4gICAgICAgICAgdG9vbHRpcDogdmFycy50b29sdGlwLFxuICAgICAgICAgIHRpdGxlOiB2YXJzLnRpdGxlLFxuICAgICAgICAgIHZhbHVlczogdmFycy52YWx1ZXNcbiAgICAgICAgfVxuICAgICAgXCJcbiAgICA+PC9uZy1jb250YWluZXI+XG4gIDwvbmctY29udGFpbmVyPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlXG4gICNzZWFyY2hGaWVsZFRlbXBsYXRlVGV4dFxuICBsZXQtc2VhcmNoRmllbGQ9XCJzZWFyY2hGaWVsZFwiXG4gIGxldC10b29sdGlwPVwidG9vbHRpcFwiXG4gIGxldC10b29sdGlwS2V5PVwidG9vbHRpcEtleVwiXG4gIGxldC10aXRsZT1cInRpdGxlXCJcbiAgbGV0LXZhbHVlcz1cInZhbHVlc1wiXG4+XG4gIDx2LWlucHV0XG4gICAgKm5nSWY9XCJzZWFyY2hGaWVsZC5kYXRhVHlwZSA9PT0gJ3RleHQnICYmIHNlYXJjaEZpZWxkLmZpZWxkVHlwZSA9PT0gJ3NpbmdsZSdcIlxuICAgIFtuYW1lXT1cInNlYXJjaEZpZWxkLmtleVwiXG4gICAgW3RpdGxlXT1cInRpdGxlXCJcbiAgICBbZnVsbFdpZHRoXT1cInRydWVcIlxuICAgIFt0b29sdGlwXT1cInRvb2x0aXAgIT09IHRvb2x0aXBLZXkgJiYgdG9vbHRpcFwiXG4gICAgKHZhbHVlQ2hhbmdlKT1cInNpbmdsZVZhbHVlQ2hhbmdlKHNlYXJjaEZpZWxkLmtleSwgJGV2ZW50KVwiXG4gICAgW3NtYWxsTGFiZWxdPVwidHJ1ZVwiXG4gICAgW2NsZWFyJF09XCJjbGVhciRcIlxuICAgIChrZXl1cC5lbnRlcik9XCJzZWFyY2goKVwiXG4gICAgW2RlZmF1bHRWYWx1ZV09XCJ2YWx1ZXNbc2VhcmNoRmllbGQua2V5XVwiXG4gID5cbiAgPC92LWlucHV0PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlXG4gICNzZWFyY2hGaWVsZFRlbXBsYXRlTnVtYmVyXG4gIGxldC1zZWFyY2hGaWVsZD1cInNlYXJjaEZpZWxkXCJcbiAgbGV0LXRvb2x0aXA9XCJ0b29sdGlwXCJcbiAgbGV0LXRvb2x0aXBLZXk9XCJ0b29sdGlwS2V5XCJcbiAgbGV0LXRpdGxlPVwidGl0bGVcIlxuICBsZXQtdmFsdWVzPVwidmFsdWVzXCJcbj5cbiAgPHYtaW5wdXRcbiAgICAqbmdJZj1cInNlYXJjaEZpZWxkLmRhdGFUeXBlID09PSAnbnVtYmVyJyAmJiBzZWFyY2hGaWVsZC5maWVsZFR5cGUgPT09ICdzaW5nbGUnXCJcbiAgICBbbmFtZV09XCJzZWFyY2hGaWVsZC5rZXlcIlxuICAgIFt0aXRsZV09XCJ0aXRsZVwiXG4gICAgW2Z1bGxXaWR0aF09XCJ0cnVlXCJcbiAgICAodmFsdWVDaGFuZ2UpPVwic2luZ2xlVmFsdWVDaGFuZ2Uoc2VhcmNoRmllbGQua2V5LCAkZXZlbnQpXCJcbiAgICB0eXBlPVwibnVtYmVyXCJcbiAgICBbaGlkZU51bWJlclNwaW5Cb3hdPVwidHJ1ZVwiXG4gICAgW3Rvb2x0aXBdPVwidG9vbHRpcCAhPT0gdG9vbHRpcEtleSAmJiB0b29sdGlwXCJcbiAgICBbc21hbGxMYWJlbF09XCJ0cnVlXCJcbiAgICBbY2xlYXIkXT1cImNsZWFyJFwiXG4gICAgKGtleXVwLmVudGVyKT1cInNlYXJjaCgpXCJcbiAgICBbZGVmYXVsdFZhbHVlXT1cInZhbHVlc1tzZWFyY2hGaWVsZC5rZXldXCJcbiAgPlxuICA8L3YtaW5wdXQ+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGVcbiAgI3NlYXJjaEZpZWxkVGVtcGxhdGVEYXRlXG4gIGxldC1zZWFyY2hGaWVsZD1cInNlYXJjaEZpZWxkXCJcbiAgbGV0LXRvb2x0aXA9XCJ0b29sdGlwXCJcbiAgbGV0LXRvb2x0aXBLZXk9XCJ0b29sdGlwS2V5XCJcbiAgbGV0LXRpdGxlPVwidGl0bGVcIlxuICBsZXQtdmFsdWVzPVwidmFsdWVzXCJcbj5cbiAgPHYtZGF0ZS1waWNrZXJcbiAgICAqbmdJZj1cInNlYXJjaEZpZWxkLmRhdGFUeXBlID09PSAnZGF0ZScgJiYgc2VhcmNoRmllbGQuZmllbGRUeXBlID09PSAnc2luZ2xlJ1wiXG4gICAgW3RpdGxlXT1cInRpdGxlXCJcbiAgICBbdG9vbHRpcF09XCJ0b29sdGlwICE9PSB0b29sdGlwS2V5ICYmIHRvb2x0aXBcIlxuICAgIFtuYW1lXT1cInNlYXJjaEZpZWxkLmtleVwiXG4gICAgZnVsbFdpZHRoPVwidHJ1ZVwiXG4gICAgKHZhbHVlQ2hhbmdlKT1cInNpbmdsZVZhbHVlQ2hhbmdlKHNlYXJjaEZpZWxkLmtleSwgJGV2ZW50KVwiXG4gICAgW3NtYWxsTGFiZWxdPVwidHJ1ZVwiXG4gICAgW2NsZWFyJF09XCJjbGVhciRcIlxuICAgIChrZXl1cC5lbnRlcik9XCJzZWFyY2goKVwiXG4gICAgW2RlZmF1bHREYXRlXT1cInZhbHVlc1tzZWFyY2hGaWVsZC5rZXldXCJcbiAgPjwvdi1kYXRlLXBpY2tlcj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZVxuICAjc2VhcmNoRmllbGRUZW1wbGF0ZVRleHRSYW5nZVxuICBsZXQtc2VhcmNoRmllbGQ9XCJzZWFyY2hGaWVsZFwiXG4gIGxldC10b29sdGlwPVwidG9vbHRpcFwiXG4gIGxldC10b29sdGlwS2V5PVwidG9vbHRpcEtleVwiXG4gIGxldC10aXRsZT1cInRpdGxlXCJcbiAgbGV0LXZhbHVlcz1cInZhbHVlc1wiXG4+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJzZWFyY2hGaWVsZC5kYXRhVHlwZSA9PT0gJ3RleHQnICYmIHNlYXJjaEZpZWxkLmZpZWxkVHlwZSA9PT0gJ3JhbmdlJ1wiPlxuICAgIDx2LWlucHV0LWxhYmVsXG4gICAgICBbdGl0bGVdPVwidGl0bGVcIlxuICAgICAgW3Rvb2x0aXBdPVwidG9vbHRpcCAhPT0gdG9vbHRpcEtleSAmJiB0b29sdGlwXCJcbiAgICAgIFtzbWFsbF09XCJ0cnVlXCJcbiAgICA+PC92LWlucHV0LWxhYmVsPlxuICAgIDx2LWZvcm1cbiAgICAgICh2YWx1ZUNoYW5nZSk9XCJtdWx0aXBsZVZhbHVlQ2hhbmdlKHNlYXJjaEZpZWxkLmtleSwgJGV2ZW50KVwiXG4gICAgICBjbGFzc05hbWU9XCJtdWx0aXBsZS1zZWFyY2gtZmllbGRzXCJcbiAgICA+XG4gICAgICA8di1pbnB1dFxuICAgICAgICBuYW1lPVwic3RhcnRcIlxuICAgICAgICBbZnVsbFdpZHRoXT1cInRydWVcIlxuICAgICAgICBbY2xlYXIkXT1cImNsZWFyJFwiXG4gICAgICAgIChrZXl1cC5lbnRlcik9XCJzZWFyY2goKVwiXG4gICAgICAgIFtkZWZhdWx0VmFsdWVdPVwidmFsdWVzW3NlYXJjaEZpZWxkLmtleV0/LnN0YXJ0XCJcbiAgICAgID5cbiAgICAgIDwvdi1pbnB1dD5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0b1RleHRcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDx2LWlucHV0XG4gICAgICAgIG5hbWU9XCJlbmRcIlxuICAgICAgICBbZnVsbFdpZHRoXT1cInRydWVcIlxuICAgICAgICBbY2xlYXIkXT1cImNsZWFyJFwiXG4gICAgICAgIChrZXl1cC5lbnRlcik9XCJzZWFyY2goKVwiXG4gICAgICAgIFtkZWZhdWx0VmFsdWVdPVwidmFsdWVzW3NlYXJjaEZpZWxkLmtleV0/LmVuZFwiXG4gICAgICA+XG4gICAgICA8L3YtaW5wdXQ+XG4gICAgPC92LWZvcm0+XG4gIDwvbmctY29udGFpbmVyPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlXG4gICNzZWFyY2hGaWVsZFRlbXBsYXRlTnVtYmVyUmFuZ2VcbiAgbGV0LXNlYXJjaEZpZWxkPVwic2VhcmNoRmllbGRcIlxuICBsZXQtdG9vbHRpcD1cInRvb2x0aXBcIlxuICBsZXQtdG9vbHRpcEtleT1cInRvb2x0aXBLZXlcIlxuICBsZXQtdGl0bGU9XCJ0aXRsZVwiXG4gIGxldC12YWx1ZXM9XCJ2YWx1ZXNcIlxuPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwic2VhcmNoRmllbGQuZGF0YVR5cGUgPT09ICdudW1iZXInICYmIHNlYXJjaEZpZWxkLmZpZWxkVHlwZSA9PT0gJ3JhbmdlJ1wiPlxuICAgIDx2LWlucHV0LWxhYmVsXG4gICAgICBbdGl0bGVdPVwidGl0bGVcIlxuICAgICAgW3Rvb2x0aXBdPVwidG9vbHRpcCAhPT0gdG9vbHRpcEtleSAmJiB0b29sdGlwXCJcbiAgICAgIFtzbWFsbF09XCJ0cnVlXCJcbiAgICA+PC92LWlucHV0LWxhYmVsPlxuICAgIDx2LWZvcm1cbiAgICAgICh2YWx1ZUNoYW5nZSk9XCJtdWx0aXBsZVZhbHVlQ2hhbmdlKHNlYXJjaEZpZWxkLmtleSwgJGV2ZW50KVwiXG4gICAgICBjbGFzc05hbWU9XCJtdWx0aXBsZS1zZWFyY2gtZmllbGRzXCJcbiAgICA+XG4gICAgICA8di1pbnB1dFxuICAgICAgICBuYW1lPVwic3RhcnRcIlxuICAgICAgICBbZnVsbFdpZHRoXT1cInRydWVcIlxuICAgICAgICB0eXBlPVwibnVtYmVyXCJcbiAgICAgICAgW2hpZGVOdW1iZXJTcGluQm94XT1cInRydWVcIlxuICAgICAgICBbY2xlYXIkXT1cImNsZWFyJFwiXG4gICAgICAgIChrZXl1cC5lbnRlcik9XCJzZWFyY2goKVwiXG4gICAgICAgIFtkZWZhdWx0VmFsdWVdPVwidmFsdWVzW3NlYXJjaEZpZWxkLmtleV0/LnN0YXJ0XCJcbiAgICAgID5cbiAgICAgIDwvdi1pbnB1dD5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0b1RleHRcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDx2LWlucHV0XG4gICAgICAgIG5hbWU9XCJlbmRcIlxuICAgICAgICBbZnVsbFdpZHRoXT1cInRydWVcIlxuICAgICAgICB0eXBlPVwibnVtYmVyXCJcbiAgICAgICAgW2hpZGVOdW1iZXJTcGluQm94XT1cInRydWVcIlxuICAgICAgICBbY2xlYXIkXT1cImNsZWFyJFwiXG4gICAgICAgIChrZXl1cC5lbnRlcik9XCJzZWFyY2goKVwiXG4gICAgICAgIFtkZWZhdWx0VmFsdWVdPVwidmFsdWVzW3NlYXJjaEZpZWxkLmtleV0/LmVuZFwiXG4gICAgICA+XG4gICAgICA8L3YtaW5wdXQ+XG4gICAgPC92LWZvcm0+XG4gIDwvbmctY29udGFpbmVyPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlXG4gICNzZWFyY2hGaWVsZFRlbXBsYXRlRGF0ZVJhbmdlXG4gIGxldC1zZWFyY2hGaWVsZD1cInNlYXJjaEZpZWxkXCJcbiAgbGV0LXRvb2x0aXA9XCJ0b29sdGlwXCJcbiAgbGV0LXRvb2x0aXBLZXk9XCJ0b29sdGlwS2V5XCJcbiAgbGV0LXRpdGxlPVwidGl0bGVcIlxuICBsZXQtdmFsdWVzPVwidmFsdWVzXCJcbj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNlYXJjaEZpZWxkLmRhdGFUeXBlID09PSAnZGF0ZScgJiYgc2VhcmNoRmllbGQuZmllbGRUeXBlID09PSAncmFuZ2UnXCI+XG4gICAgPHYtaW5wdXQtbGFiZWxcbiAgICAgIFt0aXRsZV09XCJ0aXRsZVwiXG4gICAgICBbdG9vbHRpcF09XCJ0b29sdGlwICE9PSB0b29sdGlwS2V5ICYmIHRvb2x0aXBcIlxuICAgICAgW3NtYWxsXT1cInRydWVcIlxuICAgID48L3YtaW5wdXQtbGFiZWw+XG4gICAgPHYtZm9ybVxuICAgICAgKHZhbHVlQ2hhbmdlKT1cIm11bHRpcGxlVmFsdWVDaGFuZ2Uoc2VhcmNoRmllbGQua2V5LCAkZXZlbnQpXCJcbiAgICAgIGNsYXNzTmFtZT1cIm11bHRpcGxlLXNlYXJjaC1maWVsZHNcIlxuICAgID5cbiAgICAgIDx2LWRhdGUtcGlja2VyXG4gICAgICAgIG5hbWU9XCJzdGFydFwiXG4gICAgICAgIGZ1bGxXaWR0aD1cInRydWVcIlxuICAgICAgICBbY2xlYXIkXT1cImNsZWFyJFwiXG4gICAgICAgIChrZXl1cC5lbnRlcik9XCJzZWFyY2goKVwiXG4gICAgICAgIFtkZWZhdWx0RGF0ZV09XCJ2YWx1ZXNbc2VhcmNoRmllbGQua2V5XT8uc3RhcnRcIlxuICAgICAgPjwvdi1kYXRlLXBpY2tlcj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0b1RleHRcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDx2LWRhdGUtcGlja2VyXG4gICAgICAgIG5hbWU9XCJlbmRcIlxuICAgICAgICBmdWxsV2lkdGg9XCJ0cnVlXCJcbiAgICAgICAgW2NsZWFyJF09XCJjbGVhciRcIlxuICAgICAgICAoa2V5dXAuZW50ZXIpPVwic2VhcmNoKClcIlxuICAgICAgICBbZGVmYXVsdERhdGVdPVwidmFsdWVzW3NlYXJjaEZpZWxkLmtleV0/LmVuZFwiXG4gICAgICA+PC92LWRhdGUtcGlja2VyPlxuICAgIDwvdi1mb3JtPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZVxuICAjc2VhcmNoRmllbGRUZW1wbGF0ZUJvb2xlYW5cbiAgbGV0LXNlYXJjaEZpZWxkPVwic2VhcmNoRmllbGRcIlxuICBsZXQtdG9vbHRpcD1cInRvb2x0aXBcIlxuICBsZXQtdG9vbHRpcEtleT1cInRvb2x0aXBLZXlcIlxuICBsZXQtdGl0bGU9XCJ0aXRsZVwiXG4gIGxldC12YWx1ZXM9XCJ2YWx1ZXNcIlxuPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwic2VhcmNoRmllbGQuZGF0YVR5cGUgPT09ICdib29sZWFuJ1wiPlxuICAgIDx2LWlucHV0LWxhYmVsXG4gICAgICBbdGl0bGVdPVwidGl0bGVcIlxuICAgICAgW3Rvb2x0aXBdPVwidG9vbHRpcCAhPT0gdG9vbHRpcEtleSAmJiB0b29sdGlwXCJcbiAgICAgIFtzbWFsbF09XCJ0cnVlXCJcbiAgICA+PC92LWlucHV0LWxhYmVsPlxuICAgIDx2LXNlbGVjdFxuICAgICAgKm5nSWY9XCJib29sZWFuSXRlbXMkIHwgYXN5bmMgYXMgYm9vbGVhbkl0ZW1zXCJcbiAgICAgIFtpdGVtc109XCJib29sZWFuSXRlbXNcIlxuICAgICAgW21hcmdpbl09XCJmYWxzZVwiXG4gICAgICBbcmVxdWlyZWRdPVwiZmFsc2VcIlxuICAgICAgW3dpZHRoSW5QeF09XCIyMDBcIlxuICAgICAgW25hbWVdPVwic2VhcmNoRmllbGQua2V5XCJcbiAgICAgIFtjbGVhclNlbGVjdGlvblN1YmplY3QkXT1cImNsZWFyJFwiXG4gICAgICAoc2VsZWN0ZWRDaGFuZ2UpPVwic2luZ2xlVmFsdWVDaGFuZ2Uoc2VhcmNoRmllbGQua2V5LCAkZXZlbnQpXCJcbiAgICAgIChrZXl1cC5lbnRlcik9XCJzZWFyY2goKVwiXG4gICAgICBbZGVmYXVsdFNlbGVjdGlvbklkXT1cImdldERlZmF1bHRCb29sZWFuU2VsZWN0aW9uSWQodmFsdWVzLCBzZWFyY2hGaWVsZC5rZXkpXCJcbiAgICA+PC92LXNlbGVjdD5cbiAgPC9uZy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGVcbiAgI3NlYXJjaEZpZWxkVGVtcGxhdGVEYXRlVGltZVxuICBsZXQtc2VhcmNoRmllbGQ9XCJzZWFyY2hGaWVsZFwiXG4gIGxldC10b29sdGlwPVwidG9vbHRpcFwiXG4gIGxldC10b29sdGlwS2V5PVwidG9vbHRpcEtleVwiXG4gIGxldC10aXRsZT1cInRpdGxlXCJcbiAgbGV0LXZhbHVlcz1cInZhbHVlc1wiXG4+XG4gIDx2LWRhdGUtcGlja2VyXG4gICAgKm5nSWY9XCJzZWFyY2hGaWVsZC5kYXRhVHlwZSA9PT0gJ2RhdGV0aW1lJyAmJiBzZWFyY2hGaWVsZC5maWVsZFR5cGUgPT09ICdzaW5nbGUnXCJcbiAgICBbdGl0bGVdPVwidGl0bGVcIlxuICAgIFt0b29sdGlwXT1cInRvb2x0aXAgIT09IHRvb2x0aXBLZXkgJiYgdG9vbHRpcFwiXG4gICAgW25hbWVdPVwic2VhcmNoRmllbGQua2V5XCJcbiAgICBmdWxsV2lkdGg9XCJ0cnVlXCJcbiAgICAodmFsdWVDaGFuZ2UpPVwic2luZ2xlVmFsdWVDaGFuZ2Uoc2VhcmNoRmllbGQua2V5LCAkZXZlbnQsIHRydWUpXCJcbiAgICBbc21hbGxMYWJlbF09XCJ0cnVlXCJcbiAgICBbZW5hYmxlVGltZV09XCJ0cnVlXCJcbiAgICBbY2xlYXIkXT1cImNsZWFyJFwiXG4gICAgKGtleXVwLmVudGVyKT1cInNlYXJjaCgpXCJcbiAgICBbZGVmYXVsdERhdGVdPVwidmFsdWVzW3NlYXJjaEZpZWxkLmtleV1cIlxuICA+PC92LWRhdGUtcGlja2VyPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlXG4gICNzZWFyY2hGaWVsZFRlbXBsYXRlRGF0ZVRpbWVSYW5nZVxuICBsZXQtc2VhcmNoRmllbGQ9XCJzZWFyY2hGaWVsZFwiXG4gIGxldC10b29sdGlwPVwidG9vbHRpcFwiXG4gIGxldC10b29sdGlwS2V5PVwidG9vbHRpcEtleVwiXG4gIGxldC10aXRsZT1cInRpdGxlXCJcbiAgbGV0LXZhbHVlcz1cInZhbHVlc1wiXG4+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJzZWFyY2hGaWVsZC5kYXRhVHlwZSA9PT0gJ2RhdGV0aW1lJyAmJiBzZWFyY2hGaWVsZC5maWVsZFR5cGUgPT09ICdyYW5nZSdcIj5cbiAgICA8di1pbnB1dC1sYWJlbFxuICAgICAgW3RpdGxlXT1cInRpdGxlXCJcbiAgICAgIFt0b29sdGlwXT1cInRvb2x0aXAgIT09IHRvb2x0aXBLZXkgJiYgdG9vbHRpcFwiXG4gICAgICBbc21hbGxdPVwidHJ1ZVwiXG4gICAgPjwvdi1pbnB1dC1sYWJlbD5cbiAgICA8di1mb3JtXG4gICAgICAodmFsdWVDaGFuZ2UpPVwibXVsdGlwbGVWYWx1ZUNoYW5nZShzZWFyY2hGaWVsZC5rZXksICRldmVudCwgdHJ1ZSlcIlxuICAgICAgY2xhc3NOYW1lPVwibXVsdGlwbGUtc2VhcmNoLWZpZWxkc1wiXG4gICAgPlxuICAgICAgPHYtZGF0ZS1waWNrZXJcbiAgICAgICAgbmFtZT1cInN0YXJ0XCJcbiAgICAgICAgZnVsbFdpZHRoPVwidHJ1ZVwiXG4gICAgICAgIFtlbmFibGVUaW1lXT1cInRydWVcIlxuICAgICAgICBbY2xlYXIkXT1cImNsZWFyJFwiXG4gICAgICAgIChrZXl1cC5lbnRlcik9XCJzZWFyY2goKVwiXG4gICAgICAgIFtkZWZhdWx0RGF0ZV09XCJ2YWx1ZXNbc2VhcmNoRmllbGQua2V5XT8uc3RhcnRcIlxuICAgICAgPjwvdi1kYXRlLXBpY2tlcj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0b1RleHRcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDx2LWRhdGUtcGlja2VyXG4gICAgICAgIG5hbWU9XCJlbmRcIlxuICAgICAgICBmdWxsV2lkdGg9XCJ0cnVlXCJcbiAgICAgICAgW2VuYWJsZVRpbWVdPVwidHJ1ZVwiXG4gICAgICAgIFtjbGVhciRdPVwiY2xlYXIkXCJcbiAgICAgICAgKGtleXVwLmVudGVyKT1cInNlYXJjaCgpXCJcbiAgICAgICAgW2RlZmF1bHREYXRlXT1cInZhbHVlc1tzZWFyY2hGaWVsZC5rZXldPy5lbmRcIlxuICAgICAgPjwvdi1kYXRlLXBpY2tlcj5cbiAgICA8L3YtZm9ybT5cbiAgPC9uZy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGVcbiAgI3NlYXJjaEZpZWxkVGVtcGxhdGVTaW5nbGVTZWxlY3REcm9wZG93blxuICBsZXQtc2VhcmNoRmllbGQ9XCJzZWFyY2hGaWVsZFwiXG4gIGxldC10b29sdGlwPVwidG9vbHRpcFwiXG4gIGxldC10b29sdGlwS2V5PVwidG9vbHRpcEtleVwiXG4gIGxldC10aXRsZT1cInRpdGxlXCJcbiAgbGV0LXZhbHVlcz1cInZhbHVlc1wiXG4+XG4gIDxuZy1jb250YWluZXJcbiAgICAqbmdJZj1cInNlYXJjaEZpZWxkLmRhdGFUeXBlID09PSAndGV4dCcgJiYgc2VhcmNoRmllbGQuZmllbGRUeXBlID09PSAnc2luZ2xlLXNlbGVjdC1kcm9wZG93bidcIlxuICA+XG4gICAgPHYtaW5wdXQtbGFiZWxcbiAgICAgIFt0aXRsZV09XCJ0aXRsZVwiXG4gICAgICBbdG9vbHRpcF09XCJ0b29sdGlwICE9PSB0b29sdGlwS2V5ICYmIHRvb2x0aXBcIlxuICAgICAgW3NtYWxsXT1cInRydWVcIlxuICAgID48L3YtaW5wdXQtbGFiZWw+XG4gICAgPHYtc2VsZWN0XG4gICAgICAqbmdJZj1cImRyb3Bkb3duU2VsZWN0SXRlbXNNYXBbc2VhcmNoRmllbGQua2V5XSBhcyBzZWFyY2hGaWVsZFNlbGVjdEl0ZW1zXCJcbiAgICAgIFtpdGVtc109XCJzZWFyY2hGaWVsZFNlbGVjdEl0ZW1zXCJcbiAgICAgIFttYXJnaW5dPVwiZmFsc2VcIlxuICAgICAgW3JlcXVpcmVkXT1cImZhbHNlXCJcbiAgICAgIFt3aWR0aEluUHhdPVwiMjAwXCJcbiAgICAgIFtuYW1lXT1cInNlYXJjaEZpZWxkLmtleVwiXG4gICAgICBbY2xlYXJTZWxlY3Rpb25TdWJqZWN0JF09XCJjbGVhciRcIlxuICAgICAgKHNlbGVjdGVkQ2hhbmdlKT1cInNpbmdsZVZhbHVlQ2hhbmdlKHNlYXJjaEZpZWxkLmtleSwgJGV2ZW50KVwiXG4gICAgICAoa2V5dXAuZW50ZXIpPVwic2VhcmNoKClcIlxuICAgICAgW2RlZmF1bHRTZWxlY3Rpb25JZF09XCJ2YWx1ZXNbc2VhcmNoRmllbGQua2V5XVwiXG4gICAgPjwvdi1zZWxlY3Q+XG4gIDwvbmctY29udGFpbmVyPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlXG4gICNzZWFyY2hGaWVsZFRlbXBsYXRlTXVsdGlTZWxlY3REcm9wZG93blxuICBsZXQtc2VhcmNoRmllbGQ9XCJzZWFyY2hGaWVsZFwiXG4gIGxldC10b29sdGlwPVwidG9vbHRpcFwiXG4gIGxldC10b29sdGlwS2V5PVwidG9vbHRpcEtleVwiXG4gIGxldC10aXRsZT1cInRpdGxlXCJcbiAgbGV0LXZhbHVlcz1cInZhbHVlc1wiXG4+XG4gIDxuZy1jb250YWluZXJcbiAgICAqbmdJZj1cInNlYXJjaEZpZWxkLmRhdGFUeXBlID09PSAndGV4dCcgJiYgc2VhcmNoRmllbGQuZmllbGRUeXBlID09PSAnbXVsdGktc2VsZWN0LWRyb3Bkb3duJ1wiXG4gID5cbiAgICA8di1pbnB1dC1sYWJlbFxuICAgICAgW3RpdGxlXT1cInRpdGxlXCJcbiAgICAgIFt0b29sdGlwXT1cInRvb2x0aXAgIT09IHRvb2x0aXBLZXkgJiYgdG9vbHRpcFwiXG4gICAgICBbc21hbGxdPVwidHJ1ZVwiXG4gICAgPjwvdi1pbnB1dC1sYWJlbD5cbiAgICA8di1zZWxlY3RcbiAgICAgICpuZ0lmPVwiZHJvcGRvd25TZWxlY3RJdGVtc01hcFtzZWFyY2hGaWVsZC5rZXldIGFzIHNlYXJjaEZpZWxkU2VsZWN0SXRlbXNcIlxuICAgICAgW2l0ZW1zXT1cInNlYXJjaEZpZWxkU2VsZWN0SXRlbXNcIlxuICAgICAgW21hcmdpbl09XCJmYWxzZVwiXG4gICAgICBbbXVsdGlwbGVdPVwidHJ1ZVwiXG4gICAgICBbcmVxdWlyZWRdPVwiZmFsc2VcIlxuICAgICAgW3dpZHRoSW5QeF09XCIyMDBcIlxuICAgICAgW25hbWVdPVwic2VhcmNoRmllbGQua2V5XCJcbiAgICAgIFtjbGVhclNlbGVjdGlvblN1YmplY3QkXT1cImNsZWFyJFwiXG4gICAgICAoc2VsZWN0ZWRDaGFuZ2UpPVwibXVsdGlwbGVWYWx1ZUNoYW5nZShzZWFyY2hGaWVsZC5rZXksICRldmVudClcIlxuICAgICAgKGtleXVwLmVudGVyKT1cInNlYXJjaCgpXCJcbiAgICAgIFtkZWZhdWx0U2VsZWN0aW9uSWRzXT1cInZhbHVlc1tzZWFyY2hGaWVsZC5rZXldXCJcbiAgICA+PC92LXNlbGVjdD5cbiAgPC9uZy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3RvVGV4dD5cbiAgPGRpdiBjbGFzcz1cInRvLXRleHRcIj5cbiAgICA8di1wYXJhZ3JhcGg+e3sgJ3NlYXJjaEZpZWxkcy50bycgfCB0cmFuc2xhdGUgfX08L3YtcGFyYWdyYXBoPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjYnV0dG9uc1RlbXBsYXRlIGxldC1ub1NlYXJjaEZpZWxkcz1cIm5vU2VhcmNoRmllbGRzXCI+XG4gIDxuZy1jb250YWluZXJcbiAgICAqbmdUZW1wbGF0ZU91dGxldD1cIm5vU2VhcmNoRmllbGRzVGVtcGxhdGU7IGNvbnRleHQ6IHtub1NlYXJjaEZpZWxkczogbm9TZWFyY2hGaWVsZHN9XCJcbiAgPjwvbmctY29udGFpbmVyPlxuICA8ZGl2IGNsYXNzPVwiYnV0dG9ucy1jb250YWluZXJcIiAqbmdJZj1cIntleHBhbmRlZDogZXhwYW5kZWQkIHwgYXN5bmN9IGFzIG9ic1wiPlxuICAgIDxkaXYgY2xhc3M9XCJyaWdodC1idXR0b25zXCI+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIChjbGljayk9XCJjbGVhcigpXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImxvYWRpbmcgfHwgbm9TZWFyY2hGaWVsZHNcIlxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgaWQ9XCJjbGVhclwiXG4gICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1zcGFjZSBidG4tc2Vjb25kYXJ5XCJcbiAgICAgICAgKm5nSWY9XCJvYnMuZXhwYW5kZWRcIlxuICAgICAgPlxuICAgICAgICB7eyAnc2VhcmNoRmllbGRzLmNsZWFyQnV0dG9uVGV4dCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvblxuICAgICAgICAoY2xpY2spPVwic2VhcmNoKClcIlxuICAgICAgICBbZGlzYWJsZWRdPVwibG9hZGluZyB8fCBub1NlYXJjaEZpZWxkcyB8fCAoaGFzVmFsaWRWYWx1ZXMkIHwgYXN5bmMpID09PSBmYWxzZVwiXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBpZD1cInNlYXJjaFwiXG4gICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1zcGFjZSBidG4tcHJpbWFyeVwiXG4gICAgICAgICpuZ0lmPVwib2JzLmV4cGFuZGVkXCJcbiAgICAgID5cbiAgICAgICAge3sgJ3NlYXJjaEZpZWxkcy5zZWFyY2hCdXR0b25UZXh0JyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNub1NlYXJjaEZpZWxkc1RlbXBsYXRlIGxldC1ub1NlYXJjaEZpZWxkcz1cIm5vU2VhcmNoRmllbGRzXCI+XG4gIDxkaXYgY2xhc3M9XCJ3LTEwMCBtYi0zXCIgKm5nSWY9XCJub1NlYXJjaEZpZWxkc1wiPlxuICAgIDx2LXBhcmFncmFwaCBbZnVsbFdpZHRoXT1cInRydWVcIiBbY2VudGVyXT1cInRydWVcIj57e1xuICAgICAgJ3NlYXJjaEZpZWxkcy5ub25lQ29uZmlndXJlZCcgfCB0cmFuc2xhdGVcbiAgICB9fTwvdi1wYXJhZ3JhcGg+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNidXR0b25BY2NvcmRpb24+XG4gIDxkaXYgY2xhc3M9XCJidXR0b25zLWNvbnRhaW5lclwiICpuZ0lmPVwie2V4cGFuZGVkOiBleHBhbmRlZCQgfCBhc3luY30gYXMgb2JzXCI+XG4gICAgPGJ1dHRvblxuICAgICAgW2Rpc2FibGVkXT1cImxvYWRpbmdcIlxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICBjbGFzcz1cImFjY29yZGlvbi1idXR0b25cIlxuICAgICAgKGNsaWNrKT1cInRvZ2dsZUV4cGFuZGVkKClcIlxuICAgICAgW25nQ2xhc3NdPVwiXG4gICAgICAgIG9icy5leHBhbmRlZCA/ICdtZGkgbWRpLWNoZXZyb24tcmlnaHQgYWNjb3JkaW9uLWJ1dHRvbi0tYWN0aXZlJyA6ICdtZGkgbWRpLWNoZXZyb24tZG93bidcbiAgICAgIFwiXG4gICAgPlxuICAgICAge3sgJ3NlYXJjaEZpZWxkcy5zZWFyY2hCdXR0b25UZXh0JyB8IHRyYW5zbGF0ZSB9fVxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -1,69 +0,0 @@
1
- /*
2
- * Copyright 2015-2023 Ritense BV, the Netherlands.
3
- *
4
- * Licensed under EUPL, Version 1.2 (the "License");
5
- * you may not use this file except in compliance with the License.
6
- * You may obtain a copy of the License at
7
- *
8
- * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
9
- *
10
- * Unless required by applicable law or agreed to in writing, software
11
- * distributed under the License is distributed on an "AS IS" basis,
12
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- * See the License for the specific language governing permissions and
14
- * limitations under the License.
15
- */
16
- import { NgModule } from '@angular/core';
17
- import { CommonModule } from '@angular/common';
18
- import { SearchFieldsComponent } from './search-fields.component';
19
- import { SpinnerModule } from '../spinner/spinner.module';
20
- import { WidgetModule } from '../widget/widget.module';
21
- import { TranslateModule } from '@ngx-translate/core';
22
- import { ButtonModule, DatePickerModule, FormModule, InputLabelModule, InputModule, ParagraphModule, SelectModule, } from '@valtimo/user-interface';
23
- import * as i0 from "@angular/core";
24
- export class SearchFieldsModule {
25
- }
26
- SearchFieldsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: SearchFieldsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
27
- SearchFieldsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: SearchFieldsModule, declarations: [SearchFieldsComponent], imports: [CommonModule,
28
- SpinnerModule,
29
- WidgetModule,
30
- TranslateModule,
31
- InputModule,
32
- FormModule,
33
- DatePickerModule,
34
- InputLabelModule,
35
- ParagraphModule,
36
- ButtonModule,
37
- SelectModule], exports: [SearchFieldsComponent] });
38
- SearchFieldsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: SearchFieldsModule, imports: [CommonModule,
39
- SpinnerModule,
40
- WidgetModule,
41
- TranslateModule,
42
- InputModule,
43
- FormModule,
44
- DatePickerModule,
45
- InputLabelModule,
46
- ParagraphModule,
47
- ButtonModule,
48
- SelectModule] });
49
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: SearchFieldsModule, decorators: [{
50
- type: NgModule,
51
- args: [{
52
- declarations: [SearchFieldsComponent],
53
- imports: [
54
- CommonModule,
55
- SpinnerModule,
56
- WidgetModule,
57
- TranslateModule,
58
- InputModule,
59
- FormModule,
60
- DatePickerModule,
61
- InputLabelModule,
62
- ParagraphModule,
63
- ButtonModule,
64
- SelectModule,
65
- ],
66
- exports: [SearchFieldsComponent],
67
- }]
68
- }] });
69
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWZpZWxkcy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL2NvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3NlYXJjaC1maWVsZHMvc2VhcmNoLWZpZWxkcy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFFSCxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUNoRSxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDeEQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ3JELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRCxPQUFPLEVBQ0wsWUFBWSxFQUNaLGdCQUFnQixFQUNoQixVQUFVLEVBQ1YsZ0JBQWdCLEVBQ2hCLFdBQVcsRUFDWCxlQUFlLEVBQ2YsWUFBWSxHQUNiLE1BQU0seUJBQXlCLENBQUM7O0FBbUJqQyxNQUFNLE9BQU8sa0JBQWtCOzsrR0FBbEIsa0JBQWtCO2dIQUFsQixrQkFBa0IsaUJBaEJkLHFCQUFxQixhQUVsQyxZQUFZO1FBQ1osYUFBYTtRQUNiLFlBQVk7UUFDWixlQUFlO1FBQ2YsV0FBVztRQUNYLFVBQVU7UUFDVixnQkFBZ0I7UUFDaEIsZ0JBQWdCO1FBQ2hCLGVBQWU7UUFDZixZQUFZO1FBQ1osWUFBWSxhQUVKLHFCQUFxQjtnSEFFcEIsa0JBQWtCLFlBZDNCLFlBQVk7UUFDWixhQUFhO1FBQ2IsWUFBWTtRQUNaLGVBQWU7UUFDZixXQUFXO1FBQ1gsVUFBVTtRQUNWLGdCQUFnQjtRQUNoQixnQkFBZ0I7UUFDaEIsZUFBZTtRQUNmLFlBQVk7UUFDWixZQUFZOzJGQUlILGtCQUFrQjtrQkFqQjlCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMscUJBQXFCLENBQUM7b0JBQ3JDLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLGFBQWE7d0JBQ2IsWUFBWTt3QkFDWixlQUFlO3dCQUNmLFdBQVc7d0JBQ1gsVUFBVTt3QkFDVixnQkFBZ0I7d0JBQ2hCLGdCQUFnQjt3QkFDaEIsZUFBZTt3QkFDZixZQUFZO3dCQUNaLFlBQVk7cUJBQ2I7b0JBQ0QsT0FBTyxFQUFFLENBQUMscUJBQXFCLENBQUM7aUJBQ2pDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjMgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHtOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7U2VhcmNoRmllbGRzQ29tcG9uZW50fSBmcm9tICcuL3NlYXJjaC1maWVsZHMuY29tcG9uZW50JztcbmltcG9ydCB7U3Bpbm5lck1vZHVsZX0gZnJvbSAnLi4vc3Bpbm5lci9zcGlubmVyLm1vZHVsZSc7XG5pbXBvcnQge1dpZGdldE1vZHVsZX0gZnJvbSAnLi4vd2lkZ2V0L3dpZGdldC5tb2R1bGUnO1xuaW1wb3J0IHtUcmFuc2xhdGVNb2R1bGV9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtcbiAgQnV0dG9uTW9kdWxlLFxuICBEYXRlUGlja2VyTW9kdWxlLFxuICBGb3JtTW9kdWxlLFxuICBJbnB1dExhYmVsTW9kdWxlLFxuICBJbnB1dE1vZHVsZSxcbiAgUGFyYWdyYXBoTW9kdWxlLFxuICBTZWxlY3RNb2R1bGUsXG59IGZyb20gJ0B2YWx0aW1vL3VzZXItaW50ZXJmYWNlJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbU2VhcmNoRmllbGRzQ29tcG9uZW50XSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBTcGlubmVyTW9kdWxlLFxuICAgIFdpZGdldE1vZHVsZSxcbiAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgSW5wdXRNb2R1bGUsXG4gICAgRm9ybU1vZHVsZSxcbiAgICBEYXRlUGlja2VyTW9kdWxlLFxuICAgIElucHV0TGFiZWxNb2R1bGUsXG4gICAgUGFyYWdyYXBoTW9kdWxlLFxuICAgIEJ1dHRvbk1vZHVsZSxcbiAgICBTZWxlY3RNb2R1bGUsXG4gIF0sXG4gIGV4cG9ydHM6IFtTZWFyY2hGaWVsZHNDb21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBTZWFyY2hGaWVsZHNNb2R1bGUge31cbiJdfQ==
@@ -1,32 +0,0 @@
1
- /*
2
- * Copyright 2015-2023 Ritense BV, the Netherlands.
3
- *
4
- * Licensed under EUPL, Version 1.2 (the "License");
5
- * you may not use this file except in compliance with the License.
6
- * You may obtain a copy of the License at
7
- *
8
- * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
9
- *
10
- * Unless required by applicable law or agreed to in writing, software
11
- * distributed under the License is distributed on an "AS IS" basis,
12
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- * See the License for the specific language governing permissions and
14
- * limitations under the License.
15
- */
16
- import { Component, Input } from '@angular/core';
17
- import * as i0 from "@angular/core";
18
- import * as i1 from "@angular/common";
19
- import * as i2 from "@ngx-translate/core";
20
- export class TimelineComponent {
21
- }
22
- TimelineComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TimelineComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
23
- TimelineComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: TimelineComponent, selector: "valtimo-timeline", inputs: { items: "items", actions: "actions" }, ngImport: i0, template: "<!--\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", styles: [".timeline-activity{font-size:100%}.timeline-summary p{font-size:.8rem}.actions-dropdown{position:absolute;top:12px;right:12px;cursor:pointer}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }] });
24
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TimelineComponent, decorators: [{
25
- type: Component,
26
- args: [{ selector: 'valtimo-timeline', template: "<!--\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", styles: [".timeline-activity{font-size:100%}.timeline-summary p{font-size:.8rem}.actions-dropdown{position:absolute;top:12px;right:12px;cursor:pointer}\n"] }]
27
- }], propDecorators: { items: [{
28
- type: Input
29
- }], actions: [{
30
- type: Input
31
- }] } });
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZWxpbmUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy90aW1lbGluZS90aW1lbGluZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL2NvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3RpbWVsaW5lL3RpbWVsaW5lLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsT0FBTyxFQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUMsTUFBTSxlQUFlLENBQUM7Ozs7QUFRL0MsTUFBTSxPQUFPLGlCQUFpQjs7OEdBQWpCLGlCQUFpQjtrR0FBakIsaUJBQWlCLHdHQ3hCOUIsNi9FQWdFQTsyRkR4Q2EsaUJBQWlCO2tCQUw3QixTQUFTOytCQUNFLGtCQUFrQjs4QkFLbkIsS0FBSztzQkFBYixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDIzIFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7Q29tcG9uZW50LCBJbnB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1RpbWVsaW5lSXRlbX0gZnJvbSAnLi4vLi4vbW9kZWxzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsdGltby10aW1lbGluZScsXG4gIHRlbXBsYXRlVXJsOiAnLi90aW1lbGluZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3RpbWVsaW5lLmNvbXBvbmVudC5jc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGltZWxpbmVDb21wb25lbnQge1xuICBASW5wdXQoKSBpdGVtczogQXJyYXk8VGltZWxpbmVJdGVtPjtcbiAgQElucHV0KCkgYWN0aW9ucz86IGFueVtdO1xufVxuIiwiPCEtLVxuICB+IENvcHlyaWdodCAyMDE1LTIwMjMgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICB+XG4gIH4gTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gIH4geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICB+IFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICB+XG4gIH4gaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICB+XG4gIH4gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICB+IGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAgfiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAgfiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gIH4gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gIC0tPlxuXG48ZGl2PlxuICA8ZGl2IGlkPVwibm8tcmVzdWx0c1wiIGNsYXNzPVwicC01XCIgKm5nSWY9XCJpdGVtcz8ubGVuZ3RoID09PSAwXCI+Tm8gcmVzdWx0IGZvdW5kPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJwYi01XCIgKm5nSWY9XCJpdGVtcz8ubGVuZ3RoID4gMFwiPlxuICAgIDx1bCBjbGFzcz1cInRpbWVsaW5lIG1iLTAgcHktNVwiPlxuICAgICAgPGxpIGNsYXNzPVwidGltZWxpbmUtaXRlbSBzdGF0dXMtZG9uZVwiICpuZ0Zvcj1cImxldCBpdGVtIG9mIGl0ZW1zXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0aW1lbGluZS1kYXRlXCI+XG4gICAgICAgICAgPHNwYW4+e3sgaXRlbS5kYXRlIH19PC9zcGFuPlxuICAgICAgICAgIDxiciAvPlxuICAgICAgICAgIDxzcGFuPnt7IGl0ZW0udGltZSB9fTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0aW1lbGluZS1jb250ZW50IG10LTFcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidGltZWxpbmUtaGVhZGVyIHAtMFwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aW1lbGluZS1hdXRob3JcIj57eyBpdGVtLnVzZXIgfX08L3NwYW4+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wZG93biBhY3Rpb25zLWRyb3Bkb3duXCIgKm5nSWY9XCJhY3Rpb25zPy5sZW5ndGggPiAwXCI+XG4gICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJkcm9wZG93bi10b2dnbGUgZC1ibG9ja1wiXG4gICAgICAgICAgICAgICAgaWQ9XCJkcm9wZG93bk1lbnVcIlxuICAgICAgICAgICAgICAgIGRhdGEtdG9nZ2xlPVwiZHJvcGRvd25cIlxuICAgICAgICAgICAgICAgIGFyaWEtaGFzcG9wdXA9XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICBhcmlhLWV4cGFuZGVkPVwiZmFsc2VcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJhY3Rpb24taWNvbiBpY29uIG1kaSBtZGktZG90cy12ZXJ0aWNhbFwiPjwvaT5cbiAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZHJvcGRvd24tbWVudVwiIGFyaWEtbGFiZWxsZWRieT1cImRyb3Bkb3duTWVudVwiPlxuICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwiYWN0aW9uLmNhbGxiYWNrKGl0ZW0sICRldmVudClcIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkcm9wZG93bi1pdGVtIHAtMlwiXG4gICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgYWN0aW9uIG9mIGFjdGlvbnNcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhY3Rpb24uaWNvbiAhPT0gbnVsbFwiPlxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb24gbWRpXCIgW25nQ2xhc3NdPVwiYWN0aW9uLmljb25cIj48L2k+XG4gICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgIHt7IGFjdGlvbj8ubGFiZWwgfHwgJy0nIH19XG4gICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGJyIC8+XG4gICAgICAgICAgICA8cCBjbGFzcz1cInRpbWVsaW5lLWFjdGl2aXR5XCI+e3sgaXRlbS5hY3Rpdml0eSB9fTwvcD5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aW1lbGluZS1zdW1tYXJ5XCI+XG4gICAgICAgICAgICAgIDxwPnt7IGl0ZW0uc3VtbWFyeVRyYW5zbGF0aW9uS2V5IHwgdHJhbnNsYXRlIDogaXRlbS5zdW1tYXJ5VHJhbnNsYXRpb25QYXJhbXMgfX08L3A+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2xpPlxuICAgIDwvdWw+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -1,18 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
- import { CtrlClickDirective } from './command-click.directive';
4
- import * as i0 from "@angular/core";
5
- export class CommandClickDirectiveModule {
6
- }
7
- CommandClickDirectiveModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CommandClickDirectiveModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
8
- CommandClickDirectiveModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: CommandClickDirectiveModule, declarations: [CtrlClickDirective], imports: [CommonModule], exports: [CtrlClickDirective] });
9
- CommandClickDirectiveModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CommandClickDirectiveModule, imports: [CommonModule] });
10
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CommandClickDirectiveModule, decorators: [{
11
- type: NgModule,
12
- args: [{
13
- declarations: [CtrlClickDirective],
14
- imports: [CommonModule],
15
- exports: [CtrlClickDirective],
16
- }]
17
- }] });
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZC1jbGljay1kaXJlY3RpdmUubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9jb21wb25lbnRzL3NyYy9saWIvZGlyZWN0aXZlcy9jb21tYW5kLWNsaWNrLWRpcmVjdGl2ZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sMkJBQTJCLENBQUM7O0FBTzdELE1BQU0sT0FBTywyQkFBMkI7O3dIQUEzQiwyQkFBMkI7eUhBQTNCLDJCQUEyQixpQkFKdkIsa0JBQWtCLGFBQ3ZCLFlBQVksYUFDWixrQkFBa0I7eUhBRWpCLDJCQUEyQixZQUg1QixZQUFZOzJGQUdYLDJCQUEyQjtrQkFMdkMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQztvQkFDbEMsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO29CQUN2QixPQUFPLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQztpQkFDOUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtDdHJsQ2xpY2tEaXJlY3RpdmV9IGZyb20gJy4vY29tbWFuZC1jbGljay5kaXJlY3RpdmUnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtDdHJsQ2xpY2tEaXJlY3RpdmVdLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgZXhwb3J0czogW0N0cmxDbGlja0RpcmVjdGl2ZV0sXG59KVxuZXhwb3J0IGNsYXNzIENvbW1hbmRDbGlja0RpcmVjdGl2ZU1vZHVsZSB7fVxuIl19