@openmrs/ngx-formentry 3.0.1-pre.19

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 (344) hide show
  1. package/abstract-controls-extension/afe-control-type.d.ts +6 -0
  2. package/abstract-controls-extension/afe-form-array.d.ts +43 -0
  3. package/abstract-controls-extension/afe-form-control.d.ts +46 -0
  4. package/abstract-controls-extension/afe-form-group.d.ts +38 -0
  5. package/abstract-controls-extension/control-extensions.d.ts +4 -0
  6. package/abstract-controls-extension/index.d.ts +4 -0
  7. package/abstract-controls-extension/value-change.listener.d.ts +4 -0
  8. package/bundles/openmrs-ngx-formentry.umd.js +15020 -0
  9. package/bundles/openmrs-ngx-formentry.umd.js.map +1 -0
  10. package/bundles/openmrs-ngx-formentry.umd.min.js +2 -0
  11. package/bundles/openmrs-ngx-formentry.umd.min.js.map +1 -0
  12. package/change-tracking/control-relation.d.ts +12 -0
  13. package/change-tracking/control-relations.d.ts +12 -0
  14. package/components/afe-ng-select.component.d.ts +26 -0
  15. package/components/appointments-overview/appointments-overview.component.d.ts +15 -0
  16. package/components/check-box/checkbox.component.d.ts +16 -0
  17. package/components/check-box/checkbox.module.d.ts +2 -0
  18. package/components/custom-component-wrapper/custom-component-wrapper..module.d.ts +2 -0
  19. package/components/custom-component-wrapper/custom-component-wrapper.component.d.ts +11 -0
  20. package/components/custom-control-wrapper/custom-control-wrapper..module.d.ts +2 -0
  21. package/components/custom-control-wrapper/custom-control-wrapper.component.d.ts +25 -0
  22. package/components/date-time-picker/date-picker/date-picker.component.d.ts +42 -0
  23. package/components/date-time-picker/date-time-picker.component.d.ts +26 -0
  24. package/components/date-time-picker/date-time-picker.module.d.ts +5 -0
  25. package/components/date-time-picker/picker-modal/modal.component.d.ts +10 -0
  26. package/components/date-time-picker/pipes/moment.pipe.d.ts +8 -0
  27. package/components/date-time-picker/time-picker/time-picker.component.d.ts +29 -0
  28. package/components/file-upload/file-upload.component.d.ts +26 -0
  29. package/components/file-upload/file-upload.module.d.ts +2 -0
  30. package/components/file-upload/secure.pipe.d.ts +23 -0
  31. package/components/input/input.directive.d.ts +28 -0
  32. package/components/input/input.module.d.ts +2 -0
  33. package/components/input/label.component.d.ts +87 -0
  34. package/components/input/text-area.directive.d.ts +21 -0
  35. package/components/ngx-datetime-picker/ngx-datetime-picker.component.d.ts +17 -0
  36. package/components/ngx-datetime-picker/ngx-datetime-picker.module.d.ts +5 -0
  37. package/components/ngx-pick-datetime/lib/date-time/adapter/date-time-adapter.class.d.ts +189 -0
  38. package/components/ngx-pick-datetime/lib/date-time/adapter/date-time-format.class.d.ts +15 -0
  39. package/components/ngx-pick-datetime/lib/date-time/adapter/native-date-time-adapter.class.d.ts +73 -0
  40. package/components/ngx-pick-datetime/lib/date-time/adapter/native-date-time-format.class.d.ts +5 -0
  41. package/components/ngx-pick-datetime/lib/date-time/adapter/native-date-time.module.d.ts +7 -0
  42. package/components/ngx-pick-datetime/lib/date-time/calendar-body.component.d.ts +77 -0
  43. package/components/ngx-pick-datetime/lib/date-time/calendar-month-view.component.d.ts +139 -0
  44. package/components/ngx-pick-datetime/lib/date-time/calendar-multi-year-view.component.d.ts +109 -0
  45. package/components/ngx-pick-datetime/lib/date-time/calendar-year-view.component.d.ts +120 -0
  46. package/components/ngx-pick-datetime/lib/date-time/calendar.component.d.ts +141 -0
  47. package/components/ngx-pick-datetime/lib/date-time/date-time-inline.component.d.ts +90 -0
  48. package/components/ngx-pick-datetime/lib/date-time/date-time-picker-container.component.d.ts +122 -0
  49. package/components/ngx-pick-datetime/lib/date-time/date-time-picker-input.directive.d.ts +152 -0
  50. package/components/ngx-pick-datetime/lib/date-time/date-time-picker-intl.service.d.ts +51 -0
  51. package/components/ngx-pick-datetime/lib/date-time/date-time-picker-trigger.directive.d.ts +21 -0
  52. package/components/ngx-pick-datetime/lib/date-time/date-time-picker.animations.d.ts +8 -0
  53. package/components/ngx-pick-datetime/lib/date-time/date-time-picker.component.d.ts +157 -0
  54. package/components/ngx-pick-datetime/lib/date-time/date-time.class.d.ts +86 -0
  55. package/components/ngx-pick-datetime/lib/date-time/date-time.module.d.ts +5 -0
  56. package/components/ngx-pick-datetime/lib/date-time/numberedFixLen.pipe.d.ts +7 -0
  57. package/components/ngx-pick-datetime/lib/date-time/timer-box.component.d.ts +35 -0
  58. package/components/ngx-pick-datetime/lib/date-time/timer.component.d.ts +129 -0
  59. package/components/ngx-pick-datetime/lib/dialog/dialog-config.class.d.ts +93 -0
  60. package/components/ngx-pick-datetime/lib/dialog/dialog-container.component.d.ts +56 -0
  61. package/components/ngx-pick-datetime/lib/dialog/dialog-ref.class.d.ts +49 -0
  62. package/components/ngx-pick-datetime/lib/dialog/dialog.module.d.ts +5 -0
  63. package/components/ngx-pick-datetime/lib/dialog/dialog.service.d.ts +70 -0
  64. package/components/ngx-pick-datetime/lib/utils/index.d.ts +4 -0
  65. package/components/ngx-pick-datetime/lib/utils/object.utils.d.ts +11 -0
  66. package/components/ngx-remote-select/ngx-remote-select.component.d.ts +37 -0
  67. package/components/ngx-remote-select/ngx-remote-select.module.d.ts +2 -0
  68. package/components/ngx-tabset/components/tab-set.d.ts +16 -0
  69. package/components/ngx-tabset/components/tab.d.ts +10 -0
  70. package/components/ngx-tabset/directives/hover-class.directive.d.ts +8 -0
  71. package/components/ngx-tabset/modules/ngx-tabset.module.d.ts +11 -0
  72. package/components/number-input/number-input.component.d.ts +148 -0
  73. package/components/number-input/number-input.module.d.ts +2 -0
  74. package/components/select/optgroup.directive.d.ts +3 -0
  75. package/components/select/option.directive.d.ts +3 -0
  76. package/components/select/select.component.d.ts +112 -0
  77. package/components/select/select.module.d.ts +2 -0
  78. package/esm2015/abstract-controls-extension/afe-control-type.js +8 -0
  79. package/esm2015/abstract-controls-extension/afe-form-array.js +85 -0
  80. package/esm2015/abstract-controls-extension/afe-form-control.js +88 -0
  81. package/esm2015/abstract-controls-extension/afe-form-group.js +61 -0
  82. package/esm2015/abstract-controls-extension/control-extensions.js +5 -0
  83. package/esm2015/abstract-controls-extension/index.js +5 -0
  84. package/esm2015/abstract-controls-extension/value-change.listener.js +2 -0
  85. package/esm2015/change-tracking/control-relation.js +44 -0
  86. package/esm2015/change-tracking/control-relations.js +32 -0
  87. package/esm2015/components/afe-ng-select.component.js +87 -0
  88. package/esm2015/components/appointments-overview/appointments-overview.component.js +119 -0
  89. package/esm2015/components/check-box/checkbox.component.js +77 -0
  90. package/esm2015/components/check-box/checkbox.module.js +14 -0
  91. package/esm2015/components/custom-component-wrapper/custom-component-wrapper..module.js +16 -0
  92. package/esm2015/components/custom-component-wrapper/custom-component-wrapper.component.js +18 -0
  93. package/esm2015/components/custom-control-wrapper/custom-control-wrapper..module.js +17 -0
  94. package/esm2015/components/custom-control-wrapper/custom-control-wrapper.component.js +63 -0
  95. package/esm2015/components/date-time-picker/date-picker/date-picker.component.js +182 -0
  96. package/esm2015/components/date-time-picker/date-time-picker.component.js +104 -0
  97. package/esm2015/components/date-time-picker/date-time-picker.module.js +34 -0
  98. package/esm2015/components/date-time-picker/picker-modal/modal.component.js +30 -0
  99. package/esm2015/components/date-time-picker/pipes/moment.pipe.js +13 -0
  100. package/esm2015/components/date-time-picker/time-picker/time-picker.component.js +114 -0
  101. package/esm2015/components/file-upload/file-upload.component.js +110 -0
  102. package/esm2015/components/file-upload/file-upload.module.js +24 -0
  103. package/esm2015/components/file-upload/secure.pipe.js +102 -0
  104. package/esm2015/components/input/input.directive.js +55 -0
  105. package/esm2015/components/input/input.module.js +18 -0
  106. package/esm2015/components/input/label.component.js +177 -0
  107. package/esm2015/components/input/text-area.directive.js +40 -0
  108. package/esm2015/components/ngx-datetime-picker/ngx-datetime-picker.component.js +60 -0
  109. package/esm2015/components/ngx-datetime-picker/ngx-datetime-picker.module.js +26 -0
  110. package/esm2015/components/ngx-pick-datetime/lib/date-time/adapter/date-time-adapter.class.js +114 -0
  111. package/esm2015/components/ngx-pick-datetime/lib/date-time/adapter/date-time-format.class.js +7 -0
  112. package/esm2015/components/ngx-pick-datetime/lib/date-time/adapter/native-date-time-adapter.class.js +344 -0
  113. package/esm2015/components/ngx-pick-datetime/lib/date-time/adapter/native-date-time-format.class.js +16 -0
  114. package/esm2015/components/ngx-pick-datetime/lib/date-time/adapter/native-date-time.module.js +30 -0
  115. package/esm2015/components/ngx-pick-datetime/lib/date-time/calendar-body.component.js +149 -0
  116. package/esm2015/components/ngx-pick-datetime/lib/date-time/calendar-month-view.component.js +429 -0
  117. package/esm2015/components/ngx-pick-datetime/lib/date-time/calendar-multi-year-view.component.js +367 -0
  118. package/esm2015/components/ngx-pick-datetime/lib/date-time/calendar-year-view.component.js +359 -0
  119. package/esm2015/components/ngx-pick-datetime/lib/date-time/calendar.component.js +334 -0
  120. package/esm2015/components/ngx-pick-datetime/lib/date-time/date-time-inline.component.js +251 -0
  121. package/esm2015/components/ngx-pick-datetime/lib/date-time/date-time-picker-container.component.js +380 -0
  122. package/esm2015/components/ngx-pick-datetime/lib/date-time/date-time-picker-input.directive.js +590 -0
  123. package/esm2015/components/ngx-pick-datetime/lib/date-time/date-time-picker-intl.service.js +60 -0
  124. package/esm2015/components/ngx-pick-datetime/lib/date-time/date-time-picker-trigger.directive.js +71 -0
  125. package/esm2015/components/ngx-pick-datetime/lib/date-time/date-time-picker.animations.js +21 -0
  126. package/esm2015/components/ngx-pick-datetime/lib/date-time/date-time-picker.component.js +512 -0
  127. package/esm2015/components/ngx-pick-datetime/lib/date-time/date-time.class.js +153 -0
  128. package/esm2015/components/ngx-pick-datetime/lib/date-time/date-time.module.js +58 -0
  129. package/esm2015/components/ngx-pick-datetime/lib/date-time/numberedFixLen.pipe.js +24 -0
  130. package/esm2015/components/ngx-pick-datetime/lib/date-time/timer-box.component.js +85 -0
  131. package/esm2015/components/ngx-pick-datetime/lib/date-time/timer.component.js +292 -0
  132. package/esm2015/components/ngx-pick-datetime/lib/dialog/dialog-config.class.js +56 -0
  133. package/esm2015/components/ngx-pick-datetime/lib/dialog/dialog-container.component.js +208 -0
  134. package/esm2015/components/ngx-pick-datetime/lib/dialog/dialog-ref.class.js +119 -0
  135. package/esm2015/components/ngx-pick-datetime/lib/dialog/dialog.module.js +22 -0
  136. package/esm2015/components/ngx-pick-datetime/lib/dialog/dialog.service.js +222 -0
  137. package/esm2015/components/ngx-pick-datetime/lib/utils/index.js +5 -0
  138. package/esm2015/components/ngx-pick-datetime/lib/utils/object.utils.js +26 -0
  139. package/esm2015/components/ngx-remote-select/ngx-remote-select.component.js +121 -0
  140. package/esm2015/components/ngx-remote-select/ngx-remote-select.module.js +16 -0
  141. package/esm2015/components/ngx-tabset/components/tab-set.js +67 -0
  142. package/esm2015/components/ngx-tabset/components/tab.js +35 -0
  143. package/esm2015/components/ngx-tabset/directives/hover-class.directive.js +26 -0
  144. package/esm2015/components/ngx-tabset/modules/ngx-tabset.module.js +33 -0
  145. package/esm2015/components/number-input/number-input.component.js +203 -0
  146. package/esm2015/components/number-input/number-input.module.js +15 -0
  147. package/esm2015/components/select/optgroup.directive.js +17 -0
  148. package/esm2015/components/select/option.directive.js +17 -0
  149. package/esm2015/components/select/select.component.js +293 -0
  150. package/esm2015/components/select/select.module.js +18 -0
  151. package/esm2015/form-entry/control-alerts/alert-helpers.js +40 -0
  152. package/esm2015/form-entry/control-alerts/can-generate-alert.js +2 -0
  153. package/esm2015/form-entry/control-calculators/can-calculate.js +2 -0
  154. package/esm2015/form-entry/control-hiders-disablers/can-disable.js +2 -0
  155. package/esm2015/form-entry/control-hiders-disablers/can-hide.js +2 -0
  156. package/esm2015/form-entry/control-hiders-disablers/disabler-helper.js +33 -0
  157. package/esm2015/form-entry/control-hiders-disablers/hider-helpers.js +40 -0
  158. package/esm2015/form-entry/data-sources/data-sources.js +30 -0
  159. package/esm2015/form-entry/data-sources/dummy-data-source.js +104 -0
  160. package/esm2015/form-entry/directives/collapse-animations.js +11 -0
  161. package/esm2015/form-entry/directives/collapse.directive.js +157 -0
  162. package/esm2015/form-entry/directives/historical-value-directive.js +66 -0
  163. package/esm2015/form-entry/error-renderer/error-renderer.component.js +55 -0
  164. package/esm2015/form-entry/expression-runner/expression-runner.js +168 -0
  165. package/esm2015/form-entry/form-entry.module.js +107 -0
  166. package/esm2015/form-entry/form-factory/control-relations.factory.js +236 -0
  167. package/esm2015/form-entry/form-factory/form-control.service.js +118 -0
  168. package/esm2015/form-entry/form-factory/form-node.js +81 -0
  169. package/esm2015/form-entry/form-factory/form.factory.js +132 -0
  170. package/esm2015/form-entry/form-factory/form.js +193 -0
  171. package/esm2015/form-entry/form-factory/hiders-disablers.factory.js +66 -0
  172. package/esm2015/form-entry/form-factory/question.factory.js +864 -0
  173. package/esm2015/form-entry/form-factory/show-messages.factory.js +30 -0
  174. package/esm2015/form-entry/form-factory/validation.factory.js +145 -0
  175. package/esm2015/form-entry/form-renderer/form-renderer.component.css.js +182 -0
  176. package/esm2015/form-entry/form-renderer/form-renderer.component.js +231 -0
  177. package/esm2015/form-entry/helpers/historical-expression-helper-service.js +38 -0
  178. package/esm2015/form-entry/helpers/historical-field-helper-service.js +36 -0
  179. package/esm2015/form-entry/helpers/js-expression-helper.js +238 -0
  180. package/esm2015/form-entry/pipes/time-ago.pipe.js +107 -0
  181. package/esm2015/form-entry/question-models/checkbox.model.js +11 -0
  182. package/esm2015/form-entry/question-models/conditional-validation.model.js +9 -0
  183. package/esm2015/form-entry/question-models/custom-control-question.model.js +10 -0
  184. package/esm2015/form-entry/question-models/date-question.js +12 -0
  185. package/esm2015/form-entry/question-models/date-validation.model.js +10 -0
  186. package/esm2015/form-entry/question-models/file-upload-question.js +13 -0
  187. package/esm2015/form-entry/question-models/group-question.js +12 -0
  188. package/esm2015/form-entry/question-models/interfaces/base-options.js +2 -0
  189. package/esm2015/form-entry/question-models/interfaces/checkbox-options.js +2 -0
  190. package/esm2015/form-entry/question-models/interfaces/data-source.js +2 -0
  191. package/esm2015/form-entry/question-models/interfaces/date-question-options.js +2 -0
  192. package/esm2015/form-entry/question-models/interfaces/file-upload-question-options.js +2 -0
  193. package/esm2015/form-entry/question-models/interfaces/group-question-options.js +2 -0
  194. package/esm2015/form-entry/question-models/interfaces/multi-select-options.js +2 -0
  195. package/esm2015/form-entry/question-models/interfaces/nested-questions.js +7 -0
  196. package/esm2015/form-entry/question-models/interfaces/repeating-question-options.js +2 -0
  197. package/esm2015/form-entry/question-models/interfaces/select-option.js +2 -0
  198. package/esm2015/form-entry/question-models/interfaces/select-question-options.js +2 -0
  199. package/esm2015/form-entry/question-models/interfaces/test-order-question-options.js +2 -0
  200. package/esm2015/form-entry/question-models/interfaces/text-area-question-options.js +2 -0
  201. package/esm2015/form-entry/question-models/interfaces/text-question-options.js +2 -0
  202. package/esm2015/form-entry/question-models/interfaces/ui-select-question-options.js +2 -0
  203. package/esm2015/form-entry/question-models/js-expression-validation.model.js +8 -0
  204. package/esm2015/form-entry/question-models/max-validation.model.js +9 -0
  205. package/esm2015/form-entry/question-models/min-validation.model.js +9 -0
  206. package/esm2015/form-entry/question-models/models.js +12 -0
  207. package/esm2015/form-entry/question-models/multi-select-question.js +11 -0
  208. package/esm2015/form-entry/question-models/pair.model.js +7 -0
  209. package/esm2015/form-entry/question-models/question-base.js +25 -0
  210. package/esm2015/form-entry/question-models/rendering-type.js +9 -0
  211. package/esm2015/form-entry/question-models/repeating-question.js +11 -0
  212. package/esm2015/form-entry/question-models/select-option.js +7 -0
  213. package/esm2015/form-entry/question-models/select-question.js +12 -0
  214. package/esm2015/form-entry/question-models/test-order-question.js +15 -0
  215. package/esm2015/form-entry/question-models/text-area-input-question.js +13 -0
  216. package/esm2015/form-entry/question-models/text-input-question.js +10 -0
  217. package/esm2015/form-entry/question-models/ui-select-question.js +11 -0
  218. package/esm2015/form-entry/question-models/validation.model.js +7 -0
  219. package/esm2015/form-entry/services/debug-mode.service.js +22 -0
  220. package/esm2015/form-entry/services/form-errors.service.js +18 -0
  221. package/esm2015/form-entry/services/form-schema-compiler.service.js +246 -0
  222. package/esm2015/form-entry/services/historical-encounter-data.service.js +170 -0
  223. package/esm2015/form-entry/utils/messages.js +12 -0
  224. package/esm2015/form-entry/validators/conditional-answered.validator.js +46 -0
  225. package/esm2015/form-entry/validators/conditional-required.validator.js +40 -0
  226. package/esm2015/form-entry/validators/date.validator.js +18 -0
  227. package/esm2015/form-entry/validators/future-date-restriction.validator.js +21 -0
  228. package/esm2015/form-entry/validators/js-expression.validator.js +26 -0
  229. package/esm2015/form-entry/validators/max-date.validator.js +23 -0
  230. package/esm2015/form-entry/validators/max.validator.js +17 -0
  231. package/esm2015/form-entry/validators/min-date.validator.js +23 -0
  232. package/esm2015/form-entry/validators/min.validator.js +17 -0
  233. package/esm2015/form-entry/validators/required.validator.js +11 -0
  234. package/esm2015/form-entry/validators/validations.js +5 -0
  235. package/esm2015/form-entry/value-adapters/encounter.adapter.js +172 -0
  236. package/esm2015/form-entry/value-adapters/obs-adapter-helper.js +496 -0
  237. package/esm2015/form-entry/value-adapters/obs.adapter.js +545 -0
  238. package/esm2015/form-entry/value-adapters/order.adapter.js +186 -0
  239. package/esm2015/form-entry/value-adapters/person-attribute.adapter.js +87 -0
  240. package/esm2015/form-entry/value-adapters/value.adapter.js +2 -0
  241. package/esm2015/lib/index.js +49 -0
  242. package/esm2015/openmrs-ngx-formentry.js +76 -0
  243. package/esm2015/public_api.js +2 -0
  244. package/esm2015/shared.module.js +15 -0
  245. package/fesm2015/openmrs-ngx-formentry.js +13461 -0
  246. package/fesm2015/openmrs-ngx-formentry.js.map +1 -0
  247. package/form-entry/control-alerts/alert-helpers.d.ts +9 -0
  248. package/form-entry/control-alerts/can-generate-alert.d.ts +18 -0
  249. package/form-entry/control-calculators/can-calculate.d.ts +5 -0
  250. package/form-entry/control-hiders-disablers/can-disable.d.ts +19 -0
  251. package/form-entry/control-hiders-disablers/can-hide.d.ts +20 -0
  252. package/form-entry/control-hiders-disablers/disabler-helper.d.ts +7 -0
  253. package/form-entry/control-hiders-disablers/hider-helpers.d.ts +9 -0
  254. package/form-entry/data-sources/data-sources.d.ts +7 -0
  255. package/form-entry/data-sources/dummy-data-source.d.ts +18 -0
  256. package/form-entry/directives/collapse-animations.d.ts +4 -0
  257. package/form-entry/directives/collapse.directive.d.ts +42 -0
  258. package/form-entry/directives/historical-value-directive.d.ts +13 -0
  259. package/form-entry/error-renderer/error-renderer.component.d.ts +17 -0
  260. package/form-entry/expression-runner/expression-runner.d.ts +15 -0
  261. package/form-entry/form-entry.module.d.ts +2 -0
  262. package/form-entry/form-factory/control-relations.factory.d.ts +15 -0
  263. package/form-entry/form-factory/form-control.service.d.ts +22 -0
  264. package/form-entry/form-factory/form-node.d.ts +51 -0
  265. package/form-entry/form-factory/form.d.ts +28 -0
  266. package/form-entry/form-factory/form.factory.d.ts +23 -0
  267. package/form-entry/form-factory/hiders-disablers.factory.d.ts +17 -0
  268. package/form-entry/form-factory/question.factory.d.ts +56 -0
  269. package/form-entry/form-factory/show-messages.factory.d.ts +12 -0
  270. package/form-entry/form-factory/validation.factory.d.ts +22 -0
  271. package/form-entry/form-renderer/form-renderer.component.css.d.ts +1 -0
  272. package/form-entry/form-renderer/form-renderer.component.d.ts +52 -0
  273. package/form-entry/helpers/historical-expression-helper-service.d.ts +5 -0
  274. package/form-entry/helpers/historical-field-helper-service.d.ts +4 -0
  275. package/form-entry/helpers/js-expression-helper.d.ts +22 -0
  276. package/form-entry/pipes/time-ago.pipe.d.ts +11 -0
  277. package/form-entry/question-models/checkbox.model.d.ts +9 -0
  278. package/form-entry/question-models/conditional-validation.model.d.ts +6 -0
  279. package/form-entry/question-models/custom-control-question.model.d.ts +6 -0
  280. package/form-entry/question-models/date-question.d.ts +7 -0
  281. package/form-entry/question-models/date-validation.model.d.ts +5 -0
  282. package/form-entry/question-models/file-upload-question.d.ts +8 -0
  283. package/form-entry/question-models/group-question.d.ts +8 -0
  284. package/form-entry/question-models/interfaces/base-options.d.ts +28 -0
  285. package/form-entry/question-models/interfaces/checkbox-options.d.ts +7 -0
  286. package/form-entry/question-models/interfaces/data-source.d.ts +10 -0
  287. package/form-entry/question-models/interfaces/date-question-options.d.ts +3 -0
  288. package/form-entry/question-models/interfaces/file-upload-question-options.d.ts +5 -0
  289. package/form-entry/question-models/interfaces/group-question-options.d.ts +5 -0
  290. package/form-entry/question-models/interfaces/multi-select-options.d.ts +4 -0
  291. package/form-entry/question-models/interfaces/nested-questions.d.ts +6 -0
  292. package/form-entry/question-models/interfaces/repeating-question-options.d.ts +5 -0
  293. package/form-entry/question-models/interfaces/select-option.d.ts +4 -0
  294. package/form-entry/question-models/interfaces/select-question-options.d.ts +9 -0
  295. package/form-entry/question-models/interfaces/test-order-question-options.d.ts +14 -0
  296. package/form-entry/question-models/interfaces/text-area-question-options.d.ts +5 -0
  297. package/form-entry/question-models/interfaces/text-question-options.d.ts +4 -0
  298. package/form-entry/question-models/interfaces/ui-select-question-options.d.ts +9 -0
  299. package/form-entry/question-models/js-expression-validation.model.d.ts +5 -0
  300. package/form-entry/question-models/max-validation.model.d.ts +5 -0
  301. package/form-entry/question-models/min-validation.model.d.ts +5 -0
  302. package/form-entry/question-models/models.d.ts +15 -0
  303. package/form-entry/question-models/multi-select-question.d.ts +9 -0
  304. package/form-entry/question-models/pair.model.d.ts +5 -0
  305. package/form-entry/question-models/question-base.d.ts +40 -0
  306. package/form-entry/question-models/rendering-type.d.ts +7 -0
  307. package/form-entry/question-models/repeating-question.d.ts +7 -0
  308. package/form-entry/question-models/select-option.d.ts +6 -0
  309. package/form-entry/question-models/select-question.d.ts +10 -0
  310. package/form-entry/question-models/test-order-question.d.ts +13 -0
  311. package/form-entry/question-models/text-area-input-question.d.ts +7 -0
  312. package/form-entry/question-models/text-input-question.d.ts +6 -0
  313. package/form-entry/question-models/ui-select-question.d.ts +11 -0
  314. package/form-entry/question-models/validation.model.d.ts +5 -0
  315. package/form-entry/services/debug-mode.service.d.ts +5 -0
  316. package/form-entry/services/form-errors.service.d.ts +10 -0
  317. package/form-entry/services/form-schema-compiler.service.d.ts +20 -0
  318. package/form-entry/services/historical-encounter-data.service.d.ts +12 -0
  319. package/form-entry/utils/messages.d.ts +11 -0
  320. package/form-entry/validators/conditional-answered.validator.d.ts +8 -0
  321. package/form-entry/validators/conditional-required.validator.d.ts +8 -0
  322. package/form-entry/validators/date.validator.d.ts +7 -0
  323. package/form-entry/validators/future-date-restriction.validator.d.ts +7 -0
  324. package/form-entry/validators/js-expression.validator.d.ts +8 -0
  325. package/form-entry/validators/max-date.validator.d.ts +6 -0
  326. package/form-entry/validators/max.validator.d.ts +6 -0
  327. package/form-entry/validators/min-date.validator.d.ts +6 -0
  328. package/form-entry/validators/min.validator.d.ts +6 -0
  329. package/form-entry/validators/required.validator.d.ts +6 -0
  330. package/form-entry/validators/validations.d.ts +4 -0
  331. package/form-entry/value-adapters/encounter.adapter.d.ts +23 -0
  332. package/form-entry/value-adapters/obs-adapter-helper.d.ts +27 -0
  333. package/form-entry/value-adapters/obs.adapter.d.ts +35 -0
  334. package/form-entry/value-adapters/order.adapter.d.ts +17 -0
  335. package/form-entry/value-adapters/person-attribute.adapter.d.ts +12 -0
  336. package/form-entry/value-adapters/value.adapter.d.ts +5 -0
  337. package/lib/index.d.ts +49 -0
  338. package/openmrs-ngx-formentry.d.ts +85 -0
  339. package/openmrs-ngx-formentry.metadata.json +1 -0
  340. package/package.json +35 -0
  341. package/public_api.d.ts +1 -0
  342. package/shared.module.d.ts +2 -0
  343. package/styles/ngx-formentry.css +374 -0
  344. package/styles/picker.min.css +770 -0
@@ -0,0 +1,119 @@
1
+ import { ESCAPE } from '@angular/cdk/keycodes';
2
+ import { Subject, Subscription } from 'rxjs';
3
+ import { filter, take } from 'rxjs/operators';
4
+ export class OwlDialogRef {
5
+ constructor(overlayRef, container, id, location) {
6
+ this.overlayRef = overlayRef;
7
+ this.container = container;
8
+ this.id = id;
9
+ this._beforeClose$ = new Subject();
10
+ this._afterOpen$ = new Subject();
11
+ this._afterClosed$ = new Subject();
12
+ /** Subscription to changes in the user's location. */
13
+ this.locationChanged = Subscription.EMPTY;
14
+ /** Whether the user is allowed to close the dialog. */
15
+ this.disableClose = this.container.config.disableClose;
16
+ this.container.animationStateChanged
17
+ .pipe(filter((event) => event.phaseName === 'done' && event.toState === 'enter'), take(1))
18
+ .subscribe(() => {
19
+ this._afterOpen$.next();
20
+ this._afterOpen$.complete();
21
+ });
22
+ this.container.animationStateChanged
23
+ .pipe(filter((event) => event.phaseName === 'done' && event.toState === 'exit'), take(1))
24
+ .subscribe(() => {
25
+ this.overlayRef.dispose();
26
+ this.locationChanged.unsubscribe();
27
+ this._afterClosed$.next(this.result);
28
+ this._afterClosed$.complete();
29
+ this.componentInstance = null;
30
+ });
31
+ this.overlayRef
32
+ .keydownEvents()
33
+ .pipe(filter((event) => event.keyCode === ESCAPE && !this.disableClose))
34
+ .subscribe(() => this.close());
35
+ if (location) {
36
+ this.locationChanged = location.subscribe(() => {
37
+ if (this.container.config.closeOnNavigation) {
38
+ this.close();
39
+ }
40
+ });
41
+ }
42
+ }
43
+ close(dialogResult) {
44
+ this.result = dialogResult;
45
+ this.container.animationStateChanged
46
+ .pipe(filter((event) => event.phaseName === 'start'), take(1))
47
+ .subscribe(() => {
48
+ this._beforeClose$.next(dialogResult);
49
+ this._beforeClose$.complete();
50
+ this.overlayRef.detachBackdrop();
51
+ });
52
+ this.container.startExitAnimation();
53
+ }
54
+ /**
55
+ * Gets an observable that emits when the overlay's backdrop has been clicked.
56
+ */
57
+ backdropClick() {
58
+ return this.overlayRef.backdropClick();
59
+ }
60
+ /**
61
+ * Gets an observable that emits when keydown events are targeted on the overlay.
62
+ */
63
+ keydownEvents() {
64
+ return this.overlayRef.keydownEvents();
65
+ }
66
+ /**
67
+ * Updates the dialog's position.
68
+ * @param position New dialog position.
69
+ */
70
+ updatePosition(position) {
71
+ const strategy = this.getPositionStrategy();
72
+ if (position && (position.left || position.right)) {
73
+ position.left
74
+ ? strategy.left(position.left)
75
+ : strategy.right(position.right);
76
+ }
77
+ else {
78
+ strategy.centerHorizontally();
79
+ }
80
+ if (position && (position.top || position.bottom)) {
81
+ position.top
82
+ ? strategy.top(position.top)
83
+ : strategy.bottom(position.bottom);
84
+ }
85
+ else {
86
+ strategy.centerVertically();
87
+ }
88
+ this.overlayRef.updatePosition();
89
+ return this;
90
+ }
91
+ /**
92
+ * Updates the dialog's width and height.
93
+ * @param width New width of the dialog.
94
+ * @param height New height of the dialog.
95
+ */
96
+ updateSize(width = 'auto', height = 'auto') {
97
+ this.getPositionStrategy().width(width).height(height);
98
+ this.overlayRef.updatePosition();
99
+ return this;
100
+ }
101
+ isAnimating() {
102
+ return this.container.isAnimating;
103
+ }
104
+ afterOpen() {
105
+ return this._afterOpen$.asObservable();
106
+ }
107
+ beforeClose() {
108
+ return this._beforeClose$.asObservable();
109
+ }
110
+ afterClosed() {
111
+ return this._afterClosed$.asObservable();
112
+ }
113
+ /** Fetches the position strategy object from the overlay ref. */
114
+ getPositionStrategy() {
115
+ return this.overlayRef.getConfig()
116
+ .positionStrategy;
117
+ }
118
+ }
119
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLXJlZi5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1mb3JtZW50cnkvc3JjL2NvbXBvbmVudHMvbmd4LXBpY2stZGF0ZXRpbWUvbGliL2RpYWxvZy9kaWFsb2ctcmVmLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU1BLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUcvQyxPQUFPLEVBRUwsT0FBTyxFQUNQLFlBQVksRUFFYixNQUFNLE1BQU0sQ0FBQztBQUNkLE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFOUMsTUFBTSxPQUFPLFlBQVk7SUFvQnZCLFlBQ1UsVUFBc0IsRUFDdEIsU0FBc0MsRUFDOUIsRUFBVSxFQUMxQixRQUFtQjtRQUhYLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsY0FBUyxHQUFULFNBQVMsQ0FBNkI7UUFDOUIsT0FBRSxHQUFGLEVBQUUsQ0FBUTtRQXBCcEIsa0JBQWEsR0FBRyxJQUFJLE9BQU8sRUFBTyxDQUFDO1FBRW5DLGdCQUFXLEdBQUcsSUFBSSxPQUFPLEVBQU8sQ0FBQztRQUVqQyxrQkFBYSxHQUFHLElBQUksT0FBTyxFQUFPLENBQUM7UUFFM0Msc0RBQXNEO1FBQzlDLG9CQUFlLEdBQWtCLFlBQVksQ0FBQyxLQUFLLENBQUM7UUFPNUQsdURBQXVEO1FBQ2hELGlCQUFZLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDO1FBUXZELElBQUksQ0FBQyxTQUFTLENBQUMscUJBQXFCO2FBQ2pDLElBQUksQ0FDSCxNQUFNLENBQ0osQ0FBQyxLQUFxQixFQUFFLEVBQUUsQ0FDeEIsS0FBSyxDQUFDLFNBQVMsS0FBSyxNQUFNLElBQUksS0FBSyxDQUFDLE9BQU8sS0FBSyxPQUFPLENBQzFELEVBQ0QsSUFBSSxDQUFDLENBQUMs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QUFFLENBQUM7SUFDM0MsQ0FBQztJQUVELGlFQUFpRTtJQUN6RCxtQkFBbUI7UUFDekIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsRUFBRTthQUMvQixnQkFBMEMsQ0FBQztJQUNoRCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIGRpYWxvZy1yZWYuY2xhc3NcbiAqL1xuaW1wb3J0IHsgQW5pbWF0aW9uRXZlbnQgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcbmltcG9ydCB7IExvY2F0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEdsb2JhbFBvc2l0aW9uU3RyYXRlZ3ksIE92ZXJsYXlSZWYgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBFU0NBUEUgfSBmcm9tICdAYW5ndWxhci9jZGsva2V5Y29kZXMnO1xuaW1wb3J0IHsgT3dsRGlhbG9nQ29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi9kaWFsb2ctY29udGFpbmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEaWFsb2dQb3NpdGlvbiB9IGZyb20gJy4vZGlhbG9nLWNvbmZpZy5jbGFzcyc7XG5pbXBvcnQge1xuICBPYnNlcnZhYmxlLFxuICBTdWJqZWN0LFxuICBTdWJzY3JpcHRpb24sXG4gIFN1YnNjcmlwdGlvbkxpa2UgYXMgSVN1YnNjcmlwdGlvblxufSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciwgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuZXhwb3J0IGNsYXNzIE93bERpYWxvZ1JlZjxUPiB7XG4gIHByaXZhdGUgcmVzdWx0OiBhbnk7XG5cbiAgcHJpdmF0ZSBfYmVmb3JlQ2xvc2UkID0gbmV3IFN1YmplY3Q8YW55PigpO1xuXG4gIHByaXZhdGUgX2FmdGVyT3BlbiQgPSBuZXcgU3ViamVjdDxhbnk+KCk7XG5cbiAgcHJpdmF0ZSBfYWZ0ZXJDbG9zZWQkID0gbmV3IFN1YmplY3Q8YW55PigpO1xuXG4gIC8qKiBTdWJzY3JpcHRpb24gdG8gY2hhbmdlcyBpbiB0aGUgdXNlcidzIGxvY2F0aW9uLiAqL1xuICBwcml2YXRlIGxvY2F0aW9uQ2hhbmdlZDogSVN1YnNjcmlwdGlvbiA9IFN1YnNjcmlwdGlvbi5FTVBUWTtcblxuICAvKipcbiAgICogVGhlIGluc3RhbmNlIG9mIGNvbXBvbmVudCBvcGVuZWQgaW50byBtb2RhbFxuICAgKiAqL1xuICBwdWJsaWMgY29tcG9uZW50SW5zdGFuY2U6IFQ7XG5cbiAgLyoqIFdoZXRoZXIgdGhlIHVzZXIgaXMgYWxsb3dlZCB0byBjbG9zZSB0aGUgZGlhbG9nLiAqL1xuICBwdWJsaWMgZGlzYWJsZUNsb3NlID0gdGhpcy5jb250YWluZXIuY29uZmlnLmRpc2FibGVDbG9zZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIG92ZXJsYXlSZWY6IE92ZXJsYXlSZWYsXG4gICAgcHJpdmF0ZSBjb250YWluZXI6IE93bERpYWxvZ0NvbnRhaW5lckNvbXBvbmVudCxcbiAgICBwdWJsaWMgcmVhZG9ubHkgaWQ6IHN0cmluZyxcbiAgICBsb2NhdGlvbj86IExvY2F0aW9uXG4gICkge1xuICAgIHRoaXMuY29udGFpbmVyLmFuaW1hdGlvblN0YXRlQ2hhbmdlZFxuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcihcbiAgICAgICAgICAoZXZlbnQ6IEFuaW1hdGlvbkV2ZW50KSA9PlxuICAgICAgICAgICAgZXZlbnQucGhhc2VOYW1lID09PSAnZG9uZScgJiYgZXZlbnQudG9TdGF0ZSA9PT0gJ2VudGVyJ1xuICAgICAgICApLFxuICAgICAgICB0YWtlKDEpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5fYWZ0ZXJPcGVuJC5uZXh0KCk7XG4gICAgICAgIHRoaXMuX2FmdGVyT3BlbiQuY29tcGxldGUoKTtcbiAgICAgIH0pO1xuXG4gICAgdGhpcy5jb250YWluZXIuYW5pbWF0aW9uU3RhdGVDaGFuZ2VkXG4gICAgICAucGlwZShcbiAgICAgICAgZmlsdGVyKFxuICAgICAgICAgIChldmVudDogQW5pbWF0aW9uRXZlbnQpID0+XG4gICAgICAgICAgICBldmVudC5waGFzZU5hbWUgPT09ICdkb25lJyAmJiBldmVudC50b1N0YXRlID09PSAnZXhpdCdcbiAgICAgICAgKSxcbiAgICAgICAgdGFrZSgxKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMub3ZlcmxheVJlZi5kaXNwb3NlKCk7XG4gICAgICAgIHRoaXMubG9jYXRpb25DaGFuZ2VkLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMuX2FmdGVyQ2xvc2VkJC5uZXh0KHRoaXMucmVzdWx0KTtcbiAgICAgICAgdGhpcy5fYWZ0ZXJDbG9zZWQkLmNvbXBsZXRlKCk7XG4gICAgICAgIHRoaXMuY29tcG9uZW50SW5zdGFuY2UgPSBudWxsO1xuICAgICAgfSk7XG5cbiAgICB0aGlzLm92ZXJsYXlSZWZcbiAgICAgIC5rZXlkb3duRXZlbnRzKClcbiAgICAgIC5waXBlKGZpbHRlcigoZXZlbnQpID0+IGV2ZW50LmtleUNvZGUgPT09IEVTQ0FQRSAmJiAhdGhpcy5kaXNhYmxlQ2xvc2UpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLmNsb3NlKCkpO1xuXG4gICAgaWYgKGxvY2F0aW9uKSB7XG4gICAgICB0aGlzLmxvY2F0aW9uQ2hhbmdlZCA9IGxvY2F0aW9uLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLmNvbnRhaW5lci5jb25maWcuY2xvc2VPbk5hdmlnYXRpb24pIHtcbiAgICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBjbG9zZShkaWFsb2dSZXN1bHQ/OiBhbnkpIHtcbiAgICB0aGlzLnJlc3VsdCA9IGRpYWxvZ1Jlc3VsdDtcblxuICAgIHRoaXMuY29udGFpbmVyLmFuaW1hdGlvblN0YXRlQ2hhbmdlZFxuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcigoZXZlbnQ6IEFuaW1hdGlvbkV2ZW50KSA9PiBldmVudC5waGFzZU5hbWUgPT09ICdzdGFydCcpLFxuICAgICAgICB0YWtlKDEpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5fYmVmb3JlQ2xvc2UkLm5leHQoZGlhbG9nUmVzdWx0KTtcbiAgICAgICAgdGhpcy5fYmVmb3JlQ2xvc2UkLmNvbXBsZXRlKCk7XG4gICAgICAgIHRoaXMub3ZlcmxheVJlZi5kZXRhY2hCYWNrZHJvcCgpO1xuICAgICAgfSk7XG5cbiAgICB0aGlzLmNvbnRhaW5lci5zdGFydEV4aXRBbmltYXRpb24oKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIGFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB3aGVuIHRoZSBvdmVybGF5J3MgYmFja2Ryb3AgaGFzIGJlZW4gY2xpY2tlZC5cbiAgICovXG4gIHB1YmxpYyBiYWNrZHJvcENsaWNrKCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMub3ZlcmxheVJlZi5iYWNrZHJvcENsaWNrKCk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyBhbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgd2hlbiBrZXlkb3duIGV2ZW50cyBhcmUgdGFyZ2V0ZWQgb24gdGhlIG92ZXJsYXkuXG4gICAqL1xuICBwdWJsaWMga2V5ZG93bkV2ZW50cygpOiBPYnNlcnZhYmxlPEtleWJvYXJkRXZlbnQ+IHtcbiAgICByZXR1cm4gdGhpcy5vdmVybGF5UmVmLmtleWRvd25FdmVudHMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGVzIHRoZSBkaWFsb2cncyBwb3NpdGlvbi5cbiAgICogQHBhcmFtIHBvc2l0aW9uIE5ldyBkaWFsb2cgcG9zaXRpb24uXG4gICAqL1xuICBwdWJsaWMgdXBkYXRlUG9zaXRpb24ocG9zaXRpb24/OiBEaWFsb2dQb3NpdGlvbik6IHRoaXMge1xuICAgIGNvbnN0IHN0cmF0ZWd5ID0gdGhpcy5nZXRQb3NpdGlvblN0cmF0ZWd5KCk7XG5cbiAgICBpZiAocG9zaXRpb24gJiYgKHBvc2l0aW9uLmxlZnQgfHwgcG9zaXRpb24ucmlnaHQpKSB7XG4gICAgICBwb3NpdGlvbi5sZWZ0XG4gICAgICAgID8gc3RyYXRlZ3kubGVmdChwb3NpdGlvbi5sZWZ0KVxuICAgICAgICA6IHN0cmF0ZWd5LnJpZ2h0KHBvc2l0aW9uLnJpZ2h0KTtcbiAgICB9IGVsc2Uge1xuICAgICAgc3RyYXRlZ3kuY2VudGVySG9yaXpvbnRhbGx5KCk7XG4gICAgfVxuXG4gICAgaWYgKHBvc2l0aW9uICYmIChwb3NpdGlvbi50b3AgfHwgcG9zaXRpb24uYm90dG9tKSkge1xuICAgICAgcG9zaXRpb24udG9wXG4gICAgICAgID8gc3RyYXRlZ3kudG9wKHBvc2l0aW9uLnRvcClcbiAgICAgICAgOiBzdHJhdGVneS5ib3R0b20ocG9zaXRpb24uYm90dG9tKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc3RyYXRlZ3kuY2VudGVyVmVydGljYWxseSgpO1xuICAgIH1cblxuICAgIHRoaXMub3ZlcmxheVJlZi51cGRhdGVQb3NpdGlvbigpO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyB0aGUgZGlhbG9nJ3Mgd2lkdGggYW5kIGhlaWdodC5cbiAgICogQHBhcmFtIHdpZHRoIE5ldyB3aWR0aCBvZiB0aGUgZGlhbG9nLlxuICAgKiBAcGFyYW0gaGVpZ2h0IE5ldyBoZWlnaHQgb2YgdGhlIGRpYWxvZy5cbiAgICovXG4gIHVwZGF0ZVNpemUod2lkdGg6IHN0cmluZyA9ICdhdXRvJywgaGVpZ2h0OiBzdHJpbmcgPSAnYXV0bycpOiB0aGlzIHtcbiAgICB0aGlzLmdldFBvc2l0aW9uU3RyYXRlZ3koKS53aWR0aCh3aWR0aCkuaGVpZ2h0KGhlaWdodCk7XG4gICAgdGhpcy5vdmVybGF5UmVmLnVwZGF0ZVBvc2l0aW9uKCk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwdWJsaWMgaXNBbmltYXRpbmcoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuY29udGFpbmVyLmlzQW5pbWF0aW5nO1xuICB9XG5cbiAgcHVibGljIGFmdGVyT3BlbigpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLl9hZnRlck9wZW4kLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIGJlZm9yZUNsb3NlKCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuX2JlZm9yZUNsb3NlJC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBhZnRlckNsb3NlZCgpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLl9hZnRlckNsb3NlZCQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICAvKiogRmV0Y2hlcyB0aGUgcG9zaXRpb24gc3RyYXRlZ3kgb2JqZWN0IGZyb20gdGhlIG92ZXJsYXkgcmVmLiAqL1xuICBwcml2YXRlIGdldFBvc2l0aW9uU3RyYXRlZ3koKTogR2xvYmFsUG9zaXRpb25TdHJhdGVneSB7XG4gICAgcmV0dXJuIHRoaXMub3ZlcmxheVJlZi5nZXRDb25maWcoKVxuICAgICAgLnBvc2l0aW9uU3RyYXRlZ3kgYXMgR2xvYmFsUG9zaXRpb25TdHJhdGVneTtcbiAgfVxufVxuIl19
@@ -0,0 +1,22 @@
1
+ /**
2
+ * dialog.module
3
+ */
4
+ import { NgModule } from '@angular/core';
5
+ import { CommonModule } from '@angular/common';
6
+ import { A11yModule } from '@angular/cdk/a11y';
7
+ import { OverlayModule } from '@angular/cdk/overlay';
8
+ import { PortalModule } from '@angular/cdk/portal';
9
+ import { OWL_DIALOG_SCROLL_STRATEGY_PROVIDER, OwlDialogService } from './dialog.service';
10
+ import { OwlDialogContainerComponent } from './dialog-container.component';
11
+ export class OwlDialogModule {
12
+ }
13
+ OwlDialogModule.decorators = [
14
+ { type: NgModule, args: [{
15
+ imports: [CommonModule, A11yModule, OverlayModule, PortalModule],
16
+ exports: [],
17
+ declarations: [OwlDialogContainerComponent],
18
+ providers: [OWL_DIALOG_SCROLL_STRATEGY_PROVIDER, OwlDialogService],
19
+ entryComponents: [OwlDialogContainerComponent]
20
+ },] }
21
+ ];
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1mb3JtZW50cnkvc3JjL2NvbXBvbmVudHMvbmd4LXBpY2stZGF0ZXRpbWUvbGliL2RpYWxvZy9kaWFsb2cubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbkQsT0FBTyxFQUNMLG1DQUFtQyxFQUNuQyxnQkFBZ0IsRUFDakIsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQVMzRSxNQUFNLE9BQU8sZUFBZTs7O1lBUDNCLFFBQVEsU0FBQztnQkFDUixPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxZQUFZLENBQUM7Z0JBQ2hFLE9BQU8sRUFBRSxFQUFFO2dCQUNYLFlBQVksRUFBRSxDQUFDLDJCQUEyQixDQUFDO2dCQUMzQyxTQUFTLEVBQUUsQ0FBQyxtQ0FBbUMsRUFBRSxnQkFBZ0IsQ0FBQztnQkFDbEUsZUFBZSxFQUFFLENBQUMsMkJBQTJCLENBQUM7YUFDL0MiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIGRpYWxvZy5tb2R1bGVcbiAqL1xuXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEExMXlNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQgeyBPdmVybGF5TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgUG9ydGFsTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQge1xuICBPV0xfRElBTE9HX1NDUk9MTF9TVFJBVEVHWV9QUk9WSURFUixcbiAgT3dsRGlhbG9nU2VydmljZVxufSBmcm9tICcuL2RpYWxvZy5zZXJ2aWNlJztcbmltcG9ydCB7IE93bERpYWxvZ0NvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4vZGlhbG9nLWNvbnRhaW5lci5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBBMTF5TW9kdWxlLCBPdmVybGF5TW9kdWxlLCBQb3J0YWxNb2R1bGVdLFxuICBleHBvcnRzOiBbXSxcbiAgZGVjbGFyYXRpb25zOiBbT3dsRGlhbG9nQ29udGFpbmVyQ29tcG9uZW50XSxcbiAgcHJvdmlkZXJzOiBbT1dMX0RJQUxPR19TQ1JPTExfU1RSQVRFR1lfUFJPVklERVIsIE93bERpYWxvZ1NlcnZpY2VdLFxuICBlbnRyeUNvbXBvbmVudHM6IFtPd2xEaWFsb2dDb250YWluZXJDb21wb25lbnRdXG59KVxuZXhwb3J0IGNsYXNzIE93bERpYWxvZ01vZHVsZSB7fVxuIl19
@@ -0,0 +1,222 @@
1
+ /**
2
+ * dialog.service
3
+ */
4
+ import { Inject, Injectable, InjectionToken, Injector, Optional, SkipSelf, TemplateRef } from '@angular/core';
5
+ import { Location } from '@angular/common';
6
+ import { OwlDialogConfig } from './dialog-config.class';
7
+ import { OwlDialogRef } from './dialog-ref.class';
8
+ import { OwlDialogContainerComponent } from './dialog-container.component';
9
+ import { extendObject } from '../utils';
10
+ import { defer, Subject } from 'rxjs';
11
+ import { startWith } from 'rxjs/operators';
12
+ import { Overlay, OverlayConfig, OverlayContainer } from '@angular/cdk/overlay';
13
+ import { ComponentPortal, PortalInjector } from '@angular/cdk/portal';
14
+ export const OWL_DIALOG_DATA = new InjectionToken('OwlDialogData');
15
+ /**
16
+ * Injection token that determines the scroll handling while the dialog is open.
17
+ * */
18
+ export const OWL_DIALOG_SCROLL_STRATEGY = new InjectionToken('owl-dialog-scroll-strategy');
19
+ export function OWL_DIALOG_SCROLL_STRATEGY_PROVIDER_FACTORY(overlay) {
20
+ const fn = () => overlay.scrollStrategies.block();
21
+ return fn;
22
+ }
23
+ /** @docs-private */
24
+ export const OWL_DIALOG_SCROLL_STRATEGY_PROVIDER = {
25
+ provide: OWL_DIALOG_SCROLL_STRATEGY,
26
+ deps: [Overlay],
27
+ useFactory: OWL_DIALOG_SCROLL_STRATEGY_PROVIDER_FACTORY
28
+ };
29
+ /** I
30
+ * njection token that can be used to specify default dialog options.
31
+ * */
32
+ export const OWL_DIALOG_DEFAULT_OPTIONS = new InjectionToken('owl-dialog-default-options');
33
+ export class OwlDialogService {
34
+ constructor(overlay, injector, location, scrollStrategy, defaultOptions, parentDialog, overlayContainer) {
35
+ this.overlay = overlay;
36
+ this.injector = injector;
37
+ this.location = location;
38
+ this.defaultOptions = defaultOptions;
39
+ this.parentDialog = parentDialog;
40
+ this.overlayContainer = overlayContainer;
41
+ this.ariaHiddenElements = new Map();
42
+ this._openDialogsAtThisLevel = [];
43
+ this._afterOpenAtThisLevel = new Subject();
44
+ this._afterAllClosedAtThisLevel = new Subject();
45
+ /**
46
+ * Stream that emits when all open dialog have finished closing.
47
+ * Will emit on subscribe if there are no open dialogs to begin with.
48
+ */
49
+ this.afterAllClosed = defer(() => this._openDialogsAtThisLevel.length
50
+ ? this._afterAllClosed
51
+ : this._afterAllClosed.pipe(startWith(undefined)));
52
+ this.scrollStrategy = scrollStrategy;
53
+ if (!parentDialog && location) {
54
+ location.subscribe(() => this.closeAll());
55
+ }
56
+ }
57
+ /** Keeps track of the currently-open dialogs. */
58
+ get openDialogs() {
59
+ return this.parentDialog
60
+ ? this.parentDialog.openDialogs
61
+ : this._openDialogsAtThisLevel;
62
+ }
63
+ /** Stream that emits when a dialog has been opened. */
64
+ get afterOpen() {
65
+ return this.parentDialog
66
+ ? this.parentDialog.afterOpen
67
+ : this._afterOpenAtThisLevel;
68
+ }
69
+ get _afterAllClosed() {
70
+ const parent = this.parentDialog;
71
+ return parent ? parent._afterAllClosed : this._afterAllClosedAtThisLevel;
72
+ }
73
+ open(componentOrTemplateRef, config) {
74
+ config = applyConfigDefaults(config, this.defaultOptions);
75
+ if (config.id && this.getDialogById(config.id)) {
76
+ throw Error(`Dialog with id "${config.id}" exists already. The dialog id must be unique.`);
77
+ }
78
+ const overlayRef = this.createOverlay(config);
79
+ const dialogContainer = this.attachDialogContainer(overlayRef, config);
80
+ const dialogRef = this.attachDialogContent(componentOrTemplateRef, dialogContainer, overlayRef, config);
81
+ if (!this.openDialogs.length) {
82
+ this.hideNonDialogContentFromAssistiveTechnology();
83
+ }
84
+ this.openDialogs.push(dialogRef);
85
+ dialogRef.afterClosed().subscribe(() => this.removeOpenDialog(dialogRef));
86
+ this.afterOpen.next(dialogRef);
87
+ return dialogRef;
88
+ }
89
+ /**
90
+ * Closes all of the currently-open dialogs.
91
+ */
92
+ closeAll() {
93
+ let i = this.openDialogs.length;
94
+ while (i--) {
95
+ this.openDialogs[i].close();
96
+ }
97
+ }
98
+ /**
99
+ * Finds an open dialog by its id.
100
+ * @param id ID to use when looking up the dialog.
101
+ */
102
+ getDialogById(id) {
103
+ return this.openDialogs.find((dialog) => dialog.id === id);
104
+ }
105
+ attachDialogContent(componentOrTemplateRef, dialogContainer, overlayRef, config) {
106
+ const dialogRef = new OwlDialogRef(overlayRef, dialogContainer, config.id, this.location);
107
+ if (config.hasBackdrop) {
108
+ overlayRef.backdropClick().subscribe(() => {
109
+ if (!dialogRef.disableClose) {
110
+ dialogRef.close();
111
+ }
112
+ });
113
+ }
114
+ if (componentOrTemplateRef instanceof TemplateRef) {
115
+ }
116
+ else {
117
+ const injector = this.createInjector(config, dialogRef, dialogContainer);
118
+ const contentRef = dialogContainer.attachComponentPortal(new ComponentPortal(componentOrTemplateRef, undefined, injector));
119
+ dialogRef.componentInstance = contentRef.instance;
120
+ }
121
+ dialogRef
122
+ .updateSize(config.width, config.height)
123
+ .updatePosition(config.position);
124
+ return dialogRef;
125
+ }
126
+ createInjector(config, dialogRef, dialogContainer) {
127
+ const userInjector = config && config.viewContainerRef && config.viewContainerRef.injector;
128
+ const injectionTokens = new WeakMap();
129
+ injectionTokens.set(OwlDialogRef, dialogRef);
130
+ injectionTokens.set(OwlDialogContainerComponent, dialogContainer);
131
+ injectionTokens.set(OWL_DIALOG_DATA, config.data);
132
+ return new PortalInjector(userInjector || this.injector, injectionTokens);
133
+ }
134
+ createOverlay(config) {
135
+ const overlayConfig = this.getOverlayConfig(config);
136
+ return this.overlay.create(overlayConfig);
137
+ }
138
+ attachDialogContainer(overlayRef, config) {
139
+ const containerPortal = new ComponentPortal(OwlDialogContainerComponent, config.viewContainerRef);
140
+ const containerRef = overlayRef.attach(containerPortal);
141
+ containerRef.instance.setConfig(config);
142
+ return containerRef.instance;
143
+ }
144
+ getOverlayConfig(dialogConfig) {
145
+ const state = new OverlayConfig({
146
+ positionStrategy: this.overlay.position().global(),
147
+ scrollStrategy: dialogConfig.scrollStrategy || this.scrollStrategy(),
148
+ panelClass: dialogConfig.paneClass,
149
+ hasBackdrop: dialogConfig.hasBackdrop,
150
+ minWidth: dialogConfig.minWidth,
151
+ minHeight: dialogConfig.minHeight,
152
+ maxWidth: dialogConfig.maxWidth,
153
+ maxHeight: dialogConfig.maxHeight
154
+ });
155
+ if (dialogConfig.backdropClass) {
156
+ state.backdropClass = dialogConfig.backdropClass;
157
+ }
158
+ return state;
159
+ }
160
+ removeOpenDialog(dialogRef) {
161
+ const index = this._openDialogsAtThisLevel.indexOf(dialogRef);
162
+ if (index > -1) {
163
+ this.openDialogs.splice(index, 1);
164
+ // If all the dialogs were closed, remove/restore the `aria-hidden`
165
+ // to a the siblings and emit to the `afterAllClosed` stream.
166
+ if (!this.openDialogs.length) {
167
+ this.ariaHiddenElements.forEach((previousValue, element) => {
168
+ if (previousValue) {
169
+ element.setAttribute('aria-hidden', previousValue);
170
+ }
171
+ else {
172
+ element.removeAttribute('aria-hidden');
173
+ }
174
+ });
175
+ this.ariaHiddenElements.clear();
176
+ this._afterAllClosed.next();
177
+ }
178
+ }
179
+ }
180
+ /**
181
+ * Hides all of the content that isn't an overlay from assistive technology.
182
+ */
183
+ hideNonDialogContentFromAssistiveTechnology() {
184
+ const overlayContainer = this.overlayContainer.getContainerElement();
185
+ // Ensure that the overlay container is attached to the DOM.
186
+ if (overlayContainer.parentElement) {
187
+ const siblings = overlayContainer.parentElement.children;
188
+ for (let i = siblings.length - 1; i > -1; i--) {
189
+ const sibling = siblings[i];
190
+ if (sibling !== overlayContainer &&
191
+ sibling.nodeName !== 'SCRIPT' &&
192
+ sibling.nodeName !== 'STYLE' &&
193
+ !sibling.hasAttribute('aria-live')) {
194
+ this.ariaHiddenElements.set(sibling, sibling.getAttribute('aria-hidden'));
195
+ sibling.setAttribute('aria-hidden', 'true');
196
+ }
197
+ }
198
+ }
199
+ }
200
+ }
201
+ OwlDialogService.decorators = [
202
+ { type: Injectable }
203
+ ];
204
+ OwlDialogService.ctorParameters = () => [
205
+ { type: Overlay },
206
+ { type: Injector },
207
+ { type: Location, decorators: [{ type: Optional }] },
208
+ { type: undefined, decorators: [{ type: Inject, args: [OWL_DIALOG_SCROLL_STRATEGY,] }] },
209
+ { type: OwlDialogConfig, decorators: [{ type: Optional }, { type: Inject, args: [OWL_DIALOG_DEFAULT_OPTIONS,] }] },
210
+ { type: OwlDialogService, decorators: [{ type: Optional }, { type: SkipSelf }] },
211
+ { type: OverlayContainer }
212
+ ];
213
+ /**
214
+ * Applies default options to the dialog config.
215
+ * @param config Config to be modified.
216
+ * @param defaultOptions Default config setting
217
+ * @returns The new configuration object.
218
+ */
219
+ function applyConfigDefaults(config, defaultOptions) {
220
+ return extendObject(new OwlDialogConfig(), config, defaultOptions);
221
+ }
222
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtZm9ybWVudHJ5L3NyYy9jb21wb25lbnRzL25neC1waWNrLWRhdGV0aW1lL2xpYi9kaWFsb2cvZGlhbG9nLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxPQUFPLEVBRUwsTUFBTSxFQUNOLFVBQVUsRUFDVixjQUFjLEVBQ2QsUUFBUSxFQUNSLFFBQVEsRUFDUixRQUFRLEVBQ1IsV0FBVyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2xELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzNFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDeEMsT0FBTyxFQUFFLEtBQUssRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFDTCxPQUFPLEVBQ1AsYUFBYSxFQUNiLGdCQUFnQixFQUdqQixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFDTCxlQUFlLEVBRWYsY0FBYyxFQUNmLE1BQU0scUJBQXFCLENBQUM7QUFFN0IsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLElBQUksY0FBYyxDQUFNLGVBQWUsQ0FBQyxDQUFDO0FBRXhFOztLQUVLO0FBQ0wsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUcsSUFBSSxjQUFjLENBRTFELDRCQUE0QixDQUFDLENBQUM7QUFFaEMsTUFBTSxVQUFVLDJDQUEyQyxD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b21wb25lbnRSZWYsXG4gIEluamVjdCxcbiAgSW5qZWN0YWJsZSxcbiAgSW5qZWN0aW9uVG9rZW4sXG4gIEluamVjdG9yLFxuICBPcHRpb25hbCxcbiAgU2tpcFNlbGYsXG4gIFRlbXBsYXRlUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTG9jYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgT3dsRGlhbG9nQ29uZmlnIH0gZnJvbSAnLi9kaWFsb2ctY29uZmlnLmNsYXNzJztcbmltcG9ydCB7IE93bERpYWxvZ1JlZiB9IGZyb20gJy4vZGlhbG9nLXJlZi5jbGFzcyc7XG5pbXBvcnQgeyBPd2xEaWFsb2dDb250YWluZXJDb21wb25lbnQgfSBmcm9tICcuL2RpYWxvZy1jb250YWluZXIuY29tcG9uZW50JztcbmltcG9ydCB7IGV4dGVuZE9iamVjdCB9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB7IGRlZmVyLCBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBzdGFydFdpdGggfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1xuICBPdmVybGF5LFxuICBPdmVybGF5Q29uZmlnLFxuICBPdmVybGF5Q29udGFpbmVyLFxuICBPdmVybGF5UmVmLFxuICBTY3JvbGxTdHJhdGVneVxufSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQge1xuICBDb21wb25lbnRQb3J0YWwsXG4gIENvbXBvbmVudFR5cGUsXG4gIFBvcnRhbEluamVjdG9yXG59IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuXG5leHBvcnQgY29uc3QgT1dMX0RJQUxPR19EQVRBID0gbmV3IEluamVjdGlvblRva2VuPGFueT4oJ093bERpYWxvZ0RhdGEnKTtcblxuLyoqXG4gKiBJbmplY3Rpb24gdG9rZW4gdGhhdCBkZXRlcm1pbmVzIHRoZSBzY3JvbGwgaGFuZGxpbmcgd2hpbGUgdGhlIGRpYWxvZyBpcyBvcGVuLlxuICogKi9cbmV4cG9ydCBjb25zdCBPV0xfRElBTE9HX1NDUk9MTF9TVFJBVEVHWSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxcbiAgKCkgPT4gU2Nyb2xsU3RyYXRlZ3lcbj4oJ293bC1kaWFsb2ctc2Nyb2xsLXN0cmF0ZWd5Jyk7XG5cbmV4cG9ydCBmdW5jdGlvbiBPV0xfRElBTE9HX1NDUk9MTF9TVFJBVEVHWV9QUk9WSURFUl9GQUNUT1JZKFxuICBvdmVybGF5OiBPdmVybGF5XG4pOiAoKSA9PiBTY3JvbGxTdHJhdGVneSB7XG4gIGNvbnN0IGZuID0gKCkgPT4gb3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLmJsb2NrKCk7XG4gIHJldHVybiBmbjtcbn1cblxuLyoqIEBkb2NzLXByaXZhdGUgKi9cbmV4cG9ydCBjb25zdCBPV0xfRElBTE9HX1NDUk9MTF9TVFJBVEVHWV9QUk9WSURFUiA9IHtcbiAgcHJvdmlkZTogT1dMX0RJQUxPR19TQ1JPTExfU1RSQVRFR1ksXG4gIGRlcHM6IFtPdmVybGF5XSxcbiAgdXNlRmFjdG9yeTogT1dMX0RJQUxPR19TQ1JPTExfU1RSQVRFR1lfUFJPVklERVJfRkFDVE9SWVxufTtcblxuLyoqIElcbiAqIG5qZWN0aW9uIHRva2VuIHRoYXQgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBkZWZhdWx0IGRpYWxvZyBvcHRpb25zLlxuICogKi9cbmV4cG9ydCBjb25zdCBPV0xfRElBTE9HX0RFRkFVTFRfT1BUSU9OUyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxPd2xEaWFsb2dDb25maWc+KFxuICAnb3dsLWRpYWxvZy1kZWZhdWx0LW9wdGlvbnMnXG4pO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgT3dsRGlhbG9nU2VydmljZSB7XG4gIHByaXZhdGUgYXJpYUhpZGRlbkVsZW1lbnRzID0gbmV3IE1hcDxFbGVtZW50LCBzdHJpbmcgfCBudWxsPigpO1xuXG4gIHByaXZhdGUgX29wZW5EaWFsb2dzQXRUaGlzTGV2ZWw6IE93bERpYWxvZ1JlZjxhbnk+W10gPSBbXTtcbiAgcHJpdmF0ZSBfYWZ0ZXJPcGVuQXRUaGlzTGV2ZWwgPSBuZXcgU3ViamVjdDxPd2xEaWFsb2dSZWY8YW55Pj4oKTtcbiAgcHJpdmF0ZSBfYWZ0ZXJBbGxDbG9zZWRBdFRoaXNMZXZlbCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgLyoqIEtlZXBzIHRyYWNrIG9mIHRoZSBjdXJyZW50bHktb3BlbiBkaWFsb2dzLiAqL1xuICBnZXQgb3BlbkRpYWxvZ3MoKTogT3dsRGlhbG9nUmVmPGFueT5bXSB7XG4gICAgcmV0dXJuIHRoaXMucGFyZW50RGlhbG9nXG4gICAgICA/IHRoaXMucGFyZW50RGlhbG9nLm9wZW5EaWFsb2dzXG4gICAgICA6IHRoaXMuX29wZW5EaWFsb2dzQXRUaGlzTGV2ZWw7XG4gIH1cblxuICAvKiogU3RyZWFtIHRoYXQgZW1pdHMgd2hlbiBhIGRpYWxvZyBoYXMgYmVlbiBvcGVuZWQuICovXG4gIGdldCBhZnRlck9wZW4oKTogU3ViamVjdDxPd2xEaWFsb2dSZWY8YW55Pj4ge1xuICAgIHJldHVybiB0aGlzLnBhcmVudERpYWxvZ1xuICAgICAgPyB0aGlzLnBhcmVudERpYWxvZy5hZnRlck9wZW5cbiAgICAgIDogdGhpcy5fYWZ0ZXJPcGVuQXRUaGlzTGV2ZWw7XG4gIH1cblxuICBnZXQgX2FmdGVyQWxsQ2xvc2VkKCk6IGFueSB7XG4gICAgY29uc3QgcGFyZW50ID0gdGhpcy5wYXJlbnREaWFsb2c7XG4gICAgcmV0dXJuIHBhcmVudCA/IHBhcmVudC5fYWZ0ZXJBbGxDbG9zZWQgOiB0aGlzLl9hZnRlckFsbENsb3NlZEF0VGhpc0xldmVsO1xuICB9XG5cbiAgLyoqXG4gICAqIFN0cmVhbSB0aGF0IGVtaXRzIHdoZW4gYWxsIG9wZW4gZGlhbG9nIGhhdmUgZmluaXNoZWQgY2xvc2luZy5cbiAgICogV2lsbCBlbWl0IG9uIHN1YnNjcmliZSBpZiB0aGVyZSBhcmUgbm8gb3BlbiBkaWFsb2dzIHRvIGJlZ2luIHdpdGguXG4gICAqL1xuXG4gIGFmdGVyQWxsQ2xvc2VkOiBPYnNlcnZhYmxlPHt9PiA9IGRlZmVyKCgpID0+XG4gICAgdGhpcy5fb3BlbkRpYWxvZ3NBdFRoaXNMZXZlbC5sZW5ndGhcbiAgICAgID8gdGhpcy5fYWZ0ZXJBbGxDbG9zZWRcbiAgICAgIDogdGhpcy5fYWZ0ZXJBbGxDbG9zZWQucGlwZShzdGFydFdpdGgodW5kZWZpbmVkKSlcbiAgKTtcblxuICBwcml2YXRlIHNjcm9sbFN0cmF0ZWd5OiAoKSA9PiBTY3JvbGxTdHJhdGVneTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIG92ZXJsYXk6IE92ZXJsYXksXG4gICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBsb2NhdGlvbjogTG9jYXRpb24sXG4gICAgQEluamVjdChPV0xfRElBTE9HX1NDUk9MTF9TVFJBVEVHWSkgc2Nyb2xsU3RyYXRlZ3k6IGFueSxcbiAgICBAT3B0aW9uYWwoKVxuICAgIEBJbmplY3QoT1dMX0RJQUxPR19ERUZBVUxUX09QVElPTlMpXG4gICAgcHJpdmF0ZSBkZWZhdWx0T3B0aW9uczogT3dsRGlhbG9nQ29uZmlnLFxuICAgIEBPcHRpb25hbCgpXG4gICAgQFNraXBTZWxmKClcbiAgICBwcml2YXRlIHBhcmVudERpYWxvZzogT3dsRGlhbG9nU2VydmljZSxcbiAgICBwcml2YXRlIG92ZXJsYXlDb250YWluZXI6IE92ZXJsYXlDb250YWluZXJcbiAgKSB7XG4gICAgdGhpcy5zY3JvbGxTdHJhdGVneSA9IHNjcm9sbFN0cmF0ZWd5O1xuICAgIGlmICghcGFyZW50RGlhbG9nICYmIGxvY2F0aW9uKSB7XG4gICAgICBsb2NhdGlvbi5zdWJzY3JpYmUoKCkgPT4gdGhpcy5jbG9zZUFsbCgpKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb3BlbjxUPihcbiAgICBjb21wb25lbnRPclRlbXBsYXRlUmVmOiBDb21wb25lbnRUeXBlPFQ+IHwgVGVtcGxhdGVSZWY8VD4sXG4gICAgY29uZmlnPzogT3dsRGlhbG9nQ29uZmlnXG4gICk6IE93bERpYWxvZ1JlZjxhbnk+IHtcbiAgICBjb25maWcgPSBhcHBseUNvbmZpZ0RlZmF1bHRzKGNvbmZpZywgdGhpcy5kZWZhdWx0T3B0aW9ucyk7XG5cbiAgICBpZiAoY29uZmlnLmlkICYmIHRoaXMuZ2V0RGlhbG9nQnlJZChjb25maWcuaWQpKSB7XG4gICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgYERpYWxvZyB3aXRoIGlkIFwiJHtjb25maWcuaWR9XCIgZXhpc3RzIGFscmVhZHkuIFRoZSBkaWFsb2cgaWQgbXVzdCBiZSB1bmlxdWUuYFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBjb25zdCBvdmVybGF5UmVmID0gdGhpcy5jcmVhdGVPdmVybGF5KGNvbmZpZyk7XG4gICAgY29uc3QgZGlhbG9nQ29udGFpbmVyID0gdGhpcy5hdHRhY2hEaWFsb2dDb250YWluZXIob3ZlcmxheVJlZiwgY29uZmlnKTtcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmF0dGFjaERpYWxvZ0NvbnRlbnQ8VD4oXG4gICAgICBjb21wb25lbnRPclRlbXBsYXRlUmVmLFxuICAgICAgZGlhbG9nQ29udGFpbmVyLFxuICAgICAgb3ZlcmxheVJlZixcbiAgICAgIGNvbmZpZ1xuICAgICk7XG5cbiAgICBpZiAoIXRoaXMub3BlbkRpYWxvZ3MubGVuZ3RoKSB7XG4gICAgICB0aGlzLmhpZGVOb25EaWFsb2dDb250ZW50RnJvbUFzc2lzdGl2ZVRlY2hub2xvZ3koKTtcbiAgICB9XG5cbiAgICB0aGlzLm9wZW5EaWFsb2dzLnB1c2goZGlhbG9nUmVmKTtcbiAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5yZW1vdmVPcGVuRGlhbG9nKGRpYWxvZ1JlZikpO1xuICAgIHRoaXMuYWZ0ZXJPcGVuLm5leHQoZGlhbG9nUmVmKTtcbiAgICByZXR1cm4gZGlhbG9nUmVmO1xuICB9XG5cbiAgLyoqXG4gICAqIENsb3NlcyBhbGwgb2YgdGhlIGN1cnJlbnRseS1vcGVuIGRpYWxvZ3MuXG4gICAqL1xuICBwdWJsaWMgY2xvc2VBbGwoKTogdm9pZCB7XG4gICAgbGV0IGkgPSB0aGlzLm9wZW5EaWFsb2dzLmxlbmd0aDtcblxuICAgIHdoaWxlIChpLS0pIHtcbiAgICAgIHRoaXMub3BlbkRpYWxvZ3NbaV0uY2xvc2UoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRmluZHMgYW4gb3BlbiBkaWFsb2cgYnkgaXRzIGlkLlxuICAgKiBAcGFyYW0gaWQgSUQgdG8gdXNlIHdoZW4gbG9va2luZyB1cCB0aGUgZGlhbG9nLlxuICAgKi9cbiAgcHVibGljIGdldERpYWxvZ0J5SWQoaWQ6IHN0cmluZyk6IE93bERpYWxvZ1JlZjxhbnk+IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5vcGVuRGlhbG9ncy5maW5kKChkaWFsb2cpID0+IGRpYWxvZy5pZCA9PT0gaWQpO1xuICB9XG5cbiAgcHJpdmF0ZSBhdHRhY2hEaWFsb2dDb250ZW50PFQ+KFxuICAgIGNvbXBvbmVudE9yVGVtcGxhdGVSZWY6IENvbXBvbmVudFR5cGU8VD4gfCBUZW1wbGF0ZVJlZjxUPixcbiAgICBkaWFsb2dDb250YWluZXI6IE93bERpYWxvZ0NvbnRhaW5lckNvbXBvbmVudCxcbiAgICBvdmVybGF5UmVmOiBPdmVybGF5UmVmLFxuICAgIGNvbmZpZzogT3dsRGlhbG9nQ29uZmlnXG4gICkge1xuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IG5ldyBPd2xEaWFsb2dSZWY8VD4oXG4gICAgICBvdmVybGF5UmVmLFxuICAgICAgZGlhbG9nQ29udGFpbmVyLFxuICAgICAgY29uZmlnLmlkLFxuICAgICAgdGhpcy5sb2NhdGlvblxuICAgICk7XG5cbiAgICBpZiAoY29uZmlnLmhhc0JhY2tkcm9wKSB7XG4gICAgICBvdmVybGF5UmVmLmJhY2tkcm9wQ2xpY2soKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICBpZiAoIWRpYWxvZ1JlZi5kaXNhYmxlQ2xvc2UpIHtcbiAgICAgICAgICBkaWFsb2dSZWYuY2xvc2UoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKGNvbXBvbmVudE9yVGVtcGxhdGVSZWYgaW5zdGFuY2VvZiBUZW1wbGF0ZVJlZikge1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBpbmplY3RvciA9IHRoaXMuY3JlYXRlSW5qZWN0b3I8VD4oXG4gICAgICAgIGNvbmZpZyxcbiAgICAgICAgZGlhbG9nUmVmLFxuICAgICAgICBkaWFsb2dDb250YWluZXJcbiAgICAgICk7XG4gICAgICBjb25zdCBjb250ZW50UmVmID0gZGlhbG9nQ29udGFpbmVyLmF0dGFjaENvbXBvbmVudFBvcnRhbChcbiAgICAgICAgbmV3IENvbXBvbmVudFBvcnRhbChjb21wb25lbnRPclRlbXBsYXRlUmVmLCB1bmRlZmluZWQsIGluamVjdG9yKVxuICAgICAgKTtcbiAgICAgIGRpYWxvZ1JlZi5jb21wb25lbnRJbnN0YW5jZSA9IGNvbnRlbnRSZWYuaW5zdGFuY2U7XG4gICAgfVxuXG4gICAgZGlhbG9nUmVmXG4gICAgICAudXBkYXRlU2l6ZShjb25maWcud2lkdGgsIGNvbmZpZy5oZWlnaHQpXG4gICAgICAudXBkYXRlUG9zaXRpb24oY29uZmlnLnBvc2l0aW9uKTtcblxuICAgIHJldHVybiBkaWFsb2dSZWY7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUluamVjdG9yPFQ+KFxuICAgIGNvbmZpZzogT3dsRGlhbG9nQ29uZmlnLFxuICAgIGRpYWxvZ1JlZjogT3dsRGlhbG9nUmVmPFQ+LFxuICAgIGRpYWxvZ0NvbnRhaW5lcjogT3dsRGlhbG9nQ29udGFpbmVyQ29tcG9uZW50XG4gICkge1xuICAgIGNvbnN0IHVzZXJJbmplY3RvciA9XG4gICAgICBjb25maWcgJiYgY29uZmlnLnZpZXdDb250YWluZXJSZWYgJiYgY29uZmlnLnZpZXdDb250YWluZXJSZWYuaW5qZWN0b3I7XG4gICAgY29uc3QgaW5qZWN0aW9uVG9rZW5zID0gbmV3IFdlYWtNYXAoKTtcblxuICAgIGluamVjdGlvblRva2Vucy5zZXQoT3dsRGlhbG9nUmVmLCBkaWFsb2dSZWYpO1xuICAgIGluamVjdGlvblRva2Vucy5zZXQoT3dsRGlhbG9nQ29udGFpbmVyQ29tcG9uZW50LCBkaWFsb2dDb250YWluZXIpO1xuICAgIGluamVjdGlvblRva2Vucy5zZXQoT1dMX0RJQUxPR19EQVRBLCBjb25maWcuZGF0YSk7XG5cbiAgICByZXR1cm4gbmV3IFBvcnRhbEluamVjdG9yKHVzZXJJbmplY3RvciB8fCB0aGlzLmluamVjdG9yLCBpbmplY3Rpb25Ub2tlbnMpO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVPdmVybGF5KGNvbmZpZzogT3dsRGlhbG9nQ29uZmlnKTogT3ZlcmxheVJlZiB7XG4gICAgY29uc3Qgb3ZlcmxheUNvbmZpZyA9IHRoaXMuZ2V0T3ZlcmxheUNvbmZpZyhjb25maWcpO1xuICAgIHJldHVybiB0aGlzLm92ZXJsYXkuY3JlYXRlKG92ZXJsYXlDb25maWcpO1xuICB9XG5cbiAgcHJpdmF0ZSBhdHRhY2hEaWFsb2dDb250YWluZXIoXG4gICAgb3ZlcmxheVJlZjogT3ZlcmxheVJlZixcbiAgICBjb25maWc6IE93bERpYWxvZ0NvbmZpZ1xuICApOiBPd2xEaWFsb2dDb250YWluZXJDb21wb25lbnQge1xuICAgIGNvbnN0IGNvbnRhaW5lclBvcnRhbCA9IG5ldyBDb21wb25lbnRQb3J0YWwoXG4gICAgICBPd2xEaWFsb2dDb250YWluZXJDb21wb25lbnQsXG4gICAgICBjb25maWcudmlld0NvbnRhaW5lclJlZlxuICAgICk7XG4gICAgY29uc3QgY29udGFpbmVyUmVmOiBDb21wb25lbnRSZWY8T3dsRGlhbG9nQ29udGFpbmVyQ29tcG9uZW50PiA9IG92ZXJsYXlSZWYuYXR0YWNoKFxuICAgICAgY29udGFpbmVyUG9ydGFsXG4gICAgKTtcbiAgICBjb250YWluZXJSZWYuaW5zdGFuY2Uuc2V0Q29uZmlnKGNvbmZpZyk7XG5cbiAgICByZXR1cm4gY29udGFpbmVyUmVmLmluc3RhbmNlO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRPdmVybGF5Q29uZmlnKGRpYWxvZ0NvbmZpZzogT3dsRGlhbG9nQ29uZmlnKTogT3ZlcmxheUNvbmZpZyB7XG4gICAgY29uc3Qgc3RhdGUgPSBuZXcgT3ZlcmxheUNvbmZpZyh7XG4gICAgICBwb3NpdGlvblN0cmF0ZWd5OiB0aGlzLm92ZXJsYXkucG9zaXRpb24oKS5nbG9iYWwoKSxcbiAgICAgIHNjcm9sbFN0cmF0ZWd5OiBkaWFsb2dDb25maWcuc2Nyb2xsU3RyYXRlZ3kgfHwgdGhpcy5zY3JvbGxTdHJhdGVneSgpLFxuICAgICAgcGFuZWxDbGFzczogZGlhbG9nQ29uZmlnLnBhbmVDbGFzcyxcbiAgICAgIGhhc0JhY2tkcm9wOiBkaWFsb2dDb25maWcuaGFzQmFja2Ryb3AsXG4gICAgICBtaW5XaWR0aDogZGlhbG9nQ29uZmlnLm1pbldpZHRoLFxuICAgICAgbWluSGVpZ2h0OiBkaWFsb2dDb25maWcubWluSGVpZ2h0LFxuICAgICAgbWF4V2lkdGg6IGRpYWxvZ0NvbmZpZy5tYXhXaWR0aCxcbiAgICAgIG1heEhlaWdodDogZGlhbG9nQ29uZmlnLm1heEhlaWdodFxuICAgIH0pO1xuXG4gICAgaWYgKGRpYWxvZ0NvbmZpZy5iYWNrZHJvcENsYXNzKSB7XG4gICAgICBzdGF0ZS5iYWNrZHJvcENsYXNzID0gZGlhbG9nQ29uZmlnLmJhY2tkcm9wQ2xhc3M7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN0YXRlO1xuICB9XG5cbiAgcHJpdmF0ZSByZW1vdmVPcGVuRGlhbG9nKGRpYWxvZ1JlZjogT3dsRGlhbG9nUmVmPGFueT4pOiB2b2lkIHtcbiAgICBjb25zdCBpbmRleCA9IHRoaXMuX29wZW5EaWFsb2dzQXRUaGlzTGV2ZWwuaW5kZXhPZihkaWFsb2dSZWYpO1xuXG4gICAgaWYgKGluZGV4ID4gLTEpIHtcbiAgICAgIHRoaXMub3BlbkRpYWxvZ3Muc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgIC8vIElmIGFsbCB0aGUgZGlhbG9ncyB3ZXJlIGNsb3NlZCwgcmVtb3ZlL3Jlc3RvcmUgdGhlIGBhcmlhLWhpZGRlbmBcbiAgICAgIC8vIHRvIGEgdGhlIHNpYmxpbmdzIGFuZCBlbWl0IHRvIHRoZSBgYWZ0ZXJBbGxDbG9zZWRgIHN0cmVhbS5cbiAgICAgIGlmICghdGhpcy5vcGVuRGlhbG9ncy5sZW5ndGgpIHtcbiAgICAgICAgdGhpcy5hcmlhSGlkZGVuRWxlbWVudHMuZm9yRWFjaCgocHJldmlvdXNWYWx1ZSwgZWxlbWVudCkgPT4ge1xuICAgICAgICAgIGlmIChwcmV2aW91c1ZhbHVlKSB7XG4gICAgICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgnYXJpYS1oaWRkZW4nLCBwcmV2aW91c1ZhbHVlKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoJ2FyaWEtaGlkZGVuJyk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmFyaWFIaWRkZW5FbGVtZW50cy5jbGVhcigpO1xuICAgICAgICB0aGlzLl9hZnRlckFsbENsb3NlZC5uZXh0KCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEhpZGVzIGFsbCBvZiB0aGUgY29udGVudCB0aGF0IGlzbid0IGFuIG92ZXJsYXkgZnJvbSBhc3Npc3RpdmUgdGVjaG5vbG9neS5cbiAgICovXG4gIHByaXZhdGUgaGlkZU5vbkRpYWxvZ0NvbnRlbnRGcm9tQXNzaXN0aXZlVGVjaG5vbG9neSgpIHtcbiAgICBjb25zdCBvdmVybGF5Q29udGFpbmVyID0gdGhpcy5vdmVybGF5Q29udGFpbmVyLmdldENvbnRhaW5lckVsZW1lbnQoKTtcblxuICAgIC8vIEVuc3VyZSB0aGF0IHRoZSBvdmVybGF5IGNvbnRhaW5lciBpcyBhdHRhY2hlZCB0byB0aGUgRE9NLlxuICAgIGlmIChvdmVybGF5Q29udGFpbmVyLnBhcmVudEVsZW1lbnQpIHtcbiAgICAgIGNvbnN0IHNpYmxpbmdzID0gb3ZlcmxheUNvbnRhaW5lci5wYXJlbnRFbGVtZW50LmNoaWxkcmVuO1xuXG4gICAgICBmb3IgKGxldCBpID0gc2libGluZ3MubGVuZ3RoIC0gMTsgaSA+IC0xOyBpLS0pIHtcbiAgICAgICAgY29uc3Qgc2libGluZyA9IHNpYmxpbmdzW2ldO1xuXG4gICAgICAgIGlmIChcbiAgICAgICAgICBzaWJsaW5nICE9PSBvdmVybGF5Q29udGFpbmVyICYmXG4gICAgICAgICAgc2libGluZy5ub2RlTmFtZSAhPT0gJ1NDUklQVCcgJiZcbiAgICAgICAgICBzaWJsaW5nLm5vZGVOYW1lICE9PSAnU1RZTEUnICYmXG4gICAgICAgICAgIXNpYmxpbmcuaGFzQXR0cmlidXRlKCdhcmlhLWxpdmUnKVxuICAgICAgICApIHtcbiAgICAgICAgICB0aGlzLmFyaWFIaWRkZW5FbGVtZW50cy5zZXQoXG4gICAgICAgICAgICBzaWJsaW5nLFxuICAgICAgICAgICAgc2libGluZy5nZXRBdHRyaWJ1dGUoJ2FyaWEtaGlkZGVuJylcbiAgICAgICAgICApO1xuICAgICAgICAgIHNpYmxpbmcuc2V0QXR0cmlidXRlKCdhcmlhLWhpZGRlbicsICd0cnVlJyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBBcHBsaWVzIGRlZmF1bHQgb3B0aW9ucyB0byB0aGUgZGlhbG9nIGNvbmZpZy5cbiAqIEBwYXJhbSBjb25maWcgQ29uZmlnIHRvIGJlIG1vZGlmaWVkLlxuICogQHBhcmFtIGRlZmF1bHRPcHRpb25zIERlZmF1bHQgY29uZmlnIHNldHRpbmdcbiAqIEByZXR1cm5zIFRoZSBuZXcgY29uZmlndXJhdGlvbiBvYmplY3QuXG4gKi9cbmZ1bmN0aW9uIGFwcGx5Q29uZmlnRGVmYXVsdHMoXG4gIGNvbmZpZz86IE93bERpYWxvZ0NvbmZpZyxcbiAgZGVmYXVsdE9wdGlvbnM/OiBPd2xEaWFsb2dDb25maWdcbik6IE93bERpYWxvZ0NvbmZpZyB7XG4gIHJldHVybiBleHRlbmRPYmplY3QobmV3IE93bERpYWxvZ0NvbmZpZygpLCBjb25maWcsIGRlZmF1bHRPcHRpb25zKTtcbn1cbiJdfQ==
@@ -0,0 +1,5 @@
1
+ /**
2
+ * index
3
+ */
4
+ export * from './object.utils';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtZm9ybWVudHJ5L3NyYy9jb21wb25lbnRzL25neC1waWNrLWRhdGV0aW1lL2xpYi91dGlscy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsZ0JBQWdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIGluZGV4XG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9vYmplY3QudXRpbHMnO1xuIl19
@@ -0,0 +1,26 @@
1
+ /**
2
+ * object.utils
3
+ */
4
+ /**
5
+ * Extends an object with the *enumerable* and *own* properties of one or more source objects,
6
+ * similar to Object.assign.
7
+ *
8
+ * @param dest The object which will have properties copied to it.
9
+ * @param sources The source objects from which properties will be copied.
10
+ */
11
+ export function extendObject(dest, ...sources) {
12
+ if (dest == null) {
13
+ throw TypeError('Cannot convert undefined or null to object');
14
+ }
15
+ for (const source of sources) {
16
+ if (source != null) {
17
+ for (const key in source) {
18
+ if (source.hasOwnProperty(key)) {
19
+ dest[key] = source[key];
20
+ }
21
+ }
22
+ }
23
+ }
24
+ return dest;
25
+ }
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LnV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWZvcm1lbnRyeS9zcmMvY29tcG9uZW50cy9uZ3gtcGljay1kYXRldGltZS9saWIvdXRpbHMvb2JqZWN0LnV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUg7Ozs7OztHQU1HO0FBQ0gsTUFBTSxVQUFVLFlBQVksQ0FBQyxJQUFTLEVBQUUsR0FBRyxPQUFjO0lBQ3ZELElBQUksSUFBSSxJQUFJLElBQUksRUFBRTtRQUNoQixNQUFNLFNBQVMsQ0FBQyw0Q0FBNEMsQ0FBQyxDQUFDO0tBQy9EO0lBRUQsS0FBSyxNQUFNLE1BQU0sSUFBSSxPQUFPLEVBQUU7UUFDNUIsSUFBSSxNQUFNLElBQUksSUFBSSxFQUFFO1lBQ2xCLEtBQUssTUFBTSxHQUFHLElBQUksTUFBTSxFQUFFO2dCQUN4QixJQUFJLE1BQU0sQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEVBQUU7b0JBQzlCLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7aUJBQ3pCO2FBQ0Y7U0FDRjtLQUNGO0lBRUQsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBvYmplY3QudXRpbHNcbiAqL1xuXG4vKipcbiAqIEV4dGVuZHMgYW4gb2JqZWN0IHdpdGggdGhlICplbnVtZXJhYmxlKiBhbmQgKm93biogcHJvcGVydGllcyBvZiBvbmUgb3IgbW9yZSBzb3VyY2Ugb2JqZWN0cyxcbiAqIHNpbWlsYXIgdG8gT2JqZWN0LmFzc2lnbi5cbiAqXG4gKiBAcGFyYW0gZGVzdCBUaGUgb2JqZWN0IHdoaWNoIHdpbGwgaGF2ZSBwcm9wZXJ0aWVzIGNvcGllZCB0byBpdC5cbiAqIEBwYXJhbSBzb3VyY2VzIFRoZSBzb3VyY2Ugb2JqZWN0cyBmcm9tIHdoaWNoIHByb3BlcnRpZXMgd2lsbCBiZSBjb3BpZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBleHRlbmRPYmplY3QoZGVzdDogYW55LCAuLi5zb3VyY2VzOiBhbnlbXSk6IGFueSB7XG4gIGlmIChkZXN0ID09IG51bGwpIHtcbiAgICB0aHJvdyBUeXBlRXJyb3IoJ0Nhbm5vdCBjb252ZXJ0IHVuZGVmaW5lZCBvciBudWxsIHRvIG9iamVjdCcpO1xuICB9XG5cbiAgZm9yIChjb25zdCBzb3VyY2Ugb2Ygc291cmNlcykge1xuICAgIGlmIChzb3VyY2UgIT0gbnVsbCkge1xuICAgICAgZm9yIChjb25zdCBrZXkgaW4gc291cmNlKSB7XG4gICAgICAgIGlmIChzb3VyY2UuaGFzT3duUHJvcGVydHkoa2V5KSkge1xuICAgICAgICAgIGRlc3Rba2V5XSA9IHNvdXJjZVtrZXldO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGRlc3Q7XG59XG4iXX0=
@@ -0,0 +1,121 @@
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
+ export class RemoteSelectComponent {
6
+ constructor(renderer) {
7
+ this.renderer = renderer;
8
+ this.remoteOptionsLoading = false;
9
+ this.remoteOptionInput$ = new Subject();
10
+ this.placeholder = 'Search...';
11
+ this.disabled = false;
12
+ this.theme = 'dark';
13
+ this.items = [];
14
+ this.value = [];
15
+ this.loading = false;
16
+ this.searchText = '';
17
+ this.notFoundMsg = 'match no found';
18
+ this.done = new EventEmitter();
19
+ this.compareItems = (item, selected) => {
20
+ if (item.value && selected.value) {
21
+ return item.value === selected.value;
22
+ }
23
+ return false;
24
+ };
25
+ // the method set in registerOnChange, it is just
26
+ // a placeholder for a method that takes one parameter,
27
+ // we use it to emit changes back to the form
28
+ this.propagateChange = (change) => { };
29
+ }
30
+ get dataSource() {
31
+ return this._dataSource;
32
+ }
33
+ set dataSource(v) {
34
+ this._dataSource = v;
35
+ if (this._dataSource && this._dataSource.dataFromSourceChanged) {
36
+ this.subscribeToDataSourceDataChanges();
37
+ }
38
+ }
39
+ ngOnInit() {
40
+ this.loadOptions();
41
+ }
42
+ subscribeToDataSourceDataChanges() {
43
+ this._dataSource.dataFromSourceChanged.subscribe((results) => {
44
+ if (results.length > 0) {
45
+ this.items = results;
46
+ this.notFoundMsg = '';
47
+ }
48
+ else {
49
+ this.notFoundMsg = 'Not found';
50
+ this.items = [];
51
+ }
52
+ });
53
+ }
54
+ // this is the initial value set to the component
55
+ writeValue(value) {
56
+ if (value && value !== '') {
57
+ if (this.dataSource) {
58
+ this.loading = true;
59
+ this.dataSource.resolveSelectedValue(value).subscribe((result) => {
60
+ this.items = [result];
61
+ this.selectedRemoteOptions = result;
62
+ this.loading = false;
63
+ }, (error) => {
64
+ this.loading = false;
65
+ });
66
+ }
67
+ }
68
+ }
69
+ // registers 'fn' that will be fired when changes are made
70
+ // this is how we emit the changes back to the form
71
+ registerOnChange(fn) {
72
+ this.propagateChange = fn;
73
+ }
74
+ // not used, used for touch input
75
+ registerOnTouched() { }
76
+ // change events from the textarea
77
+ onChange(event) {
78
+ this.propagateChange(event.id);
79
+ // .....
80
+ // update the form
81
+ // this.propagateChange(this.data);
82
+ }
83
+ selected(event) {
84
+ this.propagateChange(event);
85
+ }
86
+ trackByFn(item) {
87
+ return item.value;
88
+ }
89
+ loadOptions() {
90
+ this.remoteOptions$ = concat(of([]), // default items
91
+ this.remoteOptionInput$.pipe(distinctUntilChanged(), tap(() => {
92
+ this.loading = true;
93
+ }), switchMap((term) => this.dataSource.searchOptions(term).pipe(catchError(() => of([])), // empty list on error
94
+ tap(() => (this.loading = false))))));
95
+ }
96
+ }
97
+ RemoteSelectComponent.decorators = [
98
+ { type: Component, args: [{
99
+ selector: 'ngx-remote-select',
100
+ template: "<div>\n <ng-select [ngClass]=\"{'afe-custom': theme === 'light'}\" [disabled]=\"disabled\" [items]=\"remoteOptions$ | async\" bindLabel=\"label\" bindValue=\"value\" [multiple]=\"false\"\n [hideSelected]=\"true\" [compareWith]=\"compareItems\" [trackByFn]=\"trackByFn\" [loading]=\"loading\"\n typeToSearchText=\"Please enter 2 or more characters\" [typeahead]=\"remoteOptionInput$\"\n [(ngModel)]=\"selectedRemoteOptions\" (ngModelChange)=\"selected($event)\">\n </ng-select>\n</div>",
101
+ providers: [
102
+ {
103
+ provide: NG_VALUE_ACCESSOR,
104
+ useExisting: forwardRef(() => RemoteSelectComponent),
105
+ multi: true
106
+ }
107
+ ]
108
+ },] }
109
+ ];
110
+ RemoteSelectComponent.ctorParameters = () => [
111
+ { type: Renderer2 }
112
+ ];
113
+ RemoteSelectComponent.propDecorators = {
114
+ placeholder: [{ type: Input }],
115
+ componentID: [{ type: Input }],
116
+ disabled: [{ type: Input }],
117
+ theme: [{ type: Input }],
118
+ done: [{ type: Output }],
119
+ dataSource: [{ type: Input }]
120
+ };
121
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXJlbW90ZS1zZWxlY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWZvcm1lbnRyeS9zcmMvY29tcG9uZW50cy9uZ3gtcmVtb3RlLXNlbGVjdC9uZ3gtcmVtb3RlLXNlbGVjdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxLQUFLLEVBQ0wsVUFBVSxFQUVWLE1BQU0sRUFDTixZQUFZLEVBQ1osU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsTUFBTSxFQUFjLEVBQUUsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkQsT0FBTyxFQUNMLFVBQVUsRUFFVixvQkFBb0IsRUFDcEIsU0FBUyxFQUNULEdBQUcsRUFDSixNQUFNLGdCQUFnQixDQUFDO0FBZ0J4QixNQUFNLE9BQU8scUJBQXFCO0lBNkJoQyxZQUFvQixRQUFtQjtRQUFuQixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBMUJ2Qyx5QkFBb0IsR0FBRyxLQUFLLENBQUM7UUFDN0IsdUJBQWtCLEdBQUcsSUFBSSxPQUFPLEVBQVUsQ0FBQztRQUVsQyxnQkFBVyxHQUFHLFdBQVcsQ0FBQztRQUUxQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLFVBQUssR0FBRyxNQUFNLENBQUM7UUFDeEIsVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUNYLFVBQUssR0FBRyxFQUFFLENBQUM7UUFDWCxZQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ2hCLGVBQVUsR0FBRyxFQUFFLENBQUM7UUFDaEIsZ0JBQVcsR0FBRyxnQkFBZ0IsQ0FBQztRQUNyQixTQUFJLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7UUFxRTVELGlCQUFZLEdBQUcsQ0FBQyxJQUFJLEVBQUUsUUFB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QUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUMxQixvQkFBb0IsRUFBRSxFQUN0QixHQUFHLENBQUMsR0FBRyxFQUFFO1lBQ1AsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFDdEIsQ0FBQyxDQUFDLEVBQ0YsU0FBUyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FDakIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUN0QyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsc0JBQXNCO1FBQ2hELEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FDbEMsQ0FDRixDQUNGLENBQ0YsQ0FBQztJQUNKLENBQUM7OztZQS9IRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLG1CQUFtQjtnQkFDN0IsNmZBQTJDO2dCQUMzQyxTQUFTLEVBQUU7b0JBQ1Q7d0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjt3QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQzt3QkFDcEQsS0FBSyxFQUFFLElBQUk7cUJBQ1o7aUJBQ0Y7YUFDRjs7O1lBekJDLFNBQVM7OzswQkFnQ1IsS0FBSzswQkFDTCxLQUFLO3VCQUNMLEtBQUs7b0JBQ0wsS0FBSzttQkFNTCxNQUFNO3lCQUdOLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIE9uSW5pdCxcbiAgSW5wdXQsXG4gIGZvcndhcmRSZWYsXG4gIFZpZXdDaGlsZCxcbiAgT3V0cHV0LFxuICBFdmVudEVtaXR0ZXIsXG4gIFJlbmRlcmVyMlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGNvbmNhdCwgT2JzZXJ2YWJsZSwgb2YsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIGNhdGNoRXJyb3IsXG4gIGRlYm91bmNlVGltZSxcbiAgZGlzdGluY3RVbnRpbENoYW5nZWQsXG4gIHN3aXRjaE1hcCxcbiAgdGFwXG59IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFNlbGVjdE9wdGlvbiB9IGZyb20gJy4uLy4uL2Zvcm0tZW50cnkvcXVlc3Rpb24tbW9kZWxzL2ludGVyZmFjZXMvc2VsZWN0LW9wdGlvbic7XG5cbmltcG9ydCB7IERhdGFTb3VyY2UgfSBmcm9tICcuLi8uLi9mb3JtLWVudHJ5L3F1ZXN0aW9uLW1vZGVscy9pbnRlcmZhY2VzL2RhdGEtc291cmNlJztcbmltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoJztcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25neC1yZW1vdGUtc2VsZWN0JyxcbiAgdGVtcGxhdGVVcmw6ICdyZW1vdGUtc2VsZWN0LmNvbXBvbmVudC5odG1sJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBSZW1vdGVTZWxlY3RDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgUmVtb3RlU2VsZWN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gIC8vIEBJbnB1dCgpIGRhdGFTb3VyY2U6IERhdGFTb3VyY2U7XG4gIHJlbW90ZU9wdGlvbnMkOiBPYnNlcnZhYmxlPFNlbGVjdE9wdGlvbltdPjtcbiAgcmVtb3RlT3B0aW9uc0xvYWRpbmcgPSBmYWxzZTtcbiAgcmVtb3RlT3B0aW9uSW5wdXQkID0gbmV3IFN1YmplY3Q8c3RyaW5nPigpO1xuICBzZWxlY3RlZFJlbW90ZU9wdGlvbnM6IFNlbGVjdE9wdGlvbjtcbiAgQElucHV0KCkgcGxhY2Vob2xkZXIgPSAnU2VhcmNoLi4uJztcbiAgQElucHV0KCkgY29tcG9uZW50SUQ6IHN0cmluZztcbiAgQElucHV0KCkgZGlzYWJsZWQgPSBmYWxzZTtcbiAgQElucHV0KCkgdGhlbWUgPSAnZGFyayc7XG4gIGl0ZW1zID0gW107XG4gIHZhbHVlID0gW107XG4gIGxvYWRpbmcgPSBmYWxzZTtcbiAgc2VhcmNoVGV4dCA9ICcnO1xuICBub3RGb3VuZE1zZyA9ICdtYXRjaCBubyBmb3VuZCc7XG4gIEBPdXRwdXQoKSBkb25lOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIHByaXZhdGUgX2RhdGFTb3VyY2U6IERhdGFTb3VyY2U7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBnZXQgZGF0YVNvdXJjZSgpOiBEYXRhU291cmNlIHtcbiAgICByZXR1cm4gdGhpcy5fZGF0YVNvdXJjZTtcbiAgfVxuICBwdWJsaWMgc2V0IGRhdGFTb3VyY2UodjogRGF0YVNvdXJjZSkge1xuICAgIHRoaXMuX2RhdGFTb3VyY2UgPSB2O1xuICAgIGlmICh0aGlzLl9kYXRhU291cmNlICYmIHRoaXMuX2RhdGFTb3VyY2UuZGF0YUZyb21Tb3VyY2VDaGFuZ2VkKSB7XG4gICAgICB0aGlzLnN1YnNjcmliZVRvRGF0YVNvdXJjZURhdGFDaGFuZ2VzKCk7XG4gICAgfVxuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMubG9hZE9wdGlvbnMoKTtcbiAgfVxuXG4gIHN1YnNjcmliZVRvRGF0YVNvdXJjZURhdGFDaGFuZ2VzKCkge1xuICAgIHRoaXMuX2RhdGFTb3VyY2UuZGF0YUZyb21Tb3VyY2VDaGFuZ2VkLnN1YnNjcmliZSgocmVzdWx0cykgPT4ge1xuICAgICAgaWYgKHJlc3VsdHMubGVuZ3RoID4gMCkge1xuICAgICAgICB0aGlzLml0ZW1zID0gcmVzdWx0cztcbiAgICAgICAgdGhpcy5ub3RGb3VuZE1zZyA9ICcnO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5ub3RGb3VuZE1zZyA9ICdOb3QgZm91bmQnO1xuICAgICAgICB0aGlzLml0ZW1zID0gW107XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvLyB0aGlzIGlzIHRoZSBpbml0aWFsIHZhbHVlIHNldCB0byB0aGUgY29tcG9uZW50XG4gIHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICBpZiAodmFsdWUgJiYgdmFsdWUgIT09ICcnKSB7XG4gICAgICBpZiAodGhpcy5kYXRhU291cmNlKSB7XG4gICAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG4gICAgICAgIHRoaXMuZGF0YVNvdXJjZS5yZXNvbHZlU2VsZWN0ZWRWYWx1ZSh2YWx1ZSkuc3Vic2NyaWJlKFxuICAgICAgICAgIChyZXN1bHQ6IGFueSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5pdGVtcyA9IFtyZXN1bHRdO1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFJlbW90ZU9wdGlvbnMgPSByZXN1bHQ7XG4gICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIChlcnJvcikgPT4ge1xuICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAvLyByZWdpc3RlcnMgJ2ZuJyB0aGF0IHdpbGwgYmUgZmlyZWQgd2hlbiBjaGFuZ2VzIGFyZSBtYWRlXG4gIC8vIHRoaXMgaXMgaG93IHdlIGVtaXQgdGhlIGNoYW5nZXMgYmFjayB0byB0aGUgZm9ybVxuICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KSB7XG4gICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIC8vIG5vdCB1c2VkLCB1c2VkIGZvciB0b3VjaCBpbnB1dFxuICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoKSB7fVxuICAvLyBjaGFuZ2UgZXZlbnRzIGZyb20gdGhlIHRleHRhcmVhXG4gIG9uQ2hhbmdlKGV2ZW50KSB7XG4gICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UoZXZlbnQuaWQpO1xuICAgIC8vIC4uLi4uXG4gICAgLy8gdXBkYXRlIHRoZSBmb3JtXG4gICAgLy8gdGhpcy5wcm9wYWdhdGVDaGFuZ2UodGhpcy5kYXRhKTtcbiAgfVxuICBzZWxlY3RlZChldmVudCkge1xuICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlKGV2ZW50KTtcbiAgfVxuXG4gIGNvbXBhcmVJdGVtcyA9IChpdGVtLCBzZWxlY3RlZCkgPT4ge1xuICAgIGlmIChpdGVtLnZhbHVlICYmIHNlbGVjdGVkLnZhbHVlKSB7XG4gICAgICByZXR1cm4gaXRlbS52YWx1ZSA9PT0gc2VsZWN0ZWQudmFsdWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfTtcblxuICAvLyB0aGUgbWV0aG9kIHNldCBpbiByZWdpc3Rlck9uQ2hhbmdlLCBpdCBpcyBqdXN0XG4gIC8vIGEgcGxhY2Vob2xkZXIgZm9yIGEgbWV0aG9kIHRoYXQgdGFrZXMgb25lIHBhcmFtZXRlcixcbiAgLy8gd2UgdXNlIGl0IHRvIGVtaXQgY2hhbmdlcyBiYWNrIHRvIHRoZSBmb3JtXG4gIHByaXZhdGUgcHJvcGFnYXRlQ2hhbmdlID0gKGNoYW5nZTogYW55KSA9PiB7fTtcblxuICB0cmFja0J5Rm4oaXRlbTogU2VsZWN0T3B0aW9uKSB7XG4gICAgcmV0dXJuIGl0ZW0udmFsdWU7XG4gIH1cblxuICBwcml2YXRlIGxvYWRPcHRpb25zKCkge1xuICAgIHRoaXMucmVtb3RlT3B0aW9ucyQgPSBjb25jYXQoXG4gICAgICBvZihbXSksIC8vIGRlZmF1bHQgaXRlbXNcbiAgICAgIHRoaXMucmVtb3RlT3B0aW9uSW5wdXQkLnBpcGUoXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICAgICAgfSksXG4gICAgICAgIHN3aXRjaE1hcCgodGVybSkgPT5cbiAgICAgICAgICB0aGlzLmRhdGFTb3VyY2Uuc2VhcmNoT3B0aW9ucyh0ZXJtKS5waXBlKFxuICAgICAgICAgICAgY2F0Y2hFcnJvcigoKSA9PiBvZihbXSkpLCAvLyBlbXB0eSBsaXN0IG9uIGVycm9yXG4gICAgICAgICAgICB0YXAoKCkgPT4gKHRoaXMubG9hZGluZyA9IGZhbHNlKSlcbiAgICAgICAgICApXG4gICAgICAgIClcbiAgICAgIClcbiAgICApO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,16 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { FormsModule } from '@angular/forms';
4
+ import { NgSelectModule } from '@ng-select/ng-select';
5
+ import { RemoteSelectComponent } from './ngx-remote-select.component';
6
+ export class NgxRemoteSelectModule {
7
+ }
8
+ NgxRemoteSelectModule.decorators = [
9
+ { type: NgModule, args: [{
10
+ imports: [CommonModule, NgSelectModule, FormsModule],
11
+ exports: [RemoteSelectComponent],
12
+ declarations: [RemoteSelectComponent],
13
+ providers: []
14
+ },] }
15
+ ];
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXJlbW90ZS1zZWxlY3QubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWZvcm1lbnRyeS9zcmMvY29tcG9uZW50cy9uZ3gtcmVtb3RlLXNlbGVjdC9uZ3gtcmVtb3RlLXNlbGVjdC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQVF0RSxNQUFNLE9BQU8scUJBQXFCOzs7WUFOakMsUUFBUSxTQUFDO2dCQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxjQUFjLEVBQUUsV0FBVyxDQUFDO2dCQUNwRCxPQUFPLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQztnQkFDaEMsWUFBWSxFQUFFLENBQUMscUJBQXFCLENBQUM7Z0JBQ3JDLFNBQVMsRUFBRSxFQUFFO2FBQ2QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBOZ1NlbGVjdE1vZHVsZSB9IGZyb20gJ0BuZy1zZWxlY3Qvbmctc2VsZWN0JztcbmltcG9ydCB7IFJlbW90ZVNlbGVjdENvbXBvbmVudCB9IGZyb20gJy4vbmd4LXJlbW90ZS1zZWxlY3QuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgTmdTZWxlY3RNb2R1bGUsIEZvcm1zTW9kdWxlXSxcbiAgZXhwb3J0czogW1JlbW90ZVNlbGVjdENvbXBvbmVudF0sXG4gIGRlY2xhcmF0aW9uczogW1JlbW90ZVNlbGVjdENvbXBvbmVudF0sXG4gIHByb3ZpZGVyczogW11cbn0pXG5leHBvcnQgY2xhc3MgTmd4UmVtb3RlU2VsZWN0TW9kdWxlIHt9XG4iXX0=