@reusa/ngx-reusa-app-lib 0.0.732 → 0.1.731

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 (472) hide show
  1. package/{esm2020 → esm2022}/lib/annimations/app-animations.mjs +36 -36
  2. package/esm2022/lib/components/add-employer/add-employer.component.mjs +3027 -0
  3. package/esm2022/lib/components/add-participant/add-participant.component.mjs +394 -0
  4. package/esm2022/lib/components/add-payment/add-payment.component.mjs +187 -0
  5. package/esm2022/lib/components/address/address.component.mjs +487 -0
  6. package/esm2022/lib/components/bank-details/bank-details.component.mjs +276 -0
  7. package/esm2022/lib/components/captcha/captcha.component.mjs +181 -0
  8. package/esm2022/lib/components/card/card.component.mjs +55 -0
  9. package/esm2022/lib/components/contact-us/contact-us.component.mjs +970 -0
  10. package/esm2022/lib/components/content/content.component.mjs +61 -0
  11. package/esm2022/lib/components/correspondence-download/correspondence-download.component.mjs +83 -0
  12. package/esm2022/lib/components/dashboard-card/dashboard-card.component.mjs +223 -0
  13. package/esm2022/lib/components/dependent-grid/dependent-grid.component.mjs +292 -0
  14. package/esm2022/lib/components/disclosure/disclosure.component.mjs +60 -0
  15. package/esm2022/lib/components/dropdown/dropdown.component.mjs +1974 -0
  16. package/esm2022/lib/components/dropdown/dropdown.interface.mjs +2 -0
  17. package/esm2022/lib/components/email-update/email-update.component.mjs +283 -0
  18. package/esm2022/lib/components/employer-grid/employer-grid.component.mjs +794 -0
  19. package/esm2022/lib/components/error/error.component.mjs +86 -0
  20. package/esm2022/lib/components/fav-menu/fav-menu.component.mjs +163 -0
  21. package/{esm2020 → esm2022}/lib/components/file-download/file-download.component.mjs +104 -104
  22. package/esm2022/lib/components/file-uploader/file-uploader.component.mjs +315 -0
  23. package/esm2022/lib/components/footer/footer.component.mjs +332 -0
  24. package/esm2022/lib/components/header/header.component.mjs +558 -0
  25. package/esm2022/lib/components/help/help.component.mjs +49 -0
  26. package/esm2022/lib/components/idle-detector/idle-detector.component.mjs +65 -0
  27. package/{esm2020 → esm2022}/lib/components/info/info.component.mjs +187 -188
  28. package/esm2022/lib/components/job-search-result-page/job-search-result-page.component.mjs +206 -0
  29. package/esm2022/lib/components/legal-disclaimar/legal-disclaimar.component.mjs +193 -0
  30. package/esm2022/lib/components/maintenance-detector/maintenance-detector.component.mjs +43 -0
  31. package/esm2022/lib/components/mask/mask.component.mjs +48 -0
  32. package/esm2022/lib/components/menu/menu.component.mjs +423 -0
  33. package/esm2022/lib/components/mfa/mfa.component.mjs +444 -0
  34. package/esm2022/lib/components/mfa-popup/mfa-popup.component.mjs +50 -0
  35. package/esm2022/lib/components/money-expect/money-expect.component.mjs +90 -0
  36. package/esm2022/lib/components/msg/msg.component.mjs +48 -0
  37. package/esm2022/lib/components/news/news.component.mjs +90 -0
  38. package/esm2022/lib/components/overlay-info/overlay-info.component.mjs +213 -0
  39. package/esm2022/lib/components/page/page.component.mjs +136 -0
  40. package/esm2022/lib/components/profile/profile.component.mjs +177 -0
  41. package/esm2022/lib/components/profile-redirect/profile-redirect.component.mjs +63 -0
  42. package/esm2022/lib/components/questionnaire/AppValidators.mjs +487 -0
  43. package/{esm2020 → esm2022}/lib/components/questionnaire/FbConstants.mjs +7 -7
  44. package/{esm2020 → esm2022}/lib/components/questionnaire/SelectItem.mjs +1 -1
  45. package/esm2022/lib/components/questionnaire/account-success/account-success.page.mjs +256 -0
  46. package/esm2022/lib/components/questionnaire/common-success/common-success.page.mjs +475 -0
  47. package/esm2022/lib/components/questionnaire/dynamic-form-panel.component.mjs +1094 -0
  48. package/esm2022/lib/components/questionnaire/dynamic-form-question.component.mjs +1882 -0
  49. package/esm2022/lib/components/questionnaire/dynamic-form.component.mjs +1263 -0
  50. package/esm2022/lib/components/questionnaire/form-builder/form-builder.page.mjs +244 -0
  51. package/{esm2020 → esm2022}/lib/components/questionnaire/input-focus.directive.mjs +44 -44
  52. package/esm2022/lib/components/questionnaire/multi-questionnaire/multi-questionnaire.component.mjs +256 -0
  53. package/{esm2020 → esm2022}/lib/components/questionnaire/question-base.mjs +2 -2
  54. package/{esm2020 → esm2022}/lib/components/questionnaire/question-control.service.mjs +420 -419
  55. package/{esm2020 → esm2022}/lib/components/questionnaire/question.service.mjs +33 -33
  56. package/esm2022/lib/components/questionnaire/render-questionnaire/render-questionnaire.page.mjs +262 -0
  57. package/{esm2020 → esm2022}/lib/components/read-more/read-more.component.mjs +67 -67
  58. package/esm2022/lib/components/requalify-lift-previous-issues/requalify-lift-previous-issues.component.mjs +690 -0
  59. package/esm2022/lib/components/search-employer/search-employer.component.mjs +142 -0
  60. package/esm2022/lib/components/select/select.component.mjs +154 -0
  61. package/esm2022/lib/components/ssn/ssn.component.mjs +44 -0
  62. package/esm2022/lib/components/ssn-reverify/ssn-reverify.component.mjs +151 -0
  63. package/esm2022/lib/components/test/test.component.mjs +19 -0
  64. package/esm2022/lib/components/user-login/user-login.component.mjs +398 -0
  65. package/esm2022/lib/components/weekly-cert-employer/weekly-cert-employer.component.mjs +442 -0
  66. package/esm2022/lib/components/weekly-cert-employer-grid/weekly-cert-employer-grid.component.mjs +307 -0
  67. package/{esm2020 → esm2022}/lib/directives/auto-focus/auto-focus.directive.mjs +31 -31
  68. package/{esm2020 → esm2022}/lib/directives/caps-lock.directive.mjs +38 -38
  69. package/{esm2020 → esm2022}/lib/directives/required-roles/required-roles.directive.mjs +30 -30
  70. package/{esm2020 → esm2022}/lib/enums/EmailStatusEnum.mjs +8 -8
  71. package/{esm2020 → esm2022}/lib/guards/auth.guard.mjs +138 -138
  72. package/esm2022/lib/guards/no-login/no-login.guard.mjs +21 -0
  73. package/{esm2020 → esm2022}/lib/interceptors/error-interceptor/http-error-interceptor.mjs +107 -107
  74. package/{esm2020 → esm2022}/lib/interceptors/header-interceptor/http-header.interceptor.mjs +99 -99
  75. package/{esm2020 → esm2022}/lib/models/AddressComponentModel.mjs +2 -2
  76. package/{esm2020 → esm2022}/lib/models/BankDetailsComponentModel.mjs +2 -2
  77. package/{esm2020 → esm2022}/lib/models/BankDetailsModel.mjs +3 -3
  78. package/{esm2020 → esm2022}/lib/models/CinRequalificationCriteriaModel.mjs +3 -3
  79. package/{esm2020 → esm2022}/lib/models/EmployerDetailSearchResult.mjs +5 -5
  80. package/{esm2020 → esm2022}/lib/models/ErrorModel.mjs +5 -5
  81. package/{esm2020 → esm2022}/lib/models/FileModel.mjs +1 -1
  82. package/{esm2020 → esm2022}/lib/models/LibConstants.mjs +119 -119
  83. package/{esm2020 → esm2022}/lib/models/NewsAndAnnouncementModel.mjs +2 -2
  84. package/{esm2020 → esm2022}/lib/models/NotificationModel.mjs +5 -5
  85. package/{esm2020 → esm2022}/lib/models/OtpAuthModel.mjs +2 -2
  86. package/{esm2020 → esm2022}/lib/models/PaymentComponentModel.mjs +2 -2
  87. package/esm2022/lib/models/RequalifyLiftPageModel.mjs +11 -0
  88. package/{esm2020 → esm2022}/lib/models/SsaVerificationModel.mjs +3 -3
  89. package/{esm2020 → esm2022}/lib/models/TrendModel.mjs +2 -2
  90. package/{esm2020 → esm2022}/lib/models/UserDetailsModel.mjs +2 -2
  91. package/{esm2020 → esm2022}/lib/models/UserModel.mjs +5 -5
  92. package/{esm2020 → esm2022}/lib/models/case/CaseAttachmentModel.mjs +3 -3
  93. package/{esm2020 → esm2022}/lib/models/claimant/ClaimantModel.mjs +2 -2
  94. package/{esm2020 → esm2022}/lib/models/claimant/JobResultsData.mjs +2 -2
  95. package/{esm2020 → esm2022}/lib/models/claimant/MatchingJobs.mjs +2 -2
  96. package/{esm2020 → esm2022}/lib/models/claimant/ResetPasswordModel.mjs +2 -2
  97. package/esm2022/lib/models/cmp/CaseCoreModel.mjs +3 -0
  98. package/{esm2020 → esm2022}/lib/models/cmp/ComplaintCategoryModel.mjs +3 -3
  99. package/{esm2020 → esm2022}/lib/models/cmp/ComplaintCategoryOutputModel.mjs +5 -5
  100. package/esm2022/lib/models/cmp/ContactUsModel.mjs +3 -0
  101. package/{esm2020 → esm2022}/lib/models/cmp/EmailTemplateModel.mjs +3 -3
  102. package/esm2022/lib/models/cmp/contactUsInqueryModel.mjs +7 -0
  103. package/{esm2020 → esm2022}/lib/models/cmp/messageRourceModel.mjs +3 -3
  104. package/esm2022/lib/models/dashboard-model.mjs +3 -0
  105. package/esm2022/lib/models/dependent.model.mjs +8 -0
  106. package/{esm2020 → esm2022}/lib/models/questionnaire/ClaimAppEmpRequestModel.mjs +2 -2
  107. package/{esm2020 → esm2022}/lib/models/questionnaire/ClaimAppEmpResponseModel.mjs +7 -7
  108. package/{esm2020 → esm2022}/lib/models/questionnaire/ClaimAppEmployerDetailsModel.mjs +5 -5
  109. package/{esm2020 → esm2022}/lib/models/questionnaire/ClaimOnlyEmployerDataModel.mjs +2 -2
  110. package/esm2022/lib/models/questionnaire/ComboModel.mjs +337 -0
  111. package/{esm2020 → esm2022}/lib/models/questionnaire/ElementsModel.mjs +7 -7
  112. package/{esm2020 → esm2022}/lib/models/questionnaire/EmployerDetailSearchResult.mjs +2 -2
  113. package/{esm2020 → esm2022}/lib/models/questionnaire/EmployerWagesModel.mjs +3 -3
  114. package/{esm2020 → esm2022}/lib/models/questionnaire/FBConfigModel.mjs +5 -5
  115. package/{esm2020 → esm2022}/lib/models/questionnaire/KeyValueModel.mjs +2 -2
  116. package/{esm2020 → esm2022}/lib/models/questionnaire/LegalDiscaimarModel.mjs +2 -2
  117. package/{esm2020 → esm2022}/lib/models/questionnaire/LoaderModel.mjs +2 -2
  118. package/{esm2020 → esm2022}/lib/models/questionnaire/PollingStatusModel.mjs +3 -3
  119. package/{esm2020 → esm2022}/lib/models/questionnaire/QtrYearEmployerWageModel.mjs +2 -2
  120. package/{esm2020 → esm2022}/lib/models/questionnaire/QuestionnaireQueryModel.mjs +7 -7
  121. package/{esm2020 → esm2022}/lib/models/questionnaire/QuestionnaireReturnModel.mjs +10 -10
  122. package/{esm2020 → esm2022}/lib/models/questionnaire/QuestionnaireSaveModel.mjs +2 -2
  123. package/esm2022/lib/models/questionnaire/RequalifyLiftIssuesModel.mjs +3 -0
  124. package/{esm2020 → esm2022}/lib/models/questionnaire/ServiceActionResponseModel.mjs +3 -3
  125. package/esm2022/lib/models/questionnaire/StatusModel.mjs +6 -0
  126. package/{esm2020 → esm2022}/lib/models/questionnaire/SuccessPageElement.mjs +2 -2
  127. package/esm2022/lib/models/questionnaire/UI512AResponseModel.mjs +3 -0
  128. package/{esm2020 → esm2022}/lib/models/questionnaire/ValidationModel.mjs +2 -2
  129. package/esm2022/lib/ngx-reusa-app-lib.component.mjs +23 -0
  130. package/esm2022/lib/ngx-reusa-app-lib.module.mjs +402 -0
  131. package/{esm2020 → esm2022}/lib/ngx-reusa-app-lib.service.mjs +14 -14
  132. package/{esm2020 → esm2022}/lib/pages/BasePage.mjs +76 -76
  133. package/esm2022/lib/pages/common/accessibility-policy/accessibility-policy.page.mjs +81 -0
  134. package/esm2022/lib/pages/common/change-password/change-password.page.mjs +463 -0
  135. package/esm2022/lib/pages/common/landing/landing.component.mjs +208 -0
  136. package/esm2022/lib/pages/common/landing2/landing2.component.mjs +244 -0
  137. package/esm2022/lib/pages/common/login/login.component.mjs +526 -0
  138. package/esm2022/lib/pages/common/not-found/not-found.page.mjs +24 -0
  139. package/esm2022/lib/pages/common/privacy-disclaimer/privacy-disclaimer.page.mjs +306 -0
  140. package/esm2022/lib/pages/common/security-policy/security-policy.page.mjs +61 -0
  141. package/esm2022/lib/pages/common/unauthorized/unauthorized.page.mjs +24 -0
  142. package/esm2022/lib/pages/popovers/language/language.page.mjs +61 -0
  143. package/esm2022/lib/pages/popovers/my-notifications/my-notifications.page.mjs +204 -0
  144. package/esm2022/lib/pages/popovers/my-profile/my-profile.page.mjs +129 -0
  145. package/esm2022/lib/pages/popovers/user-search/user-search.component.mjs +251 -0
  146. package/{esm2020 → esm2022}/lib/pipes/filter.pipe.mjs +30 -30
  147. package/{esm2020 → esm2022}/lib/pipes/mask/mask.email.pipe.mjs +23 -23
  148. package/{esm2020 → esm2022}/lib/pipes/proper-case/proper-case.pipe.mjs +27 -27
  149. package/{esm2020 → esm2022}/lib/pipes/translate/dynamic-translate.pipe.mjs +44 -44
  150. package/{esm2020 → esm2022}/lib/pipes/trust-html/trust-html.pipe.mjs +20 -20
  151. package/{esm2020 → esm2022}/lib/services/base-service.mjs +49 -49
  152. package/{esm2020 → esm2022}/lib/services/captcha/captcha.service.mjs +46 -46
  153. package/{esm2020 → esm2022}/lib/services/case-service/case.service.mjs +47 -47
  154. package/{esm2020 → esm2022}/lib/services/chatbot/chatbot.service.mjs +257 -257
  155. package/esm2022/lib/services/chatbot/script.const.mjs +42 -0
  156. package/{esm2020 → esm2022}/lib/services/claimant/claimant.service.mjs +31 -31
  157. package/esm2022/lib/services/claimant-context/claimant-context.service.mjs +48 -0
  158. package/{esm2020 → esm2022}/lib/services/claimant-service/claimant.service.mjs +47 -47
  159. package/{esm2020 → esm2022}/lib/services/claims/claims.service.mjs +99 -99
  160. package/{esm2020 → esm2022}/lib/services/cmp-service/cmp.service.mjs +84 -84
  161. package/{esm2020 → esm2022}/lib/services/dms-service/dms.service.mjs +60 -60
  162. package/{esm2020 → esm2022}/lib/services/fpjs/fingerprint.service.mjs +70 -70
  163. package/{esm2020 → esm2022}/lib/services/google-analytics/google-analytics.service.mjs +29 -29
  164. package/{esm2020 → esm2022}/lib/services/help/help.service.mjs +63 -63
  165. package/{esm2020 → esm2022}/lib/services/idle/idle.service.mjs +159 -159
  166. package/{esm2020 → esm2022}/lib/services/logger/logger.service.mjs +67 -67
  167. package/esm2022/lib/services/login/login.service.mjs +330 -0
  168. package/{esm2020 → esm2022}/lib/services/maintenance/maintenance.service.mjs +21 -21
  169. package/{esm2020 → esm2022}/lib/services/notification/notification.service.mjs +113 -113
  170. package/{esm2020 → esm2022}/lib/services/questionnaire/questionnaire.service.mjs +69 -69
  171. package/{esm2020 → esm2022}/lib/services/questionnaire/validation.service.mjs +59 -59
  172. package/{esm2020 → esm2022}/lib/services/security-service/security.service.mjs +35 -35
  173. package/{esm2020 → esm2022}/lib/services/tour/tour.service.mjs +60 -60
  174. package/{esm2020 → esm2022}/lib/services/util/util.service.mjs +424 -424
  175. package/esm2022/lib/validations/AppRegex.mjs +45 -0
  176. package/{esm2020 → esm2022}/lib/validations/AppValidators.mjs +165 -165
  177. package/{esm2020 → esm2022}/public-api.mjs +131 -131
  178. package/{esm2020 → esm2022}/reusa-ngx-reusa-app-lib.mjs +4 -4
  179. package/{fesm2020 → fesm2022}/reusa-ngx-reusa-app-lib.mjs +27966 -27877
  180. package/fesm2022/reusa-ngx-reusa-app-lib.mjs.map +1 -0
  181. package/index.d.ts +5 -5
  182. package/lib/annimations/app-animations.d.ts +3 -3
  183. package/lib/components/add-employer/add-employer.component.d.ts +276 -276
  184. package/lib/components/add-participant/add-participant.component.d.ts +45 -45
  185. package/lib/components/add-payment/add-payment.component.d.ts +33 -33
  186. package/lib/components/address/address.component.d.ts +68 -68
  187. package/lib/components/address/address.component.d.ts.map +1 -1
  188. package/lib/components/bank-details/bank-details.component.d.ts +39 -39
  189. package/lib/components/captcha/captcha.component.d.ts +44 -44
  190. package/lib/components/card/card.component.d.ts +11 -11
  191. package/lib/components/contact-us/contact-us.component.d.ts +105 -107
  192. package/lib/components/contact-us/contact-us.component.d.ts.map +1 -1
  193. package/lib/components/content/content.component.d.ts +13 -13
  194. package/lib/components/correspondence-download/correspondence-download.component.d.ts +21 -21
  195. package/lib/components/dashboard-card/dashboard-card.component.d.ts +25 -25
  196. package/lib/components/dashboard-card/dashboard-card.component.d.ts.map +1 -1
  197. package/lib/components/dependent-grid/dependent-grid.component.d.ts +35 -35
  198. package/lib/components/disclosure/disclosure.component.d.ts +12 -12
  199. package/lib/components/dropdown/dropdown.component.d.ts +581 -207
  200. package/lib/components/dropdown/dropdown.component.d.ts.map +1 -1
  201. package/lib/components/dropdown/dropdown.interface.d.ts +155 -0
  202. package/lib/components/dropdown/dropdown.interface.d.ts.map +1 -0
  203. package/lib/components/email-update/email-update.component.d.ts +31 -31
  204. package/lib/components/employer-grid/employer-grid.component.d.ts +95 -94
  205. package/lib/components/employer-grid/employer-grid.component.d.ts.map +1 -1
  206. package/lib/components/error/error.component.d.ts +17 -17
  207. package/lib/components/fav-menu/fav-menu.component.d.ts +21 -21
  208. package/lib/components/file-download/file-download.component.d.ts +22 -22
  209. package/lib/components/file-uploader/file-uploader.component.d.ts +47 -47
  210. package/lib/components/footer/footer.component.d.ts +36 -36
  211. package/lib/components/header/header.component.d.ts +59 -58
  212. package/lib/components/header/header.component.d.ts.map +1 -1
  213. package/lib/components/help/help.component.d.ts +10 -10
  214. package/lib/components/idle-detector/idle-detector.component.d.ts +15 -15
  215. package/lib/components/info/info.component.d.ts +22 -22
  216. package/lib/components/job-search-result-page/job-search-result-page.component.d.ts +21 -21
  217. package/lib/components/legal-disclaimar/legal-disclaimar.component.d.ts +33 -33
  218. package/lib/components/maintenance-detector/maintenance-detector.component.d.ts +15 -15
  219. package/lib/components/mask/mask.component.d.ts +11 -11
  220. package/lib/components/menu/menu.component.d.ts +43 -43
  221. package/lib/components/mfa/mfa.component.d.ts +59 -59
  222. package/lib/components/mfa-popup/mfa-popup.component.d.ts +16 -16
  223. package/lib/components/money-expect/money-expect.component.d.ts +18 -18
  224. package/lib/components/msg/msg.component.d.ts +10 -10
  225. package/lib/components/news/news.component.d.ts +14 -14
  226. package/lib/components/overlay-info/overlay-info.component.d.ts +34 -34
  227. package/lib/components/page/page.component.d.ts +23 -23
  228. package/lib/components/profile/profile.component.d.ts +28 -28
  229. package/lib/components/profile-redirect/profile-redirect.component.d.ts +13 -13
  230. package/lib/components/questionnaire/AppValidators.d.ts +14 -14
  231. package/lib/components/questionnaire/AppValidators.d.ts.map +1 -1
  232. package/lib/components/questionnaire/FbConstants.d.ts +7 -7
  233. package/lib/components/questionnaire/SelectItem.d.ts +4 -4
  234. package/lib/components/questionnaire/account-success/account-success.page.d.ts +53 -53
  235. package/lib/components/questionnaire/common-success/common-success.page.d.ts +75 -75
  236. package/lib/components/questionnaire/common-success/common-success.page.d.ts.map +1 -1
  237. package/lib/components/questionnaire/dynamic-form-panel.component.d.ts +46 -46
  238. package/lib/components/questionnaire/dynamic-form-question.component.d.ts +82 -82
  239. package/lib/components/questionnaire/dynamic-form-question.component.d.ts.map +1 -1
  240. package/lib/components/questionnaire/dynamic-form.component.d.ts +130 -130
  241. package/lib/components/questionnaire/dynamic-form.component.d.ts.map +1 -1
  242. package/lib/components/questionnaire/form-builder/form-builder.page.d.ts +66 -64
  243. package/lib/components/questionnaire/form-builder/form-builder.page.d.ts.map +1 -1
  244. package/lib/components/questionnaire/input-focus.directive.d.ts +11 -11
  245. package/lib/components/questionnaire/multi-questionnaire/multi-questionnaire.component.d.ts +38 -38
  246. package/lib/components/questionnaire/multi-questionnaire/multi-questionnaire.component.d.ts.map +1 -1
  247. package/lib/components/questionnaire/question-base.d.ts +16 -16
  248. package/lib/components/questionnaire/question-control.service.d.ts +19 -19
  249. package/lib/components/questionnaire/question-control.service.d.ts.map +1 -1
  250. package/lib/components/questionnaire/question.service.d.ts +18 -18
  251. package/lib/components/questionnaire/render-questionnaire/render-questionnaire.page.d.ts +75 -74
  252. package/lib/components/questionnaire/render-questionnaire/render-questionnaire.page.d.ts.map +1 -1
  253. package/lib/components/read-more/read-more.component.d.ts +14 -14
  254. package/lib/components/requalify-lift-previous-issues/requalify-lift-previous-issues.component.d.ts +67 -67
  255. package/lib/components/search-employer/search-employer.component.d.ts +37 -36
  256. package/lib/components/search-employer/search-employer.component.d.ts.map +1 -1
  257. package/lib/components/select/select.component.d.ts +55 -55
  258. package/lib/components/ssn/ssn.component.d.ts +11 -11
  259. package/lib/components/ssn-reverify/ssn-reverify.component.d.ts +22 -22
  260. package/lib/components/test/test.component.d.ts +8 -8
  261. package/lib/components/user-login/user-login.component.d.ts +48 -48
  262. package/lib/components/weekly-cert-employer/weekly-cert-employer.component.d.ts +59 -59
  263. package/lib/components/weekly-cert-employer-grid/weekly-cert-employer-grid.component.d.ts +45 -45
  264. package/lib/directives/auto-focus/auto-focus.directive.d.ts +12 -12
  265. package/lib/directives/caps-lock.directive.d.ts +11 -11
  266. package/lib/directives/required-roles/required-roles.directive.d.ts +14 -14
  267. package/lib/enums/EmailStatusEnum.d.ts +7 -7
  268. package/lib/guards/auth.guard.d.ts +28 -28
  269. package/lib/guards/auth.guard.d.ts.map +1 -1
  270. package/lib/guards/no-login/no-login.guard.d.ts +11 -11
  271. package/lib/guards/no-login/no-login.guard.d.ts.map +1 -1
  272. package/lib/interceptors/error-interceptor/http-error-interceptor.d.ts +22 -22
  273. package/lib/interceptors/header-interceptor/http-header.interceptor.d.ts +21 -21
  274. package/lib/interceptors/header-interceptor/http-header.interceptor.d.ts.map +1 -1
  275. package/lib/models/AddressComponentModel.d.ts +12 -12
  276. package/lib/models/BankDetailsComponentModel.d.ts +11 -11
  277. package/lib/models/BankDetailsModel.d.ts +4 -4
  278. package/lib/models/CinRequalificationCriteriaModel.d.ts +10 -10
  279. package/lib/models/EmployerDetailSearchResult.d.ts +47 -47
  280. package/lib/models/ErrorModel.d.ts +6 -6
  281. package/lib/models/FileModel.d.ts +4 -4
  282. package/lib/models/LibConstants.d.ts +112 -112
  283. package/lib/models/NewsAndAnnouncementModel.d.ts +5 -5
  284. package/lib/models/NotificationModel.d.ts +10 -10
  285. package/lib/models/OtpAuthModel.d.ts +6 -6
  286. package/lib/models/PaymentComponentModel.d.ts +7 -7
  287. package/lib/models/RequalifyLiftPageModel.d.ts +11 -11
  288. package/lib/models/SsaVerificationModel.d.ts +8 -8
  289. package/lib/models/TrendModel.d.ts +13 -13
  290. package/lib/models/UserDetailsModel.d.ts +9 -9
  291. package/lib/models/UserModel.d.ts +46 -46
  292. package/lib/models/case/CaseAttachmentModel.d.ts +5 -5
  293. package/lib/models/claimant/ClaimantModel.d.ts +22 -22
  294. package/lib/models/claimant/JobResultsData.d.ts +7 -7
  295. package/lib/models/claimant/MatchingJobs.d.ts +12 -12
  296. package/lib/models/claimant/ResetPasswordModel.d.ts +8 -8
  297. package/lib/models/cmp/CaseCoreModel.d.ts +20 -20
  298. package/lib/models/cmp/ComplaintCategoryModel.d.ts +8 -8
  299. package/lib/models/cmp/ComplaintCategoryOutputModel.d.ts +5 -5
  300. package/lib/models/cmp/ContactUsModel.d.ts +22 -22
  301. package/lib/models/cmp/EmailTemplateModel.d.ts +6 -6
  302. package/lib/models/cmp/contactUsInqueryModel.d.ts +46 -46
  303. package/lib/models/cmp/messageRourceModel.d.ts +5 -5
  304. package/lib/models/dashboard-model.d.ts +43 -43
  305. package/lib/models/dependent.model.d.ts +11 -18
  306. package/lib/models/dependent.model.d.ts.map +1 -1
  307. package/lib/models/questionnaire/ClaimAppEmpRequestModel.d.ts +8 -8
  308. package/lib/models/questionnaire/ClaimAppEmpResponseModel.d.ts +16 -16
  309. package/lib/models/questionnaire/ClaimAppEmployerDetailsModel.d.ts +151 -151
  310. package/lib/models/questionnaire/ClaimOnlyEmployerDataModel.d.ts +16 -16
  311. package/lib/models/questionnaire/ComboModel.d.ts +85 -85
  312. package/lib/models/questionnaire/ElementsModel.d.ts +68 -68
  313. package/lib/models/questionnaire/EmployerDetailSearchResult.d.ts +17 -17
  314. package/lib/models/questionnaire/EmployerWagesModel.d.ts +4 -4
  315. package/lib/models/questionnaire/FBConfigModel.d.ts +11 -11
  316. package/lib/models/questionnaire/KeyValueModel.d.ts +10 -10
  317. package/lib/models/questionnaire/LegalDiscaimarModel.d.ts +10 -10
  318. package/lib/models/questionnaire/LoaderModel.d.ts +4 -4
  319. package/lib/models/questionnaire/PollingStatusModel.d.ts +6 -6
  320. package/lib/models/questionnaire/QtrYearEmployerWageModel.d.ts +8 -8
  321. package/lib/models/questionnaire/QuestionnaireQueryModel.d.ts +23 -23
  322. package/lib/models/questionnaire/QuestionnaireReturnModel.d.ts +20 -20
  323. package/lib/models/questionnaire/QuestionnaireSaveModel.d.ts +24 -24
  324. package/lib/models/questionnaire/RequalifyLiftIssuesModel.d.ts +13 -13
  325. package/lib/models/questionnaire/ServiceActionResponseModel.d.ts +6 -6
  326. package/lib/models/questionnaire/StatusModel.d.ts +15 -15
  327. package/lib/models/questionnaire/SuccessPageElement.d.ts +8 -8
  328. package/lib/models/questionnaire/UI512AResponseModel.d.ts +12 -12
  329. package/lib/models/questionnaire/ValidationModel.d.ts +17 -17
  330. package/lib/ngx-reusa-app-lib.component.d.ts +8 -8
  331. package/lib/ngx-reusa-app-lib.module.d.ts +148 -145
  332. package/lib/ngx-reusa-app-lib.module.d.ts.map +1 -1
  333. package/lib/ngx-reusa-app-lib.service.d.ts +6 -6
  334. package/lib/pages/BasePage.d.ts +26 -26
  335. package/lib/pages/common/accessibility-policy/accessibility-policy.page.d.ts +11 -11
  336. package/lib/pages/common/change-password/change-password.page.d.ts +40 -40
  337. package/lib/pages/common/landing/landing.component.d.ts +24 -24
  338. package/lib/pages/common/landing2/landing2.component.d.ts +30 -30
  339. package/lib/pages/common/login/login.component.d.ts +64 -64
  340. package/lib/pages/common/not-found/not-found.page.d.ts +8 -8
  341. package/lib/pages/common/privacy-disclaimer/privacy-disclaimer.page.d.ts +11 -11
  342. package/lib/pages/common/security-policy/security-policy.page.d.ts +11 -11
  343. package/lib/pages/common/unauthorized/unauthorized.page.d.ts +8 -8
  344. package/lib/pages/popovers/language/language.page.d.ts +16 -16
  345. package/lib/pages/popovers/my-notifications/my-notifications.page.d.ts +21 -21
  346. package/lib/pages/popovers/my-profile/my-profile.page.d.ts +20 -20
  347. package/lib/pages/popovers/user-search/user-search.component.d.ts +31 -31
  348. package/lib/pipes/filter.pipe.d.ts +7 -7
  349. package/lib/pipes/mask/mask.email.pipe.d.ts +10 -10
  350. package/lib/pipes/proper-case/proper-case.pipe.d.ts +8 -8
  351. package/lib/pipes/translate/dynamic-translate.pipe.d.ts +10 -10
  352. package/lib/pipes/trust-html/trust-html.pipe.d.ts +10 -10
  353. package/lib/services/base-service.d.ts +92 -92
  354. package/lib/services/captcha/captcha.service.d.ts +15 -15
  355. package/lib/services/case-service/case.service.d.ts +19 -19
  356. package/lib/services/chatbot/chatbot.service.d.ts +60 -60
  357. package/lib/services/chatbot/script.const.d.ts +15 -15
  358. package/lib/services/claimant/claimant.service.d.ts +17 -17
  359. package/lib/services/claimant-context/claimant-context.service.d.ts +18 -18
  360. package/lib/services/claimant-context/claimant-context.service.d.ts.map +1 -1
  361. package/lib/services/claimant-service/claimant.service.d.ts +19 -19
  362. package/lib/services/claims/claims.service.d.ts +39 -39
  363. package/lib/services/cmp-service/cmp.service.d.ts +33 -33
  364. package/lib/services/dms-service/dms.service.d.ts +23 -23
  365. package/lib/services/fpjs/fingerprint.service.d.ts +18 -18
  366. package/lib/services/google-analytics/google-analytics.service.d.ts +8 -8
  367. package/lib/services/help/help.service.d.ts +25 -25
  368. package/lib/services/help/help.service.d.ts.map +1 -1
  369. package/lib/services/idle/idle.service.d.ts +43 -43
  370. package/lib/services/logger/logger.service.d.ts +31 -31
  371. package/lib/services/logger/logger.service.d.ts.map +1 -1
  372. package/lib/services/login/login.service.d.ts +75 -75
  373. package/lib/services/login/login.service.d.ts.map +1 -1
  374. package/lib/services/maintenance/maintenance.service.d.ts +15 -15
  375. package/lib/services/notification/notification.service.d.ts +38 -38
  376. package/lib/services/questionnaire/questionnaire.service.d.ts +35 -35
  377. package/lib/services/questionnaire/validation.service.d.ts +81 -81
  378. package/lib/services/security-service/security.service.d.ts +14 -14
  379. package/lib/services/tour/tour.service.d.ts +24 -24
  380. package/lib/services/util/util.service.d.ts +190 -190
  381. package/lib/validations/AppRegex.d.ts +43 -43
  382. package/lib/validations/AppValidators.d.ts +53 -53
  383. package/package.json +6 -11
  384. package/public-api.d.ts +121 -121
  385. package/esm2020/lib/components/add-employer/add-employer.component.mjs +0 -3099
  386. package/esm2020/lib/components/add-participant/add-participant.component.mjs +0 -396
  387. package/esm2020/lib/components/add-payment/add-payment.component.mjs +0 -186
  388. package/esm2020/lib/components/address/address.component.mjs +0 -480
  389. package/esm2020/lib/components/bank-details/bank-details.component.mjs +0 -275
  390. package/esm2020/lib/components/captcha/captcha.component.mjs +0 -180
  391. package/esm2020/lib/components/card/card.component.mjs +0 -54
  392. package/esm2020/lib/components/contact-us/contact-us.component.mjs +0 -1004
  393. package/esm2020/lib/components/content/content.component.mjs +0 -60
  394. package/esm2020/lib/components/correspondence-download/correspondence-download.component.mjs +0 -82
  395. package/esm2020/lib/components/dashboard-card/dashboard-card.component.mjs +0 -219
  396. package/esm2020/lib/components/dependent-grid/dependent-grid.component.mjs +0 -297
  397. package/esm2020/lib/components/disclosure/disclosure.component.mjs +0 -59
  398. package/esm2020/lib/components/dropdown/dropdown.component.mjs +0 -1552
  399. package/esm2020/lib/components/email-update/email-update.component.mjs +0 -287
  400. package/esm2020/lib/components/employer-grid/employer-grid.component.mjs +0 -800
  401. package/esm2020/lib/components/error/error.component.mjs +0 -85
  402. package/esm2020/lib/components/fav-menu/fav-menu.component.mjs +0 -163
  403. package/esm2020/lib/components/file-uploader/file-uploader.component.mjs +0 -317
  404. package/esm2020/lib/components/footer/footer.component.mjs +0 -337
  405. package/esm2020/lib/components/header/header.component.mjs +0 -566
  406. package/esm2020/lib/components/help/help.component.mjs +0 -48
  407. package/esm2020/lib/components/idle-detector/idle-detector.component.mjs +0 -64
  408. package/esm2020/lib/components/job-search-result-page/job-search-result-page.component.mjs +0 -209
  409. package/esm2020/lib/components/legal-disclaimar/legal-disclaimar.component.mjs +0 -192
  410. package/esm2020/lib/components/maintenance-detector/maintenance-detector.component.mjs +0 -42
  411. package/esm2020/lib/components/mask/mask.component.mjs +0 -48
  412. package/esm2020/lib/components/menu/menu.component.mjs +0 -430
  413. package/esm2020/lib/components/mfa/mfa.component.mjs +0 -451
  414. package/esm2020/lib/components/mfa-popup/mfa-popup.component.mjs +0 -49
  415. package/esm2020/lib/components/money-expect/money-expect.component.mjs +0 -89
  416. package/esm2020/lib/components/msg/msg.component.mjs +0 -48
  417. package/esm2020/lib/components/news/news.component.mjs +0 -89
  418. package/esm2020/lib/components/overlay-info/overlay-info.component.mjs +0 -235
  419. package/esm2020/lib/components/page/page.component.mjs +0 -138
  420. package/esm2020/lib/components/profile/profile.component.mjs +0 -182
  421. package/esm2020/lib/components/profile-redirect/profile-redirect.component.mjs +0 -62
  422. package/esm2020/lib/components/questionnaire/AppValidators.mjs +0 -523
  423. package/esm2020/lib/components/questionnaire/account-success/account-success.page.mjs +0 -259
  424. package/esm2020/lib/components/questionnaire/common-success/common-success.page.mjs +0 -483
  425. package/esm2020/lib/components/questionnaire/dynamic-form-panel.component.mjs +0 -1137
  426. package/esm2020/lib/components/questionnaire/dynamic-form-question.component.mjs +0 -1948
  427. package/esm2020/lib/components/questionnaire/dynamic-form.component.mjs +0 -1257
  428. package/esm2020/lib/components/questionnaire/form-builder/form-builder.page.mjs +0 -240
  429. package/esm2020/lib/components/questionnaire/multi-questionnaire/multi-questionnaire.component.mjs +0 -259
  430. package/esm2020/lib/components/questionnaire/render-questionnaire/render-questionnaire.page.mjs +0 -260
  431. package/esm2020/lib/components/requalify-lift-previous-issues/requalify-lift-previous-issues.component.mjs +0 -703
  432. package/esm2020/lib/components/search-employer/search-employer.component.mjs +0 -142
  433. package/esm2020/lib/components/select/select.component.mjs +0 -153
  434. package/esm2020/lib/components/ssn/ssn.component.mjs +0 -43
  435. package/esm2020/lib/components/ssn-reverify/ssn-reverify.component.mjs +0 -150
  436. package/esm2020/lib/components/test/test.component.mjs +0 -18
  437. package/esm2020/lib/components/user-login/user-login.component.mjs +0 -401
  438. package/esm2020/lib/components/weekly-cert-employer/weekly-cert-employer.component.mjs +0 -445
  439. package/esm2020/lib/components/weekly-cert-employer-grid/weekly-cert-employer-grid.component.mjs +0 -308
  440. package/esm2020/lib/guards/no-login/no-login.guard.mjs +0 -21
  441. package/esm2020/lib/models/RequalifyLiftPageModel.mjs +0 -11
  442. package/esm2020/lib/models/cmp/CaseCoreModel.mjs +0 -3
  443. package/esm2020/lib/models/cmp/ContactUsModel.mjs +0 -3
  444. package/esm2020/lib/models/cmp/contactUsInqueryModel.mjs +0 -7
  445. package/esm2020/lib/models/dashboard-model.mjs +0 -3
  446. package/esm2020/lib/models/dependent.model.mjs +0 -8
  447. package/esm2020/lib/models/questionnaire/ComboModel.mjs +0 -337
  448. package/esm2020/lib/models/questionnaire/RequalifyLiftIssuesModel.mjs +0 -3
  449. package/esm2020/lib/models/questionnaire/StatusModel.mjs +0 -6
  450. package/esm2020/lib/models/questionnaire/UI512AResponseModel.mjs +0 -3
  451. package/esm2020/lib/ngx-reusa-app-lib.component.mjs +0 -22
  452. package/esm2020/lib/ngx-reusa-app-lib.module.mjs +0 -390
  453. package/esm2020/lib/pages/common/accessibility-policy/accessibility-policy.page.mjs +0 -80
  454. package/esm2020/lib/pages/common/change-password/change-password.page.mjs +0 -477
  455. package/esm2020/lib/pages/common/landing/landing.component.mjs +0 -207
  456. package/esm2020/lib/pages/common/landing2/landing2.component.mjs +0 -244
  457. package/esm2020/lib/pages/common/login/login.component.mjs +0 -542
  458. package/esm2020/lib/pages/common/not-found/not-found.page.mjs +0 -23
  459. package/esm2020/lib/pages/common/privacy-disclaimer/privacy-disclaimer.page.mjs +0 -305
  460. package/esm2020/lib/pages/common/security-policy/security-policy.page.mjs +0 -60
  461. package/esm2020/lib/pages/common/unauthorized/unauthorized.page.mjs +0 -23
  462. package/esm2020/lib/pages/popovers/language/language.page.mjs +0 -60
  463. package/esm2020/lib/pages/popovers/my-notifications/my-notifications.page.mjs +0 -205
  464. package/esm2020/lib/pages/popovers/my-profile/my-profile.page.mjs +0 -129
  465. package/esm2020/lib/pages/popovers/user-search/user-search.component.mjs +0 -253
  466. package/esm2020/lib/services/chatbot/script.const.mjs +0 -42
  467. package/esm2020/lib/services/claimant-context/claimant-context.service.mjs +0 -47
  468. package/esm2020/lib/services/login/login.service.mjs +0 -330
  469. package/esm2020/lib/validations/AppRegex.mjs +0 -45
  470. package/fesm2015/reusa-ngx-reusa-app-lib.mjs +0 -30728
  471. package/fesm2015/reusa-ngx-reusa-app-lib.mjs.map +0 -1
  472. package/fesm2020/reusa-ngx-reusa-app-lib.mjs.map +0 -1
@@ -1,257 +1,257 @@
1
- import { Injectable } from '@angular/core';
2
- import { BehaviorSubject } from 'rxjs';
3
- import { LibConstants } from '../../models/LibConstants';
4
- import { ScriptConstant } from './script.const';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "../logger/logger.service";
7
- import * as i2 from "../login/login.service";
8
- import * as i3 from "../util/util.service";
9
- export class ChatbotService {
10
- constructor(rendererFactory, logger, ls, util) {
11
- this.logger = logger;
12
- this.ls = ls;
13
- this.util = util;
14
- this.map = new Map();
15
- this.msCustomData = {
16
- connectingMessage: "Welcome to ReEmployMS. I am your virtual assistant to help you with MDES related queries.",
17
- hoverMessage: "Ask chat bot",
18
- botState: "MS",
19
- showCollectUserDetailForm: true,
20
- showDisclaimerPopUp: true,
21
- showChatBubbleAtClosed: false,
22
- botAvatarImageName: "AvatarIcon.png",
23
- botIconImageName: "AvatarIcon.png",
24
- formBannerPath: "",
25
- rootFilePath: "UI/",
26
- supportedLanguages: ["en"],
27
- initialLanguage: "en",
28
- // starterTask: {en:"Forgot Password", es:"Forgot Password"},
29
- disclaimerPopup: {
30
- header: "Important message",
31
- message: `MDES' virtual assistant will ask for specific identifying information, such as Social Security Number and Date of Birth, that is needed to answer your question(s).</br></br> MDES follows strict federal security guidelines to protect your sensitive information.</br></br>To further protect your information you should close the chat window and browser when you are finished.</p>`
32
- },
33
- headerConfig: {
34
- showLanguageToggle: false,
35
- showMinimizeButton: false,
36
- showExpandButton: false,
37
- showReloadButton: false,
38
- }
39
- };
40
- this.meCustomData = {
41
- connectingMessage: "Welcome to ReEmployME. I am your virtual assistant to help you with ME related queries.",
42
- hoverMessage: "Ask Blue",
43
- botState: "ME",
44
- showCollectUserDetailForm: false,
45
- showDisclaimerPopUp: true,
46
- showChatBubbleAtClosed: false,
47
- botIconImageName: "BlueIcon.svg",
48
- botAvatarImageName: "BlueIcon.svg",
49
- formBannerPath: "",
50
- rootFilePath: "UI/",
51
- supportedLanguages: ["en"],
52
- initialLanguage: "en",
53
- disclaimerPopup: {
54
- header: "Important message",
55
- message: `MEDOL's virtual assistant may ask you specific identifying information, such as Social Security Number and Date of Birth, that is needed to answer your question(s). ME DOL follows strict federal security guidelines to protect your sensitive information. To further protect your information you should close the chat window and browser when you are finished.`
56
- },
57
- headerConfig: {
58
- showLanguageToggle: false,
59
- showMinimizeButton: true,
60
- showExpandButton: false,
61
- showReloadButton: true,
62
- }
63
- };
64
- this.ctCustomData = {
65
- connectingMessage: "Welcome to ReEmployCT. I am your virtual assistant to help you with ME related queries.",
66
- hoverMessage: "Ask Blue",
67
- botState: "CT",
68
- showCollectUserDetailForm: true,
69
- showDisclaimerPopUp: true,
70
- showChatBubbleAtClosed: false,
71
- botIconImageName: "chatboticon.png",
72
- botAvatarImageName: "chatboticon.png",
73
- formBannerPath: "",
74
- rootFilePath: "UI/",
75
- supportedLanguages: ["en", "es"],
76
- initialLanguage: "en",
77
- disclaimerPopup: {
78
- header: "Important message",
79
- message: `The CTDOL virtual assistant will need to ask for specific identifying information that is needed to answer your question(s) such as date of birth or Social Security number. The agency follows strict federal security guidelines to protect your sensitive information. To further protect your information, if you are on a public computer, please log out and close your browser when you are finished.`
80
- },
81
- headerConfig: {
82
- showLanguageToggle: true,
83
- showMinimizeButton: true,
84
- showExpandButton: false,
85
- showReloadButton: true,
86
- }
87
- };
88
- this.botOptions = {};
89
- this.koreBot = {};
90
- this.initChatbot = new BehaviorSubject(false);
91
- this.showChatbot = (LibConstants.enableChatbot == 'true');
92
- this.renderer = rendererFactory.createRenderer(null, null);
93
- this.logger.info('ChatbotService initializzed successfully.');
94
- this.map.set("ms", this.msCustomData);
95
- this.map.set("me", this.meCustomData);
96
- this.map.set("ct", this.ctCustomData);
97
- this.getChatbotBs().subscribe(val => {
98
- if (val) {
99
- this.logger.info('Initializing Chatbot.');
100
- this.initializeChatbot();
101
- }
102
- });
103
- }
104
- getChatbotBs() {
105
- return this.initChatbot;
106
- }
107
- initialize() {
108
- this.initChatbot.next(true);
109
- }
110
- loadScripAndStyle() {
111
- if (!LibConstants.production && this.showChatbot) { //set this property to true if you want to test this in local env.
112
- this.logger.info('Not Loading Chatbot as current environment is not production. Set "production=true" and "showChatbot=true" if you want to test chatbot in local env.');
113
- return;
114
- ;
115
- }
116
- else {
117
- this.logger.info('Loading chatbot ...');
118
- }
119
- ScriptConstant.importUrls.forEach(scriptElement => {
120
- // other than js and stylesheet are ignored
121
- if (scriptElement.type === ScriptConstant.jsProperty) {
122
- const jsScriptNode = document.createElement('script');
123
- //// jsScriptNode.src = environment.koreAiWebSdkUrl + scriptElement.url;
124
- jsScriptNode.src = LibConstants.koreAiWebSdkUrl + scriptElement.url;
125
- jsScriptNode.type = 'text/javascript';
126
- if (scriptElement.async == null) {
127
- this.logger.info(jsScriptNode.src + " will be loaded as async because of null async value");
128
- jsScriptNode.async = true;
129
- }
130
- else if (scriptElement.async == true) {
131
- this.logger.info(scriptElement.url + " will be loaded as async because of null async true");
132
- jsScriptNode.async = true;
133
- }
134
- else {
135
- this.logger.info(scriptElement.url + " will be loaded as async=false");
136
- jsScriptNode.async = false;
137
- }
138
- this.renderer.appendChild(document.getElementsByTagName('head')[0], jsScriptNode);
139
- document.getElementsByTagName('head')[0].appendChild(jsScriptNode);
140
- }
141
- else if (scriptElement.type === ScriptConstant.cssProperty) {
142
- const styleNode = document.createElement('link');
143
- styleNode.rel = 'stylesheet';
144
- styleNode.href = LibConstants.koreAiWebSdkUrl + scriptElement.url;
145
- this.renderer.appendChild(document.getElementsByTagName('head')[0], styleNode);
146
- }
147
- else if (scriptElement.type === ScriptConstant.cssPropertyAbsolute) {
148
- const styleNode = document.createElement('link');
149
- styleNode.rel = 'stylesheet';
150
- styleNode.href = scriptElement.url;
151
- this.renderer.appendChild(document.getElementsByTagName('head')[0], styleNode);
152
- }
153
- else {
154
- this.logger.error('url ' + scriptElement.url + ' is not going to be loaded because of invalid type ' + scriptElement.type);
155
- }
156
- }); // for each
157
- }
158
- initializeChatbot() {
159
- this.openbot();
160
- }
161
- /***
162
- *
163
- * @description Initialize the chatbot with logged-in user. If user is not logged-in then bot session will be created using unique timestamp.
164
- */
165
- openbot() {
166
- let userId = null;
167
- if (this.ls.getUser()) {
168
- userId = this.ls.getUser().username + '_' + this.ls.getUser().userType;
169
- this.botOptions.accessToken = this.ls.getUser().access_token;
170
- }
171
- else {
172
- userId = Math.floor((Math.random() * 10000000) + 1) + "_" + new Date().getMilliseconds() + "@mdes.ms.gov";
173
- }
174
- //***CODE_START
175
- this.botOptions.logLevel = 'debug';
176
- this.botOptions.koreAPIUrl = LibConstants.koreAiChatbotServer;
177
- //botOptions.koreSpeechAPIUrl = "https://speech.kore.ai/";
178
- //botOptions.bearer = "bearer xyz-------------------";
179
- //botOptions.ttsSocketUrl = 'wss://speech.kore.ai/tts/ws';
180
- this.botOptions.recorderWorkerPath = './libs/recorderWorker.js';
181
- this.botOptions.assertionFn = (options, callback) => this.assertion(options, callback);
182
- //botOptions.koreAnonymousFn = koreAnonymousFn;
183
- this.botOptions.JWTUrl = LibConstants.koreAiJwtService;
184
- this.botOptions.userIdentity = userId; // Provide users email id here
185
- this.botOptions.botInfo = {
186
- name: LibConstants.koreAiBotName,
187
- "_id": LibConstants.koreAiBotId,
188
- customData: this.map.get(this.util.getStateLowercase()) ? this.map.get(this.util.getStateLowercase()) : this.map.get('ms'),
189
- // customData: { connectingMessage: "Welcome to ReEmployME. I am your virtual assistant to help you with ME related queries.", hoverMessage: "Ask Blue", botState: "ME", showCollectUserDetailForm: false, showDisclaimerPopUp: true, botIconImageName: "chatboticon.png", botAvatarImageName: "chatboticon.png", rootFilePath: "UI/", supportedLanguages: ["en", "es"], initialLanguage: "en", disclaimerPopup: { header: "Important Message", message: `The virtual assistant will need to ask for specific identifying information that is needed to answer you question(s) such as date of birth or Social Security number. The agency follows strict federal security guidelines to protect your sensitive information. To further protect your information, if you are on a public computer, please log out and close your browser when you are finished.`, }, headerConfig: { showLanguageToggle: true, showMinimizeButton: true, showExpandbutton: false, showReloadButton: true, } }
190
- }; // bot name is case sensitive
191
- this.botOptions.clientId = LibConstants.koreAiClientId;
192
- //this.botOptions.clientSecret = LibConstants.koreAiClientSecret;
193
- //this.botOptions.reemployUsBearerToken= "";
194
- // will need to pass token to koreAiChatBotServer when authentication needs to be validated for server side api call
195
- var chatConfig = {
196
- botOptions: this.botOptions,
197
- allowIframe: false,
198
- isSendButton: true,
199
- isTTSEnabled: false,
200
- isSpeechEnabled: false,
201
- allowGoogleSpeech: false,
202
- allowLocation: false,
203
- loadHistory: false,
204
- messageHistoryLimit: 10,
205
- autoEnableSpeechAndTTS: false,
206
- graphLib: "d3"
207
- };
208
- if (Object.keys(this.koreBot).length === 0) {
209
- this.koreBot = koreBotChat();
210
- this.koreBot.show(chatConfig);
211
- }
212
- else {
213
- this.koreBot.resumeChatWindow();
214
- }
215
- //***CODE_END
216
- }
217
- assertion(options, callback) {
218
- var jsonData = {
219
- "clientId": this.botOptions.clientId,
220
- "clientSecret": this.botOptions.clientSecret,
221
- "identity": options.userIdentity || this.botOptions.userIdentity,
222
- "aud": "",
223
- "isAnonymous": (this.ls.getUser() == null),
224
- "accessToken": this.botOptions.accessToken
225
- };
226
- $.ajax({
227
- url: this.botOptions.JWTUrl,
228
- type: 'post',
229
- data: jsonData,
230
- dataType: 'json',
231
- success: (data) => {
232
- options.assertion = data.jwt;
233
- options.handleError = this.koreBot.showError;
234
- options.chatHistory = this.koreBot.chatHistory;
235
- options.botDetails = this.koreBot.botDetails;
236
- callback(null, options);
237
- setTimeout(function () {
238
- if (this.koreBot && this.koreBot.initToken) {
239
- this.koreBot.initToken(options);
240
- }
241
- }, 2000);
242
- },
243
- error: (err) => {
244
- this.koreBot.showError(err.responseText);
245
- }
246
- });
247
- }
248
- }
249
- ChatbotServicefac = function ChatbotService_Factory(t) { return new (t || ChatbotService)(i0.ɵɵinject(i0.RendererFactory2), i0.ɵɵinject(i1.LoggerService), i0.ɵɵinject(i2.LoginService), i0.ɵɵinject(i3.UtilService)); };
250
- ChatbotService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: ChatbotService, factory: ChatbotService.ɵfac, providedIn: 'root' });
251
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ChatbotService, [{
252
- type: Injectable,
253
- args: [{
254
- providedIn: 'root'
255
- }]
256
- }], function () { return [{ type: i0.RendererFactory2 }, { type: i1.LoggerService }, { type: i2.LoginService }, { type: i3.UtilService }]; }, null); })();
257
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdGJvdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJldXNhLWFwcC1saWIvc3JjL2xpYi9zZXJ2aWNlcy9jaGF0Ym90L2NoYXRib3Quc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUErQixNQUFNLGVBQWUsQ0FBQztBQUN4RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUV6RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7O0FBcUNoRCxNQUFNLE9BQU8sY0FBYztJQW1GekIsWUFBWSxlQUFpQyxFQUFVLE1BQXFCLEVBQVUsRUFBZ0IsRUFBVSxJQUFpQjtRQUExRSxXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQVUsT0FBRSxHQUFGLEVBQUUsQ0FBYztRQUFVLFNBQUksR0FBSixJQUFJLENBQWE7UUFqRmpJLFFBQUcsR0FBNEIsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUV6QyxpQkFBWSxHQUFlO1lBQ3pCLGlCQUFpQixFQUFFLDJGQUEyRjtZQUM5RyxZQUFZLEVBQUUsY0FBYztZQUM1QixRQUFRLEVBQUUsSUFBSTtZQUNkLHlCQUF5QixFQUFFLElBQUk7WUFDL0IsbUJBQW1CLEVBQUUsSUFBSTtZQUN6QixzQkFBc0IsRUFBRSxLQUFLO1lBQzdCLGtCQUFrQixFQUFFLGdCQUFnQjtZQUNwQyxnQkFBZ0IsRUFBRSxnQkFBZ0I7WUFDbEMsY0FBYyxFQUFFLEVBQUU7WUFDbEIsWUFBWSxFQUFFLEtBQUs7WUFDbkIsa0JBQWtCLEVBQUUsQ0FBQyxJQUFJLENBQUM7WUFDMUIsZUFBZSxFQUFFLElBQUk7WUFDckIsNkRBQTZEO1lBQzdELGVBQWUsRUFBRTtnQkFDZixNQUFNLEVBQUUsbUJBQW1CO2dCQUMzQixP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QUksRUFBRSxFQUFFO2dCQUNoQixPQUFPLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUM7Z0JBQzdCLE9BQU8sQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUM7Z0JBQzdDLE9BQU8sQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUM7Z0JBQy9DLE9BQU8sQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUM7Z0JBQzdDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7Z0JBQ3hCLFVBQVUsQ0FBQztvQkFDVCxJQUFJLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUU7d0JBQzFDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDO3FCQUNqQztnQkFDSCxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDWCxDQUFDO1lBQ0QsS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQ2IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQzNDLENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDOzs0RUEzUFUsY0FBYztvRUFBZCxjQUFjLFdBQWQsY0FBYyxtQkFGYixNQUFNO3VGQUVQLGNBQWM7Y0FIMUIsVUFBVTtlQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgUmVuZGVyZXIyLCBSZW5kZXJlckZhY3RvcnkyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IExpYkNvbnN0YW50cyB9IGZyb20gJy4uLy4uL21vZGVscy9MaWJDb25zdGFudHMnO1xuaW1wb3J0IHsgTG9nZ2VyU2VydmljZSB9IGZyb20gJy4uL2xvZ2dlci9sb2dnZXIuc2VydmljZSc7XG5pbXBvcnQgeyBTY3JpcHRDb25zdGFudCB9IGZyb20gJy4vc2NyaXB0LmNvbnN0JztcbmltcG9ydCB7IExvZ2luU2VydmljZSB9IGZyb20gJy4uL2xvZ2luL2xvZ2luLnNlcnZpY2UnO1xuaW1wb3J0IHsgVXRpbFNlcnZpY2UgfSBmcm9tICcuLi91dGlsL3V0aWwuc2VydmljZSc7XG5cbmRlY2xhcmUgY29uc3Qga29yZUJvdENoYXQ6IGFueTtcbmRlY2xhcmUgY29uc3QgJDogYW55O1xuXG5pbnRlcmZhY2UgRGlzY2xhaW1lclBvcHVwIHtcbiAgaGVhZGVyOiBzdHJpbmc7XG4gIG1lc3NhZ2U6IHN0cmluZ1xufVxuaW50ZXJmYWNlIEhlYWRlckNvbmZpZyB7XG4gIHNob3dMYW5ndWFnZVRvZ2dsZTogYm9vbGVhbjtcbiAgc2hvd01pbmltaXplQnV0dG9uOiBib29sZWFuO1xuICBzaG93RXhwYW5kQnV0dG9uOiBib29sZWFuO1xuICBzaG93UmVsb2FkQnV0dG9uOiBib29sZWFuO1xufVxuaW50ZXJmYWNlIEN1c3RvbURhdGEge1xuICBjb25uZWN0aW5nTWVzc2FnZTogc3RyaW5nO1xuICBob3Zlck1lc3NhZ2U6IHN0cmluZztcbiAgYm90U3RhdGU6IHN0cmluZztcbiAgc2hvd0NvbGxlY3RVc2VyRGV0YWlsRm9ybTogYm9vbGVhbjtcbiAgc2hvd0Rpc2NsYWltZXJQb3BVcDogYm9vbGVhbjtcbiAgc2hvd0NoYXRCdWJibGVBdENsb3NlZDogYm9vbGVhbjtcbiAgYm90QXZhdGFySW1hZ2VOYW1lOiBzdHJpbmc7XG4gIGJvdEljb25JbWFnZU5hbWU6IHN0cmluZztcbiAgZm9ybUJhbm5lclBhdGg6IHN0cmluZyxcbiAgcm9vdEZpbGVQYXRoOiBzdHJpbmc7XG4gIHN1cHBvcnRlZExhbmd1YWdlczogc3RyaW5nW107XG4gIGluaXRpYWxMYW5ndWFnZTogc3RyaW5nO1xuICBkaXNjbGFpbWVyUG9wdXA6IERpc2NsYWltZXJQb3B1cDtcbiAgaGVhZGVyQ29uZmlnOiBIZWFkZXJDb25maWc7XG59XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIENoYXRib3RTZXJ2aWNlIHtcblxuICBtYXA6IE1hcDxzdHJpbmcsIEN1c3RvbURhdGE+ID0gbmV3IE1hcCgpO1xuXG4gIG1zQ3VzdG9tRGF0YTogQ3VzdG9tRGF0YSA9IHtcbiAgICBjb25uZWN0aW5nTWVzc2FnZTogXCJXZWxjb21lIHRvIFJlRW1wbG95TVMuIEkgYW0geW91ciB2aXJ0dWFsIGFzc2lzdGFudCB0byBoZWxwIHlvdSB3aXRoIE1ERVMgcmVsYXRlZCBxdWVyaWVzLlwiLFxuICAgIGhvdmVyTWVzc2FnZTogXCJBc2sgY2hhdCBib3RcIixcbiAgICBib3RTdGF0ZTogXCJNU1wiLFxuICAgIHNob3dDb2xsZWN0VXNlckRldGFpbEZvcm06IHRydWUsXG4gICAgc2hvd0Rpc2NsYWltZXJQb3BVcDogdHJ1ZSxcbiAgICBzaG93Q2hhdEJ1YmJsZUF0Q2xvc2VkOiBmYWxzZSxcbiAgICBib3RBdmF0YXJJbWFnZU5hbWU6IFwiQXZhdGFySWNvbi5wbmdcIixcbiAgICBib3RJY29uSW1hZ2VOYW1lOiBcIkF2YXRhckljb24ucG5nXCIsXG4gICAgZm9ybUJhbm5lclBhdGg6IFwiXCIsXG4gICAgcm9vdEZpbGVQYXRoOiBcIlVJL1wiLFxuICAgIHN1cHBvcnRlZExhbmd1YWdlczogW1wiZW5cIl0sXG4gICAgaW5pdGlhbExhbmd1YWdlOiBcImVuXCIsXG4gICAgLy8gc3RhcnRlclRhc2s6IHtlbjpcIkZvcmdvdCBQYXNzd29yZFwiLCBlczpcIkZvcmdvdCBQYXNzd29yZFwifSxcbiAgICBkaXNjbGFpbWVyUG9wdXA6IHtcbiAgICAgIGhlYWRlcjogXCJJbXBvcnRhbnQgbWVzc2FnZVwiLFxuICAgICAgbWVzc2FnZTogYE1ERVMnIHZpcnR1YWwgYXNzaXN0YW50IHdpbGwgYXNrIGZvciBzcGVjaWZpYyBpZGVudGlmeWluZyBpbmZvcm1hdGlvbiwgc3VjaCBhcyBTb2NpYWwgU2VjdXJpdHkgTnVtYmVyIGFuZCBEYXRlIG9mIEJpcnRoLCB0aGF0IGlzIG5lZWRlZCB0byBhbnN3ZXIgeW91ciBxdWVzdGlvbihzKS48L2JyPjwvYnI+IE1ERVMgZm9sbG93cyBzdHJpY3QgZmVkZXJhbCBzZWN1cml0eSBndWlkZWxpbmVzIHRvIHByb3RlY3QgeW91ciBzZW5zaXRpdmUgaW5mb3JtYXRpb24uPC9icj48L2JyPlRvIGZ1cnRoZXIgcHJvdGVjdCB5b3VyIGluZm9ybWF0aW9uIHlvdSBzaG91bGQgY2xvc2UgdGhlIGNoYXQgd2luZG93IGFuZCBicm93c2VyIHdoZW4geW91IGFyZSBmaW5pc2hlZC48L3A+YFxuICAgIH0sXG4gICAgaGVhZGVyQ29uZmlnOiB7XG4gICAgICBzaG93TGFuZ3VhZ2VUb2dnbGU6IGZhbHNlLFxuICAgICAgc2hvd01pbmltaXplQnV0dG9uOiBmYWxzZSxcbiAgICAgIHNob3dFeHBhbmRCdXR0b246IGZhbHNlLFxuICAgICAgc2hvd1JlbG9hZEJ1dHRvbjogZmFsc2UsXG4gICAgfVxuICB9XG5cbiAgbWVDdXN0b21EYXRhOiBDdXN0b21EYXRhID0ge1xuICAgIGNvbm5lY3RpbmdNZXNzYWdlOiBcIldlbGNvbWUgdG8gUmVFbXBsb3lNRS4gSSBhbSB5b3VyIHZpcnR1YWwgYXNzaXN0YW50IHRvIGhlbHAgeW91IHdpdGggTUUgcmVsYXRlZCBxdWVyaWVzLlwiLFxuICAgIGhvdmVyTWVzc2FnZTogXCJBc2sgQmx1ZVwiLFxuICAgIGJvdFN0YXRlOiBcIk1FXCIsXG4gICAgc2hvd0NvbGxlY3RVc2VyRGV0YWlsRm9ybTogZmFsc2UsXG4gICAgc2hvd0Rpc2NsYWltZXJQb3BVcDogdHJ1ZSxcbiAgICBzaG93Q2hhdEJ1YmJsZUF0Q2xvc2VkOiBmYWxzZSxcbiAgICBib3RJY29uSW1hZ2VOYW1lOiBcIkJsdWVJY29uLnN2Z1wiLFxuICAgIGJvdEF2YXRhckltYWdlTmFtZTogXCJCbHVlSWNvbi5zdmdcIixcbiAgICBmb3JtQmFubmVyUGF0aDogXCJcIixcbiAgICByb290RmlsZVBhdGg6IFwiVUkvXCIsXG4gICAgc3VwcG9ydGVkTGFuZ3VhZ2VzOiBbXCJlblwiXSxcbiAgICBpbml0aWFsTGFuZ3VhZ2U6IFwiZW5cIixcbiAgICBkaXNjbGFpbWVyUG9wdXA6IHtcbiAgICAgIGhlYWRlcjogXCJJbXBvcnRhbnQgbWVzc2FnZVwiLFxuICAgICAgbWVzc2FnZTogYE1FRE9MJ3MgdmlydHVhbCBhc3Npc3RhbnQgbWF5IGFzayB5b3Ugc3BlY2lmaWMgaWRlbnRpZnlpbmcgaW5mb3JtYXRpb24sIHN1Y2ggYXMgU29jaWFsIFNlY3VyaXR5IE51bWJlciBhbmQgRGF0ZSBvZiBCaXJ0aCwgdGhhdCBpcyBuZWVkZWQgdG8gYW5zd2VyIHlvdXIgcXVlc3Rpb24ocykuIE1FIERPTCBmb2xsb3dzIHN0cmljdCBmZWRlcmFsIHNlY3VyaXR5IGd1aWRlbGluZXMgdG8gcHJvdGVjdCB5b3VyIHNlbnNpdGl2ZSBpbmZvcm1hdGlvbi4gVG8gZnVydGhlciBwcm90ZWN0IHlvdXIgaW5mb3JtYXRpb24geW91IHNob3VsZCBjbG9zZSB0aGUgY2hhdCB3aW5kb3cgYW5kIGJyb3dzZXIgd2hlbiB5b3UgYXJlIGZpbmlzaGVkLmBcbiAgICB9LFxuICAgIGhlYWRlckNvbmZpZzoge1xuICAgICAgc2hvd0xhbmd1YWdlVG9nZ2xlOiBmYWxzZSxcbiAgICAgIHNob3dNaW5pbWl6ZUJ1dHRvbjogdHJ1ZSxcbiAgICAgIHNob3dFeHBhbmRCdXR0b246IGZhbHNlLFxuICAgICAgc2hvd1JlbG9hZEJ1dHRvbjogdHJ1ZSxcbiAgICB9XG4gIH1cbiAgY3RDdXN0b21EYXRhOiBDdXN0b21EYXRhID0ge1xuICAgIGNvbm5lY3RpbmdNZXNzYWdlOiBcIldlbGNvbWUgdG8gUmVFbXBsb3lDVC4gSSBhbSB5b3VyIHZpcnR1YWwgYXNzaXN0YW50IHRvIGhlbHAgeW91IHdpdGggTUUgcmVsYXRlZCBxdWVyaWVzLlwiLFxuICAgIGhvdmVyTWVzc2FnZTogXCJBc2sgQmx1ZVwiLFxuICAgIGJvdFN0YXRlOiBcIkNUXCIsXG4gICAgc2hvd0NvbGxlY3RVc2VyRGV0YWlsRm9ybTogdHJ1ZSxcbiAgICBzaG93RGlzY2xhaW1lclBvcFVwOiB0cnVlLFxuICAgIHNob3dDaGF0QnViYmxlQXRDbG9zZWQ6IGZhbHNlLFxuICAgIGJvdEljb25JbWFnZU5hbWU6IFwiY2hhdGJvdGljb24ucG5nXCIsXG4gICAgYm90QXZhdGFySW1hZ2VOYW1lOiBcImNoYXRib3RpY29uLnBuZ1wiLFxuICAgIGZvcm1CYW5uZXJQYXRoOiBcIlwiLFxuICAgIHJvb3RGaWxlUGF0aDogXCJVSS9cIixcbiAgICBzdXBwb3J0ZWRMYW5ndWFnZXM6IFtcImVuXCIsIFwiZXNcIl0sXG4gICAgaW5pdGlhbExhbmd1YWdlOiBcImVuXCIsXG4gICAgZGlzY2xhaW1lclBvcHVwOiB7XG4gICAgICBoZWFkZXI6IFwiSW1wb3J0YW50IG1lc3NhZ2VcIixcbiAgICAgIG1lc3NhZ2U6IGBUaGUgQ1RET0wgdmlydHVhbCBhc3Npc3RhbnQgd2lsbCBuZWVkIHRvIGFzayBmb3Igc3BlY2lmaWMgaWRlbnRpZnlpbmcgaW5mb3JtYXRpb24gdGhhdCBpcyBuZWVkZWQgdG8gYW5zd2VyIHlvdXIgcXVlc3Rpb24ocykgc3VjaCBhcyBkYXRlIG9mIGJpcnRoIG9yIFNvY2lhbCBTZWN1cml0eSBudW1iZXIuIFRoZSBhZ2VuY3kgZm9sbG93cyBzdHJpY3QgZmVkZXJhbCBzZWN1cml0eSBndWlkZWxpbmVzIHRvIHByb3RlY3QgeW91ciBzZW5zaXRpdmUgaW5mb3JtYXRpb24uIFRvIGZ1cnRoZXIgcHJvdGVjdCB5b3VyIGluZm9ybWF0aW9uLCBpZiB5b3UgYXJlIG9uIGEgcHVibGljIGNvbXB1dGVyLCBwbGVhc2UgbG9nIG91dCBhbmQgY2xvc2UgeW91ciBicm93c2VyIHdoZW4geW91IGFyZSBmaW5pc2hlZC5gXG4gICAgfSxcbiAgICBoZWFkZXJDb25maWc6IHtcbiAgICAgIHNob3dMYW5ndWFnZVRvZ2dsZTogdHJ1ZSxcbiAgICAgIHNob3dNaW5pbWl6ZUJ1dHRvbjogdHJ1ZSxcbiAgICAgIHNob3dFeHBhbmRCdXR0b246IGZhbHNlLFxuICAgICAgc2hvd1JlbG9hZEJ1dHRvbjogdHJ1ZSxcbiAgICB9XG4gIH1cbiAgcHVibGljIGJvdE9wdGlvbnM6IGFueSA9IHt9O1xuICBwdWJsaWMga29yZUJvdDogYW55ID0ge307XG4gIGluaXRDaGF0Ym90OiBCZWhhdmlvclN1YmplY3Q8Qm9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcbiAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyO1xuICBwdWJsaWMgc2hvd0NoYXRib3Q6IGJvb2xlYW4gPSAoTGliQ29uc3RhbnRzLmVuYWJsZUNoYXRib3QgPT0gJ3RydWUnKTtcbiAgY29uc3RydWN0b3IocmVuZGVyZXJGYWN0b3J5OiBSZW5kZXJlckZhY3RvcnkyLCBwcml2YXRlIGxvZ2dlcjogTG9nZ2VyU2VydmljZSwgcHJpdmF0ZSBsczogTG9naW5TZXJ2aWNlLCBwcml2YXRlIHV0aWw6IFV0aWxTZXJ2aWNlKSB7XG4gICAgdGhpcy5yZW5kZXJlciA9IHJlbmRlcmVyRmFjdG9yeS5jcmVhdGVSZW5kZXJlcihudWxsLCBudWxsKTtcbiAgICB0aGlzLmxvZ2dlci5pbmZvKCdDaGF0Ym90U2VydmljZSBpbml0aWFsaXp6ZWQgc3VjY2Vzc2Z1bGx5LicpO1xuXG4gICAgdGhpcy5tYXAuc2V0KFwibXNcIiwgdGhpcy5tc0N1c3RvbURhdGEpO1xuICAgIHRoaXMubWFwLnNldChcIm1lXCIsIHRoaXMubWVDdXN0b21EYXRhKTtcbiAgICB0aGlzLm1hcC5zZXQoXCJjdFwiLCB0aGlzLmN0Q3VzdG9tRGF0YSk7XG4gICAgdGhpcy5nZXRDaGF0Ym90QnMoKS5zdWJzY3JpYmUodmFsID0+IHtcbiAgICAgIGlmICh2YWwpIHtcbiAgICAgICAgdGhpcy5sb2dnZXIuaW5mbygnSW5pdGlhbGl6aW5nIENoYXRib3QuJyk7XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZUNoYXRib3QoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGdldENoYXRib3RCcygpIHtcbiAgICByZXR1cm4gdGhpcy5pbml0Q2hhdGJvdDtcbiAgfVxuXG4gIGluaXRpYWxpemUoKSB7XG4gICAgdGhpcy5pbml0Q2hhdGJvdC5uZXh0KHRydWUpO1xuICB9XG5cbiAgbG9hZFNjcmlwQW5kU3R5bGUoKSB7XG4gICAgaWYgKCFMaWJDb25zdGFudHMucHJvZHVjdGlvbiAmJiB0aGlzLnNob3dDaGF0Ym90KSB7IC8vc2V0IHRoaXMgcHJvcGVydHkgdG8gdHJ1ZSBpZiB5b3Ugd2FudCB0byB0ZXN0IHRoaXMgaW4gbG9jYWwgZW52LlxuICAgICAgdGhpcy5sb2dnZXIuaW5mbygnTm90IExvYWRpbmcgQ2hhdGJvdCBhcyBjdXJyZW50IGVudmlyb25tZW50IGlzIG5vdCBwcm9kdWN0aW9uLiBTZXQgXCJwcm9kdWN0aW9uPXRydWVcIiBhbmQgXCJzaG93Q2hhdGJvdD10cnVlXCIgaWYgeW91IHdhbnQgdG8gdGVzdCBjaGF0Ym90IGluIGxvY2FsIGVudi4nKTtcbiAgICAgIHJldHVybjs7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubG9nZ2VyLmluZm8oJ0xvYWRpbmcgY2hhdGJvdCAuLi4nKTtcbiAgICB9XG5cbiAgICBTY3JpcHRDb25zdGFudC5pbXBvcnRVcmxzLmZvckVhY2goc2NyaXB0RWxlbWVudCA9PiB7XG4gICAgICAvLyBvdGhlciB0aGFuIGpzIGFuZCBzdHlsZXNoZWV0IGFyZSBpZ25vcmVkXG4gICAgICBpZiAoc2NyaXB0RWxlbWVudC50eXBlID09PSBTY3JpcHRDb25zdGFudC5qc1Byb3BlcnR5KSB7XG4gICAgICAgIGNvbnN0IGpzU2NyaXB0Tm9kZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xuICAgICAgICAvLy8vIGpzU2NyaXB0Tm9kZS5zcmMgPSBlbnZpcm9ubWVudC5rb3JlQWlXZWJTZGtVcmwgKyBzY3JpcHRFbGVtZW50LnVybDtcbiAgICAgICAganNTY3JpcHROb2RlLnNyYyA9IExpYkNvbnN0YW50cy5rb3JlQWlXZWJTZGtVcmwgKyBzY3JpcHRFbGVtZW50LnVybDtcblxuICAgICAgICBqc1NjcmlwdE5vZGUudHlwZSA9ICd0ZXh0L2phdmFzY3JpcHQnO1xuXG4gICAgICAgIGlmIChzY3JpcHRFbGVtZW50LmFzeW5jID09IG51bGwpIHtcbiAgICAgICAgICB0aGlzLmxvZ2dlci5pbmZvKGpzU2NyaXB0Tm9kZS5zcmMgKyBcIiB3aWxsIGJlIGxvYWRlZCBhcyBhc3luYyBiZWNhdXNlIG9mIG51bGwgYXN5bmMgdmFsdWVcIik7XG4gICAgICAgICAganNTY3JpcHROb2RlLmFzeW5jID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIGlmIChzY3JpcHRFbGVtZW50LmFzeW5jID09IHRydWUpIHtcbiAgICAgICAgICB0aGlzLmxvZ2dlci5pbmZvKHNjcmlwdEVsZW1lbnQudXJsICsgXCIgd2lsbCBiZSBsb2FkZWQgYXMgYXN5bmMgYmVjYXVzZSBvZiBudWxsIGFzeW5jIHRydWVcIik7XG5cbiAgICAgICAgICBqc1NjcmlwdE5vZGUuYXN5bmMgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIHRoaXMubG9nZ2VyLmluZm8oc2NyaXB0RWxlbWVudC51cmwgKyBcIiB3aWxsIGJlIGxvYWRlZCBhcyBhc3luYz1mYWxzZVwiKTtcblxuICAgICAgICAgIGpzU2NyaXB0Tm9kZS5hc3luYyA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2hlYWQnKVswXSwganNTY3JpcHROb2RlKTtcbiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2hlYWQnKVswXS5hcHBlbmRDaGlsZChqc1NjcmlwdE5vZGUpO1xuICAgICAgfSBlbHNlIGlmIChzY3JpcHRFbGVtZW50LnR5cGUgPT09IFNjcmlwdENvbnN0YW50LmNzc1Byb3BlcnR5KSB7XG4gICAgICAgIGNvbnN0IHN0eWxlTm9kZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2xpbmsnKTtcbiAgICAgICAgc3R5bGVOb2RlLnJlbCA9ICdzdHlsZXNoZWV0JztcbiAgICAgICAgc3R5bGVOb2RlLmhyZWYgPSBMaWJDb25zdGFudHMua29yZUFpV2ViU2RrVXJsICsgc2NyaXB0RWxlbWVudC51cmw7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2hlYWQnKVswXSwgc3R5bGVOb2RlKTtcbiAgICAgIH0gZWxzZSBpZiAoc2NyaXB0RWxlbWVudC50eXBlID09PSBTY3JpcHRDb25zdGFudC5jc3NQcm9wZXJ0eUFic29sdXRlKSB7XG4gICAgICAgIGNvbnN0IHN0eWxlTm9kZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2xpbmsnKTtcbiAgICAgICAgc3R5bGVOb2RlLnJlbCA9ICdzdHlsZXNoZWV0JztcbiAgICAgICAgc3R5bGVOb2RlLmhyZWYgPSBzY3JpcHRFbGVtZW50LnVybDtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZChkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaGVhZCcpWzBdLCBzdHlsZU5vZGUpO1xuICAgICAgfVxuICAgICAgZWxzZSB7XG4gICAgICAgIHRoaXMubG9nZ2VyLmVycm9yKCd1cmwgJyArIHNjcmlwdEVsZW1lbnQudXJsICsgJyBpcyBub3QgZ29pbmcgdG8gYmUgbG9hZGVkIGJlY2F1c2Ugb2YgaW52YWxpZCB0eXBlICcgKyBzY3JpcHRFbGVtZW50LnR5cGUpO1xuICAgICAgfVxuICAgIH0pOyAvLyBmb3IgZWFjaFxuICB9XG5cblxuXG4gIHB1YmxpYyBpbml0aWFsaXplQ2hhdGJvdCgpIHtcbiAgICB0aGlzLm9wZW5ib3QoKTtcbiAgfVxuXG4gIC8qKipcbiAgICogXG4gICAqIEBkZXNjcmlwdGlvbiBJbml0aWFsaXplIHRoZSBjaGF0Ym90IHdpdGggbG9nZ2VkLWluIHVzZXIuIElmIHVzZXIgaXMgbm90IGxvZ2dlZC1pbiB0aGVuIGJvdCBzZXNzaW9uIHdpbGwgYmUgY3JlYXRlZCB1c2luZyB1bmlxdWUgdGltZXN0YW1wLlxuICAgKi9cbiAgb3BlbmJvdCgpIHtcbiAgICBsZXQgdXNlcklkID0gbnVsbDtcbiAgICBpZiAodGhpcy5scy5nZXRVc2VyKCkpIHtcbiAgICAgIHVzZXJJZCA9IHRoaXMubHMuZ2V0VXNlcigpLnVzZXJuYW1lICsgJ18nICsgdGhpcy5scy5nZXRVc2VyKCkudXNlclR5cGU7XG4gICAgICB0aGlzLmJvdE9wdGlvbnMuYWNjZXNzVG9rZW4gPSB0aGlzLmxzLmdldFVzZXIoKS5hY2Nlc3NfdG9rZW47XG4gICAgfSBlbHNlIHtcbiAgICAgIHVzZXJJZCA9IE1hdGguZmxvb3IoKE1hdGgucmFuZG9tKCkgKiAxMDAwMDAwMCkgKyAxKSArIFwiX1wiICsgbmV3IERhdGUoKS5nZXRNaWxsaXNlY29uZHMoKSArIFwiQG1kZXMubXMuZ292XCI7XG4gICAgfVxuICAgIC8vKioqQ09ERV9TVEFSVFxuICAgIHRoaXMuYm90T3B0aW9ucy5sb2dMZXZlbCA9ICdkZWJ1Zyc7XG4gICAgdGhpcy5ib3RPcHRpb25zLmtvcmVBUElVcmwgPSBMaWJDb25zdGFudHMua29yZUFpQ2hhdGJvdFNlcnZlcjtcbiAgICAvL2JvdE9wdGlvbnMua29yZVNwZWVjaEFQSVVybCA9IFwiaHR0cHM6Ly9zcGVlY2gua29yZS5haS9cIjtcbiAgICAvL2JvdE9wdGlvbnMuYmVhcmVyID0gXCJiZWFyZXIgeHl6LS0tLS0tLS0tLS0tLS0tLS0tLVwiO1xuICAgIC8vYm90T3B0aW9ucy50dHNTb2NrZXRVcmwgPSAnd3NzOi8vc3BlZWNoLmtvcmUuYWkvdHRzL3dzJztcbiAgICB0aGlzLmJvdE9wdGlvbnMucmVjb3JkZXJXb3JrZXJQYXRoID0gJy4vbGlicy9yZWNvcmRlcldvcmtlci5qcyc7XG4gICAgdGhpcy5ib3RPcHRpb25zLmFzc2VydGlvbkZuID0gKG9wdGlvbnMsIGNhbGxiYWNrKSA9PiB0aGlzLmFzc2VydGlvbihvcHRpb25zLCBjYWxsYmFjayk7XG4gICAgLy9ib3RPcHRpb25zLmtvcmVBbm9ueW1vdXNGbiA9IGtvcmVBbm9ueW1vdXNGbjtcblxuICAgIHRoaXMuYm90T3B0aW9ucy5KV1RVcmwgPSBMaWJDb25zdGFudHMua29yZUFpSnd0U2VydmljZTtcbiAgICBcbiAgICB0aGlzLmJvdE9wdGlvbnMudXNlcklkZW50aXR5ID0gdXNlcklkOy8vIFByb3ZpZGUgdXNlcnMgZW1haWwgaWQgaGVyZVxuICAgIHRoaXMuYm90T3B0aW9ucy5ib3RJbmZvID0ge1xuICAgICAgbmFtZTogTGliQ29uc3RhbnRzLmtvcmVBaUJvdE5hbWUsXG4gICAgICBcIl9pZFwiOiBMaWJDb25zdGFudHMua29yZUFpQm90SWQsXG4gICAgICBjdXN0b21EYXRhIDogdGhpcy5tYXAuZ2V0KHRoaXMudXRpbC5nZXRTdGF0ZUxvd2VyY2FzZSgpKSA/IHRoaXMubWFwLmdldCh0aGlzLnV0aWwuZ2V0U3RhdGVMb3dlcmNhc2UoKSkgOiB0aGlzLm1hcC5nZXQoJ21zJyksXG4gICAgICAvLyBjdXN0b21EYXRhOiB7IGNvbm5lY3RpbmdNZXNzYWdlOiBcIldlbGNvbWUgdG8gUmVFbXBsb3lNRS4gSSBhbSB5b3VyIHZpcnR1YWwgYXNzaXN0YW50IHRvIGhlbHAgeW91IHdpdGggTUUgcmVsYXRlZCBxdWVyaWVzLlwiLCBob3Zlck1lc3NhZ2U6IFwiQXNrIEJsdWVcIiwgYm90U3RhdGU6IFwiTUVcIiwgc2hvd0NvbGxlY3RVc2VyRGV0YWlsRm9ybTogZmFsc2UsIHNob3dEaXNjbGFpbWVyUG9wVXA6IHRydWUsIGJvdEljb25JbWFnZU5hbWU6IFwiY2hhdGJvdGljb24ucG5nXCIsIGJvdEF2YXRhckltYWdlTmFtZTogXCJjaGF0Ym90aWNvbi5wbmdcIiwgcm9vdEZpbGVQYXRoOiBcIlVJL1wiLCBzdXBwb3J0ZWRMYW5ndWFnZXM6IFtcImVuXCIsIFwiZXNcIl0sIGluaXRpYWxMYW5ndWFnZTogXCJlblwiLCBkaXNjbGFpbWVyUG9wdXA6IHsgaGVhZGVyOiBcIkltcG9ydGFudCBNZXNzYWdlXCIsIG1lc3NhZ2U6IGBUaGUgdmlydHVhbCBhc3Npc3RhbnQgd2lsbCBuZWVkIHRvIGFzayBmb3Igc3BlY2lmaWMgaWRlbnRpZnlpbmcgaW5mb3JtYXRpb24gdGhhdCBpcyBuZWVkZWQgdG8gYW5zd2VyIHlvdSBxdWVzdGlvbihzKSBzdWNoIGFzIGRhdGUgb2YgYmlydGggb3IgU29jaWFsIFNlY3VyaXR5IG51bWJlci4gVGhlIGFnZW5jeSBmb2xsb3dzIHN0cmljdCBmZWRlcmFsIHNlY3VyaXR5IGd1aWRlbGluZXMgdG8gcHJvdGVjdCB5b3VyIHNlbnNpdGl2ZSBpbmZvcm1hdGlvbi4gVG8gZnVydGhlciBwcm90ZWN0IHlvdXIgaW5mb3JtYXRpb24sIGlmIHlvdSBhcmUgb24gYSBwdWJsaWMgY29tcHV0ZXIsIHBsZWFzZSBsb2cgb3V0IGFuZCBjbG9zZSB5b3VyIGJyb3dzZXIgd2hlbiB5b3UgYXJlIGZpbmlzaGVkLmAsIH0sIGhlYWRlckNvbmZpZzogeyBzaG93TGFuZ3VhZ2VUb2dnbGU6IHRydWUsIHNob3dNaW5pbWl6ZUJ1dHRvbjogdHJ1ZSwgc2hvd0V4cGFuZGJ1dHRvbjogZmFsc2UsIHNob3dSZWxvYWRCdXR0b246IHRydWUsIH0gfVxuICAgIH07IC8vIGJvdCBuYW1lIGlzIGNhc2Ugc2Vuc2l0aXZlXG4gICAgdGhpcy5ib3RPcHRpb25zLmNsaWVudElkID0gTGliQ29uc3RhbnRzLmtvcmVBaUNsaWVudElkO1xuICAgIC8vdGhpcy5ib3RPcHRpb25zLmNsaWVudFNlY3JldCA9IExpYkNvbnN0YW50cy5rb3JlQWlDbGllbnRTZWNyZXQ7XG5cbiAgICAvL3RoaXMuYm90T3B0aW9ucy5yZWVtcGxveVVzQmVhcmVyVG9rZW49IFwiXCI7ICBcbiAgICAvLyB3aWxsIG5lZWQgdG8gcGFzcyB0b2tlbiB0byBrb3JlQWlDaGF0Qm90U2VydmVyIHdoZW4gYXV0aGVudGljYXRpb24gbmVlZHMgdG8gYmUgdmFsaWRhdGVkIGZvciBzZXJ2ZXIgc2lkZSBhcGkgY2FsbFxuXG4gICAgdmFyIGNoYXRDb25maWcgPSB7XG4gICAgICBib3RPcHRpb25zOiB0aGlzLmJvdE9wdGlvbnMsXG4gICAgICBhbGxvd0lmcmFtZTogZmFsc2UsXG4gICAgICBpc1NlbmRCdXR0b246IHRydWUsXG4gICAgICBpc1RUU0VuYWJsZWQ6IGZhbHNlLFxuICAgICAgaXNTcGVlY2hFbmFibGVkOiBmYWxzZSxcbiAgICAgIGFsbG93R29vZ2xlU3BlZWNoOiBmYWxzZSxcbiAgICAgIGFsbG93TG9jYXRpb246IGZhbHNlLFxuICAgICAgbG9hZEhpc3Rvcnk6IGZhbHNlLFxuICAgICAgbWVzc2FnZUhpc3RvcnlMaW1pdDogMTAsXG4gICAgICBhdXRvRW5hYmxlU3BlZWNoQW5kVFRTOiBmYWxzZSxcbiAgICAgIGdyYXBoTGliOiBcImQzXCJcbiAgICB9O1xuICAgIGlmIChPYmplY3Qua2V5cyh0aGlzLmtvcmVCb3QpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy5rb3JlQm90ID0ga29yZUJvdENoYXQoKTtcbiAgICAgIHRoaXMua29yZUJvdC5zaG93KGNoYXRDb25maWcpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmtvcmVCb3QucmVzdW1lQ2hhdFdpbmRvdygpXG4gICAgfVxuICAgIC8vKioqQ09ERV9FTkRcblxuICB9XG5cbiAgYXNzZXJ0aW9uKG9wdGlvbnMsIGNhbGxiYWNrKSB7XG4gICAgdmFyIGpzb25EYXRhID0ge1xuICAgICAgXCJjbGllbnRJZFwiOiB0aGlzLmJvdE9wdGlvbnMuY2xpZW50SWQsXG4gICAgICBcImNsaWVudFNlY3JldFwiOiB0aGlzLmJvdE9wdGlvbnMuY2xpZW50U2VjcmV0LFxuICAgICAgXCJpZGVudGl0eVwiOiBvcHRpb25zLnVzZXJJZGVudGl0eSB8fCB0aGlzLmJvdE9wdGlvbnMudXNlcklkZW50aXR5LFxuICAgICAgXCJhdWRcIjogXCJcIixcbiAgICAgIFwiaXNBbm9ueW1vdXNcIjogKHRoaXMubHMuZ2V0VXNlcigpID09IG51bGwpLFxuICAgICAgXCJhY2Nlc3NUb2tlblwiOiB0aGlzLmJvdE9wdGlvbnMuYWNjZXNzVG9rZW5cbiAgICB9O1xuICAgICQuYWpheCh7XG4gICAgICB1cmw6IHRoaXMuYm90T3B0aW9ucy5KV1RVcmwsXG4gICAgICB0eXBlOiAncG9zdCcsXG4gICAgICBkYXRhOiBqc29uRGF0YSxcbiAgICAgIGRhdGFUeXBlOiAnanNvbicsXG4gICAgICBzdWNjZXNzOiAoZGF0YSkgPT4ge1xuICAgICAgICBvcHRpb25zLmFzc2VydGlvbiA9IGRhdGEuand0O1xuICAgICAgICBvcHRpb25zLmhhbmRsZUVycm9yID0gdGhpcy5rb3JlQm90LnNob3dFcnJvcjtcbiAgICAgICAgb3B0aW9ucy5jaGF0SGlzdG9yeSA9IHRoaXMua29yZUJvdC5jaGF0SGlzdG9yeTtcbiAgICAgICAgb3B0aW9ucy5ib3REZXRhaWxzID0gdGhpcy5rb3JlQm90LmJvdERldGFpbHM7XG4gICAgICAgIGNhbGxiYWNrKG51bGwsIG9wdGlvbnMpO1xuICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICBpZiAodGhpcy5rb3JlQm90ICYmIHRoaXMua29yZUJvdC5pbml0VG9rZW4pIHtcbiAgICAgICAgICAgIHRoaXMua29yZUJvdC5pbml0VG9rZW4ob3B0aW9ucyk7XG4gICAgICAgICAgfVxuICAgICAgICB9LCAyMDAwKTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogKGVycikgPT4ge1xuICAgICAgICB0aGlzLmtvcmVCb3Quc2hvd0Vycm9yKGVyci5yZXNwb25zZVRleHQpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iXX0=
1
+ import { Injectable } from '@angular/core';
2
+ import { BehaviorSubject } from 'rxjs';
3
+ import { LibConstants } from '../../models/LibConstants';
4
+ import { ScriptConstant } from './script.const';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "../logger/logger.service";
7
+ import * as i2 from "../login/login.service";
8
+ import * as i3 from "../util/util.service";
9
+ export class ChatbotService {
10
+ constructor(rendererFactory, logger, ls, util) {
11
+ this.logger = logger;
12
+ this.ls = ls;
13
+ this.util = util;
14
+ this.map = new Map();
15
+ this.msCustomData = {
16
+ connectingMessage: "Welcome to ReEmployMS. I am your virtual assistant to help you with MDES related queries.",
17
+ hoverMessage: "Ask chat bot",
18
+ botState: "MS",
19
+ showCollectUserDetailForm: true,
20
+ showDisclaimerPopUp: true,
21
+ showChatBubbleAtClosed: false,
22
+ botAvatarImageName: "AvatarIcon.png",
23
+ botIconImageName: "AvatarIcon.png",
24
+ formBannerPath: "",
25
+ rootFilePath: "UI/",
26
+ supportedLanguages: ["en"],
27
+ initialLanguage: "en",
28
+ // starterTask: {en:"Forgot Password", es:"Forgot Password"},
29
+ disclaimerPopup: {
30
+ header: "Important message",
31
+ message: `MDES' virtual assistant will ask for specific identifying information, such as Social Security Number and Date of Birth, that is needed to answer your question(s).</br></br> MDES follows strict federal security guidelines to protect your sensitive information.</br></br>To further protect your information you should close the chat window and browser when you are finished.</p>`
32
+ },
33
+ headerConfig: {
34
+ showLanguageToggle: false,
35
+ showMinimizeButton: false,
36
+ showExpandButton: false,
37
+ showReloadButton: false,
38
+ }
39
+ };
40
+ this.meCustomData = {
41
+ connectingMessage: "Welcome to ReEmployME. I am your virtual assistant to help you with ME related queries.",
42
+ hoverMessage: "Ask Blue",
43
+ botState: "ME",
44
+ showCollectUserDetailForm: false,
45
+ showDisclaimerPopUp: true,
46
+ showChatBubbleAtClosed: false,
47
+ botIconImageName: "BlueIcon.svg",
48
+ botAvatarImageName: "BlueIcon.svg",
49
+ formBannerPath: "",
50
+ rootFilePath: "UI/",
51
+ supportedLanguages: ["en"],
52
+ initialLanguage: "en",
53
+ disclaimerPopup: {
54
+ header: "Important message",
55
+ message: `MEDOL's virtual assistant may ask you specific identifying information, such as Social Security Number and Date of Birth, that is needed to answer your question(s). ME DOL follows strict federal security guidelines to protect your sensitive information. To further protect your information you should close the chat window and browser when you are finished.`
56
+ },
57
+ headerConfig: {
58
+ showLanguageToggle: false,
59
+ showMinimizeButton: true,
60
+ showExpandButton: false,
61
+ showReloadButton: true,
62
+ }
63
+ };
64
+ this.ctCustomData = {
65
+ connectingMessage: "Welcome to ReEmployCT. I am your virtual assistant to help you with ME related queries.",
66
+ hoverMessage: "Ask Blue",
67
+ botState: "CT",
68
+ showCollectUserDetailForm: true,
69
+ showDisclaimerPopUp: true,
70
+ showChatBubbleAtClosed: false,
71
+ botIconImageName: "chatboticon.png",
72
+ botAvatarImageName: "chatboticon.png",
73
+ formBannerPath: "",
74
+ rootFilePath: "UI/",
75
+ supportedLanguages: ["en", "es"],
76
+ initialLanguage: "en",
77
+ disclaimerPopup: {
78
+ header: "Important message",
79
+ message: `The CTDOL virtual assistant will need to ask for specific identifying information that is needed to answer your question(s) such as date of birth or Social Security number. The agency follows strict federal security guidelines to protect your sensitive information. To further protect your information, if you are on a public computer, please log out and close your browser when you are finished.`
80
+ },
81
+ headerConfig: {
82
+ showLanguageToggle: true,
83
+ showMinimizeButton: true,
84
+ showExpandButton: false,
85
+ showReloadButton: true,
86
+ }
87
+ };
88
+ this.botOptions = {};
89
+ this.koreBot = {};
90
+ this.initChatbot = new BehaviorSubject(false);
91
+ this.showChatbot = (LibConstants.enableChatbot == 'true');
92
+ this.renderer = rendererFactory.createRenderer(null, null);
93
+ this.logger.info('ChatbotService initializzed successfully.');
94
+ this.map.set("ms", this.msCustomData);
95
+ this.map.set("me", this.meCustomData);
96
+ this.map.set("ct", this.ctCustomData);
97
+ this.getChatbotBs().subscribe(val => {
98
+ if (val) {
99
+ this.logger.info('Initializing Chatbot.');
100
+ this.initializeChatbot();
101
+ }
102
+ });
103
+ }
104
+ getChatbotBs() {
105
+ return this.initChatbot;
106
+ }
107
+ initialize() {
108
+ this.initChatbot.next(true);
109
+ }
110
+ loadScripAndStyle() {
111
+ if (!LibConstants.production && this.showChatbot) { //set this property to true if you want to test this in local env.
112
+ this.logger.info('Not Loading Chatbot as current environment is not production. Set "production=true" and "showChatbot=true" if you want to test chatbot in local env.');
113
+ return;
114
+ ;
115
+ }
116
+ else {
117
+ this.logger.info('Loading chatbot ...');
118
+ }
119
+ ScriptConstant.importUrls.forEach(scriptElement => {
120
+ // other than js and stylesheet are ignored
121
+ if (scriptElement.type === ScriptConstant.jsProperty) {
122
+ const jsScriptNode = document.createElement('script');
123
+ //// jsScriptNode.src = environment.koreAiWebSdkUrl + scriptElement.url;
124
+ jsScriptNode.src = LibConstants.koreAiWebSdkUrl + scriptElement.url;
125
+ jsScriptNode.type = 'text/javascript';
126
+ if (scriptElement.async == null) {
127
+ this.logger.info(jsScriptNode.src + " will be loaded as async because of null async value");
128
+ jsScriptNode.async = true;
129
+ }
130
+ else if (scriptElement.async == true) {
131
+ this.logger.info(scriptElement.url + " will be loaded as async because of null async true");
132
+ jsScriptNode.async = true;
133
+ }
134
+ else {
135
+ this.logger.info(scriptElement.url + " will be loaded as async=false");
136
+ jsScriptNode.async = false;
137
+ }
138
+ this.renderer.appendChild(document.getElementsByTagName('head')[0], jsScriptNode);
139
+ document.getElementsByTagName('head')[0].appendChild(jsScriptNode);
140
+ }
141
+ else if (scriptElement.type === ScriptConstant.cssProperty) {
142
+ const styleNode = document.createElement('link');
143
+ styleNode.rel = 'stylesheet';
144
+ styleNode.href = LibConstants.koreAiWebSdkUrl + scriptElement.url;
145
+ this.renderer.appendChild(document.getElementsByTagName('head')[0], styleNode);
146
+ }
147
+ else if (scriptElement.type === ScriptConstant.cssPropertyAbsolute) {
148
+ const styleNode = document.createElement('link');
149
+ styleNode.rel = 'stylesheet';
150
+ styleNode.href = scriptElement.url;
151
+ this.renderer.appendChild(document.getElementsByTagName('head')[0], styleNode);
152
+ }
153
+ else {
154
+ this.logger.error('url ' + scriptElement.url + ' is not going to be loaded because of invalid type ' + scriptElement.type);
155
+ }
156
+ }); // for each
157
+ }
158
+ initializeChatbot() {
159
+ this.openbot();
160
+ }
161
+ /***
162
+ *
163
+ * @description Initialize the chatbot with logged-in user. If user is not logged-in then bot session will be created using unique timestamp.
164
+ */
165
+ openbot() {
166
+ let userId = null;
167
+ if (this.ls.getUser()) {
168
+ userId = this.ls.getUser().username + '_' + this.ls.getUser().userType;
169
+ this.botOptions.accessToken = this.ls.getUser().access_token;
170
+ }
171
+ else {
172
+ userId = Math.floor((Math.random() * 10000000) + 1) + "_" + new Date().getMilliseconds() + "@mdes.ms.gov";
173
+ }
174
+ //***CODE_START
175
+ this.botOptions.logLevel = 'debug';
176
+ this.botOptions.koreAPIUrl = LibConstants.koreAiChatbotServer;
177
+ //botOptions.koreSpeechAPIUrl = "https://speech.kore.ai/";
178
+ //botOptions.bearer = "bearer xyz-------------------";
179
+ //botOptions.ttsSocketUrl = 'wss://speech.kore.ai/tts/ws';
180
+ this.botOptions.recorderWorkerPath = './libs/recorderWorker.js';
181
+ this.botOptions.assertionFn = (options, callback) => this.assertion(options, callback);
182
+ //botOptions.koreAnonymousFn = koreAnonymousFn;
183
+ this.botOptions.JWTUrl = LibConstants.koreAiJwtService;
184
+ this.botOptions.userIdentity = userId; // Provide users email id here
185
+ this.botOptions.botInfo = {
186
+ name: LibConstants.koreAiBotName,
187
+ "_id": LibConstants.koreAiBotId,
188
+ customData: this.map.get(this.util.getStateLowercase()) ? this.map.get(this.util.getStateLowercase()) : this.map.get('ms'),
189
+ // customData: { connectingMessage: "Welcome to ReEmployME. I am your virtual assistant to help you with ME related queries.", hoverMessage: "Ask Blue", botState: "ME", showCollectUserDetailForm: false, showDisclaimerPopUp: true, botIconImageName: "chatboticon.png", botAvatarImageName: "chatboticon.png", rootFilePath: "UI/", supportedLanguages: ["en", "es"], initialLanguage: "en", disclaimerPopup: { header: "Important Message", message: `The virtual assistant will need to ask for specific identifying information that is needed to answer you question(s) such as date of birth or Social Security number. The agency follows strict federal security guidelines to protect your sensitive information. To further protect your information, if you are on a public computer, please log out and close your browser when you are finished.`, }, headerConfig: { showLanguageToggle: true, showMinimizeButton: true, showExpandbutton: false, showReloadButton: true, } }
190
+ }; // bot name is case sensitive
191
+ this.botOptions.clientId = LibConstants.koreAiClientId;
192
+ //this.botOptions.clientSecret = LibConstants.koreAiClientSecret;
193
+ //this.botOptions.reemployUsBearerToken= "";
194
+ // will need to pass token to koreAiChatBotServer when authentication needs to be validated for server side api call
195
+ var chatConfig = {
196
+ botOptions: this.botOptions,
197
+ allowIframe: false,
198
+ isSendButton: true,
199
+ isTTSEnabled: false,
200
+ isSpeechEnabled: false,
201
+ allowGoogleSpeech: false,
202
+ allowLocation: false,
203
+ loadHistory: false,
204
+ messageHistoryLimit: 10,
205
+ autoEnableSpeechAndTTS: false,
206
+ graphLib: "d3"
207
+ };
208
+ if (Object.keys(this.koreBot).length === 0) {
209
+ this.koreBot = koreBotChat();
210
+ this.koreBot.show(chatConfig);
211
+ }
212
+ else {
213
+ this.koreBot.resumeChatWindow();
214
+ }
215
+ //***CODE_END
216
+ }
217
+ assertion(options, callback) {
218
+ var jsonData = {
219
+ "clientId": this.botOptions.clientId,
220
+ "clientSecret": this.botOptions.clientSecret,
221
+ "identity": options.userIdentity || this.botOptions.userIdentity,
222
+ "aud": "",
223
+ "isAnonymous": (this.ls.getUser() == null),
224
+ "accessToken": this.botOptions.accessToken
225
+ };
226
+ $.ajax({
227
+ url: this.botOptions.JWTUrl,
228
+ type: 'post',
229
+ data: jsonData,
230
+ dataType: 'json',
231
+ success: (data) => {
232
+ options.assertion = data.jwt;
233
+ options.handleError = this.koreBot.showError;
234
+ options.chatHistory = this.koreBot.chatHistory;
235
+ options.botDetails = this.koreBot.botDetails;
236
+ callback(null, options);
237
+ setTimeout(function () {
238
+ if (this.koreBot && this.koreBot.initToken) {
239
+ this.koreBot.initToken(options);
240
+ }
241
+ }, 2000);
242
+ },
243
+ error: (err) => {
244
+ this.koreBot.showError(err.responseText);
245
+ }
246
+ });
247
+ }
248
+ static { this.ɵfac = function ChatbotService_Factory(t) { return new (t || ChatbotService)(i0.ɵɵinject(i0.RendererFactory2), i0.ɵɵinject(i1.LoggerService), i0.ɵɵinject(i2.LoginService), i0.ɵɵinject(i3.UtilService)); }; }
249
+ static { thisprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: ChatbotService, factory: ChatbotService.ɵfac, providedIn: 'root' }); }
250
+ }
251
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ChatbotService, [{
252
+ type: Injectable,
253
+ args: [{
254
+ providedIn: 'root'
255
+ }]
256
+ }], () => [{ type: i0.RendererFactory2 }, { type: i1.LoggerService }, { type: i2.LoginService }, { type: i3.UtilService }], null); })();
257
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdGJvdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJldXNhLWFwcC1saWIvc3JjL2xpYi9zZXJ2aWNlcy9jaGF0Ym90L2NoYXRib3Quc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUErQixNQUFNLGVBQWUsQ0FBQztBQUN4RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUV6RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7O0FBcUNoRCxNQUFNLE9BQU8sY0FBYztJQW1GekIsWUFBWSxlQUFpQyxFQUFVLE1BQXFCLEVBQVUsRUFBZ0IsRUFBVSxJQUFpQjtRQUExRSxXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQVUsT0FBRSxHQUFGLEVBQUUsQ0FBYztRQUFVLFNBQUksR0FBSixJQUFJLENBQWE7UUFqRmpJLFFBQUcsR0FBNEIsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUV6QyxpQkFBWSxHQUFlO1lBQ3pCLGlCQUFpQixFQUFFLDJGQUEyRjtZQUM5RyxZQUFZLEVBQUUsY0FBYztZQUM1QixRQUFRLEVBQUUsSUFBSTtZQUNkLHlCQUF5QixFQUFFLElBQUk7WUFDL0IsbUJBQW1CLEVBQUUsSUFBSTtZQUN6QixzQkFBc0IsRUFBRSxLQUFLO1lBQzdCLGtCQUFrQixFQUFFLGdCQUFnQjtZQUNwQyxnQkFBZ0IsRUFBRSxnQkFBZ0I7WUFDbEMsY0FBYyxFQUFFLEVBQUU7WUFDbEIsWUFBWSxFQUFFLEtBQUs7WUFDbkIsa0JBQWtCLEVBQUUsQ0FBQyxJQUFJLENBQUM7WUFDMUIsZUFBZSxFQUFFLElBQUk7WUFDckIsNkRBQTZEO1lBQzdELGVBQWUsRUFBRTtnQkFDZixNQUFNLEVBQUUsbUJBQW1CO2dCQUMzQixP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QUksRUFBRSxFQUFFO2dCQUNoQixPQUFPLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUM7Z0JBQzdCLE9BQU8sQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUM7Z0JBQzdDLE9BQU8sQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUM7Z0JBQy9DLE9BQU8sQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUM7Z0JBQzdDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7Z0JBQ3hCLFVBQVUsQ0FBQztvQkFDVCxJQUFJLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUU7d0JBQzFDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDO3FCQUNqQztnQkFDSCxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDWCxDQUFDO1lBQ0QsS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQ2IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQzNDLENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDOytFQTNQVSxjQUFjO3VFQUFkLGNBQWMsV0FBZCxjQUFjLG1CQUZiLE1BQU07O2lGQUVQLGNBQWM7Y0FIMUIsVUFBVTtlQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgUmVuZGVyZXIyLCBSZW5kZXJlckZhY3RvcnkyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IExpYkNvbnN0YW50cyB9IGZyb20gJy4uLy4uL21vZGVscy9MaWJDb25zdGFudHMnO1xuaW1wb3J0IHsgTG9nZ2VyU2VydmljZSB9IGZyb20gJy4uL2xvZ2dlci9sb2dnZXIuc2VydmljZSc7XG5pbXBvcnQgeyBTY3JpcHRDb25zdGFudCB9IGZyb20gJy4vc2NyaXB0LmNvbnN0JztcbmltcG9ydCB7IExvZ2luU2VydmljZSB9IGZyb20gJy4uL2xvZ2luL2xvZ2luLnNlcnZpY2UnO1xuaW1wb3J0IHsgVXRpbFNlcnZpY2UgfSBmcm9tICcuLi91dGlsL3V0aWwuc2VydmljZSc7XG5cbmRlY2xhcmUgY29uc3Qga29yZUJvdENoYXQ6IGFueTtcbmRlY2xhcmUgY29uc3QgJDogYW55O1xuXG5pbnRlcmZhY2UgRGlzY2xhaW1lclBvcHVwIHtcbiAgaGVhZGVyOiBzdHJpbmc7XG4gIG1lc3NhZ2U6IHN0cmluZ1xufVxuaW50ZXJmYWNlIEhlYWRlckNvbmZpZyB7XG4gIHNob3dMYW5ndWFnZVRvZ2dsZTogYm9vbGVhbjtcbiAgc2hvd01pbmltaXplQnV0dG9uOiBib29sZWFuO1xuICBzaG93RXhwYW5kQnV0dG9uOiBib29sZWFuO1xuICBzaG93UmVsb2FkQnV0dG9uOiBib29sZWFuO1xufVxuaW50ZXJmYWNlIEN1c3RvbURhdGEge1xuICBjb25uZWN0aW5nTWVzc2FnZTogc3RyaW5nO1xuICBob3Zlck1lc3NhZ2U6IHN0cmluZztcbiAgYm90U3RhdGU6IHN0cmluZztcbiAgc2hvd0NvbGxlY3RVc2VyRGV0YWlsRm9ybTogYm9vbGVhbjtcbiAgc2hvd0Rpc2NsYWltZXJQb3BVcDogYm9vbGVhbjtcbiAgc2hvd0NoYXRCdWJibGVBdENsb3NlZDogYm9vbGVhbjtcbiAgYm90QXZhdGFySW1hZ2VOYW1lOiBzdHJpbmc7XG4gIGJvdEljb25JbWFnZU5hbWU6IHN0cmluZztcbiAgZm9ybUJhbm5lclBhdGg6IHN0cmluZyxcbiAgcm9vdEZpbGVQYXRoOiBzdHJpbmc7XG4gIHN1cHBvcnRlZExhbmd1YWdlczogc3RyaW5nW107XG4gIGluaXRpYWxMYW5ndWFnZTogc3RyaW5nO1xuICBkaXNjbGFpbWVyUG9wdXA6IERpc2NsYWltZXJQb3B1cDtcbiAgaGVhZGVyQ29uZmlnOiBIZWFkZXJDb25maWc7XG59XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIENoYXRib3RTZXJ2aWNlIHtcblxuICBtYXA6IE1hcDxzdHJpbmcsIEN1c3RvbURhdGE+ID0gbmV3IE1hcCgpO1xuXG4gIG1zQ3VzdG9tRGF0YTogQ3VzdG9tRGF0YSA9IHtcbiAgICBjb25uZWN0aW5nTWVzc2FnZTogXCJXZWxjb21lIHRvIFJlRW1wbG95TVMuIEkgYW0geW91ciB2aXJ0dWFsIGFzc2lzdGFudCB0byBoZWxwIHlvdSB3aXRoIE1ERVMgcmVsYXRlZCBxdWVyaWVzLlwiLFxuICAgIGhvdmVyTWVzc2FnZTogXCJBc2sgY2hhdCBib3RcIixcbiAgICBib3RTdGF0ZTogXCJNU1wiLFxuICAgIHNob3dDb2xsZWN0VXNlckRldGFpbEZvcm06IHRydWUsXG4gICAgc2hvd0Rpc2NsYWltZXJQb3BVcDogdHJ1ZSxcbiAgICBzaG93Q2hhdEJ1YmJsZUF0Q2xvc2VkOiBmYWxzZSxcbiAgICBib3RBdmF0YXJJbWFnZU5hbWU6IFwiQXZhdGFySWNvbi5wbmdcIixcbiAgICBib3RJY29uSW1hZ2VOYW1lOiBcIkF2YXRhckljb24ucG5nXCIsXG4gICAgZm9ybUJhbm5lclBhdGg6IFwiXCIsXG4gICAgcm9vdEZpbGVQYXRoOiBcIlVJL1wiLFxuICAgIHN1cHBvcnRlZExhbmd1YWdlczogW1wiZW5cIl0sXG4gICAgaW5pdGlhbExhbmd1YWdlOiBcImVuXCIsXG4gICAgLy8gc3RhcnRlclRhc2s6IHtlbjpcIkZvcmdvdCBQYXNzd29yZFwiLCBlczpcIkZvcmdvdCBQYXNzd29yZFwifSxcbiAgICBkaXNjbGFpbWVyUG9wdXA6IHtcbiAgICAgIGhlYWRlcjogXCJJbXBvcnRhbnQgbWVzc2FnZVwiLFxuICAgICAgbWVzc2FnZTogYE1ERVMnIHZpcnR1YWwgYXNzaXN0YW50IHdpbGwgYXNrIGZvciBzcGVjaWZpYyBpZGVudGlmeWluZyBpbmZvcm1hdGlvbiwgc3VjaCBhcyBTb2NpYWwgU2VjdXJpdHkgTnVtYmVyIGFuZCBEYXRlIG9mIEJpcnRoLCB0aGF0IGlzIG5lZWRlZCB0byBhbnN3ZXIgeW91ciBxdWVzdGlvbihzKS48L2JyPjwvYnI+IE1ERVMgZm9sbG93cyBzdHJpY3QgZmVkZXJhbCBzZWN1cml0eSBndWlkZWxpbmVzIHRvIHByb3RlY3QgeW91ciBzZW5zaXRpdmUgaW5mb3JtYXRpb24uPC9icj48L2JyPlRvIGZ1cnRoZXIgcHJvdGVjdCB5b3VyIGluZm9ybWF0aW9uIHlvdSBzaG91bGQgY2xvc2UgdGhlIGNoYXQgd2luZG93IGFuZCBicm93c2VyIHdoZW4geW91IGFyZSBmaW5pc2hlZC48L3A+YFxuICAgIH0sXG4gICAgaGVhZGVyQ29uZmlnOiB7XG4gICAgICBzaG93TGFuZ3VhZ2VUb2dnbGU6IGZhbHNlLFxuICAgICAgc2hvd01pbmltaXplQnV0dG9uOiBmYWxzZSxcbiAgICAgIHNob3dFeHBhbmRCdXR0b246IGZhbHNlLFxuICAgICAgc2hvd1JlbG9hZEJ1dHRvbjogZmFsc2UsXG4gICAgfVxuICB9XG5cbiAgbWVDdXN0b21EYXRhOiBDdXN0b21EYXRhID0ge1xuICAgIGNvbm5lY3RpbmdNZXNzYWdlOiBcIldlbGNvbWUgdG8gUmVFbXBsb3lNRS4gSSBhbSB5b3VyIHZpcnR1YWwgYXNzaXN0YW50IHRvIGhlbHAgeW91IHdpdGggTUUgcmVsYXRlZCBxdWVyaWVzLlwiLFxuICAgIGhvdmVyTWVzc2FnZTogXCJBc2sgQmx1ZVwiLFxuICAgIGJvdFN0YXRlOiBcIk1FXCIsXG4gICAgc2hvd0NvbGxlY3RVc2VyRGV0YWlsRm9ybTogZmFsc2UsXG4gICAgc2hvd0Rpc2NsYWltZXJQb3BVcDogdHJ1ZSxcbiAgICBzaG93Q2hhdEJ1YmJsZUF0Q2xvc2VkOiBmYWxzZSxcbiAgICBib3RJY29uSW1hZ2VOYW1lOiBcIkJsdWVJY29uLnN2Z1wiLFxuICAgIGJvdEF2YXRhckltYWdlTmFtZTogXCJCbHVlSWNvbi5zdmdcIixcbiAgICBmb3JtQmFubmVyUGF0aDogXCJcIixcbiAgICByb290RmlsZVBhdGg6IFwiVUkvXCIsXG4gICAgc3VwcG9ydGVkTGFuZ3VhZ2VzOiBbXCJlblwiXSxcbiAgICBpbml0aWFsTGFuZ3VhZ2U6IFwiZW5cIixcbiAgICBkaXNjbGFpbWVyUG9wdXA6IHtcbiAgICAgIGhlYWRlcjogXCJJbXBvcnRhbnQgbWVzc2FnZVwiLFxuICAgICAgbWVzc2FnZTogYE1FRE9MJ3MgdmlydHVhbCBhc3Npc3RhbnQgbWF5IGFzayB5b3Ugc3BlY2lmaWMgaWRlbnRpZnlpbmcgaW5mb3JtYXRpb24sIHN1Y2ggYXMgU29jaWFsIFNlY3VyaXR5IE51bWJlciBhbmQgRGF0ZSBvZiBCaXJ0aCwgdGhhdCBpcyBuZWVkZWQgdG8gYW5zd2VyIHlvdXIgcXVlc3Rpb24ocykuIE1FIERPTCBmb2xsb3dzIHN0cmljdCBmZWRlcmFsIHNlY3VyaXR5IGd1aWRlbGluZXMgdG8gcHJvdGVjdCB5b3VyIHNlbnNpdGl2ZSBpbmZvcm1hdGlvbi4gVG8gZnVydGhlciBwcm90ZWN0IHlvdXIgaW5mb3JtYXRpb24geW91IHNob3VsZCBjbG9zZSB0aGUgY2hhdCB3aW5kb3cgYW5kIGJyb3dzZXIgd2hlbiB5b3UgYXJlIGZpbmlzaGVkLmBcbiAgICB9LFxuICAgIGhlYWRlckNvbmZpZzoge1xuICAgICAgc2hvd0xhbmd1YWdlVG9nZ2xlOiBmYWxzZSxcbiAgICAgIHNob3dNaW5pbWl6ZUJ1dHRvbjogdHJ1ZSxcbiAgICAgIHNob3dFeHBhbmRCdXR0b246IGZhbHNlLFxuICAgICAgc2hvd1JlbG9hZEJ1dHRvbjogdHJ1ZSxcbiAgICB9XG4gIH1cbiAgY3RDdXN0b21EYXRhOiBDdXN0b21EYXRhID0ge1xuICAgIGNvbm5lY3RpbmdNZXNzYWdlOiBcIldlbGNvbWUgdG8gUmVFbXBsb3lDVC4gSSBhbSB5b3VyIHZpcnR1YWwgYXNzaXN0YW50IHRvIGhlbHAgeW91IHdpdGggTUUgcmVsYXRlZCBxdWVyaWVzLlwiLFxuICAgIGhvdmVyTWVzc2FnZTogXCJBc2sgQmx1ZVwiLFxuICAgIGJvdFN0YXRlOiBcIkNUXCIsXG4gICAgc2hvd0NvbGxlY3RVc2VyRGV0YWlsRm9ybTogdHJ1ZSxcbiAgICBzaG93RGlzY2xhaW1lclBvcFVwOiB0cnVlLFxuICAgIHNob3dDaGF0QnViYmxlQXRDbG9zZWQ6IGZhbHNlLFxuICAgIGJvdEljb25JbWFnZU5hbWU6IFwiY2hhdGJvdGljb24ucG5nXCIsXG4gICAgYm90QXZhdGFySW1hZ2VOYW1lOiBcImNoYXRib3RpY29uLnBuZ1wiLFxuICAgIGZvcm1CYW5uZXJQYXRoOiBcIlwiLFxuICAgIHJvb3RGaWxlUGF0aDogXCJVSS9cIixcbiAgICBzdXBwb3J0ZWRMYW5ndWFnZXM6IFtcImVuXCIsIFwiZXNcIl0sXG4gICAgaW5pdGlhbExhbmd1YWdlOiBcImVuXCIsXG4gICAgZGlzY2xhaW1lclBvcHVwOiB7XG4gICAgICBoZWFkZXI6IFwiSW1wb3J0YW50IG1lc3NhZ2VcIixcbiAgICAgIG1lc3NhZ2U6IGBUaGUgQ1RET0wgdmlydHVhbCBhc3Npc3RhbnQgd2lsbCBuZWVkIHRvIGFzayBmb3Igc3BlY2lmaWMgaWRlbnRpZnlpbmcgaW5mb3JtYXRpb24gdGhhdCBpcyBuZWVkZWQgdG8gYW5zd2VyIHlvdXIgcXVlc3Rpb24ocykgc3VjaCBhcyBkYXRlIG9mIGJpcnRoIG9yIFNvY2lhbCBTZWN1cml0eSBudW1iZXIuIFRoZSBhZ2VuY3kgZm9sbG93cyBzdHJpY3QgZmVkZXJhbCBzZWN1cml0eSBndWlkZWxpbmVzIHRvIHByb3RlY3QgeW91ciBzZW5zaXRpdmUgaW5mb3JtYXRpb24uIFRvIGZ1cnRoZXIgcHJvdGVjdCB5b3VyIGluZm9ybWF0aW9uLCBpZiB5b3UgYXJlIG9uIGEgcHVibGljIGNvbXB1dGVyLCBwbGVhc2UgbG9nIG91dCBhbmQgY2xvc2UgeW91ciBicm93c2VyIHdoZW4geW91IGFyZSBmaW5pc2hlZC5gXG4gICAgfSxcbiAgICBoZWFkZXJDb25maWc6IHtcbiAgICAgIHNob3dMYW5ndWFnZVRvZ2dsZTogdHJ1ZSxcbiAgICAgIHNob3dNaW5pbWl6ZUJ1dHRvbjogdHJ1ZSxcbiAgICAgIHNob3dFeHBhbmRCdXR0b246IGZhbHNlLFxuICAgICAgc2hvd1JlbG9hZEJ1dHRvbjogdHJ1ZSxcbiAgICB9XG4gIH1cbiAgcHVibGljIGJvdE9wdGlvbnM6IGFueSA9IHt9O1xuICBwdWJsaWMga29yZUJvdDogYW55ID0ge307XG4gIGluaXRDaGF0Ym90OiBCZWhhdmlvclN1YmplY3Q8Qm9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcbiAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyO1xuICBwdWJsaWMgc2hvd0NoYXRib3Q6IGJvb2xlYW4gPSAoTGliQ29uc3RhbnRzLmVuYWJsZUNoYXRib3QgPT0gJ3RydWUnKTtcbiAgY29uc3RydWN0b3IocmVuZGVyZXJGYWN0b3J5OiBSZW5kZXJlckZhY3RvcnkyLCBwcml2YXRlIGxvZ2dlcjogTG9nZ2VyU2VydmljZSwgcHJpdmF0ZSBsczogTG9naW5TZXJ2aWNlLCBwcml2YXRlIHV0aWw6IFV0aWxTZXJ2aWNlKSB7XG4gICAgdGhpcy5yZW5kZXJlciA9IHJlbmRlcmVyRmFjdG9yeS5jcmVhdGVSZW5kZXJlcihudWxsLCBudWxsKTtcbiAgICB0aGlzLmxvZ2dlci5pbmZvKCdDaGF0Ym90U2VydmljZSBpbml0aWFsaXp6ZWQgc3VjY2Vzc2Z1bGx5LicpO1xuXG4gICAgdGhpcy5tYXAuc2V0KFwibXNcIiwgdGhpcy5tc0N1c3RvbURhdGEpO1xuICAgIHRoaXMubWFwLnNldChcIm1lXCIsIHRoaXMubWVDdXN0b21EYXRhKTtcbiAgICB0aGlzLm1hcC5zZXQoXCJjdFwiLCB0aGlzLmN0Q3VzdG9tRGF0YSk7XG4gICAgdGhpcy5nZXRDaGF0Ym90QnMoKS5zdWJzY3JpYmUodmFsID0+IHtcbiAgICAgIGlmICh2YWwpIHtcbiAgICAgICAgdGhpcy5sb2dnZXIuaW5mbygnSW5pdGlhbGl6aW5nIENoYXRib3QuJyk7XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZUNoYXRib3QoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGdldENoYXRib3RCcygpIHtcbiAgICByZXR1cm4gdGhpcy5pbml0Q2hhdGJvdDtcbiAgfVxuXG4gIGluaXRpYWxpemUoKSB7XG4gICAgdGhpcy5pbml0Q2hhdGJvdC5uZXh0KHRydWUpO1xuICB9XG5cbiAgbG9hZFNjcmlwQW5kU3R5bGUoKSB7XG4gICAgaWYgKCFMaWJDb25zdGFudHMucHJvZHVjdGlvbiAmJiB0aGlzLnNob3dDaGF0Ym90KSB7IC8vc2V0IHRoaXMgcHJvcGVydHkgdG8gdHJ1ZSBpZiB5b3Ugd2FudCB0byB0ZXN0IHRoaXMgaW4gbG9jYWwgZW52LlxuICAgICAgdGhpcy5sb2dnZXIuaW5mbygnTm90IExvYWRpbmcgQ2hhdGJvdCBhcyBjdXJyZW50IGVudmlyb25tZW50IGlzIG5vdCBwcm9kdWN0aW9uLiBTZXQgXCJwcm9kdWN0aW9uPXRydWVcIiBhbmQgXCJzaG93Q2hhdGJvdD10cnVlXCIgaWYgeW91IHdhbnQgdG8gdGVzdCBjaGF0Ym90IGluIGxvY2FsIGVudi4nKTtcbiAgICAgIHJldHVybjs7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubG9nZ2VyLmluZm8oJ0xvYWRpbmcgY2hhdGJvdCAuLi4nKTtcbiAgICB9XG5cbiAgICBTY3JpcHRDb25zdGFudC5pbXBvcnRVcmxzLmZvckVhY2goc2NyaXB0RWxlbWVudCA9PiB7XG4gICAgICAvLyBvdGhlciB0aGFuIGpzIGFuZCBzdHlsZXNoZWV0IGFyZSBpZ25vcmVkXG4gICAgICBpZiAoc2NyaXB0RWxlbWVudC50eXBlID09PSBTY3JpcHRDb25zdGFudC5qc1Byb3BlcnR5KSB7XG4gICAgICAgIGNvbnN0IGpzU2NyaXB0Tm9kZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xuICAgICAgICAvLy8vIGpzU2NyaXB0Tm9kZS5zcmMgPSBlbnZpcm9ubWVudC5rb3JlQWlXZWJTZGtVcmwgKyBzY3JpcHRFbGVtZW50LnVybDtcbiAgICAgICAganNTY3JpcHROb2RlLnNyYyA9IExpYkNvbnN0YW50cy5rb3JlQWlXZWJTZGtVcmwgKyBzY3JpcHRFbGVtZW50LnVybDtcblxuICAgICAgICBqc1NjcmlwdE5vZGUudHlwZSA9ICd0ZXh0L2phdmFzY3JpcHQnO1xuXG4gICAgICAgIGlmIChzY3JpcHRFbGVtZW50LmFzeW5jID09IG51bGwpIHtcbiAgICAgICAgICB0aGlzLmxvZ2dlci5pbmZvKGpzU2NyaXB0Tm9kZS5zcmMgKyBcIiB3aWxsIGJlIGxvYWRlZCBhcyBhc3luYyBiZWNhdXNlIG9mIG51bGwgYXN5bmMgdmFsdWVcIik7XG4gICAgICAgICAganNTY3JpcHROb2RlLmFzeW5jID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIGlmIChzY3JpcHRFbGVtZW50LmFzeW5jID09IHRydWUpIHtcbiAgICAgICAgICB0aGlzLmxvZ2dlci5pbmZvKHNjcmlwdEVsZW1lbnQudXJsICsgXCIgd2lsbCBiZSBsb2FkZWQgYXMgYXN5bmMgYmVjYXVzZSBvZiBudWxsIGFzeW5jIHRydWVcIik7XG5cbiAgICAgICAgICBqc1NjcmlwdE5vZGUuYXN5bmMgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIHRoaXMubG9nZ2VyLmluZm8oc2NyaXB0RWxlbWVudC51cmwgKyBcIiB3aWxsIGJlIGxvYWRlZCBhcyBhc3luYz1mYWxzZVwiKTtcblxuICAgICAgICAgIGpzU2NyaXB0Tm9kZS5hc3luYyA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2hlYWQnKVswXSwganNTY3JpcHROb2RlKTtcbiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2hlYWQnKVswXS5hcHBlbmRDaGlsZChqc1NjcmlwdE5vZGUpO1xuICAgICAgfSBlbHNlIGlmIChzY3JpcHRFbGVtZW50LnR5cGUgPT09IFNjcmlwdENvbnN0YW50LmNzc1Byb3BlcnR5KSB7XG4gICAgICAgIGNvbnN0IHN0eWxlTm9kZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2xpbmsnKTtcbiAgICAgICAgc3R5bGVOb2RlLnJlbCA9ICdzdHlsZXNoZWV0JztcbiAgICAgICAgc3R5bGVOb2RlLmhyZWYgPSBMaWJDb25zdGFudHMua29yZUFpV2ViU2RrVXJsICsgc2NyaXB0RWxlbWVudC51cmw7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2hlYWQnKVswXSwgc3R5bGVOb2RlKTtcbiAgICAgIH0gZWxzZSBpZiAoc2NyaXB0RWxlbWVudC50eXBlID09PSBTY3JpcHRDb25zdGFudC5jc3NQcm9wZXJ0eUFic29sdXRlKSB7XG4gICAgICAgIGNvbnN0IHN0eWxlTm9kZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2xpbmsnKTtcbiAgICAgICAgc3R5bGVOb2RlLnJlbCA9ICdzdHlsZXNoZWV0JztcbiAgICAgICAgc3R5bGVOb2RlLmhyZWYgPSBzY3JpcHRFbGVtZW50LnVybDtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZChkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaGVhZCcpWzBdLCBzdHlsZU5vZGUpO1xuICAgICAgfVxuICAgICAgZWxzZSB7XG4gICAgICAgIHRoaXMubG9nZ2VyLmVycm9yKCd1cmwgJyArIHNjcmlwdEVsZW1lbnQudXJsICsgJyBpcyBub3QgZ29pbmcgdG8gYmUgbG9hZGVkIGJlY2F1c2Ugb2YgaW52YWxpZCB0eXBlICcgKyBzY3JpcHRFbGVtZW50LnR5cGUpO1xuICAgICAgfVxuICAgIH0pOyAvLyBmb3IgZWFjaFxuICB9XG5cblxuXG4gIHB1YmxpYyBpbml0aWFsaXplQ2hhdGJvdCgpIHtcbiAgICB0aGlzLm9wZW5ib3QoKTtcbiAgfVxuXG4gIC8qKipcbiAgICogXG4gICAqIEBkZXNjcmlwdGlvbiBJbml0aWFsaXplIHRoZSBjaGF0Ym90IHdpdGggbG9nZ2VkLWluIHVzZXIuIElmIHVzZXIgaXMgbm90IGxvZ2dlZC1pbiB0aGVuIGJvdCBzZXNzaW9uIHdpbGwgYmUgY3JlYXRlZCB1c2luZyB1bmlxdWUgdGltZXN0YW1wLlxuICAgKi9cbiAgb3BlbmJvdCgpIHtcbiAgICBsZXQgdXNlcklkID0gbnVsbDtcbiAgICBpZiAodGhpcy5scy5nZXRVc2VyKCkpIHtcbiAgICAgIHVzZXJJZCA9IHRoaXMubHMuZ2V0VXNlcigpLnVzZXJuYW1lICsgJ18nICsgdGhpcy5scy5nZXRVc2VyKCkudXNlclR5cGU7XG4gICAgICB0aGlzLmJvdE9wdGlvbnMuYWNjZXNzVG9rZW4gPSB0aGlzLmxzLmdldFVzZXIoKS5hY2Nlc3NfdG9rZW47XG4gICAgfSBlbHNlIHtcbiAgICAgIHVzZXJJZCA9IE1hdGguZmxvb3IoKE1hdGgucmFuZG9tKCkgKiAxMDAwMDAwMCkgKyAxKSArIFwiX1wiICsgbmV3IERhdGUoKS5nZXRNaWxsaXNlY29uZHMoKSArIFwiQG1kZXMubXMuZ292XCI7XG4gICAgfVxuICAgIC8vKioqQ09ERV9TVEFSVFxuICAgIHRoaXMuYm90T3B0aW9ucy5sb2dMZXZlbCA9ICdkZWJ1Zyc7XG4gICAgdGhpcy5ib3RPcHRpb25zLmtvcmVBUElVcmwgPSBMaWJDb25zdGFudHMua29yZUFpQ2hhdGJvdFNlcnZlcjtcbiAgICAvL2JvdE9wdGlvbnMua29yZVNwZWVjaEFQSVVybCA9IFwiaHR0cHM6Ly9zcGVlY2gua29yZS5haS9cIjtcbiAgICAvL2JvdE9wdGlvbnMuYmVhcmVyID0gXCJiZWFyZXIgeHl6LS0tLS0tLS0tLS0tLS0tLS0tLVwiO1xuICAgIC8vYm90T3B0aW9ucy50dHNTb2NrZXRVcmwgPSAnd3NzOi8vc3BlZWNoLmtvcmUuYWkvdHRzL3dzJztcbiAgICB0aGlzLmJvdE9wdGlvbnMucmVjb3JkZXJXb3JrZXJQYXRoID0gJy4vbGlicy9yZWNvcmRlcldvcmtlci5qcyc7XG4gICAgdGhpcy5ib3RPcHRpb25zLmFzc2VydGlvbkZuID0gKG9wdGlvbnMsIGNhbGxiYWNrKSA9PiB0aGlzLmFzc2VydGlvbihvcHRpb25zLCBjYWxsYmFjayk7XG4gICAgLy9ib3RPcHRpb25zLmtvcmVBbm9ueW1vdXNGbiA9IGtvcmVBbm9ueW1vdXNGbjtcblxuICAgIHRoaXMuYm90T3B0aW9ucy5KV1RVcmwgPSBMaWJDb25zdGFudHMua29yZUFpSnd0U2VydmljZTtcbiAgICBcbiAgICB0aGlzLmJvdE9wdGlvbnMudXNlcklkZW50aXR5ID0gdXNlcklkOy8vIFByb3ZpZGUgdXNlcnMgZW1haWwgaWQgaGVyZVxuICAgIHRoaXMuYm90T3B0aW9ucy5ib3RJbmZvID0ge1xuICAgICAgbmFtZTogTGliQ29uc3RhbnRzLmtvcmVBaUJvdE5hbWUsXG4gICAgICBcIl9pZFwiOiBMaWJDb25zdGFudHMua29yZUFpQm90SWQsXG4gICAgICBjdXN0b21EYXRhIDogdGhpcy5tYXAuZ2V0KHRoaXMudXRpbC5nZXRTdGF0ZUxvd2VyY2FzZSgpKSA/IHRoaXMubWFwLmdldCh0aGlzLnV0aWwuZ2V0U3RhdGVMb3dlcmNhc2UoKSkgOiB0aGlzLm1hcC5nZXQoJ21zJyksXG4gICAgICAvLyBjdXN0b21EYXRhOiB7IGNvbm5lY3RpbmdNZXNzYWdlOiBcIldlbGNvbWUgdG8gUmVFbXBsb3lNRS4gSSBhbSB5b3VyIHZpcnR1YWwgYXNzaXN0YW50IHRvIGhlbHAgeW91IHdpdGggTUUgcmVsYXRlZCBxdWVyaWVzLlwiLCBob3Zlck1lc3NhZ2U6IFwiQXNrIEJsdWVcIiwgYm90U3RhdGU6IFwiTUVcIiwgc2hvd0NvbGxlY3RVc2VyRGV0YWlsRm9ybTogZmFsc2UsIHNob3dEaXNjbGFpbWVyUG9wVXA6IHRydWUsIGJvdEljb25JbWFnZU5hbWU6IFwiY2hhdGJvdGljb24ucG5nXCIsIGJvdEF2YXRhckltYWdlTmFtZTogXCJjaGF0Ym90aWNvbi5wbmdcIiwgcm9vdEZpbGVQYXRoOiBcIlVJL1wiLCBzdXBwb3J0ZWRMYW5ndWFnZXM6IFtcImVuXCIsIFwiZXNcIl0sIGluaXRpYWxMYW5ndWFnZTogXCJlblwiLCBkaXNjbGFpbWVyUG9wdXA6IHsgaGVhZGVyOiBcIkltcG9ydGFudCBNZXNzYWdlXCIsIG1lc3NhZ2U6IGBUaGUgdmlydHVhbCBhc3Npc3RhbnQgd2lsbCBuZWVkIHRvIGFzayBmb3Igc3BlY2lmaWMgaWRlbnRpZnlpbmcgaW5mb3JtYXRpb24gdGhhdCBpcyBuZWVkZWQgdG8gYW5zd2VyIHlvdSBxdWVzdGlvbihzKSBzdWNoIGFzIGRhdGUgb2YgYmlydGggb3IgU29jaWFsIFNlY3VyaXR5IG51bWJlci4gVGhlIGFnZW5jeSBmb2xsb3dzIHN0cmljdCBmZWRlcmFsIHNlY3VyaXR5IGd1aWRlbGluZXMgdG8gcHJvdGVjdCB5b3VyIHNlbnNpdGl2ZSBpbmZvcm1hdGlvbi4gVG8gZnVydGhlciBwcm90ZWN0IHlvdXIgaW5mb3JtYXRpb24sIGlmIHlvdSBhcmUgb24gYSBwdWJsaWMgY29tcHV0ZXIsIHBsZWFzZSBsb2cgb3V0IGFuZCBjbG9zZSB5b3VyIGJyb3dzZXIgd2hlbiB5b3UgYXJlIGZpbmlzaGVkLmAsIH0sIGhlYWRlckNvbmZpZzogeyBzaG93TGFuZ3VhZ2VUb2dnbGU6IHRydWUsIHNob3dNaW5pbWl6ZUJ1dHRvbjogdHJ1ZSwgc2hvd0V4cGFuZGJ1dHRvbjogZmFsc2UsIHNob3dSZWxvYWRCdXR0b246IHRydWUsIH0gfVxuICAgIH07IC8vIGJvdCBuYW1lIGlzIGNhc2Ugc2Vuc2l0aXZlXG4gICAgdGhpcy5ib3RPcHRpb25zLmNsaWVudElkID0gTGliQ29uc3RhbnRzLmtvcmVBaUNsaWVudElkO1xuICAgIC8vdGhpcy5ib3RPcHRpb25zLmNsaWVudFNlY3JldCA9IExpYkNvbnN0YW50cy5rb3JlQWlDbGllbnRTZWNyZXQ7XG5cbiAgICAvL3RoaXMuYm90T3B0aW9ucy5yZWVtcGxveVVzQmVhcmVyVG9rZW49IFwiXCI7ICBcbiAgICAvLyB3aWxsIG5lZWQgdG8gcGFzcyB0b2tlbiB0byBrb3JlQWlDaGF0Qm90U2VydmVyIHdoZW4gYXV0aGVudGljYXRpb24gbmVlZHMgdG8gYmUgdmFsaWRhdGVkIGZvciBzZXJ2ZXIgc2lkZSBhcGkgY2FsbFxuXG4gICAgdmFyIGNoYXRDb25maWcgPSB7XG4gICAgICBib3RPcHRpb25zOiB0aGlzLmJvdE9wdGlvbnMsXG4gICAgICBhbGxvd0lmcmFtZTogZmFsc2UsXG4gICAgICBpc1NlbmRCdXR0b246IHRydWUsXG4gICAgICBpc1RUU0VuYWJsZWQ6IGZhbHNlLFxuICAgICAgaXNTcGVlY2hFbmFibGVkOiBmYWxzZSxcbiAgICAgIGFsbG93R29vZ2xlU3BlZWNoOiBmYWxzZSxcbiAgICAgIGFsbG93TG9jYXRpb246IGZhbHNlLFxuICAgICAgbG9hZEhpc3Rvcnk6IGZhbHNlLFxuICAgICAgbWVzc2FnZUhpc3RvcnlMaW1pdDogMTAsXG4gICAgICBhdXRvRW5hYmxlU3BlZWNoQW5kVFRTOiBmYWxzZSxcbiAgICAgIGdyYXBoTGliOiBcImQzXCJcbiAgICB9O1xuICAgIGlmIChPYmplY3Qua2V5cyh0aGlzLmtvcmVCb3QpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy5rb3JlQm90ID0ga29yZUJvdENoYXQoKTtcbiAgICAgIHRoaXMua29yZUJvdC5zaG93KGNoYXRDb25maWcpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmtvcmVCb3QucmVzdW1lQ2hhdFdpbmRvdygpXG4gICAgfVxuICAgIC8vKioqQ09ERV9FTkRcblxuICB9XG5cbiAgYXNzZXJ0aW9uKG9wdGlvbnMsIGNhbGxiYWNrKSB7XG4gICAgdmFyIGpzb25EYXRhID0ge1xuICAgICAgXCJjbGllbnRJZFwiOiB0aGlzLmJvdE9wdGlvbnMuY2xpZW50SWQsXG4gICAgICBcImNsaWVudFNlY3JldFwiOiB0aGlzLmJvdE9wdGlvbnMuY2xpZW50U2VjcmV0LFxuICAgICAgXCJpZGVudGl0eVwiOiBvcHRpb25zLnVzZXJJZGVudGl0eSB8fCB0aGlzLmJvdE9wdGlvbnMudXNlcklkZW50aXR5LFxuICAgICAgXCJhdWRcIjogXCJcIixcbiAgICAgIFwiaXNBbm9ueW1vdXNcIjogKHRoaXMubHMuZ2V0VXNlcigpID09IG51bGwpLFxuICAgICAgXCJhY2Nlc3NUb2tlblwiOiB0aGlzLmJvdE9wdGlvbnMuYWNjZXNzVG9rZW5cbiAgICB9O1xuICAgICQuYWpheCh7XG4gICAgICB1cmw6IHRoaXMuYm90T3B0aW9ucy5KV1RVcmwsXG4gICAgICB0eXBlOiAncG9zdCcsXG4gICAgICBkYXRhOiBqc29uRGF0YSxcbiAgICAgIGRhdGFUeXBlOiAnanNvbicsXG4gICAgICBzdWNjZXNzOiAoZGF0YSkgPT4ge1xuICAgICAgICBvcHRpb25zLmFzc2VydGlvbiA9IGRhdGEuand0O1xuICAgICAgICBvcHRpb25zLmhhbmRsZUVycm9yID0gdGhpcy5rb3JlQm90LnNob3dFcnJvcjtcbiAgICAgICAgb3B0aW9ucy5jaGF0SGlzdG9yeSA9IHRoaXMua29yZUJvdC5jaGF0SGlzdG9yeTtcbiAgICAgICAgb3B0aW9ucy5ib3REZXRhaWxzID0gdGhpcy5rb3JlQm90LmJvdERldGFpbHM7XG4gICAgICAgIGNhbGxiYWNrKG51bGwsIG9wdGlvbnMpO1xuICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICBpZiAodGhpcy5rb3JlQm90ICYmIHRoaXMua29yZUJvdC5pbml0VG9rZW4pIHtcbiAgICAgICAgICAgIHRoaXMua29yZUJvdC5pbml0VG9rZW4ob3B0aW9ucyk7XG4gICAgICAgICAgfVxuICAgICAgICB9LCAyMDAwKTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogKGVycikgPT4ge1xuICAgICAgICB0aGlzLmtvcmVCb3Quc2hvd0Vycm9yKGVyci5yZXNwb25zZVRleHQpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iXX0=