@reusa/ngx-reusa-app-lib 0.0.731 → 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,63 +1,63 @@
1
- import { Injectable } from '@angular/core';
2
- import { BehaviorSubject } from 'rxjs';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@ionic/storage";
5
- export class HelpService {
6
- constructor(storage) {
7
- this.storage = storage;
8
- this.showing = false;
9
- this.showHelpButton = new BehaviorSubject(false);
10
- }
11
- setupDefaultHelpBehaviour(preferences) {
12
- this.helpPreferences = preferences;
13
- this.setupPreferenceInStorageIfNotPresent();
14
- }
15
- setupPreferenceInStorageIfNotPresent() {
16
- this.helpPreferences
17
- .forEach(async (preference) => {
18
- let pref = await this.storage.get(preference.name);
19
- if (pref == null || pref == undefined) {
20
- this.storage.set(preference.name, preference.showOnLoad);
21
- }
22
- });
23
- }
24
- show() {
25
- this.showing = true;
26
- }
27
- hide() {
28
- this.showing = false;
29
- }
30
- isShowing() {
31
- return this.showing;
32
- }
33
- setHelpAvailability(isAvailable) {
34
- if (!isAvailable) {
35
- this.hide();
36
- }
37
- this.showHelpButton.next(isAvailable);
38
- }
39
- shouldDisplayHelpButton() {
40
- return this.showHelpButton;
41
- }
42
- setPreference(name, value) {
43
- this.storage.set(name, value);
44
- }
45
- getPreference(name) {
46
- return this.storage.get(name);
47
- }
48
- async showDialogIfPreferenceAllow(name) {
49
- let pref = await this.getPreference(name);
50
- if (pref) {
51
- this.show();
52
- }
53
- }
54
- }
55
- HelpServicefac = function HelpService_Factory(t) { return new (t || HelpService)(i0.ɵɵinject(i1.Storage)); };
56
- HelpService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: HelpService, factory: HelpService.ɵfac, providedIn: 'root' });
57
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(HelpService, [{
58
- type: Injectable,
59
- args: [{
60
- providedIn: 'root'
61
- }]
62
- }], function () { return [{ type: i1.Storage }]; }, null); })();
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJldXNhLWFwcC1saWIvc3JjL2xpYi9zZXJ2aWNlcy9oZWxwL2hlbHAuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7OztBQUt2QyxNQUFNLE9BQU8sV0FBVztJQVF0QixZQUFtQixPQUFpQjtRQUFqQixZQUFPLEdBQVAsT0FBTyxDQUFVO1FBSjVCLFlBQU8sR0FBYSxLQUFLLENBQUM7UUFFMUIsbUJBQWMsR0FBOEIsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7SUFFaEQsQ0FBQztJQUV6Qyx5QkFBeUIsQ0FBQyxXQUFxRDtRQUM3RSxJQUFJLENBQUMsZUFBZSxHQUFHLFdBQVcsQ0FBQztRQUVuQyxJQUFJLENBQUMsb0NBQW9DLEVBQUUsQ0FBQztJQUM5QyxDQUFDO0lBRU8sb0NBQW9DO1FBQzFDLElBQUksQ0FBQyxlQUFlO2FBQ2YsT0FBTyxDQUFDLEtBQUssRUFBQyxVQUFVLEVBQUMsRUFBRTtZQUMxQixJQUFJLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNuRCxJQUFHLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLFNBQVMsRUFBQztnQkFDbkMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUE7YUFDekQ7UUFDUCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxJQUFJO1FBQ0YsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7SUFDdEIsQ0FBQztJQUVELElBQUk7UUFDRixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztJQUN2QixDQUFDO0lBRUQsU0FBUztRQUNQLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBRUQsbUJBQW1CLENBQUMsV0FBcUI7UUFDdkMsSUFBRyxDQUFDLFdBQVcsRUFBQztZQUNkLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUNiO1FBQ0QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVELHVCQUF1QjtRQUNyQixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUM7SUFDN0IsQ0FBQztJQUVELGFBQWEsQ0FBQyxJQUFhLEVBQUUsS0FBZTtRQUMxQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELGFBQWEsQ0FBQyxJQUFhO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELEtBQUssQ0FBQywyQkFBMkIsQ0FBQyxJQUFhO1FBQzdDLElBQUksSUFBSSxHQUFHLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUUxQyxJQUFHLElBQUksRUFBRTtZQUNQLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUNiO0lBQ0gsQ0FBQzs7c0VBL0RVLFdBQVc7aUVBQVgsV0FBVyxXQUFYLFdBQVcsbUJBRlYsTUFBTTt1RkFFUCxXQUFXO2NBSHZCLFVBQVU7ZUFBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN0b3JhZ2UgfSBmcm9tICdAaW9uaWMvc3RvcmFnZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgSGVscFNlcnZpY2Uge1xuXG4gIHByaXZhdGUgaGVscFByZWZlcmVuY2VzIDoge25hbWUgOiBzdHJpbmcsIHNob3dPbkxvYWQgOiBib29sZWFufVtdO1xuXG4gIHByaXZhdGUgc2hvd2luZyA6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBwcml2YXRlIHNob3dIZWxwQnV0dG9uIDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG5cbiAgY29uc3RydWN0b3IocHVibGljIHN0b3JhZ2UgOiBTdG9yYWdlKSB7IH1cblxuICBzZXR1cERlZmF1bHRIZWxwQmVoYXZpb3VyKHByZWZlcmVuY2VzIDoge25hbWUgOiBzdHJpbmcsIHNob3dPbkxvYWQgOiBib29sZWFufVtdKXtcbiAgICB0aGlzLmhlbHBQcmVmZXJlbmNlcyA9IHByZWZlcmVuY2VzO1xuXG4gICAgdGhpcy5zZXR1cFByZWZlcmVuY2VJblN0b3JhZ2VJZk5vdFByZXNlbnQoKTtcbiAgfVxuICBcbiAgcHJpdmF0ZSBzZXR1cFByZWZlcmVuY2VJblN0b3JhZ2VJZk5vdFByZXNlbnQoKSB7XG4gICAgdGhpcy5oZWxwUHJlZmVyZW5jZXNcbiAgICAgICAgLmZvckVhY2goYXN5bmMgcHJlZmVyZW5jZSA9PiB7XG4gICAgICAgICAgbGV0IHByZWYgPSBhd2FpdCB0aGlzLnN0b3JhZ2UuZ2V0KHByZWZlcmVuY2UubmFtZSk7XG4gICAgICAgICAgaWYocHJlZiA9PSBudWxsIHx8IHByZWYgPT0gdW5kZWZpbmVkKXtcbiAgICAgICAgICAgIHRoaXMuc3RvcmFnZS5zZXQocHJlZmVyZW5jZS5uYW1lLCBwcmVmZXJlbmNlLnNob3dPbkxvYWQpXG4gICAgICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgc2hvdygpe1xuICAgIHRoaXMuc2hvd2luZyA9IHRydWU7XG4gIH1cblxuICBoaWRlKCl7XG4gICAgdGhpcy5zaG93aW5nID0gZmFsc2U7XG4gIH1cblxuICBpc1Nob3dpbmcoKXtcbiAgICByZXR1cm4gdGhpcy5zaG93aW5nO1xuICB9XG5cbiAgc2V0SGVscEF2YWlsYWJpbGl0eShpc0F2YWlsYWJsZSA6IGJvb2xlYW4pe1xuICAgIGlmKCFpc0F2YWlsYWJsZSl7XG4gICAgICB0aGlzLmhpZGUoKTtcbiAgICB9XG4gICAgdGhpcy5zaG93SGVscEJ1dHRvbi5uZXh0KGlzQXZhaWxhYmxlKTtcbiAgfVxuXG4gIHNob3VsZERpc3BsYXlIZWxwQnV0dG9uKCl7XG4gICAgcmV0dXJuIHRoaXMuc2hvd0hlbHBCdXR0b247XG4gIH1cblxuICBzZXRQcmVmZXJlbmNlKG5hbWUgOiBzdHJpbmcsIHZhbHVlIDogYm9vbGVhbil7XG4gICAgdGhpcy5zdG9yYWdlLnNldChuYW1lLCB2YWx1ZSk7XG4gIH1cblxuICBnZXRQcmVmZXJlbmNlKG5hbWUgOiBzdHJpbmcpe1xuICAgIHJldHVybiB0aGlzLnN0b3JhZ2UuZ2V0KG5hbWUpO1xuICB9XG5cbiAgYXN5bmMgc2hvd0RpYWxvZ0lmUHJlZmVyZW5jZUFsbG93KG5hbWUgOiBzdHJpbmcpe1xuICAgIGxldCBwcmVmID0gYXdhaXQgdGhpcy5nZXRQcmVmZXJlbmNlKG5hbWUpO1xuXG4gICAgaWYocHJlZikge1xuICAgICAgdGhpcy5zaG93KCk7XG4gICAgfVxuICB9XG59XG4iXX0=
1
+ import { Injectable } from '@angular/core';
2
+ import { BehaviorSubject } from 'rxjs';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@ionic/storage-angular";
5
+ export class HelpService {
6
+ constructor(storage) {
7
+ this.storage = storage;
8
+ this.showing = false;
9
+ this.showHelpButton = new BehaviorSubject(false);
10
+ }
11
+ setupDefaultHelpBehaviour(preferences) {
12
+ this.helpPreferences = preferences;
13
+ this.setupPreferenceInStorageIfNotPresent();
14
+ }
15
+ setupPreferenceInStorageIfNotPresent() {
16
+ this.helpPreferences
17
+ .forEach(async (preference) => {
18
+ let pref = await this.storage.get(preference.name);
19
+ if (pref == null || pref == undefined) {
20
+ this.storage.set(preference.name, preference.showOnLoad);
21
+ }
22
+ });
23
+ }
24
+ show() {
25
+ this.showing = true;
26
+ }
27
+ hide() {
28
+ this.showing = false;
29
+ }
30
+ isShowing() {
31
+ return this.showing;
32
+ }
33
+ setHelpAvailability(isAvailable) {
34
+ if (!isAvailable) {
35
+ this.hide();
36
+ }
37
+ this.showHelpButton.next(isAvailable);
38
+ }
39
+ shouldDisplayHelpButton() {
40
+ return this.showHelpButton;
41
+ }
42
+ setPreference(name, value) {
43
+ this.storage.set(name, value);
44
+ }
45
+ getPreference(name) {
46
+ return this.storage.get(name);
47
+ }
48
+ async showDialogIfPreferenceAllow(name) {
49
+ let pref = await this.getPreference(name);
50
+ if (pref) {
51
+ this.show();
52
+ }
53
+ }
54
+ static { this.ɵfac = function HelpService_Factory(t) { return new (t || HelpService)(i0.ɵɵinject(i1.Storage)); }; }
55
+ static { thisprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: HelpService, factory: HelpService.ɵfac, providedIn: 'root' }); }
56
+ }
57
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(HelpService, [{
58
+ type: Injectable,
59
+ args: [{
60
+ providedIn: 'root'
61
+ }]
62
+ }], () => [{ type: i1.Storage }], null); })();
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJldXNhLWFwcC1saWIvc3JjL2xpYi9zZXJ2aWNlcy9oZWxwL2hlbHAuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7OztBQUt2QyxNQUFNLE9BQU8sV0FBVztJQVF0QixZQUFtQixPQUFpQjtRQUFqQixZQUFPLEdBQVAsT0FBTyxDQUFVO1FBSjVCLFlBQU8sR0FBYSxLQUFLLENBQUM7UUFFMUIsbUJBQWMsR0FBOEIsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7SUFFaEQsQ0FBQztJQUV6Qyx5QkFBeUIsQ0FBQyxXQUFxRDtRQUM3RSxJQUFJLENBQUMsZUFBZSxHQUFHLFdBQVcsQ0FBQztRQUVuQyxJQUFJLENBQUMsb0NBQW9DLEVBQUUsQ0FBQztJQUM5QyxDQUFDO0lBRU8sb0NBQW9DO1FBQzFDLElBQUksQ0FBQyxlQUFlO2FBQ2YsT0FBTyxDQUFDLEtBQUssRUFBQyxVQUFVLEVBQUMsRUFBRTtZQUMxQixJQUFJLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNuRCxJQUFHLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLFNBQVMsRUFBQztnQkFDbkMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUE7YUFDekQ7UUFDUCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxJQUFJO1FBQ0YsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7SUFDdEIsQ0FBQztJQUVELElBQUk7UUFDRixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztJQUN2QixDQUFDO0lBRUQsU0FBUztRQUNQLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBRUQsbUJBQW1CLENBQUMsV0FBcUI7UUFDdkMsSUFBRyxDQUFDLFdBQVcsRUFBQztZQUNkLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUNiO1FBQ0QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVELHVCQUF1QjtRQUNyQixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUM7SUFDN0IsQ0FBQztJQUVELGFBQWEsQ0FBQyxJQUFhLEVBQUUsS0FBZTtRQUMxQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELGFBQWEsQ0FBQyxJQUFhO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELEtBQUssQ0FBQywyQkFBMkIsQ0FBQyxJQUFhO1FBQzdDLElBQUksSUFBSSxHQUFHLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUUxQyxJQUFHLElBQUksRUFBRTtZQUNQLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUNiO0lBQ0gsQ0FBQzs0RUEvRFUsV0FBVzt1RUFBWCxXQUFXLFdBQVgsV0FBVyxtQkFGVixNQUFNOztpRkFFUCxXQUFXO2NBSHZCLFVBQVU7ZUFBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN0b3JhZ2UgfSBmcm9tICdAaW9uaWMvc3RvcmFnZS1hbmd1bGFyJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBIZWxwU2VydmljZSB7XG5cbiAgcHJpdmF0ZSBoZWxwUHJlZmVyZW5jZXMgOiB7bmFtZSA6IHN0cmluZywgc2hvd09uTG9hZCA6IGJvb2xlYW59W107XG5cbiAgcHJpdmF0ZSBzaG93aW5nIDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHByaXZhdGUgc2hvd0hlbHBCdXR0b24gOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgc3RvcmFnZSA6IFN0b3JhZ2UpIHsgfVxuXG4gIHNldHVwRGVmYXVsdEhlbHBCZWhhdmlvdXIocHJlZmVyZW5jZXMgOiB7bmFtZSA6IHN0cmluZywgc2hvd09uTG9hZCA6IGJvb2xlYW59W10pe1xuICAgIHRoaXMuaGVscFByZWZlcmVuY2VzID0gcHJlZmVyZW5jZXM7XG5cbiAgICB0aGlzLnNldHVwUHJlZmVyZW5jZUluU3RvcmFnZUlmTm90UHJlc2VudCgpO1xuICB9XG4gIFxuICBwcml2YXRlIHNldHVwUHJlZmVyZW5jZUluU3RvcmFnZUlmTm90UHJlc2VudCgpIHtcbiAgICB0aGlzLmhlbHBQcmVmZXJlbmNlc1xuICAgICAgICAuZm9yRWFjaChhc3luYyBwcmVmZXJlbmNlID0+IHtcbiAgICAgICAgICBsZXQgcHJlZiA9IGF3YWl0IHRoaXMuc3RvcmFnZS5nZXQocHJlZmVyZW5jZS5uYW1lKTtcbiAgICAgICAgICBpZihwcmVmID09IG51bGwgfHwgcHJlZiA9PSB1bmRlZmluZWQpe1xuICAgICAgICAgICAgdGhpcy5zdG9yYWdlLnNldChwcmVmZXJlbmNlLm5hbWUsIHByZWZlcmVuY2Uuc2hvd09uTG9hZClcbiAgICAgICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBzaG93KCl7XG4gICAgdGhpcy5zaG93aW5nID0gdHJ1ZTtcbiAgfVxuXG4gIGhpZGUoKXtcbiAgICB0aGlzLnNob3dpbmcgPSBmYWxzZTtcbiAgfVxuXG4gIGlzU2hvd2luZygpe1xuICAgIHJldHVybiB0aGlzLnNob3dpbmc7XG4gIH1cblxuICBzZXRIZWxwQXZhaWxhYmlsaXR5KGlzQXZhaWxhYmxlIDogYm9vbGVhbil7XG4gICAgaWYoIWlzQXZhaWxhYmxlKXtcbiAgICAgIHRoaXMuaGlkZSgpO1xuICAgIH1cbiAgICB0aGlzLnNob3dIZWxwQnV0dG9uLm5leHQoaXNBdmFpbGFibGUpO1xuICB9XG5cbiAgc2hvdWxkRGlzcGxheUhlbHBCdXR0b24oKXtcbiAgICByZXR1cm4gdGhpcy5zaG93SGVscEJ1dHRvbjtcbiAgfVxuXG4gIHNldFByZWZlcmVuY2UobmFtZSA6IHN0cmluZywgdmFsdWUgOiBib29sZWFuKXtcbiAgICB0aGlzLnN0b3JhZ2Uuc2V0KG5hbWUsIHZhbHVlKTtcbiAgfVxuXG4gIGdldFByZWZlcmVuY2UobmFtZSA6IHN0cmluZyl7XG4gICAgcmV0dXJuIHRoaXMuc3RvcmFnZS5nZXQobmFtZSk7XG4gIH1cblxuICBhc3luYyBzaG93RGlhbG9nSWZQcmVmZXJlbmNlQWxsb3cobmFtZSA6IHN0cmluZyl7XG4gICAgbGV0IHByZWYgPSBhd2FpdCB0aGlzLmdldFByZWZlcmVuY2UobmFtZSk7XG5cbiAgICBpZihwcmVmKSB7XG4gICAgICB0aGlzLnNob3coKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -1,159 +1,159 @@
1
- import { Injectable } from '@angular/core';
2
- import { DEFAULT_INTERRUPTSOURCES } from '@ng-idle/core';
3
- import { BehaviorSubject, interval, timer } from 'rxjs';
4
- import { take } from 'rxjs/operators';
5
- import { LibConstants } from '../../models/LibConstants';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "../logger/logger.service";
8
- import * as i2 from "@ng-idle/core";
9
- import * as i3 from "../login/login.service";
10
- import * as i4 from "@ionic/angular";
11
- import * as i5 from "@ng-idle/keepalive";
12
- /**
13
- * This service will automatically extend user's session by refreshing access_token if the validity of access token is less than 120s and
14
- * user is not idle on the screen.
15
- *
16
- * @author Prerak Tiwari
17
- */
18
- export class IdleService {
19
- constructor(logger, idle, ls, nav, keepalive) {
20
- this.logger = logger;
21
- this.idle = idle;
22
- this.ls = ls;
23
- this.nav = nav;
24
- this.keepalive = keepalive;
25
- this.timerInterval = interval(1000); //1s
26
- this.timer = timer(120000); //30s
27
- this.time = 120;
28
- this.countDown = this.timerInterval.pipe(take(this.time));
29
- this.counter = new BehaviorSubject(0);
30
- this.lastPing = null;
31
- this.showSessionTimeoutWarning = new BehaviorSubject(false);
32
- this.logger.log('[IdleService] IdleService Initialized');
33
- }
34
- setupIdalTimeout() {
35
- // sets an idle timeout of 180 seconds
36
- this.idle.setIdle(LibConstants.idleTime);
37
- // sets a timeout period of 120 seconds. after 300 seconds of inactivity, the user will be considered timed out.
38
- this.idle.setTimeout(LibConstants.timeOutPeriod);
39
- // sets the default interrupts, in this case, things like clicks, scrolls, touches to the document
40
- this.idle.setInterrupts(DEFAULT_INTERRUPTSOURCES);
41
- this.idle.onIdleStart.subscribe(() => {
42
- this.unsubscribe();
43
- this.showSessionTimeoutWarning.next(true);
44
- this.counterSubscription = this.countDown.subscribe(val => {
45
- this.counter.next(this.time - val);
46
- });
47
- this.counterEndSubscription = this.timer.subscribe(val => {
48
- this.logout();
49
- });
50
- });
51
- // sets the ping interval to 15 seconds
52
- this.keepalive.interval(15);
53
- this.keepalive.onPing.subscribe(() => this.lastPing = new Date());
54
- this.ls.getUserBs().subscribe(user => {
55
- if (user) {
56
- this.logger.log('IdleService watching');
57
- this.sessionValidityTill = this.addSeconds(new Date(), user.expires_in);
58
- this.idle.watch();
59
- }
60
- else {
61
- this.idle.stop();
62
- this.logger.log('IdleService stopped');
63
- }
64
- });
65
- }
66
- reset() {
67
- this.idle.watch();
68
- this.showSessionTimeoutWarning.next(false);
69
- if (this.counterSubscription) {
70
- this.counterSubscription.unsubscribe();
71
- }
72
- if (this.counterEndSubscription) {
73
- this.counterEndSubscription.unsubscribe();
74
- }
75
- this.setupSessionObserver();
76
- this.checkSessionValidity();
77
- }
78
- stay() {
79
- //this.childModal.hide();
80
- this.reset();
81
- }
82
- setupSessionTimeoutObserver() {
83
- this.ls.getUserBs().subscribe(user => {
84
- if (user) {
85
- this.logger.log('[IdleService] Subscribing Session Observer');
86
- this.sessionValidityTill = this.addSeconds(new Date(), user.expires_in);
87
- this.setupSessionObserver();
88
- }
89
- else {
90
- this.logger.log('[IdleService] Unsubscribing Session Observer');
91
- this.unsubscribe();
92
- }
93
- });
94
- }
95
- setupSessionObserver() {
96
- this.unsubscribe();
97
- const source = interval(15000);
98
- this.sessionValiditysubscription = source.subscribe(val => this.checkSessionValidity());
99
- }
100
- unsubscribe() {
101
- if (this.sessionValiditysubscription) {
102
- this.sessionValiditysubscription.unsubscribe();
103
- }
104
- }
105
- checkSessionValidity() {
106
- let isIdle = this.idle.isIdling();
107
- if (!isIdle) {
108
- let tokenExpTime = this.sessionValidityTill;
109
- let now = new Date();
110
- let diffInSec = Math.ceil((tokenExpTime.getTime() - now.getTime()) / 1000);
111
- this.logger.log('[IdleService] diffInSec', diffInSec);
112
- if (diffInSec < 120) {
113
- this.unsubscribe();
114
- this.logger.log('[IdleService] Initiating Refresh Token as session is active and user is active');
115
- this.ls
116
- .refreshToken(this.ls.getUser().refresh_token)
117
- .then(async (res) => {
118
- await this.ls.setUser(res).then(res => res);
119
- return true;
120
- })
121
- .catch(err => {
122
- this.logger.error('[IdleService] error while refreshing token', err);
123
- return false;
124
- });
125
- }
126
- else {
127
- this.logger.log('[IdleService] NOT Initiating Refresh Token as session is active');
128
- }
129
- }
130
- else {
131
- this.logger.log('[IdleService] NOT Initiating Refresh Token as session is idle and it will be timeout automatically.');
132
- }
133
- }
134
- logout() {
135
- //this.childModal.hide();
136
- this.ls.logout();
137
- this.nav.navigateRoot('/login');
138
- this.showSessionTimeoutWarning.next(false);
139
- if (this.counterSubscription) {
140
- this.counterSubscription.unsubscribe();
141
- }
142
- if (this.counterEndSubscription) {
143
- this.counterEndSubscription.unsubscribe();
144
- }
145
- }
146
- addSeconds(date, secToAdd) {
147
- date.setSeconds(date.getSeconds() + secToAdd);
148
- return date;
149
- }
150
- }
151
- IdleServicefac = function IdleService_Factory(t) { return new (t || IdleService)(i0.ɵɵinject(i1.LoggerService), i0.ɵɵinject(i2.Idle), i0.ɵɵinject(i3.LoginService), i0.ɵɵinject(i4.NavController), i0.ɵɵinject(i5.Keepalive)); };
152
- IdleService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: IdleService, factory: IdleService.ɵfac, providedIn: 'root' });
153
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(IdleService, [{
154
- type: Injectable,
155
- args: [{
156
- providedIn: 'root'
157
- }]
158
- }], function () { return [{ type: i1.LoggerService }, { type: i2.Idle }, { type: i3.LoginService }, { type: i4.NavController }, { type: i5.Keepalive }]; }, null); })();
159
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWRsZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJldXNhLWFwcC1saWIvc3JjL2xpYi9zZXJ2aWNlcy9pZGxlL2lkbGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSx3QkFBd0IsRUFBUSxNQUFNLGVBQWUsQ0FBQztBQUUvRCxPQUFPLEVBQUUsZUFBZSxFQUFFLFFBQVEsRUFBZ0IsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7Ozs7Ozs7QUFJekQ7Ozs7O0dBS0c7QUFJSCxNQUFNLE9BQU8sV0FBVztJQWV0QixZQUFxQixNQUFxQixFQUFTLElBQVUsRUFBVSxFQUFpQixFQUFVLEdBQWtCLEVBQVUsU0FBb0I7UUFBN0gsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUFTLFNBQUksR0FBSixJQUFJLENBQU07UUFBVSxPQUFFLEdBQUYsRUFBRSxDQUFlO1FBQVUsUUFBRyxHQUFILEdBQUcsQ0FBZTtRQUFVLGNBQVMsR0FBVCxTQUFTLENBQVc7UUFiM0ksa0JBQWEsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJO1FBQ3BDLFVBQUssR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNO1FBQ3BDLFNBQUksR0FBRyxHQUFHLENBQUM7UUFDSixjQUFTLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ3JELFlBQU8sR0FBNkIsSUFBSSxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbEUs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QUFDO1FBQ2pCLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2hDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0MsSUFBRyxJQUFJLENBQUMsbUJBQW1CLEVBQUM7WUFDMUIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ3hDO1FBQ0QsSUFBRyxJQUFJLENBQUMsc0JBQXNCLEVBQUM7WUFDN0IsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQzNDO0lBQ0gsQ0FBQztJQUVELFVBQVUsQ0FBQyxJQUFZLEVBQUUsUUFBaUI7UUFDeEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEdBQUcsUUFBUSxDQUFDLENBQUM7UUFDOUMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDOztzRUFoSlUsV0FBVztpRUFBWCxXQUFXLFdBQVgsV0FBVyxtQkFGVixNQUFNO3VGQUVQLFdBQVc7Y0FIdkIsVUFBVTtlQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmF2Q29udHJvbGxlciB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcbmltcG9ydCB7IERFRkFVTFRfSU5URVJSVVBUU09VUkNFUywgSWRsZSB9IGZyb20gJ0BuZy1pZGxlL2NvcmUnO1xuaW1wb3J0IHsgS2VlcGFsaXZlIH0gZnJvbSAnQG5nLWlkbGUva2VlcGFsaXZlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgaW50ZXJ2YWwsIFN1YnNjcmlwdGlvbiwgdGltZXIgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBMaWJDb25zdGFudHMgfSBmcm9tICcuLi8uLi9tb2RlbHMvTGliQ29uc3RhbnRzJztcbmltcG9ydCB7IExvZ2dlclNlcnZpY2UgfSBmcm9tICcuLi9sb2dnZXIvbG9nZ2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgTG9naW5TZXJ2aWNlIH0gZnJvbSAnLi4vbG9naW4vbG9naW4uc2VydmljZSc7XG5cbi8qKlxuICogVGhpcyBzZXJ2aWNlIHdpbGwgYXV0b21hdGljYWxseSBleHRlbmQgdXNlcidzIHNlc3Npb24gYnkgcmVmcmVzaGluZyBhY2Nlc3NfdG9rZW4gaWYgdGhlIHZhbGlkaXR5IG9mIGFjY2VzcyB0b2tlbiBpcyBsZXNzIHRoYW4gMTIwcyBhbmQgXG4gKiB1c2VyIGlzIG5vdCBpZGxlIG9uIHRoZSBzY3JlZW4uXG4gKiBcbiAqIEBhdXRob3IgUHJlcmFrIFRpd2FyaVxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBJZGxlU2VydmljZSB7XG4gIHByaXZhdGUgc2Vzc2lvblZhbGlkaXR5VGlsbCA6IERhdGU7XG4gIHB1YmxpYyB0aW1lckludGVydmFsID0gaW50ZXJ2YWwoMTAwMCk7IC8vMXNcbiAgcHVibGljIHRpbWVyID0gdGltZXIoMTIwMDAwKTsgLy8zMHMgXG4gIHRpbWUgPSAxMjA7XG4gIHB1YmxpYyBjb3VudERvd24gPSB0aGlzLnRpbWVySW50ZXJ2YWwucGlwZSh0YWtlKHRoaXMudGltZSkpO1xuICBwdWJsaWMgY291bnRlciA6IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+ID0gbmV3IEJlaGF2aW9yU3ViamVjdCgwKTtcbiAgbGFzdFBpbmc/OiBEYXRlID0gbnVsbDtcblxuICBjb3VudGVyU3Vic2NyaXB0aW9uIDogU3Vic2NyaXB0aW9uO1xuICBjb3VudGVyRW5kU3Vic2NyaXB0aW9uIDogU3Vic2NyaXB0aW9uO1xuICBzZXNzaW9uVmFsaWRpdHlzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICBwdWJsaWMgc2hvd1Nlc3Npb25UaW1lb3V0V2FybmluZyA6IEJlaGF2aW9yU3ViamVjdDxCb29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuXG4gIGNvbnN0cnVjdG9yKCBwcml2YXRlIGxvZ2dlcjogTG9nZ2VyU2VydmljZSAscHVibGljIGlkbGU6IElkbGUsIHByaXZhdGUgbHMgOiBMb2dpblNlcnZpY2UsIHByaXZhdGUgbmF2OiBOYXZDb250cm9sbGVyLCBwcml2YXRlIGtlZXBhbGl2ZTogS2VlcGFsaXZlKSB7IFxuICAgIHRoaXMubG9nZ2VyLmxvZygnW0lkbGVTZXJ2aWNlXSBJZGxlU2VydmljZSBJbml0aWFsaXplZCcpO1xuICB9XG5cbiAgc2V0dXBJZGFsVGltZW91dCgpe1xuICAgIC8vIHNldHMgYW4gaWRsZSB0aW1lb3V0IG9mIDE4MCBzZWNvbmRzXG4gICAgdGhpcy5pZGxlLnNldElkbGUoTGliQ29uc3RhbnRzLmlkbGVUaW1lKTtcbiAgICAvLyBzZXRzIGEgdGltZW91dCBwZXJpb2Qgb2YgMTIwIHNlY29uZHMuIGFmdGVyIDMwMCBzZWNvbmRzIG9mIGluYWN0aXZpdHksIHRoZSB1c2VyIHdpbGwgYmUgY29uc2lkZXJlZCB0aW1lZCBvdXQuXG4gICAgdGhpcy5pZGxlLnNldFRpbWVvdXQoTGliQ29uc3RhbnRzLnRpbWVPdXRQZXJpb2QpO1xuICAgIC8vIHNldHMgdGhlIGRlZmF1bHQgaW50ZXJydXB0cywgaW4gdGhpcyBjYXNlLCB0aGluZ3MgbGlrZSBjbGlja3MsIHNjcm9sbHMsIHRvdWNoZXMgdG8gdGhlIGRvY3VtZW50XG4gICAgdGhpcy5pZGxlLnNldEludGVycnVwdHMoREVGQVVMVF9JTlRFUlJVUFRTT1VSQ0VTKTtcblxuICAgIHRoaXMuaWRsZS5vbklkbGVTdGFydC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMuc2hvd1Nlc3Npb25UaW1lb3V0V2FybmluZy5uZXh0KHRydWUpO1xuICAgICAgICB0aGlzLmNvdW50ZXJTdWJzY3JpcHRpb24gPSB0aGlzLmNvdW50RG93bi5zdWJzY3JpYmUodmFsID0+e1xuICAgICAgICAgIHRoaXMuY291bnRlci5uZXh0KHRoaXMudGltZSAtIHZhbCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuY291bnRlckVuZFN1YnNjcmlwdGlvbiA9IHRoaXMudGltZXIuc3Vic2NyaWJlKHZhbCA9PiB7XG4gICAgICAgICAgdGhpcy5sb2dvdXQoKTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICAvLyBzZXRzIHRoZSBwaW5nIGludGVydmFsIHRvIDE1IHNlY29uZHNcbiAgICB0aGlzLmtlZXBhbGl2ZS5pbnRlcnZhbCgxNSk7XG5cbiAgICB0aGlzLmtlZXBhbGl2ZS5vblBpbmcuc3Vic2NyaWJlKCgpID0+IHRoaXMubGFzdFBpbmcgPSBuZXcgRGF0ZSgpKTtcblxuICAgIHRoaXMubHMuZ2V0VXNlckJzKCkuc3Vic2NyaWJlKHVzZXIgPT4ge1xuICAgICAgaWYodXNlcil7XG4gICAgICAgIHRoaXMubG9nZ2VyLmxvZygnSWRsZVNlcnZpY2Ugd2F0Y2hpbmcnKTtcbiAgICAgICAgdGhpcy5zZXNzaW9uVmFsaWRpdHlUaWxsID0gdGhpcy5hZGRTZWNvbmRzKG5ldyBEYXRlKCksIHVzZXIuZXhwaXJlc19pbik7XG4gICAgICAgIHRoaXMuaWRsZS53YXRjaCgpXG4gICAgICB9ZWxzZSB7XG4gICAgICAgIHRoaXMuaWRsZS5zdG9wKCk7XG4gICAgICAgIHRoaXMubG9nZ2VyLmxvZygnSWRsZVNlcnZpY2Ugc3RvcHBlZCcpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcmVzZXQoKSB7XG4gICAgdGhpcy5pZGxlLndhdGNoKCk7XG4gICAgdGhpcy5zaG93U2Vzc2lvblRpbWVvdXRXYXJuaW5nLm5leHQoZmFsc2UpO1xuICAgIGlmKHRoaXMuY291bnRlclN1YnNjcmlwdGlvbil7XG4gICAgICB0aGlzLmNvdW50ZXJTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gICAgaWYodGhpcy5jb3VudGVyRW5kU3Vic2NyaXB0aW9uKXtcbiAgICAgIHRoaXMuY291bnRlckVuZFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgICB0aGlzLnNldHVwU2Vzc2lvbk9ic2VydmVyKCk7XG4gICAgdGhpcy5jaGVja1Nlc3Npb25WYWxpZGl0eSgpO1xuICB9XG5cbiAgc3RheSgpIHtcbiAgICAvL3RoaXMuY2hpbGRNb2RhbC5oaWRlKCk7XG4gICAgdGhpcy5yZXNldCgpO1xuICB9XG4gIFxuXG4gIHNldHVwU2Vzc2lvblRpbWVvdXRPYnNlcnZlcigpe1xuICAgIHRoaXMubHMuZ2V0VXNlckJzKCkuc3Vic2NyaWJlKHVzZXIgPT4ge1xuICAgICAgaWYodXNlcil7XG4gICAgICAgIHRoaXMubG9nZ2VyLmxvZygnW0lkbGVTZXJ2aWNlXSBTdWJzY3JpYmluZyBTZXNzaW9uIE9ic2VydmVyJyk7XG4gICAgICAgIHRoaXMuc2Vzc2lvblZhbGlkaXR5VGlsbCA9IHRoaXMuYWRkU2Vjb25kcyhuZXcgRGF0ZSgpLCB1c2VyLmV4cGlyZXNfaW4pO1xuICAgICAgICB0aGlzLnNldHVwU2Vzc2lvbk9ic2VydmVyKCk7XG4gICAgICB9ZWxzZSB7XG4gICAgICAgIHRoaXMubG9nZ2VyLmxvZygnW0lkbGVTZXJ2aWNlXSBVbnN1YnNjcmliaW5nIFNlc3Npb24gT2JzZXJ2ZXInKTtcbiAgICAgICAgdGhpcy51bnN1YnNjcmliZSgpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgc2V0dXBTZXNzaW9uT2JzZXJ2ZXIoKXtcbiAgICB0aGlzLnVuc3Vic2NyaWJlKCk7XG4gICAgY29uc3Qgc291cmNlID0gaW50ZXJ2YWwoMTUwMDApO1xuICAgIHRoaXMuc2Vzc2lvblZhbGlkaXR5c3Vic2NyaXB0aW9uID0gc291cmNlLnN1YnNjcmliZSh2YWwgPT4gdGhpcy5jaGVja1Nlc3Npb25WYWxpZGl0eSgpKTtcbiAgfVxuXG4gIHByaXZhdGUgdW5zdWJzY3JpYmUoKSB7XG4gICAgaWYgKHRoaXMuc2Vzc2lvblZhbGlkaXR5c3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLnNlc3Npb25WYWxpZGl0eXN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIGNoZWNrU2Vzc2lvblZhbGlkaXR5KCl7XG4gICAgbGV0IGlzSWRsZSA9IHRoaXMuaWRsZS5pc0lkbGluZygpO1xuICAgIGlmKCFpc0lkbGUpe1xuICAgICAgbGV0IHRva2VuRXhwVGltZSA9IHRoaXMuc2Vzc2lvblZhbGlkaXR5VGlsbDtcbiAgICAgIGxldCBub3cgPSBuZXcgRGF0ZSgpO1xuICAgICAgbGV0IGRpZmZJblNlYyA9IE1hdGguY2VpbCgodG9rZW5FeHBUaW1lLmdldFRpbWUoKSAtIG5vdy5nZXRUaW1lKCkpLzEwMDApO1xuICAgICAgdGhpcy5sb2dnZXIubG9nKCdbSWRsZVNlcnZpY2VdIGRpZmZJblNlYycsIGRpZmZJblNlYyk7XG4gICAgICBpZihkaWZmSW5TZWMgPCAxMjApe1xuICAgICAgICB0aGlzLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMubG9nZ2VyLmxvZygnW0lkbGVTZXJ2aWNlXSBJbml0aWF0aW5nIFJlZnJlc2ggVG9rZW4gYXMgc2Vzc2lvbiBpcyBhY3RpdmUgYW5kIHVzZXIgaXMgYWN0aXZlJyk7XG4gICAgICAgIHRoaXMubHNcbiAgICAgICAgICAgIC5yZWZyZXNoVG9rZW4odGhpcy5scy5nZXRVc2VyKCkucmVmcmVzaF90b2tlbilcbiAgICAgICAgICAgIC50aGVuKGFzeW5jIHJlcyA9PiB7XG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5scy5zZXRVc2VyKHJlcykudGhlbihyZXMgPT4gcmVzKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuY2F0Y2goZXJyID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmxvZ2dlci5lcnJvcignW0lkbGVTZXJ2aWNlXSBlcnJvciB3aGlsZSByZWZyZXNoaW5nIHRva2VuJywgZXJyKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9KTtcbiAgICAgIH1lbHNle1xuICAgICAgICB0aGlzLmxvZ2dlci5sb2coJ1tJZGxlU2VydmljZV0gTk9UIEluaXRpYXRpbmcgUmVmcmVzaCBUb2tlbiBhcyBzZXNzaW9uIGlzIGFjdGl2ZScpO1xuICAgICAgfVxuICAgIH1lbHNlIHtcbiAgICAgIHRoaXMubG9nZ2VyLmxvZygnW0lkbGVTZXJ2aWNlXSBOT1QgSW5pdGlhdGluZyBSZWZyZXNoIFRva2VuIGFzIHNlc3Npb24gaXMgaWRsZSBhbmQgaXQgd2lsbCBiZSB0aW1lb3V0IGF1dG9tYXRpY2FsbHkuJyk7XG4gICAgfVxuICB9XG5cbiAgbG9nb3V0KCkge1xuICAgIC8vdGhpcy5jaGlsZE1vZGFsLmhpZGUoKTtcbiAgICB0aGlzLmxzLmxvZ291dCgpO1xuICAgIHRoaXMubmF2Lm5hdmlnYXRlUm9vdCgnL2xvZ2luJyk7XG4gICAgdGhpcy5zaG93U2Vzc2lvblRpbWVvdXRXYXJuaW5nLm5leHQoZmFsc2UpO1xuICAgIGlmKHRoaXMuY291bnRlclN1YnNjcmlwdGlvbil7XG4gICAgICB0aGlzLmNvdW50ZXJTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gICAgaWYodGhpcy5jb3VudGVyRW5kU3Vic2NyaXB0aW9uKXtcbiAgICAgIHRoaXMuY291bnRlckVuZFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIGFkZFNlY29uZHMoZGF0ZSA6ICBEYXRlLCBzZWNUb0FkZCA6IG51bWJlcil7XG4gICAgZGF0ZS5zZXRTZWNvbmRzKGRhdGUuZ2V0U2Vjb25kcygpICsgc2VjVG9BZGQpO1xuICAgIHJldHVybiBkYXRlO1xuICB9XG59XG4iXX0=
1
+ import { Injectable } from '@angular/core';
2
+ import { DEFAULT_INTERRUPTSOURCES } from '@ng-idle/core';
3
+ import { BehaviorSubject, interval, timer } from 'rxjs';
4
+ import { take } from 'rxjs/operators';
5
+ import { LibConstants } from '../../models/LibConstants';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "../logger/logger.service";
8
+ import * as i2 from "@ng-idle/core";
9
+ import * as i3 from "../login/login.service";
10
+ import * as i4 from "@ionic/angular";
11
+ import * as i5 from "@ng-idle/keepalive";
12
+ /**
13
+ * This service will automatically extend user's session by refreshing access_token if the validity of access token is less than 120s and
14
+ * user is not idle on the screen.
15
+ *
16
+ * @author Prerak Tiwari
17
+ */
18
+ export class IdleService {
19
+ constructor(logger, idle, ls, nav, keepalive) {
20
+ this.logger = logger;
21
+ this.idle = idle;
22
+ this.ls = ls;
23
+ this.nav = nav;
24
+ this.keepalive = keepalive;
25
+ this.timerInterval = interval(1000); //1s
26
+ this.timer = timer(120000); //30s
27
+ this.time = 120;
28
+ this.countDown = this.timerInterval.pipe(take(this.time));
29
+ this.counter = new BehaviorSubject(0);
30
+ this.lastPing = null;
31
+ this.showSessionTimeoutWarning = new BehaviorSubject(false);
32
+ this.logger.log('[IdleService] IdleService Initialized');
33
+ }
34
+ setupIdalTimeout() {
35
+ // sets an idle timeout of 180 seconds
36
+ this.idle.setIdle(LibConstants.idleTime);
37
+ // sets a timeout period of 120 seconds. after 300 seconds of inactivity, the user will be considered timed out.
38
+ this.idle.setTimeout(LibConstants.timeOutPeriod);
39
+ // sets the default interrupts, in this case, things like clicks, scrolls, touches to the document
40
+ this.idle.setInterrupts(DEFAULT_INTERRUPTSOURCES);
41
+ this.idle.onIdleStart.subscribe(() => {
42
+ this.unsubscribe();
43
+ this.showSessionTimeoutWarning.next(true);
44
+ this.counterSubscription = this.countDown.subscribe(val => {
45
+ this.counter.next(this.time - val);
46
+ });
47
+ this.counterEndSubscription = this.timer.subscribe(val => {
48
+ this.logout();
49
+ });
50
+ });
51
+ // sets the ping interval to 15 seconds
52
+ this.keepalive.interval(15);
53
+ this.keepalive.onPing.subscribe(() => this.lastPing = new Date());
54
+ this.ls.getUserBs().subscribe(user => {
55
+ if (user) {
56
+ this.logger.log('IdleService watching');
57
+ this.sessionValidityTill = this.addSeconds(new Date(), user.expires_in);
58
+ this.idle.watch();
59
+ }
60
+ else {
61
+ this.idle.stop();
62
+ this.logger.log('IdleService stopped');
63
+ }
64
+ });
65
+ }
66
+ reset() {
67
+ this.idle.watch();
68
+ this.showSessionTimeoutWarning.next(false);
69
+ if (this.counterSubscription) {
70
+ this.counterSubscription.unsubscribe();
71
+ }
72
+ if (this.counterEndSubscription) {
73
+ this.counterEndSubscription.unsubscribe();
74
+ }
75
+ this.setupSessionObserver();
76
+ this.checkSessionValidity();
77
+ }
78
+ stay() {
79
+ //this.childModal.hide();
80
+ this.reset();
81
+ }
82
+ setupSessionTimeoutObserver() {
83
+ this.ls.getUserBs().subscribe(user => {
84
+ if (user) {
85
+ this.logger.log('[IdleService] Subscribing Session Observer');
86
+ this.sessionValidityTill = this.addSeconds(new Date(), user.expires_in);
87
+ this.setupSessionObserver();
88
+ }
89
+ else {
90
+ this.logger.log('[IdleService] Unsubscribing Session Observer');
91
+ this.unsubscribe();
92
+ }
93
+ });
94
+ }
95
+ setupSessionObserver() {
96
+ this.unsubscribe();
97
+ const source = interval(15000);
98
+ this.sessionValiditysubscription = source.subscribe(val => this.checkSessionValidity());
99
+ }
100
+ unsubscribe() {
101
+ if (this.sessionValiditysubscription) {
102
+ this.sessionValiditysubscription.unsubscribe();
103
+ }
104
+ }
105
+ checkSessionValidity() {
106
+ let isIdle = this.idle.isIdling();
107
+ if (!isIdle) {
108
+ let tokenExpTime = this.sessionValidityTill;
109
+ let now = new Date();
110
+ let diffInSec = Math.ceil((tokenExpTime.getTime() - now.getTime()) / 1000);
111
+ this.logger.log('[IdleService] diffInSec', diffInSec);
112
+ if (diffInSec < 120) {
113
+ this.unsubscribe();
114
+ this.logger.log('[IdleService] Initiating Refresh Token as session is active and user is active');
115
+ this.ls
116
+ .refreshToken(this.ls.getUser().refresh_token)
117
+ .then(async (res) => {
118
+ await this.ls.setUser(res).then(res => res);
119
+ return true;
120
+ })
121
+ .catch(err => {
122
+ this.logger.error('[IdleService] error while refreshing token', err);
123
+ return false;
124
+ });
125
+ }
126
+ else {
127
+ this.logger.log('[IdleService] NOT Initiating Refresh Token as session is active');
128
+ }
129
+ }
130
+ else {
131
+ this.logger.log('[IdleService] NOT Initiating Refresh Token as session is idle and it will be timeout automatically.');
132
+ }
133
+ }
134
+ logout() {
135
+ //this.childModal.hide();
136
+ this.ls.logout();
137
+ this.nav.navigateRoot('/login');
138
+ this.showSessionTimeoutWarning.next(false);
139
+ if (this.counterSubscription) {
140
+ this.counterSubscription.unsubscribe();
141
+ }
142
+ if (this.counterEndSubscription) {
143
+ this.counterEndSubscription.unsubscribe();
144
+ }
145
+ }
146
+ addSeconds(date, secToAdd) {
147
+ date.setSeconds(date.getSeconds() + secToAdd);
148
+ return date;
149
+ }
150
+ static { this.ɵfac = function IdleService_Factory(t) { return new (t || IdleService)(i0.ɵɵinject(i1.LoggerService), i0.ɵɵinject(i2.Idle), i0.ɵɵinject(i3.LoginService), i0.ɵɵinject(i4.NavController), i0.ɵɵinject(i5.Keepalive)); }; }
151
+ static { thisprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: IdleService, factory: IdleService.ɵfac, providedIn: 'root' }); }
152
+ }
153
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(IdleService, [{
154
+ type: Injectable,
155
+ args: [{
156
+ providedIn: 'root'
157
+ }]
158
+ }], () => [{ type: i1.LoggerService }, { type: i2.Idle }, { type: i3.LoginService }, { type: i4.NavController }, { type: i5.Keepalive }], null); })();
159
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWRsZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJldXNhLWFwcC1saWIvc3JjL2xpYi9zZXJ2aWNlcy9pZGxlL2lkbGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSx3QkFBd0IsRUFBUSxNQUFNLGVBQWUsQ0FBQztBQUUvRCxPQUFPLEVBQUUsZUFBZSxFQUFFLFFBQVEsRUFBZ0IsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7Ozs7Ozs7QUFJekQ7Ozs7O0dBS0c7QUFJSCxNQUFNLE9BQU8sV0FBVztJQWV0QixZQUFxQixNQUFxQixFQUFTLElBQVUsRUFBVSxFQUFpQixFQUFVLEdBQWtCLEVBQVUsU0FBb0I7UUFBN0gsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUFTLFNBQUksR0FBSixJQUFJLENBQU07UUFBVSxPQUFFLEdBQUYsRUFBRSxDQUFlO1FBQVUsUUFBRyxHQUFILEdBQUcsQ0FBZTtRQUFVLGNBQVMsR0FBVCxTQUFTLENBQVc7UUFiM0ksa0JBQWEsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJO1FBQ3BDLFVBQUssR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNO1FBQ3BDLFNBQUksR0FBRyxHQUFHLENBQUM7UUFDSixjQUFTLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ3JELFlBQU8sR0FBNkIsSUFBSSxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbEUs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QUFDO1FBQ2pCLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2hDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0MsSUFBRyxJQUFJLENBQUMsbUJBQW1CLEVBQUM7WUFDMUIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ3hDO1FBQ0QsSUFBRyxJQUFJLENBQUMsc0JBQXNCLEVBQUM7WUFDN0IsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQzNDO0lBQ0gsQ0FBQztJQUVELFVBQVUsQ0FBQyxJQUFZLEVBQUUsUUFBaUI7UUFDeEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEdBQUcsUUFBUSxDQUFDLENBQUM7UUFDOUMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDOzRFQWhKVSxXQUFXO3VFQUFYLFdBQVcsV0FBWCxXQUFXLG1CQUZWLE1BQU07O2lGQUVQLFdBQVc7Y0FIdkIsVUFBVTtlQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmF2Q29udHJvbGxlciB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcbmltcG9ydCB7IERFRkFVTFRfSU5URVJSVVBUU09VUkNFUywgSWRsZSB9IGZyb20gJ0BuZy1pZGxlL2NvcmUnO1xuaW1wb3J0IHsgS2VlcGFsaXZlIH0gZnJvbSAnQG5nLWlkbGUva2VlcGFsaXZlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgaW50ZXJ2YWwsIFN1YnNjcmlwdGlvbiwgdGltZXIgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBMaWJDb25zdGFudHMgfSBmcm9tICcuLi8uLi9tb2RlbHMvTGliQ29uc3RhbnRzJztcbmltcG9ydCB7IExvZ2dlclNlcnZpY2UgfSBmcm9tICcuLi9sb2dnZXIvbG9nZ2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgTG9naW5TZXJ2aWNlIH0gZnJvbSAnLi4vbG9naW4vbG9naW4uc2VydmljZSc7XG5cbi8qKlxuICogVGhpcyBzZXJ2aWNlIHdpbGwgYXV0b21hdGljYWxseSBleHRlbmQgdXNlcidzIHNlc3Npb24gYnkgcmVmcmVzaGluZyBhY2Nlc3NfdG9rZW4gaWYgdGhlIHZhbGlkaXR5IG9mIGFjY2VzcyB0b2tlbiBpcyBsZXNzIHRoYW4gMTIwcyBhbmQgXG4gKiB1c2VyIGlzIG5vdCBpZGxlIG9uIHRoZSBzY3JlZW4uXG4gKiBcbiAqIEBhdXRob3IgUHJlcmFrIFRpd2FyaVxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBJZGxlU2VydmljZSB7XG4gIHByaXZhdGUgc2Vzc2lvblZhbGlkaXR5VGlsbCA6IERhdGU7XG4gIHB1YmxpYyB0aW1lckludGVydmFsID0gaW50ZXJ2YWwoMTAwMCk7IC8vMXNcbiAgcHVibGljIHRpbWVyID0gdGltZXIoMTIwMDAwKTsgLy8zMHMgXG4gIHRpbWUgPSAxMjA7XG4gIHB1YmxpYyBjb3VudERvd24gPSB0aGlzLnRpbWVySW50ZXJ2YWwucGlwZSh0YWtlKHRoaXMudGltZSkpO1xuICBwdWJsaWMgY291bnRlciA6IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+ID0gbmV3IEJlaGF2aW9yU3ViamVjdCgwKTtcbiAgbGFzdFBpbmc/OiBEYXRlID0gbnVsbDtcblxuICBjb3VudGVyU3Vic2NyaXB0aW9uIDogU3Vic2NyaXB0aW9uO1xuICBjb3VudGVyRW5kU3Vic2NyaXB0aW9uIDogU3Vic2NyaXB0aW9uO1xuICBzZXNzaW9uVmFsaWRpdHlzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICBwdWJsaWMgc2hvd1Nlc3Npb25UaW1lb3V0V2FybmluZyA6IEJlaGF2aW9yU3ViamVjdDxCb29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuXG4gIGNvbnN0cnVjdG9yKCBwcml2YXRlIGxvZ2dlcjogTG9nZ2VyU2VydmljZSAscHVibGljIGlkbGU6IElkbGUsIHByaXZhdGUgbHMgOiBMb2dpblNlcnZpY2UsIHByaXZhdGUgbmF2OiBOYXZDb250cm9sbGVyLCBwcml2YXRlIGtlZXBhbGl2ZTogS2VlcGFsaXZlKSB7IFxuICAgIHRoaXMubG9nZ2VyLmxvZygnW0lkbGVTZXJ2aWNlXSBJZGxlU2VydmljZSBJbml0aWFsaXplZCcpO1xuICB9XG5cbiAgc2V0dXBJZGFsVGltZW91dCgpe1xuICAgIC8vIHNldHMgYW4gaWRsZSB0aW1lb3V0IG9mIDE4MCBzZWNvbmRzXG4gICAgdGhpcy5pZGxlLnNldElkbGUoTGliQ29uc3RhbnRzLmlkbGVUaW1lKTtcbiAgICAvLyBzZXRzIGEgdGltZW91dCBwZXJpb2Qgb2YgMTIwIHNlY29uZHMuIGFmdGVyIDMwMCBzZWNvbmRzIG9mIGluYWN0aXZpdHksIHRoZSB1c2VyIHdpbGwgYmUgY29uc2lkZXJlZCB0aW1lZCBvdXQuXG4gICAgdGhpcy5pZGxlLnNldFRpbWVvdXQoTGliQ29uc3RhbnRzLnRpbWVPdXRQZXJpb2QpO1xuICAgIC8vIHNldHMgdGhlIGRlZmF1bHQgaW50ZXJydXB0cywgaW4gdGhpcyBjYXNlLCB0aGluZ3MgbGlrZSBjbGlja3MsIHNjcm9sbHMsIHRvdWNoZXMgdG8gdGhlIGRvY3VtZW50XG4gICAgdGhpcy5pZGxlLnNldEludGVycnVwdHMoREVGQVVMVF9JTlRFUlJVUFRTT1VSQ0VTKTtcblxuICAgIHRoaXMuaWRsZS5vbklkbGVTdGFydC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMuc2hvd1Nlc3Npb25UaW1lb3V0V2FybmluZy5uZXh0KHRydWUpO1xuICAgICAgICB0aGlzLmNvdW50ZXJTdWJzY3JpcHRpb24gPSB0aGlzLmNvdW50RG93bi5zdWJzY3JpYmUodmFsID0+e1xuICAgICAgICAgIHRoaXMuY291bnRlci5uZXh0KHRoaXMudGltZSAtIHZhbCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuY291bnRlckVuZFN1YnNjcmlwdGlvbiA9IHRoaXMudGltZXIuc3Vic2NyaWJlKHZhbCA9PiB7XG4gICAgICAgICAgdGhpcy5sb2dvdXQoKTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICAvLyBzZXRzIHRoZSBwaW5nIGludGVydmFsIHRvIDE1IHNlY29uZHNcbiAgICB0aGlzLmtlZXBhbGl2ZS5pbnRlcnZhbCgxNSk7XG5cbiAgICB0aGlzLmtlZXBhbGl2ZS5vblBpbmcuc3Vic2NyaWJlKCgpID0+IHRoaXMubGFzdFBpbmcgPSBuZXcgRGF0ZSgpKTtcblxuICAgIHRoaXMubHMuZ2V0VXNlckJzKCkuc3Vic2NyaWJlKHVzZXIgPT4ge1xuICAgICAgaWYodXNlcil7XG4gICAgICAgIHRoaXMubG9nZ2VyLmxvZygnSWRsZVNlcnZpY2Ugd2F0Y2hpbmcnKTtcbiAgICAgICAgdGhpcy5zZXNzaW9uVmFsaWRpdHlUaWxsID0gdGhpcy5hZGRTZWNvbmRzKG5ldyBEYXRlKCksIHVzZXIuZXhwaXJlc19pbik7XG4gICAgICAgIHRoaXMuaWRsZS53YXRjaCgpXG4gICAgICB9ZWxzZSB7XG4gICAgICAgIHRoaXMuaWRsZS5zdG9wKCk7XG4gICAgICAgIHRoaXMubG9nZ2VyLmxvZygnSWRsZVNlcnZpY2Ugc3RvcHBlZCcpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcmVzZXQoKSB7XG4gICAgdGhpcy5pZGxlLndhdGNoKCk7XG4gICAgdGhpcy5zaG93U2Vzc2lvblRpbWVvdXRXYXJuaW5nLm5leHQoZmFsc2UpO1xuICAgIGlmKHRoaXMuY291bnRlclN1YnNjcmlwdGlvbil7XG4gICAgICB0aGlzLmNvdW50ZXJTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gICAgaWYodGhpcy5jb3VudGVyRW5kU3Vic2NyaXB0aW9uKXtcbiAgICAgIHRoaXMuY291bnRlckVuZFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgICB0aGlzLnNldHVwU2Vzc2lvbk9ic2VydmVyKCk7XG4gICAgdGhpcy5jaGVja1Nlc3Npb25WYWxpZGl0eSgpO1xuICB9XG5cbiAgc3RheSgpIHtcbiAgICAvL3RoaXMuY2hpbGRNb2RhbC5oaWRlKCk7XG4gICAgdGhpcy5yZXNldCgpO1xuICB9XG4gIFxuXG4gIHNldHVwU2Vzc2lvblRpbWVvdXRPYnNlcnZlcigpe1xuICAgIHRoaXMubHMuZ2V0VXNlckJzKCkuc3Vic2NyaWJlKHVzZXIgPT4ge1xuICAgICAgaWYodXNlcil7XG4gICAgICAgIHRoaXMubG9nZ2VyLmxvZygnW0lkbGVTZXJ2aWNlXSBTdWJzY3JpYmluZyBTZXNzaW9uIE9ic2VydmVyJyk7XG4gICAgICAgIHRoaXMuc2Vzc2lvblZhbGlkaXR5VGlsbCA9IHRoaXMuYWRkU2Vjb25kcyhuZXcgRGF0ZSgpLCB1c2VyLmV4cGlyZXNfaW4pO1xuICAgICAgICB0aGlzLnNldHVwU2Vzc2lvbk9ic2VydmVyKCk7XG4gICAgICB9ZWxzZSB7XG4gICAgICAgIHRoaXMubG9nZ2VyLmxvZygnW0lkbGVTZXJ2aWNlXSBVbnN1YnNjcmliaW5nIFNlc3Npb24gT2JzZXJ2ZXInKTtcbiAgICAgICAgdGhpcy51bnN1YnNjcmliZSgpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgc2V0dXBTZXNzaW9uT2JzZXJ2ZXIoKXtcbiAgICB0aGlzLnVuc3Vic2NyaWJlKCk7XG4gICAgY29uc3Qgc291cmNlID0gaW50ZXJ2YWwoMTUwMDApO1xuICAgIHRoaXMuc2Vzc2lvblZhbGlkaXR5c3Vic2NyaXB0aW9uID0gc291cmNlLnN1YnNjcmliZSh2YWwgPT4gdGhpcy5jaGVja1Nlc3Npb25WYWxpZGl0eSgpKTtcbiAgfVxuXG4gIHByaXZhdGUgdW5zdWJzY3JpYmUoKSB7XG4gICAgaWYgKHRoaXMuc2Vzc2lvblZhbGlkaXR5c3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLnNlc3Npb25WYWxpZGl0eXN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIGNoZWNrU2Vzc2lvblZhbGlkaXR5KCl7XG4gICAgbGV0IGlzSWRsZSA9IHRoaXMuaWRsZS5pc0lkbGluZygpO1xuICAgIGlmKCFpc0lkbGUpe1xuICAgICAgbGV0IHRva2VuRXhwVGltZSA9IHRoaXMuc2Vzc2lvblZhbGlkaXR5VGlsbDtcbiAgICAgIGxldCBub3cgPSBuZXcgRGF0ZSgpO1xuICAgICAgbGV0IGRpZmZJblNlYyA9IE1hdGguY2VpbCgodG9rZW5FeHBUaW1lLmdldFRpbWUoKSAtIG5vdy5nZXRUaW1lKCkpLzEwMDApO1xuICAgICAgdGhpcy5sb2dnZXIubG9nKCdbSWRsZVNlcnZpY2VdIGRpZmZJblNlYycsIGRpZmZJblNlYyk7XG4gICAgICBpZihkaWZmSW5TZWMgPCAxMjApe1xuICAgICAgICB0aGlzLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMubG9nZ2VyLmxvZygnW0lkbGVTZXJ2aWNlXSBJbml0aWF0aW5nIFJlZnJlc2ggVG9rZW4gYXMgc2Vzc2lvbiBpcyBhY3RpdmUgYW5kIHVzZXIgaXMgYWN0aXZlJyk7XG4gICAgICAgIHRoaXMubHNcbiAgICAgICAgICAgIC5yZWZyZXNoVG9rZW4odGhpcy5scy5nZXRVc2VyKCkucmVmcmVzaF90b2tlbilcbiAgICAgICAgICAgIC50aGVuKGFzeW5jIHJlcyA9PiB7XG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5scy5zZXRVc2VyKHJlcykudGhlbihyZXMgPT4gcmVzKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuY2F0Y2goZXJyID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmxvZ2dlci5lcnJvcignW0lkbGVTZXJ2aWNlXSBlcnJvciB3aGlsZSByZWZyZXNoaW5nIHRva2VuJywgZXJyKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9KTtcbiAgICAgIH1lbHNle1xuICAgICAgICB0aGlzLmxvZ2dlci5sb2coJ1tJZGxlU2VydmljZV0gTk9UIEluaXRpYXRpbmcgUmVmcmVzaCBUb2tlbiBhcyBzZXNzaW9uIGlzIGFjdGl2ZScpO1xuICAgICAgfVxuICAgIH1lbHNlIHtcbiAgICAgIHRoaXMubG9nZ2VyLmxvZygnW0lkbGVTZXJ2aWNlXSBOT1QgSW5pdGlhdGluZyBSZWZyZXNoIFRva2VuIGFzIHNlc3Npb24gaXMgaWRsZSBhbmQgaXQgd2lsbCBiZSB0aW1lb3V0IGF1dG9tYXRpY2FsbHkuJyk7XG4gICAgfVxuICB9XG5cbiAgbG9nb3V0KCkge1xuICAgIC8vdGhpcy5jaGlsZE1vZGFsLmhpZGUoKTtcbiAgICB0aGlzLmxzLmxvZ291dCgpO1xuICAgIHRoaXMubmF2Lm5hdmlnYXRlUm9vdCgnL2xvZ2luJyk7XG4gICAgdGhpcy5zaG93U2Vzc2lvblRpbWVvdXRXYXJuaW5nLm5leHQoZmFsc2UpO1xuICAgIGlmKHRoaXMuY291bnRlclN1YnNjcmlwdGlvbil7XG4gICAgICB0aGlzLmNvdW50ZXJTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gICAgaWYodGhpcy5jb3VudGVyRW5kU3Vic2NyaXB0aW9uKXtcbiAgICAgIHRoaXMuY291bnRlckVuZFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIGFkZFNlY29uZHMoZGF0ZSA6ICBEYXRlLCBzZWNUb0FkZCA6IG51bWJlcil7XG4gICAgZGF0ZS5zZXRTZWNvbmRzKGRhdGUuZ2V0U2Vjb25kcygpICsgc2VjVG9BZGQpO1xuICAgIHJldHVybiBkYXRlO1xuICB9XG59XG4iXX0=