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

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 (239) hide show
  1. package/components/afe-ng-select.component.d.ts +1 -1
  2. package/components/appointments-overview/appointments-overview.component.d.ts +1 -1
  3. package/components/check-box/checkbox.component.d.ts +1 -1
  4. package/components/custom-component-wrapper/custom-component-wrapper.component.d.ts +1 -1
  5. package/components/custom-control-wrapper/custom-control-wrapper.component.d.ts +1 -1
  6. package/components/date-time-picker/date-picker/date-picker.component.d.ts +1 -1
  7. package/components/date-time-picker/date-time-picker.component.d.ts +1 -1
  8. package/components/date-time-picker/time-picker/time-picker.component.d.ts +1 -1
  9. package/components/file-upload/file-upload.component.d.ts +1 -1
  10. package/components/input/input.directive.d.ts +1 -1
  11. package/components/input/label.component.d.ts +1 -1
  12. package/components/input/text-area.directive.d.ts +1 -1
  13. package/components/ngx-datetime-picker/ngx-datetime-picker.component.d.ts +1 -1
  14. package/components/ngx-pick-datetime/lib/date-time/calendar-body.component.d.ts +1 -1
  15. package/components/ngx-pick-datetime/lib/date-time/calendar-month-view.component.d.ts +1 -1
  16. package/components/ngx-pick-datetime/lib/date-time/calendar-multi-year-view.component.d.ts +1 -1
  17. package/components/ngx-pick-datetime/lib/date-time/calendar-year-view.component.d.ts +1 -1
  18. package/components/ngx-pick-datetime/lib/date-time/calendar.component.d.ts +1 -1
  19. package/components/ngx-pick-datetime/lib/date-time/date-time-inline.component.d.ts +1 -1
  20. package/components/ngx-pick-datetime/lib/date-time/date-time-picker-input.directive.d.ts +1 -1
  21. package/components/ngx-pick-datetime/lib/date-time/date-time-picker-trigger.directive.d.ts +1 -1
  22. package/components/ngx-pick-datetime/lib/date-time/date-time-picker.component.d.ts +1 -1
  23. package/components/ngx-pick-datetime/lib/date-time/timer-box.component.d.ts +1 -1
  24. package/components/ngx-pick-datetime/lib/date-time/timer.component.d.ts +1 -1
  25. package/components/ngx-remote-select/ngx-remote-select.component.d.ts +1 -1
  26. package/components/ngx-tabset/components/ngx-tab-set.component.d.ts +1 -1
  27. package/components/ngx-tabset/components/tab.component.d.ts +1 -1
  28. package/components/ngx-tabset/directives/hover-class.directive.d.ts +1 -1
  29. package/components/number-input/number-input.component.d.ts +1 -1
  30. package/components/radio-button/radio.component.d.ts +1 -1
  31. package/components/select/select.component.d.ts +1 -1
  32. package/components/workspace-launcher/workspace-launcher.component.d.ts +1 -1
  33. package/{esm2020 → esm2022}/components/afe-ng-select.component.mjs +12 -12
  34. package/{esm2020 → esm2022}/components/appointments-overview/appointments-overview.component.mjs +4 -4
  35. package/{esm2020 → esm2022}/components/check-box/checkbox.component.mjs +10 -10
  36. package/{esm2020 → esm2022}/components/check-box/checkbox.module.mjs +5 -5
  37. package/{esm2020 → esm2022}/components/custom-component-wrapper/custom-component-wrapper..module.mjs +5 -5
  38. package/{esm2020 → esm2022}/components/custom-component-wrapper/custom-component-wrapper.component.mjs +4 -4
  39. package/{esm2020 → esm2022}/components/custom-control-wrapper/custom-control-wrapper..module.mjs +5 -5
  40. package/esm2022/components/custom-control-wrapper/custom-control-wrapper.component.mjs +68 -0
  41. package/{esm2020 → esm2022}/components/date-time-picker/date-picker/date-picker.component.mjs +4 -4
  42. package/esm2022/components/date-time-picker/date-time-picker.component.mjs +115 -0
  43. package/{esm2020 → esm2022}/components/date-time-picker/date-time-picker.module.mjs +13 -13
  44. package/{esm2020 → esm2022}/components/date-time-picker/picker-modal/modal.component.mjs +4 -4
  45. package/{esm2020 → esm2022}/components/date-time-picker/pipes/moment.pipe.mjs +4 -4
  46. package/{esm2020 → esm2022}/components/date-time-picker/time-picker/time-picker.component.mjs +4 -4
  47. package/{esm2020 → esm2022}/components/file-upload/file-upload.component.mjs +10 -10
  48. package/{esm2020 → esm2022}/components/file-upload/file-upload.module.mjs +13 -13
  49. package/{esm2020 → esm2022}/components/file-upload/secure.pipe.mjs +4 -4
  50. package/{esm2020 → esm2022}/components/input/input.directive.mjs +4 -4
  51. package/{esm2020 → esm2022}/components/input/input.module.mjs +5 -5
  52. package/esm2022/components/input/label.component.mjs +263 -0
  53. package/{esm2020 → esm2022}/components/input/text-area.directive.mjs +4 -4
  54. package/esm2022/components/ngx-datetime-picker/ngx-datetime-picker.component.mjs +76 -0
  55. package/{esm2020 → esm2022}/components/ngx-datetime-picker/ngx-datetime-picker.module.mjs +13 -13
  56. package/{esm2020 → esm2022}/components/ngx-pick-datetime/lib/date-time/adapter/native-date-time-adapter.class.mjs +4 -4
  57. package/{esm2020 → esm2022}/components/ngx-pick-datetime/lib/date-time/adapter/native-date-time.module.mjs +11 -11
  58. package/{esm2020 → esm2022}/components/ngx-pick-datetime/lib/date-time/calendar-body.component.mjs +4 -4
  59. package/{esm2020 → esm2022}/components/ngx-pick-datetime/lib/date-time/calendar-month-view.component.mjs +4 -4
  60. package/{esm2020 → esm2022}/components/ngx-pick-datetime/lib/date-time/calendar-multi-year-view.component.mjs +4 -4
  61. package/{esm2020 → esm2022}/components/ngx-pick-datetime/lib/date-time/calendar-year-view.component.mjs +4 -4
  62. package/{esm2020 → esm2022}/components/ngx-pick-datetime/lib/date-time/calendar.component.mjs +4 -4
  63. package/{esm2020 → esm2022}/components/ngx-pick-datetime/lib/date-time/date-time-inline.component.mjs +4 -4
  64. package/{esm2020 → esm2022}/components/ngx-pick-datetime/lib/date-time/date-time-picker-container.component.mjs +7 -7
  65. package/{esm2020 → esm2022}/components/ngx-pick-datetime/lib/date-time/date-time-picker-input.directive.mjs +4 -4
  66. package/{esm2020 → esm2022}/components/ngx-pick-datetime/lib/date-time/date-time-picker-intl.service.mjs +4 -4
  67. package/{esm2020 → esm2022}/components/ngx-pick-datetime/lib/date-time/date-time-picker-trigger.directive.mjs +4 -4
  68. package/{esm2020 → esm2022}/components/ngx-pick-datetime/lib/date-time/date-time-picker.component.mjs +4 -4
  69. package/{esm2020 → esm2022}/components/ngx-pick-datetime/lib/date-time/date-time.class.mjs +4 -4
  70. package/{esm2020 → esm2022}/components/ngx-pick-datetime/lib/date-time/date-time.module.mjs +33 -33
  71. package/{esm2020 → esm2022}/components/ngx-pick-datetime/lib/date-time/numberedFixLen.pipe.mjs +4 -4
  72. package/{esm2020 → esm2022}/components/ngx-pick-datetime/lib/date-time/timer-box.component.mjs +4 -4
  73. package/{esm2020 → esm2022}/components/ngx-pick-datetime/lib/date-time/timer.component.mjs +4 -4
  74. package/esm2022/components/ngx-pick-datetime/lib/dialog/dialog-container.component.mjs +243 -0
  75. package/{esm2020 → esm2022}/components/ngx-pick-datetime/lib/dialog/dialog.module.mjs +5 -5
  76. package/{esm2020 → esm2022}/components/ngx-pick-datetime/lib/dialog/dialog.service.mjs +4 -4
  77. package/esm2022/components/ngx-remote-select/ngx-remote-select.component.mjs +132 -0
  78. package/{esm2020 → esm2022}/components/ngx-remote-select/ngx-remote-select.module.mjs +5 -5
  79. package/{esm2020 → esm2022}/components/ngx-tabset/components/ngx-tab-set.component.mjs +4 -4
  80. package/{esm2020 → esm2022}/components/ngx-tabset/components/tab.component.mjs +4 -4
  81. package/{esm2020 → esm2022}/components/ngx-tabset/directives/hover-class.directive.mjs +4 -4
  82. package/{esm2020 → esm2022}/components/ngx-tabset/modules/ngx-tabset.module.mjs +5 -5
  83. package/esm2022/components/number-input/number-input.component.mjs +248 -0
  84. package/{esm2020 → esm2022}/components/number-input/number-input.module.mjs +5 -5
  85. package/{esm2020 → esm2022}/components/number-input/number.directive.mjs +4 -4
  86. package/esm2022/components/radio-button/radio.component.mjs +96 -0
  87. package/{esm2020 → esm2022}/components/radio-button/radio.module.mjs +5 -5
  88. package/{esm2020 → esm2022}/components/select/optgroup.directive.mjs +4 -4
  89. package/{esm2020 → esm2022}/components/select/option.directive.mjs +4 -4
  90. package/esm2022/components/select/select.component.mjs +182 -0
  91. package/{esm2020 → esm2022}/components/select/select.module.mjs +5 -5
  92. package/{esm2020 → esm2022}/components/workspace-launcher/workspace-launcher.component.mjs +4 -4
  93. package/{esm2020 → esm2022}/components/workspace-launcher/workspace-launcher.module.mjs +5 -5
  94. package/{esm2020 → esm2022}/form-entry/data-sources/data-sources.mjs +4 -4
  95. package/{esm2020 → esm2022}/form-entry/directives/collapse.directive.mjs +4 -4
  96. package/{esm2020 → esm2022}/form-entry/directives/historical-value.directive.mjs +4 -4
  97. package/{esm2020 → esm2022}/form-entry/error-renderer/error-renderer.component.mjs +4 -4
  98. package/{esm2020 → esm2022}/form-entry/expression-runner/expression-runner.mjs +4 -4
  99. package/{esm2020 → esm2022}/form-entry/form-entry.module.mjs +75 -75
  100. package/{esm2020 → esm2022}/form-entry/form-factory/control-relations.factory.mjs +4 -4
  101. package/{esm2020 → esm2022}/form-entry/form-factory/form-control.service.mjs +4 -4
  102. package/{esm2020 → esm2022}/form-entry/form-factory/form.factory.mjs +4 -4
  103. package/{esm2020 → esm2022}/form-entry/form-factory/hiders-disablers.factory.mjs +4 -4
  104. package/{esm2020 → esm2022}/form-entry/form-factory/question.factory.mjs +4 -4
  105. package/{esm2020 → esm2022}/form-entry/form-factory/show-messages.factory.mjs +4 -4
  106. package/{esm2020 → esm2022}/form-entry/form-factory/validation.factory.mjs +4 -4
  107. package/{esm2020 → esm2022}/form-entry/form-renderer/form-renderer.component.mjs +4 -4
  108. package/{esm2020 → esm2022}/form-entry/helpers/historical-expression-helper-service.mjs +4 -4
  109. package/{esm2020 → esm2022}/form-entry/helpers/historical-field-helper-service.mjs +4 -4
  110. package/{esm2020 → esm2022}/form-entry/helpers/js-expression-helper.mjs +4 -4
  111. package/{esm2020 → esm2022}/form-entry/pipes/time-ago.pipe.mjs +4 -4
  112. package/{esm2020 → esm2022}/form-entry/services/debug-mode.service.mjs +4 -4
  113. package/esm2022/form-entry/services/form-errors.service.mjs +21 -0
  114. package/{esm2020 → esm2022}/form-entry/services/form-schema-compiler.service.mjs +4 -4
  115. package/{esm2020 → esm2022}/form-entry/services/historical-encounter-data.service.mjs +4 -4
  116. package/esm2022/form-entry/validators/validations.mjs +5 -0
  117. package/esm2022/form-entry/value-adapters/diagnosis.adapter.mjs +241 -0
  118. package/{esm2020 → esm2022}/form-entry/value-adapters/encounter.adapter.mjs +4 -4
  119. package/{esm2020 → esm2022}/form-entry/value-adapters/obs-adapter-helper.mjs +4 -4
  120. package/{esm2020 → esm2022}/form-entry/value-adapters/obs.adapter.mjs +4 -4
  121. package/{esm2020 → esm2022}/form-entry/value-adapters/order.adapter.mjs +4 -4
  122. package/{esm2020 → esm2022}/form-entry/value-adapters/patient-identifier.adapter.mjs +4 -4
  123. package/{esm2020 → esm2022}/form-entry/value-adapters/person-attribute.adapter.mjs +4 -4
  124. package/{esm2020 → esm2022}/shared.module.mjs +5 -5
  125. package/{fesm2020 → fesm2022}/openmrs-ngx-formentry.mjs +530 -530
  126. package/{fesm2020 → fesm2022}/openmrs-ngx-formentry.mjs.map +1 -1
  127. package/form-entry/directives/collapse.directive.d.ts +1 -1
  128. package/form-entry/directives/historical-value.directive.d.ts +1 -1
  129. package/form-entry/error-renderer/error-renderer.component.d.ts +1 -1
  130. package/form-entry/form-renderer/form-renderer.component.d.ts +1 -1
  131. package/package.json +14 -20
  132. package/esm2020/components/custom-control-wrapper/custom-control-wrapper.component.mjs +0 -68
  133. package/esm2020/components/date-time-picker/date-time-picker.component.mjs +0 -115
  134. package/esm2020/components/input/label.component.mjs +0 -263
  135. package/esm2020/components/ngx-datetime-picker/ngx-datetime-picker.component.mjs +0 -76
  136. package/esm2020/components/ngx-pick-datetime/lib/dialog/dialog-container.component.mjs +0 -243
  137. package/esm2020/components/ngx-remote-select/ngx-remote-select.component.mjs +0 -132
  138. package/esm2020/components/number-input/number-input.component.mjs +0 -248
  139. package/esm2020/components/radio-button/radio.component.mjs +0 -96
  140. package/esm2020/components/select/select.component.mjs +0 -182
  141. package/esm2020/form-entry/services/form-errors.service.mjs +0 -21
  142. package/esm2020/form-entry/validators/validations.mjs +0 -5
  143. package/esm2020/form-entry/value-adapters/diagnosis.adapter.mjs +0 -241
  144. package/fesm2015/openmrs-ngx-formentry.mjs +0 -14935
  145. package/fesm2015/openmrs-ngx-formentry.mjs.map +0 -1
  146. /package/{esm2020 → esm2022}/abstract-controls-extension/afe-control-type.mjs +0 -0
  147. /package/{esm2020 → esm2022}/abstract-controls-extension/afe-form-array.mjs +0 -0
  148. /package/{esm2020 → esm2022}/abstract-controls-extension/afe-form-control.mjs +0 -0
  149. /package/{esm2020 → esm2022}/abstract-controls-extension/afe-form-group.mjs +0 -0
  150. /package/{esm2020 → esm2022}/abstract-controls-extension/control-extensions.mjs +0 -0
  151. /package/{esm2020 → esm2022}/abstract-controls-extension/index.mjs +0 -0
  152. /package/{esm2020 → esm2022}/abstract-controls-extension/value-change.listener.mjs +0 -0
  153. /package/{esm2020 → esm2022}/change-tracking/control-relation.mjs +0 -0
  154. /package/{esm2020 → esm2022}/change-tracking/control-relations.mjs +0 -0
  155. /package/{esm2020 → esm2022}/components/date-time-picker/index.mjs +0 -0
  156. /package/{esm2020 → esm2022}/components/ngx-pick-datetime/lib/date-time/adapter/date-time-adapter.class.mjs +0 -0
  157. /package/{esm2020 → esm2022}/components/ngx-pick-datetime/lib/date-time/adapter/date-time-format.class.mjs +0 -0
  158. /package/{esm2020 → esm2022}/components/ngx-pick-datetime/lib/date-time/adapter/native-date-time-format.class.mjs +0 -0
  159. /package/{esm2020 → esm2022}/components/ngx-pick-datetime/lib/date-time/date-time-picker.animations.mjs +0 -0
  160. /package/{esm2020 → esm2022}/components/ngx-pick-datetime/lib/dialog/dialog-config.class.mjs +0 -0
  161. /package/{esm2020 → esm2022}/components/ngx-pick-datetime/lib/dialog/dialog-ref.class.mjs +0 -0
  162. /package/{esm2020 → esm2022}/components/ngx-pick-datetime/lib/utils/index.mjs +0 -0
  163. /package/{esm2020 → esm2022}/components/ngx-pick-datetime/lib/utils/object.utils.mjs +0 -0
  164. /package/{esm2020 → esm2022}/form-entry/control-alerts/alert-helpers.mjs +0 -0
  165. /package/{esm2020 → esm2022}/form-entry/control-alerts/can-generate-alert.mjs +0 -0
  166. /package/{esm2020 → esm2022}/form-entry/control-calculators/can-calculate.mjs +0 -0
  167. /package/{esm2020 → esm2022}/form-entry/control-hiders-disablers/can-disable.mjs +0 -0
  168. /package/{esm2020 → esm2022}/form-entry/control-hiders-disablers/can-hide.mjs +0 -0
  169. /package/{esm2020 → esm2022}/form-entry/control-hiders-disablers/disabler-helper.mjs +0 -0
  170. /package/{esm2020 → esm2022}/form-entry/control-hiders-disablers/hider-helpers.mjs +0 -0
  171. /package/{esm2020 → esm2022}/form-entry/data-sources/dummy-data-source.mjs +0 -0
  172. /package/{esm2020 → esm2022}/form-entry/directives/collapse-animations.mjs +0 -0
  173. /package/{esm2020 → esm2022}/form-entry/form-factory/form-node.mjs +0 -0
  174. /package/{esm2020 → esm2022}/form-entry/form-factory/form.mjs +0 -0
  175. /package/{esm2020 → esm2022}/form-entry/form-factory/index.mjs +0 -0
  176. /package/{esm2020 → esm2022}/form-entry/helpers/risk-dataset-table.mjs +0 -0
  177. /package/{esm2020 → esm2022}/form-entry/question-models/checkbox.model.mjs +0 -0
  178. /package/{esm2020 → esm2022}/form-entry/question-models/conditional-validation.model.mjs +0 -0
  179. /package/{esm2020 → esm2022}/form-entry/question-models/custom-control-question.model.mjs +0 -0
  180. /package/{esm2020 → esm2022}/form-entry/question-models/date-question.mjs +0 -0
  181. /package/{esm2020 → esm2022}/form-entry/question-models/date-validation.model.mjs +0 -0
  182. /package/{esm2020 → esm2022}/form-entry/question-models/diagnosis-question.mjs +0 -0
  183. /package/{esm2020 → esm2022}/form-entry/question-models/file-upload-question.mjs +0 -0
  184. /package/{esm2020 → esm2022}/form-entry/question-models/group-question.mjs +0 -0
  185. /package/{esm2020 → esm2022}/form-entry/question-models/index.mjs +0 -0
  186. /package/{esm2020 → esm2022}/form-entry/question-models/interfaces/base-options.mjs +0 -0
  187. /package/{esm2020 → esm2022}/form-entry/question-models/interfaces/checkbox-options.mjs +0 -0
  188. /package/{esm2020 → esm2022}/form-entry/question-models/interfaces/data-source.mjs +0 -0
  189. /package/{esm2020 → esm2022}/form-entry/question-models/interfaces/date-question-options.mjs +0 -0
  190. /package/{esm2020 → esm2022}/form-entry/question-models/interfaces/diagnosis-question-options.mjs +0 -0
  191. /package/{esm2020 → esm2022}/form-entry/question-models/interfaces/file-upload-question-options.mjs +0 -0
  192. /package/{esm2020 → esm2022}/form-entry/question-models/interfaces/group-question-options.mjs +0 -0
  193. /package/{esm2020 → esm2022}/form-entry/question-models/interfaces/multi-select-options.mjs +0 -0
  194. /package/{esm2020 → esm2022}/form-entry/question-models/interfaces/nested-questions.mjs +0 -0
  195. /package/{esm2020 → esm2022}/form-entry/question-models/interfaces/radio-button-options.mjs +0 -0
  196. /package/{esm2020 → esm2022}/form-entry/question-models/interfaces/repeating-question-options.mjs +0 -0
  197. /package/{esm2020 → esm2022}/form-entry/question-models/interfaces/select-option.mjs +0 -0
  198. /package/{esm2020 → esm2022}/form-entry/question-models/interfaces/select-question-options.mjs +0 -0
  199. /package/{esm2020 → esm2022}/form-entry/question-models/interfaces/test-order-question-options.mjs +0 -0
  200. /package/{esm2020 → esm2022}/form-entry/question-models/interfaces/text-area-question-options.mjs +0 -0
  201. /package/{esm2020 → esm2022}/form-entry/question-models/interfaces/text-question-options.mjs +0 -0
  202. /package/{esm2020 → esm2022}/form-entry/question-models/interfaces/ui-select-question-options.mjs +0 -0
  203. /package/{esm2020 → esm2022}/form-entry/question-models/interfaces/workspace-launcher-options.mjs +0 -0
  204. /package/{esm2020 → esm2022}/form-entry/question-models/js-expression-validation.model.mjs +0 -0
  205. /package/{esm2020 → esm2022}/form-entry/question-models/max-length-validation.model.mjs +0 -0
  206. /package/{esm2020 → esm2022}/form-entry/question-models/max-validation.model.mjs +0 -0
  207. /package/{esm2020 → esm2022}/form-entry/question-models/min-length-validation.model.mjs +0 -0
  208. /package/{esm2020 → esm2022}/form-entry/question-models/min-validation.model.mjs +0 -0
  209. /package/{esm2020 → esm2022}/form-entry/question-models/models.mjs +0 -0
  210. /package/{esm2020 → esm2022}/form-entry/question-models/multi-select-question.mjs +0 -0
  211. /package/{esm2020 → esm2022}/form-entry/question-models/pair.model.mjs +0 -0
  212. /package/{esm2020 → esm2022}/form-entry/question-models/question-base.mjs +0 -0
  213. /package/{esm2020 → esm2022}/form-entry/question-models/radio-button.model.mjs +0 -0
  214. /package/{esm2020 → esm2022}/form-entry/question-models/rendering-type.mjs +0 -0
  215. /package/{esm2020 → esm2022}/form-entry/question-models/repeating-question.mjs +0 -0
  216. /package/{esm2020 → esm2022}/form-entry/question-models/select-option.mjs +0 -0
  217. /package/{esm2020 → esm2022}/form-entry/question-models/select-question.mjs +0 -0
  218. /package/{esm2020 → esm2022}/form-entry/question-models/test-order-question.mjs +0 -0
  219. /package/{esm2020 → esm2022}/form-entry/question-models/text-area-input-question.mjs +0 -0
  220. /package/{esm2020 → esm2022}/form-entry/question-models/text-input-question.mjs +0 -0
  221. /package/{esm2020 → esm2022}/form-entry/question-models/ui-select-question.mjs +0 -0
  222. /package/{esm2020 → esm2022}/form-entry/question-models/validation.model.mjs +0 -0
  223. /package/{esm2020 → esm2022}/form-entry/question-models/workspace-launcher.model.mjs +0 -0
  224. /package/{esm2020 → esm2022}/form-entry/validators/conditional-answered.validator.mjs +0 -0
  225. /package/{esm2020 → esm2022}/form-entry/validators/conditional-required.validator.mjs +0 -0
  226. /package/{esm2020 → esm2022}/form-entry/validators/date.validator.mjs +0 -0
  227. /package/{esm2020 → esm2022}/form-entry/validators/future-date-restriction.validator.mjs +0 -0
  228. /package/{esm2020 → esm2022}/form-entry/validators/js-expression.validator.mjs +0 -0
  229. /package/{esm2020 → esm2022}/form-entry/validators/max-date.validator.mjs +0 -0
  230. /package/{esm2020 → esm2022}/form-entry/validators/max-length.validator.mjs +0 -0
  231. /package/{esm2020 → esm2022}/form-entry/validators/max.validator.mjs +0 -0
  232. /package/{esm2020 → esm2022}/form-entry/validators/min-date.validator.mjs +0 -0
  233. /package/{esm2020 → esm2022}/form-entry/validators/min-length.validator.mjs +0 -0
  234. /package/{esm2020 → esm2022}/form-entry/validators/min.validator.mjs +0 -0
  235. /package/{esm2020 → esm2022}/form-entry/validators/required.validator.mjs +0 -0
  236. /package/{esm2020 → esm2022}/form-entry/value-adapters/value.adapter.mjs +0 -0
  237. /package/{esm2020 → esm2022}/lib/index.mjs +0 -0
  238. /package/{esm2020 → esm2022}/openmrs-ngx-formentry.mjs +0 -0
  239. /package/{esm2020 → esm2022}/public_api.mjs +0 -0
@@ -1,248 +0,0 @@
1
- import { Component, EventEmitter, forwardRef, HostListener, Input, Output, TemplateRef } from '@angular/core';
2
- import { NG_VALUE_ACCESSOR } from '@angular/forms';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@angular/common";
5
- import * as i2 from "./number.directive";
6
- /**
7
- * Used to emit changes performed on number input components.
8
- */
9
- export class NumberChangeEvent {
10
- }
11
- export class NumberInputComponent {
12
- /**
13
- * Sets the value attribute on the `input` element.
14
- */
15
- set value(v) {
16
- if (v === '' || v === null) {
17
- this._value = null;
18
- return;
19
- }
20
- this._value = Number(v);
21
- }
22
- get value() {
23
- return this._value;
24
- }
25
- /**
26
- * Creates an instance of `Number`.
27
- */
28
- constructor() {
29
- /**
30
- * `light` or `dark` number input theme.
31
- */
32
- this.theme = 'dark';
33
- /**
34
- * Set to `true` for a disabled number input.
35
- */
36
- this.disabled = false;
37
- /**
38
- * Set to `true` for a loading number component.
39
- */
40
- this.skeleton = false;
41
- /**
42
- * Set to `true` for an invalid number component.
43
- */
44
- this.invalid = false;
45
- /**
46
- * The unique id for the number component.
47
- */
48
- this.id = `number-${NumberInputComponent.numberCount}`;
49
- /**
50
- * Number input field render size
51
- */
52
- this.size = 'md';
53
- /**
54
- * Sets the min attribute on the `input` element.
55
- */
56
- this.min = null;
57
- /**
58
- * Sets the max attribute on the `input` element.
59
- */
60
- this.max = null;
61
- /**
62
- * Sets the max length attribute on the `input` element.
63
- */
64
- this.maxlength = null;
65
- /**
66
- * Sets the min length attribute on the `input` element.
67
- */
68
- this.minlength = null;
69
- /**
70
- * Sets the amount the number controls increment and decrement by.
71
- */
72
- this.step = 1;
73
- /**
74
- * Set to `true` to show a warning (contents set by warningText)
75
- */
76
- this.warn = false;
77
- /**
78
- * Emits event notifying other classes when a change in state occurs in the input.
79
- */
80
- this.numberChange = new EventEmitter();
81
- /**
82
- * Sets the decrement label text
83
- */
84
- this.decrementLabel = 'Decrease';
85
- /**
86
- * Sets the increment label text
87
- */
88
- this.incrementLabel = 'Increase';
89
- this._value = 0;
90
- /**
91
- * Called when number input is blurred. Needed to properly implement `ControlValueAccessor`.
92
- */
93
- this.onTouched = () => { };
94
- /**
95
- * Method set in `registerOnChange` to propagate changes back to the form.
96
- */
97
- this.propagateChange = (_) => { };
98
- NumberInputComponent.numberCount++;
99
- }
100
- /**
101
- * This is the initial value set to the component
102
- * @param value The input value.
103
- */
104
- writeValue(value) {
105
- this.value = value;
106
- }
107
- /**
108
- * Sets a method in order to propagate changes back to the form.
109
- */
110
- registerOnChange(fn) {
111
- this.propagateChange = fn;
112
- }
113
- /**
114
- * Registers a callback to be triggered when the control has been touched.
115
- * @param fn Callback to be triggered when the number input is touched.
116
- */
117
- registerOnTouched(fn) {
118
- this.onTouched = fn;
119
- }
120
- focusOut() {
121
- this.onTouched();
122
- }
123
- /**
124
- * Sets the disabled state through the model
125
- */
126
- setDisabledState(isDisabled) {
127
- this.disabled = isDisabled;
128
- }
129
- /**
130
- * Adds `step` to the current `value`.
131
- */
132
- onIncrement() {
133
- const val = this._value || 0;
134
- if (this.max === null || val + this.step <= this.max) {
135
- this.value = parseFloat((val + this.step).toPrecision(this.precision));
136
- }
137
- if (this.max && this.max > 0 && this.value > this.max) {
138
- this.value = this.max;
139
- }
140
- if (this.max === undefined || this.max === '') {
141
- this.value = val + this.step;
142
- }
143
- this.emitChangeEvent();
144
- }
145
- /**
146
- * Subtracts `step` to the current `value`.
147
- */
148
- onDecrement() {
149
- const val = this._value || 0;
150
- if (this.min === null || val - this.step >= this.min) {
151
- this.value = parseFloat((val - this.step).toPrecision(this.precision));
152
- }
153
- if (this.min && this.min > 0 && this.value < this.min) {
154
- this.value = this.min;
155
- }
156
- if (this.min === undefined || this.min === '') {
157
- this.value = val - this.step;
158
- }
159
- this.emitChangeEvent();
160
- }
161
- /**
162
- * Creates a class of `NumberChange` to emit the change in the `Number`.
163
- */
164
- emitChangeEvent() {
165
- const event = new NumberChangeEvent();
166
- event.source = this;
167
- event.value = this.value;
168
- this.numberChange.emit(event);
169
- this.propagateChange(this.value);
170
- }
171
- onNumberInputChange(event) {
172
- this.value = event.target.value;
173
- this.emitChangeEvent();
174
- }
175
- isTemplate(value) {
176
- return value instanceof TemplateRef;
177
- }
178
- }
179
- /**
180
- * Variable used for creating unique ids for number input components.
181
- */
182
- NumberInputComponent.numberCount = 0;
183
- NumberInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: NumberInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
184
- NumberInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: NumberInputComponent, selector: "ofe-number-input", inputs: { theme: "theme", disabled: "disabled", skeleton: "skeleton", invalid: "invalid", id: "id", size: "size", required: "required", value: "value", min: "min", max: "max", maxlength: "maxlength", minlength: "minlength", label: "label", helperText: "helperText", invalidText: "invalidText", step: "step", precision: "precision", warn: "warn", warnText: "warnText", decrementLabel: "decrementLabel", incrementLabel: "incrementLabel" }, outputs: { numberChange: "numberChange" }, host: { listeners: { "focusout": "focusOut()" } }, providers: [
185
- {
186
- provide: NG_VALUE_ACCESSOR,
187
- useExisting: forwardRef(() => NumberInputComponent),
188
- multi: true
189
- }
190
- ], ngImport: i0, template: "<div\n data-numberinput\n [attr.data-invalid]=\"invalid ? true : null\"\n class=\"cds--number\"\n [ngClass]=\"{\n 'cds--number--light': theme === 'light',\n 'cds--number--nolabel': !label,\n 'cds--number--helpertext': helperText,\n 'cds--skeleton': skeleton,\n 'cds--number--sm': size === 'sm',\n 'cds--number--xl': size === 'xl'\n }\"\n>\n <div\n class=\"cds--number__input-wrapper\"\n [ngClass]=\"{\n 'cds--number__input-wrapper--warning': warn\n }\"\n >\n <input\n type=\"number\"\n [id]=\"id\"\n ofeNumberScroll\n [value]=\"value\"\n [attr.min]=\"min\"\n [attr.max]=\"max\"\n [attr.maxlength]=\"maxlength\"\n [attr.minlength]=\"minlength\"\n [attr.step]=\"step\"\n [disabled]=\"disabled\"\n [required]=\"required\"\n (input)=\"onNumberInputChange($event)\"\n />\n <div class=\"cds--number__controls\">\n <button\n type=\"button\"\n class=\"cds--number__control-btn down-icon\"\n (click)=\"onDecrement()\"\n title=\"Decrement number\"\n [attr.aria-label]=\"decrementLabel\"\n tabindex=\"-1\"\n >\n <svg\n focusable=\"false\"\n preserveAspectRatio=\"xMidYMid meet\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"currentColor\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 32 32\"\n aria-hidden=\"true\"\n class=\"down-icon\"\n >\n <path d=\"M8 15H24V17H8z\"></path>\n </svg>\n </button>\n <div class=\"cds--number__rule-divider\"></div>\n <button\n type=\"button\"\n class=\"cds--number__control-btn up-icon\"\n (click)=\"onIncrement()\"\n title=\"Increment number\"\n [attr.aria-label]=\"incrementLabel\"\n tabindex=\"-1\"\n >\n <svg\n focusable=\"false\"\n preserveAspectRatio=\"xMidYMid meet\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"currentColor\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 32 32\"\n aria-hidden=\"true\"\n class=\"up-icon\"\n >\n <path\n d=\"M17 15L17 8 15 8 15 15 8 15 8 17 15 17 15 24 17 24 17 17 24 17 24 15z\"\n ></path>\n </svg>\n </button>\n <div class=\"cds--number__rule-divider\"></div>\n </div>\n </div>\n <div *ngIf=\"helperText && !invalid && !warn\" class=\"cds--form__helper-text\">\n <ng-container *ngIf=\"!isTemplate(helperText)\">{{\n helperText\n }}</ng-container>\n <ng-template\n *ngIf=\"isTemplate(helperText)\"\n [ngTemplateOutlet]=\"helperText\"\n ></ng-template>\n </div>\n <div *ngIf=\"!warn && invalid\" class=\"cds--form-requirement\">\n <ng-container *ngIf=\"!isTemplate(invalidText)\">{{\n invalidText\n }}</ng-container>\n <ng-template\n *ngIf=\"isTemplate(invalidText)\"\n [ngTemplateOutlet]=\"invalidText\"\n ></ng-template>\n </div>\n <div *ngIf=\"!invalid && warn\" class=\"cds--form-requirement\">\n <ng-container *ngIf=\"!isTemplate(warnText)\">{{ warnText }}</ng-container>\n <ng-template\n *ngIf=\"isTemplate(warnText)\"\n [ngTemplateOutlet]=\"warnText\"\n ></ng-template>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NumberInputDirective, selector: "[ofeNumberScroll]" }] });
191
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: NumberInputComponent, decorators: [{
192
- type: Component,
193
- args: [{ selector: 'ofe-number-input', providers: [
194
- {
195
- provide: NG_VALUE_ACCESSOR,
196
- useExisting: forwardRef(() => NumberInputComponent),
197
- multi: true
198
- }
199
- ], template: "<div\n data-numberinput\n [attr.data-invalid]=\"invalid ? true : null\"\n class=\"cds--number\"\n [ngClass]=\"{\n 'cds--number--light': theme === 'light',\n 'cds--number--nolabel': !label,\n 'cds--number--helpertext': helperText,\n 'cds--skeleton': skeleton,\n 'cds--number--sm': size === 'sm',\n 'cds--number--xl': size === 'xl'\n }\"\n>\n <div\n class=\"cds--number__input-wrapper\"\n [ngClass]=\"{\n 'cds--number__input-wrapper--warning': warn\n }\"\n >\n <input\n type=\"number\"\n [id]=\"id\"\n ofeNumberScroll\n [value]=\"value\"\n [attr.min]=\"min\"\n [attr.max]=\"max\"\n [attr.maxlength]=\"maxlength\"\n [attr.minlength]=\"minlength\"\n [attr.step]=\"step\"\n [disabled]=\"disabled\"\n [required]=\"required\"\n (input)=\"onNumberInputChange($event)\"\n />\n <div class=\"cds--number__controls\">\n <button\n type=\"button\"\n class=\"cds--number__control-btn down-icon\"\n (click)=\"onDecrement()\"\n title=\"Decrement number\"\n [attr.aria-label]=\"decrementLabel\"\n tabindex=\"-1\"\n >\n <svg\n focusable=\"false\"\n preserveAspectRatio=\"xMidYMid meet\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"currentColor\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 32 32\"\n aria-hidden=\"true\"\n class=\"down-icon\"\n >\n <path d=\"M8 15H24V17H8z\"></path>\n </svg>\n </button>\n <div class=\"cds--number__rule-divider\"></div>\n <button\n type=\"button\"\n class=\"cds--number__control-btn up-icon\"\n (click)=\"onIncrement()\"\n title=\"Increment number\"\n [attr.aria-label]=\"incrementLabel\"\n tabindex=\"-1\"\n >\n <svg\n focusable=\"false\"\n preserveAspectRatio=\"xMidYMid meet\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"currentColor\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 32 32\"\n aria-hidden=\"true\"\n class=\"up-icon\"\n >\n <path\n d=\"M17 15L17 8 15 8 15 15 8 15 8 17 15 17 15 24 17 24 17 17 24 17 24 15z\"\n ></path>\n </svg>\n </button>\n <div class=\"cds--number__rule-divider\"></div>\n </div>\n </div>\n <div *ngIf=\"helperText && !invalid && !warn\" class=\"cds--form__helper-text\">\n <ng-container *ngIf=\"!isTemplate(helperText)\">{{\n helperText\n }}</ng-container>\n <ng-template\n *ngIf=\"isTemplate(helperText)\"\n [ngTemplateOutlet]=\"helperText\"\n ></ng-template>\n </div>\n <div *ngIf=\"!warn && invalid\" class=\"cds--form-requirement\">\n <ng-container *ngIf=\"!isTemplate(invalidText)\">{{\n invalidText\n }}</ng-container>\n <ng-template\n *ngIf=\"isTemplate(invalidText)\"\n [ngTemplateOutlet]=\"invalidText\"\n ></ng-template>\n </div>\n <div *ngIf=\"!invalid && warn\" class=\"cds--form-requirement\">\n <ng-container *ngIf=\"!isTemplate(warnText)\">{{ warnText }}</ng-container>\n <ng-template\n *ngIf=\"isTemplate(warnText)\"\n [ngTemplateOutlet]=\"warnText\"\n ></ng-template>\n </div>\n</div>\n" }]
200
- }], ctorParameters: function () { return []; }, propDecorators: { theme: [{
201
- type: Input
202
- }], disabled: [{
203
- type: Input
204
- }], skeleton: [{
205
- type: Input
206
- }], invalid: [{
207
- type: Input
208
- }], id: [{
209
- type: Input
210
- }], size: [{
211
- type: Input
212
- }], required: [{
213
- type: Input
214
- }], value: [{
215
- type: Input
216
- }], min: [{
217
- type: Input
218
- }], max: [{
219
- type: Input
220
- }], maxlength: [{
221
- type: Input
222
- }], minlength: [{
223
- type: Input
224
- }], label: [{
225
- type: Input
226
- }], helperText: [{
227
- type: Input
228
- }], invalidText: [{
229
- type: Input
230
- }], step: [{
231
- type: Input
232
- }], precision: [{
233
- type: Input
234
- }], warn: [{
235
- type: Input
236
- }], warnText: [{
237
- type: Input
238
- }], numberChange: [{
239
- type: Output
240
- }], decrementLabel: [{
241
- type: Input
242
- }], incrementLabel: [{
243
- type: Input
244
- }], focusOut: [{
245
- type: HostListener,
246
- args: ['focusout']
247
- }] } });
248
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1mb3JtZW50cnkvc3JjL2NvbXBvbmVudHMvbnVtYmVyLWlucHV0L251bWJlci1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtZm9ybWVudHJ5L3NyYy9jb21wb25lbnRzL251bWJlci1pbnB1dC9udW1iZXItaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osVUFBVSxFQUNWLFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNOLFdBQVcsRUFDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsaUJBQWlCLEVBQXdCLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFFekU7O0dBRUc7QUFDSCxNQUFNLE9BQU8saUJBQWlCO0NBUzdCO0FBYUQsTUFBTSxPQUFPLG9CQUFvQjtJQWtDL0I7O09BRUc7SUFDSCxJQUFhLEtBQUssQ0FBQyxDQUFNO1FBQ3ZCLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssSUFBSSxFQUFFO1lBQzFCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1lBQ25CLE9BQU87U0FDUjtRQUNELElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztJQTRERDs7T0FFRztJQUNIO1FBeEdBOztXQUVHO1FBQ00sVUFBSyxHQUFxQixNQUFNLENBQUM7UUFDMUM7O1dBRUc7UUFDTSxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQzFCOztXQUVHO1FBQ00sYUFBUSxHQUFHLEtBQUssQ0FBQztRQUMxQjs7V0FFRztRQUNNLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFDekI7O1dBRUc7UUFDTSxPQUFFLEdBQUcsVUFBVSxvQkFBb0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUMzRDs7V0FFRztRQUNNLFNBQUksR0FBdUIsSUFBSSxDQUFDO1FBbUJ6Qzs7V0FFRztRQUNNLFFBQUcsR0FBRyxJQUFJLENBQUM7UUFDcEI7O1dBRUc7UUFDTSxRQUFHLEdBQUcsSUFBSSxDQUFDO1FBQ3BCOztXQUVHO1FBQ00sY0FBUyxHQUFHLElBQUksQ0FBQztRQUMxQjs7V0FFRztRQUNNLGNBQVMsR0FBRyxJQUFJLENBQUM7UUFhMUI7O1dBRUc7UUFDTSxTQUFJLEdBQUcsQ0FBQyxDQUFDO1FBS2xCOztXQUVHO1FBQ00sU0FBSSxHQUFHLEtBQUssQ0FBQztRQUt0Qjs7V0FFRztRQUNPLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQXFCLENBQUM7UUFDL0Q7O1dBRUc7UUFDTSxtQkFBYyxHQUFHLFVBQVUsQ0FBQztRQUNyQzs7V0FFRztRQUNNLG1CQUFjLEdBQUcsVUFBVSxDQUFDO1FBRTNCLFdBQU0sR0FBRyxDQUFDLENBQUM7UUE0Q3JCOztXQUVHO1FBQ0gsY0FBUyxHQUFjLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztRQUVoQzs7V0FFRztRQUNILG9CQUFlLEdBQUcsQ0FBQyxDQUFNLEVBQUUsRUFBRSxHQUFFLENBQUMsQ0FBQztRQTlDL0Isb0JBQW9CLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDckMsQ0FBQztJQUVEOzs7T0FHRztJQUNJLFVBQVUsQ0FBQyxLQUFVO1FBQzFCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ3JCLENBQUM7SUFFRDs7T0FFRztJQUNJLGdCQUFnQixDQUFDLEVBQU87UUFDN0IsSUFBSSxDQUFDLGVBQWUsR0FBRyxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVEOzs7T0FHRztJQUNJLGlCQUFpQixDQUFDLEVBQU87UUFDOUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUdELFFBQVE7UUFDTixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsZ0JBQWdCLENBQUMsVUFBbUI7UUFDbEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUM7SUFDN0IsQ0FBQztJQVlEOztPQUVHO0lBQ0gsV0FBVztRQUNULE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDO1FBRTdCLElBQUksSUFBSSxDQUFDLEdBQUcsS0FBSyxJQUFJLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUNwRCxJQUFJLENBQUMsS0FBSyxHQUFHLFVBQVUsQ0FBQyxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1NBQ3hFO1FBRUQsSUFBSSxJQUFJLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUNyRCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUM7U0FDdkI7UUFDRCxJQUFJLElBQUksQ0FBQyxHQUFHLEtBQUssU0FBUyxJQUFJLElBQUksQ0FBQyxHQUFHLEtBQUssRUFBRSxFQUFFO1lBQzdDLElBQUksQ0FBQyxLQUFLLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7U0FDOUI7UUFFRCxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsV0FBVztRQUNULE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDO1FBRTdCLElBQUksSUFBSSxDQUFDLEdBQUcsS0FBSyxJQUFJLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUNwRCxJQUFJLENBQUMsS0FBSyxHQUFHLFVBQVUsQ0FBQyxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1NBQ3hFO1FBRUQsSUFBSSxJQUFJLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUNyRCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUM7U0FDdkI7UUFFRCxJQUFJLElBQUksQ0FBQyxHQUFHLEtBQUssU0FBUyxJQUFJLElBQUksQ0FBQyxHQUFHLEtBQUssRUFBRSxFQUFFO1lBQzdDLElBQUksQ0FBQyxLQUFLLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7U0FDOUI7UUFFRCxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsZUFBZTtRQUNiLE1BQU0sS0FBSyxHQUFHLElBQUksaUJBQWlCLEVBQUUsQ0FBQztRQUN0QyxLQUFLLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUNwQixLQUFLLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDekIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELG1CQUFtQixDQUFDLEtBQUs7UUFDdkIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUNoQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVNLFVBQVUsQ0FBQyxLQUFLO1FBQ3JCLE9BQU8sS0FBSyxZQUFZLFdBQVcsQ0FBQztJQUN0QyxDQUFDOztBQXpORDs7R0FFRztBQUNJLGdDQUFXLEdBQUcsQ0FBQyxDQUFDO2tIQUpaLG9CQUFvQjtzR0FBcEIsb0JBQW9CLCtqQkFScEI7UUFDVDtZQUNFLE9BQU8sRUFBRSxpQkFBaUI7WUFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQztZQUNuRCxLQUFLLEVBQUUsSUFBSTtTQUNaO0tBQ0YsMEJDbENILGd3R0E4R0E7NEZEMUVhLG9CQUFvQjtrQkFYaEMsU0FBUzsrQkFDRSxrQkFBa0IsYUFFakI7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUscUJBQXFCLENBQUM7NEJBQ25ELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGOzBFQVdRLEtBQUs7c0JBQWIsS0FBSztnQkFJRyxRQUFRO3NCQUFoQixLQUFLO2dCQUlHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBSUcsT0FBTztzQkFBZixLQUFLO2dCQUlHLEVBQUU7c0JBQVYsS0FBSztnQkFJRyxJQUFJO3NCQUFaLEtBQUs7Z0JBSUcsUUFBUTtzQkFBaEIsS0FBSztnQkFJTyxLQUFLO3NCQUFqQixLQUFLO2dCQWNHLEdBQUc7c0JBQVgsS0FBSztnQkFJRyxHQUFHO3NCQUFYLEtBQUs7Z0JBSUcsU0FBUztzQkFBakIsS0FBSztnQkFJRyxTQUFTO3NCQUFqQixLQUFLO2dCQUlHLEtBQUs7c0JBQWIsS0FBSztnQkFJRyxVQUFVO3NCQUFsQixLQUFLO2dCQUlHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBSUcsSUFBSTtzQkFBWixLQUFLO2dCQUlHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBSUcsSUFBSTtzQkFBWixLQUFLO2dCQUlHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBSUksWUFBWTtzQkFBckIsTUFBTTtnQkFJRSxjQUFjO3NCQUF0QixLQUFLO2dCQUlHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBbUNOLFFBQVE7c0JBRFAsWUFBWTt1QkFBQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIGZvcndhcmRSZWYsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgVGVtcGxhdGVSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiwgQ29udHJvbFZhbHVlQWNjZXNzb3IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbi8qKlxuICogVXNlZCB0byBlbWl0IGNoYW5nZXMgcGVyZm9ybWVkIG9uIG51bWJlciBpbnB1dCBjb21wb25lbnRzLlxuICovXG5leHBvcnQgY2xhc3MgTnVtYmVyQ2hhbmdlRXZlbnQge1xuICAvKipcbiAgICogQ29udGFpbnMgdGhlIGBOdW1iZXJJbnB1dENvbXBvbmVudGAgdGhhdCBoYXMgYmVlbiBjaGFuZ2VkLlxuICAgKi9cbiAgc291cmNlOiBOdW1iZXJJbnB1dENvbXBvbmVudDtcbiAgLyoqXG4gICAqIFRoZSB2YWx1ZSBvZiB0aGUgYE51bWJlcklucHV0Q29tcG9uZW50YCBmaWVsZCBlbmNvbXBhc3NlZCBpbiB0aGUgYE51bWJlckNoYW5nZWAgY2xhc3MuXG4gICAqL1xuICB2YWx1ZTogbnVtYmVyO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdvZmUtbnVtYmVyLWlucHV0JyxcbiAgdGVtcGxhdGVVcmw6ICdudW1iZXItaW5wdXQuY29tcG9uZW50Lmh0bWwnLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IE51bWJlcklucHV0Q29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIE51bWJlcklucHV0Q29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICAvKipcbiAgICogVmFyaWFibGUgdXNlZCBmb3IgY3JlYXRpbmcgdW5pcXVlIGlkcyBmb3IgbnVtYmVyIGlucHV0IGNvbXBvbmVudHMuXG4gICAqL1xuICBzdGF0aWMgbnVtYmVyQ291bnQgPSAwO1xuXG4gIC8qKlxuICAgKiBgbGlnaHRgIG9yIGBkYXJrYCBudW1iZXIgaW5wdXQgdGhlbWUuXG4gICAqL1xuICBASW5wdXQoKSB0aGVtZTogJ2xpZ2h0JyB8ICdkYXJrJyA9ICdkYXJrJztcbiAgLyoqXG4gICAqIFNldCB0byBgdHJ1ZWAgZm9yIGEgZGlzYWJsZWQgbnVtYmVyIGlucHV0LlxuICAgKi9cbiAgQElucHV0KCkgZGlzYWJsZWQgPSBmYWxzZTtcbiAgLyoqXG4gICAqIFNldCB0byBgdHJ1ZWAgZm9yIGEgbG9hZGluZyBudW1iZXIgY29tcG9uZW50LlxuICAgKi9cbiAgQElucHV0KCkgc2tlbGV0b24gPSBmYWxzZTtcbiAgLyoqXG4gICAqIFNldCB0byBgdHJ1ZWAgZm9yIGFuIGludmFsaWQgbnVtYmVyIGNvbXBvbmVudC5cbiAgICovXG4gIEBJbnB1dCgpIGludmFsaWQgPSBmYWxzZTtcbiAgLyoqXG4gICAqIFRoZSB1bmlxdWUgaWQgZm9yIHRoZSBudW1iZXIgY29tcG9uZW50LlxuICAgKi9cbiAgQElucHV0KCkgaWQgPSBgbnVtYmVyLSR7TnVtYmVySW5wdXRDb21wb25lbnQubnVtYmVyQ291bnR9YDtcbiAgLyoqXG4gICAqIE51bWJlciBpbnB1dCBmaWVsZCByZW5kZXIgc2l6ZVxuICAgKi9cbiAgQElucHV0KCkgc2l6ZTogJ3NtJyB8ICdtZCcgfCAneGwnID0gJ21kJztcbiAgLyoqXG4gICAqIFJlZmxlY3RzIHRoZSByZXF1aXJlZCBhdHRyaWJ1dGUgb2YgdGhlIGBpbnB1dGAgZWxlbWVudC5cbiAgICovXG4gIEBJbnB1dCgpIHJlcXVpcmVkOiBib29sZWFuO1xuICAvKipcbiAgICogU2V0cyB0aGUgdmFsdWUgYXR0cmlidXRlIG9uIHRoZSBgaW5wdXRgIGVsZW1lbnQuXG4gICAqL1xuICBASW5wdXQoKSBzZXQgdmFsdWUodjogYW55KSB7XG4gICAgaWYgKHYgPT09ICcnIHx8IHYgPT09IG51bGwpIHtcbiAgICAgIHRoaXMuX3ZhbHVlID0gbnVsbDtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5fdmFsdWUgPSBOdW1iZXIodik7XG4gIH1cblxuICBnZXQgdmFsdWUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xuICB9XG4gIC8qKlxuICAgKiBTZXRzIHRoZSBtaW4gYXR0cmlidXRlIG9uIHRoZSBgaW5wdXRgIGVsZW1lbnQuXG4gICAqL1xuICBASW5wdXQoKSBtaW4gPSBudWxsO1xuICAvKipcbiAgICogU2V0cyB0aGUgbWF4IGF0dHJpYnV0ZSBvbiB0aGUgYGlucHV0YCBlbGVtZW50LlxuICAgKi9cbiAgQElucHV0KCkgbWF4ID0gbnVsbDtcbiAgLyoqXG4gICAqIFNldHMgdGhlIG1heCBsZW5ndGggYXR0cmlidXRlIG9uIHRoZSBgaW5wdXRgIGVsZW1lbnQuXG4gICAqL1xuICBASW5wdXQoKSBtYXhsZW5ndGggPSBudWxsO1xuICAvKipcbiAgICogU2V0cyB0aGUgbWluIGxlbmd0aCBhdHRyaWJ1dGUgb24gdGhlIGBpbnB1dGAgZWxlbWVudC5cbiAgICovXG4gIEBJbnB1dCgpIG1pbmxlbmd0aCA9IG51bGw7XG4gIC8qKlxuICAgKiBTZXRzIHRoZSB0ZXh0IGluc2lkZSB0aGUgYGxhYmVsYCB0YWcuXG4gICAqL1xuICBASW5wdXQoKSBsYWJlbDogc3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55PjtcbiAgLyoqXG4gICAqIFNldHMgdGhlIG9wdGlvbmFsIGhlbHBlciB0ZXh0LlxuICAgKi9cbiAgQElucHV0KCkgaGVscGVyVGV4dDogc3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55PjtcbiAgLyoqXG4gICAqIFNldHMgdGhlIGludmFsaWQgdGV4dC5cbiAgICovXG4gIEBJbnB1dCgpIGludmFsaWRUZXh0OiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+O1xuICAvKipcbiAgICogU2V0cyB0aGUgYW1vdW50IHRoZSBudW1iZXIgY29udHJvbHMgaW5jcmVtZW50IGFuZCBkZWNyZW1lbnQgYnkuXG4gICAqL1xuICBASW5wdXQoKSBzdGVwID0gMTtcbiAgLyoqXG4gICAqIElmIGBzdGVwYCBpcyBhIGRlY2ltYWwsIHdlIG1heSB3YW50IHByZWNpc2lvbiB0byBiZSBzZXQgdG8gZ28gYXJvdW5kIGZsb2F0aW5nIHBvaW50IHByZWNpc2lvbi5cbiAgICovXG4gIEBJbnB1dCgpIHByZWNpc2lvbjogbnVtYmVyO1xuICAvKipcbiAgICogU2V0IHRvIGB0cnVlYCB0byBzaG93IGEgd2FybmluZyAoY29udGVudHMgc2V0IGJ5IHdhcm5pbmdUZXh0KVxuICAgKi9cbiAgQElucHV0KCkgd2FybiA9IGZhbHNlO1xuICAvKipcbiAgICogU2V0cyB0aGUgd2FybmluZyB0ZXh0XG4gICAqL1xuICBASW5wdXQoKSB3YXJuVGV4dDogc3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55PjtcbiAgLyoqXG4gICAqIEVtaXRzIGV2ZW50IG5vdGlmeWluZyBvdGhlciBjbGFzc2VzIHdoZW4gYSBjaGFuZ2UgaW4gc3RhdGUgb2NjdXJzIGluIHRoZSBpbnB1dC5cbiAgICovXG4gIEBPdXRwdXQoKSBudW1iZXJDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPE51bWJlckNoYW5nZUV2ZW50PigpO1xuICAvKipcbiAgICogU2V0cyB0aGUgZGVjcmVtZW50IGxhYmVsIHRleHRcbiAgICovXG4gIEBJbnB1dCgpIGRlY3JlbWVudExhYmVsID0gJ0RlY3JlYXNlJztcbiAgLyoqXG4gICAqIFNldHMgdGhlIGluY3JlbWVudCBsYWJlbCB0ZXh0XG4gICAqL1xuICBASW5wdXQoKSBpbmNyZW1lbnRMYWJlbCA9ICdJbmNyZWFzZSc7XG5cbiAgcHJvdGVjdGVkIF92YWx1ZSA9IDA7XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYW4gaW5zdGFuY2Ugb2YgYE51bWJlcmAuXG4gICAqL1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBOdW1iZXJJbnB1dENvbXBvbmVudC5udW1iZXJDb3VudCsrO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgaXMgdGhlIGluaXRpYWwgdmFsdWUgc2V0IHRvIHRoZSBjb21wb25lbnRcbiAgICogQHBhcmFtIHZhbHVlIFRoZSBpbnB1dCB2YWx1ZS5cbiAgICovXG4gIHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyBhIG1ldGhvZCBpbiBvcmRlciB0byBwcm9wYWdhdGUgY2hhbmdlcyBiYWNrIHRvIHRoZSBmb3JtLlxuICAgKi9cbiAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSkge1xuICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlID0gZm47XG4gIH1cblxuICAvKipcbiAgICogUmVnaXN0ZXJzIGEgY2FsbGJhY2sgdG8gYmUgdHJpZ2dlcmVkIHdoZW4gdGhlIGNvbnRyb2wgaGFzIGJlZW4gdG91Y2hlZC5cbiAgICogQHBhcmFtIGZuIENhbGxiYWNrIHRvIGJlIHRyaWdnZXJlZCB3aGVuIHRoZSBudW1iZXIgaW5wdXQgaXMgdG91Y2hlZC5cbiAgICovXG4gIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KSB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2ZvY3Vzb3V0JylcbiAgZm9jdXNPdXQoKSB7XG4gICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBkaXNhYmxlZCBzdGF0ZSB0aHJvdWdoIHRoZSBtb2RlbFxuICAgKi9cbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKSB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gIH1cblxuICAvKipcbiAgICogQ2FsbGVkIHdoZW4gbnVtYmVyIGlucHV0IGlzIGJsdXJyZWQuIE5lZWRlZCB0byBwcm9wZXJseSBpbXBsZW1lbnQgYENvbnRyb2xWYWx1ZUFjY2Vzc29yYC5cbiAgICovXG4gIG9uVG91Y2hlZDogKCkgPT4gYW55ID0gKCkgPT4ge307XG5cbiAgLyoqXG4gICAqIE1ldGhvZCBzZXQgaW4gYHJlZ2lzdGVyT25DaGFuZ2VgIHRvIHByb3BhZ2F0ZSBjaGFuZ2VzIGJhY2sgdG8gdGhlIGZvcm0uXG4gICAqL1xuICBwcm9wYWdhdGVDaGFuZ2UgPSAoXzogYW55KSA9PiB7fTtcblxuICAvKipcbiAgICogQWRkcyBgc3RlcGAgdG8gdGhlIGN1cnJlbnQgYHZhbHVlYC5cbiAgICovXG4gIG9uSW5jcmVtZW50KCk6IHZvaWQge1xuICAgIGNvbnN0IHZhbCA9IHRoaXMuX3ZhbHVlIHx8IDA7XG5cbiAgICBpZiAodGhpcy5tYXggPT09IG51bGwgfHwgdmFsICsgdGhpcy5zdGVwIDw9IHRoaXMubWF4KSB7XG4gICAgICB0aGlzLnZhbHVlID0gcGFyc2VGbG9hdCgodmFsICsgdGhpcy5zdGVwKS50b1ByZWNpc2lvbih0aGlzLnByZWNpc2lvbikpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLm1heCAmJiB0aGlzLm1heCA+IDAgJiYgdGhpcy52YWx1ZSA+IHRoaXMubWF4KSB7XG4gICAgICB0aGlzLnZhbHVlID0gdGhpcy5tYXg7XG4gICAgfVxuICAgIGlmICh0aGlzLm1heCA9PT0gdW5kZWZpbmVkIHx8IHRoaXMubWF4ID09PSAnJykge1xuICAgICAgdGhpcy52YWx1ZSA9IHZhbCArIHRoaXMuc3RlcDtcbiAgICB9XG5cbiAgICB0aGlzLmVtaXRDaGFuZ2VFdmVudCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFN1YnRyYWN0cyBgc3RlcGAgdG8gdGhlIGN1cnJlbnQgYHZhbHVlYC5cbiAgICovXG4gIG9uRGVjcmVtZW50KCk6IHZvaWQge1xuICAgIGNvbnN0IHZhbCA9IHRoaXMuX3ZhbHVlIHx8IDA7XG5cbiAgICBpZiAodGhpcy5taW4gPT09IG51bGwgfHwgdmFsIC0gdGhpcy5zdGVwID49IHRoaXMubWluKSB7XG4gICAgICB0aGlzLnZhbHVlID0gcGFyc2VGbG9hdCgodmFsIC0gdGhpcy5zdGVwKS50b1ByZWNpc2lvbih0aGlzLnByZWNpc2lvbikpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLm1pbiAmJiB0aGlzLm1pbiA+IDAgJiYgdGhpcy52YWx1ZSA8IHRoaXMubWluKSB7XG4gICAgICB0aGlzLnZhbHVlID0gdGhpcy5taW47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMubWluID09PSB1bmRlZmluZWQgfHwgdGhpcy5taW4gPT09ICcnKSB7XG4gICAgICB0aGlzLnZhbHVlID0gdmFsIC0gdGhpcy5zdGVwO1xuICAgIH1cblxuICAgIHRoaXMuZW1pdENoYW5nZUV2ZW50KCk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIGNsYXNzIG9mIGBOdW1iZXJDaGFuZ2VgIHRvIGVtaXQgdGhlIGNoYW5nZSBpbiB0aGUgYE51bWJlcmAuXG4gICAqL1xuICBlbWl0Q2hhbmdlRXZlbnQoKTogdm9pZCB7XG4gICAgY29uc3QgZXZlbnQgPSBuZXcgTnVtYmVyQ2hhbmdlRXZlbnQoKTtcbiAgICBldmVudC5zb3VyY2UgPSB0aGlzO1xuICAgIGV2ZW50LnZhbHVlID0gdGhpcy52YWx1ZTtcbiAgICB0aGlzLm51bWJlckNoYW5nZS5lbWl0KGV2ZW50KTtcbiAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSh0aGlzLnZhbHVlKTtcbiAgfVxuXG4gIG9uTnVtYmVySW5wdXRDaGFuZ2UoZXZlbnQpIHtcbiAgICB0aGlzLnZhbHVlID0gZXZlbnQudGFyZ2V0LnZhbHVlO1xuICAgIHRoaXMuZW1pdENoYW5nZUV2ZW50KCk7XG4gIH1cblxuICBwdWJsaWMgaXNUZW1wbGF0ZSh2YWx1ZSkge1xuICAgIHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFRlbXBsYXRlUmVmO1xuICB9XG59XG4iLCI8ZGl2XG4gIGRhdGEtbnVtYmVyaW5wdXRcbiAgW2F0dHIuZGF0YS1pbnZhbGlkXT1cImludmFsaWQgPyB0cnVlIDogbnVsbFwiXG4gIGNsYXNzPVwiY2RzLS1udW1iZXJcIlxuICBbbmdDbGFzc109XCJ7XG4gICAgJ2Nkcy0tbnVtYmVyLS1saWdodCc6IHRoZW1lID09PSAnbGlnaHQnLFxuICAgICdjZHMtLW51bWJlci0tbm9sYWJlbCc6ICFsYWJlbCxcbiAgICAnY2RzLS1udW1iZXItLWhlbHBlcnRleHQnOiBoZWxwZXJUZXh0LFxuICAgICdjZHMtLXNrZWxldG9uJzogc2tlbGV0b24sXG4gICAgJ2Nkcy0tbnVtYmVyLS1zbSc6IHNpemUgPT09ICdzbScsXG4gICAgJ2Nkcy0tbnVtYmVyLS14bCc6IHNpemUgPT09ICd4bCdcbiAgfVwiXG4+XG4gIDxkaXZcbiAgICBjbGFzcz1cImNkcy0tbnVtYmVyX19pbnB1dC13cmFwcGVyXCJcbiAgICBbbmdDbGFzc109XCJ7XG4gICAgICAnY2RzLS1udW1iZXJfX2lucHV0LXdyYXBwZXItLXdhcm5pbmcnOiB3YXJuXG4gICAgfVwiXG4gID5cbiAgICA8aW5wdXRcbiAgICAgIHR5cGU9XCJudW1iZXJcIlxuICAgICAgW2lkXT1cImlkXCJcbiAgICAgIG9mZU51bWJlclNjcm9sbFxuICAgICAgW3ZhbHVlXT1cInZhbHVlXCJcbiAgICAgIFthdHRyLm1pbl09XCJtaW5cIlxuICAgICAgW2F0dHIubWF4XT1cIm1heFwiXG4gICAgICBbYXR0ci5tYXhsZW5ndGhdPVwibWF4bGVuZ3RoXCJcbiAgICAgIFthdHRyLm1pbmxlbmd0aF09XCJtaW5sZW5ndGhcIlxuICAgICAgW2F0dHIuc3RlcF09XCJzdGVwXCJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgICAgKGlucHV0KT1cIm9uTnVtYmVySW5wdXRDaGFuZ2UoJGV2ZW50KVwiXG4gICAgLz5cbiAgICA8ZGl2IGNsYXNzPVwiY2RzLS1udW1iZXJfX2NvbnRyb2xzXCI+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBjbGFzcz1cImNkcy0tbnVtYmVyX19jb250cm9sLWJ0biBkb3duLWljb25cIlxuICAgICAgICAoY2xpY2spPVwib25EZWNyZW1lbnQoKVwiXG4gICAgICAgIHRpdGxlPVwiRGVjcmVtZW50IG51bWJlclwiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiZGVjcmVtZW50TGFiZWxcIlxuICAgICAgICB0YWJpbmRleD1cIi0xXCJcbiAgICAgID5cbiAgICAgICAgPHN2Z1xuICAgICAgICAgIGZvY3VzYWJsZT1cImZhbHNlXCJcbiAgICAgICAgICBwcmVzZXJ2ZUFzcGVjdFJhdGlvPVwieE1pZFlNaWQgbWVldFwiXG4gICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICAgICAgd2lkdGg9XCIxNlwiXG4gICAgICAgICAgaGVpZ2h0PVwiMTZcIlxuICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMzIgMzJcIlxuICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgY2xhc3M9XCJkb3duLWljb25cIlxuICAgICAgICA+XG4gICAgICAgICAgPHBhdGggZD1cIk04IDE1SDI0VjE3SDh6XCI+PC9wYXRoPlxuICAgICAgICA8L3N2Zz5cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGRpdiBjbGFzcz1cImNkcy0tbnVtYmVyX19ydWxlLWRpdmlkZXJcIj48L2Rpdj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIGNsYXNzPVwiY2RzLS1udW1iZXJfX2NvbnRyb2wtYnRuIHVwLWljb25cIlxuICAgICAgICAoY2xpY2spPVwib25JbmNyZW1lbnQoKVwiXG4gICAgICAgIHRpdGxlPVwiSW5jcmVtZW50IG51bWJlclwiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiaW5jcmVtZW50TGFiZWxcIlxuICAgICAgICB0YWJpbmRleD1cIi0xXCJcbiAgICAgID5cbiAgICAgICAgPHN2Z1xuICAgICAgICAgIGZvY3VzYWJsZT1cImZhbHNlXCJcbiAgICAgICAgICBwcmVzZXJ2ZUFzcGVjdFJhdGlvPVwieE1pZFlNaWQgbWVldFwiXG4gICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICAgICAgd2lkdGg9XCIxNlwiXG4gICAgICAgICAgaGVpZ2h0PVwiMTZcIlxuICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMzIgMzJcIlxuICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgY2xhc3M9XCJ1cC1pY29uXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICBkPVwiTTE3IDE1TDE3IDggMTUgOCAxNSAxNSA4IDE1IDggMTcgMTUgMTcgMTUgMjQgMTcgMjQgMTcgMTcgMjQgMTcgMjQgMTV6XCJcbiAgICAgICAgICA+PC9wYXRoPlxuICAgICAgICA8L3N2Zz5cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGRpdiBjbGFzcz1cImNkcy0tbnVtYmVyX19ydWxlLWRpdmlkZXJcIj48L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgKm5nSWY9XCJoZWxwZXJUZXh0ICYmICFpbnZhbGlkICYmICF3YXJuXCIgY2xhc3M9XCJjZHMtLWZvcm1fX2hlbHBlci10ZXh0XCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc1RlbXBsYXRlKGhlbHBlclRleHQpXCI+e3tcbiAgICAgIGhlbHBlclRleHRcbiAgICB9fTwvbmctY29udGFpbmVyPlxuICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgKm5nSWY9XCJpc1RlbXBsYXRlKGhlbHBlclRleHQpXCJcbiAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImhlbHBlclRleHRcIlxuICAgID48L25nLXRlbXBsYXRlPlxuICA8L2Rpdj5cbiAgPGRpdiAqbmdJZj1cIiF3YXJuICYmIGludmFsaWRcIiBjbGFzcz1cImNkcy0tZm9ybS1yZXF1aXJlbWVudFwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNUZW1wbGF0ZShpbnZhbGlkVGV4dClcIj57e1xuICAgICAgaW52YWxpZFRleHRcbiAgICB9fTwvbmctY29udGFpbmVyPlxuICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgKm5nSWY9XCJpc1RlbXBsYXRlKGludmFsaWRUZXh0KVwiXG4gICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJpbnZhbGlkVGV4dFwiXG4gICAgPjwvbmctdGVtcGxhdGU+XG4gIDwvZGl2PlxuICA8ZGl2ICpuZ0lmPVwiIWludmFsaWQgJiYgd2FyblwiIGNsYXNzPVwiY2RzLS1mb3JtLXJlcXVpcmVtZW50XCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc1RlbXBsYXRlKHdhcm5UZXh0KVwiPnt7IHdhcm5UZXh0IH19PC9uZy1jb250YWluZXI+XG4gICAgPG5nLXRlbXBsYXRlXG4gICAgICAqbmdJZj1cImlzVGVtcGxhdGUod2FyblRleHQpXCJcbiAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIndhcm5UZXh0XCJcbiAgICA+PC9uZy10ZW1wbGF0ZT5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -1,96 +0,0 @@
1
- import { Component, Input, forwardRef } from '@angular/core';
2
- import { NG_VALUE_ACCESSOR } from '@angular/forms';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@angular/common";
5
- export class RadioButtonControlComponent {
6
- constructor() {
7
- this._value = undefined;
8
- this.onChange = (args) => { };
9
- this.onTouched = () => { };
10
- }
11
- ngOnInit() {
12
- this.options = this.options.map((opt) => ({ ...opt, checked: false }));
13
- this.updateSelectedOption();
14
- }
15
- writeValue(value) {
16
- this.value = value;
17
- const newValueOpt = this.options.find((opt) => opt.value === value);
18
- if (newValueOpt) {
19
- Object.assign(newValueOpt, { checked: true });
20
- }
21
- }
22
- registerOnChange(fn) {
23
- this.onChange = fn;
24
- }
25
- registerOnTouched(fn) {
26
- this.onTouched = fn;
27
- }
28
- get value() {
29
- return this._value ?? '';
30
- }
31
- set value(value) {
32
- this._value = value;
33
- }
34
- handleClick(option) {
35
- if (this.allowUnselect && option.checked) {
36
- option.checked = false;
37
- // doesn't fire by itself, so we create a synthetic change event
38
- this.handleChange(option);
39
- }
40
- else if (!option.checked) {
41
- option.checked = true;
42
- }
43
- }
44
- handleChange(option) {
45
- if (!option.checked) {
46
- this.value = undefined;
47
- }
48
- else {
49
- this.value = option.value;
50
- }
51
- this.onChange(this.value);
52
- }
53
- ngOnChanges(changes) {
54
- if (changes.selected) {
55
- this.updateSelectedOption();
56
- }
57
- }
58
- updateSelectedOption() {
59
- if (this.selected) {
60
- const maybeOpt = this.options.find((opt) => opt.value === this.selected);
61
- if (maybeOpt) {
62
- this.options.forEach((opt) => (opt.checked = opt === maybeOpt));
63
- this.value = this.selected;
64
- }
65
- }
66
- }
67
- }
68
- RadioButtonControlComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RadioButtonControlComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
69
- RadioButtonControlComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: RadioButtonControlComponent, selector: "ofe-radio-button", inputs: { id: "id", options: "options", selected: "selected", allowUnselect: "allowUnselect", orientation: "orientation" }, providers: [
70
- {
71
- provide: NG_VALUE_ACCESSOR,
72
- useExisting: forwardRef(() => RadioButtonControlComponent),
73
- multi: true
74
- }
75
- ], usesOnChanges: true, ngImport: i0, template: "<fieldset class=\"cds--fieldset\">\n <div\n *ngFor=\"let option of options; let i = index\"\n class=\"cds--form-item cds--radio-wrapper\"\n [ngClass]=\"{ inline: orientation === 'horizontal' }\"\n >\n <label class=\"form-control no-border\">\n <input\n type=\"radio\"\n [id]=\"id + '_' + i\"\n [name]=\"id\"\n [checked]=\"option.checked\"\n [value]=\"option.value\"\n (click)=\"handleClick(option)\"\n (change)=\"handleChange(option)\"\n />\n {{ option.label }}\n </label>\n </div>\n</fieldset>\n", styles: [".inline{display:inline-block;padding-right:.5rem}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
76
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RadioButtonControlComponent, decorators: [{
77
- type: Component,
78
- args: [{ selector: 'ofe-radio-button', providers: [
79
- {
80
- provide: NG_VALUE_ACCESSOR,
81
- useExisting: forwardRef(() => RadioButtonControlComponent),
82
- multi: true
83
- }
84
- ], template: "<fieldset class=\"cds--fieldset\">\n <div\n *ngFor=\"let option of options; let i = index\"\n class=\"cds--form-item cds--radio-wrapper\"\n [ngClass]=\"{ inline: orientation === 'horizontal' }\"\n >\n <label class=\"form-control no-border\">\n <input\n type=\"radio\"\n [id]=\"id + '_' + i\"\n [name]=\"id\"\n [checked]=\"option.checked\"\n [value]=\"option.value\"\n (click)=\"handleClick(option)\"\n (change)=\"handleChange(option)\"\n />\n {{ option.label }}\n </label>\n </div>\n</fieldset>\n", styles: [".inline{display:inline-block;padding-right:.5rem}\n"] }]
85
- }], propDecorators: { id: [{
86
- type: Input
87
- }], options: [{
88
- type: Input
89
- }], selected: [{
90
- type: Input
91
- }], allowUnselect: [{
92
- type: Input
93
- }], orientation: [{
94
- type: Input
95
- }] } });
96
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWZvcm1lbnRyeS9zcmMvY29tcG9uZW50cy9yYWRpby1idXR0b24vcmFkaW8uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWZvcm1lbnRyeS9zcmMvY29tcG9uZW50cy9yYWRpby1idXR0b24vcmFkaW8uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsVUFBVSxFQUlYLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBY3pFLE1BQU0sT0FBTywyQkFBMkI7SUFaeEM7UUFvQlUsV0FBTSxHQUFRLFNBQVMsQ0FBQztRQXFEekIsYUFBUSxHQUFHLENBQUMsSUFBSSxFQUFFLEVBQUUsR0FBRSxDQUFDLENBQUM7UUFDeEIsY0FBUyxHQUFHLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztLQWlCN0I7SUFyRVEsUUFBUTtRQUNiLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEdBQUcsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3ZFLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFTSxVQUFVLENBQUMsS0FBVTtRQUMxQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLEtBQUssS0FBSyxLQUFLLENBQUMsQ0FBQztRQUNwRSxJ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dCxcbiAgZm9yd2FyZFJlZixcbiAgT25Jbml0LFxuICBPbkNoYW5nZXMsXG4gIFNpbXBsZUNoYW5nZXNcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ29mZS1yYWRpby1idXR0b24nLFxuICB0ZW1wbGF0ZVVybDogJy4vcmFkaW8uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9yYWRpby5jb21wb25lbnQuY3NzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gUmFkaW9CdXR0b25Db250cm9sQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIFJhZGlvQnV0dG9uQ29udHJvbENvbXBvbmVudFxuICBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIHB1YmxpYyBpZDogU3RyaW5nO1xuICBASW5wdXQoKSBwdWJsaWMgb3B0aW9uczogQXJyYXk8YW55PjtcbiAgQElucHV0KCkgcHVibGljIHNlbGVjdGVkOiBhbnk7XG4gIEBJbnB1dCgpIHB1YmxpYyBhbGxvd1Vuc2VsZWN0OiBib29sZWFuO1xuICBASW5wdXQoKSBwdWJsaWMgb3JpZW50YXRpb246IHN0cmluZztcblxuICBwcml2YXRlIF92YWx1ZTogYW55ID0gdW5kZWZpbmVkO1xuXG4gIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLm9wdGlvbnMgPSB0aGlzLm9wdGlvbnMubWFwKChvcHQpID0+ICh7IC4uLm9wdCwgY2hlY2tlZDogZmFsc2UgfSkpO1xuICAgIHRoaXMudXBkYXRlU2VsZWN0ZWRPcHRpb24oKTtcbiAgfVxuXG4gIHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgY29uc3QgbmV3VmFsdWVPcHQgPSB0aGlzLm9wdGlvbnMuZmluZCgob3B0KSA9PiBvcHQudmFsdWUgPT09IHZhbHVlKTtcbiAgICBpZiAobmV3VmFsdWVPcHQpIHtcbiAgICAgIE9iamVjdC5hc3NpZ24obmV3VmFsdWVPcHQsIHsgY2hlY2tlZDogdHJ1ZSB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShcbiAgICBmbjogKG5ld1ZhbHVlPzogYW55LCBlbWl0TW9kZWxFdmVudD86IGJvb2xlYW4pID0+IHZvaWRcbiAgKSB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKSB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIGdldCB2YWx1ZSgpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLl92YWx1ZSA/PyAnJztcbiAgfVxuXG4gIHNldCB2YWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGVDbGljayhvcHRpb24pIHtcbiAgICBpZiAodGhpcy5hbGxvd1Vuc2VsZWN0ICYmIG9wdGlvbi5jaGVja2VkKSB7XG4gICAgICBvcHRpb24uY2hlY2tlZCA9IGZhbHNlO1xuICAgICAgLy8gZG9lc24ndCBmaXJlIGJ5IGl0c2VsZiwgc28gd2UgY3JlYXRlIGEgc3ludGhldGljIGNoYW5nZSBldmVudFxuICAgICAgdGhpcy5oYW5kbGVDaGFuZ2Uob3B0aW9uKTtcbiAgICB9IGVsc2UgaWYgKCFvcHRpb24uY2hlY2tlZCkge1xuICAgICAgb3B0aW9uLmNoZWNrZWQgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGVDaGFuZ2Uob3B0aW9uKSB7XG4gICAgaWYgKCFvcHRpb24uY2hlY2tlZCkge1xuICAgICAgdGhpcy52YWx1ZSA9IHVuZGVmaW5lZDtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy52YWx1ZSA9IG9wdGlvbi52YWx1ZTtcbiAgICB9XG5cbiAgICB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsdWUpO1xuICB9XG5cbiAgcHVibGljIG9uQ2hhbmdlID0gKGFyZ3MpID0+IHt9O1xuICBwdWJsaWMgb25Ub3VjaGVkID0gKCkgPT4ge307XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzLnNlbGVjdGVkKSB7XG4gICAgICB0aGlzLnVwZGF0ZVNlbGVjdGVkT3B0aW9uKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVTZWxlY3RlZE9wdGlvbigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zZWxlY3RlZCkge1xuICAgICAgY29uc3QgbWF5YmVPcHQgPSB0aGlzLm9wdGlvbnMuZmluZCgob3B0KSA9PiBvcHQudmFsdWUgPT09IHRoaXMuc2VsZWN0ZWQpO1xuICAgICAgaWYgKG1heWJlT3B0KSB7XG4gICAgICAgIHRoaXMub3B0aW9ucy5mb3JFYWNoKChvcHQpID0+IChvcHQuY2hlY2tlZCA9IG9wdCA9PT0gbWF5YmVPcHQpKTtcbiAgICAgICAgdGhpcy52YWx1ZSA9IHRoaXMuc2VsZWN0ZWQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCI8ZmllbGRzZXQgY2xhc3M9XCJjZHMtLWZpZWxkc2V0XCI+XG4gIDxkaXZcbiAgICAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIG9wdGlvbnM7IGxldCBpID0gaW5kZXhcIlxuICAgIGNsYXNzPVwiY2RzLS1mb3JtLWl0ZW0gY2RzLS1yYWRpby13cmFwcGVyXCJcbiAgICBbbmdDbGFzc109XCJ7IGlubGluZTogb3JpZW50YXRpb24gPT09ICdob3Jpem9udGFsJyB9XCJcbiAgPlxuICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY29udHJvbCBuby1ib3JkZXJcIj5cbiAgICAgIDxpbnB1dFxuICAgICAgICB0eXBlPVwicmFkaW9cIlxuICAgICAgICBbaWRdPVwiaWQgKyAnXycgKyBpXCJcbiAgICAgICAgW25hbWVdPVwiaWRcIlxuICAgICAgICBbY2hlY2tlZF09XCJvcHRpb24uY2hlY2tlZFwiXG4gICAgICAgIFt2YWx1ZV09XCJvcHRpb24udmFsdWVcIlxuICAgICAgICAoY2xpY2spPVwiaGFuZGxlQ2xpY2sob3B0aW9uKVwiXG4gICAgICAgIChjaGFuZ2UpPVwiaGFuZGxlQ2hhbmdlKG9wdGlvbilcIlxuICAgICAgLz5cbiAgICAgIHt7IG9wdGlvbi5sYWJlbCB9fVxuICAgIDwvbGFiZWw+XG4gIDwvZGl2PlxuPC9maWVsZHNldD5cbiJdfQ==
@@ -1,182 +0,0 @@
1
- import { Component, ElementRef, Input, Output, HostListener, EventEmitter, TemplateRef, ViewChild } from '@angular/core';
2
- import { NG_VALUE_ACCESSOR } from '@angular/forms';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@angular/common";
5
- /**
6
- * `ofe-select` provides a styled `select` component.
7
- *
8
- * [See demo](../../?path=/story/select--basic)
9
- *
10
- * Example:
11
- *
12
- * ```
13
- * <ofe-select [(ngModel)]="model">
14
- * <option value="default" disabled selected hidden>Choose an option</option>
15
- * <option value="option1">Option 1</option>
16
- * <option value="option2">Option 2</option>
17
- * <option value="option3">Option 3</option>
18
- * </ofe-select>
19
- * ```
20
- *
21
- * <example-url>../../iframe.html?id=select--basic</example-url>
22
- */
23
- export class SelectComponent {
24
- constructor() {
25
- /**
26
- * `inline` or `default` select displays
27
- */
28
- this.display = 'default';
29
- /**
30
- * Set to `true` to show a warning (contents set by warningText)
31
- */
32
- this.warn = false;
33
- /**
34
- * Sets the unique ID. Defaults to `select-${total count of selects instantiated}`
35
- */
36
- this.id = `select-${SelectComponent.selectCount++}`;
37
- /**
38
- * Number input field render size
39
- */
40
- this.size = 'md';
41
- /**
42
- * Set to true to disable component.
43
- */
44
- this.disabled = false;
45
- /**
46
- * Set to true for a loading select.
47
- */
48
- this.skeleton = false;
49
- /**
50
- * Set to `true` for an invalid select component.
51
- */
52
- this.invalid = false;
53
- /**
54
- * `light` or `dark` select theme
55
- */
56
- this.theme = 'dark';
57
- this.valueChange = new EventEmitter();
58
- /**
59
- * placeholder declarations. Replaced by the functions provided to `registerOnChange` and `registerOnTouched`
60
- */
61
- this.onChangeHandler = (_) => { };
62
- this.onTouchedHandler = () => { };
63
- }
64
- set value(v) {
65
- this._value = v;
66
- if (this.select) {
67
- this.select.nativeElement.value = this._value;
68
- }
69
- }
70
- get value() {
71
- return this._value;
72
- }
73
- ngAfterViewInit() {
74
- if (this.value !== undefined &&
75
- this.value !== null &&
76
- this.select &&
77
- this.select.nativeElement.value !== this.value) {
78
- this.select.nativeElement.value = this.value;
79
- }
80
- }
81
- /**
82
- * Receives a value from the model.
83
- */
84
- writeValue(obj) {
85
- this.value = obj;
86
- }
87
- /**
88
- * Registers a listener that notifies the model when the control updates
89
- */
90
- registerOnChange(fn) {
91
- this.onChangeHandler = fn;
92
- }
93
- /**
94
- * Registers a listener that notifies the model when the control is blurred
95
- */
96
- registerOnTouched(fn) {
97
- this.onTouchedHandler = fn;
98
- }
99
- /**
100
- * Sets the disabled state through the model
101
- */
102
- setDisabledState(isDisabled) {
103
- this.disabled = isDisabled;
104
- }
105
- /**
106
- * Handles the change event from the `select`.
107
- * Sends events to the change handler and emits a `selected` event.
108
- */
109
- onChange(event) {
110
- this.value = event.target.value;
111
- this.onChangeHandler(event.target.value);
112
- this.valueChange.emit(event.target.value);
113
- }
114
- /**
115
- * Listens for the host blurring, and notifies the model
116
- */
117
- focusOut() {
118
- this.onTouchedHandler();
119
- }
120
- isTemplate(value) {
121
- return value instanceof TemplateRef;
122
- }
123
- }
124
- /**
125
- * Tracks the total number of selects instantiated. Used to generate unique IDs
126
- */
127
- SelectComponent.selectCount = 0;
128
- SelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
129
- SelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: SelectComponent, selector: "ofe-select", inputs: { display: "display", label: "label", helperText: "helperText", invalidText: "invalidText", warn: "warn", warnText: "warnText", id: "id", size: "size", disabled: "disabled", skeleton: "skeleton", invalid: "invalid", theme: "theme", ariaLabel: "ariaLabel", value: "value" }, outputs: { valueChange: "valueChange" }, host: { listeners: { "focusout": "focusOut()" } }, providers: [
130
- {
131
- provide: NG_VALUE_ACCESSOR,
132
- useExisting: SelectComponent,
133
- multi: true
134
- }
135
- ], viewQueries: [{ propertyName: "select", first: true, predicate: ["select"], descendants: true }], ngImport: i0, template: "<div class=\"cds--form-item\">\n <ng-template [ngIf]=\"skeleton\">\n <div *ngIf=\"label\" class=\"cds--label cds--skeleton\"></div>\n <div class=\"cds--select cds--skeleton\"></div>\n </ng-template>\n <div\n *ngIf=\"!skeleton\"\n class=\"cds--select\"\n [ngClass]=\"{\n 'cds--select--inline': display === 'inline',\n 'cds--select--light': theme === 'light',\n 'cds--select--invalid': invalid,\n 'cds--select--warning': warn,\n 'cds--select--disabled': disabled\n }\"\n >\n <label *ngIf=\"label\" [for]=\"id\" class=\"cds--label\">\n <ng-container *ngIf=\"!isTemplate(label)\">{{ label }}</ng-container>\n <ng-template\n *ngIf=\"isTemplate(label)\"\n [ngTemplateOutlet]=\"label\"\n ></ng-template>\n </label>\n <div *ngIf=\"helperText\" class=\"cds--form__helper-text\">\n <ng-container *ngIf=\"!isTemplate(helperText)\">{{\n helperText\n }}</ng-container>\n <ng-template\n *ngIf=\"isTemplate(helperText)\"\n [ngTemplateOutlet]=\"helperText\"\n ></ng-template>\n </div>\n <div\n *ngIf=\"display === 'inline'; else noInline\"\n class=\"cds--select-input--inline__wrapper\"\n >\n <ng-container *ngTemplateOutlet=\"noInline\"></ng-container>\n </div>\n </div>\n</div>\n\n<!-- select element: dynamically projected based on 'display' variant -->\n<ng-template #noInline>\n <div\n class=\"cds--select-input__wrapper extend\"\n [attr.data-invalid]=\"invalid ? true : null\"\n >\n <select\n #select\n [attr.id]=\"id\"\n [attr.aria-label]=\"ariaLabel\"\n [disabled]=\"disabled\"\n (change)=\"onChange($event)\"\n [attr.aria-invalid]=\"invalid ? 'true' : null\"\n class=\"cds--select-input\"\n [ngClass]=\"{\n 'cds--select-input--xl': size === 'xl',\n 'cds--select-input--sm': size === 'sm'\n }\"\n >\n <ng-content></ng-content>\n </select>\n <svg\n focusable=\"false\"\n preserveAspectRatio=\"xMidYMid meet\"\n style=\"will-change: transform\"\n xmlns=\"http://www.w3.org/2000/svg\"\n class=\"cds--select__arrow\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n aria-hidden=\"true\"\n >\n <path d=\"M8 11L3 6 3.7 5.3 8 9.6 12.3 5.3 13 6z\"></path>\n </svg>\n <svg\n *ngIf=\"invalid\"\n focusable=\"false\"\n preserveAspectRatio=\"xMidYMid meet\"\n style=\"will-change: transform\"\n xmlns=\"http://www.w3.org/2000/svg\"\n class=\"cds--text-input__invalid-icon\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n aria-hidden=\"true\"\n >\n <path\n d=\"M8,1C4.2,1,1,4.2,1,8s3.2,7,7,7s7-3.1,7-7S11.9,1,8,1z M7.5,4h1v5h-1C7.5,9,7.5,4,7.5,4z M8,12.2 c-0.4,0-0.8-0.4-0.8-0.8s0.3-0.8,0.8-0.8c0.4,0,0.8,0.4,0.8,0.8S8.4,12.2,8,12.2z\"\n ></path>\n <path\n d=\"M7.5,4h1v5h-1C7.5,9,7.5,4,7.5,4z M8,12.2c-0.4,0-0.8-0.4-0.8-0.8s0.3-0.8,0.8-0.8 c0.4,0,0.8,0.4,0.8,0.8S8.4,12.2,8,12.2z\"\n data-icon-path=\"inner-path\"\n opacity=\"0\"\n ></path>\n </svg>\n </div>\n <div\n *ngIf=\"invalid && invalidText && !warn\"\n role=\"alert\"\n class=\"cds--form-requirement\"\n aria-live=\"polite\"\n >\n <ng-container *ngIf=\"!isTemplate(invalidText)\">{{\n invalidText\n }}</ng-container>\n <ng-template\n *ngIf=\"isTemplate(invalidText)\"\n [ngTemplateOutlet]=\"invalidText\"\n ></ng-template>\n </div>\n <div *ngIf=\"!invalid && warn\" class=\"cds--form-requirement\">\n <ng-container *ngIf=\"!isTemplate(warnText)\">{{ warnText }}</ng-container>\n <ng-template\n *ngIf=\"isTemplate(warnText)\"\n [ngTemplateOutlet]=\"warnText\"\n ></ng-template>\n </div>\n</ng-template>\n", styles: [".cds--select--inline .cds--form__helper-text{order:4}.cds--select--inline:not(.cds--select--invalid) .cds--form__helper-text{margin-top:0}.cds--select-input__wrapper{min-width:16rem}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
136
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SelectComponent, decorators: [{
137
- type: Component,
138
- args: [{ selector: 'ofe-select', providers: [
139
- {
140
- provide: NG_VALUE_ACCESSOR,
141
- useExisting: SelectComponent,
142
- multi: true
143
- }
144
- ], template: "<div class=\"cds--form-item\">\n <ng-template [ngIf]=\"skeleton\">\n <div *ngIf=\"label\" class=\"cds--label cds--skeleton\"></div>\n <div class=\"cds--select cds--skeleton\"></div>\n </ng-template>\n <div\n *ngIf=\"!skeleton\"\n class=\"cds--select\"\n [ngClass]=\"{\n 'cds--select--inline': display === 'inline',\n 'cds--select--light': theme === 'light',\n 'cds--select--invalid': invalid,\n 'cds--select--warning': warn,\n 'cds--select--disabled': disabled\n }\"\n >\n <label *ngIf=\"label\" [for]=\"id\" class=\"cds--label\">\n <ng-container *ngIf=\"!isTemplate(label)\">{{ label }}</ng-container>\n <ng-template\n *ngIf=\"isTemplate(label)\"\n [ngTemplateOutlet]=\"label\"\n ></ng-template>\n </label>\n <div *ngIf=\"helperText\" class=\"cds--form__helper-text\">\n <ng-container *ngIf=\"!isTemplate(helperText)\">{{\n helperText\n }}</ng-container>\n <ng-template\n *ngIf=\"isTemplate(helperText)\"\n [ngTemplateOutlet]=\"helperText\"\n ></ng-template>\n </div>\n <div\n *ngIf=\"display === 'inline'; else noInline\"\n class=\"cds--select-input--inline__wrapper\"\n >\n <ng-container *ngTemplateOutlet=\"noInline\"></ng-container>\n </div>\n </div>\n</div>\n\n<!-- select element: dynamically projected based on 'display' variant -->\n<ng-template #noInline>\n <div\n class=\"cds--select-input__wrapper extend\"\n [attr.data-invalid]=\"invalid ? true : null\"\n >\n <select\n #select\n [attr.id]=\"id\"\n [attr.aria-label]=\"ariaLabel\"\n [disabled]=\"disabled\"\n (change)=\"onChange($event)\"\n [attr.aria-invalid]=\"invalid ? 'true' : null\"\n class=\"cds--select-input\"\n [ngClass]=\"{\n 'cds--select-input--xl': size === 'xl',\n 'cds--select-input--sm': size === 'sm'\n }\"\n >\n <ng-content></ng-content>\n </select>\n <svg\n focusable=\"false\"\n preserveAspectRatio=\"xMidYMid meet\"\n style=\"will-change: transform\"\n xmlns=\"http://www.w3.org/2000/svg\"\n class=\"cds--select__arrow\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n aria-hidden=\"true\"\n >\n <path d=\"M8 11L3 6 3.7 5.3 8 9.6 12.3 5.3 13 6z\"></path>\n </svg>\n <svg\n *ngIf=\"invalid\"\n focusable=\"false\"\n preserveAspectRatio=\"xMidYMid meet\"\n style=\"will-change: transform\"\n xmlns=\"http://www.w3.org/2000/svg\"\n class=\"cds--text-input__invalid-icon\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n aria-hidden=\"true\"\n >\n <path\n d=\"M8,1C4.2,1,1,4.2,1,8s3.2,7,7,7s7-3.1,7-7S11.9,1,8,1z M7.5,4h1v5h-1C7.5,9,7.5,4,7.5,4z M8,12.2 c-0.4,0-0.8-0.4-0.8-0.8s0.3-0.8,0.8-0.8c0.4,0,0.8,0.4,0.8,0.8S8.4,12.2,8,12.2z\"\n ></path>\n <path\n d=\"M7.5,4h1v5h-1C7.5,9,7.5,4,7.5,4z M8,12.2c-0.4,0-0.8-0.4-0.8-0.8s0.3-0.8,0.8-0.8 c0.4,0,0.8,0.4,0.8,0.8S8.4,12.2,8,12.2z\"\n data-icon-path=\"inner-path\"\n opacity=\"0\"\n ></path>\n </svg>\n </div>\n <div\n *ngIf=\"invalid && invalidText && !warn\"\n role=\"alert\"\n class=\"cds--form-requirement\"\n aria-live=\"polite\"\n >\n <ng-container *ngIf=\"!isTemplate(invalidText)\">{{\n invalidText\n }}</ng-container>\n <ng-template\n *ngIf=\"isTemplate(invalidText)\"\n [ngTemplateOutlet]=\"invalidText\"\n ></ng-template>\n </div>\n <div *ngIf=\"!invalid && warn\" class=\"cds--form-requirement\">\n <ng-container *ngIf=\"!isTemplate(warnText)\">{{ warnText }}</ng-container>\n <ng-template\n *ngIf=\"isTemplate(warnText)\"\n [ngTemplateOutlet]=\"warnText\"\n ></ng-template>\n </div>\n</ng-template>\n", styles: [".cds--select--inline .cds--form__helper-text{order:4}.cds--select--inline:not(.cds--select--invalid) .cds--form__helper-text{margin-top:0}.cds--select-input__wrapper{min-width:16rem}\n"] }]
145
- }], propDecorators: { display: [{
146
- type: Input
147
- }], label: [{
148
- type: Input
149
- }], helperText: [{
150
- type: Input
151
- }], invalidText: [{
152
- type: Input
153
- }], warn: [{
154
- type: Input
155
- }], warnText: [{
156
- type: Input
157
- }], id: [{
158
- type: Input
159
- }], size: [{
160
- type: Input
161
- }], disabled: [{
162
- type: Input
163
- }], skeleton: [{
164
- type: Input
165
- }], invalid: [{
166
- type: Input
167
- }], theme: [{
168
- type: Input
169
- }], ariaLabel: [{
170
- type: Input
171
- }], valueChange: [{
172
- type: Output
173
- }], select: [{
174
- type: ViewChild,
175
- args: ['select', { static: false }]
176
- }], value: [{
177
- type: Input
178
- }], focusOut: [{
179
- type: HostListener,
180
- args: ['focusout']
181
- }] } });
182
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1mb3JtZW50cnkvc3JjL2NvbXBvbmVudHMvc2VsZWN0L3NlbGVjdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtZm9ybWVudHJ5L3NyYy9jb21wb25lbnRzL3NlbGVjdC9zZWxlY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsS0FBSyxFQUNMLE1BQU0sRUFDTixZQUFZLEVBQ1osWUFBWSxFQUNaLFdBQVcsRUFDWCxTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFFekU7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaUJHO0FBYUgsTUFBTSxPQUFPLGVBQWU7SUFaNUI7UUFrQkU7O1dBRUc7UUFDTSxZQUFPLEdBQXlCLFNBQVMsQ0FBQztRQWFuRDs7V0FFRztRQUNNLFNBQUksR0FBRyxLQUFLLENBQUM7UUFLdEI7O1dBRUc7UUFDTSxPQUFFLEdBQUcsVUFBVSxlQUFlLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQztRQUN4RDs7V0FFRztRQUNNLFNBQUksR0FBdUIsSUFBSSxDQUFDO1FBQ3pDOztXQUVHO1FBQ00sYUFBUSxHQUFHLEtBQUssQ0FBQztRQUMxQjs7V0FFRztRQUNNLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDMUI7O1dBRUc7UUFDTSxZQUFPLEdBQUcsS0FBSyxDQUFDO1FBRXpCOztXQUVHO1FBQ00sVUFBSyxHQUFxQixNQUFNLENBQUM7UUFHaEMsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBOEUzQzs7V0FFRztRQUNPLG9CQUFlLEdBQUcsQ0FBQyxDQUFNLEVBQUUsRUFBRSxHQUFFLENBQUMsQ0FBQztRQUNq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LE1BQU07c0JBQTdDLFNBQVM7dUJBQUMsUUFBUSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFFekIsS0FBSztzQkFBakIsS0FBSztnQkFrRU4sUUFBUTtzQkFEUCxZQUFZO3VCQUFDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIEhvc3RMaXN0ZW5lcixcbiAgRXZlbnRFbWl0dGVyLFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG4vKipcbiAqIGBvZmUtc2VsZWN0YCBwcm92aWRlcyBhIHN0eWxlZCBgc2VsZWN0YCBjb21wb25lbnQuXG4gKlxuICogW1NlZSBkZW1vXSguLi8uLi8/cGF0aD0vc3Rvcnkvc2VsZWN0LS1iYXNpYylcbiAqXG4gKiBFeGFtcGxlOlxuICpcbiAqIGBgYFxuICogPG9mZS1zZWxlY3QgWyhuZ01vZGVsKV09XCJtb2RlbFwiPlxuICogICAgIDxvcHRpb24gdmFsdWU9XCJkZWZhdWx0XCIgZGlzYWJsZWQgc2VsZWN0ZWQgaGlkZGVuPkNob29zZSBhbiBvcHRpb248L29wdGlvbj5cbiAqICAgICA8b3B0aW9uIHZhbHVlPVwib3B0aW9uMVwiPk9wdGlvbiAxPC9vcHRpb24+XG4gKiAgICA8b3B0aW9uIHZhbHVlPVwib3B0aW9uMlwiPk9wdGlvbiAyPC9vcHRpb24+XG4gKiAgICAgPG9wdGlvbiB2YWx1ZT1cIm9wdGlvbjNcIj5PcHRpb24gMzwvb3B0aW9uPlxuICogPC9vZmUtc2VsZWN0PlxuICogICAgYGBgXG4gKlxuICogPGV4YW1wbGUtdXJsPi4uLy4uL2lmcmFtZS5odG1sP2lkPXNlbGVjdC0tYmFzaWM8L2V4YW1wbGUtdXJsPlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdvZmUtc2VsZWN0JyxcbiAgdGVtcGxhdGVVcmw6ICdzZWxlY3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zZWxlY3QuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogU2VsZWN0Q29tcG9uZW50LFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgU2VsZWN0Q29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEFmdGVyVmlld0luaXQge1xuICAvKipcbiAgICogVHJhY2tzIHRoZSB0b3RhbCBudW1iZXIgb2Ygc2VsZWN0cyBpbnN0YW50aWF0ZWQuIFVzZWQgdG8gZ2VuZXJhdGUgdW5pcXVlIElEc1xuICAgKi9cbiAgc3RhdGljIHNlbGVjdENvdW50ID0gMDtcblxuICAvKipcbiAgICogYGlubGluZWAgb3IgYGRlZmF1bHRgIHNlbGVjdCBkaXNwbGF5c1xuICAgKi9cbiAgQElucHV0KCkgZGlzcGxheTogJ2lubGluZScgfCAnZGVmYXVsdCcgPSAnZGVmYXVsdCc7XG4gIC8qKlxuICAgKiBMYWJlbCBmb3IgdGhlIHNlbGVjdC4gQXBwZWFycyBhYm92ZSB0aGUgaW5wdXQuXG4gICAqL1xuICBASW5wdXQoKSBsYWJlbDogc3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55PjtcbiAgLyoqXG4gICAqIE9wdGlvbmFsIGhlbHBlciB0ZXh0IHRoYXQgYXBwZWFycyB1bmRlciB0aGUgbGFiZWwuXG4gICAqL1xuICBASW5wdXQoKSBoZWxwZXJUZXh0OiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+O1xuICAvKipcbiAgICogU2V0cyB0aGUgaW52YWxpZCB0ZXh0LlxuICAgKi9cbiAgQElucHV0KCkgaW52YWxpZFRleHQ6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT47XG4gIC8qKlxuICAgKiBTZXQgdG8gYHRydWVgIHRvIHNob3cgYSB3YXJuaW5nIChjb250ZW50cyBzZXQgYnkgd2FybmluZ1RleHQpXG4gICAqL1xuICBASW5wdXQoKSB3YXJuID0gZmFsc2U7XG4gIC8qKlxuICAgKiBTZXRzIHRoZSB3YXJuaW5nIHRleHRcbiAgICovXG4gIEBJbnB1dCgpIHdhcm5UZXh0OiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+O1xuICAvKipcbiAgICogU2V0cyB0aGUgdW5pcXVlIElELiBEZWZhdWx0cyB0byBgc2VsZWN0LSR7dG90YWwgY291bnQgb2Ygc2VsZWN0cyBpbnN0YW50aWF0ZWR9YFxuICAgKi9cbiAgQElucHV0KCkgaWQgPSBgc2VsZWN0LSR7U2VsZWN0Q29tcG9uZW50LnNlbGVjdENvdW50Kyt9YDtcbiAgLyoqXG4gICAqIE51bWJlciBpbnB1dCBmaWVsZCByZW5kZXIgc2l6ZVxuICAgKi9cbiAgQElucHV0KCkgc2l6ZTogJ3NtJyB8ICdtZCcgfCAneGwnID0gJ21kJztcbiAgLyoqXG4gICAqIFNldCB0byB0cnVlIHRvIGRpc2FibGUgY29tcG9uZW50LlxuICAgKi9cbiAgQElucHV0KCkgZGlzYWJsZWQgPSBmYWxzZTtcbiAgLyoqXG4gICAqIFNldCB0byB0cnVlIGZvciBhIGxvYWRpbmcgc2VsZWN0LlxuICAgKi9cbiAgQElucHV0KCkgc2tlbGV0b24gPSBmYWxzZTtcbiAgLyoqXG4gICAqIFNldCB0byBgdHJ1ZWAgZm9yIGFuIGludmFsaWQgc2VsZWN0IGNvbXBvbmVudC5cbiAgICovXG4gIEBJbnB1dCgpIGludmFsaWQgPSBmYWxzZTtcblxuICAvKipcbiAgICogYGxpZ2h0YCBvciBgZGFya2Agc2VsZWN0IHRoZW1lXG4gICAqL1xuICBASW5wdXQoKSB0aGVtZTogJ2xpZ2h0JyB8ICdkYXJrJyA9ICdkYXJrJztcbiAgQElucHV0KCkgYXJpYUxhYmVsOiBzdHJpbmc7XG5cbiAgQE91dHB1dCgpIHZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBWaWV3Q2hpbGQoJ3NlbGVjdCcsIHsgc3RhdGljOiBmYWxzZSB9KSBzZWxlY3Q6IEVsZW1lbnRSZWY7XG5cbiAgQElucHV0KCkgc2V0IHZhbHVlKHYpIHtcbiAgICB0aGlzLl92YWx1ZSA9IHY7XG4gICAgaWYgKHRoaXMuc2VsZWN0KSB7XG4gICAgICB0aGlzLnNlbGVjdC5uYXRpdmVFbGVtZW50LnZhbHVlID0gdGhpcy5fdmFsdWU7XG4gICAgfVxuICB9XG5cbiAgZ2V0IHZhbHVlKCkge1xuICAgIHJldHVybiB0aGlzLl92YWx1ZTtcbiAgfVxuXG4gIHByb3RlY3RlZCBfdmFsdWU7XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIGlmIChcbiAgICAgIHRoaXMudmFsdWUgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgdGhpcy52YWx1ZSAhPT0gbnVsbCAmJlxuICAgICAgdGhpcy5zZWxlY3QgJiZcbiAgICAgIHRoaXMuc2VsZWN0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgIT09IHRoaXMudmFsdWVcbiAgICApIHtcbiAgICAgIHRoaXMuc2VsZWN0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSB0aGlzLnZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZWNlaXZlcyBhIHZhbHVlIGZyb20gdGhlIG1vZGVsLlxuICAgKi9cbiAgd3JpdGVWYWx1ZShvYmo6IGFueSkge1xuICAgIHRoaXMudmFsdWUgPSBvYmo7XG4gIH1cblxuICAvKipcbiAgICogUmVnaXN0ZXJzIGEgbGlzdGVuZXIgdGhhdCBub3RpZmllcyB0aGUgbW9kZWwgd2hlbiB0aGUgY29udHJvbCB1cGRhdGVzXG4gICAqL1xuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpIHtcbiAgICB0aGlzLm9uQ2hhbmdlSGFuZGxlciA9IGZuO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlZ2lzdGVycyBhIGxpc3RlbmVyIHRoYXQgbm90aWZpZXMgdGhlIG1vZGVsIHdoZW4gdGhlIGNvbnRyb2wgaXMgYmx1cnJlZFxuICAgKi9cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSkge1xuICAgIHRoaXMub25Ub3VjaGVkSGFuZGxlciA9IGZuO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGRpc2FibGVkIHN0YXRlIHRocm91Z2ggdGhlIG1vZGVsXG4gICAqL1xuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBIYW5kbGVzIHRoZSBjaGFuZ2UgZXZlbnQgZnJvbSB0aGUgYHNlbGVjdGAuXG4gICAqIFNlbmRzIGV2ZW50cyB0byB0aGUgY2hhbmdlIGhhbmRsZXIgYW5kIGVtaXRzIGEgYHNlbGVjdGVkYCBldmVudC5cbiAgICovXG4gIG9uQ2hhbmdlKGV2ZW50KSB7XG4gICAgdGhpcy52YWx1ZSA9IGV2ZW50LnRhcmdldC52YWx1ZTtcbiAgICB0aGlzLm9uQ2hhbmdlSGFuZGxlcihldmVudC50YXJnZXQudmFsdWUpO1xuICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdChldmVudC50YXJnZXQudmFsdWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIExpc3RlbnMgZm9yIHRoZSBob3N0IGJsdXJyaW5nLCBhbmQgbm90aWZpZXMgdGhlIG1vZGVsXG4gICAqL1xuICBASG9zdExpc3RlbmVyKCdmb2N1c291dCcpXG4gIGZvY3VzT3V0KCkge1xuICAgIHRoaXMub25Ub3VjaGVkSGFuZGxlcigpO1xuICB9XG5cbiAgcHVibGljIGlzVGVtcGxhdGUodmFsdWUpIHtcbiAgICByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBUZW1wbGF0ZVJlZjtcbiAgfVxuXG4gIC8qKlxuICAgKiBwbGFjZWhvbGRlciBkZWNsYXJhdGlvbnMuIFJlcGxhY2VkIGJ5IHRoZSBmdW5jdGlvbnMgcHJvdmlkZWQgdG8gYHJlZ2lzdGVyT25DaGFuZ2VgIGFuZCBgcmVnaXN0ZXJPblRvdWNoZWRgXG4gICAqL1xuICBwcm90ZWN0ZWQgb25DaGFuZ2VIYW5kbGVyID0gKF86IGFueSkgPT4ge307XG4gIHByb3RlY3RlZCBvblRvdWNoZWRIYW5kbGVyID0gKCkgPT4ge307XG59XG4iLCI8ZGl2IGNsYXNzPVwiY2RzLS1mb3JtLWl0ZW1cIj5cbiAgPG5nLXRlbXBsYXRlIFtuZ0lmXT1cInNrZWxldG9uXCI+XG4gICAgPGRpdiAqbmdJZj1cImxhYmVsXCIgY2xhc3M9XCJjZHMtLWxhYmVsIGNkcy0tc2tlbGV0b25cIj48L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiY2RzLS1zZWxlY3QgY2RzLS1za2VsZXRvblwiPjwvZGl2PlxuICA8L25nLXRlbXBsYXRlPlxuICA8ZGl2XG4gICAgKm5nSWY9XCIhc2tlbGV0b25cIlxuICAgIGNsYXNzPVwiY2RzLS1zZWxlY3RcIlxuICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICdjZHMtLXNlbGVjdC0taW5saW5lJzogZGlzcGxheSA9PT0gJ2lubGluZScsXG4gICAgICAnY2RzLS1zZWxlY3QtLWxpZ2h0JzogdGhlbWUgPT09ICdsaWdodCcsXG4gICAgICAnY2RzLS1zZWxlY3QtLWludmFsaWQnOiBpbnZhbGlkLFxuICAgICAgJ2Nkcy0tc2VsZWN0LS13YXJuaW5nJzogd2FybixcbiAgICAgICdjZHMtLXNlbGVjdC0tZGlzYWJsZWQnOiBkaXNhYmxlZFxuICAgIH1cIlxuICA+XG4gICAgPGxhYmVsICpuZ0lmPVwibGFiZWxcIiBbZm9yXT1cImlkXCIgY2xhc3M9XCJjZHMtLWxhYmVsXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzVGVtcGxhdGUobGFiZWwpXCI+e3sgbGFiZWwgfX08L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAqbmdJZj1cImlzVGVtcGxhdGUobGFiZWwpXCJcbiAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwibGFiZWxcIlxuICAgICAgPjwvbmctdGVtcGxhdGU+XG4gICAgPC9sYWJlbD5cbiAgICA8ZGl2ICpuZ0lmPVwiaGVscGVyVGV4dFwiIGNsYXNzPVwiY2RzLS1mb3JtX19oZWxwZXItdGV4dFwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc1RlbXBsYXRlKGhlbHBlclRleHQpXCI+e3tcbiAgICAgICAgaGVscGVyVGV4dFxuICAgICAgfX08L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAqbmdJZj1cImlzVGVtcGxhdGUoaGVscGVyVGV4dClcIlxuICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJoZWxwZXJUZXh0XCJcbiAgICAgID48L25nLXRlbXBsYXRlPlxuICAgIDwvZGl2PlxuICAgIDxkaXZcbiAgICAgICpuZ0lmPVwiZGlzcGxheSA9PT0gJ2lubGluZSc7IGVsc2Ugbm9JbmxpbmVcIlxuICAgICAgY2xhc3M9XCJjZHMtLXNlbGVjdC1pbnB1dC0taW5saW5lX193cmFwcGVyXCJcbiAgICA+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibm9JbmxpbmVcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPCEtLSBzZWxlY3QgZWxlbWVudDogZHluYW1pY2FsbHkgcHJvamVjdGVkIGJhc2VkIG9uICdkaXNwbGF5JyB2YXJpYW50IC0tPlxuPG5nLXRlbXBsYXRlICNub0lubGluZT5cbiAgPGRpdlxuICAgIGNsYXNzPVwiY2RzLS1zZWxlY3QtaW5wdXRfX3dyYXBwZXIgZXh0ZW5kXCJcbiAgICBbYXR0ci5kYXRhLWludmFsaWRdPVwiaW52YWxpZCA/IHRydWUgOiBudWxsXCJcbiAgPlxuICAgIDxzZWxlY3RcbiAgICAgICNzZWxlY3RcbiAgICAgIFthdHRyLmlkXT1cImlkXCJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYUxhYmVsXCJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAoY2hhbmdlKT1cIm9uQ2hhbmdlKCRldmVudClcIlxuICAgICAgW2F0dHIuYXJpYS1pbnZhbGlkXT1cImludmFsaWQgPyAndHJ1ZScgOiBudWxsXCJcbiAgICAgIGNsYXNzPVwiY2RzLS1zZWxlY3QtaW5wdXRcIlxuICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAnY2RzLS1zZWxlY3QtaW5wdXQtLXhsJzogc2l6ZSA9PT0gJ3hsJyxcbiAgICAgICAgJ2Nkcy0tc2VsZWN0LWlucHV0LS1zbSc6IHNpemUgPT09ICdzbSdcbiAgICAgIH1cIlxuICAgID5cbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8L3NlbGVjdD5cbiAgICA8c3ZnXG4gICAgICBmb2N1c2FibGU9XCJmYWxzZVwiXG4gICAgICBwcmVzZXJ2ZUFzcGVjdFJhdGlvPVwieE1pZFlNaWQgbWVldFwiXG4gICAgICBzdHlsZT1cIndpbGwtY2hhbmdlOiB0cmFuc2Zvcm1cIlxuICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICBjbGFzcz1cImNkcy0tc2VsZWN0X19hcnJvd1wiXG4gICAgICB3aWR0aD1cIjE2XCJcbiAgICAgIGhlaWdodD1cIjE2XCJcbiAgICAgIHZpZXdCb3g9XCIwIDAgMTYgMTZcIlxuICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICA+XG4gICAgICA8cGF0aCBkPVwiTTggMTFMMyA2IDMuNyA1LjMgOCA5LjYgMTIuMyA1LjMgMTMgNnpcIj48L3BhdGg+XG4gICAgPC9zdmc+XG4gICAgPHN2Z1xuICAgICAgKm5nSWY9XCJpbnZhbGlkXCJcbiAgICAgIGZvY3VzYWJsZT1cImZhbHNlXCJcbiAgICAgIHByZXNlcnZlQXNwZWN0UmF0aW89XCJ4TWlkWU1pZCBtZWV0XCJcbiAgICAgIHN0eWxlPVwid2lsbC1jaGFuZ2U6IHRyYW5zZm9ybVwiXG4gICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgIGNsYXNzPVwiY2RzLS10ZXh0LWlucHV0X19pbnZhbGlkLWljb25cIlxuICAgICAgd2lkdGg9XCIxNlwiXG4gICAgICBoZWlnaHQ9XCIxNlwiXG4gICAgICB2aWV3Qm94PVwiMCAwIDE2IDE2XCJcbiAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgPlxuICAgICAgPHBhdGhcbiAgICAgICAgZD1cIk04LDFDNC4yLDEsMSw0LjIsMSw4czMuMiw3LDcsN3M3LTMuMSw3LTdTMTEuOSwxLDgsMXogTTcuNSw0aDF2NWgtMUM3LjUsOSw3LjUsNCw3LjUsNHogTTgsMTIuMiAgICBjLTAuNCwwLTAuOC0wLjQtMC44LTAuOHMwLjMtMC44LDAuOC0wLjhjMC40LDAsMC44LDAuNCwwLjgsMC44UzguNCwxMi4yLDgsMTIuMnpcIlxuICAgICAgPjwvcGF0aD5cbiAgICAgIDxwYXRoXG4gICAgICAgIGQ9XCJNNy41LDRoMXY1aC0xQzcuNSw5LDcuNSw0LDcuNSw0eiBNOCwxMi4yYy0wLjQsMC0wLjgtMC40LTAuOC0wLjhzMC4zLTAuOCwwLjgtMC44ICAgIGMwLjQsMCwwLjgsMC40LDAuOCwwLjhTOC40LDEyLjIsOCwxMi4yelwiXG4gICAgICAgIGRhdGEtaWNvbi1wYXRoPVwiaW5uZXItcGF0aFwiXG4gICAgICAgIG9wYWNpdHk9XCIwXCJcbiAgICAgID48L3BhdGg+XG4gICAgPC9zdmc+XG4gIDwvZGl2PlxuICA8ZGl2XG4gICAgKm5nSWY9XCJpbnZhbGlkICYmIGludmFsaWRUZXh0ICYmICF3YXJuXCJcbiAgICByb2xlPVwiYWxlcnRcIlxuICAgIGNsYXNzPVwiY2RzLS1mb3JtLXJlcXVpcmVtZW50XCJcbiAgICBhcmlhLWxpdmU9XCJwb2xpdGVcIlxuICA+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc1RlbXBsYXRlKGludmFsaWRUZXh0KVwiPnt7XG4gICAgICBpbnZhbGlkVGV4dFxuICAgIH19PC9uZy1jb250YWluZXI+XG4gICAgPG5nLXRlbXBsYXRlXG4gICAgICAqbmdJZj1cImlzVGVtcGxhdGUoaW52YWxpZFRleHQpXCJcbiAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImludmFsaWRUZXh0XCJcbiAgICA+PC9uZy10ZW1wbGF0ZT5cbiAgPC9kaXY+XG4gIDxkaXYgKm5nSWY9XCIhaW52YWxpZCAmJiB3YXJuXCIgY2xhc3M9XCJjZHMtLWZvcm0tcmVxdWlyZW1lbnRcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzVGVtcGxhdGUod2FyblRleHQpXCI+e3sgd2FyblRleHQgfX08L25nLWNvbnRhaW5lcj5cbiAgICA8bmctdGVtcGxhdGVcbiAgICAgICpuZ0lmPVwiaXNUZW1wbGF0ZSh3YXJuVGV4dClcIlxuICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwid2FyblRleHRcIlxuICAgID48L25nLXRlbXBsYXRlPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=