@ohioepa/oepa-ui-lib 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (299) hide show
  1. package/README.md +24 -0
  2. package/esm2022/lib/account-search-input/account-search-input.component.mjs +147 -0
  3. package/esm2022/lib/account-search-modal/account-search-modal.component.mjs +151 -0
  4. package/esm2022/lib/action-btn/action-btn.component.mjs +70 -0
  5. package/esm2022/lib/action-btn/oepa-action-event.mjs +2 -0
  6. package/esm2022/lib/action-btn/oepa-action.mjs +2 -0
  7. package/esm2022/lib/action-btn-modal/action-btn-modal.component.mjs +21 -0
  8. package/esm2022/lib/address/address.component.mjs +174 -0
  9. package/esm2022/lib/address/oepa-address.service.mjs +64 -0
  10. package/esm2022/lib/address/oepa-form-address.mjs +2 -0
  11. package/esm2022/lib/blank/blank.component.mjs +14 -0
  12. package/esm2022/lib/checkbox/checkbox.component.mjs +33 -0
  13. package/esm2022/lib/checkbox-input/checkbox-input.component.mjs +41 -0
  14. package/esm2022/lib/comment-modal/comment-modal.component.mjs +56 -0
  15. package/esm2022/lib/common-forms.module.mjs +291 -0
  16. package/esm2022/lib/confirmation-modal/confirmation-modal.component.mjs +120 -0
  17. package/esm2022/lib/contact/contact.component.mjs +102 -0
  18. package/esm2022/lib/contact/oepa-form-contact.mjs +2 -0
  19. package/esm2022/lib/date-input/date-input.component.mjs +52 -0
  20. package/esm2022/lib/date-input-modal/date-input-modal.component.mjs +68 -0
  21. package/esm2022/lib/datepicker/datepicker.component.mjs +131 -0
  22. package/esm2022/lib/daterangepicker/daterangepicker.component.mjs +70 -0
  23. package/esm2022/lib/document/document-editor/document-editor.component.mjs +225 -0
  24. package/esm2022/lib/document/document-event-entity-type.mjs +7 -0
  25. package/esm2022/lib/document/document-event-type.mjs +7 -0
  26. package/esm2022/lib/document/document-event.mjs +2 -0
  27. package/esm2022/lib/document/document-group/document-group.component.mjs +210 -0
  28. package/esm2022/lib/document/document-part/document-part.component.mjs +19 -0
  29. package/esm2022/lib/document/document-part-editor/document-part-editor.component.mjs +296 -0
  30. package/esm2022/lib/document/document-placeholder-modal/document-placeholder-modal.component.mjs +49 -0
  31. package/esm2022/lib/document/document-section/document-section.component.mjs +226 -0
  32. package/esm2022/lib/document/document.service.mjs +325 -0
  33. package/esm2022/lib/document/group-modal/group-modal.component.mjs +46 -0
  34. package/esm2022/lib/document/part-modal/part-modal.component.mjs +48 -0
  35. package/esm2022/lib/document/portal-document-class.mjs +2 -0
  36. package/esm2022/lib/document/portal-document-group.mjs +2 -0
  37. package/esm2022/lib/document/portal-document-part.mjs +2 -0
  38. package/esm2022/lib/document/portal-document-placeholder.mjs +2 -0
  39. package/esm2022/lib/document/portal-document-section.mjs +2 -0
  40. package/esm2022/lib/document/portal-document-text.mjs +2 -0
  41. package/esm2022/lib/document/portal-document-type.mjs +2 -0
  42. package/esm2022/lib/document/portal-document.mjs +2 -0
  43. package/esm2022/lib/document/portal-email-attachment-type.mjs +2 -0
  44. package/esm2022/lib/document/portal-email-attachment.mjs +2 -0
  45. package/esm2022/lib/document/portal-email-filter.mjs +2 -0
  46. package/esm2022/lib/document/portal-email.mjs +2 -0
  47. package/esm2022/lib/document/section-modal/section-modal.component.mjs +46 -0
  48. package/esm2022/lib/dual-list-box/array.pipes.mjs +71 -0
  49. package/esm2022/lib/dual-list-box/dual-list-box.component.mjs +339 -0
  50. package/esm2022/lib/dual-list-box/items-moved-event.mjs +2 -0
  51. package/esm2022/lib/dual-list-box/list-box-item.mjs +2 -0
  52. package/esm2022/lib/ebiz-address/ebiz-address.component.mjs +62 -0
  53. package/esm2022/lib/edoc-attachment/edoc-attachment.component.mjs +216 -0
  54. package/esm2022/lib/edoc-attachment/edoc-attachment.service.mjs +38 -0
  55. package/esm2022/lib/edoc-attachment/edocument-attachment-metadata.mjs +2 -0
  56. package/esm2022/lib/edoc-attachment/edocument-attachment.mjs +2 -0
  57. package/esm2022/lib/edoc-attachment/edocument-reference.mjs +2 -0
  58. package/esm2022/lib/entity/entity.service.mjs +104 -0
  59. package/esm2022/lib/entity/organization-create-modal/organization-create-modal.component.mjs +307 -0
  60. package/esm2022/lib/entity/organization-search-input/organization-search-input.component.mjs +127 -0
  61. package/esm2022/lib/entity/organization-search-modal/organization-search-modal.component.mjs +304 -0
  62. package/esm2022/lib/entity/person-create-modal/person-create-modal.component.mjs +316 -0
  63. package/esm2022/lib/entity/person-search-input/person-search-input.component.mjs +129 -0
  64. package/esm2022/lib/entity/person-search-modal/person-search-modal.component.mjs +311 -0
  65. package/esm2022/lib/entity/place-create-modal/place-create-modal.component.mjs +14 -0
  66. package/esm2022/lib/entity/place-search-input/place-search-input.component.mjs +126 -0
  67. package/esm2022/lib/entity/place-search-modal/place-search-modal.component.mjs +216 -0
  68. package/esm2022/lib/esri-map/esri-map.component.mjs +416 -0
  69. package/esm2022/lib/file-upload/file-upload.component.mjs +148 -0
  70. package/esm2022/lib/lynx-image-upload/lynx-image-upload.component.mjs +143 -0
  71. package/esm2022/lib/lynx-image-upload/lynx.service.mjs +47 -0
  72. package/esm2022/lib/masks/oepa-create-integer-mask.mjs +39 -0
  73. package/esm2022/lib/masks/oepa-integer-mask-args.mjs +2 -0
  74. package/esm2022/lib/message/message.component.mjs +19 -0
  75. package/esm2022/lib/message/oepa-message-type.mjs +7 -0
  76. package/esm2022/lib/message/oepa-message.mjs +31 -0
  77. package/esm2022/lib/message-list/message-list.component.mjs +24 -0
  78. package/esm2022/lib/multi-file-upload/multi-file-upload.component.mjs +137 -0
  79. package/esm2022/lib/notes-modal/notes-modal.component.mjs +177 -0
  80. package/esm2022/lib/notes-modal/oepa-note-result.mjs +2 -0
  81. package/esm2022/lib/notes-modal/oepa-note.mjs +2 -0
  82. package/esm2022/lib/numeric-input/numeric-input.component.mjs +50 -0
  83. package/esm2022/lib/numeric-input.directive.mjs +76 -0
  84. package/esm2022/lib/oepa-error-message/oepa-error-message.component.mjs +39 -0
  85. package/esm2022/lib/oepa-forms.service.mjs +199 -0
  86. package/esm2022/lib/oepa-images.mjs +59 -0
  87. package/esm2022/lib/oepa-wait-message/oepa-wait-message.component.mjs +29 -0
  88. package/esm2022/lib/ohio-lat-long/ohio-lat-long.component.mjs +176 -0
  89. package/esm2022/lib/parameter/parameter.mjs +2 -0
  90. package/esm2022/lib/parameter/parameter.service.mjs +47 -0
  91. package/esm2022/lib/params-help-button/params-help-button.component.mjs +42 -0
  92. package/esm2022/lib/phone-number/phone-number.component.mjs +44 -0
  93. package/esm2022/lib/pin-modal/oepa-attestation.mjs +2 -0
  94. package/esm2022/lib/pin-modal/oepa-pin.mjs +2 -0
  95. package/esm2022/lib/pin-modal/oepa-pin.service.mjs +54 -0
  96. package/esm2022/lib/pin-modal/oepa-security-question.mjs +2 -0
  97. package/esm2022/lib/pin-modal/pin-modal.component.mjs +186 -0
  98. package/esm2022/lib/progress-indicator/progress-info.mjs +2 -0
  99. package/esm2022/lib/select-input/select-input.component.mjs +96 -0
  100. package/esm2022/lib/server-timeout-modal/server-timeout-modal.component.mjs +63 -0
  101. package/esm2022/lib/shopping-cart/shopping-cart-summary/shopping-cart-summary.component.mjs +54 -0
  102. package/esm2022/lib/shopping-cart/shopping-cart-view/shopping-cart-view-parameters.mjs +2 -0
  103. package/esm2022/lib/shopping-cart/shopping-cart-view/shopping-cart-view.component.mjs +190 -0
  104. package/esm2022/lib/shopping-cart/shopping-cart.service.mjs +89 -0
  105. package/esm2022/lib/start-end-timepicker/start-end-timepicker.component.mjs +126 -0
  106. package/esm2022/lib/table/oepa-p-column.mjs +2 -0
  107. package/esm2022/lib/table/oepa-table-cell-classname.pipe.mjs +22 -0
  108. package/esm2022/lib/table/oepa-table-cell-click-event.mjs +2 -0
  109. package/esm2022/lib/table/oepa-table-cell-colspan.pipe.mjs +22 -0
  110. package/esm2022/lib/table/oepa-table-cell-hidden.pipe.mjs +22 -0
  111. package/esm2022/lib/table/oepa-table-cell-icon-classname.pipe.mjs +22 -0
  112. package/esm2022/lib/table/oepa-table-cell-img-src.pipe.mjs +22 -0
  113. package/esm2022/lib/table/oepa-table-cell-inner-html.pipe.mjs +22 -0
  114. package/esm2022/lib/table/oepa-table-cell-input-component.pipe.mjs +22 -0
  115. package/esm2022/lib/table/oepa-table-cell-not-selectable.pipe.mjs +22 -0
  116. package/esm2022/lib/table/oepa-table-cell-value.pipe.mjs +22 -0
  117. package/esm2022/lib/table/oepa-table-cell.mjs +2 -0
  118. package/esm2022/lib/table/oepa-table-column.mjs +2 -0
  119. package/esm2022/lib/table/oepa-table-config.mjs +2 -0
  120. package/esm2022/lib/table/oepa-table-filter.mjs +2 -0
  121. package/esm2022/lib/table/oepa-table-filtering.directive.mjs +57 -0
  122. package/esm2022/lib/table/oepa-table-header.mjs +2 -0
  123. package/esm2022/lib/table/oepa-table-page-info.mjs +2 -0
  124. package/esm2022/lib/table/oepa-table-popover.mjs +2 -0
  125. package/esm2022/lib/table/oepa-table-row.mjs +2 -0
  126. package/esm2022/lib/table/oepa-table-sort-criterion.mjs +2 -0
  127. package/esm2022/lib/table/oepa-table-sorting.directive.mjs +57 -0
  128. package/esm2022/lib/table/oepa-table.mjs +2 -0
  129. package/esm2022/lib/table/p-table/p-table.component.mjs +826 -0
  130. package/esm2022/lib/table/table-data-cell/table-data-cell-click-event.mjs +2 -0
  131. package/esm2022/lib/table/table-data-cell/table-data-cell.component.mjs +60 -0
  132. package/esm2022/lib/table/table-export.service.mjs +57 -0
  133. package/esm2022/lib/table/table-header-cell/table-header-cell.component.mjs +61 -0
  134. package/esm2022/lib/table/table.component.mjs +793 -0
  135. package/esm2022/lib/table/table.service.mjs +112 -0
  136. package/esm2022/lib/template-confirmation-modal/template-confirmation-modal.component.mjs +46 -0
  137. package/esm2022/lib/text-area-input/text-area-input.component.mjs +48 -0
  138. package/esm2022/lib/text-input/text-input.component.mjs +48 -0
  139. package/esm2022/lib/timeout-modal/timeout-modal.component.mjs +31 -0
  140. package/esm2022/lib/timepicker/timepicker.component.mjs +48 -0
  141. package/esm2022/lib/validation/form-validator.mjs +2 -0
  142. package/esm2022/lib/validation/validation.service.mjs +134 -0
  143. package/esm2022/lib/yes-no/yes-no.component.mjs +44 -0
  144. package/esm2022/lib/yes-no-boolean/yes-no.component.mjs +44 -0
  145. package/esm2022/lib/yes-no-other-input/yes-no-other-input.component.mjs +41 -0
  146. package/esm2022/lib/zip-code/zip-code.component.mjs +42 -0
  147. package/esm2022/ohioepa-oepa-ui-lib.mjs +5 -0
  148. package/esm2022/public-api.mjs +142 -0
  149. package/fesm2022/ohioepa-oepa-ui-lib.mjs +10720 -0
  150. package/fesm2022/ohioepa-oepa-ui-lib.mjs.map +1 -0
  151. package/index.d.ts +5 -0
  152. package/lib/account-search-input/account-search-input.component.d.ts +36 -0
  153. package/lib/account-search-modal/account-search-modal.component.d.ts +40 -0
  154. package/lib/action-btn/action-btn.component.d.ts +34 -0
  155. package/lib/action-btn/oepa-action-event.d.ts +19 -0
  156. package/lib/action-btn/oepa-action.d.ts +13 -0
  157. package/lib/action-btn-modal/action-btn-modal.component.d.ts +12 -0
  158. package/lib/address/address.component.d.ts +43 -0
  159. package/lib/address/oepa-address.service.d.ts +28 -0
  160. package/lib/address/oepa-form-address.d.ts +19 -0
  161. package/lib/blank/blank.component.d.ts +8 -0
  162. package/lib/checkbox/checkbox.component.d.ts +15 -0
  163. package/lib/checkbox-input/checkbox-input.component.d.ts +17 -0
  164. package/lib/comment-modal/comment-modal.component.d.ts +22 -0
  165. package/lib/common-forms.module.d.ts +104 -0
  166. package/lib/confirmation-modal/confirmation-modal.component.d.ts +49 -0
  167. package/lib/contact/contact.component.d.ts +33 -0
  168. package/lib/contact/oepa-form-contact.d.ts +58 -0
  169. package/lib/date-input/date-input.component.d.ts +18 -0
  170. package/lib/date-input-modal/date-input-modal.component.d.ts +25 -0
  171. package/lib/datepicker/datepicker.component.d.ts +28 -0
  172. package/lib/daterangepicker/daterangepicker.component.d.ts +22 -0
  173. package/lib/document/document-editor/document-editor.component.d.ts +34 -0
  174. package/lib/document/document-event-entity-type.d.ts +5 -0
  175. package/lib/document/document-event-type.d.ts +5 -0
  176. package/lib/document/document-event.d.ts +9 -0
  177. package/lib/document/document-group/document-group.component.d.ts +38 -0
  178. package/lib/document/document-part/document-part.component.d.ts +10 -0
  179. package/lib/document/document-part-editor/document-part-editor.component.d.ts +46 -0
  180. package/lib/document/document-placeholder-modal/document-placeholder-modal.component.d.ts +19 -0
  181. package/lib/document/document-section/document-section.component.d.ts +37 -0
  182. package/lib/document/document.service.d.ts +90 -0
  183. package/lib/document/group-modal/group-modal.component.d.ts +20 -0
  184. package/lib/document/part-modal/part-modal.component.d.ts +20 -0
  185. package/lib/document/portal-document-class.d.ts +10 -0
  186. package/lib/document/portal-document-group.d.ts +15 -0
  187. package/lib/document/portal-document-part.d.ts +22 -0
  188. package/lib/document/portal-document-placeholder.d.ts +12 -0
  189. package/lib/document/portal-document-section.d.ts +13 -0
  190. package/lib/document/portal-document-text.d.ts +7 -0
  191. package/lib/document/portal-document-type.d.ts +15 -0
  192. package/lib/document/portal-document.d.ts +27 -0
  193. package/lib/document/portal-email-attachment-type.d.ts +6 -0
  194. package/lib/document/portal-email-attachment.d.ts +12 -0
  195. package/lib/document/portal-email-filter.d.ts +12 -0
  196. package/lib/document/portal-email.d.ts +18 -0
  197. package/lib/document/section-modal/section-modal.component.d.ts +20 -0
  198. package/lib/dual-list-box/array.pipes.d.ts +36 -0
  199. package/lib/dual-list-box/dual-list-box.component.d.ts +91 -0
  200. package/lib/dual-list-box/items-moved-event.d.ts +11 -0
  201. package/lib/dual-list-box/list-box-item.d.ts +7 -0
  202. package/lib/ebiz-address/ebiz-address.component.d.ts +23 -0
  203. package/lib/edoc-attachment/edoc-attachment.component.d.ts +44 -0
  204. package/lib/edoc-attachment/edoc-attachment.service.d.ts +16 -0
  205. package/lib/edoc-attachment/edocument-attachment-metadata.d.ts +16 -0
  206. package/lib/edoc-attachment/edocument-attachment.d.ts +12 -0
  207. package/lib/edoc-attachment/edocument-reference.d.ts +5 -0
  208. package/lib/entity/entity.service.d.ts +31 -0
  209. package/lib/entity/organization-create-modal/organization-create-modal.component.d.ts +53 -0
  210. package/lib/entity/organization-search-input/organization-search-input.component.d.ts +34 -0
  211. package/lib/entity/organization-search-modal/organization-search-modal.component.d.ts +56 -0
  212. package/lib/entity/person-create-modal/person-create-modal.component.d.ts +53 -0
  213. package/lib/entity/person-search-input/person-search-input.component.d.ts +34 -0
  214. package/lib/entity/person-search-modal/person-search-modal.component.d.ts +56 -0
  215. package/lib/entity/place-create-modal/place-create-modal.component.d.ts +8 -0
  216. package/lib/entity/place-search-input/place-search-input.component.d.ts +34 -0
  217. package/lib/entity/place-search-modal/place-search-modal.component.d.ts +41 -0
  218. package/lib/esri-map/esri-map.component.d.ts +41 -0
  219. package/lib/file-upload/file-upload.component.d.ts +37 -0
  220. package/lib/lynx-image-upload/lynx-image-upload.component.d.ts +36 -0
  221. package/lib/lynx-image-upload/lynx.service.d.ts +16 -0
  222. package/lib/masks/oepa-create-integer-mask.d.ts +8 -0
  223. package/lib/masks/oepa-integer-mask-args.d.ts +5 -0
  224. package/lib/message/message.component.d.ts +10 -0
  225. package/lib/message/oepa-message-type.d.ts +5 -0
  226. package/lib/message/oepa-message.d.ts +7 -0
  227. package/lib/message-list/message-list.component.d.ts +11 -0
  228. package/lib/multi-file-upload/multi-file-upload.component.d.ts +36 -0
  229. package/lib/notes-modal/notes-modal.component.d.ts +50 -0
  230. package/lib/notes-modal/oepa-note-result.d.ts +10 -0
  231. package/lib/notes-modal/oepa-note.d.ts +13 -0
  232. package/lib/numeric-input/numeric-input.component.d.ts +20 -0
  233. package/lib/numeric-input.directive.d.ts +19 -0
  234. package/lib/oepa-error-message/oepa-error-message.component.d.ts +9 -0
  235. package/lib/oepa-forms.service.d.ts +28 -0
  236. package/lib/oepa-images.d.ts +53 -0
  237. package/lib/oepa-wait-message/oepa-wait-message.component.d.ts +9 -0
  238. package/lib/ohio-lat-long/ohio-lat-long.component.d.ts +63 -0
  239. package/lib/parameter/parameter.d.ts +7 -0
  240. package/lib/parameter/parameter.service.d.ts +18 -0
  241. package/lib/params-help-button/params-help-button.component.d.ts +15 -0
  242. package/lib/phone-number/phone-number.component.d.ts +19 -0
  243. package/lib/pin-modal/oepa-attestation.d.ts +10 -0
  244. package/lib/pin-modal/oepa-pin.d.ts +26 -0
  245. package/lib/pin-modal/oepa-pin.service.d.ts +38 -0
  246. package/lib/pin-modal/oepa-security-question.d.ts +8 -0
  247. package/lib/pin-modal/pin-modal.component.d.ts +46 -0
  248. package/lib/progress-indicator/progress-info.d.ts +4 -0
  249. package/lib/select-input/select-input.component.d.ts +27 -0
  250. package/lib/server-timeout-modal/server-timeout-modal.component.d.ts +23 -0
  251. package/lib/shopping-cart/shopping-cart-summary/shopping-cart-summary.component.d.ts +18 -0
  252. package/lib/shopping-cart/shopping-cart-view/shopping-cart-view-parameters.d.ts +10 -0
  253. package/lib/shopping-cart/shopping-cart-view/shopping-cart-view.component.d.ts +51 -0
  254. package/lib/shopping-cart/shopping-cart.service.d.ts +44 -0
  255. package/lib/start-end-timepicker/start-end-timepicker.component.d.ts +29 -0
  256. package/lib/table/oepa-p-column.d.ts +4 -0
  257. package/lib/table/oepa-table-cell-classname.pipe.d.ts +9 -0
  258. package/lib/table/oepa-table-cell-click-event.d.ts +15 -0
  259. package/lib/table/oepa-table-cell-colspan.pipe.d.ts +9 -0
  260. package/lib/table/oepa-table-cell-hidden.pipe.d.ts +9 -0
  261. package/lib/table/oepa-table-cell-icon-classname.pipe.d.ts +9 -0
  262. package/lib/table/oepa-table-cell-img-src.pipe.d.ts +9 -0
  263. package/lib/table/oepa-table-cell-inner-html.pipe.d.ts +9 -0
  264. package/lib/table/oepa-table-cell-input-component.pipe.d.ts +9 -0
  265. package/lib/table/oepa-table-cell-not-selectable.pipe.d.ts +9 -0
  266. package/lib/table/oepa-table-cell-value.pipe.d.ts +9 -0
  267. package/lib/table/oepa-table-cell.d.ts +66 -0
  268. package/lib/table/oepa-table-column.d.ts +71 -0
  269. package/lib/table/oepa-table-config.d.ts +72 -0
  270. package/lib/table/oepa-table-filter.d.ts +10 -0
  271. package/lib/table/oepa-table-filtering.directive.d.ts +17 -0
  272. package/lib/table/oepa-table-header.d.ts +9 -0
  273. package/lib/table/oepa-table-page-info.d.ts +22 -0
  274. package/lib/table/oepa-table-popover.d.ts +28 -0
  275. package/lib/table/oepa-table-row.d.ts +84 -0
  276. package/lib/table/oepa-table-sort-criterion.d.ts +4 -0
  277. package/lib/table/oepa-table-sorting.directive.d.ts +16 -0
  278. package/lib/table/oepa-table.d.ts +42 -0
  279. package/lib/table/p-table/p-table.component.d.ts +155 -0
  280. package/lib/table/table-data-cell/table-data-cell-click-event.d.ts +5 -0
  281. package/lib/table/table-data-cell/table-data-cell.component.d.ts +23 -0
  282. package/lib/table/table-export.service.d.ts +33 -0
  283. package/lib/table/table-header-cell/table-header-cell.component.d.ts +24 -0
  284. package/lib/table/table.component.d.ts +144 -0
  285. package/lib/table/table.service.d.ts +28 -0
  286. package/lib/template-confirmation-modal/template-confirmation-modal.component.d.ts +19 -0
  287. package/lib/text-area-input/text-area-input.component.d.ts +19 -0
  288. package/lib/text-input/text-input.component.d.ts +19 -0
  289. package/lib/timeout-modal/timeout-modal.component.d.ts +13 -0
  290. package/lib/timepicker/timepicker.component.d.ts +17 -0
  291. package/lib/validation/form-validator.d.ts +10 -0
  292. package/lib/validation/validation.service.d.ts +16 -0
  293. package/lib/yes-no/yes-no.component.d.ts +19 -0
  294. package/lib/yes-no-boolean/yes-no.component.d.ts +19 -0
  295. package/lib/yes-no-other-input/yes-no-other-input.component.d.ts +18 -0
  296. package/lib/zip-code/zip-code.component.d.ts +19 -0
  297. package/ohioepa-oepa-ui-lib-1.1.0.tgz +0 -0
  298. package/package.json +25 -0
  299. package/public-api.d.ts +138 -0
@@ -0,0 +1,176 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/common";
4
+ import * as i2 from "@angular/forms";
5
+ import * as i3 from "ngx-mask";
6
+ import * as i4 from "../esri-map/esri-map.component";
7
+ import * as i5 from "../yes-no/yes-no.component";
8
+ export class OhioLatLongComponent {
9
+ group;
10
+ /** Form validation will be displayed when showValidation is true. */
11
+ showValidation = false;
12
+ latLongCollectionMethods = [];
13
+ OHIO = { latMin: 38, latMax: 42, longMin: -85, longMax: -80 };
14
+ collectionMethods = [];
15
+ isSatelliteView = false;
16
+ coordsOutsideOfOhio = false;
17
+ customPatterns = { '9': { pattern: new RegExp('[-?0-9]') },
18
+ '0': { pattern: new RegExp('[0-9]') } };
19
+ // Set our map properties
20
+ mapCenter = [-82.996822, 39.959011];
21
+ basemapType = 'streets-vector';
22
+ mapZoomLevel = 7;
23
+ // See app.component.html
24
+ mapLoadedEvent(status) {
25
+ console.log('The map loaded: ' + status);
26
+ }
27
+ useDMS = false;
28
+ dmsLat = {
29
+ deg: undefined,
30
+ min: undefined,
31
+ sec: undefined
32
+ };
33
+ dmsLong = {
34
+ deg: undefined,
35
+ min: undefined,
36
+ sec: undefined
37
+ };
38
+ constructor() { }
39
+ ngOnInit() {
40
+ this.updateLatDMSValue(this.group.controls['latDecimal'].value);
41
+ this.updateLonDMSValue(this.group.controls['longDecimal'].value);
42
+ this.group.controls['latDecimal'].valueChanges.subscribe(latDecimal => {
43
+ this.updateLatDMSValue(latDecimal);
44
+ });
45
+ this.group.controls['longDecimal'].valueChanges.subscribe(longDecimal => {
46
+ this.updateLonDMSValue(longDecimal);
47
+ });
48
+ }
49
+ updateLatDMSValue(latDecimal) {
50
+ if (this.isNum(latDecimal)) {
51
+ this.dmsLat = this.decimalToDMS(latDecimal);
52
+ this.group.controls['dmsLat'].get('deg')?.patchValue(this.dmsLat.deg);
53
+ this.group.controls['dmsLat'].get('min')?.patchValue(this.dmsLat.min);
54
+ this.group.controls['dmsLat'].get('sec')?.patchValue(this.dmsLat.sec);
55
+ this.coordsOutsideOfOhio = !this.checkCoordsInOhio(this.group.controls['latDecimal'].value, this.group.controls['longDecimal'].value);
56
+ }
57
+ }
58
+ updateLonDMSValue(longDecimal) {
59
+ if (this.isNum(longDecimal)) {
60
+ this.dmsLong = this.decimalToDMS(longDecimal);
61
+ this.group.controls['dmsLong'].get('deg')?.patchValue(this.dmsLong.deg);
62
+ this.group.controls['dmsLong'].get('min')?.patchValue(this.dmsLong.min);
63
+ this.group.controls['dmsLong'].get('sec')?.patchValue(this.dmsLong.sec);
64
+ this.coordsOutsideOfOhio = !this.checkCoordsInOhio(this.group.controls['latDecimal'].value, this.group.controls['longDecimal'].value);
65
+ }
66
+ }
67
+ // default to required if oepaRequired is not specified
68
+ // public isRequired() {
69
+ // // return (this.oepaRequired() !== false);
70
+ // };
71
+ async zoomToCoordinates(latDecimal, longDecimal, facilityMap) {
72
+ facilityMap.resetMap();
73
+ facilityMap.addPoint(latDecimal, longDecimal, 'xxx');
74
+ facilityMap.zoomToFacility(latDecimal, longDecimal);
75
+ console.log(this.group.value);
76
+ }
77
+ convertCoordsToDMS(dmsLatitude, dmsLongitude) {
78
+ if (this.isNum(dmsLatitude.controls['deg'].value) &&
79
+ this.isNum(dmsLatitude.controls['min'].value) &&
80
+ this.isNum(dmsLatitude.controls['sec'].value) &&
81
+ this.isNum(dmsLongitude.controls['deg'].value) &&
82
+ this.isNum(dmsLongitude.controls['min'].value) &&
83
+ this.isNum(dmsLongitude.controls['sec'].value)) {
84
+ var decimalLat;
85
+ var decimalLong;
86
+ var dmsLat = {
87
+ deg: dmsLatitude.controls['deg'].value,
88
+ min: dmsLatitude.controls['min'].value,
89
+ sec: dmsLatitude.controls['sec'].value
90
+ };
91
+ var dmsLong = {
92
+ deg: Number(dmsLongitude.controls['deg'].value) < 0 ? dmsLongitude.controls['deg'].value : -1 * Number(dmsLongitude.controls['deg'].value),
93
+ min: dmsLongitude.controls['min'].value,
94
+ sec: dmsLongitude.controls['sec'].value
95
+ };
96
+ decimalLat = this.dmsToDecimal(dmsLat);
97
+ decimalLong = this.dmsToDecimal(dmsLong);
98
+ this.group.controls['latDecimal'].patchValue(decimalLat);
99
+ this.group.controls['longDecimal'].patchValue(decimalLong);
100
+ }
101
+ }
102
+ dmsToDecimal(dms) {
103
+ if (null != dms.deg && null != dms.min && null != dms.sec) {
104
+ var decimal = undefined;
105
+ var decimalFraction = dms.min / 60.0 + dms.sec / 3600.0;
106
+ decimal = (dms.deg > 0) ? dms.deg + decimalFraction : dms.deg - decimalFraction;
107
+ return decimal.toFixed(6);
108
+ }
109
+ return null;
110
+ }
111
+ ;
112
+ decimalToDMS(decimal) {
113
+ var dms = {
114
+ deg: undefined,
115
+ min: undefined,
116
+ sec: undefined,
117
+ };
118
+ var absolute = Math.abs(decimal);
119
+ dms.deg = Math.floor(absolute);
120
+ var minsec = (absolute - dms.deg) * 60.0;
121
+ dms.min = Math.floor(minsec);
122
+ dms.sec = Number(((minsec - dms.min) * 60.0).toFixed(6));
123
+ if (dms.sec === 60) {
124
+ dms.min += 1;
125
+ dms.sec = 0;
126
+ }
127
+ if (dms.min === 60) {
128
+ dms.deg += 1;
129
+ dms.min = 0;
130
+ }
131
+ return dms;
132
+ }
133
+ ;
134
+ checkCoordsInOhio(latitude, longitude) {
135
+ var coordsInOhio = true;
136
+ try {
137
+ if ((Number(latitude) < this.OHIO.latMin || Number(latitude) > this.OHIO.latMax ||
138
+ Number(longitude) < this.OHIO.longMin || Number(longitude) > this.OHIO.longMax)) {
139
+ coordsInOhio = false;
140
+ }
141
+ }
142
+ catch (e) {
143
+ console.log('ERROR: bad lat/long: ' + latitude + '/' + longitude);
144
+ }
145
+ return coordsInOhio;
146
+ }
147
+ updateCoordinates(coords) {
148
+ this.group.controls['latDecimal'].patchValue(coords.latDecimal);
149
+ this.group.controls['longDecimal'].patchValue(coords.longDecimal);
150
+ }
151
+ isNum(value) {
152
+ if (value && null != value && undefined != value && value != '') {
153
+ return true;
154
+ }
155
+ return false;
156
+ }
157
+ getDMSLatFormGroup() {
158
+ return this.group.controls['dmsLat'];
159
+ }
160
+ getDMSLongFormGroup() {
161
+ return this.group.controls['dmsLong'];
162
+ }
163
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: OhioLatLongComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
164
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: OhioLatLongComponent, selector: "oepa-ohio-lat-long", inputs: { group: "group", showValidation: "showValidation", latLongCollectionMethods: "latLongCollectionMethods" }, ngImport: i0, template: "<div [style.pointer-events]=\"group.enabled ? null : 'none'\">\n\n<form [formGroup]=\"group\" novalidate>\n <div class=\"oepa-workflow-component-50\">\n <div class=\"oepa-section-component-body\">\n <div class=\"form-group\">\n <div class=\"alert alert-info\">\n Use the map on the right to set the latitude and longitude values and verify they are correct.\n You may click on the map to choose latitude and longitude coordinates or enter the latitude and longitude\n values in the input fields below.\n Alternately, you may enter an address in the input field at the top of the map to find coordinates by\n address.\n </div>\n </div>\n <div *ngIf=\"useDMS\">\n <button class=\"btn btn-primary\" (click)=\"convertCoordsToDMS(getDMSLatFormGroup(), getDMSLongFormGroup()); useDMS = !useDMS\">Convert\n Coordinates to Decimal Degrees</button>\n <div class=\"row\" formGroupName=\"dmsLat\">\n <div class=\"col-md-12\">\n <label>Latitude</label>\n <div class=\"row\">\n <div class=\"col-md-4\">\n <div class=\"form-group\">\n <input formControlName=\"deg\" name=\"latDegrees\" class=\"form-control\" type=\"number\" placeholder=\"Degrees\"\n min=\"-89\" max=\"89\" ng-blur=\"onLatDMSChange()\" maxlength=\"\"\n [ngClass]=\"{'is-invalid':showValidation && getDMSLatFormGroup()['controls']['deg'].status === 'INVALID'}\">\n <small class=\"invalid-feedback\" *ngIf=\"getDMSLatFormGroup()['controls']['deg'].hasError('required')\">xxx is required</small>\n </div>\n </div>\n <div class=\"col-md-4\">\n <div class=\"form-group\">\n <input formControlName=\"min\" name=\"latMinutes\" class=\"form-control\" type=\"number\" placeholder=\"Minutes\"\n min=\"0\" max=\"59\" ng-blur=\"onLatDMSChange()\"\n [ngClass]=\"{'is-invalid':showValidation && getDMSLatFormGroup()['controls']['min'].status === 'INVALID'}\">\n <small class=\"invalid-feedback\" *ngIf=\"getDMSLatFormGroup()['controls']['min'].hasError('required')\">Primary SIC Code is required</small>\n </div>\n </div>\n <div class=\"col-md-4\">\n <div class=\"form-group\">\n <input formControlName=\"sec\" name=\"latSeconds\" class=\"form-control\" type=\"number\" placeholder=\"Seconds\"\n min=\"0\" max=\"59.999999\" ng-blur=\"onLatDMSChange()\"\n [ngClass]=\"{'is-invalid':showValidation && getDMSLatFormGroup()['controls']['sec'].status === 'INVALID'}\">\n <small class=\"invalid-feedback\" *ngIf=\"getDMSLatFormGroup()['controls']['sec'].hasError('required')\">Primary SIC Code is required</small>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"row\" formGroupName=\"dmsLong\">\n <div class=\"col-md-12\">\n <label>Longitude</label>\n <div class=\"row\">\n <div class=\"col-md-4\">\n <div class=\"form-group\">\n <input formControlName=\"deg\" name=\"longDegrees\" class=\"form-control\" type=\"number\" placeholder=\"Degrees\"\n min=\"-179\" max=\"179\" ng-blur=\"onLongDMSChange()\"\n [ngClass]=\"{'is-invalid':showValidation && getDMSLongFormGroup()['controls']['deg'].status === 'INVALID'}\">\n <small class=\"invalid-feedback\" *ngIf=\"getDMSLongFormGroup()['controls']['deg'].hasError('required')\">Primary SIC Code is required</small>\n </div>\n </div>\n <div class=\"col-md-4\">\n <div class=\"form-group\">\n <input formControlName=\"min\" name=\"longMinutes\" class=\"form-control\" type=\"number\" placeholder=\"Minutes\"\n min=\"0\" max=\"59\" ng-blur=\"onLongDMSChange()\"\n [ngClass]=\"{'is-invalid':showValidation && getDMSLongFormGroup()['controls']['min'].status === 'INVALID'}\">\n <small class=\"invalid-feedback\" *ngIf=\"getDMSLongFormGroup()['controls']['min'].hasError('required')\">Primary SIC Code is required</small>\n </div>\n </div>\n <div class=\"col-md-4\">\n <div class=\"form-group\">\n <input formControlName=\"sec\" name=\"longSeconds\" class=\"form-control\" type=\"number\" placeholder=\"Seconds\"\n min=\"0\" max=\"59.999999\" ng-blur=\"onLongDMSChange()\"\n [ngClass]=\"{'is-invalid':showValidation && getDMSLongFormGroup()['controls']['sec'].status === 'INVALID'}\">\n <small class=\"invalid-feedback\" *ngIf=\"getDMSLongFormGroup()['controls']['sec'].hasError('required')\">Primary SIC Code is required</small>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div *ngIf=\"!useDMS\">\n <button class=\"btn btn-primary\" (click)=\"useDMS = !useDMS\">Enter Coordinates in Degrees, Minutes, Seconds</button>\n <div class=\"row\">\n <div class=\"col-md-12\">\n <div class=\"form-group\">\n <label>Latitude</label>\n <input formControlName=\"latDecimal\" name=\"Latitude\" class=\"form-control\" type=\"text\" placeholder=\"Latitude\"\n ng-blur=\"onLatLongInputChange()\" mask=\"separator.6\" decimalMarker=\".\" [allowNegativeNumbers]=\"true\" [dropSpecialCharacters]=\"false\" \n [ngClass]=\"{'is-invalid':showValidation && group['controls']['latDecimal'].status === 'INVALID'}\">\n <small class=\"invalid-feedback\" *ngIf=\"group['controls']['latDecimal'].hasError('required')\">Latitude is required</small>\n </div>\n <div class=\"form-group\">\n <label>Longitude</label>\n <input formControlName=\"longDecimal\" name=\"Longitude\" class=\"form-control\" type=\"text\" placeholder=\"Longitude\"\n ng-blur=\"onLatLongInputChange()\" mask=\"separator.6\" decimalMarker=\".\" [allowNegativeNumbers]=\"true\" [dropSpecialCharacters]=\"false\"\n [ngClass]=\"{'is-invalid':showValidation && group['controls']['longDecimal'].status === 'INVALID'}\">\n <small class=\"invalid-feedback\" *ngIf=\"group['controls']['longDecimal'].hasError('required')\">Longitude is required</small>\n </div>\n </div>\n </div>\n </div>\n\n <div *ngIf=\"group['controls']['latDecimal'].value !== '' && group['controls']['longDecimal'].value !== ''\">\n <button class=\"btn btn-primary\" (click)=\"zoomToCoordinates(group['controls']['latDecimal'].value,group['controls']['longDecimal'].value, facilityMap)\">Zoom To These Coordinates</button>\n </div>\n\n <div *ngIf=\"latLongCollectionMethods && latLongCollectionMethods.length > 0\" class=\"form-group\">\n <label>Collection Method</label>\n <select class=\"form-select\" id=\"collectionMethodType\" name=\"collectionMethodType\" formControlName=\"collectionMethodType\"\n [ngClass]=\"{'is-invalid':showValidation && group['controls']['collectionMethodType'].status === 'INVALID'}\">\n <option value=\"\">--Select Collection Method--</option>\n <option *ngFor=\"let n of latLongCollectionMethods\" [ngValue]=\"n.codeValue\">{{n.description}}</option>\n </select>\n <small class=\"invalid-feedback\" *ngIf=\"group['controls']['collectionMethodType'].hasError('required')\">Collection Method is required</small>\n </div>\n\n <div *ngIf=\"coordsOutsideOfOhio\">\n <div class=\"alert alert-danger\" role=\"alert\" *ngIf=\"group.get('allowOutsideOfOhio')?.value!=='yes'\">\n The Latitude and Longitude values entered are not within the state of Ohio. Please enter a latitude value\n between 38 and 42 and a\n longitude value between -85 and -80 or indicate below that this location is outside of Ohio.\n </div>\n <div>\n <oepa-yes-no [group]=\"group\" field=\"allowOutsideOfOhio\" id=\"allowOutsideOfOhio\" [showValidation]=\"showValidation\">Is\n this location outside of Ohio?</oepa-yes-no>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"oepa-action-component-50\">\n <div class=\"oepa-section-component-body\">\n <oepa-esri-map\n #facilityMap [center]=\"mapCenter\"\n [basemap]=\"basemapType\"\n [zoom]=\"mapZoomLevel\"\n (mapLoaded)=\"mapLoadedEvent($event)\"\n [currentLatLong]=\"group.value\"\n (onNewCoordinates)=\"updateCoordinates($event)\"\n [showSearch]=\"group.enabled\">\n </oepa-esri-map>\n </div>\n </div>\n\n</form>\n\n</div>", styles: [".oepa-workflow-component-50{float:left;width:50%;overflow-y:auto}.oepa-section-component-body{overflow-y:auto;overflow-x:hidden;box-sizing:border-box;padding:10px}.oepa-action-component-50{width:50%;overflow-y:auto}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i2.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { kind: "directive", type: i2.MaxValidator, selector: "input[type=number][max][formControlName],input[type=number][max][formControl],input[type=number][max][ngModel]", inputs: ["max"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i2.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "directive", type: i3.NgxMaskDirective, selector: "input[mask], textarea[mask]", inputs: ["mask", "specialCharacters", "patterns", "prefix", "suffix", "thousandSeparator", "decimalMarker", "dropSpecialCharacters", "hiddenInput", "showMaskTyped", "placeHolderCharacter", "shownMaskExpression", "showTemplate", "clearIfNotMatch", "validation", "separatorLimit", "allowNegativeNumbers", "leadZeroDateTime", "leadZero", "triggerOnMaskChange", "apm", "inputTransformFn", "outputTransformFn", "keepCharacterPositions"], outputs: ["maskFilled"], exportAs: ["mask", "ngxMask"] }, { kind: "component", type: i4.EsriMapComponent, selector: "oepa-esri-map", inputs: ["currentLatLong", "zoom", "center", "basemap", "showSearch"], outputs: ["mapLoaded", "onNewCoordinates"] }, { kind: "component", type: i5.YesNoComponent, selector: "oepa-yes-no", inputs: ["group", "field", "showValidation", "disabled"] }] });
165
+ }
166
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: OhioLatLongComponent, decorators: [{
167
+ type: Component,
168
+ args: [{ selector: 'oepa-ohio-lat-long', template: "<div [style.pointer-events]=\"group.enabled ? null : 'none'\">\n\n<form [formGroup]=\"group\" novalidate>\n <div class=\"oepa-workflow-component-50\">\n <div class=\"oepa-section-component-body\">\n <div class=\"form-group\">\n <div class=\"alert alert-info\">\n Use the map on the right to set the latitude and longitude values and verify they are correct.\n You may click on the map to choose latitude and longitude coordinates or enter the latitude and longitude\n values in the input fields below.\n Alternately, you may enter an address in the input field at the top of the map to find coordinates by\n address.\n </div>\n </div>\n <div *ngIf=\"useDMS\">\n <button class=\"btn btn-primary\" (click)=\"convertCoordsToDMS(getDMSLatFormGroup(), getDMSLongFormGroup()); useDMS = !useDMS\">Convert\n Coordinates to Decimal Degrees</button>\n <div class=\"row\" formGroupName=\"dmsLat\">\n <div class=\"col-md-12\">\n <label>Latitude</label>\n <div class=\"row\">\n <div class=\"col-md-4\">\n <div class=\"form-group\">\n <input formControlName=\"deg\" name=\"latDegrees\" class=\"form-control\" type=\"number\" placeholder=\"Degrees\"\n min=\"-89\" max=\"89\" ng-blur=\"onLatDMSChange()\" maxlength=\"\"\n [ngClass]=\"{'is-invalid':showValidation && getDMSLatFormGroup()['controls']['deg'].status === 'INVALID'}\">\n <small class=\"invalid-feedback\" *ngIf=\"getDMSLatFormGroup()['controls']['deg'].hasError('required')\">xxx is required</small>\n </div>\n </div>\n <div class=\"col-md-4\">\n <div class=\"form-group\">\n <input formControlName=\"min\" name=\"latMinutes\" class=\"form-control\" type=\"number\" placeholder=\"Minutes\"\n min=\"0\" max=\"59\" ng-blur=\"onLatDMSChange()\"\n [ngClass]=\"{'is-invalid':showValidation && getDMSLatFormGroup()['controls']['min'].status === 'INVALID'}\">\n <small class=\"invalid-feedback\" *ngIf=\"getDMSLatFormGroup()['controls']['min'].hasError('required')\">Primary SIC Code is required</small>\n </div>\n </div>\n <div class=\"col-md-4\">\n <div class=\"form-group\">\n <input formControlName=\"sec\" name=\"latSeconds\" class=\"form-control\" type=\"number\" placeholder=\"Seconds\"\n min=\"0\" max=\"59.999999\" ng-blur=\"onLatDMSChange()\"\n [ngClass]=\"{'is-invalid':showValidation && getDMSLatFormGroup()['controls']['sec'].status === 'INVALID'}\">\n <small class=\"invalid-feedback\" *ngIf=\"getDMSLatFormGroup()['controls']['sec'].hasError('required')\">Primary SIC Code is required</small>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"row\" formGroupName=\"dmsLong\">\n <div class=\"col-md-12\">\n <label>Longitude</label>\n <div class=\"row\">\n <div class=\"col-md-4\">\n <div class=\"form-group\">\n <input formControlName=\"deg\" name=\"longDegrees\" class=\"form-control\" type=\"number\" placeholder=\"Degrees\"\n min=\"-179\" max=\"179\" ng-blur=\"onLongDMSChange()\"\n [ngClass]=\"{'is-invalid':showValidation && getDMSLongFormGroup()['controls']['deg'].status === 'INVALID'}\">\n <small class=\"invalid-feedback\" *ngIf=\"getDMSLongFormGroup()['controls']['deg'].hasError('required')\">Primary SIC Code is required</small>\n </div>\n </div>\n <div class=\"col-md-4\">\n <div class=\"form-group\">\n <input formControlName=\"min\" name=\"longMinutes\" class=\"form-control\" type=\"number\" placeholder=\"Minutes\"\n min=\"0\" max=\"59\" ng-blur=\"onLongDMSChange()\"\n [ngClass]=\"{'is-invalid':showValidation && getDMSLongFormGroup()['controls']['min'].status === 'INVALID'}\">\n <small class=\"invalid-feedback\" *ngIf=\"getDMSLongFormGroup()['controls']['min'].hasError('required')\">Primary SIC Code is required</small>\n </div>\n </div>\n <div class=\"col-md-4\">\n <div class=\"form-group\">\n <input formControlName=\"sec\" name=\"longSeconds\" class=\"form-control\" type=\"number\" placeholder=\"Seconds\"\n min=\"0\" max=\"59.999999\" ng-blur=\"onLongDMSChange()\"\n [ngClass]=\"{'is-invalid':showValidation && getDMSLongFormGroup()['controls']['sec'].status === 'INVALID'}\">\n <small class=\"invalid-feedback\" *ngIf=\"getDMSLongFormGroup()['controls']['sec'].hasError('required')\">Primary SIC Code is required</small>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div *ngIf=\"!useDMS\">\n <button class=\"btn btn-primary\" (click)=\"useDMS = !useDMS\">Enter Coordinates in Degrees, Minutes, Seconds</button>\n <div class=\"row\">\n <div class=\"col-md-12\">\n <div class=\"form-group\">\n <label>Latitude</label>\n <input formControlName=\"latDecimal\" name=\"Latitude\" class=\"form-control\" type=\"text\" placeholder=\"Latitude\"\n ng-blur=\"onLatLongInputChange()\" mask=\"separator.6\" decimalMarker=\".\" [allowNegativeNumbers]=\"true\" [dropSpecialCharacters]=\"false\" \n [ngClass]=\"{'is-invalid':showValidation && group['controls']['latDecimal'].status === 'INVALID'}\">\n <small class=\"invalid-feedback\" *ngIf=\"group['controls']['latDecimal'].hasError('required')\">Latitude is required</small>\n </div>\n <div class=\"form-group\">\n <label>Longitude</label>\n <input formControlName=\"longDecimal\" name=\"Longitude\" class=\"form-control\" type=\"text\" placeholder=\"Longitude\"\n ng-blur=\"onLatLongInputChange()\" mask=\"separator.6\" decimalMarker=\".\" [allowNegativeNumbers]=\"true\" [dropSpecialCharacters]=\"false\"\n [ngClass]=\"{'is-invalid':showValidation && group['controls']['longDecimal'].status === 'INVALID'}\">\n <small class=\"invalid-feedback\" *ngIf=\"group['controls']['longDecimal'].hasError('required')\">Longitude is required</small>\n </div>\n </div>\n </div>\n </div>\n\n <div *ngIf=\"group['controls']['latDecimal'].value !== '' && group['controls']['longDecimal'].value !== ''\">\n <button class=\"btn btn-primary\" (click)=\"zoomToCoordinates(group['controls']['latDecimal'].value,group['controls']['longDecimal'].value, facilityMap)\">Zoom To These Coordinates</button>\n </div>\n\n <div *ngIf=\"latLongCollectionMethods && latLongCollectionMethods.length > 0\" class=\"form-group\">\n <label>Collection Method</label>\n <select class=\"form-select\" id=\"collectionMethodType\" name=\"collectionMethodType\" formControlName=\"collectionMethodType\"\n [ngClass]=\"{'is-invalid':showValidation && group['controls']['collectionMethodType'].status === 'INVALID'}\">\n <option value=\"\">--Select Collection Method--</option>\n <option *ngFor=\"let n of latLongCollectionMethods\" [ngValue]=\"n.codeValue\">{{n.description}}</option>\n </select>\n <small class=\"invalid-feedback\" *ngIf=\"group['controls']['collectionMethodType'].hasError('required')\">Collection Method is required</small>\n </div>\n\n <div *ngIf=\"coordsOutsideOfOhio\">\n <div class=\"alert alert-danger\" role=\"alert\" *ngIf=\"group.get('allowOutsideOfOhio')?.value!=='yes'\">\n The Latitude and Longitude values entered are not within the state of Ohio. Please enter a latitude value\n between 38 and 42 and a\n longitude value between -85 and -80 or indicate below that this location is outside of Ohio.\n </div>\n <div>\n <oepa-yes-no [group]=\"group\" field=\"allowOutsideOfOhio\" id=\"allowOutsideOfOhio\" [showValidation]=\"showValidation\">Is\n this location outside of Ohio?</oepa-yes-no>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"oepa-action-component-50\">\n <div class=\"oepa-section-component-body\">\n <oepa-esri-map\n #facilityMap [center]=\"mapCenter\"\n [basemap]=\"basemapType\"\n [zoom]=\"mapZoomLevel\"\n (mapLoaded)=\"mapLoadedEvent($event)\"\n [currentLatLong]=\"group.value\"\n (onNewCoordinates)=\"updateCoordinates($event)\"\n [showSearch]=\"group.enabled\">\n </oepa-esri-map>\n </div>\n </div>\n\n</form>\n\n</div>", styles: [".oepa-workflow-component-50{float:left;width:50%;overflow-y:auto}.oepa-section-component-body{overflow-y:auto;overflow-x:hidden;box-sizing:border-box;padding:10px}.oepa-action-component-50{width:50%;overflow-y:auto}\n"] }]
169
+ }], ctorParameters: () => [], propDecorators: { group: [{
170
+ type: Input
171
+ }], showValidation: [{
172
+ type: Input
173
+ }], latLongCollectionMethods: [{
174
+ type: Input
175
+ }] } });
176
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2hpby1sYXQtbG9uZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vZXBhLXVpLWxpYi9zcmMvbGliL29oaW8tbGF0LWxvbmcvb2hpby1sYXQtbG9uZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vZXBhLXVpLWxpYi9zcmMvbGliL29oaW8tbGF0LWxvbmcvb2hpby1sYXQtbG9uZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7OztBQVd6RCxNQUFNLE9BQU8sb0JBQW9CO0lBRXRCLEtBQUssQ0FBYTtJQUMzQixxRUFBcUU7SUFDNUQsY0FBYyxHQUFHLEtBQUssQ0FBQztJQUN2Qix3QkFBd0IsR0FBVyxFQUFFLENBQUM7SUFFeEMsSUFBSSxHQUFHLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztJQUU5RCxpQkFBaUIsR0FBRyxFQUFFLENBQUM7SUFDdkIsZUFBZSxHQUFHLEtBQUssQ0FBQztJQUN4QixtQkFBbUIsR0FBRyxLQUFLLENBQUM7SUFFNUIsY0FBYyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFO1FBQ3ZDLEdBQUcsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBQyxFQUFDLENBQUM7SUFFaEUseUJBQXlCO0lBQ3pCLFNBQVMsR0FBRyxDQUFDLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ3BDLFdBQVcsR0FBRyxnQkFBZ0IsQ0FBQztJQUMvQixZQUFZLEdBQUcsQ0FBQyxDQUFD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QjtzQkFBaEMsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTGF0TG9uZyB9IGZyb20gJ0BvaGlvZXBhL29lcGEtZWJpei1saWInO1xuaW1wb3J0IHsgQ29kZSB9IGZyb20gJ0BvaGlvZXBhL29lcGEtZWJpei1saWInO1xuaW1wb3J0IHsgRXNyaU1hcENvbXBvbmVudCB9IGZyb20gJy4uL2VzcmktbWFwL2VzcmktbWFwLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ29lcGEtb2hpby1sYXQtbG9uZycsXG4gIHRlbXBsYXRlVXJsOiAnLi9vaGlvLWxhdC1sb25nLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vb2hpby1sYXQtbG9uZy5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgT2hpb0xhdExvbmdDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIEBJbnB1dCgpIGdyb3VwITogRm9ybUdyb3VwO1xuICAvKiogRm9ybSB2YWxpZGF0aW9uIHdpbGwgYmUgZGlzcGxheWVkIHdoZW4gc2hvd1ZhbGlkYXRpb24gaXMgdHJ1ZS4gKi9cbiAgQElucHV0KCkgc2hvd1ZhbGlkYXRpb24gPSBmYWxzZTtcbiAgQElucHV0KCkgbGF0TG9uZ0NvbGxlY3Rpb25NZXRob2RzOiBDb2RlW10gPSBbXTtcblxuICBwdWJsaWMgT0hJTyA9IHsgbGF0TWluOiAzOCwgbGF0TWF4OiA0MiwgbG9uZ01pbjogLTg1LCBsb25nTWF4OiAtODAgfTtcblxuICBwdWJsaWMgY29sbGVjdGlvbk1ldGhvZHMgPSBbXTtcbiAgcHVibGljIGlzU2F0ZWxsaXRlVmlldyA9IGZhbHNlO1xuICBwdWJsaWMgY29vcmRzT3V0c2lkZU9mT2hpbyA9IGZhbHNlO1xuXG4gIHB1YmxpYyBjdXN0b21QYXR0ZXJucyA9IHsgJzknOiB7IHBhdHRlcm46IG5ldyBSZWdFeHAoJ1stPzAtOV0nKSB9ICxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnMCc6IHsgcGF0dGVybjogbmV3IFJlZ0V4cCgnWzAtOV0nKX19O1xuXG4gIC8vIFNldCBvdXIgbWFwIHByb3BlcnRpZXNcbiAgbWFwQ2VudGVyID0gWy04Mi45OTY4MjIsIDM5Ljk1OTAxMV07XG4gIGJhc2VtYXBUeXBlID0gJ3N0cmVldHMtdmVjdG9yJztcbiAgbWFwWm9vbUxldmVsID0gNztcblxuICAvLyBTZWUgYXBwLmNvbXBvbmVudC5odG1sXG4gIG1hcExvYWRlZEV2ZW50KHN0YXR1czogYm9vbGVhbikge1xuICAgIGNvbnNvbGUubG9nKCdUaGUgbWFwIGxvYWRlZDogJyArIHN0YXR1cyk7XG4gIH1cblxuICBwdWJsaWMgdXNlRE1TID0gZmFsc2U7XG4gIHB1YmxpYyBkbXNMYXQ6IHtkZWc6IG51bWJlciB8IHVuZGVmaW5lZCwgbWluOiBudW1iZXIgfCB1bmRlZmluZWQsIHNlYzogbnVtYmVyIHwgdW5kZWZpbmVkfSA9IHtcbiAgICBkZWc6IHVuZGVmaW5lZCxcbiAgICBtaW46IHVuZGVmaW5lZCxcbiAgICBzZWM6IHVuZGVmaW5lZFxuICB9O1xuICBwdWJsaWMgZG1zTG9uZzoge2RlZzogbnVtYmVyIHwgdW5kZWZpbmVkLCBtaW46IG51bWJlciB8IHVuZGVmaW5lZCwgc2VjOiBudW1iZXIgfCB1bmRlZmluZWR9ID0ge1xuICAgIGRlZzogdW5kZWZpbmVkLFxuICAgIG1pbjogdW5kZWZpbmVkLFxuICAgIHNlYzogdW5kZWZpbmVkXG4gIH07XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuIFxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnVwZGF0ZUxhdERNU1ZhbHVlKHRoaXMuZ3JvdXAuY29udHJvbHNbJ2xhdERlY2ltYWwnXS52YWx1ZSk7XG4gICAgdGhpcy51cGRhdGVMb25ETVNWYWx1ZSh0aGlzLmdyb3VwLmNvbnRyb2xzWydsb25nRGVjaW1hbCddLnZhbHVlKTtcblxuICAgIHRoaXMuZ3JvdXAuY29udHJvbHNbJ2xhdERlY2ltYWwnXS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKGxhdERlY2ltYWwgPT4ge1xuICAgICAgdGhpcy51cGRhdGVMYXRETVNWYWx1ZShsYXREZWNpbWFsKTtcbiAgICB9KTtcbiAgICB0aGlzLmdyb3VwLmNvbnRyb2xzWydsb25nRGVjaW1hbCddLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUobG9uZ0RlY2ltYWwgPT4ge1xuICAgICAgdGhpcy51cGRhdGVMb25ETVNWYWx1ZShsb25nRGVjaW1hbCk7XG4gICAgfSk7XG5cbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVMYXRETVNWYWx1ZShsYXREZWNpbWFsOiBzdHJpbmcpIHtcbiAgICBpZiAodGhpcy5pc051bShsYXREZWNpbWFsKSkge1xuICAgICAgdGhpcy5kbXNMYXQgPSB0aGlzLmRlY2ltYWxUb0RNUyhsYXREZWNpbWFsKTtcbiAgICAgIHRoaXMuZ3JvdXAuY29udHJvbHNbJ2Rtc0xhdCddLmdldCgnZGVnJyk/LnBhdGNoVmFsdWUodGhpcy5kbXNMYXQuZGVnKTtcbiAgICAgIHRoaXMuZ3JvdXAuY29udHJvbHNbJ2Rtc0xhdCddLmdldCgnbWluJyk/LnBhdGNoVmFsdWUodGhpcy5kbXNMYXQubWluKTtcbiAgICAgIHRoaXMuZ3JvdXAuY29udHJvbHNbJ2Rtc0xhdCddLmdldCgnc2VjJyk/LnBhdGNoVmFsdWUodGhpcy5kbXNMYXQuc2VjKTtcbiAgICAgIHRoaXMuY29vcmRzT3V0c2lkZU9mT2hpbyA9ICF0aGlzLmNoZWNrQ29vcmRzSW5PaGlvKHRoaXMuZ3JvdXAuY29udHJvbHNbJ2xhdERlY2ltYWwnXS52YWx1ZSwgdGhpcy5ncm91cC5jb250cm9sc1snbG9uZ0RlY2ltYWwnXS52YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHVwZGF0ZUxvbkRNU1ZhbHVlKGxvbmdEZWNpbWFsOiBzdHJpbmcpIHtcbiAgICBpZiAodGhpcy5pc051bShsb25nRGVjaW1hbCkpIHtcbiAgICAgIHRoaXMuZG1zTG9uZyA9IHRoaXMuZGVjaW1hbFRvRE1TKGxvbmdEZWNpbWFsKTtcbiAgICAgIHRoaXMuZ3JvdXAuY29udHJvbHNbJ2Rtc0xvbmcnXS5nZXQoJ2RlZycpPy5wYXRjaFZhbHVlKHRoaXMuZG1zTG9uZy5kZWcpO1xuICAgICAgdGhpcy5ncm91cC5jb250cm9sc1snZG1zTG9uZyddLmdldCgnbWluJyk/LnBhdGNoVmFsdWUodGhpcy5kbXNMb25nLm1pbik7XG4gICAgICB0aGlzLmdyb3VwLmNvbnRyb2xzWydkbXNMb25nJ10uZ2V0KCdzZWMnKT8ucGF0Y2hWYWx1ZSh0aGlzLmRtc0xvbmcuc2VjKTtcbiAgICAgIHRoaXMuY29vcmRzT3V0c2lkZU9mT2hpbyA9ICF0aGlzLmNoZWNrQ29vcmRzSW5PaGlvKHRoaXMuZ3JvdXAuY29udHJvbHNbJ2xhdERlY2ltYWwnXS52YWx1ZSwgdGhpcy5ncm91cC5jb250cm9sc1snbG9uZ0RlY2ltYWwnXS52YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgLy8gZGVmYXVsdCB0byByZXF1aXJlZCBpZiBvZXBhUmVxdWlyZWQgaXMgbm90IHNwZWNpZmllZFxuICAvLyBwdWJsaWMgaXNSZXF1aXJlZCgpIHtcbiAgLy8gXHQvLyByZXR1cm4gKHRoaXMub2VwYVJlcXVpcmVkKCkgIT09IGZhbHNlKTtcbiAgLy8gfTtcblxuICBhc3luYyB6b29tVG9Db29yZGluYXRlcyhsYXREZWNpbWFsOiBzdHJpbmcsIGxvbmdEZWNpbWFsOiBzdHJpbmcsIGZhY2lsaXR5TWFwOiBFc3JpTWFwQ29tcG9uZW50KSB7XG4gICAgZmFjaWxpdHlNYXAucmVzZXRNYXAoKTtcbiAgICBmYWNpbGl0eU1hcC5hZGRQb2ludChsYXREZWNpbWFsLCBsb25nRGVjaW1hbCwgJ3h4eCcpO1xuICAgIGZhY2lsaXR5TWFwLnpvb21Ub0ZhY2lsaXR5KGxhdERlY2ltYWwsIGxvbmdEZWNpbWFsKTtcbiAgICBjb25zb2xlLmxvZyh0aGlzLmdyb3VwLnZhbHVlKTtcbiAgfVxuXG4gIHB1YmxpYyBjb252ZXJ0Q29vcmRzVG9ETVMoZG1zTGF0aXR1ZGU6IEZvcm1Hcm91cCwgZG1zTG9uZ2l0dWRlOiBGb3JtR3JvdXApIHtcbiAgICBpZiAodGhpcy5pc051bShkbXNMYXRpdHVkZS5jb250cm9sc1snZGVnJ10udmFsdWUpICYmXG4gICAgICAgIHRoaXMuaXNOdW0oZG1zTGF0aXR1ZGUuY29udHJvbHNbJ21pbiddLnZhbHVlKSAmJlxuICAgICAgICB0aGlzLmlzTnVtKGRtc0xhdGl0dWRlLmNvbnRyb2xzWydzZWMnXS52YWx1ZSkgJiZcbiAgICAgICAgdGhpcy5pc051bShkbXNMb25naXR1ZGUuY29udHJvbHNbJ2RlZyddLnZhbHVlKSAmJlxuICAgICAgICB0aGlzLmlzTnVtKGRtc0xvbmdpdHVkZS5jb250cm9sc1snbWluJ10udmFsdWUpICYmXG4gICAgICAgIHRoaXMuaXNOdW0oZG1zTG9uZ2l0dWRlLmNvbnRyb2xzWydzZWMnXS52YWx1ZSkpIHtcbiAgICAgIHZhciBkZWNpbWFsTGF0OiBzdHJpbmc7XG4gICAgICB2YXIgZGVjaW1hbExvbmc6IHN0cmluZztcbiAgICAgIHZhciBkbXNMYXQgPSB7XG4gICAgICAgIGRlZzogZG1zTGF0aXR1ZGUuY29udHJvbHNbJ2RlZyddLnZhbHVlLFxuICAgICAgICBtaW46IGRtc0xhdGl0dWRlLmNvbnRyb2xzWydtaW4nXS52YWx1ZSxcbiAgICAgICAgc2VjOiBkbXNMYXRpdHVkZS5jb250cm9sc1snc2VjJ10udmFsdWVcbiAgICAgIH1cbiAgICAgIHZhciBkbXNMb25nID0geyAvLyBmb3JjZSBsYXQvbG9uZyB0byBiZSBpbiBXZXN0ZXJuIEhlbWlzcGhlcmVcbiAgICAgICAgZGVnOiBOdW1iZXIoZG1zTG9uZ2l0dWRlLmNvbnRyb2xzWydkZWcnXS52YWx1ZSkgPCAwID8gZG1zTG9uZ2l0dWRlLmNvbnRyb2xzWydkZWcnXS52YWx1ZSA6IC0xICogTnVtYmVyKGRtc0xvbmdpdHVkZS5jb250cm9sc1snZGVnJ10udmFsdWUpLFxuICAgICAgICBtaW46IGRtc0xvbmdpdHVkZS5jb250cm9sc1snbWluJ10udmFsdWUsXG4gICAgICAgIHNlYzogZG1zTG9uZ2l0dWRlLmNvbnRyb2xzWydzZWMnXS52YWx1ZVxuICAgICAgfVxuXG4gICAgICBkZWNpbWFsTGF0ID0gdGhpcy5kbXNUb0RlY2ltYWwoZG1zTGF0KTtcbiAgICAgIGRlY2ltYWxMb25nID0gdGhpcy5kbXNUb0RlY2ltYWwoZG1zTG9uZyk7XG4gIFxuICAgICAgdGhpcy5ncm91cC5jb250cm9sc1snbGF0RGVjaW1hbCddLnBhdGNoVmFsdWUoZGVjaW1hbExhdCk7XG4gICAgICB0aGlzLmdyb3VwLmNvbnRyb2xzWydsb25nRGVjaW1hbCddLnBhdGNoVmFsdWUoZGVjaW1hbExvbmcpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBkbXNUb0RlY2ltYWwoZG1zOiBhbnkpIHtcbiAgICBpZiAobnVsbCAhPSBkbXMuZGVnICYmIG51bGwgIT0gZG1zLm1pbiAmJiBudWxsICE9IGRtcy5zZWMpIHtcbiAgICAgIHZhciBkZWNpbWFsID0gdW5kZWZpbmVkO1xuICAgICAgdmFyIGRlY2ltYWxGcmFjdGlvbiA9IGRtcy5taW4gLyA2MC4wICsgZG1zLnNlYyAvIDM2MDAuMDtcbiAgICAgIGRlY2ltYWwgPSAoZG1zLmRlZyA+IDApID8gZG1zLmRlZyArIGRlY2ltYWxGcmFjdGlvbiA6IGRtcy5kZWcgLSBkZWNpbWFsRnJhY3Rpb247XG4gICAgICByZXR1cm4gZGVjaW1hbC50b0ZpeGVkKDYpO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfTtcblxuICBwdWJsaWMgZGVjaW1hbFRvRE1TKGRlY2ltYWw6YW55KSB7XG4gICAgdmFyIGRtczoge2RlZzogbnVtYmVyIHwgdW5kZWZpbmVkLCBtaW46IG51bWJlciB8IHVuZGVmaW5lZCwgc2VjOiBudW1iZXIgfCB1bmRlZmluZWR9ID0ge1xuICAgICAgZGVnOiB1bmRlZmluZWQsXG4gICAgICBtaW46IHVuZGVmaW5lZCxcbiAgICAgIHNlYzogdW5kZWZpbmVkLFxuICAgIH07XG4gICAgdmFyIGFic29sdXRlID0gTWF0aC5hYnMoZGVjaW1hbCk7XG4gICAgZG1zLmRlZyA9IE1hdGguZmxvb3IoYWJzb2x1dGUpO1xuICAgIHZhciBtaW5zZWMgPSAoYWJzb2x1dGUgLSBkbXMuZGVnKSAqIDYwLjA7XG4gICAgZG1zLm1pbiA9IE1hdGguZmxvb3IobWluc2VjKTtcbiAgICBkbXMuc2VjID0gTnVtYmVyKCgobWluc2VjIC0gZG1zLm1pbikgKiA2MC4wKS50b0ZpeGVkKDYpKTtcbiAgICBpZiAoZG1zLnNlYyA9PT0gNjApIHtcbiAgICAgIGRtcy5taW4gKz0gMTtcbiAgICAgIGRtcy5zZWMgPSAwO1xuICAgIH1cbiAgICBpZiAoZG1zLm1pbiA9PT0gNjApIHtcbiAgICAgIGRtcy5kZWcgKz0gMTtcbiAgICAgIGRtcy5taW4gPSAwO1xuICAgIH1cbiAgICByZXR1cm4gZG1zO1xuICB9O1xuXG4gIHB1YmxpYyBjaGVja0Nvb3Jkc0luT2hpbyhsYXRpdHVkZTogYW55LCBsb25naXR1ZGU6IGFueSkge1xuICAgIHZhciBjb29yZHNJbk9oaW8gPSB0cnVlO1xuICAgIHRyeSB7XG4gICAgICBpZiAoKE51bWJlcihsYXRpdHVkZSkgPCB0aGlzLk9ISU8ubGF0TWluIHx8IE51bWJlcihsYXRpdHVkZSkgPiB0aGlzLk9ISU8ubGF0TWF4IHx8XG4gICAgICAgIE51bWJlcihsb25naXR1ZGUpIDwgdGhpcy5PSElPLmxvbmdNaW4gfHwgTnVtYmVyKGxvbmdpdHVkZSkgPiB0aGlzLk9ISU8ubG9uZ01heCkpIHtcbiAgICAgICAgY29vcmRzSW5PaGlvID0gZmFsc2U7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgY29uc29sZS5sb2coJ0VSUk9SOiBiYWQgbGF0L2xvbmc6ICcgKyBsYXRpdHVkZSArICcvJyArIGxvbmdpdHVkZSk7XG4gICAgfVxuICAgIHJldHVybiBjb29yZHNJbk9oaW87XG4gIH1cblxuICB1cGRhdGVDb29yZGluYXRlcyhjb29yZHM6IExhdExvbmcpIHtcbiAgICB0aGlzLmdyb3VwLmNvbnRyb2xzWydsYXREZWNpbWFsJ10ucGF0Y2hWYWx1ZShjb29yZHMubGF0RGVjaW1hbCk7XG4gICAgdGhpcy5ncm91cC5jb250cm9sc1snbG9uZ0RlY2ltYWwnXS5wYXRjaFZhbHVlKGNvb3Jkcy5sb25nRGVjaW1hbCk7XG4gIH1cblxuICBpc051bSh2YWx1ZTogYW55KSB7XG4gICAgaWYgKHZhbHVlICYmIG51bGwgIT0gdmFsdWUgJiYgdW5kZWZpbmVkICE9IHZhbHVlICYmIHZhbHVlICE9ICcnKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHVibGljIGdldERNU0xhdEZvcm1Hcm91cCgpIDogRm9ybUdyb3VwIHtcbiAgICByZXR1cm4gdGhpcy5ncm91cC5jb250cm9sc1snZG1zTGF0J10gYXMgRm9ybUdyb3VwO1xuICB9XG5cbiAgcHVibGljIGdldERNU0xvbmdGb3JtR3JvdXAoKSA6IEZvcm1Hcm91cCB7XG4gICAgcmV0dXJuIHRoaXMuZ3JvdXAuY29udHJvbHNbJ2Rtc0xvbmcnXSBhcyBGb3JtR3JvdXA7XG4gIH1cblxufVxuIiwiPGRpdiBbc3R5bGUucG9pbnRlci1ldmVudHNdPVwiZ3JvdXAuZW5hYmxlZCA/IG51bGwgOiAnbm9uZSdcIj5cblxuPGZvcm0gW2Zvcm1Hcm91cF09XCJncm91cFwiIG5vdmFsaWRhdGU+XG4gIDxkaXYgY2xhc3M9XCJvZXBhLXdvcmtmbG93LWNvbXBvbmVudC01MFwiPlxuICAgIDxkaXYgY2xhc3M9XCJvZXBhLXNlY3Rpb24tY29tcG9uZW50LWJvZHlcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhbGVydCBhbGVydC1pbmZvXCI+XG4gICAgICAgICAgVXNlIHRoZSBtYXAgb24gdGhlIHJpZ2h0IHRvIHNldCB0aGUgbGF0aXR1ZGUgYW5kIGxvbmdpdHVkZSB2YWx1ZXMgYW5kIHZlcmlmeSB0aGV5IGFyZSBjb3JyZWN0LlxuICAgICAgICAgIFlvdSBtYXkgY2xpY2sgb24gdGhlIG1hcCB0byBjaG9vc2UgbGF0aXR1ZGUgYW5kIGxvbmdpdHVkZSBjb29yZGluYXRlcyBvciBlbnRlciB0aGUgbGF0aXR1ZGUgYW5kIGxvbmdpdHVkZVxuICAgICAgICAgIHZhbHVlcyBpbiB0aGUgaW5wdXQgZmllbGRzIGJlbG93LlxuICAgICAgICAgIEFsdGVybmF0ZWx5LCB5b3UgbWF5IGVudGVyIGFuIGFkZHJlc3MgaW4gdGhlIGlucHV0IGZpZWxkIGF0IHRoZSB0b3Agb2YgdGhlIG1hcCB0byBmaW5kIGNvb3JkaW5hdGVzIGJ5XG4gICAgICAgICAgYWRkcmVzcy5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgKm5nSWY9XCJ1c2VETVNcIj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiIChjbGljayk9XCJjb252ZXJ0Q29vcmRzVG9ETVMoZ2V0RE1TTGF0Rm9ybUdyb3VwKCksIGdldERNU0xvbmdGb3JtR3JvdXAoKSk7IHVzZURNUyA9ICF1c2VETVNcIj5Db252ZXJ0XG4gICAgICAgICAgQ29vcmRpbmF0ZXMgdG8gRGVjaW1hbCBEZWdyZWVzPC9idXR0b24+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIiBmb3JtR3JvdXBOYW1lPVwiZG1zTGF0XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMlwiPlxuICAgICAgICAgICAgPGxhYmVsPkxhdGl0dWRlPC9sYWJlbD5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC00XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cbiAgICAgICAgICAgICAgICAgIDxpbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJkZWdcIiBuYW1lPVwibGF0RGVncmVlc1wiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgdHlwZT1cIm51bWJlclwiIHBsYWNlaG9sZGVyPVwiRGVncmVlc1wiXG4gICAgICAgICAgICAgICAgICAgIG1pbj1cIi04OVwiIG1heD1cIjg5XCIgbmctYmx1cj1cIm9uTGF0RE1TQ2hhbmdlKClcIiBtYXhsZW5ndGg9XCJcIlxuICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J2lzLWludmFsaWQnOnNob3dWYWxpZGF0aW9uICYmIGdldERNU0xhdEZvcm1Hcm91cCgpWydjb250cm9scyddWydkZWcnXS5zdGF0dXMgPT09ICdJTlZBTElEJ31cIj5cbiAgICAgICAgICAgICAgICAgIDxzbWFsbCBjbGFzcz1cImludmFsaWQtZmVlZGJhY2tcIiAqbmdJZj1cImdldERNU0xhdEZvcm1Hcm91cCgpWydjb250cm9scyddWydkZWcnXS5oYXNFcnJvcigncmVxdWlyZWQnKVwiPnh4eCBpcyByZXF1aXJlZDwvc21hbGw+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTRcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICAgICAgICAgICAgICAgICAgPGlucHV0IGZvcm1Db250cm9sTmFtZT1cIm1pblwiIG5hbWU9XCJsYXRNaW51dGVzXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiB0eXBlPVwibnVtYmVyXCIgcGxhY2Vob2xkZXI9XCJNaW51dGVzXCJcbiAgICAgICAgICAgICAgICAgICAgbWluPVwiMFwiIG1heD1cIjU5XCIgbmctYmx1cj1cIm9uTGF0RE1TQ2hhbmdlKClcIlxuICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J2lzLWludmFsaWQnOnNob3dWYWxpZGF0aW9uICYmIGdldERNU0xhdEZvcm1Hcm91cCgpWydjb250cm9scyddWydtaW4nXS5zdGF0dXMgPT09ICdJTlZBTElEJ31cIj5cbiAgICAgICAgICAgICAgICAgIDxzbWFsbCBjbGFzcz1cImludmFsaWQtZmVlZGJhY2tcIiAqbmdJZj1cImdldERNU0xhdEZvcm1Hcm91cCgpWydjb250cm9scyddWydtaW4nXS5oYXNFcnJvcigncmVxdWlyZWQnKVwiPlByaW1hcnkgU0lDIENvZGUgaXMgcmVxdWlyZWQ8L3NtYWxsPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC00XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cbiAgICAgICAgICAgICAgICAgIDxpbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJzZWNcIiBuYW1lPVwibGF0U2Vjb25kc1wiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgdHlwZT1cIm51bWJlclwiIHBsYWNlaG9sZGVyPVwiU2Vjb25kc1wiXG4gICAgICAgICAgICAgICAgICAgIG1pbj1cIjBcIiBtYXg9XCI1OS45OTk5OTlcIiBuZy1ibHVyPVwib25MYXRETVNDaGFuZ2UoKVwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsnaXMtaW52YWxpZCc6c2hvd1ZhbGlkYXRpb24gJiYgZ2V0RE1TTGF0Rm9ybUdyb3VwKClbJ2NvbnRyb2xzJ11bJ3NlYyddLnN0YXR1cyA9PT0gJ0lOVkFMSUQnfVwiPlxuICAgICAgICAgICAgICAgICAgPHNtYWxsIGNsYXNzPVwiaW52YWxpZC1mZWVkYmFja1wiICpuZ0lmPVwiZ2V0RE1TTGF0Rm9ybUdyb3VwKClbJ2NvbnRyb2xzJ11bJ3NlYyddLmhhc0Vycm9yKCdyZXF1aXJlZCcpXCI+UHJpbWFyeSBTSUMgQ29kZSBpcyByZXF1aXJlZDwvc21hbGw+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCIgZm9ybUdyb3VwTmFtZT1cImRtc0xvbmdcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XG4gICAgICAgICAgICA8bGFiZWw+TG9uZ2l0dWRlPC9sYWJlbD5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC00XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cbiAgICAgICAgICAgICAgICAgIDxpbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJkZWdcIiBuYW1lPVwibG9uZ0RlZ3JlZXNcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIHR5cGU9XCJudW1iZXJcIiBwbGFjZWhvbGRlcj1cIkRlZ3JlZXNcIlxuICAgICAgICAgICAgICAgICAgICBtaW49XCItMTc5XCIgbWF4PVwiMTc5XCIgbmctYmx1cj1cIm9uTG9uZ0RNU0NoYW5nZSgpXCJcbiAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydpcy1pbnZhbGlkJzpzaG93VmFsaWRhdGlvbiAmJiBnZXRETVNMb25nRm9ybUdyb3VwKClbJ2NvbnRyb2xzJ11bJ2RlZyddLnN0YXR1cyA9PT0gJ0lOVkFMSUQnfVwiPlxuICAgICAgICAgICAgICAgICAgPHNtYWxsIGNsYXNzPVwiaW52YWxpZC1mZWVkYmFja1wiICpuZ0lmPVwiZ2V0RE1TTG9uZ0Zvcm1Hcm91cCgpWydjb250cm9scyddWydkZWcnXS5oYXNFcnJvcigncmVxdWlyZWQnKVwiPlByaW1hcnkgU0lDIENvZGUgaXMgcmVxdWlyZWQ8L3NtYWxsPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC00XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cbiAgICAgICAgICAgICAgICAgIDxpbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJtaW5cIiBuYW1lPVwibG9uZ01pbnV0ZXNcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIHR5cGU9XCJudW1iZXJcIiBwbGFjZWhvbGRlcj1cIk1pbnV0ZXNcIlxuICAgICAgICAgICAgICAgICAgICBtaW49XCIwXCIgbWF4PVwiNTlcIiBuZy1ibHVyPVwib25Mb25nRE1TQ2hhbmdlKClcIlxuICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J2lzLWludmFsaWQnOnNob3dWYWxpZGF0aW9uICYmIGdldERNU0xvbmdGb3JtR3JvdXAoKVsnY29udHJvbHMnXVsnbWluJ10uc3RhdHVzID09PSAnSU5WQUxJRCd9XCI+XG4gICAgICAgICAgICAgICAgICA8c21hbGwgY2xhc3M9XCJpbnZhbGlkLWZlZWRiYWNrXCIgKm5nSWY9XCJnZXRETVNMb25nRm9ybUdyb3VwKClbJ2NvbnRyb2xzJ11bJ21pbiddLmhhc0Vycm9yKCdyZXF1aXJlZCcpXCI+UHJpbWFyeSBTSUMgQ29kZSBpcyByZXF1aXJlZDwvc21hbGw+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTRcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICAgICAgICAgICAgICAgICAgPGlucHV0IGZvcm1Db250cm9sTmFtZT1cInNlY1wiIG5hbWU9XCJsb25nU2Vjb25kc1wiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgdHlwZT1cIm51bWJlclwiIHBsYWNlaG9sZGVyPVwiU2Vjb25kc1wiXG4gICAgICAgICAgICAgICAgICAgIG1pbj1cIjBcIiBtYXg9XCI1OS45OTk5OTlcIiBuZy1ibHVyPVwib25Mb25nRE1TQ2hhbmdlKClcIlxuICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J2lzLWludmFsaWQnOnNob3dWYWxpZGF0aW9uICYmIGdldERNU0xvbmdGb3JtR3JvdXAoKVsnY29udHJvbHMnXVsnc2VjJ10uc3RhdHVzID09PSAnSU5WQUxJRCd9XCI+XG4gICAgICAgICAgICAgICAgICA8c21hbGwgY2xhc3M9XCJpbnZhbGlkLWZlZWRiYWNrXCIgKm5nSWY9XCJnZXRETVNMb25nRm9ybUdyb3VwKClbJ2NvbnRyb2xzJ11bJ3NlYyddLmhhc0Vycm9yKCdyZXF1aXJlZCcpXCI+UHJpbWFyeSBTSUMgQ29kZSBpcyByZXF1aXJlZDwvc21hbGw+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2ICpuZ0lmPVwiIXVzZURNU1wiPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCIgKGNsaWNrKT1cInVzZURNUyA9ICF1c2VETVNcIj5FbnRlciBDb29yZGluYXRlcyBpbiBEZWdyZWVzLCBNaW51dGVzLCBTZWNvbmRzPC9idXR0b24+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICAgICAgICAgICAgICA8bGFiZWw+TGF0aXR1ZGU8L2xhYmVsPlxuICAgICAgICAgICAgICA8aW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwibGF0RGVjaW1hbFwiIG5hbWU9XCJMYXRpdHVkZVwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgdHlwZT1cInRleHRcIiBwbGFjZWhvbGRlcj1cIkxhdGl0dWRlXCJcbiAgICAgICAgICAgICAgICBuZy1ibHVyPVwib25MYXRMb25nSW5wdXRDaGFuZ2UoKVwiIG1hc2s9XCJzZXBhcmF0b3IuNlwiIGRlY2ltYWxNYXJrZXI9XCIuXCIgW2FsbG93TmVnYXRpdmVOdW1iZXJzXT1cInRydWVcIiBbZHJvcFNwZWNpYWxDaGFyYWN0ZXJzXT1cImZhbHNlXCIgXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydpcy1pbnZhbGlkJzpzaG93VmFsaWRhdGlvbiAmJiBncm91cFsnY29udHJvbHMnXVsnbGF0RGVjaW1hbCddLnN0YXR1cyA9PT0gJ0lOVkFMSUQnfVwiPlxuICAgICAgICAgICAgICA8c21hbGwgY2xhc3M9XCJpbnZhbGlkLWZlZWRiYWNrXCIgKm5nSWY9XCJncm91cFsnY29udHJvbHMnXVsnbGF0RGVjaW1hbCddLmhhc0Vycm9yKCdyZXF1aXJlZCcpXCI+TGF0aXR1ZGUgaXMgcmVxdWlyZWQ8L3NtYWxsPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICAgICAgICAgICAgICA8bGFiZWw+TG9uZ2l0dWRlPC9sYWJlbD5cbiAgICAgICAgICAgICAgPGlucHV0IGZvcm1Db250cm9sTmFtZT1cImxvbmdEZWNpbWFsXCIgbmFtZT1cIkxvbmdpdHVkZVwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgdHlwZT1cInRleHRcIiBwbGFjZWhvbGRlcj1cIkxvbmdpdHVkZVwiXG4gICAgICAgICAgICAgICAgbmctYmx1cj1cIm9uTGF0TG9uZ0lucHV0Q2hhbmdlKClcIiBtYXNrPVwic2VwYXJhdG9yLjZcIiBkZWNpbWFsTWFya2VyPVwiLlwiIFthbGxvd05lZ2F0aXZlTnVtYmVyc109XCJ0cnVlXCIgW2Ryb3BTcGVjaWFsQ2hhcmFjdGVyc109XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydpcy1pbnZhbGlkJzpzaG93VmFsaWRhdGlvbiAmJiBncm91cFsnY29udHJvbHMnXVsnbG9uZ0RlY2ltYWwnXS5zdGF0dXMgPT09ICdJTlZBTElEJ31cIj5cbiAgICAgICAgICAgICAgPHNtYWxsIGNsYXNzPVwiaW52YWxpZC1mZWVkYmFja1wiICpuZ0lmPVwiZ3JvdXBbJ2NvbnRyb2xzJ11bJ2xvbmdEZWNpbWFsJ10uaGFzRXJyb3IoJ3JlcXVpcmVkJylcIj5Mb25naXR1ZGUgaXMgcmVxdWlyZWQ8L3NtYWxsPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgKm5nSWY9XCJncm91cFsnY29udHJvbHMnXVsnbGF0RGVjaW1hbCddLnZhbHVlICE9PSAnJyAmJiBncm91cFsnY29udHJvbHMnXVsnbG9uZ0RlY2ltYWwnXS52YWx1ZSAhPT0gJydcIj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiIChjbGljayk9XCJ6b29tVG9Db29yZGluYXRlcyhncm91cFsnY29udHJvbHMnXVsnbGF0RGVjaW1hbCddLnZhbHVlLGdyb3VwWydjb250cm9scyddWydsb25nRGVjaW1hbCddLnZhbHVlLCBmYWNpbGl0eU1hcClcIj5ab29tIFRvIFRoZXNlIENvb3JkaW5hdGVzPC9idXR0b24+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiAqbmdJZj1cImxhdExvbmdDb2xsZWN0aW9uTWV0aG9kcyAmJiBsYXRMb25nQ29sbGVjdGlvbk1ldGhvZHMubGVuZ3RoID4gMFwiIGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICAgICAgICA8bGFiZWw+Q29sbGVjdGlvbiBNZXRob2Q8L2xhYmVsPlxuICAgICAgICA8c2VsZWN0IGNsYXNzPVwiZm9ybS1zZWxlY3RcIiBpZD1cImNvbGxlY3Rpb25NZXRob2RUeXBlXCIgbmFtZT1cImNvbGxlY3Rpb25NZXRob2RUeXBlXCIgZm9ybUNvbnRyb2xOYW1lPVwiY29sbGVjdGlvbk1ldGhvZFR5cGVcIlxuICAgICAgICAgIFtuZ0NsYXNzXT1cInsnaXMtaW52YWxpZCc6c2hvd1ZhbGlkYXRpb24gJiYgZ3JvdXBbJ2NvbnRyb2xzJ11bJ2NvbGxlY3Rpb25NZXRob2RUeXBlJ10uc3RhdHVzID09PSAnSU5WQUxJRCd9XCI+XG4gICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIlwiPi0tU2VsZWN0IENvbGxlY3Rpb24gTWV0aG9kLS08L29wdGlvbj5cbiAgICAgICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCBuIG9mIGxhdExvbmdDb2xsZWN0aW9uTWV0aG9kc1wiIFtuZ1ZhbHVlXT1cIm4uY29kZVZhbHVlXCI+e3tuLmRlc2NyaXB0aW9ufX08L29wdGlvbj5cbiAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgIDxzbWFsbCBjbGFzcz1cImludmFsaWQtZmVlZGJhY2tcIiAqbmdJZj1cImdyb3VwWydjb250cm9scyddWydjb2xsZWN0aW9uTWV0aG9kVHlwZSddLmhhc0Vycm9yKCdyZXF1aXJlZCcpXCI+Q29sbGVjdGlvbiBNZXRob2QgaXMgcmVxdWlyZWQ8L3NtYWxsPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgKm5nSWY9XCJjb29yZHNPdXRzaWRlT2ZPaGlvXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhbGVydCBhbGVydC1kYW5nZXJcIiByb2xlPVwiYWxlcnRcIiAqbmdJZj1cImdyb3VwLmdldCgnYWxsb3dPdXRzaWRlT2ZPaGlvJyk/LnZhbHVlIT09J3llcydcIj5cbiAgICAgICAgICBUaGUgTGF0aXR1ZGUgYW5kIExvbmdpdHVkZSB2YWx1ZXMgZW50ZXJlZCBhcmUgbm90IHdpdGhpbiB0aGUgc3RhdGUgb2YgT2hpby4gUGxlYXNlIGVudGVyIGEgbGF0aXR1ZGUgdmFsdWVcbiAgICAgICAgICBiZXR3ZWVuIDM4IGFuZCA0MiBhbmQgYVxuICAgICAgICAgIGxvbmdpdHVkZSB2YWx1ZSBiZXR3ZWVuIC04NSBhbmQgLTgwIG9yIGluZGljYXRlIGJlbG93IHRoYXQgdGhpcyBsb2NhdGlvbiBpcyBvdXRzaWRlIG9mIE9oaW8uXG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2PlxuICAgICAgICAgIDxvZXBhLXllcy1ubyBbZ3JvdXBdPVwiZ3JvdXBcIiBmaWVsZD1cImFsbG93T3V0c2lkZU9mT2hpb1wiIGlkPVwiYWxsb3dPdXRzaWRlT2ZPaGlvXCIgW3Nob3dWYWxpZGF0aW9uXT1cInNob3dWYWxpZGF0aW9uXCI+SXNcbiAgICAgICAgICAgIHRoaXMgbG9jYXRpb24gb3V0c2lkZSBvZiBPaGlvPzwvb2VwYS15ZXMtbm8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJvZXBhLWFjdGlvbi1jb21wb25lbnQtNTBcIj5cbiAgICA8ZGl2IGNsYXNzPVwib2VwYS1zZWN0aW9uLWNvbXBvbmVudC1ib2R5XCI+XG4gICAgICA8b2VwYS1lc3JpLW1hcFxuICAgICAgICNmYWNpbGl0eU1hcCBbY2VudGVyXT1cIm1hcENlbnRlclwiXG4gICAgICAgW2Jhc2VtYXBdPVwiYmFzZW1hcFR5cGVcIlxuICAgICAgIFt6b29tXT1cIm1hcFpvb21MZXZlbFwiXG4gICAgICAgKG1hcExvYWRlZCk9XCJtYXBMb2FkZWRFdmVudCgkZXZlbnQpXCJcbiAgICAgICBbY3VycmVudExhdExvbmddPVwiZ3JvdXAudmFsdWVcIlxuICAgICAgIChvbk5ld0Nvb3JkaW5hdGVzKT1cInVwZGF0ZUNvb3JkaW5hdGVzKCRldmVudClcIlxuICAgICAgIFtzaG93U2VhcmNoXT1cImdyb3VwLmVuYWJsZWRcIj5cbiAgICAgIDwvb2VwYS1lc3JpLW1hcD5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbjwvZm9ybT5cblxuPC9kaXY+Il19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYW1ldGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb2VwYS11aS1saWIvc3JjL2xpYi9wYXJhbWV0ZXIvcGFyYW1ldGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEb21haW5PYmplY3QgfSBmcm9tICdAb2hpb2VwYS9vZXBhLWViaXotbGliJztcblxuZXhwb3J0IGludGVyZmFjZSBQYXJhbWV0ZXIgZXh0ZW5kcyBEb21haW5PYmplY3Qge1xuICAgIG5hbWUgPzogc3RyaW5nO1xuICAgIHZhbHVlID8gOiBzdHJpbmc7XG4gICAgZGF0YSA/OiBzdHJpbmc7XG4gICAgZGVzY3JpcHRpb24gPzogc3RyaW5nO1xufVxuIl19
@@ -0,0 +1,47 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/common/http";
4
+ export class ParameterService {
5
+ http;
6
+ baseUrl = '/ebiz/api/v1/parameters';
7
+ constructor(http) {
8
+ this.http = http;
9
+ }
10
+ retrieveParameterByName(parameterName) {
11
+ let url = this.baseUrl + '/names/' + parameterName;
12
+ return this.http.get(url);
13
+ }
14
+ retrieveParameterByID(parameterID) {
15
+ let url = this.baseUrl + '/' + parameterID;
16
+ return this.http.get(url);
17
+ }
18
+ createParameter(parameter) {
19
+ let url = this.baseUrl;
20
+ return this.http.post(url, parameter);
21
+ }
22
+ deleteParameter(parameterID) {
23
+ let url = this.baseUrl + '/' + parameterID;
24
+ return this.http.delete(url);
25
+ }
26
+ deleteParameterByName(parameterName) {
27
+ let url = this.baseUrl + '/names/' + parameterName;
28
+ return this.http.delete(url);
29
+ }
30
+ retrieveParameterByPrefix(prefix) {
31
+ let url = this.baseUrl + '/namePrefix/' + prefix;
32
+ return this.http.get(url);
33
+ }
34
+ updateParameter(parameter) {
35
+ let url = this.baseUrl + '/' + parameter.id;
36
+ return this.http.put(url, parameter);
37
+ }
38
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ParameterService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
39
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ParameterService, providedIn: 'root' });
40
+ }
41
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ParameterService, decorators: [{
42
+ type: Injectable,
43
+ args: [{
44
+ providedIn: 'root'
45
+ }]
46
+ }], ctorParameters: () => [{ type: i1.HttpClient }] });
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYW1ldGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vZXBhLXVpLWxpYi9zcmMvbGliL3BhcmFtZXRlci9wYXJhbWV0ZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFTM0MsTUFBTSxPQUFPLGdCQUFnQjtJQUdIO0lBRlosT0FBTyxHQUFXLHlCQUF5QixDQUFDO0lBRXRELFlBQXNCLElBQWdCO1FBQWhCLFNBQUksR0FBSixJQUFJLENBQVk7SUFBSyxDQUFDO0lBRXJDLHVCQUF1QixDQUFDLGFBQXFCO1FBQ2hELElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLEdBQUcsU0FBUyxHQUFHLGFBQWEsQ0FBQztRQUNuRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFZLEdBQUcsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFTSxxQkFBcUIsQ0FBQyxXQUFtQjtRQUM1QyxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxHQUFHLEdBQUcsR0FBRyxXQUFXLENBQUM7UUFDM0MsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBWSxHQUFHLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRU0sZUFBZSxDQUFDLFNBQW9CO1FBQ3ZDLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDdkIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBUyxHQUFHLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVNLGVBQWUsQ0FBQyxXQUFtQjtRQUN0QyxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxHQUFHLEdBQUcsR0FBRyxXQUFXLENBQUM7UUFDM0MsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRU0scUJBQXFCLENBQUMsYUFBcUI7UUFDOUMsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sR0FBRyxTQUFTLEdBQUcsYUFBYSxDQUFDO1FBQ25ELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVNLHlCQUF5QixDQUFDLE1BQWM7UUFDM0MsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sR0FBRyxjQUFjLEdBQUcsTUFBTSxDQUFDO1FBQ2pELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQWMsR0FBRyxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVNLGVBQWUsQ0FBQyxTQUFvQjtRQUN2QyxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxHQUFHLEdBQUcsR0FBRyxTQUFTLENBQUMsRUFBRSxDQUFDO1FBQzVDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7d0dBdENRLGdCQUFnQjs0R0FBaEIsZ0JBQWdCLGNBRmIsTUFBTTs7NEZBRVQsZ0JBQWdCO2tCQUg1QixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcbmltcG9ydCB7IFBhcmFtZXRlciB9IGZyb20gJy4vcGFyYW1ldGVyJztcblxuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFBhcmFtZXRlclNlcnZpY2Uge1xuICAgIHByb3RlY3RlZCBiYXNlVXJsOiBzdHJpbmcgPSAnL2ViaXovYXBpL3YxL3BhcmFtZXRlcnMnO1xuXG4gICAgY29uc3RydWN0b3IocHJvdGVjdGVkIGh0dHA6IEh0dHBDbGllbnQpIHsgIH1cblxuICAgIHB1YmxpYyByZXRyaWV2ZVBhcmFtZXRlckJ5TmFtZShwYXJhbWV0ZXJOYW1lOiBzdHJpbmcpIDogT2JzZXJ2YWJsZTxQYXJhbWV0ZXI+IHtcbiAgICAgICAgbGV0IHVybCA9IHRoaXMuYmFzZVVybCArICcvbmFtZXMvJyArIHBhcmFtZXRlck5hbWU7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFBhcmFtZXRlcj4odXJsKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmV0cmlldmVQYXJhbWV0ZXJCeUlEKHBhcmFtZXRlcklEOiBzdHJpbmcpIDogT2JzZXJ2YWJsZTxQYXJhbWV0ZXI+IHtcbiAgICAgICAgbGV0IHVybCA9IHRoaXMuYmFzZVVybCArICcvJyArIHBhcmFtZXRlcklEO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldDxQYXJhbWV0ZXI+KHVybCk7XG4gICAgfVxuXG4gICAgcHVibGljIGNyZWF0ZVBhcmFtZXRlcihwYXJhbWV0ZXI6IFBhcmFtZXRlcikgOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgICAgICBsZXQgdXJsID0gdGhpcy5iYXNlVXJsO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8c3RyaW5nPih1cmwsIHBhcmFtZXRlcik7XG4gICAgfVxuXG4gICAgcHVibGljIGRlbGV0ZVBhcmFtZXRlcihwYXJhbWV0ZXJJRDogc3RyaW5nKSA6IE9ic2VydmFibGU8YW55PiB7XG4gICAgICAgIGxldCB1cmwgPSB0aGlzLmJhc2VVcmwgKyAnLycgKyBwYXJhbWV0ZXJJRDtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGUodXJsKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZGVsZXRlUGFyYW1ldGVyQnlOYW1lKHBhcmFtZXRlck5hbWU6IHN0cmluZykgOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgICAgICBsZXQgdXJsID0gdGhpcy5iYXNlVXJsICsgJy9uYW1lcy8nICsgcGFyYW1ldGVyTmFtZTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGUodXJsKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmV0cmlldmVQYXJhbWV0ZXJCeVByZWZpeChwcmVmaXg6IHN0cmluZykgOiBPYnNlcnZhYmxlPFBhcmFtZXRlcltdPiB7XG4gICAgICAgIGxldCB1cmwgPSB0aGlzLmJhc2VVcmwgKyAnL25hbWVQcmVmaXgvJyArIHByZWZpeDtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8UGFyYW1ldGVyW10+KHVybCk7XG4gICAgfVxuXG4gICAgcHVibGljIHVwZGF0ZVBhcmFtZXRlcihwYXJhbWV0ZXI6IFBhcmFtZXRlcikgOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgICAgICBsZXQgdXJsID0gdGhpcy5iYXNlVXJsICsgJy8nICsgcGFyYW1ldGVyLmlkO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnB1dCh1cmwsIHBhcmFtZXRlcik7XG4gICAgfVxufSJdfQ==
@@ -0,0 +1,42 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/router";
4
+ import * as i2 from "@angular/common/http";
5
+ import * as i3 from "@angular/common";
6
+ export class ParamsHelpButtonComponent {
7
+ router;
8
+ http;
9
+ helpURL = '';
10
+ title = 'Click here for instructions or call (614) 466-0061';
11
+ anchorClass = '';
12
+ constructor(router, http) {
13
+ this.router = router;
14
+ this.http = http;
15
+ }
16
+ ngOnInit() {
17
+ const helpURLParamName = this.router.url.replace(new RegExp('/', 'g'), '.');
18
+ this.http.get('/ebiz/api/v1/gateway/helpURLs/' + helpURLParamName, { responseType: 'text' }).subscribe({
19
+ next: url => {
20
+ if (url && url.length > 0) {
21
+ this.helpURL = url;
22
+ }
23
+ else {
24
+ console.log('Help URL was empty for: ' + helpURLParamName);
25
+ }
26
+ }, error: err => {
27
+ console.log('Failed retrieving Help URL for: ' + helpURLParamName + ' - ' + err);
28
+ }
29
+ });
30
+ }
31
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ParamsHelpButtonComponent, deps: [{ token: i1.Router }, { token: i2.HttpClient }], target: i0.ɵɵFactoryTarget.Component });
32
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ParamsHelpButtonComponent, selector: "oepa-params-help-button", inputs: { title: "title", anchorClass: "anchorClass" }, ngImport: i0, template: "<a *ngIf=\"helpURL\" [href]=\"helpURL\" [class]=\"anchorClass\" target=\"_blank\" [title]=\"title\">\n <i class=\"bi bi-question-circle\"></i>\n</a>\n", styles: [""], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
33
+ }
34
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ParamsHelpButtonComponent, decorators: [{
35
+ type: Component,
36
+ args: [{ selector: 'oepa-params-help-button', template: "<a *ngIf=\"helpURL\" [href]=\"helpURL\" [class]=\"anchorClass\" target=\"_blank\" [title]=\"title\">\n <i class=\"bi bi-question-circle\"></i>\n</a>\n" }]
37
+ }], ctorParameters: () => [{ type: i1.Router }, { type: i2.HttpClient }], propDecorators: { title: [{
38
+ type: Input
39
+ }], anchorClass: [{
40
+ type: Input
41
+ }] } });
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYW1zLWhlbHAtYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29lcGEtdWktbGliL3NyYy9saWIvcGFyYW1zLWhlbHAtYnV0dG9uL3BhcmFtcy1oZWxwLWJ1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vZXBhLXVpLWxpYi9zcmMvbGliL3BhcmFtcy1oZWxwLWJ1dHRvbi9wYXJhbXMtaGVscC1idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7O0FBU3pELE1BQU0sT0FBTyx5QkFBeUI7SUFNaEI7SUFBd0I7SUFMckMsT0FBTyxHQUFXLEVBQUUsQ0FBQztJQUVuQixLQUFLLEdBQUcsb0RBQW9ELENBQUM7SUFDN0QsV0FBVyxHQUFHLEVBQUUsQ0FBQztJQUUxQixZQUFvQixNQUFjLEVBQVUsSUFBZ0I7UUFBeEMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUFVLFNBQUksR0FBSixJQUFJLENBQVk7SUFBSSxDQUFDO0lBRWpFLFFBQVE7UUFDTixNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDNUUsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsZ0NBQWdDLEdBQUcsZ0JBQWdCLEVBQUUsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDckcsSUFBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFO2dCQUNaLElBQUksR0FBRyxJQUFJLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7b0JBQzFCLElBQUksQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO2dCQUNyQixDQUFDO3FCQUFNLENBQUM7b0JBQ04sT0FBTyxDQUFDLEdBQUcsQ0FBQywwQkFBMEIsR0FBRyxnQkFBZ0IsQ0FBQyxDQUFDO2dCQUM3RCxDQUFDO1lBQ0gsQ0FBQyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUMsRUFBRTtnQkFDZCxPQUFPLENBQUMsR0FBRyxDQUFDLGtDQUFrQyxHQUFHLGdCQUFnQixHQUFHLEtBQUssR0FBRyxHQUFHLENBQUMsQ0FBQztZQUNuRixDQUFDO1NBQUMsQ0FBQyxDQUFDO0lBQ04sQ0FBQzt3R0FwQlUseUJBQXlCOzRGQUF6Qix5QkFBeUIsdUhDVHRDLHlKQUdBOzs0RkRNYSx5QkFBeUI7a0JBTHJDLFNBQVM7K0JBQ0UseUJBQXlCO29HQU8xQixLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ29lcGEtcGFyYW1zLWhlbHAtYnV0dG9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BhcmFtcy1oZWxwLWJ1dHRvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3BhcmFtcy1oZWxwLWJ1dHRvbi5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgUGFyYW1zSGVscEJ1dHRvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHB1YmxpYyBoZWxwVVJMOiBzdHJpbmcgPSAnJztcblxuICBASW5wdXQoKSB0aXRsZSA9ICdDbGljayBoZXJlIGZvciBpbnN0cnVjdGlvbnMgb3IgY2FsbCAoNjE0KSA0NjYtMDA2MSc7XG4gIEBJbnB1dCgpIGFuY2hvckNsYXNzID0gJyc7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByb3V0ZXI6IFJvdXRlciwgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50KSB7IH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBjb25zdCBoZWxwVVJMUGFyYW1OYW1lID0gdGhpcy5yb3V0ZXIudXJsLnJlcGxhY2UobmV3IFJlZ0V4cCgnLycsICdnJyksICcuJyk7XG4gICAgdGhpcy5odHRwLmdldCgnL2ViaXovYXBpL3YxL2dhdGV3YXkvaGVscFVSTHMvJyArIGhlbHBVUkxQYXJhbU5hbWUsIHsgcmVzcG9uc2VUeXBlOiAndGV4dCcgfSkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IHVybCA9PiB7XG4gICAgICBpZiAodXJsICYmIHVybC5sZW5ndGggPiAwKSB7XG4gICAgICAgIHRoaXMuaGVscFVSTCA9IHVybDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdIZWxwIFVSTCB3YXMgZW1wdHkgZm9yOiAnICsgaGVscFVSTFBhcmFtTmFtZSk7XG4gICAgICB9XG4gICAgfSwgZXJyb3I6IGVyciA9PiB7XG4gICAgICBjb25zb2xlLmxvZygnRmFpbGVkIHJldHJpZXZpbmcgSGVscCBVUkwgZm9yOiAnICsgaGVscFVSTFBhcmFtTmFtZSArICcgLSAnICsgZXJyKTtcbiAgICB9fSk7XG4gIH1cblxufVxuIiwiPGEgKm5nSWY9XCJoZWxwVVJMXCIgW2hyZWZdPVwiaGVscFVSTFwiIFtjbGFzc109XCJhbmNob3JDbGFzc1wiIHRhcmdldD1cIl9ibGFua1wiIFt0aXRsZV09XCJ0aXRsZVwiPlxuICA8aSBjbGFzcz1cImJpIGJpLXF1ZXN0aW9uLWNpcmNsZVwiPjwvaT5cbjwvYT5cbiJdfQ==
@@ -0,0 +1,44 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@ohioepa/oepa-common-lib";
4
+ import * as i2 from "@angular/common";
5
+ import * as i3 from "@angular/forms";
6
+ import * as i4 from "ngx-mask";
7
+ export class PhoneNumberComponent {
8
+ idService;
9
+ componentId = 'OepaPhoneNumberComponent';
10
+ /** The form group for which this address is a member. */
11
+ group;
12
+ field = 'phoneNumber';
13
+ /** Form validation will be displayed when showValidation is true. */
14
+ showValidation = false;
15
+ isSearch = false;
16
+ phoneLabel = 'Phone';
17
+ constructor(idService) {
18
+ this.idService = idService;
19
+ }
20
+ ngOnInit() {
21
+ if (this.group) {
22
+ this.componentId = this.idService.getComponentId(this.group);
23
+ }
24
+ }
25
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PhoneNumberComponent, deps: [{ token: i1.OepaComponentIdService }], target: i0.ɵɵFactoryTarget.Component });
26
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: PhoneNumberComponent, selector: "oepa-phone-number", inputs: { group: "group", field: "field", showValidation: "showValidation", isSearch: "isSearch", phoneLabel: "phoneLabel" }, ngImport: i0, template: "<div [formGroup]=\"group\">\n\t<label>{{phoneLabel}}</label>\n\t<input [type]=\"isSearch ? 'search' : 'text'\" class=\"form-control\" [ngClass]=\"{'is-invalid':showValidation && group.controls[field].status === 'INVALID'}\"\n\t\tplaceholder=\"(xxx) xxx-xxxx\" [formControlName]=\"field\" [id]=\"componentId+'_PhoneInput'\" mask=\"(000) 000-0000\" minlength=\"10\">\n\t<small class=\"invalid-feedback\" *ngIf=\"group.controls[field].hasError('required')\">{{phoneLabel}} is required</small>\n\t<small class=\"invalid-feedback\" *ngIf=\"group.controls[field].hasError('minlength')\">Please enter a valid phone number</small>\n</div>", styles: [""], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.MinLengthValidator, selector: "[minlength][formControlName],[minlength][formControl],[minlength][ngModel]", inputs: ["minlength"] }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i4.NgxMaskDirective, selector: "input[mask], textarea[mask]", inputs: ["mask", "specialCharacters", "patterns", "prefix", "suffix", "thousandSeparator", "decimalMarker", "dropSpecialCharacters", "hiddenInput", "showMaskTyped", "placeHolderCharacter", "shownMaskExpression", "showTemplate", "clearIfNotMatch", "validation", "separatorLimit", "allowNegativeNumbers", "leadZeroDateTime", "leadZero", "triggerOnMaskChange", "apm", "inputTransformFn", "outputTransformFn", "keepCharacterPositions"], outputs: ["maskFilled"], exportAs: ["mask", "ngxMask"] }] });
27
+ }
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PhoneNumberComponent, decorators: [{
29
+ type: Component,
30
+ args: [{ selector: 'oepa-phone-number', template: "<div [formGroup]=\"group\">\n\t<label>{{phoneLabel}}</label>\n\t<input [type]=\"isSearch ? 'search' : 'text'\" class=\"form-control\" [ngClass]=\"{'is-invalid':showValidation && group.controls[field].status === 'INVALID'}\"\n\t\tplaceholder=\"(xxx) xxx-xxxx\" [formControlName]=\"field\" [id]=\"componentId+'_PhoneInput'\" mask=\"(000) 000-0000\" minlength=\"10\">\n\t<small class=\"invalid-feedback\" *ngIf=\"group.controls[field].hasError('required')\">{{phoneLabel}} is required</small>\n\t<small class=\"invalid-feedback\" *ngIf=\"group.controls[field].hasError('minlength')\">Please enter a valid phone number</small>\n</div>" }]
31
+ }], ctorParameters: () => [{ type: i1.OepaComponentIdService }], propDecorators: { group: [{
32
+ type: Input
33
+ }], field: [{
34
+ type: Input
35
+ }], showValidation: [{
36
+ type: Input
37
+ }], isSearch: [{
38
+ type: Input,
39
+ args: ['isSearch']
40
+ }], phoneLabel: [{
41
+ type: Input,
42
+ args: ['phoneLabel']
43
+ }] } });
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGhvbmUtbnVtYmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29lcGEtdWktbGliL3NyYy9saWIvcGhvbmUtbnVtYmVyL3Bob25lLW51bWJlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vZXBhLXVpLWxpYi9zcmMvbGliL3Bob25lLW51bWJlci9waG9uZS1udW1iZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7Ozs7OztBQVV6RCxNQUFNLE9BQU8sb0JBQW9CO0lBWVg7SUFWYixXQUFXLEdBQUcsMEJBQTBCLENBQUM7SUFDaEQsMERBQTBEO0lBQ2pELEtBQUssQ0FBYTtJQUNsQixLQUFLLEdBQVcsYUFBYSxDQUFDO0lBQ3ZDLHFFQUFxRTtJQUM1RCxjQUFjLEdBQUcsS0FBSyxDQUFDO0lBQ04sUUFBUSxHQUFZLEtBQUssQ0FBQztJQUV4QixVQUFVLEdBQVcsT0FBTyxDQUFDO0lBRXpELFlBQW9CLFNBQWlDO1FBQWpDLGNBQVMsR0FBVCxTQUFTLENBQXdCO0lBQ3JELENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDZixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMvRCxDQUFDO0lBQ0gsQ0FBQzt3R0FuQlUsb0JBQW9COzRGQUFwQixvQkFBb0IsdUxDVmpDLHduQkFNTTs7NEZESU8sb0JBQW9CO2tCQUxoQyxTQUFTOytCQUNFLG1CQUFtQjsyRkFRcEIsS0FBSztzQkFBYixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFFRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNvQixRQUFRO3NCQUFqQyxLQUFLO3VCQUFDLFVBQVU7Z0JBRVcsVUFBVTtzQkFBckMsS0FBSzt1QkFBQyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IE9lcGFDb21wb25lbnRJZFNlcnZpY2UgfSBmcm9tICdAb2hpb2VwYS9vZXBhLWNvbW1vbi1saWInO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdvZXBhLXBob25lLW51bWJlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9waG9uZS1udW1iZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9waG9uZS1udW1iZXIuY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIFBob25lTnVtYmVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBwdWJsaWMgY29tcG9uZW50SWQgPSAnT2VwYVBob25lTnVtYmVyQ29tcG9uZW50JztcbiAgLyoqICBUaGUgZm9ybSBncm91cCBmb3Igd2hpY2ggdGhpcyBhZGRyZXNzIGlzIGEgbWVtYmVyLiAqL1xuICBASW5wdXQoKSBncm91cCE6IEZvcm1Hcm91cDtcbiAgQElucHV0KCkgZmllbGQ6IHN0cmluZyA9ICdwaG9uZU51bWJlcic7XG4gIC8qKiBGb3JtIHZhbGlkYXRpb24gd2lsbCBiZSBkaXNwbGF5ZWQgd2hlbiBzaG93VmFsaWRhdGlvbiBpcyB0cnVlLiAqL1xuICBASW5wdXQoKSBzaG93VmFsaWRhdGlvbiA9IGZhbHNlO1xuICBASW5wdXQoJ2lzU2VhcmNoJykgcHVibGljIGlzU2VhcmNoOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQElucHV0KCdwaG9uZUxhYmVsJykgcHVibGljIHBob25lTGFiZWw6IHN0cmluZyA9ICdQaG9uZSc7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBpZFNlcnZpY2U6IE9lcGFDb21wb25lbnRJZFNlcnZpY2UpIHtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICh0aGlzLmdyb3VwKSB7XG4gICAgICB0aGlzLmNvbXBvbmVudElkID0gdGhpcy5pZFNlcnZpY2UuZ2V0Q29tcG9uZW50SWQodGhpcy5ncm91cCk7XG4gICAgfVxuICB9XG5cbn1cbiIsIjxkaXYgW2Zvcm1Hcm91cF09XCJncm91cFwiPlxuXHQ8bGFiZWw+e3twaG9uZUxhYmVsfX08L2xhYmVsPlxuXHQ8aW5wdXQgW3R5cGVdPVwiaXNTZWFyY2ggPyAnc2VhcmNoJyA6ICd0ZXh0J1wiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgW25nQ2xhc3NdPVwieydpcy1pbnZhbGlkJzpzaG93VmFsaWRhdGlvbiAmJiBncm91cC5jb250cm9sc1tmaWVsZF0uc3RhdHVzID09PSAnSU5WQUxJRCd9XCJcblx0XHRwbGFjZWhvbGRlcj1cIih4eHgpIHh4eC14eHh4XCIgW2Zvcm1Db250cm9sTmFtZV09XCJmaWVsZFwiIFtpZF09XCJjb21wb25lbnRJZCsnX1Bob25lSW5wdXQnXCIgbWFzaz1cIigwMDApIDAwMC0wMDAwXCIgbWlubGVuZ3RoPVwiMTBcIj5cblx0PHNtYWxsIGNsYXNzPVwiaW52YWxpZC1mZWVkYmFja1wiICpuZ0lmPVwiZ3JvdXAuY29udHJvbHNbZmllbGRdLmhhc0Vycm9yKCdyZXF1aXJlZCcpXCI+e3twaG9uZUxhYmVsfX0gaXMgcmVxdWlyZWQ8L3NtYWxsPlxuXHQ8c21hbGwgY2xhc3M9XCJpbnZhbGlkLWZlZWRiYWNrXCIgKm5nSWY9XCJncm91cC5jb250cm9sc1tmaWVsZF0uaGFzRXJyb3IoJ21pbmxlbmd0aCcpXCI+UGxlYXNlIGVudGVyIGEgdmFsaWQgcGhvbmUgbnVtYmVyPC9zbWFsbD5cbjwvZGl2PiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2VwYS1hdHRlc3RhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29lcGEtdWktbGliL3NyYy9saWIvcGluLW1vZGFsL29lcGEtYXR0ZXN0YXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogSW50ZXJmYWNlIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGNsYXNzOiB1cy5vaC5zdGF0ZS5lcGEucG9ydGFsLnNlY3VyaXR5LkF0dGVzdGF0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT2VwYUF0dGVzdGF0aW9uIHtcbiAgICBpZD86IHN0cmluZztcbiAgICB0ZXh0Pzogc3RyaW5nO1xuICAgIHR5cGU/OiBzdHJpbmc7XG4gICAgbmFtZT86IHN0cmluZztcbiAgICBlbmREYXRlPzogRGF0ZTtcbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2VwYS1waW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vZXBhLXVpLWxpYi9zcmMvbGliL3Bpbi1tb2RhbC9vZXBhLXBpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2VwYUZvcm1BZGRyZXNzIH0gZnJvbSBcIi4uL2FkZHJlc3Mvb2VwYS1mb3JtLWFkZHJlc3NcIjtcbmltcG9ydCB7IE9lcGFGb3JtQ29udGFjdCB9IGZyb20gXCIuLi9jb250YWN0L29lcGEtZm9ybS1jb250YWN0XCI7XG5pbXBvcnQgeyBPZXBhU2VjdXJpdHlRdWVzdGlvbiB9IGZyb20gXCIuL29lcGEtc2VjdXJpdHktcXVlc3Rpb25cIjtcblxuXG5leHBvcnQgaW50ZXJmYWNlIE9lcGFQaW4ge1xuICAgIHBpbj86IHN0cmluZztcbiAgICBlbmNyeXB0ZWRQaW4/OiBzdHJpbmc7XG4gICAgdHlwZT86IHN0cmluZztcbiAgICB1c2VyaWQ/OiBzdHJpbmc7XG4gICAgc3RhdHVzPzogc3RyaW5nO1xuICAgIHJlcXVlc3RJRD86IHN0cmluZztcbiAgICBwcmludFN0YXR1cz86IHN0cmluZztcbiAgICBwaW5Ib2xkZXI/OiBPZXBhRm9ybUNvbnRhY3Q7XG4gICAgcGluSG9sZGVyQWRkcmVzcz86IE9lcGFGb3JtQWRkcmVzcztcbiAgICBlbmREYXRlPzogRGF0ZTtcbiAgICBxdWVzdGlvbnM/OiBBcnJheTxPZXBhU2VjdXJpdHlRdWVzdGlvbj47XG4gICAgbm90ZXM/OiBzdHJpbmc7XG4gICAga2V5VmVyc2lvbj86IHN0cmluZztcbiAgICBsb2NvdXRDb3VudD86IG51bWJlcjtcblxuICAgIC8vIGlkZW50aXR5IHByb29maW5nIGluZm9cbiAgICBpZGVudGl0eVByb29maW5nU2VjdXJpdHlUb2tlbj86IHN0cmluZztcbiAgICBpZGVudGl0eVByb29maW5nQWN0aXZpdHlJRD86IHN0cmluZztcbiAgICBwaW5Ib2xkZXJEYXRlT2ZCaXJ0aD86IERhdGU7XG4gICAgcGluSG9sZGVyTGFzdEZvdXJPZlNTTj86IHN0cmluZztcblxuICAgIC8vIHBpbiBhY3RpdmF0aW9uIGluZm9cbiAgICByYW5kb21TZWN1cml0eVF1ZXN0aW9uPzogT2VwYVNlY3VyaXR5UXVlc3Rpb247XG4gICAgdXNlckVudGVyZWRTZWN1cml0eUFuc3dlcj86IHN0cmluZztcbiAgICB1c2VyRW50ZXJlZFBpbj86IHN0cmluZztcbn1cbiJdfQ==
@@ -0,0 +1,54 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/common/http";
4
+ export class OepaPinService {
5
+ http;
6
+ pinsUrl = '/ebiz/api/v1/pins';
7
+ constructor(http) {
8
+ this.http = http;
9
+ }
10
+ /**
11
+ * Retrieve an attestation by id.
12
+ * @param attestationID
13
+ */
14
+ retrieveAttestationByID(attestationID) {
15
+ return this.http.get(this.pinsUrl + '/attestationId/' + attestationID);
16
+ }
17
+ /**
18
+ * Retrieve an attestation of the specified type.
19
+ * @param attestationType
20
+ */
21
+ retrieveAttestation(attestationType) {
22
+ return this.http.get(this.pinsUrl + '/attestation/' + attestationType);
23
+ }
24
+ /**
25
+ * Retrieve a random security question for the current user.
26
+ */
27
+ retrieveSecurityQuestion() {
28
+ return this.http.get(this.pinsUrl + '/securityQuestion');
29
+ }
30
+ /**
31
+ * Validate the pin entered by a user.
32
+ * @param pin
33
+ */
34
+ validate(pin) {
35
+ return this.http.post(this.pinsUrl + '/validate', pin);
36
+ }
37
+ /**
38
+ *
39
+ * @param userID Retrieve the Pin for the specified userID
40
+ * @returns OepaPin
41
+ */
42
+ retrievePin(userID) {
43
+ return this.http.get(this.pinsUrl + '/' + userID);
44
+ }
45
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: OepaPinService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
46
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: OepaPinService, providedIn: 'root' });
47
+ }
48
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: OepaPinService, decorators: [{
49
+ type: Injectable,
50
+ args: [{
51
+ providedIn: 'root'
52
+ }]
53
+ }], ctorParameters: () => [{ type: i1.HttpClient }] });
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2VwYS1waW4uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29lcGEtdWktbGliL3NyYy9saWIvcGluLW1vZGFsL29lcGEtcGluLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBWTNDLE1BQU0sT0FBTyxjQUFjO0lBR0w7SUFGWixPQUFPLEdBQUcsbUJBQW1CLENBQUM7SUFFdEMsWUFBb0IsSUFBZ0I7UUFBaEIsU0FBSSxHQUFKLElBQUksQ0FBWTtJQUNwQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksdUJBQXVCLENBQUMsYUFBcUI7UUFDbEQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBa0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxpQkFBaUIsR0FBRyxhQUFhLENBQUMsQ0FBQztJQUMxRixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksbUJBQW1CLENBQUMsZUFBdUI7UUFDaEQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBa0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxlQUFlLEdBQUcsZUFBZSxDQUFDLENBQUM7SUFDMUYsQ0FBQztJQUVEOztPQUVHO0lBQ0ksd0JBQXdCO1FBQzdCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQXVCLElBQUksQ0FBQyxPQUFPLEdBQUcsbUJBQW1CLENBQUMsQ0FBQztJQUNqRixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksUUFBUSxDQUFDLEdBQVk7UUFDMUIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBVSxJQUFJLENBQUMsT0FBTyxHQUFHLFdBQVcsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLFdBQVcsQ0FBQyxNQUFjO1FBQy9CLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQVUsSUFBSSxDQUFDLE9BQU8sR0FBRyxHQUFHLEdBQUcsTUFBTSxDQUFDLENBQUM7SUFDN0QsQ0FBQzt3R0E1Q1UsY0FBYzs0R0FBZCxjQUFjLGNBRmIsTUFBTTs7NEZBRVAsY0FBYztrQkFIMUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBPZXBhQXR0ZXN0YXRpb24gfSBmcm9tICcuL29lcGEtYXR0ZXN0YXRpb24nO1xuaW1wb3J0IHsgT2VwYVNlY3VyaXR5UXVlc3Rpb24gfSBmcm9tICcuL29lcGEtc2VjdXJpdHktcXVlc3Rpb24nO1xuaW1wb3J0IHsgT2VwYVBpbiB9IGZyb20gJy4vb2VwYS1waW4nO1xuXG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIE9lcGFQaW5TZXJ2aWNlIHtcbiAgcHJpdmF0ZSBwaW5zVXJsID0gJy9lYml6L2FwaS92MS9waW5zJztcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQpIHtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZSBhbiBhdHRlc3RhdGlvbiBieSBpZC5cbiAgICogQHBhcmFtIGF0dGVzdGF0aW9uSURcbiAgICovXG4gIHB1YmxpYyByZXRyaWV2ZUF0dGVzdGF0aW9uQnlJRChhdHRlc3RhdGlvbklEOiBzdHJpbmcpOiBPYnNlcnZhYmxlPE9lcGFBdHRlc3RhdGlvbj4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PE9lcGFBdHRlc3RhdGlvbj4odGhpcy5waW5zVXJsICsgJy9hdHRlc3RhdGlvbklkLycgKyBhdHRlc3RhdGlvbklEKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZSBhbiBhdHRlc3RhdGlvbiBvZiB0aGUgc3BlY2lmaWVkIHR5cGUuXG4gICAqIEBwYXJhbSBhdHRlc3RhdGlvblR5cGVcbiAgICovXG4gIHB1YmxpYyByZXRyaWV2ZUF0dGVzdGF0aW9uKGF0dGVzdGF0aW9uVHlwZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxPZXBhQXR0ZXN0YXRpb24+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxPZXBhQXR0ZXN0YXRpb24+KHRoaXMucGluc1VybCArICcvYXR0ZXN0YXRpb24vJyArIGF0dGVzdGF0aW9uVHlwZSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0cmlldmUgYSByYW5kb20gc2VjdXJpdHkgcXVlc3Rpb24gZm9yIHRoZSBjdXJyZW50IHVzZXIuXG4gICAqL1xuICBwdWJsaWMgcmV0cmlldmVTZWN1cml0eVF1ZXN0aW9uKCk6IE9ic2VydmFibGU8T2VwYVNlY3VyaXR5UXVlc3Rpb24+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxPZXBhU2VjdXJpdHlRdWVzdGlvbj4odGhpcy5waW5zVXJsICsgJy9zZWN1cml0eVF1ZXN0aW9uJyk7XG4gIH1cblxuICAvKipcbiAgICogVmFsaWRhdGUgdGhlIHBpbiBlbnRlcmVkIGJ5IGEgdXNlci5cbiAgICogQHBhcmFtIHBpblxuICAgKi9cbiAgcHVibGljIHZhbGlkYXRlKHBpbjogT2VwYVBpbik6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxib29sZWFuPih0aGlzLnBpbnNVcmwgKyAnL3ZhbGlkYXRlJywgcGluKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBcbiAgICogQHBhcmFtIHVzZXJJRCBSZXRyaWV2ZSB0aGUgUGluIGZvciB0aGUgc3BlY2lmaWVkIHVzZXJJRFxuICAgKiBAcmV0dXJucyBPZXBhUGluXG4gICAqL1xuICBwdWJsaWMgcmV0cmlldmVQaW4odXNlcklEOiBzdHJpbmcpOiBPYnNlcnZhYmxlPE9lcGFQaW4+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxPZXBhUGluPih0aGlzLnBpbnNVcmwgKyAnLycgKyB1c2VySUQpO1xuICB9XG5cbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2VwYS1zZWN1cml0eS1xdWVzdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29lcGEtdWktbGliL3NyYy9saWIvcGluLW1vZGFsL29lcGEtc2VjdXJpdHktcXVlc3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogSW50ZXJmYWNlIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGNsYXNzOiB1cy5vaC5zdGF0ZS5lcGEucG9ydGFsLnNlY3VyaXR5LlNlY3VyaXR5UXVlc3Rpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPZXBhU2VjdXJpdHlRdWVzdGlvbiB7XG4gICAgcXVlc3Rpb25JRD86IHN0cmluZztcbiAgICBxdWVzdGlvbj86IHN0cmluZztcbiAgICBhbnN3ZXI/OiBzdHJpbmc7XG59XG4iXX0=