@valtimo/components 10.8.0 → 11.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (516) hide show
  1. package/assets/css/carbon-beagle-compatibility.scss +1 -1
  2. package/assets/css/carbon.scss +38 -6
  3. package/assets/css/design-tokens.css +408 -0
  4. package/{esm2020 → esm2022}/lib/components/alert/alert.component.mjs +4 -4
  5. package/{esm2020 → esm2022}/lib/components/alert/alert.module.mjs +5 -5
  6. package/{esm2020 → esm2022}/lib/components/alert/alert.service.mjs +4 -4
  7. package/{esm2020 → esm2022}/lib/components/bpmn-js-diagram/bpmn-js-diagram.component.mjs +4 -4
  8. package/{esm2020 → esm2022}/lib/components/bpmn-js-diagram/bpmn-js-diagram.module.mjs +5 -5
  9. package/{esm2020 → esm2022}/lib/components/breadcrumb-navigation/breadcrumb-navigation.component.mjs +4 -4
  10. package/{esm2020 → esm2022}/lib/components/breadcrumb-navigation/breadcrumb-navigation.module.mjs +5 -5
  11. package/esm2022/lib/components/breadcrumb-navigation/breadcrumb.service.mjs +118 -0
  12. package/esm2022/lib/components/button/button.component.mjs +99 -0
  13. package/esm2022/lib/components/button/button.module.mjs +37 -0
  14. package/{esm2020 → esm2022}/lib/components/camunda/form/camunda-form.components.mjs +4 -4
  15. package/{esm2020 → esm2022}/lib/components/camunda/form/camunda-form.module.mjs +5 -5
  16. package/{esm2020 → esm2022}/lib/components/camunda/form/custom/camunda-custom-form.component.mjs +4 -4
  17. package/{esm2020 → esm2022}/lib/components/camunda/form/custom/camunda-custom-form.module.mjs +5 -5
  18. package/{esm2020 → esm2022}/lib/components/camunda/form/generated/camunda-generated-form.component.mjs +4 -4
  19. package/{esm2020 → esm2022}/lib/components/camunda/form/generated/camunda-generated-form.module.mjs +14 -14
  20. package/{esm2020 → esm2022}/lib/components/camunda/form/generated/formfield/boolean/camunda-boolean-formfield.component.mjs +4 -4
  21. package/{esm2020 → esm2022}/lib/components/camunda/form/generated/formfield/camunda-formfield-generator.directive.mjs +4 -4
  22. package/{esm2020 → esm2022}/lib/components/camunda/form/generated/formfield/camunda-formfield.service.mjs +4 -4
  23. package/{esm2020 → esm2022}/lib/components/camunda/form/generated/formfield/choicefield/camunda-choicefield-formfield.component.mjs +4 -4
  24. package/{esm2020 → esm2022}/lib/components/camunda/form/generated/formfield/date/camunda-date-formfield.component.mjs +4 -4
  25. package/{esm2020 → esm2022}/lib/components/camunda/form/generated/formfield/enum/camunda-enum-formfield.component.mjs +4 -4
  26. package/{esm2020 → esm2022}/lib/components/camunda/form/generated/formfield/long/camunda-long-formfield.component.mjs +4 -4
  27. package/{esm2020 → esm2022}/lib/components/camunda/form/generated/formfield/string/camunda-string-formfield.component.mjs +4 -4
  28. package/{esm2020 → esm2022}/lib/components/camunda/form/generated/formfield/textarea/camunda-textarea-formfield.component.mjs +4 -4
  29. package/{esm2020 → esm2022}/lib/components/camunda/form/generated/formfield/validation/camunda-formfield-validation.component.mjs +4 -4
  30. package/esm2022/lib/components/carbon-list/CarbonListFilterPipe.directive.mjs +34 -0
  31. package/esm2022/lib/components/carbon-list/carbon-list.component.mjs +360 -0
  32. package/esm2022/lib/components/carbon-list/carbon-list.module.mjs +75 -0
  33. package/esm2022/lib/components/carbon-list/no-results/carbon-no-results.component.mjs +39 -0
  34. package/{esm2020 → esm2022}/lib/components/card/card.component.mjs +4 -4
  35. package/{esm2020 → esm2022}/lib/components/card/card.module.mjs +5 -5
  36. package/esm2022/lib/components/confirmation-modal/confirmation-modal.component.mjs +94 -0
  37. package/{esm2020 → esm2022}/lib/components/confirmation-modal/confirmation-modal.module.mjs +14 -14
  38. package/{esm2020 → esm2022}/lib/components/data-list/data-list.component.mjs +4 -4
  39. package/{esm2020 → esm2022}/lib/components/data-list/data-list.module.mjs +5 -5
  40. package/esm2022/lib/components/date-picker/date-picker.component.mjs +160 -0
  41. package/esm2022/lib/components/date-picker/date-picker.module.mjs +40 -0
  42. package/esm2022/lib/components/documenten-api-metadata-modal/documenten-api-metadata-modal.component.mjs +223 -0
  43. package/esm2022/lib/components/documenten-api-metadata-modal/documenten-api-metadata-modal.module.mjs +74 -0
  44. package/esm2022/lib/components/dropzone/dropzone.component.mjs +168 -0
  45. package/{esm2020 → esm2022}/lib/components/dropzone/dropzone.module.mjs +5 -5
  46. package/esm2022/lib/components/editor/editor.component.mjs +141 -0
  47. package/esm2022/lib/components/editor/editor.module.mjs +33 -0
  48. package/esm2022/lib/components/editor/editor.service.mjs +63 -0
  49. package/esm2022/lib/components/expansion-panel/expansion-panel.component.mjs +41 -0
  50. package/{esm2020 → esm2022}/lib/components/expansion-panel/expansion-panel.module.mjs +6 -6
  51. package/{esm2020 → esm2022}/lib/components/field-auto-focus/field-auto-focus.directive.mjs +4 -4
  52. package/{esm2020 → esm2022}/lib/components/field-auto-focus/field-auto-focus.module.mjs +5 -5
  53. package/{esm2020 → esm2022}/lib/components/file-size/file-size.module.mjs +5 -5
  54. package/{esm2020 → esm2022}/lib/components/file-size/file-size.pipe.mjs +4 -4
  55. package/{esm2020 → esm2022}/lib/components/filter-sidebar/filter-sidebar.component.mjs +4 -4
  56. package/{esm2020 → esm2022}/lib/components/filter-sidebar/filter-sidebar.module.mjs +5 -5
  57. package/esm2022/lib/components/form/form.component.mjs +136 -0
  58. package/esm2022/lib/components/form/form.module.mjs +33 -0
  59. package/{esm2020 → esm2022}/lib/components/form-io/documenten-api-uploader/documenten-api-uploader.component.mjs +4 -4
  60. package/{esm2020 → esm2022}/lib/components/form-io/form-io-builder.component.mjs +4 -4
  61. package/{esm2020 → esm2022}/lib/components/form-io/form-io-current-user/form-io-current-user.component.mjs +4 -4
  62. package/{esm2020 → esm2022}/lib/components/form-io/form-io-uploader/form-io-uploader.component.mjs +4 -4
  63. package/{esm2020 → esm2022}/lib/components/form-io/form-io.component.mjs +4 -4
  64. package/{esm2020 → esm2022}/lib/components/form-io/form-io.module.mjs +29 -29
  65. package/{esm2020 → esm2022}/lib/components/form-io/services/form-io-dom.service.mjs +4 -4
  66. package/{esm2020 → esm2022}/lib/components/form-io/services/form-io-state.service.mjs +4 -4
  67. package/esm2022/lib/components/input/input.component.mjs +168 -0
  68. package/esm2022/lib/components/input/input.module.mjs +59 -0
  69. package/esm2022/lib/components/input-label/input-label.component.mjs +81 -0
  70. package/esm2022/lib/components/input-label/input-label.module.mjs +55 -0
  71. package/esm2022/lib/components/left-sidebar/left-sidebar.component.mjs +148 -0
  72. package/{esm2020 → esm2022}/lib/components/left-sidebar/left-sidebar.module.mjs +18 -18
  73. package/{esm2020 → esm2022}/lib/components/list/ListFilterPipe.directive.mjs +4 -4
  74. package/esm2022/lib/components/list/list.component.mjs +202 -0
  75. package/{esm2020 → esm2022}/lib/components/list/list.module.mjs +5 -5
  76. package/{esm2020 → esm2022}/lib/components/menu/menu-item-text.component.mjs +5 -5
  77. package/{esm2020 → esm2022}/lib/components/menu/menu-routing.module.mjs +5 -5
  78. package/{esm2020 → esm2022}/lib/components/menu/menu.module.mjs +17 -17
  79. package/esm2022/lib/components/menu/menu.service.mjs +258 -0
  80. package/{esm2020 → esm2022}/lib/components/modal/modal.component.mjs +4 -4
  81. package/{esm2020 → esm2022}/lib/components/modal/modal.module.mjs +5 -5
  82. package/esm2022/lib/components/multi-input/carbon-multi-input.component.mjs +217 -0
  83. package/esm2022/lib/components/multi-input/carbon-multi-input.module.mjs +64 -0
  84. package/esm2022/lib/components/multi-input-form/multi-input-form.component.mjs +190 -0
  85. package/esm2022/lib/components/multi-input-form/multi-input-form.module.mjs +55 -0
  86. package/{esm2020 → esm2022}/lib/components/multiselect-dropdown/multiselect-dropdown.component.mjs +4 -4
  87. package/{esm2020 → esm2022}/lib/components/multiselect-dropdown/multiselect-dropdown.module.mjs +5 -5
  88. package/esm2022/lib/components/page/page-container/page-container.component.mjs +29 -0
  89. package/esm2022/lib/components/page/page-content/page-content.component.mjs +29 -0
  90. package/esm2022/lib/components/page/page-header/page-header.component.mjs +29 -0
  91. package/esm2022/lib/components/page/page-header-actions/page-header-actions.component.mjs +29 -0
  92. package/esm2022/lib/components/page/page-header-introduction/page-header-introduction.component.mjs +29 -0
  93. package/esm2022/lib/components/page/page.module.mjs +60 -0
  94. package/{esm2020 → esm2022}/lib/components/page-header/page-header.component.mjs +5 -5
  95. package/{esm2020 → esm2022}/lib/components/page-header/page-header.module.mjs +5 -5
  96. package/esm2022/lib/components/page-title/page-title.component.mjs +105 -0
  97. package/{esm2020 → esm2022}/lib/components/page-title/page-title.module.mjs +5 -5
  98. package/esm2022/lib/components/page-title/page-title.service.mjs +107 -0
  99. package/esm2022/lib/components/paragraph/paragraph.component.mjs +48 -0
  100. package/esm2022/lib/components/paragraph/paragraph.module.mjs +37 -0
  101. package/{esm2020 → esm2022}/lib/components/progress-bar/progress-bar.component.mjs +4 -4
  102. package/{esm2020 → esm2022}/lib/components/progress-bar/progress-bar.module.mjs +5 -5
  103. package/esm2022/lib/components/prompt/prompt.component.mjs +74 -0
  104. package/esm2022/lib/components/prompt/prompt.module.mjs +39 -0
  105. package/esm2022/lib/components/radio/radio.component.mjs +116 -0
  106. package/esm2022/lib/components/radio/radio.module.mjs +55 -0
  107. package/esm2022/lib/components/right-sidebar/right-sidebar.component.mjs +203 -0
  108. package/esm2022/lib/components/right-sidebar/right-sidebar.module.mjs +95 -0
  109. package/esm2022/lib/components/search-fields/search-fields.component.mjs +221 -0
  110. package/esm2022/lib/components/search-fields/search-fields.module.mjs +75 -0
  111. package/{esm2020 → esm2022}/lib/components/searchable-dropdown/searchable-dropdown.component.mjs +4 -4
  112. package/{esm2020 → esm2022}/lib/components/searchable-dropdown/searchable-dropdown.module.mjs +5 -5
  113. package/{esm2020 → esm2022}/lib/components/searchable-dropdown-select/searchable-dropdown-select.component.mjs +4 -4
  114. package/{esm2020 → esm2022}/lib/components/searchable-dropdown-select/searchable-dropdown-select.module.mjs +5 -5
  115. package/esm2022/lib/components/select/select.component.mjs +194 -0
  116. package/esm2022/lib/components/select/select.module.mjs +37 -0
  117. package/{esm2020 → esm2022}/lib/components/spinner/spinner.component.mjs +4 -4
  118. package/{esm2020 → esm2022}/lib/components/spinner/spinner.module.mjs +5 -5
  119. package/esm2022/lib/components/stepper/stepper-container/stepper-container.component.mjs +91 -0
  120. package/esm2022/lib/components/stepper/stepper-content/stepper-content.component.mjs +52 -0
  121. package/esm2022/lib/components/stepper/stepper-footer/stepper-footer.component.mjs +43 -0
  122. package/esm2022/lib/components/stepper/stepper-footer-step/stepper-footer-step.component.mjs +71 -0
  123. package/esm2022/lib/components/stepper/stepper-header/stepper-header.component.mjs +37 -0
  124. package/esm2022/lib/components/stepper/stepper-step/stepper-step.component.mjs +39 -0
  125. package/esm2022/lib/components/stepper/stepper.module.mjs +67 -0
  126. package/esm2022/lib/components/table/table.component.mjs +172 -0
  127. package/esm2022/lib/components/table/table.module.mjs +58 -0
  128. package/esm2022/lib/components/timeline/timeline.component.mjs +42 -0
  129. package/{esm2020 → esm2022}/lib/components/timeline/timeline.module.mjs +5 -5
  130. package/esm2022/lib/components/title/title.component.mjs +57 -0
  131. package/esm2022/lib/components/title/title.module.mjs +36 -0
  132. package/esm2022/lib/components/tooltip-icon/tooltip-icon.component.mjs +39 -0
  133. package/esm2022/lib/components/tooltip-icon/tooltip-icon.module.mjs +39 -0
  134. package/{esm2020 → esm2022}/lib/components/topbar/topbar.component.mjs +5 -5
  135. package/{esm2020 → esm2022}/lib/components/topbar/topbar.module.mjs +6 -6
  136. package/{esm2020 → esm2022}/lib/components/uploader/uploader-drag-drop.directive.mjs +4 -4
  137. package/{esm2020 → esm2022}/lib/components/uploader/uploader.component.mjs +4 -4
  138. package/{esm2020 → esm2022}/lib/components/uploader/uploader.module.mjs +5 -5
  139. package/esm2022/lib/components/v-card/card.component.mjs +80 -0
  140. package/esm2022/lib/components/v-card/card.module.mjs +38 -0
  141. package/esm2022/lib/components/v-modal/modal.component.mjs +71 -0
  142. package/esm2022/lib/components/v-modal/modal.module.mjs +37 -0
  143. package/{esm2020 → esm2022}/lib/components/version/version.service.mjs +4 -4
  144. package/{esm2020 → esm2022}/lib/components/view-content/view-content.service.mjs +4 -4
  145. package/{esm2020 → esm2022}/lib/components/webcam/webcam.component.mjs +4 -4
  146. package/{esm2020 → esm2022}/lib/components/webcam/webcam.module.mjs +5 -5
  147. package/{esm2020 → esm2022}/lib/components/widget/widget.component.mjs +4 -4
  148. package/{esm2020 → esm2022}/lib/components/widget/widget.module.mjs +5 -5
  149. package/esm2022/lib/directives/command-click/command-click-directive.module.mjs +33 -0
  150. package/esm2022/lib/directives/command-click/command-click.directive.mjs +52 -0
  151. package/esm2022/lib/directives/digit-only/digit-only.directive.mjs +283 -0
  152. package/esm2022/lib/directives/render-in-page-header/render-in-page-header-directive.module.mjs +33 -0
  153. package/esm2022/lib/directives/render-in-page-header/render-in-page-header.directive.mjs +43 -0
  154. package/esm2022/lib/directives/tooltip/tooltip.component.mjs +42 -0
  155. package/esm2022/lib/directives/tooltip/tooltip.directive.mjs +74 -0
  156. package/esm2022/lib/directives/tooltip/tooltip.module.mjs +35 -0
  157. package/esm2022/lib/directives/valtimo-cds-modal/valtimo-cds-modal-directive.module.mjs +33 -0
  158. package/esm2022/lib/directives/valtimo-cds-modal/valtimo-cds-modal.directive.mjs +68 -0
  159. package/esm2022/lib/models/button.model.mjs +17 -0
  160. package/esm2022/lib/models/carbon-list.model.mjs +21 -0
  161. package/esm2022/lib/models/carbon-pagination.model.mjs +21 -0
  162. package/esm2022/lib/models/editor.model.mjs +17 -0
  163. package/{esm2020/lib/models/list.model.mjs → esm2022/lib/models/form.model.mjs} +1 -1
  164. package/esm2022/lib/models/index.mjs +39 -0
  165. package/esm2022/lib/models/input.model.mjs +17 -0
  166. package/esm2022/lib/models/modal.model.mjs +17 -0
  167. package/{esm2020 → esm2022}/lib/models/multi-input.model.mjs +1 -1
  168. package/esm2022/lib/models/pagination.model.mjs +24 -0
  169. package/esm2022/lib/models/radio.model.mjs +17 -0
  170. package/esm2022/lib/models/select.model.mjs +17 -0
  171. package/esm2022/lib/models/sort.model.mjs +17 -0
  172. package/esm2022/lib/models/stepper.model.mjs +17 -0
  173. package/esm2022/lib/models/table.model.mjs +17 -0
  174. package/esm2022/lib/models/timeline.model.mjs +52 -0
  175. package/esm2022/lib/models/title.model.mjs +17 -0
  176. package/{esm2020 → esm2022}/lib/pipes/case-count.pipe.mjs +4 -4
  177. package/{esm2020 → esm2022}/lib/pipes/components-pipes.module.mjs +5 -5
  178. package/{esm2020 → esm2022}/lib/pipes/menu-item-translation.pipe.mjs +4 -4
  179. package/esm2022/lib/services/index.mjs +7 -0
  180. package/esm2022/lib/services/modal.service.mjs +128 -0
  181. package/esm2022/lib/services/prompt.service.mjs +205 -0
  182. package/esm2022/lib/services/shell.service.mjs +213 -0
  183. package/esm2022/lib/services/stepper.service.mjs +108 -0
  184. package/esm2022/lib/services/user-interface.service.mjs +47 -0
  185. package/{esm2020 → esm2022}/lib/services/valtimo-modal.service.mjs +4 -4
  186. package/esm2022/public_api.mjs +194 -0
  187. package/fesm2022/valtimo-components.mjs +12375 -0
  188. package/fesm2022/valtimo-components.mjs.map +1 -0
  189. package/lib/components/alert/alert.component.d.ts +1 -1
  190. package/lib/components/bpmn-js-diagram/bpmn-js-diagram.component.d.ts +1 -1
  191. package/lib/components/breadcrumb-navigation/breadcrumb-navigation.component.d.ts +1 -1
  192. package/lib/components/breadcrumb-navigation/breadcrumb.service.d.ts.map +1 -1
  193. package/lib/components/button/button.component.d.ts +30 -0
  194. package/lib/components/button/button.component.d.ts.map +1 -0
  195. package/lib/components/button/button.module.d.ts +13 -0
  196. package/lib/components/button/button.module.d.ts.map +1 -0
  197. package/lib/components/camunda/form/camunda-form.components.d.ts +1 -1
  198. package/lib/components/camunda/form/custom/camunda-custom-form.component.d.ts +1 -1
  199. package/lib/components/camunda/form/generated/camunda-generated-form.component.d.ts +1 -1
  200. package/lib/components/camunda/form/generated/formfield/boolean/camunda-boolean-formfield.component.d.ts +1 -1
  201. package/lib/components/camunda/form/generated/formfield/camunda-formfield-generator.directive.d.ts +1 -1
  202. package/lib/components/camunda/form/generated/formfield/choicefield/camunda-choicefield-formfield.component.d.ts +1 -1
  203. package/lib/components/camunda/form/generated/formfield/date/camunda-date-formfield.component.d.ts +1 -1
  204. package/lib/components/camunda/form/generated/formfield/enum/camunda-enum-formfield.component.d.ts +1 -1
  205. package/lib/components/camunda/form/generated/formfield/long/camunda-long-formfield.component.d.ts +1 -1
  206. package/lib/components/camunda/form/generated/formfield/string/camunda-string-formfield.component.d.ts +1 -1
  207. package/lib/components/camunda/form/generated/formfield/textarea/camunda-textarea-formfield.component.d.ts +1 -1
  208. package/lib/components/camunda/form/generated/formfield/validation/camunda-formfield-validation.component.d.ts +1 -1
  209. package/lib/components/carbon-list/CarbonListFilterPipe.directive.d.ts +9 -0
  210. package/lib/components/carbon-list/CarbonListFilterPipe.directive.d.ts.map +1 -0
  211. package/lib/components/carbon-list/carbon-list.component.d.ts +86 -0
  212. package/lib/components/carbon-list/carbon-list.component.d.ts.map +1 -0
  213. package/lib/components/carbon-list/carbon-list.module.d.ts +16 -0
  214. package/lib/components/carbon-list/carbon-list.module.d.ts.map +1 -0
  215. package/lib/components/{carbon-table → carbon-list}/no-results/carbon-no-results.component.d.ts +1 -1
  216. package/lib/components/{carbon-table → carbon-list}/no-results/carbon-no-results.component.d.ts.map +1 -1
  217. package/lib/components/card/card.component.d.ts +1 -1
  218. package/lib/components/confirmation-modal/confirmation-modal.component.d.ts +2 -1
  219. package/lib/components/confirmation-modal/confirmation-modal.component.d.ts.map +1 -1
  220. package/lib/components/confirmation-modal/confirmation-modal.module.d.ts +1 -1
  221. package/lib/components/data-list/data-list.component.d.ts +1 -1
  222. package/lib/components/date-picker/date-picker.component.d.ts +44 -0
  223. package/lib/components/date-picker/date-picker.component.d.ts.map +1 -0
  224. package/lib/components/date-picker/date-picker.module.d.ts +16 -0
  225. package/lib/components/date-picker/date-picker.module.d.ts.map +1 -0
  226. package/lib/components/documenten-api-metadata-modal/documenten-api-metadata-modal.component.d.ts +5 -3
  227. package/lib/components/documenten-api-metadata-modal/documenten-api-metadata-modal.component.d.ts.map +1 -1
  228. package/lib/components/documenten-api-metadata-modal/documenten-api-metadata-modal.module.d.ts +9 -2
  229. package/lib/components/documenten-api-metadata-modal/documenten-api-metadata-modal.module.d.ts.map +1 -1
  230. package/lib/components/dropzone/dropzone.component.d.ts +6 -3
  231. package/lib/components/dropzone/dropzone.component.d.ts.map +1 -1
  232. package/lib/components/editor/editor.component.d.ts +38 -0
  233. package/lib/components/editor/editor.component.d.ts.map +1 -0
  234. package/lib/components/editor/editor.module.d.ts +9 -0
  235. package/lib/components/editor/editor.module.d.ts.map +1 -0
  236. package/lib/components/editor/editor.service.d.ts +12 -0
  237. package/lib/components/editor/editor.service.d.ts.map +1 -0
  238. package/lib/components/expansion-panel/expansion-panel.component.d.ts +1 -1
  239. package/lib/components/field-auto-focus/field-auto-focus.directive.d.ts +1 -1
  240. package/lib/components/filter-sidebar/filter-sidebar.component.d.ts +1 -1
  241. package/lib/components/form/form.component.d.ts +31 -0
  242. package/lib/components/form/form.component.d.ts.map +1 -0
  243. package/lib/components/form/form.module.d.ts +9 -0
  244. package/lib/components/form/form.module.d.ts.map +1 -0
  245. package/lib/components/form-io/documenten-api-uploader/documenten-api-uploader.component.d.ts +1 -1
  246. package/lib/components/form-io/form-io-builder.component.d.ts +1 -1
  247. package/lib/components/form-io/form-io-current-user/form-io-current-user.component.d.ts +1 -1
  248. package/lib/components/form-io/form-io-uploader/form-io-uploader.component.d.ts +1 -1
  249. package/lib/components/form-io/form-io.component.d.ts +1 -1
  250. package/lib/components/input/input.component.d.ts +52 -0
  251. package/lib/components/input/input.component.d.ts.map +1 -0
  252. package/lib/components/input/input.module.d.ts +15 -0
  253. package/lib/components/input/input.module.d.ts.map +1 -0
  254. package/lib/components/input-label/input-label.component.d.ts +23 -0
  255. package/lib/components/input-label/input-label.component.d.ts.map +1 -0
  256. package/lib/components/input-label/input-label.module.d.ts +14 -0
  257. package/lib/components/input-label/input-label.module.d.ts.map +1 -0
  258. package/lib/components/left-sidebar/left-sidebar.component.d.ts +1 -1
  259. package/lib/components/left-sidebar/left-sidebar.module.d.ts +1 -1
  260. package/lib/components/list/list.component.d.ts +4 -1
  261. package/lib/components/list/list.component.d.ts.map +1 -1
  262. package/lib/components/menu/menu-item-text.component.d.ts +1 -1
  263. package/lib/components/menu/menu.service.d.ts.map +1 -1
  264. package/lib/components/modal/modal.component.d.ts +1 -1
  265. package/lib/components/multi-input/carbon-multi-input.component.d.ts +1 -1
  266. package/lib/components/multi-input/carbon-multi-input.module.d.ts +6 -4
  267. package/lib/components/multi-input/carbon-multi-input.module.d.ts.map +1 -1
  268. package/lib/components/multi-input-form/multi-input-form.component.d.ts +45 -0
  269. package/lib/components/multi-input-form/multi-input-form.component.d.ts.map +1 -0
  270. package/lib/components/multi-input-form/multi-input-form.module.d.ts +14 -0
  271. package/lib/components/multi-input-form/multi-input-form.module.d.ts.map +1 -0
  272. package/lib/components/multiselect-dropdown/multiselect-dropdown.component.d.ts +1 -1
  273. package/lib/components/page/page-container/page-container.component.d.ts +9 -0
  274. package/lib/components/page/page-container/page-container.component.d.ts.map +1 -0
  275. package/lib/components/page/page-content/page-content.component.d.ts +9 -0
  276. package/lib/components/page/page-content/page-content.component.d.ts.map +1 -0
  277. package/lib/components/page/page-header/page-header.component.d.ts +9 -0
  278. package/lib/components/page/page-header/page-header.component.d.ts.map +1 -0
  279. package/lib/components/page/page-header-actions/page-header-actions.component.d.ts +9 -0
  280. package/lib/components/page/page-header-actions/page-header-actions.component.d.ts.map +1 -0
  281. package/lib/components/page/page-header-introduction/page-header-introduction.component.d.ts +9 -0
  282. package/lib/components/page/page-header-introduction/page-header-introduction.component.d.ts.map +1 -0
  283. package/lib/components/page/page.module.d.ts +16 -0
  284. package/lib/components/page/page.module.d.ts.map +1 -0
  285. package/lib/components/page-header/page-header.component.d.ts +2 -2
  286. package/lib/components/page-header/page-header.component.d.ts.map +1 -1
  287. package/lib/components/page-title/page-title.component.d.ts +4 -4
  288. package/lib/components/page-title/page-title.component.d.ts.map +1 -1
  289. package/lib/components/page-title/page-title.service.d.ts.map +1 -1
  290. package/lib/components/paragraph/paragraph.component.d.ts +14 -0
  291. package/lib/components/paragraph/paragraph.component.d.ts.map +1 -0
  292. package/lib/components/paragraph/paragraph.module.d.ts +13 -0
  293. package/lib/components/paragraph/paragraph.module.d.ts.map +1 -0
  294. package/lib/components/progress-bar/progress-bar.component.d.ts +1 -1
  295. package/lib/components/prompt/prompt.component.d.ts +35 -0
  296. package/lib/components/prompt/prompt.component.d.ts.map +1 -0
  297. package/lib/components/prompt/prompt.module.d.ts +15 -0
  298. package/lib/components/prompt/prompt.module.d.ts.map +1 -0
  299. package/lib/components/radio/radio.component.d.ts +36 -0
  300. package/lib/components/radio/radio.component.d.ts.map +1 -0
  301. package/lib/components/radio/radio.module.d.ts +14 -0
  302. package/lib/components/radio/radio.module.d.ts.map +1 -0
  303. package/lib/components/right-sidebar/right-sidebar.component.d.ts +2 -7
  304. package/lib/components/right-sidebar/right-sidebar.component.d.ts.map +1 -1
  305. package/lib/components/search-fields/search-fields.component.d.ts +3 -2
  306. package/lib/components/search-fields/search-fields.component.d.ts.map +1 -1
  307. package/lib/components/search-fields/search-fields.module.d.ts +8 -2
  308. package/lib/components/search-fields/search-fields.module.d.ts.map +1 -1
  309. package/lib/components/searchable-dropdown/searchable-dropdown.component.d.ts +1 -1
  310. package/lib/components/searchable-dropdown-select/searchable-dropdown-select.component.d.ts +1 -1
  311. package/lib/components/select/select.component.d.ts +50 -0
  312. package/lib/components/select/select.component.d.ts.map +1 -0
  313. package/lib/components/select/select.module.d.ts +13 -0
  314. package/lib/components/select/select.module.d.ts.map +1 -0
  315. package/lib/components/spinner/spinner.component.d.ts +1 -1
  316. package/lib/components/stepper/stepper-container/stepper-container.component.d.ts +29 -0
  317. package/lib/components/stepper/stepper-container/stepper-container.component.d.ts.map +1 -0
  318. package/lib/components/stepper/stepper-content/stepper-content.component.d.ts +18 -0
  319. package/lib/components/stepper/stepper-content/stepper-content.component.d.ts.map +1 -0
  320. package/lib/components/stepper/stepper-footer/stepper-footer.component.d.ts +14 -0
  321. package/lib/components/stepper/stepper-footer/stepper-footer.component.d.ts.map +1 -0
  322. package/lib/components/stepper/stepper-footer-step/stepper-footer-step.component.d.ts +27 -0
  323. package/lib/components/stepper/stepper-footer-step/stepper-footer-step.component.d.ts.map +1 -0
  324. package/lib/components/stepper/stepper-header/stepper-header.component.d.ts +16 -0
  325. package/lib/components/stepper/stepper-header/stepper-header.component.d.ts.map +1 -0
  326. package/lib/components/stepper/stepper-step/stepper-step.component.d.ts +16 -0
  327. package/lib/components/stepper/stepper-step/stepper-step.component.d.ts.map +1 -0
  328. package/lib/components/stepper/stepper.module.d.ts +19 -0
  329. package/lib/components/stepper/stepper.module.d.ts.map +1 -0
  330. package/lib/components/table/table.component.d.ts +52 -0
  331. package/lib/components/table/table.component.d.ts.map +1 -0
  332. package/lib/components/table/table.module.d.ts +17 -0
  333. package/lib/components/table/table.module.d.ts.map +1 -0
  334. package/lib/components/timeline/timeline.component.d.ts +2 -1
  335. package/lib/components/timeline/timeline.component.d.ts.map +1 -1
  336. package/lib/components/title/title.component.d.ts +19 -0
  337. package/lib/components/title/title.component.d.ts.map +1 -0
  338. package/lib/components/title/title.module.d.ts +12 -0
  339. package/lib/components/title/title.module.d.ts.map +1 -0
  340. package/lib/components/tooltip-icon/tooltip-icon.component.d.ts +11 -0
  341. package/lib/components/tooltip-icon/tooltip-icon.component.d.ts.map +1 -0
  342. package/lib/components/tooltip-icon/tooltip-icon.module.d.ts +15 -0
  343. package/lib/components/tooltip-icon/tooltip-icon.module.d.ts.map +1 -0
  344. package/lib/components/topbar/topbar.component.d.ts +1 -1
  345. package/lib/components/topbar/topbar.module.d.ts +1 -1
  346. package/lib/components/uploader/uploader-drag-drop.directive.d.ts +1 -1
  347. package/lib/components/uploader/uploader.component.d.ts +1 -1
  348. package/lib/components/v-card/card.component.d.ts +23 -0
  349. package/lib/components/v-card/card.component.d.ts.map +1 -0
  350. package/lib/components/v-card/card.module.d.ts +14 -0
  351. package/lib/components/v-card/card.module.d.ts.map +1 -0
  352. package/lib/components/v-modal/modal.component.d.ts +29 -0
  353. package/lib/components/v-modal/modal.component.d.ts.map +1 -0
  354. package/lib/components/v-modal/modal.module.d.ts +13 -0
  355. package/lib/components/v-modal/modal.module.d.ts.map +1 -0
  356. package/lib/components/version/version.service.d.ts.map +1 -1
  357. package/lib/components/webcam/webcam.component.d.ts +1 -1
  358. package/lib/components/widget/widget.component.d.ts +1 -1
  359. package/lib/directives/command-click/command-click-directive.module.d.ts.map +1 -0
  360. package/lib/directives/{command-click.directive.d.ts → command-click/command-click.directive.d.ts} +1 -1
  361. package/lib/directives/command-click/command-click.directive.d.ts.map +1 -0
  362. package/lib/directives/digit-only/digit-only.directive.d.ts +35 -0
  363. package/lib/directives/digit-only/digit-only.directive.d.ts.map +1 -0
  364. package/lib/directives/render-in-page-header/render-in-page-header-directive.module.d.ts.map +1 -0
  365. package/lib/directives/{render-in-page-header.directive.d.ts → render-in-page-header/render-in-page-header.directive.d.ts} +2 -2
  366. package/lib/directives/render-in-page-header/render-in-page-header.directive.d.ts.map +1 -0
  367. package/lib/directives/tooltip/tooltip.component.d.ts +7 -0
  368. package/lib/directives/tooltip/tooltip.component.d.ts.map +1 -0
  369. package/lib/directives/tooltip/tooltip.directive.d.ts +19 -0
  370. package/lib/directives/tooltip/tooltip.directive.d.ts.map +1 -0
  371. package/lib/directives/tooltip/tooltip.module.d.ts +11 -0
  372. package/lib/directives/tooltip/tooltip.module.d.ts.map +1 -0
  373. package/lib/directives/valtimo-cds-modal/valtimo-cds-modal-directive.module.d.ts.map +1 -0
  374. package/lib/directives/{valtimo-cds-modal.directive.d.ts → valtimo-cds-modal/valtimo-cds-modal.directive.d.ts} +1 -1
  375. package/lib/directives/valtimo-cds-modal/valtimo-cds-modal.directive.d.ts.map +1 -0
  376. package/lib/models/button.model.d.ts +3 -0
  377. package/lib/models/button.model.d.ts.map +1 -0
  378. package/lib/models/carbon-list.model.d.ts +54 -0
  379. package/lib/models/carbon-list.model.d.ts.map +1 -0
  380. package/lib/models/carbon-pagination.model.d.ts +6 -5
  381. package/lib/models/carbon-pagination.model.d.ts.map +1 -1
  382. package/lib/models/documenten-api-metadata.model.d.ts +4 -4
  383. package/lib/models/documenten-api-metadata.model.d.ts.map +1 -1
  384. package/lib/models/editor.model.d.ts +11 -0
  385. package/lib/models/editor.model.d.ts.map +1 -0
  386. package/lib/models/form.model.d.ts +5 -0
  387. package/lib/models/form.model.d.ts.map +1 -0
  388. package/lib/models/index.d.ts +14 -2
  389. package/lib/models/index.d.ts.map +1 -1
  390. package/lib/models/input.model.d.ts +3 -0
  391. package/lib/models/input.model.d.ts.map +1 -0
  392. package/lib/models/modal.model.d.ts +3 -0
  393. package/lib/models/modal.model.d.ts.map +1 -0
  394. package/lib/models/multi-input.model.d.ts +5 -5
  395. package/lib/models/multi-input.model.d.ts.map +1 -1
  396. package/lib/models/pagination.model.d.ts +5 -3
  397. package/lib/models/pagination.model.d.ts.map +1 -1
  398. package/lib/models/radio.model.d.ts +8 -0
  399. package/lib/models/radio.model.d.ts.map +1 -0
  400. package/lib/models/searchable-dropdown.model.d.ts +1 -1
  401. package/lib/models/searchable-dropdown.model.d.ts.map +1 -1
  402. package/lib/models/select.model.d.ts +9 -0
  403. package/lib/models/select.model.d.ts.map +1 -0
  404. package/lib/models/sort.model.d.ts +11 -0
  405. package/lib/models/sort.model.d.ts.map +1 -0
  406. package/lib/models/stepper.model.d.ts +8 -0
  407. package/lib/models/stepper.model.d.ts.map +1 -0
  408. package/lib/models/table.model.d.ts +14 -0
  409. package/lib/models/table.model.d.ts.map +1 -0
  410. package/lib/models/timeline.model.d.ts +4 -1
  411. package/lib/models/timeline.model.d.ts.map +1 -1
  412. package/lib/models/title.model.d.ts +3 -0
  413. package/lib/models/title.model.d.ts.map +1 -0
  414. package/lib/services/index.d.ts +7 -0
  415. package/lib/services/index.d.ts.map +1 -0
  416. package/lib/services/modal.service.d.ts +37 -0
  417. package/lib/services/modal.service.d.ts.map +1 -0
  418. package/lib/services/prompt.service.d.ts +68 -0
  419. package/lib/services/prompt.service.d.ts.map +1 -0
  420. package/lib/services/shell.service.d.ts +3 -0
  421. package/lib/services/shell.service.d.ts.map +1 -1
  422. package/lib/services/stepper.service.d.ts +32 -0
  423. package/lib/services/stepper.service.d.ts.map +1 -0
  424. package/lib/services/user-interface.service.d.ts +11 -0
  425. package/lib/services/user-interface.service.d.ts.map +1 -0
  426. package/package.json +30 -31
  427. package/public_api.d.ts +60 -7
  428. package/public_api.d.ts.map +1 -1
  429. package/esm2020/lib/components/breadcrumb-navigation/breadcrumb.service.mjs +0 -103
  430. package/esm2020/lib/components/carbon-table/carbon-table.component.mjs +0 -178
  431. package/esm2020/lib/components/carbon-table/carbon-table.module.mjs +0 -53
  432. package/esm2020/lib/components/carbon-table/no-results/carbon-no-results.component.mjs +0 -24
  433. package/esm2020/lib/components/components.module.mjs +0 -26
  434. package/esm2020/lib/components/confirmation-modal/confirmation-modal.component.mjs +0 -90
  435. package/esm2020/lib/components/documenten-api-metadata-modal/documenten-api-metadata-modal.component.mjs +0 -215
  436. package/esm2020/lib/components/documenten-api-metadata-modal/documenten-api-metadata-modal.module.mjs +0 -67
  437. package/esm2020/lib/components/dropzone/dropzone.component.mjs +0 -155
  438. package/esm2020/lib/components/expansion-panel/expansion-panel.component.mjs +0 -41
  439. package/esm2020/lib/components/left-sidebar/left-sidebar.component.mjs +0 -148
  440. package/esm2020/lib/components/list/list.component.mjs +0 -199
  441. package/esm2020/lib/components/menu/menu.service.mjs +0 -245
  442. package/esm2020/lib/components/multi-input/carbon-multi-input.component.mjs +0 -216
  443. package/esm2020/lib/components/multi-input/carbon-multi-input.module.mjs +0 -62
  444. package/esm2020/lib/components/page-title/page-title.component.mjs +0 -106
  445. package/esm2020/lib/components/page-title/page-title.service.mjs +0 -92
  446. package/esm2020/lib/components/right-sidebar/right-sidebar.component.mjs +0 -211
  447. package/esm2020/lib/components/right-sidebar/right-sidebar.module.mjs +0 -95
  448. package/esm2020/lib/components/search-fields/search-fields.component.mjs +0 -213
  449. package/esm2020/lib/components/search-fields/search-fields.module.mjs +0 -69
  450. package/esm2020/lib/components/timeline/timeline.component.mjs +0 -32
  451. package/esm2020/lib/directives/command-click-directive.module.mjs +0 -18
  452. package/esm2020/lib/directives/command-click.directive.mjs +0 -37
  453. package/esm2020/lib/directives/index.mjs +0 -22
  454. package/esm2020/lib/directives/render-in-page-header-directive.module.mjs +0 -18
  455. package/esm2020/lib/directives/render-in-page-header.directive.mjs +0 -27
  456. package/esm2020/lib/directives/valtimo-cds-modal-directive.module.mjs +0 -33
  457. package/esm2020/lib/directives/valtimo-cds-modal.directive.mjs +0 -68
  458. package/esm2020/lib/models/carbon-pagination.model.mjs +0 -9
  459. package/esm2020/lib/models/carbon-table.model.mjs +0 -21
  460. package/esm2020/lib/models/index.mjs +0 -27
  461. package/esm2020/lib/models/pagination.model.mjs +0 -17
  462. package/esm2020/lib/models/timeline.model.mjs +0 -48
  463. package/esm2020/lib/services/shell.service.mjs +0 -206
  464. package/esm2020/public_api.mjs +0 -113
  465. package/fesm2015/valtimo-components.mjs +0 -7945
  466. package/fesm2015/valtimo-components.mjs.map +0 -1
  467. package/fesm2020/valtimo-components.mjs +0 -8060
  468. package/fesm2020/valtimo-components.mjs.map +0 -1
  469. package/lib/components/carbon-table/carbon-table.component.d.ts +0 -49
  470. package/lib/components/carbon-table/carbon-table.component.d.ts.map +0 -1
  471. package/lib/components/carbon-table/carbon-table.module.d.ts +0 -12
  472. package/lib/components/carbon-table/carbon-table.module.d.ts.map +0 -1
  473. package/lib/components/components.module.d.ts +0 -7
  474. package/lib/components/components.module.d.ts.map +0 -1
  475. package/lib/directives/command-click-directive.module.d.ts.map +0 -1
  476. package/lib/directives/command-click.directive.d.ts.map +0 -1
  477. package/lib/directives/index.d.ts +0 -7
  478. package/lib/directives/index.d.ts.map +0 -1
  479. package/lib/directives/render-in-page-header-directive.module.d.ts.map +0 -1
  480. package/lib/directives/render-in-page-header.directive.d.ts.map +0 -1
  481. package/lib/directives/valtimo-cds-modal-directive.module.d.ts.map +0 -1
  482. package/lib/directives/valtimo-cds-modal.directive.d.ts.map +0 -1
  483. package/lib/models/carbon-table.model.d.ts +0 -33
  484. package/lib/models/carbon-table.model.d.ts.map +0 -1
  485. package/lib/models/list.model.d.ts +0 -9
  486. package/lib/models/list.model.d.ts.map +0 -1
  487. /package/{esm2020 → esm2022}/lib/components/camunda/form/generated/formfield/formfield.model.mjs +0 -0
  488. /package/{esm2020 → esm2022}/lib/components/camunda/form/generated/formfield/validation/date.validators.mjs +0 -0
  489. /package/{esm2020 → esm2022}/lib/components/form-io/documenten-api-uploader/documenten-api-uploader-edit-form.mjs +0 -0
  490. /package/{esm2020 → esm2022}/lib/components/form-io/documenten-api-uploader/documenten-api-uploader.formio.mjs +0 -0
  491. /package/{esm2020 → esm2022}/lib/components/form-io/form-io-current-user/form-io-current-user-edit-form.mjs +0 -0
  492. /package/{esm2020 → esm2022}/lib/components/form-io/form-io-current-user/form-io-current-user.formio.mjs +0 -0
  493. /package/{esm2020 → esm2022}/lib/components/form-io/form-io-resource-selector/form-io-resource-selector.formio.mjs +0 -0
  494. /package/{esm2020 → esm2022}/lib/components/form-io/form-io-uploader/form-io-uploader-edit-form.mjs +0 -0
  495. /package/{esm2020 → esm2022}/lib/components/form-io/form-io-uploader/form-io-uploader.formio.mjs +0 -0
  496. /package/{esm2020 → esm2022}/lib/components/form-io/formio-config.mjs +0 -0
  497. /package/{esm2020 → esm2022}/lib/components/menu/menu.init.mjs +0 -0
  498. /package/{esm2020 → esm2022}/lib/components/view-content/type-converters/booleanTypeConverter.mjs +0 -0
  499. /package/{esm2020 → esm2022}/lib/components/view-content/type-converters/dateTypeConverter.mjs +0 -0
  500. /package/{esm2020 → esm2022}/lib/components/view-content/type-converters/enumTypeConverter.mjs +0 -0
  501. /package/{esm2020 → esm2022}/lib/components/view-content/type-converters/relatedFilesTypeConverter.mjs +0 -0
  502. /package/{esm2020 → esm2022}/lib/components/view-content/type-converters/stringReplaceUnderscoreTypeConverter.mjs +0 -0
  503. /package/{esm2020 → esm2022}/lib/components/view-content/type-converters/stringTypeConverter.mjs +0 -0
  504. /package/{esm2020 → esm2022}/lib/components/view-content/type-converters/type-converters.model.mjs +0 -0
  505. /package/{esm2020 → esm2022}/lib/constants/carbon.constants.mjs +0 -0
  506. /package/{esm2020 → esm2022}/lib/constants/index.mjs +0 -0
  507. /package/{esm2020 → esm2022}/lib/models/alert.model.mjs +0 -0
  508. /package/{esm2020 → esm2022}/lib/models/documenten-api-metadata.model.mjs +0 -0
  509. /package/{esm2020 → esm2022}/lib/models/form-io.model.mjs +0 -0
  510. /package/{esm2020 → esm2022}/lib/models/searchable-dropdown.model.mjs +0 -0
  511. /package/{esm2020 → esm2022}/lib/models/version.model.mjs +0 -0
  512. /package/{esm2020 → esm2022}/lib/pipes/index.mjs +0 -0
  513. /package/{esm2020 → esm2022}/valtimo-components.mjs +0 -0
  514. /package/lib/directives/{command-click-directive.module.d.ts → command-click/command-click-directive.module.d.ts} +0 -0
  515. /package/lib/directives/{render-in-page-header-directive.module.d.ts → render-in-page-header/render-in-page-header-directive.module.d.ts} +0 -0
  516. /package/lib/directives/{valtimo-cds-modal-directive.module.d.ts → valtimo-cds-modal/valtimo-cds-modal-directive.module.d.ts} +0 -0
@@ -0,0 +1,258 @@
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 { Injectable } from '@angular/core';
17
+ import { NavigationEnd, NavigationStart, ResolveEnd } from '@angular/router';
18
+ import { BehaviorSubject, combineLatest, Observable, Subject, timer } from 'rxjs';
19
+ import { filter, map, take } from 'rxjs/operators';
20
+ import * as i0 from "@angular/core";
21
+ import * as i1 from "@valtimo/config";
22
+ import * as i2 from "@valtimo/document";
23
+ import * as i3 from "@valtimo/security";
24
+ import * as i4 from "ngx-logger";
25
+ import * as i5 from "@angular/router";
26
+ import * as i6 from "keycloak-angular";
27
+ import * as i7 from "@angular/common/http";
28
+ export class MenuService {
29
+ get activeParentSequenceNumber$() {
30
+ return this._activeParentSequenceNumber$.asObservable();
31
+ }
32
+ constructor(configService, documentService, userProviderService, logger, menuIncludeService, router, keycloakService, http) {
33
+ this.configService = configService;
34
+ this.documentService = documentService;
35
+ this.userProviderService = userProviderService;
36
+ this.logger = logger;
37
+ this.menuIncludeService = menuIncludeService;
38
+ this.router = router;
39
+ this.keycloakService = keycloakService;
40
+ this.http = http;
41
+ this._activeParentSequenceNumber$ = new BehaviorSubject('');
42
+ this.includeFunctionObservables = {};
43
+ this._menuItems$ = new BehaviorSubject([]);
44
+ this.currentRoute$ = this.router.events.pipe(filter(event => event instanceof NavigationEnd ||
45
+ event instanceof NavigationStart ||
46
+ event instanceof ResolveEnd), map(event => event?.url), filter(url => !!url));
47
+ this.dossierItemsAppended$ = new BehaviorSubject(false);
48
+ this.objectsItemsAppended$ = new BehaviorSubject(false);
49
+ const config = configService?.config;
50
+ this.menuConfig = config?.menu;
51
+ this.disableCaseCount = config?.featureToggles?.disableCaseCount;
52
+ this.enableObjectManagement = config?.featureToggles?.enableObjectManagement;
53
+ }
54
+ // Find out which menu item sequence number matches the current url the closest
55
+ get closestSequence$() {
56
+ return combineLatest([
57
+ this.dossierItemsAppended$,
58
+ this.objectsItemsAppended$,
59
+ this.currentRoute$,
60
+ this.menuItems$,
61
+ ]).pipe(filter(([dossierItemsAppended, objectsItemsAppended]) => dossierItemsAppended || objectsItemsAppended), map(([dossierItemsAppended, objectsItemsAppended, currentRoute, menuItems]) => {
62
+ let closestSequence = '0';
63
+ let highestDifference = 0;
64
+ // recursive function to check how closely each item matches to the current url
65
+ const checkItemMatch = (stringUrl, sequence, parentSequence) => {
66
+ // length of the current full url
67
+ const currentRouteUrlLength = currentRoute.length;
68
+ // length of the current full url with the item's url substracted
69
+ const currentRouteSubstractLength = currentRoute.replace(stringUrl, '').length;
70
+ // the amount of characters that could be substracted
71
+ const difference = currentRouteUrlLength - currentRouteSubstractLength;
72
+ // the larger the amount of characters that could be substracted, the more closely the menu item url matches the current url
73
+ if (difference > highestDifference) {
74
+ highestDifference = difference;
75
+ closestSequence = sequence;
76
+ if (parentSequence) {
77
+ this._activeParentSequenceNumber$.next(parentSequence);
78
+ }
79
+ else {
80
+ this._activeParentSequenceNumber$.next('');
81
+ }
82
+ }
83
+ };
84
+ // check how closely each menu item (and child menu item) matches the current url using a recursive function
85
+ menuItems.forEach(item => {
86
+ checkItemMatch(item.link?.join('') || '', `${item.sequence}`);
87
+ if (item.children) {
88
+ item.children.forEach(childItem => {
89
+ if (Array.isArray(childItem.link)) {
90
+ checkItemMatch(Array.isArray(item.link)
91
+ ? [...item.link, ...childItem.link].join('')
92
+ : childItem.link.join(''), `${item.sequence}${childItem.sequence}`, `${item.sequence}`);
93
+ }
94
+ });
95
+ }
96
+ });
97
+ // returns the closest sequence number (each menu item has a sequence number)
98
+ return closestSequence;
99
+ }));
100
+ }
101
+ get menuItems$() {
102
+ return this._menuItems$.asObservable();
103
+ }
104
+ init() {
105
+ this.reload();
106
+ this.logger.debug('Menu initialized');
107
+ }
108
+ reload() {
109
+ const roles = this.keycloakService.getUserRoles(true);
110
+ return this._menuItems$.next(this.loadMenuItems(roles));
111
+ }
112
+ loadMenuItems(userRoles) {
113
+ let menuItems = [];
114
+ this.menuConfig.menuItems.forEach((menuItem) => {
115
+ if (menuItem.includeFunction !== undefined) {
116
+ this.includeFunctionObservables[menuItem.title] =
117
+ this.menuIncludeService.getIncludeFunction(menuItem.includeFunction);
118
+ }
119
+ menuItem.show = true;
120
+ // check if the top level menu item specifies roles it requires. If so, check if the user roles contain at least one of these roles
121
+ if (Array.isArray(menuItem?.roles)
122
+ ? userRoles.find(userRole => menuItem.roles.includes(userRole))
123
+ : true) {
124
+ // check if menu item has children. If so, check if children specify required roles. If so, check if the user roles contain at least one of these roles
125
+ const filteredMenuItemChildren = menuItem?.children &&
126
+ menuItem?.children.filter(childMenuItem => Array.isArray(childMenuItem?.roles)
127
+ ? userRoles.find(userRole => childMenuItem.roles.includes(userRole))
128
+ : true);
129
+ // if the menu item has children, set the menu item children to filtered menu item children
130
+ const menuItemWithFilteredChildren = {
131
+ ...menuItem,
132
+ ...(menuItem?.children && { children: filteredMenuItemChildren }),
133
+ };
134
+ menuItems.push(menuItemWithFilteredChildren);
135
+ }
136
+ });
137
+ menuItems = this.sortMenuItems(menuItems);
138
+ this.appendDossierSubMenuItems(menuItems).subscribe(value => (menuItems = this.applyMenuRoleSecurity(value)));
139
+ if (this.enableObjectManagement) {
140
+ this.appendObjectsSubMenuItems(menuItems).subscribe(value => (menuItems = this.applyMenuRoleSecurity(value)));
141
+ }
142
+ return menuItems;
143
+ }
144
+ sortMenuItems(menuItems) {
145
+ return menuItems.sort((a, b) => a.sequence - b.sequence);
146
+ }
147
+ appendDossierSubMenuItems(menuItems) {
148
+ return new Observable(subscriber => {
149
+ this.logger.debug('appendDossierSubMenuItems');
150
+ this.documentService.getAllDefinitions().subscribe(definitions => {
151
+ combineLatest([
152
+ ...definitions.content.map(definition => this.documentService.getCaseSettings(definition?.id?.name)),
153
+ ])
154
+ .pipe(take(1))
155
+ .subscribe(allCaseSettings => {
156
+ const openDocumentCountMap = !this.disableCaseCount && this.getOpenDocumentCountMap(definitions);
157
+ const dossierMenuItems = definitions.content.map((definition, index) => {
158
+ const caseSettings = allCaseSettings?.find(setting => setting.name === definition.id.name);
159
+ return {
160
+ link: ['/dossiers/' + definition.id.name],
161
+ title: definition.schema.title,
162
+ iconClass: 'icon mdi mdi-dot-circle',
163
+ sequence: index,
164
+ show: true,
165
+ ...(!this.disableCaseCount &&
166
+ caseSettings?.canHaveAssignee && {
167
+ count$: openDocumentCountMap.get(definition.id.name),
168
+ }),
169
+ };
170
+ });
171
+ this.logger.debug('found dossierMenuItems', dossierMenuItems);
172
+ const menuItemIndex = menuItems.findIndex(({ title }) => title === 'Dossiers');
173
+ if (menuItemIndex > 0) {
174
+ const dossierMenu = menuItems[menuItemIndex];
175
+ this.logger.debug('updating dossierMenu', dossierMenu);
176
+ dossierMenu.children = dossierMenuItems;
177
+ menuItems[menuItemIndex] = dossierMenu;
178
+ }
179
+ subscriber.next(menuItems);
180
+ this.dossierItemsAppended$.next(true);
181
+ this.logger.debug('appendDossierSubMenuItems finished');
182
+ });
183
+ });
184
+ });
185
+ }
186
+ appendObjectsSubMenuItems(menuItems) {
187
+ return new Observable(subscriber => {
188
+ this.logger.debug('appendObjectManagementSubMenuItems');
189
+ this.getAllObjects().subscribe(objects => {
190
+ const visibleObjects = objects.filter(object => object?.showInDataMenu !== false);
191
+ if (visibleObjects?.length > 0) {
192
+ const objectsMenuItems = visibleObjects.map((object, index) => ({
193
+ link: ['/objects/' + object.id],
194
+ title: object.title,
195
+ iconClass: 'icon mdi mdi-dot-circle',
196
+ sequence: index,
197
+ show: true,
198
+ }));
199
+ this.logger.debug('found objectsMenuItems', objectsMenuItems);
200
+ const menuItemIndex = menuItems.findIndex(({ title }) => title === 'Objects');
201
+ if (menuItemIndex > 0) {
202
+ const objectsMenu = menuItems[menuItemIndex];
203
+ this.logger.debug('updating objectsMenu', objectsMenu);
204
+ objectsMenu.children = objectsMenuItems;
205
+ menuItems[menuItemIndex] = objectsMenu;
206
+ }
207
+ subscriber.next(menuItems);
208
+ this.objectsItemsAppended$.next(true);
209
+ this.logger.debug('appendObjectsSubMenuItems finished');
210
+ }
211
+ });
212
+ });
213
+ }
214
+ getOpenDocumentCountMap(definitions) {
215
+ const countMap = new Map();
216
+ definitions.content.forEach(definition => countMap.set(definition.id.name, new Subject()));
217
+ timer(0, 5000).subscribe(() => {
218
+ this.documentService.getOpenDocumentCount().subscribe(openDocumentCountList => {
219
+ openDocumentCountList.forEach(openDocumentCount => countMap
220
+ .get(openDocumentCount.documentDefinitionName)
221
+ .next(openDocumentCount.openDocumentCount));
222
+ });
223
+ });
224
+ return countMap;
225
+ }
226
+ applyMenuRoleSecurity(menuItems) {
227
+ this.userProviderService.getUserSubject().subscribe(user => {
228
+ if (user.roles != null) {
229
+ this.logger.debug('applyMenuRoleSecurity');
230
+ const userRoles = user.roles;
231
+ menuItems.forEach((menuItem) => {
232
+ const access = this.determineRoleAccess(menuItem, userRoles);
233
+ this.logger.debug('Menu: check role access', menuItem.roles, access);
234
+ if (menuItem.show !== access) {
235
+ this.logger.debug('Menu: Change access', menuItem, access);
236
+ menuItem.show = access;
237
+ }
238
+ });
239
+ }
240
+ });
241
+ return menuItems;
242
+ }
243
+ determineRoleAccess(menuItem, roles) {
244
+ return !menuItem.roles || menuItem.roles.some(role => roles.includes(role));
245
+ }
246
+ getAllObjects() {
247
+ return this.http.get(`${this.configService.config.valtimoApi.endpointUri}v1/object/management/configuration`);
248
+ }
249
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MenuService, deps: [{ token: i1.ConfigService }, { token: i2.DocumentService }, { token: i3.UserProviderService }, { token: i4.NGXLogger }, { token: i1.MenuIncludeService }, { token: i5.Router }, { token: i6.KeycloakService }, { token: i7.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
250
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MenuService, providedIn: 'root' }); }
251
+ }
252
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MenuService, decorators: [{
253
+ type: Injectable,
254
+ args: [{
255
+ providedIn: 'root',
256
+ }]
257
+ }], ctorParameters: function () { return [{ type: i1.ConfigService }, { type: i2.DocumentService }, { type: i3.UserProviderService }, { type: i4.NGXLogger }, { type: i1.MenuIncludeService }, { type: i5.Router }, { type: i6.KeycloakService }, { type: i7.HttpClient }]; } });
258
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9tZW51L21lbnUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUVILE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFJekMsT0FBTyxFQUFDLGFBQWEsRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFTLE1BQU0saUJBQWlCLENBQUM7QUFDbkYsT0FBTyxFQUFDLGVBQWUsRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFFaEYsT0FBTyxFQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7OztBQU9qRCxNQUFNLE9BQU8sV0FBVztJQVV0QixJQUFJLDJCQUEyQjtRQUM3QixPQUFPLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMxRCxDQUFDO0lBRUQsWUFDbUIsYUFBNEIsRUFDNUIsZUFBZ0MsRUFDaEMsbUJBQXdDLEVBQ3hDLE1BQWlCLEVBQ2pCLGtCQUFzQyxFQUN0QyxNQUFjLEVBQ2QsZUFBZ0MsRUFDekMsSUFBZ0I7UUFQUCxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1QixvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDaEMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4QyxXQUFNLEdBQU4sTUFBTSxDQUFXO1FBQ2pCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDdEMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUN6QyxTQUFJLEdBQUosSUFBSSxDQUFZO1FBckJULGlDQUE0QixHQUFHLElB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SUFBSSxRQUFRLENBQUMsSUFBSSxLQUFLLE1BQU0sRUFBRTt3QkFDNUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMscUJBQXFCLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDO3dCQUMzRCxRQUFRLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQztxQkFDeEI7Z0JBQ0gsQ0FBQyxDQUFDLENBQUM7YUFDSjtRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVPLG1CQUFtQixDQUFDLFFBQWtCLEVBQUUsS0FBZTtRQUM3RCxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssSUFBSSxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUM5RSxDQUFDO0lBRU8sYUFBYTtRQUNuQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUNsQixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxXQUFXLG9DQUFvQyxDQUN4RixDQUFDO0lBQ0osQ0FBQzsrR0E1U1UsV0FBVzttSEFBWCxXQUFXLGNBRlYsTUFBTTs7NEZBRVAsV0FBVztrQkFIdkIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyMyBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDb25maWdTZXJ2aWNlLCBNZW51Q29uZmlnLCBNZW51SW5jbHVkZVNlcnZpY2UsIE1lbnVJdGVtfSBmcm9tICdAdmFsdGltby9jb25maWcnO1xuaW1wb3J0IHtOR1hMb2dnZXJ9IGZyb20gJ25neC1sb2dnZXInO1xuaW1wb3J0IHtVc2VyUHJvdmlkZXJTZXJ2aWNlfSBmcm9tICdAdmFsdGltby9zZWN1cml0eSc7XG5pbXBvcnQge05hdmlnYXRpb25FbmQsIE5hdmlnYXRpb25TdGFydCwgUmVzb2x2ZUVuZCwgUm91dGVyfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIE9ic2VydmFibGUsIFN1YmplY3QsIHRpbWVyfSBmcm9tICdyeGpzJztcbmltcG9ydCB7RG9jdW1lbnREZWZpbml0aW9ucywgRG9jdW1lbnRTZXJ2aWNlfSBmcm9tICdAdmFsdGltby9kb2N1bWVudCc7XG5pbXBvcnQge2ZpbHRlciwgbWFwLCB0YWtlfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0tleWNsb2FrU2VydmljZX0gZnJvbSAna2V5Y2xvYWstYW5ndWxhcic7XG5pbXBvcnQge0h0dHBDbGllbnR9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIE1lbnVTZXJ2aWNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBfYWN0aXZlUGFyZW50U2VxdWVuY2VOdW1iZXIkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KCcnKTtcbiAgcHVibGljIGluY2x1ZGVGdW5jdGlvbk9ic2VydmFibGVzOiB7W2tleTogc3RyaW5nXTogT2JzZXJ2YWJsZTxib29sZWFuPn0gPSB7fTtcblxuICBwcml2YXRlIF9tZW51SXRlbXMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxNZW51SXRlbVtdPihbXSk7XG4gIHByaXZhdGUgbWVudUNvbmZpZzogTWVudUNvbmZpZztcblxuICBwcml2YXRlIHJlYWRvbmx5IGRpc2FibGVDYXNlQ291bnQhOiBib29sZWFuO1xuICBwcml2YXRlIHJlYWRvbmx5IGVuYWJsZU9iamVjdE1hbmFnZW1lbnQhOiBib29sZWFuO1xuXG4gIGdldCBhY3RpdmVQYXJlbnRTZXF1ZW5jZU51bWJlciQoKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5fYWN0aXZlUGFyZW50U2VxdWVuY2VOdW1iZXIkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb25maWdTZXJ2aWNlOiBDb25maWdTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZG9jdW1lbnRTZXJ2aWNlOiBEb2N1bWVudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSB1c2VyUHJvdmlkZXJTZXJ2aWNlOiBVc2VyUHJvdmlkZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbG9nZ2VyOiBOR1hMb2dnZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSBtZW51SW5jbHVkZVNlcnZpY2U6IE1lbnVJbmNsdWRlU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgcmVhZG9ubHkga2V5Y2xvYWtTZXJ2aWNlOiBLZXljbG9ha1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50XG4gICkge1xuICAgIGNvbnN0IGNvbmZpZyA9IGNvbmZpZ1NlcnZpY2U/LmNvbmZpZztcbiAgICB0aGlzLm1lbnVDb25maWcgPSBjb25maWc/Lm1lbnU7XG4gICAgdGhpcy5kaXNhYmxlQ2FzZUNvdW50ID0gY29uZmlnPy5mZWF0dXJlVG9nZ2xlcz8uZGlzYWJsZUNhc2VDb3VudDtcbiAgICB0aGlzLmVuYWJsZU9iamVjdE1hbmFnZW1lbnQgPSBjb25maWc/LmZlYXR1cmVUb2dnbGVzPy5lbmFibGVPYmplY3RNYW5hZ2VtZW50O1xuICB9XG5cbiAgcHJpdmF0ZSByZWFkb25seSBjdXJyZW50Um91dGUkID0gdGhpcy5yb3V0ZXIuZXZlbnRzLnBpcGUoXG4gICAgZmlsdGVyKFxuICAgICAgZXZlbnQgPT5cbiAgICAgICAgZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kIHx8XG4gICAgICAgIGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvblN0YXJ0IHx8XG4gICAgICAgIGV2ZW50IGluc3RhbmNlb2YgUmVzb2x2ZUVuZFxuICAgICksXG4gICAgbWFwKGV2ZW50ID0+IChldmVudCBhcyBOYXZpZ2F0aW9uRW5kKT8udXJsKSxcbiAgICBmaWx0ZXIodXJsID0+ICEhdXJsKVxuICApO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgZG9zc2llckl0ZW1zQXBwZW5kZWQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgb2JqZWN0c0l0ZW1zQXBwZW5kZWQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG5cbiAgLy8gRmluZCBvdXQgd2hpY2ggbWVudSBpdGVtIHNlcXVlbmNlIG51bWJlciBtYXRjaGVzIHRoZSBjdXJyZW50IHVybCB0aGUgY2xvc2VzdFxuICBwdWJsaWMgZ2V0IGNsb3Nlc3RTZXF1ZW5jZSQoKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLmRvc3NpZXJJdGVtc0FwcGVuZGVkJCxcbiAgICAgIHRoaXMub2JqZWN0c0l0ZW1zQXBwZW5kZWQkLFxuICAgICAgdGhpcy5jdXJyZW50Um91dGUkLFxuICAgICAgdGhpcy5tZW51SXRlbXMkLFxuICAgIF0pLnBpcGUoXG4gICAgICBmaWx0ZXIoXG4gICAgICAgIChbZG9zc2llckl0ZW1zQXBwZW5kZWQsIG9iamVjdHNJdGVtc0FwcGVuZGVkXSkgPT5cbiAgICAgICAgICBkb3NzaWVySXRlbXNBcHBlbmRlZCB8fCBvYmplY3RzSXRlbXNBcHBlbmRlZFxuICAgICAgKSxcbiAgICAgIG1hcCgoW2Rvc3NpZXJJdGVtc0FwcGVuZGVkLCBvYmplY3RzSXRlbXNBcHBlbmRlZCwgY3VycmVudFJvdXRlLCBtZW51SXRlbXNdKSA9PiB7XG4gICAgICAgIGxldCBjbG9zZXN0U2VxdWVuY2UgPSAnMCc7XG4gICAgICAgIGxldCBoaWdoZXN0RGlmZmVyZW5jZSA9IDA7XG5cbiAgICAgICAgLy8gcmVjdXJzaXZlIGZ1bmN0aW9uIHRvIGNoZWNrIGhvdyBjbG9zZWx5IGVhY2ggaXRlbSBtYXRjaGVzIHRvIHRoZSBjdXJyZW50IHVybFxuICAgICAgICBjb25zdCBjaGVja0l0ZW1NYXRjaCA9IChcbiAgICAgICAgICBzdHJpbmdVcmw6IHN0cmluZyxcbiAgICAgICAgICBzZXF1ZW5jZTogc3RyaW5nLFxuICAgICAgICAgIHBhcmVudFNlcXVlbmNlPzogc3RyaW5nXG4gICAgICAgICk6IHZvaWQgPT4ge1xuICAgICAgICAgIC8vIGxlbmd0aCBvZiB0aGUgY3VycmVudCBmdWxsIHVybFxuICAgICAgICAgIGNvbnN0IGN1cnJlbnRSb3V0ZVVybExlbmd0aCA9IGN1cnJlbnRSb3V0ZS5sZW5ndGg7XG4gICAgICAgICAgLy8gbGVuZ3RoIG9mIHRoZSBjdXJyZW50IGZ1bGwgdXJsIHdpdGggdGhlIGl0ZW0ncyB1cmwgc3Vic3RyYWN0ZWRcbiAgICAgICAgICBjb25zdCBjdXJyZW50Um91dGVTdWJzdHJhY3RMZW5ndGggPSBjdXJyZW50Um91dGUucmVwbGFjZShzdHJpbmdVcmwsICcnKS5sZW5ndGg7XG4gICAgICAgICAgLy8gdGhlIGFtb3VudCBvZiBjaGFyYWN0ZXJzIHRoYXQgY291bGQgYmUgc3Vic3RyYWN0ZWRcbiAgICAgICAgICBjb25zdCBkaWZmZXJlbmNlID0gY3VycmVudFJvdXRlVXJsTGVuZ3RoIC0gY3VycmVudFJvdXRlU3Vic3RyYWN0TGVuZ3RoO1xuXG4gICAgICAgICAgLy8gdGhlIGxhcmdlciB0aGUgYW1vdW50IG9mIGNoYXJhY3RlcnMgdGhhdCBjb3VsZCBiZSBzdWJzdHJhY3RlZCwgdGhlIG1vcmUgY2xvc2VseSB0aGUgbWVudSBpdGVtIHVybCBtYXRjaGVzIHRoZSBjdXJyZW50IHVybFxuICAgICAgICAgIGlmIChkaWZmZXJlbmNlID4gaGlnaGVzdERpZmZlcmVuY2UpIHtcbiAgICAgICAgICAgIGhpZ2hlc3REaWZmZXJlbmNlID0gZGlmZmVyZW5jZTtcbiAgICAgICAgICAgIGNsb3Nlc3RTZXF1ZW5jZSA9IHNlcXVlbmNlO1xuXG4gICAgICAgICAgICBpZiAocGFyZW50U2VxdWVuY2UpIHtcbiAgICAgICAgICAgICAgdGhpcy5fYWN0aXZlUGFyZW50U2VxdWVuY2VOdW1iZXIkLm5leHQocGFyZW50U2VxdWVuY2UpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgdGhpcy5fYWN0aXZlUGFyZW50U2VxdWVuY2VOdW1iZXIkLm5leHQoJycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfTtcblxuICAgICAgICAvLyBjaGVjayBob3cgY2xvc2VseSBlYWNoIG1lbnUgaXRlbSAoYW5kIGNoaWxkIG1lbnUgaXRlbSkgbWF0Y2hlcyB0aGUgY3VycmVudCB1cmwgdXNpbmcgYSByZWN1cnNpdmUgZnVuY3Rpb25cbiAgICAgICAgbWVudUl0ZW1zLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgICAgY2hlY2tJdGVtTWF0Y2goaXRlbS5saW5rPy5qb2luKCcnKSB8fCAnJywgYCR7aXRlbS5zZXF1ZW5jZX1gKTtcblxuICAgICAgICAgIGlmIChpdGVtLmNoaWxkcmVuKSB7XG4gICAgICAgICAgICBpdGVtLmNoaWxkcmVuLmZvckVhY2goY2hpbGRJdGVtID0+IHtcbiAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoY2hpbGRJdGVtLmxpbmspKSB7XG4gICAgICAgICAgICAgICAgY2hlY2tJdGVtTWF0Y2goXG4gICAgICAgICAgICAgICAgICBBcnJheS5pc0FycmF5KGl0ZW0ubGluaylcbiAgICAgICAgICAgICAgICAgICAgPyBbLi4uaXRlbS5saW5rLCAuLi5jaGlsZEl0ZW0ubGlua10uam9pbignJylcbiAgICAgICAgICAgICAgICAgICAgOiBjaGlsZEl0ZW0ubGluay5qb2luKCcnKSxcbiAgICAgICAgICAgICAgICAgIGAke2l0ZW0uc2VxdWVuY2V9JHtjaGlsZEl0ZW0uc2VxdWVuY2V9YCxcbiAgICAgICAgICAgICAgICAgIGAke2l0ZW0uc2VxdWVuY2V9YFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gcmV0dXJucyB0aGUgY2xvc2VzdCBzZXF1ZW5jZSBudW1iZXIgKGVhY2ggbWVudSBpdGVtIGhhcyBhIHNlcXVlbmNlIG51bWJlcilcblxuICAgICAgICByZXR1cm4gY2xvc2VzdFNlcXVlbmNlO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGdldCBtZW51SXRlbXMkKCk6IE9ic2VydmFibGU8TWVudUl0ZW1bXT4ge1xuICAgIHJldHVybiB0aGlzLl9tZW51SXRlbXMkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgaW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnJlbG9hZCgpO1xuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdNZW51IGluaXRpYWxpemVkJyk7XG4gIH1cblxuICBwdWJsaWMgcmVsb2FkKCk6IHZvaWQge1xuICAgIGNvbnN0IHJvbGVzID0gdGhpcy5rZXljbG9ha1NlcnZpY2UuZ2V0VXNlclJvbGVzKHRydWUpO1xuICAgIHJldHVybiB0aGlzLl9tZW51SXRlbXMkLm5leHQodGhpcy5sb2FkTWVudUl0ZW1zKHJvbGVzKSk7XG4gIH1cblxuICBwcml2YXRlIGxvYWRNZW51SXRlbXModXNlclJvbGVzOiBBcnJheTxzdHJpbmc+KTogTWVudUl0ZW1bXSB7XG4gICAgbGV0IG1lbnVJdGVtczogTWVudUl0ZW1bXSA9IFtdO1xuICAgIHRoaXMubWVudUNvbmZpZy5tZW51SXRlbXMuZm9yRWFjaCgobWVudUl0ZW06IE1lbnVJdGVtKSA9PiB7XG4gICAgICBpZiAobWVudUl0ZW0uaW5jbHVkZUZ1bmN0aW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhpcy5pbmNsdWRlRnVuY3Rpb25PYnNlcnZhYmxlc1ttZW51SXRlbS50aXRsZV0gPVxuICAgICAgICAgIHRoaXMubWVudUluY2x1ZGVTZXJ2aWNlLmdldEluY2x1ZGVGdW5jdGlvbihtZW51SXRlbS5pbmNsdWRlRnVuY3Rpb24pO1xuICAgICAgfVxuXG4gICAgICBtZW51SXRlbS5zaG93ID0gdHJ1ZTtcblxuICAgICAgLy8gY2hlY2sgaWYgdGhlIHRvcCBsZXZlbCBtZW51IGl0ZW0gc3BlY2lmaWVzIHJvbGVzIGl0IHJlcXVpcmVzLiBJZiBzbywgY2hlY2sgaWYgdGhlIHVzZXIgcm9sZXMgY29udGFpbiBhdCBsZWFzdCBvbmUgb2YgdGhlc2Ugcm9sZXNcbiAgICAgIGlmIChcbiAgICAgICAgQXJyYXkuaXNBcnJheShtZW51SXRlbT8ucm9sZXMpXG4gICAgICAgICAgPyB1c2VyUm9sZXMuZmluZCh1c2VyUm9sZSA9PiBtZW51SXRlbS5yb2xlcy5pbmNsdWRlcyh1c2VyUm9sZSkpXG4gICAgICAgICAgOiB0cnVlXG4gICAgICApIHtcbiAgICAgICAgLy8gY2hlY2sgaWYgbWVudSBpdGVtIGhhcyBjaGlsZHJlbi4gSWYgc28sIGNoZWNrIGlmIGNoaWxkcmVuIHNwZWNpZnkgcmVxdWlyZWQgcm9sZXMuIElmIHNvLCBjaGVjayBpZiB0aGUgdXNlciByb2xlcyBjb250YWluIGF0IGxlYXN0IG9uZSBvZiB0aGVzZSByb2xlc1xuICAgICAgICBjb25zdCBmaWx0ZXJlZE1lbnVJdGVtQ2hpbGRyZW4gPVxuICAgICAgICAgIG1lbnVJdGVtPy5jaGlsZHJlbiAmJlxuICAgICAgICAgIG1lbnVJdGVtPy5jaGlsZHJlbi5maWx0ZXIoY2hpbGRNZW51SXRlbSA9PlxuICAgICAgICAgICAgQXJyYXkuaXNBcnJheShjaGlsZE1lbnVJdGVtPy5yb2xlcylcbiAgICAgICAgICAgICAgPyB1c2VyUm9sZXMuZmluZCh1c2VyUm9sZSA9PiBjaGlsZE1lbnVJdGVtLnJvbGVzLmluY2x1ZGVzKHVzZXJSb2xlKSlcbiAgICAgICAgICAgICAgOiB0cnVlXG4gICAgICAgICAgKTtcblxuICAgICAgICAvLyBpZiB0aGUgbWVudSBpdGVtIGhhcyBjaGlsZHJlbiwgc2V0IHRoZSBtZW51IGl0ZW0gY2hpbGRyZW4gdG8gZmlsdGVyZWQgbWVudSBpdGVtIGNoaWxkcmVuXG4gICAgICAgIGNvbnN0IG1lbnVJdGVtV2l0aEZpbHRlcmVkQ2hpbGRyZW46IE1lbnVJdGVtID0ge1xuICAgICAgICAgIC4uLm1lbnVJdGVtLFxuICAgICAgICAgIC4uLihtZW51SXRlbT8uY2hpbGRyZW4gJiYge2NoaWxkcmVuOiBmaWx0ZXJlZE1lbnVJdGVtQ2hpbGRyZW59KSxcbiAgICAgICAgfTtcblxuICAgICAgICBtZW51SXRlbXMucHVzaChtZW51SXRlbVdpdGhGaWx0ZXJlZENoaWxkcmVuKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBtZW51SXRlbXMgPSB0aGlzLnNvcnRNZW51SXRlbXMobWVudUl0ZW1zKTtcbiAgICB0aGlzLmFwcGVuZERvc3NpZXJTdWJNZW51SXRlbXMobWVudUl0ZW1zKS5zdWJzY3JpYmUoXG4gICAgICB2YWx1ZSA9PiAobWVudUl0ZW1zID0gdGhpcy5hcHBseU1lbnVSb2xlU2VjdXJpdHkodmFsdWUpKVxuICAgICk7XG5cbiAgICBpZiAodGhpcy5lbmFibGVPYmplY3RNYW5hZ2VtZW50KSB7XG4gICAgICB0aGlzLmFwcGVuZE9iamVjdHNTdWJNZW51SXRlbXMobWVudUl0ZW1zKS5zdWJzY3JpYmUoXG4gICAgICAgIHZhbHVlID0+IChtZW51SXRlbXMgPSB0aGlzLmFwcGx5TWVudVJvbGVTZWN1cml0eSh2YWx1ZSkpXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gbWVudUl0ZW1zO1xuICB9XG5cbiAgcHJpdmF0ZSBzb3J0TWVudUl0ZW1zKG1lbnVJdGVtczogTWVudUl0ZW1bXSk6IE1lbnVJdGVtW10ge1xuICAgIHJldHVybiBtZW51SXRlbXMuc29ydCgoYSwgYikgPT4gYS5zZXF1ZW5jZSAtIGIuc2VxdWVuY2UpO1xuICB9XG5cbiAgcHJpdmF0ZSBhcHBlbmREb3NzaWVyU3ViTWVudUl0ZW1zKG1lbnVJdGVtczogTWVudUl0ZW1bXSk6IE9ic2VydmFibGU8TWVudUl0ZW1bXT4ge1xuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZShzdWJzY3JpYmVyID0+IHtcbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdhcHBlbmREb3NzaWVyU3ViTWVudUl0ZW1zJyk7XG4gICAgICB0aGlzLmRvY3VtZW50U2VydmljZS5nZXRBbGxEZWZpbml0aW9ucygpLnN1YnNjcmliZShkZWZpbml0aW9ucyA9PiB7XG4gICAgICAgIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICAgIC4uLmRlZmluaXRpb25zLmNvbnRlbnQubWFwKGRlZmluaXRpb24gPT5cbiAgICAgICAgICAgIHRoaXMuZG9jdW1lbnRTZXJ2aWNlLmdldENhc2VTZXR0aW5ncyhkZWZpbml0aW9uPy5pZD8ubmFtZSlcbiAgICAgICAgICApLFxuICAgICAgICBdKVxuICAgICAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAgICAgLnN1YnNjcmliZShhbGxDYXNlU2V0dGluZ3MgPT4ge1xuICAgICAgICAgICAgY29uc3Qgb3BlbkRvY3VtZW50Q291bnRNYXAgPVxuICAgICAgICAgICAgICAhdGhpcy5kaXNhYmxlQ2FzZUNvdW50ICYmIHRoaXMuZ2V0T3BlbkRvY3VtZW50Q291bnRNYXAoZGVmaW5pdGlvbnMpO1xuXG4gICAgICAgICAgICBjb25zdCBkb3NzaWVyTWVudUl0ZW1zOiBNZW51SXRlbVtdID0gZGVmaW5pdGlvbnMuY29udGVudC5tYXAoKGRlZmluaXRpb24sIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IGNhc2VTZXR0aW5ncyA9IGFsbENhc2VTZXR0aW5ncz8uZmluZChcbiAgICAgICAgICAgICAgICBzZXR0aW5nID0+IHNldHRpbmcubmFtZSA9PT0gZGVmaW5pdGlvbi5pZC5uYW1lXG4gICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBsaW5rOiBbJy9kb3NzaWVycy8nICsgZGVmaW5pdGlvbi5pZC5uYW1lXSxcbiAgICAgICAgICAgICAgICB0aXRsZTogZGVmaW5pdGlvbi5zY2hlbWEudGl0bGUsXG4gICAgICAgICAgICAgICAgaWNvbkNsYXNzOiAnaWNvbiBtZGkgbWRpLWRvdC1jaXJjbGUnLFxuICAgICAgICAgICAgICAgIHNlcXVlbmNlOiBpbmRleCxcbiAgICAgICAgICAgICAgICBzaG93OiB0cnVlLFxuICAgICAgICAgICAgICAgIC4uLighdGhpcy5kaXNhYmxlQ2FzZUNvdW50ICYmXG4gICAgICAgICAgICAgICAgICBjYXNlU2V0dGluZ3M/LmNhbkhhdmVBc3NpZ25lZSAmJiB7XG4gICAgICAgICAgICAgICAgICAgIGNvdW50JDogb3BlbkRvY3VtZW50Q291bnRNYXAuZ2V0KGRlZmluaXRpb24uaWQubmFtZSksXG4gICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgfSBhcyBNZW51SXRlbTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ2ZvdW5kIGRvc3NpZXJNZW51SXRlbXMnLCBkb3NzaWVyTWVudUl0ZW1zKTtcbiAgICAgICAgICAgIGNvbnN0IG1lbnVJdGVtSW5kZXggPSBtZW51SXRlbXMuZmluZEluZGV4KCh7dGl0bGV9KSA9PiB0aXRsZSA9PT0gJ0Rvc3NpZXJzJyk7XG4gICAgICAgICAgICBpZiAobWVudUl0ZW1JbmRleCA+IDApIHtcbiAgICAgICAgICAgICAgY29uc3QgZG9zc2llck1lbnUgPSBtZW51SXRlbXNbbWVudUl0ZW1JbmRleF07XG4gICAgICAgICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCd1cGRhdGluZyBkb3NzaWVyTWVudScsIGRvc3NpZXJNZW51KTtcbiAgICAgICAgICAgICAgZG9zc2llck1lbnUuY2hpbGRyZW4gPSBkb3NzaWVyTWVudUl0ZW1zO1xuICAgICAgICAgICAgICBtZW51SXRlbXNbbWVudUl0ZW1JbmRleF0gPSBkb3NzaWVyTWVudTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHN1YnNjcmliZXIubmV4dChtZW51SXRlbXMpO1xuICAgICAgICAgICAgdGhpcy5kb3NzaWVySXRlbXNBcHBlbmRlZCQubmV4dCh0cnVlKTtcbiAgICAgICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdhcHBlbmREb3NzaWVyU3ViTWVudUl0ZW1zIGZpbmlzaGVkJyk7XG4gICAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYXBwZW5kT2JqZWN0c1N1Yk1lbnVJdGVtcyhtZW51SXRlbXM6IE1lbnVJdGVtW10pOiBPYnNlcnZhYmxlPE1lbnVJdGVtW10+IHtcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGUoc3Vic2NyaWJlciA9PiB7XG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnYXBwZW5kT2JqZWN0TWFuYWdlbWVudFN1Yk1lbnVJdGVtcycpO1xuICAgICAgdGhpcy5nZXRBbGxPYmplY3RzKCkuc3Vic2NyaWJlKG9iamVjdHMgPT4ge1xuICAgICAgICBjb25zdCB2aXNpYmxlT2JqZWN0cyA9IG9iamVjdHMuZmlsdGVyKG9iamVjdCA9PiBvYmplY3Q/LnNob3dJbkRhdGFNZW51ICE9PSBmYWxzZSk7XG4gICAgICAgIGlmICh2aXNpYmxlT2JqZWN0cz8ubGVuZ3RoID4gMCkge1xuICAgICAgICAgIGNvbnN0IG9iamVjdHNNZW51SXRlbXM6IE1lbnVJdGVtW10gPSB2aXNpYmxlT2JqZWN0cy5tYXAoXG4gICAgICAgICAgICAob2JqZWN0LCBpbmRleCkgPT5cbiAgICAgICAgICAgICAgKHtcbiAgICAgICAgICAgICAgICBsaW5rOiBbJy9vYmplY3RzLycgKyBvYmplY3QuaWRdLFxuICAgICAgICAgICAgICAgIHRpdGxlOiBvYmplY3QudGl0bGUsXG4gICAgICAgICAgICAgICAgaWNvbkNsYXNzOiAnaWNvbiBtZGkgbWRpLWRvdC1jaXJjbGUnLFxuICAgICAgICAgICAgICAgIHNlcXVlbmNlOiBpbmRleCxcbiAgICAgICAgICAgICAgICBzaG93OiB0cnVlLFxuICAgICAgICAgICAgICB9KSBhcyBNZW51SXRlbVxuICAgICAgICAgICk7XG4gICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ2ZvdW5kIG9iamVjdHNNZW51SXRlbXMnLCBvYmplY3RzTWVudUl0ZW1zKTtcbiAgICAgICAgICBjb25zdCBtZW51SXRlbUluZGV4ID0gbWVudUl0ZW1zLmZpbmRJbmRleCgoe3RpdGxlfSkgPT4gdGl0bGUgPT09ICdPYmplY3RzJyk7XG4gICAgICAgICAgaWYgKG1lbnVJdGVtSW5kZXggPiAwKSB7XG4gICAgICAgICAgICBjb25zdCBvYmplY3RzTWVudSA9IG1lbnVJdGVtc1ttZW51SXRlbUluZGV4XTtcbiAgICAgICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCd1cGRhdGluZyBvYmplY3RzTWVudScsIG9iamVjdHNNZW51KTtcbiAgICAgICAgICAgIG9iamVjdHNNZW51LmNoaWxkcmVuID0gb2JqZWN0c01lbnVJdGVtcztcbiAgICAgICAgICAgIG1lbnVJdGVtc1ttZW51SXRlbUluZGV4XSA9IG9iamVjdHNNZW51O1xuICAgICAgICAgIH1cbiAgICAgICAgICBzdWJzY3JpYmVyLm5leHQobWVudUl0ZW1zKTtcbiAgICAgICAgICB0aGlzLm9iamVjdHNJdGVtc0FwcGVuZGVkJC5uZXh0KHRydWUpO1xuICAgICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdhcHBlbmRPYmplY3RzU3ViTWVudUl0ZW1zIGZpbmlzaGVkJyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRPcGVuRG9jdW1lbnRDb3VudE1hcChkZWZpbml0aW9uczogRG9jdW1lbnREZWZpbml0aW9ucyk6IE1hcDxzdHJpbmcsIFN1YmplY3Q8bnVtYmVyPj4ge1xuICAgIGNvbnN0IGNvdW50TWFwID0gbmV3IE1hcDxzdHJpbmcsIFN1YmplY3Q8bnVtYmVyPj4oKTtcbiAgICBkZWZpbml0aW9ucy5jb250ZW50LmZvckVhY2goZGVmaW5pdGlvbiA9PlxuICAgICAgY291bnRNYXAuc2V0KGRlZmluaXRpb24uaWQubmFtZSwgbmV3IFN1YmplY3Q8bnVtYmVyPigpKVxuICAgICk7XG5cbiAgICB0aW1lcigwLCA1MDAwKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5kb2N1bWVudFNlcnZpY2UuZ2V0T3BlbkRvY3VtZW50Q291bnQoKS5zdWJzY3JpYmUob3BlbkRvY3VtZW50Q291bnRMaXN0ID0+IHtcbiAgICAgICAgb3BlbkRvY3VtZW50Q291bnRMaXN0LmZvckVhY2gob3BlbkRvY3VtZW50Q291bnQgPT5cbiAgICAgICAgICBjb3VudE1hcFxuICAgICAgICAgICAgLmdldChvcGVuRG9jdW1lbnRDb3VudC5kb2N1bWVudERlZmluaXRpb25OYW1lKVxuICAgICAgICAgICAgLm5leHQob3BlbkRvY3VtZW50Q291bnQub3BlbkRvY3VtZW50Q291bnQpXG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgICByZXR1cm4gY291bnRNYXA7XG4gIH1cblxuICBwcml2YXRlIGFwcGx5TWVudVJvbGVTZWN1cml0eShtZW51SXRlbXM6IE1lbnVJdGVtW10pOiBNZW51SXRlbVtdIHtcbiAgICB0aGlzLnVzZXJQcm92aWRlclNlcnZpY2UuZ2V0VXNlclN1YmplY3QoKS5zdWJzY3JpYmUodXNlciA9PiB7XG4gICAgICBpZiAodXNlci5yb2xlcyAhPSBudWxsKSB7XG4gICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdhcHBseU1lbnVSb2xlU2VjdXJpdHknKTtcbiAgICAgICAgY29uc3QgdXNlclJvbGVzID0gdXNlci5yb2xlcztcbiAgICAgICAgbWVudUl0ZW1zLmZvckVhY2goKG1lbnVJdGVtOiBNZW51SXRlbSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGFjY2VzcyA9IHRoaXMuZGV0ZXJtaW5lUm9sZUFjY2VzcyhtZW51SXRlbSwgdXNlclJvbGVzKTtcbiAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnTWVudTogY2hlY2sgcm9sZSBhY2Nlc3MnLCBtZW51SXRlbS5yb2xlcywgYWNjZXNzKTtcbiAgICAgICAgICBpZiAobWVudUl0ZW0uc2hvdyAhPT0gYWNjZXNzKSB7XG4gICAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnTWVudTogQ2hhbmdlIGFjY2VzcycsIG1lbnVJdGVtLCBhY2Nlc3MpO1xuICAgICAgICAgICAgbWVudUl0ZW0uc2hvdyA9IGFjY2VzcztcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBtZW51SXRlbXM7XG4gIH1cblxuICBwcml2YXRlIGRldGVybWluZVJvbGVBY2Nlc3MobWVudUl0ZW06IE1lbnVJdGVtLCByb2xlczogc3RyaW5nW10pOiBib29sZWFuIHtcbiAgICByZXR1cm4gIW1lbnVJdGVtLnJvbGVzIHx8IG1lbnVJdGVtLnJvbGVzLnNvbWUocm9sZSA9PiByb2xlcy5pbmNsdWRlcyhyb2xlKSk7XG4gIH1cblxuICBwcml2YXRlIGdldEFsbE9iamVjdHMoKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChcbiAgICAgIGAke3RoaXMuY29uZmlnU2VydmljZS5jb25maWcudmFsdGltb0FwaS5lbmRwb2ludFVyaX12MS9vYmplY3QvbWFuYWdlbWVudC9jb25maWd1cmF0aW9uYFxuICAgICk7XG4gIH1cbn1cbiJdfQ==
@@ -62,10 +62,10 @@ export class ModalComponent {
62
62
  const config = { attributes: true, childList: false, characterData: false };
63
63
  this.observer.observe(this.scrollModal.nativeElement, config);
64
64
  }
65
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ModalComponent, deps: [{ token: i1.ValtimoModalService }], target: i0.ɵɵFactoryTarget.Component }); }
66
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ModalComponent, selector: "valtimo-modal", inputs: { elementId: "elementId", title: "title", subtitle: "subtitle", templateBelowSubtitle: "templateBelowSubtitle", showFooter: "showFooter" }, viewQueries: [{ propertyName: "scrollModal", first: true, predicate: ["scrollModal"], descendants: true }], 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=\"modal fade custom-width\" [id]=\"elementId\" role=\"dialog\" aria-modal=\"true\" #scrollModal>\n <div class=\"modal-dialog modal-lg\">\n <div class=\"modal-content\">\n <div class=\"modal-header modal-header-colored colored-header-grey\">\n <div class=\"modal-title\">\n <h4 class=\"title-text mb-2\">{{ title }}</h4>\n <h5 class=\"subtitle-text\">{{ subtitle }}</h5>\n <ng-container *ngIf=\"templateBelowSubtitle\">\n <ng-container *ngTemplateOutlet=\"templateBelowSubtitle\"></ng-container>\n </ng-container>\n </div>\n <div class=\"text-right\">\n <img src=\"assets/modal/header-image.png\" class=\"modal-header-image\" />\n <button type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-label=\"Close\">\n <span aria-hidden=\"true\">&times;</span>\n </button>\n </div>\n </div>\n <div class=\"modal-body\">\n <ng-content select=\"[body]\"></ng-content>\n </div>\n <div class=\"modal-footer\" *ngIf=\"showFooter\">\n <ng-content select=\"[footer]\"></ng-content>\n </div>\n </div>\n </div>\n</div>\n", 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 */.colored-header-grey{background-color:#f3f4f7}.title-text{color:#585555}.subtitle-text{color:#959595}.modal-header-image{height:auto;width:50%}.modal-header{padding-bottom:.66rem;border-bottom:1px solid #c5c6c9}@media (min-width: 768px){.close{position:relative;left:25px;padding:0!important;margin-top:-20px!important}.close span{color:#fff}.modal-content{overflow:visible}}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
65
67
  }
66
- ModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ModalComponent, deps: [{ token: i1.ValtimoModalService }], target: i0.ɵɵFactoryTarget.Component });
67
- ModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: ModalComponent, selector: "valtimo-modal", inputs: { elementId: "elementId", title: "title", subtitle: "subtitle", templateBelowSubtitle: "templateBelowSubtitle", showFooter: "showFooter" }, viewQueries: [{ propertyName: "scrollModal", first: true, predicate: ["scrollModal"], descendants: true }], 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=\"modal fade custom-width\" [id]=\"elementId\" role=\"dialog\" aria-modal=\"true\" #scrollModal>\n <div class=\"modal-dialog modal-lg\">\n <div class=\"modal-content\">\n <div class=\"modal-header modal-header-colored colored-header-grey\">\n <div class=\"modal-title\">\n <h4 class=\"title-text mb-2\">{{ title }}</h4>\n <h5 class=\"subtitle-text\">{{ subtitle }}</h5>\n <ng-container *ngIf=\"templateBelowSubtitle\">\n <ng-container *ngTemplateOutlet=\"templateBelowSubtitle\"></ng-container>\n </ng-container>\n </div>\n <div class=\"text-right\">\n <img src=\"assets/modal/header-image.png\" class=\"modal-header-image\" />\n <button type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-label=\"Close\">\n <span aria-hidden=\"true\">&times;</span>\n </button>\n </div>\n </div>\n <div class=\"modal-body\">\n <ng-content select=\"[body]\"></ng-content>\n </div>\n <div class=\"modal-footer\" *ngIf=\"showFooter\">\n <ng-content select=\"[footer]\"></ng-content>\n </div>\n </div>\n </div>\n</div>\n", 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 */.colored-header-grey{background-color:#f3f4f7}.title-text{color:#585555}.subtitle-text{color:#959595}.modal-header-image{height:auto;width:50%}.modal-header{padding-bottom:.66rem;border-bottom:1px solid #c5c6c9}@media (min-width: 768px){.close{position:relative;left:25px;padding:0!important;margin-top:-20px!important}.close span{color:#fff}.modal-content{overflow:visible}}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
68
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ModalComponent, decorators: [{
68
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ModalComponent, decorators: [{
69
69
  type: Component,
70
70
  args: [{ selector: 'valtimo-modal', 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=\"modal fade custom-width\" [id]=\"elementId\" role=\"dialog\" aria-modal=\"true\" #scrollModal>\n <div class=\"modal-dialog modal-lg\">\n <div class=\"modal-content\">\n <div class=\"modal-header modal-header-colored colored-header-grey\">\n <div class=\"modal-title\">\n <h4 class=\"title-text mb-2\">{{ title }}</h4>\n <h5 class=\"subtitle-text\">{{ subtitle }}</h5>\n <ng-container *ngIf=\"templateBelowSubtitle\">\n <ng-container *ngTemplateOutlet=\"templateBelowSubtitle\"></ng-container>\n </ng-container>\n </div>\n <div class=\"text-right\">\n <img src=\"assets/modal/header-image.png\" class=\"modal-header-image\" />\n <button type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-label=\"Close\">\n <span aria-hidden=\"true\">&times;</span>\n </button>\n </div>\n </div>\n <div class=\"modal-body\">\n <ng-content select=\"[body]\"></ng-content>\n </div>\n <div class=\"modal-footer\" *ngIf=\"showFooter\">\n <ng-content select=\"[footer]\"></ng-content>\n </div>\n </div>\n </div>\n</div>\n", 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 */.colored-header-grey{background-color:#f3f4f7}.title-text{color:#585555}.subtitle-text{color:#959595}.modal-header-image{height:auto;width:50%}.modal-header{padding-bottom:.66rem;border-bottom:1px solid #c5c6c9}@media (min-width: 768px){.close{position:relative;left:25px;padding:0!important;margin-top:-20px!important}.close span{color:#fff}.modal-content{overflow:visible}}\n"] }]
71
71
  }], ctorParameters: function () { return [{ type: i1.ValtimoModalService }]; }, propDecorators: { elementId: [{
@@ -82,4 +82,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
82
82
  type: ViewChild,
83
83
  args: ['scrollModal']
84
84
  }] } });
85
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9tb2RhbC9tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL2NvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL21vZGFsL21vZGFsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsT0FBTyxFQUVMLFNBQVMsRUFFVCxLQUFLLEVBSUwsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBQyxlQUFlLEVBQWUsTUFBTSxNQUFNLENBQUM7Ozs7QUFVbkQsTUFBTSxPQUFPLGNBQWM7SUFlekIsWUFBNkIsWUFBaUM7UUFBakMsaUJBQVksR0FBWixZQUFZLENBQXFCO1FBYnJELFVBQUssR0FBRyxFQUFFLENBQUM7UUFDWCxhQUFRLEdBQUcsRUFBRSxDQUFDO1FBRWQsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUluQixrQkFBYSxHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO0lBTUksQ0FBQztJQUVsRSxRQUFRO1FBQ04sSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVELGVBQWU7UUFDYixDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBQyxJQUFJLEVBQUUsS0FBSyxFQUFDLENBQUMsQ0FBQztRQUM3QyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQsSUFBSTtRQUNGLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsSUFBSTtRQUNGLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxrQkFBa0IsRUFBRSxXQUFXLEVBQUUsQ0FBQztRQUN2QyxJQUFJLENBQUMsUUFBUSxFQUFFLFVBQVUsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFTyxzQkFBc0I7UUFDNUIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDdEUsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUM7WUFFL0MsSUFBSSxPQUFPO2dCQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3RDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLG9CQUFvQjtRQUMxQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksZ0JBQWdCLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFDL0MsU0FBUyxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRTtnQkFDNUIsSUFBSSxRQUFRLEVBQUUsYUFBYSxLQUFLLE9BQU8sRUFBRTtvQkFDdkMsTUFBTSxZQUFZLEdBQUksUUFBUSxFQUFFLE1BQWMsRUFBRSxTQUFTLEVBQUUsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUM1RSxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztpQkFDdkM7WUFDSCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxNQUFNLEdBQUcsRUFBQyxVQUFVLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBQyxDQUFDO1FBQzFFLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2hFLENBQUM7OzJHQTFEVSxjQUFjOytGQUFkLGNBQWMscVRDckMzQixtekRBMkNBOzJGRE5hLGNBQWM7a0JBTDFCLFNBQVM7K0JBQ0UsZUFBZTswR0FLaEIsU0FBUztzQkFBakIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxxQkFBcUI7c0JBQTdCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFFb0IsV0FBVztzQkFBcEMsU0FBUzt1QkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjMgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtWYWx0aW1vTW9kYWxTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy92YWx0aW1vLW1vZGFsLnNlcnZpY2UnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIFN1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby12YXJcbmRlY2xhcmUgdmFyICQ7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbHRpbW8tbW9kYWwnLFxuICB0ZW1wbGF0ZVVybDogJy4vbW9kYWwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9tb2RhbC5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBNb2RhbENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KCkgZWxlbWVudElkOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHRpdGxlID0gJyc7XG4gIEBJbnB1dCgpIHN1YnRpdGxlID0gJyc7XG4gIEBJbnB1dCgpIHRlbXBsYXRlQmVsb3dTdWJ0aXRsZTogVGVtcGxhdGVSZWY8YW55PjtcbiAgQElucHV0KCkgc2hvd0Zvb3RlciA9IGZhbHNlO1xuXG4gIEBWaWV3Q2hpbGQoJ3Njcm9sbE1vZGFsJykgc2Nyb2xsTW9kYWw6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuXG4gIHJlYWRvbmx5IG1vZGFsU2hvd2luZyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcblxuICBwcml2YXRlIHNjcm9sbFN1YnNjcmlwdGlvbiE6IFN1YnNjcmlwdGlvbjtcblxuICBwcml2YXRlIG9ic2VydmVyITogTXV0YXRpb25PYnNlcnZlcjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IG1vZGFsU2VydmljZTogVmFsdGltb01vZGFsU2VydmljZSkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLm9wZW5TY3JvbGxTdWJzY3JpcHRpb24oKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAkKGAjJHt0aGlzLmVsZW1lbnRJZH1gKS5tb2RhbCh7c2hvdzogZmFsc2V9KTtcbiAgICB0aGlzLndhdGNoRm9yQ2xhc3NDaGFuZ2VzKCk7XG4gIH1cblxuICBzaG93KCkge1xuICAgICQoYCMke3RoaXMuZWxlbWVudElkfWApLm1vZGFsKCdzaG93Jyk7XG4gIH1cblxuICBoaWRlKCkge1xuICAgICQoYCMke3RoaXMuZWxlbWVudElkfWApLm1vZGFsKCdoaWRlJyk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnNjcm9sbFN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLm9ic2VydmVyPy5kaXNjb25uZWN0KCk7XG4gIH1cblxuICBwcml2YXRlIG9wZW5TY3JvbGxTdWJzY3JpcHRpb24oKTogdm9pZCB7XG4gICAgdGhpcy5zY3JvbGxTdWJzY3JpcHRpb24gPSB0aGlzLm1vZGFsU2VydmljZS5zY3JvbGxUb1RvcCQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLnNjcm9sbE1vZGFsLm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICAgIGlmIChlbGVtZW50KSBlbGVtZW50LnNjcm9sbFRvKDAsIDApO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSB3YXRjaEZvckNsYXNzQ2hhbmdlcygpOiB2b2lkIHtcbiAgICB0aGlzLm9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIobXV0YXRpb25zID0+IHtcbiAgICAgIG11dGF0aW9ucz8uZm9yRWFjaChtdXRhdGlvbiA9PiB7XG4gICAgICAgIGlmIChtdXRhdGlvbj8uYXR0cmlidXRlTmFtZSA9PT0gJ2NsYXNzJykge1xuICAgICAgICAgIGNvbnN0IG1vZGFsU2hvd2luZyA9IChtdXRhdGlvbj8udGFyZ2V0IGFzIGFueSk/LmNsYXNzTGlzdD8uY29udGFpbnMoJ3Nob3cnKTtcbiAgICAgICAgICB0aGlzLm1vZGFsU2hvd2luZyQubmV4dChtb2RhbFNob3dpbmcpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgICBjb25zdCBjb25maWcgPSB7YXR0cmlidXRlczogdHJ1ZSwgY2hpbGRMaXN0OiBmYWxzZSwgY2hhcmFjdGVyRGF0YTogZmFsc2V9O1xuICAgIHRoaXMub2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLnNjcm9sbE1vZGFsLm5hdGl2ZUVsZW1lbnQsIGNvbmZpZyk7XG4gIH1cbn1cbiIsIjwhLS1cbiAgfiBDb3B5cmlnaHQgMjAxNS0yMDIzIFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAgflxuICB+IExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICB+IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAgfiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAgflxuICB+IGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAgflxuICB+IFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAgfiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gIH4gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gIH4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICB+IGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICAtLT5cblxuPGRpdiBjbGFzcz1cIm1vZGFsIGZhZGUgY3VzdG9tLXdpZHRoXCIgW2lkXT1cImVsZW1lbnRJZFwiIHJvbGU9XCJkaWFsb2dcIiBhcmlhLW1vZGFsPVwidHJ1ZVwiICNzY3JvbGxNb2RhbD5cbiAgPGRpdiBjbGFzcz1cIm1vZGFsLWRpYWxvZyBtb2RhbC1sZ1wiPlxuICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1jb250ZW50XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtaGVhZGVyIG1vZGFsLWhlYWRlci1jb2xvcmVkIGNvbG9yZWQtaGVhZGVyLWdyZXlcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLXRpdGxlXCI+XG4gICAgICAgICAgPGg0IGNsYXNzPVwidGl0bGUtdGV4dCBtYi0yXCI+e3sgdGl0bGUgfX08L2g0PlxuICAgICAgICAgIDxoNSBjbGFzcz1cInN1YnRpdGxlLXRleHRcIj57eyBzdWJ0aXRsZSB9fTwvaDU+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRlbXBsYXRlQmVsb3dTdWJ0aXRsZVwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRlbXBsYXRlQmVsb3dTdWJ0aXRsZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtcmlnaHRcIj5cbiAgICAgICAgICA8aW1nIHNyYz1cImFzc2V0cy9tb2RhbC9oZWFkZXItaW1hZ2UucG5nXCIgY2xhc3M9XCJtb2RhbC1oZWFkZXItaW1hZ2VcIiAvPlxuICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiY2xvc2VcIiBkYXRhLWRpc21pc3M9XCJtb2RhbFwiIGFyaWEtbGFiZWw9XCJDbG9zZVwiPlxuICAgICAgICAgICAgPHNwYW4gYXJpYS1oaWRkZW49XCJ0cnVlXCI+JnRpbWVzOzwvc3Bhbj5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1ib2R5XCI+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltib2R5XVwiPjwvbmctY29udGVudD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWZvb3RlclwiICpuZ0lmPVwic2hvd0Zvb3RlclwiPlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbZm9vdGVyXVwiPjwvbmctY29udGVudD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
85
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9tb2RhbC9tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL2NvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL21vZGFsL21vZGFsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsT0FBTyxFQUVMLFNBQVMsRUFFVCxLQUFLLEVBSUwsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBQyxlQUFlLEVBQWUsTUFBTSxNQUFNLENBQUM7Ozs7QUFVbkQsTUFBTSxPQUFPLGNBQWM7SUFlekIsWUFBNkIsWUFBaUM7UUFBakMsaUJBQVksR0FBWixZQUFZLENBQXFCO1FBYnJELFVBQUssR0FBRyxFQUFFLENBQUM7UUFDWCxhQUFRLEdBQUcsRUFBRSxDQUFDO1FBRWQsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUluQixrQkFBYSxHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO0lBTUksQ0FBQztJQUVsRSxRQUFRO1FBQ04sSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVELGVBQWU7UUFDYixDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBQyxJQUFJLEVBQUUsS0FBSyxFQUFDLENBQUMsQ0FBQztRQUM3QyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQsSUFBSTtRQUNGLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsSUFBSTtRQUNGLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxrQkFBa0IsRUFBRSxXQUFXLEVBQUUsQ0FBQztRQUN2QyxJQUFJLENBQUMsUUFBUSxFQUFFLFVBQVUsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFTyxzQkFBc0I7UUFDNUIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDdEUsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUM7WUFFL0MsSUFBSSxPQUFPO2dCQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3RDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLG9CQUFvQjtRQUMxQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksZ0JBQWdCLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFDL0MsU0FBUyxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRTtnQkFDNUIsSUFBSSxRQUFRLEVBQUUsYUFBYSxLQUFLLE9BQU8sRUFBRTtvQkFDdkMsTUFBTSxZQUFZLEdBQUksUUFBUSxFQUFFLE1BQWMsRUFBRSxTQUFTLEVBQUUsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUM1RSxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztpQkFDdkM7WUFDSCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxNQUFNLEdBQUcsRUFBQyxVQUFVLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBQyxDQUFDO1FBQzFFLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2hFLENBQUM7K0dBMURVLGNBQWM7bUdBQWQsY0FBYyxxVENyQzNCLG16REEyQ0E7OzRGRE5hLGNBQWM7a0JBTDFCLFNBQVM7K0JBQ0UsZUFBZTswR0FLaEIsU0FBUztzQkFBakIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxxQkFBcUI7c0JBQTdCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFFb0IsV0FBVztzQkFBcEMsU0FBUzt1QkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjMgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtWYWx0aW1vTW9kYWxTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy92YWx0aW1vLW1vZGFsLnNlcnZpY2UnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIFN1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby12YXJcbmRlY2xhcmUgdmFyICQ7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbHRpbW8tbW9kYWwnLFxuICB0ZW1wbGF0ZVVybDogJy4vbW9kYWwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9tb2RhbC5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBNb2RhbENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KCkgZWxlbWVudElkOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHRpdGxlID0gJyc7XG4gIEBJbnB1dCgpIHN1YnRpdGxlID0gJyc7XG4gIEBJbnB1dCgpIHRlbXBsYXRlQmVsb3dTdWJ0aXRsZTogVGVtcGxhdGVSZWY8YW55PjtcbiAgQElucHV0KCkgc2hvd0Zvb3RlciA9IGZhbHNlO1xuXG4gIEBWaWV3Q2hpbGQoJ3Njcm9sbE1vZGFsJykgc2Nyb2xsTW9kYWw6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuXG4gIHJlYWRvbmx5IG1vZGFsU2hvd2luZyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcblxuICBwcml2YXRlIHNjcm9sbFN1YnNjcmlwdGlvbiE6IFN1YnNjcmlwdGlvbjtcblxuICBwcml2YXRlIG9ic2VydmVyITogTXV0YXRpb25PYnNlcnZlcjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IG1vZGFsU2VydmljZTogVmFsdGltb01vZGFsU2VydmljZSkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLm9wZW5TY3JvbGxTdWJzY3JpcHRpb24oKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAkKGAjJHt0aGlzLmVsZW1lbnRJZH1gKS5tb2RhbCh7c2hvdzogZmFsc2V9KTtcbiAgICB0aGlzLndhdGNoRm9yQ2xhc3NDaGFuZ2VzKCk7XG4gIH1cblxuICBzaG93KCkge1xuICAgICQoYCMke3RoaXMuZWxlbWVudElkfWApLm1vZGFsKCdzaG93Jyk7XG4gIH1cblxuICBoaWRlKCkge1xuICAgICQoYCMke3RoaXMuZWxlbWVudElkfWApLm1vZGFsKCdoaWRlJyk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnNjcm9sbFN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLm9ic2VydmVyPy5kaXNjb25uZWN0KCk7XG4gIH1cblxuICBwcml2YXRlIG9wZW5TY3JvbGxTdWJzY3JpcHRpb24oKTogdm9pZCB7XG4gICAgdGhpcy5zY3JvbGxTdWJzY3JpcHRpb24gPSB0aGlzLm1vZGFsU2VydmljZS5zY3JvbGxUb1RvcCQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLnNjcm9sbE1vZGFsLm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICAgIGlmIChlbGVtZW50KSBlbGVtZW50LnNjcm9sbFRvKDAsIDApO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSB3YXRjaEZvckNsYXNzQ2hhbmdlcygpOiB2b2lkIHtcbiAgICB0aGlzLm9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIobXV0YXRpb25zID0+IHtcbiAgICAgIG11dGF0aW9ucz8uZm9yRWFjaChtdXRhdGlvbiA9PiB7XG4gICAgICAgIGlmIChtdXRhdGlvbj8uYXR0cmlidXRlTmFtZSA9PT0gJ2NsYXNzJykge1xuICAgICAgICAgIGNvbnN0IG1vZGFsU2hvd2luZyA9IChtdXRhdGlvbj8udGFyZ2V0IGFzIGFueSk/LmNsYXNzTGlzdD8uY29udGFpbnMoJ3Nob3cnKTtcbiAgICAgICAgICB0aGlzLm1vZGFsU2hvd2luZyQubmV4dChtb2RhbFNob3dpbmcpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgICBjb25zdCBjb25maWcgPSB7YXR0cmlidXRlczogdHJ1ZSwgY2hpbGRMaXN0OiBmYWxzZSwgY2hhcmFjdGVyRGF0YTogZmFsc2V9O1xuICAgIHRoaXMub2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLnNjcm9sbE1vZGFsLm5hdGl2ZUVsZW1lbnQsIGNvbmZpZyk7XG4gIH1cbn1cbiIsIjwhLS1cbiAgfiBDb3B5cmlnaHQgMjAxNS0yMDIzIFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAgflxuICB+IExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICB+IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAgfiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAgflxuICB+IGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAgflxuICB+IFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAgfiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gIH4gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gIH4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICB+IGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICAtLT5cblxuPGRpdiBjbGFzcz1cIm1vZGFsIGZhZGUgY3VzdG9tLXdpZHRoXCIgW2lkXT1cImVsZW1lbnRJZFwiIHJvbGU9XCJkaWFsb2dcIiBhcmlhLW1vZGFsPVwidHJ1ZVwiICNzY3JvbGxNb2RhbD5cbiAgPGRpdiBjbGFzcz1cIm1vZGFsLWRpYWxvZyBtb2RhbC1sZ1wiPlxuICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1jb250ZW50XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtaGVhZGVyIG1vZGFsLWhlYWRlci1jb2xvcmVkIGNvbG9yZWQtaGVhZGVyLWdyZXlcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLXRpdGxlXCI+XG4gICAgICAgICAgPGg0IGNsYXNzPVwidGl0bGUtdGV4dCBtYi0yXCI+e3sgdGl0bGUgfX08L2g0PlxuICAgICAgICAgIDxoNSBjbGFzcz1cInN1YnRpdGxlLXRleHRcIj57eyBzdWJ0aXRsZSB9fTwvaDU+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRlbXBsYXRlQmVsb3dTdWJ0aXRsZVwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRlbXBsYXRlQmVsb3dTdWJ0aXRsZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtcmlnaHRcIj5cbiAgICAgICAgICA8aW1nIHNyYz1cImFzc2V0cy9tb2RhbC9oZWFkZXItaW1hZ2UucG5nXCIgY2xhc3M9XCJtb2RhbC1oZWFkZXItaW1hZ2VcIiAvPlxuICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiY2xvc2VcIiBkYXRhLWRpc21pc3M9XCJtb2RhbFwiIGFyaWEtbGFiZWw9XCJDbG9zZVwiPlxuICAgICAgICAgICAgPHNwYW4gYXJpYS1oaWRkZW49XCJ0cnVlXCI+JnRpbWVzOzwvc3Bhbj5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1ib2R5XCI+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltib2R5XVwiPjwvbmctY29udGVudD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWZvb3RlclwiICpuZ0lmPVwic2hvd0Zvb3RlclwiPlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbZm9vdGVyXVwiPjwvbmctY29udGVudD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -18,11 +18,11 @@ import { CommonModule } from '@angular/common';
18
18
  import { ModalComponent } from './modal.component';
19
19
  import * as i0 from "@angular/core";
20
20
  export class ModalModule {
21
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ModalModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
22
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: ModalModule, declarations: [ModalComponent], imports: [CommonModule], exports: [ModalComponent] }); }
23
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ModalModule, imports: [CommonModule] }); }
21
24
  }
22
- ModalModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ModalModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
23
- ModalModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: ModalModule, declarations: [ModalComponent], imports: [CommonModule], exports: [ModalComponent] });
24
- ModalModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ModalModule, imports: [CommonModule] });
25
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ModalModule, decorators: [{
25
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ModalModule, decorators: [{
26
26
  type: NgModule,
27
27
  args: [{
28
28
  declarations: [ModalComponent],
@@ -30,4 +30,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
30
30
  exports: [ModalComponent],
31
31
  }]
32
32
  }] });
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9tb2RhbC9tb2RhbC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFFSCxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sbUJBQW1CLENBQUM7O0FBT2pELE1BQU0sT0FBTyxXQUFXOzt3R0FBWCxXQUFXO3lHQUFYLFdBQVcsaUJBSlAsY0FBYyxhQUNuQixZQUFZLGFBQ1osY0FBYzt5R0FFYixXQUFXLFlBSFosWUFBWTsyRkFHWCxXQUFXO2tCQUx2QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLGNBQWMsQ0FBQztvQkFDOUIsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO29CQUN2QixPQUFPLEVBQUUsQ0FBQyxjQUFjLENBQUM7aUJBQzFCIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjMgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHtOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7TW9kYWxDb21wb25lbnR9IGZyb20gJy4vbW9kYWwuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbTW9kYWxDb21wb25lbnRdLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgZXhwb3J0czogW01vZGFsQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgTW9kYWxNb2R1bGUge31cbiJdfQ==
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9tb2RhbC9tb2RhbC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFFSCxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sbUJBQW1CLENBQUM7O0FBT2pELE1BQU0sT0FBTyxXQUFXOytHQUFYLFdBQVc7Z0hBQVgsV0FBVyxpQkFKUCxjQUFjLGFBQ25CLFlBQVksYUFDWixjQUFjO2dIQUViLFdBQVcsWUFIWixZQUFZOzs0RkFHWCxXQUFXO2tCQUx2QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLGNBQWMsQ0FBQztvQkFDOUIsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO29CQUN2QixPQUFPLEVBQUUsQ0FBQyxjQUFjLENBQUM7aUJBQzFCIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjMgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHtOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7TW9kYWxDb21wb25lbnR9IGZyb20gJy4vbW9kYWwuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbTW9kYWxDb21wb25lbnRdLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgZXhwb3J0czogW01vZGFsQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgTW9kYWxNb2R1bGUge31cbiJdfQ==