@softheon/armature 15.22.1 → 17.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (437) hide show
  1. package/README.md +142 -18
  2. package/assets/styles/_utility.scss +35 -0
  3. package/assets/styles/material-overrides.scss +0 -1
  4. package/assets/styles/sof-styles.scss +8 -7
  5. package/{esm2020 → esm2022}/lib/alert-banner/alert-banner-api.mjs +9 -9
  6. package/{esm2020 → esm2022}/lib/alert-banner/alert-banner.module.mjs +41 -41
  7. package/{esm2020 → esm2022}/lib/alert-banner/components/alert-banner/alert-banner.component.mjs +83 -83
  8. package/{esm2020 → esm2022}/lib/alert-banner/models/alert-banner-config.mjs +1 -1
  9. package/{esm2020 → esm2022}/lib/alert-banner/models/alert-banner-context.mjs +1 -1
  10. package/{esm2020 → esm2022}/lib/alert-banner/models/constants.mjs +15 -15
  11. package/{esm2020 → esm2022}/lib/alert-banner/services/alert-banner.service.mjs +44 -44
  12. package/esm2022/lib/armature.module.mjs +176 -0
  13. package/{esm2020 → esm2022}/lib/base-components/base-component-api.mjs +14 -14
  14. package/{esm2020 → esm2022}/lib/base-components/base-component.module.mjs +123 -123
  15. package/{esm2020 → esm2022}/lib/base-components/sof-alert/sof-alert.component.mjs +79 -79
  16. package/{esm2020 → esm2022}/lib/base-components/sof-badge/sof-badge.component.mjs +49 -49
  17. package/esm2022/lib/base-components/sof-banner/sof-banner.component.mjs +49 -0
  18. package/{esm2020 → esm2022}/lib/base-components/sof-button-toggle-group/sof-button-toggle-group.component.mjs +188 -188
  19. package/{esm2020 → esm2022}/lib/base-components/sof-confirm-address/sof-confirm-address.component.mjs +59 -59
  20. package/esm2022/lib/base-components/sof-image-checkbox/sof-image-checkbox.component.mjs +58 -0
  21. package/esm2022/lib/base-components/sof-modal/sof-modal.component.mjs +57 -0
  22. package/esm2022/lib/base-components/sof-progress-bar/sof-progress-bar.component.mjs +79 -0
  23. package/{esm2020 → esm2022}/lib/base-components/sof-radio-card/sof-radio-card.component.mjs +35 -35
  24. package/{esm2020 → esm2022}/lib/base-components/sof-simple-alert/sof-simple-alert.component.mjs +49 -49
  25. package/esm2022/lib/base-components/sof-star-rating/sof-star-rating.component.mjs +40 -0
  26. package/{esm2020 → esm2022}/lib/component-save-print/components/component-save-print/component-save-print.component.mjs +91 -91
  27. package/{esm2020 → esm2022}/lib/component-save-print/services/component-save-print.service.mjs +30 -30
  28. package/esm2022/lib/component-save-print/sof-ar-component-save-print.module.mjs +29 -0
  29. package/{esm2020 → esm2022}/lib/core/client-generated/api/session.service.mjs +242 -242
  30. package/{esm2020 → esm2022}/lib/core/client-generated/configuration.mjs +58 -58
  31. package/{esm2020 → esm2022}/lib/core/client-generated/encoder.mjs +16 -16
  32. package/{esm2020 → esm2022}/lib/core/client-generated/model/applicationUserModel.mjs +19 -19
  33. package/{esm2020 → esm2022}/lib/core/client-generated/model/assertedUserModel.mjs +1 -1
  34. package/{esm2020 → esm2022}/lib/core/client-generated/model/brandingModel.mjs +1 -1
  35. package/{esm2020 → esm2022}/lib/core/client-generated/model/errorModel.mjs +12 -12
  36. package/{esm2020 → esm2022}/lib/core/client-generated/model/folderLink.mjs +12 -12
  37. package/{esm2020 → esm2022}/lib/core/client-generated/model/identityProfile.mjs +1 -1
  38. package/{esm2020 → esm2022}/lib/core/client-generated/model/models.mjs +19 -19
  39. package/{esm2020 → esm2022}/lib/core/client-generated/model/oAuthModel.mjs +12 -12
  40. package/{esm2020 → esm2022}/lib/core/client-generated/model/preferencesRow.mjs +12 -12
  41. package/{esm2020 → esm2022}/lib/core/client-generated/model/rolesRow.mjs +12 -12
  42. package/{esm2020 → esm2022}/lib/core/client-generated/model/sessionGetResponseModel.mjs +1 -1
  43. package/{esm2020 → esm2022}/lib/core/client-generated/model/sessionPostRequestModel.mjs +1 -1
  44. package/{esm2020 → esm2022}/lib/core/client-generated/model/sessionPostResponseModel.mjs +1 -1
  45. package/{esm2020 → esm2022}/lib/core/client-generated/model/sessionPutRequestModel.mjs +1 -1
  46. package/{esm2020 → esm2022}/lib/core/client-generated/model/sessionPutResponseModel.mjs +1 -1
  47. package/{esm2020 → esm2022}/lib/core/client-generated/model/sessionResponseModel.mjs +1 -1
  48. package/{esm2020 → esm2022}/lib/core/client-generated/model/settingsProfile.mjs +1 -1
  49. package/{esm2020 → esm2022}/lib/core/client-generated/model/themePaletteColorsModel.mjs +12 -12
  50. package/{esm2020 → esm2022}/lib/core/client-generated/model/themePaletteModel.mjs +1 -1
  51. package/{esm2020 → esm2022}/lib/core/client-generated/model/trackingModel.mjs +12 -12
  52. package/{esm2020 → esm2022}/lib/core/client-generated/model/validationRecordsRow.mjs +12 -12
  53. package/{esm2020 → esm2022}/lib/core/client-generated/variables.mjs +8 -8
  54. package/esm2022/lib/core/components/app-template/app-template.component.mjs +250 -0
  55. package/{esm2020 → esm2022}/lib/core/functions/guid.mjs +10 -10
  56. package/{esm2020 → esm2022}/lib/core/functions/naming-convention.mjs +32 -32
  57. package/{esm2020 → esm2022}/lib/core/functions/route-to-pre-login-route.mjs +12 -12
  58. package/{esm2020 → esm2022}/lib/core/initializer/abstract-startup-service.mjs +3 -3
  59. package/esm2022/lib/core/initializer/initializer.service.mjs +286 -0
  60. package/{esm2020 → esm2022}/lib/core/interceptors/armature-auth-token-append.interceptor.mjs +73 -73
  61. package/esm2022/lib/core/models/base-config.mjs +2 -0
  62. package/esm2022/lib/core/models/constants.mjs +13 -0
  63. package/{esm2020 → esm2022}/lib/core/models/data-store-config.mjs +3 -3
  64. package/{esm2020 → esm2022}/lib/core/models/header-config.mjs +1 -1
  65. package/{esm2020 → esm2022}/lib/core/models/http-verbs.mjs +8 -8
  66. package/{esm2020 → esm2022}/lib/core/models/navigation-config.mjs +1 -1
  67. package/{esm2020 → esm2022}/lib/core/models/oidc-auth-settings.mjs +1 -1
  68. package/{esm2020 → esm2022}/lib/core/models/route-path.mjs +6 -6
  69. package/{esm2020 → esm2022}/lib/core/models/session-config.mjs +3 -3
  70. package/{esm2020 → esm2022}/lib/core/models/styles.mjs +1 -1
  71. package/{esm2020 → esm2022}/lib/core/models/subdomain-config.mjs +1 -1
  72. package/{esm2020 → esm2022}/lib/core/models/typed-session.mjs +3 -3
  73. package/{esm2020 → esm2022}/lib/core/models/user-entity-service-config.mjs +11 -11
  74. package/{esm2020 → esm2022}/lib/core/services/authorization.service.mjs +175 -175
  75. package/{esm2020 → esm2022}/lib/core/services/banner.service.mjs +43 -43
  76. package/{esm2020 → esm2022}/lib/core/services/base-config.service.mjs +32 -32
  77. package/{esm2020 → esm2022}/lib/core/services/custom-auth-config.service.mjs +3 -3
  78. package/{esm2020 → esm2022}/lib/core/services/default-config.service.mjs +19 -19
  79. package/{esm2020 → esm2022}/lib/core/services/session.service.mjs +385 -385
  80. package/{esm2020 → esm2022}/lib/core/services/user-entity.service.mjs +140 -140
  81. package/{esm2020 → esm2022}/lib/distributed-cache/client-generated/api/api.mjs +3 -3
  82. package/{esm2020 → esm2022}/lib/distributed-cache/client-generated/api/cache.service.mjs +213 -213
  83. package/{esm2020 → esm2022}/lib/distributed-cache/client-generated/configuration.mjs +58 -58
  84. package/{esm2020 → esm2022}/lib/distributed-cache/client-generated/encoder.mjs +16 -16
  85. package/{esm2020 → esm2022}/lib/distributed-cache/client-generated/model/cacheExpirationType.mjs +15 -15
  86. package/{esm2020 → esm2022}/lib/distributed-cache/client-generated/model/createCacheEntryRequestModel.mjs +1 -1
  87. package/{esm2020 → esm2022}/lib/distributed-cache/client-generated/model/models.mjs +4 -4
  88. package/{esm2020 → esm2022}/lib/distributed-cache/client-generated/model/retrieveCacheEntryResponseModel.mjs +12 -12
  89. package/{esm2020 → esm2022}/lib/distributed-cache/client-generated/model/updateCacheEntryRequestModel.mjs +12 -12
  90. package/{esm2020 → esm2022}/lib/distributed-cache/client-generated/variables.mjs +8 -8
  91. package/{esm2020 → esm2022}/lib/distributed-cache/distributed-cache-api.mjs +7 -7
  92. package/esm2022/lib/distributed-cache/distributed-cache.module.mjs +38 -0
  93. package/{esm2020 → esm2022}/lib/distributed-cache/models/constants.mjs +2 -2
  94. package/{esm2020 → esm2022}/lib/distributed-cache/models/policy-person.mjs +8 -8
  95. package/{esm2020 → esm2022}/lib/distributed-cache/services/server-cache.service.mjs +48 -48
  96. package/{esm2020 → esm2022}/lib/error/components/error-common/error-common.component.mjs +25 -25
  97. package/{esm2020 → esm2022}/lib/error/error-api.mjs +6 -6
  98. package/{esm2020 → esm2022}/lib/error/error.module.mjs +31 -31
  99. package/{esm2020 → esm2022}/lib/error/models/error-common-config.mjs +7 -7
  100. package/esm2022/lib/faq/components/faq/faq.component.mjs +40 -0
  101. package/{esm2020 → esm2022}/lib/faq/faq-api.mjs +7 -7
  102. package/{esm2020 → esm2022}/lib/faq/faq.module.mjs +41 -41
  103. package/{esm2020 → esm2022}/lib/faq/models/faq-config.mjs +3 -3
  104. package/{esm2020 → esm2022}/lib/faq/models/faq.mjs +7 -7
  105. package/esm2022/lib/feedback-tool/components/feedback-tool/feedback-tool.component.mjs +81 -0
  106. package/esm2022/lib/feedback-tool/feedback-tool-api.mjs +5 -0
  107. package/esm2022/lib/feedback-tool/feedback-tool.module.mjs +44 -0
  108. package/esm2022/lib/footer/components/footer/footer.component.mjs +25 -0
  109. package/{esm2020 → esm2022}/lib/footer/components/site-map/site-map.component.mjs +25 -25
  110. package/{esm2020 → esm2022}/lib/footer/footer-api.mjs +9 -9
  111. package/{esm2020 → esm2022}/lib/footer/footer.module.mjs +45 -45
  112. package/{esm2020 → esm2022}/lib/footer/models/enum/site-map-direction.mjs +14 -14
  113. package/{esm2020 → esm2022}/lib/footer/models/footer-config.mjs +3 -3
  114. package/{esm2020 → esm2022}/lib/footer/models/site-map-models.mjs +1 -1
  115. package/{esm2020 → esm2022}/lib/forms/components/sof-address/sof-address.component.mjs +110 -110
  116. package/{esm2020 → esm2022}/lib/forms/directives/alphanumeric/alphanumeric.directive.mjs +78 -78
  117. package/{esm2020 → esm2022}/lib/forms/directives/input-trim/input-trim.directive.mjs +110 -110
  118. package/{esm2020 → esm2022}/lib/forms/directives/letters-characters/letters-characters.directive.mjs +87 -87
  119. package/{esm2020 → esm2022}/lib/forms/directives/letters-only/letters-only.directive.mjs +85 -85
  120. package/{esm2020 → esm2022}/lib/forms/directives/numbers-only/numbers-only.directive.mjs +55 -55
  121. package/{esm2020 → esm2022}/lib/forms/forms-api.mjs +19 -19
  122. package/{esm2020 → esm2022}/lib/forms/forms.module.mjs +87 -87
  123. package/{esm2020 → esm2022}/lib/forms/models/address.mjs +1 -1
  124. package/esm2022/lib/forms/models/constants.mjs +10 -0
  125. package/{esm2020 → esm2022}/lib/forms/models/county.mjs +1 -1
  126. package/{esm2020 → esm2022}/lib/forms/models/enums/states.mjs +65 -65
  127. package/{esm2020 → esm2022}/lib/forms/pipes/phone-format.pipe.mjs +33 -33
  128. package/{esm2020 → esm2022}/lib/forms/services/alert.service.mjs +167 -167
  129. package/esm2022/lib/header/components/header/header.component.mjs +161 -0
  130. package/{esm2020 → esm2022}/lib/header/components/mobile-header-menu/mobile-header-menu.component.mjs +39 -39
  131. package/{esm2020 → esm2022}/lib/header/header-api.mjs +11 -11
  132. package/{esm2020 → esm2022}/lib/header/header.module.mjs +85 -85
  133. package/{esm2020 → esm2022}/lib/header/models/header-auth.settings.mjs +31 -31
  134. package/{esm2020 → esm2022}/lib/header/models/header-language.settings.mjs +1 -1
  135. package/{esm2020 → esm2022}/lib/header/models/header-theme.settings.mjs +1 -1
  136. package/{esm2020 → esm2022}/lib/header/models/header.settings.mjs +1 -1
  137. package/{esm2020 → esm2022}/lib/header/models/mobile-header-nav.settings.mjs +1 -1
  138. package/esm2022/lib/navigation/components/navigation/navigation.component.mjs +556 -0
  139. package/{esm2020 → esm2022}/lib/navigation/models/nav-theme.settings.mjs +1 -1
  140. package/{esm2020 → esm2022}/lib/navigation/models/nav.settings.mjs +1 -1
  141. package/{esm2020 → esm2022}/lib/navigation/models/navigation.mjs +1 -1
  142. package/{esm2020 → esm2022}/lib/navigation/navigation-api.mjs +8 -8
  143. package/{esm2020 → esm2022}/lib/navigation/navigation.module.mjs +126 -126
  144. package/{esm2020 → esm2022}/lib/oauth/models/constants.mjs +5 -5
  145. package/{esm2020 → esm2022}/lib/oauth/models/generated/accountManagementAssertionModel.mjs +1 -1
  146. package/{esm2020 → esm2022}/lib/oauth/models/generated/accountManagementRefreshRequestModel.mjs +1 -1
  147. package/{esm2020 → esm2022}/lib/oauth/models/generated/accountManagementResponseModel.mjs +1 -1
  148. package/{esm2020 → esm2022}/lib/oauth/models/generated/coverageDetail.mjs +18 -18
  149. package/{esm2020 → esm2022}/lib/oauth/models/generated/finance.mjs +12 -12
  150. package/{esm2020 → esm2022}/lib/oauth/models/generated/iSsoResponseModel.mjs +12 -12
  151. package/{esm2020 → esm2022}/lib/oauth/models/generated/iSsoResponseModelAccountManagementAssertionModel.mjs +1 -1
  152. package/{esm2020 → esm2022}/lib/oauth/models/generated/person.mjs +12 -12
  153. package/{esm2020 → esm2022}/lib/oauth/models/generated/policy.mjs +1 -1
  154. package/{esm2020 → esm2022}/lib/oauth/models/generated/refreshResponseModel.mjs +12 -12
  155. package/{esm2020 → esm2022}/lib/oauth/models/hybrid-saml-oauth-config.mjs +3 -3
  156. package/{esm2020 → esm2022}/lib/oauth/oauth-api.mjs +14 -14
  157. package/{esm2020 → esm2022}/lib/oauth/oauth.module.mjs +29 -29
  158. package/{esm2020 → esm2022}/lib/oauth/services/hybrid-saml-oauth.service.mjs +201 -201
  159. package/{esm2020 → esm2022}/lib/rbac/directives/rbac-action.directive.mjs +50 -50
  160. package/{esm2020 → esm2022}/lib/rbac/models/access-token-claims.mjs +22 -22
  161. package/{esm2020 → esm2022}/lib/rbac/models/constants.mjs +3 -3
  162. package/{esm2020 → esm2022}/lib/rbac/models/decoded-access-token.mjs +68 -68
  163. package/{esm2020 → esm2022}/lib/rbac/models/rbac-config.mjs +3 -3
  164. package/{esm2020 → esm2022}/lib/rbac/models/role-access.mjs +9 -9
  165. package/{esm2020 → esm2022}/lib/rbac/rbac-api.mjs +14 -14
  166. package/{esm2020 → esm2022}/lib/rbac/rbac.module.mjs +51 -51
  167. package/{esm2020 → esm2022}/lib/rbac/services/ar-role-nav.service.mjs +104 -104
  168. package/{esm2020 → esm2022}/lib/rbac/services/oauth2-role.service.mjs +114 -114
  169. package/{esm2020 → esm2022}/lib/rbac/services/role-nav.service.mjs +3 -3
  170. package/{esm2020 → esm2022}/lib/rbac/services/tokens.mjs +3 -3
  171. package/{esm2020 → esm2022}/lib/resize-panels/components/resize-panels/resize-panels.component.mjs +156 -156
  172. package/{esm2020 → esm2022}/lib/resize-panels/models/resize-event.mjs +1 -1
  173. package/{esm2020 → esm2022}/lib/resize-panels/resize-panels-api.mjs +4 -4
  174. package/{esm2020 → esm2022}/lib/resize-panels/resize-panels.module.mjs +23 -23
  175. package/{esm2020 → esm2022}/lib/rum/models/arm-error.mjs +28 -28
  176. package/{esm2020 → esm2022}/lib/rum/models/rum-config.mjs +3 -3
  177. package/{esm2020 → esm2022}/lib/rum/rum-api.mjs +9 -9
  178. package/{esm2020 → esm2022}/lib/rum/rum.module.mjs +48 -48
  179. package/{esm2020 → esm2022}/lib/rum/services/rum.service.mjs +115 -115
  180. package/{esm2020 → esm2022}/lib/rum/services/shared-error.service.mjs +45 -45
  181. package/{esm2020 → esm2022}/lib/rum/services/softheon-error-handler.service.mjs +76 -76
  182. package/{esm2020 → esm2022}/lib/saml/components/redirect-saml/redirect-saml.component.mjs +79 -79
  183. package/{esm2020 → esm2022}/lib/saml/models/i-saml-request.mjs +1 -1
  184. package/{esm2020 → esm2022}/lib/saml/models/i-saml-response.mjs +1 -1
  185. package/{esm2020 → esm2022}/lib/saml/models/redirect-saml-request.mjs +3 -3
  186. package/{esm2020 → esm2022}/lib/saml/models/sso-gateway-model.mjs +3 -3
  187. package/{esm2020 → esm2022}/lib/saml/saml-api.mjs +14 -14
  188. package/{esm2020 → esm2022}/lib/saml/saml.module.mjs +43 -43
  189. package/{esm2020 → esm2022}/lib/saml/services/entry/abstract-saml-entry.service.mjs +3 -3
  190. package/{esm2020 → esm2022}/lib/saml/services/entry/sso-gateway-entry.service.mjs +36 -36
  191. package/{esm2020 → esm2022}/lib/saml/services/send-off/abstract-saml.service.mjs +3 -3
  192. package/{esm2020 → esm2022}/lib/saml/services/send-off/saml.service.mjs +39 -39
  193. package/{esm2020 → esm2022}/lib/sof-pipe/constants/constants.mjs +16 -16
  194. package/{esm2020 → esm2022}/lib/sof-pipe/models/sof-date-pipe-format.mjs +1 -1
  195. package/{esm2020 → esm2022}/lib/sof-pipe/pipes/sof-blank/sof-blank.pipe.mjs +39 -39
  196. package/{esm2020 → esm2022}/lib/sof-pipe/pipes/sof-date/sof-date.pipe.mjs +59 -59
  197. package/{esm2020 → esm2022}/lib/sof-pipe/pipes/sof-ssn/sof-ssn.pipe.mjs +28 -28
  198. package/{esm2020 → esm2022}/lib/sof-pipe/sof-pipe.api.mjs +8 -8
  199. package/{esm2020 → esm2022}/lib/sof-pipe/sof-pipe.module.mjs +39 -39
  200. package/{esm2020 → esm2022}/lib/theming/directives/css-override.directive.mjs +69 -69
  201. package/{esm2020 → esm2022}/lib/theming/models/css-override.mjs +10 -10
  202. package/{esm2020 → esm2022}/lib/theming/services/theme.service.mjs +169 -169
  203. package/{esm2020 → esm2022}/lib/theming/theme-api.mjs +5 -5
  204. package/{esm2020 → esm2022}/lib/theming/theme.module.mjs +31 -31
  205. package/esm2022/public-api.mjs +52 -0
  206. package/{esm2020 → esm2022}/softheon-armature.mjs +4 -4
  207. package/fesm2022/softheon-armature.mjs +7439 -0
  208. package/fesm2022/softheon-armature.mjs.map +1 -0
  209. package/index.d.ts +5 -5
  210. package/lib/alert-banner/alert-banner-api.d.ts +7 -7
  211. package/lib/alert-banner/alert-banner.module.d.ts +11 -11
  212. package/lib/alert-banner/components/alert-banner/alert-banner.component.d.ts +40 -40
  213. package/lib/alert-banner/models/alert-banner-config.d.ts +20 -20
  214. package/lib/alert-banner/models/alert-banner-context.d.ts +18 -18
  215. package/lib/alert-banner/models/constants.d.ts +15 -15
  216. package/lib/alert-banner/services/alert-banner.service.d.ts +28 -28
  217. package/lib/armature.module.d.ts +46 -46
  218. package/lib/base-components/base-component-api.d.ts +13 -13
  219. package/lib/base-components/base-component.module.d.ts +35 -35
  220. package/lib/base-components/sof-alert/sof-alert.component.d.ts +40 -40
  221. package/lib/base-components/sof-badge/sof-badge.component.d.ts +26 -26
  222. package/lib/base-components/sof-banner/sof-banner.component.d.ts +34 -34
  223. package/lib/base-components/sof-button-toggle-group/sof-button-toggle-group.component.d.ts +100 -100
  224. package/lib/base-components/sof-confirm-address/sof-confirm-address.component.d.ts +61 -61
  225. package/lib/base-components/sof-image-checkbox/sof-image-checkbox.component.d.ts +28 -28
  226. package/lib/base-components/sof-modal/sof-modal.component.d.ts +51 -51
  227. package/lib/base-components/sof-progress-bar/sof-progress-bar.component.d.ts +40 -40
  228. package/lib/base-components/sof-radio-card/sof-radio-card.component.d.ts +20 -20
  229. package/lib/base-components/sof-simple-alert/sof-simple-alert.component.d.ts +29 -29
  230. package/lib/base-components/sof-star-rating/sof-star-rating.component.d.ts +25 -25
  231. package/lib/component-save-print/components/component-save-print/component-save-print.component.d.ts +46 -46
  232. package/lib/component-save-print/services/component-save-print.service.d.ts +18 -18
  233. package/lib/component-save-print/sof-ar-component-save-print.module.d.ts +9 -9
  234. package/lib/core/client-generated/api/session.service.d.ts +94 -94
  235. package/lib/core/client-generated/configuration.d.ts +48 -48
  236. package/lib/core/client-generated/encoder.d.ts +10 -10
  237. package/lib/core/client-generated/model/applicationUserModel.d.ts +54 -54
  238. package/lib/core/client-generated/model/assertedUserModel.d.ts +25 -25
  239. package/lib/core/client-generated/model/brandingModel.d.ts +33 -33
  240. package/lib/core/client-generated/model/errorModel.d.ts +24 -24
  241. package/lib/core/client-generated/model/folderLink.d.ts +34 -34
  242. package/lib/core/client-generated/model/identityProfile.d.ts +82 -82
  243. package/lib/core/client-generated/model/models.d.ts +19 -19
  244. package/lib/core/client-generated/model/oAuthModel.d.ts +28 -28
  245. package/lib/core/client-generated/model/preferencesRow.d.ts +15 -15
  246. package/lib/core/client-generated/model/rolesRow.d.ts +17 -17
  247. package/lib/core/client-generated/model/sessionGetResponseModel.d.ts +23 -23
  248. package/lib/core/client-generated/model/sessionPostRequestModel.d.ts +39 -39
  249. package/lib/core/client-generated/model/sessionPostResponseModel.d.ts +23 -23
  250. package/lib/core/client-generated/model/sessionPutRequestModel.d.ts +39 -39
  251. package/lib/core/client-generated/model/sessionPutResponseModel.d.ts +23 -23
  252. package/lib/core/client-generated/model/sessionResponseModel.d.ts +43 -43
  253. package/lib/core/client-generated/model/settingsProfile.d.ts +21 -21
  254. package/lib/core/client-generated/model/themePaletteColorsModel.d.ts +72 -72
  255. package/lib/core/client-generated/model/themePaletteModel.d.ts +65 -65
  256. package/lib/core/client-generated/model/trackingModel.d.ts +24 -24
  257. package/lib/core/client-generated/model/validationRecordsRow.d.ts +17 -17
  258. package/lib/core/client-generated/variables.d.ts +8 -8
  259. package/lib/core/components/app-template/app-template.component.d.ts +61 -67
  260. package/lib/core/functions/guid.d.ts +4 -4
  261. package/lib/core/functions/naming-convention.d.ts +6 -6
  262. package/lib/core/functions/route-to-pre-login-route.d.ts +6 -6
  263. package/lib/core/initializer/abstract-startup-service.d.ts +5 -5
  264. package/lib/core/initializer/initializer.service.d.ts +79 -87
  265. package/lib/core/interceptors/armature-auth-token-append.interceptor.d.ts +31 -31
  266. package/lib/core/models/base-config.d.ts +18 -23
  267. package/lib/core/models/constants.d.ts +13 -17
  268. package/lib/core/models/data-store-config.d.ts +27 -27
  269. package/lib/core/models/header-config.d.ts +9 -9
  270. package/lib/core/models/http-verbs.d.ts +10 -10
  271. package/lib/core/models/navigation-config.d.ts +14 -14
  272. package/lib/core/models/oidc-auth-settings.d.ts +11 -11
  273. package/lib/core/models/route-path.d.ts +5 -5
  274. package/lib/core/models/session-config.d.ts +18 -18
  275. package/lib/core/models/styles.d.ts +11 -11
  276. package/lib/core/models/subdomain-config.d.ts +7 -7
  277. package/lib/core/models/typed-session.d.ts +17 -17
  278. package/lib/core/models/user-entity-service-config.d.ts +14 -14
  279. package/lib/core/services/authorization.service.d.ts +54 -54
  280. package/lib/core/services/banner.service.d.ts +31 -31
  281. package/lib/core/services/base-config.service.d.ts +21 -21
  282. package/lib/core/services/custom-auth-config.service.d.ts +6 -6
  283. package/lib/core/services/default-config.service.d.ts +8 -8
  284. package/lib/core/services/session.service.d.ts +127 -127
  285. package/lib/core/services/user-entity.service.d.ts +47 -47
  286. package/lib/distributed-cache/client-generated/api/api.d.ts +3 -3
  287. package/lib/distributed-cache/client-generated/api/cache.service.d.ts +72 -72
  288. package/lib/distributed-cache/client-generated/configuration.d.ts +48 -48
  289. package/lib/distributed-cache/client-generated/encoder.d.ts +10 -10
  290. package/lib/distributed-cache/client-generated/model/cacheExpirationType.d.ts +19 -19
  291. package/lib/distributed-cache/client-generated/model/createCacheEntryRequestModel.d.ts +33 -33
  292. package/lib/distributed-cache/client-generated/model/models.d.ts +4 -4
  293. package/lib/distributed-cache/client-generated/model/retrieveCacheEntryResponseModel.d.ts +20 -20
  294. package/lib/distributed-cache/client-generated/model/updateCacheEntryRequestModel.d.ts +20 -20
  295. package/lib/distributed-cache/client-generated/variables.d.ts +8 -8
  296. package/lib/distributed-cache/distributed-cache-api.d.ts +7 -7
  297. package/lib/distributed-cache/distributed-cache.module.d.ts +8 -8
  298. package/lib/distributed-cache/models/constants.d.ts +2 -2
  299. package/lib/distributed-cache/models/policy-person.d.ts +19 -19
  300. package/lib/distributed-cache/services/server-cache.service.d.ts +72 -72
  301. package/lib/error/components/error-common/error-common.component.d.ts +14 -14
  302. package/lib/error/error-api.d.ts +4 -4
  303. package/lib/error/error.module.d.ts +11 -11
  304. package/lib/error/models/error-common-config.d.ts +21 -21
  305. package/lib/faq/components/faq/faq.component.d.ts +19 -19
  306. package/lib/faq/faq-api.d.ts +5 -5
  307. package/lib/faq/faq.module.d.ts +15 -15
  308. package/lib/faq/models/faq-config.d.ts +13 -13
  309. package/lib/faq/models/faq.d.ts +9 -9
  310. package/lib/feedback-tool/components/feedback-tool/feedback-tool.component.d.ts +62 -0
  311. package/lib/feedback-tool/feedback-tool-api.d.ts +3 -0
  312. package/lib/feedback-tool/feedback-tool.module.d.ts +14 -0
  313. package/lib/footer/components/footer/footer.component.d.ts +14 -14
  314. package/lib/footer/components/site-map/site-map.component.d.ts +13 -13
  315. package/lib/footer/footer-api.d.ts +7 -7
  316. package/lib/footer/footer.module.d.ts +14 -14
  317. package/lib/footer/models/enum/site-map-direction.d.ts +13 -13
  318. package/lib/footer/models/footer-config.d.ts +7 -7
  319. package/lib/footer/models/site-map-models.d.ts +41 -41
  320. package/lib/forms/components/sof-address/sof-address.component.d.ts +53 -53
  321. package/lib/forms/directives/alphanumeric/alphanumeric.directive.d.ts +31 -31
  322. package/lib/forms/directives/input-trim/input-trim.directive.d.ts +58 -58
  323. package/lib/forms/directives/letters-characters/letters-characters.directive.d.ts +27 -27
  324. package/lib/forms/directives/letters-only/letters-only.directive.d.ts +27 -27
  325. package/lib/forms/directives/numbers-only/numbers-only.directive.d.ts +22 -22
  326. package/lib/forms/forms-api.d.ts +14 -14
  327. package/lib/forms/forms.module.d.ts +21 -21
  328. package/lib/forms/models/address.d.ts +14 -14
  329. package/lib/forms/models/constants.d.ts +9 -9
  330. package/lib/forms/models/county.d.ts +13 -13
  331. package/lib/forms/models/enums/states.d.ts +64 -64
  332. package/lib/forms/pipes/phone-format.pipe.d.ts +10 -10
  333. package/lib/forms/services/alert.service.d.ts +60 -60
  334. package/lib/header/components/header/header.component.d.ts +120 -120
  335. package/lib/header/components/mobile-header-menu/mobile-header-menu.component.d.ts +26 -26
  336. package/lib/header/header-api.d.ts +9 -9
  337. package/lib/header/header.module.d.ts +20 -20
  338. package/lib/header/models/header-auth.settings.d.ts +30 -30
  339. package/lib/header/models/header-language.settings.d.ts +10 -10
  340. package/lib/header/models/header-theme.settings.d.ts +19 -19
  341. package/lib/header/models/header.settings.d.ts +53 -53
  342. package/lib/header/models/mobile-header-nav.settings.d.ts +11 -11
  343. package/lib/navigation/components/navigation/navigation.component.d.ts +200 -200
  344. package/lib/navigation/models/nav-theme.settings.d.ts +25 -25
  345. package/lib/navigation/models/nav.settings.d.ts +64 -64
  346. package/lib/navigation/models/navigation.d.ts +40 -40
  347. package/lib/navigation/navigation-api.d.ts +6 -6
  348. package/lib/navigation/navigation.module.d.ts +25 -25
  349. package/lib/oauth/models/constants.d.ts +6 -6
  350. package/lib/oauth/models/generated/accountManagementAssertionModel.d.ts +49 -49
  351. package/lib/oauth/models/generated/accountManagementRefreshRequestModel.d.ts +21 -21
  352. package/lib/oauth/models/generated/accountManagementResponseModel.d.ts +45 -45
  353. package/lib/oauth/models/generated/coverageDetail.d.ts +67 -67
  354. package/lib/oauth/models/generated/finance.d.ts +36 -36
  355. package/lib/oauth/models/generated/iSsoResponseModel.d.ts +44 -44
  356. package/lib/oauth/models/generated/iSsoResponseModelAccountManagementAssertionModel.d.ts +45 -45
  357. package/lib/oauth/models/generated/person.d.ts +53 -53
  358. package/lib/oauth/models/generated/policy.d.ts +51 -51
  359. package/lib/oauth/models/generated/refreshResponseModel.d.ts +20 -20
  360. package/lib/oauth/models/hybrid-saml-oauth-config.d.ts +14 -14
  361. package/lib/oauth/oauth-api.d.ts +12 -12
  362. package/lib/oauth/oauth.module.d.ts +9 -9
  363. package/lib/oauth/services/hybrid-saml-oauth.service.d.ts +59 -59
  364. package/lib/rbac/directives/rbac-action.directive.d.ts +27 -27
  365. package/lib/rbac/models/access-token-claims.d.ts +18 -18
  366. package/lib/rbac/models/constants.d.ts +4 -4
  367. package/lib/rbac/models/decoded-access-token.d.ts +43 -43
  368. package/lib/rbac/models/rbac-config.d.ts +15 -15
  369. package/lib/rbac/models/role-access.d.ts +7 -7
  370. package/lib/rbac/rbac-api.d.ts +11 -11
  371. package/lib/rbac/rbac.module.d.ts +19 -19
  372. package/lib/rbac/services/ar-role-nav.service.d.ts +25 -25
  373. package/lib/rbac/services/oauth2-role.service.d.ts +51 -51
  374. package/lib/rbac/services/role-nav.service.d.ts +12 -12
  375. package/lib/rbac/services/tokens.d.ts +3 -3
  376. package/lib/resize-panels/components/resize-panels/resize-panels.component.d.ts +64 -64
  377. package/lib/resize-panels/models/resize-event.d.ts +6 -6
  378. package/lib/resize-panels/resize-panels-api.d.ts +4 -4
  379. package/lib/resize-panels/resize-panels.module.d.ts +9 -9
  380. package/lib/rum/models/arm-error.d.ts +27 -27
  381. package/lib/rum/models/rum-config.d.ts +9 -9
  382. package/lib/rum/rum-api.d.ts +7 -7
  383. package/lib/rum/rum.module.d.ts +14 -14
  384. package/lib/rum/services/rum.service.d.ts +47 -47
  385. package/lib/rum/services/shared-error.service.d.ts +27 -27
  386. package/lib/rum/services/softheon-error-handler.service.d.ts +32 -32
  387. package/lib/saml/components/redirect-saml/redirect-saml.component.d.ts +41 -41
  388. package/lib/saml/models/i-saml-request.d.ts +4 -4
  389. package/lib/saml/models/i-saml-response.d.ts +4 -4
  390. package/lib/saml/models/redirect-saml-request.d.ts +24 -24
  391. package/lib/saml/models/sso-gateway-model.d.ts +17 -17
  392. package/lib/saml/saml-api.d.ts +11 -11
  393. package/lib/saml/saml.module.d.ts +9 -9
  394. package/lib/saml/services/entry/abstract-saml-entry.service.d.ts +16 -16
  395. package/lib/saml/services/entry/sso-gateway-entry.service.d.ts +22 -22
  396. package/lib/saml/services/send-off/abstract-saml.service.d.ts +20 -20
  397. package/lib/saml/services/send-off/saml.service.d.ts +32 -32
  398. package/lib/sof-pipe/constants/constants.d.ts +8 -8
  399. package/lib/sof-pipe/models/sof-date-pipe-format.d.ts +7 -7
  400. package/lib/sof-pipe/pipes/sof-blank/sof-blank.pipe.d.ts +19 -19
  401. package/lib/sof-pipe/pipes/sof-date/sof-date.pipe.d.ts +21 -21
  402. package/lib/sof-pipe/pipes/sof-ssn/sof-ssn.pipe.d.ts +12 -12
  403. package/lib/sof-pipe/sof-pipe.api.d.ts +7 -7
  404. package/lib/sof-pipe/sof-pipe.module.d.ts +10 -10
  405. package/lib/theming/directives/css-override.directive.d.ts +20 -20
  406. package/lib/theming/models/css-override.d.ts +15 -15
  407. package/lib/theming/services/theme.service.d.ts +48 -48
  408. package/lib/theming/theme-api.d.ts +5 -5
  409. package/lib/theming/theme.module.d.ts +9 -9
  410. package/package.json +17 -23
  411. package/public-api.d.ts +49 -48
  412. package/esm2020/lib/armature.module.mjs +0 -179
  413. package/esm2020/lib/base-components/sof-banner/sof-banner.component.mjs +0 -49
  414. package/esm2020/lib/base-components/sof-image-checkbox/sof-image-checkbox.component.mjs +0 -58
  415. package/esm2020/lib/base-components/sof-modal/sof-modal.component.mjs +0 -58
  416. package/esm2020/lib/base-components/sof-progress-bar/sof-progress-bar.component.mjs +0 -79
  417. package/esm2020/lib/base-components/sof-star-rating/sof-star-rating.component.mjs +0 -40
  418. package/esm2020/lib/component-save-print/sof-ar-component-save-print.module.mjs +0 -32
  419. package/esm2020/lib/core/components/app-template/app-template.component.mjs +0 -258
  420. package/esm2020/lib/core/initializer/initializer.service.mjs +0 -302
  421. package/esm2020/lib/core/models/base-config.mjs +0 -2
  422. package/esm2020/lib/core/models/constants.mjs +0 -17
  423. package/esm2020/lib/core/models/federated-module-config.mjs +0 -2
  424. package/esm2020/lib/core/services/federated-module.service.mjs +0 -60
  425. package/esm2020/lib/distributed-cache/distributed-cache.module.mjs +0 -38
  426. package/esm2020/lib/faq/components/faq/faq.component.mjs +0 -40
  427. package/esm2020/lib/footer/components/footer/footer.component.mjs +0 -25
  428. package/esm2020/lib/forms/models/constants.mjs +0 -10
  429. package/esm2020/lib/header/components/header/header.component.mjs +0 -161
  430. package/esm2020/lib/navigation/components/navigation/navigation.component.mjs +0 -556
  431. package/esm2020/public-api.mjs +0 -51
  432. package/fesm2015/softheon-armature.mjs +0 -7361
  433. package/fesm2015/softheon-armature.mjs.map +0 -1
  434. package/fesm2020/softheon-armature.mjs +0 -7416
  435. package/fesm2020/softheon-armature.mjs.map +0 -1
  436. package/lib/core/models/federated-module-config.d.ts +0 -3
  437. package/lib/core/services/federated-module.service.d.ts +0 -23
@@ -1,302 +0,0 @@
1
- import { Injectable, Optional, Inject } from '@angular/core';
2
- import { AuthConfig } from 'angular-oauth2-oidc';
3
- import { JwksValidationHandler } from 'angular-oauth2-oidc-jwks';
4
- import * as _ from 'lodash';
5
- import { BehaviorSubject, lastValueFrom, throwError } from 'rxjs';
6
- import { federatedModuleConfigStorageKey, languageStorageKey, preSignInRouteStorageKey, WINDOW } from '../models/constants';
7
- import * as i0 from "@angular/core";
8
- import * as i1 from "@angular/common/http";
9
- import * as i2 from "@ngx-translate/core";
10
- import * as i3 from "../../theming/services/theme.service";
11
- import * as i4 from "../services/base-config.service";
12
- import * as i5 from "angular-oauth2-oidc";
13
- import * as i6 from "@angular/router";
14
- import * as i7 from "@angular/common";
15
- import * as i8 from "../services/federated-module.service";
16
- import * as i9 from "../services/custom-auth-config.service";
17
- /**
18
- * The startup service is used to call methods that should be run when initially loading the application
19
- */
20
- export class Initializer {
21
- /** Gets the configurations */
22
- get isInitialized() {
23
- return this.isInitializedBs.value;
24
- }
25
- /**
26
- * Constructs the startup service. Include any services that should be used during startup
27
- * @param http The http client
28
- * @param translateService The translate service
29
- * @param themeService The theme service
30
- * @param configService The config service
31
- * @param oAuthService The oauth service
32
- * @param router The router
33
- * @param location The location
34
- * @param federatedModuleService The federated module service
35
- * @param customAuthConfigService The custom auth config service
36
- * @param _window The window injection
37
- */
38
- constructor(http, translateService, themeService, configService, oAuthService, router, location, federatedModuleService, customAuthConfigService, _window) {
39
- this.http = http;
40
- this.translateService = translateService;
41
- this.themeService = themeService;
42
- this.configService = configService;
43
- this.oAuthService = oAuthService;
44
- this.router = router;
45
- this.location = location;
46
- this.federatedModuleService = federatedModuleService;
47
- this.customAuthConfigService = customAuthConfigService;
48
- this._window = _window;
49
- /** The configuration behavior subject */
50
- this.isInitializedBs = new BehaviorSubject(false);
51
- /** The example the subdomain substring */
52
- this.exampleSubdomain = 'example';
53
- /** The www substring for subdomain route finding */
54
- this.wwwSubstring = 'www';
55
- /** The lvh substring for subdomain route finding */
56
- this.lvhSubstring = 'lvh';
57
- this.isInitialized$ = this.isInitializedBs.asObservable();
58
- this.window = _window || window;
59
- }
60
- /**
61
- * Loads all data that is needed upon initial loading of the website
62
- */
63
- async initialize() {
64
- // reads the language from local storage set in the parent app
65
- // language loading
66
- // Set languages for translation service
67
- const lang = this.window.localStorage.getItem(languageStorageKey) || this.window.sessionStorage.getItem(languageStorageKey) || 'en';
68
- this.translateService.setDefaultLang(lang);
69
- this.translateService.use(lang);
70
- // Adapted from https://stackoverflow.com/a/41636880
71
- // Adapted from https://stackoverflow.com/a/41736293
72
- // A callback used to initialize the promise. This callback is passed two arguments:
73
- // a resolve callback used resolve the promise with a value or the result of another promise,
74
- // and a reject callback used to reject the promise with a provided reason or error.
75
- return new Promise(async (resolve, reject) => {
76
- // Go through all services and complete any API calls necessary.
77
- // At the end, if all works and loads as expected, resolve the promise and set startup success to true.
78
- // If an issue is encountered, you can call reject() to hit the catch() code below.
79
- // First, load the configurations
80
- const assetPartial = !this.federatedModuleService.isFederatedModule ? './assets' : `./assets/federation/${this.federatedModuleService.federatedModuleId}/assets`;
81
- let [baseConfig, overrideConfig, baseLang, overrideLang, theme] = [JSON, JSON, JSON, JSON, JSON];
82
- try {
83
- [baseConfig, overrideConfig, baseLang, overrideLang, theme] = await Promise.all([
84
- this.http.get(`${assetPartial}/baseline/appsettings.json`).toPromise(),
85
- this.http.get(`${assetPartial}/configurations/appsettings.json`).toPromise(),
86
- this.http.get(`${assetPartial}/i18n/${this.translateService.currentLang}.json`).toPromise(),
87
- this.http.get(`${assetPartial}/configurations/${this.translateService.currentLang}.json`).toPromise(),
88
- this.http.get(`${assetPartial}/configurations/theme.json`).toPromise()
89
- ]);
90
- this.configService.config = _.mergeWith(baseConfig, overrideConfig, this.mergeCustomizer);
91
- const mergedLanguage = _.mergeWith(baseLang, overrideLang, this.mergeCustomizer);
92
- this.translateService.setTranslation(this.translateService.currentLang, mergedLanguage);
93
- const configurePartial = (t) => {
94
- const configSnapShot = this.configService.config;
95
- configSnapShot.theme = t;
96
- this.configService.config = configSnapShot;
97
- this.themeService.initPalette(t);
98
- };
99
- const subdomain = this.getSubdomain();
100
- if (subdomain && this.configService.config.subdomain) {
101
- try {
102
- let [subdomainConfigs, subdomainLanguage, subdomainTheme] = await Promise.all([
103
- lastValueFrom(this.http.get(`${assetPartial}/configurations/${subdomain}.${this.translateService.currentLang}.json`)),
104
- lastValueFrom(this.http.get(`${assetPartial}/configurations/${subdomain}.appsettings.json`)),
105
- lastValueFrom(this.http.get(`${assetPartial}/configurations/${subdomain}.theme.json`))
106
- ]);
107
- this.configService.config = _.mergeWith(this.configService.config, subdomainConfigs, this.mergeCustomizer);
108
- this.translateService.setTranslation(this.translateService.currentLang, _.mergeWith(mergedLanguage, subdomainLanguage, this.mergeCustomizer));
109
- const mergedTheme = _.mergeWith(theme, subdomainTheme, this.mergeCustomizer);
110
- configurePartial(mergedTheme);
111
- }
112
- catch (e) {
113
- if (this.configService.config.subdomain && this.configService.config.subdomain.subdomains.length && !this.configService.config.subdomain.subdomains.includes(subdomain)) {
114
- this.router.dispose();
115
- const error = `Invalid subdomain: ${subdomain}`;
116
- console.error(error);
117
- throw new Error(error);
118
- }
119
- else if (this.configService.config.subdomain?.requireConfiguredSubdomain && this.configService.config.subdomain?.subdomains.includes(subdomain)) {
120
- this.router.dispose();
121
- const error = `Configured subdomain: ${subdomain} does not have any subdomain specific configurations`;
122
- reject(error);
123
- console.error(error);
124
- throw new Error(error);
125
- }
126
- configurePartial(theme);
127
- }
128
- }
129
- else {
130
- configurePartial(theme);
131
- }
132
- this.trySetUpFederatedModules();
133
- }
134
- catch (error) {
135
- // Catch any errors during the get configurations API call
136
- console.error('Error Loading Configurations or Languages');
137
- // Reject the promise
138
- reject('error');
139
- return throwError(error.error || 'Server error');
140
- }
141
- try {
142
- if (this.customAuthConfigService) {
143
- await this.customAuthConfigService.configureAuthSettings().then(authConfig => {
144
- if (authConfig) {
145
- const config = this.configService.config.oAuthSettings;
146
- return this.login(config);
147
- }
148
- else {
149
- return Promise.resolve(false);
150
- }
151
- });
152
- }
153
- else {
154
- const oAuth = await this.setUpOAuth();
155
- }
156
- }
157
- catch (error) {
158
- reject(error);
159
- return throwError(error);
160
- }
161
- // Navigate to the requested route
162
- if (this.configService.config.oAuthSettings?.preserveRoute) {
163
- this.router.navigateByUrl(this.oAuthService.state);
164
- }
165
- this.isInitializedBs.next(true);
166
- resolve(true);
167
- }).catch((error) => {
168
- // Catch the error
169
- console.error('There was an error loading the startup configurations.');
170
- });
171
- }
172
- /**
173
- * Configure implicit flow
174
- */
175
- async setUpOAuth() {
176
- if (this.configService.config?.oAuthSettings?.issuer) {
177
- const config = this.configService.config.oAuthSettings;
178
- const authConfig = new AuthConfig({
179
- clientId: config.clientId,
180
- redirectUri: config.redirectUri,
181
- issuer: config.issuer,
182
- scope: config.scope,
183
- skipIssuerCheck: config.skipIssuerCheck != undefined ? config.skipIssuerCheck : true,
184
- timeoutFactor: config.timeoutFactor || 0.75,
185
- postLogoutRedirectUri: config.postLogoutRedirectUri,
186
- loginUrl: config.loginUrl,
187
- strictDiscoveryDocumentValidation: false,
188
- responseType: config.responseType || 'code'
189
- });
190
- this.oAuthService.configure(authConfig);
191
- this.oAuthService.skipIssuerCheck = true;
192
- this.oAuthService.responseType = config.responseType || 'code';
193
- this.oAuthService.strictDiscoveryDocumentValidation = false;
194
- this.oAuthService.tokenValidationHandler = new JwksValidationHandler();
195
- this.oAuthService.timeoutFactor = 0.75;
196
- this.oAuthService.setupAutomaticSilentRefresh({}, 'access_token');
197
- // set initialized on start up to true
198
- config.authSetOnStartup = true;
199
- const parentConfig = this.configService.config;
200
- parentConfig.oAuthSettings = config;
201
- this.configService.config = parentConfig;
202
- return this.login(config);
203
- }
204
- return Promise.resolve(true);
205
- }
206
- /**
207
- * Handle Login
208
- * @param config The Oidc Auth Settings
209
- */
210
- async login(config) {
211
- const isValid = this.validateExistingTokenAgainstConfigs();
212
- const preservedRoute = this.window.sessionStorage.getItem(preSignInRouteStorageKey);
213
- if (!preservedRoute) {
214
- this.window.sessionStorage.setItem(preSignInRouteStorageKey, this.location.path());
215
- }
216
- if (config.requireLoginOnStartup || !isValid) {
217
- return this.oAuthService.loadDiscoveryDocumentAndLogin({ state: this.location.path() })
218
- // handles the case for expired access token or invalid nonce or people bookmarking the ids login page
219
- .catch(async (res) => {
220
- this.oAuthService.initLoginFlow(this.location.path());
221
- return Promise.resolve(true);
222
- });
223
- }
224
- else {
225
- return this.oAuthService.loadDiscoveryDocumentAndTryLogin()
226
- // handles the case for expired access token or invalid nonce or people bookmarking the ids login page
227
- .catch(async (res) => {
228
- this.oAuthService.initLoginFlow();
229
- return Promise.resolve(true);
230
- });
231
- }
232
- }
233
- /**
234
- * Merges the two config objects ignoring the array type
235
- * @param objValue The default config value
236
- * @param srcValue The target switchboard config value
237
- * @returns The merge of the two configs provided
238
- */
239
- mergeCustomizer(objValue, srcValue) {
240
- if (_.isArray(objValue) && srcValue) {
241
- return srcValue;
242
- }
243
- }
244
- /**
245
- * Validates the existing token against the configurations
246
- * @returns true when token is valid
247
- */
248
- validateExistingTokenAgainstConfigs() {
249
- if (this.configService.config.oAuthSettings.disableStartupTokenValidation) {
250
- return true;
251
- }
252
- if (!this.window.sessionStorage.getItem('access_token')) {
253
- return true;
254
- }
255
- const grantedScopes = this.oAuthService.getGrantedScopes();
256
- const configuredScopes = this.configService.config.oAuthSettings.scope.split(' ');
257
- const diffs = grantedScopes.filter(x => !configuredScopes.includes(x))
258
- .concat(configuredScopes.filter(x => !grantedScopes.includes(x)));
259
- if (diffs.length || this.oAuthService.getIdentityClaims()['aud'] !== this.configService.config.oAuthSettings.clientId) {
260
- this.window.sessionStorage.removeItem('access_token');
261
- return false;
262
- }
263
- return true;
264
- }
265
- /** Getting the subdomain from url */
266
- getSubdomain() {
267
- const domain = this.window.location.hostname;
268
- if (domain.indexOf('.') < 0 ||
269
- domain.split('.')[0] === this.exampleSubdomain || domain.split('.')[0] === this.lvhSubstring || domain.split('.')[0] === this.wwwSubstring) {
270
- return '';
271
- }
272
- else {
273
- return domain.split('.')[0];
274
- }
275
- }
276
- /**
277
- * Tries to set up the federated modules when configured
278
- */
279
- trySetUpFederatedModules() {
280
- if (this.federatedModuleService.isFederatedModule || !this.configService.config.federatedModules || !Object.keys(this.configService.config.federatedModules).length) {
281
- return false;
282
- }
283
- this.window.sessionStorage.setItem(federatedModuleConfigStorageKey, JSON.stringify(this.configService.config.federatedModules));
284
- return true;
285
- }
286
- }
287
- Initializer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: Initializer, deps: [{ token: i1.HttpClient }, { token: i2.TranslateService }, { token: i3.ThemeService }, { token: i4.BaseConfigService }, { token: i5.OAuthService }, { token: i6.Router }, { token: i7.Location }, { token: i8.FederatedModuleService }, { token: i9.CustomAuthConfigService, optional: true }, { token: WINDOW, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
288
- Initializer.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: Initializer, providedIn: 'root' });
289
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: Initializer, decorators: [{
290
- type: Injectable,
291
- args: [{
292
- providedIn: 'root'
293
- }]
294
- }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.TranslateService }, { type: i3.ThemeService }, { type: i4.BaseConfigService }, { type: i5.OAuthService }, { type: i6.Router }, { type: i7.Location }, { type: i8.FederatedModuleService }, { type: i9.CustomAuthConfigService, decorators: [{
295
- type: Optional
296
- }] }, { type: undefined, decorators: [{
297
- type: Optional
298
- }, {
299
- type: Inject,
300
- args: [WINDOW]
301
- }] }]; } });
302
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5pdGlhbGl6ZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FybWF0dXJlL3NyYy9saWIvY29yZS9pbml0aWFsaXplci9pbml0aWFsaXplci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUc3RCxPQUFPLEVBQUUsVUFBVSxFQUFnQixNQUFNLHFCQUFxQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2pFLE9BQU8sS0FBSyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBQzVCLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFjLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUc5RSxPQUFPLEVBQUUsK0JBQStCLEVBQUUsa0JBQWtCLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7Ozs7Ozs7O0FBUTVIOztHQUVHO0FBTUgsTUFBTSxPQUFPLFdBQVc7SUFpQnRCLDhCQUE4QjtJQUM5QixJQUFXLGFBQWE7UUFDdEIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQztJQUNwQyxDQUFDO0lBS0Q7Ozs7Ozs7Ozs7OztPQVlHO0lBQ0gsWUFDbUIsSUFBZ0IsRUFDaEIsZ0JBQWtDLEVBQ2xDLFlBQTBCLEVBQzFCLGFBQWdDLEVBQ2hDLFlBQTBCLEVBQzFCLE1BQWMsRUFDZCxRQUFrQixFQUNsQixzQkFBOEMsRUFDbEMsdUJBQWdELEVBQ3hDLE9BQVk7UUFUaEMsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLGtCQUFhLEdBQWIsYUFBYSxDQUFtQjtRQUNoQyxp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QyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7UUFDaEksT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDOzt3R0EzU1UsV0FBVyxnVEFnREEsTUFBTTs0R0FoRGpCLFdBQVcsY0FIUixNQUFNOzJGQUdULFdBQVc7a0JBTHZCLFVBQVU7bUJBQ1Q7b0JBQ0UsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFpREUsUUFBUTs7MEJBQ1IsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSwgT3B0aW9uYWwsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBBdXRoQ29uZmlnLCBPQXV0aFNlcnZpY2UgfSBmcm9tICdhbmd1bGFyLW9hdXRoMi1vaWRjJztcclxuaW1wb3J0IHsgSndrc1ZhbGlkYXRpb25IYW5kbGVyIH0gZnJvbSAnYW5ndWxhci1vYXV0aDItb2lkYy1qd2tzJztcclxuaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGxhc3RWYWx1ZUZyb20sIE9ic2VydmFibGUsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcclxuXHJcbmltcG9ydCB7IFRoZW1lU2VydmljZSB9IGZyb20gJy4uLy4uL3RoZW1pbmcvc2VydmljZXMvdGhlbWUuc2VydmljZSc7XHJcbmltcG9ydCB7IGZlZGVyYXRlZE1vZHVsZUNvbmZpZ1N0b3JhZ2VLZXksIGxhbmd1YWdlU3RvcmFnZUtleSwgcHJlU2lnbkluUm91dGVTdG9yYWdlS2V5LCBXSU5ET1cgfSBmcm9tICcuLi9tb2RlbHMvY29uc3RhbnRzJztcclxuaW1wb3J0IHsgT2lkY0F1dGhTZXR0aW5ncyB9IGZyb20gJy4uL21vZGVscy9vaWRjLWF1dGgtc2V0dGluZ3MnO1xyXG5pbXBvcnQgeyBCYXNlQ29uZmlnU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2Jhc2UtY29uZmlnLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDdXN0b21BdXRoQ29uZmlnU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2N1c3RvbS1hdXRoLWNvbmZpZy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgTG9jYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBGZWRlcmF0ZWRNb2R1bGVTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvZmVkZXJhdGVkLW1vZHVsZS5zZXJ2aWNlJztcclxuXHJcbi8qKlxyXG4gKiBUaGUgc3RhcnR1cCBzZXJ2aWNlIGlzIHVzZWQgdG8gY2FsbCBtZXRob2RzIHRoYXQgc2hvdWxkIGJlIHJ1biB3aGVuIGluaXRpYWxseSBsb2FkaW5nIHRoZSBhcHBsaWNhdGlvblxyXG4gKi9cclxuQEluamVjdGFibGUoXHJcbiAge1xyXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbiAgfVxyXG4pXHJcbmV4cG9ydCBjbGFzcyBJbml0aWFsaXplciB7XHJcblxyXG4gIC8qKiBUaGUgY29uZmlndXJhdGlvbiBiZWhhdmlvciBzdWJqZWN0ICovXHJcbiAgcHJpdmF0ZSByZWFkb25seSBpc0luaXRpYWxpemVkQnM6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cclxuICAvKiogVGhlIGJyb3dzZXIgd2luZG93ICovXHJcbiAgcHJpdmF0ZSByZWFkb25seSB3aW5kb3c6IFdpbmRvdztcclxuXHJcbiAgLyoqIFRoZSBleGFtcGxlIHRoZSBzdWJkb21haW4gc3Vic3RyaW5nICovXHJcbiAgcHJpdmF0ZSByZWFkb25seSBleGFtcGxlU3ViZG9tYWluOiBzdHJpbmcgPSAnZXhhbXBsZSc7XHJcblxyXG4gIC8qKiBUaGUgd3d3IHN1YnN0cmluZyBmb3Igc3ViZG9tYWluIHJvdXRlIGZpbmRpbmcgKi9cclxuICBwcml2YXRlIHJlYWRvbmx5IHd3d1N1YnN0cmluZzogc3RyaW5nID0gJ3d3dyc7XHJcblxyXG4gIC8qKiBUaGUgbHZoIHN1YnN0cmluZyBmb3Igc3ViZG9tYWluIHJvdXRlIGZpbmRpbmcgKi9cclxuICBwcml2YXRlIHJlYWRvbmx5IGx2aFN1YnN0cmluZzogc3RyaW5nID0gJ2x2aCdcclxuXHJcbiAgLyoqIEdldHMgdGhlIGNvbmZpZ3VyYXRpb25zICovXHJcbiAgcHVibGljIGdldCBpc0luaXRpYWxpemVkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaXNJbml0aWFsaXplZEJzLnZhbHVlO1xyXG4gIH1cclxuXHJcbiAgLyoqIFRoZSBjb25maWd1cmF0aW9uIG9ic2VydmFibGUgKi9cclxuICBwdWJsaWMgcmVhZG9ubHkgaXNJbml0aWFsaXplZCQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XHJcblxyXG4gIC8qKlxyXG4gICAqIENvbnN0cnVjdHMgdGhlIHN0YXJ0dXAgc2VydmljZS4gSW5jbHVkZSBhbnkgc2VydmljZXMgdGhhdCBzaG91bGQgYmUgdXNlZCBkdXJpbmcgc3RhcnR1cFxyXG4gICAqIEBwYXJhbSBodHRwIFRoZSBodHRwIGNsaWVudFxyXG4gICAqIEBwYXJhbSB0cmFuc2xhdGVTZXJ2aWNlIFRoZSB0cmFuc2xhdGUgc2VydmljZVxyXG4gICAqIEBwYXJhbSB0aGVtZVNlcnZpY2UgVGhlIHRoZW1lIHNlcnZpY2VcclxuICAgKiBAcGFyYW0gY29uZmlnU2VydmljZSBUaGUgY29uZmlnIHNlcnZpY2VcclxuICAgKiBAcGFyYW0gb0F1dGhTZXJ2aWNlIFRoZSBvYXV0aCBzZXJ2aWNlXHJcbiAgICogQHBhcmFtIHJvdXRlciBUaGUgcm91dGVyXHJcbiAgICogQHBhcmFtIGxvY2F0aW9uIFRoZSBsb2NhdGlvblxyXG4gICAqIEBwYXJhbSBmZWRlcmF0ZWRNb2R1bGVTZXJ2aWNlIFRoZSBmZWRlcmF0ZWQgbW9kdWxlIHNlcnZpY2VcclxuICAgKiBAcGFyYW0gY3VzdG9tQXV0aENvbmZpZ1NlcnZpY2UgVGhlIGN1c3RvbSBhdXRoIGNvbmZpZyBzZXJ2aWNlXHJcbiAgICogQHBhcmFtIF93aW5kb3cgVGhlIHdpbmRvdyBpbmplY3Rpb25cclxuICAgKi9cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgaHR0cDogSHR0cENsaWVudCxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgdGhlbWVTZXJ2aWNlOiBUaGVtZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbmZpZ1NlcnZpY2U6IEJhc2VDb25maWdTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBvQXV0aFNlcnZpY2U6IE9BdXRoU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxvY2F0aW9uOiBMb2NhdGlvbixcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgZmVkZXJhdGVkTW9kdWxlU2VydmljZTogRmVkZXJhdGVkTW9kdWxlU2VydmljZSxcclxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgcmVhZG9ubHkgY3VzdG9tQXV0aENvbmZpZ1NlcnZpY2U6IEN1c3RvbUF1dGhDb25maWdTZXJ2aWNlLFxyXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChXSU5ET1cpIHJlYWRvbmx5IF93aW5kb3c6IGFueVxyXG4gICkge1xyXG4gICAgdGhpcy5pc0luaXRpYWxpemVkJCA9IHRoaXMuaXNJbml0aWFsaXplZEJzLmFzT2JzZXJ2YWJsZSgpO1xyXG4gICAgdGhpcy53aW5kb3cgPSBfd2luZG93IHx8IHdpbmRvdztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIExvYWRzIGFsbCBkYXRhIHRoYXQgaXMgbmVlZGVkIHVwb24gaW5pdGlhbCBsb2FkaW5nIG9mIHRoZSB3ZWJzaXRlXHJcbiAgICovXHJcbiAgcHVibGljIGFzeW5jIGluaXRpYWxpemUoKTogUHJvbWlzZTxhbnk+IHtcclxuICAgIC8vIHJlYWRzIHRoZSBsYW5ndWFnZSBmcm9tIGxvY2FsIHN0b3JhZ2Ugc2V0IGluIHRoZSBwYXJlbnQgYXBwXHJcbiAgICAvLyBsYW5ndWFnZSBsb2FkaW5nXHJcblxyXG4gICAgLy8gU2V0IGxhbmd1YWdlcyBmb3IgdHJhbnNsYXRpb24gc2VydmljZVxyXG4gICAgY29uc3QgbGFuZyA9IHRoaXMud2luZG93LmxvY2FsU3RvcmFnZS5nZXRJdGVtKGxhbmd1YWdlU3RvcmFnZUtleSkgfHwgdGhpcy53aW5kb3cuc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShsYW5ndWFnZVN0b3JhZ2VLZXkpIHx8ICdlbic7XHJcbiAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2Uuc2V0RGVmYXVsdExhbmcobGFuZyk7XHJcbiAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UudXNlKGxhbmcpO1xyXG5cclxuICAgIC8vIEFkYXB0ZWQgZnJvbSBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL2EvNDE2MzY4ODBcclxuICAgIC8vIEFkYXB0ZWQgZnJvbSBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL2EvNDE3MzYyOTNcclxuXHJcbiAgICAvLyBBIGNhbGxiYWNrIHVzZWQgdG8gaW5pdGlhbGl6ZSB0aGUgcHJvbWlzZS4gVGhpcyBjYWxsYmFjayBpcyBwYXNzZWQgdHdvIGFyZ3VtZW50czpcclxuICAgIC8vIGEgcmVzb2x2ZSBjYWxsYmFjayB1c2VkIHJlc29sdmUgdGhlIHByb21pc2Ugd2l0aCBhIHZhbHVlIG9yIHRoZSByZXN1bHQgb2YgYW5vdGhlciBwcm9taXNlLFxyXG4gICAgLy8gYW5kIGEgcmVqZWN0IGNhbGxiYWNrIHVzZWQgdG8gcmVqZWN0IHRoZSBwcm9taXNlIHdpdGggYSBwcm92aWRlZCByZWFzb24gb3IgZXJyb3IuXHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoYXN5bmMgKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgICAvLyBHbyB0aHJvdWdoIGFsbCBzZXJ2aWNlcyBhbmQgY29tcGxldGUgYW55IEFQSSBjYWxscyBuZWNlc3NhcnkuXHJcbiAgICAgIC8vIEF0IHRoZSBlbmQsIGlmIGFsbCB3b3JrcyBhbmQgbG9hZHMgYXMgZXhwZWN0ZWQsIHJlc29sdmUgdGhlIHByb21pc2UgYW5kIHNldCBzdGFydHVwIHN1Y2Nlc3MgdG8gdHJ1ZS5cclxuICAgICAgLy8gSWYgYW4gaXNzdWUgaXMgZW5jb3VudGVyZWQsIHlvdSBjYW4gY2FsbCByZWplY3QoKSB0byBoaXQgdGhlIGNhdGNoKCkgY29kZSBiZWxvdy5cclxuXHJcbiAgICAgIC8vIEZpcnN0LCBsb2FkIHRoZSBjb25maWd1cmF0aW9uc1xyXG4gICAgICBjb25zdCBhc3NldFBhcnRpYWwgPSAhdGhpcy5mZWRlcmF0ZWRNb2R1bGVTZXJ2aWNlLmlzRmVkZXJhdGVkTW9kdWxlID8gJy4vYXNzZXRzJyA6IGAuL2Fzc2V0cy9mZWRlcmF0aW9uLyR7dGhpcy5mZWRlcmF0ZWRNb2R1bGVTZXJ2aWNlLmZlZGVyYXRlZE1vZHVsZUlkfS9hc3NldHNgO1xyXG4gICAgICBsZXQgW2Jhc2VDb25maWcsIG92ZXJyaWRlQ29uZmlnLCBiYXNlTGFuZywgb3ZlcnJpZGVMYW5nLCB0aGVtZV0gPSBbSlNPTiwgSlNPTiwgSlNPTiwgSlNPTiwgSlNPTl07XHJcbiAgICAgIHRyeSB7XHJcbiAgICAgICAgW2Jhc2VDb25maWcsIG92ZXJyaWRlQ29uZmlnLCBiYXNlTGFuZywgb3ZlcnJpZGVMYW5nLCB0aGVtZV0gPSBhd2FpdCBQcm9taXNlLmFsbChbXHJcbiAgICAgICAgICB0aGlzLmh0dHAuZ2V0PEpTT04+KGAke2Fzc2V0UGFydGlhbH0vYmFzZWxpbmUvYXBwc2V0dGluZ3MuanNvbmApLnRvUHJvbWlzZSgpLFxyXG4gICAgICAgICAgdGhpcy5odHRwLmdldDxKU09OPihgJHthc3NldFBhcnRpYWx9L2NvbmZpZ3VyYXRpb25zL2FwcHNldHRpbmdzLmpzb25gKS50b1Byb21pc2UoKSxcclxuICAgICAgICAgIHRoaXMuaHR0cC5nZXQ8SlNPTj4oYCR7YXNzZXRQYXJ0aWFsfS9pMThuLyR7dGhpcy50cmFuc2xhdGVTZXJ2aWNlLmN1cnJlbnRMYW5nfS5qc29uYCkudG9Qcm9taXNlKCksXHJcbiAgICAgICAgICB0aGlzLmh0dHAuZ2V0PEpTT04+KGAke2Fzc2V0UGFydGlhbH0vY29uZmlndXJhdGlvbnMvJHt0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuY3VycmVudExhbmd9Lmpzb25gKS50b1Byb21pc2UoKSxcclxuICAgICAgICAgIHRoaXMuaHR0cC5nZXQ8SlNPTj4oYCR7YXNzZXRQYXJ0aWFsfS9jb25maWd1cmF0aW9ucy90aGVtZS5qc29uYCkudG9Qcm9taXNlKClcclxuICAgICAgICBdKTtcclxuICAgICAgICB0aGlzLmNvbmZpZ1NlcnZpY2UuY29uZmlnID0gXy5tZXJnZVdpdGgoYmFzZUNvbmZpZywgb3ZlcnJpZGVDb25maWcsIHRoaXMubWVyZ2VDdXN0b21pemVyKTtcclxuICAgICAgICBjb25zdCBtZXJnZWRMYW5ndWFnZSA9IF8ubWVyZ2VXaXRoKGJhc2VMYW5nLCBvdmVycmlkZUxhbmcsIHRoaXMubWVyZ2VDdXN0b21pemVyKTtcclxuICAgICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2Uuc2V0VHJhbnNsYXRpb24odGhpcy50cmFuc2xhdGVTZXJ2aWNlLmN1cnJlbnRMYW5nLCBtZXJnZWRMYW5ndWFnZSk7XHJcblxyXG4gICAgICAgIGNvbnN0IGNvbmZpZ3VyZVBhcnRpYWwgPSAodCkgPT4ge1xyXG4gICAgICAgICAgY29uc3QgY29uZmlnU25hcFNob3QgPSB0aGlzLmNvbmZpZ1NlcnZpY2UuY29uZmlnO1xyXG4gICAgICAgICAgY29uZmlnU25hcFNob3QudGhlbWUgPSB0IGFzIGFueTtcclxuICAgICAgICAgIHRoaXMuY29uZmlnU2VydmljZS5jb25maWcgPSBjb25maWdTbmFwU2hvdDtcclxuICAgICAgICAgIHRoaXMudGhlbWVTZXJ2aWNlLmluaXRQYWxldHRlKHQgYXMgYW55KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3Qgc3ViZG9tYWluID0gdGhpcy5nZXRTdWJkb21haW4oKTtcclxuICAgICAgICBpZiAoc3ViZG9tYWluICYmIHRoaXMuY29uZmlnU2VydmljZS5jb25maWcuc3ViZG9tYWluKSB7XHJcbiAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICBsZXQgW3N1YmRvbWFpbkNvbmZpZ3MsIHN1YmRvbWFpbkxhbmd1YWdlLCBzdWJkb21haW5UaGVtZV0gPSBhd2FpdCBQcm9taXNlLmFsbChbXHJcbiAgICAgICAgICAgICAgbGFzdFZhbHVlRnJvbSh0aGlzLmh0dHAuZ2V0PEpTT04+KGAke2Fzc2V0UGFydGlhbH0vY29uZmlndXJhdGlvbnMvJHtzdWJkb21haW59LiR7dGhpcy50cmFuc2xhdGVTZXJ2aWNlLmN1cnJlbnRMYW5nfS5qc29uYCkpLFxyXG4gICAgICAgICAgICAgIGxhc3RWYWx1ZUZyb20odGhpcy5odHRwLmdldDxKU09OPihgJHthc3NldFBhcnRpYWx9L2NvbmZpZ3VyYXRpb25zLyR7c3ViZG9tYWlufS5hcHBzZXR0aW5ncy5qc29uYCkpLFxyXG4gICAgICAgICAgICAgIGxhc3RWYWx1ZUZyb20odGhpcy5odHRwLmdldDxKU09OPihgJHthc3NldFBhcnRpYWx9L2NvbmZpZ3VyYXRpb25zLyR7c3ViZG9tYWlufS50aGVtZS5qc29uYCkpXHJcbiAgICAgICAgICAgIF0pO1xyXG4gICAgICAgICAgICB0aGlzLmNvbmZpZ1NlcnZpY2UuY29uZmlnID0gXy5tZXJnZVdpdGgodGhpcy5jb25maWdTZXJ2aWNlLmNvbmZpZywgc3ViZG9tYWluQ29uZmlncywgdGhpcy5tZXJnZUN1c3RvbWl6ZXIpO1xyXG4gICAgICAgICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2Uuc2V0VHJhbnNsYXRpb24odGhpcy50cmFuc2xhdGVTZXJ2aWNlLmN1cnJlbnRMYW5nLCBfLm1lcmdlV2l0aChtZXJnZWRMYW5ndWFnZSwgc3ViZG9tYWluTGFuZ3VhZ2UsIHRoaXMubWVyZ2VDdXN0b21pemVyKSk7XHJcbiAgICAgICAgICAgIGNvbnN0IG1lcmdlZFRoZW1lID0gXy5tZXJnZVdpdGgodGhlbWUsIHN1YmRvbWFpblRoZW1lLCB0aGlzLm1lcmdlQ3VzdG9taXplcik7XHJcbiAgICAgICAgICAgIGNvbmZpZ3VyZVBhcnRpYWwobWVyZ2VkVGhlbWUpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgY2F0Y2ggKGUpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuY29uZmlnU2VydmljZS5jb25maWcuc3ViZG9tYWluICYmIHRoaXMuY29uZmlnU2VydmljZS5jb25maWcuc3ViZG9tYWluLnN1YmRvbWFpbnMubGVuZ3RoICYmICF0aGlzLmNvbmZpZ1NlcnZpY2UuY29uZmlnLnN1YmRvbWFpbi5zdWJkb21haW5zLmluY2x1ZGVzKHN1YmRvbWFpbikpIHtcclxuICAgICAgICAgICAgICB0aGlzLnJvdXRlci5kaXNwb3NlKCk7XHJcbiAgICAgICAgICAgICAgY29uc3QgZXJyb3IgPSBgSW52YWxpZCBzdWJkb21haW46ICR7c3ViZG9tYWlufWA7XHJcbiAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XHJcbiAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGVycm9yKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmICh0aGlzLmNvbmZpZ1NlcnZpY2UuY29uZmlnLnN1YmRvbWFpbj8ucmVxdWlyZUNvbmZpZ3VyZWRTdWJkb21haW4gJiYgdGhpcy5jb25maWdTZXJ2aWNlLmNvbmZpZy5zdWJkb21haW4/LnN1YmRvbWFpbnMuaW5jbHVkZXMoc3ViZG9tYWluKSkge1xyXG4gICAgICAgICAgICAgIHRoaXMucm91dGVyLmRpc3Bvc2UoKTtcclxuICAgICAgICAgICAgICBjb25zdCBlcnJvciA9IGBDb25maWd1cmVkIHN1YmRvbWFpbjogJHtzdWJkb21haW59IGRvZXMgbm90IGhhdmUgYW55IHN1YmRvbWFpbiBzcGVjaWZpYyBjb25maWd1cmF0aW9uc2A7XHJcbiAgICAgICAgICAgICAgcmVqZWN0KGVycm9yKTtcclxuICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcclxuICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoZXJyb3IpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbmZpZ3VyZVBhcnRpYWwodGhlbWUpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIGNvbmZpZ3VyZVBhcnRpYWwodGhlbWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnRyeVNldFVwRmVkZXJhdGVkTW9kdWxlcygpO1xyXG4gICAgICB9XHJcbiAgICAgIGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgIC8vIENhdGNoIGFueSBlcnJvcnMgZHVyaW5nIHRoZSBnZXQgY29uZmlndXJhdGlvbnMgQVBJIGNhbGxcclxuICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBMb2FkaW5nIENvbmZpZ3VyYXRpb25zIG9yIExhbmd1YWdlcycpO1xyXG4gICAgICAgIC8vIFJlamVjdCB0aGUgcHJvbWlzZVxyXG4gICAgICAgIHJlamVjdCgnZXJyb3InKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXJyb3IuZXJyb3IgfHwgJ1NlcnZlciBlcnJvcicpO1xyXG4gICAgICB9XHJcbiAgICAgIHRyeSB7XHJcbiAgICAgICAgaWYgKHRoaXMuY3VzdG9tQXV0aENvbmZpZ1NlcnZpY2UpIHtcclxuICAgICAgICAgIGF3YWl0IHRoaXMuY3VzdG9tQXV0aENvbmZpZ1NlcnZpY2UuY29uZmlndXJlQXV0aFNldHRpbmdzKCkudGhlbihhdXRoQ29uZmlnID0+IHtcclxuICAgICAgICAgICAgaWYgKGF1dGhDb25maWcpIHtcclxuICAgICAgICAgICAgICBjb25zdCBjb25maWcgPSB0aGlzLmNvbmZpZ1NlcnZpY2UuY29uZmlnLm9BdXRoU2V0dGluZ3M7XHJcblxyXG4gICAgICAgICAgICAgIHJldHVybiB0aGlzLmxvZ2luKGNvbmZpZyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShmYWxzZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIGNvbnN0IG9BdXRoID0gYXdhaXQgdGhpcy5zZXRVcE9BdXRoKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgIHJlamVjdChlcnJvcik7XHJcblxyXG4gICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGVycm9yKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLy8gTmF2aWdhdGUgdG8gdGhlIHJlcXVlc3RlZCByb3V0ZVxyXG4gICAgICBpZiAodGhpcy5jb25maWdTZXJ2aWNlLmNvbmZpZy5vQXV0aFNldHRpbmdzPy5wcmVzZXJ2ZVJvdXRlKSB7XHJcbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCh0aGlzLm9BdXRoU2VydmljZS5zdGF0ZSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMuaXNJbml0aWFsaXplZEJzLm5leHQodHJ1ZSk7XHJcbiAgICAgIHJlc29sdmUodHJ1ZSk7XHJcbiAgICB9KS5jYXRjaCgoZXJyb3IpID0+IHtcclxuICAgICAgLy8gQ2F0Y2ggdGhlIGVycm9yXHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ1RoZXJlIHdhcyBhbiBlcnJvciBsb2FkaW5nIHRoZSBzdGFydHVwIGNvbmZpZ3VyYXRpb25zLicpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDb25maWd1cmUgaW1wbGljaXQgZmxvd1xyXG4gICAqL1xyXG4gIHByaXZhdGUgYXN5bmMgc2V0VXBPQXV0aCgpOiBQcm9taXNlPGJvb2xlYW4+IHtcclxuICAgIGlmICh0aGlzLmNvbmZpZ1NlcnZpY2UuY29uZmlnPy5vQXV0aFNldHRpbmdzPy5pc3N1ZXIpIHtcclxuICAgICAgY29uc3QgY29uZmlnID0gdGhpcy5jb25maWdTZXJ2aWNlLmNvbmZpZy5vQXV0aFNldHRpbmdzO1xyXG4gICAgICBjb25zdCBhdXRoQ29uZmlnID0gbmV3IEF1dGhDb25maWcoe1xyXG4gICAgICAgIGNsaWVudElkOiBjb25maWcuY2xpZW50SWQsXHJcbiAgICAgICAgcmVkaXJlY3RVcmk6IGNvbmZpZy5yZWRpcmVjdFVyaSxcclxuICAgICAgICBpc3N1ZXI6IGNvbmZpZy5pc3N1ZXIsXHJcbiAgICAgICAgc2NvcGU6IGNvbmZpZy5zY29wZSxcclxuICAgICAgICBza2lwSXNzdWVyQ2hlY2s6IGNvbmZpZy5za2lwSXNzdWVyQ2hlY2sgIT0gdW5kZWZpbmVkID8gY29uZmlnLnNraXBJc3N1ZXJDaGVjayA6IHRydWUsXHJcbiAgICAgICAgdGltZW91dEZhY3RvcjogY29uZmlnLnRpbWVvdXRGYWN0b3IgfHwgMC43NSxcclxuICAgICAgICBwb3N0TG9nb3V0UmVkaXJlY3RVcmk6IGNvbmZpZy5wb3N0TG9nb3V0UmVkaXJlY3RVcmksXHJcbiAgICAgICAgbG9naW5Vcmw6IGNvbmZpZy5sb2dpblVybCxcclxuICAgICAgICBzdHJpY3REaXNjb3ZlcnlEb2N1bWVudFZhbGlkYXRpb246IGZhbHNlLFxyXG4gICAgICAgIHJlc3BvbnNlVHlwZTogY29uZmlnLnJlc3BvbnNlVHlwZSB8fCAnY29kZSdcclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMub0F1dGhTZXJ2aWNlLmNvbmZpZ3VyZShhdXRoQ29uZmlnKTtcclxuICAgICAgdGhpcy5vQXV0aFNlcnZpY2Uuc2tpcElzc3VlckNoZWNrID0gdHJ1ZTtcclxuICAgICAgdGhpcy5vQXV0aFNlcnZpY2UucmVzcG9uc2VUeXBlID0gY29uZmlnLnJlc3BvbnNlVHlwZSB8fCAnY29kZSc7XHJcbiAgICAgIHRoaXMub0F1dGhTZXJ2aWNlLnN0cmljdERpc2NvdmVyeURvY3VtZW50VmFsaWRhdGlvbiA9IGZhbHNlO1xyXG4gICAgICB0aGlzLm9BdXRoU2VydmljZS50b2tlblZhbGlkYXRpb25IYW5kbGVyID0gbmV3IEp3a3NWYWxpZGF0aW9uSGFuZGxlcigpO1xyXG4gICAgICB0aGlzLm9BdXRoU2VydmljZS50aW1lb3V0RmFjdG9yID0gMC43NTtcclxuICAgICAgdGhpcy5vQXV0aFNlcnZpY2Uuc2V0dXBBdXRvbWF0aWNTaWxlbnRSZWZyZXNoKHt9LCAnYWNjZXNzX3Rva2VuJyk7XHJcblxyXG4gICAgICAvLyBzZXQgaW5pdGlhbGl6ZWQgb24gc3RhcnQgdXAgdG8gdHJ1ZVxyXG4gICAgICBjb25maWcuYXV0aFNldE9uU3RhcnR1cCA9IHRydWU7XHJcbiAgICAgIGNvbnN0IHBhcmVudENvbmZpZyA9IHRoaXMuY29uZmlnU2VydmljZS5jb25maWc7XHJcbiAgICAgIHBhcmVudENvbmZpZy5vQXV0aFNldHRpbmdzID0gY29uZmlnO1xyXG4gICAgICB0aGlzLmNvbmZpZ1NlcnZpY2UuY29uZmlnID0gcGFyZW50Q29uZmlnO1xyXG5cclxuICAgICAgcmV0dXJuIHRoaXMubG9naW4oY29uZmlnKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHRydWUpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSGFuZGxlIExvZ2luXHJcbiAgICogQHBhcmFtIGNvbmZpZyBUaGUgT2lkYyBBdXRoIFNldHRpbmdzXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBhc3luYyBsb2dpbihjb25maWc6IE9pZGNBdXRoU2V0dGluZ3MpOiBQcm9taXNlPGJvb2xlYW4+IHtcclxuICAgIGNvbnN0IGlzVmFsaWQgPSB0aGlzLnZhbGlkYXRlRXhpc3RpbmdUb2tlbkFnYWluc3RDb25maWdzKCk7XHJcbiAgICBjb25zdCBwcmVzZXJ2ZWRSb3V0ZSA9IHRoaXMud2luZG93LnNlc3Npb25TdG9yYWdlLmdldEl0ZW0ocHJlU2lnbkluUm91dGVTdG9yYWdlS2V5KTtcclxuICAgIGlmICghcHJlc2VydmVkUm91dGUpIHtcclxuICAgICAgdGhpcy53aW5kb3cuc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbShwcmVTaWduSW5Sb3V0ZVN0b3JhZ2VLZXksIHRoaXMubG9jYXRpb24ucGF0aCgpKTtcclxuICAgIH1cclxuICAgIGlmIChjb25maWcucmVxdWlyZUxvZ2luT25TdGFydHVwIHx8ICFpc1ZhbGlkKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLm9BdXRoU2VydmljZS5sb2FkRGlzY292ZXJ5RG9jdW1lbnRBbmRMb2dpbih7c3RhdGU6IHRoaXMubG9jYXRpb24ucGF0aCgpfSlcclxuICAgICAgICAvLyBoYW5kbGVzIHRoZSBjYXNlIGZvciBleHBpcmVkIGFjY2VzcyB0b2tlbiBvciBpbnZhbGlkIG5vbmNlIG9yIHBlb3BsZSBib29rbWFya2luZyB0aGUgaWRzIGxvZ2luIHBhZ2VcclxuICAgICAgICAuY2F0Y2goYXN5bmMgKHJlcykgPT4ge1xyXG4gICAgICAgICAgdGhpcy5vQXV0aFNlcnZpY2UuaW5pdExvZ2luRmxvdyh0aGlzLmxvY2F0aW9uLnBhdGgoKSk7XHJcblxyXG4gICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh0cnVlKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICByZXR1cm4gdGhpcy5vQXV0aFNlcnZpY2UubG9hZERpc2NvdmVyeURvY3VtZW50QW5kVHJ5TG9naW4oKVxyXG4gICAgICAgIC8vIGhhbmRsZXMgdGhlIGNhc2UgZm9yIGV4cGlyZWQgYWNjZXNzIHRva2VuIG9yIGludmFsaWQgbm9uY2Ugb3IgcGVvcGxlIGJvb2ttYXJraW5nIHRoZSBpZHMgbG9naW4gcGFnZVxyXG4gICAgICAgIC5jYXRjaChhc3luYyAocmVzKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLm9BdXRoU2VydmljZS5pbml0TG9naW5GbG93KCk7XHJcblxyXG4gICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh0cnVlKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1lcmdlcyB0aGUgdHdvIGNvbmZpZyBvYmplY3RzIGlnbm9yaW5nIHRoZSBhcnJheSB0eXBlXHJcbiAgICogQHBhcmFtIG9ialZhbHVlIFRoZSBkZWZhdWx0IGNvbmZpZyB2YWx1ZVxyXG4gICAqIEBwYXJhbSBzcmNWYWx1ZSBUaGUgdGFyZ2V0IHN3aXRjaGJvYXJkIGNvbmZpZyB2YWx1ZVxyXG4gICAqIEByZXR1cm5zIFRoZSBtZXJnZSBvZiB0aGUgdHdvIGNvbmZpZ3MgcHJvdmlkZWRcclxuICAgKi9cclxuICBwcml2YXRlIG1lcmdlQ3VzdG9taXplcihvYmpWYWx1ZTogYW55LCBzcmNWYWx1ZTogYW55KTogYW55IHtcclxuICAgIGlmIChfLmlzQXJyYXkob2JqVmFsdWUpICYmIHNyY1ZhbHVlKSB7XHJcbiAgICAgIHJldHVybiBzcmNWYWx1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFZhbGlkYXRlcyB0aGUgZXhpc3RpbmcgdG9rZW4gYWdhaW5zdCB0aGUgY29uZmlndXJhdGlvbnNcclxuICAgKiBAcmV0dXJucyB0cnVlIHdoZW4gdG9rZW4gaXMgdmFsaWRcclxuICAgKi9cclxuICBwcml2YXRlIHZhbGlkYXRlRXhpc3RpbmdUb2tlbkFnYWluc3RDb25maWdzKCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKHRoaXMuY29uZmlnU2VydmljZS5jb25maWcub0F1dGhTZXR0aW5ncy5kaXNhYmxlU3RhcnR1cFRva2VuVmFsaWRhdGlvbikge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICAgIGlmICghdGhpcy53aW5kb3cuc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgnYWNjZXNzX3Rva2VuJykpIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgICBjb25zdCBncmFudGVkU2NvcGVzOiBBcnJheTxzdHJpbmc+ID0gIHRoaXMub0F1dGhTZXJ2aWNlLmdldEdyYW50ZWRTY29wZXMoKSBhcyBBcnJheTxzdHJpbmc+O1xyXG4gICAgY29uc3QgY29uZmlndXJlZFNjb3BlcyA9IHRoaXMuY29uZmlnU2VydmljZS5jb25maWcub0F1dGhTZXR0aW5ncy5zY29wZS5zcGxpdCgnICcpO1xyXG4gICAgY29uc3QgZGlmZnMgPSBncmFudGVkU2NvcGVzLmZpbHRlcih4ID0+ICFjb25maWd1cmVkU2NvcGVzLmluY2x1ZGVzKHgpKVxyXG4gICAgICAuY29uY2F0KGNvbmZpZ3VyZWRTY29wZXMuZmlsdGVyKHggPT4gIWdyYW50ZWRTY29wZXMuaW5jbHVkZXMoeCkpKTtcclxuICAgIGlmIChkaWZmcy5sZW5ndGggfHwgdGhpcy5vQXV0aFNlcnZpY2UuZ2V0SWRlbnRpdHlDbGFpbXMoKVsnYXVkJ10gIT09IHRoaXMuY29uZmlnU2VydmljZS5jb25maWcub0F1dGhTZXR0aW5ncy5jbGllbnRJZCkge1xyXG4gICAgICB0aGlzLndpbmRvdy5zZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKCdhY2Nlc3NfdG9rZW4nKTtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICAvKiogR2V0dGluZyB0aGUgc3ViZG9tYWluIGZyb20gdXJsICovXHJcbiAgcHJpdmF0ZSBnZXRTdWJkb21haW4oKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IGRvbWFpbiA9IHRoaXMud2luZG93LmxvY2F0aW9uLmhvc3RuYW1lO1xyXG4gICAgaWYgKGRvbWFpbi5pbmRleE9mKCcuJykgPCAwIHx8XHJcbiAgICAgIGRvbWFpbi5zcGxpdCgnLicpWzBdID09PSB0aGlzLmV4YW1wbGVTdWJkb21haW4gfHwgZG9tYWluLnNwbGl0KCcuJylbMF0gPT09IHRoaXMubHZoU3Vic3RyaW5nIHx8IGRvbWFpbi5zcGxpdCgnLicpWzBdID09PSB0aGlzLnd3d1N1YnN0cmluZykge1xyXG4gICAgICByZXR1cm4gJyc7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gZG9tYWluLnNwbGl0KCcuJylbMF07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBUcmllcyB0byBzZXQgdXAgdGhlIGZlZGVyYXRlZCBtb2R1bGVzIHdoZW4gY29uZmlndXJlZFxyXG4gICAqL1xyXG4gIHByaXZhdGUgdHJ5U2V0VXBGZWRlcmF0ZWRNb2R1bGVzKCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKHRoaXMuZmVkZXJhdGVkTW9kdWxlU2VydmljZS5pc0ZlZGVyYXRlZE1vZHVsZSB8fCAhdGhpcy5jb25maWdTZXJ2aWNlLmNvbmZpZy5mZWRlcmF0ZWRNb2R1bGVzIHx8ICFPYmplY3Qua2V5cyh0aGlzLmNvbmZpZ1NlcnZpY2UuY29uZmlnLmZlZGVyYXRlZE1vZHVsZXMpLmxlbmd0aCkge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICB0aGlzLndpbmRvdy5zZXNzaW9uU3RvcmFnZS5zZXRJdGVtKGZlZGVyYXRlZE1vZHVsZUNvbmZpZ1N0b3JhZ2VLZXksIEpTT04uc3RyaW5naWZ5KHRoaXMuY29uZmlnU2VydmljZS5jb25maWcuZmVkZXJhdGVkTW9kdWxlcykpO1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcm1hdHVyZS9zcmMvbGliL2NvcmUvbW9kZWxzL2Jhc2UtY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUaGVtZVBhbGV0dGVNb2RlbCB9IGZyb20gJy4uL2NsaWVudC1nZW5lcmF0ZWQvbW9kZWwvdGhlbWVQYWxldHRlTW9kZWwnO1xyXG5pbXBvcnQgeyBGZWRlcmF0ZWRNb2R1bGVDb25maWcgfSBmcm9tICcuL2ZlZGVyYXRlZC1tb2R1bGUtY29uZmlnJztcclxuaW1wb3J0IHsgSGVhZGVyQ29uZmlnIH0gZnJvbSAnLi9oZWFkZXItY29uZmlnJztcclxuaW1wb3J0IHsgTmF2aWdhdGlvbkNvbmZpZyB9IGZyb20gJy4vbmF2aWdhdGlvbi1jb25maWcnO1xyXG5pbXBvcnQgeyBPaWRjQXV0aFNldHRpbmdzIH0gZnJvbSAnLi9vaWRjLWF1dGgtc2V0dGluZ3MnO1xyXG5pbXBvcnQgeyBTdWJkb21haW5Db25maWcgfSBmcm9tICcuL3N1YmRvbWFpbi1jb25maWcnO1xyXG5cclxuLyoqIFRoZSBiYXNlIGNvbmZpZ3VyYXRpb24gaW50ZXJmYWNlICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgQmFzZUNvbmZpZyB7XHJcbiAgICAvKiogVGhlIG9pZGMgc2V0dGluZ3MgKi9cclxuICAgIG9BdXRoU2V0dGluZ3M6IE9pZGNBdXRoU2V0dGluZ3M7XHJcblxyXG4gICAgLyoqIFRoZSBoZWFkZXIgY29uZmlndXJhdGlvbnMgKi9cclxuICAgIGhlYWRlcjogSGVhZGVyQ29uZmlnO1xyXG5cclxuICAgIC8qKiBUaGUgdGhlbWUgcGFsZXR0ZSAqL1xyXG4gICAgdGhlbWU6IFRoZW1lUGFsZXR0ZU1vZGVsO1xyXG5cclxuICAgIC8qKiBUaGUgbmF2aWdhdGlvbiBjb25maWcgKi9cclxuICAgIG5hdmlnYXRpb246IE5hdmlnYXRpb25Db25maWc7XHJcblxyXG4gICAgLyoqIFRoZSBzdWIgZG9tYWluIGNvbmZpZ3VyYXRpb25zICovXHJcbiAgICBzdWJkb21haW4/OiBTdWJkb21haW5Db25maWc7XHJcblxyXG4gICAgLyoqIFRoZSBmZWRlcmF0ZWQgbW9kdWxlIGNvbmZpZ3VyYXRpb24gZGljdGlvbmFyeSAqL1xyXG4gICAgZmVkZXJhdGVkTW9kdWxlcz86IHtba2V5OiBzdHJpbmddIDogRmVkZXJhdGVkTW9kdWxlQ29uZmlnfVxyXG59XHJcbiJdfQ==
@@ -1,17 +0,0 @@
1
- import { InjectionToken } from '@angular/core';
2
- // Injection tokens
3
- /** The session configs */
4
- export const SESSION_CONFIG = new InjectionToken('SessionConfig');
5
- /** The window interface */
6
- export const WINDOW = new InjectionToken('Window');
7
- /** The user entity service configs */
8
- export const USER_ENTITY_SERVICE_CONFIG = new InjectionToken('UserEntityServiceConfig');
9
- /** The pre sign in route storage key */
10
- export const preSignInRouteStorageKey = 'preSignInRoute';
11
- /** The language storage key */
12
- export const languageStorageKey = 'language';
13
- /** The federated module configuration storage key */
14
- export const federatedModuleConfigStorageKey = 'sofAr-federatedModule-config';
15
- /** The federated module id of the application, this should be set when the application is allowed to run as a federated module */
16
- export const FEDERATED_MODULE_ID = new InjectionToken('FederatedModuleId');
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJtYXR1cmUvc3JjL2xpYi9jb3JlL21vZGVscy9jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUsvQyxtQkFBbUI7QUFDbkIsMEJBQTBCO0FBQzFCLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBa0MsSUFBSSxjQUFjLENBQWdCLGVBQWUsQ0FBQyxDQUFDO0FBRWhILDJCQUEyQjtBQUMzQixNQUFNLENBQUMsTUFBTSxNQUFNLEdBQTJCLElBQUksY0FBYyxDQUFTLFFBQVEsQ0FBQyxDQUFDO0FBRW5GLHNDQUFzQztBQUN0QyxNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBNEMsSUFBSSxjQUFjLENBQTBCLHlCQUF5QixDQUFDLENBQUM7QUFFMUosd0NBQXdDO0FBQ3hDLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFXLGdCQUFnQixDQUFDO0FBRWpFLCtCQUErQjtBQUMvQixNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBVyxVQUFVLENBQUM7QUFFckQscURBQXFEO0FBQ3JELE1BQU0sQ0FBQyxNQUFNLCtCQUErQixHQUFXLDhCQUE4QixDQUFDO0FBRXRGLGtJQUFrSTtBQUNsSSxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBMkIsSUFBSSxjQUFjLENBQVMsbUJBQW1CLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBTZXNzaW9uQ29uZmlnIH0gZnJvbSAnLi9zZXNzaW9uLWNvbmZpZyc7XHJcbmltcG9ydCB7IFVzZXJFbnRpdHlTZXJ2aWNlQ29uZmlnIH0gZnJvbSAnLi91c2VyLWVudGl0eS1zZXJ2aWNlLWNvbmZpZyc7XHJcblxyXG4vLyBJbmplY3Rpb24gdG9rZW5zXHJcbi8qKiBUaGUgc2Vzc2lvbiBjb25maWdzICovXHJcbmV4cG9ydCBjb25zdCBTRVNTSU9OX0NPTkZJRzogSW5qZWN0aW9uVG9rZW48U2Vzc2lvbkNvbmZpZz4gPSBuZXcgSW5qZWN0aW9uVG9rZW48U2Vzc2lvbkNvbmZpZz4oJ1Nlc3Npb25Db25maWcnKTtcclxuXHJcbi8qKiBUaGUgd2luZG93IGludGVyZmFjZSAqL1xyXG5leHBvcnQgY29uc3QgV0lORE9XOiBJbmplY3Rpb25Ub2tlbjxXaW5kb3c+ID0gbmV3IEluamVjdGlvblRva2VuPFdpbmRvdz4oJ1dpbmRvdycpO1xyXG5cclxuLyoqIFRoZSB1c2VyIGVudGl0eSBzZXJ2aWNlIGNvbmZpZ3MgKi9cclxuZXhwb3J0IGNvbnN0IFVTRVJfRU5USVRZX1NFUlZJQ0VfQ09ORklHOiBJbmplY3Rpb25Ub2tlbjxVc2VyRW50aXR5U2VydmljZUNvbmZpZz4gPSBuZXcgSW5qZWN0aW9uVG9rZW48VXNlckVudGl0eVNlcnZpY2VDb25maWc+KCdVc2VyRW50aXR5U2VydmljZUNvbmZpZycpO1xyXG5cclxuLyoqIFRoZSBwcmUgc2lnbiBpbiByb3V0ZSBzdG9yYWdlIGtleSAqL1xyXG5leHBvcnQgY29uc3QgcHJlU2lnbkluUm91dGVTdG9yYWdlS2V5OiBzdHJpbmcgPSAncHJlU2lnbkluUm91dGUnO1xyXG5cclxuLyoqIFRoZSBsYW5ndWFnZSBzdG9yYWdlIGtleSAqL1xyXG5leHBvcnQgY29uc3QgbGFuZ3VhZ2VTdG9yYWdlS2V5OiBzdHJpbmcgPSAnbGFuZ3VhZ2UnO1xyXG5cclxuLyoqIFRoZSBmZWRlcmF0ZWQgbW9kdWxlIGNvbmZpZ3VyYXRpb24gc3RvcmFnZSBrZXkgKi9cclxuZXhwb3J0IGNvbnN0IGZlZGVyYXRlZE1vZHVsZUNvbmZpZ1N0b3JhZ2VLZXk6IHN0cmluZyA9ICdzb2ZBci1mZWRlcmF0ZWRNb2R1bGUtY29uZmlnJztcclxuXHJcbi8qKiBUaGUgZmVkZXJhdGVkIG1vZHVsZSBpZCBvZiB0aGUgYXBwbGljYXRpb24sIHRoaXMgc2hvdWxkIGJlIHNldCB3aGVuIHRoZSBhcHBsaWNhdGlvbiBpcyBhbGxvd2VkIHRvIHJ1biBhcyBhIGZlZGVyYXRlZCBtb2R1bGUgKi9cclxuZXhwb3J0IGNvbnN0IEZFREVSQVRFRF9NT0RVTEVfSUQ6IEluamVjdGlvblRva2VuPHN0cmluZz4gPSBuZXcgSW5qZWN0aW9uVG9rZW48c3RyaW5nPignRmVkZXJhdGVkTW9kdWxlSWQnKTtcclxuIl19
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVkZXJhdGVkLW1vZHVsZS1jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcm1hdHVyZS9zcmMvbGliL2NvcmUvbW9kZWxzL2ZlZGVyYXRlZC1tb2R1bGUtY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIEZlZGVyYXRlZE1vZHVsZUNvbmZpZyB7XHJcbiAgICBkaXNwbGF5TmFtZTogc3RyaW5nO1xyXG59Il19
@@ -1,60 +0,0 @@
1
- import { Inject, Injectable, Optional } from '@angular/core';
2
- import { federatedModuleConfigStorageKey, FEDERATED_MODULE_ID, WINDOW } from '../models/constants';
3
- import * as i0 from "@angular/core";
4
- /** The federated module service */
5
- export class FederatedModuleService {
6
- /** The federated module configuration */
7
- get federatedModuleConfig() {
8
- if (this.federatedModuleId) {
9
- const configs = this.federatedModuleConfigDict;
10
- return configs.get(this.federatedModuleId);
11
- }
12
- return undefined;
13
- }
14
- /** True when application is running as a federated module */
15
- get isFederatedModule() {
16
- return !!this.federatedModuleConfig;
17
- }
18
- /** Gets the federated module config dictionary */
19
- get federatedModuleConfigDict() {
20
- const storageItem = this.window.sessionStorage.getItem(federatedModuleConfigStorageKey);
21
- if (!storageItem) {
22
- return undefined;
23
- }
24
- const dict = JSON.parse(storageItem);
25
- const result = new Map();
26
- Object.keys(dict).forEach(key => {
27
- result.set(key, dict[key]);
28
- });
29
- return result;
30
- }
31
- /**
32
- * Constructs the service
33
- * @param _window The browser window
34
- * @param federatedModuleId The federated module id
35
- */
36
- constructor(_window, federatedModuleId) {
37
- this._window = _window;
38
- this.federatedModuleId = federatedModuleId;
39
- this.window = _window || window;
40
- }
41
- }
42
- FederatedModuleService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: FederatedModuleService, deps: [{ token: WINDOW, optional: true }, { token: FEDERATED_MODULE_ID, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
43
- FederatedModuleService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: FederatedModuleService, providedIn: 'root' });
44
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: FederatedModuleService, decorators: [{
45
- type: Injectable,
46
- args: [{
47
- providedIn: 'root'
48
- }]
49
- }], ctorParameters: function () { return [{ type: undefined, decorators: [{
50
- type: Optional
51
- }, {
52
- type: Inject,
53
- args: [WINDOW]
54
- }] }, { type: undefined, decorators: [{
55
- type: Optional
56
- }, {
57
- type: Inject,
58
- args: [FEDERATED_MODULE_ID]
59
- }] }]; } });
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVkZXJhdGVkLW1vZHVsZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJtYXR1cmUvc3JjL2xpYi9jb3JlL3NlcnZpY2VzL2ZlZGVyYXRlZC1tb2R1bGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLCtCQUErQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sRUFBRSxNQUFNLHFCQUFxQixDQUFDOztBQUduRyxtQ0FBbUM7QUFJbkMsTUFBTSxPQUFPLHNCQUFzQjtJQUVqQyx5Q0FBeUM7SUFDekMsSUFBVyxxQkFBcUI7UUFDOUIsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUU7WUFDMUIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLHlCQUF5QixDQUFDO1lBQy9DLE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztTQUM1QztRQUNELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFRCw2REFBNkQ7SUFDN0QsSUFBVyxpQkFBaUI7UUFDMUIsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFBO0lBQ3JDLENBQUM7SUFFRCxrREFBa0Q7SUFDbEQsSUFBWSx5QkFBeUI7UUFDbkMsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLCtCQUErQixDQUFDLENBQUM7UUFDeEYsSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNoQixPQUFPLFNBQVMsQ0FBQztTQUNsQjtRQUNELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUEyQyxDQUFDO1FBQy9FLE1BQU0sTUFBTSxHQUFHLElBQUksR0FBRyxFQUFpQyxDQUFDO1FBQ3hELE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQzlCLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzdCLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUtEOzs7O09BSUc7SUFDSCxZQUMrQyxPQUFZLEVBQ0EsaUJBQXlCO1FBRHJDLFlBQU8sR0FBUCxPQUFPLENBQUs7UUFDQSxzQkFBaUIsR0FBakIsaUJBQWlCLENBQVE7UUFFbEYsSUFBSSxDQUFDLE1BQU0sR0FBRyxPQUFPLElBQUksTUFBTSxDQUFDO0lBQ2xDLENBQUM7O21IQTNDVSxzQkFBc0Isa0JBdUNYLE1BQU0sNkJBQ04sbUJBQW1CO3VIQXhDOUIsc0JBQXNCLGNBRnJCLE1BQU07MkZBRVAsc0JBQXNCO2tCQUhsQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBd0NJLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsTUFBTTs7MEJBQ3pCLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBmZWRlcmF0ZWRNb2R1bGVDb25maWdTdG9yYWdlS2V5LCBGRURFUkFURURfTU9EVUxFX0lELCBXSU5ET1cgfSBmcm9tICcuLi9tb2RlbHMvY29uc3RhbnRzJztcclxuaW1wb3J0IHsgRmVkZXJhdGVkTW9kdWxlQ29uZmlnIH0gZnJvbSAnLi4vbW9kZWxzL2ZlZGVyYXRlZC1tb2R1bGUtY29uZmlnJztcclxuXHJcbi8qKiBUaGUgZmVkZXJhdGVkIG1vZHVsZSBzZXJ2aWNlICovXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEZlZGVyYXRlZE1vZHVsZVNlcnZpY2Uge1xyXG5cclxuICAvKiogVGhlIGZlZGVyYXRlZCBtb2R1bGUgY29uZmlndXJhdGlvbiAqL1xyXG4gIHB1YmxpYyBnZXQgZmVkZXJhdGVkTW9kdWxlQ29uZmlnKCk6IEZlZGVyYXRlZE1vZHVsZUNvbmZpZyB7XHJcbiAgICBpZiAodGhpcy5mZWRlcmF0ZWRNb2R1bGVJZCkge1xyXG4gICAgICBjb25zdCBjb25maWdzID0gdGhpcy5mZWRlcmF0ZWRNb2R1bGVDb25maWdEaWN0O1xyXG4gICAgICByZXR1cm4gY29uZmlncy5nZXQodGhpcy5mZWRlcmF0ZWRNb2R1bGVJZCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gIH1cclxuXHJcbiAgLyoqIFRydWUgd2hlbiBhcHBsaWNhdGlvbiBpcyBydW5uaW5nIGFzIGEgZmVkZXJhdGVkIG1vZHVsZSAqL1xyXG4gIHB1YmxpYyBnZXQgaXNGZWRlcmF0ZWRNb2R1bGUoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gISF0aGlzLmZlZGVyYXRlZE1vZHVsZUNvbmZpZ1xyXG4gIH1cclxuXHJcbiAgLyoqIEdldHMgdGhlIGZlZGVyYXRlZCBtb2R1bGUgY29uZmlnIGRpY3Rpb25hcnkgKi9cclxuICBwcml2YXRlIGdldCBmZWRlcmF0ZWRNb2R1bGVDb25maWdEaWN0KCk6IE1hcDxzdHJpbmcsIEZlZGVyYXRlZE1vZHVsZUNvbmZpZz4ge1xyXG4gICAgY29uc3Qgc3RvcmFnZUl0ZW0gPSB0aGlzLndpbmRvdy5zZXNzaW9uU3RvcmFnZS5nZXRJdGVtKGZlZGVyYXRlZE1vZHVsZUNvbmZpZ1N0b3JhZ2VLZXkpO1xyXG4gICAgaWYgKCFzdG9yYWdlSXRlbSkge1xyXG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gICAgY29uc3QgZGljdCA9IEpTT04ucGFyc2Uoc3RvcmFnZUl0ZW0pIGFzIHtba2V5OiBzdHJpbmddOiBGZWRlcmF0ZWRNb2R1bGVDb25maWd9O1xyXG4gICAgY29uc3QgcmVzdWx0ID0gbmV3IE1hcDxzdHJpbmcsIEZlZGVyYXRlZE1vZHVsZUNvbmZpZz4oKTtcclxuICAgIE9iamVjdC5rZXlzKGRpY3QpLmZvckVhY2goa2V5ID0+IHtcclxuICAgICAgcmVzdWx0LnNldChrZXksIGRpY3Rba2V5XSk7XHJcbiAgICB9KTtcclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfVxyXG5cclxuICAvKiogVGhlIHdpbmRvdyBpbnRlcmZhY2UgKi9cclxuICBwcml2YXRlIHJlYWRvbmx5IHdpbmRvdzogV2luZG93XHJcblxyXG4gIC8qKlxyXG4gICAqIENvbnN0cnVjdHMgdGhlIHNlcnZpY2VcclxuICAgKiBAcGFyYW0gX3dpbmRvdyBUaGUgYnJvd3NlciB3aW5kb3dcclxuICAgKiBAcGFyYW0gZmVkZXJhdGVkTW9kdWxlSWQgVGhlIGZlZGVyYXRlZCBtb2R1bGUgaWRcclxuICAgKi9cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoV0lORE9XKSBwcml2YXRlIHJlYWRvbmx5IF93aW5kb3c6IGFueSxcclxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoRkVERVJBVEVEX01PRFVMRV9JRCkgcHVibGljIHJlYWRvbmx5IGZlZGVyYXRlZE1vZHVsZUlkOiBzdHJpbmdcclxuICApIHtcclxuICAgIHRoaXMud2luZG93ID0gX3dpbmRvdyB8fCB3aW5kb3c7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,38 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
- import { CacheService } from './client-generated/api/cache.service';
4
- import { BASE_PATH } from './client-generated/variables';
5
- import { ServerCacheService } from './services/server-cache.service';
6
- import { DISTRIBUTED_CACHE_BASE_PATH } from './models/constants';
7
- import * as i0 from "@angular/core";
8
- /** The distributed cache module */
9
- export class DistributedCacheModule {
10
- }
11
- DistributedCacheModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DistributedCacheModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
12
- DistributedCacheModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.7", ngImport: i0, type: DistributedCacheModule, imports: [CommonModule] });
13
- DistributedCacheModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DistributedCacheModule, providers: [
14
- {
15
- provide: BASE_PATH,
16
- useExisting: DISTRIBUTED_CACHE_BASE_PATH
17
- },
18
- CacheService,
19
- ServerCacheService
20
- ], imports: [CommonModule] });
21
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DistributedCacheModule, decorators: [{
22
- type: NgModule,
23
- args: [{
24
- declarations: [],
25
- imports: [
26
- CommonModule
27
- ],
28
- providers: [
29
- {
30
- provide: BASE_PATH,
31
- useExisting: DISTRIBUTED_CACHE_BASE_PATH
32
- },
33
- CacheService,
34
- ServerCacheService
35
- ]
36
- }]
37
- }] });
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzdHJpYnV0ZWQtY2FjaGUubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJtYXR1cmUvc3JjL2xpYi9kaXN0cmlidXRlZC1jYWNoZS9kaXN0cmlidXRlZC1jYWNoZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBdUMsTUFBTSxlQUFlLENBQUM7QUFDOUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDekQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDckUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7O0FBRWpFLG1DQUFtQztBQWVuQyxNQUFNLE9BQU8sc0JBQXNCOzttSEFBdEIsc0JBQXNCO29IQUF0QixzQkFBc0IsWUFYL0IsWUFBWTtvSEFXSCxzQkFBc0IsYUFUdEI7UUFDVDtZQUNFLE9BQU8sRUFBRSxTQUFTO1lBQ2xCLFdBQVcsRUFBRSwyQkFBMkI7U0FDekM7UUFDRCxZQUFZO1FBQ1osa0JBQWtCO0tBQ25CLFlBVEMsWUFBWTsyRkFXSCxzQkFBc0I7a0JBZGxDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLEVBQUU7b0JBQ2hCLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3FCQUNiO29CQUNELFNBQVMsRUFBRTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsU0FBUzs0QkFDbEIsV0FBVyxFQUFFLDJCQUEyQjt5QkFDekM7d0JBQ0QsWUFBWTt3QkFDWixrQkFBa0I7cUJBQ25CO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUsIEluamVjdGlvblRva2VuLCBNb2R1bGVXaXRoUHJvdmlkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IENhY2hlU2VydmljZSB9IGZyb20gJy4vY2xpZW50LWdlbmVyYXRlZC9hcGkvY2FjaGUuc2VydmljZSc7XHJcbmltcG9ydCB7IEJBU0VfUEFUSCB9IGZyb20gJy4vY2xpZW50LWdlbmVyYXRlZC92YXJpYWJsZXMnO1xyXG5pbXBvcnQgeyBTZXJ2ZXJDYWNoZVNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL3NlcnZlci1jYWNoZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRElTVFJJQlVURURfQ0FDSEVfQkFTRV9QQVRIIH0gZnJvbSAnLi9tb2RlbHMvY29uc3RhbnRzJztcclxuXHJcbi8qKiBUaGUgZGlzdHJpYnV0ZWQgY2FjaGUgbW9kdWxlICovXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbXSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGVcclxuICBdLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBCQVNFX1BBVEgsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBESVNUUklCVVRFRF9DQUNIRV9CQVNFX1BBVEhcclxuICAgIH0sXHJcbiAgICBDYWNoZVNlcnZpY2UsXHJcbiAgICBTZXJ2ZXJDYWNoZVNlcnZpY2VcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEaXN0cmlidXRlZENhY2hlTW9kdWxlIHt9XHJcbiJdfQ==
@@ -1,40 +0,0 @@
1
- import { Component, Input } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "@angular/common";
4
- import * as i2 from "@angular/material/expansion";
5
- import * as i3 from "@angular/material/icon";
6
- import * as i4 from "@angular/flex-layout/flex";
7
- import * as i5 from "@angular/flex-layout/extended";
8
- import * as i6 from "@ngx-translate/core";
9
- /** FAQ Component */
10
- export class FaqComponent {
11
- /** The constructor */
12
- constructor() {
13
- /** The array of all FAQs */
14
- this.allFaqs = [];
15
- /** The icon color */
16
- this.iconColor = '';
17
- }
18
- /** Life cycle hook for component initialization */
19
- ngOnInit() {
20
- if (this.faqConfig && this.faqConfig.iconHexColor) {
21
- if (this.faqConfig.iconHexColor.indexOf('#') > -1) {
22
- this.iconColor = this.faqConfig.iconHexColor;
23
- }
24
- else {
25
- this.iconColor = `#${this.faqConfig.iconHexColor}`;
26
- }
27
- }
28
- }
29
- }
30
- FaqComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: FaqComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
31
- FaqComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: FaqComponent, selector: "sof-ar-faq", inputs: { faqConfig: "faqConfig", allFaqs: "allFaqs" }, ngImport: i0, template: "<div class=\"sof-ar-faq-container\">\r\n<div fxLayout=\"column\" class=\"all-faqs\" full-width>\r\n <div fxLayout=\"row\" fxLayoutAlign=\"left\" class=\"faq-container\">\r\n <mat-accordion fxFlex=\"60%\" fxFlex.lt-md=\"100%\">\r\n <div *ngFor=\"let faq of allFaqs; let i = index\">\r\n <mat-expansion-panel hideToggle=\"true\" [id]=\"'exp'+i\" (click)=\"faq.expanded = !faq.expanded\" full-width>\r\n <mat-expansion-panel-header class=\"panel-header\" ngClass.lt-md=\"faq-header-small\">\r\n <mat-panel-title>\r\n <mat-icon>\r\n <i *ngIf=\"!faq.expanded; else remove\" class=\"{{faqConfig.expandIconClass}}\" [ngStyle]=\"{'color': iconColor}\">{{faqConfig.expandIconText}}</i>\r\n <ng-template #remove>\r\n <i class=\"{{faqConfig.minimizeIconClass}}\" [ngStyle]=\"{'color': iconColor}\">{{faqConfig.minimizeIconText}}</i>\r\n </ng-template>\r\n </mat-icon>\r\n <div class=\"question\" [innerHTML]=\"faq.title | translate\"></div>\r\n </mat-panel-title>\r\n </mat-expansion-panel-header>\r\n <ng-template matExpansionPanelContent>\r\n <div [innerHTML]=\"faq.description | translate\"></div>\r\n </ng-template>\r\n </mat-expansion-panel>\r\n </div>\r\n </mat-accordion>\r\n </div>\r\n </div>\r\n</div>", styles: ["@import\"https://fonts.googleapis.com/icon?family=Material+Icons\";.mat-ripple{overflow:hidden;position:relative}.mat-ripple:not(:empty){transform:translateZ(0)}.mat-ripple.mat-ripple-unbounded{overflow:visible}.mat-ripple-element{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,transform 0ms cubic-bezier(0,0,.2,1);transform:scale3d(0,0,0)}.cdk-high-contrast-active .mat-ripple-element{display:none}.cdk-visually-hidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none;left:0}[dir=rtl] .cdk-visually-hidden{left:auto;right:0}.cdk-overlay-container,.cdk-global-overlay-wrapper{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container{position:fixed;z-index:1000}.cdk-overlay-container:empty{display:none}.cdk-global-overlay-wrapper{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.cdk-overlay-backdrop{position:absolute;inset:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:transparent;transition:opacity .4s cubic-bezier(.25,.8,.25,1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:1}.cdk-high-contrast-active .cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:.6}.cdk-overlay-dark-backdrop{background:rgba(0,0,0,.32)}.cdk-overlay-transparent-backdrop{transition:visibility 1ms linear,opacity 1ms linear;visibility:hidden;opacity:1}.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing{opacity:0;visibility:visible}.cdk-overlay-backdrop-noop-animation{transition:none}.cdk-overlay-connected-position-bounding-box{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll}textarea.cdk-textarea-autosize{resize:none}textarea.cdk-textarea-autosize-measuring{padding:2px 0!important;box-sizing:content-box!important;height:auto!important;overflow:hidden!important}textarea.cdk-textarea-autosize-measuring-firefox{padding:2px 0!important;box-sizing:content-box!important;height:0!important}@keyframes cdk-text-field-autofill-start{}@keyframes cdk-text-field-autofill-end{}.cdk-text-field-autofill-monitored:-webkit-autofill{animation:cdk-text-field-autofill-start 0s 1ms}.cdk-text-field-autofill-monitored:not(:-webkit-autofill){animation:cdk-text-field-autofill-end 0s 1ms}.mat-focus-indicator{position:relative}.mat-focus-indicator:before{inset:0;position:absolute;box-sizing:border-box;pointer-events:none;display:var(--mat-focus-indicator-display, none);border:var(--mat-focus-indicator-border-width, 3px) var(--mat-focus-indicator-border-style, solid) var(--mat-focus-indicator-border-color, transparent);border-radius:var(--mat-focus-indicator-border-radius, 4px)}.mat-focus-indicator:focus:before{content:\"\"}.cdk-high-contrast-active{--mat-focus-indicator-display: block}.mat-mdc-focus-indicator{position:relative}.mat-mdc-focus-indicator:before{inset:0;position:absolute;box-sizing:border-box;pointer-events:none;display:var(--mat-mdc-focus-indicator-display, none);border:var(--mat-mdc-focus-indicator-border-width, 3px) var(--mat-mdc-focus-indicator-border-style, solid) var(--mat-mdc-focus-indicator-border-color, transparent);border-radius:var(--mat-mdc-focus-indicator-border-radius, 4px)}.mat-mdc-focus-indicator:focus:before{content:\"\"}.cdk-high-contrast-active{--mat-mdc-focus-indicator-display: block}.faq-header-small{min-height:80px}i.warning{color:#0d47a1}.all-faqs{padding-left:60px;padding-top:40px;margin-top:50px}.question{margin-left:20px;padding-top:10px;padding-bottom:10px}.panel-header{background-color:#f7f3f2}.faq-container{margin-top:25px;margin-bottom:25px}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.MatAccordion, selector: "mat-accordion", inputs: ["multi", "hideToggle", "displayMode", "togglePosition"], exportAs: ["matAccordion"] }, { kind: "component", type: i2.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["disabled", "expanded", "hideToggle", "togglePosition"], outputs: ["opened", "closed", "expandedChange", "afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "component", type: i2.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["tabIndex", "expandedHeight", "collapsedHeight"] }, { kind: "directive", type: i2.MatExpansionPanelTitle, selector: "mat-panel-title" }, { kind: "directive", type: i2.MatExpansionPanelContent, selector: "ng-template[matExpansionPanelContent]" }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i4.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i4.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i4.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "directive", type: i5.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "directive", type: i5.DefaultStyleDirective, selector: " [ngStyle], [ngStyle.xs], [ngStyle.sm], [ngStyle.md], [ngStyle.lg], [ngStyle.xl], [ngStyle.lt-sm], [ngStyle.lt-md], [ngStyle.lt-lg], [ngStyle.lt-xl], [ngStyle.gt-xs], [ngStyle.gt-sm], [ngStyle.gt-md], [ngStyle.gt-lg]", inputs: ["ngStyle", "ngStyle.xs", "ngStyle.sm", "ngStyle.md", "ngStyle.lg", "ngStyle.xl", "ngStyle.lt-sm", "ngStyle.lt-md", "ngStyle.lt-lg", "ngStyle.lt-xl", "ngStyle.gt-xs", "ngStyle.gt-sm", "ngStyle.gt-md", "ngStyle.gt-lg"] }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }] });
32
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: FaqComponent, decorators: [{
33
- type: Component,
34
- args: [{ selector: 'sof-ar-faq', template: "<div class=\"sof-ar-faq-container\">\r\n<div fxLayout=\"column\" class=\"all-faqs\" full-width>\r\n <div fxLayout=\"row\" fxLayoutAlign=\"left\" class=\"faq-container\">\r\n <mat-accordion fxFlex=\"60%\" fxFlex.lt-md=\"100%\">\r\n <div *ngFor=\"let faq of allFaqs; let i = index\">\r\n <mat-expansion-panel hideToggle=\"true\" [id]=\"'exp'+i\" (click)=\"faq.expanded = !faq.expanded\" full-width>\r\n <mat-expansion-panel-header class=\"panel-header\" ngClass.lt-md=\"faq-header-small\">\r\n <mat-panel-title>\r\n <mat-icon>\r\n <i *ngIf=\"!faq.expanded; else remove\" class=\"{{faqConfig.expandIconClass}}\" [ngStyle]=\"{'color': iconColor}\">{{faqConfig.expandIconText}}</i>\r\n <ng-template #remove>\r\n <i class=\"{{faqConfig.minimizeIconClass}}\" [ngStyle]=\"{'color': iconColor}\">{{faqConfig.minimizeIconText}}</i>\r\n </ng-template>\r\n </mat-icon>\r\n <div class=\"question\" [innerHTML]=\"faq.title | translate\"></div>\r\n </mat-panel-title>\r\n </mat-expansion-panel-header>\r\n <ng-template matExpansionPanelContent>\r\n <div [innerHTML]=\"faq.description | translate\"></div>\r\n </ng-template>\r\n </mat-expansion-panel>\r\n </div>\r\n </mat-accordion>\r\n </div>\r\n </div>\r\n</div>", styles: ["@import\"https://fonts.googleapis.com/icon?family=Material+Icons\";.mat-ripple{overflow:hidden;position:relative}.mat-ripple:not(:empty){transform:translateZ(0)}.mat-ripple.mat-ripple-unbounded{overflow:visible}.mat-ripple-element{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,transform 0ms cubic-bezier(0,0,.2,1);transform:scale3d(0,0,0)}.cdk-high-contrast-active .mat-ripple-element{display:none}.cdk-visually-hidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none;left:0}[dir=rtl] .cdk-visually-hidden{left:auto;right:0}.cdk-overlay-container,.cdk-global-overlay-wrapper{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container{position:fixed;z-index:1000}.cdk-overlay-container:empty{display:none}.cdk-global-overlay-wrapper{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.cdk-overlay-backdrop{position:absolute;inset:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:transparent;transition:opacity .4s cubic-bezier(.25,.8,.25,1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:1}.cdk-high-contrast-active .cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:.6}.cdk-overlay-dark-backdrop{background:rgba(0,0,0,.32)}.cdk-overlay-transparent-backdrop{transition:visibility 1ms linear,opacity 1ms linear;visibility:hidden;opacity:1}.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing{opacity:0;visibility:visible}.cdk-overlay-backdrop-noop-animation{transition:none}.cdk-overlay-connected-position-bounding-box{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll}textarea.cdk-textarea-autosize{resize:none}textarea.cdk-textarea-autosize-measuring{padding:2px 0!important;box-sizing:content-box!important;height:auto!important;overflow:hidden!important}textarea.cdk-textarea-autosize-measuring-firefox{padding:2px 0!important;box-sizing:content-box!important;height:0!important}@keyframes cdk-text-field-autofill-start{}@keyframes cdk-text-field-autofill-end{}.cdk-text-field-autofill-monitored:-webkit-autofill{animation:cdk-text-field-autofill-start 0s 1ms}.cdk-text-field-autofill-monitored:not(:-webkit-autofill){animation:cdk-text-field-autofill-end 0s 1ms}.mat-focus-indicator{position:relative}.mat-focus-indicator:before{inset:0;position:absolute;box-sizing:border-box;pointer-events:none;display:var(--mat-focus-indicator-display, none);border:var(--mat-focus-indicator-border-width, 3px) var(--mat-focus-indicator-border-style, solid) var(--mat-focus-indicator-border-color, transparent);border-radius:var(--mat-focus-indicator-border-radius, 4px)}.mat-focus-indicator:focus:before{content:\"\"}.cdk-high-contrast-active{--mat-focus-indicator-display: block}.mat-mdc-focus-indicator{position:relative}.mat-mdc-focus-indicator:before{inset:0;position:absolute;box-sizing:border-box;pointer-events:none;display:var(--mat-mdc-focus-indicator-display, none);border:var(--mat-mdc-focus-indicator-border-width, 3px) var(--mat-mdc-focus-indicator-border-style, solid) var(--mat-mdc-focus-indicator-border-color, transparent);border-radius:var(--mat-mdc-focus-indicator-border-radius, 4px)}.mat-mdc-focus-indicator:focus:before{content:\"\"}.cdk-high-contrast-active{--mat-mdc-focus-indicator-display: block}.faq-header-small{min-height:80px}i.warning{color:#0d47a1}.all-faqs{padding-left:60px;padding-top:40px;margin-top:50px}.question{margin-left:20px;padding-top:10px;padding-bottom:10px}.panel-header{background-color:#f7f3f2}.faq-container{margin-top:25px;margin-bottom:25px}\n"] }]
35
- }], ctorParameters: function () { return []; }, propDecorators: { faqConfig: [{
36
- type: Input
37
- }], allFaqs: [{
38
- type: Input
39
- }] } });
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFxLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FybWF0dXJlL3NyYy9saWIvZmFxL2NvbXBvbmVudHMvZmFxL2ZhcS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcm1hdHVyZS9zcmMvbGliL2ZhcS9jb21wb25lbnRzL2ZhcS9mYXEuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7O0FBS3pELG9CQUFvQjtBQU1wQixNQUFNLE9BQU8sWUFBWTtJQVd2QixzQkFBc0I7SUFDdEI7UUFQQSw0QkFBNEI7UUFDWixZQUFPLEdBQWUsRUFBRSxDQUFDO1FBRXpDLHFCQUFxQjtRQUNkLGNBQVMsR0FBVyxFQUFFLENBQUM7SUFHZCxDQUFDO0lBRWpCLG1EQUFtRDtJQUM1QyxRQUFRO1FBQ2IsSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxFQUFFO1lBQ2pELElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFO2dCQUNqRCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDO2FBQzlDO2lCQUNJO2dCQUNILElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksRUFBRSxDQUFDO2FBQ3BEO1NBQ0Y7SUFDSCxDQUFDOzt5R0F4QlUsWUFBWTs2RkFBWixZQUFZLDBHQ1h6Qix3NkNBeUJNOzJGRGRPLFlBQVk7a0JBTHhCLFNBQVM7K0JBQ0UsWUFBWTswRUFPYixTQUFTO3NCQUFqQixLQUFLO2dCQUdVLE9BQU87c0JBQXRCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IEZBUSB9IGZyb20gJy4uLy4uL21vZGVscy9mYXEnO1xyXG5pbXBvcnQgeyBGQVFDb25maWcgfSBmcm9tICcuLi8uLi9tb2RlbHMvZmFxLWNvbmZpZyc7XHJcblxyXG4vKiogRkFRIENvbXBvbmVudCAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NvZi1hci1mYXEnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9mYXEuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2ZhcS5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGYXFDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICAvKiogVGhlIEZBUSBJTnB1dCBDb25maWcgKi9cclxuICBASW5wdXQoKSBmYXFDb25maWc6IEZBUUNvbmZpZztcclxuXHJcbiAgLyoqIFRoZSBhcnJheSBvZiBhbGwgRkFRcyAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBhbGxGYXFzOiBBcnJheTxGQVE+ID0gW107XHJcblxyXG4gIC8qKiBUaGUgaWNvbiBjb2xvciAqL1xyXG4gIHB1YmxpYyBpY29uQ29sb3I6IHN0cmluZyA9ICcnO1xyXG5cclxuICAvKiogVGhlIGNvbnN0cnVjdG9yICovXHJcbiAgY29uc3RydWN0b3IoKSB7IH1cclxuXHJcbiAgLyoqIExpZmUgY3ljbGUgaG9vayBmb3IgY29tcG9uZW50IGluaXRpYWxpemF0aW9uICovXHJcbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuZmFxQ29uZmlnICYmIHRoaXMuZmFxQ29uZmlnLmljb25IZXhDb2xvcikge1xyXG4gICAgICBpZiAodGhpcy5mYXFDb25maWcuaWNvbkhleENvbG9yLmluZGV4T2YoJyMnKSA+IC0xKSB7XHJcbiAgICAgICAgdGhpcy5pY29uQ29sb3IgPSB0aGlzLmZhcUNvbmZpZy5pY29uSGV4Q29sb3I7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgdGhpcy5pY29uQ29sb3IgPSBgIyR7dGhpcy5mYXFDb25maWcuaWNvbkhleENvbG9yfWA7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJzb2YtYXItZmFxLWNvbnRhaW5lclwiPlxyXG48ZGl2IGZ4TGF5b3V0PVwiY29sdW1uXCIgY2xhc3M9XCJhbGwtZmFxc1wiIGZ1bGwtd2lkdGg+XHJcbiAgICA8ZGl2IGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRBbGlnbj1cImxlZnRcIiBjbGFzcz1cImZhcS1jb250YWluZXJcIj5cclxuICAgICAgPG1hdC1hY2NvcmRpb24gZnhGbGV4PVwiNjAlXCIgZnhGbGV4Lmx0LW1kPVwiMTAwJVwiPlxyXG4gICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGZhcSBvZiBhbGxGYXFzOyBsZXQgaSA9IGluZGV4XCI+XHJcbiAgICAgICAgICA8bWF0LWV4cGFuc2lvbi1wYW5lbCBoaWRlVG9nZ2xlPVwidHJ1ZVwiIFtpZF09XCInZXhwJytpXCIgKGNsaWNrKT1cImZhcS5leHBhbmRlZCA9ICFmYXEuZXhwYW5kZWRcIiBmdWxsLXdpZHRoPlxyXG4gICAgICAgICAgICA8bWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXIgY2xhc3M9XCJwYW5lbC1oZWFkZXJcIiBuZ0NsYXNzLmx0LW1kPVwiZmFxLWhlYWRlci1zbWFsbFwiPlxyXG4gICAgICAgICAgICAgIDxtYXQtcGFuZWwtdGl0bGU+XHJcbiAgICAgICAgICAgICAgICA8bWF0LWljb24+XHJcbiAgICAgICAgICAgICAgICAgIDxpICpuZ0lmPVwiIWZhcS5leHBhbmRlZDsgZWxzZSByZW1vdmVcIiBjbGFzcz1cInt7ZmFxQ29uZmlnLmV4cGFuZEljb25DbGFzc319XCIgW25nU3R5bGVdPVwieydjb2xvcic6IGljb25Db2xvcn1cIj57e2ZhcUNvbmZpZy5leHBhbmRJY29uVGV4dH19PC9pPlxyXG4gICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI3JlbW92ZT5cclxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cInt7ZmFxQ29uZmlnLm1pbmltaXplSWNvbkNsYXNzfX1cIiBbbmdTdHlsZV09XCJ7J2NvbG9yJzogaWNvbkNvbG9yfVwiPnt7ZmFxQ29uZmlnLm1pbmltaXplSWNvblRleHR9fTwvaT5cclxuICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgIDwvbWF0LWljb24+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicXVlc3Rpb25cIiBbaW5uZXJIVE1MXT1cImZhcS50aXRsZSB8IHRyYW5zbGF0ZVwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvbWF0LXBhbmVsLXRpdGxlPlxyXG4gICAgICAgICAgICA8L21hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyPlxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgbWF0RXhwYW5zaW9uUGFuZWxDb250ZW50PlxyXG4gICAgICAgICAgICAgIDxkaXYgW2lubmVySFRNTF09XCJmYXEuZGVzY3JpcHRpb24gfCB0cmFuc2xhdGVcIj48L2Rpdj5cclxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgIDwvbWF0LWV4cGFuc2lvbi1wYW5lbD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9tYXQtYWNjb3JkaW9uPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==