@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
package/README.md ADDED
@@ -0,0 +1,24 @@
1
+ # OepaUiLib
2
+
3
+ This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 18.2.0.
4
+
5
+ ## Code scaffolding
6
+
7
+ Run `ng generate component component-name --project oepa-ui-lib` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project oepa-ui-lib`.
8
+ > Note: Don't forget to add `--project oepa-ui-lib` or else it will be added to the default project in your `angular.json` file.
9
+
10
+ ## Build
11
+
12
+ Run `ng build oepa-ui-lib` to build the project. The build artifacts will be stored in the `dist/` directory.
13
+
14
+ ## Publishing
15
+
16
+ After building your library with `ng build oepa-ui-lib`, go to the dist folder `cd dist/oepa-ui-lib` and run `npm publish`.
17
+
18
+ ## Running unit tests
19
+
20
+ Run `ng test oepa-ui-lib` to execute the unit tests via [Karma](https://karma-runner.github.io).
21
+
22
+ ## Further help
23
+
24
+ To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.dev/tools/cli) page.
@@ -0,0 +1,147 @@
1
+ import { Component, Input, Output, EventEmitter } from '@angular/core';
2
+ import { HttpHeaders } from '@angular/common/http';
3
+ import { Observable } from 'rxjs';
4
+ import { mergeMap, map } from 'rxjs/operators';
5
+ import { AccountSearchModalComponent } from '../account-search-modal/account-search-modal.component';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@ohioepa/oepa-common-lib";
8
+ import * as i2 from "ngx-bootstrap/modal";
9
+ import * as i3 from "@angular/common/http";
10
+ import * as i4 from "@angular/common";
11
+ import * as i5 from "@angular/forms";
12
+ import * as i6 from "ngx-bootstrap/typeahead";
13
+ export class AccountSearchInputComponent {
14
+ idService;
15
+ modalService;
16
+ http;
17
+ nameSearch = '';
18
+ nameSource;
19
+ componentId;
20
+ errorMessage;
21
+ searching;
22
+ group;
23
+ userID;
24
+ field;
25
+ title = 'Account';
26
+ searchURL = '/ebiz/api/v1/accounts/revenuesSearch';
27
+ errorMessageAddendum = '';
28
+ rowLayout = false;
29
+ accountSelected = new EventEmitter();
30
+ constructor(idService, modalService, http) {
31
+ this.idService = idService;
32
+ this.modalService = modalService;
33
+ this.http = http;
34
+ this.nameSource = new Observable((observer) => {
35
+ observer.next(this.group.get(this.field)?.value);
36
+ }).pipe(mergeMap((token) => this.searchAccounts(token)));
37
+ }
38
+ ngOnInit() {
39
+ this.componentId = this.idService.getComponentId(this.group);
40
+ if (this.userID) {
41
+ const filter = {
42
+ userID: this.userID
43
+ };
44
+ this.searching = true;
45
+ this.searchAccountsFromDB(filter).subscribe({
46
+ next: accountList => {
47
+ if (accountList && accountList.length == 1) {
48
+ this.loadAccountInForm(accountList[0]);
49
+ }
50
+ else if (accountList.length > 1) {
51
+ accountList.forEach(account => {
52
+ if (account.userID === this.userID) {
53
+ this.loadAccountInForm(account);
54
+ }
55
+ });
56
+ }
57
+ else {
58
+ this.errorMessage = 'An initialization error occurred: No accounts wih id: ' + this.userID;
59
+ }
60
+ this.searching = false;
61
+ }, error: err => {
62
+ this.searching = false;
63
+ this.errorMessage = 'An initialization error occurred: ' + err;
64
+ }
65
+ });
66
+ }
67
+ this.group.get(this.field)?.valueChanges.subscribe(value => {
68
+ if (!value || value === '') {
69
+ this.accountSelected.emit(undefined);
70
+ }
71
+ });
72
+ }
73
+ onAccountSelect(e) {
74
+ if (e.item) {
75
+ this.loadAccountInForm(e.item);
76
+ this.accountSelected.emit(e.item);
77
+ }
78
+ }
79
+ loadAccountInForm(account) {
80
+ let data = {};
81
+ data[this.field] = account ? (account.userID + ' - ' + account.firstName + ' ' + account.lastName || ''
82
+ + (account.company ? ' (' + account.company + ')' : '')) : '';
83
+ if (account) {
84
+ this.group.patchValue(data);
85
+ }
86
+ }
87
+ searchAccounts(token) {
88
+ this.errorMessage = undefined;
89
+ this.searching = true;
90
+ const filter = {
91
+ userID: token
92
+ };
93
+ return this.searchAccountsFromDB(filter).pipe(map((accounts) => {
94
+ this.searching = false;
95
+ return accounts;
96
+ }));
97
+ }
98
+ searchAccountsFromDB(filter) {
99
+ const headers = new HttpHeaders();
100
+ headers.append('Content-Type', 'application/json');
101
+ const url = this.searchURL;
102
+ console.log('URL: ' + url);
103
+ return this.http.post(url, filter, { headers: headers, responseType: 'json' });
104
+ }
105
+ advancedSearch() {
106
+ console.log('URL: ' + this.searchURL);
107
+ const initialState = {
108
+ searchURL: this.searchURL
109
+ };
110
+ let modal = this.modalService.show(AccountSearchModalComponent, { initialState, class: 'modal-lg', ignoreBackdropClick: true });
111
+ modal.content.onAccountSelected.subscribe(account => {
112
+ this.loadAccountInForm(account);
113
+ this.accountSelected.emit(account);
114
+ });
115
+ }
116
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AccountSearchInputComponent, deps: [{ token: i1.OepaComponentIdService }, { token: i2.BsModalService }, { token: i3.HttpClient }], target: i0.ɵɵFactoryTarget.Component });
117
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: AccountSearchInputComponent, selector: "oepa-account-search-input", inputs: { group: "group", userID: "userID", field: "field", title: "title", searchURL: "searchURL", errorMessageAddendum: "errorMessageAddendum", rowLayout: "rowLayout" }, outputs: { accountSelected: "accountSelected" }, ngImport: i0, template: "<div [formGroup]=\"group\" class=\"form-group\" [ngClass]=\"{'row text-right': rowLayout}\">\n <ng-template #accountTemplate let-model=\"item\" let-index=\"index\">\n <h5>{{ (model.userID || '') +\n (' - ' + model.firstName + ' ' + model.lastName + (model.company ? ' (' + model.company + ')' : '')) }}</h5>\n </ng-template>\n <label [ngClass]=\"{'col-sm-4 col-form-label': rowLayout}\">\n {{title}}\n <span *ngIf=\"searching\" class=\"spinner-border text-primary\" role=\"status\"></span>\n <a id=\"AdvancedSearch\" href=\"javascript:void(0)\" (click)=\"advancedSearch()\">Advanced Search</a>\n </label>\n <div [ngClass]=\"{'col-sm-8': rowLayout}\">\n <input class=\"form-control\" type=\"search\"\n [ngClass]=\"{'is-invalid':group.controls[field].status === 'INVALID', 'col-sm-8': rowLayout}\"\n [formControlName]=\"field\" [typeahead]=\"nameSource\" [typeaheadScrollable]=\"true\"\n (typeaheadOnSelect)=\"onAccountSelect($event)\" [id]=\"componentId + '_AccountSearch'\"\n [typeaheadItemTemplate]=\"accountTemplate\" [typeaheadMinLength]=\"3\" placeholder=\"Search Account\">\n <small class=\"invalid-feedback\" *ngIf=\"group.controls[field]?.hasError('required')\">{{title}} is required\n {{errorMessageAddendum}}</small>\n </div>\n</div>\n<div *ngIf=\"errorMessage\" class=\"alert alert-danger\">\n {{errorMessage}}\n</div>", styles: [""], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.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: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i6.TypeaheadDirective, selector: "[typeahead]", inputs: ["typeahead", "typeaheadMinLength", "adaptivePosition", "isAnimated", "typeaheadWaitMs", "typeaheadOptionsLimit", "typeaheadOptionField", "typeaheadGroupField", "typeaheadOrderBy", "typeaheadAsync", "typeaheadLatinize", "typeaheadSingleWords", "typeaheadWordDelimiters", "typeaheadMultipleSearch", "typeaheadMultipleSearchDelimiters", "typeaheadPhraseDelimiters", "typeaheadItemTemplate", "optionsListTemplate", "typeaheadScrollable", "typeaheadOptionsInScrollableView", "typeaheadHideResultsOnBlur", "typeaheadSelectFirstItem", "typeaheadIsFirstItemActive", "container", "dropup"], outputs: ["typeaheadLoading", "typeaheadNoResults", "typeaheadOnSelect", "typeaheadOnPreview", "typeaheadOnBlur"], exportAs: ["bs-typeahead"] }] });
118
+ }
119
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AccountSearchInputComponent, decorators: [{
120
+ type: Component,
121
+ args: [{ selector: 'oepa-account-search-input', template: "<div [formGroup]=\"group\" class=\"form-group\" [ngClass]=\"{'row text-right': rowLayout}\">\n <ng-template #accountTemplate let-model=\"item\" let-index=\"index\">\n <h5>{{ (model.userID || '') +\n (' - ' + model.firstName + ' ' + model.lastName + (model.company ? ' (' + model.company + ')' : '')) }}</h5>\n </ng-template>\n <label [ngClass]=\"{'col-sm-4 col-form-label': rowLayout}\">\n {{title}}\n <span *ngIf=\"searching\" class=\"spinner-border text-primary\" role=\"status\"></span>\n <a id=\"AdvancedSearch\" href=\"javascript:void(0)\" (click)=\"advancedSearch()\">Advanced Search</a>\n </label>\n <div [ngClass]=\"{'col-sm-8': rowLayout}\">\n <input class=\"form-control\" type=\"search\"\n [ngClass]=\"{'is-invalid':group.controls[field].status === 'INVALID', 'col-sm-8': rowLayout}\"\n [formControlName]=\"field\" [typeahead]=\"nameSource\" [typeaheadScrollable]=\"true\"\n (typeaheadOnSelect)=\"onAccountSelect($event)\" [id]=\"componentId + '_AccountSearch'\"\n [typeaheadItemTemplate]=\"accountTemplate\" [typeaheadMinLength]=\"3\" placeholder=\"Search Account\">\n <small class=\"invalid-feedback\" *ngIf=\"group.controls[field]?.hasError('required')\">{{title}} is required\n {{errorMessageAddendum}}</small>\n </div>\n</div>\n<div *ngIf=\"errorMessage\" class=\"alert alert-danger\">\n {{errorMessage}}\n</div>" }]
122
+ }], ctorParameters: () => [{ type: i1.OepaComponentIdService }, { type: i2.BsModalService }, { type: i3.HttpClient }], propDecorators: { group: [{
123
+ type: Input,
124
+ args: ['group']
125
+ }], userID: [{
126
+ type: Input,
127
+ args: ['userID']
128
+ }], field: [{
129
+ type: Input,
130
+ args: ['field']
131
+ }], title: [{
132
+ type: Input,
133
+ args: ['title']
134
+ }], searchURL: [{
135
+ type: Input,
136
+ args: ['searchURL']
137
+ }], errorMessageAddendum: [{
138
+ type: Input,
139
+ args: ['errorMessageAddendum']
140
+ }], rowLayout: [{
141
+ type: Input,
142
+ args: ['rowLayout']
143
+ }], accountSelected: [{
144
+ type: Output,
145
+ args: ['accountSelected']
146
+ }] } });
147
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudC1zZWFyY2gtaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb2VwYS11aS1saWIvc3JjL2xpYi9hY2NvdW50LXNlYXJjaC1pbnB1dC9hY2NvdW50LXNlYXJjaC1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vZXBhLXVpLWxpYi9zcmMvbGliL2FjY291bnQtc2VhcmNoLWlucHV0L2FjY291bnQtc2VhcmNoLWlucHV0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFhLFdBQVcsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBRzdELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEMsT0FBTyxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUkvQyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQzs7Ozs7Ozs7QUFPckcsTUFBTSxPQUFPLDJCQUEyQjtJQWlCbEI7SUFDVjtJQUNBO0lBbEJWLFVBQVUsR0FBRyxFQUFFLENBQUM7SUFDaEIsVUFBVSxDQUF3QjtJQUNsQyxXQUFXLENBQVU7SUFDckIsWUFBWSxDQUFzQjtJQUNsQyxTQUFTLENBQVc7SUFFSixLQUFLLENBQWE7SUFDakIsTUFBTSxDQUFVO0lBQ2pCLEtBQUssQ0FBVTtJQUNmLEtBQUssR0FBVyxTQUFTLENBQUM7SUFDdEIsU0FBUyxHQUFXLHNDQUFzQyxDQUFDO0lBQ2hELG9CQUFvQixHQUFHLEVBQUUsQ0FBQztJQUNyQyxTQUFTLEdBQUcsS0FBSyxDQUFDO0lBRVgsZUFBZSxHQUEwQixJQUFJLFlBQVksRUFBVyxDQUFDO0lBRWhHLFlB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QUMsc0JBQXNCO2dCQUNULFNBQVM7c0JBQTVCLEtBQUs7dUJBQUMsV0FBVztnQkFFUyxlQUFlO3NCQUF6QyxNQUFNO3VCQUFDLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7SHR0cENsaWVudCwgSHR0cEhlYWRlcnN9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IFR5cGVhaGVhZE1hdGNoIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC90eXBlYWhlYWQnO1xuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWVyZ2VNYXAsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEJzTW9kYWxTZXJ2aWNlIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC9tb2RhbCc7XG5pbXBvcnQgeyBPZXBhQ29tcG9uZW50SWRTZXJ2aWNlIH0gZnJvbSAnQG9oaW9lcGEvb2VwYS1jb21tb24tbGliJztcbmltcG9ydCB7IEFjY291bnQgfSBmcm9tICdAb2hpb2VwYS9vZXBhLWViaXotbGliJztcbmltcG9ydCB7IEFjY291bnRTZWFyY2hNb2RhbENvbXBvbmVudCB9IGZyb20gJy4uL2FjY291bnQtc2VhcmNoLW1vZGFsL2FjY291bnQtc2VhcmNoLW1vZGFsLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ29lcGEtYWNjb3VudC1zZWFyY2gtaW5wdXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vYWNjb3VudC1zZWFyY2gtaW5wdXQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9hY2NvdW50LXNlYXJjaC1pbnB1dC5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQWNjb3VudFNlYXJjaElucHV0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgbmFtZVNlYXJjaCA9ICcnO1xuICBuYW1lU291cmNlOiBPYnNlcnZhYmxlPEFjY291bnRbXT47XG4gIGNvbXBvbmVudElkITogc3RyaW5nO1xuICBlcnJvck1lc3NhZ2UhOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIHNlYXJjaGluZyE6IGJvb2xlYW47XG5cbiAgQElucHV0KCdncm91cCcpIGdyb3VwITogRm9ybUdyb3VwO1xuICBASW5wdXQoJ3VzZXJJRCcpIHVzZXJJRCE6IHN0cmluZztcbiAgQElucHV0KCdmaWVsZCcpIGZpZWxkITogc3RyaW5nO1xuICBASW5wdXQoJ3RpdGxlJykgdGl0bGU6IHN0cmluZyA9ICdBY2NvdW50JztcbiAgQElucHV0KCdzZWFyY2hVUkwnKSBzZWFyY2hVUkw6IHN0cmluZyA9ICcvZWJpei9hcGkvdjEvYWNjb3VudHMvcmV2ZW51ZXNTZWFyY2gnO1xuICBASW5wdXQoJ2Vycm9yTWVzc2FnZUFkZGVuZHVtJykgZXJyb3JNZXNzYWdlQWRkZW5kdW0gPSAnJztcbiAgQElucHV0KCdyb3dMYXlvdXQnKSByb3dMYXlvdXQgPSBmYWxzZTtcblxuICBAT3V0cHV0KCdhY2NvdW50U2VsZWN0ZWQnKSBhY2NvdW50U2VsZWN0ZWQ6IEV2ZW50RW1pdHRlcjxBY2NvdW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8QWNjb3VudD4oKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGlkU2VydmljZTogT2VwYUNvbXBvbmVudElkU2VydmljZSxcbiAgICBwcml2YXRlIG1vZGFsU2VydmljZTogQnNNb2RhbFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50KSB7XG4gICAgICB0aGlzLm5hbWVTb3VyY2UgPSBuZXcgT2JzZXJ2YWJsZSgob2JzZXJ2ZXIpID0+IHtcbiAgICAgICAgb2JzZXJ2ZXIubmV4dCh0aGlzLmdyb3VwLmdldCh0aGlzLmZpZWxkKT8udmFsdWUpO1xuICAgICAgfSkucGlwZShtZXJnZU1hcCgodG9rZW46IGFueSkgPT4gdGhpcy5zZWFyY2hBY2NvdW50cyh0b2tlbikpKTtcbiAgICAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuY29tcG9uZW50SWQgPSB0aGlzLmlkU2VydmljZS5nZXRDb21wb25lbnRJZCh0aGlzLmdyb3VwKTtcbiAgICBpZiAodGhpcy51c2VySUQpIHtcbiAgICAgIGNvbnN0IGZpbHRlcjogQWNjb3VudCA9IHtcbiAgICAgICAgdXNlcklEOiB0aGlzLnVzZXJJRFxuICAgICAgfVxuICAgICAgdGhpcy5zZWFyY2hpbmcgPSB0cnVlO1xuICAgICAgXG4gICAgICB0aGlzLnNlYXJjaEFjY291bnRzRnJvbURCKGZpbHRlcikuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogYWNjb3VudExpc3QgPT4ge1xuICAgICAgICBpZiAoYWNjb3VudExpc3QgJiYgYWNjb3VudExpc3QubGVuZ3RoID09IDEpIHtcbiAgICAgICAgICB0aGlzLmxvYWRBY2NvdW50SW5Gb3JtKGFjY291bnRMaXN0WzBdKTtcbiAgICAgICAgfSBlbHNlIGlmIChhY2NvdW50TGlzdC5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgYWNjb3VudExpc3QuZm9yRWFjaChhY2NvdW50ID0+IHtcbiAgICAgICAgICAgIGlmIChhY2NvdW50LnVzZXJJRCA9PT0gdGhpcy51c2VySUQpIHtcbiAgICAgICAgICAgICAgdGhpcy5sb2FkQWNjb3VudEluRm9ybShhY2NvdW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICdBbiBpbml0aWFsaXphdGlvbiBlcnJvciBvY2N1cnJlZDogTm8gYWNjb3VudHMgd2loIGlkOiAnICsgdGhpcy51c2VySUQ7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zZWFyY2hpbmcgPSBmYWxzZTtcbiAgICAgIH0sIGVycm9yOiBlcnIgPT4ge1xuICAgICAgICB0aGlzLnNlYXJjaGluZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICdBbiBpbml0aWFsaXphdGlvbiBlcnJvciBvY2N1cnJlZDogJyArIGVycjtcbiAgICAgIH19KTtcbiAgICB9XG4gICAgdGhpcy5ncm91cC5nZXQodGhpcy5maWVsZCk/LnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUodmFsdWUgPT4ge1xuICAgICAgaWYgKCF2YWx1ZSB8fCB2YWx1ZSA9PT0gJycpIHtcbiAgICAgICAgdGhpcy5hY2NvdW50U2VsZWN0ZWQuZW1pdCh1bmRlZmluZWQpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG9uQWNjb3VudFNlbGVjdChlOiBUeXBlYWhlYWRNYXRjaCkge1xuICAgIGlmIChlLml0ZW0pIHtcbiAgICAgIHRoaXMubG9hZEFjY291bnRJbkZvcm0oZS5pdGVtKTtcbiAgICAgIHRoaXMuYWNjb3VudFNlbGVjdGVkLmVtaXQoZS5pdGVtKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGxvYWRBY2NvdW50SW5Gb3JtKGFjY291bnQ6IEFjY291bnQpIHtcbiAgICBsZXQgZGF0YTphbnkgPSB7fTtcbiAgICBkYXRhW3RoaXMuZmllbGRdID0gYWNjb3VudCA/IChhY2NvdW50LnVzZXJJRCArICcgLSAnICsgYWNjb3VudC5maXJzdE5hbWUgKyAnICcgKyBhY2NvdW50Lmxhc3ROYW1lIHx8ICcnXG4gICAgICArIChhY2NvdW50LmNvbXBhbnkgPyAnICgnICsgYWNjb3VudC5jb21wYW55ICsgJyknIDogJycpKSA6ICcnO1xuICAgIGlmIChhY2NvdW50KSB7XG4gICAgICB0aGlzLmdyb3VwLnBhdGNoVmFsdWUoZGF0YSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZWFyY2hBY2NvdW50cyh0b2tlbjogYW55KTogT2JzZXJ2YWJsZTxBY2NvdW50W10+IHtcbiAgICB0aGlzLmVycm9yTWVzc2FnZSA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLnNlYXJjaGluZyA9IHRydWU7XG4gICAgY29uc3QgZmlsdGVyOiBBY2NvdW50ID0ge1xuICAgICAgdXNlcklEOiB0b2tlblxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5zZWFyY2hBY2NvdW50c0Zyb21EQihmaWx0ZXIpLnBpcGUoXG4gICAgICBtYXAoKGFjY291bnRzKSA9PiB7XG4gICAgICAgIHRoaXMuc2VhcmNoaW5nID0gZmFsc2U7XG4gICAgICAgIHJldHVybiBhY2NvdW50cztcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBzZWFyY2hBY2NvdW50c0Zyb21EQihmaWx0ZXI6IEFjY291bnQpOiBPYnNlcnZhYmxlPEFjY291bnRbXT4ge1xuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKTtcbiAgICBoZWFkZXJzLmFwcGVuZCgnQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcbiAgICBjb25zdCB1cmwgPSB0aGlzLnNlYXJjaFVSTDtcbiAgICBjb25zb2xlLmxvZygnVVJMOiAnICsgdXJsKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8QWNjb3VudFtdPih1cmwsIGZpbHRlciwgeyBoZWFkZXJzOiBoZWFkZXJzLCByZXNwb25zZVR5cGU6ICdqc29uJyB9KTtcbiAgfVxuXG4gIHB1YmxpYyBhZHZhbmNlZFNlYXJjaCgpIHtcbiAgICBjb25zb2xlLmxvZygnVVJMOiAnICsgdGhpcy5zZWFyY2hVUkwpO1xuICAgIGNvbnN0IGluaXRpYWxTdGF0ZSA9IHtcbiAgICAgIHNlYXJjaFVSTDogdGhpcy5zZWFyY2hVUkxcbiAgICB9O1xuICAgIGxldCBtb2RhbCA9IHRoaXMubW9kYWxTZXJ2aWNlLnNob3coQWNjb3VudFNlYXJjaE1vZGFsQ29tcG9uZW50LCB7aW5pdGlhbFN0YXRlLCBjbGFzczogJ21vZGFsLWxnJyxpZ25vcmVCYWNrZHJvcENsaWNrOiB0cnVlfSk7XG4gICAgKDxBY2NvdW50U2VhcmNoTW9kYWxDb21wb25lbnQ+bW9kYWwuY29udGVudCkub25BY2NvdW50U2VsZWN0ZWQuc3Vic2NyaWJlKGFjY291bnQgPT4ge1xuICAgICAgdGhpcy5sb2FkQWNjb3VudEluRm9ybShhY2NvdW50KTtcbiAgICAgIHRoaXMuYWNjb3VudFNlbGVjdGVkLmVtaXQoYWNjb3VudCk7XG4gICAgfSk7XG4gIH1cblxufVxuIiwiPGRpdiBbZm9ybUdyb3VwXT1cImdyb3VwXCIgY2xhc3M9XCJmb3JtLWdyb3VwXCIgW25nQ2xhc3NdPVwieydyb3cgdGV4dC1yaWdodCc6IHJvd0xheW91dH1cIj5cbiAgICA8bmctdGVtcGxhdGUgI2FjY291bnRUZW1wbGF0ZSBsZXQtbW9kZWw9XCJpdGVtXCIgbGV0LWluZGV4PVwiaW5kZXhcIj5cbiAgICAgICAgPGg1Pnt7IChtb2RlbC51c2VySUQgfHwgJycpICtcbiAgICAgICAgICAgICgnIC0gJyArIG1vZGVsLmZpcnN0TmFtZSArICcgJyArIG1vZGVsLmxhc3ROYW1lICsgKG1vZGVsLmNvbXBhbnkgPyAnICgnICsgbW9kZWwuY29tcGFueSArICcpJyA6ICcnKSkgfX08L2g1PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPGxhYmVsIFtuZ0NsYXNzXT1cInsnY29sLXNtLTQgY29sLWZvcm0tbGFiZWwnOiByb3dMYXlvdXR9XCI+XG4gICAgICAgIHt7dGl0bGV9fVxuICAgICAgICA8c3BhbiAqbmdJZj1cInNlYXJjaGluZ1wiIGNsYXNzPVwic3Bpbm5lci1ib3JkZXIgdGV4dC1wcmltYXJ5XCIgcm9sZT1cInN0YXR1c1wiPjwvc3Bhbj5cbiAgICAgICAgPGEgaWQ9XCJBZHZhbmNlZFNlYXJjaFwiIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMClcIiAoY2xpY2spPVwiYWR2YW5jZWRTZWFyY2goKVwiPkFkdmFuY2VkIFNlYXJjaDwvYT5cbiAgICA8L2xhYmVsPlxuICAgIDxkaXYgW25nQ2xhc3NdPVwieydjb2wtc20tOCc6IHJvd0xheW91dH1cIj5cbiAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jb250cm9sXCIgdHlwZT1cInNlYXJjaFwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7J2lzLWludmFsaWQnOmdyb3VwLmNvbnRyb2xzW2ZpZWxkXS5zdGF0dXMgPT09ICdJTlZBTElEJywgJ2NvbC1zbS04Jzogcm93TGF5b3V0fVwiXG4gICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImZpZWxkXCIgW3R5cGVhaGVhZF09XCJuYW1lU291cmNlXCIgW3R5cGVhaGVhZFNjcm9sbGFibGVdPVwidHJ1ZVwiXG4gICAgICAgICAgICAodHlwZWFoZWFkT25TZWxlY3QpPVwib25BY2NvdW50U2VsZWN0KCRldmVudClcIiBbaWRdPVwiY29tcG9uZW50SWQgKyAnX0FjY291bnRTZWFyY2gnXCJcbiAgICAgICAgICAgIFt0eXBlYWhlYWRJdGVtVGVtcGxhdGVdPVwiYWNjb3VudFRlbXBsYXRlXCIgW3R5cGVhaGVhZE1pbkxlbmd0aF09XCIzXCIgcGxhY2Vob2xkZXI9XCJTZWFyY2ggQWNjb3VudFwiPlxuICAgICAgICA8c21hbGwgY2xhc3M9XCJpbnZhbGlkLWZlZWRiYWNrXCIgKm5nSWY9XCJncm91cC5jb250cm9sc1tmaWVsZF0/Lmhhc0Vycm9yKCdyZXF1aXJlZCcpXCI+e3t0aXRsZX19IGlzIHJlcXVpcmVkXG4gICAgICAgICAgICB7e2Vycm9yTWVzc2FnZUFkZGVuZHVtfX08L3NtYWxsPlxuICAgIDwvZGl2PlxuPC9kaXY+XG48ZGl2ICpuZ0lmPVwiZXJyb3JNZXNzYWdlXCIgY2xhc3M9XCJhbGVydCBhbGVydC1kYW5nZXJcIj5cbiAgICB7e2Vycm9yTWVzc2FnZX19XG48L2Rpdj4iXX0=
@@ -0,0 +1,151 @@
1
+ import { Component, Output, EventEmitter, Input } from '@angular/core';
2
+ import { HttpHeaders } from '@angular/common/http';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/forms";
5
+ import * as i2 from "ngx-bootstrap/modal";
6
+ import * as i3 from "@angular/common/http";
7
+ import * as i4 from "@angular/common";
8
+ import * as i5 from "ngx-bootstrap/accordion";
9
+ import * as i6 from "../table/table.component";
10
+ export class AccountSearchModalComponent {
11
+ fb;
12
+ bsModalRef;
13
+ http;
14
+ modalFormGroup;
15
+ errorMessage;
16
+ inProgressMsg;
17
+ filter;
18
+ selectedAccount;
19
+ openSearchCriteria = true;
20
+ tableData = [];
21
+ tableHeader = undefined;
22
+ tableConfig = {
23
+ rowsPerPage: 5,
24
+ classNames: ['table-striped', 'table-bordered', 'table-sm']
25
+ };
26
+ searchURL = '/ebiz/api/v1/accounts/revenuesSearch';
27
+ onAccountSelected = new EventEmitter();
28
+ constructor(fb, bsModalRef, http) {
29
+ this.fb = fb;
30
+ this.bsModalRef = bsModalRef;
31
+ this.http = http;
32
+ }
33
+ ngOnInit() {
34
+ this.createForm();
35
+ }
36
+ createForm() {
37
+ this.modalFormGroup = this.fb.group({
38
+ userID: '',
39
+ firstName: '',
40
+ lastName: ''
41
+ });
42
+ }
43
+ getFilterFromForm() {
44
+ let filter = {
45
+ userID: this.modalFormGroup.get('userID')?.value,
46
+ firstName: this.modalFormGroup.get('firstName')?.value,
47
+ lastName: this.modalFormGroup.get('lastName')?.value
48
+ };
49
+ return filter;
50
+ }
51
+ filterIsEmpty(filter) {
52
+ let empty = true;
53
+ if (filter.userID && filter.userID.length > 0) {
54
+ empty = false;
55
+ }
56
+ if (filter.firstName && filter.firstName.length > 0) {
57
+ empty = false;
58
+ }
59
+ if (filter.lastName && filter.lastName.length > 0) {
60
+ empty = false;
61
+ }
62
+ return empty;
63
+ }
64
+ submitSearch() {
65
+ console.log("SEAARCH");
66
+ this.errorMessage = undefined;
67
+ let filter = this.getFilterFromForm();
68
+ if (this.filterIsEmpty(filter)) {
69
+ this.errorMessage = 'Please specify search criteria';
70
+ return;
71
+ }
72
+ this.inProgressMsg = 'Searching...';
73
+ this.tableData = [];
74
+ this.buildTableHeader();
75
+ this.searchAccountsFromDB(filter).subscribe({
76
+ next: accounts => {
77
+ this.inProgressMsg = undefined;
78
+ if (accounts && accounts.length > 0) {
79
+ this.openSearchCriteria = false;
80
+ accounts.forEach(account => {
81
+ let row = this.convertAccountToTableRow(account);
82
+ this.tableData.push(row);
83
+ this.tableData = this.tableData.slice();
84
+ });
85
+ }
86
+ else {
87
+ this.openSearchCriteria = true;
88
+ this.errorMessage = 'No ebiz accounts found matching search criteria.';
89
+ }
90
+ }, error: (error) => {
91
+ this.inProgressMsg = undefined;
92
+ this.errorMessage = 'Search Failed: ' + error;
93
+ }
94
+ });
95
+ }
96
+ buildTableHeader() {
97
+ this.tableHeader = {
98
+ columns: [
99
+ { title: '', id: 'select', sort: 'none', singleSelectColumn: true, className: 'select-col' },
100
+ { title: 'User ID', id: 'userID', sort: 'none', filterable: true },
101
+ { title: 'First Name', id: 'firstName', sort: 'none', filterable: true },
102
+ { title: 'Last Name', id: 'lastName', sort: 'none', filterable: true },
103
+ { title: 'Company', id: 'company', sort: 'none', filterable: true }
104
+ ]
105
+ };
106
+ }
107
+ convertAccountToTableRow(account) {
108
+ let cells = [
109
+ { id: 'userID', value: account.userID },
110
+ { id: 'firstName', value: account.firstName },
111
+ { id: 'lastName', value: account.lastName },
112
+ { id: 'company', value: account.company }
113
+ ];
114
+ return {
115
+ cells: cells,
116
+ dataSource: account,
117
+ selectable: true
118
+ };
119
+ }
120
+ resetSearch() {
121
+ this.openSearchCriteria = true;
122
+ this.modalFormGroup.reset();
123
+ this.tableData = [];
124
+ }
125
+ onRowSelect(event) {
126
+ this.selectedAccount = event[0].dataSource;
127
+ }
128
+ save() {
129
+ this.onAccountSelected.emit(this.selectedAccount);
130
+ this.bsModalRef.hide();
131
+ }
132
+ searchAccountsFromDB(filter) {
133
+ const headers = new HttpHeaders();
134
+ headers.append('Content-Type', 'application/json');
135
+ const url = this.searchURL;
136
+ console.log('URL: ' + url);
137
+ return this.http.post(url, filter, { headers: headers, responseType: 'json' });
138
+ }
139
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AccountSearchModalComponent, deps: [{ token: i1.FormBuilder }, { token: i2.BsModalRef }, { token: i3.HttpClient }], target: i0.ɵɵFactoryTarget.Component });
140
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: AccountSearchModalComponent, selector: "oepa-account-search-modal", inputs: { searchURL: "searchURL" }, outputs: { onAccountSelected: "onAccountSelected" }, ngImport: i0, template: "<div class=\"modal-header\">\n <h4 class=\"modal-title pull-left\">Advanced Ebiz Account Search</h4>\n <button type=\"button\" class=\"btn-close float-end\" aria-label=\"Close\" (click)=\"bsModalRef.hide()\">\n </button>\n</div>\n<div class=\"modal-body\">\n <accordion>\n <accordion-group panelClass=\"panel-info\" #searchGroup [isOpen]=\"openSearchCriteria\">\n <div accordion-heading>\n <div class=\"row\">\n <div class=\"col-sm-6\">\n <i class=\"float-xs-right bi\" id=\"accountSearchCriteria\" name=\"accountSearchCriteria\" \n [ngClass]=\"{'bi-chevron-down': searchGroup?.isOpen, 'bi-chevron-right': !searchGroup?.isOpen}\"></i>\n <b>Ebiz Account Search Criteria</b>\n </div>\n </div>\n </div>\n <form [formGroup]=\"modalFormGroup\">\n <div class=\"row\">\n <div class=\"col-md-12\">\n <div class=\"form-group\">\n <label>Ebiz User ID</label>\n <input type=\"search\" class=\"form-control\" id=\"userUIDInput\" formControlName=\"userID\">\n </div>\n </div>\n <div class=\"col-md-12\">\n <div class=\"form-group\">\n <label>First Name</label>\n <input type=\"search\" class=\"form-control\" id=\"firstNameInput\" formControlName=\"firstName\">\n </div>\n </div>\n <div class=\"col-md-12\">\n <div class=\"form-group\">\n <label>Last Name</label>\n <input type=\"search\" class=\"form-control\" id=\"lastNameInput\" formControlName=\"lastName\">\n </div>\n </div>\n </div>\n \n <div class=\"row\">\n <div class=\"col-sm-12 text-center\">\n <span *ngIf=\"inProgressMsg\" class=\"spinner-border text-primary\" role=\"status\"></span>\n <button *ngIf=\"!inProgressMsg\" type=\"submit\" class=\"btn btn-primary mr-2\" id=\"submitSearchBtn\" (click)=\"submitSearch()\">Search</button>\n <button id=\"resetSearchBtn\" type=\"button\" class=\"btn btn-primary\" (click)=\"resetSearch()\">Reset</button>\n </div>\n </div>\n </form>\n </accordion-group>\n </accordion>\n <div *ngIf=\"tableData && tableData.length > 0\" class=\"card\">\n <div class=\"card-header\">\n <b>Ebiz Account List&nbsp;</b><span class=\"badge bg-secondary\">{{tableData.length}}</span>\n </div>\n <div class=\"card-body\" *ngIf=\"tableHeader\">\n <oepa-table tableId=\"accountSearchTable\" [config]=\"tableConfig\" [data]=\"tableData\" [header]=\"tableHeader\" (rowSelected)=\"onRowSelect($event)\">\n </oepa-table>\n </div>\n </div>\n</div>\n<div class=\"modal-footer d-block\">\n <div *ngIf=\"errorMessage\">\n <div class=\"alert alert-danger\">\n {{errorMessage}}\n </div>\n </div>\n <div *ngIf=\"inProgressMsg\">\n <div class=\"alert alert-info\">\n {{inProgressMsg}}\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col-sm-12 text-center\">\n <button type=\"button\" class=\"btn btn-primary mr-2\"\n id=\"SaveAccountBtn\"\n [disabled]=\"!selectedAccount || inProgressMsg\"\n (click)=\"save()\">Save</button>\n <button id=\"CancelPaymentBtn\" type=\"button\" class=\"btn btn-primary\"\n (click)=\"bsModalRef.hide()\">Cancel</button>\n </div>\n </div>\n</div>", styles: [""], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.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: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i5.AccordionComponent, selector: "accordion", inputs: ["isAnimated", "closeOthers"] }, { kind: "component", type: i5.AccordionPanelComponent, selector: "accordion-group, accordion-panel", inputs: ["heading", "panelClass", "isDisabled", "isOpen"], outputs: ["isOpenChange"] }, { kind: "component", type: i6.TableComponent, selector: "oepa-table", inputs: ["tableId", "config", "complexHeader", "header", "customBtnLabel", "customBtnVisible", "customBtnEnabled", "data", "totalRow"], outputs: ["cellClicked", "actionClicked", "rowSelected", "customBtnClicked"] }] });
141
+ }
142
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AccountSearchModalComponent, decorators: [{
143
+ type: Component,
144
+ args: [{ selector: 'oepa-account-search-modal', template: "<div class=\"modal-header\">\n <h4 class=\"modal-title pull-left\">Advanced Ebiz Account Search</h4>\n <button type=\"button\" class=\"btn-close float-end\" aria-label=\"Close\" (click)=\"bsModalRef.hide()\">\n </button>\n</div>\n<div class=\"modal-body\">\n <accordion>\n <accordion-group panelClass=\"panel-info\" #searchGroup [isOpen]=\"openSearchCriteria\">\n <div accordion-heading>\n <div class=\"row\">\n <div class=\"col-sm-6\">\n <i class=\"float-xs-right bi\" id=\"accountSearchCriteria\" name=\"accountSearchCriteria\" \n [ngClass]=\"{'bi-chevron-down': searchGroup?.isOpen, 'bi-chevron-right': !searchGroup?.isOpen}\"></i>\n <b>Ebiz Account Search Criteria</b>\n </div>\n </div>\n </div>\n <form [formGroup]=\"modalFormGroup\">\n <div class=\"row\">\n <div class=\"col-md-12\">\n <div class=\"form-group\">\n <label>Ebiz User ID</label>\n <input type=\"search\" class=\"form-control\" id=\"userUIDInput\" formControlName=\"userID\">\n </div>\n </div>\n <div class=\"col-md-12\">\n <div class=\"form-group\">\n <label>First Name</label>\n <input type=\"search\" class=\"form-control\" id=\"firstNameInput\" formControlName=\"firstName\">\n </div>\n </div>\n <div class=\"col-md-12\">\n <div class=\"form-group\">\n <label>Last Name</label>\n <input type=\"search\" class=\"form-control\" id=\"lastNameInput\" formControlName=\"lastName\">\n </div>\n </div>\n </div>\n \n <div class=\"row\">\n <div class=\"col-sm-12 text-center\">\n <span *ngIf=\"inProgressMsg\" class=\"spinner-border text-primary\" role=\"status\"></span>\n <button *ngIf=\"!inProgressMsg\" type=\"submit\" class=\"btn btn-primary mr-2\" id=\"submitSearchBtn\" (click)=\"submitSearch()\">Search</button>\n <button id=\"resetSearchBtn\" type=\"button\" class=\"btn btn-primary\" (click)=\"resetSearch()\">Reset</button>\n </div>\n </div>\n </form>\n </accordion-group>\n </accordion>\n <div *ngIf=\"tableData && tableData.length > 0\" class=\"card\">\n <div class=\"card-header\">\n <b>Ebiz Account List&nbsp;</b><span class=\"badge bg-secondary\">{{tableData.length}}</span>\n </div>\n <div class=\"card-body\" *ngIf=\"tableHeader\">\n <oepa-table tableId=\"accountSearchTable\" [config]=\"tableConfig\" [data]=\"tableData\" [header]=\"tableHeader\" (rowSelected)=\"onRowSelect($event)\">\n </oepa-table>\n </div>\n </div>\n</div>\n<div class=\"modal-footer d-block\">\n <div *ngIf=\"errorMessage\">\n <div class=\"alert alert-danger\">\n {{errorMessage}}\n </div>\n </div>\n <div *ngIf=\"inProgressMsg\">\n <div class=\"alert alert-info\">\n {{inProgressMsg}}\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col-sm-12 text-center\">\n <button type=\"button\" class=\"btn btn-primary mr-2\"\n id=\"SaveAccountBtn\"\n [disabled]=\"!selectedAccount || inProgressMsg\"\n (click)=\"save()\">Save</button>\n <button id=\"CancelPaymentBtn\" type=\"button\" class=\"btn btn-primary\"\n (click)=\"bsModalRef.hide()\">Cancel</button>\n </div>\n </div>\n</div>" }]
145
+ }], ctorParameters: () => [{ type: i1.FormBuilder }, { type: i2.BsModalRef }, { type: i3.HttpClient }], propDecorators: { searchURL: [{
146
+ type: Input,
147
+ args: ['searchURL']
148
+ }], onAccountSelected: [{
149
+ type: Output
150
+ }] } });
151
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudC1zZWFyY2gtbW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb2VwYS11aS1saWIvc3JjL2xpYi9hY2NvdW50LXNlYXJjaC1tb2RhbC9hY2NvdW50LXNlYXJjaC1tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vZXBhLXVpLWxpYi9zcmMvbGliL2FjY291bnQtc2VhcmNoLW1vZGFsL2FjY291bnQtc2VhcmNoLW1vZGFsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFPL0UsT0FBTyxFQUFFLFdBQVcsRUFBYyxNQUFNLHNCQUFzQixDQUFDOzs7Ozs7OztBQVEvRCxNQUFNLE9BQU8sMkJBQTJCO0lBbUJsQjtJQUF3QjtJQUFnQztJQWxCckUsY0FBYyxDQUFhO0lBQzNCLFlBQVksQ0FBc0I7SUFDbEMsYUFBYSxDQUFzQjtJQUNuQyxNQUFNLENBQVc7SUFDakIsZUFBZSxDQUFXO0lBQzFCLGtCQUFrQixHQUFHLElBQUksQ0FBQztJQUUxQixTQUFTLEdBQXdCLEVBQUUsQ0FBQztJQUNwQyxXQUFXLEdBQWdDLFNBQVMsQ0FBQztJQUNyRCxXQUFXLEdBQW9CO1FBQ3BDLFdBQVcsRUFBRSxDQUFDO1FBQ2QsVUFBVSxFQUFFLENBQUMsZUFBZSxFQUFFLGdCQUFnQixFQUFFLFVBQVUsQ0FBQztLQUM5RCxDQUFDO0lBRWtCLFNBQVMsR0FBVyxzQ0FBc0MsQ0FBQztJQUVyRSxpQkFBaUIsR0FBMEIsSUFBSSxZQUFZLEVBQVcsQ0FBQztJQUUvRSxZQUFvQixFQUFlLEVBQVMsVUFBc0IsRUFBVSxJQUFnQjtRQUF4RSxPQUFFLEdBQUYsRUFBRSxDQUFhO1FBQVMsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUFV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RUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUM1RixDQUFDO3dHQXhJVSwyQkFBMkI7NEZBQTNCLDJCQUEyQiwwSkNmeEMsbzhIQWdGTTs7NEZEakVPLDJCQUEyQjtrQkFMdkMsU0FBUzsrQkFDRSwyQkFBMkI7a0lBbUJuQixTQUFTO3NCQUE1QixLQUFLO3VCQUFDLFdBQVc7Z0JBRVIsaUJBQWlCO3NCQUExQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEJzTW9kYWxSZWYgfSBmcm9tICduZ3gtYm9vdHN0cmFwL21vZGFsJztcbmltcG9ydCB7IE9lcGFUYWJsZVJvdyB9IGZyb20gJy4uL3RhYmxlL29lcGEtdGFibGUtcm93JztcbmltcG9ydCB7IE9lcGFUYWJsZUhlYWRlciB9IGZyb20gJy4uL3RhYmxlL29lcGEtdGFibGUtaGVhZGVyJztcbmltcG9ydCB7IE9lcGFUYWJsZUNvbmZpZyB9IGZyb20gJy4uL3RhYmxlL29lcGEtdGFibGUtY29uZmlnJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEh0dHBIZWFkZXJzLCBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgQWNjb3VudCB9IGZyb20gJ0BvaGlvZXBhL29lcGEtZWJpei1saWInO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdvZXBhLWFjY291bnQtc2VhcmNoLW1vZGFsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FjY291bnQtc2VhcmNoLW1vZGFsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYWNjb3VudC1zZWFyY2gtbW9kYWwuY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIEFjY291bnRTZWFyY2hNb2RhbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHB1YmxpYyBtb2RhbEZvcm1Hcm91cCE6IEZvcm1Hcm91cDtcbiAgcHVibGljIGVycm9yTWVzc2FnZSE6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgcHVibGljIGluUHJvZ3Jlc3NNc2chOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIHB1YmxpYyBmaWx0ZXIhOiBBY2NvdW50O1xuICBwdWJsaWMgc2VsZWN0ZWRBY2NvdW50ITogQWNjb3VudDtcbiAgcHVibGljIG9wZW5TZWFyY2hDcml0ZXJpYSA9IHRydWU7XG5cbiAgcHVibGljIHRhYmxlRGF0YTogQXJyYXk8T2VwYVRhYmxlUm93PiA9IFtdO1xuICBwdWJsaWMgdGFibGVIZWFkZXI6IE9lcGFUYWJsZUhlYWRlciB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgcHVibGljIHRhYmxlQ29uZmlnOiBPZXBhVGFibGVDb25maWcgPSB7XG4gICAgcm93c1BlclBhZ2U6IDUsXG4gICAgY2xhc3NOYW1lczogWyd0YWJsZS1zdHJpcGVkJywgJ3RhYmxlLWJvcmRlcmVkJywgJ3RhYmxlLXNtJ11cbn07XG5cbkBJbnB1dCgnc2VhcmNoVVJMJykgc2VhcmNoVVJMOiBzdHJpbmcgPSAnL2ViaXovYXBpL3YxL2FjY291bnRzL3JldmVudWVzU2VhcmNoJztcblxuQE91dHB1dCgpIG9uQWNjb3VudFNlbGVjdGVkOiBFdmVudEVtaXR0ZXI8QWNjb3VudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEFjY291bnQ+KCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsIHB1YmxpYyBic01vZGFsUmVmOiBCc01vZGFsUmVmLCBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQpIHsgXG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmNyZWF0ZUZvcm0oKTtcbiAgfVxuICBcbiAgcHJpdmF0ZSBjcmVhdGVGb3JtKCkge1xuICAgIHRoaXMubW9kYWxGb3JtR3JvdXAgPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIHVzZXJJRDogJycsXG4gICAgICBmaXJzdE5hbWU6ICcnLFxuICAgICAgbGFzdE5hbWU6ICcnXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGdldEZpbHRlckZyb21Gb3JtKCk6IEFjY291bnQge1xuICAgIGxldCBmaWx0ZXI6IEFjY291bnQgPSB7XG4gICAgICB1c2VySUQ6IHRoaXMubW9kYWxGb3JtR3JvdXAuZ2V0KCd1c2VySUQnKT8udmFsdWUsXG4gICAgICBmaXJzdE5hbWU6IHRoaXMubW9kYWxGb3JtR3JvdXAuZ2V0KCdmaXJzdE5hbWUnKT8udmFsdWUsXG4gICAgICBsYXN0TmFtZTogdGhpcy5tb2RhbEZvcm1Hcm91cC5nZXQoJ2xhc3ROYW1lJyk/LnZhbHVlIFxuICAgIH07XG4gICAgcmV0dXJuIGZpbHRlcjtcbiAgfVxuXG4gIHByaXZhdGUgZmlsdGVySXNFbXB0eShmaWx0ZXI6IEFjY291bnQpOiBib29sZWFuIHtcbiAgICBsZXQgZW1wdHkgPSB0cnVlO1xuICAgIGlmIChmaWx0ZXIudXNlcklEICYmIGZpbHRlci51c2VySUQubGVuZ3RoID4gMCkge1xuICAgICAgZW1wdHkgPSBmYWxzZTtcbiAgICB9XG4gICAgaWYgKGZpbHRlci5maXJzdE5hbWUgJiYgZmlsdGVyLmZpcnN0TmFtZS5sZW5ndGggPiAwKSB7XG4gICAgICBlbXB0eSA9IGZhbHNlO1xuICAgIH1cbiAgICBpZiAoZmlsdGVyLmxhc3ROYW1lICYmIGZpbHRlci5sYXN0TmFtZS5sZW5ndGggPiAwKSB7XG4gICAgICBlbXB0eSA9IGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gZW1wdHk7XG4gIH1cblxuICBwdWJsaWMgc3VibWl0U2VhcmNoKCkge1xuICAgIGNvbnNvbGUubG9nKFwiU0VBQVJDSFwiKVxuICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gdW5kZWZpbmVkO1xuICAgIGxldCBmaWx0ZXIgPSB0aGlzLmdldEZpbHRlckZyb21Gb3JtKCk7XG4gICAgaWYgKHRoaXMuZmlsdGVySXNFbXB0eShmaWx0ZXIpKSB7XG4gICAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICdQbGVhc2Ugc3BlY2lmeSBzZWFyY2ggY3JpdGVyaWEnO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmluUHJvZ3Jlc3NNc2cgPSAnU2VhcmNoaW5nLi4uJztcbiAgICB0aGlzLnRhYmxlRGF0YSA9IFtdO1xuICAgIHRoaXMuYnVpbGRUYWJsZUhlYWRlcigpO1xuICAgIHRoaXMuc2VhcmNoQWNjb3VudHNGcm9tREIoZmlsdGVyKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogYWNjb3VudHMgPT4ge1xuICAgICAgdGhpcy5pblByb2dyZXNzTXNnID0gdW5kZWZpbmVkO1xuICAgICAgaWYgKGFjY291bnRzICYmIGFjY291bnRzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgdGhpcy5vcGVuU2VhcmNoQ3JpdGVyaWEgPSBmYWxzZTtcbiAgICAgICAgYWNjb3VudHMuZm9yRWFjaChhY2NvdW50ID0+IHtcbiAgICAgICAgICBsZXQgcm93ID0gdGhpcy5jb252ZXJ0QWNjb3VudFRvVGFibGVSb3coYWNjb3VudCk7XG4gICAgICAgICAgdGhpcy50YWJsZURhdGEucHVzaChyb3cpO1xuICAgICAgICAgIHRoaXMudGFibGVEYXRhID0gdGhpcy50YWJsZURhdGEuc2xpY2UoKTtcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLm9wZW5TZWFyY2hDcml0ZXJpYSA9IHRydWU7XG4gICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJ05vIGViaXogYWNjb3VudHMgZm91bmQgbWF0Y2hpbmcgc2VhcmNoIGNyaXRlcmlhLic7XG4gICAgICB9XG4gICAgfSwgZXJyb3I6KGVycm9yKSA9PiB7XG4gICAgICB0aGlzLmluUHJvZ3Jlc3NNc2cgPSB1bmRlZmluZWQ7XG4gICAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICdTZWFyY2ggRmFpbGVkOiAnICsgZXJyb3I7XG4gICAgfX0pO1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZFRhYmxlSGVhZGVyKCl7XG4gICAgICB0aGlzLnRhYmxlSGVhZGVyID0ge1xuICAgICAgICBjb2x1bW5zOiBbXG4gICAgICAgICAgICB7IHRpdGxlOiAnJywgaWQ6ICdzZWxlY3QnLCBzb3J0OiAnbm9uZScsIHNpbmdsZVNlbGVjdENvbHVtbjogdHJ1ZSwgY2xhc3NOYW1lOiAnc2VsZWN0LWNvbCcgfSxcbiAgICAgICAgICAgIHsgdGl0bGU6ICdVc2VyIElEJywgaWQ6ICd1c2VySUQnLCBzb3J0OiAnbm9uZScsIGZpbHRlcmFibGU6IHRydWUgfSxcbiAgICAgICAgICAgIHsgdGl0bGU6ICdGaXJzdCBOYW1lJywgaWQ6ICdmaXJzdE5hbWUnLCBzb3J0OiAnbm9uZScsIGZpbHRlcmFibGU6IHRydWUgfSxcbiAgICAgICAgICAgIHsgdGl0bGU6ICdMYXN0IE5hbWUnLCBpZDogJ2xhc3ROYW1lJywgc29ydDogJ25vbmUnLCBmaWx0ZXJhYmxlOiB0cnVlIH0sXG4gICAgICAgICAgICB7IHRpdGxlOiAnQ29tcGFueScsIGlkOiAnY29tcGFueScsIHNvcnQ6ICdub25lJywgZmlsdGVyYWJsZTogdHJ1ZSB9ICBcbiAgICAgICAgXVxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGNvbnZlcnRBY2NvdW50VG9UYWJsZVJvdyhhY2NvdW50OiBBY2NvdW50KTogT2VwYVRhYmxlUm93IHtcbiAgICAgIGxldCBjZWxsczpBcnJheTxhbnk+PSBbXG4gICAgICAgIHsgaWQ6ICd1c2VySUQnLCB2YWx1ZTogYWNjb3VudC51c2VySUQgfSxcbiAgICAgICAgeyBpZDogJ2ZpcnN0TmFtZScsIHZhbHVlOiBhY2NvdW50LmZpcnN0TmFtZSB9LFxuICAgICAgICB7IGlkOiAnbGFzdE5hbWUnLCB2YWx1ZTogYWNjb3VudC5sYXN0TmFtZSB9LFxuICAgICAgICB7IGlkOiAnY29tcGFueScsIHZhbHVlOiBhY2NvdW50LmNvbXBhbnkgfVxuICAgICAgXTtcblxuICAgIHJldHVybiB7XG4gICAgICBjZWxsczogY2VsbHMsXG4gICAgICBkYXRhU291cmNlOiBhY2NvdW50LFxuICAgICAgc2VsZWN0YWJsZTogdHJ1ZVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyByZXNldFNlYXJjaCgpIHtcbiAgICB0aGlzLm9wZW5TZWFyY2hDcml0ZXJpYSA9IHRydWU7XG4gICAgdGhpcy5tb2RhbEZvcm1Hcm91cC5yZXNldCgpO1xuICAgIHRoaXMudGFibGVEYXRhID0gW107XG4gIH1cblxuICBwdWJsaWMgb25Sb3dTZWxlY3QoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMuc2VsZWN0ZWRBY2NvdW50ID0gZXZlbnRbMF0uZGF0YVNvdXJjZTtcbiAgfVxuXG4gIHB1YmxpYyBzYXZlKCkge1xuICAgIHRoaXMub25BY2NvdW50U2VsZWN0ZWQuZW1pdCh0aGlzLnNlbGVjdGVkQWNjb3VudCk7XG4gICAgdGhpcy5ic01vZGFsUmVmLmhpZGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZWFyY2hBY2NvdW50c0Zyb21EQihmaWx0ZXI6IEFjY291bnQpOiBPYnNlcnZhYmxlPEFjY291bnRbXT4ge1xuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKTtcbiAgICBoZWFkZXJzLmFwcGVuZCgnQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcbiAgICBjb25zdCB1cmwgPSB0aGlzLnNlYXJjaFVSTDtcbiAgICBjb25zb2xlLmxvZygnVVJMOiAnICsgdXJsKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8QWNjb3VudFtdPih1cmwsIGZpbHRlciwgeyBoZWFkZXJzOiBoZWFkZXJzLCByZXNwb25zZVR5cGU6ICdqc29uJyB9KTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIm1vZGFsLWhlYWRlclwiPlxuICAgIDxoNCBjbGFzcz1cIm1vZGFsLXRpdGxlIHB1bGwtbGVmdFwiPkFkdmFuY2VkIEViaXogQWNjb3VudCBTZWFyY2g8L2g0PlxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuLWNsb3NlIGZsb2F0LWVuZFwiIGFyaWEtbGFiZWw9XCJDbG9zZVwiIChjbGljayk9XCJic01vZGFsUmVmLmhpZGUoKVwiPlxuICAgIDwvYnV0dG9uPlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwibW9kYWwtYm9keVwiPlxuICAgICAgICA8YWNjb3JkaW9uPlxuICAgICAgICAgICAgPGFjY29yZGlvbi1ncm91cCBwYW5lbENsYXNzPVwicGFuZWwtaW5mb1wiICNzZWFyY2hHcm91cCBbaXNPcGVuXT1cIm9wZW5TZWFyY2hDcml0ZXJpYVwiPlxuICAgICAgICAgICAgICAgIDxkaXYgYWNjb3JkaW9uLWhlYWRpbmc+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tNlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmxvYXQteHMtcmlnaHQgYmlcIiBpZD1cImFjY291bnRTZWFyY2hDcml0ZXJpYVwiIG5hbWU9XCJhY2NvdW50U2VhcmNoQ3JpdGVyaWFcIiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J2JpLWNoZXZyb24tZG93bic6IHNlYXJjaEdyb3VwPy5pc09wZW4sICdiaS1jaGV2cm9uLXJpZ2h0JzogIXNlYXJjaEdyb3VwPy5pc09wZW59XCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Yj5FYml6IEFjY291bnQgU2VhcmNoIENyaXRlcmlhPC9iPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwibW9kYWxGb3JtR3JvdXBcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPkViaXogVXNlciBJRDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJzZWFyY2hcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGlkPVwidXNlclVJRElucHV0XCIgZm9ybUNvbnRyb2xOYW1lPVwidXNlcklEXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPkZpcnN0IE5hbWU8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwic2VhcmNoXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBpZD1cImZpcnN0TmFtZUlucHV0XCIgZm9ybUNvbnRyb2xOYW1lPVwiZmlyc3ROYW1lXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPkxhc3QgTmFtZTwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJzZWFyY2hcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGlkPVwibGFzdE5hbWVJbnB1dFwiIGZvcm1Db250cm9sTmFtZT1cImxhc3ROYW1lXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLTEyIHRleHQtY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImluUHJvZ3Jlc3NNc2dcIiBjbGFzcz1cInNwaW5uZXItYm9yZGVyIHRleHQtcHJpbWFyeVwiIHJvbGU9XCJzdGF0dXNcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwiIWluUHJvZ3Jlc3NNc2dcIiB0eXBlPVwic3VibWl0XCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgbXItMlwiIGlkPVwic3VibWl0U2VhcmNoQnRuXCIgKGNsaWNrKT1cInN1Ym1pdFNlYXJjaCgpXCI+U2VhcmNoPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGlkPVwicmVzZXRTZWFyY2hCdG5cIiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIiAoY2xpY2spPVwicmVzZXRTZWFyY2goKVwiPlJlc2V0PC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9mb3JtPlxuICAgICAgICAgICAgPC9hY2NvcmRpb24tZ3JvdXA+XG4gICAgICAgIDwvYWNjb3JkaW9uPlxuICAgIDxkaXYgKm5nSWY9XCJ0YWJsZURhdGEgJiYgdGFibGVEYXRhLmxlbmd0aCA+IDBcIiBjbGFzcz1cImNhcmRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyXCI+XG4gICAgICAgICAgICA8Yj5FYml6IEFjY291bnQgTGlzdCZuYnNwOzwvYj48c3BhbiBjbGFzcz1cImJhZGdlIGJnLXNlY29uZGFyeVwiPnt7dGFibGVEYXRhLmxlbmd0aH19PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keVwiICpuZ0lmPVwidGFibGVIZWFkZXJcIj5cbiAgICAgICAgICAgIDxvZXBhLXRhYmxlIHRhYmxlSWQ9XCJhY2NvdW50U2VhcmNoVGFibGVcIiBbY29uZmlnXT1cInRhYmxlQ29uZmlnXCIgW2RhdGFdPVwidGFibGVEYXRhXCIgW2hlYWRlcl09XCJ0YWJsZUhlYWRlclwiIChyb3dTZWxlY3RlZCk9XCJvblJvd1NlbGVjdCgkZXZlbnQpXCI+XG4gICAgICAgICAgICA8L29lcGEtdGFibGU+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwibW9kYWwtZm9vdGVyIGQtYmxvY2tcIj5cbiAgICA8ZGl2ICpuZ0lmPVwiZXJyb3JNZXNzYWdlXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhbGVydCBhbGVydC1kYW5nZXJcIj5cbiAgICAgICAgICAgIHt7ZXJyb3JNZXNzYWdlfX1cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cImluUHJvZ3Jlc3NNc2dcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFsZXJ0IGFsZXJ0LWluZm9cIj5cbiAgICAgICAgICAgIHt7aW5Qcm9ncmVzc01zZ319XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS0xMiB0ZXh0LWNlbnRlclwiPlxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgbXItMlwiXG4gICAgICAgICAgICAgICAgaWQ9XCJTYXZlQWNjb3VudEJ0blwiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFzZWxlY3RlZEFjY291bnQgfHwgaW5Qcm9ncmVzc01zZ1wiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInNhdmUoKVwiPlNhdmU8L2J1dHRvbj5cbiAgICAgICAgICAgIDxidXR0b24gaWQ9XCJDYW5jZWxQYXltZW50QnRuXCIgdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiYnNNb2RhbFJlZi5oaWRlKClcIj5DYW5jZWw8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj4iXX0=
@@ -0,0 +1,70 @@
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/platform-browser";
4
+ import * as i2 from "@angular/common";
5
+ import * as i3 from "ngx-bootstrap/dropdown";
6
+ /**
7
+ * A dropdown button with a list of actions.
8
+ */
9
+ export class ActionBtnComponent {
10
+ sanitizer;
11
+ busy = false;
12
+ /** Button label */
13
+ label = 'Actions';
14
+ /** Unique id for this button */
15
+ btnId = '';
16
+ /** Data to be passed to emitter */
17
+ data;
18
+ /** List of actions for this button */
19
+ actions = [];
20
+ /** Make button "normal" size (default is btn-sm) */
21
+ normalSize = false;
22
+ /** dropup? */
23
+ dropup = false;
24
+ /** Event emitted when an action is selected */
25
+ actionClicked = new EventEmitter();
26
+ constructor(sanitizer) {
27
+ this.sanitizer = sanitizer;
28
+ }
29
+ sanitize(html) {
30
+ return this.sanitizer.bypassSecurityTrustHtml(html);
31
+ }
32
+ onActionClicked(action) {
33
+ const data = this.data;
34
+ this.actionClicked.emit({
35
+ action: action,
36
+ data: data,
37
+ buttonObj: this
38
+ });
39
+ }
40
+ setBusy() {
41
+ this.busy = true;
42
+ }
43
+ clearBusy() {
44
+ this.busy = false;
45
+ }
46
+ getID() {
47
+ return this.btnId + '_ActionBtn';
48
+ }
49
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ActionBtnComponent, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component });
50
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ActionBtnComponent, selector: "oepa-action-btn", inputs: { label: "label", btnId: "btnId", data: "data", actions: "actions", normalSize: "normalSize", dropup: "dropup" }, outputs: { actionClicked: "actionClicked" }, ngImport: i0, template: "<div *ngIf=\"actions && actions.length > 0\" class=\"btn-group\" dropdown [dropup]=\"dropup\">\n <button dropdownToggle type=\"button\" class=\"btn btn-primary dropdown-toggle\" [ngClass]=\"{ 'btn-sm' : !normalSize }\"\n [id]=\"btnId+'_ActionBtn'\">\n <span *ngIf=\"busy\" class=\"spinner-border text-primary\" role=\"status\"></span>\n {{label}} \n <span class=\"caret\"></span>\n </button>\n\n <ul *dropdownMenu class=\"dropdown-menu dropdown-menu-right\" role=\"menu\">\n <li *ngFor=\"let action of actions; let i = index;\" role=\"menuitem\">\n <a *ngIf=\"!busy\" class=\"dropdown-item\" (click)=\"onActionClicked(action)\" [id]=\"btnId+'_ActionLink_'+i\">\n <i ngClass=\"{{action.className || ''}}\"></i> {{action.title}}\n </a>\n </li>\n </ul>\n</div> \n<!-- display disabled button if no actions are available -->\n<div *ngIf=\"!actions || actions.length === 0\">\n <button type=\"button\" class=\"btn btn-primary\" [ngClass]=\"{ 'btn-sm' : !normalSize }\" [id]=\"btnId+'_ActionBtn'\" disabled>\n N/A \n </button>\n</div>", styles: [""], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.BsDropdownMenuDirective, selector: "[bsDropdownMenu],[dropdownMenu]", exportAs: ["bs-dropdown-menu"] }, { kind: "directive", type: i3.BsDropdownToggleDirective, selector: "[bsDropdownToggle],[dropdownToggle]", exportAs: ["bs-dropdown-toggle"] }, { kind: "directive", type: i3.BsDropdownDirective, selector: "[bsDropdown], [dropdown]", inputs: ["placement", "triggers", "container", "dropup", "autoClose", "isAnimated", "insideClick", "isDisabled", "isOpen"], outputs: ["isOpenChange", "onShown", "onHidden"], exportAs: ["bs-dropdown"] }] });
51
+ }
52
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ActionBtnComponent, decorators: [{
53
+ type: Component,
54
+ args: [{ selector: 'oepa-action-btn', template: "<div *ngIf=\"actions && actions.length > 0\" class=\"btn-group\" dropdown [dropup]=\"dropup\">\n <button dropdownToggle type=\"button\" class=\"btn btn-primary dropdown-toggle\" [ngClass]=\"{ 'btn-sm' : !normalSize }\"\n [id]=\"btnId+'_ActionBtn'\">\n <span *ngIf=\"busy\" class=\"spinner-border text-primary\" role=\"status\"></span>\n {{label}} \n <span class=\"caret\"></span>\n </button>\n\n <ul *dropdownMenu class=\"dropdown-menu dropdown-menu-right\" role=\"menu\">\n <li *ngFor=\"let action of actions; let i = index;\" role=\"menuitem\">\n <a *ngIf=\"!busy\" class=\"dropdown-item\" (click)=\"onActionClicked(action)\" [id]=\"btnId+'_ActionLink_'+i\">\n <i ngClass=\"{{action.className || ''}}\"></i> {{action.title}}\n </a>\n </li>\n </ul>\n</div> \n<!-- display disabled button if no actions are available -->\n<div *ngIf=\"!actions || actions.length === 0\">\n <button type=\"button\" class=\"btn btn-primary\" [ngClass]=\"{ 'btn-sm' : !normalSize }\" [id]=\"btnId+'_ActionBtn'\" disabled>\n N/A \n </button>\n</div>" }]
55
+ }], ctorParameters: () => [{ type: i1.DomSanitizer }], propDecorators: { label: [{
56
+ type: Input
57
+ }], btnId: [{
58
+ type: Input
59
+ }], data: [{
60
+ type: Input
61
+ }], actions: [{
62
+ type: Input
63
+ }], normalSize: [{
64
+ type: Input
65
+ }], dropup: [{
66
+ type: Input
67
+ }], actionClicked: [{
68
+ type: Output
69
+ }] } });
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLWJ0bi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vZXBhLXVpLWxpYi9zcmMvbGliL2FjdGlvbi1idG4vYWN0aW9uLWJ0bi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vZXBhLXVpLWxpYi9zcmMvbGliL2FjdGlvbi1idG4vYWN0aW9uLWJ0bi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7OztBQU12RTs7R0FFRztBQU1ILE1BQU0sT0FBTyxrQkFBa0I7SUFtQlQ7SUFsQnBCLElBQUksR0FBRyxLQUFLLENBQUM7SUFFYixtQkFBbUI7SUFDVixLQUFLLEdBQUcsU0FBUyxDQUFDO0lBQzNCLGdDQUFnQztJQUN2QixLQUFLLEdBQUcsRUFBRSxDQUFDO0lBQ3BCLG1DQUFtQztJQUMxQixJQUFJLENBQU07SUFDbkIsc0NBQXNDO0lBQzdCLE9BQU8sR0FBc0IsRUFBRSxDQUFDO0lBQ3pDLG9EQUFvRDtJQUMzQyxVQUFVLEdBQUcsS0FBSyxDQUFDO0lBQzVCLGNBQWM7SUFDTCxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBRXhCLCtDQUErQztJQUNyQyxhQUFhLEdBQWtDLElBQUksWUFBWSxFQUFFLENBQUM7SUFFNUUsWUFBb0IsU0FBdUI7UUFBdkIsY0FBUyxHQUFULFNBQVMsQ0FBYztJQUFJLENBQUM7SUFFekMsUUFBUSxDQUFDLElBQVk7UUFDeEIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFTSxlQUFlLENBQUMsTUFBa0I7UUFDckMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUN2QixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQztZQUN0QixNQUFNLEVBQUUsTUFBTTtZQUNkLElBQUksRUFBRSxJQUFJO1lBQ1YsU0FBUyxFQUFFLElBQUk7U0FDaEIsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVNLE9BQU87UUFDWixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztJQUNuQixDQUFDO0lBRU0sU0FBUztRQUNkLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO0lBQ3BCLENBQUM7SUFFTSxLQUFLO1FBQ1YsT0FBTyxJQUFJLENBQUMsS0FBSyxHQUFHLFlBQVksQ0FBQztJQUNuQyxDQUFDO3dHQTVDVSxrQkFBa0I7NEZBQWxCLGtCQUFrQiw4TkNkL0Isa2tDQXFCTTs7NEZEUE8sa0JBQWtCO2tCQUw5QixTQUFTOytCQUNFLGlCQUFpQjtpRkFRbEIsS0FBSztzQkFBYixLQUFLO2dCQUVHLEtBQUs7c0JBQWIsS0FBSztnQkFFRyxJQUFJO3NCQUFaLEtBQUs7Z0JBRUcsT0FBTztzQkFBZixLQUFLO2dCQUVHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBRUcsTUFBTTtzQkFBZCxLQUFLO2dCQUdJLGFBQWE7c0JBQXRCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyLCBTYWZlSHRtbCB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuXG5pbXBvcnQgeyBPZXBhQWN0aW9uIH0gZnJvbSAnLi9vZXBhLWFjdGlvbic7XG5pbXBvcnQgeyBPZXBhQWN0aW9uRXZlbnQgfSBmcm9tICcuL29lcGEtYWN0aW9uLWV2ZW50JztcblxuLyoqXG4gKiBBIGRyb3Bkb3duIGJ1dHRvbiB3aXRoIGEgbGlzdCBvZiBhY3Rpb25zLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdvZXBhLWFjdGlvbi1idG4nLFxuICB0ZW1wbGF0ZVVybDogJy4vYWN0aW9uLWJ0bi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2FjdGlvbi1idG4uY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIEFjdGlvbkJ0bkNvbXBvbmVudCB7XG4gIGJ1c3kgPSBmYWxzZTtcblxuICAvKiogQnV0dG9uIGxhYmVsICovXG4gIEBJbnB1dCgpIGxhYmVsID0gJ0FjdGlvbnMnO1xuICAvKiogVW5pcXVlIGlkIGZvciB0aGlzIGJ1dHRvbiAqL1xuICBASW5wdXQoKSBidG5JZCA9ICcnO1xuICAvKiogRGF0YSB0byBiZSBwYXNzZWQgdG8gZW1pdHRlciAqL1xuICBASW5wdXQoKSBkYXRhOiBhbnk7XG4gIC8qKiBMaXN0IG9mIGFjdGlvbnMgZm9yIHRoaXMgYnV0dG9uICovXG4gIEBJbnB1dCgpIGFjdGlvbnM6IEFycmF5PE9lcGFBY3Rpb24+ID0gW107XG4gIC8qKiBNYWtlIGJ1dHRvbiBcIm5vcm1hbFwiIHNpemUgKGRlZmF1bHQgaXMgYnRuLXNtKSAqL1xuICBASW5wdXQoKSBub3JtYWxTaXplID0gZmFsc2U7XG4gIC8qKiBkcm9wdXA/ICovXG4gIEBJbnB1dCgpIGRyb3B1cCA9IGZhbHNlO1xuXG4gIC8qKiBFdmVudCBlbWl0dGVkIHdoZW4gYW4gYWN0aW9uIGlzIHNlbGVjdGVkICovXG4gIEBPdXRwdXQoKSBhY3Rpb25DbGlja2VkOiBFdmVudEVtaXR0ZXI8T2VwYUFjdGlvbkV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHNhbml0aXplcjogRG9tU2FuaXRpemVyKSB7IH1cblxuICBwdWJsaWMgc2FuaXRpemUoaHRtbDogc3RyaW5nKTogU2FmZUh0bWwge1xuICAgICAgcmV0dXJuIHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKGh0bWwpO1xuICB9XG5cbiAgcHVibGljIG9uQWN0aW9uQ2xpY2tlZChhY3Rpb246IE9lcGFBY3Rpb24pOiB2b2lkIHtcbiAgICAgIGNvbnN0IGRhdGEgPSB0aGlzLmRhdGE7XG4gICAgICB0aGlzLmFjdGlvbkNsaWNrZWQuZW1pdCh7IFxuICAgICAgICBhY3Rpb246IGFjdGlvbiwgXG4gICAgICAgIGRhdGE6IGRhdGEsXG4gICAgICAgIGJ1dHRvbk9iajogdGhpc1xuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgc2V0QnVzeSgpIHtcbiAgICB0aGlzLmJ1c3kgPSB0cnVlO1xuICB9XG5cbiAgcHVibGljIGNsZWFyQnVzeSgpIHtcbiAgICB0aGlzLmJ1c3kgPSBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRJRCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmJ0bklkICsgJ19BY3Rpb25CdG4nO1xuICB9XG5cbn1cbiIsIjxkaXYgKm5nSWY9XCJhY3Rpb25zICYmIGFjdGlvbnMubGVuZ3RoID4gMFwiIGNsYXNzPVwiYnRuLWdyb3VwXCIgZHJvcGRvd24gW2Ryb3B1cF09XCJkcm9wdXBcIj5cbiAgPGJ1dHRvbiBkcm9wZG93blRvZ2dsZSB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgZHJvcGRvd24tdG9nZ2xlXCIgW25nQ2xhc3NdPVwieyAnYnRuLXNtJyA6ICFub3JtYWxTaXplIH1cIlxuICAgIFtpZF09XCJidG5JZCsnX0FjdGlvbkJ0bidcIj5cbiAgICA8c3BhbiAqbmdJZj1cImJ1c3lcIiBjbGFzcz1cInNwaW5uZXItYm9yZGVyIHRleHQtcHJpbWFyeVwiIHJvbGU9XCJzdGF0dXNcIj48L3NwYW4+XG4gICAge3tsYWJlbH19IFxuICAgIDxzcGFuIGNsYXNzPVwiY2FyZXRcIj48L3NwYW4+XG4gIDwvYnV0dG9uPlxuXG4gIDx1bCAqZHJvcGRvd25NZW51IGNsYXNzPVwiZHJvcGRvd24tbWVudSBkcm9wZG93bi1tZW51LXJpZ2h0XCIgcm9sZT1cIm1lbnVcIj5cbiAgICAgIDxsaSAqbmdGb3I9XCJsZXQgYWN0aW9uIG9mIGFjdGlvbnM7IGxldCBpID0gaW5kZXg7XCIgcm9sZT1cIm1lbnVpdGVtXCI+XG4gICAgICAgICAgPGEgKm5nSWY9XCIhYnVzeVwiIGNsYXNzPVwiZHJvcGRvd24taXRlbVwiIChjbGljayk9XCJvbkFjdGlvbkNsaWNrZWQoYWN0aW9uKVwiIFtpZF09XCJidG5JZCsnX0FjdGlvbkxpbmtfJytpXCI+XG4gICAgICAgICAgICA8aSBuZ0NsYXNzPVwie3thY3Rpb24uY2xhc3NOYW1lIHx8ICcnfX1cIj48L2k+IHt7YWN0aW9uLnRpdGxlfX1cbiAgICAgICAgICA8L2E+XG4gICAgICA8L2xpPlxuICA8L3VsPlxuPC9kaXY+IFxuPCEtLSBkaXNwbGF5IGRpc2FibGVkIGJ1dHRvbiBpZiBubyBhY3Rpb25zIGFyZSBhdmFpbGFibGUgLS0+XG48ZGl2ICpuZ0lmPVwiIWFjdGlvbnMgfHwgYWN0aW9ucy5sZW5ndGggPT09IDBcIj5cbiAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIiBbbmdDbGFzc109XCJ7ICdidG4tc20nIDogIW5vcm1hbFNpemUgfVwiIFtpZF09XCJidG5JZCsnX0FjdGlvbkJ0bidcIiBkaXNhYmxlZD5cbiAgICBOL0EgXG4gIDwvYnV0dG9uPlxuPC9kaXY+Il19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2VwYS1hY3Rpb24tZXZlbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vZXBhLXVpLWxpYi9zcmMvbGliL2FjdGlvbi1idG4vb2VwYS1hY3Rpb24tZXZlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9lcGFBY3Rpb24gfSBmcm9tICcuL29lcGEtYWN0aW9uJztcblxuLyoqXG4gKiBJbnRlcmZhY2UgZGVzY3JpYmluZyB0aGUgZGF0YSBwYXNzZWQgdG8gYW4gYWN0aW9uIGNsaWNrIGV2ZW50LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE9lcGFBY3Rpb25FdmVudCB7XG4gICAgLyoqXG4gICAgICogRGVmaW5pdGlvbiBvZiB0aGUgQWN0aW9uL1xuICAgICAqL1xuICAgIGFjdGlvbjogT2VwYUFjdGlvbjtcbiAgICAvKipcbiAgICAgKiBEYXRhIGFzc29jaWF0ZWQgd2l0aCB0aGUgYWN0aW9uLiBGb3IgYSB0YWJsZSBhY3Rpb24sIHRoaXMgd2lsbCBiZSB0aGUgcm93J3MgZGF0YVNvdXJjZSBwcm9wZXJ0eS5cbiAgICAgKi9cbiAgICBkYXRhOiBhbnk7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYnV0dG9uIG9iamVjdC4gUHVibGljIG1ldGhvZHMgY2FuIGJlIGNhbGxlZCBvbiB0aGUgYnV0dG9uLiBUaGlzIGNhbiBiZSB1c2VkIHRvIGNhbGwgdGhlXG4gICAgICogc2V0QnVzeSgpIGFuZCBjbGVhckJ1c3koKSBtZXRob2RzIHRvIGRpc3BsYXkgYSBzcGlubmVyIG9uIHRoZSBidXR0b24gd2hlbiBpdCBpcyBidXN5IChhbmQgY2xlYXIgaXQpLlxuICAgICAqL1xuICAgIGJ1dHRvbk9iaj86IGFueTtcbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2VwYS1hY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vZXBhLXVpLWxpYi9zcmMvbGliL2FjdGlvbi1idG4vb2VwYS1hY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogSW50ZXJmYWNlIGRlc2NyaWJpbmcgYW4gZW50cnkgb24gYW4gQWN0aW9uIEJ1dHRvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPZXBhQWN0aW9uIHtcbiAgICAvKipcbiAgICAgKiBUaGUgc3RyaW5nIGRpc3BsYXllZCBpbiB0aGUgYWN0aW9uIGJ1dHRvbiBmb3IgdGhpcyBhY3Rpb24uXG4gICAgICovXG4gICAgdGl0bGU6IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBUaGUgY3NzIGNsYXNzIHVzZWQgZm9yIHRoZSBpY29uIGRpc3BsYXllZCBpbiBmcm9udCBvZiB0aGUgYWN0aW9uIHRpdGxlLlxuICAgICAqL1xuICAgIGNsYXNzTmFtZTogYW55O1xufVxuIl19
@@ -0,0 +1,21 @@
1
+ import { Component } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "ngx-bootstrap/modal";
4
+ import * as i2 from "ngx-bootstrap/dropdown";
5
+ import * as i3 from "../action-btn/action-btn.component";
6
+ export class ActionBtnModalComponent {
7
+ bsModalRef;
8
+ actions = [{ title: 'Hello', className: 'bi bi-person-raised-hand' }, { title: 'Goodbye', className: 'bi bi-person-walking' }];
9
+ constructor(bsModalRef) {
10
+ this.bsModalRef = bsModalRef;
11
+ }
12
+ ngOnInit() {
13
+ }
14
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ActionBtnModalComponent, deps: [{ token: i1.BsModalRef }], target: i0.ɵɵFactoryTarget.Component });
15
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ActionBtnModalComponent, selector: "oepa-action-btn-modal", ngImport: i0, template: "<div class=\"modal-header\">\n <h4 class=\"modal-title pull-left\">Action Button Test</h4>\n <button type=\"button\" class=\"btn-close float-end\" aria-label=\"Close\" (click)=\"bsModalRef.hide()\">\n </button>\n</div>\n<div class=\"modal-body\">\n <div class=\"row\">\n <div class=\"col-sm-12 text-center\">\n <oepa-action-btn [actions]=\"actions\"></oepa-action-btn>\n </div>\n <div class=\"row\">\n <div class=\"col-sm-12 text-center\">\n <div class=\"btn-group\" dropdown placement=\"bottom right\">\n <button id=\"button-basic\" dropdownToggle type=\"button\" class=\"btn btn-primary dropdown-toggle\"\n aria-controls=\"dropdown-basic\">\n Button dropdown <span class=\"caret\"></span>\n </button>\n <ul id=\"dropdown-basic\" *dropdownMenu class=\"dropdown-menu\" role=\"menu\"\n aria-labelledby=\"button-basic\">\n <li role=\"menuitem\"><a class=\"dropdown-item\" href=\"#\">Action</a></li>\n <li role=\"menuitem\"><a class=\"dropdown-item\" href=\"#\">Another action</a></li>\n <li role=\"menuitem\"><a class=\"dropdown-item\" href=\"#\">Something else here</a></li>\n <li class=\"divider dropdown-divider\"></li>\n <li role=\"menuitem\"><a class=\"dropdown-item\" href=\"#\">Separated link</a>\n </li>\n </ul>\n </div>\n </div>\n </div>\n </div>\n</div>\n<div class=\"modal-footer\">\n <button type=\"button\" class=\"btn btn-primary mr-1\" (click)=\"bsModalRef.hide()\">Close</button>\n</div>", styles: [""], dependencies: [{ kind: "directive", type: i2.BsDropdownMenuDirective, selector: "[bsDropdownMenu],[dropdownMenu]", exportAs: ["bs-dropdown-menu"] }, { kind: "directive", type: i2.BsDropdownToggleDirective, selector: "[bsDropdownToggle],[dropdownToggle]", exportAs: ["bs-dropdown-toggle"] }, { kind: "directive", type: i2.BsDropdownDirective, selector: "[bsDropdown], [dropdown]", inputs: ["placement", "triggers", "container", "dropup", "autoClose", "isAnimated", "insideClick", "isDisabled", "isOpen"], outputs: ["isOpenChange", "onShown", "onHidden"], exportAs: ["bs-dropdown"] }, { kind: "component", type: i3.ActionBtnComponent, selector: "oepa-action-btn", inputs: ["label", "btnId", "data", "actions", "normalSize", "dropup"], outputs: ["actionClicked"] }] });
16
+ }
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ActionBtnModalComponent, decorators: [{
18
+ type: Component,
19
+ args: [{ selector: 'oepa-action-btn-modal', template: "<div class=\"modal-header\">\n <h4 class=\"modal-title pull-left\">Action Button Test</h4>\n <button type=\"button\" class=\"btn-close float-end\" aria-label=\"Close\" (click)=\"bsModalRef.hide()\">\n </button>\n</div>\n<div class=\"modal-body\">\n <div class=\"row\">\n <div class=\"col-sm-12 text-center\">\n <oepa-action-btn [actions]=\"actions\"></oepa-action-btn>\n </div>\n <div class=\"row\">\n <div class=\"col-sm-12 text-center\">\n <div class=\"btn-group\" dropdown placement=\"bottom right\">\n <button id=\"button-basic\" dropdownToggle type=\"button\" class=\"btn btn-primary dropdown-toggle\"\n aria-controls=\"dropdown-basic\">\n Button dropdown <span class=\"caret\"></span>\n </button>\n <ul id=\"dropdown-basic\" *dropdownMenu class=\"dropdown-menu\" role=\"menu\"\n aria-labelledby=\"button-basic\">\n <li role=\"menuitem\"><a class=\"dropdown-item\" href=\"#\">Action</a></li>\n <li role=\"menuitem\"><a class=\"dropdown-item\" href=\"#\">Another action</a></li>\n <li role=\"menuitem\"><a class=\"dropdown-item\" href=\"#\">Something else here</a></li>\n <li class=\"divider dropdown-divider\"></li>\n <li role=\"menuitem\"><a class=\"dropdown-item\" href=\"#\">Separated link</a>\n </li>\n </ul>\n </div>\n </div>\n </div>\n </div>\n</div>\n<div class=\"modal-footer\">\n <button type=\"button\" class=\"btn btn-primary mr-1\" (click)=\"bsModalRef.hide()\">Close</button>\n</div>" }]
20
+ }], ctorParameters: () => [{ type: i1.BsModalRef }] });
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLWJ0bi1tb2RhbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vZXBhLXVpLWxpYi9zcmMvbGliL2FjdGlvbi1idG4tbW9kYWwvYWN0aW9uLWJ0bi1tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vZXBhLXVpLWxpYi9zcmMvbGliL2FjdGlvbi1idG4tbW9kYWwvYWN0aW9uLWJ0bi1tb2RhbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDOzs7OztBQVNsRCxNQUFNLE9BQU8sdUJBQXVCO0lBR2Y7SUFGbkIsT0FBTyxHQUFzQixDQUFDLEVBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsMEJBQTBCLEVBQUMsRUFBRSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLHNCQUFzQixFQUFDLENBQUMsQ0FBQztJQUUvSSxZQUFtQixVQUFzQjtRQUF0QixlQUFVLEdBQVYsVUFBVSxDQUFZO0lBQUksQ0FBQztJQUU5QyxRQUFRO0lBQ1IsQ0FBQzt3R0FOVSx1QkFBdUI7NEZBQXZCLHVCQUF1Qiw2RENUcEMsbXdEQWlDTTs7NEZEeEJPLHVCQUF1QjtrQkFMbkMsU0FBUzsrQkFDRSx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQnNNb2RhbFJlZiB9IGZyb20gJ25neC1ib290c3RyYXAvbW9kYWwnO1xuaW1wb3J0IHsgT2VwYUFjdGlvbiB9IGZyb20gJy4uL2FjdGlvbi1idG4vb2VwYS1hY3Rpb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdvZXBhLWFjdGlvbi1idG4tbW9kYWwnLFxuICB0ZW1wbGF0ZVVybDogJy4vYWN0aW9uLWJ0bi1tb2RhbC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2FjdGlvbi1idG4tbW9kYWwuY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIEFjdGlvbkJ0bk1vZGFsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgYWN0aW9uczogQXJyYXk8T2VwYUFjdGlvbj4gPSBbe3RpdGxlOiAnSGVsbG8nLCBjbGFzc05hbWU6ICdiaSBiaS1wZXJzb24tcmFpc2VkLWhhbmQnfSwgeyB0aXRsZTogJ0dvb2RieWUnLCBjbGFzc05hbWU6ICdiaSBiaS1wZXJzb24td2Fsa2luZyd9XTtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgYnNNb2RhbFJlZjogQnNNb2RhbFJlZikgeyB9XG5cbiAgbmdPbkluaXQoKSB7XG4gIH1cblxufVxuIiwiPGRpdiBjbGFzcz1cIm1vZGFsLWhlYWRlclwiPlxuICAgIDxoNCBjbGFzcz1cIm1vZGFsLXRpdGxlIHB1bGwtbGVmdFwiPkFjdGlvbiBCdXR0b24gVGVzdDwvaDQ+XG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4tY2xvc2UgZmxvYXQtZW5kXCIgYXJpYS1sYWJlbD1cIkNsb3NlXCIgKGNsaWNrKT1cImJzTW9kYWxSZWYuaGlkZSgpXCI+XG4gICAgPC9idXR0b24+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJtb2RhbC1ib2R5XCI+XG4gICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLTEyIHRleHQtY2VudGVyXCI+XG4gICAgICAgICAgICA8b2VwYS1hY3Rpb24tYnRuIFthY3Rpb25zXT1cImFjdGlvbnNcIj48L29lcGEtYWN0aW9uLWJ0bj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tMTIgdGV4dC1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYnRuLWdyb3VwXCIgZHJvcGRvd24gcGxhY2VtZW50PVwiYm90dG9tIHJpZ2h0XCI+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gaWQ9XCJidXR0b24tYmFzaWNcIiBkcm9wZG93blRvZ2dsZSB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgZHJvcGRvd24tdG9nZ2xlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtY29udHJvbHM9XCJkcm9wZG93bi1iYXNpY1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgQnV0dG9uIGRyb3Bkb3duIDxzcGFuIGNsYXNzPVwiY2FyZXRcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8dWwgaWQ9XCJkcm9wZG93bi1iYXNpY1wiICpkcm9wZG93bk1lbnUgY2xhc3M9XCJkcm9wZG93bi1tZW51XCIgcm9sZT1cIm1lbnVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbGxlZGJ5PVwiYnV0dG9uLWJhc2ljXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGkgcm9sZT1cIm1lbnVpdGVtXCI+PGEgY2xhc3M9XCJkcm9wZG93bi1pdGVtXCIgaHJlZj1cIiNcIj5BY3Rpb248L2E+PC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaSByb2xlPVwibWVudWl0ZW1cIj48YSBjbGFzcz1cImRyb3Bkb3duLWl0ZW1cIiBocmVmPVwiI1wiPkFub3RoZXIgYWN0aW9uPC9hPjwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGkgcm9sZT1cIm1lbnVpdGVtXCI+PGEgY2xhc3M9XCJkcm9wZG93bi1pdGVtXCIgaHJlZj1cIiNcIj5Tb21ldGhpbmcgZWxzZSBoZXJlPC9hPjwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJkaXZpZGVyIGRyb3Bkb3duLWRpdmlkZXJcIj48L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpIHJvbGU9XCJtZW51aXRlbVwiPjxhIGNsYXNzPVwiZHJvcGRvd24taXRlbVwiIGhyZWY9XCIjXCI+U2VwYXJhdGVkIGxpbms8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwibW9kYWwtZm9vdGVyXCI+XG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgbXItMVwiIChjbGljayk9XCJic01vZGFsUmVmLmhpZGUoKVwiPkNsb3NlPC9idXR0b24+XG48L2Rpdj4iXX0=