@ampath-kenya/ngx-openmrs-formentry 3.0.0-alpha9 → 3.0.0-ampath.1-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (441) hide show
  1. package/abstract-controls-extension/afe-control-type.d.ts +1 -1
  2. package/abstract-controls-extension/afe-form-array.d.ts +2 -3
  3. package/abstract-controls-extension/afe-form-control.d.ts +1 -1
  4. package/abstract-controls-extension/afe-form-group.d.ts +1 -1
  5. package/ampath-kenya-ngx-openmrs-formentry.d.ts +48 -74
  6. package/ampath-kenya-ngx-openmrs-formentry.metadata.json +1 -1
  7. package/bundles/ampath-kenya-ngx-openmrs-formentry.umd.js +5729 -9376
  8. package/bundles/ampath-kenya-ngx-openmrs-formentry.umd.js.map +1 -1
  9. package/bundles/ampath-kenya-ngx-openmrs-formentry.umd.min.js +1 -16
  10. package/bundles/ampath-kenya-ngx-openmrs-formentry.umd.min.js.map +1 -1
  11. package/change-tracking/control-relation.d.ts +4 -4
  12. package/change-tracking/control-relations.d.ts +3 -3
  13. package/components/check-box/checkbox.component.d.ts +1 -2
  14. package/components/date-time-picker/date-time-picker.component.d.ts +1 -2
  15. package/components/date-time-picker/date-time-picker.module.d.ts +0 -3
  16. package/components/file-upload/file-upload.component.d.ts +25 -0
  17. package/components/file-upload/file-upload.module.d.ts +2 -0
  18. package/components/file-upload/secure.pipe.d.ts +5 -5
  19. package/components/ngx-date-time-picker/ngx-date-time-picker.component.d.ts +52 -0
  20. package/components/{ngx-datetime-picker/ngx-datetime-picker.module.d.ts → ngx-date-time-picker/ngx-date-time-picker.module.d.ts} +0 -3
  21. package/components/ngx-time-picker/ngx-time-picker.component.d.ts +13 -0
  22. package/components/ngx-time-picker/ngx-time-picker.module.d.ts +2 -0
  23. package/components/{ngx-remote-select/ngx-remote-select.component.d.ts → remote-select/remote-select.component.d.ts} +8 -12
  24. package/components/remote-select/remote-select.module.d.ts +2 -0
  25. package/components/select/diacritics.d.ts +844 -0
  26. package/components/select/option-list.d.ts +36 -0
  27. package/components/select/option.d.ts +17 -0
  28. package/components/select/select-dropdown.component.d.ts +40 -0
  29. package/components/select/select-dropdown.component.style.d.ts +1 -0
  30. package/components/select/select.component.d.ts +96 -108
  31. package/components/select/select.component.style.d.ts +1 -0
  32. package/encounter-viewer/display-controls/file-preview.component.d.ts +25 -0
  33. package/encounter-viewer/display-controls/question-control.component.d.ts +15 -0
  34. package/encounter-viewer/display-controls/remote-answer.component.d.ts +17 -0
  35. package/encounter-viewer/encounter-container/encounter-container.component.d.ts +15 -0
  36. package/encounter-viewer/encounter-pdf-viewer.service.d.ts +27 -0
  37. package/encounter-viewer/encounter-view/encounter-viewer.component.d.ts +30 -0
  38. package/encounter-viewer/encounter-viewer.module.d.ts +2 -0
  39. package/encounter-viewer/encounter-viewer.service.d.ts +16 -0
  40. package/esm2015/abstract-controls-extension/afe-control-type.js +2 -1
  41. package/esm2015/abstract-controls-extension/afe-form-array.js +2 -1
  42. package/esm2015/abstract-controls-extension/afe-form-control.js +2 -1
  43. package/esm2015/abstract-controls-extension/afe-form-group.js +2 -1
  44. package/esm2015/abstract-controls-extension/control-extensions.js +2 -1
  45. package/esm2015/abstract-controls-extension/index.js +2 -1
  46. package/esm2015/abstract-controls-extension/value-change.listener.js +2 -2
  47. package/esm2015/ampath-kenya-ngx-openmrs-formentry.js +40 -65
  48. package/esm2015/change-tracking/control-relation.js +2 -1
  49. package/esm2015/change-tracking/control-relations.js +2 -1
  50. package/esm2015/components/afe-ng-select.component.js +3 -2
  51. package/esm2015/components/appointments-overview/appointments-overview.component.js +78 -33
  52. package/esm2015/components/check-box/checkbox.component.js +24 -3
  53. package/esm2015/components/check-box/checkbox.module.js +3 -2
  54. package/esm2015/components/date-time-picker/date-picker/date-picker.component.js +93 -4
  55. package/esm2015/components/date-time-picker/date-time-picker.component.js +109 -5
  56. package/esm2015/components/date-time-picker/date-time-picker.module.js +3 -2
  57. package/esm2015/components/date-time-picker/picker-modal/modal.component.js +13 -5
  58. package/esm2015/components/date-time-picker/pipes/moment.pipe.js +3 -2
  59. package/esm2015/components/date-time-picker/time-picker/time-picker.component.js +51 -4
  60. package/esm2015/components/file-upload/file-upload.component.js +130 -0
  61. package/esm2015/components/file-upload/file-upload.module.js +28 -0
  62. package/esm2015/components/file-upload/secure.pipe.js +5 -3
  63. package/esm2015/components/ngx-date-time-picker/ngx-date-time-picker.component.js +259 -0
  64. package/esm2015/components/ngx-date-time-picker/ngx-date-time-picker.module.js +43 -0
  65. package/esm2015/components/ngx-time-picker/ngx-time-picker.component.js +78 -0
  66. package/esm2015/components/ngx-time-picker/ngx-time-picker.module.js +16 -0
  67. package/esm2015/components/remote-select/remote-select.component.js +171 -0
  68. package/esm2015/components/remote-select/remote-select.module.js +18 -0
  69. package/esm2015/components/select/diacritics.js +856 -0
  70. package/esm2015/components/select/option-list.js +180 -0
  71. package/esm2015/components/select/option.js +30 -0
  72. package/esm2015/components/select/select-dropdown.component.js +162 -0
  73. package/esm2015/components/select/select-dropdown.component.style.js +59 -0
  74. package/esm2015/components/select/select.component.js +493 -216
  75. package/esm2015/components/select/select.component.style.js +102 -0
  76. package/esm2015/components/select/select.module.js +11 -24
  77. package/esm2015/encounter-viewer/display-controls/file-preview.component.js +111 -0
  78. package/esm2015/encounter-viewer/display-controls/question-control.component.js +94 -0
  79. package/esm2015/encounter-viewer/display-controls/remote-answer.component.js +81 -0
  80. package/esm2015/encounter-viewer/encounter-container/encounter-container.component.js +50 -0
  81. package/esm2015/encounter-viewer/encounter-pdf-viewer.service.js +437 -0
  82. package/esm2015/encounter-viewer/encounter-view/encounter-viewer.component.js +301 -0
  83. package/esm2015/encounter-viewer/encounter-viewer.module.js +36 -0
  84. package/esm2015/encounter-viewer/encounter-viewer.service.js +162 -0
  85. package/esm2015/form-entry/control-alerts/alert-helpers.js +2 -1
  86. package/esm2015/form-entry/control-alerts/can-generate-alert.js +2 -2
  87. package/esm2015/form-entry/control-calculators/can-calculate.js +2 -2
  88. package/esm2015/form-entry/control-hiders-disablers/can-disable.js +2 -2
  89. package/esm2015/form-entry/control-hiders-disablers/can-hide.js +2 -2
  90. package/esm2015/form-entry/control-hiders-disablers/disabler-helper.js +2 -1
  91. package/esm2015/form-entry/control-hiders-disablers/hider-helpers.js +2 -1
  92. package/esm2015/form-entry/data-sources/data-sources.js +5 -3
  93. package/esm2015/form-entry/data-sources/dummy-data-source.js +2 -1
  94. package/esm2015/form-entry/directives/historical-value-directive.js +4 -2
  95. package/esm2015/form-entry/error-renderer/error-renderer.component.js +20 -4
  96. package/esm2015/form-entry/expression-runner/expression-runner.js +13 -16
  97. package/esm2015/form-entry/form-entry.module.js +29 -25
  98. package/esm2015/form-entry/form-factory/control-relations.factory.js +4 -2
  99. package/esm2015/form-entry/form-factory/form-control.service.js +4 -2
  100. package/esm2015/form-entry/form-factory/form-node.js +2 -4
  101. package/esm2015/form-entry/form-factory/form.factory.js +4 -2
  102. package/esm2015/form-entry/form-factory/form.js +2 -1
  103. package/esm2015/form-entry/form-factory/hiders-disablers.factory.js +4 -2
  104. package/esm2015/form-entry/form-factory/question.factory.js +158 -23
  105. package/esm2015/form-entry/form-factory/show-messages.factory.js +4 -2
  106. package/esm2015/form-entry/form-factory/validation.factory.js +4 -2
  107. package/esm2015/form-entry/form-renderer/form-renderer.component.css.js +8 -12
  108. package/esm2015/form-entry/form-renderer/form-renderer.component.js +458 -9
  109. package/esm2015/form-entry/helpers/historical-expression-helper-service.js +4 -2
  110. package/esm2015/form-entry/helpers/historical-field-helper-service.js +2 -5
  111. package/esm2015/form-entry/helpers/js-expression-helper.js +2 -5
  112. package/esm2015/form-entry/question-models/checkbox.model.js +2 -1
  113. package/esm2015/form-entry/question-models/conditional-validation.model.js +2 -1
  114. package/esm2015/form-entry/question-models/date-question.js +3 -1
  115. package/esm2015/form-entry/question-models/date-validation.model.js +2 -1
  116. package/esm2015/form-entry/question-models/decimal-point-validation.model.js +20 -0
  117. package/esm2015/form-entry/question-models/file-upload-question.js +2 -1
  118. package/esm2015/form-entry/question-models/group-question.js +2 -1
  119. package/esm2015/form-entry/question-models/interfaces/base-options.js +2 -2
  120. package/esm2015/form-entry/question-models/interfaces/checkbox-options.js +2 -2
  121. package/esm2015/form-entry/question-models/interfaces/data-source.js +2 -2
  122. package/esm2015/form-entry/question-models/interfaces/date-question-options.js +2 -2
  123. package/esm2015/form-entry/question-models/interfaces/file-upload-question-options.js +2 -2
  124. package/esm2015/form-entry/question-models/interfaces/group-question-options.js +2 -2
  125. package/esm2015/form-entry/question-models/interfaces/multi-select-options.js +2 -2
  126. package/esm2015/form-entry/question-models/interfaces/nested-questions.js +2 -1
  127. package/esm2015/form-entry/question-models/interfaces/repeating-question-options.js +2 -2
  128. package/esm2015/form-entry/question-models/interfaces/select-option.js +2 -2
  129. package/esm2015/form-entry/question-models/interfaces/select-question-options.js +2 -2
  130. package/esm2015/form-entry/question-models/interfaces/test-order-question-options.js +2 -2
  131. package/esm2015/form-entry/question-models/interfaces/text-area-question-options.js +2 -2
  132. package/esm2015/form-entry/question-models/interfaces/text-question-options.js +2 -2
  133. package/esm2015/form-entry/question-models/interfaces/time-question-options.js +2 -0
  134. package/esm2015/form-entry/question-models/interfaces/ui-select-question-options.js +2 -2
  135. package/esm2015/form-entry/question-models/js-expression-validation.model.js +2 -1
  136. package/esm2015/form-entry/question-models/max-validation.model.js +2 -1
  137. package/esm2015/form-entry/question-models/min-validation.model.js +2 -1
  138. package/esm2015/form-entry/question-models/models.js +2 -1
  139. package/esm2015/form-entry/question-models/multi-select-question.js +2 -1
  140. package/esm2015/form-entry/question-models/pair.model.js +2 -1
  141. package/esm2015/form-entry/question-models/question-base.js +2 -1
  142. package/esm2015/form-entry/question-models/rendering-type.js +2 -1
  143. package/esm2015/form-entry/question-models/repeating-question.js +2 -1
  144. package/esm2015/form-entry/question-models/select-option.js +2 -1
  145. package/esm2015/form-entry/question-models/select-question.js +2 -1
  146. package/esm2015/form-entry/question-models/test-order-question.js +2 -1
  147. package/esm2015/form-entry/question-models/text-area-input-question.js +2 -1
  148. package/esm2015/form-entry/question-models/text-input-question.js +2 -1
  149. package/esm2015/form-entry/question-models/time-question.js +11 -0
  150. package/esm2015/form-entry/question-models/ui-select-question.js +2 -1
  151. package/esm2015/form-entry/question-models/validation.model.js +2 -1
  152. package/esm2015/form-entry/services/debug-mode.service.js +4 -2
  153. package/esm2015/form-entry/services/form-errors.service.js +3 -2
  154. package/esm2015/form-entry/services/form-schema-compiler.service.js +4 -2
  155. package/esm2015/form-entry/services/historical-encounter-data.service.js +4 -2
  156. package/esm2015/form-entry/utils/messages.js +2 -1
  157. package/esm2015/form-entry/validators/conditional-answered.validator.js +2 -1
  158. package/esm2015/form-entry/validators/conditional-required.validator.js +2 -1
  159. package/esm2015/form-entry/validators/date.validator.js +2 -1
  160. package/esm2015/form-entry/validators/future-date-restriction.validator.js +2 -1
  161. package/esm2015/form-entry/validators/js-expression.validator.js +2 -1
  162. package/esm2015/form-entry/validators/max-date.validator.js +2 -1
  163. package/esm2015/form-entry/validators/max.validator.js +2 -1
  164. package/esm2015/form-entry/validators/min-date.validator.js +2 -1
  165. package/esm2015/form-entry/validators/min.validator.js +2 -1
  166. package/esm2015/form-entry/validators/required.validator.js +2 -1
  167. package/esm2015/form-entry/validators/validations.js +2 -1
  168. package/esm2015/form-entry/value-adapters/encounter.adapter.js +5 -3
  169. package/esm2015/form-entry/value-adapters/obs-adapter-helper.js +5 -11
  170. package/esm2015/form-entry/value-adapters/obs.adapter.js +5 -6
  171. package/esm2015/form-entry/value-adapters/order.adapter.js +3 -2
  172. package/esm2015/form-entry/value-adapters/person-attribute.adapter.js +8 -3
  173. package/esm2015/form-entry/value-adapters/value.adapter.js +2 -2
  174. package/esm2015/public_api.js +52 -2
  175. package/esm2015/shared.module.js +3 -2
  176. package/esm5/abstract-controls-extension/afe-control-type.js +9 -0
  177. package/esm5/abstract-controls-extension/afe-form-array.js +99 -0
  178. package/esm5/abstract-controls-extension/afe-form-control.js +97 -0
  179. package/esm5/abstract-controls-extension/afe-form-group.js +71 -0
  180. package/esm5/abstract-controls-extension/control-extensions.js +6 -0
  181. package/esm5/abstract-controls-extension/index.js +6 -0
  182. package/esm5/abstract-controls-extension/value-change.listener.js +2 -0
  183. package/esm5/ampath-kenya-ngx-openmrs-formentry.js +45 -0
  184. package/esm5/change-tracking/control-relation.js +60 -0
  185. package/esm5/change-tracking/control-relations.js +47 -0
  186. package/esm5/components/afe-ng-select.component.js +88 -0
  187. package/esm5/components/appointments-overview/appointments-overview.component.js +127 -0
  188. package/esm5/components/check-box/checkbox.component.js +89 -0
  189. package/esm5/components/check-box/checkbox.module.js +19 -0
  190. package/esm5/components/date-time-picker/date-picker/date-picker.component.js +188 -0
  191. package/esm5/components/date-time-picker/date-time-picker.component.js +113 -0
  192. package/esm5/components/date-time-picker/date-time-picker.module.js +39 -0
  193. package/esm5/components/date-time-picker/picker-modal/modal.component.js +34 -0
  194. package/esm5/components/date-time-picker/pipes/moment.pipe.js +18 -0
  195. package/esm5/components/date-time-picker/time-picker/time-picker.component.js +119 -0
  196. package/esm5/components/file-upload/file-upload.component.js +128 -0
  197. package/esm5/components/file-upload/file-upload.module.js +32 -0
  198. package/esm5/components/file-upload/secure.pipe.js +107 -0
  199. package/esm5/components/ngx-date-time-picker/ngx-date-time-picker.component.js +221 -0
  200. package/esm5/components/ngx-date-time-picker/ngx-date-time-picker.module.js +47 -0
  201. package/esm5/components/ngx-time-picker/ngx-time-picker.component.js +74 -0
  202. package/esm5/components/ngx-time-picker/ngx-time-picker.module.js +20 -0
  203. package/esm5/components/remote-select/remote-select.component.js +165 -0
  204. package/esm5/components/remote-select/remote-select.module.js +22 -0
  205. package/esm5/components/select/diacritics.js +861 -0
  206. package/esm5/components/select/option-list.js +225 -0
  207. package/esm5/components/select/option.js +32 -0
  208. package/esm5/components/select/select-dropdown.component.js +132 -0
  209. package/esm5/components/select/select-dropdown.component.style.js +3 -0
  210. package/esm5/components/select/select.component.js +457 -0
  211. package/esm5/components/select/select.component.style.js +3 -0
  212. package/esm5/components/select/select.module.js +20 -0
  213. package/esm5/encounter-viewer/display-controls/file-preview.component.js +111 -0
  214. package/esm5/encounter-viewer/display-controls/question-control.component.js +106 -0
  215. package/esm5/encounter-viewer/display-controls/remote-answer.component.js +88 -0
  216. package/esm5/encounter-viewer/encounter-container/encounter-container.component.js +47 -0
  217. package/esm5/encounter-viewer/encounter-pdf-viewer.service.js +523 -0
  218. package/esm5/encounter-viewer/encounter-view/encounter-viewer.component.js +187 -0
  219. package/esm5/encounter-viewer/encounter-viewer.module.js +40 -0
  220. package/esm5/encounter-viewer/encounter-viewer.service.js +167 -0
  221. package/esm5/form-entry/control-alerts/alert-helpers.js +45 -0
  222. package/esm5/form-entry/control-alerts/can-generate-alert.js +2 -0
  223. package/esm5/form-entry/control-calculators/can-calculate.js +2 -0
  224. package/esm5/form-entry/control-hiders-disablers/can-disable.js +2 -0
  225. package/esm5/form-entry/control-hiders-disablers/can-hide.js +2 -0
  226. package/esm5/form-entry/control-hiders-disablers/disabler-helper.js +38 -0
  227. package/esm5/form-entry/control-hiders-disablers/hider-helpers.js +45 -0
  228. package/esm5/form-entry/data-sources/data-sources.js +39 -0
  229. package/esm5/form-entry/data-sources/dummy-data-source.js +107 -0
  230. package/esm5/form-entry/directives/historical-value-directive.js +74 -0
  231. package/esm5/form-entry/error-renderer/error-renderer.component.js +64 -0
  232. package/esm5/form-entry/expression-runner/expression-runner.js +159 -0
  233. package/esm5/form-entry/form-entry.module.js +111 -0
  234. package/esm5/form-entry/form-factory/control-relations.factory.js +245 -0
  235. package/esm5/form-entry/form-factory/form-control.service.js +122 -0
  236. package/esm5/form-entry/form-factory/form-node.js +117 -0
  237. package/esm5/form-entry/form-factory/form.factory.js +138 -0
  238. package/esm5/form-entry/form-factory/form.js +214 -0
  239. package/esm5/form-entry/form-factory/hiders-disablers.factory.js +70 -0
  240. package/esm5/form-entry/form-factory/question.factory.js +980 -0
  241. package/esm5/form-entry/form-factory/show-messages.factory.js +34 -0
  242. package/esm5/form-entry/form-factory/validation.factory.js +191 -0
  243. package/esm5/form-entry/form-renderer/form-renderer.component.css.js +3 -0
  244. package/esm5/form-entry/form-renderer/form-renderer.component.js +219 -0
  245. package/esm5/form-entry/helpers/historical-expression-helper-service.js +43 -0
  246. package/esm5/form-entry/helpers/historical-field-helper-service.js +37 -0
  247. package/esm5/form-entry/helpers/js-expression-helper.js +243 -0
  248. package/esm5/form-entry/question-models/checkbox.model.js +17 -0
  249. package/esm5/form-entry/question-models/conditional-validation.model.js +15 -0
  250. package/esm5/form-entry/question-models/date-question.js +19 -0
  251. package/esm5/form-entry/question-models/date-validation.model.js +16 -0
  252. package/esm5/form-entry/question-models/decimal-point-validation.model.js +22 -0
  253. package/esm5/form-entry/question-models/file-upload-question.js +19 -0
  254. package/esm5/form-entry/question-models/group-question.js +18 -0
  255. package/esm5/form-entry/question-models/interfaces/base-options.js +2 -0
  256. package/esm5/form-entry/question-models/interfaces/checkbox-options.js +2 -0
  257. package/esm5/form-entry/question-models/interfaces/data-source.js +2 -0
  258. package/esm5/form-entry/question-models/interfaces/date-question-options.js +2 -0
  259. package/esm5/form-entry/question-models/interfaces/file-upload-question-options.js +2 -0
  260. package/esm5/form-entry/question-models/interfaces/group-question-options.js +2 -0
  261. package/esm5/form-entry/question-models/interfaces/multi-select-options.js +2 -0
  262. package/esm5/form-entry/question-models/interfaces/nested-questions.js +12 -0
  263. package/esm5/form-entry/question-models/interfaces/repeating-question-options.js +2 -0
  264. package/esm5/form-entry/question-models/interfaces/select-option.js +2 -0
  265. package/esm5/form-entry/question-models/interfaces/select-question-options.js +2 -0
  266. package/esm5/form-entry/question-models/interfaces/test-order-question-options.js +2 -0
  267. package/esm5/form-entry/question-models/interfaces/text-area-question-options.js +2 -0
  268. package/esm5/form-entry/question-models/interfaces/text-question-options.js +2 -0
  269. package/esm5/form-entry/question-models/interfaces/time-question-options.js +2 -0
  270. package/esm5/form-entry/question-models/interfaces/ui-select-question-options.js +2 -0
  271. package/esm5/form-entry/question-models/js-expression-validation.model.js +14 -0
  272. package/esm5/form-entry/question-models/max-validation.model.js +15 -0
  273. package/esm5/form-entry/question-models/min-validation.model.js +15 -0
  274. package/esm5/form-entry/question-models/models.js +13 -0
  275. package/esm5/form-entry/question-models/multi-select-question.js +17 -0
  276. package/esm5/form-entry/question-models/pair.model.js +10 -0
  277. package/esm5/form-entry/question-models/question-base.js +27 -0
  278. package/esm5/form-entry/question-models/rendering-type.js +10 -0
  279. package/esm5/form-entry/question-models/repeating-question.js +17 -0
  280. package/esm5/form-entry/question-models/select-option.js +10 -0
  281. package/esm5/form-entry/question-models/select-question.js +18 -0
  282. package/esm5/form-entry/question-models/test-order-question.js +21 -0
  283. package/esm5/form-entry/question-models/text-area-input-question.js +19 -0
  284. package/esm5/form-entry/question-models/text-input-question.js +16 -0
  285. package/esm5/form-entry/question-models/time-question.js +16 -0
  286. package/esm5/form-entry/question-models/ui-select-question.js +17 -0
  287. package/esm5/form-entry/question-models/validation.model.js +10 -0
  288. package/esm5/form-entry/services/debug-mode.service.js +26 -0
  289. package/esm5/form-entry/services/form-errors.service.js +21 -0
  290. package/esm5/form-entry/services/form-schema-compiler.service.js +254 -0
  291. package/esm5/form-entry/services/historical-encounter-data.service.js +180 -0
  292. package/esm5/form-entry/utils/messages.js +17 -0
  293. package/esm5/form-entry/validators/conditional-answered.validator.js +50 -0
  294. package/esm5/form-entry/validators/conditional-required.validator.js +44 -0
  295. package/esm5/form-entry/validators/date.validator.js +22 -0
  296. package/esm5/form-entry/validators/future-date-restriction.validator.js +25 -0
  297. package/esm5/form-entry/validators/js-expression.validator.js +30 -0
  298. package/esm5/form-entry/validators/max-date.validator.js +28 -0
  299. package/esm5/form-entry/validators/max.validator.js +22 -0
  300. package/esm5/form-entry/validators/min-date.validator.js +28 -0
  301. package/esm5/form-entry/validators/min.validator.js +22 -0
  302. package/esm5/form-entry/validators/required.validator.js +16 -0
  303. package/esm5/form-entry/validators/validations.js +9 -0
  304. package/esm5/form-entry/value-adapters/encounter.adapter.js +178 -0
  305. package/esm5/form-entry/value-adapters/obs-adapter-helper.js +509 -0
  306. package/esm5/form-entry/value-adapters/obs.adapter.js +737 -0
  307. package/esm5/form-entry/value-adapters/order.adapter.js +227 -0
  308. package/esm5/form-entry/value-adapters/person-attribute.adapter.js +96 -0
  309. package/esm5/form-entry/value-adapters/value.adapter.js +2 -0
  310. package/esm5/public_api.js +52 -0
  311. package/esm5/shared.module.js +20 -0
  312. package/fesm2015/ampath-kenya-ngx-openmrs-formentry.js +5093 -6889
  313. package/fesm2015/ampath-kenya-ngx-openmrs-formentry.js.map +1 -1
  314. package/fesm5/ampath-kenya-ngx-openmrs-formentry.js +10737 -0
  315. package/fesm5/ampath-kenya-ngx-openmrs-formentry.js.map +1 -0
  316. package/form-entry/data-sources/data-sources.d.ts +1 -1
  317. package/form-entry/directives/historical-value-directive.d.ts +2 -2
  318. package/form-entry/error-renderer/error-renderer.component.d.ts +1 -1
  319. package/form-entry/expression-runner/expression-runner.d.ts +6 -6
  320. package/form-entry/form-factory/form-control.service.d.ts +3 -3
  321. package/form-entry/form-factory/form-node.d.ts +9 -10
  322. package/form-entry/form-factory/form.d.ts +6 -7
  323. package/form-entry/form-factory/question.factory.d.ts +7 -1
  324. package/form-entry/form-factory/validation.factory.d.ts +10 -10
  325. package/form-entry/form-renderer/form-renderer.component.css.d.ts +1 -1
  326. package/form-entry/form-renderer/form-renderer.component.d.ts +4 -6
  327. package/form-entry/helpers/js-expression-helper.d.ts +1 -1
  328. package/form-entry/question-models/date-question.d.ts +2 -0
  329. package/form-entry/question-models/decimal-point-validation.model.d.ts +10 -0
  330. package/form-entry/question-models/interfaces/base-options.d.ts +1 -0
  331. package/form-entry/question-models/interfaces/time-question-options.d.ts +3 -0
  332. package/form-entry/question-models/question-base.d.ts +4 -0
  333. package/form-entry/question-models/rendering-type.d.ts +1 -1
  334. package/form-entry/question-models/time-question.d.ts +5 -0
  335. package/form-entry/services/form-errors.service.d.ts +2 -1
  336. package/form-entry/services/form-schema-compiler.service.d.ts +16 -16
  337. package/form-entry/services/historical-encounter-data.service.d.ts +3 -3
  338. package/form-entry/utils/messages.d.ts +9 -9
  339. package/form-entry/value-adapters/encounter.adapter.d.ts +2 -2
  340. package/form-entry/value-adapters/order.adapter.d.ts +9 -9
  341. package/form-entry/value-adapters/person-attribute.adapter.d.ts +1 -1
  342. package/package.json +18 -16
  343. package/public_api.d.ts +50 -1
  344. package/components/input/input.directive.d.ts +0 -28
  345. package/components/input/input.module.d.ts +0 -2
  346. package/components/input/label.component.d.ts +0 -87
  347. package/components/input/text-area.directive.d.ts +0 -21
  348. package/components/ngx-datetime-picker/ngx-datetime-picker.component.d.ts +0 -13
  349. package/components/ngx-pick-datetime/lib/date-time/adapter/date-time-adapter.class.d.ts +0 -189
  350. package/components/ngx-pick-datetime/lib/date-time/adapter/date-time-format.class.d.ts +0 -15
  351. package/components/ngx-pick-datetime/lib/date-time/adapter/native-date-time-adapter.class.d.ts +0 -73
  352. package/components/ngx-pick-datetime/lib/date-time/adapter/native-date-time-format.class.d.ts +0 -5
  353. package/components/ngx-pick-datetime/lib/date-time/adapter/native-date-time.module.d.ts +0 -7
  354. package/components/ngx-pick-datetime/lib/date-time/calendar-body.component.d.ts +0 -77
  355. package/components/ngx-pick-datetime/lib/date-time/calendar-month-view.component.d.ts +0 -139
  356. package/components/ngx-pick-datetime/lib/date-time/calendar-multi-year-view.component.d.ts +0 -109
  357. package/components/ngx-pick-datetime/lib/date-time/calendar-year-view.component.d.ts +0 -120
  358. package/components/ngx-pick-datetime/lib/date-time/calendar.component.d.ts +0 -141
  359. package/components/ngx-pick-datetime/lib/date-time/date-time-inline.component.d.ts +0 -90
  360. package/components/ngx-pick-datetime/lib/date-time/date-time-picker-container.component.d.ts +0 -122
  361. package/components/ngx-pick-datetime/lib/date-time/date-time-picker-input.directive.d.ts +0 -152
  362. package/components/ngx-pick-datetime/lib/date-time/date-time-picker-intl.service.d.ts +0 -51
  363. package/components/ngx-pick-datetime/lib/date-time/date-time-picker-trigger.directive.d.ts +0 -21
  364. package/components/ngx-pick-datetime/lib/date-time/date-time-picker.animations.d.ts +0 -8
  365. package/components/ngx-pick-datetime/lib/date-time/date-time-picker.component.d.ts +0 -157
  366. package/components/ngx-pick-datetime/lib/date-time/date-time.class.d.ts +0 -86
  367. package/components/ngx-pick-datetime/lib/date-time/date-time.module.d.ts +0 -5
  368. package/components/ngx-pick-datetime/lib/date-time/numberedFixLen.pipe.d.ts +0 -7
  369. package/components/ngx-pick-datetime/lib/date-time/timer-box.component.d.ts +0 -35
  370. package/components/ngx-pick-datetime/lib/date-time/timer.component.d.ts +0 -129
  371. package/components/ngx-pick-datetime/lib/dialog/dialog-config.class.d.ts +0 -93
  372. package/components/ngx-pick-datetime/lib/dialog/dialog-container.component.d.ts +0 -56
  373. package/components/ngx-pick-datetime/lib/dialog/dialog-ref.class.d.ts +0 -49
  374. package/components/ngx-pick-datetime/lib/dialog/dialog.module.d.ts +0 -5
  375. package/components/ngx-pick-datetime/lib/dialog/dialog.service.d.ts +0 -70
  376. package/components/ngx-pick-datetime/lib/utils/index.d.ts +0 -4
  377. package/components/ngx-pick-datetime/lib/utils/object.utils.d.ts +0 -11
  378. package/components/ngx-remote-select/ngx-remote-select.module.d.ts +0 -2
  379. package/components/ngx-tabset/components/tab-set.d.ts +0 -15
  380. package/components/ngx-tabset/components/tab.d.ts +0 -10
  381. package/components/ngx-tabset/directives/hover-class.directive.d.ts +0 -8
  382. package/components/ngx-tabset/modules/ngx-tabset.module.d.ts +0 -11
  383. package/components/number-input/number-input.component.d.ts +0 -148
  384. package/components/number-input/number-input.module.d.ts +0 -2
  385. package/components/select/optgroup.directive.d.ts +0 -3
  386. package/components/select/option.directive.d.ts +0 -3
  387. package/esm2015/components/input/input.directive.js +0 -55
  388. package/esm2015/components/input/input.module.js +0 -29
  389. package/esm2015/components/input/label.component.js +0 -139
  390. package/esm2015/components/input/text-area.directive.js +0 -40
  391. package/esm2015/components/ngx-datetime-picker/ngx-datetime-picker.component.js +0 -52
  392. package/esm2015/components/ngx-datetime-picker/ngx-datetime-picker.module.js +0 -28
  393. package/esm2015/components/ngx-pick-datetime/lib/date-time/adapter/date-time-adapter.class.js +0 -115
  394. package/esm2015/components/ngx-pick-datetime/lib/date-time/adapter/date-time-format.class.js +0 -7
  395. package/esm2015/components/ngx-pick-datetime/lib/date-time/adapter/native-date-time-adapter.class.js +0 -346
  396. package/esm2015/components/ngx-pick-datetime/lib/date-time/adapter/native-date-time-format.class.js +0 -10
  397. package/esm2015/components/ngx-pick-datetime/lib/date-time/adapter/native-date-time.module.js +0 -30
  398. package/esm2015/components/ngx-pick-datetime/lib/date-time/calendar-body.component.js +0 -149
  399. package/esm2015/components/ngx-pick-datetime/lib/date-time/calendar-month-view.component.js +0 -432
  400. package/esm2015/components/ngx-pick-datetime/lib/date-time/calendar-multi-year-view.component.js +0 -353
  401. package/esm2015/components/ngx-pick-datetime/lib/date-time/calendar-year-view.component.js +0 -362
  402. package/esm2015/components/ngx-pick-datetime/lib/date-time/calendar.component.js +0 -337
  403. package/esm2015/components/ngx-pick-datetime/lib/date-time/date-time-inline.component.js +0 -252
  404. package/esm2015/components/ngx-pick-datetime/lib/date-time/date-time-picker-container.component.js +0 -379
  405. package/esm2015/components/ngx-pick-datetime/lib/date-time/date-time-picker-input.directive.js +0 -601
  406. package/esm2015/components/ngx-pick-datetime/lib/date-time/date-time-picker-intl.service.js +0 -60
  407. package/esm2015/components/ngx-pick-datetime/lib/date-time/date-time-picker-trigger.directive.js +0 -69
  408. package/esm2015/components/ngx-pick-datetime/lib/date-time/date-time-picker.animations.js +0 -21
  409. package/esm2015/components/ngx-pick-datetime/lib/date-time/date-time-picker.component.js +0 -515
  410. package/esm2015/components/ngx-pick-datetime/lib/date-time/date-time.class.js +0 -154
  411. package/esm2015/components/ngx-pick-datetime/lib/date-time/date-time.module.js +0 -63
  412. package/esm2015/components/ngx-pick-datetime/lib/date-time/numberedFixLen.pipe.js +0 -24
  413. package/esm2015/components/ngx-pick-datetime/lib/date-time/timer-box.component.js +0 -83
  414. package/esm2015/components/ngx-pick-datetime/lib/date-time/timer.component.js +0 -293
  415. package/esm2015/components/ngx-pick-datetime/lib/dialog/dialog-config.class.js +0 -56
  416. package/esm2015/components/ngx-pick-datetime/lib/dialog/dialog-container.component.js +0 -208
  417. package/esm2015/components/ngx-pick-datetime/lib/dialog/dialog-ref.class.js +0 -113
  418. package/esm2015/components/ngx-pick-datetime/lib/dialog/dialog.module.js +0 -29
  419. package/esm2015/components/ngx-pick-datetime/lib/dialog/dialog.service.js +0 -228
  420. package/esm2015/components/ngx-pick-datetime/lib/utils/index.js +0 -5
  421. package/esm2015/components/ngx-pick-datetime/lib/utils/object.utils.js +0 -26
  422. package/esm2015/components/ngx-remote-select/ngx-remote-select.component.js +0 -119
  423. package/esm2015/components/ngx-remote-select/ngx-remote-select.module.js +0 -18
  424. package/esm2015/components/ngx-tabset/components/tab-set.js +0 -67
  425. package/esm2015/components/ngx-tabset/components/tab.js +0 -38
  426. package/esm2015/components/ngx-tabset/directives/hover-class.directive.js +0 -26
  427. package/esm2015/components/ngx-tabset/modules/ngx-tabset.module.js +0 -40
  428. package/esm2015/components/number-input/number-input.component.js +0 -203
  429. package/esm2015/components/number-input/number-input.module.js +0 -15
  430. package/esm2015/components/select/optgroup.directive.js +0 -17
  431. package/esm2015/components/select/option.directive.js +0 -17
  432. package/esm2015/form-entry/directives/collapse-animations.js +0 -11
  433. package/esm2015/form-entry/directives/collapse.directive.js +0 -157
  434. package/esm2015/form-entry/pipes/time-ago.pipe.js +0 -107
  435. package/esm2015/lib/index.js +0 -49
  436. package/form-entry/directives/collapse-animations.d.ts +0 -4
  437. package/form-entry/directives/collapse.directive.d.ts +0 -42
  438. package/form-entry/pipes/time-ago.pipe.d.ts +0 -11
  439. package/lib/index.d.ts +0 -49
  440. package/styles/ngx-formentry.css +0 -317
  441. package/styles/picker.min.css +0 -1
@@ -0,0 +1,130 @@
1
+ import { Component, Input, forwardRef, Renderer2 } from '@angular/core';
2
+ import { NG_VALUE_ACCESSOR } from '@angular/forms';
3
+ export class FileUploadComponent {
4
+ constructor(renderer) {
5
+ this.renderer = renderer;
6
+ this.uploading = false;
7
+ this.fileUuid = null;
8
+ this.pdfUploaded = false;
9
+ this.formEntryMode = true;
10
+ // the method set in registerOnChange, it is just
11
+ // a placeholder for a method that takes one parameter,
12
+ // we use it to emit changes back to the form
13
+ this.propagateChange = (_) => { };
14
+ }
15
+ get dataSource() {
16
+ return this._dataSource;
17
+ }
18
+ set dataSource(v) {
19
+ this._dataSource = v;
20
+ }
21
+ ngOnInit() {
22
+ if (this.fileUuid) {
23
+ this.checkFileType();
24
+ }
25
+ }
26
+ onFileChange(fileList) {
27
+ for (const file of fileList) {
28
+ this.upload(file);
29
+ }
30
+ }
31
+ upload(data) {
32
+ if (this.dataSource) {
33
+ this.uploading = true;
34
+ this.dataSource.fileUpload(data).subscribe((result) => {
35
+ this.fileUuid = result.image;
36
+ this.checkFileType();
37
+ this.propagateChange(this.fileUuid);
38
+ this.uploading = false;
39
+ }, (error) => {
40
+ this.uploading = false;
41
+ });
42
+ }
43
+ }
44
+ // this is the initial value set to the component
45
+ writeValue(value) {
46
+ if (value !== this.fileUuid) {
47
+ this.fileUuid = value;
48
+ this.checkFileType();
49
+ }
50
+ }
51
+ // registers 'fn' that will be fired when changes are made
52
+ // this is how we emit the changes back to the form
53
+ registerOnChange(fn) {
54
+ this.propagateChange = fn;
55
+ }
56
+ // not used, used for touch input
57
+ registerOnTouched() { }
58
+ // change events from the textarea
59
+ onChange(event) {
60
+ this.propagateChange(event.id);
61
+ // .....
62
+ // update the form
63
+ // this.propagateChange(this.data);
64
+ }
65
+ clearValue() {
66
+ this.fileUuid = null;
67
+ this.pdfUploaded = false;
68
+ this.pdfUrl = null;
69
+ this.propagateChange(this.fileUuid);
70
+ }
71
+ getPdfUrl(fileUuid) {
72
+ this.dataSource.fetchFile(fileUuid, 'pdf').subscribe((file) => {
73
+ this.pdfUploaded = true;
74
+ this.pdfUrl = file.changingThisBreaksApplicationSecurity;
75
+ });
76
+ }
77
+ checkFileType() {
78
+ const re = /pdf/gi;
79
+ if (this.fileUuid.search(re) !== -1) {
80
+ this.getPdfUrl(this.fileUuid);
81
+ }
82
+ }
83
+ }
84
+ FileUploadComponent.decorators = [
85
+ { type: Component, args: [{
86
+ selector: 'app-file-upload',
87
+ template: `<lib-file-uploader
88
+ [srcUrl]="pdfUrl"
89
+ [formEntry]="formEntryMode"
90
+ [(ngModel)]="fileUuid"
91
+ (_onClear)="clearValue()"
92
+ (uploadData)="onFileChange($event)"
93
+ >
94
+ </lib-file-uploader>
95
+ <div *ngIf="fileUuid">
96
+ <img
97
+ *ngIf="!pdfUploaded"
98
+ class="img-responsive"
99
+ [src]="fileUuid | secure: this.dataSource.fetchFile"
100
+ alt=""
101
+ />
102
+ </div>
103
+ `,
104
+ providers: [
105
+ {
106
+ provide: NG_VALUE_ACCESSOR,
107
+ useExisting: forwardRef(() => FileUploadComponent),
108
+ multi: true
109
+ }
110
+ ],
111
+ styles: [
112
+ `
113
+ img {
114
+ margin-left: auto;
115
+ margin-right: auto;
116
+ display: block;
117
+ }
118
+ `
119
+ ]
120
+ },] },
121
+ ];
122
+ /** @nocollapse */
123
+ FileUploadComponent.ctorParameters = () => [
124
+ { type: Renderer2 }
125
+ ];
126
+ FileUploadComponent.propDecorators = {
127
+ dataSource: [{ type: Input }]
128
+ };
129
+
130
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFtcGF0aC1rZW55YS9uZ3gtb3Blbm1ycy1mb3JtZW50cnkvIiwic291cmNlcyI6WyJjb21wb25lbnRzL2ZpbGUtdXBsb2FkL2ZpbGUtdXBsb2FkLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUVULEtBQUssRUFDTCxVQUFVLEVBQ1YsU0FBUyxFQUVWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQXdDekUsTUFBTTtJQWVKLFlBQW9CLFFBQW1CO1FBQW5CLGFBQVEsR0FBUixRQUFRLENBQVc7UUFkdkMsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixhQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ2hCLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLGtCQUFhLEdBQUcsSUFBSSxDQUFDO1FBK0RyQixpREFBaUQ7UUFDakQsdURBQXVEO1FBQ3ZELDZDQUE2QztRQUNyQyxvQkFBZSxHQUFHLENBQUMsQ0FBTSxFQUFFLEVBQUUsR0FBRSxDQUFDLENBQUM7SUF2REMsQ0FBQztJQVIzQyxJQUNXLFVBQVU7UUFDbkIsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDMUIsQ0FBQztJQUNELElBQVcsVUFBVSxDQUFDLENBQWE7UUFDakMsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUlELFFBQVE7UUFDTixFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztZQUNsQixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDdkIsQ0FBQztJQUNILENBQUM7SUFDTSxZQUFZLENBQUMsUUFBUTtRQUMxQixHQUFHLENBQUMsQ0FBQyxNQUFNLElBQUksSUFBSSxRQUFRLENBQUMsQ0FBQyxDQUFDO1lBQzVCLElB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QUU7b0JBQ047Ozs7OztLQU1DO2lCQUNGO2FBQ0Y7Ozs7WUExQ0MsU0FBUzs7O3lCQWtEUixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBPbkluaXQsXG4gIElucHV0LFxuICBmb3J3YXJkUmVmLFxuICBSZW5kZXJlcjIsXG4gIENoYW5nZURldGVjdG9yUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBEYXRhU291cmNlIH0gZnJvbSAnLi4vLi4vZm9ybS1lbnRyeS9xdWVzdGlvbi1tb2RlbHMvaW50ZXJmYWNlcy9kYXRhLXNvdXJjZSc7XG5pbXBvcnQgeyBTZWN1cmVQaXBlIH0gZnJvbSAnLi9zZWN1cmUucGlwZSc7XG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtZmlsZS11cGxvYWQnLFxuICB0ZW1wbGF0ZTogYDxsaWItZmlsZS11cGxvYWRlclxuICBbc3JjVXJsXT1cInBkZlVybFwiXG4gIFtmb3JtRW50cnldPVwiZm9ybUVudHJ5TW9kZVwiXG4gIFsobmdNb2RlbCldPVwiZmlsZVV1aWRcIlxuICAoX29uQ2xlYXIpPVwiY2xlYXJWYWx1ZSgpXCJcbiAgKHVwbG9hZERhdGEpPVwib25GaWxlQ2hhbmdlKCRldmVudClcIlxuPlxuPC9saWItZmlsZS11cGxvYWRlcj5cbjxkaXYgKm5nSWY9XCJmaWxlVXVpZFwiPlxuICA8aW1nXG4gICAgKm5nSWY9XCIhcGRmVXBsb2FkZWRcIlxuICAgIGNsYXNzPVwiaW1nLXJlc3BvbnNpdmVcIlxuICAgIFtzcmNdPVwiZmlsZVV1aWQgfCBzZWN1cmU6IHRoaXMuZGF0YVNvdXJjZS5mZXRjaEZpbGVcIlxuICAgIGFsdD1cIlwiXG4gIC8+XG48L2Rpdj5cbmAsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRmlsZVVwbG9hZENvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH1cbiAgXSxcbiAgc3R5bGVzOiBbXG4gICAgYFxuICAgICAgaW1nIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG4gICAgYFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEZpbGVVcGxvYWRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgdXBsb2FkaW5nID0gZmFsc2U7XG4gIGZpbGVVdWlkID0gbnVsbDtcbiAgcGRmVXBsb2FkZWQgPSBmYWxzZTtcbiAgZm9ybUVudHJ5TW9kZSA9IHRydWU7XG4gIHBkZlVybDogc3RyaW5nO1xuICBwcml2YXRlIF9kYXRhU291cmNlOiBEYXRhU291cmNlO1xuICBASW5wdXQoKVxuICBwdWJsaWMgZ2V0IGRhdGFTb3VyY2UoKTogRGF0YVNvdXJjZSB7XG4gICAgcmV0dXJuIHRoaXMuX2RhdGFTb3VyY2U7XG4gIH1cbiAgcHVibGljIHNldCBkYXRhU291cmNlKHY6IERhdGFTb3VyY2UpIHtcbiAgICB0aGlzLl9kYXRhU291cmNlID0gdjtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMikge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAodGhpcy5maWxlVXVpZCkge1xuICAgICAgdGhpcy5jaGVja0ZpbGVUeXBlKCk7XG4gICAgfVxuICB9XG4gIHB1YmxpYyBvbkZpbGVDaGFuZ2UoZmlsZUxpc3QpIHtcbiAgICBmb3IgKGNvbnN0IGZpbGUgb2YgZmlsZUxpc3QpIHtcbiAgICAgIHRoaXMudXBsb2FkKGZpbGUpO1xuICAgIH1cbiAgfVxuICB1cGxvYWQoZGF0YSkge1xuICAgIGlmICh0aGlzLmRhdGFTb3VyY2UpIHtcbiAgICAgIHRoaXMudXBsb2FkaW5nID0gdHJ1ZTtcbiAgICAgIHRoaXMuZGF0YVNvdXJjZS5maWxlVXBsb2FkKGRhdGEpLnN1YnNjcmliZShcbiAgICAgICAgKHJlc3VsdCkgPT4ge1xuICAgICAgICAgIHRoaXMuZmlsZVV1aWQgPSByZXN1bHQuaW1hZ2U7XG4gICAgICAgICAgdGhpcy5jaGVja0ZpbGVUeXBlKCk7XG4gICAgICAgICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UodGhpcy5maWxlVXVpZCk7XG4gICAgICAgICAgdGhpcy51cGxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgfSxcbiAgICAgICAgKGVycm9yKSA9PiB7XG4gICAgICAgICAgdGhpcy51cGxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICAvLyB0aGlzIGlzIHRoZSBpbml0aWFsIHZhbHVlIHNldCB0byB0aGUgY29tcG9uZW50XG4gIHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICBpZiAodmFsdWUgIT09IHRoaXMuZmlsZVV1aWQpIHtcbiAgICAgIHRoaXMuZmlsZVV1aWQgPSB2YWx1ZTtcbiAgICAgIHRoaXMuY2hlY2tGaWxlVHlwZSgpO1xuICAgIH1cbiAgfVxuICAvLyByZWdpc3RlcnMgJ2ZuJyB0aGF0IHdpbGwgYmUgZmlyZWQgd2hlbiBjaGFuZ2VzIGFyZSBtYWRlXG4gIC8vIHRoaXMgaXMgaG93IHdlIGVtaXQgdGhlIGNoYW5nZXMgYmFjayB0byB0aGUgZm9ybVxuICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KSB7XG4gICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIC8vIG5vdCB1c2VkLCB1c2VkIGZvciB0b3VjaCBpbnB1dFxuICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoKSB7fVxuICAvLyBjaGFuZ2UgZXZlbnRzIGZyb20gdGhlIHRleHRhcmVhXG4gIG9uQ2hhbmdlKGV2ZW50KSB7XG4gICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UoZXZlbnQuaWQpO1xuICAgIC8vIC4uLi4uXG4gICAgLy8gdXBkYXRlIHRoZSBmb3JtXG4gICAgLy8gdGhpcy5wcm9wYWdhdGVDaGFuZ2UodGhpcy5kYXRhKTtcbiAgfVxuXG4gIC8vIHRoZSBtZXRob2Qgc2V0IGluIHJlZ2lzdGVyT25DaGFuZ2UsIGl0IGlzIGp1c3RcbiAgLy8gYSBwbGFjZWhvbGRlciBmb3IgYSBtZXRob2QgdGhhdCB0YWtlcyBvbmUgcGFyYW1ldGVyLFxuICAvLyB3ZSB1c2UgaXQgdG8gZW1pdCBjaGFuZ2VzIGJhY2sgdG8gdGhlIGZvcm1cbiAgcHJpdmF0ZSBwcm9wYWdhdGVDaGFuZ2UgPSAoXzogYW55KSA9PiB7fTtcblxuICBwdWJsaWMgY2xlYXJWYWx1ZSgpIHtcbiAgICB0aGlzLmZpbGVVdWlkID0gbnVsbDtcbiAgICB0aGlzLnBkZlVwbG9hZGVkID0gZmFsc2U7XG4gICAgdGhpcy5wZGZVcmwgPSBudWxsO1xuICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlKHRoaXMuZmlsZVV1aWQpO1xuICB9XG5cbiAgcHVibGljIGdldFBkZlVybChmaWxlVXVpZDogc3RyaW5nKSB7XG4gICAgdGhpcy5kYXRhU291cmNlLmZldGNoRmlsZShmaWxlVXVpZCwgJ3BkZicpLnN1YnNjcmliZSgoZmlsZSkgPT4ge1xuICAgICAgdGhpcy5wZGZVcGxvYWRlZCA9IHRydWU7XG4gICAgICB0aGlzLnBkZlVybCA9IGZpbGUuY2hhbmdpbmdUaGlzQnJlYWtzQXBwbGljYXRpb25TZWN1cml0eTtcbiAgICB9KTtcbiAgfVxuICBwdWJsaWMgY2hlY2tGaWxlVHlwZSgpIHtcbiAgICBjb25zdCByZSA9IC9wZGYvZ2k7XG4gICAgaWYgKHRoaXMuZmlsZVV1aWQuc2VhcmNoKHJlKSAhPT0gLTEpIHtcbiAgICAgIHRoaXMuZ2V0UGRmVXJsKHRoaXMuZmlsZVV1aWQpO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -0,0 +1,28 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { FormsModule } from '@angular/forms';
4
+ import { NgxFileUploaderModule } from 'ngx-file-uploader';
5
+ import { SharedModule } from '../../shared.module';
6
+ // import { SelectModule } from 'ng2-select/ng2-select';
7
+ import { SelectModule } from '../../components/select/select.module';
8
+ import { FileUploadComponent } from './file-upload.component';
9
+ import { WebcamModule } from 'ngx-webcam';
10
+ export class RemoteFileUploadModule {
11
+ }
12
+ RemoteFileUploadModule.decorators = [
13
+ { type: NgModule, args: [{
14
+ imports: [
15
+ CommonModule,
16
+ SelectModule,
17
+ FormsModule,
18
+ SharedModule,
19
+ WebcamModule,
20
+ NgxFileUploaderModule
21
+ ],
22
+ exports: [FileUploadComponent],
23
+ declarations: [FileUploadComponent],
24
+ providers: []
25
+ },] },
26
+ ];
27
+
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFtcGF0aC1rZW55YS9uZ3gtb3Blbm1ycy1mb3JtZW50cnkvIiwic291cmNlcyI6WyJjb21wb25lbnRzL2ZpbGUtdXBsb2FkL2ZpbGUtdXBsb2FkLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFMUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ25ELHdEQUF3RDtBQUN4RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDckUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFlBQVksQ0FBQztBQWUxQyxNQUFNOzs7WUFiTCxRQUFRLFNBQUM7Z0JBQ1IsT0FBTyxFQUFFO29CQUNQLFlBQVk7b0JBQ1osWUFBWTtvQkFDWixXQUFXO29CQUNYLFlBQVk7b0JBQ1osWUFBWTtvQkFDWixxQkFBcUI7aUJBQ3RCO2dCQUNELE9BQU8sRUFBRSxDQUFDLG1CQUFtQixDQUFDO2dCQUM5QixZQUFZLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQztnQkFDbkMsU0FBUyxFQUFFLEVBQUU7YUFDZCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE5neEZpbGVVcGxvYWRlck1vZHVsZSB9IGZyb20gJ25neC1maWxlLXVwbG9hZGVyJztcblxuaW1wb3J0IHsgU2hhcmVkTW9kdWxlIH0gZnJvbSAnLi4vLi4vc2hhcmVkLm1vZHVsZSc7XG4vLyBpbXBvcnQgeyBTZWxlY3RNb2R1bGUgfSBmcm9tICduZzItc2VsZWN0L25nMi1zZWxlY3QnO1xuaW1wb3J0IHsgU2VsZWN0TW9kdWxlIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9zZWxlY3Qvc2VsZWN0Lm1vZHVsZSc7XG5pbXBvcnQgeyBGaWxlVXBsb2FkQ29tcG9uZW50IH0gZnJvbSAnLi9maWxlLXVwbG9hZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgV2ViY2FtTW9kdWxlIH0gZnJvbSAnbmd4LXdlYmNhbSc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgU2VsZWN0TW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIFNoYXJlZE1vZHVsZSxcbiAgICBXZWJjYW1Nb2R1bGUsXG4gICAgTmd4RmlsZVVwbG9hZGVyTW9kdWxlXG4gIF0sXG4gIGV4cG9ydHM6IFtGaWxlVXBsb2FkQ29tcG9uZW50XSxcbiAgZGVjbGFyYXRpb25zOiBbRmlsZVVwbG9hZENvbXBvbmVudF0sXG4gIHByb3ZpZGVyczogW11cbn0pXG5leHBvcnQgY2xhc3MgUmVtb3RlRmlsZVVwbG9hZE1vZHVsZSB7fVxuIl19
@@ -1,7 +1,7 @@
1
- /* tslint:disable:component-class-suffix */
2
1
  import { Pipe, WrappedValue, ChangeDetectorRef } from '@angular/core';
3
2
  import { BehaviorSubject } from 'rxjs';
4
3
  import { DomSanitizer } from '@angular/platform-browser';
4
+ // import { FileUploadResourceService } from '../../etl-api/file-upload-resource.service';
5
5
  // Using similarity from AsyncPipe to avoid having to pipe |secure|async in HTML.
6
6
  // tslint:disable-next-line:use-pipe-transform-interface
7
7
  export class SecurePipe {
@@ -93,10 +93,12 @@ SecurePipe.decorators = [
93
93
  { type: Pipe, args: [{
94
94
  name: 'secure',
95
95
  pure: false
96
- },] }
96
+ },] },
97
97
  ];
98
+ /** @nocollapse */
98
99
  SecurePipe.ctorParameters = () => [
99
100
  { type: ChangeDetectorRef },
100
101
  { type: DomSanitizer }
101
102
  ];
102
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdXJlLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtZm9ybWVudHJ5L3NyYy9jb21wb25lbnRzL2ZpbGUtdXBsb2FkL3NlY3VyZS5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDRDQUE0QztBQUM1QyxPQUFPLEVBQ0wsSUFBSSxFQUdKLFlBQVksRUFDWixpQkFBaUIsRUFDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFnQyxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFckUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRXpELGlGQUFpRjtBQUNqRix3REFBd0Q7QUFLeEQsTUFBTSxPQUFPLFVBQVU7SUFXckIsWUFDVSxJQUF1QixFQUN2QixTQUF1QjtRQUR2QixTQUFJLEdBQUosSUFBSSxDQUFtQjtRQUN2QixjQUFTLEdBQVQsU0FBUyxDQUFjO1FBWnpCLGlCQUFZLEdBQVEsSUFBSSxDQUFDO1FBQ3pCLHlCQUFvQixHQUFRLElBQUksQ0FBQztRQUNqQyxrQkFBYSxHQUFpQixJQUFJLENBQUM7UUFDbkMsU0FBSSxHQUFvQixJQUFJLENBQUM7UUFHN0IsWUFBTyxHQUF5QixJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxRCxXQUFNLEdBQW9CLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDdEQsMEJBQXFCLEdBQWlCLElBQUksQ0FBQztJQUtoRCxDQUFDO0lBRUosV0FBVztRQUNULElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUN0QixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7U0FDakI7SUFDSCxDQUFDO0lBRUQsU0FBUyxDQUFDLEdBQVcsRUFBRSxPQUFPO1FBQzVCLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ3ZCLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxpQkFBaUIs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LElBQUksRUFBRTtZQUN2QixJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztZQUMxQixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1NBQzFCO0lBQ0gsQ0FBQzs7O1lBckdGLElBQUksU0FBQztnQkFDSixJQUFJLEVBQUUsUUFBUTtnQkFDZCxJQUFJLEVBQUUsS0FBSzthQUNaOzs7WUFYQyxpQkFBaUI7WUFJVixZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiLyogdHNsaW50OmRpc2FibGU6Y29tcG9uZW50LWNsYXNzLXN1ZmZpeCAgKi9cbmltcG9ydCB7XG4gIFBpcGUsXG4gIFBpcGVUcmFuc2Zvcm0sXG4gIE9uRGVzdHJveSxcbiAgV3JhcHBlZFZhbHVlLFxuICBDaGFuZ2VEZXRlY3RvclJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiAsICBPYnNlcnZhYmxlICwgIEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcblxuLy8gVXNpbmcgc2ltaWxhcml0eSBmcm9tIEFzeW5jUGlwZSB0byBhdm9pZCBoYXZpbmcgdG8gcGlwZSB8c2VjdXJlfGFzeW5jIGluIEhUTUwuXG4vLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6dXNlLXBpcGUtdHJhbnNmb3JtLWludGVyZmFjZVxuQFBpcGUoe1xuICBuYW1lOiAnc2VjdXJlJyxcbiAgcHVyZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgU2VjdXJlUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0sIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgX2xhdGVzdFZhbHVlOiBhbnkgPSBudWxsO1xuICBwcml2YXRlIF9sYXRlc3RSZXR1cm5lZFZhbHVlOiBhbnkgPSBudWxsO1xuICBwcml2YXRlIF9zdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiA9IG51bGw7XG4gIHByaXZhdGUgX29iajogT2JzZXJ2YWJsZTxhbnk+ID0gbnVsbDtcbiAgcHJpdmF0ZSBnZXRmaWxlO1xuICBwcml2YXRlIHByZXZpb3VzVXJsOiBzdHJpbmc7XG4gIHByaXZhdGUgX3Jlc3VsdDogQmVoYXZpb3JTdWJqZWN0PGFueT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KG51bGwpO1xuICBwcml2YXRlIHJlc3VsdDogT2JzZXJ2YWJsZTxhbnk+ID0gdGhpcy5fcmVzdWx0LmFzT2JzZXJ2YWJsZSgpO1xuICBwcml2YXRlIF9pbnRlcm5hbFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uID0gbnVsbDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9yZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgc2FuaXRpemVyOiBEb21TYW5pdGl6ZXJcbiAgKSB7fVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9zdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMuX2Rpc3Bvc2UoKTtcbiAgICB9XG4gIH1cblxuICB0cmFuc2Zvcm0odXJsOiBzdHJpbmcsIGdldGZpbGUpOiBhbnkge1xuICAgIHRoaXMuZ2V0ZmlsZSA9IGdldGZpbGU7XG4gICAgY29uc3Qgb2JqID0gdGhpcy5pbnRlcm5hbFRyYW5zZm9ybSh1cmwpO1xuICAgIHJldHVybiB0aGlzLmFzeW5jVHJhc25mb3JtKG9iaik7XG4gIH1cblxuICBwcml2YXRlIGludGVybmFsVHJhbnNmb3JtKHVybDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBpZiAoIXVybCkge1xuICAgICAgcmV0dXJuIHRoaXMucmVzdWx0O1xuICAgIH1cblxuICAgIGlmICh0aGlzLnByZXZpb3VzVXJsICE9PSB1cmwpIHtcbiAgICAgIHRoaXMucHJldmlvdXNVcmwgPSB1cmw7XG4gICAgICB0aGlzLl9pbnRlcm5hbFN1YnNjcmlwdGlvbiA9IHRoaXMuZ2V0ZmlsZSh1cmwpLnN1YnNjcmliZSgobSkgPT4ge1xuICAgICAgICBjb25zdCBzYW5pdGl6ZWQgPSB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0VXJsKG0pO1xuICAgICAgICB0aGlzLl9yZXN1bHQubmV4dChzYW5pdGl6ZWQpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMucmVzdWx0O1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luY1RyYXNuZm9ybShvYmo6IE9ic2VydmFibGU8YW55Pik6IGFueSB7XG4gICAgaWYgKCF0aGlzLl9vYmopIHtcbiAgICAgIGlmIChvYmopIHtcbiAgICAgICAgdGhpcy5fc3Vic2NyaWJlKG9iaik7XG4gICAgICB9XG4gICAgICB0aGlzLl9sYXRlc3RSZXR1cm5lZFZhbHVlID0gdGhpcy5fbGF0ZXN0VmFsdWU7XG4gICAgICByZXR1cm4gdGhpcy5fbGF0ZXN0VmFsdWU7XG4gICAgfVxuICAgIGlmIChvYmogIT09IHRoaXMuX29iaikge1xuICAgICAgdGhpcy5fZGlzcG9zZSgpO1xuICAgICAgcmV0dXJuIHRoaXMuYXN5bmNUcmFzbmZvcm0ob2JqKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuX2xhdGVzdFZhbHVlID09PSB0aGlzLl9sYXRlc3RSZXR1cm5lZFZhbHVlKSB7XG4gICAgICByZXR1cm4gdGhpcy5fbGF0ZXN0UmV0dXJuZWRWYWx1ZTtcbiAgICB9XG4gICAgdGhpcy5fbGF0ZXN0UmV0dXJuZWRWYWx1ZSA9IHRoaXMuX2xhdGVzdFZhbHVlO1xuICAgIHJldHVybiBXcmFwcGVkVmFsdWUud3JhcCh0aGlzLl9sYXRlc3RWYWx1ZSk7XG4gIH1cblxuICBwcml2YXRlIF9zdWJzY3JpYmUob2JqOiBPYnNlcnZhYmxlPGFueT4pIHtcbiAgICBjb25zdCBfdGhpcyA9IHRoaXM7XG4gICAgdGhpcy5fb2JqID0gb2JqO1xuXG4gICAgdGhpcy5fc3Vic2NyaXB0aW9uID0gb2JqLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIF90aGlzLl91cGRhdGVMYXRlc3RWYWx1ZShvYmosIHZhbHVlKTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogKGU6IGFueSkgPT4ge1xuICAgICAgICB0aHJvdyBlO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfZGlzcG9zZSgpIHtcbiAgICBpZiAodGhpcy5fc3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLl9zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuX2ludGVybmFsU3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLl9pbnRlcm5hbFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIHRoaXMuX2ludGVybmFsU3Vic2NyaXB0aW9uID0gbnVsbDtcbiAgICB0aGlzLl9sYXRlc3RWYWx1ZSA9IG51bGw7XG4gICAgdGhpcy5fbGF0ZXN0UmV0dXJuZWRWYWx1ZSA9IG51bGw7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9uID0gbnVsbDtcbiAgICB0aGlzLl9vYmogPSBudWxsO1xuICB9XG5cbiAgcHJpdmF0ZSBfdXBkYXRlTGF0ZXN0VmFsdWUoYXN5bmM6IGFueSwgdmFsdWU6IE9iamVjdCkge1xuICAgIGlmIChhc3luYyA9PT0gdGhpcy5fb2JqKSB7XG4gICAgICB0aGlzLl9sYXRlc3RWYWx1ZSA9IHZhbHVlO1xuICAgICAgdGhpcy5fcmVmLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cbiAgfVxufVxuIl19
103
+
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdXJlLnBpcGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYW1wYXRoLWtlbnlhL25neC1vcGVubXJzLWZvcm1lbnRyeS8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvZmlsZS11cGxvYWQvc2VjdXJlLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLElBQUksRUFHSixZQUFZLEVBQ1osaUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBS3ZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFdkMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3pELDBGQUEwRjtBQUUxRixpRkFBaUY7QUFDakYsd0RBQXdEO0FBS3hELE1BQU07SUFXSixZQUNVLElBQXVCLEVBQ3ZCLFNBQXVCO1FBRHZCLFNBQUksR0FBSixJQUFJLENBQW1CO1FBQ3ZCLGNBQVMsR0FBVCxTQUFTLENBQWM7UUFaekIsaUJBQVksR0FBUSxJQUFJLENBQUM7UUFDekIseUJBQW9CLEdBQVEsSUFBSSxDQUFDO1FBQ2pDLGtCQUFhLEdBQWlCLElBQUksQ0FBQztRQUNuQyxTQUFJLEdBQW9CLElBQUksQ0FBQztRQUc3QixZQUFPLEdBQXlCLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFELFdBQU0sR0FBb0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN0RCwwQkFBcUIsR0FBaUIsSUFBSSxDQUFDO0lBS2hELENBQUM7SUFFSixXQUFXO1FBQ1QsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7WUFDdkIsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2xCLENBQUM7SUFDSCxDQUFDO0lBRUQsU0FBUyxDQUFDLEdBQVcsRUFBRSxPQUFPO1FBQzVCLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ3ZCLE1BQU0sR0FBRyxHQUFHLElBQUks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LElBQUksQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLENBQUM7UUFDbEMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFDekIsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQztRQUNqQyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztRQUMxQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztJQUNuQixDQUFDO0lBRU8sa0JBQWtCLENBQUMsS0FBVSxFQUFFLEtBQWE7UUFDbEQsRUFBRSxDQUFDLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQ3hCLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1lBQzFCLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDM0IsQ0FBQztJQUNILENBQUM7OztZQXJHRixJQUFJLFNBQUM7Z0JBQ0osSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsSUFBSSxFQUFFLEtBQUs7YUFDWjs7OztZQWhCQyxpQkFBaUI7WUFRVixZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgUGlwZSxcbiAgUGlwZVRyYW5zZm9ybSxcbiAgT25EZXN0cm95LFxuICBXcmFwcGVkVmFsdWUsXG4gIENoYW5nZURldGVjdG9yUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgb2YgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgRG9tU2FuaXRpemVyIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG4vLyBpbXBvcnQgeyBGaWxlVXBsb2FkUmVzb3VyY2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZXRsLWFwaS9maWxlLXVwbG9hZC1yZXNvdXJjZS5zZXJ2aWNlJztcblxuLy8gVXNpbmcgc2ltaWxhcml0eSBmcm9tIEFzeW5jUGlwZSB0byBhdm9pZCBoYXZpbmcgdG8gcGlwZSB8c2VjdXJlfGFzeW5jIGluIEhUTUwuXG4vLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6dXNlLXBpcGUtdHJhbnNmb3JtLWludGVyZmFjZVxuQFBpcGUoe1xuICBuYW1lOiAnc2VjdXJlJyxcbiAgcHVyZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgU2VjdXJlUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0sIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgX2xhdGVzdFZhbHVlOiBhbnkgPSBudWxsO1xuICBwcml2YXRlIF9sYXRlc3RSZXR1cm5lZFZhbHVlOiBhbnkgPSBudWxsO1xuICBwcml2YXRlIF9zdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiA9IG51bGw7XG4gIHByaXZhdGUgX29iajogT2JzZXJ2YWJsZTxhbnk+ID0gbnVsbDtcbiAgcHJpdmF0ZSBnZXRmaWxlO1xuICBwcml2YXRlIHByZXZpb3VzVXJsOiBzdHJpbmc7XG4gIHByaXZhdGUgX3Jlc3VsdDogQmVoYXZpb3JTdWJqZWN0PGFueT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KG51bGwpO1xuICBwcml2YXRlIHJlc3VsdDogT2JzZXJ2YWJsZTxhbnk+ID0gdGhpcy5fcmVzdWx0LmFzT2JzZXJ2YWJsZSgpO1xuICBwcml2YXRlIF9pbnRlcm5hbFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uID0gbnVsbDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9yZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgc2FuaXRpemVyOiBEb21TYW5pdGl6ZXJcbiAgKSB7fVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9zdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMuX2Rpc3Bvc2UoKTtcbiAgICB9XG4gIH1cblxuICB0cmFuc2Zvcm0odXJsOiBzdHJpbmcsIGdldGZpbGUpOiBhbnkge1xuICAgIHRoaXMuZ2V0ZmlsZSA9IGdldGZpbGU7XG4gICAgY29uc3Qgb2JqID0gdGhpcy5pbnRlcm5hbFRyYW5zZm9ybSh1cmwpO1xuICAgIHJldHVybiB0aGlzLmFzeW5jVHJhc25mb3JtKG9iaik7XG4gIH1cblxuICBwcml2YXRlIGludGVybmFsVHJhbnNmb3JtKHVybDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBpZiAoIXVybCkge1xuICAgICAgcmV0dXJuIHRoaXMucmVzdWx0O1xuICAgIH1cblxuICAgIGlmICh0aGlzLnByZXZpb3VzVXJsICE9PSB1cmwpIHtcbiAgICAgIHRoaXMucHJldmlvdXNVcmwgPSB1cmw7XG4gICAgICB0aGlzLl9pbnRlcm5hbFN1YnNjcmlwdGlvbiA9IHRoaXMuZ2V0ZmlsZSh1cmwpLnN1YnNjcmliZSgobSkgPT4ge1xuICAgICAgICBjb25zdCBzYW5pdGl6ZWQgPSB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0VXJsKG0pO1xuICAgICAgICB0aGlzLl9yZXN1bHQubmV4dChzYW5pdGl6ZWQpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMucmVzdWx0O1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luY1RyYXNuZm9ybShvYmo6IE9ic2VydmFibGU8YW55Pik6IGFueSB7XG4gICAgaWYgKCF0aGlzLl9vYmopIHtcbiAgICAgIGlmIChvYmopIHtcbiAgICAgICAgdGhpcy5fc3Vic2NyaWJlKG9iaik7XG4gICAgICB9XG4gICAgICB0aGlzLl9sYXRlc3RSZXR1cm5lZFZhbHVlID0gdGhpcy5fbGF0ZXN0VmFsdWU7XG4gICAgICByZXR1cm4gdGhpcy5fbGF0ZXN0VmFsdWU7XG4gICAgfVxuICAgIGlmIChvYmogIT09IHRoaXMuX29iaikge1xuICAgICAgdGhpcy5fZGlzcG9zZSgpO1xuICAgICAgcmV0dXJuIHRoaXMuYXN5bmNUcmFzbmZvcm0ob2JqKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuX2xhdGVzdFZhbHVlID09PSB0aGlzLl9sYXRlc3RSZXR1cm5lZFZhbHVlKSB7XG4gICAgICByZXR1cm4gdGhpcy5fbGF0ZXN0UmV0dXJuZWRWYWx1ZTtcbiAgICB9XG4gICAgdGhpcy5fbGF0ZXN0UmV0dXJuZWRWYWx1ZSA9IHRoaXMuX2xhdGVzdFZhbHVlO1xuICAgIHJldHVybiBXcmFwcGVkVmFsdWUud3JhcCh0aGlzLl9sYXRlc3RWYWx1ZSk7XG4gIH1cblxuICBwcml2YXRlIF9zdWJzY3JpYmUob2JqOiBPYnNlcnZhYmxlPGFueT4pIHtcbiAgICBjb25zdCBfdGhpcyA9IHRoaXM7XG4gICAgdGhpcy5fb2JqID0gb2JqO1xuXG4gICAgdGhpcy5fc3Vic2NyaXB0aW9uID0gb2JqLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIF90aGlzLl91cGRhdGVMYXRlc3RWYWx1ZShvYmosIHZhbHVlKTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogKGU6IGFueSkgPT4ge1xuICAgICAgICB0aHJvdyBlO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfZGlzcG9zZSgpIHtcbiAgICBpZiAodGhpcy5fc3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLl9zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuX2ludGVybmFsU3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLl9pbnRlcm5hbFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIHRoaXMuX2ludGVybmFsU3Vic2NyaXB0aW9uID0gbnVsbDtcbiAgICB0aGlzLl9sYXRlc3RWYWx1ZSA9IG51bGw7XG4gICAgdGhpcy5fbGF0ZXN0UmV0dXJuZWRWYWx1ZSA9IG51bGw7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9uID0gbnVsbDtcbiAgICB0aGlzLl9vYmogPSBudWxsO1xuICB9XG5cbiAgcHJpdmF0ZSBfdXBkYXRlTGF0ZXN0VmFsdWUoYXN5bmM6IGFueSwgdmFsdWU6IE9iamVjdCkge1xuICAgIGlmIChhc3luYyA9PT0gdGhpcy5fb2JqKSB7XG4gICAgICB0aGlzLl9sYXRlc3RWYWx1ZSA9IHZhbHVlO1xuICAgICAgdGhpcy5fcmVmLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -0,0 +1,259 @@
1
+ import { Component, Input, forwardRef, EventEmitter, Output, ViewChild } from '@angular/core';
2
+ import { NG_VALUE_ACCESSOR } from '@angular/forms';
3
+ import { DateAdapter, MAT_DATE_FORMATS } from '@angular/material/core';
4
+ import { MomentDateAdapter } from '@angular/material-moment-adapter';
5
+ import * as moment_ from 'moment';
6
+ import { MatDatepicker } from '@angular/material/datepicker';
7
+ const moment = moment_;
8
+ export const MY_FORMATS = {
9
+ parse: {
10
+ dateInput: 'LL'
11
+ },
12
+ display: {
13
+ dateInput: 'MMMM DD, YYYY (dddd)',
14
+ monthYearLabel: 'MMM YYYY',
15
+ dateA11yLabel: 'LL',
16
+ monthYearA11yLabel: 'MMMM YYYY'
17
+ }
18
+ };
19
+ export class NgxDateTimePickerComponent {
20
+ constructor() {
21
+ // public date = new FormControl(moment());
22
+ this.selectedTime = moment().format();
23
+ this.selectedDate = moment().format();
24
+ this.loadInitial = false;
25
+ this.showTimePicker = false;
26
+ this.weeks = [0, 2, 4, 6, 8, 12, 16, 24];
27
+ this.showTime = false;
28
+ this.showWeeks = true;
29
+ this.dateFormat = 'MMMM DD, YYYY (dddd)';
30
+ this._showHolidays = true;
31
+ this.observer = null;
32
+ this.onDateChange = new EventEmitter();
33
+ this.onChange = () => { };
34
+ this.onTouched = () => { };
35
+ }
36
+ set showHolidays(v) {
37
+ this._showHolidays = v === true || v === 'true';
38
+ }
39
+ get dataSource() {
40
+ return this._dataSource;
41
+ }
42
+ set dataSource(v) {
43
+ this._dataSource = v;
44
+ }
45
+ ngOnInit() { }
46
+ writeValue(value) {
47
+ this.value = value;
48
+ }
49
+ registerOnChange(fn) {
50
+ this.onChange = fn;
51
+ }
52
+ registerOnTouched(fn) { }
53
+ onTimeSelect($event) {
54
+ const setDate = moment(this.selectedDate);
55
+ const setTime = $event;
56
+ this.setDateTime(setDate, setTime);
57
+ }
58
+ onDateSelect($event) {
59
+ const setDate = moment($event.value);
60
+ const setTime = this.selectedTime;
61
+ const dateString = this.setDateTime(setDate, setTime);
62
+ const selectedDate = $event.value;
63
+ this.value = dateString;
64
+ }
65
+ toggleTimePicker(status) {
66
+ this.showTimePicker = status;
67
+ return;
68
+ }
69
+ setCurrentTime() {
70
+ const setDate = moment(this.selectedDate);
71
+ const currentTime = moment().format('HH:mm:ss');
72
+ this.setDateTime(setDate, currentTime);
73
+ }
74
+ weekSelect($event) {
75
+ const dateToUse = moment().format();
76
+ const nextWeekDate = moment(dateToUse).add($event.value, 'weeks');
77
+ const nextWeekTime = dateToUse;
78
+ this.setDateTime(nextWeekDate, nextWeekTime);
79
+ }
80
+ selectionChange($event) {
81
+ console.log('Week selected', $event);
82
+ }
83
+ getWeekPickerCssClass() {
84
+ if (this.showTime) {
85
+ return 'col-sm-2 form-group';
86
+ }
87
+ return 'col-sm-3 form-group';
88
+ }
89
+ getDatePickerCssClass() {
90
+ if (this.showTime && this.showWeeks) {
91
+ return 'col-sm-5 form-group';
92
+ }
93
+ if (this.showWeeks === true) {
94
+ return 'col-sm-9 form-group';
95
+ }
96
+ if (this.showTime === true) {
97
+ return 'col-sm-8 form-group';
98
+ }
99
+ return 'col-sm-12 form-group';
100
+ }
101
+ getTimePickerCssClass() {
102
+ if (this.showTime && this.showWeeks) {
103
+ return 'col-sm-5 form-group';
104
+ }
105
+ if (this.showWeeks === true) {
106
+ return 'col-sm-9 form-group';
107
+ }
108
+ return 'col-sm-4 form-group';
109
+ }
110
+ setDateTime(setDate, setTime) {
111
+ const newDate = moment(setDate).format('DD-MM-YYYY');
112
+ let newTime;
113
+ if (this.showTime) {
114
+ newTime = moment(setTime).format('HH:mm:ss');
115
+ }
116
+ else {
117
+ newTime = '00:00:00';
118
+ }
119
+ const newDateTime = moment(newDate + '' + newTime, 'DD-MM-YYYY HH:mm:ss');
120
+ const dateTimeString = moment(newDateTime).format();
121
+ this.selectedDate = dateTimeString;
122
+ this.selectedTime = dateTimeString;
123
+ this.value = dateTimeString;
124
+ this.onChange(this.value);
125
+ return dateTimeString;
126
+ }
127
+ onOpen() {
128
+ if (this._showHolidays) {
129
+ const calendarBody = document.querySelector('.mat-calendar-content');
130
+ if (calendarBody) {
131
+ this.observer = new MutationObserver(() => {
132
+ this.highlightHolidays();
133
+ });
134
+ this.observer.observe(calendarBody, {
135
+ childList: true,
136
+ subtree: true
137
+ });
138
+ }
139
+ }
140
+ }
141
+ onClose() {
142
+ if (this.observer) {
143
+ this.observer.disconnect();
144
+ this.observer = null;
145
+ }
146
+ }
147
+ highlightHolidays() {
148
+ const isMonthView = !!document.querySelector('mat-month-view');
149
+ if (!isMonthView) {
150
+ const calendarCells = document.querySelectorAll('.mat-calendar-body-cell');
151
+ for (let i = 0; i < calendarCells.length; i++) {
152
+ calendarCells[i].classList.remove('highlight-date');
153
+ calendarCells[i].removeAttribute('data-tooltip');
154
+ }
155
+ return;
156
+ }
157
+ const cells = document.querySelectorAll('.mat-calendar-body-cell');
158
+ for (let i = 0; i < cells.length; i++) {
159
+ const cell = cells[i];
160
+ const date = new Date(cell.getAttribute('aria-label'));
161
+ const cellDate = moment(date).format('YYYY-MM-DD');
162
+ const holidays = this.dataSource.filter((v) => v.date === cellDate);
163
+ if (holidays.length > 0) {
164
+ const holidayName = holidays
165
+ .map((h) => h.name)
166
+ .sort()
167
+ .join('\n\n');
168
+ cell.classList.add('highlight-date');
169
+ cell.setAttribute('data-tooltip', holidayName);
170
+ }
171
+ else {
172
+ cell.classList.remove('highlight-date');
173
+ cell.removeAttribute('data-tooltip');
174
+ }
175
+ }
176
+ }
177
+ }
178
+ NgxDateTimePickerComponent.decorators = [
179
+ { type: Component, args: [{
180
+ selector: 'ngx-date-time-picker',
181
+ template: `<div>
182
+ <div class="row">
183
+ <div [class]="getDatePickerCssClass()">
184
+ <div class="input-group">
185
+ <input
186
+ matInput
187
+ [matDatepicker]="picker"
188
+ class="form-control"
189
+ [value]="value"
190
+ placeholder="Choose a date"
191
+ (dateChange)="onDateSelect($event)"
192
+ (click)="picker.open()"
193
+ readonly
194
+ />
195
+ <mat-datepicker #picker (opened)="onOpen()" (closed)="onClose()"></mat-datepicker>
196
+ <mat-datepicker-toggle
197
+ matSuffix
198
+ [for]="picker"
199
+ class="input-group-btn"
200
+ ></mat-datepicker-toggle>
201
+ </div>
202
+ </div>
203
+ <div [class]="getWeekPickerCssClass()" *ngIf="showWeeks">
204
+ <mat-select
205
+ placeholder="Select Weeks"
206
+ class="form-control"
207
+ name="weeks"
208
+ (selectionChange)="weekSelect($event)"
209
+ >
210
+ <mat-option *ngFor="let count of weeks" [value]="count">
211
+ {{ count }} Weeks
212
+ </mat-option>
213
+ </mat-select>
214
+ </div>
215
+ <div [class]="getTimePickerCssClass()" *ngIf="showTime">
216
+ <input
217
+ type="text"
218
+ class="form-control"
219
+ [value]="value | date: 'shortTime'"
220
+ (focus)="toggleTimePicker(true)"
221
+ readonly
222
+ placeholder="Select Time"
223
+ />
224
+ <time-picker
225
+ *ngIf="showTimePicker"
226
+ [initTime]="value"
227
+ [use12Hour]="true"
228
+ (onSelectTime)="onTimeSelect($event)"
229
+ (onTimePickerCancel)="toggleTimePicker($event)"
230
+ ></time-picker>
231
+ </div>
232
+ </div>
233
+ </div>
234
+ `,
235
+ styles: [`#time-section{display:inline-block}#ngx-atp-time-picker,#ngx-mat-form-field{width:100%}.up{bottom:100%!important;top:auto!important}.time-btn{margin-top:-20px}::ng-deep .highlight-date{border-radius:999px;background-color:#90ee90!important}::ng-deep .highlight-date[data-tooltip]:hover::after{content:attr(data-tooltip);position:absolute;top:-40px;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%);background-color:#333;color:#fff;padding:9px 10px;border-radius:4px;font-size:12px;line-height:6px;white-space:pre-wrap;z-index:1000;height:-webkit-fit-content;height:-moz-fit-content;height:fit-content;width:-webkit-max-content;width:-moz-max-content;width:max-content;text-align:start}::ng-deep .highlight-date[data-tooltip]:hover::before{content:'';position:absolute;top:-8px;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%);border:4px solid transparent;border-top-color:#333;z-index:1000}`],
236
+ providers: [
237
+ { provide: MAT_DATE_FORMATS, useValue: MY_FORMATS },
238
+ { provide: DateAdapter, useClass: MomentDateAdapter },
239
+ {
240
+ provide: NG_VALUE_ACCESSOR,
241
+ useExisting: forwardRef(() => NgxDateTimePickerComponent),
242
+ multi: true
243
+ }
244
+ ]
245
+ },] },
246
+ ];
247
+ NgxDateTimePickerComponent.propDecorators = {
248
+ weeks: [{ type: Input }],
249
+ modelValue: [{ type: Input }],
250
+ showTime: [{ type: Input }],
251
+ showWeeks: [{ type: Input }],
252
+ dateFormat: [{ type: Input }],
253
+ showHolidays: [{ type: Input }],
254
+ picker: [{ type: ViewChild, args: ['picker',] }],
255
+ dataSource: [{ type: Input }],
256
+ onDateChange: [{ type: Output }]
257
+ };
258
+
259
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWRhdGUtdGltZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFtcGF0aC1rZW55YS9uZ3gtb3Blbm1ycy1mb3JtZW50cnkvIiwic291cmNlcyI6WyJjb21wb25lbnRzL25neC1kYXRlLXRpbWUtcGlja2VyL25neC1kYXRlLXRpbWUtcGlja2VyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQ0wsU0FBUyxFQUVULEtBQUssRUFDTCxVQUFVLEVBQ1YsWUFBWSxFQUNaLE1BQU0sRUFDTixTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUVMLGlCQUFpQixFQUVsQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNyRSxPQUFPLEtBQUssT0FBTyxNQUFNLFFBQVEsQ0FBQztBQUNsQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDN0QsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDO0FBRXZCLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRztJQUN4QixLQUFLLEVBQUU7UUFDTCxTQUFTLEVBQUUsSUFBSTtLQUNoQjtJQUNELE9BQU8sRUFBRTtRQUNQLFNBQVMsRUFBRSxzQkFBc0I7UUFDakMsY0FBYyxFQUFFLFVBQVU7UUFDMUIsYUFBYSxFQUFFLElBQUk7UUFDbkIsa0JBQWtCLEVBQUUsV0FBVztLQUNoQztDQUNGLENBQUM7QUFxRUYsTUFBTTtJQW5FTjtRQXFFRSwyQ0FBMkM7UUFDcEMsaUJBQVksR0FBRyxNQUFNLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNqQyxpQkFBWSxHQUFHLE1BQU0sRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2pDLGdCQUFXLEdBQUcsS0FBSyxD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QUFFLFFBQVEsRUFBRSxVQUFVLEVBQUU7b0JBQ25ELEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsaUJBQWlCLEVBQUU7b0JBQ3JEO3dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7d0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsMEJBQTBCLENBQUM7d0JBQ3pELEtBQUssRUFBRSxJQUFJO3FCQUNaO2lCQUNGO2FBQ0Y7OztvQkFTRSxLQUFLO3lCQUNMLEtBQUs7dUJBQ0wsS0FBSzt3QkFDTCxLQUFLO3lCQUNMLEtBQUs7MkJBR0wsS0FBSztxQkFLTCxTQUFTLFNBQUMsUUFBUTt5QkFLbEIsS0FBSzsyQkFRTCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW9tZW50IH0gZnJvbSAnbW9tZW50L21vbWVudCc7XG5cbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgT25Jbml0LFxuICBJbnB1dCxcbiAgZm9yd2FyZFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBPdXRwdXQsXG4gIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxuICBOR19WQUxVRV9BQ0NFU1NPUixcbiAgRm9ybUNvbnRyb2xcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRGF0ZUFkYXB0ZXIsIE1BVF9EQVRFX0ZPUk1BVFMgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7IE1vbWVudERhdGVBZGFwdGVyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwtbW9tZW50LWFkYXB0ZXInO1xuaW1wb3J0ICogYXMgbW9tZW50XyBmcm9tICdtb21lbnQnO1xuaW1wb3J0IHsgTWF0RGF0ZXBpY2tlciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RhdGVwaWNrZXInO1xuY29uc3QgbW9tZW50ID0gbW9tZW50XztcblxuZXhwb3J0IGNvbnN0IE1ZX0ZPUk1BVFMgPSB7XG4gIHBhcnNlOiB7XG4gICAgZGF0ZUlucHV0OiAnTEwnXG4gIH0sXG4gIGRpc3BsYXk6IHtcbiAgICBkYXRlSW5wdXQ6ICdNTU1NIERELCBZWVlZIChkZGRkKScsIC8vIEF1Z3VzdCAxOCwgMjAyNSAoTW9uZGF5KVxuICAgIG1vbnRoWWVhckxhYmVsOiAnTU1NIFlZWVknLFxuICAgIGRhdGVBMTF5TGFiZWw6ICdMTCcsXG4gICAgbW9udGhZZWFyQTExeUxhYmVsOiAnTU1NTSBZWVlZJ1xuICB9XG59O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICduZ3gtZGF0ZS10aW1lLXBpY2tlcicsXG4gIHRlbXBsYXRlOiBgPGRpdj5cbiAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgIDxkaXYgW2NsYXNzXT1cImdldERhdGVQaWNrZXJDc3NDbGFzcygpXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXBcIj5cbiAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICBtYXRJbnB1dFxuICAgICAgICAgICAgW21hdERhdGVwaWNrZXJdPVwicGlja2VyXCJcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgIFt2YWx1ZV09XCJ2YWx1ZVwiXG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cIkNob29zZSBhIGRhdGVcIlxuICAgICAgICAgICAgKGRhdGVDaGFuZ2UpPVwib25EYXRlU2VsZWN0KCRldmVudClcIlxuICAgICAgICAgICAgKGNsaWNrKT1cInBpY2tlci5vcGVuKClcIlxuICAgICAgICAgICAgcmVhZG9ubHlcbiAgICAgICAgICAvPlxuICAgICAgICAgIDxtYXQtZGF0ZXBpY2tlciAjcGlja2VyIChvcGVuZWQpPVwib25PcGVuKClcIiAoY2xvc2VkKT1cIm9uQ2xvc2UoKVwiPjwvbWF0LWRhdGVwaWNrZXI+XG4gICAgICAgICAgPG1hdC1kYXRlcGlja2VyLXRvZ2dsZVxuICAgICAgICAgIG1hdFN1ZmZpeFxuICAgICAgICAgIFtmb3JdPVwicGlja2VyXCJcbiAgICAgICAgICBjbGFzcz1cImlucHV0LWdyb3VwLWJ0blwiXG4gICAgICAgID48L21hdC1kYXRlcGlja2VyLXRvZ2dsZT5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgW2NsYXNzXT1cImdldFdlZWtQaWNrZXJDc3NDbGFzcygpXCIgKm5nSWY9XCJzaG93V2Vla3NcIj5cbiAgICAgIDxtYXQtc2VsZWN0XG4gICAgICAgIHBsYWNlaG9sZGVyPVwiU2VsZWN0IFdlZWtzXCJcbiAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICBuYW1lPVwid2Vla3NcIlxuICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cIndlZWtTZWxlY3QoJGV2ZW50KVwiXG4gICAgICA+XG4gICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBjb3VudCBvZiB3ZWVrc1wiIFt2YWx1ZV09XCJjb3VudFwiPlxuICAgICAgICAgIHt7IGNvdW50IH19IFdlZWtzXG4gICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IFtjbGFzc109XCJnZXRUaW1lUGlja2VyQ3NzQ2xhc3MoKVwiICpuZ0lmPVwic2hvd1RpbWVcIj5cbiAgICAgIDxpbnB1dFxuICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgW3ZhbHVlXT1cInZhbHVlIHwgZGF0ZTogJ3Nob3J0VGltZSdcIlxuICAgICAgICAoZm9jdXMpPVwidG9nZ2xlVGltZVBpY2tlcih0cnVlKVwiXG4gICAgICAgIHJlYWRvbmx5XG4gICAgICAgIHBsYWNlaG9sZGVyPVwiU2VsZWN0IFRpbWVcIlxuICAgICAgLz5cbiAgICAgIDx0aW1lLXBpY2tlclxuICAgICAgICAqbmdJZj1cInNob3dUaW1lUGlja2VyXCJcbiAgICAgICAgW2luaXRUaW1lXT1cInZhbHVlXCJcbiAgICAgICAgW3VzZTEySG91cl09XCJ0cnVlXCJcbiAgICAgICAgKG9uU2VsZWN0VGltZSk9XCJvblRpbWVTZWxlY3QoJGV2ZW50KVwiXG4gICAgICAgIChvblRpbWVQaWNrZXJDYW5jZWwpPVwidG9nZ2xlVGltZVBpY2tlcigkZXZlbnQpXCJcbiAgICAgID48L3RpbWUtcGlja2VyPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuYCxcbiAgc3R5bGVzOiBbYCN0aW1lLXNlY3Rpb257ZGlzcGxheTppbmxpbmUtYmxvY2t9I25neC1hdHAtdGltZS1waWNrZXIsI25neC1tYXQtZm9ybS1maWVsZHt3aWR0aDoxMDAlfS51cHtib3R0b206MTAwJSFpbXBvcnRhbnQ7dG9wOmF1dG8haW1wb3J0YW50fS50aW1lLWJ0bnttYXJnaW4tdG9wOi0yMHB4fTo6bmctZGVlcCAuaGlnaGxpZ2h0LWRhdGV7Ym9yZGVyLXJhZGl1czo5OTlweDtiYWNrZ3JvdW5kLWNvbG9yOiM5MGVlOTAhaW1wb3J0YW50fTo6bmctZGVlcCAuaGlnaGxpZ2h0LWRhdGVbZGF0YS10b29sdGlwXTpob3Zlcjo6YWZ0ZXJ7Y29udGVudDphdHRyKGRhdGEtdG9vbHRpcCk7cG9zaXRpb246YWJzb2x1dGU7dG9wOi00MHB4O2xlZnQ6NTAlOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTUwJSk7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTUwJSk7YmFja2dyb3VuZC1jb2xvcjojMzMzO2NvbG9yOiNmZmY7cGFkZGluZzo5cHggMTBweDtib3JkZXItcmFkaXVzOjRweDtmb250LXNpemU6MTJweDtsaW5lLWhlaWdodDo2cHg7d2hpdGUtc3BhY2U6cHJlLXdyYXA7ei1pbmRleDoxMDAwO2hlaWdodDotd2Via2l0LWZpdC1jb250ZW50O2hlaWdodDotbW96LWZpdC1jb250ZW50O2hlaWdodDpmaXQtY29udGVudDt3aWR0aDotd2Via2l0LW1heC1jb250ZW50O3dpZHRoOi1tb3otbWF4LWNvbnRlbnQ7d2lkdGg6bWF4LWNvbnRlbnQ7dGV4dC1hbGlnbjpzdGFydH06Om5nLWRlZXAgLmhpZ2hsaWdodC1kYXRlW2RhdGEtdG9vbHRpcF06aG92ZXI6OmJlZm9yZXtjb250ZW50OicnO3Bvc2l0aW9uOmFic29sdXRlO3RvcDotOHB4O2xlZnQ6NTAlOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTUwJSk7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTUwJSk7Ym9yZGVyOjRweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItdG9wLWNvbG9yOiMzMzM7ei1pbmRleDoxMDAwfWBdLFxuICBwcm92aWRlcnM6IFtcbiAgICB7IHByb3ZpZGU6IE1BVF9EQVRFX0ZPUk1BVFMsIHVzZVZhbHVlOiBNWV9GT1JNQVRTIH0sXG4gICAgeyBwcm92aWRlOiBEYXRlQWRhcHRlciwgdXNlQ2xhc3M6IE1vbWVudERhdGVBZGFwdGVyIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBOZ3hEYXRlVGltZVBpY2tlckNvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH1cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBOZ3hEYXRlVGltZVBpY2tlckNvbXBvbmVudFxuICBpbXBsZW1lbnRzIE9uSW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICAvLyBwdWJsaWMgZGF0ZSA9IG5ldyBGb3JtQ29udHJvbChtb21lbnQoKSk7XG4gIHB1YmxpYyBzZWxlY3RlZFRpbWUgPSBtb21lbnQoKS5mb3JtYXQoKTtcbiAgcHVibGljIHNlbGVjdGVkRGF0ZSA9IG1vbWVudCgpLmZvcm1hdCgpO1xuICBwdWJsaWMgbG9hZEluaXRpYWwgPSBmYWxzZTtcbiAgcHVibGljIHZhbHVlO1xuICBwdWJsaWMgc2hvd1RpbWVQaWNrZXIgPSBmYWxzZTtcbiAgQElucHV0KCkgd2Vla3M6IG51bWJlcltdID0gWzAsIDIsIDQsIDYsIDgsIDEyLCAxNiwgMjRdO1xuICBASW5wdXQoKSBtb2RlbFZhbHVlOiBhbnk7XG4gIEBJbnB1dCgpIHNob3dUaW1lID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNob3dXZWVrcyA9IHRydWU7XG4gIEBJbnB1dCgpIGRhdGVGb3JtYXQgPSAnTU1NTSBERCwgWVlZWSAoZGRkZCknO1xuXG4gIHByaXZhdGUgX3Nob3dIb2xpZGF5cyA9IHRydWU7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgc2hvd0hvbGlkYXlzKHY6IGJvb2xlYW4gfCBzdHJpbmcpIHtcbiAgICB0aGlzLl9zaG93SG9saWRheXMgPSB2ID09PSB0cnVlIHx8IHYgPT09ICd0cnVlJztcbiAgfVxuXG4gIEBWaWV3Q2hpbGQoJ3BpY2tlcicpIHBpY2tlcjogTWF0RGF0ZXBpY2tlcjxEYXRlPjtcblxuICBwcml2YXRlIG9ic2VydmVyOiBNdXRhdGlvbk9ic2VydmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgcHJpdmF0ZSBfZGF0YVNvdXJjZTogYW55O1xuICBASW5wdXQoKVxuICBwdWJsaWMgZ2V0IGRhdGFTb3VyY2UoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5fZGF0YVNvdXJjZTtcbiAgfVxuICBwdWJsaWMgc2V0IGRhdGFTb3VyY2UodjogYW55KSB7XG4gICAgdGhpcy5fZGF0YVNvdXJjZSA9IHY7XG4gIH1cblxuICBAT3V0cHV0KCkgb25EYXRlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIHB1YmxpYyBvbkNoYW5nZTogYW55ID0gKCkgPT4ge307XG4gIHB1YmxpYyBvblRvdWNoZWQ6IGFueSA9ICgpID0+IHt9O1xuICBwdWJsaWMgbmdPbkluaXQoKSB7fVxuXG4gIHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlKSB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm4pIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoZm4pIHt9XG5cbiAgcHVibGljIG9uVGltZVNlbGVjdCgkZXZlbnQpIHtcbiAgICBjb25zdCBzZXREYXRlID0gbW9tZW50KHRoaXMuc2VsZWN0ZWREYXRlKTtcbiAgICBjb25zdCBzZXRUaW1lID0gJGV2ZW50O1xuICAgIHRoaXMuc2V0RGF0ZVRpbWUoc2V0RGF0ZSwgc2V0VGltZSk7XG4gIH1cblxuICBwdWJsaWMgb25EYXRlU2VsZWN0KCRldmVudCkge1xuICAgIGNvbnN0IHNldERhdGUgPSBtb21lbnQoJGV2ZW50LnZhbHVlKTtcbiAgICBjb25zdCBzZXRUaW1lID0gdGhpcy5zZWxlY3RlZFRpbWU7XG4gICAgY29uc3QgZGF0ZVN0cmluZyA9IHRoaXMuc2V0RGF0ZVRpbWUoc2V0RGF0ZSwgc2V0VGltZSk7XG5cbiAgICBjb25zdCBzZWxlY3RlZERhdGUgPSAkZXZlbnQudmFsdWU7XG4gICAgdGhpcy52YWx1ZSA9IGRhdGVTdHJpbmc7XG4gIH1cblxuICBwdWJsaWMgdG9nZ2xlVGltZVBpY2tlcihzdGF0dXM6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLnNob3dUaW1lUGlja2VyID0gc3RhdHVzO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIHB1YmxpYyBzZXRDdXJyZW50VGltZSgpIHtcbiAgICBjb25zdCBzZXREYXRlID0gbW9tZW50KHRoaXMuc2VsZWN0ZWREYXRlKTtcbiAgICBjb25zdCBjdXJyZW50VGltZSA9IG1vbWVudCgpLmZvcm1hdCgnSEg6bW06c3MnKTtcbiAgICB0aGlzLnNldERhdGVUaW1lKHNldERhdGUsIGN1cnJlbnRUaW1lKTtcbiAgfVxuXG4gIHB1YmxpYyB3ZWVrU2VsZWN0KCRldmVudCkge1xuICAgIGNvbnN0IGRhdGVUb1VzZSA9IG1vbWVudCgpLmZvcm1hdCgpO1xuICAgIGNvbnN0IG5leHRXZWVrRGF0ZSA9IG1vbWVudChkYXRlVG9Vc2UpLmFkZCgkZXZlbnQudmFsdWUsICd3ZWVrcycpO1xuICAgIGNvbnN0IG5leHRXZWVrVGltZSA9IGRhdGVUb1VzZTtcbiAgICB0aGlzLnNldERhdGVUaW1lKG5leHRXZWVrRGF0ZSwgbmV4dFdlZWtUaW1lKTtcbiAgfVxuXG4gIHB1YmxpYyBzZWxlY3Rpb25DaGFuZ2UoJGV2ZW50KSB7XG4gICAgY29uc29sZS5sb2coJ1dlZWsgc2VsZWN0ZWQnLCAkZXZlbnQpO1xuICB9XG5cbiAgcHVibGljIGdldFdlZWtQaWNrZXJDc3NDbGFzcygpIHtcbiAgICBpZiAodGhpcy5zaG93VGltZSkge1xuICAgICAgcmV0dXJuICdjb2wtc20tMiBmb3JtLWdyb3VwJztcbiAgICB9XG4gICAgcmV0dXJuICdjb2wtc20tMyBmb3JtLWdyb3VwJztcbiAgfVxuXG4gIHB1YmxpYyBnZXREYXRlUGlja2VyQ3NzQ2xhc3MoKSB7XG4gICAgaWYgKHRoaXMuc2hvd1RpbWUgJiYgdGhpcy5zaG93V2Vla3MpIHtcbiAgICAgIHJldHVybiAnY29sLXNtLTUgZm9ybS1ncm91cCc7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuc2hvd1dlZWtzID09PSB0cnVlKSB7XG4gICAgICByZXR1cm4gJ2NvbC1zbS05IGZvcm0tZ3JvdXAnO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnNob3dUaW1lID09PSB0cnVlKSB7XG4gICAgICByZXR1cm4gJ2NvbC1zbS04IGZvcm0tZ3JvdXAnO1xuICAgIH1cbiAgICByZXR1cm4gJ2NvbC1zbS0xMiBmb3JtLWdyb3VwJztcbiAgfVxuXG4gIHB1YmxpYyBnZXRUaW1lUGlja2VyQ3NzQ2xhc3MoKSB7XG4gICAgaWYgKHRoaXMuc2hvd1RpbWUgJiYgdGhpcy5zaG93V2Vla3MpIHtcbiAgICAgIHJldHVybiAnY29sLXNtLTUgZm9ybS1ncm91cCc7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuc2hvd1dlZWtzID09PSB0cnVlKSB7XG4gICAgICByZXR1cm4gJ2NvbC1zbS05IGZvcm0tZ3JvdXAnO1xuICAgIH1cbiAgICByZXR1cm4gJ2NvbC1zbS00IGZvcm0tZ3JvdXAnO1xuICB9XG5cbiAgcHVibGljIHNldERhdGVUaW1lKHNldERhdGUsIHNldFRpbWUpIHtcbiAgICBjb25zdCBuZXdEYXRlID0gbW9tZW50KHNldERhdGUpLmZvcm1hdCgnREQtTU0tWVlZWScpO1xuICAgIGxldCBuZXdUaW1lO1xuICAgIGlmICh0aGlzLnNob3dUaW1lKSB7XG4gICAgICBuZXdUaW1lID0gbW9tZW50KHNldFRpbWUpLmZvcm1hdCgnSEg6bW06c3MnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgbmV3VGltZSA9ICcwMDowMDowMCc7XG4gICAgfVxuICAgIGNvbnN0IG5ld0RhdGVUaW1lID0gbW9tZW50KG5ld0RhdGUgKyAnJyArIG5ld1RpbWUsICdERC1NTS1ZWVlZIEhIOm1tOnNzJyk7XG4gICAgY29uc3QgZGF0ZVRpbWVTdHJpbmcgPSBtb21lbnQobmV3RGF0ZVRpbWUpLmZvcm1hdCgpO1xuICAgIHRoaXMuc2VsZWN0ZWREYXRlID0gZGF0ZVRpbWVTdHJpbmc7XG4gICAgdGhpcy5zZWxlY3RlZFRpbWUgPSBkYXRlVGltZVN0cmluZztcbiAgICB0aGlzLnZhbHVlID0gZGF0ZVRpbWVTdHJpbmc7XG4gICAgdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKTtcblxuICAgIHJldHVybiBkYXRlVGltZVN0cmluZztcbiAgfVxuXG4gIG9uT3BlbigpIHtcbiAgICBpZiAodGhpcy5fc2hvd0hvbGlkYXlzKSB7XG4gICAgICBjb25zdCBjYWxlbmRhckJvZHkgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcubWF0LWNhbGVuZGFyLWNvbnRlbnQnKTtcbiAgICAgIGlmIChjYWxlbmRhckJvZHkpIHtcbiAgICAgICAgdGhpcy5vYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKCgpID0+IHtcbiAgICAgICAgICB0aGlzLmhpZ2hsaWdodEhvbGlkYXlzKCk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLm9ic2VydmVyLm9ic2VydmUoY2FsZW5kYXJCb2R5LCB7XG4gICAgICAgICAgY2hpbGRMaXN0OiB0cnVlLFxuICAgICAgICAgIHN1YnRyZWU6IHRydWVcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgb25DbG9zZSgpIHtcbiAgICBpZiAodGhpcy5vYnNlcnZlcikge1xuICAgICAgdGhpcy5vYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gICAgICB0aGlzLm9ic2VydmVyID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgaGlnaGxpZ2h0SG9saWRheXMoKSB7XG4gICAgY29uc3QgaXNNb250aFZpZXcgPSAhIWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ21hdC1tb250aC12aWV3Jyk7XG4gICAgaWYgKCFpc01vbnRoVmlldykge1xuICAgICAgY29uc3QgY2FsZW5kYXJDZWxscyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXG4gICAgICAgICcubWF0LWNhbGVuZGFyLWJvZHktY2VsbCdcbiAgICAgICk7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNhbGVuZGFyQ2VsbHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY2FsZW5kYXJDZWxsc1tpXS5jbGFzc0xpc3QucmVtb3ZlKCdoaWdobGlnaHQtZGF0ZScpO1xuICAgICAgICBjYWxlbmRhckNlbGxzW2ldLnJlbW92ZUF0dHJpYnV0ZSgnZGF0YS10b29sdGlwJyk7XG4gICAgICB9XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgY2VsbHMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcubWF0LWNhbGVuZGFyLWJvZHktY2VsbCcpO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY2VsbHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IGNlbGwgPSBjZWxsc1tpXTtcbiAgICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZShjZWxsLmdldEF0dHJpYnV0ZSgnYXJpYS1sYWJlbCcpKTtcbiAgICAgIGNvbnN0IGNlbGxEYXRlID0gbW9tZW50KGRhdGUpLmZvcm1hdCgnWVlZWS1NTS1ERCcpO1xuXG4gICAgICBjb25zdCBob2xpZGF5cyA9IHRoaXMuZGF0YVNvdXJjZS5maWx0ZXIoKHYpID0+IHYuZGF0ZSA9PT0gY2VsbERhdGUpO1xuICAgICAgaWYgKGhvbGlkYXlzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgY29uc3QgaG9saWRheU5hbWUgPSBob2xpZGF5c1xuICAgICAgICAgIC5tYXAoKGgpID0+IGgubmFtZSlcbiAgICAgICAgICAuc29ydCgpXG4gICAgICAgICAgLmpvaW4oJ1xcblxcbicpO1xuICAgICAgICBjZWxsLmNsYXNzTGlzdC5hZGQoJ2hpZ2hsaWdodC1kYXRlJyk7XG4gICAgICAgIGNlbGwuc2V0QXR0cmlidXRlKCdkYXRhLXRvb2x0aXAnLCBob2xpZGF5TmFtZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjZWxsLmNsYXNzTGlzdC5yZW1vdmUoJ2hpZ2hsaWdodC1kYXRlJyk7XG4gICAgICAgIGNlbGwucmVtb3ZlQXR0cmlidXRlKCdkYXRhLXRvb2x0aXAnKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,43 @@
1
+ /**
2
+ * date-time-picker.module
3
+ */
4
+ import { NgModule } from '@angular/core';
5
+ import { CommonModule } from '@angular/common';
6
+ import { FormsModule, ReactiveFormsModule } from '@angular/forms';
7
+ import { MatDatepickerModule } from '@angular/material/datepicker';
8
+ import { MatFormFieldModule } from '@angular/material/form-field';
9
+ import { MatNativeDateModule, MatInputModule, MatTooltipModule } from '@angular/material';
10
+ import { NgxDateTimePickerComponent } from './ngx-date-time-picker.component';
11
+ // import { AmazingTimePickerModule } from 'amazing-time-picker';
12
+ import { MatSelectModule } from '@angular/material/select';
13
+ import { DateTimePickerModule } from '../date-time-picker/date-time-picker.module';
14
+ export class NgxDateTimePickerModule {
15
+ }
16
+ NgxDateTimePickerModule.decorators = [
17
+ { type: NgModule, args: [{
18
+ imports: [
19
+ CommonModule,
20
+ FormsModule,
21
+ ReactiveFormsModule,
22
+ MatDatepickerModule,
23
+ MatFormFieldModule,
24
+ MatNativeDateModule,
25
+ MatInputModule,
26
+ DateTimePickerModule,
27
+ // AmazingTimePickerModule,
28
+ MatSelectModule,
29
+ MatTooltipModule
30
+ ],
31
+ declarations: [NgxDateTimePickerComponent],
32
+ exports: [
33
+ MatDatepickerModule,
34
+ MatFormFieldModule,
35
+ MatNativeDateModule,
36
+ MatInputModule,
37
+ NgxDateTimePickerComponent
38
+ ],
39
+ providers: []
40
+ },] },
41
+ ];
42
+
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWRhdGUtdGltZS1waWNrZXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFtcGF0aC1rZW55YS9uZ3gtb3Blbm1ycy1mb3JtZW50cnkvIiwic291cmNlcyI6WyJjb21wb25lbnRzL25neC1kYXRlLXRpbWUtcGlja2VyL25neC1kYXRlLXRpbWUtcGlja2VyLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQ0wsbUJBQW1CLEVBQ25CLGNBQWMsRUFDZCxnQkFBZ0IsRUFDakIsTUFBTSxtQkFBbUIsQ0FBQztBQUMzQixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUM5RSxpRUFBaUU7QUFDakUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBMEJuRixNQUFNOzs7WUF4QkwsUUFBUSxTQUFDO2dCQUNSLE9BQU8sRUFBRTtvQkFDUCxZQUFZO29CQUNaLFdBQVc7b0JBQ1gsbUJBQW1CO29CQUNuQixtQkFBbUI7b0JBQ25CLGtCQUFrQjtvQkFDbEIsbUJBQW1CO29CQUNuQixjQUFjO29CQUNkLG9CQUFvQjtvQkFDcEIsMkJBQTJCO29CQUMzQixlQUFlO29CQUNmLGdCQUFnQjtpQkFDakI7Z0JBQ0QsWUFBWSxFQUFFLENBQUMsMEJBQTBCLENBQUM7Z0JBQzFDLE9BQU8sRUFBRTtvQkFDUCxtQkFBbUI7b0JBQ25CLGtCQUFrQjtvQkFDbEIsbUJBQW1CO29CQUNuQixjQUFjO29CQUNkLDBCQUEwQjtpQkFDM0I7Z0JBQ0QsU0FBUyxFQUFFLEVBQUU7YUFDZCIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogZGF0ZS10aW1lLXBpY2tlci5tb2R1bGVcbiAqL1xuXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0RGF0ZXBpY2tlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RhdGVwaWNrZXInO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQge1xuICBNYXROYXRpdmVEYXRlTW9kdWxlLFxuICBNYXRJbnB1dE1vZHVsZSxcbiAgTWF0VG9vbHRpcE1vZHVsZVxufSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbCc7XG5pbXBvcnQgeyBOZ3hEYXRlVGltZVBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4vbmd4LWRhdGUtdGltZS1waWNrZXIuY29tcG9uZW50Jztcbi8vIGltcG9ydCB7IEFtYXppbmdUaW1lUGlja2VyTW9kdWxlIH0gZnJvbSAnYW1hemluZy10aW1lLXBpY2tlcic7XG5pbXBvcnQgeyBNYXRTZWxlY3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xuaW1wb3J0IHsgRGF0ZVRpbWVQaWNrZXJNb2R1bGUgfSBmcm9tICcuLi9kYXRlLXRpbWUtcGlja2VyL2RhdGUtdGltZS1waWNrZXIubW9kdWxlJztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIE1hdERhdGVwaWNrZXJNb2R1bGUsXG4gICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxuICAgIE1hdE5hdGl2ZURhdGVNb2R1bGUsXG4gICAgTWF0SW5wdXRNb2R1bGUsXG4gICAgRGF0ZVRpbWVQaWNrZXJNb2R1bGUsXG4gICAgLy8gQW1hemluZ1RpbWVQaWNrZXJNb2R1bGUsXG4gICAgTWF0U2VsZWN0TW9kdWxlLFxuICAgIE1hdFRvb2x0aXBNb2R1bGVcbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBbTmd4RGF0ZVRpbWVQaWNrZXJDb21wb25lbnRdLFxuICBleHBvcnRzOiBbXG4gICAgTWF0RGF0ZXBpY2tlck1vZHVsZSxcbiAgICBNYXRGb3JtRmllbGRNb2R1bGUsXG4gICAgTWF0TmF0aXZlRGF0ZU1vZHVsZSxcbiAgICBNYXRJbnB1dE1vZHVsZSxcbiAgICBOZ3hEYXRlVGltZVBpY2tlckNvbXBvbmVudFxuICBdLFxuICBwcm92aWRlcnM6IFtdXG59KVxuZXhwb3J0IGNsYXNzIE5neERhdGVUaW1lUGlja2VyTW9kdWxlIHt9XG4iXX0=