@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,325 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { HttpHeaders } from '@angular/common/http';
3
+ import { of, Subject } from 'rxjs';
4
+ import { DocumentEventType } from './document-event-type';
5
+ import { DocumentEventEntityType } from './document-event-entity-type';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@angular/common/http";
8
+ export class DocumentService {
9
+ http;
10
+ placeholders = [];
11
+ monitoringPlaceholders = [];
12
+ monitoringLabel = '';
13
+ scheduleLabel = '';
14
+ schedulePlaceholders = [];
15
+ toolbar = [
16
+ ['misc', ['undo', 'redo', 'codeview']],
17
+ ['font', ['bold', 'italic', 'underline', 'strikethrough', 'superscript', 'subscript', 'clear']],
18
+ ['para', ['color', 'style', 'ul', 'ol', 'paragraph']],
19
+ ['insert', ['table', 'picture', 'hr', 'placeholder']],
20
+ ['pagebreak', ['pagebreak']]
21
+ ];
22
+ height = 200;
23
+ tabSize = 4;
24
+ fontNames = ['Helvetica', 'Arial', 'Arial Black', 'Comic Sans MS', 'Courier New', 'Roboto', 'Times'];
25
+ documentIDSubject = new Subject();
26
+ selectedSectionNameSubject = new Subject();
27
+ documentPartActionSubject = new Subject();
28
+ documentPartUpdateSubject = new Subject();
29
+ documentEventSubject = new Subject();
30
+ overridenEvents = [];
31
+ customPartAction;
32
+ constructor(http) {
33
+ this.http = http;
34
+ }
35
+ setPlaceholders(placeholders) {
36
+ this.placeholders = placeholders;
37
+ }
38
+ getPlaceholders() {
39
+ return this.placeholders;
40
+ }
41
+ setMonitoringPlaceholders(placeholders, monitoringLabel) {
42
+ this.monitoringPlaceholders = placeholders;
43
+ this.monitoringLabel = monitoringLabel || 'Monitoring Tables';
44
+ }
45
+ getMonitoringPlaceholders() {
46
+ return this.monitoringPlaceholders;
47
+ }
48
+ getMonitoringLabel() {
49
+ return this.monitoringLabel;
50
+ }
51
+ setSchedulePlaceholders(placeholders, scheduleLabel) {
52
+ this.schedulePlaceholders = placeholders;
53
+ this.scheduleLabel = scheduleLabel || 'Schedules';
54
+ }
55
+ getSchedulePlaceholders() {
56
+ return this.schedulePlaceholders;
57
+ }
58
+ getScheduleLabel() {
59
+ return this.scheduleLabel;
60
+ }
61
+ setToolbar(toolbar) {
62
+ this.toolbar = toolbar;
63
+ }
64
+ getToolbar() {
65
+ return this.toolbar;
66
+ }
67
+ setFontNames(fontNames) {
68
+ this.fontNames = fontNames;
69
+ }
70
+ getFontNames() {
71
+ return this.fontNames;
72
+ }
73
+ setHeight(height) {
74
+ this.height = height;
75
+ }
76
+ getHeight() {
77
+ return this.height;
78
+ }
79
+ setTabSize(tabSize) {
80
+ this.tabSize = tabSize;
81
+ }
82
+ getTabSize() {
83
+ return this.tabSize;
84
+ }
85
+ updateDcoumentID(id) {
86
+ this.documentIDSubject.next(id);
87
+ }
88
+ updateSelectedSectionName(name) {
89
+ this.selectedSectionNameSubject.next(name || '');
90
+ }
91
+ overrideEvent(event) {
92
+ if (event) {
93
+ let match = this.isOverriddenEvent(event);
94
+ if (!match) {
95
+ this.overridenEvents.push(event);
96
+ }
97
+ }
98
+ }
99
+ removeOverridenEvent(event) {
100
+ if (event) {
101
+ this.overridenEvents = this.overridenEvents.filter(e => {
102
+ return (e.eventType === event.eventType && e.entityType === event.entityType);
103
+ });
104
+ }
105
+ }
106
+ isOverriddenEvent(event) {
107
+ return this.overridenEvents.find(e => (e.eventType === event.eventType && e.entityType == event.entityType));
108
+ }
109
+ getDocumentIDSubject() {
110
+ return this.documentIDSubject.asObservable();
111
+ }
112
+ getSelectedSectionName() {
113
+ return this.selectedSectionNameSubject.asObservable();
114
+ }
115
+ getDocumentEventSubject() {
116
+ return this.documentEventSubject.asObservable();
117
+ }
118
+ retrieveDocumentTemplate(templateID) {
119
+ let headers = new HttpHeaders();
120
+ headers.append('Content-Type', 'application/json');
121
+ let url = '/ebiz/api/v1/portal/document/currentDocumentTemplate/' + templateID;
122
+ return this.http.get(url, { headers: headers, responseType: 'json' });
123
+ }
124
+ cloneDocumentTemplate(template) {
125
+ let headers = new HttpHeaders();
126
+ headers.append('Content-Type', 'application/json');
127
+ let url = '/ebiz/api/v1/portal/document/templates/' + template.id + '/clone';
128
+ return this.http.post(url, template, { headers: headers, responseType: 'json' });
129
+ }
130
+ retrieveDocument(id) {
131
+ let headers = new HttpHeaders();
132
+ headers.append('Content-Type', 'application/json');
133
+ let url = '/ebiz/api/v1/portal/document/' + id;
134
+ return this.http.get(url, { headers: headers, responseType: 'json' });
135
+ }
136
+ retrieveLegacyDocumentTemplate(id) {
137
+ let headers = new HttpHeaders();
138
+ headers.append('Content-Type', 'application/json');
139
+ let url = '/ebiz/api/v1/npdes/document/legacy/template/' + id;
140
+ return this.http.get(url, { headers: headers, responseType: 'json' });
141
+ }
142
+ retrieveLegacyDocumentForPermit(permitID) {
143
+ let headers = new HttpHeaders();
144
+ headers.append('Content-Type', 'application/json');
145
+ let url = '/ebiz/api/v1/npdes/document/legacy/permit/' + permitID;
146
+ return this.http.get(url, { headers: headers, responseType: 'json' });
147
+ }
148
+ updateDocument(document) {
149
+ let headers = new HttpHeaders();
150
+ headers.append('Content-Type', 'application/json');
151
+ let url = '/ebiz/api/v1/portal/document/' + document.id;
152
+ return this.http.put(url, document, { headers: headers, responseType: 'json' });
153
+ }
154
+ createDocumentSection(section) {
155
+ let headers = new HttpHeaders();
156
+ headers.append('Content-Type', 'application/json');
157
+ let url = '/ebiz/api/v1/portal/document/' + section.documentID + '/sections';
158
+ return this.http.post(url, section, { headers: headers, responseType: 'json' });
159
+ }
160
+ updateDocumentSection(section) {
161
+ let headers = new HttpHeaders();
162
+ headers.append('Content-Type', 'application/json');
163
+ let url = '/ebiz/api/v1/portal/document/' + section.documentID + '/sections/' + section.id;
164
+ const event = { eventType: DocumentEventType.Update, entityType: DocumentEventEntityType.Section, entityID: section.id };
165
+ this.documentEventSubject.next(event);
166
+ if (this.isOverriddenEvent(event)) {
167
+ return of(undefined);
168
+ }
169
+ else {
170
+ return this.http.put(url, section, { headers: headers, responseType: 'json' });
171
+ }
172
+ }
173
+ deleteDocumentSection(section) {
174
+ const event = { eventType: DocumentEventType.Delete, entityType: DocumentEventEntityType.Section, entityID: section.id, entity: section };
175
+ this.documentEventSubject.next(event);
176
+ if (this.isOverriddenEvent(event)) {
177
+ return of(undefined);
178
+ }
179
+ else {
180
+ return this.doDeleteDocumentSection(section);
181
+ }
182
+ }
183
+ doDeleteDocumentSection(section) {
184
+ let headers = new HttpHeaders();
185
+ headers.append('Content-Type', 'application/json');
186
+ let url = '/ebiz/api/v1/portal/document/' + section.documentID + '/sections/' + section.id;
187
+ return this.http.delete(url, { headers: headers, responseType: 'json' });
188
+ }
189
+ createDocumentGroup(group) {
190
+ let headers = new HttpHeaders();
191
+ headers.append('Content-Type', 'application/json');
192
+ let url = '/ebiz/api/v1/portal/document/' + group.documentID + '/groups';
193
+ return this.http.post(url, group, { headers: headers, responseType: 'json' });
194
+ }
195
+ retrieveDocumentGroup(documentID, groupID) {
196
+ let headers = new HttpHeaders();
197
+ headers.append('Content-Type', 'application/json');
198
+ let url = '/ebiz/api/v1/portal/document/' + documentID + '/groups/' + groupID;
199
+ return this.http.get(url, { headers: headers, responseType: 'json' });
200
+ }
201
+ updateDocumentGroup(group) {
202
+ let headers = new HttpHeaders();
203
+ headers.append('Content-Type', 'application/json');
204
+ let url = '/ebiz/api/v1/portal/document/' + group.documentID + '/groups/' + group.id;
205
+ const event = { eventType: DocumentEventType.Update, entityType: DocumentEventEntityType.Group, entityID: group.id };
206
+ this.documentEventSubject.next(event);
207
+ if (this.isOverriddenEvent(event)) {
208
+ return of(undefined);
209
+ }
210
+ else {
211
+ return this.http.put(url, group, { headers: headers, responseType: 'json' });
212
+ }
213
+ }
214
+ deleteDocumentGroup(group) {
215
+ const event = { eventType: DocumentEventType.Delete, entityType: DocumentEventEntityType.Group, entityID: group.id, entity: group };
216
+ this.documentEventSubject.next(event);
217
+ if (this.isOverriddenEvent(event)) {
218
+ return of(undefined);
219
+ }
220
+ else {
221
+ return this.doDeleteDocumentGroup(group);
222
+ }
223
+ }
224
+ doDeleteDocumentGroup(group) {
225
+ let headers = new HttpHeaders();
226
+ headers.append('Content-Type', 'application/json');
227
+ let url = '/ebiz/api/v1/portal/document/' + group.documentID + '/groups/' + group.id;
228
+ return this.http.delete(url, { headers: headers, responseType: 'json' });
229
+ }
230
+ createDocumentPart(part) {
231
+ let headers = new HttpHeaders();
232
+ headers.append('Content-Type', 'application/json');
233
+ let url = '/ebiz/api/v1/portal/document/' + part.documentID + '/parts';
234
+ return this.http.post(url, part, { headers: headers, responseType: 'json' });
235
+ }
236
+ updateDocumentPart(part) {
237
+ let headers = new HttpHeaders();
238
+ headers.append('Content-Type', 'application/json');
239
+ let url = '/ebiz/api/v1/portal/document/' + part.documentID + '/parts/' + part.id;
240
+ const event = { eventType: DocumentEventType.Update, entityType: DocumentEventEntityType.Part, entityID: part.id };
241
+ this.documentEventSubject.next(event);
242
+ if (this.isOverriddenEvent(event)) {
243
+ return of(undefined);
244
+ }
245
+ else {
246
+ return this.http.put(url, part, { headers: headers, responseType: 'json' });
247
+ }
248
+ }
249
+ deleteDocumentPart(part) {
250
+ let headers = new HttpHeaders();
251
+ headers.append('Content-Type', 'application/json');
252
+ let url = '/ebiz/api/v1/portal/document/' + part.documentID + '/parts/' + part.id;
253
+ const event = { eventType: DocumentEventType.Delete, entityType: DocumentEventEntityType.Part, entityID: part.id, entity: part };
254
+ this.documentEventSubject.next(event);
255
+ if (this.isOverriddenEvent(event)) {
256
+ return of(undefined);
257
+ }
258
+ else {
259
+ return this.http.delete(url, { headers: headers, responseType: 'json' });
260
+ }
261
+ }
262
+ updateDocumentText(documentID, partID, text) {
263
+ let headers = new HttpHeaders();
264
+ headers.append('Content-Type', 'application/json');
265
+ let url = '/ebiz/api/v1/portal/document/' + documentID + '/parts/' + partID + '/texts/' + text.id;
266
+ return this.http.put(url, text, { headers: headers, responseType: 'json' });
267
+ }
268
+ retrieveAllDocumentPlaceholders(serviceName) {
269
+ let headers = new HttpHeaders();
270
+ headers.append('Content-Type', 'application/json');
271
+ let url = '/ebiz/api/v1/portal/document/placeholders/service/' + serviceName;
272
+ return this.http.get(url, { headers: headers, responseType: 'json' });
273
+ }
274
+ setCustomPartAction(action) {
275
+ this.customPartAction = action;
276
+ }
277
+ getCustomPartAction() {
278
+ return this.customPartAction;
279
+ }
280
+ getDocumentPartActionSubject() {
281
+ return this.documentPartActionSubject.asObservable();
282
+ }
283
+ fireCustomPartAction(part) {
284
+ this.documentPartActionSubject.next(part);
285
+ }
286
+ getDocumentPartUpdateSubject() {
287
+ return this.documentPartUpdateSubject.asObservable();
288
+ }
289
+ fireDocumentPartUpdate(part) {
290
+ this.documentPartUpdateSubject.next(part);
291
+ }
292
+ searchEmails(filter) {
293
+ let headers = new HttpHeaders();
294
+ headers.append('Content-Type', 'application/json');
295
+ let url = '/ebiz/api/v1/portal/document/emails/search';
296
+ return this.http.post(url, filter, { headers: headers, responseType: 'json' });
297
+ }
298
+ retrieveDocumentByDocumentID(documentID) {
299
+ let headers = new HttpHeaders();
300
+ headers.append('Content-Type', 'application/json');
301
+ let url = '/ebiz/api/v1/portal/document/' + documentID;
302
+ return this.http.get(url, { headers: headers, responseType: 'json' });
303
+ }
304
+ updateApprovalStatusForEmails(ids, status) {
305
+ let headers = new HttpHeaders();
306
+ headers.append('Content-Type', 'application/json');
307
+ let url = '/ebiz/api/v1/portal/document/emails/approvalStatus/' + status;
308
+ return this.http.put(url, ids, { headers: headers, responseType: 'json' });
309
+ }
310
+ sendApprovedEmails(emails) {
311
+ let headers = new HttpHeaders();
312
+ headers.append('Content-Type', 'application/json');
313
+ let url = '/ebiz/api/v1/portal/document/emails/Approved/send';
314
+ return this.http.post(url, emails, { headers: headers, responseType: 'json' });
315
+ }
316
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DocumentService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
317
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DocumentService, providedIn: 'root' });
318
+ }
319
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DocumentService, decorators: [{
320
+ type: Injectable,
321
+ args: [{
322
+ providedIn: 'root'
323
+ }]
324
+ }], ctorParameters: () => [{ type: i1.HttpClient }] });
325
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29lcGEtdWktbGliL3NyYy9saWIvZG9jdW1lbnQvZG9jdW1lbnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBYSxXQUFXLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUM3RCxPQUFPLEVBQWMsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQVEvQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7O0FBVXZFLE1BQU0sT0FBTyxlQUFlO0lBeUJOO0lBeEJaLFlBQVksR0FBZ0MsRUFBRSxDQUFDO0lBQy9DLHNCQUFzQixHQUFnQyxFQUFFLENBQUM7SUFDekQsZUFBZSxHQUFXLEVBQUUsQ0FBQztJQUM3QixhQUFhLEdBQVcsRUFBRSxDQUFDO0lBQzNCLG9CQUFvQixHQUFnQyxFQUFFLENBQUM7SUFDdkQsT0FBTyxHQUFHO1FBQ2hCLENBQUMsTUFBTSxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxVQUFVLENBQUUsQ0FBQztRQUN2QyxDQUFDLE1BQU0sRUFBRSxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQy9GLENBQUMsTUFBTSxFQUFFLENBQUMsT0FBTyxFQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQ3BELENBQUMsUUFBUSxFQUFFLENBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFDckQsQ0FBQyxX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QUFDO3dHQW5XVSxlQUFlOzRHQUFmLGVBQWUsY0FGZCxNQUFNOzs0RkFFUCxlQUFlO2tCQUgzQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7SHR0cENsaWVudCwgSHR0cEhlYWRlcnN9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBQb3J0YWxEb2N1bWVudFBsYWNlaG9sZGVyIH0gZnJvbSAnLi9wb3J0YWwtZG9jdW1lbnQtcGxhY2Vob2xkZXInO1xuaW1wb3J0IHsgUG9ydGFsRG9jdW1lbnRTZWN0aW9uIH0gZnJvbSAnLi9wb3J0YWwtZG9jdW1lbnQtc2VjdGlvbic7XG5pbXBvcnQgeyBQb3J0YWxEb2N1bWVudEdyb3VwIH0gZnJvbSAnLi9wb3J0YWwtZG9jdW1lbnQtZ3JvdXAnO1xuaW1wb3J0IHsgUG9ydGFsRG9jdW1lbnRQYXJ0IH0gZnJvbSAnLi9wb3J0YWwtZG9jdW1lbnQtcGFydCc7XG5pbXBvcnQgeyBQb3J0YWxEb2N1bWVudFRleHQgfSBmcm9tICcuL3BvcnRhbC1kb2N1bWVudC10ZXh0JztcbmltcG9ydCB7IFBvcnRhbERvY3VtZW50IH0gZnJvbSAnLi9wb3J0YWwtZG9jdW1lbnQnO1xuaW1wb3J0IHsgUG9ydGFsRG9jdW1lbnRUeXBlIH0gZnJvbSAnLi9wb3J0YWwtZG9jdW1lbnQtdHlwZSc7XG5pbXBvcnQgeyBEb2N1bWVudEV2ZW50VHlwZSB9IGZyb20gJy4vZG9jdW1lbnQtZXZlbnQtdHlwZSc7XG5pbXBvcnQgeyBEb2N1bWVudEV2ZW50RW50aXR5VHlwZSB9IGZyb20gJy4vZG9jdW1lbnQtZXZlbnQtZW50aXR5LXR5cGUnO1xuaW1wb3J0IHsgRG9jdW1lbnRFdmVudCB9IGZyb20gJy4vZG9jdW1lbnQtZXZlbnQnO1xuaW1wb3J0IHsgUG9ydGFsRW1haWxGaWx0ZXIgfSBmcm9tICcuL3BvcnRhbC1lbWFpbC1maWx0ZXInO1xuaW1wb3J0IHsgUG9ydGFsRW1haWwgfSBmcm9tICcuL3BvcnRhbC1lbWFpbCc7XG5pbXBvcnQgeyBPZXBhQWN0aW9uIH0gZnJvbSAnLi4vYWN0aW9uLWJ0bi9vZXBhLWFjdGlvbic7XG5cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgRG9jdW1lbnRTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBwbGFjZWhvbGRlcnM6IFBvcnRhbERvY3VtZW50UGxhY2Vob2xkZXJbXSA9IFtdO1xuICBwcml2YXRlIG1vbml0b3JpbmdQbGFjZWhvbGRlcnM6IFBvcnRhbERvY3VtZW50UGxhY2Vob2xkZXJbXSA9IFtdO1xuICBwcml2YXRlIG1vbml0b3JpbmdMYWJlbDogc3RyaW5nID0gJyc7XG4gIHByaXZhdGUgc2NoZWR1bGVMYWJlbDogc3RyaW5nID0gJyc7XG4gIHByaXZhdGUgc2NoZWR1bGVQbGFjZWhvbGRlcnM6IFBvcnRhbERvY3VtZW50UGxhY2Vob2xkZXJbXSA9IFtdO1xuICBwcml2YXRlIHRvb2xiYXIgPSBbXG4gICAgWydtaXNjJywgWyd1bmRvJywgJ3JlZG8nLCAnY29kZXZpZXcnIF1dLFxuICAgIFsnZm9udCcsIFsnYm9sZCcsICdpdGFsaWMnLCAndW5kZXJsaW5lJywgJ3N0cmlrZXRocm91Z2gnLCAnc3VwZXJzY3JpcHQnLCAnc3Vic2NyaXB0JywgJ2NsZWFyJ11dLFxuICAgIFsncGFyYScsIFsnY29sb3InLCdzdHlsZScsICd1bCcsICdvbCcsICdwYXJhZ3JhcGgnXV0sXG4gICAgWydpbnNlcnQnLCBbJ3RhYmxlJywgJ3BpY3R1cmUnLCAnaHInLCAncGxhY2Vob2xkZXInXV0sXG4gICAgWydwYWdlYnJlYWsnLFsncGFnZWJyZWFrJ11dXG4gIF07XG4gIHByaXZhdGUgaGVpZ2h0ID0gMjAwO1xuICBwcml2YXRlIHRhYlNpemUgPSA0O1xuICBwcml2YXRlIGZvbnROYW1lcyA9IFsnSGVsdmV0aWNhJywgJ0FyaWFsJywgJ0FyaWFsIEJsYWNrJywgJ0NvbWljIFNhbnMgTVMnLCAnQ291cmllciBOZXcnLCAnUm9ib3RvJywgJ1RpbWVzJ107XG4gIHByaXZhdGUgZG9jdW1lbnRJRFN1YmplY3QgPSBuZXcgU3ViamVjdDxzdHJpbmc+KCk7XG4gIHByaXZhdGUgc2VsZWN0ZWRTZWN0aW9uTmFtZVN1YmplY3QgPSBuZXcgU3ViamVjdDxzdHJpbmc+KCk7XG4gIHByaXZhdGUgZG9jdW1lbnRQYXJ0QWN0aW9uU3ViamVjdCA9IG5ldyBTdWJqZWN0PFBvcnRhbERvY3VtZW50UGFydD4oKTtcbiAgcHJpdmF0ZSBkb2N1bWVudFBhcnRVcGRhdGVTdWJqZWN0ID0gbmV3IFN1YmplY3Q8UG9ydGFsRG9jdW1lbnRQYXJ0PigpO1xuICBwcml2YXRlIGRvY3VtZW50RXZlbnRTdWJqZWN0ID0gbmV3IFN1YmplY3Q8RG9jdW1lbnRFdmVudD4oKTtcbiAgcHJpdmF0ZSBvdmVycmlkZW5FdmVudHM6IERvY3VtZW50RXZlbnRbXSA9IFtdO1xuXG4gIHByaXZhdGUgY3VzdG9tUGFydEFjdGlvbjogT2VwYUFjdGlvbiB8IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQpIHsgXG4gIH1cblxuICBwdWJsaWMgc2V0UGxhY2Vob2xkZXJzKHBsYWNlaG9sZGVyczogUG9ydGFsRG9jdW1lbnRQbGFjZWhvbGRlcltdKSB7XG4gICAgdGhpcy5wbGFjZWhvbGRlcnMgPSBwbGFjZWhvbGRlcnM7XG4gIH1cblxuICBwdWJsaWMgZ2V0UGxhY2Vob2xkZXJzKCkgOiBQb3J0YWxEb2N1bWVudFBsYWNlaG9sZGVyW10ge1xuICAgIHJldHVybiB0aGlzLnBsYWNlaG9sZGVycztcbiAgfVxuXG4gIHB1YmxpYyBzZXRNb25pdG9yaW5nUGxhY2Vob2xkZXJzKHBsYWNlaG9sZGVyczogUG9ydGFsRG9jdW1lbnRQbGFjZWhvbGRlcltdLCBtb25pdG9yaW5nTGFiZWw/OiBzdHJpbmcpIHtcbiAgICB0aGlzLm1vbml0b3JpbmdQbGFjZWhvbGRlcnMgPSBwbGFjZWhvbGRlcnM7XG4gICAgdGhpcy5tb25pdG9yaW5nTGFiZWwgPSBtb25pdG9yaW5nTGFiZWwgfHwgJ01vbml0b3JpbmcgVGFibGVzJztcbiAgfVxuXG4gIHB1YmxpYyBnZXRNb25pdG9yaW5nUGxhY2Vob2xkZXJzKCkgOiBQb3J0YWxEb2N1bWVudFBsYWNlaG9sZGVyW10ge1xuICAgIHJldHVybiB0aGlzLm1vbml0b3JpbmdQbGFjZWhvbGRlcnM7XG4gIH1cblxuICBwdWJsaWMgZ2V0TW9uaXRvcmluZ0xhYmVsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMubW9uaXRvcmluZ0xhYmVsO1xuICB9XG5cbiAgcHVibGljIHNldFNjaGVkdWxlUGxhY2Vob2xkZXJzKHBsYWNlaG9sZGVyczogUG9ydGFsRG9jdW1lbnRQbGFjZWhvbGRlcltdLCBzY2hlZHVsZUxhYmVsPzogc3RyaW5nKSB7XG4gICAgdGhpcy5zY2hlZHVsZVBsYWNlaG9sZGVycyA9IHBsYWNlaG9sZGVycztcbiAgICB0aGlzLnNjaGVkdWxlTGFiZWwgPSBzY2hlZHVsZUxhYmVsIHx8ICdTY2hlZHVsZXMnO1xuICB9XG5cbiAgcHVibGljIGdldFNjaGVkdWxlUGxhY2Vob2xkZXJzKCk6IFBvcnRhbERvY3VtZW50UGxhY2Vob2xkZXJbXSB7XG4gICAgcmV0dXJuIHRoaXMuc2NoZWR1bGVQbGFjZWhvbGRlcnM7XG4gIH1cblxuICBwdWJsaWMgZ2V0U2NoZWR1bGVMYWJlbCgpIDogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5zY2hlZHVsZUxhYmVsO1xuICB9XG5cbiAgcHVibGljIHNldFRvb2xiYXIodG9vbGJhcjogYW55KSB7XG4gICAgdGhpcy50b29sYmFyID0gdG9vbGJhcjtcbiAgfVxuXG4gIHB1YmxpYyBnZXRUb29sYmFyKCkgOiBhbnkge1xuICAgIHJldHVybiB0aGlzLnRvb2xiYXI7XG4gIH1cblxuICBwdWJsaWMgc2V0Rm9udE5hbWVzKGZvbnROYW1lczogc3RyaW5nW10pIHtcbiAgICB0aGlzLmZvbnROYW1lcyA9IGZvbnROYW1lcztcbiAgfVxuXG4gIHB1YmxpYyBnZXRGb250TmFtZXMoKSA6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5mb250TmFtZXM7XG4gIH1cblxuICBwdWJsaWMgc2V0SGVpZ2h0KGhlaWdodDogbnVtYmVyKSB7XG4gICAgdGhpcy5oZWlnaHQgPSBoZWlnaHQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0SGVpZ2h0KCkgOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmhlaWdodDtcbiAgfVxuXG4gIHB1YmxpYyBzZXRUYWJTaXplKHRhYlNpemU6IG51bWJlcikge1xuICAgIHRoaXMudGFiU2l6ZSA9IHRhYlNpemU7XG4gIH1cblxuICBwdWJsaWMgZ2V0VGFiU2l6ZSgpIDogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy50YWJTaXplO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZURjb3VtZW50SUQoaWQ6IHN0cmluZykge1xuICAgIHRoaXMuZG9jdW1lbnRJRFN1YmplY3QubmV4dChpZCk7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlU2VsZWN0ZWRTZWN0aW9uTmFtZShuYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLnNlbGVjdGVkU2VjdGlvbk5hbWVTdWJqZWN0Lm5leHQobmFtZSB8fCAnJyk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGVFdmVudChldmVudDogRG9jdW1lbnRFdmVudCkge1xuICAgIGlmIChldmVudCkge1xuICAgICAgbGV0IG1hdGNoID0gdGhpcy5pc092ZXJyaWRkZW5FdmVudChldmVudCk7XG4gICAgICBpZiAoIW1hdGNoKSB7XG4gICAgICAgIHRoaXMub3ZlcnJpZGVuRXZlbnRzLnB1c2goZXZlbnQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyByZW1vdmVPdmVycmlkZW5FdmVudChldmVudDogRG9jdW1lbnRFdmVudCkge1xuICAgIGlmIChldmVudCkge1xuICAgICAgdGhpcy5vdmVycmlkZW5FdmVudHMgPSB0aGlzLm92ZXJyaWRlbkV2ZW50cy5maWx0ZXIoZSA9PiB7XG4gICAgICAgIHJldHVybiAoZS5ldmVudFR5cGUgPT09IGV2ZW50LmV2ZW50VHlwZSAmJiBlLmVudGl0eVR5cGUgPT09IGV2ZW50LmVudGl0eVR5cGUpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGlzT3ZlcnJpZGRlbkV2ZW50KGV2ZW50OiBEb2N1bWVudEV2ZW50KSA6IERvY3VtZW50RXZlbnQgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLm92ZXJyaWRlbkV2ZW50cy5maW5kKGUgPT4gKGUuZXZlbnRUeXBlID09PSBldmVudC5ldmVudFR5cGUgICYmIGUuZW50aXR5VHlwZSA9PSBldmVudC5lbnRpdHlUeXBlKSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0RG9jdW1lbnRJRFN1YmplY3QoKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5kb2N1bWVudElEU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRTZWxlY3RlZFNlY3Rpb25OYW1lKCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRTZWN0aW9uTmFtZVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0RG9jdW1lbnRFdmVudFN1YmplY3QoKTogT2JzZXJ2YWJsZTxEb2N1bWVudEV2ZW50PiB7XG4gICAgcmV0dXJuIHRoaXMuZG9jdW1lbnRFdmVudFN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgcmV0cmlldmVEb2N1bWVudFRlbXBsYXRlKHRlbXBsYXRlSUQ6IHN0cmluZyk6IE9ic2VydmFibGU8UG9ydGFsRG9jdW1lbnQ+IHtcbiAgICBsZXQgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpO1xuICAgIGhlYWRlcnMuYXBwZW5kKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xuICAgIGxldCB1cmwgPSAnL2ViaXovYXBpL3YxL3BvcnRhbC9kb2N1bWVudC9jdXJyZW50RG9jdW1lbnRUZW1wbGF0ZS8nICsgdGVtcGxhdGVJRDtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxQb3J0YWxEb2N1bWVudD4odXJsLCB7IGhlYWRlcnM6IGhlYWRlcnMsIHJlc3BvbnNlVHlwZTogJ2pzb24nIH0pO1xuICB9XG5cbiAgcHVibGljIGNsb25lRG9jdW1lbnRUZW1wbGF0ZSh0ZW1wbGF0ZTogUG9ydGFsRG9jdW1lbnRUeXBlKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICBsZXQgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpO1xuICAgIGhlYWRlcnMuYXBwZW5kKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xuICAgIGxldCB1cmwgPSAnL2ViaXovYXBpL3YxL3BvcnRhbC9kb2N1bWVudC90ZW1wbGF0ZXMvJyArIHRlbXBsYXRlLmlkICsgJy9jbG9uZSc7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PHN0cmluZz4odXJsLCB0ZW1wbGF0ZSwgeyBoZWFkZXJzOiBoZWFkZXJzLCByZXNwb25zZVR5cGU6ICdqc29uJyB9KTtcbiAgfVxuXG4gIHB1YmxpYyByZXRyaWV2ZURvY3VtZW50KGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFBvcnRhbERvY3VtZW50PiB7XG4gICAgbGV0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKTtcbiAgICBoZWFkZXJzLmFwcGVuZCgnQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcbiAgICBsZXQgdXJsID0gJy9lYml6L2FwaS92MS9wb3J0YWwvZG9jdW1lbnQvJyArIGlkO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFBvcnRhbERvY3VtZW50Pih1cmwsIHsgaGVhZGVyczogaGVhZGVycywgcmVzcG9uc2VUeXBlOiAnanNvbicgfSk7XG4gIH1cblxuICBwdWJsaWMgcmV0cmlldmVMZWdhY3lEb2N1bWVudFRlbXBsYXRlKGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFBvcnRhbERvY3VtZW50PiB7XG4gICAgbGV0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKTtcbiAgICBoZWFkZXJzLmFwcGVuZCgnQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcbiAgICBsZXQgdXJsID0gJy9lYml6L2FwaS92MS9ucGRlcy9kb2N1bWVudC9sZWdhY3kvdGVtcGxhdGUvJyArIGlkO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFBvcnRhbERvY3VtZW50Pih1cmwsIHsgaGVhZGVyczogaGVhZGVycywgcmVzcG9uc2VUeXBlOiAnanNvbicgfSk7XG4gIH1cblxuICBwdWJsaWMgcmV0cmlldmVMZWdhY3lEb2N1bWVudEZvclBlcm1pdChwZXJtaXRJRDogc3RyaW5nKTogT2JzZXJ2YWJsZTxQb3J0YWxEb2N1bWVudD4ge1xuICAgIGxldCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCk7XG4gICAgaGVhZGVycy5hcHBlbmQoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XG4gICAgbGV0IHVybCA9ICcvZWJpei9hcGkvdjEvbnBkZXMvZG9jdW1lbnQvbGVnYWN5L3Blcm1pdC8nICsgcGVybWl0SUQ7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8UG9ydGFsRG9jdW1lbnQ+KHVybCwgeyBoZWFkZXJzOiBoZWFkZXJzLCByZXNwb25zZVR5cGU6ICdqc29uJyB9KTtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVEb2N1bWVudChkb2N1bWVudDogUG9ydGFsRG9jdW1lbnQpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCk7XG4gICAgaGVhZGVycy5hcHBlbmQoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XG4gICAgbGV0IHVybCA9ICcvZWJpei9hcGkvdjEvcG9ydGFsL2RvY3VtZW50LycgKyBkb2N1bWVudC5pZDtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxhbnk+KHVybCwgZG9jdW1lbnQsIHsgaGVhZGVyczogaGVhZGVycywgcmVzcG9uc2VUeXBlOiAnanNvbicgfSk7XG4gIH1cblxuICBwdWJsaWMgY3JlYXRlRG9jdW1lbnRTZWN0aW9uKHNlY3Rpb246IFBvcnRhbERvY3VtZW50U2VjdGlvbik6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgbGV0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKTtcbiAgICBoZWFkZXJzLmFwcGVuZCgnQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcbiAgICBsZXQgdXJsID0gJy9lYml6L2FwaS92MS9wb3J0YWwvZG9jdW1lbnQvJyArIHNlY3Rpb24uZG9jdW1lbnRJRCArICcvc2VjdGlvbnMnO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxzdHJpbmc+KHVybCwgc2VjdGlvbiwgeyBoZWFkZXJzOiBoZWFkZXJzLCByZXNwb25zZVR5cGU6ICdqc29uJyB9KTtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVEb2N1bWVudFNlY3Rpb24oc2VjdGlvbjogUG9ydGFsRG9jdW1lbnRTZWN0aW9uKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpO1xuICAgIGhlYWRlcnMuYXBwZW5kKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xuICAgIGxldCB1cmwgPSAnL2ViaXovYXBpL3YxL3BvcnRhbC9kb2N1bWVudC8nICsgc2VjdGlvbi5kb2N1bWVudElEICsgJy9zZWN0aW9ucy8nICsgc2VjdGlvbi5pZDtcbiAgICBjb25zdCBldmVudCA9IHsgZXZlbnRUeXBlOiBEb2N1bWVudEV2ZW50VHlwZS5VcGRhdGUsIGVudGl0eVR5cGU6IERvY3VtZW50RXZlbnRFbnRpdHlUeXBlLlNlY3Rpb24sIGVudGl0eUlEOiBzZWN0aW9uLmlkfTtcbiAgICB0aGlzLmRvY3VtZW50RXZlbnRTdWJqZWN0Lm5leHQoZXZlbnQpO1xuICAgIGlmICh0aGlzLmlzT3ZlcnJpZGRlbkV2ZW50KGV2ZW50KSkge1xuICAgICAgcmV0dXJuIG9mKHVuZGVmaW5lZCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLmh0dHAucHV0PGFueT4odXJsLCBzZWN0aW9uLCB7IGhlYWRlcnM6IGhlYWRlcnMsIHJlc3BvbnNlVHlwZTogJ2pzb24nIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBkZWxldGVEb2N1bWVudFNlY3Rpb24oc2VjdGlvbjogUG9ydGFsRG9jdW1lbnRTZWN0aW9uKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBjb25zdCBldmVudCA9IHsgZXZlbnRUeXBlOiBEb2N1bWVudEV2ZW50VHlwZS5EZWxldGUsIGVudGl0eVR5cGU6IERvY3VtZW50RXZlbnRFbnRpdHlUeXBlLlNlY3Rpb24sIGVudGl0eUlEOiBzZWN0aW9uLmlkLCBlbnRpdHk6IHNlY3Rpb259O1xuICAgIHRoaXMuZG9jdW1lbnRFdmVudFN1YmplY3QubmV4dChldmVudCk7XG4gICAgaWYgKHRoaXMuaXNPdmVycmlkZGVuRXZlbnQoZXZlbnQpKSB7XG4gICAgICByZXR1cm4gb2YodW5kZWZpbmVkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMuZG9EZWxldGVEb2N1bWVudFNlY3Rpb24oc2VjdGlvbik7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGRvRGVsZXRlRG9jdW1lbnRTZWN0aW9uKHNlY3Rpb246IFBvcnRhbERvY3VtZW50U2VjdGlvbik6IE9ic2VydmFibGU8YW55PiB7XG4gICAgbGV0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKTtcbiAgICBoZWFkZXJzLmFwcGVuZCgnQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcbiAgICBsZXQgdXJsID0gJy9lYml6L2FwaS92MS9wb3J0YWwvZG9jdW1lbnQvJyArIHNlY3Rpb24uZG9jdW1lbnRJRCArICcvc2VjdGlvbnMvJyArIHNlY3Rpb24uaWQ7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGU8YW55Pih1cmwsIHsgaGVhZGVyczogaGVhZGVycywgcmVzcG9uc2VUeXBlOiAnanNvbicgfSk7XG4gIH1cblxuICBwdWJsaWMgY3JlYXRlRG9jdW1lbnRHcm91cChncm91cDogUG9ydGFsRG9jdW1lbnRHcm91cCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgbGV0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKTtcbiAgICBoZWFkZXJzLmFwcGVuZCgnQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcbiAgICBsZXQgdXJsID0gJy9lYml6L2FwaS92MS9wb3J0YWwvZG9jdW1lbnQvJyArIGdyb3VwLmRvY3VtZW50SUQgKyAnL2dyb3Vwcyc7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PHN0cmluZz4odXJsLCBncm91cCwgeyBoZWFkZXJzOiBoZWFkZXJzLCByZXNwb25zZVR5cGU6ICdqc29uJyB9KTtcbiAgfVxuICBcbiAgcHVibGljIHJldHJpZXZlRG9jdW1lbnRHcm91cChkb2N1bWVudElEOiBzdHJpbmcsIGdyb3VwSUQ6IHN0cmluZyk6IE9ic2VydmFibGU8UG9ydGFsRG9jdW1lbnRHcm91cD4ge1xuICAgIGxldCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCk7XG4gICAgaGVhZGVycy5hcHBlbmQoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XG4gICAgbGV0IHVybCA9ICcvZWJpei9hcGkvdjEvcG9ydGFsL2RvY3VtZW50LycgKyBkb2N1bWVudElEICsgJy9ncm91cHMvJyArIGdyb3VwSUQ7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8UG9ydGFsRG9jdW1lbnRHcm91cD4odXJsLCB7IGhlYWRlcnM6IGhlYWRlcnMsIHJlc3BvbnNlVHlwZTogJ2pzb24nIH0pO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZURvY3VtZW50R3JvdXAoZ3JvdXA6IFBvcnRhbERvY3VtZW50R3JvdXApOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCk7XG4gICAgaGVhZGVycy5hcHBlbmQoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XG4gICAgbGV0IHVybCA9ICcvZWJpei9hcGkvdjEvcG9ydGFsL2RvY3VtZW50LycgKyBncm91cC5kb2N1bWVudElEICsgJy9ncm91cHMvJyArIGdyb3VwLmlkO1xuICAgIGNvbnN0IGV2ZW50ID0geyBldmVudFR5cGU6IERvY3VtZW50RXZlbnRUeXBlLlVwZGF0ZSwgZW50aXR5VHlwZTogRG9jdW1lbnRFdmVudEVudGl0eVR5cGUuR3JvdXAsIGVudGl0eUlEOiBncm91cC5pZH07XG4gICAgdGhpcy5kb2N1bWVudEV2ZW50U3ViamVjdC5uZXh0KGV2ZW50KTtcbiAgICBpZiAodGhpcy5pc092ZXJyaWRkZW5FdmVudChldmVudCkpIHtcbiAgICAgIHJldHVybiBvZih1bmRlZmluZWQpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxhbnk+KHVybCwgZ3JvdXAsIHsgaGVhZGVyczogaGVhZGVycywgcmVzcG9uc2VUeXBlOiAnanNvbicgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGRlbGV0ZURvY3VtZW50R3JvdXAoZ3JvdXA6IFBvcnRhbERvY3VtZW50R3JvdXApOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGNvbnN0IGV2ZW50ID0geyBldmVudFR5cGU6IERvY3VtZW50RXZlbnRUeXBlLkRlbGV0ZSwgZW50aXR5VHlwZTogRG9jdW1lbnRFdmVudEVudGl0eVR5cGUuR3JvdXAsIGVudGl0eUlEOiBncm91cC5pZCwgZW50aXR5OiBncm91cH07XG4gICAgdGhpcy5kb2N1bWVudEV2ZW50U3ViamVjdC5uZXh0KGV2ZW50KTtcbiAgICBpZiAodGhpcy5pc092ZXJyaWRkZW5FdmVudChldmVudCkpIHtcbiAgICAgIHJldHVybiBvZih1bmRlZmluZWQpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5kb0RlbGV0ZURvY3VtZW50R3JvdXAoZ3JvdXApO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBkb0RlbGV0ZURvY3VtZW50R3JvdXAoZ3JvdXA6IFBvcnRhbERvY3VtZW50R3JvdXApOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCk7XG4gICAgaGVhZGVycy5hcHBlbmQoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XG4gICAgbGV0IHVybCA9ICcvZWJpei9hcGkvdjEvcG9ydGFsL2RvY3VtZW50LycgKyBncm91cC5kb2N1bWVudElEICsgJy9ncm91cHMvJyArIGdyb3VwLmlkO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlPGFueT4odXJsLCB7IGhlYWRlcnM6IGhlYWRlcnMsIHJlc3BvbnNlVHlwZTogJ2pzb24nIH0pO1xuICB9XG5cbiAgcHVibGljIGNyZWF0ZURvY3VtZW50UGFydChwYXJ0OiBQb3J0YWxEb2N1bWVudFBhcnQpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgIGxldCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCk7XG4gICAgaGVhZGVycy5hcHBlbmQoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XG4gICAgbGV0IHVybCA9ICcvZWJpei9hcGkvdjEvcG9ydGFsL2RvY3VtZW50LycgKyBwYXJ0LmRvY3VtZW50SUQgKyAnL3BhcnRzJztcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8c3RyaW5nPih1cmwsIHBhcnQsIHsgaGVhZGVyczogaGVhZGVycywgcmVzcG9uc2VUeXBlOiAnanNvbicgfSk7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlRG9jdW1lbnRQYXJ0KHBhcnQ6IFBvcnRhbERvY3VtZW50UGFydCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgbGV0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKTtcbiAgICBoZWFkZXJzLmFwcGVuZCgnQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcbiAgICBsZXQgdXJsID0gJy9lYml6L2FwaS92MS9wb3J0YWwvZG9jdW1lbnQvJyArIHBhcnQuZG9jdW1lbnRJRCArICcvcGFydHMvJyArIHBhcnQuaWQ7XG4gICAgY29uc3QgZXZlbnQgPSB7IGV2ZW50VHlwZTogRG9jdW1lbnRFdmVudFR5cGUuVXBkYXRlLCBlbnRpdHlUeXBlOiBEb2N1bWVudEV2ZW50RW50aXR5VHlwZS5QYXJ0LCBlbnRpdHlJRDogcGFydC5pZH07XG4gICAgdGhpcy5kb2N1bWVudEV2ZW50U3ViamVjdC5uZXh0KGV2ZW50KTtcbiAgICBpZiAodGhpcy5pc092ZXJyaWRkZW5FdmVudChldmVudCkpIHtcbiAgICAgIHJldHVybiBvZih1bmRlZmluZWQpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxhbnk+KHVybCwgcGFydCwgeyBoZWFkZXJzOiBoZWFkZXJzLCByZXNwb25zZVR5cGU6ICdqc29uJyB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZGVsZXRlRG9jdW1lbnRQYXJ0KHBhcnQ6IFBvcnRhbERvY3VtZW50UGFydCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgbGV0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKTtcbiAgICBoZWFkZXJzLmFwcGVuZCgnQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcbiAgICBsZXQgdXJsID0gJy9lYml6L2FwaS92MS9wb3J0YWwvZG9jdW1lbnQvJyArIHBhcnQuZG9jdW1lbnRJRCArICcvcGFydHMvJyArIHBhcnQuaWQ7XG4gICAgY29uc3QgZXZlbnQgPSB7IGV2ZW50VHlwZTogRG9jdW1lbnRFdmVudFR5cGUuRGVsZXRlLCBlbnRpdHlUeXBlOiBEb2N1bWVudEV2ZW50RW50aXR5VHlwZS5QYXJ0LCBlbnRpdHlJRDogcGFydC5pZCwgZW50aXR5OiBwYXJ0fTtcbiAgICB0aGlzLmRvY3VtZW50RXZlbnRTdWJqZWN0Lm5leHQoZXZlbnQpO1xuICAgIGlmICh0aGlzLmlzT3ZlcnJpZGRlbkV2ZW50KGV2ZW50KSkge1xuICAgICAgcmV0dXJuIG9mKHVuZGVmaW5lZCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlPGFueT4odXJsLCB7IGhlYWRlcnM6IGhlYWRlcnMsIHJlc3BvbnNlVHlwZTogJ2pzb24nIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVEb2N1bWVudFRleHQoZG9jdW1lbnRJRDogc3RyaW5nLCBwYXJ0SUQ6IHN0cmluZywgdGV4dDogUG9ydGFsRG9jdW1lbnRUZXh0KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpO1xuICAgIGhlYWRlcnMuYXBwZW5kKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xuICAgIGxldCB1cmwgPSAnL2ViaXovYXBpL3YxL3BvcnRhbC9kb2N1bWVudC8nICsgZG9jdW1lbnRJRCsgJy9wYXJ0cy8nICsgcGFydElEICsgJy90ZXh0cy8nICsgdGV4dC5pZDtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxhbnk+KHVybCwgdGV4dCwgeyBoZWFkZXJzOiBoZWFkZXJzLCByZXNwb25zZVR5cGU6ICdqc29uJyB9KTtcbiAgfVxuXG4gIHB1YmxpYyByZXRyaWV2ZUFsbERvY3VtZW50UGxhY2Vob2xkZXJzKHNlcnZpY2VOYW1lOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFBvcnRhbERvY3VtZW50UGxhY2Vob2xkZXJbXT4ge1xuICAgIGxldCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCk7XG4gICAgaGVhZGVycy5hcHBlbmQoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XG4gICAgbGV0IHVybCA9ICcvZWJpei9hcGkvdjEvcG9ydGFsL2RvY3VtZW50L3BsYWNlaG9sZGVycy9zZXJ2aWNlLycgKyBzZXJ2aWNlTmFtZTtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxQb3J0YWxEb2N1bWVudFBsYWNlaG9sZGVyW10+KHVybCwgeyBoZWFkZXJzOiBoZWFkZXJzLCByZXNwb25zZVR5cGU6ICdqc29uJyB9KTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRDdXN0b21QYXJ0QWN0aW9uKGFjdGlvbjogT2VwYUFjdGlvbikge1xuICAgIHRoaXMuY3VzdG9tUGFydEFjdGlvbiA9IGFjdGlvbjtcbiAgfVxuXG4gIHB1YmxpYyBnZXRDdXN0b21QYXJ0QWN0aW9uKCkgOiBPZXBhQWN0aW9uIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5jdXN0b21QYXJ0QWN0aW9uO1xuICB9XG5cbiAgcHVibGljIGdldERvY3VtZW50UGFydEFjdGlvblN1YmplY3QoKTogT2JzZXJ2YWJsZTxQb3J0YWxEb2N1bWVudFBhcnQ+IHtcbiAgICByZXR1cm4gdGhpcy5kb2N1bWVudFBhcnRBY3Rpb25TdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIGZpcmVDdXN0b21QYXJ0QWN0aW9uKHBhcnQ6IFBvcnRhbERvY3VtZW50UGFydCkge1xuICAgIHRoaXMuZG9jdW1lbnRQYXJ0QWN0aW9uU3ViamVjdC5uZXh0KHBhcnQpO1xuICB9XG5cbiAgcHVibGljIGdldERvY3VtZW50UGFydFVwZGF0ZVN1YmplY3QoKTogT2JzZXJ2YWJsZTxQb3J0YWxEb2N1bWVudFBhcnQ+IHtcbiAgICByZXR1cm4gdGhpcy5kb2N1bWVudFBhcnRVcGRhdGVTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIGZpcmVEb2N1bWVudFBhcnRVcGRhdGUocGFydDogUG9ydGFsRG9jdW1lbnRQYXJ0KSB7XG4gICAgdGhpcy5kb2N1bWVudFBhcnRVcGRhdGVTdWJqZWN0Lm5leHQocGFydCk7XG4gIH1cblxuICBwdWJsaWMgc2VhcmNoRW1haWxzKGZpbHRlcjogUG9ydGFsRW1haWxGaWx0ZXIpOiBPYnNlcnZhYmxlPFBvcnRhbEVtYWlsW10+IHtcbiAgICBsZXQgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpO1xuICAgIGhlYWRlcnMuYXBwZW5kKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xuICAgIGxldCB1cmwgPSAnL2ViaXovYXBpL3YxL3BvcnRhbC9kb2N1bWVudC9lbWFpbHMvc2VhcmNoJztcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8UG9ydGFsRW1haWxbXT4odXJsLCBmaWx0ZXIsIHsgaGVhZGVyczogaGVhZGVycywgcmVzcG9uc2VUeXBlOiAnanNvbicgfSk7XG4gIH1cblxuICBwdWJsaWMgcmV0cmlldmVEb2N1bWVudEJ5RG9jdW1lbnRJRChkb2N1bWVudElEOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFBvcnRhbERvY3VtZW50PiB7XG4gICAgbGV0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKTtcbiAgICBoZWFkZXJzLmFwcGVuZCgnQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcbiAgICBsZXQgdXJsID0gJy9lYml6L2FwaS92MS9wb3J0YWwvZG9jdW1lbnQvJyArIGRvY3VtZW50SUQ7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8UG9ydGFsRG9jdW1lbnRHcm91cD4odXJsLCB7IGhlYWRlcnM6IGhlYWRlcnMsIHJlc3BvbnNlVHlwZTogJ2pzb24nIH0pO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZUFwcHJvdmFsU3RhdHVzRm9yRW1haWxzKGlkczogc3RyaW5nW10sIHN0YXR1czogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpO1xuICAgIGhlYWRlcnMuYXBwZW5kKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xuICAgIGxldCB1cmwgPSAnL2ViaXovYXBpL3YxL3BvcnRhbC9kb2N1bWVudC9lbWFpbHMvYXBwcm92YWxTdGF0dXMvJyArIHN0YXR1cztcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxhbnk+KHVybCwgaWRzLCB7IGhlYWRlcnM6IGhlYWRlcnMsIHJlc3BvbnNlVHlwZTogJ2pzb24nIH0pO1xuICB9XG5cbiAgcHVibGljIHNlbmRBcHByb3ZlZEVtYWlscyhlbWFpbHM6IFBvcnRhbEVtYWlsW10pIDogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpO1xuICAgIGhlYWRlcnMuYXBwZW5kKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xuICAgIGxldCB1cmwgPSAnL2ViaXovYXBpL3YxL3BvcnRhbC9kb2N1bWVudC9lbWFpbHMvQXBwcm92ZWQvc2VuZCc7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4odXJsLCBlbWFpbHMsIHsgaGVhZGVyczogaGVhZGVycywgcmVzcG9uc2VUeXBlOiAnanNvbicgfSk7XG4gIH1cblxufVxuIl19
@@ -0,0 +1,46 @@
1
+ import { Component, Input, Output, EventEmitter } from '@angular/core';
2
+ import { Validators } from '@angular/forms';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/forms";
5
+ import * as i2 from "ngx-bootstrap/modal";
6
+ export class GroupModalComponent {
7
+ fb;
8
+ bsModalRef;
9
+ group;
10
+ label = '';
11
+ onGroupSave = new EventEmitter();
12
+ modalForm;
13
+ constructor(fb, bsModalRef) {
14
+ this.fb = fb;
15
+ this.bsModalRef = bsModalRef;
16
+ }
17
+ ngOnInit() {
18
+ this.createForm();
19
+ }
20
+ createForm() {
21
+ this.modalForm = this.fb.group({
22
+ name: [this.group.name, [Validators.required]]
23
+ });
24
+ }
25
+ save() {
26
+ this.group.name = this.modalForm.get('name')?.value;
27
+ this.onGroupSave.emit(this.group);
28
+ this.bsModalRef.hide();
29
+ }
30
+ cancel() {
31
+ this.bsModalRef.hide();
32
+ }
33
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: GroupModalComponent, deps: [{ token: i1.FormBuilder }, { token: i2.BsModalRef }], target: i0.ɵɵFactoryTarget.Component });
34
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: GroupModalComponent, selector: "oepa-group-modal", inputs: { group: "group", label: "label" }, outputs: { onGroupSave: "onGroupSave" }, ngImport: i0, template: "<div class=\"modal-header\">\n <h4 class=\"modal-title pull-left\">{{label}}</h4>\n <button type=\"button\" class=\"close pull-right\" aria-label=\"Close\" (click)=\"cancel()\">\n <span aria-hidden=\"true\">&times;</span>\n </button>\n </div>\n <div class=\"modal-body\">\n <div [formGroup]=\"modalForm\">\n <div class=\"row\">\n <div class=\"col-sm-12 form-group\">\n <label>Group Name</label>\n <input class=\"form-control\" id=\"partNameInput\" formControlName=\"name\"/>\n </div>\n </div>\n\n </div>\n </div>\n <div class=\"modal-footer\">\n <button type=\"submit\" id=\"saveBtn\" [disabled]=\"modalForm.invalid\" class=\"btn btn-primary mr-1\" (click)=\"save()\">Save</button>\n <button type=\"button\" id=\"cancelBtn\" class=\"btn btn-primary mr-1\" (click)=\"cancel()\">Cancel</button>\n </div>\n", styles: [""], dependencies: [{ 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"] }] });
35
+ }
36
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: GroupModalComponent, decorators: [{
37
+ type: Component,
38
+ args: [{ selector: 'oepa-group-modal', template: "<div class=\"modal-header\">\n <h4 class=\"modal-title pull-left\">{{label}}</h4>\n <button type=\"button\" class=\"close pull-right\" aria-label=\"Close\" (click)=\"cancel()\">\n <span aria-hidden=\"true\">&times;</span>\n </button>\n </div>\n <div class=\"modal-body\">\n <div [formGroup]=\"modalForm\">\n <div class=\"row\">\n <div class=\"col-sm-12 form-group\">\n <label>Group Name</label>\n <input class=\"form-control\" id=\"partNameInput\" formControlName=\"name\"/>\n </div>\n </div>\n\n </div>\n </div>\n <div class=\"modal-footer\">\n <button type=\"submit\" id=\"saveBtn\" [disabled]=\"modalForm.invalid\" class=\"btn btn-primary mr-1\" (click)=\"save()\">Save</button>\n <button type=\"button\" id=\"cancelBtn\" class=\"btn btn-primary mr-1\" (click)=\"cancel()\">Cancel</button>\n </div>\n" }]
39
+ }], ctorParameters: () => [{ type: i1.FormBuilder }, { type: i2.BsModalRef }], propDecorators: { group: [{
40
+ type: Input
41
+ }], label: [{
42
+ type: Input
43
+ }], onGroupSave: [{
44
+ type: Output
45
+ }] } });
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdXAtbW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb2VwYS11aS1saWIvc3JjL2xpYi9kb2N1bWVudC9ncm91cC1tb2RhbC9ncm91cC1tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vZXBhLXVpLWxpYi9zcmMvbGliL2RvY3VtZW50L2dyb3VwLW1vZGFsL2dyb3VwLW1vZGFsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0UsT0FBTyxFQUEwQixVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQVFwRSxNQUFNLE9BQU8sbUJBQW1CO0lBUVY7SUFBd0I7SUFQbkMsS0FBSyxDQUF1QjtJQUM1QixLQUFLLEdBQUcsRUFBRSxDQUFDO0lBRVYsV0FBVyxHQUFzQyxJQUFJLFlBQVksRUFBdUIsQ0FBQztJQUU1RixTQUFTLENBQWE7SUFFN0IsWUFBb0IsRUFBZSxFQUFTLFVBQXNCO1FBQTlDLE9BQUUsR0FBRixFQUFFLENBQWE7UUFBUyxlQUFVLEdBQVYsVUFBVSxDQUFZO0lBQUksQ0FBQztJQUV2RSxRQUFRO1FBQ04sSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFFTyxVQUFVO1FBQ2hCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUM7WUFDN0IsSUFBSSxFQUFFLENBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDaEQsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELElBQUk7UUFDRixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxLQUFLLENBQUM7UUFDcEQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3pCLENBQUM7d0dBNUJVLG1CQUFtQjs0RkFBbkIsbUJBQW1CLDZJQ1ZoQywwNUJBcUJBOzs0RkRYYSxtQkFBbUI7a0JBTC9CLFNBQVM7K0JBQ0Usa0JBQWtCO3lHQUtuQixLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUVJLFdBQVc7c0JBQXBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQb3J0YWxEb2N1bWVudEdyb3VwIH0gZnJvbSAnLi4vcG9ydGFsLWRvY3VtZW50LWdyb3VwJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBCc01vZGFsUmVmIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC9tb2RhbCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ29lcGEtZ3JvdXAtbW9kYWwnLFxuICB0ZW1wbGF0ZVVybDogJy4vZ3JvdXAtbW9kYWwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9ncm91cC1tb2RhbC5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgR3JvdXBNb2RhbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIGdyb3VwITogUG9ydGFsRG9jdW1lbnRHcm91cDtcbiAgQElucHV0KCkgbGFiZWwgPSAnJztcblxuICBAT3V0cHV0KCkgb25Hcm91cFNhdmU6IEV2ZW50RW1pdHRlcjxQb3J0YWxEb2N1bWVudEdyb3VwPiA9IG5ldyBFdmVudEVtaXR0ZXI8UG9ydGFsRG9jdW1lbnRHcm91cD4oKTtcblxuICBwdWJsaWMgbW9kYWxGb3JtITogRm9ybUdyb3VwO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLCBwdWJsaWMgYnNNb2RhbFJlZjogQnNNb2RhbFJlZikgeyB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5jcmVhdGVGb3JtKCk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUZvcm0oKSB7XG4gICAgdGhpcy5tb2RhbEZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIG5hbWU6IFsgdGhpcy5ncm91cC5uYW1lLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dXG4gICAgfSk7XG4gIH1cblxuICBzYXZlKCkge1xuICAgIHRoaXMuZ3JvdXAubmFtZSA9IHRoaXMubW9kYWxGb3JtLmdldCgnbmFtZScpPy52YWx1ZTtcbiAgICB0aGlzLm9uR3JvdXBTYXZlLmVtaXQodGhpcy5ncm91cCk7XG4gICAgdGhpcy5ic01vZGFsUmVmLmhpZGUoKTtcbiAgfVxuXG4gIGNhbmNlbCgpIHtcbiAgICB0aGlzLmJzTW9kYWxSZWYuaGlkZSgpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwibW9kYWwtaGVhZGVyXCI+XG4gICAgPGg0IGNsYXNzPVwibW9kYWwtdGl0bGUgcHVsbC1sZWZ0XCI+e3tsYWJlbH19PC9oND5cbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImNsb3NlIHB1bGwtcmlnaHRcIiBhcmlhLWxhYmVsPVwiQ2xvc2VcIiAoY2xpY2spPVwiY2FuY2VsKClcIj5cbiAgICAgICAgPHNwYW4gYXJpYS1oaWRkZW49XCJ0cnVlXCI+JnRpbWVzOzwvc3Bhbj5cbiAgICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cIm1vZGFsLWJvZHlcIj5cbiAgICAgIDxkaXYgW2Zvcm1Hcm91cF09XCJtb2RhbEZvcm1cIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tMTIgZm9ybS1ncm91cFwiPlxuICAgICAgICAgICAgICAgICAgPGxhYmVsPkdyb3VwIE5hbWU8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jb250cm9sXCIgaWQ9XCJwYXJ0TmFtZUlucHV0XCIgZm9ybUNvbnRyb2xOYW1lPVwibmFtZVwiLz5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cIm1vZGFsLWZvb3RlclwiPlxuICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiIGlkPVwic2F2ZUJ0blwiIFtkaXNhYmxlZF09XCJtb2RhbEZvcm0uaW52YWxpZFwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IG1yLTFcIiAoY2xpY2spPVwic2F2ZSgpXCI+U2F2ZTwvYnV0dG9uPlxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGlkPVwiY2FuY2VsQnRuXCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgbXItMVwiIChjbGljayk9XCJjYW5jZWwoKVwiPkNhbmNlbDwvYnV0dG9uPlxuICA8L2Rpdj5cbiJdfQ==
@@ -0,0 +1,48 @@
1
+ import { Component, Input, Output, EventEmitter } from '@angular/core';
2
+ import { Validators } from '@angular/forms';
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 "../../yes-no/yes-no.component";
7
+ export class PartModalComponent {
8
+ fb;
9
+ bsModalRef;
10
+ label = '';
11
+ part;
12
+ onPartSave = new EventEmitter();
13
+ modalForm;
14
+ constructor(fb, bsModalRef) {
15
+ this.fb = fb;
16
+ this.bsModalRef = bsModalRef;
17
+ }
18
+ ngOnInit() {
19
+ this.createForm();
20
+ }
21
+ createForm() {
22
+ this.modalForm = this.fb.group({
23
+ name: [this.part.name, [Validators.required]],
24
+ included: [this.part.display ? 'yes' : 'no']
25
+ });
26
+ }
27
+ save() {
28
+ this.part.name = this.modalForm.get('name')?.value;
29
+ this.onPartSave.emit(this.part);
30
+ this.bsModalRef.hide();
31
+ }
32
+ cancel() {
33
+ this.bsModalRef.hide();
34
+ }
35
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PartModalComponent, deps: [{ token: i1.FormBuilder }, { token: i2.BsModalRef }], target: i0.ɵɵFactoryTarget.Component });
36
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: PartModalComponent, selector: "oepa-part-modal", inputs: { label: "label", part: "part" }, outputs: { onPartSave: "onPartSave" }, ngImport: i0, template: "<div class=\"modal-header\">\n <h4 class=\"modal-title pull-left\">{{label}}</h4>\n <button type=\"button\" class=\"close pull-right\" aria-label=\"Close\" (click)=\"cancel()\">\n <span aria-hidden=\"true\">&times;</span>\n </button>\n </div>\n <div class=\"modal-body\">\n <div [formGroup]=\"modalForm\">\n <div class=\"row\">\n <div class=\"col-sm-12 form-group\">\n <label>Paragraph Name</label>\n <input class=\"form-control\" id=\"partNameInput\" formControlName=\"name\"/>\n </div>\n <div class=\"col-sm-12 form-group\">\n <label>Included</label>\n <oepa-yes-no [group]=\"modalForm\" field=\"included\"></oepa-yes-no>\n </div>\n </div>\n\n </div>\n </div>\n <div class=\"modal-footer\">\n <button type=\"submit\" id=\"saveBtn\" [disabled]=\"modalForm.invalid\" class=\"btn btn-primary mr-1\" (click)=\"save()\">Save</button>\n <button type=\"button\" id=\"cancelBtn\" class=\"btn btn-primary mr-1\" (click)=\"cancel()\">Cancel</button>\n </div>\n", styles: [""], dependencies: [{ 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: i3.YesNoComponent, selector: "oepa-yes-no", inputs: ["group", "field", "showValidation", "disabled"] }] });
37
+ }
38
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PartModalComponent, decorators: [{
39
+ type: Component,
40
+ args: [{ selector: 'oepa-part-modal', template: "<div class=\"modal-header\">\n <h4 class=\"modal-title pull-left\">{{label}}</h4>\n <button type=\"button\" class=\"close pull-right\" aria-label=\"Close\" (click)=\"cancel()\">\n <span aria-hidden=\"true\">&times;</span>\n </button>\n </div>\n <div class=\"modal-body\">\n <div [formGroup]=\"modalForm\">\n <div class=\"row\">\n <div class=\"col-sm-12 form-group\">\n <label>Paragraph Name</label>\n <input class=\"form-control\" id=\"partNameInput\" formControlName=\"name\"/>\n </div>\n <div class=\"col-sm-12 form-group\">\n <label>Included</label>\n <oepa-yes-no [group]=\"modalForm\" field=\"included\"></oepa-yes-no>\n </div>\n </div>\n\n </div>\n </div>\n <div class=\"modal-footer\">\n <button type=\"submit\" id=\"saveBtn\" [disabled]=\"modalForm.invalid\" class=\"btn btn-primary mr-1\" (click)=\"save()\">Save</button>\n <button type=\"button\" id=\"cancelBtn\" class=\"btn btn-primary mr-1\" (click)=\"cancel()\">Cancel</button>\n </div>\n" }]
41
+ }], ctorParameters: () => [{ type: i1.FormBuilder }, { type: i2.BsModalRef }], propDecorators: { label: [{
42
+ type: Input
43
+ }], part: [{
44
+ type: Input
45
+ }], onPartSave: [{
46
+ type: Output
47
+ }] } });
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFydC1tb2RhbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vZXBhLXVpLWxpYi9zcmMvbGliL2RvY3VtZW50L3BhcnQtbW9kYWwvcGFydC1tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vZXBhLXVpLWxpYi9zcmMvbGliL2RvY3VtZW50L3BhcnQtbW9kYWwvcGFydC1tb2RhbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRy9FLE9BQU8sRUFBMEIsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7O0FBT3BFLE1BQU0sT0FBTyxrQkFBa0I7SUFRVDtJQUF3QjtJQVBuQyxLQUFLLEdBQUcsRUFBRSxDQUFDO0lBQ1gsSUFBSSxDQUFzQjtJQUV6QixVQUFVLEdBQXFDLElBQUksWUFBWSxFQUFzQixDQUFDO0lBRXpGLFNBQVMsQ0FBYTtJQUU3QixZQUFvQixFQUFlLEVBQVMsVUFBc0I7UUFBOUMsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQUFTLGVBQVUsR0FBVixVQUFVLENBQVk7SUFBSSxDQUFDO0lBRXZFLFFBQVE7UUFDTixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVPLFVBQVU7UUFDaEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQztZQUM3QixJQUFJLEVBQUUsQ0FBRSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUM5QyxRQUFRLEVBQUUsQ0FBRSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUU7U0FDL0MsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVELElBQUk7UUFDRixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxLQUFLLENBQUM7UUFDbkQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3pCLENBQUM7d0dBN0JVLGtCQUFrQjs0RkFBbEIsa0JBQWtCLHdJQ1YvQiwybUNBeUJBOzs0RkRmYSxrQkFBa0I7a0JBTDlCLFNBQVM7K0JBQ0UsaUJBQWlCO3lHQUtsQixLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUVJLFVBQVU7c0JBQW5CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQb3J0YWxEb2N1bWVudFBhcnQgfSBmcm9tICcuLi9wb3J0YWwtZG9jdW1lbnQtcGFydCc7XG5pbXBvcnQgeyBCc01vZGFsUmVmIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC9tb2RhbCc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdvZXBhLXBhcnQtbW9kYWwnLFxuICB0ZW1wbGF0ZVVybDogJy4vcGFydC1tb2RhbC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3BhcnQtbW9kYWwuY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIFBhcnRNb2RhbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIGxhYmVsID0gJyc7XG4gIEBJbnB1dCgpIHBhcnQhOiBQb3J0YWxEb2N1bWVudFBhcnQ7XG5cbiAgQE91dHB1dCgpIG9uUGFydFNhdmU6IEV2ZW50RW1pdHRlcjxQb3J0YWxEb2N1bWVudFBhcnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxQb3J0YWxEb2N1bWVudFBhcnQ+KCk7XG5cbiAgcHVibGljIG1vZGFsRm9ybSE6IEZvcm1Hcm91cDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZiOiBGb3JtQnVpbGRlciwgcHVibGljIGJzTW9kYWxSZWY6IEJzTW9kYWxSZWYpIHsgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuY3JlYXRlRm9ybSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVGb3JtKCkge1xuICAgIHRoaXMubW9kYWxGb3JtID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICBuYW1lOiBbIHRoaXMucGFydC5uYW1lLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuICAgICAgaW5jbHVkZWQ6IFsgdGhpcy5wYXJ0LmRpc3BsYXkgPyAneWVzJyA6ICdubycgXVxuICAgIH0pXG4gIH1cblxuICBzYXZlKCkge1xuICAgIHRoaXMucGFydC5uYW1lID0gdGhpcy5tb2RhbEZvcm0uZ2V0KCduYW1lJyk/LnZhbHVlO1xuICAgIHRoaXMub25QYXJ0U2F2ZS5lbWl0KHRoaXMucGFydCk7XG4gICAgdGhpcy5ic01vZGFsUmVmLmhpZGUoKTtcbiAgfVxuXG4gIGNhbmNlbCgpIHtcbiAgICB0aGlzLmJzTW9kYWxSZWYuaGlkZSgpO1xuICB9XG5cbn1cbiIsIjxkaXYgY2xhc3M9XCJtb2RhbC1oZWFkZXJcIj5cbiAgICA8aDQgY2xhc3M9XCJtb2RhbC10aXRsZSBwdWxsLWxlZnRcIj57e2xhYmVsfX08L2g0PlxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiY2xvc2UgcHVsbC1yaWdodFwiIGFyaWEtbGFiZWw9XCJDbG9zZVwiIChjbGljayk9XCJjYW5jZWwoKVwiPlxuICAgICAgICA8c3BhbiBhcmlhLWhpZGRlbj1cInRydWVcIj4mdGltZXM7PC9zcGFuPlxuICAgICAgPC9idXR0b24+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwibW9kYWwtYm9keVwiPlxuICAgICAgPGRpdiBbZm9ybUdyb3VwXT1cIm1vZGFsRm9ybVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS0xMiBmb3JtLWdyb3VwXCI+XG4gICAgICAgICAgICAgICAgICA8bGFiZWw+UGFyYWdyYXBoIE5hbWU8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jb250cm9sXCIgaWQ9XCJwYXJ0TmFtZUlucHV0XCIgZm9ybUNvbnRyb2xOYW1lPVwibmFtZVwiLz5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tMTIgZm9ybS1ncm91cFwiPlxuICAgICAgICAgICAgICAgICAgPGxhYmVsPkluY2x1ZGVkPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgIDxvZXBhLXllcy1ubyBbZ3JvdXBdPVwibW9kYWxGb3JtXCIgZmllbGQ9XCJpbmNsdWRlZFwiPjwvb2VwYS15ZXMtbm8+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJtb2RhbC1mb290ZXJcIj5cbiAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBpZD1cInNhdmVCdG5cIiBbZGlzYWJsZWRdPVwibW9kYWxGb3JtLmludmFsaWRcIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBtci0xXCIgKGNsaWNrKT1cInNhdmUoKVwiPlNhdmU8L2J1dHRvbj5cbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBpZD1cImNhbmNlbEJ0blwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IG1yLTFcIiAoY2xpY2spPVwiY2FuY2VsKClcIj5DYW5jZWw8L2J1dHRvbj5cbiAgPC9kaXY+XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9ydGFsLWRvY3VtZW50LWNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb2VwYS11aS1saWIvc3JjL2xpYi9kb2N1bWVudC9wb3J0YWwtZG9jdW1lbnQtY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogSW50ZXJmYWNlIGZvciB1cy5vaC5zdGF0ZS5lcGEucG9ydGFsLmRvY3VtZW50LlBvcnRhbERvY3VtZW50Q2xhc3NcbiAqL1xuaW1wb3J0IHsgRG9tYWluT2JqZWN0IH0gZnJvbSAnQG9oaW9lcGEvb2VwYS1lYml6LWxpYic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUG9ydGFsRG9jdW1lbnRDbGFzcyBleHRlbmRzIERvbWFpbk9iamVjdCB7XG4gICAgY2xhc3NOYW1lPzogc3RyaW5nO1xuICAgIHN1YmNsYXNzTmFtZT86IHN0cmluZztcbiAgICBjb21tZW50cz86IHN0cmluZztcbiAgICBzZXJ2aWNlTmFtZT86IHN0cmluZztcbn0iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9ydGFsLWRvY3VtZW50LWdyb3VwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb2VwYS11aS1saWIvc3JjL2xpYi9kb2N1bWVudC9wb3J0YWwtZG9jdW1lbnQtZ3JvdXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogSW50ZXJmYWNlIGZvciB1cy5vaC5zdGF0ZS5lcGEucG9ydGFsLmRvY3VtZW50LlBvcnRhbERvY3VtZW50R3JvdXBcbiAqL1xuaW1wb3J0IHsgRG9tYWluT2JqZWN0IH0gZnJvbSAnQG9oaW9lcGEvb2VwYS1lYml6LWxpYic7XG5pbXBvcnQgeyBQb3J0YWxEb2N1bWVudFBhcnQgfSBmcm9tIFwiLi9wb3J0YWwtZG9jdW1lbnQtcGFydFwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFBvcnRhbERvY3VtZW50R3JvdXAgZXh0ZW5kcyBEb21haW5PYmplY3Qge1xuICAgIHNlY3Rpb25JRD86IHN0cmluZztcbiAgICBuYW1lPzogc3RyaW5nO1xuICAgIHR5cGU/OiBzdHJpbmc7XG4gICAgbm90ZXM/OiBzdHJpbmc7XG4gICAgZG9jdW1lbnRJRD86IHN0cmluZztcbiAgICBzZXF1ZW5jZT86IG51bWJlcjtcbiAgICBwYXJ0cz86IFBvcnRhbERvY3VtZW50UGFydFtdO1xuXG4gICAgLy8gVUkgb25seVxuICAgIGlzQ29sbGFwc2VkPzogYm9vbGVhbjtcbn0iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9ydGFsLWRvY3VtZW50LXBhcnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vZXBhLXVpLWxpYi9zcmMvbGliL2RvY3VtZW50L3BvcnRhbC1kb2N1bWVudC1wYXJ0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEludGVyZmFjZSBmb3IgdXMub2guc3RhdGUuZXBhLnBvcnRhbC5kb2N1bWVudC5Qb3J0YWxEb2N1bWVudFBhcnRcbiAqL1xuaW1wb3J0IHsgRG9tYWluT2JqZWN0IH0gZnJvbSAnQG9oaW9lcGEvb2VwYS1lYml6LWxpYic7XG5pbXBvcnQgeyBQb3J0YWxEb2N1bWVudFRleHQgfSBmcm9tIFwiLi9wb3J0YWwtZG9jdW1lbnQtdGV4dFwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFBvcnRhbERvY3VtZW50UGFydCBleHRlbmRzIERvbWFpbk9iamVjdCB7XG4gICAgcGFyZW50UGFydElEPzogc3RyaW5nO1xuICAgIGdyb3VwSUQ/OiBzdHJpbmc7XG4gICAgZG9jdW1lbnRJRD86IHN0cmluZztcbiAgICBzZXF1ZW5jZT86IG51bWJlcjtcbiAgICB0ZXh0PzogUG9ydGFsRG9jdW1lbnRUZXh0O1xuICAgIHNvdXJjZVRleHQ/OiBQb3J0YWxEb2N1bWVudFRleHQ7XG4gICAgbmFtZT86IHN0cmluZztcbiAgICBkaXNwbGF5PzogYm9vbGVhbjtcbiAgICByZXF1aXJlZD86IGJvb2xlYW47XG4gICAgbGlzdFR5cGU/OiBzdHJpbmc7XG4gICAgbGlzdFZhbHVlPzogc3RyaW5nO1xuICAgIGxldmVsPzogbnVtYmVyO1xuICAgIGRpZmZlcnNGcm9tQm9pbGVycGxhdGU/OiBib29sZWFuO1xuICAgIHBhcnRzPzogUG9ydGFsRG9jdW1lbnRQYXJ0W107XG5cbiAgICAvLyBVSSBvbmx5XG4gICAgaXNDb2xsYXBzZWQ/OiBib29sZWFuO1xufSJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9ydGFsLWRvY3VtZW50LXBsYWNlaG9sZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb2VwYS11aS1saWIvc3JjL2xpYi9kb2N1bWVudC9wb3J0YWwtZG9jdW1lbnQtcGxhY2Vob2xkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogSW50ZXJmYWNlIGZvciB1cy5vaC5zdGF0ZS5lcGEucG9ydGFsLmRvY3VtZW50LlBvcnRhbERvY3VtZW50UGxhY2Vob2xkZXJcbiAqL1xuaW1wb3J0IHsgRG9tYWluT2JqZWN0IH0gZnJvbSAnQG9oaW9lcGEvb2VwYS1lYml6LWxpYic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUG9ydGFsRG9jdW1lbnRQbGFjZWhvbGRlciBleHRlbmRzIERvbWFpbk9iamVjdCB7XG4gICAgZGlzcGxheU5hbWU/OiBzdHJpbmc7XG4gICAgaXRlbU5hbWU/OiBzdHJpbmc7XG4gICAgZm9ybWF0Pzogc3RyaW5nO1xuICAgIGNvbW1lbnRzPzogc3RyaW5nO1xuICAgIGNoaWxkcmVuPzogUG9ydGFsRG9jdW1lbnRQbGFjZWhvbGRlcltdO1xuICAgIGluZm8/OiBzdHJpbmc7XG59Il19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9ydGFsLWRvY3VtZW50LXNlY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vZXBhLXVpLWxpYi9zcmMvbGliL2RvY3VtZW50L3BvcnRhbC1kb2N1bWVudC1zZWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEludGVyZmFjZSBmb3IgdXMub2guc3RhdGUuZXBhLnBvcnRhbC5kb2N1bWVudC5Qb3J0YWxEb2N1bWVudFNlY3Rpb25cbiAqL1xuaW1wb3J0IHsgRG9tYWluT2JqZWN0IH0gZnJvbSAnQG9oaW9lcGEvb2VwYS1lYml6LWxpYic7XG5pbXBvcnQgeyBQb3J0YWxEb2N1bWVudEdyb3VwIH0gZnJvbSBcIi4vcG9ydGFsLWRvY3VtZW50LWdyb3VwXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUG9ydGFsRG9jdW1lbnRTZWN0aW9uIGV4dGVuZHMgRG9tYWluT2JqZWN0IHtcbiAgICBkb2N1bWVudElEPzogc3RyaW5nO1xuICAgIG5hbWU/OiBzdHJpbmc7XG4gICAgbm90ZXM/OiBzdHJpbmc7XG4gICAgc2VxdWVuY2U/OiBudW1iZXI7XG4gICAgZ3JvdXBzPzogUG9ydGFsRG9jdW1lbnRHcm91cFtdO1xuXG4gICAgLy8gVUkgT25seVxuICAgIGlzQ29sbGFwc2VkPzogYm9vbGVhbjtcbn0iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9ydGFsLWRvY3VtZW50LXRleHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vZXBhLXVpLWxpYi9zcmMvbGliL2RvY3VtZW50L3BvcnRhbC1kb2N1bWVudC10ZXh0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEludGVyZmFjZSBmb3IgdXMub2guc3RhdGUuZXBhLnBvcnRhbC5kb2N1bWVudC5Qb3J0YWxEb2N1bWVudFRleHRcbiAqL1xuaW1wb3J0IHsgRG9tYWluT2JqZWN0IH0gZnJvbSAnQG9oaW9lcGEvb2VwYS1lYml6LWxpYic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUG9ydGFsRG9jdW1lbnRUZXh0IGV4dGVuZHMgRG9tYWluT2JqZWN0IHtcbiAgICB0ZXh0Pzogc3RyaW5nO1xufSJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9ydGFsLWRvY3VtZW50LXR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vZXBhLXVpLWxpYi9zcmMvbGliL2RvY3VtZW50L3BvcnRhbC1kb2N1bWVudC10eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEludGVyZmFjZSBmb3IgdXMub2guc3RhdGUuZXBhLnBvcnRhbC5kb2N1bWVudC5Qb3J0YWxEb2N1bWVudFR5cGVcbiAqL1xuaW1wb3J0IHsgRG9tYWluT2JqZWN0LCBBdHRhY2htZW50IH0gZnJvbSAnQG9oaW9lcGEvb2VwYS1lYml6LWxpYic7XG5pbXBvcnQgeyBQb3J0YWxEb2N1bWVudENsYXNzIH0gZnJvbSBcIi4vcG9ydGFsLWRvY3VtZW50LWNsYXNzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUG9ydGFsRG9jdW1lbnRUeXBlIGV4dGVuZHMgRG9tYWluT2JqZWN0IHtcbiAgICBkb2N1bWVudENsYXNzPzogUG9ydGFsRG9jdW1lbnRDbGFzcztcbiAgICBjYXRlZ29yeT86IHN0cmluZztcbiAgICB0eXBlPzogc3RyaW5nO1xuICAgIHN1YlR5cGU/OiBzdHJpbmc7XG4gICAgY292ZXJhZ2U/OiBzdHJpbmc7XG4gICAgbmFtZT86IHN0cmluZztcbiAgICBjb21tZW50cz86IHN0cmluZztcbiAgICB0ZW1wbGF0ZT86IEF0dGFjaG1lbnQ7XG59Il19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9ydGFsLWRvY3VtZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb2VwYS11aS1saWIvc3JjL2xpYi9kb2N1bWVudC9wb3J0YWwtZG9jdW1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogSW50ZXJmYWNlIGZvciB1cy5vaC5zdGF0ZS5lcGEucG9ydGFsLmRvY3VtZW50LlBvcnRhbERvY3VtZW50XG4gKi9cbmltcG9ydCB7IFBvcnRhbERvY3VtZW50U2VjdGlvbiB9IGZyb20gXCIuL3BvcnRhbC1kb2N1bWVudC1zZWN0aW9uXCI7XG5pbXBvcnQgeyBQb3J0YWxEb2N1bWVudENsYXNzIH0gZnJvbSBcIi4vcG9ydGFsLWRvY3VtZW50LWNsYXNzXCI7XG5pbXBvcnQgeyBEb21haW5PYmplY3QgfSBmcm9tICdAb2hpb2VwYS9vZXBhLWViaXotbGliJztcblxuZXhwb3J0IGludGVyZmFjZSBQb3J0YWxEb2N1bWVudCBleHRlbmRzIERvbWFpbk9iamVjdCB7XG4gICAgZG9jdW1lbnRDbGFzcz86IFBvcnRhbERvY3VtZW50Q2xhc3M7XG4gICAgZG9jdW1lbnRUeXBlSUQ/OiBzdHJpbmc7XG4gICAgc2VydmljZU5hbWU/OiBzdHJpbmc7XG4gICAgbmFtZT86IHN0cmluZztcbiAgICBjb21tZW50cz86IHN0cmluZztcbiAgICB2ZXJzaW9uTnVtYmVyPzogc3RyaW5nO1xuICAgIHZlcnNpb25OYW1lPzogc3RyaW5nO1xuICAgIGVmZmVjdGl2ZURhdGU/OiBEYXRlO1xuICAgIGV4cGlyYXRpb25EYXRlPzogRGF0ZTtcbiAgICBpc0JvaWxlcnBsYXRlPzogYm9vbGVhbjtcbiAgICBoZWFkZXI/OiBzdHJpbmc7XG4gICAgYm9keT86IHN0cmluZztcbiAgICBmb290ZXI/OiBzdHJpbmc7XG4gICAgaXNGaW5hbD86IGJvb2xlYW47XG4gICAgLy8gVE9ETyB1cGRhdGUgamF2YSBjbGFzcyB0byB1c2UgRG9jdW1lbnQgVHlwZVxuICAgIGRvY3VtZW50Q2F0ZWdvcnk/OiBzdHJpbmc7XG4gICAgZG9jdW1lbnRUeXBlPzogc3RyaW5nO1xuICAgIGRvY3VtZW50U3VidHlwZT86IHN0cmluZztcbiAgICBkb2N1bWVudENvdmVyYWdlPzogc3RyaW5nO1xuICAgIHNlY3Rpb25zPzogUG9ydGFsRG9jdW1lbnRTZWN0aW9uW107XG59Il19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9ydGFsLWVtYWlsLWF0dGFjaG1lbnQtdHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29lcGEtdWktbGliL3NyYy9saWIvZG9jdW1lbnQvcG9ydGFsLWVtYWlsLWF0dGFjaG1lbnQtdHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRG9tYWluT2JqZWN0IH0gZnJvbSAnQG9oaW9lcGEvb2VwYS1lYml6LWxpYic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUG9ydGFsRW1haWxBdHRhY2htZW50VHlwZSBleHRlbmRzIERvbWFpbk9iamVjdCB7XG4gICAgbmFtZT86IHN0cmluZztcbiAgICBzZXJ2aWNlTmFtZT86IHN0cmluZztcbiAgICBjb21tZW50cz86IHN0cmluZztcbn0iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9ydGFsLWVtYWlsLWF0dGFjaG1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vZXBhLXVpLWxpYi9zcmMvbGliL2RvY3VtZW50L3BvcnRhbC1lbWFpbC1hdHRhY2htZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFRG9jdW1lbnRBdHRhY2htZW50IH0gZnJvbSBcIi4uL2Vkb2MtYXR0YWNobWVudC9lZG9jdW1lbnQtYXR0YWNobWVudFwiO1xuaW1wb3J0IHsgRG9tYWluT2JqZWN0IH0gZnJvbSAnQG9oaW9lcGEvb2VwYS1lYml6LWxpYic7XG5pbXBvcnQgeyBQb3J0YWxFbWFpbEF0dGFjaG1lbnRUeXBlIH0gZnJvbSBcIi4vcG9ydGFsLWVtYWlsLWF0dGFjaG1lbnQtdHlwZVwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFBvcnRhbEVtYWlsQXR0YWNobWVudCBleHRlbmRzIERvbWFpbk9iamVjdCB7XG4gICAgYXR0YWNobWVudFR5cGUgPzogUG9ydGFsRW1haWxBdHRhY2htZW50VHlwZTtcbiAgICBlbWFpbElEID86IHN0cmluZztcbiAgICB1c2VyRmlsZU5hbWU/OiBzdHJpbmc7XG4gICAgc3lzdGVtRmlsZU5hbWU/OiBzdHJpbmc7XG4gICAgbG9jYXRpb24/OiBzdHJpbmc7XG4gICAgZmlsZVNpemU/OiBudW1iZXI7XG4gICAgZURvY0F0dGFjaG1lbnQ/OiBFRG9jdW1lbnRBdHRhY2htZW50O1xufSJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9ydGFsLWVtYWlsLWZpbHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29lcGEtdWktbGliL3NyYy9saWIvZG9jdW1lbnQvcG9ydGFsLWVtYWlsLWZpbHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBQb3J0YWxFbWFpbEZpbHRlciB7XG4gICAgc3RhcnREYXRlPzogRGF0ZTtcbiAgICBlbmREYXRlPzogRGF0ZTtcbiAgICBkb2N1bWVudENhdGVnb3J5Pzogc3RyaW5nO1xuICAgIGRvY3VtZW50U3ViQ2xhc3M/OiBzdHJpbmc7XG4gICAgZG9jdW1lbnRUeXBlPzogc3RyaW5nO1xuICAgIGRvY3VtZW50U3VidHlwZT86IHN0cmluZztcbiAgICBkb2N1bWVudENvdmVyYWdlPzogc3RyaW5nO1xuICAgIGVtYWlsU2VudD8gOiBib29sZWFuO1xuICAgIHJlZmVyZW5jZUlEPzogc3RyaW5nO1xuICAgIGFwcHJvdmFsU3RhdHVzPzogc3RyaW5nO1xufSJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9ydGFsLWVtYWlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb2VwYS11aS1saWIvc3JjL2xpYi9kb2N1bWVudC9wb3J0YWwtZW1haWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERvbWFpbk9iamVjdCB9IGZyb20gJ0BvaGlvZXBhL29lcGEtZWJpei1saWInO1xuaW1wb3J0IHsgUG9ydGFsRW1haWxBdHRhY2htZW50IH0gZnJvbSBcIi4vcG9ydGFsLWVtYWlsLWF0dGFjaG1lbnRcIjtcbmltcG9ydCB7IFBvcnRhbERvY3VtZW50IH0gZnJvbSBcIi4vcG9ydGFsLWRvY3VtZW50XCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUG9ydGFsRW1haWwgZXh0ZW5kcyBEb21haW5PYmplY3Qge1xuICAgIGRvY3VtZW50PzogUG9ydGFsRG9jdW1lbnQ7XG4gICAgc2VuZGVyPzogc3RyaW5nO1xuICAgIHN1YmplY3Q/OiBzdHJpbmc7XG4gICAgcmVjaXBpZW50cz86IHN0cmluZ1tdO1xuICAgIGNjTGlzdD86IHN0cmluZ1tdO1xuICAgIGJvZHk/OiBzdHJpbmc7XG4gICAgcmVmZXJlbmNlSUQ/OiBzdHJpbmc7XG4gICAgcmVmZXJlbmNlRGVzYz86IHN0cmluZztcbiAgICB0ZW1wbGF0ZUlEPzogc3RyaW5nO1xuICAgIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICAgIGF0dGFjaG1lbnRzPzogUG9ydGFsRW1haWxBdHRhY2htZW50W107XG4gICAgZW1haWxTZW50PzogYm9vbGVhbjtcbiAgICBhcHByb3ZhbFN0YXR1cz86IHN0cmluZztcbn0iXX0=