@openmrs/ngx-formentry 5.0.1-pre.351 → 5.0.1-pre.360

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 (240) hide show
  1. package/components/afe-ng-select.component.d.ts +1 -1
  2. package/components/appointments-overview/appointments-overview.component.d.ts +1 -1
  3. package/components/check-box/checkbox.component.d.ts +1 -1
  4. package/components/custom-component-wrapper/custom-component-wrapper.component.d.ts +1 -1
  5. package/components/custom-control-wrapper/custom-control-wrapper.component.d.ts +1 -1
  6. package/components/date-time-picker/date-picker/date-picker.component.d.ts +1 -1
  7. package/components/date-time-picker/date-time-picker.component.d.ts +1 -1
  8. package/components/date-time-picker/time-picker/time-picker.component.d.ts +1 -1
  9. package/components/file-upload/file-upload.component.d.ts +1 -1
  10. package/components/input/input.directive.d.ts +1 -1
  11. package/components/input/label.component.d.ts +1 -1
  12. package/components/input/text-area.directive.d.ts +1 -1
  13. package/components/ngx-datetime-picker/ngx-datetime-picker.component.d.ts +1 -1
  14. package/components/ngx-pick-datetime/lib/date-time/calendar-body.component.d.ts +1 -1
  15. package/components/ngx-pick-datetime/lib/date-time/calendar-month-view.component.d.ts +1 -1
  16. package/components/ngx-pick-datetime/lib/date-time/calendar-multi-year-view.component.d.ts +1 -1
  17. package/components/ngx-pick-datetime/lib/date-time/calendar-year-view.component.d.ts +1 -1
  18. package/components/ngx-pick-datetime/lib/date-time/calendar.component.d.ts +1 -1
  19. package/components/ngx-pick-datetime/lib/date-time/date-time-inline.component.d.ts +1 -1
  20. package/components/ngx-pick-datetime/lib/date-time/date-time-picker-input.directive.d.ts +1 -1
  21. package/components/ngx-pick-datetime/lib/date-time/date-time-picker-trigger.directive.d.ts +1 -1
  22. package/components/ngx-pick-datetime/lib/date-time/date-time-picker.component.d.ts +1 -1
  23. package/components/ngx-pick-datetime/lib/date-time/timer-box.component.d.ts +1 -1
  24. package/components/ngx-pick-datetime/lib/date-time/timer.component.d.ts +1 -1
  25. package/components/ngx-remote-select/ngx-remote-select.component.d.ts +1 -1
  26. package/components/ngx-tabset/components/ngx-tab-set.component.d.ts +1 -1
  27. package/components/ngx-tabset/components/tab.component.d.ts +1 -1
  28. package/components/ngx-tabset/directives/hover-class.directive.d.ts +1 -1
  29. package/components/number-input/number-input.component.d.ts +1 -1
  30. package/components/radio-button/radio.component.d.ts +1 -1
  31. package/components/select/select.component.d.ts +1 -1
  32. package/components/workspace-launcher/workspace-launcher.component.d.ts +1 -1
  33. package/{esm2020 → esm2022}/abstract-controls-extension/afe-form-array.mjs +4 -2
  34. package/{esm2020 → esm2022}/components/afe-ng-select.component.mjs +12 -12
  35. package/{esm2020 → esm2022}/components/appointments-overview/appointments-overview.component.mjs +4 -4
  36. package/{esm2020 → esm2022}/components/check-box/checkbox.component.mjs +10 -10
  37. package/{esm2020 → esm2022}/components/check-box/checkbox.module.mjs +5 -5
  38. package/{esm2020 → esm2022}/components/custom-component-wrapper/custom-component-wrapper..module.mjs +5 -5
  39. package/{esm2020 → esm2022}/components/custom-component-wrapper/custom-component-wrapper.component.mjs +4 -4
  40. package/{esm2020 → esm2022}/components/custom-control-wrapper/custom-control-wrapper..module.mjs +5 -5
  41. package/esm2022/components/custom-control-wrapper/custom-control-wrapper.component.mjs +68 -0
  42. package/{esm2020 → esm2022}/components/date-time-picker/date-picker/date-picker.component.mjs +4 -4
  43. package/esm2022/components/date-time-picker/date-time-picker.component.mjs +115 -0
  44. package/{esm2020 → esm2022}/components/date-time-picker/date-time-picker.module.mjs +13 -13
  45. package/{esm2020 → esm2022}/components/date-time-picker/picker-modal/modal.component.mjs +4 -4
  46. package/{esm2020 → esm2022}/components/date-time-picker/pipes/moment.pipe.mjs +4 -4
  47. package/{esm2020 → esm2022}/components/date-time-picker/time-picker/time-picker.component.mjs +4 -4
  48. package/{esm2020 → esm2022}/components/file-upload/file-upload.component.mjs +10 -10
  49. package/{esm2020 → esm2022}/components/file-upload/file-upload.module.mjs +13 -13
  50. package/{esm2020 → esm2022}/components/file-upload/secure.pipe.mjs +4 -4
  51. package/{esm2020 → esm2022}/components/input/input.directive.mjs +4 -4
  52. package/{esm2020 → esm2022}/components/input/input.module.mjs +5 -5
  53. package/esm2022/components/input/label.component.mjs +263 -0
  54. package/{esm2020 → esm2022}/components/input/text-area.directive.mjs +4 -4
  55. package/esm2022/components/ngx-datetime-picker/ngx-datetime-picker.component.mjs +76 -0
  56. package/{esm2020 → esm2022}/components/ngx-datetime-picker/ngx-datetime-picker.module.mjs +13 -13
  57. package/{esm2020 → esm2022}/components/ngx-pick-datetime/lib/date-time/adapter/native-date-time-adapter.class.mjs +4 -4
  58. package/{esm2020 → esm2022}/components/ngx-pick-datetime/lib/date-time/adapter/native-date-time.module.mjs +11 -11
  59. package/{esm2020 → esm2022}/components/ngx-pick-datetime/lib/date-time/calendar-body.component.mjs +4 -4
  60. package/{esm2020 → esm2022}/components/ngx-pick-datetime/lib/date-time/calendar-month-view.component.mjs +4 -4
  61. package/{esm2020 → esm2022}/components/ngx-pick-datetime/lib/date-time/calendar-multi-year-view.component.mjs +4 -4
  62. package/{esm2020 → esm2022}/components/ngx-pick-datetime/lib/date-time/calendar-year-view.component.mjs +4 -4
  63. package/{esm2020 → esm2022}/components/ngx-pick-datetime/lib/date-time/calendar.component.mjs +4 -4
  64. package/{esm2020 → esm2022}/components/ngx-pick-datetime/lib/date-time/date-time-inline.component.mjs +4 -4
  65. package/{esm2020 → esm2022}/components/ngx-pick-datetime/lib/date-time/date-time-picker-container.component.mjs +7 -7
  66. package/{esm2020 → esm2022}/components/ngx-pick-datetime/lib/date-time/date-time-picker-input.directive.mjs +4 -4
  67. package/{esm2020 → esm2022}/components/ngx-pick-datetime/lib/date-time/date-time-picker-intl.service.mjs +4 -4
  68. package/{esm2020 → esm2022}/components/ngx-pick-datetime/lib/date-time/date-time-picker-trigger.directive.mjs +4 -4
  69. package/{esm2020 → esm2022}/components/ngx-pick-datetime/lib/date-time/date-time-picker.component.mjs +4 -4
  70. package/{esm2020 → esm2022}/components/ngx-pick-datetime/lib/date-time/date-time.class.mjs +4 -4
  71. package/{esm2020 → esm2022}/components/ngx-pick-datetime/lib/date-time/date-time.module.mjs +33 -33
  72. package/{esm2020 → esm2022}/components/ngx-pick-datetime/lib/date-time/numberedFixLen.pipe.mjs +4 -4
  73. package/{esm2020 → esm2022}/components/ngx-pick-datetime/lib/date-time/timer-box.component.mjs +4 -4
  74. package/{esm2020 → esm2022}/components/ngx-pick-datetime/lib/date-time/timer.component.mjs +4 -4
  75. package/esm2022/components/ngx-pick-datetime/lib/dialog/dialog-container.component.mjs +243 -0
  76. package/{esm2020 → esm2022}/components/ngx-pick-datetime/lib/dialog/dialog.module.mjs +5 -5
  77. package/{esm2020 → esm2022}/components/ngx-pick-datetime/lib/dialog/dialog.service.mjs +4 -4
  78. package/esm2022/components/ngx-remote-select/ngx-remote-select.component.mjs +132 -0
  79. package/{esm2020 → esm2022}/components/ngx-remote-select/ngx-remote-select.module.mjs +5 -5
  80. package/{esm2020 → esm2022}/components/ngx-tabset/components/ngx-tab-set.component.mjs +4 -4
  81. package/{esm2020 → esm2022}/components/ngx-tabset/components/tab.component.mjs +4 -4
  82. package/{esm2020 → esm2022}/components/ngx-tabset/directives/hover-class.directive.mjs +4 -4
  83. package/{esm2020 → esm2022}/components/ngx-tabset/modules/ngx-tabset.module.mjs +5 -5
  84. package/esm2022/components/number-input/number-input.component.mjs +248 -0
  85. package/{esm2020 → esm2022}/components/number-input/number-input.module.mjs +5 -5
  86. package/{esm2020 → esm2022}/components/number-input/number.directive.mjs +4 -4
  87. package/esm2022/components/radio-button/radio.component.mjs +96 -0
  88. package/{esm2020 → esm2022}/components/radio-button/radio.module.mjs +5 -5
  89. package/{esm2020 → esm2022}/components/select/optgroup.directive.mjs +4 -4
  90. package/{esm2020 → esm2022}/components/select/option.directive.mjs +4 -4
  91. package/esm2022/components/select/select.component.mjs +182 -0
  92. package/{esm2020 → esm2022}/components/select/select.module.mjs +5 -5
  93. package/{esm2020 → esm2022}/components/workspace-launcher/workspace-launcher.component.mjs +4 -4
  94. package/{esm2020 → esm2022}/components/workspace-launcher/workspace-launcher.module.mjs +5 -5
  95. package/{esm2020 → esm2022}/form-entry/control-hiders-disablers/hider-helpers.mjs +2 -1
  96. package/{esm2020 → esm2022}/form-entry/data-sources/data-sources.mjs +4 -4
  97. package/{esm2020 → esm2022}/form-entry/directives/collapse.directive.mjs +4 -4
  98. package/{esm2020 → esm2022}/form-entry/directives/historical-value.directive.mjs +4 -4
  99. package/{esm2020 → esm2022}/form-entry/error-renderer/error-renderer.component.mjs +4 -4
  100. package/{esm2020 → esm2022}/form-entry/expression-runner/expression-runner.mjs +4 -4
  101. package/{esm2020 → esm2022}/form-entry/form-entry.module.mjs +75 -75
  102. package/{esm2020 → esm2022}/form-entry/form-factory/control-relations.factory.mjs +4 -4
  103. package/{esm2020 → esm2022}/form-entry/form-factory/form-control.service.mjs +4 -4
  104. package/{esm2020 → esm2022}/form-entry/form-factory/form.factory.mjs +4 -4
  105. package/{esm2020 → esm2022}/form-entry/form-factory/hiders-disablers.factory.mjs +4 -4
  106. package/{esm2020 → esm2022}/form-entry/form-factory/question.factory.mjs +4 -4
  107. package/{esm2020 → esm2022}/form-entry/form-factory/show-messages.factory.mjs +4 -4
  108. package/{esm2020 → esm2022}/form-entry/form-factory/validation.factory.mjs +4 -4
  109. package/{esm2020 → esm2022}/form-entry/form-renderer/form-renderer.component.mjs +4 -4
  110. package/{esm2020 → esm2022}/form-entry/helpers/historical-expression-helper-service.mjs +4 -4
  111. package/{esm2020 → esm2022}/form-entry/helpers/historical-field-helper-service.mjs +4 -4
  112. package/{esm2020 → esm2022}/form-entry/helpers/js-expression-helper.mjs +4 -4
  113. package/{esm2020 → esm2022}/form-entry/pipes/time-ago.pipe.mjs +4 -4
  114. package/{esm2020 → esm2022}/form-entry/services/debug-mode.service.mjs +4 -4
  115. package/esm2022/form-entry/services/form-errors.service.mjs +21 -0
  116. package/{esm2020 → esm2022}/form-entry/services/form-schema-compiler.service.mjs +4 -4
  117. package/{esm2020 → esm2022}/form-entry/services/historical-encounter-data.service.mjs +4 -4
  118. package/esm2022/form-entry/validators/validations.mjs +5 -0
  119. package/esm2022/form-entry/value-adapters/diagnosis.adapter.mjs +241 -0
  120. package/{esm2020 → esm2022}/form-entry/value-adapters/encounter.adapter.mjs +4 -4
  121. package/{esm2020 → esm2022}/form-entry/value-adapters/obs-adapter-helper.mjs +4 -4
  122. package/{esm2020 → esm2022}/form-entry/value-adapters/obs.adapter.mjs +4 -4
  123. package/{esm2020 → esm2022}/form-entry/value-adapters/order.adapter.mjs +4 -4
  124. package/{esm2020 → esm2022}/form-entry/value-adapters/patient-identifier.adapter.mjs +4 -4
  125. package/{esm2020 → esm2022}/form-entry/value-adapters/person-attribute.adapter.mjs +4 -4
  126. package/{esm2020 → esm2022}/shared.module.mjs +5 -5
  127. package/{fesm2020 → fesm2022}/openmrs-ngx-formentry.mjs +534 -531
  128. package/fesm2022/openmrs-ngx-formentry.mjs.map +1 -0
  129. package/form-entry/directives/collapse.directive.d.ts +1 -1
  130. package/form-entry/directives/historical-value.directive.d.ts +1 -1
  131. package/form-entry/error-renderer/error-renderer.component.d.ts +1 -1
  132. package/form-entry/form-renderer/form-renderer.component.d.ts +1 -1
  133. package/package.json +14 -20
  134. package/esm2020/components/custom-control-wrapper/custom-control-wrapper.component.mjs +0 -68
  135. package/esm2020/components/date-time-picker/date-time-picker.component.mjs +0 -115
  136. package/esm2020/components/input/label.component.mjs +0 -263
  137. package/esm2020/components/ngx-datetime-picker/ngx-datetime-picker.component.mjs +0 -76
  138. package/esm2020/components/ngx-pick-datetime/lib/dialog/dialog-container.component.mjs +0 -243
  139. package/esm2020/components/ngx-remote-select/ngx-remote-select.component.mjs +0 -132
  140. package/esm2020/components/number-input/number-input.component.mjs +0 -248
  141. package/esm2020/components/radio-button/radio.component.mjs +0 -96
  142. package/esm2020/components/select/select.component.mjs +0 -182
  143. package/esm2020/form-entry/services/form-errors.service.mjs +0 -21
  144. package/esm2020/form-entry/validators/validations.mjs +0 -5
  145. package/esm2020/form-entry/value-adapters/diagnosis.adapter.mjs +0 -241
  146. package/fesm2015/openmrs-ngx-formentry.mjs +0 -14935
  147. package/fesm2015/openmrs-ngx-formentry.mjs.map +0 -1
  148. package/fesm2020/openmrs-ngx-formentry.mjs.map +0 -1
  149. /package/{esm2020 → esm2022}/abstract-controls-extension/afe-control-type.mjs +0 -0
  150. /package/{esm2020 → esm2022}/abstract-controls-extension/afe-form-control.mjs +0 -0
  151. /package/{esm2020 → esm2022}/abstract-controls-extension/afe-form-group.mjs +0 -0
  152. /package/{esm2020 → esm2022}/abstract-controls-extension/control-extensions.mjs +0 -0
  153. /package/{esm2020 → esm2022}/abstract-controls-extension/index.mjs +0 -0
  154. /package/{esm2020 → esm2022}/abstract-controls-extension/value-change.listener.mjs +0 -0
  155. /package/{esm2020 → esm2022}/change-tracking/control-relation.mjs +0 -0
  156. /package/{esm2020 → esm2022}/change-tracking/control-relations.mjs +0 -0
  157. /package/{esm2020 → esm2022}/components/date-time-picker/index.mjs +0 -0
  158. /package/{esm2020 → esm2022}/components/ngx-pick-datetime/lib/date-time/adapter/date-time-adapter.class.mjs +0 -0
  159. /package/{esm2020 → esm2022}/components/ngx-pick-datetime/lib/date-time/adapter/date-time-format.class.mjs +0 -0
  160. /package/{esm2020 → esm2022}/components/ngx-pick-datetime/lib/date-time/adapter/native-date-time-format.class.mjs +0 -0
  161. /package/{esm2020 → esm2022}/components/ngx-pick-datetime/lib/date-time/date-time-picker.animations.mjs +0 -0
  162. /package/{esm2020 → esm2022}/components/ngx-pick-datetime/lib/dialog/dialog-config.class.mjs +0 -0
  163. /package/{esm2020 → esm2022}/components/ngx-pick-datetime/lib/dialog/dialog-ref.class.mjs +0 -0
  164. /package/{esm2020 → esm2022}/components/ngx-pick-datetime/lib/utils/index.mjs +0 -0
  165. /package/{esm2020 → esm2022}/components/ngx-pick-datetime/lib/utils/object.utils.mjs +0 -0
  166. /package/{esm2020 → esm2022}/form-entry/control-alerts/alert-helpers.mjs +0 -0
  167. /package/{esm2020 → esm2022}/form-entry/control-alerts/can-generate-alert.mjs +0 -0
  168. /package/{esm2020 → esm2022}/form-entry/control-calculators/can-calculate.mjs +0 -0
  169. /package/{esm2020 → esm2022}/form-entry/control-hiders-disablers/can-disable.mjs +0 -0
  170. /package/{esm2020 → esm2022}/form-entry/control-hiders-disablers/can-hide.mjs +0 -0
  171. /package/{esm2020 → esm2022}/form-entry/control-hiders-disablers/disabler-helper.mjs +0 -0
  172. /package/{esm2020 → esm2022}/form-entry/data-sources/dummy-data-source.mjs +0 -0
  173. /package/{esm2020 → esm2022}/form-entry/directives/collapse-animations.mjs +0 -0
  174. /package/{esm2020 → esm2022}/form-entry/form-factory/form-node.mjs +0 -0
  175. /package/{esm2020 → esm2022}/form-entry/form-factory/form.mjs +0 -0
  176. /package/{esm2020 → esm2022}/form-entry/form-factory/index.mjs +0 -0
  177. /package/{esm2020 → esm2022}/form-entry/helpers/risk-dataset-table.mjs +0 -0
  178. /package/{esm2020 → esm2022}/form-entry/question-models/checkbox.model.mjs +0 -0
  179. /package/{esm2020 → esm2022}/form-entry/question-models/conditional-validation.model.mjs +0 -0
  180. /package/{esm2020 → esm2022}/form-entry/question-models/custom-control-question.model.mjs +0 -0
  181. /package/{esm2020 → esm2022}/form-entry/question-models/date-question.mjs +0 -0
  182. /package/{esm2020 → esm2022}/form-entry/question-models/date-validation.model.mjs +0 -0
  183. /package/{esm2020 → esm2022}/form-entry/question-models/diagnosis-question.mjs +0 -0
  184. /package/{esm2020 → esm2022}/form-entry/question-models/file-upload-question.mjs +0 -0
  185. /package/{esm2020 → esm2022}/form-entry/question-models/group-question.mjs +0 -0
  186. /package/{esm2020 → esm2022}/form-entry/question-models/index.mjs +0 -0
  187. /package/{esm2020 → esm2022}/form-entry/question-models/interfaces/base-options.mjs +0 -0
  188. /package/{esm2020 → esm2022}/form-entry/question-models/interfaces/checkbox-options.mjs +0 -0
  189. /package/{esm2020 → esm2022}/form-entry/question-models/interfaces/data-source.mjs +0 -0
  190. /package/{esm2020 → esm2022}/form-entry/question-models/interfaces/date-question-options.mjs +0 -0
  191. /package/{esm2020 → esm2022}/form-entry/question-models/interfaces/diagnosis-question-options.mjs +0 -0
  192. /package/{esm2020 → esm2022}/form-entry/question-models/interfaces/file-upload-question-options.mjs +0 -0
  193. /package/{esm2020 → esm2022}/form-entry/question-models/interfaces/group-question-options.mjs +0 -0
  194. /package/{esm2020 → esm2022}/form-entry/question-models/interfaces/multi-select-options.mjs +0 -0
  195. /package/{esm2020 → esm2022}/form-entry/question-models/interfaces/nested-questions.mjs +0 -0
  196. /package/{esm2020 → esm2022}/form-entry/question-models/interfaces/radio-button-options.mjs +0 -0
  197. /package/{esm2020 → esm2022}/form-entry/question-models/interfaces/repeating-question-options.mjs +0 -0
  198. /package/{esm2020 → esm2022}/form-entry/question-models/interfaces/select-option.mjs +0 -0
  199. /package/{esm2020 → esm2022}/form-entry/question-models/interfaces/select-question-options.mjs +0 -0
  200. /package/{esm2020 → esm2022}/form-entry/question-models/interfaces/test-order-question-options.mjs +0 -0
  201. /package/{esm2020 → esm2022}/form-entry/question-models/interfaces/text-area-question-options.mjs +0 -0
  202. /package/{esm2020 → esm2022}/form-entry/question-models/interfaces/text-question-options.mjs +0 -0
  203. /package/{esm2020 → esm2022}/form-entry/question-models/interfaces/ui-select-question-options.mjs +0 -0
  204. /package/{esm2020 → esm2022}/form-entry/question-models/interfaces/workspace-launcher-options.mjs +0 -0
  205. /package/{esm2020 → esm2022}/form-entry/question-models/js-expression-validation.model.mjs +0 -0
  206. /package/{esm2020 → esm2022}/form-entry/question-models/max-length-validation.model.mjs +0 -0
  207. /package/{esm2020 → esm2022}/form-entry/question-models/max-validation.model.mjs +0 -0
  208. /package/{esm2020 → esm2022}/form-entry/question-models/min-length-validation.model.mjs +0 -0
  209. /package/{esm2020 → esm2022}/form-entry/question-models/min-validation.model.mjs +0 -0
  210. /package/{esm2020 → esm2022}/form-entry/question-models/models.mjs +0 -0
  211. /package/{esm2020 → esm2022}/form-entry/question-models/multi-select-question.mjs +0 -0
  212. /package/{esm2020 → esm2022}/form-entry/question-models/pair.model.mjs +0 -0
  213. /package/{esm2020 → esm2022}/form-entry/question-models/question-base.mjs +0 -0
  214. /package/{esm2020 → esm2022}/form-entry/question-models/radio-button.model.mjs +0 -0
  215. /package/{esm2020 → esm2022}/form-entry/question-models/rendering-type.mjs +0 -0
  216. /package/{esm2020 → esm2022}/form-entry/question-models/repeating-question.mjs +0 -0
  217. /package/{esm2020 → esm2022}/form-entry/question-models/select-option.mjs +0 -0
  218. /package/{esm2020 → esm2022}/form-entry/question-models/select-question.mjs +0 -0
  219. /package/{esm2020 → esm2022}/form-entry/question-models/test-order-question.mjs +0 -0
  220. /package/{esm2020 → esm2022}/form-entry/question-models/text-area-input-question.mjs +0 -0
  221. /package/{esm2020 → esm2022}/form-entry/question-models/text-input-question.mjs +0 -0
  222. /package/{esm2020 → esm2022}/form-entry/question-models/ui-select-question.mjs +0 -0
  223. /package/{esm2020 → esm2022}/form-entry/question-models/validation.model.mjs +0 -0
  224. /package/{esm2020 → esm2022}/form-entry/question-models/workspace-launcher.model.mjs +0 -0
  225. /package/{esm2020 → esm2022}/form-entry/validators/conditional-answered.validator.mjs +0 -0
  226. /package/{esm2020 → esm2022}/form-entry/validators/conditional-required.validator.mjs +0 -0
  227. /package/{esm2020 → esm2022}/form-entry/validators/date.validator.mjs +0 -0
  228. /package/{esm2020 → esm2022}/form-entry/validators/future-date-restriction.validator.mjs +0 -0
  229. /package/{esm2020 → esm2022}/form-entry/validators/js-expression.validator.mjs +0 -0
  230. /package/{esm2020 → esm2022}/form-entry/validators/max-date.validator.mjs +0 -0
  231. /package/{esm2020 → esm2022}/form-entry/validators/max-length.validator.mjs +0 -0
  232. /package/{esm2020 → esm2022}/form-entry/validators/max.validator.mjs +0 -0
  233. /package/{esm2020 → esm2022}/form-entry/validators/min-date.validator.mjs +0 -0
  234. /package/{esm2020 → esm2022}/form-entry/validators/min-length.validator.mjs +0 -0
  235. /package/{esm2020 → esm2022}/form-entry/validators/min.validator.mjs +0 -0
  236. /package/{esm2020 → esm2022}/form-entry/validators/required.validator.mjs +0 -0
  237. /package/{esm2020 → esm2022}/form-entry/value-adapters/value.adapter.mjs +0 -0
  238. /package/{esm2020 → esm2022}/lib/index.mjs +0 -0
  239. /package/{esm2020 → esm2022}/openmrs-ngx-formentry.mjs +0 -0
  240. /package/{esm2020 → esm2022}/public_api.mjs +0 -0
@@ -0,0 +1,243 @@
1
+ import { ChangeDetectorRef, Component, ElementRef, EventEmitter, HostBinding, HostListener, Inject, Optional, ViewChild } from '@angular/core';
2
+ import { animate, animateChild, keyframes, style, transition, trigger } from '@angular/animations';
3
+ import { DOCUMENT } from '@angular/common';
4
+ import { FocusTrapFactory } from '@angular/cdk/a11y';
5
+ import { BasePortalOutlet, CdkPortalOutlet } from '@angular/cdk/portal';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@angular/cdk/a11y";
8
+ import * as i2 from "@angular/cdk/portal";
9
+ const zoomFadeIn = {
10
+ opacity: 0,
11
+ transform: 'translateX({{ x }}) translateY({{ y }}) scale({{scale}})'
12
+ };
13
+ const zoomFadeInFrom = {
14
+ opacity: 0,
15
+ transform: 'translateX({{ x }}) translateY({{ y }}) scale({{scale}})',
16
+ transformOrigin: '{{ ox }} {{ oy }}'
17
+ };
18
+ export class OwlDialogContainerComponent extends BasePortalOutlet {
19
+ get owlDialogContainerTabIndex() {
20
+ return -1;
21
+ }
22
+ get owlDialogContainerClass() {
23
+ return true;
24
+ }
25
+ get owlDialogContainerId() {
26
+ return this._config.id;
27
+ }
28
+ get owlDialogContainerRole() {
29
+ return this._config.role || null;
30
+ }
31
+ get owlDialogContainerAriaLabelledby() {
32
+ return this.ariaLabelledBy;
33
+ }
34
+ get owlDialogContainerAriaDescribedby() {
35
+ return this._config.ariaDescribedBy || null;
36
+ }
37
+ get owlDialogContainerAnimation() {
38
+ return { value: this.state, params: this.params };
39
+ }
40
+ onAnimationStart(event) {
41
+ this.isAnimating = true;
42
+ this.animationStateChanged.emit(event);
43
+ }
44
+ onAnimationDone(event) {
45
+ if (event.toState === 'enter') {
46
+ this.trapFocus();
47
+ }
48
+ else if (event.toState === 'exit') {
49
+ this.restoreFocus();
50
+ }
51
+ this.animationStateChanged.emit(event);
52
+ this.isAnimating = false;
53
+ }
54
+ get config() {
55
+ return this._config;
56
+ }
57
+ constructor(changeDetector, elementRef, focusTrapFactory, document) {
58
+ super();
59
+ this.changeDetector = changeDetector;
60
+ this.elementRef = elementRef;
61
+ this.focusTrapFactory = focusTrapFactory;
62
+ this.document = document;
63
+ /** ID of the element that should be considered as the dialog's label. */
64
+ this.ariaLabelledBy = null;
65
+ /** Emits when an animation state changes. */
66
+ this.animationStateChanged = new EventEmitter();
67
+ this.isAnimating = false;
68
+ this.state = 'enter';
69
+ // for animation purpose
70
+ this.params = {
71
+ x: '0px',
72
+ y: '0px',
73
+ ox: '50%',
74
+ oy: '50%',
75
+ scale: 0
76
+ };
77
+ // A variable to hold the focused element before the dialog was open.
78
+ // This would help us to refocus back to element when the dialog was closed.
79
+ this.elementFocusedBeforeDialogWasOpened = null;
80
+ }
81
+ /**
82
+ * Attach a ComponentPortal as content to this dialog container.
83
+ */
84
+ attachComponentPortal(portal) {
85
+ if (this.portalOutlet.hasAttached()) {
86
+ throw Error('Attempting to attach dialog content after content is already attached');
87
+ }
88
+ this.savePreviouslyFocusedElement();
89
+ return this.portalOutlet.attachComponentPortal(portal);
90
+ }
91
+ attachTemplatePortal(portal) {
92
+ throw new Error('Method not implemented.');
93
+ }
94
+ setConfig(config) {
95
+ this._config = config;
96
+ if (config.event) {
97
+ this.calculateZoomOrigin(event);
98
+ }
99
+ }
100
+ startExitAnimation() {
101
+ this.state = 'exit';
102
+ this.changeDetector.markForCheck();
103
+ }
104
+ /**
105
+ * Calculate origin used in the `zoomFadeInFrom()`
106
+ * for animation purpose
107
+ */
108
+ calculateZoomOrigin(event) {
109
+ if (!event) {
110
+ return;
111
+ }
112
+ const clientX = event.clientX;
113
+ const clientY = event.clientY;
114
+ const wh = window.innerWidth / 2;
115
+ const hh = window.innerHeight / 2;
116
+ const x = clientX - wh;
117
+ const y = clientY - hh;
118
+ const ox = clientX / window.innerWidth;
119
+ const oy = clientY / window.innerHeight;
120
+ this.params.x = `${x}px`;
121
+ this.params.y = `${y}px`;
122
+ this.params.ox = `${ox * 100}%`;
123
+ this.params.oy = `${oy * 100}%`;
124
+ this.params.scale = 0;
125
+ return;
126
+ }
127
+ /**
128
+ * Save the focused element before dialog was open
129
+ */
130
+ savePreviouslyFocusedElement() {
131
+ if (this.document) {
132
+ this.elementFocusedBeforeDialogWasOpened = this.document
133
+ .activeElement;
134
+ Promise.resolve().then(() => this.elementRef.nativeElement.focus());
135
+ }
136
+ }
137
+ trapFocus() {
138
+ if (!this.focusTrap) {
139
+ this.focusTrap = this.focusTrapFactory.create(this.elementRef.nativeElement);
140
+ }
141
+ if (this._config.autoFocus) {
142
+ this.focusTrap.focusInitialElementWhenReady();
143
+ }
144
+ }
145
+ restoreFocus() {
146
+ const toFocus = this.elementFocusedBeforeDialogWasOpened;
147
+ // We need the extra check, because IE can set the `activeElement` to null in some cases.
148
+ if (toFocus && typeof toFocus.focus === 'function') {
149
+ toFocus.focus();
150
+ }
151
+ if (this.focusTrap) {
152
+ this.focusTrap.destroy();
153
+ }
154
+ }
155
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: OwlDialogContainerComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i1.FocusTrapFactory }, { token: DOCUMENT, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
156
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: OwlDialogContainerComponent, selector: "ofe-owl-dialog-container", host: { listeners: { "@slideModal.start": "onAnimationStart($event)", "@slideModal.done": "onAnimationDone($event)" }, properties: { "attr.tabindex": "this.owlDialogContainerTabIndex", "class.owl-dialog-container": "this.owlDialogContainerClass", "attr.id": "this.owlDialogContainerId", "attr.role": "this.owlDialogContainerRole", "attr.aria-labelledby": "this.owlDialogContainerAriaLabelledby", "attr.aria-describedby": "this.owlDialogContainerAriaDescribedby", "@slideModal": "this.owlDialogContainerAnimation" } }, viewQueries: [{ propertyName: "portalOutlet", first: true, predicate: CdkPortalOutlet, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<ng-template cdkPortalOutlet></ng-template>\n", dependencies: [{ kind: "directive", type: i2.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }], animations: [
157
+ trigger('slideModal', [
158
+ transition('void => enter', [
159
+ style(zoomFadeInFrom),
160
+ animate('300ms cubic-bezier(0.35, 0, 0.25, 1)', style('*')),
161
+ animate('150ms', keyframes([
162
+ style({ transform: 'scale(1)', offset: 0 }),
163
+ style({ transform: 'scale(1.05)', offset: 0.3 }),
164
+ style({ transform: 'scale(.95)', offset: 0.8 }),
165
+ style({ transform: 'scale(1)', offset: 1.0 })
166
+ ])),
167
+ animateChild()
168
+ ], {
169
+ params: {
170
+ x: '0px',
171
+ y: '0px',
172
+ ox: '50%',
173
+ oy: '50%',
174
+ scale: 1
175
+ }
176
+ }),
177
+ transition('enter => exit', [animateChild(), animate(200, style(zoomFadeIn))], { params: { x: '0px', y: '0px', ox: '50%', oy: '50%' } })
178
+ ])
179
+ ] }); }
180
+ }
181
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: OwlDialogContainerComponent, decorators: [{
182
+ type: Component,
183
+ args: [{ selector: 'ofe-owl-dialog-container', animations: [
184
+ trigger('slideModal', [
185
+ transition('void => enter', [
186
+ style(zoomFadeInFrom),
187
+ animate('300ms cubic-bezier(0.35, 0, 0.25, 1)', style('*')),
188
+ animate('150ms', keyframes([
189
+ style({ transform: 'scale(1)', offset: 0 }),
190
+ style({ transform: 'scale(1.05)', offset: 0.3 }),
191
+ style({ transform: 'scale(.95)', offset: 0.8 }),
192
+ style({ transform: 'scale(1)', offset: 1.0 })
193
+ ])),
194
+ animateChild()
195
+ ], {
196
+ params: {
197
+ x: '0px',
198
+ y: '0px',
199
+ ox: '50%',
200
+ oy: '50%',
201
+ scale: 1
202
+ }
203
+ }),
204
+ transition('enter => exit', [animateChild(), animate(200, style(zoomFadeIn))], { params: { x: '0px', y: '0px', ox: '50%', oy: '50%' } })
205
+ ])
206
+ ], template: "<ng-template cdkPortalOutlet></ng-template>\n" }]
207
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i1.FocusTrapFactory }, { type: undefined, decorators: [{
208
+ type: Optional
209
+ }, {
210
+ type: Inject,
211
+ args: [DOCUMENT]
212
+ }] }]; }, propDecorators: { owlDialogContainerTabIndex: [{
213
+ type: HostBinding,
214
+ args: ['attr.tabindex']
215
+ }], owlDialogContainerClass: [{
216
+ type: HostBinding,
217
+ args: ['class.owl-dialog-container']
218
+ }], owlDialogContainerId: [{
219
+ type: HostBinding,
220
+ args: ['attr.id']
221
+ }], owlDialogContainerRole: [{
222
+ type: HostBinding,
223
+ args: ['attr.role']
224
+ }], owlDialogContainerAriaLabelledby: [{
225
+ type: HostBinding,
226
+ args: ['attr.aria-labelledby']
227
+ }], owlDialogContainerAriaDescribedby: [{
228
+ type: HostBinding,
229
+ args: ['attr.aria-describedby']
230
+ }], owlDialogContainerAnimation: [{
231
+ type: HostBinding,
232
+ args: ['@slideModal']
233
+ }], onAnimationStart: [{
234
+ type: HostListener,
235
+ args: ['@slideModal.start', ['$event']]
236
+ }], onAnimationDone: [{
237
+ type: HostListener,
238
+ args: ['@slideModal.done', ['$event']]
239
+ }], portalOutlet: [{
240
+ type: ViewChild,
241
+ args: [CdkPortalOutlet, { static: true }]
242
+ }] } });
243
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLWNvbnRhaW5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtZm9ybWVudHJ5L3NyYy9jb21wb25lbnRzL25neC1waWNrLWRhdGV0aW1lL2xpYi9kaWFsb2cvZGlhbG9nLWNvbnRhaW5lci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtZm9ybWVudHJ5L3NyYy9jb21wb25lbnRzL25neC1waWNrLWRhdGV0aW1lL2xpYi9kaWFsb2cvZGlhbG9nLWNvbnRhaW5lci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLFNBQVMsRUFFVCxVQUFVLEVBRVYsWUFBWSxFQUNaLFdBQVcsRUFDWCxZQUFZLEVBQ1osTUFBTSxFQUNOLFFBQVEsRUFDUixTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLE9BQU8sRUFDUCxZQUFZLEVBRVosU0FBUyxFQUNULEtBQUssRUFDTCxVQUFVLEVBQ1YsT0FBTyxFQUNSLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBYSxnQkFBZ0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2hFLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsZUFBZSxFQUdoQixNQUFNLHFCQUFxQixDQUFDOzs7O0FBRzdCLE1BQU0sVUFBVSxHQUFHO0lBQ2pCLE9BQU8sRUFBRSxDQUFDO0lBQ1YsU0FBUyxFQUFFLDBEQUEwRDtDQUN0RSxDQUFDO0FBQ0YsTUFBTSxjQUFjLEdBQUc7SUFDckIsT0FBTyxFQUFFLENBQUM7SUFDVixTQUFTLEVBQUUsMERBQTBEO0lBQ3JFLGVBQWUsRUFBRSxtQkFBbUI7Q0FDckMsQ0FBQztBQXlDRixNQUFNLE9BQU8sMkJB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QUEwQjtzQkFBM0QsV0FBVzt1QkFBQyxlQUFlO2dCQUt4Qix1QkFBdUI7c0JBRDFCLFdBQVc7dUJBQUMsNEJBQTRCO2dCQU1yQyxvQkFBb0I7c0JBRHZCLFdBQVc7dUJBQUMsU0FBUztnQkFNbEIsc0JBQXNCO3NCQUR6QixXQUFXO3VCQUFDLFdBQVc7Z0JBTXBCLGdDQUFnQztzQkFEbkMsV0FBVzt1QkFBQyxzQkFBc0I7Z0JBTS9CLGlDQUFpQztzQkFEcEMsV0FBVzt1QkFBQyx1QkFBdUI7Z0JBTWhDLDJCQUEyQjtzQkFEOUIsV0FBVzt1QkFBQyxhQUFhO2dCQU1uQixnQkFBZ0I7c0JBRHRCLFlBQVk7dUJBQUMsbUJBQW1CLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBT3RDLGVBQWU7c0JBRHJCLFlBQVk7dUJBQUMsa0JBQWtCLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBWTVDLFlBQVk7c0JBRFgsU0FBUzt1QkFBQyxlQUFlLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgQ29tcG9uZW50UmVmLFxuICBFbGVtZW50UmVmLFxuICBFbWJlZGRlZFZpZXdSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdEJpbmRpbmcsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5qZWN0LFxuICBPcHRpb25hbCxcbiAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgYW5pbWF0ZSxcbiAgYW5pbWF0ZUNoaWxkLFxuICBBbmltYXRpb25FdmVudCxcbiAga2V5ZnJhbWVzLFxuICBzdHlsZSxcbiAgdHJhbnNpdGlvbixcbiAgdHJpZ2dlclxufSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEZvY3VzVHJhcCwgRm9jdXNUcmFwRmFjdG9yeSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7XG4gIEJhc2VQb3J0YWxPdXRsZXQsXG4gIENka1BvcnRhbE91dGxldCxcbiAgQ29tcG9uZW50UG9ydGFsLFxuICBUZW1wbGF0ZVBvcnRhbFxufSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7IE93bERpYWxvZ0NvbmZpZyB9IGZyb20gJy4vZGlhbG9nLWNvbmZpZy5jbGFzcyc7XG5cbmNvbnN0IHpvb21GYWRlSW4gPSB7XG4gIG9wYWNpdHk6IDAsXG4gIHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVgoe3sgeCB9fSkgdHJhbnNsYXRlWSh7eyB5IH19KSBzY2FsZSh7e3NjYWxlfX0pJ1xufTtcbmNvbnN0IHpvb21GYWRlSW5Gcm9tID0ge1xuICBvcGFjaXR5OiAwLFxuICB0cmFuc2Zvcm06ICd0cmFuc2xhdGVYKHt7IHggfX0pIHRyYW5zbGF0ZVkoe3sgeSB9fSkgc2NhbGUoe3tzY2FsZX19KScsXG4gIHRyYW5zZm9ybU9yaWdpbjogJ3t7IG94IH19IHt7IG95IH19J1xufTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnb2ZlLW93bC1kaWFsb2ctY29udGFpbmVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RpYWxvZy1jb250YWluZXIuY29tcG9uZW50Lmh0bWwnLFxuICBhbmltYXRpb25zOiBbXG4gICAgdHJpZ2dlcignc2xpZGVNb2RhbCcsIFtcbiAgICAgIHRyYW5zaXRpb24oXG4gICAgICAgICd2b2lkID0+IGVudGVyJyxcbiAgICAgICAgW1xuICAgICAgICAgIHN0eWxlKHpvb21GYWRlSW5Gcm9tKSxcbiAgICAgICAgICBhbmltYXRlKCczMDBtcyBjdWJpYy1iZXppZXIoMC4zNSwgMCwgMC4yNSwgMSknLCBzdHlsZSgnKicpKSxcbiAgICAgICAgICBhbmltYXRlKFxuICAgICAgICAgICAgJzE1MG1zJyxcbiAgICAgICAgICAgIGtleWZyYW1lcyhbXG4gICAgICAgICAgICAgIHN0eWxlKHsgdHJhbnNmb3JtOiAnc2NhbGUoMSknLCBvZmZzZXQ6IDAgfSksXG4gICAgICAgICAgICAgIHN0eWxlKHsgdHJhbnNmb3JtOiAnc2NhbGUoMS4wNSknLCBvZmZzZXQ6IDAuMyB9KSxcbiAgICAgICAgICAgICAgc3R5bGUoeyB0cmFuc2Zvcm06ICdzY2FsZSguOTUpJywgb2Zmc2V0OiAwLjggfSksXG4gICAgICAgICAgICAgIHN0eWxlKHsgdHJhbnNmb3JtOiAnc2NhbGUoMSknLCBvZmZzZXQ6IDEuMCB9KVxuICAgICAgICAgICAgXSlcbiAgICAgICAgICApLFxuICAgICAgICAgIGFuaW1hdGVDaGlsZCgpXG4gICAgICAgIF0sXG4gICAgICAgIHtcbiAgICAgICAgICBwYXJhbXM6IHtcbiAgICAgICAgICAgIHg6ICcwcHgnLFxuICAgICAgICAgICAgeTogJzBweCcsXG4gICAgICAgICAgICBveDogJzUwJScsXG4gICAgICAgICAgICBveTogJzUwJScsXG4gICAgICAgICAgICBzY2FsZTogMVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgKSxcbiAgICAgIHRyYW5zaXRpb24oXG4gICAgICAgICdlbnRlciA9PiBleGl0JyxcbiAgICAgICAgW2FuaW1hdGVDaGlsZCgpLCBhbmltYXRlKDIwMCwgc3R5bGUoem9vbUZhZGVJbikpXSxcbiAgICAgICAgeyBwYXJhbXM6IHsgeDogJzBweCcsIHk6ICcwcHgnLCBveDogJzUwJScsIG95OiAnNTAlJyB9IH1cbiAgICAgIClcbiAgICBdKVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIE93bERpYWxvZ0NvbnRhaW5lckNvbXBvbmVudCBleHRlbmRzIEJhc2VQb3J0YWxPdXRsZXQge1xuICBASG9zdEJpbmRpbmcoJ2F0dHIudGFiaW5kZXgnKSBnZXQgb3dsRGlhbG9nQ29udGFpbmVyVGFiSW5kZXgoKSB7XG4gICAgcmV0dXJuIC0xO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5vd2wtZGlhbG9nLWNvbnRhaW5lcicpXG4gIGdldCBvd2xEaWFsb2dDb250YWluZXJDbGFzcygpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnYXR0ci5pZCcpXG4gIGdldCBvd2xEaWFsb2dDb250YWluZXJJZCgpIHtcbiAgICByZXR1cm4gdGhpcy5fY29uZmlnLmlkO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdhdHRyLnJvbGUnKVxuICBnZXQgb3dsRGlhbG9nQ29udGFpbmVyUm9sZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fY29uZmlnLnJvbGUgfHwgbnVsbDtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLWxhYmVsbGVkYnknKVxuICBnZXQgb3dsRGlhbG9nQ29udGFpbmVyQXJpYUxhYmVsbGVkYnkoKSB7XG4gICAgcmV0dXJuIHRoaXMuYXJpYUxhYmVsbGVkQnk7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1kZXNjcmliZWRieScpXG4gIGdldCBvd2xEaWFsb2dDb250YWluZXJBcmlhRGVzY3JpYmVkYnkoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbmZpZy5hcmlhRGVzY3JpYmVkQnkgfHwgbnVsbDtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnQHNsaWRlTW9kYWwnKVxuICBnZXQgb3dsRGlhbG9nQ29udGFpbmVyQW5pbWF0aW9uKCkge1xuICAgIHJldHVybiB7IHZhbHVlOiB0aGlzLnN0YXRlLCBwYXJhbXM6IHRoaXMucGFyYW1zIH07XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdAc2xpZGVNb2RhbC5zdGFydCcsIFsnJGV2ZW50J10pXG4gIHB1YmxpYyBvbkFuaW1hdGlvblN0YXJ0KGV2ZW50OiBBbmltYXRpb25FdmVudCk6IHZvaWQge1xuICAgIHRoaXMuaXNBbmltYXRpbmcgPSB0cnVlO1xuICAgIHRoaXMuYW5pbWF0aW9uU3RhdGVDaGFuZ2VkLmVtaXQoZXZlbnQpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignQHNsaWRlTW9kYWwuZG9uZScsIFsnJGV2ZW50J10pXG4gIHB1YmxpYyBvbkFuaW1hdGlvbkRvbmUoZXZlbnQ6IEFuaW1hdGlvbkV2ZW50KTogdm9pZCB7XG4gICAgaWYgKGV2ZW50LnRvU3RhdGUgPT09ICdlbnRlcicpIHtcbiAgICAgIHRoaXMudHJhcEZvY3VzKCk7XG4gICAgfSBlbHNlIGlmIChldmVudC50b1N0YXRlID09PSAnZXhpdCcpIHtcbiAgICAgIHRoaXMucmVzdG9yZUZvY3VzKCk7XG4gICAgfVxuXG4gICAgdGhpcy5hbmltYXRpb25TdGF0ZUNoYW5nZWQuZW1pdChldmVudCk7XG4gICAgdGhpcy5pc0FuaW1hdGluZyA9IGZhbHNlO1xuICB9XG4gIEBWaWV3Q2hpbGQoQ2RrUG9ydGFsT3V0bGV0LCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBwb3J0YWxPdXRsZXQ6IENka1BvcnRhbE91dGxldDtcblxuICAvKiogVGhlIGNsYXNzIHRoYXQgdHJhcHMgYW5kIG1hbmFnZXMgZm9jdXMgd2l0aGluIHRoZSBkaWFsb2cuICovXG4gIHByaXZhdGUgZm9jdXNUcmFwOiBGb2N1c1RyYXA7XG5cbiAgLyoqIElEIG9mIHRoZSBlbGVtZW50IHRoYXQgc2hvdWxkIGJlIGNvbnNpZGVyZWQgYXMgdGhlIGRpYWxvZydzIGxhYmVsLiAqL1xuICBwdWJsaWMgYXJpYUxhYmVsbGVkQnk6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gIC8qKiBFbWl0cyB3aGVuIGFuIGFuaW1hdGlvbiBzdGF0ZSBjaGFuZ2VzLiAqL1xuICBwdWJsaWMgYW5pbWF0aW9uU3RhdGVDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxBbmltYXRpb25FdmVudD4oKTtcblxuICBwdWJsaWMgaXNBbmltYXRpbmcgPSBmYWxzZTtcblxuICBwcml2YXRlIF9jb25maWc6IE93bERpYWxvZ0NvbmZpZztcbiAgZ2V0IGNvbmZpZygpOiBPd2xEaWFsb2dDb25maWcge1xuICAgIHJldHVybiB0aGlzLl9jb25maWc7XG4gIH1cblxuICBwcml2YXRlIHN0YXRlOiAndm9pZCcgfCAnZW50ZXInIHwgJ2V4aXQnID0gJ2VudGVyJztcblxuICAvLyBmb3IgYW5pbWF0aW9uIHB1cnBvc2VcbiAgcHJpdmF0ZSBwYXJhbXM6IGFueSA9IHtcbiAgICB4OiAnMHB4JyxcbiAgICB5OiAnMHB4JyxcbiAgICBveDogJzUwJScsXG4gICAgb3k6ICc1MCUnLFxuICAgIHNjYWxlOiAwXG4gIH07XG5cbiAgLy8gQSB2YXJpYWJsZSB0byBob2xkIHRoZSBmb2N1c2VkIGVsZW1lbnQgYmVmb3JlIHRoZSBkaWFsb2cgd2FzIG9wZW4uXG4gIC8vIFRoaXMgd291bGQgaGVscCB1cyB0byByZWZvY3VzIGJhY2sgdG8gZWxlbWVudCB3aGVuIHRoZSBkaWFsb2cgd2FzIGNsb3NlZC5cbiAgcHJpdmF0ZSBlbGVtZW50Rm9jdXNlZEJlZm9yZURpYWxvZ1dhc09wZW5lZDogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSBmb2N1c1RyYXBGYWN0b3J5OiBGb2N1c1RyYXBGYWN0b3J5LFxuICAgIEBPcHRpb25hbCgpXG4gICAgQEluamVjdChET0NVTUVOVClcbiAgICBwcml2YXRlIGRvY3VtZW50OiBhbnlcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBdHRhY2ggYSBDb21wb25lbnRQb3J0YWwgYXMgY29udGVudCB0byB0aGlzIGRpYWxvZyBjb250YWluZXIuXG4gICAqL1xuICBwdWJsaWMgYXR0YWNoQ29tcG9uZW50UG9ydGFsPFQ+KHBvcnRhbDogQ29tcG9uZW50UG9ydGFsPFQ+KTogQ29tcG9uZW50UmVmPFQ+IHtcbiAgICBpZiAodGhpcy5wb3J0YWxPdXRsZXQuaGFzQXR0YWNoZWQoKSkge1xuICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICdBdHRlbXB0aW5nIHRvIGF0dGFjaCBkaWFsb2cgY29udGVudCBhZnRlciBjb250ZW50IGlzIGFscmVhZHkgYXR0YWNoZWQnXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMuc2F2ZVByZXZpb3VzbHlGb2N1c2VkRWxlbWVudCgpO1xuICAgIHJldHVybiB0aGlzLnBvcnRhbE91dGxldC5hdHRhY2hDb21wb25lbnRQb3J0YWwocG9ydGFsKTtcbiAgfVxuXG4gIHB1YmxpYyBhdHRhY2hUZW1wbGF0ZVBvcnRhbDxDPihcbiAgICBwb3J0YWw6IFRlbXBsYXRlUG9ydGFsPEM+XG4gICk6IEVtYmVkZGVkVmlld1JlZjxDPiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNZXRob2Qgbm90IGltcGxlbWVudGVkLicpO1xuICB9XG5cbiAgcHVibGljIHNldENvbmZpZyhjb25maWc6IE93bERpYWxvZ0NvbmZpZyk6IHZvaWQge1xuICAgIHRoaXMuX2NvbmZpZyA9IGNvbmZpZztcblxuICAgIGlmIChjb25maWcuZXZlbnQpIHtcbiAgICAgIHRoaXMuY2FsY3VsYXRlWm9vbU9yaWdpbihldmVudCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHN0YXJ0RXhpdEFuaW1hdGlvbigpIHtcbiAgICB0aGlzLnN0YXRlID0gJ2V4aXQnO1xuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICAvKipcbiAgICogQ2FsY3VsYXRlIG9yaWdpbiB1c2VkIGluIHRoZSBgem9vbUZhZGVJbkZyb20oKWBcbiAgICogZm9yIGFuaW1hdGlvbiBwdXJwb3NlXG4gICAqL1xuICBwcml2YXRlIGNhbGN1bGF0ZVpvb21PcmlnaW4oZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIGlmICghZXZlbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBjbGllbnRYID0gZXZlbnQuY2xpZW50WDtcbiAgICBjb25zdCBjbGllbnRZID0gZXZlbnQuY2xpZW50WTtcblxuICAgIGNvbnN0IHdoID0gd2luZG93LmlubmVyV2lkdGggLyAyO1xuICAgIGNvbnN0IGhoID0gd2luZG93LmlubmVySGVpZ2h0IC8gMjtcbiAgICBjb25zdCB4ID0gY2xpZW50WCAtIHdoO1xuICAgIGNvbnN0IHkgPSBjbGllbnRZIC0gaGg7XG4gICAgY29uc3Qgb3ggPSBjbGllbnRYIC8gd2luZG93LmlubmVyV2lkdGg7XG4gICAgY29uc3Qgb3kgPSBjbGllbnRZIC8gd2luZG93LmlubmVySGVpZ2h0O1xuXG4gICAgdGhpcy5wYXJhbXMueCA9IGAke3h9cHhgO1xuICAgIHRoaXMucGFyYW1zLnkgPSBgJHt5fXB4YDtcbiAgICB0aGlzLnBhcmFtcy5veCA9IGAke294ICogMTAwfSVgO1xuICAgIHRoaXMucGFyYW1zLm95ID0gYCR7b3kgKiAxMDB9JWA7XG4gICAgdGhpcy5wYXJhbXMuc2NhbGUgPSAwO1xuXG4gICAgcmV0dXJuO1xuICB9XG5cbiAgLyoqXG4gICAqIFNhdmUgdGhlIGZvY3VzZWQgZWxlbWVudCBiZWZvcmUgZGlhbG9nIHdhcyBvcGVuXG4gICAqL1xuICBwcml2YXRlIHNhdmVQcmV2aW91c2x5Rm9jdXNlZEVsZW1lbnQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZG9jdW1lbnQpIHtcbiAgICAgIHRoaXMuZWxlbWVudEZvY3VzZWRCZWZvcmVEaWFsb2dXYXNPcGVuZWQgPSB0aGlzLmRvY3VtZW50XG4gICAgICAgIC5hY3RpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuXG4gICAgICBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpID0+IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmZvY3VzKCkpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdHJhcEZvY3VzKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5mb2N1c1RyYXApIHtcbiAgICAgIHRoaXMuZm9jdXNUcmFwID0gdGhpcy5mb2N1c1RyYXBGYWN0b3J5LmNyZWF0ZShcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnRcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX2NvbmZpZy5hdXRvRm9jdXMpIHtcbiAgICAgIHRoaXMuZm9jdXNUcmFwLmZvY3VzSW5pdGlhbEVsZW1lbnRXaGVuUmVhZHkoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHJlc3RvcmVGb2N1cygpOiB2b2lkIHtcbiAgICBjb25zdCB0b0ZvY3VzID0gdGhpcy5lbGVtZW50Rm9jdXNlZEJlZm9yZURpYWxvZ1dhc09wZW5lZDtcblxuICAgIC8vIFdlIG5lZWQgdGhlIGV4dHJhIGNoZWNrLCBiZWNhdXNlIElFIGNhbiBzZXQgdGhlIGBhY3RpdmVFbGVtZW50YCB0byBudWxsIGluIHNvbWUgY2FzZXMuXG4gICAgaWYgKHRvRm9jdXMgJiYgdHlwZW9mIHRvRm9jdXMuZm9jdXMgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHRvRm9jdXMuZm9jdXMoKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5mb2N1c1RyYXApIHtcbiAgICAgIHRoaXMuZm9jdXNUcmFwLmRlc3Ryb3koKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxuZy10ZW1wbGF0ZSBjZGtQb3J0YWxPdXRsZXQ+PC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -10,11 +10,11 @@ import { OWL_DIALOG_SCROLL_STRATEGY_PROVIDER, OwlDialogService } from './dialog.
10
10
  import { OwlDialogContainerComponent } from './dialog-container.component';
11
11
  import * as i0 from "@angular/core";
12
12
  export class OwlDialogModule {
13
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: OwlDialogModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
14
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: OwlDialogModule, declarations: [OwlDialogContainerComponent], imports: [CommonModule, A11yModule, OverlayModule, PortalModule] }); }
15
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: OwlDialogModule, providers: [OWL_DIALOG_SCROLL_STRATEGY_PROVIDER, OwlDialogService], imports: [CommonModule, A11yModule, OverlayModule, PortalModule] }); }
13
16
  }
14
- OwlDialogModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OwlDialogModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
15
- OwlDialogModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: OwlDialogModule, declarations: [OwlDialogContainerComponent], imports: [CommonModule, A11yModule, OverlayModule, PortalModule] });
16
- OwlDialogModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OwlDialogModule, providers: [OWL_DIALOG_SCROLL_STRATEGY_PROVIDER, OwlDialogService], imports: [CommonModule, A11yModule, OverlayModule, PortalModule] });
17
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OwlDialogModule, decorators: [{
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: OwlDialogModule, decorators: [{
18
18
  type: NgModule,
19
19
  args: [{
20
20
  imports: [CommonModule, A11yModule, OverlayModule, PortalModule],
@@ -23,4 +23,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
23
23
  providers: [OWL_DIALOG_SCROLL_STRATEGY_PROVIDER, OwlDialogService]
24
24
  }]
25
25
  }] });
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1mb3JtZW50cnkvc3JjL2NvbXBvbmVudHMvbmd4LXBpY2stZGF0ZXRpbWUvbGliL2RpYWxvZy9kaWFsb2cubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbkQsT0FBTyxFQUNMLG1DQUFtQyxFQUNuQyxnQkFBZ0IsRUFDakIsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7QUFRM0UsTUFBTSxPQUFPLGVBQWU7OzZHQUFmLGVBQWU7OEdBQWYsZUFBZSxpQkFIWCwyQkFBMkIsYUFGaEMsWUFBWSxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsWUFBWTs4R0FLcEQsZUFBZSxhQUZmLENBQUMsbUNBQW1DLEVBQUUsZ0JBQWdCLENBQUMsWUFIeEQsWUFBWSxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsWUFBWTs0RkFLcEQsZUFBZTtrQkFOM0IsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxZQUFZLENBQUM7b0JBQ2hFLE9BQU8sRUFBRSxFQUFFO29CQUNYLFlBQVksRUFBRSxDQUFDLDJCQUEyQixDQUFDO29CQUMzQyxTQUFTLEVBQUUsQ0FBQyxtQ0FBbUMsRUFBRSxnQkFBZ0IsQ0FBQztpQkFDbkUiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIGRpYWxvZy5tb2R1bGVcbiAqL1xuXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEExMXlNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQgeyBPdmVybGF5TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgUG9ydGFsTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQge1xuICBPV0xfRElBTE9HX1NDUk9MTF9TVFJBVEVHWV9QUk9WSURFUixcbiAgT3dsRGlhbG9nU2VydmljZVxufSBmcm9tICcuL2RpYWxvZy5zZXJ2aWNlJztcbmltcG9ydCB7IE93bERpYWxvZ0NvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4vZGlhbG9nLWNvbnRhaW5lci5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBBMTF5TW9kdWxlLCBPdmVybGF5TW9kdWxlLCBQb3J0YWxNb2R1bGVdLFxuICBleHBvcnRzOiBbXSxcbiAgZGVjbGFyYXRpb25zOiBbT3dsRGlhbG9nQ29udGFpbmVyQ29tcG9uZW50XSxcbiAgcHJvdmlkZXJzOiBbT1dMX0RJQUxPR19TQ1JPTExfU1RSQVRFR1lfUFJPVklERVIsIE93bERpYWxvZ1NlcnZpY2VdXG59KVxuZXhwb3J0IGNsYXNzIE93bERpYWxvZ01vZHVsZSB7fVxuIl19
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1mb3JtZW50cnkvc3JjL2NvbXBvbmVudHMvbmd4LXBpY2stZGF0ZXRpbWUvbGliL2RpYWxvZy9kaWFsb2cubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbkQsT0FBTyxFQUNMLG1DQUFtQyxFQUNuQyxnQkFBZ0IsRUFDakIsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7QUFRM0UsTUFBTSxPQUFPLGVBQWU7K0dBQWYsZUFBZTtnSEFBZixlQUFlLGlCQUhYLDJCQUEyQixhQUZoQyxZQUFZLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxZQUFZO2dIQUtwRCxlQUFlLGFBRmYsQ0FBQyxtQ0FBbUMsRUFBRSxnQkFBZ0IsQ0FBQyxZQUh4RCxZQUFZLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxZQUFZOzs0RkFLcEQsZUFBZTtrQkFOM0IsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxZQUFZLENBQUM7b0JBQ2hFLE9BQU8sRUFBRSxFQUFFO29CQUNYLFlBQVksRUFBRSxDQUFDLDJCQUEyQixDQUFDO29CQUMzQyxTQUFTLEVBQUUsQ0FBQyxtQ0FBbUMsRUFBRSxnQkFBZ0IsQ0FBQztpQkFDbkUiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIGRpYWxvZy5tb2R1bGVcbiAqL1xuXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEExMXlNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQgeyBPdmVybGF5TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgUG9ydGFsTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQge1xuICBPV0xfRElBTE9HX1NDUk9MTF9TVFJBVEVHWV9QUk9WSURFUixcbiAgT3dsRGlhbG9nU2VydmljZVxufSBmcm9tICcuL2RpYWxvZy5zZXJ2aWNlJztcbmltcG9ydCB7IE93bERpYWxvZ0NvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4vZGlhbG9nLWNvbnRhaW5lci5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBBMTF5TW9kdWxlLCBPdmVybGF5TW9kdWxlLCBQb3J0YWxNb2R1bGVdLFxuICBleHBvcnRzOiBbXSxcbiAgZGVjbGFyYXRpb25zOiBbT3dsRGlhbG9nQ29udGFpbmVyQ29tcG9uZW50XSxcbiAgcHJvdmlkZXJzOiBbT1dMX0RJQUxPR19TQ1JPTExfU1RSQVRFR1lfUFJPVklERVIsIE93bERpYWxvZ1NlcnZpY2VdXG59KVxuZXhwb3J0IGNsYXNzIE93bERpYWxvZ01vZHVsZSB7fVxuIl19
@@ -201,10 +201,10 @@ export class OwlDialogService {
201
201
  }
202
202
  }
203
203
  }
204
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: OwlDialogService, deps: [{ token: i1.Overlay }, { token: i0.Injector }, { token: i2.Location, optional: true }, { token: OWL_DIALOG_SCROLL_STRATEGY }, { token: OWL_DIALOG_DEFAULT_OPTIONS, optional: true }, { token: OwlDialogService, optional: true, skipSelf: true }, { token: i1.OverlayContainer }], target: i0.ɵɵFactoryTarget.Injectable }); }
205
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: OwlDialogService }); }
204
206
  }
205
- OwlDialogService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OwlDialogService, deps: [{ token: i1.Overlay }, { token: i0.Injector }, { token: i2.Location, optional: true }, { token: OWL_DIALOG_SCROLL_STRATEGY }, { token: OWL_DIALOG_DEFAULT_OPTIONS, optional: true }, { token: OwlDialogService, optional: true, skipSelf: true }, { token: i1.OverlayContainer }], target: i0.ɵɵFactoryTarget.Injectable });
206
- OwlDialogService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OwlDialogService });
207
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OwlDialogService, decorators: [{
207
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: OwlDialogService, decorators: [{
208
208
  type: Injectable
209
209
  }], ctorParameters: function () { return [{ type: i1.Overlay }, { type: i0.Injector }, { type: i2.Location, decorators: [{
210
210
  type: Optional
@@ -230,4 +230,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
230
230
  function applyConfigDefaults(config, defaultOptions) {
231
231
  return extendObject(new OwlDialogConfig(), config, defaultOptions);
232
232
  }
233
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtZm9ybWVudHJ5L3NyYy9jb21wb25lbnRzL25neC1waWNrLWRhdGV0aW1lL2xpYi9kaWFsb2cvZGlhbG9nLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxPQUFPLEVBRUwsTUFBTSxFQUNOLFVBQVUsRUFDVixjQUFjLEVBQ2QsUUFBUSxFQUNSLFFBQVEsRUFDUixRQUFRLEVBQ1IsV0FBVyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2xELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzNFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDeEMsT0FBTyxFQUFFLEtBQUssRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFDTCxPQUFPLEVBQ1AsYUFBYSxFQUNiLGdCQUFnQixFQUdqQixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFDTCxlQUFlLEVBRWYsY0FBYyxFQUNmLE1BQU0scUJBQXFCLENBQUM7Ozs7O0FBRTdCLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxJQUFJLGNBQWMsQ0FBTSxlQUFlLENBQUMsQ0FBQztBQUV4RTs7S0FFSztBQUNMLE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHLElBQUksY0FBYyxDQUUxRCw0QkFBNEIsQ0FBQyxDQUFDO0FBRWhDLE1BQU0sVUFBVSwyQ0FB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b3J0IHtcbiAgQ29tcG9uZW50UmVmLFxuICBJbmplY3QsXG4gIEluamVjdGFibGUsXG4gIEluamVjdGlvblRva2VuLFxuICBJbmplY3RvcixcbiAgT3B0aW9uYWwsXG4gIFNraXBTZWxmLFxuICBUZW1wbGF0ZVJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IExvY2F0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE93bERpYWxvZ0NvbmZpZyB9IGZyb20gJy4vZGlhbG9nLWNvbmZpZy5jbGFzcyc7XG5pbXBvcnQgeyBPd2xEaWFsb2dSZWYgfSBmcm9tICcuL2RpYWxvZy1yZWYuY2xhc3MnO1xuaW1wb3J0IHsgT3dsRGlhbG9nQ29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi9kaWFsb2ctY29udGFpbmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBleHRlbmRPYmplY3QgfSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQgeyBkZWZlciwgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgc3RhcnRXaXRoIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtcbiAgT3ZlcmxheSxcbiAgT3ZlcmxheUNvbmZpZyxcbiAgT3ZlcmxheUNvbnRhaW5lcixcbiAgT3ZlcmxheVJlZixcbiAgU2Nyb2xsU3RyYXRlZ3lcbn0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50UG9ydGFsLFxuICBDb21wb25lbnRUeXBlLFxuICBQb3J0YWxJbmplY3RvclxufSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcblxuZXhwb3J0IGNvbnN0IE9XTF9ESUFMT0dfREFUQSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxhbnk+KCdPd2xEaWFsb2dEYXRhJyk7XG5cbi8qKlxuICogSW5qZWN0aW9uIHRva2VuIHRoYXQgZGV0ZXJtaW5lcyB0aGUgc2Nyb2xsIGhhbmRsaW5nIHdoaWxlIHRoZSBkaWFsb2cgaXMgb3Blbi5cbiAqICovXG5leHBvcnQgY29uc3QgT1dMX0RJQUxPR19TQ1JPTExfU1RSQVRFR1kgPSBuZXcgSW5qZWN0aW9uVG9rZW48XG4gICgpID0+IFNjcm9sbFN0cmF0ZWd5XG4+KCdvd2wtZGlhbG9nLXNjcm9sbC1zdHJhdGVneScpO1xuXG5leHBvcnQgZnVuY3Rpb24gT1dMX0RJQUxPR19TQ1JPTExfU1RSQVRFR1lfUFJPVklERVJfRkFDVE9SWShcbiAgb3ZlcmxheTogT3ZlcmxheVxuKTogKCkgPT4gU2Nyb2xsU3RyYXRlZ3kge1xuICBjb25zdCBmbiA9ICgpID0+IG92ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5ibG9jaygpO1xuICByZXR1cm4gZm47XG59XG5cbi8qKiBAZG9jcy1wcml2YXRlICovXG5leHBvcnQgY29uc3QgT1dMX0RJQUxPR19TQ1JPTExfU1RSQVRFR1lfUFJPVklERVIgPSB7XG4gIHByb3ZpZGU6IE9XTF9ESUFMT0dfU0NST0xMX1NUUkFURUdZLFxuICBkZXBzOiBbT3ZlcmxheV0sXG4gIHVzZUZhY3Rvcnk6IE9XTF9ESUFMT0dfU0NST0xMX1NUUkFURUdZX1BST1ZJREVSX0ZBQ1RPUllcbn07XG5cbi8qKiBJXG4gKiBuamVjdGlvbiB0b2tlbiB0aGF0IGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgZGVmYXVsdCBkaWFsb2cgb3B0aW9ucy5cbiAqICovXG5leHBvcnQgY29uc3QgT1dMX0RJQUxPR19ERUZBVUxUX09QVElPTlMgPSBuZXcgSW5qZWN0aW9uVG9rZW48T3dsRGlhbG9nQ29uZmlnPihcbiAgJ293bC1kaWFsb2ctZGVmYXVsdC1vcHRpb25zJ1xuKTtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE93bERpYWxvZ1NlcnZpY2Uge1xuICBwcml2YXRlIGFyaWFIaWRkZW5FbGVtZW50cyA9IG5ldyBNYXA8RWxlbWVudCwgc3RyaW5nIHwgbnVsbD4oKTtcblxuICBwcml2YXRlIF9vcGVuRGlhbG9nc0F0VGhpc0xldmVsOiBPd2xEaWFsb2dSZWY8YW55PltdID0gW107XG4gIHByaXZhdGUgX2FmdGVyT3BlbkF0VGhpc0xldmVsID0gbmV3IFN1YmplY3Q8T3dsRGlhbG9nUmVmPGFueT4+KCk7XG4gIHByaXZhdGUgX2FmdGVyQWxsQ2xvc2VkQXRUaGlzTGV2ZWwgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIC8qKiBLZWVwcyB0cmFjayBvZiB0aGUgY3VycmVudGx5LW9wZW4gZGlhbG9ncy4gKi9cbiAgZ2V0IG9wZW5EaWFsb2dzKCk6IE93bERpYWxvZ1JlZjxhbnk+W10ge1xuICAgIHJldHVybiB0aGlzLnBhcmVudERpYWxvZ1xuICAgICAgPyB0aGlzLnBhcmVudERpYWxvZy5vcGVuRGlhbG9nc1xuICAgICAgOiB0aGlzLl9vcGVuRGlhbG9nc0F0VGhpc0xldmVsO1xuICB9XG5cbiAgLyoqIFN0cmVhbSB0aGF0IGVtaXRzIHdoZW4gYSBkaWFsb2cgaGFzIGJlZW4gb3BlbmVkLiAqL1xuICBnZXQgYWZ0ZXJPcGVuKCk6IFN1YmplY3Q8T3dsRGlhbG9nUmVmPGFueT4+IHtcbiAgICByZXR1cm4gdGhpcy5wYXJlbnREaWFsb2dcbiAgICAgID8gdGhpcy5wYXJlbnREaWFsb2cuYWZ0ZXJPcGVuXG4gICAgICA6IHRoaXMuX2FmdGVyT3BlbkF0VGhpc0xldmVsO1xuICB9XG5cbiAgZ2V0IF9hZnRlckFsbENsb3NlZCgpOiBhbnkge1xuICAgIGNvbnN0IHBhcmVudCA9IHRoaXMucGFyZW50RGlhbG9nO1xuICAgIHJldHVybiBwYXJlbnQgPyBwYXJlbnQuX2FmdGVyQWxsQ2xvc2VkIDogdGhpcy5fYWZ0ZXJBbGxDbG9zZWRBdFRoaXNMZXZlbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdHJlYW0gdGhhdCBlbWl0cyB3aGVuIGFsbCBvcGVuIGRpYWxvZyBoYXZlIGZpbmlzaGVkIGNsb3NpbmcuXG4gICAqIFdpbGwgZW1pdCBvbiBzdWJzY3JpYmUgaWYgdGhlcmUgYXJlIG5vIG9wZW4gZGlhbG9ncyB0byBiZWdpbiB3aXRoLlxuICAgKi9cblxuICBhZnRlckFsbENsb3NlZDogT2JzZXJ2YWJsZTx7fT4gPSBkZWZlcigoKSA9PlxuICAgIHRoaXMuX29wZW5EaWFsb2dzQXRUaGlzTGV2ZWwubGVuZ3RoXG4gICAgICA/IHRoaXMuX2FmdGVyQWxsQ2xvc2VkXG4gICAgICA6IHRoaXMuX2FmdGVyQWxsQ2xvc2VkLnBpcGUoc3RhcnRXaXRoKHVuZGVmaW5lZCkpXG4gICk7XG5cbiAgcHJpdmF0ZSBzY3JvbGxTdHJhdGVneTogKCkgPT4gU2Nyb2xsU3RyYXRlZ3k7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBvdmVybGF5OiBPdmVybGF5LFxuICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgbG9jYXRpb246IExvY2F0aW9uLFxuICAgIEBJbmplY3QoT1dMX0RJQUxPR19TQ1JPTExfU1RSQVRFR1kpIHNjcm9sbFN0cmF0ZWd5OiBhbnksXG4gICAgQE9wdGlvbmFsKClcbiAgICBASW5qZWN0KE9XTF9ESUFMT0dfREVGQVVMVF9PUFRJT05TKVxuICAgIHByaXZhdGUgZGVmYXVsdE9wdGlvbnM6IE93bERpYWxvZ0NvbmZpZyxcbiAgICBAT3B0aW9uYWwoKVxuICAgIEBTa2lwU2VsZigpXG4gICAgcHJpdmF0ZSBwYXJlbnREaWFsb2c6IE93bERpYWxvZ1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBvdmVybGF5Q29udGFpbmVyOiBPdmVybGF5Q29udGFpbmVyXG4gICkge1xuICAgIHRoaXMuc2Nyb2xsU3RyYXRlZ3kgPSBzY3JvbGxTdHJhdGVneTtcbiAgICBpZiAoIXBhcmVudERpYWxvZyAmJiBsb2NhdGlvbikge1xuICAgICAgbG9jYXRpb24uc3Vic2NyaWJlKCgpID0+IHRoaXMuY2xvc2VBbGwoKSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9wZW48VD4oXG4gICAgY29tcG9uZW50T3JUZW1wbGF0ZVJlZjogQ29tcG9uZW50VHlwZTxUPiB8IFRlbXBsYXRlUmVmPFQ+LFxuICAgIGNvbmZpZz86IE93bERpYWxvZ0NvbmZpZ1xuICApOiBPd2xEaWFsb2dSZWY8YW55PiB7XG4gICAgY29uZmlnID0gYXBwbHlDb25maWdEZWZhdWx0cyhjb25maWcsIHRoaXMuZGVmYXVsdE9wdGlvbnMpO1xuXG4gICAgaWYgKGNvbmZpZy5pZCAmJiB0aGlzLmdldERpYWxvZ0J5SWQoY29uZmlnLmlkKSkge1xuICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgIGBEaWFsb2cgd2l0aCBpZCBcIiR7Y29uZmlnLmlkfVwiIGV4aXN0cyBhbHJlYWR5LiBUaGUgZGlhbG9nIGlkIG11c3QgYmUgdW5pcXVlLmBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3Qgb3ZlcmxheVJlZiA9IHRoaXMuY3JlYXRlT3ZlcmxheShjb25maWcpO1xuICAgIGNvbnN0IGRpYWxvZ0NvbnRhaW5lciA9IHRoaXMuYXR0YWNoRGlhbG9nQ29udGFpbmVyKG92ZXJsYXlSZWYsIGNvbmZpZyk7XG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5hdHRhY2hEaWFsb2dDb250ZW50PFQ+KFxuICAgICAgY29tcG9uZW50T3JUZW1wbGF0ZVJlZixcbiAgICAgIGRpYWxvZ0NvbnRhaW5lcixcbiAgICAgIG92ZXJsYXlSZWYsXG4gICAgICBjb25maWdcbiAgICApO1xuXG4gICAgaWYgKCF0aGlzLm9wZW5EaWFsb2dzLmxlbmd0aCkge1xuICAgICAgdGhpcy5oaWRlTm9uRGlhbG9nQ29udGVudEZyb21Bc3Npc3RpdmVUZWNobm9sb2d5KCk7XG4gICAgfVxuXG4gICAgdGhpcy5vcGVuRGlhbG9ncy5wdXNoKGRpYWxvZ1JlZik7XG4gICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKCgpID0+IHRoaXMucmVtb3ZlT3BlbkRpYWxvZyhkaWFsb2dSZWYpKTtcbiAgICB0aGlzLmFmdGVyT3Blbi5uZXh0KGRpYWxvZ1JlZik7XG4gICAgcmV0dXJuIGRpYWxvZ1JlZjtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbG9zZXMgYWxsIG9mIHRoZSBjdXJyZW50bHktb3BlbiBkaWFsb2dzLlxuICAgKi9cbiAgcHVibGljIGNsb3NlQWxsKCk6IHZvaWQge1xuICAgIGxldCBpID0gdGhpcy5vcGVuRGlhbG9ncy5sZW5ndGg7XG5cbiAgICB3aGlsZSAoaS0tKSB7XG4gICAgICB0aGlzLm9wZW5EaWFsb2dzW2ldLmNsb3NlKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEZpbmRzIGFuIG9wZW4gZGlhbG9nIGJ5IGl0cyBpZC5cbiAgICogQHBhcmFtIGlkIElEIHRvIHVzZSB3aGVuIGxvb2tpbmcgdXAgdGhlIGRpYWxvZy5cbiAgICovXG4gIHB1YmxpYyBnZXREaWFsb2dCeUlkKGlkOiBzdHJpbmcpOiBPd2xEaWFsb2dSZWY8YW55PiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMub3BlbkRpYWxvZ3MuZmluZCgoZGlhbG9nKSA9PiBkaWFsb2cuaWQgPT09IGlkKTtcbiAgfVxuXG4gIHByaXZhdGUgYXR0YWNoRGlhbG9nQ29udGVudDxUPihcbiAgICBjb21wb25lbnRPclRlbXBsYXRlUmVmOiBDb21wb25lbnRUeXBlPFQ+IHwgVGVtcGxhdGVSZWY8VD4sXG4gICAgZGlhbG9nQ29udGFpbmVyOiBPd2xEaWFsb2dDb250YWluZXJDb21wb25lbnQsXG4gICAgb3ZlcmxheVJlZjogT3ZlcmxheVJlZixcbiAgICBjb25maWc6IE93bERpYWxvZ0NvbmZpZ1xuICApIHtcbiAgICBjb25zdCBkaWFsb2dSZWYgPSBuZXcgT3dsRGlhbG9nUmVmPFQ+KFxuICAgICAgb3ZlcmxheVJlZixcbiAgICAgIGRpYWxvZ0NvbnRhaW5lcixcbiAgICAgIGNvbmZpZy5pZCxcbiAgICAgIHRoaXMubG9jYXRpb25cbiAgICApO1xuXG4gICAgaWYgKGNvbmZpZy5oYXNCYWNrZHJvcCkge1xuICAgICAgb3ZlcmxheVJlZi5iYWNrZHJvcENsaWNrKCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgaWYgKCFkaWFsb2dSZWYuZGlzYWJsZUNsb3NlKSB7XG4gICAgICAgICAgZGlhbG9nUmVmLmNsb3NlKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmIChjb21wb25lbnRPclRlbXBsYXRlUmVmIGluc3RhbmNlb2YgVGVtcGxhdGVSZWYpIHtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgaW5qZWN0b3IgPSB0aGlzLmNyZWF0ZUluamVjdG9yPFQ+KFxuICAgICAgICBjb25maWcsXG4gICAgICAgIGRpYWxvZ1JlZixcbiAgICAgICAgZGlhbG9nQ29udGFpbmVyXG4gICAgICApO1xuICAgICAgY29uc3QgY29udGVudFJlZiA9IGRpYWxvZ0NvbnRhaW5lci5hdHRhY2hDb21wb25lbnRQb3J0YWwoXG4gICAgICAgIG5ldyBDb21wb25lbnRQb3J0YWwoY29tcG9uZW50T3JUZW1wbGF0ZVJlZiwgdW5kZWZpbmVkLCBpbmplY3RvcilcbiAgICAgICk7XG4gICAgICBkaWFsb2dSZWYuY29tcG9uZW50SW5zdGFuY2UgPSBjb250ZW50UmVmLmluc3RhbmNlO1xuICAgIH1cblxuICAgIGRpYWxvZ1JlZlxuICAgICAgLnVwZGF0ZVNpemUoY29uZmlnLndpZHRoLCBjb25maWcuaGVpZ2h0KVxuICAgICAgLnVwZGF0ZVBvc2l0aW9uKGNvbmZpZy5wb3NpdGlvbik7XG5cbiAgICByZXR1cm4gZGlhbG9nUmVmO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVJbmplY3RvcjxUPihcbiAgICBjb25maWc6IE93bERpYWxvZ0NvbmZpZyxcbiAgICBkaWFsb2dSZWY6IE93bERpYWxvZ1JlZjxUPixcbiAgICBkaWFsb2dDb250YWluZXI6IE93bERpYWxvZ0NvbnRhaW5lckNvbXBvbmVudFxuICApIHtcbiAgICBjb25zdCB1c2VySW5qZWN0b3IgPVxuICAgICAgY29uZmlnICYmIGNvbmZpZy52aWV3Q29udGFpbmVyUmVmICYmIGNvbmZpZy52aWV3Q29udGFpbmVyUmVmLmluamVjdG9yO1xuICAgIGNvbnN0IGluamVjdGlvblRva2VucyA9IG5ldyBXZWFrTWFwKCk7XG5cbiAgICBpbmplY3Rpb25Ub2tlbnMuc2V0KE93bERpYWxvZ1JlZiwgZGlhbG9nUmVmKTtcbiAgICBpbmplY3Rpb25Ub2tlbnMuc2V0KE93bERpYWxvZ0NvbnRhaW5lckNvbXBvbmVudCwgZGlhbG9nQ29udGFpbmVyKTtcbiAgICBpbmplY3Rpb25Ub2tlbnMuc2V0KE9XTF9ESUFMT0dfREFUQSwgY29uZmlnLmRhdGEpO1xuXG4gICAgcmV0dXJuIG5ldyBQb3J0YWxJbmplY3Rvcih1c2VySW5qZWN0b3IgfHwgdGhpcy5pbmplY3RvciwgaW5qZWN0aW9uVG9rZW5zKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlT3ZlcmxheShjb25maWc6IE93bERpYWxvZ0NvbmZpZyk6IE92ZXJsYXlSZWYge1xuICAgIGNvbnN0IG92ZXJsYXlDb25maWcgPSB0aGlzLmdldE92ZXJsYXlDb25maWcoY29uZmlnKTtcbiAgICByZXR1cm4gdGhpcy5vdmVybGF5LmNyZWF0ZShvdmVybGF5Q29uZmlnKTtcbiAgfVxuXG4gIHByaXZhdGUgYXR0YWNoRGlhbG9nQ29udGFpbmVyKFxuICAgIG92ZXJsYXlSZWY6IE92ZXJsYXlSZWYsXG4gICAgY29uZmlnOiBPd2xEaWFsb2dDb25maWdcbiAgKTogT3dsRGlhbG9nQ29udGFpbmVyQ29tcG9uZW50IHtcbiAgICBjb25zdCBjb250YWluZXJQb3J0YWwgPSBuZXcgQ29tcG9uZW50UG9ydGFsKFxuICAgICAgT3dsRGlhbG9nQ29udGFpbmVyQ29tcG9uZW50LFxuICAgICAgY29uZmlnLnZpZXdDb250YWluZXJSZWZcbiAgICApO1xuICAgIGNvbnN0IGNvbnRhaW5lclJlZjogQ29tcG9uZW50UmVmPE93bERpYWxvZ0NvbnRhaW5lckNvbXBvbmVudD4gPSBvdmVybGF5UmVmLmF0dGFjaChcbiAgICAgIGNvbnRhaW5lclBvcnRhbFxuICAgICk7XG4gICAgY29udGFpbmVyUmVmLmluc3RhbmNlLnNldENvbmZpZyhjb25maWcpO1xuXG4gICAgcmV0dXJuIGNvbnRhaW5lclJlZi5pbnN0YW5jZTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0T3ZlcmxheUNvbmZpZyhkaWFsb2dDb25maWc6IE93bERpYWxvZ0NvbmZpZyk6IE92ZXJsYXlDb25maWcge1xuICAgIGNvbnN0IHN0YXRlID0gbmV3IE92ZXJsYXlDb25maWcoe1xuICAgICAgcG9zaXRpb25TdHJhdGVneTogdGhpcy5vdmVybGF5LnBvc2l0aW9uKCkuZ2xvYmFsKCksXG4gICAgICBzY3JvbGxTdHJhdGVneTogZGlhbG9nQ29uZmlnLnNjcm9sbFN0cmF0ZWd5IHx8IHRoaXMuc2Nyb2xsU3RyYXRlZ3koKSxcbiAgICAgIHBhbmVsQ2xhc3M6IGRpYWxvZ0NvbmZpZy5wYW5lQ2xhc3MsXG4gICAgICBoYXNCYWNrZHJvcDogZGlhbG9nQ29uZmlnLmhhc0JhY2tkcm9wLFxuICAgICAgbWluV2lkdGg6IGRpYWxvZ0NvbmZpZy5taW5XaWR0aCxcbiAgICAgIG1pbkhlaWdodDogZGlhbG9nQ29uZmlnLm1pbkhlaWdodCxcbiAgICAgIG1heFdpZHRoOiBkaWFsb2dDb25maWcubWF4V2lkdGgsXG4gICAgICBtYXhIZWlnaHQ6IGRpYWxvZ0NvbmZpZy5tYXhIZWlnaHRcbiAgICB9KTtcblxuICAgIGlmIChkaWFsb2dDb25maWcuYmFja2Ryb3BDbGFzcykge1xuICAgICAgc3RhdGUuYmFja2Ryb3BDbGFzcyA9IGRpYWxvZ0NvbmZpZy5iYWNrZHJvcENsYXNzO1xuICAgIH1cblxuICAgIHJldHVybiBzdGF0ZTtcbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlT3BlbkRpYWxvZyhkaWFsb2dSZWY6IE93bERpYWxvZ1JlZjxhbnk+KTogdm9pZCB7XG4gICAgY29uc3QgaW5kZXggPSB0aGlzLl9vcGVuRGlhbG9nc0F0VGhpc0xldmVsLmluZGV4T2YoZGlhbG9nUmVmKTtcblxuICAgIGlmIChpbmRleCA+IC0xKSB7XG4gICAgICB0aGlzLm9wZW5EaWFsb2dzLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAvLyBJZiBhbGwgdGhlIGRpYWxvZ3Mgd2VyZSBjbG9zZWQsIHJlbW92ZS9yZXN0b3JlIHRoZSBgYXJpYS1oaWRkZW5gXG4gICAgICAvLyB0byBhIHRoZSBzaWJsaW5ncyBhbmQgZW1pdCB0byB0aGUgYGFmdGVyQWxsQ2xvc2VkYCBzdHJlYW0uXG4gICAgICBpZiAoIXRoaXMub3BlbkRpYWxvZ3MubGVuZ3RoKSB7XG4gICAgICAgIHRoaXMuYXJpYUhpZGRlbkVsZW1lbnRzLmZvckVhY2goKHByZXZpb3VzVmFsdWUsIGVsZW1lbnQpID0+IHtcbiAgICAgICAgICBpZiAocHJldmlvdXNWYWx1ZSkge1xuICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2FyaWEtaGlkZGVuJywgcHJldmlvdXNWYWx1ZSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKCdhcmlhLWhpZGRlbicpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5hcmlhSGlkZGVuRWxlbWVudHMuY2xlYXIoKTtcbiAgICAgICAgdGhpcy5fYWZ0ZXJBbGxDbG9zZWQubmV4dCgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBIaWRlcyBhbGwgb2YgdGhlIGNvbnRlbnQgdGhhdCBpc24ndCBhbiBvdmVybGF5IGZyb20gYXNzaXN0aXZlIHRlY2hub2xvZ3kuXG4gICAqL1xuICBwcml2YXRlIGhpZGVOb25EaWFsb2dDb250ZW50RnJvbUFzc2lzdGl2ZVRlY2hub2xvZ3koKSB7XG4gICAgY29uc3Qgb3ZlcmxheUNvbnRhaW5lciA9IHRoaXMub3ZlcmxheUNvbnRhaW5lci5nZXRDb250YWluZXJFbGVtZW50KCk7XG5cbiAgICAvLyBFbnN1cmUgdGhhdCB0aGUgb3ZlcmxheSBjb250YWluZXIgaXMgYXR0YWNoZWQgdG8gdGhlIERPTS5cbiAgICBpZiAob3ZlcmxheUNvbnRhaW5lci5wYXJlbnRFbGVtZW50KSB7XG4gICAgICBjb25zdCBzaWJsaW5ncyA9IG92ZXJsYXlDb250YWluZXIucGFyZW50RWxlbWVudC5jaGlsZHJlbjtcblxuICAgICAgZm9yIChsZXQgaSA9IHNpYmxpbmdzLmxlbmd0aCAtIDE7IGkgPiAtMTsgaS0tKSB7XG4gICAgICAgIGNvbnN0IHNpYmxpbmcgPSBzaWJsaW5nc1tpXTtcblxuICAgICAgICBpZiAoXG4gICAgICAgICAgc2libGluZyAhPT0gb3ZlcmxheUNvbnRhaW5lciAmJlxuICAgICAgICAgIHNpYmxpbmcubm9kZU5hbWUgIT09ICdTQ1JJUFQnICYmXG4gICAgICAgICAgc2libGluZy5ub2RlTmFtZSAhPT0gJ1NUWUxFJyAmJlxuICAgICAgICAgICFzaWJsaW5nLmhhc0F0dHJpYnV0ZSgnYXJpYS1saXZlJylcbiAgICAgICAgKSB7XG4gICAgICAgICAgdGhpcy5hcmlhSGlkZGVuRWxlbWVudHMuc2V0KFxuICAgICAgICAgICAgc2libGluZyxcbiAgICAgICAgICAgIHNpYmxpbmcuZ2V0QXR0cmlidXRlKCdhcmlhLWhpZGRlbicpXG4gICAgICAgICAgKTtcbiAgICAgICAgICBzaWJsaW5nLnNldEF0dHJpYnV0ZSgnYXJpYS1oaWRkZW4nLCAndHJ1ZScpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogQXBwbGllcyBkZWZhdWx0IG9wdGlvbnMgdG8gdGhlIGRpYWxvZyBjb25maWcuXG4gKiBAcGFyYW0gY29uZmlnIENvbmZpZyB0byBiZSBtb2RpZmllZC5cbiAqIEBwYXJhbSBkZWZhdWx0T3B0aW9ucyBEZWZhdWx0IGNvbmZpZyBzZXR0aW5nXG4gKiBAcmV0dXJucyBUaGUgbmV3IGNvbmZpZ3VyYXRpb24gb2JqZWN0LlxuICovXG5mdW5jdGlvbiBhcHBseUNvbmZpZ0RlZmF1bHRzKFxuICBjb25maWc/OiBPd2xEaWFsb2dDb25maWcsXG4gIGRlZmF1bHRPcHRpb25zPzogT3dsRGlhbG9nQ29uZmlnXG4pOiBPd2xEaWFsb2dDb25maWcge1xuICByZXR1cm4gZXh0ZW5kT2JqZWN0KG5ldyBPd2xEaWFsb2dDb25maWcoKSwgY29uZmlnLCBkZWZhdWx0T3B0aW9ucyk7XG59XG4iXX0=
233
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtZm9ybWVudHJ5L3NyYy9jb21wb25lbnRzL25neC1waWNrLWRhdGV0aW1lL2xpYi9kaWFsb2cvZGlhbG9nLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxPQUFPLEVBRUwsTUFBTSxFQUNOLFVBQVUsRUFDVixjQUFjLEVBQ2QsUUFBUSxFQUNSLFFBQVEsRUFDUixRQUFRLEVBQ1IsV0FBVyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2xELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzNFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDeEMsT0FBTyxFQUFFLEtBQUssRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFDTCxPQUFPLEVBQ1AsYUFBYSxFQUNiLGdCQUFnQixFQUdqQixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFDTCxlQUFlLEVBRWYsY0FBYyxFQUNmLE1BQU0scUJBQXFCLENBQUM7Ozs7O0FBRTdCLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxJQUFJLGNBQWMsQ0FBTSxlQUFlLENBQUMsQ0FBQztBQUV4RTs7S0FFSztBQUNMLE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHLElBQUksY0FBYyxDQUUxRCw0QkFBNEIsQ0FBQyxDQUFDO0FBRWhDLE1BQU0sVUFBVSwyQ0FB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b3J0IHtcbiAgQ29tcG9uZW50UmVmLFxuICBJbmplY3QsXG4gIEluamVjdGFibGUsXG4gIEluamVjdGlvblRva2VuLFxuICBJbmplY3RvcixcbiAgT3B0aW9uYWwsXG4gIFNraXBTZWxmLFxuICBUZW1wbGF0ZVJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IExvY2F0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE93bERpYWxvZ0NvbmZpZyB9IGZyb20gJy4vZGlhbG9nLWNvbmZpZy5jbGFzcyc7XG5pbXBvcnQgeyBPd2xEaWFsb2dSZWYgfSBmcm9tICcuL2RpYWxvZy1yZWYuY2xhc3MnO1xuaW1wb3J0IHsgT3dsRGlhbG9nQ29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi9kaWFsb2ctY29udGFpbmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBleHRlbmRPYmplY3QgfSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQgeyBkZWZlciwgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgc3RhcnRXaXRoIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtcbiAgT3ZlcmxheSxcbiAgT3ZlcmxheUNvbmZpZyxcbiAgT3ZlcmxheUNvbnRhaW5lcixcbiAgT3ZlcmxheVJlZixcbiAgU2Nyb2xsU3RyYXRlZ3lcbn0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50UG9ydGFsLFxuICBDb21wb25lbnRUeXBlLFxuICBQb3J0YWxJbmplY3RvclxufSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcblxuZXhwb3J0IGNvbnN0IE9XTF9ESUFMT0dfREFUQSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxhbnk+KCdPd2xEaWFsb2dEYXRhJyk7XG5cbi8qKlxuICogSW5qZWN0aW9uIHRva2VuIHRoYXQgZGV0ZXJtaW5lcyB0aGUgc2Nyb2xsIGhhbmRsaW5nIHdoaWxlIHRoZSBkaWFsb2cgaXMgb3Blbi5cbiAqICovXG5leHBvcnQgY29uc3QgT1dMX0RJQUxPR19TQ1JPTExfU1RSQVRFR1kgPSBuZXcgSW5qZWN0aW9uVG9rZW48XG4gICgpID0+IFNjcm9sbFN0cmF0ZWd5XG4+KCdvd2wtZGlhbG9nLXNjcm9sbC1zdHJhdGVneScpO1xuXG5leHBvcnQgZnVuY3Rpb24gT1dMX0RJQUxPR19TQ1JPTExfU1RSQVRFR1lfUFJPVklERVJfRkFDVE9SWShcbiAgb3ZlcmxheTogT3ZlcmxheVxuKTogKCkgPT4gU2Nyb2xsU3RyYXRlZ3kge1xuICBjb25zdCBmbiA9ICgpID0+IG92ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5ibG9jaygpO1xuICByZXR1cm4gZm47XG59XG5cbi8qKiBAZG9jcy1wcml2YXRlICovXG5leHBvcnQgY29uc3QgT1dMX0RJQUxPR19TQ1JPTExfU1RSQVRFR1lfUFJPVklERVIgPSB7XG4gIHByb3ZpZGU6IE9XTF9ESUFMT0dfU0NST0xMX1NUUkFURUdZLFxuICBkZXBzOiBbT3ZlcmxheV0sXG4gIHVzZUZhY3Rvcnk6IE9XTF9ESUFMT0dfU0NST0xMX1NUUkFURUdZX1BST1ZJREVSX0ZBQ1RPUllcbn07XG5cbi8qKiBJXG4gKiBuamVjdGlvbiB0b2tlbiB0aGF0IGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgZGVmYXVsdCBkaWFsb2cgb3B0aW9ucy5cbiAqICovXG5leHBvcnQgY29uc3QgT1dMX0RJQUxPR19ERUZBVUxUX09QVElPTlMgPSBuZXcgSW5qZWN0aW9uVG9rZW48T3dsRGlhbG9nQ29uZmlnPihcbiAgJ293bC1kaWFsb2ctZGVmYXVsdC1vcHRpb25zJ1xuKTtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE93bERpYWxvZ1NlcnZpY2Uge1xuICBwcml2YXRlIGFyaWFIaWRkZW5FbGVtZW50cyA9IG5ldyBNYXA8RWxlbWVudCwgc3RyaW5nIHwgbnVsbD4oKTtcblxuICBwcml2YXRlIF9vcGVuRGlhbG9nc0F0VGhpc0xldmVsOiBPd2xEaWFsb2dSZWY8YW55PltdID0gW107XG4gIHByaXZhdGUgX2FmdGVyT3BlbkF0VGhpc0xldmVsID0gbmV3IFN1YmplY3Q8T3dsRGlhbG9nUmVmPGFueT4+KCk7XG4gIHByaXZhdGUgX2FmdGVyQWxsQ2xvc2VkQXRUaGlzTGV2ZWwgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIC8qKiBLZWVwcyB0cmFjayBvZiB0aGUgY3VycmVudGx5LW9wZW4gZGlhbG9ncy4gKi9cbiAgZ2V0IG9wZW5EaWFsb2dzKCk6IE93bERpYWxvZ1JlZjxhbnk+W10ge1xuICAgIHJldHVybiB0aGlzLnBhcmVudERpYWxvZ1xuICAgICAgPyB0aGlzLnBhcmVudERpYWxvZy5vcGVuRGlhbG9nc1xuICAgICAgOiB0aGlzLl9vcGVuRGlhbG9nc0F0VGhpc0xldmVsO1xuICB9XG5cbiAgLyoqIFN0cmVhbSB0aGF0IGVtaXRzIHdoZW4gYSBkaWFsb2cgaGFzIGJlZW4gb3BlbmVkLiAqL1xuICBnZXQgYWZ0ZXJPcGVuKCk6IFN1YmplY3Q8T3dsRGlhbG9nUmVmPGFueT4+IHtcbiAgICByZXR1cm4gdGhpcy5wYXJlbnREaWFsb2dcbiAgICAgID8gdGhpcy5wYXJlbnREaWFsb2cuYWZ0ZXJPcGVuXG4gICAgICA6IHRoaXMuX2FmdGVyT3BlbkF0VGhpc0xldmVsO1xuICB9XG5cbiAgZ2V0IF9hZnRlckFsbENsb3NlZCgpOiBhbnkge1xuICAgIGNvbnN0IHBhcmVudCA9IHRoaXMucGFyZW50RGlhbG9nO1xuICAgIHJldHVybiBwYXJlbnQgPyBwYXJlbnQuX2FmdGVyQWxsQ2xvc2VkIDogdGhpcy5fYWZ0ZXJBbGxDbG9zZWRBdFRoaXNMZXZlbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdHJlYW0gdGhhdCBlbWl0cyB3aGVuIGFsbCBvcGVuIGRpYWxvZyBoYXZlIGZpbmlzaGVkIGNsb3NpbmcuXG4gICAqIFdpbGwgZW1pdCBvbiBzdWJzY3JpYmUgaWYgdGhlcmUgYXJlIG5vIG9wZW4gZGlhbG9ncyB0byBiZWdpbiB3aXRoLlxuICAgKi9cblxuICBhZnRlckFsbENsb3NlZDogT2JzZXJ2YWJsZTx7fT4gPSBkZWZlcigoKSA9PlxuICAgIHRoaXMuX29wZW5EaWFsb2dzQXRUaGlzTGV2ZWwubGVuZ3RoXG4gICAgICA/IHRoaXMuX2FmdGVyQWxsQ2xvc2VkXG4gICAgICA6IHRoaXMuX2FmdGVyQWxsQ2xvc2VkLnBpcGUoc3RhcnRXaXRoKHVuZGVmaW5lZCkpXG4gICk7XG5cbiAgcHJpdmF0ZSBzY3JvbGxTdHJhdGVneTogKCkgPT4gU2Nyb2xsU3RyYXRlZ3k7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBvdmVybGF5OiBPdmVybGF5LFxuICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgbG9jYXRpb246IExvY2F0aW9uLFxuICAgIEBJbmplY3QoT1dMX0RJQUxPR19TQ1JPTExfU1RSQVRFR1kpIHNjcm9sbFN0cmF0ZWd5OiBhbnksXG4gICAgQE9wdGlvbmFsKClcbiAgICBASW5qZWN0KE9XTF9ESUFMT0dfREVGQVVMVF9PUFRJT05TKVxuICAgIHByaXZhdGUgZGVmYXVsdE9wdGlvbnM6IE93bERpYWxvZ0NvbmZpZyxcbiAgICBAT3B0aW9uYWwoKVxuICAgIEBTa2lwU2VsZigpXG4gICAgcHJpdmF0ZSBwYXJlbnREaWFsb2c6IE93bERpYWxvZ1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBvdmVybGF5Q29udGFpbmVyOiBPdmVybGF5Q29udGFpbmVyXG4gICkge1xuICAgIHRoaXMuc2Nyb2xsU3RyYXRlZ3kgPSBzY3JvbGxTdHJhdGVneTtcbiAgICBpZiAoIXBhcmVudERpYWxvZyAmJiBsb2NhdGlvbikge1xuICAgICAgbG9jYXRpb24uc3Vic2NyaWJlKCgpID0+IHRoaXMuY2xvc2VBbGwoKSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9wZW48VD4oXG4gICAgY29tcG9uZW50T3JUZW1wbGF0ZVJlZjogQ29tcG9uZW50VHlwZTxUPiB8IFRlbXBsYXRlUmVmPFQ+LFxuICAgIGNvbmZpZz86IE93bERpYWxvZ0NvbmZpZ1xuICApOiBPd2xEaWFsb2dSZWY8YW55PiB7XG4gICAgY29uZmlnID0gYXBwbHlDb25maWdEZWZhdWx0cyhjb25maWcsIHRoaXMuZGVmYXVsdE9wdGlvbnMpO1xuXG4gICAgaWYgKGNvbmZpZy5pZCAmJiB0aGlzLmdldERpYWxvZ0J5SWQoY29uZmlnLmlkKSkge1xuICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgIGBEaWFsb2cgd2l0aCBpZCBcIiR7Y29uZmlnLmlkfVwiIGV4aXN0cyBhbHJlYWR5LiBUaGUgZGlhbG9nIGlkIG11c3QgYmUgdW5pcXVlLmBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3Qgb3ZlcmxheVJlZiA9IHRoaXMuY3JlYXRlT3ZlcmxheShjb25maWcpO1xuICAgIGNvbnN0IGRpYWxvZ0NvbnRhaW5lciA9IHRoaXMuYXR0YWNoRGlhbG9nQ29udGFpbmVyKG92ZXJsYXlSZWYsIGNvbmZpZyk7XG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5hdHRhY2hEaWFsb2dDb250ZW50PFQ+KFxuICAgICAgY29tcG9uZW50T3JUZW1wbGF0ZVJlZixcbiAgICAgIGRpYWxvZ0NvbnRhaW5lcixcbiAgICAgIG92ZXJsYXlSZWYsXG4gICAgICBjb25maWdcbiAgICApO1xuXG4gICAgaWYgKCF0aGlzLm9wZW5EaWFsb2dzLmxlbmd0aCkge1xuICAgICAgdGhpcy5oaWRlTm9uRGlhbG9nQ29udGVudEZyb21Bc3Npc3RpdmVUZWNobm9sb2d5KCk7XG4gICAgfVxuXG4gICAgdGhpcy5vcGVuRGlhbG9ncy5wdXNoKGRpYWxvZ1JlZik7XG4gICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKCgpID0+IHRoaXMucmVtb3ZlT3BlbkRpYWxvZyhkaWFsb2dSZWYpKTtcbiAgICB0aGlzLmFmdGVyT3Blbi5uZXh0KGRpYWxvZ1JlZik7XG4gICAgcmV0dXJuIGRpYWxvZ1JlZjtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbG9zZXMgYWxsIG9mIHRoZSBjdXJyZW50bHktb3BlbiBkaWFsb2dzLlxuICAgKi9cbiAgcHVibGljIGNsb3NlQWxsKCk6IHZvaWQge1xuICAgIGxldCBpID0gdGhpcy5vcGVuRGlhbG9ncy5sZW5ndGg7XG5cbiAgICB3aGlsZSAoaS0tKSB7XG4gICAgICB0aGlzLm9wZW5EaWFsb2dzW2ldLmNsb3NlKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEZpbmRzIGFuIG9wZW4gZGlhbG9nIGJ5IGl0cyBpZC5cbiAgICogQHBhcmFtIGlkIElEIHRvIHVzZSB3aGVuIGxvb2tpbmcgdXAgdGhlIGRpYWxvZy5cbiAgICovXG4gIHB1YmxpYyBnZXREaWFsb2dCeUlkKGlkOiBzdHJpbmcpOiBPd2xEaWFsb2dSZWY8YW55PiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMub3BlbkRpYWxvZ3MuZmluZCgoZGlhbG9nKSA9PiBkaWFsb2cuaWQgPT09IGlkKTtcbiAgfVxuXG4gIHByaXZhdGUgYXR0YWNoRGlhbG9nQ29udGVudDxUPihcbiAgICBjb21wb25lbnRPclRlbXBsYXRlUmVmOiBDb21wb25lbnRUeXBlPFQ+IHwgVGVtcGxhdGVSZWY8VD4sXG4gICAgZGlhbG9nQ29udGFpbmVyOiBPd2xEaWFsb2dDb250YWluZXJDb21wb25lbnQsXG4gICAgb3ZlcmxheVJlZjogT3ZlcmxheVJlZixcbiAgICBjb25maWc6IE93bERpYWxvZ0NvbmZpZ1xuICApIHtcbiAgICBjb25zdCBkaWFsb2dSZWYgPSBuZXcgT3dsRGlhbG9nUmVmPFQ+KFxuICAgICAgb3ZlcmxheVJlZixcbiAgICAgIGRpYWxvZ0NvbnRhaW5lcixcbiAgICAgIGNvbmZpZy5pZCxcbiAgICAgIHRoaXMubG9jYXRpb25cbiAgICApO1xuXG4gICAgaWYgKGNvbmZpZy5oYXNCYWNrZHJvcCkge1xuICAgICAgb3ZlcmxheVJlZi5iYWNrZHJvcENsaWNrKCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgaWYgKCFkaWFsb2dSZWYuZGlzYWJsZUNsb3NlKSB7XG4gICAgICAgICAgZGlhbG9nUmVmLmNsb3NlKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmIChjb21wb25lbnRPclRlbXBsYXRlUmVmIGluc3RhbmNlb2YgVGVtcGxhdGVSZWYpIHtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgaW5qZWN0b3IgPSB0aGlzLmNyZWF0ZUluamVjdG9yPFQ+KFxuICAgICAgICBjb25maWcsXG4gICAgICAgIGRpYWxvZ1JlZixcbiAgICAgICAgZGlhbG9nQ29udGFpbmVyXG4gICAgICApO1xuICAgICAgY29uc3QgY29udGVudFJlZiA9IGRpYWxvZ0NvbnRhaW5lci5hdHRhY2hDb21wb25lbnRQb3J0YWwoXG4gICAgICAgIG5ldyBDb21wb25lbnRQb3J0YWwoY29tcG9uZW50T3JUZW1wbGF0ZVJlZiwgdW5kZWZpbmVkLCBpbmplY3RvcilcbiAgICAgICk7XG4gICAgICBkaWFsb2dSZWYuY29tcG9uZW50SW5zdGFuY2UgPSBjb250ZW50UmVmLmluc3RhbmNlO1xuICAgIH1cblxuICAgIGRpYWxvZ1JlZlxuICAgICAgLnVwZGF0ZVNpemUoY29uZmlnLndpZHRoLCBjb25maWcuaGVpZ2h0KVxuICAgICAgLnVwZGF0ZVBvc2l0aW9uKGNvbmZpZy5wb3NpdGlvbik7XG5cbiAgICByZXR1cm4gZGlhbG9nUmVmO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVJbmplY3RvcjxUPihcbiAgICBjb25maWc6IE93bERpYWxvZ0NvbmZpZyxcbiAgICBkaWFsb2dSZWY6IE93bERpYWxvZ1JlZjxUPixcbiAgICBkaWFsb2dDb250YWluZXI6IE93bERpYWxvZ0NvbnRhaW5lckNvbXBvbmVudFxuICApIHtcbiAgICBjb25zdCB1c2VySW5qZWN0b3IgPVxuICAgICAgY29uZmlnICYmIGNvbmZpZy52aWV3Q29udGFpbmVyUmVmICYmIGNvbmZpZy52aWV3Q29udGFpbmVyUmVmLmluamVjdG9yO1xuICAgIGNvbnN0IGluamVjdGlvblRva2VucyA9IG5ldyBXZWFrTWFwKCk7XG5cbiAgICBpbmplY3Rpb25Ub2tlbnMuc2V0KE93bERpYWxvZ1JlZiwgZGlhbG9nUmVmKTtcbiAgICBpbmplY3Rpb25Ub2tlbnMuc2V0KE93bERpYWxvZ0NvbnRhaW5lckNvbXBvbmVudCwgZGlhbG9nQ29udGFpbmVyKTtcbiAgICBpbmplY3Rpb25Ub2tlbnMuc2V0KE9XTF9ESUFMT0dfREFUQSwgY29uZmlnLmRhdGEpO1xuXG4gICAgcmV0dXJuIG5ldyBQb3J0YWxJbmplY3Rvcih1c2VySW5qZWN0b3IgfHwgdGhpcy5pbmplY3RvciwgaW5qZWN0aW9uVG9rZW5zKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlT3ZlcmxheShjb25maWc6IE93bERpYWxvZ0NvbmZpZyk6IE92ZXJsYXlSZWYge1xuICAgIGNvbnN0IG92ZXJsYXlDb25maWcgPSB0aGlzLmdldE92ZXJsYXlDb25maWcoY29uZmlnKTtcbiAgICByZXR1cm4gdGhpcy5vdmVybGF5LmNyZWF0ZShvdmVybGF5Q29uZmlnKTtcbiAgfVxuXG4gIHByaXZhdGUgYXR0YWNoRGlhbG9nQ29udGFpbmVyKFxuICAgIG92ZXJsYXlSZWY6IE92ZXJsYXlSZWYsXG4gICAgY29uZmlnOiBPd2xEaWFsb2dDb25maWdcbiAgKTogT3dsRGlhbG9nQ29udGFpbmVyQ29tcG9uZW50IHtcbiAgICBjb25zdCBjb250YWluZXJQb3J0YWwgPSBuZXcgQ29tcG9uZW50UG9ydGFsKFxuICAgICAgT3dsRGlhbG9nQ29udGFpbmVyQ29tcG9uZW50LFxuICAgICAgY29uZmlnLnZpZXdDb250YWluZXJSZWZcbiAgICApO1xuICAgIGNvbnN0IGNvbnRhaW5lclJlZjogQ29tcG9uZW50UmVmPE93bERpYWxvZ0NvbnRhaW5lckNvbXBvbmVudD4gPSBvdmVybGF5UmVmLmF0dGFjaChcbiAgICAgIGNvbnRhaW5lclBvcnRhbFxuICAgICk7XG4gICAgY29udGFpbmVyUmVmLmluc3RhbmNlLnNldENvbmZpZyhjb25maWcpO1xuXG4gICAgcmV0dXJuIGNvbnRhaW5lclJlZi5pbnN0YW5jZTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0T3ZlcmxheUNvbmZpZyhkaWFsb2dDb25maWc6IE93bERpYWxvZ0NvbmZpZyk6IE92ZXJsYXlDb25maWcge1xuICAgIGNvbnN0IHN0YXRlID0gbmV3IE92ZXJsYXlDb25maWcoe1xuICAgICAgcG9zaXRpb25TdHJhdGVneTogdGhpcy5vdmVybGF5LnBvc2l0aW9uKCkuZ2xvYmFsKCksXG4gICAgICBzY3JvbGxTdHJhdGVneTogZGlhbG9nQ29uZmlnLnNjcm9sbFN0cmF0ZWd5IHx8IHRoaXMuc2Nyb2xsU3RyYXRlZ3koKSxcbiAgICAgIHBhbmVsQ2xhc3M6IGRpYWxvZ0NvbmZpZy5wYW5lQ2xhc3MsXG4gICAgICBoYXNCYWNrZHJvcDogZGlhbG9nQ29uZmlnLmhhc0JhY2tkcm9wLFxuICAgICAgbWluV2lkdGg6IGRpYWxvZ0NvbmZpZy5taW5XaWR0aCxcbiAgICAgIG1pbkhlaWdodDogZGlhbG9nQ29uZmlnLm1pbkhlaWdodCxcbiAgICAgIG1heFdpZHRoOiBkaWFsb2dDb25maWcubWF4V2lkdGgsXG4gICAgICBtYXhIZWlnaHQ6IGRpYWxvZ0NvbmZpZy5tYXhIZWlnaHRcbiAgICB9KTtcblxuICAgIGlmIChkaWFsb2dDb25maWcuYmFja2Ryb3BDbGFzcykge1xuICAgICAgc3RhdGUuYmFja2Ryb3BDbGFzcyA9IGRpYWxvZ0NvbmZpZy5iYWNrZHJvcENsYXNzO1xuICAgIH1cblxuICAgIHJldHVybiBzdGF0ZTtcbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlT3BlbkRpYWxvZyhkaWFsb2dSZWY6IE93bERpYWxvZ1JlZjxhbnk+KTogdm9pZCB7XG4gICAgY29uc3QgaW5kZXggPSB0aGlzLl9vcGVuRGlhbG9nc0F0VGhpc0xldmVsLmluZGV4T2YoZGlhbG9nUmVmKTtcblxuICAgIGlmIChpbmRleCA+IC0xKSB7XG4gICAgICB0aGlzLm9wZW5EaWFsb2dzLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAvLyBJZiBhbGwgdGhlIGRpYWxvZ3Mgd2VyZSBjbG9zZWQsIHJlbW92ZS9yZXN0b3JlIHRoZSBgYXJpYS1oaWRkZW5gXG4gICAgICAvLyB0byBhIHRoZSBzaWJsaW5ncyBhbmQgZW1pdCB0byB0aGUgYGFmdGVyQWxsQ2xvc2VkYCBzdHJlYW0uXG4gICAgICBpZiAoIXRoaXMub3BlbkRpYWxvZ3MubGVuZ3RoKSB7XG4gICAgICAgIHRoaXMuYXJpYUhpZGRlbkVsZW1lbnRzLmZvckVhY2goKHByZXZpb3VzVmFsdWUsIGVsZW1lbnQpID0+IHtcbiAgICAgICAgICBpZiAocHJldmlvdXNWYWx1ZSkge1xuICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2FyaWEtaGlkZGVuJywgcHJldmlvdXNWYWx1ZSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKCdhcmlhLWhpZGRlbicpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5hcmlhSGlkZGVuRWxlbWVudHMuY2xlYXIoKTtcbiAgICAgICAgdGhpcy5fYWZ0ZXJBbGxDbG9zZWQubmV4dCgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBIaWRlcyBhbGwgb2YgdGhlIGNvbnRlbnQgdGhhdCBpc24ndCBhbiBvdmVybGF5IGZyb20gYXNzaXN0aXZlIHRlY2hub2xvZ3kuXG4gICAqL1xuICBwcml2YXRlIGhpZGVOb25EaWFsb2dDb250ZW50RnJvbUFzc2lzdGl2ZVRlY2hub2xvZ3koKSB7XG4gICAgY29uc3Qgb3ZlcmxheUNvbnRhaW5lciA9IHRoaXMub3ZlcmxheUNvbnRhaW5lci5nZXRDb250YWluZXJFbGVtZW50KCk7XG5cbiAgICAvLyBFbnN1cmUgdGhhdCB0aGUgb3ZlcmxheSBjb250YWluZXIgaXMgYXR0YWNoZWQgdG8gdGhlIERPTS5cbiAgICBpZiAob3ZlcmxheUNvbnRhaW5lci5wYXJlbnRFbGVtZW50KSB7XG4gICAgICBjb25zdCBzaWJsaW5ncyA9IG92ZXJsYXlDb250YWluZXIucGFyZW50RWxlbWVudC5jaGlsZHJlbjtcblxuICAgICAgZm9yIChsZXQgaSA9IHNpYmxpbmdzLmxlbmd0aCAtIDE7IGkgPiAtMTsgaS0tKSB7XG4gICAgICAgIGNvbnN0IHNpYmxpbmcgPSBzaWJsaW5nc1tpXTtcblxuICAgICAgICBpZiAoXG4gICAgICAgICAgc2libGluZyAhPT0gb3ZlcmxheUNvbnRhaW5lciAmJlxuICAgICAgICAgIHNpYmxpbmcubm9kZU5hbWUgIT09ICdTQ1JJUFQnICYmXG4gICAgICAgICAgc2libGluZy5ub2RlTmFtZSAhPT0gJ1NUWUxFJyAmJlxuICAgICAgICAgICFzaWJsaW5nLmhhc0F0dHJpYnV0ZSgnYXJpYS1saXZlJylcbiAgICAgICAgKSB7XG4gICAgICAgICAgdGhpcy5hcmlhSGlkZGVuRWxlbWVudHMuc2V0KFxuICAgICAgICAgICAgc2libGluZyxcbiAgICAgICAgICAgIHNpYmxpbmcuZ2V0QXR0cmlidXRlKCdhcmlhLWhpZGRlbicpXG4gICAgICAgICAgKTtcbiAgICAgICAgICBzaWJsaW5nLnNldEF0dHJpYnV0ZSgnYXJpYS1oaWRkZW4nLCAndHJ1ZScpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogQXBwbGllcyBkZWZhdWx0IG9wdGlvbnMgdG8gdGhlIGRpYWxvZyBjb25maWcuXG4gKiBAcGFyYW0gY29uZmlnIENvbmZpZyB0byBiZSBtb2RpZmllZC5cbiAqIEBwYXJhbSBkZWZhdWx0T3B0aW9ucyBEZWZhdWx0IGNvbmZpZyBzZXR0aW5nXG4gKiBAcmV0dXJucyBUaGUgbmV3IGNvbmZpZ3VyYXRpb24gb2JqZWN0LlxuICovXG5mdW5jdGlvbiBhcHBseUNvbmZpZ0RlZmF1bHRzKFxuICBjb25maWc/OiBPd2xEaWFsb2dDb25maWcsXG4gIGRlZmF1bHRPcHRpb25zPzogT3dsRGlhbG9nQ29uZmlnXG4pOiBPd2xEaWFsb2dDb25maWcge1xuICByZXR1cm4gZXh0ZW5kT2JqZWN0KG5ldyBPd2xEaWFsb2dDb25maWcoKSwgY29uZmlnLCBkZWZhdWx0T3B0aW9ucyk7XG59XG4iXX0=
@@ -0,0 +1,132 @@
1
+ import { Component, Input, forwardRef, Output, EventEmitter, Renderer2 } from '@angular/core';
2
+ import { NG_VALUE_ACCESSOR } from '@angular/forms';
3
+ import { concat, of, Subject } from 'rxjs';
4
+ import { catchError, distinctUntilChanged, switchMap, tap } from 'rxjs/operators';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/common";
7
+ import * as i2 from "@ng-select/ng-select";
8
+ import * as i3 from "@angular/forms";
9
+ import * as i4 from "@ngx-translate/core";
10
+ export class RemoteSelectComponent {
11
+ get dataSource() {
12
+ return this._dataSource;
13
+ }
14
+ set dataSource(v) {
15
+ this._dataSource = v;
16
+ if (this._dataSource && this._dataSource.dataFromSourceChanged) {
17
+ this.subscribeToDataSourceDataChanges();
18
+ }
19
+ }
20
+ constructor(renderer) {
21
+ this.renderer = renderer;
22
+ this.remoteOptionsLoading = false;
23
+ this.remoteOptionInput$ = new Subject();
24
+ this.items = [];
25
+ this.value = [];
26
+ this.loading = false;
27
+ this.searchText = '';
28
+ this.notFoundMsg = 'match no found';
29
+ this.placeholder = 'Search...';
30
+ this.disabled = false;
31
+ this.theme = 'dark';
32
+ this.done = new EventEmitter();
33
+ this.compareItems = (item, selected) => {
34
+ if (item.value && selected.value) {
35
+ return item.value === selected.value;
36
+ }
37
+ return false;
38
+ };
39
+ // the method set in registerOnChange, it is just
40
+ // a placeholder for a method that takes one parameter,
41
+ // we use it to emit changes back to the form
42
+ this.propagateChange = (change) => { };
43
+ }
44
+ ngOnInit() {
45
+ this.loadOptions();
46
+ }
47
+ subscribeToDataSourceDataChanges() {
48
+ this._dataSource.dataFromSourceChanged.subscribe((results) => {
49
+ if (results.length > 0) {
50
+ this.items = results;
51
+ this.notFoundMsg = '';
52
+ }
53
+ else {
54
+ this.notFoundMsg = 'Not found';
55
+ this.items = [];
56
+ }
57
+ });
58
+ }
59
+ // this is the initial value set to the component
60
+ writeValue(value) {
61
+ if (value && value !== '') {
62
+ if (this.dataSource) {
63
+ this.loading = true;
64
+ this.dataSource.resolveSelectedValue(value).subscribe((result) => {
65
+ this.items = [result];
66
+ this.selectedRemoteOptions = result;
67
+ this.loading = false;
68
+ }, (error) => {
69
+ this.loading = false;
70
+ });
71
+ }
72
+ }
73
+ }
74
+ // registers 'fn' that will be fired when changes are made
75
+ // this is how we emit the changes back to the form
76
+ registerOnChange(fn) {
77
+ this.propagateChange = fn;
78
+ }
79
+ // not used, used for touch input
80
+ registerOnTouched() { }
81
+ // change events from the textarea
82
+ onChange(event) {
83
+ this.propagateChange(event.id);
84
+ // .....
85
+ // update the form
86
+ // this.propagateChange(this.data);
87
+ }
88
+ selected(event) {
89
+ this.propagateChange(event);
90
+ }
91
+ trackByFn(item) {
92
+ return item.value;
93
+ }
94
+ loadOptions() {
95
+ this.remoteOptions$ = concat(of([]), // default items
96
+ this.remoteOptionInput$.pipe(distinctUntilChanged(), tap(() => {
97
+ this.loading = true;
98
+ }), switchMap((term) => this.dataSource.searchOptions(term).pipe(catchError(() => of([])), // empty list on error
99
+ tap(() => (this.loading = false))))));
100
+ }
101
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RemoteSelectComponent, deps: [{ token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
102
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: RemoteSelectComponent, selector: "ofe-remote-select", inputs: { placeholder: "placeholder", componentID: "componentID", disabled: "disabled", theme: "theme", dataSource: "dataSource" }, outputs: { done: "done" }, providers: [
103
+ {
104
+ provide: NG_VALUE_ACCESSOR,
105
+ useExisting: forwardRef(() => RemoteSelectComponent),
106
+ multi: true
107
+ }
108
+ ], ngImport: i0, template: "<div>\n <ng-select\n [ngClass]=\"{ 'afe-custom': theme === 'light' }\"\n [disabled]=\"disabled\"\n [items]=\"remoteOptions$ | async\"\n bindLabel=\"label\"\n bindValue=\"value\"\n [multiple]=\"false\"\n [hideSelected]=\"true\"\n [compareWith]=\"compareItems\"\n [trackByFn]=\"trackByFn\"\n [loading]=\"loading\"\n typeToSearchText=\"{{ 'enterMoreCharacters' | translate }}\"\n [typeahead]=\"remoteOptionInput$\"\n [(ngModel)]=\"selectedRemoteOptions\"\n [appendTo]=\"'form'\"\n (ngModelChange)=\"selected($event)\"\n >\n </ng-select>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i2.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "markFirst", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "deselectOnClick"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }] }); }
109
+ }
110
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RemoteSelectComponent, decorators: [{
111
+ type: Component,
112
+ args: [{ selector: 'ofe-remote-select', providers: [
113
+ {
114
+ provide: NG_VALUE_ACCESSOR,
115
+ useExisting: forwardRef(() => RemoteSelectComponent),
116
+ multi: true
117
+ }
118
+ ], template: "<div>\n <ng-select\n [ngClass]=\"{ 'afe-custom': theme === 'light' }\"\n [disabled]=\"disabled\"\n [items]=\"remoteOptions$ | async\"\n bindLabel=\"label\"\n bindValue=\"value\"\n [multiple]=\"false\"\n [hideSelected]=\"true\"\n [compareWith]=\"compareItems\"\n [trackByFn]=\"trackByFn\"\n [loading]=\"loading\"\n typeToSearchText=\"{{ 'enterMoreCharacters' | translate }}\"\n [typeahead]=\"remoteOptionInput$\"\n [(ngModel)]=\"selectedRemoteOptions\"\n [appendTo]=\"'form'\"\n (ngModelChange)=\"selected($event)\"\n >\n </ng-select>\n</div>\n" }]
119
+ }], ctorParameters: function () { return [{ type: i0.Renderer2 }]; }, propDecorators: { placeholder: [{
120
+ type: Input
121
+ }], componentID: [{
122
+ type: Input
123
+ }], disabled: [{
124
+ type: Input
125
+ }], theme: [{
126
+ type: Input
127
+ }], done: [{
128
+ type: Output
129
+ }], dataSource: [{
130
+ type: Input
131
+ }] } });
132
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXJlbW90ZS1zZWxlY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWZvcm1lbnRyeS9zcmMvY29tcG9uZW50cy9uZ3gtcmVtb3RlLXNlbGVjdC9uZ3gtcmVtb3RlLXNlbGVjdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtZm9ybWVudHJ5L3NyYy9jb21wb25lbnRzL25neC1yZW1vdGUtc2VsZWN0L3JlbW90ZS1zZWxlY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxLQUFLLEVBQ0wsVUFBVSxFQUNWLE1BQU0sRUFDTixZQUFZLEVBQ1osU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsTUFBTSxFQUFjLEVBQUUsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkQsT0FBTyxFQUNMLFVBQVUsRUFDVixvQkFBb0IsRUFDcEIsU0FBUyxFQUNULEdBQUcsRUFDSixNQUFNLGdCQUFnQixDQUFDOzs7Ozs7QUFnQnhCLE1BQU0sT0FBTyxxQkFBcUI7SUFrQmhDLElBQ1csVUFBVTtRQUNuQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDMUIsQ0FBQztJQUNELElBQVcsVUFBVSxDQUFDLENBQWE7UUFDakMsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUM7UUFDckIsSUFBSSxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMscUJBQXFCLEVBQUU7WUFDOUQsSUFBSSxDQUFDLGdDQUFnQyxFQUFFLENBQUM7U0FDekM7SUFDSCxDQUFDO0lBRUQsWUFBb0IsUUFBbUI7UUFBbkIsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQTFCdkMseUJBQW9C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S0FBSztnQkFDSSxJQUFJO3NCQUFiLE1BQU07Z0JBSUksVUFBVTtzQkFEcEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgT25Jbml0LFxuICBJbnB1dCxcbiAgZm9yd2FyZFJlZixcbiAgT3V0cHV0LFxuICBFdmVudEVtaXR0ZXIsXG4gIFJlbmRlcmVyMlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGNvbmNhdCwgT2JzZXJ2YWJsZSwgb2YsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIGNhdGNoRXJyb3IsXG4gIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxuICBzd2l0Y2hNYXAsXG4gIHRhcFxufSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBTZWxlY3RPcHRpb24gfSBmcm9tICcuLi8uLi9mb3JtLWVudHJ5L3F1ZXN0aW9uLW1vZGVscy9pbnRlcmZhY2VzL3NlbGVjdC1vcHRpb24nO1xuXG5pbXBvcnQgeyBEYXRhU291cmNlIH0gZnJvbSAnLi4vLi4vZm9ybS1lbnRyeS9xdWVzdGlvbi1tb2RlbHMvaW50ZXJmYWNlcy9kYXRhLXNvdXJjZSc7XG5pbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaCc7XG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdvZmUtcmVtb3RlLXNlbGVjdCcsXG4gIHRlbXBsYXRlVXJsOiAncmVtb3RlLXNlbGVjdC5jb21wb25lbnQuaHRtbCcsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gUmVtb3RlU2VsZWN0Q29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIFJlbW90ZVNlbGVjdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICAvLyBASW5wdXQoKSBkYXRhU291cmNlOiBEYXRhU291cmNlO1xuICByZW1vdGVPcHRpb25zJDogT2JzZXJ2YWJsZTxTZWxlY3RPcHRpb25bXT47XG4gIHJlbW90ZU9wdGlvbnNMb2FkaW5nID0gZmFsc2U7XG4gIHJlbW90ZU9wdGlvbklucHV0JCA9IG5ldyBTdWJqZWN0PHN0cmluZz4oKTtcbiAgc2VsZWN0ZWRSZW1vdGVPcHRpb25zOiBTZWxlY3RPcHRpb247XG4gIGl0ZW1zID0gW107XG4gIHZhbHVlID0gW107XG4gIGxvYWRpbmcgPSBmYWxzZTtcbiAgc2VhcmNoVGV4dCA9ICcnO1xuICBub3RGb3VuZE1zZyA9ICdtYXRjaCBubyBmb3VuZCc7XG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyID0gJ1NlYXJjaC4uLic7XG4gIEBJbnB1dCgpIGNvbXBvbmVudElEOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XG4gIEBJbnB1dCgpIHRoZW1lID0gJ2RhcmsnO1xuICBAT3V0cHV0KCkgZG9uZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBwcml2YXRlIF9kYXRhU291cmNlOiBEYXRhU291cmNlO1xuICBASW5wdXQoKVxuICBwdWJsaWMgZ2V0IGRhdGFTb3VyY2UoKTogRGF0YVNvdXJjZSB7XG4gICAgcmV0dXJuIHRoaXMuX2RhdGFTb3VyY2U7XG4gIH1cbiAgcHVibGljIHNldCBkYXRhU291cmNlKHY6IERhdGFTb3VyY2UpIHtcbiAgICB0aGlzLl9kYXRhU291cmNlID0gdjtcbiAgICBpZiAodGhpcy5fZGF0YVNvdXJjZSAmJiB0aGlzLl9kYXRhU291cmNlLmRhdGFGcm9tU291cmNlQ2hhbmdlZCkge1xuICAgICAgdGhpcy5zdWJzY3JpYmVUb0RhdGFTb3VyY2VEYXRhQ2hhbmdlcygpO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMikge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmxvYWRPcHRpb25zKCk7XG4gIH1cblxuICBzdWJzY3JpYmVUb0RhdGFTb3VyY2VEYXRhQ2hhbmdlcygpIHtcbiAgICB0aGlzLl9kYXRhU291cmNlLmRhdGFGcm9tU291cmNlQ2hhbmdlZC5zdWJzY3JpYmUoKHJlc3VsdHMpID0+IHtcbiAgICAgIGlmIChyZXN1bHRzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgdGhpcy5pdGVtcyA9IHJlc3VsdHM7XG4gICAgICAgIHRoaXMubm90Rm91bmRNc2cgPSAnJztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMubm90Rm91bmRNc2cgPSAnTm90IGZvdW5kJztcbiAgICAgICAgdGhpcy5pdGVtcyA9IFtdO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLy8gdGhpcyBpcyB0aGUgaW5pdGlhbCB2YWx1ZSBzZXQgdG8gdGhlIGNvbXBvbmVudFxuICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgaWYgKHZhbHVlICYmIHZhbHVlICE9PSAnJykge1xuICAgICAgaWYgKHRoaXMuZGF0YVNvdXJjZSkge1xuICAgICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgICAgICB0aGlzLmRhdGFTb3VyY2UucmVzb2x2ZVNlbGVjdGVkVmFsdWUodmFsdWUpLnN1YnNjcmliZShcbiAgICAgICAgICAocmVzdWx0OiBhbnkpID0+IHtcbiAgICAgICAgICAgIHRoaXMuaXRlbXMgPSBbcmVzdWx0XTtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRSZW1vdGVPcHRpb25zID0gcmVzdWx0O1xuICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgfSxcbiAgICAgICAgICAoZXJyb3IpID0+IHtcbiAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLy8gcmVnaXN0ZXJzICdmbicgdGhhdCB3aWxsIGJlIGZpcmVkIHdoZW4gY2hhbmdlcyBhcmUgbWFkZVxuICAvLyB0aGlzIGlzIGhvdyB3ZSBlbWl0IHRoZSBjaGFuZ2VzIGJhY2sgdG8gdGhlIGZvcm1cbiAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSkge1xuICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlID0gZm47XG4gIH1cblxuICAvLyBub3QgdXNlZCwgdXNlZCBmb3IgdG91Y2ggaW5wdXRcbiAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKCkge31cbiAgLy8gY2hhbmdlIGV2ZW50cyBmcm9tIHRoZSB0ZXh0YXJlYVxuICBvbkNoYW5nZShldmVudCkge1xuICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlKGV2ZW50LmlkKTtcbiAgICAvLyAuLi4uLlxuICAgIC8vIHVwZGF0ZSB0aGUgZm9ybVxuICAgIC8vIHRoaXMucHJvcGFnYXRlQ2hhbmdlKHRoaXMuZGF0YSk7XG4gIH1cbiAgc2VsZWN0ZWQoZXZlbnQpIHtcbiAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZShldmVudCk7XG4gIH1cblxuICBjb21wYXJlSXRlbXMgPSAoaXRlbSwgc2VsZWN0ZWQpID0+IHtcbiAgICBpZiAoaXRlbS52YWx1ZSAmJiBzZWxlY3RlZC52YWx1ZSkge1xuICAgICAgcmV0dXJuIGl0ZW0udmFsdWUgPT09IHNlbGVjdGVkLnZhbHVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH07XG5cbiAgLy8gdGhlIG1ldGhvZCBzZXQgaW4gcmVnaXN0ZXJPbkNoYW5nZSwgaXQgaXMganVzdFxuICAvLyBhIHBsYWNlaG9sZGVyIGZvciBhIG1ldGhvZCB0aGF0IHRha2VzIG9uZSBwYXJhbWV0ZXIsXG4gIC8vIHdlIHVzZSBpdCB0byBlbWl0IGNoYW5nZXMgYmFjayB0byB0aGUgZm9ybVxuICBwcml2YXRlIHByb3BhZ2F0ZUNoYW5nZSA9IChjaGFuZ2U6IGFueSkgPT4ge307XG5cbiAgdHJhY2tCeUZuKGl0ZW06IFNlbGVjdE9wdGlvbikge1xuICAgIHJldHVybiBpdGVtLnZhbHVlO1xuICB9XG5cbiAgcHJpdmF0ZSBsb2FkT3B0aW9ucygpIHtcbiAgICB0aGlzLnJlbW90ZU9wdGlvbnMkID0gY29uY2F0KFxuICAgICAgb2YoW10pLCAvLyBkZWZhdWx0IGl0ZW1zXG4gICAgICB0aGlzLnJlbW90ZU9wdGlvbklucHV0JC5waXBlKFxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG4gICAgICAgIH0pLFxuICAgICAgICBzd2l0Y2hNYXAoKHRlcm0pID0+XG4gICAgICAgICAgdGhpcy5kYXRhU291cmNlLnNlYXJjaE9wdGlvbnModGVybSkucGlwZShcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoKCkgPT4gb2YoW10pKSwgLy8gZW1wdHkgbGlzdCBvbiBlcnJvclxuICAgICAgICAgICAgdGFwKCgpID0+ICh0aGlzLmxvYWRpbmcgPSBmYWxzZSkpXG4gICAgICAgICAgKVxuICAgICAgICApXG4gICAgICApXG4gICAgKTtcbiAgfVxufVxuIiwiPGRpdj5cbiAgPG5nLXNlbGVjdFxuICAgIFtuZ0NsYXNzXT1cInsgJ2FmZS1jdXN0b20nOiB0aGVtZSA9PT0gJ2xpZ2h0JyB9XCJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgIFtpdGVtc109XCJyZW1vdGVPcHRpb25zJCB8IGFzeW5jXCJcbiAgICBiaW5kTGFiZWw9XCJsYWJlbFwiXG4gICAgYmluZFZhbHVlPVwidmFsdWVcIlxuICAgIFttdWx0aXBsZV09XCJmYWxzZVwiXG4gICAgW2hpZGVTZWxlY3RlZF09XCJ0cnVlXCJcbiAgICBbY29tcGFyZVdpdGhdPVwiY29tcGFyZUl0ZW1zXCJcbiAgICBbdHJhY2tCeUZuXT1cInRyYWNrQnlGblwiXG4gICAgW2xvYWRpbmddPVwibG9hZGluZ1wiXG4gICAgdHlwZVRvU2VhcmNoVGV4dD1cInt7ICdlbnRlck1vcmVDaGFyYWN0ZXJzJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgW3R5cGVhaGVhZF09XCJyZW1vdGVPcHRpb25JbnB1dCRcIlxuICAgIFsobmdNb2RlbCldPVwic2VsZWN0ZWRSZW1vdGVPcHRpb25zXCJcbiAgICBbYXBwZW5kVG9dPVwiJ2Zvcm0nXCJcbiAgICAobmdNb2RlbENoYW5nZSk9XCJzZWxlY3RlZCgkZXZlbnQpXCJcbiAgPlxuICA8L25nLXNlbGVjdD5cbjwvZGl2PlxuIl19
@@ -6,11 +6,11 @@ import { TranslateModule } from '@ngx-translate/core';
6
6
  import { RemoteSelectComponent } from './ngx-remote-select.component';
7
7
  import * as i0 from "@angular/core";
8
8
  export class NgxRemoteSelectModule {
9
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgxRemoteSelectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
10
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: NgxRemoteSelectModule, declarations: [RemoteSelectComponent], imports: [CommonModule, NgSelectModule, FormsModule, TranslateModule], exports: [RemoteSelectComponent] }); }
11
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgxRemoteSelectModule, imports: [CommonModule, NgSelectModule, FormsModule, TranslateModule] }); }
9
12
  }
10
- NgxRemoteSelectModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: NgxRemoteSelectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
11
- NgxRemoteSelectModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: NgxRemoteSelectModule, declarations: [RemoteSelectComponent], imports: [CommonModule, NgSelectModule, FormsModule, TranslateModule], exports: [RemoteSelectComponent] });
12
- NgxRemoteSelectModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: NgxRemoteSelectModule, imports: [CommonModule, NgSelectModule, FormsModule, TranslateModule] });
13
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: NgxRemoteSelectModule, decorators: [{
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgxRemoteSelectModule, decorators: [{
14
14
  type: NgModule,
15
15
  args: [{
16
16
  imports: [CommonModule, NgSelectModule, FormsModule, TranslateModule],
@@ -19,4 +19,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
19
19
  providers: []
20
20
  }]
21
21
  }] });
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXJlbW90ZS1zZWxlY3QubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWZvcm1lbnRyeS9zcmMvY29tcG9uZW50cy9uZ3gtcmVtb3RlLXNlbGVjdC9uZ3gtcmVtb3RlLXNlbGVjdC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sK0JBQStCLENBQUM7O0FBUXRFLE1BQU0sT0FBTyxxQkFBcUI7O21IQUFyQixxQkFBcUI7b0hBQXJCLHFCQUFxQixpQkFIakIscUJBQXFCLGFBRjFCLFlBQVksRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLGVBQWUsYUFDMUQscUJBQXFCO29IQUlwQixxQkFBcUIsWUFMdEIsWUFBWSxFQUFFLGNBQWMsRUFBRSxXQUFXLEVBQUUsZUFBZTs0RkFLekQscUJBQXFCO2tCQU5qQyxRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLGVBQWUsQ0FBQztvQkFDckUsT0FBTyxFQUFFLENBQUMscUJBQXFCLENBQUM7b0JBQ2hDLFlBQVksRUFBRSxDQUFDLHFCQUFxQixDQUFDO29CQUNyQyxTQUFTLEVBQUUsRUFBRTtpQkFDZCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE5nU2VsZWN0TW9kdWxlIH0gZnJvbSAnQG5nLXNlbGVjdC9uZy1zZWxlY3QnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBSZW1vdGVTZWxlY3RDb21wb25lbnQgfSBmcm9tICcuL25neC1yZW1vdGUtc2VsZWN0LmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIE5nU2VsZWN0TW9kdWxlLCBGb3Jtc01vZHVsZSwgVHJhbnNsYXRlTW9kdWxlXSxcbiAgZXhwb3J0czogW1JlbW90ZVNlbGVjdENvbXBvbmVudF0sXG4gIGRlY2xhcmF0aW9uczogW1JlbW90ZVNlbGVjdENvbXBvbmVudF0sXG4gIHByb3ZpZGVyczogW11cbn0pXG5leHBvcnQgY2xhc3MgTmd4UmVtb3RlU2VsZWN0TW9kdWxlIHt9XG4iXX0=
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXJlbW90ZS1zZWxlY3QubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWZvcm1lbnRyeS9zcmMvY29tcG9uZW50cy9uZ3gtcmVtb3RlLXNlbGVjdC9uZ3gtcmVtb3RlLXNlbGVjdC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sK0JBQStCLENBQUM7O0FBUXRFLE1BQU0sT0FBTyxxQkFBcUI7K0dBQXJCLHFCQUFxQjtnSEFBckIscUJBQXFCLGlCQUhqQixxQkFBcUIsYUFGMUIsWUFBWSxFQUFFLGNBQWMsRUFBRSxXQUFXLEVBQUUsZUFBZSxhQUMxRCxxQkFBcUI7Z0hBSXBCLHFCQUFxQixZQUx0QixZQUFZLEVBQUUsY0FBYyxFQUFFLFdBQVcsRUFBRSxlQUFlOzs0RkFLekQscUJBQXFCO2tCQU5qQyxRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLGVBQWUsQ0FBQztvQkFDckUsT0FBTyxFQUFFLENBQUMscUJBQXFCLENBQUM7b0JBQ2hDLFlBQVksRUFBRSxDQUFDLHFCQUFxQixDQUFDO29CQUNyQyxTQUFTLEVBQUUsRUFBRTtpQkFDZCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE5nU2VsZWN0TW9kdWxlIH0gZnJvbSAnQG5nLXNlbGVjdC9uZy1zZWxlY3QnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBSZW1vdGVTZWxlY3RDb21wb25lbnQgfSBmcm9tICcuL25neC1yZW1vdGUtc2VsZWN0LmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIE5nU2VsZWN0TW9kdWxlLCBGb3Jtc01vZHVsZSwgVHJhbnNsYXRlTW9kdWxlXSxcbiAgZXhwb3J0czogW1JlbW90ZVNlbGVjdENvbXBvbmVudF0sXG4gIGRlY2xhcmF0aW9uczogW1JlbW90ZVNlbGVjdENvbXBvbmVudF0sXG4gIHByb3ZpZGVyczogW11cbn0pXG5leHBvcnQgY2xhc3MgTmd4UmVtb3RlU2VsZWN0TW9kdWxlIHt9XG4iXX0=