@openmrs/ngx-formentry 3.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 (351) hide show
  1. package/abstract-controls-extension/afe-control-type.d.ts +6 -0
  2. package/abstract-controls-extension/afe-form-array.d.ts +43 -0
  3. package/abstract-controls-extension/afe-form-control.d.ts +46 -0
  4. package/abstract-controls-extension/afe-form-group.d.ts +38 -0
  5. package/abstract-controls-extension/control-extensions.d.ts +4 -0
  6. package/abstract-controls-extension/index.d.ts +4 -0
  7. package/abstract-controls-extension/value-change.listener.d.ts +4 -0
  8. package/bundles/openmrs-ngx-formentry.umd.js +16104 -0
  9. package/bundles/openmrs-ngx-formentry.umd.js.map +1 -0
  10. package/change-tracking/control-relation.d.ts +12 -0
  11. package/change-tracking/control-relations.d.ts +12 -0
  12. package/components/afe-ng-select.component.d.ts +28 -0
  13. package/components/appointments-overview/appointments-overview.component.d.ts +17 -0
  14. package/components/check-box/checkbox.component.d.ts +19 -0
  15. package/components/check-box/checkbox.module.d.ts +9 -0
  16. package/components/custom-component-wrapper/custom-component-wrapper..module.d.ts +9 -0
  17. package/components/custom-component-wrapper/custom-component-wrapper.component.d.ts +12 -0
  18. package/components/custom-control-wrapper/custom-control-wrapper..module.d.ts +10 -0
  19. package/components/custom-control-wrapper/custom-control-wrapper.component.d.ts +28 -0
  20. package/components/date-time-picker/date-picker/date-picker.component.d.ts +45 -0
  21. package/components/date-time-picker/date-time-picker.component.d.ts +28 -0
  22. package/components/date-time-picker/date-time-picker.module.d.ts +13 -0
  23. package/components/date-time-picker/index.d.ts +8 -0
  24. package/components/date-time-picker/picker-modal/modal.component.d.ts +12 -0
  25. package/components/date-time-picker/pipes/moment.pipe.d.ts +11 -0
  26. package/components/date-time-picker/time-picker/time-picker.component.d.ts +32 -0
  27. package/components/file-upload/file-upload.component.d.ts +29 -0
  28. package/components/file-upload/file-upload.module.d.ts +12 -0
  29. package/components/file-upload/secure.pipe.d.ts +26 -0
  30. package/components/input/input.directive.d.ts +31 -0
  31. package/components/input/input.module.d.ts +11 -0
  32. package/components/input/label.component.d.ts +90 -0
  33. package/components/input/text-area.directive.d.ts +24 -0
  34. package/components/ngx-datetime-picker/ngx-datetime-picker.component.d.ts +21 -0
  35. package/components/ngx-datetime-picker/ngx-datetime-picker.module.d.ts +11 -0
  36. package/components/ngx-pick-datetime/lib/date-time/adapter/date-time-adapter.class.d.ts +189 -0
  37. package/components/ngx-pick-datetime/lib/date-time/adapter/date-time-format.class.d.ts +15 -0
  38. package/components/ngx-pick-datetime/lib/date-time/adapter/native-date-time-adapter.class.d.ts +73 -0
  39. package/components/ngx-pick-datetime/lib/date-time/adapter/native-date-time-format.class.d.ts +5 -0
  40. package/components/ngx-pick-datetime/lib/date-time/adapter/native-date-time.module.d.ts +12 -0
  41. package/components/ngx-pick-datetime/lib/date-time/calendar-body.component.d.ts +76 -0
  42. package/components/ngx-pick-datetime/lib/date-time/calendar-month-view.component.d.ts +139 -0
  43. package/components/ngx-pick-datetime/lib/date-time/calendar-multi-year-view.component.d.ts +108 -0
  44. package/components/ngx-pick-datetime/lib/date-time/calendar-year-view.component.d.ts +120 -0
  45. package/components/ngx-pick-datetime/lib/date-time/calendar.component.d.ts +137 -0
  46. package/components/ngx-pick-datetime/lib/date-time/date-time-inline.component.d.ts +92 -0
  47. package/components/ngx-pick-datetime/lib/date-time/date-time-picker-container.component.d.ts +121 -0
  48. package/components/ngx-pick-datetime/lib/date-time/date-time-picker-input.directive.d.ts +149 -0
  49. package/components/ngx-pick-datetime/lib/date-time/date-time-picker-intl.service.d.ts +51 -0
  50. package/components/ngx-pick-datetime/lib/date-time/date-time-picker-trigger.directive.d.ts +20 -0
  51. package/components/ngx-pick-datetime/lib/date-time/date-time-picker.animations.d.ts +8 -0
  52. package/components/ngx-pick-datetime/lib/date-time/date-time-picker.component.d.ts +156 -0
  53. package/components/ngx-pick-datetime/lib/date-time/date-time.class.d.ts +89 -0
  54. package/components/ngx-pick-datetime/lib/date-time/date-time.module.d.ts +23 -0
  55. package/components/ngx-pick-datetime/lib/date-time/numberedFixLen.pipe.d.ts +10 -0
  56. package/components/ngx-pick-datetime/lib/date-time/timer-box.component.d.ts +35 -0
  57. package/components/ngx-pick-datetime/lib/date-time/timer.component.d.ts +128 -0
  58. package/components/ngx-pick-datetime/lib/dialog/dialog-config.class.d.ts +93 -0
  59. package/components/ngx-pick-datetime/lib/dialog/dialog-container.component.d.ts +58 -0
  60. package/components/ngx-pick-datetime/lib/dialog/dialog-ref.class.d.ts +49 -0
  61. package/components/ngx-pick-datetime/lib/dialog/dialog.module.d.ts +11 -0
  62. package/components/ngx-pick-datetime/lib/dialog/dialog.service.d.ts +73 -0
  63. package/components/ngx-pick-datetime/lib/utils/index.d.ts +4 -0
  64. package/components/ngx-pick-datetime/lib/utils/object.utils.d.ts +11 -0
  65. package/components/ngx-remote-select/ngx-remote-select.component.d.ts +40 -0
  66. package/components/ngx-remote-select/ngx-remote-select.module.d.ts +10 -0
  67. package/components/ngx-tabset/components/ngx-tab-set.component.d.ts +19 -0
  68. package/components/ngx-tabset/components/tab.component.d.ts +13 -0
  69. package/components/ngx-tabset/directives/hover-class.directive.d.ts +11 -0
  70. package/components/ngx-tabset/modules/ngx-tabset.module.d.ts +19 -0
  71. package/components/number-input/number-input.component.d.ts +151 -0
  72. package/components/number-input/number-input.module.d.ts +9 -0
  73. package/components/radio-button/radio.component.d.ts +22 -0
  74. package/components/radio-button/radio.module.d.ts +9 -0
  75. package/components/select/optgroup.directive.d.ts +6 -0
  76. package/components/select/option.directive.d.ts +6 -0
  77. package/components/select/select.component.d.ts +115 -0
  78. package/components/select/select.module.d.ts +11 -0
  79. package/esm2015/abstract-controls-extension/afe-control-type.js +8 -0
  80. package/esm2015/abstract-controls-extension/afe-form-array.js +85 -0
  81. package/esm2015/abstract-controls-extension/afe-form-control.js +88 -0
  82. package/esm2015/abstract-controls-extension/afe-form-group.js +61 -0
  83. package/esm2015/abstract-controls-extension/control-extensions.js +5 -0
  84. package/esm2015/abstract-controls-extension/index.js +5 -0
  85. package/esm2015/abstract-controls-extension/value-change.listener.js +2 -0
  86. package/esm2015/change-tracking/control-relation.js +44 -0
  87. package/esm2015/change-tracking/control-relations.js +32 -0
  88. package/esm2015/components/afe-ng-select.component.js +101 -0
  89. package/esm2015/components/appointments-overview/appointments-overview.component.js +121 -0
  90. package/esm2015/components/check-box/checkbox.component.js +90 -0
  91. package/esm2015/components/check-box/checkbox.module.js +19 -0
  92. package/esm2015/components/custom-component-wrapper/custom-component-wrapper..module.js +21 -0
  93. package/esm2015/components/custom-component-wrapper/custom-component-wrapper.component.js +23 -0
  94. package/esm2015/components/custom-control-wrapper/custom-control-wrapper..module.js +22 -0
  95. package/esm2015/components/custom-control-wrapper/custom-control-wrapper.component.js +73 -0
  96. package/esm2015/components/date-time-picker/date-picker/date-picker.component.js +192 -0
  97. package/esm2015/components/date-time-picker/date-time-picker.component.js +119 -0
  98. package/esm2015/components/date-time-picker/date-time-picker.module.js +47 -0
  99. package/esm2015/components/date-time-picker/index.js +9 -0
  100. package/esm2015/components/date-time-picker/picker-modal/modal.component.js +31 -0
  101. package/esm2015/components/date-time-picker/pipes/moment.pipe.js +17 -0
  102. package/esm2015/components/date-time-picker/time-picker/time-picker.component.js +125 -0
  103. package/esm2015/components/file-upload/file-upload.component.js +122 -0
  104. package/esm2015/components/file-upload/file-upload.module.js +39 -0
  105. package/esm2015/components/file-upload/secure.pipe.js +101 -0
  106. package/esm2015/components/input/input.directive.js +78 -0
  107. package/esm2015/components/input/input.module.js +23 -0
  108. package/esm2015/components/input/label.component.js +263 -0
  109. package/esm2015/components/input/text-area.directive.js +54 -0
  110. package/esm2015/components/ngx-datetime-picker/ngx-datetime-picker.component.js +80 -0
  111. package/esm2015/components/ngx-datetime-picker/ngx-datetime-picker.module.js +38 -0
  112. package/esm2015/components/ngx-pick-datetime/lib/date-time/adapter/date-time-adapter.class.js +114 -0
  113. package/esm2015/components/ngx-pick-datetime/lib/date-time/adapter/date-time-format.class.js +7 -0
  114. package/esm2015/components/ngx-pick-datetime/lib/date-time/adapter/native-date-time-adapter.class.js +347 -0
  115. package/esm2015/components/ngx-pick-datetime/lib/date-time/adapter/native-date-time-format.class.js +16 -0
  116. package/esm2015/components/ngx-pick-datetime/lib/date-time/adapter/native-date-time.module.js +39 -0
  117. package/esm2015/components/ngx-pick-datetime/lib/date-time/calendar-body.component.js +149 -0
  118. package/esm2015/components/ngx-pick-datetime/lib/date-time/calendar-month-view.component.js +445 -0
  119. package/esm2015/components/ngx-pick-datetime/lib/date-time/calendar-multi-year-view.component.js +378 -0
  120. package/esm2015/components/ngx-pick-datetime/lib/date-time/calendar-year-view.component.js +373 -0
  121. package/esm2015/components/ngx-pick-datetime/lib/date-time/calendar.component.js +348 -0
  122. package/esm2015/components/ngx-pick-datetime/lib/date-time/date-time-inline.component.js +265 -0
  123. package/esm2015/components/ngx-pick-datetime/lib/date-time/date-time-picker-container.component.js +399 -0
  124. package/esm2015/components/ngx-pick-datetime/lib/date-time/date-time-picker-input.directive.js +614 -0
  125. package/esm2015/components/ngx-pick-datetime/lib/date-time/date-time-picker-intl.service.js +62 -0
  126. package/esm2015/components/ngx-pick-datetime/lib/date-time/date-time-picker-trigger.directive.js +70 -0
  127. package/esm2015/components/ngx-pick-datetime/lib/date-time/date-time-picker.animations.js +21 -0
  128. package/esm2015/components/ngx-pick-datetime/lib/date-time/date-time-picker.component.js +528 -0
  129. package/esm2015/components/ngx-pick-datetime/lib/date-time/date-time.class.js +166 -0
  130. package/esm2015/components/ngx-pick-datetime/lib/date-time/date-time.module.js +83 -0
  131. package/esm2015/components/ngx-pick-datetime/lib/date-time/numberedFixLen.pipe.js +28 -0
  132. package/esm2015/components/ngx-pick-datetime/lib/date-time/timer-box.component.js +96 -0
  133. package/esm2015/components/ngx-pick-datetime/lib/date-time/timer.component.js +298 -0
  134. package/esm2015/components/ngx-pick-datetime/lib/dialog/dialog-config.class.js +56 -0
  135. package/esm2015/components/ngx-pick-datetime/lib/dialog/dialog-container.component.js +247 -0
  136. package/esm2015/components/ngx-pick-datetime/lib/dialog/dialog-ref.class.js +119 -0
  137. package/esm2015/components/ngx-pick-datetime/lib/dialog/dialog.module.js +27 -0
  138. package/esm2015/components/ngx-pick-datetime/lib/dialog/dialog.service.js +233 -0
  139. package/esm2015/components/ngx-pick-datetime/lib/utils/index.js +5 -0
  140. package/esm2015/components/ngx-pick-datetime/lib/utils/object.utils.js +26 -0
  141. package/esm2015/components/ngx-remote-select/ngx-remote-select.component.js +135 -0
  142. package/esm2015/components/ngx-remote-select/ngx-remote-select.module.js +21 -0
  143. package/esm2015/components/ngx-tabset/components/ngx-tab-set.component.js +76 -0
  144. package/esm2015/components/ngx-tabset/components/tab.component.js +37 -0
  145. package/esm2015/components/ngx-tabset/directives/hover-class.directive.js +30 -0
  146. package/esm2015/components/ngx-tabset/modules/ngx-tabset.module.js +38 -0
  147. package/esm2015/components/number-input/number-input.component.js +233 -0
  148. package/esm2015/components/number-input/number-input.module.js +20 -0
  149. package/esm2015/components/radio-button/radio.component.js +87 -0
  150. package/esm2015/components/radio-button/radio.module.js +19 -0
  151. package/esm2015/components/select/optgroup.directive.js +19 -0
  152. package/esm2015/components/select/option.directive.js +19 -0
  153. package/esm2015/components/select/select.component.js +187 -0
  154. package/esm2015/components/select/select.module.js +23 -0
  155. package/esm2015/form-entry/control-alerts/alert-helpers.js +40 -0
  156. package/esm2015/form-entry/control-alerts/can-generate-alert.js +2 -0
  157. package/esm2015/form-entry/control-calculators/can-calculate.js +2 -0
  158. package/esm2015/form-entry/control-hiders-disablers/can-disable.js +2 -0
  159. package/esm2015/form-entry/control-hiders-disablers/can-hide.js +2 -0
  160. package/esm2015/form-entry/control-hiders-disablers/disabler-helper.js +32 -0
  161. package/esm2015/form-entry/control-hiders-disablers/hider-helpers.js +40 -0
  162. package/esm2015/form-entry/data-sources/data-sources.js +30 -0
  163. package/esm2015/form-entry/data-sources/dummy-data-source.js +104 -0
  164. package/esm2015/form-entry/directives/collapse-animations.js +11 -0
  165. package/esm2015/form-entry/directives/collapse.directive.js +172 -0
  166. package/esm2015/form-entry/directives/historical-value.directive.js +67 -0
  167. package/esm2015/form-entry/error-renderer/error-renderer.component.js +56 -0
  168. package/esm2015/form-entry/expression-runner/expression-runner.js +170 -0
  169. package/esm2015/form-entry/form-entry.module.js +187 -0
  170. package/esm2015/form-entry/form-factory/control-relations.factory.js +238 -0
  171. package/esm2015/form-entry/form-factory/form-control.service.js +119 -0
  172. package/esm2015/form-entry/form-factory/form-node.js +96 -0
  173. package/esm2015/form-entry/form-factory/form.factory.js +141 -0
  174. package/esm2015/form-entry/form-factory/form.js +189 -0
  175. package/esm2015/form-entry/form-factory/hiders-disablers.factory.js +67 -0
  176. package/esm2015/form-entry/form-factory/question.factory.js +942 -0
  177. package/esm2015/form-entry/form-factory/show-messages.factory.js +31 -0
  178. package/esm2015/form-entry/form-factory/validation.factory.js +147 -0
  179. package/esm2015/form-entry/form-renderer/form-renderer.component.js +268 -0
  180. package/esm2015/form-entry/helpers/historical-expression-helper-service.js +42 -0
  181. package/esm2015/form-entry/helpers/historical-field-helper-service.js +39 -0
  182. package/esm2015/form-entry/helpers/js-expression-helper.js +275 -0
  183. package/esm2015/form-entry/helpers/risk-dataset-table.js +247 -0
  184. package/esm2015/form-entry/pipes/time-ago.pipe.js +107 -0
  185. package/esm2015/form-entry/question-models/checkbox.model.js +11 -0
  186. package/esm2015/form-entry/question-models/conditional-validation.model.js +9 -0
  187. package/esm2015/form-entry/question-models/custom-control-question.model.js +10 -0
  188. package/esm2015/form-entry/question-models/date-question.js +12 -0
  189. package/esm2015/form-entry/question-models/date-validation.model.js +10 -0
  190. package/esm2015/form-entry/question-models/file-upload-question.js +13 -0
  191. package/esm2015/form-entry/question-models/group-question.js +12 -0
  192. package/esm2015/form-entry/question-models/interfaces/base-options.js +2 -0
  193. package/esm2015/form-entry/question-models/interfaces/checkbox-options.js +2 -0
  194. package/esm2015/form-entry/question-models/interfaces/data-source.js +2 -0
  195. package/esm2015/form-entry/question-models/interfaces/date-question-options.js +2 -0
  196. package/esm2015/form-entry/question-models/interfaces/file-upload-question-options.js +2 -0
  197. package/esm2015/form-entry/question-models/interfaces/group-question-options.js +2 -0
  198. package/esm2015/form-entry/question-models/interfaces/multi-select-options.js +2 -0
  199. package/esm2015/form-entry/question-models/interfaces/nested-questions.js +7 -0
  200. package/esm2015/form-entry/question-models/interfaces/radio-button-options.js +2 -0
  201. package/esm2015/form-entry/question-models/interfaces/repeating-question-options.js +2 -0
  202. package/esm2015/form-entry/question-models/interfaces/select-option.js +2 -0
  203. package/esm2015/form-entry/question-models/interfaces/select-question-options.js +2 -0
  204. package/esm2015/form-entry/question-models/interfaces/test-order-question-options.js +2 -0
  205. package/esm2015/form-entry/question-models/interfaces/text-area-question-options.js +2 -0
  206. package/esm2015/form-entry/question-models/interfaces/text-question-options.js +2 -0
  207. package/esm2015/form-entry/question-models/interfaces/ui-select-question-options.js +2 -0
  208. package/esm2015/form-entry/question-models/js-expression-validation.model.js +8 -0
  209. package/esm2015/form-entry/question-models/max-validation.model.js +9 -0
  210. package/esm2015/form-entry/question-models/min-validation.model.js +9 -0
  211. package/esm2015/form-entry/question-models/models.js +13 -0
  212. package/esm2015/form-entry/question-models/multi-select-question.js +11 -0
  213. package/esm2015/form-entry/question-models/pair.model.js +7 -0
  214. package/esm2015/form-entry/question-models/question-base.js +26 -0
  215. package/esm2015/form-entry/question-models/radio-button.model.js +12 -0
  216. package/esm2015/form-entry/question-models/rendering-type.js +9 -0
  217. package/esm2015/form-entry/question-models/repeating-question.js +11 -0
  218. package/esm2015/form-entry/question-models/select-option.js +7 -0
  219. package/esm2015/form-entry/question-models/select-question.js +12 -0
  220. package/esm2015/form-entry/question-models/test-order-question.js +15 -0
  221. package/esm2015/form-entry/question-models/text-area-input-question.js +13 -0
  222. package/esm2015/form-entry/question-models/text-input-question.js +10 -0
  223. package/esm2015/form-entry/question-models/ui-select-question.js +11 -0
  224. package/esm2015/form-entry/question-models/validation.model.js +7 -0
  225. package/esm2015/form-entry/services/debug-mode.service.js +24 -0
  226. package/esm2015/form-entry/services/form-errors.service.js +21 -0
  227. package/esm2015/form-entry/services/form-schema-compiler.service.js +248 -0
  228. package/esm2015/form-entry/services/historical-encounter-data.service.js +172 -0
  229. package/esm2015/form-entry/utils/messages.js +12 -0
  230. package/esm2015/form-entry/validators/conditional-answered.validator.js +46 -0
  231. package/esm2015/form-entry/validators/conditional-required.validator.js +40 -0
  232. package/esm2015/form-entry/validators/date.validator.js +18 -0
  233. package/esm2015/form-entry/validators/future-date-restriction.validator.js +21 -0
  234. package/esm2015/form-entry/validators/js-expression.validator.js +26 -0
  235. package/esm2015/form-entry/validators/max-date.validator.js +23 -0
  236. package/esm2015/form-entry/validators/max.validator.js +17 -0
  237. package/esm2015/form-entry/validators/min-date.validator.js +23 -0
  238. package/esm2015/form-entry/validators/min.validator.js +17 -0
  239. package/esm2015/form-entry/validators/required.validator.js +11 -0
  240. package/esm2015/form-entry/validators/validations.js +5 -0
  241. package/esm2015/form-entry/value-adapters/encounter.adapter.js +171 -0
  242. package/esm2015/form-entry/value-adapters/obs-adapter-helper.js +512 -0
  243. package/esm2015/form-entry/value-adapters/obs.adapter.js +542 -0
  244. package/esm2015/form-entry/value-adapters/order.adapter.js +186 -0
  245. package/esm2015/form-entry/value-adapters/person-attribute.adapter.js +88 -0
  246. package/esm2015/form-entry/value-adapters/value.adapter.js +2 -0
  247. package/esm2015/lib/index.js +58 -0
  248. package/esm2015/openmrs-ngx-formentry.js +5 -0
  249. package/esm2015/public_api.js +2 -0
  250. package/esm2015/shared.module.js +21 -0
  251. package/fesm2015/openmrs-ngx-formentry.js +14323 -0
  252. package/fesm2015/openmrs-ngx-formentry.js.map +1 -0
  253. package/form-entry/control-alerts/alert-helpers.d.ts +9 -0
  254. package/form-entry/control-alerts/can-generate-alert.d.ts +18 -0
  255. package/form-entry/control-calculators/can-calculate.d.ts +5 -0
  256. package/form-entry/control-hiders-disablers/can-disable.d.ts +19 -0
  257. package/form-entry/control-hiders-disablers/can-hide.d.ts +20 -0
  258. package/form-entry/control-hiders-disablers/disabler-helper.d.ts +7 -0
  259. package/form-entry/control-hiders-disablers/hider-helpers.d.ts +9 -0
  260. package/form-entry/data-sources/data-sources.d.ts +10 -0
  261. package/form-entry/data-sources/dummy-data-source.d.ts +18 -0
  262. package/form-entry/directives/collapse-animations.d.ts +4 -0
  263. package/form-entry/directives/collapse.directive.d.ts +45 -0
  264. package/form-entry/directives/historical-value.directive.d.ts +16 -0
  265. package/form-entry/error-renderer/error-renderer.component.d.ts +18 -0
  266. package/form-entry/expression-runner/expression-runner.d.ts +18 -0
  267. package/form-entry/form-entry.module.d.ts +30 -0
  268. package/form-entry/form-factory/control-relations.factory.d.ts +18 -0
  269. package/form-entry/form-factory/form-control.service.d.ts +25 -0
  270. package/form-entry/form-factory/form-node.d.ts +52 -0
  271. package/form-entry/form-factory/form.d.ts +28 -0
  272. package/form-entry/form-factory/form.factory.d.ts +27 -0
  273. package/form-entry/form-factory/hiders-disablers.factory.d.ts +20 -0
  274. package/form-entry/form-factory/question.factory.d.ts +62 -0
  275. package/form-entry/form-factory/show-messages.factory.d.ts +15 -0
  276. package/form-entry/form-factory/validation.factory.d.ts +25 -0
  277. package/form-entry/form-renderer/form-renderer.component.d.ts +63 -0
  278. package/form-entry/helpers/historical-expression-helper-service.d.ts +8 -0
  279. package/form-entry/helpers/historical-field-helper-service.d.ts +7 -0
  280. package/form-entry/helpers/js-expression-helper.d.ts +37 -0
  281. package/form-entry/helpers/risk-dataset-table.d.ts +1 -0
  282. package/form-entry/pipes/time-ago.pipe.d.ts +14 -0
  283. package/form-entry/question-models/checkbox.model.d.ts +9 -0
  284. package/form-entry/question-models/conditional-validation.model.d.ts +6 -0
  285. package/form-entry/question-models/custom-control-question.model.d.ts +6 -0
  286. package/form-entry/question-models/date-question.d.ts +7 -0
  287. package/form-entry/question-models/date-validation.model.d.ts +5 -0
  288. package/form-entry/question-models/file-upload-question.d.ts +8 -0
  289. package/form-entry/question-models/group-question.d.ts +8 -0
  290. package/form-entry/question-models/interfaces/base-options.d.ts +30 -0
  291. package/form-entry/question-models/interfaces/checkbox-options.d.ts +7 -0
  292. package/form-entry/question-models/interfaces/data-source.d.ts +10 -0
  293. package/form-entry/question-models/interfaces/date-question-options.d.ts +3 -0
  294. package/form-entry/question-models/interfaces/file-upload-question-options.d.ts +5 -0
  295. package/form-entry/question-models/interfaces/group-question-options.d.ts +5 -0
  296. package/form-entry/question-models/interfaces/multi-select-options.d.ts +4 -0
  297. package/form-entry/question-models/interfaces/nested-questions.d.ts +6 -0
  298. package/form-entry/question-models/interfaces/radio-button-options.d.ts +8 -0
  299. package/form-entry/question-models/interfaces/repeating-question-options.d.ts +7 -0
  300. package/form-entry/question-models/interfaces/select-option.d.ts +4 -0
  301. package/form-entry/question-models/interfaces/select-question-options.d.ts +9 -0
  302. package/form-entry/question-models/interfaces/test-order-question-options.d.ts +14 -0
  303. package/form-entry/question-models/interfaces/text-area-question-options.d.ts +5 -0
  304. package/form-entry/question-models/interfaces/text-question-options.d.ts +4 -0
  305. package/form-entry/question-models/interfaces/ui-select-question-options.d.ts +9 -0
  306. package/form-entry/question-models/js-expression-validation.model.d.ts +5 -0
  307. package/form-entry/question-models/max-validation.model.d.ts +5 -0
  308. package/form-entry/question-models/min-validation.model.d.ts +5 -0
  309. package/form-entry/question-models/models.d.ts +16 -0
  310. package/form-entry/question-models/multi-select-question.d.ts +9 -0
  311. package/form-entry/question-models/pair.model.d.ts +5 -0
  312. package/form-entry/question-models/question-base.d.ts +45 -0
  313. package/form-entry/question-models/radio-button.model.d.ts +7 -0
  314. package/form-entry/question-models/rendering-type.d.ts +7 -0
  315. package/form-entry/question-models/repeating-question.d.ts +7 -0
  316. package/form-entry/question-models/select-option.d.ts +6 -0
  317. package/form-entry/question-models/select-question.d.ts +10 -0
  318. package/form-entry/question-models/test-order-question.d.ts +13 -0
  319. package/form-entry/question-models/text-area-input-question.d.ts +7 -0
  320. package/form-entry/question-models/text-input-question.d.ts +6 -0
  321. package/form-entry/question-models/ui-select-question.d.ts +11 -0
  322. package/form-entry/question-models/validation.model.d.ts +5 -0
  323. package/form-entry/services/debug-mode.service.d.ts +8 -0
  324. package/form-entry/services/form-errors.service.d.ts +13 -0
  325. package/form-entry/services/form-schema-compiler.service.d.ts +23 -0
  326. package/form-entry/services/historical-encounter-data.service.d.ts +15 -0
  327. package/form-entry/utils/messages.d.ts +11 -0
  328. package/form-entry/validators/conditional-answered.validator.d.ts +8 -0
  329. package/form-entry/validators/conditional-required.validator.d.ts +8 -0
  330. package/form-entry/validators/date.validator.d.ts +7 -0
  331. package/form-entry/validators/future-date-restriction.validator.d.ts +7 -0
  332. package/form-entry/validators/js-expression.validator.d.ts +8 -0
  333. package/form-entry/validators/max-date.validator.d.ts +6 -0
  334. package/form-entry/validators/max.validator.d.ts +6 -0
  335. package/form-entry/validators/min-date.validator.d.ts +6 -0
  336. package/form-entry/validators/min.validator.d.ts +6 -0
  337. package/form-entry/validators/required.validator.d.ts +6 -0
  338. package/form-entry/validators/validations.d.ts +4 -0
  339. package/form-entry/value-adapters/encounter.adapter.d.ts +26 -0
  340. package/form-entry/value-adapters/obs-adapter-helper.d.ts +34 -0
  341. package/form-entry/value-adapters/obs.adapter.d.ts +38 -0
  342. package/form-entry/value-adapters/order.adapter.d.ts +20 -0
  343. package/form-entry/value-adapters/person-attribute.adapter.d.ts +15 -0
  344. package/form-entry/value-adapters/value.adapter.d.ts +5 -0
  345. package/lib/index.d.ts +58 -0
  346. package/openmrs-ngx-formentry.d.ts +5 -0
  347. package/package.json +34 -0
  348. package/public_api.d.ts +1 -0
  349. package/shared.module.d.ts +9 -0
  350. package/styles/ngx-formentry.css +374 -0
  351. package/styles/picker.min.css +770 -0
@@ -0,0 +1,24 @@
1
+ /*
2
+ This service checks if the debug mode on ng2-amrs
3
+ has been enabled by checking cookies.
4
+ If the debug mode has been enabled then
5
+ it returns true and all fields are displayed
6
+ for use by testers
7
+ */
8
+ import { Injectable } from '@angular/core';
9
+ import * as i0 from "@angular/core";
10
+ export class DebugModeService {
11
+ constructor() {
12
+ this.cookieKey = 'formDebug';
13
+ }
14
+ debugEnabled() {
15
+ // check if the hidefield
16
+ return false;
17
+ }
18
+ }
19
+ DebugModeService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: DebugModeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
20
+ DebugModeService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: DebugModeService });
21
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: DebugModeService, decorators: [{
22
+ type: Injectable
23
+ }], ctorParameters: function () { return []; } });
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVidWctbW9kZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWZvcm1lbnRyeS9zcmMvZm9ybS1lbnRyeS9zZXJ2aWNlcy9kZWJ1Zy1tb2RlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztFQU1FO0FBRUYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFHM0MsTUFBTSxPQUFPLGdCQUFnQjtJQUczQjtRQUZPLGNBQVMsR0FBRyxXQUFXLENBQUM7SUFFaEIsQ0FBQztJQUNULFlBQVk7UUFDakIseUJBQXlCO1FBQ3pCLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzs7OEdBUFUsZ0JBQWdCO2tIQUFoQixnQkFBZ0I7NEZBQWhCLGdCQUFnQjtrQkFENUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG5UaGlzIHNlcnZpY2UgY2hlY2tzIGlmIHRoZSBkZWJ1ZyBtb2RlIG9uIG5nMi1hbXJzXG5oYXMgYmVlbiBlbmFibGVkIGJ5IGNoZWNraW5nIGNvb2tpZXMuXG5JZiB0aGUgZGVidWcgbW9kZSBoYXMgYmVlbiBlbmFibGVkIHRoZW5cbml0IHJldHVybnMgdHJ1ZSBhbmQgYWxsIGZpZWxkcyBhcmUgZGlzcGxheWVkXG5mb3IgdXNlIGJ5IHRlc3RlcnNcbiovXG5cbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIERlYnVnTW9kZVNlcnZpY2Uge1xuICBwdWJsaWMgY29va2llS2V5ID0gJ2Zvcm1EZWJ1Zyc7XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuICBwdWJsaWMgZGVidWdFbmFibGVkKCk6IGJvb2xlYW4ge1xuICAgIC8vIGNoZWNrIGlmIHRoZSBoaWRlZmllbGRcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,21 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { Subject } from 'rxjs';
3
+ import * as i0 from "@angular/core";
4
+ export class FormErrorsService {
5
+ constructor() {
6
+ this.announceErrorFieldSource = new Subject();
7
+ this.announceErrorField$ = this.announceErrorFieldSource.asObservable();
8
+ }
9
+ announceErrorField(error) {
10
+ this.announceErrorFieldSource.next(error);
11
+ }
12
+ }
13
+ // Observable string sources
14
+ FormErrorsService.control = null;
15
+ FormErrorsService.tab = null;
16
+ FormErrorsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FormErrorsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
17
+ FormErrorsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FormErrorsService });
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FormErrorsService, decorators: [{
19
+ type: Injectable
20
+ }] });
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1lcnJvcnMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1mb3JtZW50cnkvc3JjL2Zvcm0tZW50cnkvc2VydmljZXMvZm9ybS1lcnJvcnMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxPQUFPLEVBQWMsTUFBTSxNQUFNLENBQUM7O0FBTTNDLE1BQU0sT0FBTyxpQkFBaUI7SUFEOUI7UUFLUyw2QkFBd0IsR0FBRyxJQUFJLE9BQU8sRUFBVSxDQUFDO1FBQ2pELHdCQUFtQixHQUV0QixJQUFJLENBQUMsd0JBQXdCLENBQUMsWUFBWSxFQUFFLENBQUM7S0FJbEQ7SUFIUSxrQkFBa0IsQ0FBQyxLQUFhO1FBQ3JDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUMsQ0FBQzs7QUFURCw0QkFBNEI7QUFDZCx5QkFBTyxHQUFpRCxJQUFJLENBQUM7QUFDN0QscUJBQUcsR0FBVyxJQUFJLENBQUM7K0dBSHRCLGlCQUFpQjttSEFBakIsaUJBQWlCOzRGQUFqQixpQkFBaUI7a0JBRDdCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBBZmVGb3JtQ29udHJvbCB9IGZyb20gJy4uLy4uL3B1YmxpY19hcGknO1xuaW1wb3J0IHsgQWZlRm9ybUFycmF5LCBBZmVGb3JtR3JvdXAgfSBmcm9tICcuLi8uLi9hYnN0cmFjdC1jb250cm9scy1leHRlbnNpb24nO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRm9ybUVycm9yc1NlcnZpY2Uge1xuICAvLyBPYnNlcnZhYmxlIHN0cmluZyBzb3VyY2VzXG4gIHB1YmxpYyBzdGF0aWMgY29udHJvbDogQWZlRm9ybUNvbnRyb2wgfCBBZmVGb3JtQXJyYXkgfCBBZmVGb3JtR3JvdXAgPSBudWxsO1xuICBwdWJsaWMgc3RhdGljIHRhYjogbnVtYmVyID0gbnVsbDtcbiAgcHVibGljIGFubm91bmNlRXJyb3JGaWVsZFNvdXJjZSA9IG5ldyBTdWJqZWN0PHN0cmluZz4oKTtcbiAgcHVibGljIGFubm91bmNlRXJyb3JGaWVsZCQ6IE9ic2VydmFibGU8XG4gICAgYW55XG4gID4gPSB0aGlzLmFubm91bmNlRXJyb3JGaWVsZFNvdXJjZS5hc09ic2VydmFibGUoKTtcbiAgcHVibGljIGFubm91bmNlRXJyb3JGaWVsZChlcnJvcjogc3RyaW5nKSB7XG4gICAgdGhpcy5hbm5vdW5jZUVycm9yRmllbGRTb3VyY2UubmV4dChlcnJvcik7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,248 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as _ from 'lodash';
3
+ import * as i0 from "@angular/core";
4
+ export class FormSchemaCompiler {
5
+ constructor() { }
6
+ compileFormSchema(formSchema, referencedComponents) {
7
+ // get all referenced forms
8
+ const refForms = this.getReferencedForms(formSchema, referencedComponents);
9
+ if (_.isEmpty(refForms)) {
10
+ return formSchema;
11
+ }
12
+ // get all placeholders from the form schema
13
+ const placeHolders = this.getAllPlaceholderObjects(formSchema);
14
+ if (_.isEmpty(placeHolders)) {
15
+ return formSchema;
16
+ }
17
+ // replace all placeholders
18
+ this.replaceAllPlaceholdersWithActualObjects(refForms, placeHolders);
19
+ return formSchema;
20
+ }
21
+ findSchemaByName(schemaArray, nameOfSchema) {
22
+ if (_.isEmpty(schemaArray) || _.isEmpty(nameOfSchema)) {
23
+ return;
24
+ }
25
+ let foundSchema = {};
26
+ _.each(schemaArray, (schema) => {
27
+ if (schema.name === nameOfSchema) {
28
+ foundSchema = schema;
29
+ }
30
+ });
31
+ return foundSchema;
32
+ }
33
+ getPageInSchemaByLabel(schema, pageLabel) {
34
+ if (_.isEmpty(schema) || _.isEmpty(pageLabel)) {
35
+ return;
36
+ }
37
+ let foundPage = {};
38
+ _.each(schema.pages, (page) => {
39
+ if (page.label === pageLabel) {
40
+ foundPage = page;
41
+ }
42
+ });
43
+ return foundPage;
44
+ }
45
+ getSectionInSchemaByPageLabelBySectionLabel(schema, pageLabel, sectionLabel) {
46
+ if (_.isEmpty(schema) || _.isEmpty(pageLabel) || _.isEmpty(sectionLabel)) {
47
+ return;
48
+ }
49
+ const foundPage = this.getPageInSchemaByLabel(schema, pageLabel);
50
+ if (_.isEmpty(foundPage)) {
51
+ return;
52
+ }
53
+ let foundSection = {};
54
+ _.each(foundPage.sections, (section) => {
55
+ if (section.label === sectionLabel) {
56
+ foundSection = section;
57
+ }
58
+ });
59
+ return foundSection;
60
+ }
61
+ getQuestionByIdInSchema(schema, questionId) {
62
+ if (_.isEmpty(schema) || _.isEmpty(questionId)) {
63
+ return;
64
+ }
65
+ if (Array.isArray(schema)) {
66
+ let question;
67
+ for (let i = 0; i < schema.length; i++) {
68
+ if (!_.isEmpty(schema[i])) {
69
+ question = this.getQuestionByIdInSchema(schema[i], questionId);
70
+ }
71
+ if (!_.isEmpty(question)) {
72
+ break;
73
+ }
74
+ }
75
+ return question;
76
+ }
77
+ else if (typeof schema === 'object') {
78
+ if (this.isQuestionObjectWithId(schema, questionId)) {
79
+ return schema;
80
+ }
81
+ else if (this.isSchemaSubObjectExpandable(schema)) {
82
+ const toExpand = schema.pages || schema.sections || schema.questions;
83
+ return this.getQuestionByIdInSchema(toExpand, questionId);
84
+ }
85
+ else {
86
+ return;
87
+ }
88
+ }
89
+ else {
90
+ return;
91
+ }
92
+ }
93
+ getQuestionsArrayByQuestionIdInSchema(schema, questionId) {
94
+ if (_.isEmpty(schema) || _.isEmpty(questionId)) {
95
+ return;
96
+ }
97
+ return this.getQuestionsArrayByQuestionId(schema, schema, questionId);
98
+ }
99
+ getQuestionsArrayByQuestionId(parent, object, questionId) {
100
+ if (Array.isArray(object)) {
101
+ let returnedValue;
102
+ for (let i = 0; i < object.length; i++) {
103
+ if (!_.isEmpty(object[i])) {
104
+ returnedValue = this.getQuestionsArrayByQuestionId(object, object[i], questionId);
105
+ }
106
+ if (!_.isEmpty(returnedValue)) {
107
+ break;
108
+ }
109
+ }
110
+ return returnedValue;
111
+ }
112
+ else if (typeof object === 'object') {
113
+ if (this.isQuestionObjectWithId(object, questionId)) {
114
+ return parent;
115
+ }
116
+ else if (this.isSchemaSubObjectExpandable(object)) {
117
+ const toExpand = object.pages || object.sections || object.questions;
118
+ return this.getQuestionsArrayByQuestionId(toExpand, toExpand, questionId);
119
+ }
120
+ else {
121
+ return;
122
+ }
123
+ }
124
+ else {
125
+ return;
126
+ }
127
+ }
128
+ // object is page or section or question
129
+ isSchemaSubObjectExpandable(object) {
130
+ if (typeof object === 'object') {
131
+ const objectKeys = Object.keys(object);
132
+ if (_.includes(objectKeys, 'pages') ||
133
+ _.includes(objectKeys, 'sections') ||
134
+ _.includes(objectKeys, 'questions')) {
135
+ return true;
136
+ }
137
+ }
138
+ return false;
139
+ }
140
+ isQuestionObjectWithId(object, id) {
141
+ return object['id'] === id;
142
+ }
143
+ getAllPlaceholderObjects(schema) {
144
+ const referencedObjects = [];
145
+ this.extractPlaceholderObjects(schema, referencedObjects);
146
+ return referencedObjects;
147
+ }
148
+ extractPlaceholderObjects(subSchema, objectsArray) {
149
+ if (_.isEmpty(subSchema)) {
150
+ return;
151
+ }
152
+ if (Array.isArray(subSchema)) {
153
+ for (let i = 0; i < subSchema.length; i++) {
154
+ if (!_.isEmpty(subSchema[i])) {
155
+ this.extractPlaceholderObjects(subSchema[i], objectsArray);
156
+ }
157
+ }
158
+ }
159
+ else if (typeof subSchema === 'object') {
160
+ if (!_.isEmpty(subSchema.reference)) {
161
+ objectsArray.push(subSchema);
162
+ }
163
+ else if (this.isSchemaSubObjectExpandable(subSchema)) {
164
+ const toExpand = subSchema.pages || subSchema.sections || subSchema.questions;
165
+ this.extractPlaceholderObjects(toExpand, objectsArray);
166
+ }
167
+ }
168
+ }
169
+ fillPlaceholderObject(placeHolderObject, referenceObject) {
170
+ for (const member in referenceObject) {
171
+ if (_.isEmpty(placeHolderObject[member])) {
172
+ placeHolderObject[member] = referenceObject[member];
173
+ }
174
+ }
175
+ return placeHolderObject;
176
+ }
177
+ replaceAllPlaceholdersWithActualObjects(keyValReferencedForms, placeHoldersArray) {
178
+ _.each(placeHoldersArray, (placeHolder) => {
179
+ const referencedObject = this.getReferencedObject(placeHolder.reference, keyValReferencedForms);
180
+ if (_.isEmpty(referencedObject)) {
181
+ console.error('Form compile: Error finding referenced object', placeHolder.reference);
182
+ }
183
+ else {
184
+ placeHolder = this.fillPlaceholderObject(placeHolder, referencedObject);
185
+ placeHolder = this.removeExcludedQuestionsFromPlaceholder(placeHolder);
186
+ delete placeHolder['reference'];
187
+ }
188
+ });
189
+ return placeHoldersArray;
190
+ }
191
+ removeObjectFromArray(array, object) {
192
+ const indexOfObject = array.indexOf(object);
193
+ if (indexOfObject === -1) {
194
+ return;
195
+ }
196
+ array.splice(indexOfObject, 1);
197
+ }
198
+ removeExcludedQuestionsFromPlaceholder(placeHolder) {
199
+ if (Array.isArray(placeHolder.reference.excludeQuestions)) {
200
+ _.each(placeHolder.reference.excludeQuestions, (excludedQuestionId) => {
201
+ const questionsArray = this.getQuestionsArrayByQuestionIdInSchema(placeHolder, excludedQuestionId);
202
+ if (!Array.isArray(questionsArray)) {
203
+ return;
204
+ }
205
+ const question = this.getQuestionByIdInSchema(questionsArray, excludedQuestionId);
206
+ this.removeObjectFromArray(questionsArray, question);
207
+ });
208
+ }
209
+ return placeHolder;
210
+ }
211
+ getReferencedObject(referenceData, keyValReferencedForms) {
212
+ if (_.isEmpty(referenceData.form)) {
213
+ console.error('Form compile: reference missing form attribute', referenceData);
214
+ return;
215
+ }
216
+ if (_.isEmpty(keyValReferencedForms[referenceData.form])) {
217
+ console.error('Form compile: referenced form alias not found', referenceData);
218
+ return;
219
+ }
220
+ if (!_.isEmpty(referenceData.questionId)) {
221
+ return this.getQuestionByIdInSchema(keyValReferencedForms[referenceData.form], referenceData.questionId);
222
+ }
223
+ if (!_.isEmpty(referenceData.page) && !_.isEmpty(referenceData.section)) {
224
+ return this.getSectionInSchemaByPageLabelBySectionLabel(keyValReferencedForms[referenceData.form], referenceData.page, referenceData.section);
225
+ }
226
+ if (!_.isEmpty(referenceData.page)) {
227
+ return this.getPageInSchemaByLabel(keyValReferencedForms[referenceData.form], referenceData.page);
228
+ }
229
+ console.error('Form compile: Unsupported reference type', referenceData.reference);
230
+ }
231
+ getReferencedForms(formSchema, formSchemasLookupArray) {
232
+ const referencedForms = formSchema.referencedForms;
233
+ if (_.isEmpty(referencedForms)) {
234
+ return;
235
+ }
236
+ const keyValReferencedForms = {};
237
+ _.each(referencedForms, (reference) => {
238
+ keyValReferencedForms[reference.alias] = this.findSchemaByName(formSchemasLookupArray, reference.formName);
239
+ });
240
+ return keyValReferencedForms;
241
+ }
242
+ }
243
+ FormSchemaCompiler.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FormSchemaCompiler, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
244
+ FormSchemaCompiler.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FormSchemaCompiler });
245
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FormSchemaCompiler, decorators: [{
246
+ type: Injectable
247
+ }], ctorParameters: function () { return []; } });
248
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1zY2hlbWEtY29tcGlsZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1mb3JtZW50cnkvc3JjL2Zvcm0tZW50cnkvc2VydmljZXMvZm9ybS1zY2hlbWEtY29tcGlsZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sS0FBSyxDQUFDLE1BQU0sUUFBUSxDQUFDOztBQUc1QixNQUFNLE9BQU8sa0JBQWtCO0lBQzdCLGdCQUFlLENBQUM7SUFFVCxpQkFBaUIsQ0FDdEIsVUFBa0IsRUFDbEIsb0JBQWdDO1FBRWhDLDJCQUEyQjtRQUMzQixNQUFNLFFBQVEsR0FBVyxJQUFJLENBQUMsa0JBQWtCLENBQzlDLFVBQVUsRUFDVixvQkFBb0IsQ0FDckIsQ0FBQztRQUNGLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUN2QixPQUFPLFVBQVUsQ0FBQztTQUNuQjtRQUVELDRDQUE0QztRQUM1QyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsd0JBQXdCLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDL0QsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxFQUFFO1lBQzNCLE9BQU8sVUFBVSxDQUFDO1NBQ25CO1FBRUQsMkJBQTJCO1FBQzNCLElBQUksQ0FBQyx1Q0FBdUMsQ0FBQyxRQUFRLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDckUsT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQztJQUVPLGdCQUFnQixDQUN0QixXQUF1QixFQUN2QixZQUFvQjtRQUVwQixJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsRUFBRTtZQUNyRCxPQUFPO1NBQ1I7UUFDRCxJQUFJLFdBQVcs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J0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRm9ybVNjaGVtYUNvbXBpbGVyIHtcbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIHB1YmxpYyBjb21waWxlRm9ybVNjaGVtYShcbiAgICBmb3JtU2NoZW1hOiBPYmplY3QsXG4gICAgcmVmZXJlbmNlZENvbXBvbmVudHM6IEFycmF5PGFueT5cbiAgKTogT2JqZWN0IHtcbiAgICAvLyBnZXQgYWxsIHJlZmVyZW5jZWQgZm9ybXNcbiAgICBjb25zdCByZWZGb3JtczogT2JqZWN0ID0gdGhpcy5nZXRSZWZlcmVuY2VkRm9ybXMoXG4gICAgICBmb3JtU2NoZW1hLFxuICAgICAgcmVmZXJlbmNlZENvbXBvbmVudHNcbiAgICApO1xuICAgIGlmIChfLmlzRW1wdHkocmVmRm9ybXMpKSB7XG4gICAgICByZXR1cm4gZm9ybVNjaGVtYTtcbiAgICB9XG5cbiAgICAvLyBnZXQgYWxsIHBsYWNlaG9sZGVycyBmcm9tIHRoZSBmb3JtIHNjaGVtYVxuICAgIGNvbnN0IHBsYWNlSG9sZGVycyA9IHRoaXMuZ2V0QWxsUGxhY2Vob2xkZXJPYmplY3RzKGZvcm1TY2hlbWEpO1xuICAgIGlmIChfLmlzRW1wdHkocGxhY2VIb2xkZXJzKSkge1xuICAgICAgcmV0dXJuIGZvcm1TY2hlbWE7XG4gICAgfVxuXG4gICAgLy8gcmVwbGFjZSBhbGwgcGxhY2Vob2xkZXJzXG4gICAgdGhpcy5yZXBsYWNlQWxsUGxhY2Vob2xkZXJzV2l0aEFjdHVhbE9iamVjdHMocmVmRm9ybXMsIHBsYWNlSG9sZGVycyk7XG4gICAgcmV0dXJuIGZvcm1TY2hlbWE7XG4gIH1cblxuICBwcml2YXRlIGZpbmRTY2hlbWFCeU5hbWUoXG4gICAgc2NoZW1hQXJyYXk6IEFycmF5PGFueT4sXG4gICAgbmFtZU9mU2NoZW1hOiBzdHJpbmdcbiAgKTogT2JqZWN0IHtcbiAgICBpZiAoXy5pc0VtcHR5KHNjaGVtYUFycmF5KSB8fCBfLmlzRW1wdHkobmFtZU9mU2NoZW1hKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBsZXQgZm91bmRTY2hlbWE6IGFueSA9IHt9O1xuICAgIF8uZWFjaChzY2hlbWFBcnJheSwgKHNjaGVtYTogYW55KSA9PiB7XG4gICAgICBpZiAoc2NoZW1hLm5hbWUgPT09IG5hbWVPZlNjaGVtYSkge1xuICAgICAgICBmb3VuZFNjaGVtYSA9IHNjaGVtYTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gZm91bmRTY2hlbWE7XG4gIH1cblxuICBwcml2YXRlIGdldFBhZ2VJblNjaGVtYUJ5TGFiZWwoc2NoZW1hOiBhbnksIHBhZ2VMYWJlbDogc3RyaW5nKTogT2JqZWN0IHtcbiAgICBpZiAoXy5pc0VtcHR5KHNjaGVtYSkgfHwgXy5pc0VtcHR5KHBhZ2VMYWJlbCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgbGV0IGZvdW5kUGFnZTogT2JqZWN0ID0ge307XG4gICAgXy5lYWNoKHNjaGVtYS5wYWdlcywgKHBhZ2UpID0+IHtcbiAgICAgIGlmIChwYWdlLmxhYmVsID09PSBwYWdlTGFiZWwpIHtcbiAgICAgICAgZm91bmRQYWdlID0gcGFnZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gZm91bmRQYWdlO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRTZWN0aW9uSW5TY2hlbWFCeVBhZ2VMYWJlbEJ5U2VjdGlvbkxhYmVsKFxuICAgIHNjaGVtYTogT2JqZWN0LFxuICAgIHBhZ2VMYWJlbDogc3RyaW5nLFxuICAgIHNlY3Rpb25MYWJlbDogc3RyaW5nXG4gICk6IE9iamVjdCB7XG4gICAgaWYgKF8uaXNFbXB0eShzY2hlbWEpIHx8IF8uaXNFbXB0eShwYWdlTGFiZWwpIHx8IF8uaXNFbXB0eShzZWN0aW9uTGFiZWwpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGZvdW5kUGFnZTogYW55ID0gdGhpcy5nZXRQYWdlSW5TY2hlbWFCeUxhYmVsKHNjaGVtYSwgcGFnZUxhYmVsKTtcbiAgICBpZiAoXy5pc0VtcHR5KGZvdW5kUGFnZSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgbGV0IGZvdW5kU2VjdGlvbjogT2JqZWN0ID0ge307XG4gICAgXy5lYWNoKGZvdW5kUGFnZS5zZWN0aW9ucywgKHNlY3Rpb24pID0+IHtcbiAgICAgIGlmIChzZWN0aW9uLmxhYmVsID09PSBzZWN0aW9uTGFiZWwpIHtcbiAgICAgICAgZm91bmRTZWN0aW9uID0gc2VjdGlvbjtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gZm91bmRTZWN0aW9uO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRRdWVzdGlvbkJ5SWRJblNjaGVtYShzY2hlbWE6IGFueSwgcXVlc3Rpb25JZDogc3RyaW5nKTogQXJyYXk8YW55PiB7XG4gICAgaWYgKF8uaXNFbXB0eShzY2hlbWEpIHx8IF8uaXNFbXB0eShxdWVzdGlvbklkKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoQXJyYXkuaXNBcnJheShzY2hlbWEpKSB7XG4gICAgICBsZXQgcXVlc3Rpb246IEFycmF5PGFueT47XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNjaGVtYS5sZW5ndGg7IGkrKykge1xuICAgICAgICBpZiAoIV8uaXNFbXB0eShzY2hlbWFbaV0pKSB7XG4gICAgICAgICAgcXVlc3Rpb24gPSB0aGlzLmdldFF1ZXN0aW9uQnlJZEluU2NoZW1hKHNjaGVtYVtpXSwgcXVlc3Rpb25JZCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFfLmlzRW1wdHkocXVlc3Rpb24pKSB7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBxdWVzdGlvbjtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBzY2hlbWEgPT09ICdvYmplY3QnKSB7XG4gICAgICBpZiAodGhpcy5pc1F1ZXN0aW9uT2JqZWN0V2l0aElkKHNjaGVtYSwgcXVlc3Rpb25JZCkpIHtcbiAgICAgICAgcmV0dXJuIHNjaGVtYTtcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5pc1NjaGVtYVN1Yk9iamVjdEV4cGFuZGFibGUoc2NoZW1hKSkge1xuICAgICAgICBjb25zdCB0b0V4cGFuZCA9IHNjaGVtYS5wYWdlcyB8fCBzY2hlbWEuc2VjdGlvbnMgfHwgc2NoZW1hLnF1ZXN0aW9ucztcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0UXVlc3Rpb25CeUlkSW5TY2hlbWEodG9FeHBhbmQsIHF1ZXN0aW9uSWQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRRdWVzdGlvbnNBcnJheUJ5UXVlc3Rpb25JZEluU2NoZW1hKFxuICAgIHNjaGVtYTogYW55LFxuICAgIHF1ZXN0aW9uSWQ6IHN0cmluZ1xuICApOiBBcnJheTxhbnk+IHtcbiAgICBpZiAoXy5pc0VtcHR5KHNjaGVtYSkgfHwgXy5pc0VtcHR5KHF1ZXN0aW9uSWQpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmdldFF1ZXN0aW9uc0FycmF5QnlRdWVzdGlvbklkKHNjaGVtYSwgc2NoZW1hLCBxdWVzdGlvbklkKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0UXVlc3Rpb25zQXJyYXlCeVF1ZXN0aW9uSWQoXG4gICAgcGFyZW50OiBhbnksXG4gICAgb2JqZWN0OiBhbnksXG4gICAgcXVlc3Rpb25JZDogc3RyaW5nXG4gICk6IEFycmF5PGFueT4ge1xuICAgIGlmIChBcnJheS5pc0FycmF5KG9iamVjdCkpIHtcbiAgICAgIGxldCByZXR1cm5lZFZhbHVlOiBBcnJheTxhbnk+O1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBvYmplY3QubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgaWYgKCFfLmlzRW1wdHkob2JqZWN0W2ldKSkge1xuICAgICAgICAgIHJldHVybmVkVmFsdWUgPSB0aGlzLmdldFF1ZXN0aW9uc0FycmF5QnlRdWVzdGlvbklkKFxuICAgICAgICAgICAgb2JqZWN0LFxuICAgICAgICAgICAgb2JqZWN0W2ldLFxuICAgICAgICAgICAgcXVlc3Rpb25JZFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFfLmlzRW1wdHkocmV0dXJuZWRWYWx1ZSkpIHtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gcmV0dXJuZWRWYWx1ZTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBvYmplY3QgPT09ICdvYmplY3QnKSB7XG4gICAgICBpZiAodGhpcy5pc1F1ZXN0aW9uT2JqZWN0V2l0aElkKG9iamVjdCwgcXVlc3Rpb25JZCkpIHtcbiAgICAgICAgcmV0dXJuIHBhcmVudDtcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5pc1NjaGVtYVN1Yk9iamVjdEV4cGFuZGFibGUob2JqZWN0KSkge1xuICAgICAgICBjb25zdCB0b0V4cGFuZCA9IG9iamVjdC5wYWdlcyB8fCBvYmplY3Quc2VjdGlvbnMgfHwgb2JqZWN0LnF1ZXN0aW9ucztcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0UXVlc3Rpb25zQXJyYXlCeVF1ZXN0aW9uSWQoXG4gICAgICAgICAgdG9FeHBhbmQsXG4gICAgICAgICAgdG9FeHBhbmQsXG4gICAgICAgICAgcXVlc3Rpb25JZFxuICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICB9XG5cbiAgLy8gb2JqZWN0IGlzIHBhZ2Ugb3Igc2VjdGlvbiBvciBxdWVzdGlvblxuICBwcml2YXRlIGlzU2NoZW1hU3ViT2JqZWN0RXhwYW5kYWJsZShvYmplY3Q6IE9iamVjdCk6IEJvb2xlYW4ge1xuICAgIGlmICh0eXBlb2Ygb2JqZWN0ID09PSAnb2JqZWN0Jykge1xuICAgICAgY29uc3Qgb2JqZWN0S2V5cyA9IE9iamVjdC5rZXlzKG9iamVjdCk7XG4gICAgICBpZiAoXG4gICAgICAgIF8uaW5jbHVkZXMob2JqZWN0S2V5cywgJ3BhZ2VzJykgfHxcbiAgICAgICAgXy5pbmNsdWRlcyhvYmplY3RLZXlzLCAnc2VjdGlvbnMnKSB8fFxuICAgICAgICBfLmluY2x1ZGVzKG9iamVjdEtleXMsICdxdWVzdGlvbnMnKVxuICAgICAgKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIGlzUXVlc3Rpb25PYmplY3RXaXRoSWQob2JqZWN0OiBPYmplY3QsIGlkOiBhbnkpOiBCb29sZWFuIHtcbiAgICByZXR1cm4gb2JqZWN0WydpZCddID09PSBpZDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0QWxsUGxhY2Vob2xkZXJPYmplY3RzKHNjaGVtYTogT2JqZWN0KTogQXJyYXk8YW55PiB7XG4gICAgY29uc3QgcmVmZXJlbmNlZE9iamVjdHM6IEFycmF5PGFueT4gPSBbXTtcbiAgICB0aGlzLmV4dHJhY3RQbGFjZWhvbGRlck9iamVjdHMoc2NoZW1hLCByZWZlcmVuY2VkT2JqZWN0cyk7XG4gICAgcmV0dXJuIHJlZmVyZW5jZWRPYmplY3RzO1xuICB9XG5cbiAgcHJpdmF0ZSBleHRyYWN0UGxhY2Vob2xkZXJPYmplY3RzKFxuICAgIHN1YlNjaGVtYTogYW55LFxuICAgIG9iamVjdHNBcnJheTogQXJyYXk8T2JqZWN0PlxuICApOiB2b2lkIHtcbiAgICBpZiAoXy5pc0VtcHR5KHN1YlNjaGVtYSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKEFycmF5LmlzQXJyYXkoc3ViU2NoZW1hKSkge1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzdWJTY2hlbWEubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgaWYgKCFfLmlzRW1wdHkoc3ViU2NoZW1hW2ldKSkge1xuICAgICAgICAgIHRoaXMuZXh0cmFjdFBsYWNlaG9sZGVyT2JqZWN0cyhzdWJTY2hlbWFbaV0sIG9iamVjdHNBcnJheSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBzdWJTY2hlbWEgPT09ICdvYmplY3QnKSB7XG4gICAgICBpZiAoIV8uaXNFbXB0eShzdWJTY2hlbWEucmVmZXJlbmNlKSkge1xuICAgICAgICBvYmplY3RzQXJyYXkucHVzaChzdWJTY2hlbWEpO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLmlzU2NoZW1hU3ViT2JqZWN0RXhwYW5kYWJsZShzdWJTY2hlbWEpKSB7XG4gICAgICAgIGNvbnN0IHRvRXhwYW5kID1cbiAgICAgICAgICBzdWJTY2hlbWEucGFnZXMgfHwgc3ViU2NoZW1hLnNlY3Rpb25zIHx8IHN1YlNjaGVtYS5xdWVzdGlvbnM7XG4gICAgICAgIHRoaXMuZXh0cmFjdFBsYWNlaG9sZGVyT2JqZWN0cyh0b0V4cGFuZCwgb2JqZWN0c0FycmF5KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGZpbGxQbGFjZWhvbGRlck9iamVjdChcbiAgICBwbGFjZUhvbGRlck9iamVjdDogT2JqZWN0LFxuICAgIHJlZmVyZW5jZU9iamVjdDogT2JqZWN0XG4gICk6IE9iamVjdCB7XG4gICAgZm9yIChjb25zdCBtZW1iZXIgaW4gcmVmZXJlbmNlT2JqZWN0KSB7XG4gICAgICBpZiAoXy5pc0VtcHR5KHBsYWNlSG9sZGVyT2JqZWN0W21lbWJlcl0pKSB7XG4gICAgICAgIHBsYWNlSG9sZGVyT2JqZWN0W21lbWJlcl0gPSByZWZlcmVuY2VPYmplY3RbbWVtYmVyXTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHBsYWNlSG9sZGVyT2JqZWN0O1xuICB9XG5cbiAgcHJpdmF0ZSByZXBsYWNlQWxsUGxhY2Vob2xkZXJzV2l0aEFjdHVhbE9iamVjdHMoXG4gICAga2V5VmFsUmVmZXJlbmNlZEZvcm1zOiBPYmplY3QsXG4gICAgcGxhY2VIb2xkZXJzQXJyYXk6IEFycmF5PGFueT5cbiAgKTogQXJyYXk8YW55PiB7XG4gICAgXy5lYWNoKHBsYWNlSG9sZGVyc0FycmF5LCAocGxhY2VIb2xkZXIpID0+IHtcbiAgICAgIGNvbnN0IHJlZmVyZW5jZWRPYmplY3Q6IE9iamVjdCA9IHRoaXMuZ2V0UmVmZXJlbmNlZE9iamVjdChcbiAgICAgICAgcGxhY2VIb2xkZXIucmVmZXJlbmNlLFxuICAgICAgICBrZXlWYWxSZWZlcmVuY2VkRm9ybXNcbiAgICAgICk7XG5cbiAgICAgIGlmIChfLmlzRW1wdHkocmVmZXJlbmNlZE9iamVjdCkpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAnRm9ybSBjb21waWxlOiBFcnJvciBmaW5kaW5nIHJlZmVyZW5jZWQgb2JqZWN0JyxcbiAgICAgICAgICBwbGFjZUhvbGRlci5yZWZlcmVuY2VcbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHBsYWNlSG9sZGVyID0gdGhpcy5maWxsUGxhY2Vob2xkZXJPYmplY3QocGxhY2VIb2xkZXIsIHJlZmVyZW5jZWRPYmplY3QpO1xuICAgICAgICBwbGFjZUhvbGRlciA9IHRoaXMucmVtb3ZlRXhjbHVkZWRRdWVzdGlvbnNGcm9tUGxhY2Vob2xkZXIocGxhY2VIb2xkZXIpO1xuICAgICAgICBkZWxldGUgcGxhY2VIb2xkZXJbJ3JlZmVyZW5jZSddO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBwbGFjZUhvbGRlcnNBcnJheTtcbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlT2JqZWN0RnJvbUFycmF5KGFycmF5OiBBcnJheTxhbnk+LCBvYmplY3Q6IE9iamVjdCk6IHZvaWQge1xuICAgIGNvbnN0IGluZGV4T2ZPYmplY3QgPSBhcnJheS5pbmRleE9mKG9iamVjdCk7XG4gICAgaWYgKGluZGV4T2ZPYmplY3QgPT09IC0xKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgYXJyYXkuc3BsaWNlKGluZGV4T2ZPYmplY3QsIDEpO1xuICB9XG5cbiAgcHJpdmF0ZSByZW1vdmVFeGNsdWRlZFF1ZXN0aW9uc0Zyb21QbGFjZWhvbGRlcihwbGFjZUhvbGRlcjogYW55KTogT2JqZWN0IHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShwbGFjZUhvbGRlci5yZWZlcmVuY2UuZXhjbHVkZVF1ZXN0aW9ucykpIHtcbiAgICAgIF8uZWFjaChwbGFjZUhvbGRlci5yZWZlcmVuY2UuZXhjbHVkZVF1ZXN0aW9ucywgKGV4Y2x1ZGVkUXVlc3Rpb25JZCkgPT4ge1xuICAgICAgICBjb25zdCBxdWVzdGlvbnNBcnJheTogQXJyYXk8YW55PiA9IHRoaXMuZ2V0UXVlc3Rpb25zQXJyYXlCeVF1ZXN0aW9uSWRJblNjaGVtYShcbiAgICAgICAgICBwbGFjZUhvbGRlcixcbiAgICAgICAgICBleGNsdWRlZFF1ZXN0aW9uSWRcbiAgICAgICAgKTtcblxuICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkocXVlc3Rpb25zQXJyYXkpKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHF1ZXN0aW9uID0gdGhpcy5nZXRRdWVzdGlvbkJ5SWRJblNjaGVtYShcbiAgICAgICAgICBxdWVzdGlvbnNBcnJheSxcbiAgICAgICAgICBleGNsdWRlZFF1ZXN0aW9uSWRcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLnJlbW92ZU9iamVjdEZyb21BcnJheShxdWVzdGlvbnNBcnJheSwgcXVlc3Rpb24pO1xuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBwbGFjZUhvbGRlcjtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0UmVmZXJlbmNlZE9iamVjdChcbiAgICByZWZlcmVuY2VEYXRhOiBhbnksXG4gICAga2V5VmFsUmVmZXJlbmNlZEZvcm1zOiBPYmplY3RcbiAgKTogT2JqZWN0IHtcbiAgICBpZiAoXy5pc0VtcHR5KHJlZmVyZW5jZURhdGEuZm9ybSkpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICdGb3JtIGNvbXBpbGU6IHJlZmVyZW5jZSBtaXNzaW5nIGZvcm0gYXR0cmlidXRlJyxcbiAgICAgICAgcmVmZXJlbmNlRGF0YVxuICAgICAgKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKF8uaXNFbXB0eShrZXlWYWxSZWZlcmVuY2VkRm9ybXNbcmVmZXJlbmNlRGF0YS5mb3JtXSkpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICdGb3JtIGNvbXBpbGU6IHJlZmVyZW5jZWQgZm9ybSBhbGlhcyBub3QgZm91bmQnLFxuICAgICAgICByZWZlcmVuY2VEYXRhXG4gICAgICApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoIV8uaXNFbXB0eShyZWZlcmVuY2VEYXRhLnF1ZXN0aW9uSWQpKSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXRRdWVzdGlvbkJ5SWRJblNjaGVtYShcbiAgICAgICAga2V5VmFsUmVmZXJlbmNlZEZvcm1zW3JlZmVyZW5jZURhdGEuZm9ybV0sXG4gICAgICAgIHJlZmVyZW5jZURhdGEucXVlc3Rpb25JZFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoIV8uaXNFbXB0eShyZWZlcmVuY2VEYXRhLnBhZ2UpICYmICFfLmlzRW1wdHkocmVmZXJlbmNlRGF0YS5zZWN0aW9uKSkge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0U2VjdGlvbkluU2NoZW1hQnlQYWdlTGFiZWxCeVNlY3Rpb25MYWJlbChcbiAgICAgICAga2V5VmFsUmVmZXJlbmNlZEZvcm1zW3JlZmVyZW5jZURhdGEuZm9ybV0sXG4gICAgICAgIHJlZmVyZW5jZURhdGEucGFnZSxcbiAgICAgICAgcmVmZXJlbmNlRGF0YS5zZWN0aW9uXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAoIV8uaXNFbXB0eShyZWZlcmVuY2VEYXRhLnBhZ2UpKSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXRQYWdlSW5TY2hlbWFCeUxhYmVsKFxuICAgICAgICBrZXlWYWxSZWZlcmVuY2VkRm9ybXNbcmVmZXJlbmNlRGF0YS5mb3JtXSxcbiAgICAgICAgcmVmZXJlbmNlRGF0YS5wYWdlXG4gICAgICApO1xuICAgIH1cbiAgICBjb25zb2xlLmVycm9yKFxuICAgICAgJ0Zvcm0gY29tcGlsZTogVW5zdXBwb3J0ZWQgcmVmZXJlbmNlIHR5cGUnLFxuICAgICAgcmVmZXJlbmNlRGF0YS5yZWZlcmVuY2VcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRSZWZlcmVuY2VkRm9ybXMoXG4gICAgZm9ybVNjaGVtYTogYW55LFxuICAgIGZvcm1TY2hlbWFzTG9va3VwQXJyYXk6IEFycmF5PGFueT5cbiAgKTogT2JqZWN0IHtcbiAgICBjb25zdCByZWZlcmVuY2VkRm9ybXM6IEFycmF5PGFueT4gPSBmb3JtU2NoZW1hLnJlZmVyZW5jZWRGb3JtcztcblxuICAgIGlmIChfLmlzRW1wdHkocmVmZXJlbmNlZEZvcm1zKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGtleVZhbFJlZmVyZW5jZWRGb3JtczogT2JqZWN0ID0ge307XG5cbiAgICBfLmVhY2gocmVmZXJlbmNlZEZvcm1zLCAocmVmZXJlbmNlOiBhbnkpID0+IHtcbiAgICAgIGtleVZhbFJlZmVyZW5jZWRGb3Jtc1tyZWZlcmVuY2UuYWxpYXNdID0gdGhpcy5maW5kU2NoZW1hQnlOYW1lKFxuICAgICAgICBmb3JtU2NoZW1hc0xvb2t1cEFycmF5LFxuICAgICAgICByZWZlcmVuY2UuZm9ybU5hbWVcbiAgICAgICk7XG4gICAgfSk7XG4gICAgcmV0dXJuIGtleVZhbFJlZmVyZW5jZWRGb3JtcztcbiAgfVxufVxuIl19
@@ -0,0 +1,172 @@
1
+ import { Injectable } from '@angular/core';
2
+ import _ from 'lodash';
3
+ import moment from 'moment';
4
+ import * as i0 from "@angular/core";
5
+ export class HistoricalEncounterDataService {
6
+ constructor() {
7
+ this.dataSources = {};
8
+ }
9
+ registerEncounters(name, encounters) {
10
+ const encStore = {
11
+ data: [],
12
+ getValue: (key, index = 0) => {
13
+ const pathArray = key.split('.');
14
+ if (pathArray.length > 0) {
15
+ return this.getFirstValue(pathArray, encStore.data[index]);
16
+ }
17
+ return encStore.data[index][key];
18
+ },
19
+ getAllObjects: () => {
20
+ return encStore.data;
21
+ },
22
+ getSingleObject: (index = 0) => {
23
+ return encStore.data[index];
24
+ }
25
+ };
26
+ if (_.isArray(encounters)) {
27
+ const group = [];
28
+ _.each(encounters, (encounter) => {
29
+ group.push(this._transformEncounter(encounter));
30
+ });
31
+ // Sort them in reverse chronological order
32
+ encStore.data = _.sortBy(group, 'encounterDatetime').reverse();
33
+ }
34
+ else {
35
+ // Assume a single openmrs rest encounter object.
36
+ encStore.data.push(this._transformEncounter(encounters));
37
+ }
38
+ this.putObject(name, encStore);
39
+ }
40
+ putObject(name, object) {
41
+ this.dataSources[name] = object;
42
+ }
43
+ getObject(name) {
44
+ return this.dataSources[name] || null;
45
+ }
46
+ getFirstValue(path, object) {
47
+ const answers = [];
48
+ this.getAllValues(path, object, answers);
49
+ if (answers.length > 0) {
50
+ return {
51
+ value: answers[0],
52
+ valueDate: moment(object.encounterDatetime).format('YYYY-MM-DDTHH:mm:ss')
53
+ };
54
+ }
55
+ }
56
+ getAllValues(path, object, answers) {
57
+ if (_.isNil(object)) {
58
+ return;
59
+ }
60
+ if (path.length <= 1) {
61
+ if (!_.isNil(object[path[0]])) {
62
+ answers.push(object[path[0]]);
63
+ }
64
+ return;
65
+ }
66
+ const newpath = path.splice(1);
67
+ const key = path[0];
68
+ if (_.isArray(object[key]) && object[key].length > 0) {
69
+ _.each(object[key], (childObject) => {
70
+ this.getAllValues(newpath.slice(0), childObject, answers);
71
+ });
72
+ }
73
+ else {
74
+ this.getAllValues(newpath.slice(0), object[key], answers);
75
+ }
76
+ }
77
+ _transformEncounter(encounter) {
78
+ if (_.isNil(encounter)) {
79
+ return;
80
+ }
81
+ // Transform encounter Level details to key value pairs.
82
+ const prevEncounter = {
83
+ encounterDatetime: encounter.encounterDatetime
84
+ };
85
+ if (encounter.location && encounter.location.uuid) {
86
+ prevEncounter.location = encounter.location.uuid;
87
+ }
88
+ if (encounter.patient && encounter.patient.uuid) {
89
+ prevEncounter.patient = encounter.patient.uuid;
90
+ }
91
+ if (encounter.form && encounter.form.uuid) {
92
+ prevEncounter.form = encounter.form.uuid;
93
+ }
94
+ if (encounter.encounterType && encounter.encounterType.uuid) {
95
+ prevEncounter.encounterType = encounter.encounterType.uuid;
96
+ }
97
+ if (encounter.provider) {
98
+ const provider = encounter.provider;
99
+ prevEncounter.provider = provider.uuid;
100
+ }
101
+ // Deal with obs.
102
+ if (encounter.obs) {
103
+ const processedObs = this._transformObs(encounter.obs);
104
+ // add in individual processed obs to prevEncounter
105
+ _.extend(prevEncounter, processedObs);
106
+ }
107
+ return prevEncounter;
108
+ }
109
+ _transformObs(obs) {
110
+ if (!obs) {
111
+ return null;
112
+ }
113
+ const obsRep = {};
114
+ if (_.isArray(obs)) {
115
+ _.each(obs, (singleObs) => {
116
+ this._augumentObs(obsRep, this._transformObs(singleObs));
117
+ });
118
+ return obsRep;
119
+ }
120
+ else if (obs.groupMembers) {
121
+ const group = {};
122
+ _.each(obs.groupMembers, (member) => {
123
+ this._augumentObs(group, this._transformObs(member));
124
+ });
125
+ // Handle already existing data
126
+ if (obsRep[obs.concept.uuid] && _.isArray(obsRep[obs.concept.uuid])) {
127
+ obsRep[obs.concept.uuid].push(group);
128
+ }
129
+ else {
130
+ obsRep[obs.concept.uuid] = [group];
131
+ }
132
+ return obsRep;
133
+ }
134
+ else {
135
+ if (obs.value instanceof Object) {
136
+ obsRep[obs.concept.uuid] = obs.value.uuid;
137
+ }
138
+ else {
139
+ obsRep[obs.concept.uuid] = obs.value;
140
+ }
141
+ return obsRep;
142
+ }
143
+ }
144
+ _augumentObs(existing, toAdd) {
145
+ for (const key in toAdd) {
146
+ if (_.has(existing, key)) {
147
+ // check if not an array yet
148
+ if (!_.isArray(existing[key])) {
149
+ const temp = existing[key];
150
+ existing[key] = [temp];
151
+ }
152
+ // Check whether the incoming is array (for group members)
153
+ if (_.isArray(toAdd[key])) {
154
+ Array.prototype.push.apply(existing[key], toAdd[key]);
155
+ }
156
+ else {
157
+ existing[key].push(toAdd[key]);
158
+ }
159
+ }
160
+ else {
161
+ existing[key] = toAdd[key];
162
+ }
163
+ }
164
+ return existing;
165
+ }
166
+ }
167
+ HistoricalEncounterDataService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: HistoricalEncounterDataService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
168
+ HistoricalEncounterDataService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: HistoricalEncounterDataService });
169
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: HistoricalEncounterDataService, decorators: [{
170
+ type: Injectable
171
+ }], ctorParameters: function () { return []; } });
172
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlzdG9yaWNhbC1lbmNvdW50ZXItZGF0YS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWZvcm1lbnRyeS9zcmMvZm9ybS1lbnRyeS9zZXJ2aWNlcy9oaXN0b3JpY2FsLWVuY291bnRlci1kYXRhLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLENBQUMsTUFBTSxRQUFRLENBQUM7QUFDdkIsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDOztBQUU1QixNQUFNLE9BQU8sOEJBQThCO0lBRXpDO1FBREEsZ0JBQVcsR0FBUSxFQUFFLENBQUM7SUFDUCxDQUFDO0lBRWhCLGtCQUFrQixDQUFDLElBQVksRUFBRSxVQUFlO1FBQzlDLE1BQU0sUUFBUSxHQUFRO1lBQ3BCLElBQUksRUFBRSxFQUFFO1lBQ1IsUUFBUSxFQUFFLENBQUMsR0FBVyxFQUFFLEtBQUssR0FBRyxDQUFDLEVBQU8sRUFBRTtnQkFDeEMsTUFBTSxTQUFTLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDakMsSUFBSSxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtvQkFDeEIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7aUJBQzVEO2dCQUNELE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNuQyxDQUFDO1lBQ0QsYUFBYSxFQUFFLEdBQUcsRUFBRTtnQkFDbEIsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDO1lBQ3ZCLENBQUM7WUFDRCxlQUFlLEVBQUUsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxFQUFFLEVBQUU7Z0JBQzdCLE9BQU8sUUFBUSxD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LENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2lCQUNoQzthQUNGO2lCQUFNO2dCQUNMLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDNUI7U0FDRjtRQUNELE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7OzRIQXBMVSw4QkFBOEI7Z0lBQTlCLDhCQUE4Qjs0RkFBOUIsOEJBQThCO2tCQUQxQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JztcbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBIaXN0b3JpY2FsRW5jb3VudGVyRGF0YVNlcnZpY2Uge1xuICBkYXRhU291cmNlczogYW55ID0ge307XG4gIGNvbnN0cnVjdG9yKCkge31cblxuICByZWdpc3RlckVuY291bnRlcnMobmFtZTogc3RyaW5nLCBlbmNvdW50ZXJzOiBhbnkpIHtcbiAgICBjb25zdCBlbmNTdG9yZTogYW55ID0ge1xuICAgICAgZGF0YTogW10sXG4gICAgICBnZXRWYWx1ZTogKGtleTogc3RyaW5nLCBpbmRleCA9IDApOiBhbnkgPT4ge1xuICAgICAgICBjb25zdCBwYXRoQXJyYXkgPSBrZXkuc3BsaXQoJy4nKTtcbiAgICAgICAgaWYgKHBhdGhBcnJheS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0Rmlyc3RWYWx1ZShwYXRoQXJyYXksIGVuY1N0b3JlLmRhdGFbaW5kZXhdKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZW5jU3RvcmUuZGF0YVtpbmRleF1ba2V5XTtcbiAgICAgIH0sXG4gICAgICBnZXRBbGxPYmplY3RzOiAoKSA9PiB7XG4gICAgICAgIHJldHVybiBlbmNTdG9yZS5kYXRhO1xuICAgICAgfSxcbiAgICAgIGdldFNpbmdsZU9iamVjdDogKGluZGV4ID0gMCkgPT4ge1xuICAgICAgICByZXR1cm4gZW5jU3RvcmUuZGF0YVtpbmRleF07XG4gICAgICB9XG4gICAgfTtcblxuICAgIGlmIChfLmlzQXJyYXkoZW5jb3VudGVycykpIHtcbiAgICAgIGNvbnN0IGdyb3VwOiBBcnJheTxhbnk+ID0gW107XG4gICAgICBfLmVhY2goZW5jb3VudGVycywgKGVuY291bnRlcikgPT4ge1xuICAgICAgICBncm91cC5wdXNoKHRoaXMuX3RyYW5zZm9ybUVuY291bnRlcihlbmNvdW50ZXIpKTtcbiAgICAgIH0pO1xuXG4gICAgICAvLyBTb3J0IHRoZW0gaW4gcmV2ZXJzZSBjaHJvbm9sb2dpY2FsIG9yZGVyXG4gICAgICBlbmNTdG9yZS5kYXRhID0gXy5zb3J0QnkoZ3JvdXAsICdlbmNvdW50ZXJEYXRldGltZScpLnJldmVyc2UoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gQXNzdW1lIGEgc2luZ2xlIG9wZW5tcnMgcmVzdCBlbmNvdW50ZXIgb2JqZWN0LlxuICAgICAgZW5jU3RvcmUuZGF0YS5wdXNoKHRoaXMuX3RyYW5zZm9ybUVuY291bnRlcihlbmNvdW50ZXJzKSk7XG4gICAgfVxuXG4gICAgdGhpcy5wdXRPYmplY3QobmFtZSwgZW5jU3RvcmUpO1xuICB9XG5cbiAgcHV0T2JqZWN0KG5hbWUsIG9iamVjdCk6IHZvaWQge1xuICAgIHRoaXMuZGF0YVNvdXJjZXNbbmFtZV0gPSBvYmplY3Q7XG4gIH1cblxuICBnZXRPYmplY3QobmFtZTogc3RyaW5nKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5kYXRhU291cmNlc1tuYW1lXSB8fCBudWxsO1xuICB9XG5cbiAgZ2V0Rmlyc3RWYWx1ZShwYXRoOiBBcnJheTxzdHJpbmc+LCBvYmplY3Q6IGFueSk6IGFueSB7XG4gICAgY29uc3QgYW5zd2VycyA9IFtdO1xuXG4gICAgdGhpcy5nZXRBbGxWYWx1ZXMocGF0aCwgb2JqZWN0LCBhbnN3ZXJzKTtcblxuICAgIGlmIChhbnN3ZXJzLmxlbmd0aCA+IDApIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHZhbHVlOiBhbnN3ZXJzWzBdLFxuICAgICAgICB2YWx1ZURhdGU6IG1vbWVudChvYmplY3QuZW5jb3VudGVyRGF0ZXRpbWUpLmZvcm1hdChcbiAgICAgICAgICAnWVlZWS1NTS1ERFRISDptbTpzcydcbiAgICAgICAgKVxuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICBnZXRBbGxWYWx1ZXMocGF0aCwgb2JqZWN0LCBhbnN3ZXJzKSB7XG4gICAgaWYgKF8uaXNOaWwob2JqZWN0KSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChwYXRoLmxlbmd0aCA8PSAxKSB7XG4gICAgICBpZiAoIV8uaXNOaWwob2JqZWN0W3BhdGhbMF1dKSkge1xuICAgICAgICBhbnN3ZXJzLnB1c2gob2JqZWN0W3BhdGhbMF1dKTtcbiAgICAgIH1cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBuZXdwYXRoID0gcGF0aC5zcGxpY2UoMSk7XG4gICAgY29uc3Qga2V5ID0gcGF0aFswXTtcblxuICAgIGlmIChfLmlzQXJyYXkob2JqZWN0W2tleV0pICYmIG9iamVjdFtrZXldLmxlbmd0aCA+IDApIHtcbiAgICAgIF8uZWFjaChvYmplY3Rba2V5XSwgKGNoaWxkT2JqZWN0KSA9PiB7XG4gICAgICAgIHRoaXMuZ2V0QWxsVmFsdWVzKG5ld3BhdGguc2xpY2UoMCksIGNoaWxkT2JqZWN0LCBhbnN3ZXJzKTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmdldEFsbFZhbHVlcyhuZXdwYXRoLnNsaWNlKDApLCBvYmplY3Rba2V5XSwgYW5zd2Vycyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfdHJhbnNmb3JtRW5jb3VudGVyKGVuY291bnRlcjogYW55KSB7XG4gICAgaWYgKF8uaXNOaWwoZW5jb3VudGVyKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICAvLyBUcmFuc2Zvcm0gZW5jb3VudGVyIExldmVsIGRldGFpbHMgdG8ga2V5IHZhbHVlIHBhaXJzLlxuICAgIGNvbnN0IHByZXZFbmNvdW50ZXI6IGFueSA9IHtcbiAgICAgIGVuY291bnRlckRhdGV0aW1lOiBlbmNvdW50ZXIuZW5jb3VudGVyRGF0ZXRpbWVcbiAgICB9O1xuXG4gICAgaWYgKGVuY291bnRlci5sb2NhdGlvbiAmJiBlbmNvdW50ZXIubG9jYXRpb24udXVpZCkge1xuICAgICAgcHJldkVuY291bnRlci5sb2NhdGlvbiA9IGVuY291bnRlci5sb2NhdGlvbi51dWlkO1xuICAgIH1cblxuICAgIGlmIChlbmNvdW50ZXIucGF0aWVudCAmJiBlbmNvdW50ZXIucGF0aWVudC51dWlkKSB7XG4gICAgICBwcmV2RW5jb3VudGVyLnBhdGllbnQgPSBlbmNvdW50ZXIucGF0aWVudC51dWlkO1xuICAgIH1cblxuICAgIGlmIChlbmNvdW50ZXIuZm9ybSAmJiBlbmNvdW50ZXIuZm9ybS51dWlkKSB7XG4gICAgICBwcmV2RW5jb3VudGVyLmZvcm0gPSBlbmNvdW50ZXIuZm9ybS51dWlkO1xuICAgIH1cblxuICAgIGlmIChlbmNvdW50ZXIuZW5jb3VudGVyVHlwZSAmJiBlbmNvdW50ZXIuZW5jb3VudGVyVHlwZS51dWlkKSB7XG4gICAgICBwcmV2RW5jb3VudGVyLmVuY291bnRlclR5cGUgPSBlbmNvdW50ZXIuZW5jb3VudGVyVHlwZS51dWlkO1xuICAgIH1cblxuICAgIGlmIChlbmNvdW50ZXIucHJvdmlkZXIpIHtcbiAgICAgIGNvbnN0IHByb3ZpZGVyID0gZW5jb3VudGVyLnByb3ZpZGVyO1xuICAgICAgcHJldkVuY291bnRlci5wcm92aWRlciA9IHByb3ZpZGVyLnV1aWQ7XG4gICAgfVxuXG4gICAgLy8gRGVhbCB3aXRoIG9icy5cbiAgICBpZiAoZW5jb3VudGVyLm9icykge1xuICAgICAgY29uc3QgcHJvY2Vzc2VkT2JzOiBhbnkgPSB0aGlzLl90cmFuc2Zvcm1PYnMoZW5jb3VudGVyLm9icyk7XG5cbiAgICAgIC8vIGFkZCBpbiBpbmRpdmlkdWFsIHByb2Nlc3NlZCBvYnMgdG8gcHJldkVuY291bnRlclxuICAgICAgXy5leHRlbmQocHJldkVuY291bnRlciwgcHJvY2Vzc2VkT2JzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcHJldkVuY291bnRlcjtcbiAgfVxuXG4gIHByaXZhdGUgX3RyYW5zZm9ybU9icyhvYnM6IGFueSk6IGFueSB7XG4gICAgaWYgKCFvYnMpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IG9ic1JlcDogYW55ID0ge307XG4gICAgaWYgKF8uaXNBcnJheShvYnMpKSB7XG4gICAgICBfLmVhY2gob2JzLCAoc2luZ2xlT2JzKSA9PiB7XG4gICAgICAgIHRoaXMuX2F1Z3VtZW50T2JzKG9ic1JlcCwgdGhpcy5fdHJhbnNmb3JtT2JzKHNpbmdsZU9icykpO1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gb2JzUmVwO1xuICAgIH0gZWxzZSBpZiAob2JzLmdyb3VwTWVtYmVycykge1xuICAgICAgY29uc3QgZ3JvdXA6IGFueSA9IHt9O1xuICAgICAgXy5lYWNoKG9icy5ncm91cE1lbWJlcnMsIChtZW1iZXIpID0+IHtcbiAgICAgICAgdGhpcy5fYXVndW1lbnRPYnMoZ3JvdXAsIHRoaXMuX3RyYW5zZm9ybU9icyhtZW1iZXIpKTtcbiAgICAgIH0pO1xuXG4gICAgICAvLyBIYW5kbGUgYWxyZWFkeSBleGlzdGluZyBkYXRhXG4gICAgICBpZiAob2JzUmVwW29icy5jb25jZXB0LnV1aWRdICYmIF8uaXNBcnJheShvYnNSZXBbb2JzLmNvbmNlcHQudXVpZF0pKSB7XG4gICAgICAgIG9ic1JlcFtvYnMuY29uY2VwdC51dWlkXS5wdXNoKGdyb3VwKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG9ic1JlcFtvYnMuY29uY2VwdC51dWlkXSA9IFtncm91cF07XG4gICAgICB9XG4gICAgICByZXR1cm4gb2JzUmVwO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAob2JzLnZhbHVlIGluc3RhbmNlb2YgT2JqZWN0KSB7XG4gICAgICAgIG9ic1JlcFtvYnMuY29uY2VwdC51dWlkXSA9IG9icy52YWx1ZS51dWlkO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgb2JzUmVwW29icy5jb25jZXB0LnV1aWRdID0gb2JzLnZhbHVlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG9ic1JlcDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9hdWd1bWVudE9icyhleGlzdGluZzogYW55LCB0b0FkZDogYW55KTogYW55IHtcbiAgICBmb3IgKGNvbnN0IGtleSBpbiB0b0FkZCkge1xuICAgICAgaWYgKF8uaGFzKGV4aXN0aW5nLCBrZXkpKSB7XG4gICAgICAgIC8vIGNoZWNrIGlmIG5vdCBhbiBhcnJheSB5ZXRcbiAgICAgICAgaWYgKCFfLmlzQXJyYXkoZXhpc3Rpbmdba2V5XSkpIHtcbiAgICAgICAgICBjb25zdCB0ZW1wID0gZXhpc3Rpbmdba2V5XTtcbiAgICAgICAgICBleGlzdGluZ1trZXldID0gW3RlbXBdO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQ2hlY2sgd2hldGhlciB0aGUgaW5jb21pbmcgaXMgYXJyYXkgKGZvciBncm91cCBtZW1iZXJzKVxuICAgICAgICBpZiAoXy5pc0FycmF5KHRvQWRkW2tleV0pKSB7XG4gICAgICAgICAgQXJyYXkucHJvdG90eXBlLnB1c2guYXBwbHkoZXhpc3Rpbmdba2V5XSwgdG9BZGRba2V5XSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZXhpc3Rpbmdba2V5XS5wdXNoKHRvQWRkW2tleV0pO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBleGlzdGluZ1trZXldID0gdG9BZGRba2V5XTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGV4aXN0aW5nO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,12 @@
1
+ export class Messages {
2
+ }
3
+ Messages.REQUIRED_FIELD_MSG = 'This field is required!';
4
+ Messages.INVALID_DATE_MSG = 'Provided date is invalid!';
5
+ Messages.FUTURE_DATE_RESTRICTION_MSG = 'Future date is not allowed!';
6
+ Messages.MIN_LENGTH_MSG = 'Min Length should be {minLength}';
7
+ Messages.MAX_LENGTH_MSG = 'Max Length should be {maxLength}';
8
+ Messages.MAX_DATE_MSG = 'Max Date should be {maxDate}';
9
+ Messages.MIN_DATE_MSG = 'Min Date should be {minDate}';
10
+ Messages.MAX_MSG = 'Max value should be {max}';
11
+ Messages.MIN_MSG = 'Min value should be {min}';
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtZm9ybWVudHJ5L3NyYy9mb3JtLWVudHJ5L3V0aWxzL21lc3NhZ2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxRQUFROztBQUNJLDJCQUFrQixHQUFHLHlCQUF5QixDQUFDO0FBRS9DLHlCQUFnQixHQUFHLDJCQUEyQixDQUFDO0FBRS9DLG9DQUEyQixHQUNoRCw2QkFBNkIsQ0FBQztBQUVULHVCQUFjLEdBQUcsa0NBQWtDLENBQUM7QUFFcEQsdUJBQWMsR0FBRyxrQ0FBa0MsQ0FBQztBQUVwRCxxQkFBWSxHQUFHLDhCQUE4QixDQUFDO0FBRTlDLHFCQUFZLEdBQUcsOEJBQThCLENBQUM7QUFFOUMsZ0JBQU8sR0FBRywyQkFBMkIsQ0FBQztBQUV0QyxnQkFBTyxHQUFHLDJCQUEyQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIE1lc3NhZ2VzIHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBSRVFVSVJFRF9GSUVMRF9NU0cgPSAnVGhpcyBmaWVsZCBpcyByZXF1aXJlZCEnO1xuXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgSU5WQUxJRF9EQVRFX01TRyA9ICdQcm92aWRlZCBkYXRlIGlzIGludmFsaWQhJztcblxuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEZVVFVSRV9EQVRFX1JFU1RSSUNUSU9OX01TRyA9XG4gICAgJ0Z1dHVyZSBkYXRlIGlzIG5vdCBhbGxvd2VkISc7XG5cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBNSU5fTEVOR1RIX01TRyA9ICdNaW4gTGVuZ3RoIHNob3VsZCBiZSB7bWluTGVuZ3RofSc7XG5cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBNQVhfTEVOR1RIX01TRyA9ICdNYXggTGVuZ3RoIHNob3VsZCBiZSB7bWF4TGVuZ3RofSc7XG5cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBNQVhfREFURV9NU0cgPSAnTWF4IERhdGUgc2hvdWxkIGJlIHttYXhEYXRlfSc7XG5cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBNSU5fREFURV9NU0cgPSAnTWluIERhdGUgc2hvdWxkIGJlIHttaW5EYXRlfSc7XG5cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBNQVhfTVNHID0gJ01heCB2YWx1ZSBzaG91bGQgYmUge21heH0nO1xuXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgTUlOX01TRyA9ICdNaW4gdmFsdWUgc2hvdWxkIGJlIHttaW59Jztcbn1cbiJdfQ==
@@ -0,0 +1,46 @@
1
+ export class ConditionalAnsweredValidator {
2
+ constructor() { }
3
+ validate(model) {
4
+ return (control) => {
5
+ const value = control.value;
6
+ let relationValue = null;
7
+ const referenceQuestionId = model.referenceQuestionId;
8
+ const referenceQuestionAnswers = model.referenceQuestionAnswers;
9
+ let successCondition = true;
10
+ if (value) {
11
+ if (control &&
12
+ control.controlRelations &&
13
+ control.controlRelations.relations) {
14
+ control.controlRelations.relations.forEach((relation) => {
15
+ const relatedAsControl = relation.relatedTo;
16
+ if (relatedAsControl.uuid === referenceQuestionId) {
17
+ if (Array.isArray(relatedAsControl.value)) {
18
+ relationValue = relatedAsControl.value;
19
+ }
20
+ else {
21
+ relationValue =
22
+ relatedAsControl.value &&
23
+ typeof relatedAsControl.value === 'object' &&
24
+ relatedAsControl.value.value
25
+ ? relatedAsControl.value.value
26
+ : relatedAsControl.value;
27
+ }
28
+ }
29
+ if (!relationValue) {
30
+ successCondition = false;
31
+ }
32
+ else if (typeof referenceQuestionAnswers === 'object' &&
33
+ referenceQuestionAnswers.indexOf(relationValue) === -1) {
34
+ successCondition = false;
35
+ }
36
+ });
37
+ }
38
+ }
39
+ if (!successCondition) {
40
+ return { conditional_answered: { message: model.message } };
41
+ }
42
+ return null;
43
+ };
44
+ }
45
+ }
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZGl0aW9uYWwtYW5zd2VyZWQudmFsaWRhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWZvcm1lbnRyeS9zcmMvZm9ybS1lbnRyeS92YWxpZGF0b3JzL2NvbmRpdGlvbmFsLWFuc3dlcmVkLnZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxNQUFNLE9BQU8sNEJBQTRCO0lBQ3ZDLGdCQUFlLENBQUM7SUFFaEIsUUFBUSxDQUFDLEtBQWlDO1FBQ3hDLE9BQU8sQ0FBQyxPQUF1QixFQUEwQixFQUFFO1lBQ3pELE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUM7WUFDNUIsSUFBSSxhQUFhLEdBQUcsSUFBSSxDQUFDO1lBQ3pCLE1BQU0sbUJBQW1CLEdBQVcsS0FBSyxDQUFDLG1CQUFtQixDQUFDO1lBQzlELE1BQU0sd0JBQXdCLEdBQVEsS0FBSyxDQUFDLHdCQUF3QixDQUFDO1lBQ3JFLElBQUksZ0JBQWdCLEdBQVEsSUFBSSxDQUFDO1lBRWpDLElBQUksS0FBSyxFQUFFO2dCQUNULElBQ0UsT0FBTztvQkFDUCxPQUFPLENBQUMsZ0JBQWdCO29CQUN4QixPQUFPLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxFQUNsQztvQkFDQSxPQUFPLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO3dCQUN0RCxNQUFNLGdCQUFnQixHQUFHLFFBQVEsQ0FBQyxTQUFnQixDQUFDO3dCQUNuRCxJQUFJLGdCQUFnQixDQUFDLElBQUksS0FBSyxtQkFBbUIsRUFBRTs0QkFDakQsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxFQUFFO2dDQUN6QyxhQUFhLEdBQUcsZ0JBQWdCLENBQUMsS0FBSyxDQUFDOzZCQUN4QztpQ0FBTTtnQ0FDTCxhQUFhO29DQUNYLGdCQUFnQixDQUFDLEtBQUs7d0NBQ3RCLE9BQU8sZ0JBQWdCLENBQUMsS0FBSyxLQUFLLFFBQVE7d0NBQzFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxLQUFLO3dDQUMxQixDQUFDLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLEtBQUs7d0NBQzlCLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7NkJBQzlCO3lCQUNGO3dCQUVELElBQUksQ0FBQyxhQUFhLEVBQUU7NEJBQ2xCLGdCQUFnQixHQUFHLEtBQUssQ0FBQzt5QkFDMUI7NkJBQU0sSUFDTCxPQUFPLHdCQUF3QixLQUFLLFFBQVE7NEJBQzVDLHdCQUF3QixDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUMsRUFDdEQ7NEJBQ0EsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDO3lCQUMxQjtvQkFDSCxDQUFDLENBQUMsQ0FBQztpQkFDSjthQUNGO1lBRUQsSUFBSSxDQUFDLGdCQUFnQixFQUFFO2dCQUNyQixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsRUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7YUFDN0Q7WUFFRCxPQUFPLElBQUksQ0FBQztRQUNkLENBQUMsQ0FBQztJQUNKLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmZUZvcm1Db250cm9sIH0gZnJvbSAnLi4vLi4vYWJzdHJhY3QtY29udHJvbHMtZXh0ZW5zaW9uL2FmZS1mb3JtLWNvbnRyb2wnO1xuaW1wb3J0IHsgQ29uZGl0aW9uYWxWYWxpZGF0aW9uTW9kZWwgfSBmcm9tICcuLi9xdWVzdGlvbi1tb2RlbHMvY29uZGl0aW9uYWwtdmFsaWRhdGlvbi5tb2RlbCc7XG5cbmV4cG9ydCBjbGFzcyBDb25kaXRpb25hbEFuc3dlcmVkVmFsaWRhdG9yIHtcbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIHZhbGlkYXRlKG1vZGVsOiBDb25kaXRpb25hbFZhbGlkYXRpb25Nb2RlbCkge1xuICAgIHJldHVybiAoY29udHJvbDogQWZlRm9ybUNvbnRyb2wpOiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0+IHtcbiAgICAgIGNvbnN0IHZhbHVlID0gY29udHJvbC52YWx1ZTtcbiAgICAgIGxldCByZWxhdGlvblZhbHVlID0gbnVsbDtcbiAgICAgIGNvbnN0IHJlZmVyZW5jZVF1ZXN0aW9uSWQ6IHN0cmluZyA9IG1vZGVsLnJlZmVyZW5jZVF1ZXN0aW9uSWQ7XG4gICAgICBjb25zdCByZWZlcmVuY2VRdWVzdGlvbkFuc3dlcnM6IGFueSA9IG1vZGVsLnJlZmVyZW5jZVF1ZXN0aW9uQW5zd2VycztcbiAgICAgIGxldCBzdWNjZXNzQ29uZGl0aW9uOiBhbnkgPSB0cnVlO1xuXG4gICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIGNvbnRyb2wgJiZcbiAgICAgICAgICBjb250cm9sLmNvbnRyb2xSZWxhdGlvbnMgJiZcbiAgICAgICAgICBjb250cm9sLmNvbnRyb2xSZWxhdGlvbnMucmVsYXRpb25zXG4gICAgICAgICkge1xuICAgICAgICAgIGNvbnRyb2wuY29udHJvbFJlbGF0aW9ucy5yZWxhdGlvbnMuZm9yRWFjaCgocmVsYXRpb24pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHJlbGF0ZWRBc0NvbnRyb2wgPSByZWxhdGlvbi5yZWxhdGVkVG8gYXMgYW55O1xuICAgICAgICAgICAgaWYgKHJlbGF0ZWRBc0NvbnRyb2wudXVpZCA9PT0gcmVmZXJlbmNlUXVlc3Rpb25JZCkge1xuICAgICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShyZWxhdGVkQXNDb250cm9sLnZhbHVlKSkge1xuICAgICAgICAgICAgICAgIHJlbGF0aW9uVmFsdWUgPSByZWxhdGVkQXNDb250cm9sLnZhbHVlO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJlbGF0aW9uVmFsdWUgPVxuICAgICAgICAgICAgICAgICAgcmVsYXRlZEFzQ29udHJvbC52YWx1ZSAmJlxuICAgICAgICAgICAgICAgICAgdHlwZW9mIHJlbGF0ZWRBc0NvbnRyb2wudmFsdWUgPT09ICdvYmplY3QnICYmXG4gICAgICAgICAgICAgICAgICByZWxhdGVkQXNDb250cm9sLnZhbHVlLnZhbHVlXG4gICAgICAgICAgICAgICAgICAgID8gcmVsYXRlZEFzQ29udHJvbC52YWx1ZS52YWx1ZVxuICAgICAgICAgICAgICAgICAgICA6IHJlbGF0ZWRBc0NvbnRyb2wudmFsdWU7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCFyZWxhdGlvblZhbHVlKSB7XG4gICAgICAgICAgICAgIHN1Y2Nlc3NDb25kaXRpb24gPSBmYWxzZTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICAgICAgIHR5cGVvZiByZWZlcmVuY2VRdWVzdGlvbkFuc3dlcnMgPT09ICdvYmplY3QnICYmXG4gICAgICAgICAgICAgIHJlZmVyZW5jZVF1ZXN0aW9uQW5zd2Vycy5pbmRleE9mKHJlbGF0aW9uVmFsdWUpID09PSAtMVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIHN1Y2Nlc3NDb25kaXRpb24gPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoIXN1Y2Nlc3NDb25kaXRpb24pIHtcbiAgICAgICAgcmV0dXJuIHsgY29uZGl0aW9uYWxfYW5zd2VyZWQ6IHsgbWVzc2FnZTogbW9kZWwubWVzc2FnZSB9IH07XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH07XG4gIH1cbn1cbiJdfQ==