@openmrs/ngx-formentry 3.0.1-pre.8

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 +179 -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 +13458 -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,114 @@
1
+ /**
2
+ * time-picker.component
3
+ */
4
+ import { Component, Input, Output, EventEmitter } from '@angular/core';
5
+ import moment from 'moment';
6
+ // const myDpStyles: string = require('./time-picker.component.css');
7
+ // const myDpTpl: string = require('./time-picker.component.html');
8
+ // webpack2_
9
+ export class TimePickerComponent {
10
+ constructor() {
11
+ this.showSecond = true;
12
+ this.viewFormat = 'hh:mm A';
13
+ this.use12Hour = false;
14
+ this.returnObject = 'js';
15
+ this.onSelectTime = new EventEmitter();
16
+ this.onTimePickerCancel = new EventEmitter();
17
+ this.hourFormat = 'HH';
18
+ }
19
+ ngOnInit() {
20
+ if (this.use12Hour) {
21
+ this.hourFormat = 'hh';
22
+ }
23
+ this.time = this.initTime
24
+ ? moment(this.initTime, this.viewFormat)
25
+ : moment();
26
+ // check if the input initDate has value
27
+ if (this.initTime) {
28
+ this.time =
29
+ this.returnObject === 'string'
30
+ ? moment(this.initTime, this.viewFormat)
31
+ : moment(this.initTime);
32
+ }
33
+ else {
34
+ this.time = moment();
35
+ }
36
+ }
37
+ increaseHour() {
38
+ this.time = this.time.clone().add(1, 'h');
39
+ }
40
+ decreaseHour() {
41
+ this.time = this.time.clone().subtract(1, 'h');
42
+ }
43
+ increaseMinute() {
44
+ this.time = this.time.clone().add(1, 'm');
45
+ }
46
+ decreaseMinute() {
47
+ this.time = this.time.clone().subtract(1, 'm');
48
+ }
49
+ increaseSecond() {
50
+ this.time = this.time.clone().add(1, 's');
51
+ }
52
+ decreaseSecond() {
53
+ this.time = this.time.clone().subtract(1, 's');
54
+ }
55
+ selectTime() {
56
+ const selectTime = this.parseToReturnObjectType(this.time);
57
+ this.onSelectTime.emit(selectTime);
58
+ this.cancelTimePicker();
59
+ return;
60
+ }
61
+ selectNow() {
62
+ const selectTime = this.parseToReturnObjectType(moment());
63
+ this.onSelectTime.emit(selectTime);
64
+ this.cancelTimePicker();
65
+ return;
66
+ }
67
+ clearTime() {
68
+ this.onSelectTime.emit(null);
69
+ this.cancelTimePicker();
70
+ return;
71
+ }
72
+ cancelTimePicker() {
73
+ this.onTimePickerCancel.emit(false);
74
+ return;
75
+ }
76
+ parseToReturnObjectType(time) {
77
+ switch (this.returnObject) {
78
+ case 'js':
79
+ return time.toDate();
80
+ case 'string':
81
+ return time.format(this.viewFormat);
82
+ case 'moment':
83
+ return time;
84
+ case 'json':
85
+ return time.toJSON();
86
+ case 'array':
87
+ return time.toArray();
88
+ case 'iso':
89
+ return time.toISOString();
90
+ case 'object':
91
+ return time.toObject();
92
+ default:
93
+ return time;
94
+ }
95
+ }
96
+ }
97
+ TimePickerComponent.decorators = [
98
+ { type: Component, args: [{
99
+ selector: 'time-picker',
100
+ template: "<picker-modal (onOverlayClick)=\"cancelTimePicker()\">\n <div class=\"picker-wrap\">\n <div class=\"picker-box\">\n <div class=\"picker-header\">Time Picker</div>\n <div class=\"picker-table\">\n <ul class=\"picker-table-time\">\n <li class=\"picker-table-number hour\">\n <span class=\"arrow up\" (click)=\"increaseHour()\"></span>\n {{ time | moment: hourFormat }}\n <span class=\"arrow down\" (click)=\"decreaseHour()\"></span>\n </li>\n <li class=\"picker-table-separator\">:</li>\n <li class=\"picker-table-number minute\">\n <span class=\"arrow up\" (click)=\"increaseMinute()\"></span>\n {{ time | moment: 'mm' }}\n <span class=\"arrow down\" (click)=\"decreaseMinute()\"></span>\n </li>\n <li *ngIf=\"showSecond\" class=\"picker-table-separator\">:</li>\n <li *ngIf=\"showSecond\" class=\"picker-table-number second\">\n <span class=\"arrow up\" (click)=\"increaseSecond()\"></span>\n {{ time | moment: 'ss' }}\n <span class=\"arrow down\" (click)=\"decreaseSecond()\"></span>\n </li>\n <li *ngIf=\"use12Hour\" class=\"picker-table-meridiem meridiem\">\n {{ time | moment: 'A' }}\n </li>\n </ul>\n </div>\n <div class=\"picker-footer\">\n <div class=\"picker-action action-now\" (click)=\"selectNow()\">\n <span class=\"text\">Now</span>\n </div>\n <div class=\"picker-action action-confirm\" (click)=\"selectTime()\">\n <span class=\"text\">Confirm</span>\n </div>\n <div class=\"picker-action action-clear\" (click)=\"clearTime()\">\n <span class=\"text\">Clear</span>\n </div>\n <div class=\"picker-action action-close\" (click)=\"cancelTimePicker()\">\n <span class=\"text\">Close</span>\n </div>\n </div>\n </div>\n </div>\n</picker-modal>\n",
101
+ styles: ["*,:after,:before{box-sizing:border-box}.picker-wrap{width:95vw;max-width:40rem;font-family:Open Sans}.picker-box{width:100%;padding:.625rem 1rem;-webkit-user-select:none;-moz-user-select:none;user-select:none}.picker-footer,.picker-header{font-size:1.333rem;line-height:2.5rem;height:2.5rem;width:100%}.picker-header{text-align:center}.picker-table{width:100%;margin:2.5rem 0}.picker-table-time{font-size:2.37rem;line-height:2.5rem;list-style:none;margin:0;padding:0;display:flex;justify-content:center;width:100%;-webkit-user-select:none;-moz-user-select:none;user-select:none}.picker-table-meridiem,.picker-table-number,.picker-table-separator{text-align:center}.picker-table-meridiem,.picker-table-number{position:relative;width:20%}.arrow{position:absolute;left:50%;border:solid #777;border-width:0 .2rem .2rem 0;display:inline-block;padding:.25rem;cursor:pointer}.arrow.up{top:-1rem;transform:translateX(-50%) rotate(-135deg)}.arrow.down{bottom:-1rem;transform:translateX(-50%) rotate(45deg)}.arrow:hover{border-color:#1975d2}.picker-table-separator{width:calc(20% / 3)}.picker-footer{display:flex;justify-content:center;width:100%;cursor:pointer}.picker-footer .picker-action{width:25%;text-align:center}.picker-footer .picker-action:hover{background-color:#b1dcfb}.picker-footer .picker-action .text{padding-left:.8rem}.picker-footer .action-clear:before,.picker-footer .action-close:before,.picker-footer .action-confirm:before,.picker-footer .action-now:before{content:\" \";position:relative;display:inline-block;height:0;width:0}.picker-footer .action-now:before{border-top:.66em solid #0059bc;border-left:.66em solid transparent}.picker-footer .action-confirm:before{width:1rem;height:1rem;border-radius:100%;background-color:#00b5ad}.picker-footer .action-clear:before{top:-.5rem;width:1rem;border-top:3px solid #e20}.picker-footer .action-close:before{width:1rem;height:1rem;background:linear-gradient(180deg,transparent 35%,#777 0,#777 65%,transparent 0),linear-gradient(90deg,transparent 35%,#777 0,#777 65%,transparent 0);transform:rotate(45deg)}"]
102
+ },] }
103
+ ];
104
+ TimePickerComponent.ctorParameters = () => [];
105
+ TimePickerComponent.propDecorators = {
106
+ initTime: [{ type: Input }],
107
+ showSecond: [{ type: Input }],
108
+ viewFormat: [{ type: Input }],
109
+ use12Hour: [{ type: Input }],
110
+ returnObject: [{ type: Input }],
111
+ onSelectTime: [{ type: Output }],
112
+ onTimePickerCancel: [{ type: Output }]
113
+ };
114
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWZvcm1lbnRyeS9zcmMvY29tcG9uZW50cy9kYXRlLXRpbWUtcGlja2VyL3RpbWUtcGlja2VyL3RpbWUtcGlja2VyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxNQUFrQixNQUFNLFFBQVEsQ0FBQztBQUl4QyxxRUFBcUU7QUFDckUsbUVBQW1FO0FBQ25FLFlBQVk7QUFPWixNQUFNLE9BQU8sbUJBQW1CO0lBVzlCO1FBVFMsZUFBVSxHQUFHLElBQUksQ0FBQztRQUNsQixlQUFVLEdBQUcsU0FBUyxDQUFDO1FBQ3ZCLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFDbEIsaUJBQVksR0FBRyxJQUFJLENBQUM7UUFDbkIsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQ3ZDLHVCQUFrQixHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFDM0QsZUFBVSxHQUFHLElBQUksQ0FBQztJQUdILENBQUM7SUFFaEIsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNsQixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztTQUN4QjtRQUNELElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVE7WUFDdkIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUM7WUFDeEMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBRWIsd0NBQXdDO1FBQ3hDLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNqQixJQUFJLENBQUMsSUFBSTtnQkFDUCxJQUFJLENB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TyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFFNUIsS0FBSyxRQUFRO2dCQUNYLE9BQU8sSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBRXpCO2dCQUNFLE9BQU8sSUFBSSxDQUFDO1NBQ2Y7SUFDSCxDQUFDOzs7WUFoSEYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxhQUFhO2dCQUN2QixxOURBQTJDOzthQUU1Qzs7Ozt1QkFFRSxLQUFLO3lCQUNMLEtBQUs7eUJBQ0wsS0FBSzt3QkFDTCxLQUFLOzJCQUNMLEtBQUs7MkJBQ0wsTUFBTTtpQ0FDTixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiB0aW1lLXBpY2tlci5jb21wb25lbnRcbiAqL1xuXG5pbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgbW9tZW50LCB7IE1vbWVudCB9IGZyb20gJ21vbWVudCc7XG5cbi8vIHdlYnBhY2sxX1xuZGVjbGFyZSBsZXQgcmVxdWlyZTogYW55O1xuLy8gY29uc3QgbXlEcFN0eWxlczogc3RyaW5nID0gcmVxdWlyZSgnLi90aW1lLXBpY2tlci5jb21wb25lbnQuY3NzJyk7XG4vLyBjb25zdCBteURwVHBsOiBzdHJpbmcgPSByZXF1aXJlKCcuL3RpbWUtcGlja2VyLmNvbXBvbmVudC5odG1sJyk7XG4vLyB3ZWJwYWNrMl9cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGltZS1waWNrZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vdGltZS1waWNrZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90aW1lLXBpY2tlci5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgVGltZVBpY2tlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIGluaXRUaW1lOiBhbnk7XG4gIEBJbnB1dCgpIHNob3dTZWNvbmQgPSB0cnVlO1xuICBASW5wdXQoKSB2aWV3Rm9ybWF0ID0gJ2hoOm1tIEEnO1xuICBASW5wdXQoKSB1c2UxMkhvdXIgPSBmYWxzZTtcbiAgQElucHV0KCkgcmV0dXJuT2JqZWN0ID0gJ2pzJztcbiAgQE91dHB1dCgpIG9uU2VsZWN0VGltZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCkgb25UaW1lUGlja2VyQ2FuY2VsID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuICBob3VyRm9ybWF0ID0gJ0hIJztcbiAgcHVibGljIHRpbWU6IE1vbWVudDtcblxuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMudXNlMTJIb3VyKSB7XG4gICAgICB0aGlzLmhvdXJGb3JtYXQgPSAnaGgnO1xuICAgIH1cbiAgICB0aGlzLnRpbWUgPSB0aGlzLmluaXRUaW1lXG4gICAgICA/IG1vbWVudCh0aGlzLmluaXRUaW1lLCB0aGlzLnZpZXdGb3JtYXQpXG4gICAgICA6IG1vbWVudCgpO1xuXG4gICAgLy8gY2hlY2sgaWYgdGhlIGlucHV0IGluaXREYXRlIGhhcyB2YWx1ZVxuICAgIGlmICh0aGlzLmluaXRUaW1lKSB7XG4gICAgICB0aGlzLnRpbWUgPVxuICAgICAgICB0aGlzLnJldHVybk9iamVjdCA9PT0gJ3N0cmluZydcbiAgICAgICAgICA/IG1vbWVudCh0aGlzLmluaXRUaW1lLCB0aGlzLnZpZXdGb3JtYXQpXG4gICAgICAgICAgOiBtb21lbnQodGhpcy5pbml0VGltZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudGltZSA9IG1vbWVudCgpO1xuICAgIH1cbiAgfVxuXG4gIGluY3JlYXNlSG91cigpOiB2b2lkIHtcbiAgICB0aGlzLnRpbWUgPSB0aGlzLnRpbWUuY2xvbmUoKS5hZGQoMSwgJ2gnKTtcbiAgfVxuXG4gIGRlY3JlYXNlSG91cigpOiB2b2lkIHtcbiAgICB0aGlzLnRpbWUgPSB0aGlzLnRpbWUuY2xvbmUoKS5zdWJ0cmFjdCgxLCAnaCcpO1xuICB9XG5cbiAgaW5jcmVhc2VNaW51dGUoKSB7XG4gICAgdGhpcy50aW1lID0gdGhpcy50aW1lLmNsb25lKCkuYWRkKDEsICdtJyk7XG4gIH1cblxuICBkZWNyZWFzZU1pbnV0ZSgpIHtcbiAgICB0aGlzLnRpbWUgPSB0aGlzLnRpbWUuY2xvbmUoKS5zdWJ0cmFjdCgxLCAnbScpO1xuICB9XG5cbiAgaW5jcmVhc2VTZWNvbmQoKTogdm9pZCB7XG4gICAgdGhpcy50aW1lID0gdGhpcy50aW1lLmNsb25lKCkuYWRkKDEsICdzJyk7XG4gIH1cblxuICBkZWNyZWFzZVNlY29uZCgpOiB2b2lkIHtcbiAgICB0aGlzLnRpbWUgPSB0aGlzLnRpbWUuY2xvbmUoKS5zdWJ0cmFjdCgxLCAncycpO1xuICB9XG5cbiAgc2VsZWN0VGltZSgpOiB2b2lkIHtcbiAgICBjb25zdCBzZWxlY3RUaW1lID0gdGhpcy5wYXJzZVRvUmV0dXJuT2JqZWN0VHlwZSh0aGlzLnRpbWUpO1xuICAgIHRoaXMub25TZWxlY3RUaW1lLmVtaXQoc2VsZWN0VGltZSk7XG4gICAgdGhpcy5jYW5jZWxUaW1lUGlja2VyKCk7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgc2VsZWN0Tm93KCk6IHZvaWQge1xuICAgIGNvbnN0IHNlbGVjdFRpbWUgPSB0aGlzLnBhcnNlVG9SZXR1cm5PYmplY3RUeXBlKG1vbWVudCgpKTtcbiAgICB0aGlzLm9uU2VsZWN0VGltZS5lbWl0KHNlbGVjdFRpbWUpO1xuICAgIHRoaXMuY2FuY2VsVGltZVBpY2tlcigpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNsZWFyVGltZSgpOiB2b2lkIHtcbiAgICB0aGlzLm9uU2VsZWN0VGltZS5lbWl0KG51bGwpO1xuICAgIHRoaXMuY2FuY2VsVGltZVBpY2tlcigpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNhbmNlbFRpbWVQaWNrZXIoKTogdm9pZCB7XG4gICAgdGhpcy5vblRpbWVQaWNrZXJDYW5jZWwuZW1pdChmYWxzZSk7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgcHJvdGVjdGVkIHBhcnNlVG9SZXR1cm5PYmplY3RUeXBlKHRpbWU6IE1vbWVudCk6IGFueSB7XG4gICAgc3dpdGNoICh0aGlzLnJldHVybk9iamVjdCkge1xuICAgICAgY2FzZSAnanMnOlxuICAgICAgICByZXR1cm4gdGltZS50b0RhdGUoKTtcblxuICAgICAgY2FzZSAnc3RyaW5nJzpcbiAgICAgICAgcmV0dXJuIHRpbWUuZm9ybWF0KHRoaXMudmlld0Zvcm1hdCk7XG5cbiAgICAgIGNhc2UgJ21vbWVudCc6XG4gICAgICAgIHJldHVybiB0aW1lO1xuXG4gICAgICBjYXNlICdqc29uJzpcbiAgICAgICAgcmV0dXJuIHRpbWUudG9KU09OKCk7XG5cbiAgICAgIGNhc2UgJ2FycmF5JzpcbiAgICAgICAgcmV0dXJuIHRpbWUudG9BcnJheSgpO1xuXG4gICAgICBjYXNlICdpc28nOlxuICAgICAgICByZXR1cm4gdGltZS50b0lTT1N0cmluZygpO1xuXG4gICAgICBjYXNlICdvYmplY3QnOlxuICAgICAgICByZXR1cm4gdGltZS50b09iamVjdCgpO1xuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gdGltZTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,110 @@
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\n [srcUrl]=\"pdfUrl\"\n [formEntry]=\"formEntryMode\"\n [(ngModel)]=\"fileUuid\"\n (_onClear)=\"clearValue()\"\n (uploadData)=\"onFileChange($event)\"\n>\n</lib-file-uploader>\n<div *ngIf=\"fileUuid\">\n <img\n *ngIf=\"!pdfUploaded\"\n class=\"img-responsive\"\n [src]=\"fileUuid | secure: this.dataSource.fetchFile\"\n alt=\"\"\n />\n</div>\n",
88
+ providers: [
89
+ {
90
+ provide: NG_VALUE_ACCESSOR,
91
+ useExisting: forwardRef(() => FileUploadComponent),
92
+ multi: true
93
+ }
94
+ ],
95
+ styles: [`
96
+ img {
97
+ margin-left: auto;
98
+ margin-right: auto;
99
+ display: block;
100
+ }
101
+ `]
102
+ },] }
103
+ ];
104
+ FileUploadComponent.ctorParameters = () => [
105
+ { type: Renderer2 }
106
+ ];
107
+ FileUploadComponent.propDecorators = {
108
+ dataSource: [{ type: Input }]
109
+ };
110
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWZvcm1lbnRyeS9zcmMvY29tcG9uZW50cy9maWxlLXVwbG9hZC9maWxlLXVwbG9hZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUF1QnpFLE1BQU0sT0FBTyxtQkFBbUI7SUFlOUIsWUFBb0IsUUFBbUI7UUFBbkIsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQWR2QyxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLGFBQVEsR0FBRyxJQUFJLENBQUM7UUFDaEIsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFDcEIsa0JBQWEsR0FBRyxJQUFJLENBQUM7UUErRHJCLGlEQUFpRDtRQUNqRCx1REFBdUQ7UUFDdkQsNkNBQTZDO1FBQ3JDLG9CQUFlLEdBQUcsQ0FBQyxDQUFNLEVBQUUsRUFBRSxHQUFFLENBQUMsQ0FBQztJQXZEQyxDQUFDO0lBUjNDLElBQ1csVUFBVTtRQUNuQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDMUIsQ0FBQztJQUNELElBQVcsVUFBVSxDQUFDLENBQWE7UUFDakMsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUlELFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDakIsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1NBQ3RCO0lBQ0gsQ0FBQztJQUNNLFlBQVksQ0FBQyxRQUFRO1FBQzFCLEtBQUssTUFBTSxJQUFJLElBQUksUUFBUSxFQUFFO1lBQzNCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDbkI7SUFDSCxDQUFDO0lBQ0QsTUFBTSxDQUFDLElBQUk7UUFDVCxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDbkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7WUFDdEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUN4QyxDQUFDLE1BQU0sRUFBRSxFQUFFO2dCQUNULElBQUksQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQztnQkFDN0IsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO2dCQUNyQixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDcEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7WUFDekIsQ0FBQyxFQUNELENBQUMsS0FBSyxFQUFFLEVBQUU7Z0JBQ1IsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7WUFDekIsQ0FBQyxDQUNGLENBQUM7U0FDSDtJQUNILENBQUM7SUFFRCxpREFBaUQ7SUFDMUMsVUFBVSxDQUFDLEtBQVU7UUFDMUIsSUFBSSxLQUFLLEtBQUssSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUMzQixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztZQUN0QixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7U0FDdEI7SUFDSCxDQUFDO0lBQ0QsMERBQTBEO0lBQzFELG1EQUFtRDtJQUM1QyxnQkFBZ0IsQ0FBQyxFQUFPO1FBQzdCLElBQUksQ0FBQyxlQUFlLEdBQUcsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxpQ0FBaUM7SUFDMUIsaUJBQWlCLEtBQUksQ0FBQztJQUM3QixrQ0FBa0M7SUFDbEMsUUFBUSxDQUFDLEtBQUs7UUFDWixJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUMvQixRQUFRO1FBQ1Isa0JBQWtCO1FBQ2xCLG1DQUFtQztJQUNyQyxDQUFDO0lBT00sVUFBVTtRQUNmLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ25CLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFTSxTQUFTLENBQUMsUUFBZ0I7UUFDL0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQzVELElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLHFDQUFxQyxDQUFDO1FBQzNELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNNLGFBQWE7UUFDbEIsTUFBTSxFQUFFLEdBQUcsT0FBTyxDQUFDO1FBQ25CLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7WUFDbkMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDL0I7SUFDSCxDQUFDOzs7WUE5R0YsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxpQkFBaUI7Z0JBQzNCLHlZQUF5QztnQkFDekMsU0FBUyxFQUFFO29CQUNUO3dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7d0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsbUJBQW1CLENBQUM7d0JBQ2xELEtBQUssRUFBRSxJQUFJO3FCQUNaO2lCQUNGO3lCQUVDOzs7Ozs7S0FNQzthQUVKOzs7WUF2QjhDLFNBQVM7Ozt5QkErQnJELEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIGZvcndhcmRSZWYsIFJlbmRlcmVyMiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBEYXRhU291cmNlIH0gZnJvbSAnLi4vLi4vZm9ybS1lbnRyeS9xdWVzdGlvbi1tb2RlbHMvaW50ZXJmYWNlcy9kYXRhLXNvdXJjZSc7XG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtZmlsZS11cGxvYWQnLFxuICB0ZW1wbGF0ZVVybDogJ2ZpbGUtdXBsb2FkLmNvbXBvbmVudC5odG1sJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBGaWxlVXBsb2FkQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdLFxuICBzdHlsZXM6IFtcbiAgICBgXG4gICAgICBpbWcge1xuICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cbiAgICBgXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgRmlsZVVwbG9hZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICB1cGxvYWRpbmcgPSBmYWxzZTtcbiAgZmlsZVV1aWQgPSBudWxsO1xuICBwZGZVcGxvYWRlZCA9IGZhbHNlO1xuICBmb3JtRW50cnlNb2RlID0gdHJ1ZTtcbiAgcGRmVXJsOiBzdHJpbmc7XG4gIHByaXZhdGUgX2RhdGFTb3VyY2U6IERhdGFTb3VyY2U7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBnZXQgZGF0YVNvdXJjZSgpOiBEYXRhU291cmNlIHtcbiAgICByZXR1cm4gdGhpcy5fZGF0YVNvdXJjZTtcbiAgfVxuICBwdWJsaWMgc2V0IGRhdGFTb3VyY2UodjogRGF0YVNvdXJjZSkge1xuICAgIHRoaXMuX2RhdGFTb3VyY2UgPSB2O1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICh0aGlzLmZpbGVVdWlkKSB7XG4gICAgICB0aGlzLmNoZWNrRmlsZVR5cGUoKTtcbiAgICB9XG4gIH1cbiAgcHVibGljIG9uRmlsZUNoYW5nZShmaWxlTGlzdCkge1xuICAgIGZvciAoY29uc3QgZmlsZSBvZiBmaWxlTGlzdCkge1xuICAgICAgdGhpcy51cGxvYWQoZmlsZSk7XG4gICAgfVxuICB9XG4gIHVwbG9hZChkYXRhKSB7XG4gICAgaWYgKHRoaXMuZGF0YVNvdXJjZSkge1xuICAgICAgdGhpcy51cGxvYWRpbmcgPSB0cnVlO1xuICAgICAgdGhpcy5kYXRhU291cmNlLmZpbGVVcGxvYWQoZGF0YSkuc3Vic2NyaWJlKFxuICAgICAgICAocmVzdWx0KSA9PiB7XG4gICAgICAgICAgdGhpcy5maWxlVXVpZCA9IHJlc3VsdC5pbWFnZTtcbiAgICAgICAgICB0aGlzLmNoZWNrRmlsZVR5cGUoKTtcbiAgICAgICAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSh0aGlzLmZpbGVVdWlkKTtcbiAgICAgICAgICB0aGlzLnVwbG9hZGluZyA9IGZhbHNlO1xuICAgICAgICB9LFxuICAgICAgICAoZXJyb3IpID0+IHtcbiAgICAgICAgICB0aGlzLnVwbG9hZGluZyA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIC8vIHRoaXMgaXMgdGhlIGluaXRpYWwgdmFsdWUgc2V0IHRvIHRoZSBjb21wb25lbnRcbiAgcHVibGljIHdyaXRlVmFsdWUodmFsdWU6IGFueSkge1xuICAgIGlmICh2YWx1ZSAhPT0gdGhpcy5maWxlVXVpZCkge1xuICAgICAgdGhpcy5maWxlVXVpZCA9IHZhbHVlO1xuICAgICAgdGhpcy5jaGVja0ZpbGVUeXBlKCk7XG4gICAgfVxuICB9XG4gIC8vIHJlZ2lzdGVycyAnZm4nIHRoYXQgd2lsbCBiZSBmaXJlZCB3aGVuIGNoYW5nZXMgYXJlIG1hZGVcbiAgLy8gdGhpcyBpcyBob3cgd2UgZW1pdCB0aGUgY2hhbmdlcyBiYWNrIHRvIHRoZSBmb3JtXG4gIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpIHtcbiAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSA9IGZuO1xuICB9XG5cbiAgLy8gbm90IHVzZWQsIHVzZWQgZm9yIHRvdWNoIGlucHV0XG4gIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZCgpIHt9XG4gIC8vIGNoYW5nZSBldmVudHMgZnJvbSB0aGUgdGV4dGFyZWFcbiAgb25DaGFuZ2UoZXZlbnQpIHtcbiAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZShldmVudC5pZCk7XG4gICAgLy8gLi4uLi5cbiAgICAvLyB1cGRhdGUgdGhlIGZvcm1cbiAgICAvLyB0aGlzLnByb3BhZ2F0ZUNoYW5nZSh0aGlzLmRhdGEpO1xuICB9XG5cbiAgLy8gdGhlIG1ldGhvZCBzZXQgaW4gcmVnaXN0ZXJPbkNoYW5nZSwgaXQgaXMganVzdFxuICAvLyBhIHBsYWNlaG9sZGVyIGZvciBhIG1ldGhvZCB0aGF0IHRha2VzIG9uZSBwYXJhbWV0ZXIsXG4gIC8vIHdlIHVzZSBpdCB0byBlbWl0IGNoYW5nZXMgYmFjayB0byB0aGUgZm9ybVxuICBwcml2YXRlIHByb3BhZ2F0ZUNoYW5nZSA9IChfOiBhbnkpID0+IHt9O1xuXG4gIHB1YmxpYyBjbGVhclZhbHVlKCkge1xuICAgIHRoaXMuZmlsZVV1aWQgPSBudWxsO1xuICAgIHRoaXMucGRmVXBsb2FkZWQgPSBmYWxzZTtcbiAgICB0aGlzLnBkZlVybCA9IG51bGw7XG4gICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UodGhpcy5maWxlVXVpZCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0UGRmVXJsKGZpbGVVdWlkOiBzdHJpbmcpIHtcbiAgICB0aGlzLmRhdGFTb3VyY2UuZmV0Y2hGaWxlKGZpbGVVdWlkLCAncGRmJykuc3Vic2NyaWJlKChmaWxlKSA9PiB7XG4gICAgICB0aGlzLnBkZlVwbG9hZGVkID0gdHJ1ZTtcbiAgICAgIHRoaXMucGRmVXJsID0gZmlsZS5jaGFuZ2luZ1RoaXNCcmVha3NBcHBsaWNhdGlvblNlY3VyaXR5O1xuICAgIH0pO1xuICB9XG4gIHB1YmxpYyBjaGVja0ZpbGVUeXBlKCkge1xuICAgIGNvbnN0IHJlID0gL3BkZi9naTtcbiAgICBpZiAodGhpcy5maWxlVXVpZC5zZWFyY2gocmUpICE9PSAtMSkge1xuICAgICAgdGhpcy5nZXRQZGZVcmwodGhpcy5maWxlVXVpZCk7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -0,0 +1,24 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { FormsModule } from '@angular/forms';
4
+ import { SharedModule } from '../../shared.module';
5
+ import { FileUploadComponent } from './file-upload.component';
6
+ import { WebcamModule } from 'ngx-webcam';
7
+ import { NgxFileUploaderModule } from 'ngx-file-uploader';
8
+ export class RemoteFileUploadModule {
9
+ }
10
+ RemoteFileUploadModule.decorators = [
11
+ { type: NgModule, args: [{
12
+ imports: [
13
+ CommonModule,
14
+ FormsModule,
15
+ SharedModule,
16
+ WebcamModule,
17
+ NgxFileUploaderModule
18
+ ],
19
+ exports: [FileUploadComponent],
20
+ declarations: [FileUploadComponent],
21
+ providers: []
22
+ },] }
23
+ ];
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWZvcm1lbnRyeS9zcmMvY29tcG9uZW50cy9maWxlLXVwbG9hZC9maWxlLXVwbG9hZC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBYzFELE1BQU0sT0FBTyxzQkFBc0I7OztZQVpsQyxRQUFRLFNBQUM7Z0JBQ1IsT0FBTyxFQUFFO29CQUNQLFlBQVk7b0JBQ1osV0FBVztvQkFDWCxZQUFZO29CQUNaLFlBQVk7b0JBQ1oscUJBQXFCO2lCQUN0QjtnQkFDRCxPQUFPLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQztnQkFDOUIsWUFBWSxFQUFFLENBQUMsbUJBQW1CLENBQUM7Z0JBQ25DLFNBQVMsRUFBRSxFQUFFO2FBQ2QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IFNoYXJlZE1vZHVsZSB9IGZyb20gJy4uLy4uL3NoYXJlZC5tb2R1bGUnO1xuaW1wb3J0IHsgRmlsZVVwbG9hZENvbXBvbmVudCB9IGZyb20gJy4vZmlsZS11cGxvYWQuY29tcG9uZW50JztcbmltcG9ydCB7IFdlYmNhbU1vZHVsZSB9IGZyb20gJ25neC13ZWJjYW0nO1xuaW1wb3J0IHsgTmd4RmlsZVVwbG9hZGVyTW9kdWxlIH0gZnJvbSAnbmd4LWZpbGUtdXBsb2FkZXInO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIFNoYXJlZE1vZHVsZSxcbiAgICBXZWJjYW1Nb2R1bGUsXG4gICAgTmd4RmlsZVVwbG9hZGVyTW9kdWxlXG4gIF0sXG4gIGV4cG9ydHM6IFtGaWxlVXBsb2FkQ29tcG9uZW50XSxcbiAgZGVjbGFyYXRpb25zOiBbRmlsZVVwbG9hZENvbXBvbmVudF0sXG4gIHByb3ZpZGVyczogW11cbn0pXG5leHBvcnQgY2xhc3MgUmVtb3RlRmlsZVVwbG9hZE1vZHVsZSB7fVxuIl19
@@ -0,0 +1,102 @@
1
+ /* eslint-disable @angular-eslint/component-class-suffix */
2
+ import { Pipe, WrappedValue, ChangeDetectorRef } from '@angular/core';
3
+ import { BehaviorSubject } from 'rxjs';
4
+ import { DomSanitizer } from '@angular/platform-browser';
5
+ // Using similarity from AsyncPipe to avoid having to pipe |secure|async in HTML.
6
+ // eslint-disable-next-line @angular-eslint/use-pipe-transform-interface
7
+ export class SecurePipe {
8
+ constructor(_ref, sanitizer) {
9
+ this._ref = _ref;
10
+ this.sanitizer = sanitizer;
11
+ this._latestValue = null;
12
+ this._latestReturnedValue = null;
13
+ this._subscription = null;
14
+ this._obj = null;
15
+ this._result = new BehaviorSubject(null);
16
+ this.result = this._result.asObservable();
17
+ this._internalSubscription = null;
18
+ }
19
+ ngOnDestroy() {
20
+ if (this._subscription) {
21
+ this._dispose();
22
+ }
23
+ }
24
+ transform(url, getfile) {
25
+ this.getfile = getfile;
26
+ const obj = this.internalTransform(url);
27
+ return this.asyncTrasnform(obj);
28
+ }
29
+ internalTransform(url) {
30
+ if (!url) {
31
+ return this.result;
32
+ }
33
+ if (this.previousUrl !== url) {
34
+ this.previousUrl = url;
35
+ this._internalSubscription = this.getfile(url).subscribe((m) => {
36
+ const sanitized = this.sanitizer.bypassSecurityTrustUrl(m);
37
+ this._result.next(sanitized);
38
+ });
39
+ }
40
+ return this.result;
41
+ }
42
+ asyncTrasnform(obj) {
43
+ if (!this._obj) {
44
+ if (obj) {
45
+ this._subscribe(obj);
46
+ }
47
+ this._latestReturnedValue = this._latestValue;
48
+ return this._latestValue;
49
+ }
50
+ if (obj !== this._obj) {
51
+ this._dispose();
52
+ return this.asyncTrasnform(obj);
53
+ }
54
+ if (this._latestValue === this._latestReturnedValue) {
55
+ return this._latestReturnedValue;
56
+ }
57
+ this._latestReturnedValue = this._latestValue;
58
+ return WrappedValue.wrap(this._latestValue);
59
+ }
60
+ _subscribe(obj) {
61
+ const _this = this;
62
+ this._obj = obj;
63
+ this._subscription = obj.subscribe({
64
+ next: function (value) {
65
+ return _this._updateLatestValue(obj, value);
66
+ },
67
+ error: (e) => {
68
+ throw e;
69
+ }
70
+ });
71
+ }
72
+ _dispose() {
73
+ if (this._subscription) {
74
+ this._subscription.unsubscribe();
75
+ }
76
+ if (this._internalSubscription) {
77
+ this._internalSubscription.unsubscribe();
78
+ }
79
+ this._internalSubscription = null;
80
+ this._latestValue = null;
81
+ this._latestReturnedValue = null;
82
+ this._subscription = null;
83
+ this._obj = null;
84
+ }
85
+ _updateLatestValue(async, value) {
86
+ if (async === this._obj) {
87
+ this._latestValue = value;
88
+ this._ref.markForCheck();
89
+ }
90
+ }
91
+ }
92
+ SecurePipe.decorators = [
93
+ { type: Pipe, args: [{
94
+ name: 'secure',
95
+ pure: false
96
+ },] }
97
+ ];
98
+ SecurePipe.ctorParameters = () => [
99
+ { type: ChangeDetectorRef },
100
+ { type: DomSanitizer }
101
+ ];
102
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdXJlLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtZm9ybWVudHJ5L3NyYy9jb21wb25lbnRzL2ZpbGUtdXBsb2FkL3NlY3VyZS5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDJEQUEyRDtBQUMzRCxPQUFPLEVBQ0wsSUFBSSxFQUdKLFlBQVksRUFDWixpQkFBaUIsRUFDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUE0QixlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFakUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRXpELGlGQUFpRjtBQUNqRix3RUFBd0U7QUFLeEUsTUFBTSxPQUFPLFVBQVU7SUFXckIsWUFDVSxJQUF1QixFQUN2QixTQUF1QjtRQUR2QixTQUFJLEdBQUosSUFBSSxDQUFtQjtRQUN2QixjQUFTLEdBQVQsU0FBUyxDQUFjO1FBWnpCLGlCQUFZLEdBQVEsSUFBSSxDQUFDO1FBQ3pCLHlCQUFvQixHQUFRLElBQUksQ0FBQztRQUNqQyxrQkFBYSxHQUFpQixJQUFJLENBQUM7UUFDbkMsU0FBSSxHQUFvQixJQUFJLENBQUM7UUFHN0IsWUFBTyxHQUF5QixJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxRCxXQUFNLEdBQW9CLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDdEQsMEJBQXFCLEdBQWlCLElBQUksQ0FBQztJQUtoRCxDQUFDO0lBRUosV0FBVztRQUNULElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUN0QixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7U0FDakI7SUFDSCxDQUFDO0lBRUQsU0FBUyxDQUFDLEdBQVcsRUFBRSxPQUFPO1FBQzVCLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ3ZCLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxpQkFBaUIs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LElBQUksRUFBRTtZQUN2QixJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztZQUMxQixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1NBQzFCO0lBQ0gsQ0FBQzs7O1lBckdGLElBQUksU0FBQztnQkFDSixJQUFJLEVBQUUsUUFBUTtnQkFDZCxJQUFJLEVBQUUsS0FBSzthQUNaOzs7WUFYQyxpQkFBaUI7WUFJVixZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1jbGFzcy1zdWZmaXggKi9cbmltcG9ydCB7XG4gIFBpcGUsXG4gIFBpcGVUcmFuc2Zvcm0sXG4gIE9uRGVzdHJveSxcbiAgV3JhcHBlZFZhbHVlLFxuICBDaGFuZ2VEZXRlY3RvclJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiwgT2JzZXJ2YWJsZSwgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IERvbVNhbml0aXplciB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuXG4vLyBVc2luZyBzaW1pbGFyaXR5IGZyb20gQXN5bmNQaXBlIHRvIGF2b2lkIGhhdmluZyB0byBwaXBlIHxzZWN1cmV8YXN5bmMgaW4gSFRNTC5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvdXNlLXBpcGUtdHJhbnNmb3JtLWludGVyZmFjZVxuQFBpcGUoe1xuICBuYW1lOiAnc2VjdXJlJyxcbiAgcHVyZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgU2VjdXJlUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0sIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgX2xhdGVzdFZhbHVlOiBhbnkgPSBudWxsO1xuICBwcml2YXRlIF9sYXRlc3RSZXR1cm5lZFZhbHVlOiBhbnkgPSBudWxsO1xuICBwcml2YXRlIF9zdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiA9IG51bGw7XG4gIHByaXZhdGUgX29iajogT2JzZXJ2YWJsZTxhbnk+ID0gbnVsbDtcbiAgcHJpdmF0ZSBnZXRmaWxlO1xuICBwcml2YXRlIHByZXZpb3VzVXJsOiBzdHJpbmc7XG4gIHByaXZhdGUgX3Jlc3VsdDogQmVoYXZpb3JTdWJqZWN0PGFueT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KG51bGwpO1xuICBwcml2YXRlIHJlc3VsdDogT2JzZXJ2YWJsZTxhbnk+ID0gdGhpcy5fcmVzdWx0LmFzT2JzZXJ2YWJsZSgpO1xuICBwcml2YXRlIF9pbnRlcm5hbFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uID0gbnVsbDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9yZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgc2FuaXRpemVyOiBEb21TYW5pdGl6ZXJcbiAgKSB7fVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9zdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMuX2Rpc3Bvc2UoKTtcbiAgICB9XG4gIH1cblxuICB0cmFuc2Zvcm0odXJsOiBzdHJpbmcsIGdldGZpbGUpOiBhbnkge1xuICAgIHRoaXMuZ2V0ZmlsZSA9IGdldGZpbGU7XG4gICAgY29uc3Qgb2JqID0gdGhpcy5pbnRlcm5hbFRyYW5zZm9ybSh1cmwpO1xuICAgIHJldHVybiB0aGlzLmFzeW5jVHJhc25mb3JtKG9iaik7XG4gIH1cblxuICBwcml2YXRlIGludGVybmFsVHJhbnNmb3JtKHVybDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBpZiAoIXVybCkge1xuICAgICAgcmV0dXJuIHRoaXMucmVzdWx0O1xuICAgIH1cblxuICAgIGlmICh0aGlzLnByZXZpb3VzVXJsICE9PSB1cmwpIHtcbiAgICAgIHRoaXMucHJldmlvdXNVcmwgPSB1cmw7XG4gICAgICB0aGlzLl9pbnRlcm5hbFN1YnNjcmlwdGlvbiA9IHRoaXMuZ2V0ZmlsZSh1cmwpLnN1YnNjcmliZSgobSkgPT4ge1xuICAgICAgICBjb25zdCBzYW5pdGl6ZWQgPSB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0VXJsKG0pO1xuICAgICAgICB0aGlzLl9yZXN1bHQubmV4dChzYW5pdGl6ZWQpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMucmVzdWx0O1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luY1RyYXNuZm9ybShvYmo6IE9ic2VydmFibGU8YW55Pik6IGFueSB7XG4gICAgaWYgKCF0aGlzLl9vYmopIHtcbiAgICAgIGlmIChvYmopIHtcbiAgICAgICAgdGhpcy5fc3Vic2NyaWJlKG9iaik7XG4gICAgICB9XG4gICAgICB0aGlzLl9sYXRlc3RSZXR1cm5lZFZhbHVlID0gdGhpcy5fbGF0ZXN0VmFsdWU7XG4gICAgICByZXR1cm4gdGhpcy5fbGF0ZXN0VmFsdWU7XG4gICAgfVxuICAgIGlmIChvYmogIT09IHRoaXMuX29iaikge1xuICAgICAgdGhpcy5fZGlzcG9zZSgpO1xuICAgICAgcmV0dXJuIHRoaXMuYXN5bmNUcmFzbmZvcm0ob2JqKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuX2xhdGVzdFZhbHVlID09PSB0aGlzLl9sYXRlc3RSZXR1cm5lZFZhbHVlKSB7XG4gICAgICByZXR1cm4gdGhpcy5fbGF0ZXN0UmV0dXJuZWRWYWx1ZTtcbiAgICB9XG4gICAgdGhpcy5fbGF0ZXN0UmV0dXJuZWRWYWx1ZSA9IHRoaXMuX2xhdGVzdFZhbHVlO1xuICAgIHJldHVybiBXcmFwcGVkVmFsdWUud3JhcCh0aGlzLl9sYXRlc3RWYWx1ZSk7XG4gIH1cblxuICBwcml2YXRlIF9zdWJzY3JpYmUob2JqOiBPYnNlcnZhYmxlPGFueT4pIHtcbiAgICBjb25zdCBfdGhpcyA9IHRoaXM7XG4gICAgdGhpcy5fb2JqID0gb2JqO1xuXG4gICAgdGhpcy5fc3Vic2NyaXB0aW9uID0gb2JqLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIF90aGlzLl91cGRhdGVMYXRlc3RWYWx1ZShvYmosIHZhbHVlKTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogKGU6IGFueSkgPT4ge1xuICAgICAgICB0aHJvdyBlO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfZGlzcG9zZSgpIHtcbiAgICBpZiAodGhpcy5fc3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLl9zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuX2ludGVybmFsU3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLl9pbnRlcm5hbFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIHRoaXMuX2ludGVybmFsU3Vic2NyaXB0aW9uID0gbnVsbDtcbiAgICB0aGlzLl9sYXRlc3RWYWx1ZSA9IG51bGw7XG4gICAgdGhpcy5fbGF0ZXN0UmV0dXJuZWRWYWx1ZSA9IG51bGw7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9uID0gbnVsbDtcbiAgICB0aGlzLl9vYmogPSBudWxsO1xuICB9XG5cbiAgcHJpdmF0ZSBfdXBkYXRlTGF0ZXN0VmFsdWUoYXN5bmM6IGFueSwgdmFsdWU6IE9iamVjdCkge1xuICAgIGlmIChhc3luYyA9PT0gdGhpcy5fb2JqKSB7XG4gICAgICB0aGlzLl9sYXRlc3RWYWx1ZSA9IHZhbHVlO1xuICAgICAgdGhpcy5fcmVmLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -0,0 +1,55 @@
1
+ /* eslint-disable @angular-eslint/component-class-suffix, @angular-eslint/directive-class-suffix */
2
+ import { Directive, HostBinding, Input } from '@angular/core';
3
+ /**
4
+ * A directive for applying styling to an input element.
5
+ *
6
+ * Example:
7
+ *
8
+ * ```html
9
+ * <input ibmText/>
10
+ * ```
11
+ *
12
+ * See the [vanilla carbon docs](http://www.carbondesignsystem.com/components/text-input/code) for more detail.
13
+ */
14
+ export class TextInput {
15
+ constructor() {
16
+ /**
17
+ * `light` or `dark` input theme
18
+ */
19
+ this.theme = 'dark';
20
+ /**
21
+ * Input field render size
22
+ */
23
+ this.size = 'md';
24
+ this.inputClass = true;
25
+ this.invalid = false;
26
+ this.warn = false;
27
+ this.skeleton = false;
28
+ }
29
+ get isSizeXl() {
30
+ return this.size === 'xl';
31
+ }
32
+ get isSizeSm() {
33
+ return this.size === 'sm';
34
+ }
35
+ get isLightTheme() {
36
+ return this.theme === 'light';
37
+ }
38
+ }
39
+ TextInput.decorators = [
40
+ { type: Directive, args: [{
41
+ selector: '[ibmText]'
42
+ },] }
43
+ ];
44
+ TextInput.propDecorators = {
45
+ theme: [{ type: Input }],
46
+ size: [{ type: Input }],
47
+ inputClass: [{ type: HostBinding, args: ['class.bx--text-input',] }],
48
+ isSizeXl: [{ type: HostBinding, args: ['class.bx--text-input--xl',] }],
49
+ isSizeSm: [{ type: HostBinding, args: ['class.bx--text-input--sm',] }],
50
+ invalid: [{ type: HostBinding, args: ['class.bx--text-input--invalid',] }, { type: Input }],
51
+ warn: [{ type: HostBinding, args: ['class.bx--text-input__field-wrapper--warning',] }, { type: Input }],
52
+ skeleton: [{ type: HostBinding, args: ['class.bx--skeleton',] }, { type: Input }],
53
+ isLightTheme: [{ type: HostBinding, args: ['class.bx--text-input--light',] }]
54
+ };
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWZvcm1lbnRyeS9zcmMvY29tcG9uZW50cy9pbnB1dC9pbnB1dC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsbUdBQW1HO0FBQ25HLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU5RDs7Ozs7Ozs7OztHQVVHO0FBSUgsTUFBTSxPQUFPLFNBQVM7SUFIdEI7UUFJRTs7V0FFRztRQUNNLFVBQUssR0FBcUIsTUFBTSxDQUFDO1FBRTFDOztXQUVHO1FBQ00sU0FBSSxHQUF1QixJQUFJLENBQUM7UUFFSixlQUFVLEdBQUcsSUFBSSxDQUFDO1FBT0EsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUd2RSxTQUFJLEdBQUcsS0FBSyxDQUFDO1FBQytCLGFBQVEsR0FBRyxLQUFLLENBQUM7SUFJL0QsQ0FBQztJQWRDLElBQTZDLFFBQVE7UUFDbkQsT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQztJQUM1QixDQUFDO0lBQ0QsSUFBNkMsUUFBUTtRQUNuRCxPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDO0lBQzVCLENBQUM7SUFNRCxJQUFnRCxZQUFZO1FBQzFELE9BQU8sSUFBSSxDQUFDLEtBQUssS0FBSyxPQUFPLENBQUM7SUFDaEMsQ0FBQzs7O1lBNUJGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsV0FBVzthQUN0Qjs7O29CQUtFLEtBQUs7bUJBS0wsS0FBSzt5QkFFTCxXQUFXLFNBQUMsc0JBQXNCO3VCQUNsQyxXQUFXLFNBQUMsMEJBQTBCO3VCQUd0QyxXQUFXLFNBQUMsMEJBQTBCO3NCQUd0QyxXQUFXLFNBQUMsK0JBQStCLGNBQUcsS0FBSzttQkFDbkQsV0FBVyxTQUFDLDhDQUE4QyxjQUMxRCxLQUFLO3VCQUVMLFdBQVcsU0FBQyxvQkFBb0IsY0FBRyxLQUFLOzJCQUN4QyxXQUFXLFNBQUMsNkJBQTZCIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1jbGFzcy1zdWZmaXgsIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtY2xhc3Mtc3VmZml4ICovXG5pbXBvcnQgeyBEaXJlY3RpdmUsIEhvc3RCaW5kaW5nLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKipcbiAqIEEgZGlyZWN0aXZlIGZvciBhcHBseWluZyBzdHlsaW5nIHRvIGFuIGlucHV0IGVsZW1lbnQuXG4gKlxuICogRXhhbXBsZTpcbiAqXG4gKiBgYGBodG1sXG4gKiA8aW5wdXQgaWJtVGV4dC8+XG4gKiBgYGBcbiAqXG4gKiBTZWUgdGhlIFt2YW5pbGxhIGNhcmJvbiBkb2NzXShodHRwOi8vd3d3LmNhcmJvbmRlc2lnbnN5c3RlbS5jb20vY29tcG9uZW50cy90ZXh0LWlucHV0L2NvZGUpIGZvciBtb3JlIGRldGFpbC5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2libVRleHRdJ1xufSlcbmV4cG9ydCBjbGFzcyBUZXh0SW5wdXQge1xuICAvKipcbiAgICogYGxpZ2h0YCBvciBgZGFya2AgaW5wdXQgdGhlbWVcbiAgICovXG4gIEBJbnB1dCgpIHRoZW1lOiAnbGlnaHQnIHwgJ2RhcmsnID0gJ2RhcmsnO1xuXG4gIC8qKlxuICAgKiBJbnB1dCBmaWVsZCByZW5kZXIgc2l6ZVxuICAgKi9cbiAgQElucHV0KCkgc2l6ZTogJ3NtJyB8ICdtZCcgfCAneGwnID0gJ21kJztcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmJ4LS10ZXh0LWlucHV0JykgaW5wdXRDbGFzcyA9IHRydWU7XG4gIEBIb3N0QmluZGluZygnY2xhc3MuYngtLXRleHQtaW5wdXQtLXhsJykgZ2V0IGlzU2l6ZVhsKCkge1xuICAgIHJldHVybiB0aGlzLnNpemUgPT09ICd4bCc7XG4gIH1cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5ieC0tdGV4dC1pbnB1dC0tc20nKSBnZXQgaXNTaXplU20oKSB7XG4gICAgcmV0dXJuIHRoaXMuc2l6ZSA9PT0gJ3NtJztcbiAgfVxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmJ4LS10ZXh0LWlucHV0LS1pbnZhbGlkJykgQElucHV0KCkgaW52YWxpZCA9IGZhbHNlO1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmJ4LS10ZXh0LWlucHV0X19maWVsZC13cmFwcGVyLS13YXJuaW5nJylcbiAgQElucHV0KClcbiAgd2FybiA9IGZhbHNlO1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmJ4LS1za2VsZXRvbicpIEBJbnB1dCgpIHNrZWxldG9uID0gZmFsc2U7XG4gIEBIb3N0QmluZGluZygnY2xhc3MuYngtLXRleHQtaW5wdXQtLWxpZ2h0JykgZ2V0IGlzTGlnaHRUaGVtZSgpIHtcbiAgICByZXR1cm4gdGhpcy50aGVtZSA9PT0gJ2xpZ2h0JztcbiAgfVxufVxuIl19
@@ -0,0 +1,18 @@
1
+ // modules
2
+ import { NgModule } from '@angular/core';
3
+ import { FormsModule } from '@angular/forms';
4
+ import { CommonModule } from '@angular/common';
5
+ // imports
6
+ import { Label } from './label.component';
7
+ import { TextInput } from './input.directive';
8
+ import { TextArea } from './text-area.directive';
9
+ export class InputModule {
10
+ }
11
+ InputModule.decorators = [
12
+ { type: NgModule, args: [{
13
+ declarations: [Label, TextInput, TextArea],
14
+ exports: [Label, TextInput, TextArea],
15
+ imports: [CommonModule, FormsModule]
16
+ },] }
17
+ ];
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWZvcm1lbnRyeS9zcmMvY29tcG9uZW50cy9pbnB1dC9pbnB1dC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsVUFBVTtBQUNWLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxVQUFVO0FBQ1YsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFPakQsTUFBTSxPQUFPLFdBQVc7OztZQUx2QixRQUFRLFNBQUM7Z0JBQ1IsWUFBWSxFQUFFLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxRQUFRLENBQUM7Z0JBQzFDLE9BQU8sRUFBRSxDQUFDLEtBQUssRUFBRSxTQUFTLEVBQUUsUUFBUSxDQUFDO2dCQUNyQyxPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsV0FBVyxDQUFDO2FBQ3JDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gbW9kdWxlc1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuLy8gaW1wb3J0c1xuaW1wb3J0IHsgTGFiZWwgfSBmcm9tICcuL2xhYmVsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUZXh0SW5wdXQgfSBmcm9tICcuL2lucHV0LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBUZXh0QXJlYSB9IGZyb20gJy4vdGV4dC1hcmVhLmRpcmVjdGl2ZSc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW0xhYmVsLCBUZXh0SW5wdXQsIFRleHRBcmVhXSxcbiAgZXhwb3J0czogW0xhYmVsLCBUZXh0SW5wdXQsIFRleHRBcmVhXSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgRm9ybXNNb2R1bGVdXG59KVxuZXhwb3J0IGNsYXNzIElucHV0TW9kdWxlIHt9XG4iXX0=