@keycloakify/angular 0.0.1-rc.17 → 0.0.1-rc.19

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 (350) hide show
  1. package/account/containers/template/template.component.d.ts +18 -5
  2. package/account/pages/account/account.component.d.ts +3 -2
  3. package/account/pages/applications/applications.component.d.ts +3 -2
  4. package/account/pages/federatedIdentity/federatedIdentity.component.d.ts +3 -2
  5. package/account/pages/log/log.component.d.ts +3 -2
  6. package/account/pages/password/password.component.d.ts +3 -2
  7. package/account/pages/sessions/sessions.component.d.ts +3 -2
  8. package/account/pages/totp/totp.component.d.ts +3 -2
  9. package/esm2022/account/containers/template/template.component.mjs +42 -9
  10. package/esm2022/account/directives/kc-class/kc-class.directive.mjs +3 -3
  11. package/esm2022/account/pages/account/account.component.mjs +8 -7
  12. package/esm2022/account/pages/applications/applications.component.mjs +8 -7
  13. package/esm2022/account/pages/federatedIdentity/federatedIdentity.component.mjs +8 -7
  14. package/esm2022/account/pages/log/log.component.mjs +8 -7
  15. package/esm2022/account/pages/password/password.component.mjs +9 -7
  16. package/esm2022/account/pages/sessions/sessions.component.mjs +8 -7
  17. package/esm2022/account/pages/totp/totp.component.mjs +8 -7
  18. package/esm2022/account/providers/keycloakify-angular/keycloakify-angular.providers.mjs +2 -1
  19. package/esm2022/account/services/account-resource-injector/account-resource-injector.service.mjs +3 -3
  20. package/esm2022/account/services/i18n/i18n.service.mjs +3 -3
  21. package/esm2022/lib/directives/attributes/attributes.directive.mjs +3 -3
  22. package/esm2022/lib/pipes/input-type/input-type.pipe.mjs +3 -3
  23. package/esm2022/lib/pipes/is-array-with-empty-object/is-array-with-empty-object.pipe.mjs +3 -3
  24. package/esm2022/lib/pipes/kc-sanitize/kc-sanitize.pipe.mjs +3 -3
  25. package/esm2022/lib/pipes/to-array/to-array.pipe.mjs +3 -3
  26. package/esm2022/lib/pipes/to-number/to-number.pipe.mjs +3 -3
  27. package/esm2022/lib/services/resource-injector/resource-injector.service.mjs +3 -3
  28. package/esm2022/login/components/add-remove-buttons-multi-valued-attribute/add-remove-buttons-multi-valued-attribute.component.mjs +5 -5
  29. package/esm2022/login/components/field-errors/field-errors.component.mjs +6 -6
  30. package/esm2022/login/components/group-label/group-label.component.mjs +3 -3
  31. package/esm2022/login/components/input-field-by-type/input-field-by-type.component.mjs +6 -6
  32. package/esm2022/login/components/input-tag/input-tag.component.mjs +6 -6
  33. package/esm2022/login/components/input-tag-selects/input-tag-selects.component.mjs +3 -3
  34. package/esm2022/login/components/logout-other-sessions/logout-other-sessions.component.mjs +3 -3
  35. package/esm2022/login/components/password-wrapper/password-wrapper.component.mjs +6 -6
  36. package/esm2022/login/components/select-tag/select-tag.component.mjs +3 -3
  37. package/esm2022/login/components/textarea-tag/textarea-tag.component.mjs +3 -3
  38. package/esm2022/login/components/user-profile-form-fields/user-profile-form-fields.component.mjs +6 -6
  39. package/esm2022/login/containers/template/template.component.mjs +83 -15
  40. package/esm2022/login/directives/kc-class/kc-class.directive.mjs +5 -5
  41. package/esm2022/login/pages/code/code.component.mjs +16 -10
  42. package/esm2022/login/pages/delete-account-confirm/delete-account-confirm.component.mjs +14 -8
  43. package/esm2022/login/pages/delete-credential/delete-credential.component.mjs +12 -11
  44. package/esm2022/login/pages/error/error.component.mjs +16 -10
  45. package/esm2022/login/pages/frontchannel-logout/frontchannel-logout.component.mjs +14 -12
  46. package/esm2022/login/pages/idp-review-user-profile/idp-review-user-profile.component.mjs +14 -13
  47. package/esm2022/login/pages/info/info.component.mjs +13 -12
  48. package/esm2022/login/pages/login/login.component.mjs +15 -14
  49. package/esm2022/login/pages/login-config-totp/login-config-totp.component.mjs +14 -13
  50. package/esm2022/login/pages/login-idp-link-confirm/login-idp-link-confirm.component.mjs +13 -16
  51. package/esm2022/login/pages/login-idp-link-confirm-override/login-idp-link-confirm-override.component.mjs +13 -16
  52. package/esm2022/login/pages/login-idp-link-email/login-idp-link-email.component.mjs +12 -15
  53. package/esm2022/login/pages/login-oauth-grant/login-oauth-grant.component.mjs +13 -15
  54. package/esm2022/login/pages/login-oauth2-device-verify-user-code/login-oauth2-device-verify-user-code.component.mjs +12 -11
  55. package/esm2022/login/pages/login-otp/login-otp.component.mjs +13 -12
  56. package/esm2022/login/pages/login-page-expired/login-page-expired.component.mjs +12 -11
  57. package/esm2022/login/pages/login-passkeys-conditional-authenticate/login-passkeys-conditional-authenticate.component.mjs +13 -8
  58. package/esm2022/login/pages/login-password/login-password.component.mjs +15 -13
  59. package/esm2022/login/pages/login-recovery-authn-code-config/login-recovery-authn-code-config.component.mjs +14 -13
  60. package/esm2022/login/pages/login-recovery-authn-code-input/login-recovery-authn-code-input.component.mjs +14 -13
  61. package/esm2022/login/pages/login-reset-otp/login-reset-otp.component.mjs +13 -12
  62. package/esm2022/login/pages/login-reset-password/login-reset-password.component.mjs +13 -12
  63. package/esm2022/login/pages/login-update-password/login-update-password.component.mjs +13 -12
  64. package/esm2022/login/pages/login-update-profile/login-update-profile.component.mjs +13 -12
  65. package/esm2022/login/pages/login-username/login-username.component.mjs +14 -13
  66. package/esm2022/login/pages/login-verify-email/login-verify-email.component.mjs +12 -11
  67. package/esm2022/login/pages/login-x509-info/login-x509-info.component.mjs +12 -11
  68. package/esm2022/login/pages/logout-confirm/logout-confirm.component.mjs +12 -15
  69. package/esm2022/login/pages/register/register.component.mjs +16 -15
  70. package/esm2022/login/pages/saml-post-form/saml-post-form.component.mjs +16 -17
  71. package/esm2022/login/pages/select-authenticator/select-authenticator.component.mjs +13 -12
  72. package/esm2022/login/pages/terms/terms.component.mjs +12 -11
  73. package/esm2022/login/pages/update-email/update-email.component.mjs +14 -17
  74. package/esm2022/login/pages/webauthn-authenticate/webauthn-authenticate.component.mjs +12 -11
  75. package/esm2022/login/pages/webauthn-error/webauthn-error.component.mjs +13 -12
  76. package/esm2022/login/pages/webauthn-register/webauthn-register.component.mjs +12 -11
  77. package/esm2022/login/providers/keycloakify-angular/keycloakify-angular.providers.mjs +2 -1
  78. package/esm2022/login/services/i18n/i18n.service.mjs +3 -3
  79. package/esm2022/login/services/login-resource-injector/login-resource-injector.service.mjs +3 -3
  80. package/esm2022/login/services/submit/submit.service.mjs +4 -4
  81. package/esm2022/login/services/user-profile-form/user-profile-form.service.mjs +3 -3
  82. package/fesm2022/keycloakify-angular-account-containers-template.mjs +42 -9
  83. package/fesm2022/keycloakify-angular-account-containers-template.mjs.map +1 -1
  84. package/fesm2022/keycloakify-angular-account-directives-kc-class.mjs +3 -3
  85. package/fesm2022/keycloakify-angular-account-pages-account.mjs +7 -6
  86. package/fesm2022/keycloakify-angular-account-pages-account.mjs.map +1 -1
  87. package/fesm2022/keycloakify-angular-account-pages-applications.mjs +7 -6
  88. package/fesm2022/keycloakify-angular-account-pages-applications.mjs.map +1 -1
  89. package/fesm2022/keycloakify-angular-account-pages-federatedIdentity.mjs +7 -6
  90. package/fesm2022/keycloakify-angular-account-pages-federatedIdentity.mjs.map +1 -1
  91. package/fesm2022/keycloakify-angular-account-pages-log.mjs +7 -6
  92. package/fesm2022/keycloakify-angular-account-pages-log.mjs.map +1 -1
  93. package/fesm2022/keycloakify-angular-account-pages-password.mjs +8 -6
  94. package/fesm2022/keycloakify-angular-account-pages-password.mjs.map +1 -1
  95. package/fesm2022/keycloakify-angular-account-pages-sessions.mjs +7 -6
  96. package/fesm2022/keycloakify-angular-account-pages-sessions.mjs.map +1 -1
  97. package/fesm2022/keycloakify-angular-account-pages-totp.mjs +7 -6
  98. package/fesm2022/keycloakify-angular-account-pages-totp.mjs.map +1 -1
  99. package/fesm2022/keycloakify-angular-account-providers-keycloakify-angular.mjs +1 -0
  100. package/fesm2022/keycloakify-angular-account-providers-keycloakify-angular.mjs.map +1 -1
  101. package/fesm2022/keycloakify-angular-account-services-account-resource-injector.mjs +3 -3
  102. package/fesm2022/keycloakify-angular-account-services-i18n.mjs +3 -3
  103. package/fesm2022/keycloakify-angular-lib-directives-attributes.mjs +3 -3
  104. package/fesm2022/keycloakify-angular-lib-pipes-input-type.mjs +3 -3
  105. package/fesm2022/keycloakify-angular-lib-pipes-is-array-with-empty-object.mjs +3 -3
  106. package/fesm2022/keycloakify-angular-lib-pipes-kc-sanitize.mjs +3 -3
  107. package/fesm2022/keycloakify-angular-lib-pipes-to-array.mjs +3 -3
  108. package/fesm2022/keycloakify-angular-lib-pipes-to-number.mjs +3 -3
  109. package/fesm2022/keycloakify-angular-lib-services-resource-injector.mjs +3 -3
  110. package/fesm2022/keycloakify-angular-login-components-add-remove-buttons-multi-valued-attribute.mjs +4 -4
  111. package/fesm2022/keycloakify-angular-login-components-add-remove-buttons-multi-valued-attribute.mjs.map +1 -1
  112. package/fesm2022/keycloakify-angular-login-components-field-errors.mjs +5 -5
  113. package/fesm2022/keycloakify-angular-login-components-field-errors.mjs.map +1 -1
  114. package/fesm2022/keycloakify-angular-login-components-group-label.mjs +3 -3
  115. package/fesm2022/keycloakify-angular-login-components-input-field-by-type.mjs +5 -5
  116. package/fesm2022/keycloakify-angular-login-components-input-field-by-type.mjs.map +1 -1
  117. package/fesm2022/keycloakify-angular-login-components-input-tag-selects.mjs +3 -3
  118. package/fesm2022/keycloakify-angular-login-components-input-tag.mjs +5 -5
  119. package/fesm2022/keycloakify-angular-login-components-input-tag.mjs.map +1 -1
  120. package/fesm2022/keycloakify-angular-login-components-logout-other-sessions.mjs +3 -3
  121. package/fesm2022/keycloakify-angular-login-components-password-wrapper.mjs +5 -5
  122. package/fesm2022/keycloakify-angular-login-components-password-wrapper.mjs.map +1 -1
  123. package/fesm2022/keycloakify-angular-login-components-select-tag.mjs +3 -3
  124. package/fesm2022/keycloakify-angular-login-components-textarea-tag.mjs +3 -3
  125. package/fesm2022/keycloakify-angular-login-components-user-profile-form-fields.mjs +5 -5
  126. package/fesm2022/keycloakify-angular-login-components-user-profile-form-fields.mjs.map +1 -1
  127. package/fesm2022/keycloakify-angular-login-containers-template.mjs +83 -15
  128. package/fesm2022/keycloakify-angular-login-containers-template.mjs.map +1 -1
  129. package/fesm2022/keycloakify-angular-login-directives-kc-class.mjs +4 -4
  130. package/fesm2022/keycloakify-angular-login-directives-kc-class.mjs.map +1 -1
  131. package/fesm2022/keycloakify-angular-login-pages-code.mjs +15 -9
  132. package/fesm2022/keycloakify-angular-login-pages-code.mjs.map +1 -1
  133. package/fesm2022/keycloakify-angular-login-pages-delete-account-confirm.mjs +13 -7
  134. package/fesm2022/keycloakify-angular-login-pages-delete-account-confirm.mjs.map +1 -1
  135. package/fesm2022/keycloakify-angular-login-pages-delete-credential.mjs +11 -10
  136. package/fesm2022/keycloakify-angular-login-pages-delete-credential.mjs.map +1 -1
  137. package/fesm2022/keycloakify-angular-login-pages-error.mjs +15 -9
  138. package/fesm2022/keycloakify-angular-login-pages-error.mjs.map +1 -1
  139. package/fesm2022/keycloakify-angular-login-pages-frontchannel-logout.mjs +13 -11
  140. package/fesm2022/keycloakify-angular-login-pages-frontchannel-logout.mjs.map +1 -1
  141. package/fesm2022/keycloakify-angular-login-pages-idp-review-user-profile.mjs +13 -12
  142. package/fesm2022/keycloakify-angular-login-pages-idp-review-user-profile.mjs.map +1 -1
  143. package/fesm2022/keycloakify-angular-login-pages-info.mjs +12 -11
  144. package/fesm2022/keycloakify-angular-login-pages-info.mjs.map +1 -1
  145. package/fesm2022/keycloakify-angular-login-pages-login-config-totp.mjs +13 -12
  146. package/fesm2022/keycloakify-angular-login-pages-login-config-totp.mjs.map +1 -1
  147. package/fesm2022/keycloakify-angular-login-pages-login-idp-link-confirm-override.mjs +12 -15
  148. package/fesm2022/keycloakify-angular-login-pages-login-idp-link-confirm-override.mjs.map +1 -1
  149. package/fesm2022/keycloakify-angular-login-pages-login-idp-link-confirm.mjs +12 -15
  150. package/fesm2022/keycloakify-angular-login-pages-login-idp-link-confirm.mjs.map +1 -1
  151. package/fesm2022/keycloakify-angular-login-pages-login-idp-link-email.mjs +11 -14
  152. package/fesm2022/keycloakify-angular-login-pages-login-idp-link-email.mjs.map +1 -1
  153. package/fesm2022/keycloakify-angular-login-pages-login-oauth-grant.mjs +12 -14
  154. package/fesm2022/keycloakify-angular-login-pages-login-oauth-grant.mjs.map +1 -1
  155. package/fesm2022/keycloakify-angular-login-pages-login-oauth2-device-verify-user-code.mjs +11 -10
  156. package/fesm2022/keycloakify-angular-login-pages-login-oauth2-device-verify-user-code.mjs.map +1 -1
  157. package/fesm2022/keycloakify-angular-login-pages-login-otp.mjs +12 -11
  158. package/fesm2022/keycloakify-angular-login-pages-login-otp.mjs.map +1 -1
  159. package/fesm2022/keycloakify-angular-login-pages-login-page-expired.mjs +11 -10
  160. package/fesm2022/keycloakify-angular-login-pages-login-page-expired.mjs.map +1 -1
  161. package/fesm2022/keycloakify-angular-login-pages-login-passkeys-conditional-authenticate.mjs +12 -7
  162. package/fesm2022/keycloakify-angular-login-pages-login-passkeys-conditional-authenticate.mjs.map +1 -1
  163. package/fesm2022/keycloakify-angular-login-pages-login-password.mjs +14 -12
  164. package/fesm2022/keycloakify-angular-login-pages-login-password.mjs.map +1 -1
  165. package/fesm2022/keycloakify-angular-login-pages-login-recovery-authn-code-config.mjs +13 -12
  166. package/fesm2022/keycloakify-angular-login-pages-login-recovery-authn-code-config.mjs.map +1 -1
  167. package/fesm2022/keycloakify-angular-login-pages-login-recovery-authn-code-input.mjs +13 -12
  168. package/fesm2022/keycloakify-angular-login-pages-login-recovery-authn-code-input.mjs.map +1 -1
  169. package/fesm2022/keycloakify-angular-login-pages-login-reset-otp.mjs +12 -11
  170. package/fesm2022/keycloakify-angular-login-pages-login-reset-otp.mjs.map +1 -1
  171. package/fesm2022/keycloakify-angular-login-pages-login-reset-password.mjs +12 -11
  172. package/fesm2022/keycloakify-angular-login-pages-login-reset-password.mjs.map +1 -1
  173. package/fesm2022/keycloakify-angular-login-pages-login-update-password.mjs +12 -11
  174. package/fesm2022/keycloakify-angular-login-pages-login-update-password.mjs.map +1 -1
  175. package/fesm2022/keycloakify-angular-login-pages-login-update-profile.mjs +12 -11
  176. package/fesm2022/keycloakify-angular-login-pages-login-update-profile.mjs.map +1 -1
  177. package/fesm2022/keycloakify-angular-login-pages-login-username.mjs +13 -12
  178. package/fesm2022/keycloakify-angular-login-pages-login-username.mjs.map +1 -1
  179. package/fesm2022/keycloakify-angular-login-pages-login-verify-email.mjs +11 -10
  180. package/fesm2022/keycloakify-angular-login-pages-login-verify-email.mjs.map +1 -1
  181. package/fesm2022/keycloakify-angular-login-pages-login-x509-info.mjs +11 -10
  182. package/fesm2022/keycloakify-angular-login-pages-login-x509-info.mjs.map +1 -1
  183. package/fesm2022/keycloakify-angular-login-pages-login.mjs +14 -13
  184. package/fesm2022/keycloakify-angular-login-pages-login.mjs.map +1 -1
  185. package/fesm2022/keycloakify-angular-login-pages-logout-confirm.mjs +11 -14
  186. package/fesm2022/keycloakify-angular-login-pages-logout-confirm.mjs.map +1 -1
  187. package/fesm2022/keycloakify-angular-login-pages-register.mjs +15 -14
  188. package/fesm2022/keycloakify-angular-login-pages-register.mjs.map +1 -1
  189. package/fesm2022/keycloakify-angular-login-pages-saml-post-form.mjs +15 -16
  190. package/fesm2022/keycloakify-angular-login-pages-saml-post-form.mjs.map +1 -1
  191. package/fesm2022/keycloakify-angular-login-pages-select-authenticator.mjs +12 -11
  192. package/fesm2022/keycloakify-angular-login-pages-select-authenticator.mjs.map +1 -1
  193. package/fesm2022/keycloakify-angular-login-pages-terms.mjs +11 -10
  194. package/fesm2022/keycloakify-angular-login-pages-terms.mjs.map +1 -1
  195. package/fesm2022/keycloakify-angular-login-pages-update-email.mjs +13 -16
  196. package/fesm2022/keycloakify-angular-login-pages-update-email.mjs.map +1 -1
  197. package/fesm2022/keycloakify-angular-login-pages-webauthn-authenticate.mjs +11 -10
  198. package/fesm2022/keycloakify-angular-login-pages-webauthn-authenticate.mjs.map +1 -1
  199. package/fesm2022/keycloakify-angular-login-pages-webauthn-error.mjs +12 -11
  200. package/fesm2022/keycloakify-angular-login-pages-webauthn-error.mjs.map +1 -1
  201. package/fesm2022/keycloakify-angular-login-pages-webauthn-register.mjs +11 -10
  202. package/fesm2022/keycloakify-angular-login-pages-webauthn-register.mjs.map +1 -1
  203. package/fesm2022/keycloakify-angular-login-providers-keycloakify-angular.mjs +1 -0
  204. package/fesm2022/keycloakify-angular-login-providers-keycloakify-angular.mjs.map +1 -1
  205. package/fesm2022/keycloakify-angular-login-services-i18n.mjs +3 -3
  206. package/fesm2022/keycloakify-angular-login-services-login-resource-injector.mjs +3 -3
  207. package/fesm2022/keycloakify-angular-login-services-submit.mjs +3 -3
  208. package/fesm2022/keycloakify-angular-login-services-submit.mjs.map +1 -1
  209. package/fesm2022/keycloakify-angular-login-services-user-profile-form.mjs +3 -3
  210. package/login/containers/template/template.component.d.ts +25 -9
  211. package/login/directives/kc-class/kc-class.directive.d.ts +1 -1
  212. package/login/pages/code/code.component.d.ts +12 -3
  213. package/login/pages/delete-account-confirm/delete-account-confirm.component.d.ts +11 -2
  214. package/login/pages/delete-credential/delete-credential.component.d.ts +9 -5
  215. package/login/pages/error/error.component.d.ts +11 -2
  216. package/login/pages/frontchannel-logout/frontchannel-logout.component.d.ts +9 -5
  217. package/login/pages/idp-review-user-profile/idp-review-user-profile.component.d.ts +10 -7
  218. package/login/pages/info/info.component.d.ts +9 -5
  219. package/login/pages/login/login.component.d.ts +10 -6
  220. package/login/pages/login-config-totp/login-config-totp.component.d.ts +9 -5
  221. package/login/pages/login-idp-link-confirm/login-idp-link-confirm.component.d.ts +8 -7
  222. package/login/pages/login-idp-link-confirm-override/login-idp-link-confirm-override.component.d.ts +8 -7
  223. package/login/pages/login-idp-link-email/login-idp-link-email.component.d.ts +8 -7
  224. package/login/pages/login-oauth-grant/login-oauth-grant.component.d.ts +8 -7
  225. package/login/pages/login-oauth2-device-verify-user-code/login-oauth2-device-verify-user-code.component.d.ts +9 -5
  226. package/login/pages/login-otp/login-otp.component.d.ts +9 -5
  227. package/login/pages/login-page-expired/login-page-expired.component.d.ts +9 -5
  228. package/login/pages/login-passkeys-conditional-authenticate/login-passkeys-conditional-authenticate.component.d.ts +11 -3
  229. package/login/pages/login-password/login-password.component.d.ts +10 -5
  230. package/login/pages/login-recovery-authn-code-config/login-recovery-authn-code-config.component.d.ts +9 -5
  231. package/login/pages/login-recovery-authn-code-input/login-recovery-authn-code-input.component.d.ts +9 -5
  232. package/login/pages/login-reset-otp/login-reset-otp.component.d.ts +9 -5
  233. package/login/pages/login-reset-password/login-reset-password.component.d.ts +9 -5
  234. package/login/pages/login-update-password/login-update-password.component.d.ts +9 -5
  235. package/login/pages/login-update-profile/login-update-profile.component.d.ts +9 -6
  236. package/login/pages/login-username/login-username.component.d.ts +10 -6
  237. package/login/pages/login-verify-email/login-verify-email.component.d.ts +9 -5
  238. package/login/pages/login-x509-info/login-x509-info.component.d.ts +9 -5
  239. package/login/pages/logout-confirm/logout-confirm.component.d.ts +8 -7
  240. package/login/pages/register/register.component.d.ts +11 -8
  241. package/login/pages/saml-post-form/saml-post-form.component.d.ts +10 -7
  242. package/login/pages/select-authenticator/select-authenticator.component.d.ts +9 -5
  243. package/login/pages/terms/terms.component.d.ts +9 -5
  244. package/login/pages/update-email/update-email.component.d.ts +9 -9
  245. package/login/pages/webauthn-authenticate/webauthn-authenticate.component.d.ts +10 -6
  246. package/login/pages/webauthn-error/webauthn-error.component.d.ts +9 -5
  247. package/login/pages/webauthn-register/webauthn-register.component.d.ts +10 -6
  248. package/package.json +8 -8
  249. package/src/account/containers/template/template.component.html +16 -11
  250. package/src/account/containers/template/template.component.ts +54 -7
  251. package/src/account/pages/account/account.component.html +139 -143
  252. package/src/account/pages/account/account.component.ts +4 -3
  253. package/src/account/pages/applications/applications.component.html +128 -136
  254. package/src/account/pages/applications/applications.component.ts +4 -3
  255. package/src/account/pages/federatedIdentity/federatedIdentity.component.html +84 -88
  256. package/src/account/pages/federatedIdentity/federatedIdentity.component.ts +4 -3
  257. package/src/account/pages/log/log.component.html +35 -39
  258. package/src/account/pages/log/log.component.ts +4 -3
  259. package/src/account/pages/password/password.component.html +109 -113
  260. package/src/account/pages/password/password.component.ts +6 -3
  261. package/src/account/pages/sessions/sessions.component.html +52 -56
  262. package/src/account/pages/sessions/sessions.component.ts +4 -3
  263. package/src/account/pages/totp/totp.component.html +234 -238
  264. package/src/account/pages/totp/totp.component.ts +4 -3
  265. package/src/account/providers/keycloakify-angular/keycloakify-angular.providers.ts +1 -0
  266. package/src/login/components/add-remove-buttons-multi-valued-attribute/add-remove-buttons-multi-valued-attribute.component.html +2 -2
  267. package/src/login/components/field-errors/field-errors.component.html +1 -1
  268. package/src/login/components/input-field-by-type/input-field-by-type.component.html +6 -6
  269. package/src/login/components/input-tag/input-tag.component.html +2 -2
  270. package/src/login/components/password-wrapper/password-wrapper.component.html +2 -2
  271. package/src/login/components/user-profile-form-fields/user-profile-form-fields.component.html +7 -11
  272. package/src/login/containers/template/template.component.html +29 -15
  273. package/src/login/containers/template/template.component.ts +100 -12
  274. package/src/login/directives/kc-class/kc-class.directive.ts +1 -2
  275. package/src/login/pages/code/code.component.html +19 -23
  276. package/src/login/pages/code/code.component.ts +18 -6
  277. package/src/login/pages/delete-account-confirm/delete-account-confirm.component.html +41 -45
  278. package/src/login/pages/delete-account-confirm/delete-account-confirm.component.ts +16 -4
  279. package/src/login/pages/delete-credential/delete-credential.component.html +29 -31
  280. package/src/login/pages/delete-credential/delete-credential.component.ts +16 -9
  281. package/src/login/pages/error/error.component.html +20 -22
  282. package/src/login/pages/error/error.component.ts +17 -5
  283. package/src/login/pages/frontchannel-logout/frontchannel-logout.component.html +25 -34
  284. package/src/login/pages/frontchannel-logout/frontchannel-logout.component.ts +17 -9
  285. package/src/login/pages/idp-review-user-profile/idp-review-user-profile.component.html +29 -38
  286. package/src/login/pages/idp-review-user-profile/idp-review-user-profile.component.ts +18 -12
  287. package/src/login/pages/info/info.component.html +39 -48
  288. package/src/login/pages/info/info.component.ts +17 -10
  289. package/src/login/pages/login/login.component.html +184 -194
  290. package/src/login/pages/login/login.component.ts +20 -12
  291. package/src/login/pages/login-config-totp/login-config-totp.component.html +181 -190
  292. package/src/login/pages/login-config-totp/login-config-totp.component.ts +16 -10
  293. package/src/login/pages/login-idp-link-confirm/login-idp-link-confirm.component.html +27 -37
  294. package/src/login/pages/login-idp-link-confirm/login-idp-link-confirm.component.ts +15 -14
  295. package/src/login/pages/login-idp-link-confirm-override/login-idp-link-confirm-override.component.html +26 -36
  296. package/src/login/pages/login-idp-link-confirm-override/login-idp-link-confirm-override.component.ts +15 -14
  297. package/src/login/pages/login-idp-link-email/login-idp-link-email.component.html +24 -34
  298. package/src/login/pages/login-idp-link-email/login-idp-link-email.component.ts +15 -14
  299. package/src/login/pages/login-oauth-grant/login-oauth-grant.component.html +75 -84
  300. package/src/login/pages/login-oauth-grant/login-oauth-grant.component.ts +15 -14
  301. package/src/login/pages/login-oauth2-device-verify-user-code/login-oauth2-device-verify-user-code.component.html +49 -58
  302. package/src/login/pages/login-oauth2-device-verify-user-code/login-oauth2-device-verify-user-code.component.ts +15 -9
  303. package/src/login/pages/login-otp/login-otp.component.html +89 -98
  304. package/src/login/pages/login-otp/login-otp.component.ts +16 -9
  305. package/src/login/pages/login-page-expired/login-page-expired.component.html +26 -33
  306. package/src/login/pages/login-page-expired/login-page-expired.component.ts +15 -9
  307. package/src/login/pages/login-passkeys-conditional-authenticate/login-passkeys-conditional-authenticate.component.html +181 -188
  308. package/src/login/pages/login-passkeys-conditional-authenticate/login-passkeys-conditional-authenticate.component.ts +15 -5
  309. package/src/login/pages/login-password/login-password.component.html +73 -80
  310. package/src/login/pages/login-password/login-password.component.ts +17 -9
  311. package/src/login/pages/login-recovery-authn-code-config/login-recovery-authn-code-config.component.html +136 -145
  312. package/src/login/pages/login-recovery-authn-code-config/login-recovery-authn-code-config.component.ts +17 -9
  313. package/src/login/pages/login-recovery-authn-code-input/login-recovery-authn-code-input.component.html +60 -68
  314. package/src/login/pages/login-recovery-authn-code-input/login-recovery-authn-code-input.component.ts +16 -9
  315. package/src/login/pages/login-reset-otp/login-reset-otp.component.html +53 -60
  316. package/src/login/pages/login-reset-otp/login-reset-otp.component.ts +15 -8
  317. package/src/login/pages/login-reset-password/login-reset-password.component.html +77 -86
  318. package/src/login/pages/login-reset-password/login-reset-password.component.ts +16 -9
  319. package/src/login/pages/login-update-password/login-update-password.component.html +98 -108
  320. package/src/login/pages/login-update-password/login-update-password.component.ts +15 -8
  321. package/src/login/pages/login-update-profile/login-update-profile.component.html +44 -53
  322. package/src/login/pages/login-update-profile/login-update-profile.component.ts +17 -10
  323. package/src/login/pages/login-username/login-username.component.html +138 -148
  324. package/src/login/pages/login-username/login-username.component.ts +16 -9
  325. package/src/login/pages/login-verify-email/login-verify-email.component.html +17 -25
  326. package/src/login/pages/login-verify-email/login-verify-email.component.ts +15 -9
  327. package/src/login/pages/login-x509-info/login-x509-info.component.html +85 -94
  328. package/src/login/pages/login-x509-info/login-x509-info.component.ts +15 -9
  329. package/src/login/pages/logout-confirm/logout-confirm.component.html +39 -49
  330. package/src/login/pages/logout-confirm/logout-confirm.component.ts +15 -14
  331. package/src/login/pages/register/register.component.html +100 -110
  332. package/src/login/pages/register/register.component.ts +19 -12
  333. package/src/login/pages/saml-post-form/saml-post-form.component.html +39 -48
  334. package/src/login/pages/saml-post-form/saml-post-form.component.ts +19 -13
  335. package/src/login/pages/select-authenticator/select-authenticator.component.html +36 -44
  336. package/src/login/pages/select-authenticator/select-authenticator.component.ts +16 -9
  337. package/src/login/pages/terms/terms.component.html +25 -34
  338. package/src/login/pages/terms/terms.component.ts +16 -9
  339. package/src/login/pages/update-email/update-email.component.html +44 -53
  340. package/src/login/pages/update-email/update-email.component.ts +16 -15
  341. package/src/login/pages/webauthn-authenticate/webauthn-authenticate.component.html +134 -145
  342. package/src/login/pages/webauthn-authenticate/webauthn-authenticate.component.ts +16 -9
  343. package/src/login/pages/webauthn-error/webauthn-error.component.html +45 -55
  344. package/src/login/pages/webauthn-error/webauthn-error.component.ts +16 -9
  345. package/src/login/pages/webauthn-register/webauthn-register.component.html +65 -75
  346. package/src/login/pages/webauthn-register/webauthn-register.component.ts +16 -9
  347. package/src/login/providers/keycloakify-angular/keycloakify-angular.providers.ts +1 -0
  348. package/src/login/services/submit/submit.service.ts +1 -1
  349. package/src/tsconfig.lib.json +0 -12
  350. package/src/tsconfig.lib.prod.json +0 -10
@@ -1,10 +1,10 @@
1
- import { ChangeDetectionStrategy, Component, forwardRef, inject, input } from '@angular/core';
1
+ import { ChangeDetectionStrategy, Component, forwardRef, inject, viewChild } from '@angular/core';
2
+ import { KcSanitizePipe } from '@keycloakify/angular/lib/pipes/kc-sanitize';
2
3
  import { USE_DEFAULT_CSS } from '@keycloakify/angular/lib/tokens/use-default-css';
3
4
  import { ComponentReference } from '@keycloakify/angular/login/classes/component-reference';
4
5
  import { LogoutOtherSessionsComponent } from '@keycloakify/angular/login/components/logout-other-sessions';
5
6
  import { TemplateComponent } from '@keycloakify/angular/login/containers/template';
6
7
  import { KcClassDirective } from '@keycloakify/angular/login/directives/kc-class';
7
- import { KcSanitizePipe } from '@keycloakify/angular/lib/pipes/kc-sanitize';
8
8
  import { LOGIN_CLASSES } from '@keycloakify/angular/login/tokens/classes';
9
9
  import { LOGIN_I18N } from '@keycloakify/angular/login/tokens/i18n';
10
10
  import { KC_LOGIN_CONTEXT } from '@keycloakify/angular/login/tokens/kc-context';
@@ -16,27 +16,28 @@ export class LoginConfigTotpComponent extends ComponentReference {
16
16
  this.i18n = inject(LOGIN_I18N);
17
17
  this.doUseDefaultCss = inject(USE_DEFAULT_CSS);
18
18
  this.classes = inject(LOGIN_CLASSES);
19
- this.displayRequiredFields = input(false);
20
- this.documentTitle = input();
21
- this.bodyClassName = input();
19
+ this.displayRequiredFields = false;
22
20
  this.displayInfo = false;
23
- this.displayMessage = this.kcContext.messagesPerField.existsError('totp', 'userLabel');
21
+ this.displayMessage = !this.kcContext.messagesPerField.existsError('totp', 'userLabel');
22
+ this.headerNode = viewChild('headerNode');
23
+ this.infoNode = viewChild('infoNode');
24
+ this.socialProvidersNode = viewChild('socialProvidersNode');
24
25
  }
25
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: LoginConfigTotpComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
26
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.6", type: LoginConfigTotpComponent, isStandalone: true, selector: "kc-root", inputs: { displayRequiredFields: { classPropertyName: "displayRequiredFields", publicName: "displayRequiredFields", isSignal: true, isRequired: false, transformFunction: null }, documentTitle: { classPropertyName: "documentTitle", publicName: "documentTitle", isSignal: true, isRequired: false, transformFunction: null }, bodyClassName: { classPropertyName: "bodyClassName", publicName: "bodyClassName", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
26
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: LoginConfigTotpComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
27
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: LoginConfigTotpComponent, isStandalone: true, selector: "kc-login-config-totp", providers: [
27
28
  {
28
29
  provide: ComponentReference,
29
30
  useExisting: forwardRef(() => LoginConfigTotpComponent)
30
31
  }
31
- ], usesInheritance: true, ngImport: i0, template: "@let totp = kcContext.totp;\n@let url = kcContext.url;\n@let messagesPerField = kcContext.messagesPerField;\n@let mode = kcContext.mode;\n@let isAppInitiatedAction = kcContext.isAppInitiatedAction;\n<kc-login-template\n [displayInfo]=\"displayInfo\"\n [bodyClassName]=\"bodyClassName()\"\n [displayMessage]=\"displayMessage\"\n [displayRequiredFields]=\"displayRequiredFields()\"\n [documentTitle]=\"documentTitle()\"\n>\n <ng-container headerNode>\n {{ i18n.msgStr('loginTotpStep1') }}\n </ng-container>\n <ng-container content>\n <ol id=\"kc-totp-settings\">\n <li>\n <p>{{ i18n.msgStr('loginTotpStep1') }}</p>\n <ul id=\"kc-totp-supported-apps\">\n @for (app of totp.supportedApplications; track app) {\n <li>{{ i18n.advancedMsgStr(app) }}</li>\n }\n </ul>\n </li>\n @if (kcContext.mode === 'manual') {\n <li>\n <p>{{ i18n.msgStr('loginTotpManualStep2') }}</p>\n <p>\n <span id=\"kc-totp-secret-key\">{{ totp.totpSecretEncoded }}</span>\n </p>\n <p>\n <a\n [href]=\"totp.qrUrl\"\n id=\"mode-barcode\"\n >\n {{ i18n.msgStr('loginTotpScanBarcode') }}\n </a>\n </p>\n </li>\n <li>\n <p>{{ i18n.msgStr('loginTotpManualStep3') }}</p>\n <p></p>\n <ul>\n <li id=\"kc-totp-type\">\n {{ i18n.msgStr('loginTotpType') }}:\n {{ i18n.advancedMsgStr('loginTotp.' + totp.policy.type) }}\n </li>\n <li id=\"kc-totp-algorithm\">\n {{ i18n.msgStr('loginTotpAlgorithm') }}:\n {{ totp.policy.getAlgorithmKey() }}\n </li>\n <li id=\"kc-totp-digits\">{{ i18n.msgStr('loginTotpDigits') }}: {{ totp.policy.digits }}</li>\n @if (totp.policy.type === 'totp') {\n <li id=\"kc-totp-period\">\n {{ i18n.msgStr('loginTotpInterval') }}:\n {{ totp.policy.period }}\n </li>\n } @else {\n <li id=\"kc-totp-counter\">\n {{ i18n.msgStr('loginTotpCounter') }}:\n {{ totp.policy.initialCounter }}\n </li>\n }\n </ul>\n </li>\n } @else {\n <li>\n <p>{{ i18n.msgStr('loginTotpStep2') }}</p>\n <img\n id=\"kc-totp-secret-qr-code\"\n [src]=\"'data:image/png;base64, ' + totp.totpSecretQrCode\"\n alt=\"Figure: Barcode\"\n />\n <br />\n <p>\n <a\n [href]=\"totp.manualUrl\"\n id=\"mode-manual\"\n >\n {{ i18n.msgStr('loginTotpUnableToScan') }}\n </a>\n </p>\n </li>\n }\n <li>\n <p>{{ i18n.msgStr('loginTotpStep3') }}</p>\n <p>{{ i18n.msgStr('loginTotpStep3DeviceName') }}</p>\n </li>\n </ol>\n <form\n [action]=\"url.loginAction\"\n [kcClass]=\"'kcFormClass'\"\n id=\"kc-totp-settings-form\"\n method=\"post\"\n >\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div [kcClass]=\"'kcInputWrapperClass'\">\n <label\n for=\"totp\"\n [kcClass]=\"'kcLabelClass'\"\n >\n {{ i18n.msgStr('authenticatorCode') }}\n </label>\n <span class=\"required\">*</span>\n </div>\n <div [kcClass]=\"'kcInputWrapperClass'\">\n <input\n type=\"text\"\n id=\"totp\"\n name=\"totp\"\n autoComplete=\"off\"\n [kcClass]=\"'kcInputClass'\"\n [attr.aria-invalid]=\"messagesPerField.existsError('totp')\"\n />\n @if (messagesPerField.existsError('totp')) {\n <span\n id=\"input-error-otp-code\"\n [kcClass]=\"'kcInputErrorMessageClass'\"\n aria-live=\"polite\"\n [innerHTML]=\"messagesPerField.get('totp') | kcSanitize: 'html'\"\n ></span>\n }\n </div>\n <input\n type=\"hidden\"\n id=\"totpSecret\"\n name=\"totpSecret\"\n [value]=\"totp.totpSecret\"\n />\n @if (mode) {\n <input\n type=\"hidden\"\n id=\"mode\"\n [value]=\"mode\"\n />\n }\n </div>\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div [kcClass]=\"'kcInputWrapperClass'\">\n <label\n for=\"userLabel\"\n [kcClass]=\"'kcLabelClass'\"\n >\n {{ i18n.msgStr('loginTotpDeviceName') }}\n </label>\n @if (totp.otpCredentials.length >= 1) {\n <span class=\"required\">*</span>\n }\n </div>\n <div [kcClass]=\"'kcInputWrapperClass'\">\n <input\n type=\"text\"\n id=\"userLabel\"\n name=\"userLabel\"\n autoComplete=\"off\"\n [kcClass]=\"'kcInputClass'\"\n [attr.aria-invalid]=\"messagesPerField.existsError('userLabel')\"\n />\n @if (messagesPerField.existsError('userLabel')) {\n <span\n id=\"input-error-otp-label\"\n [kcClass]=\"'kcInputErrorMessageClass'\"\n aria-live=\"polite\"\n [innerHTML]=\"messagesPerField.get('userLabel') | kcSanitize: 'html'\"\n ></span>\n }\n </div>\n </div>\n <div [kcClass]=\"'kcFormGroupClass'\">\n <kc-logout-other-sessions />\n </div>\n\n @if (isAppInitiatedAction) {\n <input\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonLargeClass']\"\n id=\"saveTOTPBtn\"\n [value]=\"i18n.msgStr('doSubmit')\"\n />\n <button\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonDefaultClass', 'kcButtonLargeClass', 'kcButtonLargeClass']\"\n id=\"cancelTOTPBtn\"\n name=\"cancel-aia\"\n [value]=\"true\"\n >\n {{ i18n.msgStr('doCancel') }}\n </button>\n } @else {\n <input\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonLargeClass']\"\n id=\"saveTOTPBtn\"\n [value]=\"i18n.msgStr('doSubmit')\"\n />\n }\n </form>\n </ng-container>\n</kc-login-template>\n", dependencies: [{ kind: "component", type: TemplateComponent, selector: "kc-login-template", inputs: ["displayInfo", "displayMessage", "displayRequiredFields", "documentTitle", "bodyClassName"] }, { kind: "directive", type: KcClassDirective, selector: "[kcClass]", inputs: ["class", "ngClass", "kcClass"] }, { kind: "pipe", type: KcSanitizePipe, name: "kcSanitize" }, { kind: "component", type: LogoutOtherSessionsComponent, selector: "kc-logout-other-sessions" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
32
+ ], viewQueries: [{ propertyName: "headerNode", first: true, predicate: ["headerNode"], descendants: true, isSignal: true }, { propertyName: "infoNode", first: true, predicate: ["infoNode"], descendants: true, isSignal: true }, { propertyName: "socialProvidersNode", first: true, predicate: ["socialProvidersNode"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "@let totp = kcContext.totp;\n@let url = kcContext.url;\n@let messagesPerField = kcContext.messagesPerField;\n@let mode = kcContext.mode;\n@let isAppInitiatedAction = kcContext.isAppInitiatedAction;\n\n<ng-template #headerNode>\n {{ i18n.msgStr('loginTotpStep1') }}\n</ng-template>\n<ol id=\"kc-totp-settings\">\n <li>\n <p>{{ i18n.msgStr('loginTotpStep1') }}</p>\n <ul id=\"kc-totp-supported-apps\">\n @for (app of totp.supportedApplications; track app) {\n <li>{{ i18n.advancedMsgStr(app) }}</li>\n }\n </ul>\n </li>\n @if (kcContext.mode === 'manual') {\n <li>\n <p>{{ i18n.msgStr('loginTotpManualStep2') }}</p>\n <p>\n <span id=\"kc-totp-secret-key\">{{ totp.totpSecretEncoded }}</span>\n </p>\n <p>\n <a\n id=\"mode-barcode\"\n [href]=\"totp.qrUrl\"\n >\n {{ i18n.msgStr('loginTotpScanBarcode') }}\n </a>\n </p>\n </li>\n <li>\n <p>{{ i18n.msgStr('loginTotpManualStep3') }}</p>\n <p></p>\n <ul>\n <li id=\"kc-totp-type\">\n {{ i18n.msgStr('loginTotpType') }}:\n {{ i18n.advancedMsgStr('loginTotp.' + totp.policy.type) }}\n </li>\n <li id=\"kc-totp-algorithm\">\n {{ i18n.msgStr('loginTotpAlgorithm') }}:\n {{ totp.policy.getAlgorithmKey() }}\n </li>\n <li id=\"kc-totp-digits\">{{ i18n.msgStr('loginTotpDigits') }}: {{ totp.policy.digits }}</li>\n @if (totp.policy.type === 'totp') {\n <li id=\"kc-totp-period\">\n {{ i18n.msgStr('loginTotpInterval') }}:\n {{ totp.policy.period }}\n </li>\n } @else {\n <li id=\"kc-totp-counter\">\n {{ i18n.msgStr('loginTotpCounter') }}:\n {{ totp.policy.initialCounter }}\n </li>\n }\n </ul>\n </li>\n } @else {\n <li>\n <p>{{ i18n.msgStr('loginTotpStep2') }}</p>\n <img\n id=\"kc-totp-secret-qr-code\"\n alt=\"Figure: Barcode\"\n [src]=\"'data:image/png;base64, ' + totp.totpSecretQrCode\"\n />\n <br />\n <p>\n <a\n id=\"mode-manual\"\n [href]=\"totp.manualUrl\"\n >\n {{ i18n.msgStr('loginTotpUnableToScan') }}\n </a>\n </p>\n </li>\n }\n <li>\n <p>{{ i18n.msgStr('loginTotpStep3') }}</p>\n <p>{{ i18n.msgStr('loginTotpStep3DeviceName') }}</p>\n </li>\n</ol>\n<form\n id=\"kc-totp-settings-form\"\n method=\"post\"\n [action]=\"url.loginAction\"\n [kcClass]=\"'kcFormClass'\"\n>\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div [kcClass]=\"'kcInputWrapperClass'\">\n <label\n for=\"totp\"\n [kcClass]=\"'kcLabelClass'\"\n >\n {{ i18n.msgStr('authenticatorCode') }}\n </label>\n <span class=\"required\">*</span>\n </div>\n <div [kcClass]=\"'kcInputWrapperClass'\">\n <input\n type=\"text\"\n id=\"totp\"\n name=\"totp\"\n autoComplete=\"off\"\n [kcClass]=\"'kcInputClass'\"\n [attr.aria-invalid]=\"messagesPerField.existsError('totp')\"\n />\n @if (messagesPerField.existsError('totp')) {\n <span\n id=\"input-error-otp-code\"\n aria-live=\"polite\"\n [kcClass]=\"'kcInputErrorMessageClass'\"\n [innerHTML]=\"messagesPerField.get('totp') | kcSanitize: 'html'\"\n ></span>\n }\n </div>\n <input\n type=\"hidden\"\n id=\"totpSecret\"\n name=\"totpSecret\"\n [value]=\"totp.totpSecret\"\n />\n @if (mode) {\n <input\n type=\"hidden\"\n id=\"mode\"\n [value]=\"mode\"\n />\n }\n </div>\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div [kcClass]=\"'kcInputWrapperClass'\">\n <label\n for=\"userLabel\"\n [kcClass]=\"'kcLabelClass'\"\n >\n {{ i18n.msgStr('loginTotpDeviceName') }}\n </label>\n @if (totp.otpCredentials.length >= 1) {\n <span class=\"required\">*</span>\n }\n </div>\n <div [kcClass]=\"'kcInputWrapperClass'\">\n <input\n type=\"text\"\n id=\"userLabel\"\n name=\"userLabel\"\n autoComplete=\"off\"\n [kcClass]=\"'kcInputClass'\"\n [attr.aria-invalid]=\"messagesPerField.existsError('userLabel')\"\n />\n @if (messagesPerField.existsError('userLabel')) {\n <span\n id=\"input-error-otp-label\"\n aria-live=\"polite\"\n [kcClass]=\"'kcInputErrorMessageClass'\"\n [innerHTML]=\"messagesPerField.get('userLabel') | kcSanitize: 'html'\"\n ></span>\n }\n </div>\n </div>\n <div [kcClass]=\"'kcFormGroupClass'\">\n <kc-logout-other-sessions />\n </div>\n\n @if (isAppInitiatedAction) {\n <input\n type=\"submit\"\n id=\"saveTOTPBtn\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doSubmit')\"\n />\n <button\n type=\"submit\"\n id=\"cancelTOTPBtn\"\n name=\"cancel-aia\"\n [kcClass]=\"['kcButtonClass', 'kcButtonDefaultClass', 'kcButtonLargeClass', 'kcButtonLargeClass']\"\n [value]=\"true\"\n >\n {{ i18n.msgStr('doCancel') }}\n </button>\n } @else {\n <input\n type=\"submit\"\n id=\"saveTOTPBtn\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doSubmit')\"\n />\n }\n</form>\n", dependencies: [{ kind: "directive", type: KcClassDirective, selector: "[kcClass]", inputs: ["class", "ngClass", "kcClass"] }, { kind: "pipe", type: KcSanitizePipe, name: "kcSanitize" }, { kind: "component", type: LogoutOtherSessionsComponent, selector: "kc-logout-other-sessions" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
32
33
  }
33
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: LoginConfigTotpComponent, decorators: [{
34
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: LoginConfigTotpComponent, decorators: [{
34
35
  type: Component,
35
- args: [{ standalone: true, imports: [TemplateComponent, KcClassDirective, KcSanitizePipe, LogoutOtherSessionsComponent], selector: 'kc-root', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
36
+ args: [{ standalone: true, imports: [TemplateComponent, KcClassDirective, KcSanitizePipe, LogoutOtherSessionsComponent], selector: 'kc-login-config-totp', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
36
37
  {
37
38
  provide: ComponentReference,
38
39
  useExisting: forwardRef(() => LoginConfigTotpComponent)
39
40
  }
40
- ], template: "@let totp = kcContext.totp;\n@let url = kcContext.url;\n@let messagesPerField = kcContext.messagesPerField;\n@let mode = kcContext.mode;\n@let isAppInitiatedAction = kcContext.isAppInitiatedAction;\n<kc-login-template\n [displayInfo]=\"displayInfo\"\n [bodyClassName]=\"bodyClassName()\"\n [displayMessage]=\"displayMessage\"\n [displayRequiredFields]=\"displayRequiredFields()\"\n [documentTitle]=\"documentTitle()\"\n>\n <ng-container headerNode>\n {{ i18n.msgStr('loginTotpStep1') }}\n </ng-container>\n <ng-container content>\n <ol id=\"kc-totp-settings\">\n <li>\n <p>{{ i18n.msgStr('loginTotpStep1') }}</p>\n <ul id=\"kc-totp-supported-apps\">\n @for (app of totp.supportedApplications; track app) {\n <li>{{ i18n.advancedMsgStr(app) }}</li>\n }\n </ul>\n </li>\n @if (kcContext.mode === 'manual') {\n <li>\n <p>{{ i18n.msgStr('loginTotpManualStep2') }}</p>\n <p>\n <span id=\"kc-totp-secret-key\">{{ totp.totpSecretEncoded }}</span>\n </p>\n <p>\n <a\n [href]=\"totp.qrUrl\"\n id=\"mode-barcode\"\n >\n {{ i18n.msgStr('loginTotpScanBarcode') }}\n </a>\n </p>\n </li>\n <li>\n <p>{{ i18n.msgStr('loginTotpManualStep3') }}</p>\n <p></p>\n <ul>\n <li id=\"kc-totp-type\">\n {{ i18n.msgStr('loginTotpType') }}:\n {{ i18n.advancedMsgStr('loginTotp.' + totp.policy.type) }}\n </li>\n <li id=\"kc-totp-algorithm\">\n {{ i18n.msgStr('loginTotpAlgorithm') }}:\n {{ totp.policy.getAlgorithmKey() }}\n </li>\n <li id=\"kc-totp-digits\">{{ i18n.msgStr('loginTotpDigits') }}: {{ totp.policy.digits }}</li>\n @if (totp.policy.type === 'totp') {\n <li id=\"kc-totp-period\">\n {{ i18n.msgStr('loginTotpInterval') }}:\n {{ totp.policy.period }}\n </li>\n } @else {\n <li id=\"kc-totp-counter\">\n {{ i18n.msgStr('loginTotpCounter') }}:\n {{ totp.policy.initialCounter }}\n </li>\n }\n </ul>\n </li>\n } @else {\n <li>\n <p>{{ i18n.msgStr('loginTotpStep2') }}</p>\n <img\n id=\"kc-totp-secret-qr-code\"\n [src]=\"'data:image/png;base64, ' + totp.totpSecretQrCode\"\n alt=\"Figure: Barcode\"\n />\n <br />\n <p>\n <a\n [href]=\"totp.manualUrl\"\n id=\"mode-manual\"\n >\n {{ i18n.msgStr('loginTotpUnableToScan') }}\n </a>\n </p>\n </li>\n }\n <li>\n <p>{{ i18n.msgStr('loginTotpStep3') }}</p>\n <p>{{ i18n.msgStr('loginTotpStep3DeviceName') }}</p>\n </li>\n </ol>\n <form\n [action]=\"url.loginAction\"\n [kcClass]=\"'kcFormClass'\"\n id=\"kc-totp-settings-form\"\n method=\"post\"\n >\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div [kcClass]=\"'kcInputWrapperClass'\">\n <label\n for=\"totp\"\n [kcClass]=\"'kcLabelClass'\"\n >\n {{ i18n.msgStr('authenticatorCode') }}\n </label>\n <span class=\"required\">*</span>\n </div>\n <div [kcClass]=\"'kcInputWrapperClass'\">\n <input\n type=\"text\"\n id=\"totp\"\n name=\"totp\"\n autoComplete=\"off\"\n [kcClass]=\"'kcInputClass'\"\n [attr.aria-invalid]=\"messagesPerField.existsError('totp')\"\n />\n @if (messagesPerField.existsError('totp')) {\n <span\n id=\"input-error-otp-code\"\n [kcClass]=\"'kcInputErrorMessageClass'\"\n aria-live=\"polite\"\n [innerHTML]=\"messagesPerField.get('totp') | kcSanitize: 'html'\"\n ></span>\n }\n </div>\n <input\n type=\"hidden\"\n id=\"totpSecret\"\n name=\"totpSecret\"\n [value]=\"totp.totpSecret\"\n />\n @if (mode) {\n <input\n type=\"hidden\"\n id=\"mode\"\n [value]=\"mode\"\n />\n }\n </div>\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div [kcClass]=\"'kcInputWrapperClass'\">\n <label\n for=\"userLabel\"\n [kcClass]=\"'kcLabelClass'\"\n >\n {{ i18n.msgStr('loginTotpDeviceName') }}\n </label>\n @if (totp.otpCredentials.length >= 1) {\n <span class=\"required\">*</span>\n }\n </div>\n <div [kcClass]=\"'kcInputWrapperClass'\">\n <input\n type=\"text\"\n id=\"userLabel\"\n name=\"userLabel\"\n autoComplete=\"off\"\n [kcClass]=\"'kcInputClass'\"\n [attr.aria-invalid]=\"messagesPerField.existsError('userLabel')\"\n />\n @if (messagesPerField.existsError('userLabel')) {\n <span\n id=\"input-error-otp-label\"\n [kcClass]=\"'kcInputErrorMessageClass'\"\n aria-live=\"polite\"\n [innerHTML]=\"messagesPerField.get('userLabel') | kcSanitize: 'html'\"\n ></span>\n }\n </div>\n </div>\n <div [kcClass]=\"'kcFormGroupClass'\">\n <kc-logout-other-sessions />\n </div>\n\n @if (isAppInitiatedAction) {\n <input\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonLargeClass']\"\n id=\"saveTOTPBtn\"\n [value]=\"i18n.msgStr('doSubmit')\"\n />\n <button\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonDefaultClass', 'kcButtonLargeClass', 'kcButtonLargeClass']\"\n id=\"cancelTOTPBtn\"\n name=\"cancel-aia\"\n [value]=\"true\"\n >\n {{ i18n.msgStr('doCancel') }}\n </button>\n } @else {\n <input\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonLargeClass']\"\n id=\"saveTOTPBtn\"\n [value]=\"i18n.msgStr('doSubmit')\"\n />\n }\n </form>\n </ng-container>\n</kc-login-template>\n" }]
41
+ ], template: "@let totp = kcContext.totp;\n@let url = kcContext.url;\n@let messagesPerField = kcContext.messagesPerField;\n@let mode = kcContext.mode;\n@let isAppInitiatedAction = kcContext.isAppInitiatedAction;\n\n<ng-template #headerNode>\n {{ i18n.msgStr('loginTotpStep1') }}\n</ng-template>\n<ol id=\"kc-totp-settings\">\n <li>\n <p>{{ i18n.msgStr('loginTotpStep1') }}</p>\n <ul id=\"kc-totp-supported-apps\">\n @for (app of totp.supportedApplications; track app) {\n <li>{{ i18n.advancedMsgStr(app) }}</li>\n }\n </ul>\n </li>\n @if (kcContext.mode === 'manual') {\n <li>\n <p>{{ i18n.msgStr('loginTotpManualStep2') }}</p>\n <p>\n <span id=\"kc-totp-secret-key\">{{ totp.totpSecretEncoded }}</span>\n </p>\n <p>\n <a\n id=\"mode-barcode\"\n [href]=\"totp.qrUrl\"\n >\n {{ i18n.msgStr('loginTotpScanBarcode') }}\n </a>\n </p>\n </li>\n <li>\n <p>{{ i18n.msgStr('loginTotpManualStep3') }}</p>\n <p></p>\n <ul>\n <li id=\"kc-totp-type\">\n {{ i18n.msgStr('loginTotpType') }}:\n {{ i18n.advancedMsgStr('loginTotp.' + totp.policy.type) }}\n </li>\n <li id=\"kc-totp-algorithm\">\n {{ i18n.msgStr('loginTotpAlgorithm') }}:\n {{ totp.policy.getAlgorithmKey() }}\n </li>\n <li id=\"kc-totp-digits\">{{ i18n.msgStr('loginTotpDigits') }}: {{ totp.policy.digits }}</li>\n @if (totp.policy.type === 'totp') {\n <li id=\"kc-totp-period\">\n {{ i18n.msgStr('loginTotpInterval') }}:\n {{ totp.policy.period }}\n </li>\n } @else {\n <li id=\"kc-totp-counter\">\n {{ i18n.msgStr('loginTotpCounter') }}:\n {{ totp.policy.initialCounter }}\n </li>\n }\n </ul>\n </li>\n } @else {\n <li>\n <p>{{ i18n.msgStr('loginTotpStep2') }}</p>\n <img\n id=\"kc-totp-secret-qr-code\"\n alt=\"Figure: Barcode\"\n [src]=\"'data:image/png;base64, ' + totp.totpSecretQrCode\"\n />\n <br />\n <p>\n <a\n id=\"mode-manual\"\n [href]=\"totp.manualUrl\"\n >\n {{ i18n.msgStr('loginTotpUnableToScan') }}\n </a>\n </p>\n </li>\n }\n <li>\n <p>{{ i18n.msgStr('loginTotpStep3') }}</p>\n <p>{{ i18n.msgStr('loginTotpStep3DeviceName') }}</p>\n </li>\n</ol>\n<form\n id=\"kc-totp-settings-form\"\n method=\"post\"\n [action]=\"url.loginAction\"\n [kcClass]=\"'kcFormClass'\"\n>\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div [kcClass]=\"'kcInputWrapperClass'\">\n <label\n for=\"totp\"\n [kcClass]=\"'kcLabelClass'\"\n >\n {{ i18n.msgStr('authenticatorCode') }}\n </label>\n <span class=\"required\">*</span>\n </div>\n <div [kcClass]=\"'kcInputWrapperClass'\">\n <input\n type=\"text\"\n id=\"totp\"\n name=\"totp\"\n autoComplete=\"off\"\n [kcClass]=\"'kcInputClass'\"\n [attr.aria-invalid]=\"messagesPerField.existsError('totp')\"\n />\n @if (messagesPerField.existsError('totp')) {\n <span\n id=\"input-error-otp-code\"\n aria-live=\"polite\"\n [kcClass]=\"'kcInputErrorMessageClass'\"\n [innerHTML]=\"messagesPerField.get('totp') | kcSanitize: 'html'\"\n ></span>\n }\n </div>\n <input\n type=\"hidden\"\n id=\"totpSecret\"\n name=\"totpSecret\"\n [value]=\"totp.totpSecret\"\n />\n @if (mode) {\n <input\n type=\"hidden\"\n id=\"mode\"\n [value]=\"mode\"\n />\n }\n </div>\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div [kcClass]=\"'kcInputWrapperClass'\">\n <label\n for=\"userLabel\"\n [kcClass]=\"'kcLabelClass'\"\n >\n {{ i18n.msgStr('loginTotpDeviceName') }}\n </label>\n @if (totp.otpCredentials.length >= 1) {\n <span class=\"required\">*</span>\n }\n </div>\n <div [kcClass]=\"'kcInputWrapperClass'\">\n <input\n type=\"text\"\n id=\"userLabel\"\n name=\"userLabel\"\n autoComplete=\"off\"\n [kcClass]=\"'kcInputClass'\"\n [attr.aria-invalid]=\"messagesPerField.existsError('userLabel')\"\n />\n @if (messagesPerField.existsError('userLabel')) {\n <span\n id=\"input-error-otp-label\"\n aria-live=\"polite\"\n [kcClass]=\"'kcInputErrorMessageClass'\"\n [innerHTML]=\"messagesPerField.get('userLabel') | kcSanitize: 'html'\"\n ></span>\n }\n </div>\n </div>\n <div [kcClass]=\"'kcFormGroupClass'\">\n <kc-logout-other-sessions />\n </div>\n\n @if (isAppInitiatedAction) {\n <input\n type=\"submit\"\n id=\"saveTOTPBtn\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doSubmit')\"\n />\n <button\n type=\"submit\"\n id=\"cancelTOTPBtn\"\n name=\"cancel-aia\"\n [kcClass]=\"['kcButtonClass', 'kcButtonDefaultClass', 'kcButtonLargeClass', 'kcButtonLargeClass']\"\n [value]=\"true\"\n >\n {{ i18n.msgStr('doCancel') }}\n </button>\n } @else {\n <input\n type=\"submit\"\n id=\"saveTOTPBtn\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doSubmit')\"\n />\n }\n</form>\n" }]
41
42
  }] });
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4tY29uZmlnLXRvdHAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xvZ2luL3BhZ2VzL2xvZ2luLWNvbmZpZy10b3RwL2xvZ2luLWNvbmZpZy10b3RwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9sb2dpbi9wYWdlcy9sb2dpbi1jb25maWctdG90cC9sb2dpbi1jb25maWctdG90cC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUNsRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUM1RixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSw2REFBNkQsQ0FBQztBQUMzRyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUNuRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUNsRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDNUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQzs7QUFrQmhGLE1BQU0sT0FBTyx3QkFBeUIsU0FBUSxrQkFBa0I7SUFiaEU7O1FBY0ksY0FBUyxHQUFHLE1BQU0sQ0FBMEQsZ0JBQWdCLENBQUMsQ0FBQztRQUM5RixTQUFJLEdBQUcsTUFBTSxDQUFPLFVBQVUsQ0FBQyxDQUFDO1FBQ3ZCLG9CQUFlLEdBQUcsTUFBTSxDQUFVLGVBQWUsQ0FBQyxDQUFDO1FBQ25ELFlBQU8sR0FBRyxNQUFNLENBQW9DLGFBQWEsQ0FBQyxDQUFDO1FBQzVFLDBCQUFxQixHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyQyxrQkFBYSxHQUFHLEtBQUssRUFBVSxDQUFDO1FBQ2hDLGtCQUFhLEdBQUcsS0FBSyxFQUFVLENBQUM7UUFDaEMsZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFDN0IsbUJBQWMsR0FBWSxJQUFJLENBQUMsU0FBUyxDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLENBQUM7S0FDOUY7OEdBVlksd0JBQXdCO2tHQUF4Qix3QkFBd0IsMGdCQVB0QjtZQUNQO2dCQUNJLE9BQU8sRUFBRSxrQkFBa0I7Z0JBQzNCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsd0JBQXdCLENBQUM7YUFDMUQ7U0FDSixpREN6Qkwsa3JRQXdNQSw0Q0R4TGMsaUJBQWlCLG9LQUFFLGdCQUFnQiwwRkFBRSxjQUFjLG1EQUFFLDRCQUE0Qjs7MkZBV2xGLHdCQUF3QjtrQkFicEMsU0FBUztpQ0FDTSxJQUFJLFdBQ1AsQ0FBQyxpQkFBaUIsRUFBRSxnQkFBZ0IsRUFBRSxjQUFjLEVBQUUsNEJBQTRCLENBQUMsWUFDbEYsU0FBUyxtQkFFRix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSxrQkFBa0I7NEJBQzNCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLHlCQUF5QixDQUFDO3lCQUMxRDtxQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGZvcndhcmRSZWYsIGluamVjdCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFVTRV9ERUZBVUxUX0NTUyB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xpYi90b2tlbnMvdXNlLWRlZmF1bHQtY3NzJztcbmltcG9ydCB7IENvbXBvbmVudFJlZmVyZW5jZSB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL2NsYXNzZXMvY29tcG9uZW50LXJlZmVyZW5jZSc7XG5pbXBvcnQgeyBMb2dvdXRPdGhlclNlc3Npb25zQ29tcG9uZW50IH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vY29tcG9uZW50cy9sb2dvdXQtb3RoZXItc2Vzc2lvbnMnO1xuaW1wb3J0IHsgVGVtcGxhdGVDb21wb25lbnQgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9jb250YWluZXJzL3RlbXBsYXRlJztcbmltcG9ydCB7IEtjQ2xhc3NEaXJlY3RpdmUgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9kaXJlY3RpdmVzL2tjLWNsYXNzJztcbmltcG9ydCB7IEtjU2FuaXRpemVQaXBlIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbGliL3BpcGVzL2tjLXNhbml0aXplJztcbmltcG9ydCB7IExPR0lOX0NMQVNTRVMgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi90b2tlbnMvY2xhc3Nlcyc7XG5pbXBvcnQgeyBMT0dJTl9JMThOIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vdG9rZW5zL2kxOG4nO1xuaW1wb3J0IHsgS0NfTE9HSU5fQ09OVEVYVCB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL3Rva2Vucy9rYy1jb250ZXh0JztcbmltcG9ydCB0eXBlIHsgQ2xhc3NLZXkgfSBmcm9tICdrZXljbG9ha2lmeS9sb2dpbi9saWIva2NDbHN4JztcbmltcG9ydCB0eXBlIHsgSTE4biB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL2kxOG4nO1xuaW1wb3J0IHR5cGUgeyBLY0NvbnRleHQgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9LY0NvbnRleHQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtUZW1wbGF0ZUNvbXBvbmVudCwgS2NDbGFzc0RpcmVjdGl2ZSwgS2NTYW5pdGl6ZVBpcGUsIExvZ291dE90aGVyU2Vzc2lvbnNDb21wb25lbnRdLFxuICAgIHNlbGVjdG9yOiAna2Mtcm9vdCcsXG4gICAgdGVtcGxhdGVVcmw6ICdsb2dpbi1jb25maWctdG90cC5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IENvbXBvbmVudFJlZmVyZW5jZSxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IExvZ2luQ29uZmlnVG90cENvbXBvbmVudClcbiAgICAgICAgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgTG9naW5Db25maWdUb3RwQ29tcG9uZW50IGV4dGVuZHMgQ29tcG9uZW50UmVmZXJlbmNlIHtcbiAgICBrY0NvbnRleHQgPSBpbmplY3Q8RXh0cmFjdDxLY0NvbnRleHQsIHsgcGFnZUlkOiAnbG9naW4tY29uZmlnLXRvdHAuZnRsJyB9Pj4oS0NfTE9HSU5fQ09OVEVYVCk7XG4gICAgaTE4biA9IGluamVjdDxJMThuPihMT0dJTl9JMThOKTtcbiAgICBvdmVycmlkZSBkb1VzZURlZmF1bHRDc3MgPSBpbmplY3Q8Ym9vbGVhbj4oVVNFX0RFRkFVTFRfQ1NTKTtcbiAgICBvdmVycmlkZSBjbGFzc2VzID0gaW5qZWN0PFBhcnRpYWw8UmVjb3JkPENsYXNzS2V5LCBzdHJpbmc+Pj4oTE9HSU5fQ0xBU1NFUyk7XG4gICAgZGlzcGxheVJlcXVpcmVkRmllbGRzID0gaW5wdXQoZmFsc2UpO1xuICAgIGRvY3VtZW50VGl0bGUgPSBpbnB1dDxzdHJpbmc+KCk7XG4gICAgYm9keUNsYXNzTmFtZSA9IGlucHV0PHN0cmluZz4oKTtcbiAgICBkaXNwbGF5SW5mbzogYm9vbGVhbiA9IGZhbHNlO1xuICAgIGRpc3BsYXlNZXNzYWdlOiBib29sZWFuID0gdGhpcy5rY0NvbnRleHQubWVzc2FnZXNQZXJGaWVsZC5leGlzdHNFcnJvcigndG90cCcsICd1c2VyTGFiZWwnKTtcbn1cbiIsIkBsZXQgdG90cCA9IGtjQ29udGV4dC50b3RwO1xuQGxldCB1cmwgPSBrY0NvbnRleHQudXJsO1xuQGxldCBtZXNzYWdlc1BlckZpZWxkID0ga2NDb250ZXh0Lm1lc3NhZ2VzUGVyRmllbGQ7XG5AbGV0IG1vZGUgPSBrY0NvbnRleHQubW9kZTtcbkBsZXQgaXNBcHBJbml0aWF0ZWRBY3Rpb24gPSBrY0NvbnRleHQuaXNBcHBJbml0aWF0ZWRBY3Rpb247XG48a2MtbG9naW4tdGVtcGxhdGVcbiAgICBbZGlzcGxheUluZm9dPVwiZGlzcGxheUluZm9cIlxuICAgIFtib2R5Q2xhc3NOYW1lXT1cImJvZHlDbGFzc05hbWUoKVwiXG4gICAgW2Rpc3BsYXlNZXNzYWdlXT1cImRpc3BsYXlNZXNzYWdlXCJcbiAgICBbZGlzcGxheVJlcXVpcmVkRmllbGRzXT1cImRpc3BsYXlSZXF1aXJlZEZpZWxkcygpXCJcbiAgICBbZG9jdW1lbnRUaXRsZV09XCJkb2N1bWVudFRpdGxlKClcIlxuPlxuICAgIDxuZy1jb250YWluZXIgaGVhZGVyTm9kZT5cbiAgICAgICAge3sgaTE4bi5tc2dTdHIoJ2xvZ2luVG90cFN0ZXAxJykgfX1cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyIGNvbnRlbnQ+XG4gICAgICAgIDxvbCBpZD1cImtjLXRvdHAtc2V0dGluZ3NcIj5cbiAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICA8cD57eyBpMThuLm1zZ1N0cignbG9naW5Ub3RwU3RlcDEnKSB9fTwvcD5cbiAgICAgICAgICAgICAgICA8dWwgaWQ9XCJrYy10b3RwLXN1cHBvcnRlZC1hcHBzXCI+XG4gICAgICAgICAgICAgICAgICAgIEBmb3IgKGFwcCBvZiB0b3RwLnN1cHBvcnRlZEFwcGxpY2F0aW9uczsgdHJhY2sgYXBwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGk+e3sgaTE4bi5hZHZhbmNlZE1zZ1N0cihhcHApIH19PC9saT5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgQGlmIChrY0NvbnRleHQubW9kZSA9PT0gJ21hbnVhbCcpIHtcbiAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgIDxwPnt7IGkxOG4ubXNnU3RyKCdsb2dpblRvdHBNYW51YWxTdGVwMicpIH19PC9wPlxuICAgICAgICAgICAgICAgICAgICA8cD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGlkPVwia2MtdG90cC1zZWNyZXQta2V5XCI+e3sgdG90cC50b3RwU2VjcmV0RW5jb2RlZCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICA8cD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2hyZWZdPVwidG90cC5xclVybFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJtb2RlLWJhcmNvZGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGkxOG4ubXNnU3RyKCdsb2dpblRvdHBTY2FuQmFyY29kZScpIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgPHA+e3sgaTE4bi5tc2dTdHIoJ2xvZ2luVG90cE1hbnVhbFN0ZXAzJykgfX08L3A+XG4gICAgICAgICAgICAgICAgICAgIDxwPjwvcD5cbiAgICAgICAgICAgICAgICAgICAgPHVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGlkPVwia2MtdG90cC10eXBlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaTE4bi5tc2dTdHIoJ2xvZ2luVG90cFR5cGUnKSB9fTpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpMThuLmFkdmFuY2VkTXNnU3RyKCdsb2dpblRvdHAuJyArIHRvdHAucG9saWN5LnR5cGUpIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGlkPVwia2MtdG90cC1hbGdvcml0aG1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpMThuLm1zZ1N0cignbG9naW5Ub3RwQWxnb3JpdGhtJykgfX06XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgdG90cC5wb2xpY3kuZ2V0QWxnb3JpdGhtS2V5KCkgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGkgaWQ9XCJrYy10b3RwLWRpZ2l0c1wiPnt7IGkxOG4ubXNnU3RyKCdsb2dpblRvdHBEaWdpdHMnKSB9fToge3sgdG90cC5wb2xpY3kuZGlnaXRzIH19PC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAodG90cC5wb2xpY3kudHlwZSA9PT0gJ3RvdHAnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGlkPVwia2MtdG90cC1wZXJpb2RcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaTE4bi5tc2dTdHIoJ2xvZ2luVG90cEludGVydmFsJykgfX06XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHRvdHAucG9saWN5LnBlcmlvZCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgaWQ9XCJrYy10b3RwLWNvdW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaTE4bi5tc2dTdHIoJ2xvZ2luVG90cENvdW50ZXInKSB9fTpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgdG90cC5wb2xpY3kuaW5pdGlhbENvdW50ZXIgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgIDxwPnt7IGkxOG4ubXNnU3RyKCdsb2dpblRvdHBTdGVwMicpIH19PC9wPlxuICAgICAgICAgICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImtjLXRvdHAtc2VjcmV0LXFyLWNvZGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3NyY109XCInZGF0YTppbWFnZS9wbmc7YmFzZTY0LCAnICsgdG90cC50b3RwU2VjcmV0UXJDb2RlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsdD1cIkZpZ3VyZTogQmFyY29kZVwiXG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDxiciAvPlxuICAgICAgICAgICAgICAgICAgICA8cD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2hyZWZdPVwidG90cC5tYW51YWxVcmxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwibW9kZS1tYW51YWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGkxOG4ubXNnU3RyKCdsb2dpblRvdHBVbmFibGVUb1NjYW4nKSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICA8cD57eyBpMThuLm1zZ1N0cignbG9naW5Ub3RwU3RlcDMnKSB9fTwvcD5cbiAgICAgICAgICAgICAgICA8cD57eyBpMThuLm1zZ1N0cignbG9naW5Ub3RwU3RlcDNEZXZpY2VOYW1lJykgfX08L3A+XG4gICAgICAgICAgICA8L2xpPlxuICAgICAgICA8L29sPlxuICAgICAgICA8Zm9ybVxuICAgICAgICAgICAgW2FjdGlvbl09XCJ1cmwubG9naW5BY3Rpb25cIlxuICAgICAgICAgICAgW2tjQ2xhc3NdPVwiJ2tjRm9ybUNsYXNzJ1wiXG4gICAgICAgICAgICBpZD1cImtjLXRvdHAtc2V0dGluZ3MtZm9ybVwiXG4gICAgICAgICAgICBtZXRob2Q9XCJwb3N0XCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGRpdiBba2NDbGFzc109XCIna2NGb3JtR3JvdXBDbGFzcydcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IFtrY0NsYXNzXT1cIidrY0lucHV0V3JhcHBlckNsYXNzJ1wiPlxuICAgICAgICAgICAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcj1cInRvdHBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2tjQ2xhc3NdPVwiJ2tjTGFiZWxDbGFzcydcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBpMThuLm1zZ1N0cignYXV0aGVudGljYXRvckNvZGUnKSB9fVxuICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInJlcXVpcmVkXCI+Kjwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IFtrY0NsYXNzXT1cIidrY0lucHV0V3JhcHBlckNsYXNzJ1wiPlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwidG90cFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwidG90cFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBhdXRvQ29tcGxldGU9XCJvZmZcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2tjQ2xhc3NdPVwiJ2tjSW5wdXRDbGFzcydcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1pbnZhbGlkXT1cIm1lc3NhZ2VzUGVyRmllbGQuZXhpc3RzRXJyb3IoJ3RvdHAnKVwiXG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIEBpZiAobWVzc2FnZXNQZXJGaWVsZC5leGlzdHNFcnJvcigndG90cCcpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiaW5wdXQtZXJyb3Itb3RwLWNvZGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtrY0NsYXNzXT1cIidrY0lucHV0RXJyb3JNZXNzYWdlQ2xhc3MnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxpdmU9XCJwb2xpdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpbm5lckhUTUxdPVwibWVzc2FnZXNQZXJGaWVsZC5nZXQoJ3RvdHAnKSB8IGtjU2FuaXRpemU6ICdodG1sJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJoaWRkZW5cIlxuICAgICAgICAgICAgICAgICAgICBpZD1cInRvdHBTZWNyZXRcIlxuICAgICAgICAgICAgICAgICAgICBuYW1lPVwidG90cFNlY3JldFwiXG4gICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJ0b3RwLnRvdHBTZWNyZXRcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgQGlmIChtb2RlKSB7XG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImhpZGRlblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cIm1vZGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cIm1vZGVcIlxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBba2NDbGFzc109XCIna2NGb3JtR3JvdXBDbGFzcydcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IFtrY0NsYXNzXT1cIidrY0lucHV0V3JhcHBlckNsYXNzJ1wiPlxuICAgICAgICAgICAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcj1cInVzZXJMYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBba2NDbGFzc109XCIna2NMYWJlbENsYXNzJ1wiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGkxOG4ubXNnU3RyKCdsb2dpblRvdHBEZXZpY2VOYW1lJykgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgQGlmICh0b3RwLm90cENyZWRlbnRpYWxzLmxlbmd0aCA+PSAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInJlcXVpcmVkXCI+Kjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgW2tjQ2xhc3NdPVwiJ2tjSW5wdXRXcmFwcGVyQ2xhc3MnXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJ1c2VyTGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cInVzZXJMYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBhdXRvQ29tcGxldGU9XCJvZmZcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2tjQ2xhc3NdPVwiJ2tjSW5wdXRDbGFzcydcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1pbnZhbGlkXT1cIm1lc3NhZ2VzUGVyRmllbGQuZXhpc3RzRXJyb3IoJ3VzZXJMYWJlbCcpXCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgQGlmIChtZXNzYWdlc1BlckZpZWxkLmV4aXN0c0Vycm9yKCd1c2VyTGFiZWwnKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cImlucHV0LWVycm9yLW90cC1sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2tjQ2xhc3NdPVwiJ2tjSW5wdXRFcnJvck1lc3NhZ2VDbGFzcydcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGl2ZT1cInBvbGl0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJtZXNzYWdlc1BlckZpZWxkLmdldCgndXNlckxhYmVsJykgfCBrY1Nhbml0aXplOiAnaHRtbCdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IFtrY0NsYXNzXT1cIidrY0Zvcm1Hcm91cENsYXNzJ1wiPlxuICAgICAgICAgICAgICAgIDxrYy1sb2dvdXQtb3RoZXItc2Vzc2lvbnMgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICBAaWYgKGlzQXBwSW5pdGlhdGVkQWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICAgICAgICAgICAgICBba2NDbGFzc109XCJbJ2tjQnV0dG9uQ2xhc3MnLCAna2NCdXR0b25QcmltYXJ5Q2xhc3MnLCAna2NCdXR0b25MYXJnZUNsYXNzJ11cIlxuICAgICAgICAgICAgICAgICAgICBpZD1cInNhdmVUT1RQQnRuXCJcbiAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImkxOG4ubXNnU3RyKCdkb1N1Ym1pdCcpXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cInN1Ym1pdFwiXG4gICAgICAgICAgICAgICAgICAgIFtrY0NsYXNzXT1cIlsna2NCdXR0b25DbGFzcycsICdrY0J1dHRvbkRlZmF1bHRDbGFzcycsICdrY0J1dHRvbkxhcmdlQ2xhc3MnLCAna2NCdXR0b25MYXJnZUNsYXNzJ11cIlxuICAgICAgICAgICAgICAgICAgICBpZD1cImNhbmNlbFRPVFBCdG5cIlxuICAgICAgICAgICAgICAgICAgICBuYW1lPVwiY2FuY2VsLWFpYVwiXG4gICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHt7IGkxOG4ubXNnU3RyKCdkb0NhbmNlbCcpIH19XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cInN1Ym1pdFwiXG4gICAgICAgICAgICAgICAgICAgIFtrY0NsYXNzXT1cIlsna2NCdXR0b25DbGFzcycsICdrY0J1dHRvblByaW1hcnlDbGFzcycsICdrY0J1dHRvbkxhcmdlQ2xhc3MnXVwiXG4gICAgICAgICAgICAgICAgICAgIGlkPVwic2F2ZVRPVFBCdG5cIlxuICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiaTE4bi5tc2dTdHIoJ2RvU3VibWl0JylcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZm9ybT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbjwva2MtbG9naW4tdGVtcGxhdGU+XG4iXX0=
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4tY29uZmlnLXRvdHAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xvZ2luL3BhZ2VzL2xvZ2luLWNvbmZpZy10b3RwL2xvZ2luLWNvbmZpZy10b3RwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9sb2dpbi9wYWdlcy9sb2dpbi1jb25maWctdG90cC9sb2dpbi1jb25maWctdG90cC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQWUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9HLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saURBQWlELENBQUM7QUFDbEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFDNUYsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sNkRBQTZELENBQUM7QUFDM0csT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDbkYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFHbEYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQzs7QUFnQmhGLE1BQU0sT0FBTyx3QkFBeUIsU0FBUSxrQkFBa0I7SUFiaEU7O1FBY0ksY0FBUyxHQUFHLE1BQU0sQ0FBMEQsZ0JBQWdCLENBQUMsQ0FBQztRQUM5RixTQUFJLEdBQUcsTUFBTSxDQUFPLFVBQVUsQ0FBQyxDQUFDO1FBQ3ZCLG9CQUFlLEdBQUcsTUFBTSxDQUFVLGVBQWUsQ0FBQyxDQUFDO1FBQ25ELFlBQU8sR0FBRyxNQUFNLENBQW9DLGFBQWEsQ0FBQyxDQUFDO1FBSzVFLDBCQUFxQixHQUFHLEtBQUssQ0FBQztRQUM5QixnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUNwQixtQkFBYyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBRW5GLGVBQVUsR0FBSSxTQUFTLENBQTJCLFlBQVksQ0FBQyxDQUFDO1FBQ2hFLGFBQVEsR0FBSSxTQUFTLENBQTJCLFVBQVUsQ0FBQyxDQUFDO1FBQzVELHdCQUFtQixHQUFJLFNBQVMsQ0FBMkIscUJBQXFCLENBQUMsQ0FBQztLQUNyRjs4R0FoQlksd0JBQXdCO2tHQUF4Qix3QkFBd0IsbUVBUHRCO1lBQ1A7Z0JBQ0ksT0FBTyxFQUFFLGtCQUFrQjtnQkFDM0IsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQzthQUMxRDtTQUNKLCtZQ3pCTCwwOE1BK0xBLDRDRC9LaUMsZ0JBQWdCLDBGQUFFLGNBQWMsbURBQUUsNEJBQTRCOzsyRkFXbEYsd0JBQXdCO2tCQWJwQyxTQUFTO2lDQUNNLElBQUksV0FDUCxDQUFDLGlCQUFpQixFQUFFLGdCQUFnQixFQUFFLGNBQWMsRUFBRSw0QkFBNEIsQ0FBQyxZQUNsRixzQkFBc0IsbUJBRWYsdUJBQXVCLENBQUMsTUFBTSxhQUNwQzt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsa0JBQWtCOzRCQUMzQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSx5QkFBeUIsQ0FBQzt5QkFDMUQ7cUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBmb3J3YXJkUmVmLCBpbmplY3QsIFRlbXBsYXRlUmVmLCB2aWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEtjU2FuaXRpemVQaXBlIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbGliL3BpcGVzL2tjLXNhbml0aXplJztcbmltcG9ydCB7IFVTRV9ERUZBVUxUX0NTUyB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xpYi90b2tlbnMvdXNlLWRlZmF1bHQtY3NzJztcbmltcG9ydCB7IENvbXBvbmVudFJlZmVyZW5jZSB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL2NsYXNzZXMvY29tcG9uZW50LXJlZmVyZW5jZSc7XG5pbXBvcnQgeyBMb2dvdXRPdGhlclNlc3Npb25zQ29tcG9uZW50IH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vY29tcG9uZW50cy9sb2dvdXQtb3RoZXItc2Vzc2lvbnMnO1xuaW1wb3J0IHsgVGVtcGxhdGVDb21wb25lbnQgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9jb250YWluZXJzL3RlbXBsYXRlJztcbmltcG9ydCB7IEtjQ2xhc3NEaXJlY3RpdmUgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9kaXJlY3RpdmVzL2tjLWNsYXNzJztcbmltcG9ydCB0eXBlIHsgSTE4biB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL2kxOG4nO1xuaW1wb3J0IHR5cGUgeyBLY0NvbnRleHQgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9LY0NvbnRleHQnO1xuaW1wb3J0IHsgTE9HSU5fQ0xBU1NFUyB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL3Rva2Vucy9jbGFzc2VzJztcbmltcG9ydCB7IExPR0lOX0kxOE4gfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi90b2tlbnMvaTE4bic7XG5pbXBvcnQgeyBLQ19MT0dJTl9DT05URVhUIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vdG9rZW5zL2tjLWNvbnRleHQnO1xuaW1wb3J0IHR5cGUgeyBDbGFzc0tleSB9IGZyb20gJ2tleWNsb2FraWZ5L2xvZ2luL2xpYi9rY0Nsc3gnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtUZW1wbGF0ZUNvbXBvbmVudCwgS2NDbGFzc0RpcmVjdGl2ZSwgS2NTYW5pdGl6ZVBpcGUsIExvZ291dE90aGVyU2Vzc2lvbnNDb21wb25lbnRdLFxuICAgIHNlbGVjdG9yOiAna2MtbG9naW4tY29uZmlnLXRvdHAnLFxuICAgIHRlbXBsYXRlVXJsOiAnbG9naW4tY29uZmlnLXRvdHAuY29tcG9uZW50Lmh0bWwnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBDb21wb25lbnRSZWZlcmVuY2UsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBMb2dpbkNvbmZpZ1RvdHBDb21wb25lbnQpXG4gICAgICAgIH1cbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIExvZ2luQ29uZmlnVG90cENvbXBvbmVudCBleHRlbmRzIENvbXBvbmVudFJlZmVyZW5jZSB7XG4gICAga2NDb250ZXh0ID0gaW5qZWN0PEV4dHJhY3Q8S2NDb250ZXh0LCB7IHBhZ2VJZDogJ2xvZ2luLWNvbmZpZy10b3RwLmZ0bCcgfT4+KEtDX0xPR0lOX0NPTlRFWFQpO1xuICAgIGkxOG4gPSBpbmplY3Q8STE4bj4oTE9HSU5fSTE4Tik7XG4gICAgb3ZlcnJpZGUgZG9Vc2VEZWZhdWx0Q3NzID0gaW5qZWN0PGJvb2xlYW4+KFVTRV9ERUZBVUxUX0NTUyk7XG4gICAgb3ZlcnJpZGUgY2xhc3NlcyA9IGluamVjdDxQYXJ0aWFsPFJlY29yZDxDbGFzc0tleSwgc3RyaW5nPj4+KExPR0lOX0NMQVNTRVMpO1xuXG4gICAgZG9jdW1lbnRUaXRsZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIGJvZHlDbGFzc05hbWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAgIGRpc3BsYXlSZXF1aXJlZEZpZWxkcyA9IGZhbHNlO1xuICAgIGRpc3BsYXlJbmZvID0gZmFsc2U7XG4gICAgZGlzcGxheU1lc3NhZ2UgPSAhdGhpcy5rY0NvbnRleHQubWVzc2FnZXNQZXJGaWVsZC5leGlzdHNFcnJvcigndG90cCcsICd1c2VyTGFiZWwnKTtcblxuICAgIGhlYWRlck5vZGU/ID0gdmlld0NoaWxkPFRlbXBsYXRlUmVmPEhUTUxFbGVtZW50Pj4oJ2hlYWRlck5vZGUnKTtcbiAgICBpbmZvTm9kZT8gPSB2aWV3Q2hpbGQ8VGVtcGxhdGVSZWY8SFRNTEVsZW1lbnQ+PignaW5mb05vZGUnKTtcbiAgICBzb2NpYWxQcm92aWRlcnNOb2RlPyA9IHZpZXdDaGlsZDxUZW1wbGF0ZVJlZjxIVE1MRWxlbWVudD4+KCdzb2NpYWxQcm92aWRlcnNOb2RlJyk7XG59XG4iLCJAbGV0IHRvdHAgPSBrY0NvbnRleHQudG90cDtcbkBsZXQgdXJsID0ga2NDb250ZXh0LnVybDtcbkBsZXQgbWVzc2FnZXNQZXJGaWVsZCA9IGtjQ29udGV4dC5tZXNzYWdlc1BlckZpZWxkO1xuQGxldCBtb2RlID0ga2NDb250ZXh0Lm1vZGU7XG5AbGV0IGlzQXBwSW5pdGlhdGVkQWN0aW9uID0ga2NDb250ZXh0LmlzQXBwSW5pdGlhdGVkQWN0aW9uO1xuXG48bmctdGVtcGxhdGUgI2hlYWRlck5vZGU+XG4gICAge3sgaTE4bi5tc2dTdHIoJ2xvZ2luVG90cFN0ZXAxJykgfX1cbjwvbmctdGVtcGxhdGU+XG48b2wgaWQ9XCJrYy10b3RwLXNldHRpbmdzXCI+XG4gICAgPGxpPlxuICAgICAgICA8cD57eyBpMThuLm1zZ1N0cignbG9naW5Ub3RwU3RlcDEnKSB9fTwvcD5cbiAgICAgICAgPHVsIGlkPVwia2MtdG90cC1zdXBwb3J0ZWQtYXBwc1wiPlxuICAgICAgICAgICAgQGZvciAoYXBwIG9mIHRvdHAuc3VwcG9ydGVkQXBwbGljYXRpb25zOyB0cmFjayBhcHApIHtcbiAgICAgICAgICAgICAgICA8bGk+e3sgaTE4bi5hZHZhbmNlZE1zZ1N0cihhcHApIH19PC9saT5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC91bD5cbiAgICA8L2xpPlxuICAgIEBpZiAoa2NDb250ZXh0Lm1vZGUgPT09ICdtYW51YWwnKSB7XG4gICAgICAgIDxsaT5cbiAgICAgICAgICAgIDxwPnt7IGkxOG4ubXNnU3RyKCdsb2dpblRvdHBNYW51YWxTdGVwMicpIH19PC9wPlxuICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgICAgPHNwYW4gaWQ9XCJrYy10b3RwLXNlY3JldC1rZXlcIj57eyB0b3RwLnRvdHBTZWNyZXRFbmNvZGVkIH19PC9zcGFuPlxuICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgaWQ9XCJtb2RlLWJhcmNvZGVcIlxuICAgICAgICAgICAgICAgICAgICBbaHJlZl09XCJ0b3RwLnFyVXJsXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHt7IGkxOG4ubXNnU3RyKCdsb2dpblRvdHBTY2FuQmFyY29kZScpIH19XG4gICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgPC9wPlxuICAgICAgICA8L2xpPlxuICAgICAgICA8bGk+XG4gICAgICAgICAgICA8cD57eyBpMThuLm1zZ1N0cignbG9naW5Ub3RwTWFudWFsU3RlcDMnKSB9fTwvcD5cbiAgICAgICAgICAgIDxwPjwvcD5cbiAgICAgICAgICAgIDx1bD5cbiAgICAgICAgICAgICAgICA8bGkgaWQ9XCJrYy10b3RwLXR5cGVcIj5cbiAgICAgICAgICAgICAgICAgICAge3sgaTE4bi5tc2dTdHIoJ2xvZ2luVG90cFR5cGUnKSB9fTpcbiAgICAgICAgICAgICAgICAgICAge3sgaTE4bi5hZHZhbmNlZE1zZ1N0cignbG9naW5Ub3RwLicgKyB0b3RwLnBvbGljeS50eXBlKSB9fVxuICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgPGxpIGlkPVwia2MtdG90cC1hbGdvcml0aG1cIj5cbiAgICAgICAgICAgICAgICAgICAge3sgaTE4bi5tc2dTdHIoJ2xvZ2luVG90cEFsZ29yaXRobScpIH19OlxuICAgICAgICAgICAgICAgICAgICB7eyB0b3RwLnBvbGljeS5nZXRBbGdvcml0aG1LZXkoKSB9fVxuICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgPGxpIGlkPVwia2MtdG90cC1kaWdpdHNcIj57eyBpMThuLm1zZ1N0cignbG9naW5Ub3RwRGlnaXRzJykgfX06IHt7IHRvdHAucG9saWN5LmRpZ2l0cyB9fTwvbGk+XG4gICAgICAgICAgICAgICAgQGlmICh0b3RwLnBvbGljeS50eXBlID09PSAndG90cCcpIHtcbiAgICAgICAgICAgICAgICAgICAgPGxpIGlkPVwia2MtdG90cC1wZXJpb2RcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGkxOG4ubXNnU3RyKCdsb2dpblRvdHBJbnRlcnZhbCcpIH19OlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgdG90cC5wb2xpY3kucGVyaW9kIH19XG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIDxsaSBpZD1cImtjLXRvdHAtY291bnRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgaTE4bi5tc2dTdHIoJ2xvZ2luVG90cENvdW50ZXInKSB9fTpcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IHRvdHAucG9saWN5LmluaXRpYWxDb3VudGVyIH19XG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC91bD5cbiAgICAgICAgPC9saT5cbiAgICB9IEBlbHNlIHtcbiAgICAgICAgPGxpPlxuICAgICAgICAgICAgPHA+e3sgaTE4bi5tc2dTdHIoJ2xvZ2luVG90cFN0ZXAyJykgfX08L3A+XG4gICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgICAgaWQ9XCJrYy10b3RwLXNlY3JldC1xci1jb2RlXCJcbiAgICAgICAgICAgICAgICBhbHQ9XCJGaWd1cmU6IEJhcmNvZGVcIlxuICAgICAgICAgICAgICAgIFtzcmNdPVwiJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCwgJyArIHRvdHAudG90cFNlY3JldFFyQ29kZVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPGJyIC8+XG4gICAgICAgICAgICA8cD5cbiAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICBpZD1cIm1vZGUtbWFudWFsXCJcbiAgICAgICAgICAgICAgICAgICAgW2hyZWZdPVwidG90cC5tYW51YWxVcmxcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3sgaTE4bi5tc2dTdHIoJ2xvZ2luVG90cFVuYWJsZVRvU2NhbicpIH19XG4gICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgPC9wPlxuICAgICAgICA8L2xpPlxuICAgIH1cbiAgICA8bGk+XG4gICAgICAgIDxwPnt7IGkxOG4ubXNnU3RyKCdsb2dpblRvdHBTdGVwMycpIH19PC9wPlxuICAgICAgICA8cD57eyBpMThuLm1zZ1N0cignbG9naW5Ub3RwU3RlcDNEZXZpY2VOYW1lJykgfX08L3A+XG4gICAgPC9saT5cbjwvb2w+XG48Zm9ybVxuICAgIGlkPVwia2MtdG90cC1zZXR0aW5ncy1mb3JtXCJcbiAgICBtZXRob2Q9XCJwb3N0XCJcbiAgICBbYWN0aW9uXT1cInVybC5sb2dpbkFjdGlvblwiXG4gICAgW2tjQ2xhc3NdPVwiJ2tjRm9ybUNsYXNzJ1wiXG4+XG4gICAgPGRpdiBba2NDbGFzc109XCIna2NGb3JtR3JvdXBDbGFzcydcIj5cbiAgICAgICAgPGRpdiBba2NDbGFzc109XCIna2NJbnB1dFdyYXBwZXJDbGFzcydcIj5cbiAgICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgICAgIGZvcj1cInRvdHBcIlxuICAgICAgICAgICAgICAgIFtrY0NsYXNzXT1cIidrY0xhYmVsQ2xhc3MnXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7eyBpMThuLm1zZ1N0cignYXV0aGVudGljYXRvckNvZGUnKSB9fVxuICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicmVxdWlyZWRcIj4qPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBba2NDbGFzc109XCIna2NJbnB1dFdyYXBwZXJDbGFzcydcIj5cbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICBpZD1cInRvdHBcIlxuICAgICAgICAgICAgICAgIG5hbWU9XCJ0b3RwXCJcbiAgICAgICAgICAgICAgICBhdXRvQ29tcGxldGU9XCJvZmZcIlxuICAgICAgICAgICAgICAgIFtrY0NsYXNzXT1cIidrY0lucHV0Q2xhc3MnXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWludmFsaWRdPVwibWVzc2FnZXNQZXJGaWVsZC5leGlzdHNFcnJvcigndG90cCcpXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICBAaWYgKG1lc3NhZ2VzUGVyRmllbGQuZXhpc3RzRXJyb3IoJ3RvdHAnKSkge1xuICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgIGlkPVwiaW5wdXQtZXJyb3Itb3RwLWNvZGVcIlxuICAgICAgICAgICAgICAgICAgICBhcmlhLWxpdmU9XCJwb2xpdGVcIlxuICAgICAgICAgICAgICAgICAgICBba2NDbGFzc109XCIna2NJbnB1dEVycm9yTWVzc2FnZUNsYXNzJ1wiXG4gICAgICAgICAgICAgICAgICAgIFtpbm5lckhUTUxdPVwibWVzc2FnZXNQZXJGaWVsZC5nZXQoJ3RvdHAnKSB8IGtjU2FuaXRpemU6ICdodG1sJ1wiXG4gICAgICAgICAgICAgICAgPjwvc3Bhbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgdHlwZT1cImhpZGRlblwiXG4gICAgICAgICAgICBpZD1cInRvdHBTZWNyZXRcIlxuICAgICAgICAgICAgbmFtZT1cInRvdHBTZWNyZXRcIlxuICAgICAgICAgICAgW3ZhbHVlXT1cInRvdHAudG90cFNlY3JldFwiXG4gICAgICAgIC8+XG4gICAgICAgIEBpZiAobW9kZSkge1xuICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgdHlwZT1cImhpZGRlblwiXG4gICAgICAgICAgICAgICAgaWQ9XCJtb2RlXCJcbiAgICAgICAgICAgICAgICBbdmFsdWVdPVwibW9kZVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICB9XG4gICAgPC9kaXY+XG4gICAgPGRpdiBba2NDbGFzc109XCIna2NGb3JtR3JvdXBDbGFzcydcIj5cbiAgICAgICAgPGRpdiBba2NDbGFzc109XCIna2NJbnB1dFdyYXBwZXJDbGFzcydcIj5cbiAgICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgICAgIGZvcj1cInVzZXJMYWJlbFwiXG4gICAgICAgICAgICAgICAgW2tjQ2xhc3NdPVwiJ2tjTGFiZWxDbGFzcydcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7IGkxOG4ubXNnU3RyKCdsb2dpblRvdHBEZXZpY2VOYW1lJykgfX1cbiAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICBAaWYgKHRvdHAub3RwQ3JlZGVudGlhbHMubGVuZ3RoID49IDEpIHtcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInJlcXVpcmVkXCI+Kjwvc3Bhbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgW2tjQ2xhc3NdPVwiJ2tjSW5wdXRXcmFwcGVyQ2xhc3MnXCI+XG4gICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgaWQ9XCJ1c2VyTGFiZWxcIlxuICAgICAgICAgICAgICAgIG5hbWU9XCJ1c2VyTGFiZWxcIlxuICAgICAgICAgICAgICAgIGF1dG9Db21wbGV0ZT1cIm9mZlwiXG4gICAgICAgICAgICAgICAgW2tjQ2xhc3NdPVwiJ2tjSW5wdXRDbGFzcydcIlxuICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtaW52YWxpZF09XCJtZXNzYWdlc1BlckZpZWxkLmV4aXN0c0Vycm9yKCd1c2VyTGFiZWwnKVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgQGlmIChtZXNzYWdlc1BlckZpZWxkLmV4aXN0c0Vycm9yKCd1c2VyTGFiZWwnKSkge1xuICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgIGlkPVwiaW5wdXQtZXJyb3Itb3RwLWxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgYXJpYS1saXZlPVwicG9saXRlXCJcbiAgICAgICAgICAgICAgICAgICAgW2tjQ2xhc3NdPVwiJ2tjSW5wdXRFcnJvck1lc3NhZ2VDbGFzcydcIlxuICAgICAgICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cIm1lc3NhZ2VzUGVyRmllbGQuZ2V0KCd1c2VyTGFiZWwnKSB8IGtjU2FuaXRpemU6ICdodG1sJ1wiXG4gICAgICAgICAgICAgICAgPjwvc3Bhbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBba2NDbGFzc109XCIna2NGb3JtR3JvdXBDbGFzcydcIj5cbiAgICAgICAgPGtjLWxvZ291dC1vdGhlci1zZXNzaW9ucyAvPlxuICAgIDwvZGl2PlxuXG4gICAgQGlmIChpc0FwcEluaXRpYXRlZEFjdGlvbikge1xuICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICAgICAgaWQ9XCJzYXZlVE9UUEJ0blwiXG4gICAgICAgICAgICBba2NDbGFzc109XCJbJ2tjQnV0dG9uQ2xhc3MnLCAna2NCdXR0b25QcmltYXJ5Q2xhc3MnLCAna2NCdXR0b25MYXJnZUNsYXNzJ11cIlxuICAgICAgICAgICAgW3ZhbHVlXT1cImkxOG4ubXNnU3RyKCdkb1N1Ym1pdCcpXCJcbiAgICAgICAgLz5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgdHlwZT1cInN1Ym1pdFwiXG4gICAgICAgICAgICBpZD1cImNhbmNlbFRPVFBCdG5cIlxuICAgICAgICAgICAgbmFtZT1cImNhbmNlbC1haWFcIlxuICAgICAgICAgICAgW2tjQ2xhc3NdPVwiWydrY0J1dHRvbkNsYXNzJywgJ2tjQnV0dG9uRGVmYXVsdENsYXNzJywgJ2tjQnV0dG9uTGFyZ2VDbGFzcycsICdrY0J1dHRvbkxhcmdlQ2xhc3MnXVwiXG4gICAgICAgICAgICBbdmFsdWVdPVwidHJ1ZVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIHt7IGkxOG4ubXNnU3RyKCdkb0NhbmNlbCcpIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgIH0gQGVsc2Uge1xuICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICAgICAgaWQ9XCJzYXZlVE9UUEJ0blwiXG4gICAgICAgICAgICBba2NDbGFzc109XCJbJ2tjQnV0dG9uQ2xhc3MnLCAna2NCdXR0b25QcmltYXJ5Q2xhc3MnLCAna2NCdXR0b25MYXJnZUNsYXNzJ11cIlxuICAgICAgICAgICAgW3ZhbHVlXT1cImkxOG4ubXNnU3RyKCdkb1N1Ym1pdCcpXCJcbiAgICAgICAgLz5cbiAgICB9XG48L2Zvcm0+XG4iXX0=
@@ -1,9 +1,7 @@
1
- import { ChangeDetectionStrategy, Component, forwardRef, inject, input } from '@angular/core';
2
- import { USE_DEFAULT_CSS } from '@keycloakify/angular/lib/tokens/use-default-css';
1
+ import { ChangeDetectionStrategy, Component, forwardRef, inject, viewChild } from '@angular/core';
3
2
  import { ComponentReference } from '@keycloakify/angular/login/classes/component-reference';
4
3
  import { TemplateComponent } from '@keycloakify/angular/login/containers/template';
5
4
  import { KcClassDirective } from '@keycloakify/angular/login/directives/kc-class';
6
- import { LOGIN_CLASSES } from '@keycloakify/angular/login/tokens/classes';
7
5
  import { LOGIN_I18N } from '@keycloakify/angular/login/tokens/i18n';
8
6
  import { KC_LOGIN_CONTEXT } from '@keycloakify/angular/login/tokens/kc-context';
9
7
  import * as i0 from "@angular/core";
@@ -12,29 +10,28 @@ export class LoginIdpLinkConfirmComponent extends ComponentReference {
12
10
  super(...arguments);
13
11
  this.kcContext = inject(KC_LOGIN_CONTEXT);
14
12
  this.i18n = inject(LOGIN_I18N);
15
- this.doUseDefaultCss = inject(USE_DEFAULT_CSS);
16
- this.classes = inject(LOGIN_CLASSES);
17
- this.displayRequiredFields = input(false);
18
- this.documentTitle = input();
19
- this.bodyClassName = input();
13
+ this.displayRequiredFields = false;
20
14
  this.displayInfo = false;
21
- this.displayMessage = false;
15
+ this.displayMessage = !this.kcContext.messagesPerField.existsError('totp', 'userLabel');
16
+ this.headerNode = viewChild('headerNode');
17
+ this.infoNode = viewChild('infoNode');
18
+ this.socialProvidersNode = viewChild('socialProvidersNode');
22
19
  }
23
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: LoginIdpLinkConfirmComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
24
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.6", type: LoginIdpLinkConfirmComponent, isStandalone: true, selector: "kc-root", inputs: { displayRequiredFields: { classPropertyName: "displayRequiredFields", publicName: "displayRequiredFields", isSignal: true, isRequired: false, transformFunction: null }, documentTitle: { classPropertyName: "documentTitle", publicName: "documentTitle", isSignal: true, isRequired: false, transformFunction: null }, bodyClassName: { classPropertyName: "bodyClassName", publicName: "bodyClassName", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
20
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: LoginIdpLinkConfirmComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
21
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.7", type: LoginIdpLinkConfirmComponent, isStandalone: true, selector: "kc-login-idp-link-confirm", providers: [
25
22
  {
26
23
  provide: ComponentReference,
27
24
  useExisting: forwardRef(() => LoginIdpLinkConfirmComponent)
28
25
  }
29
- ], usesInheritance: true, ngImport: i0, template: "@let url = kcContext.url;\n@let idpAlias = kcContext.idpAlias;\n<kc-login-template\n [displayInfo]=\"displayInfo\"\n [bodyClassName]=\"bodyClassName()\"\n [displayMessage]=\"displayMessage\"\n [displayRequiredFields]=\"displayRequiredFields()\"\n [documentTitle]=\"documentTitle()\"\n>\n <ng-container headerNode>\n {{ i18n.msgStr('confirmLinkIdpTitle') }}\n </ng-container>\n <ng-container content>\n <form\n id=\"kc-register-form\"\n [action]=\"url.loginAction\"\n method=\"post\"\n >\n <div [kcClass]=\"'kcFormGroupClass'\">\n <button\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonDefaultClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n name=\"submitAction\"\n id=\"updateProfile\"\n value=\"updateProfile\"\n >\n {{ i18n.msgStr('confirmLinkIdpReviewProfile') }}\n </button>\n <button\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonDefaultClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n name=\"submitAction\"\n id=\"linkAccount\"\n value=\"linkAccount\"\n >\n {{ i18n.msgStr('confirmLinkIdpContinue', idpAlias) }}\n </button>\n </div>\n </form>\n </ng-container>\n</kc-login-template>\n", dependencies: [{ kind: "component", type: TemplateComponent, selector: "kc-login-template", inputs: ["displayInfo", "displayMessage", "displayRequiredFields", "documentTitle", "bodyClassName"] }, { kind: "directive", type: KcClassDirective, selector: "[kcClass]", inputs: ["class", "ngClass", "kcClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
26
+ ], viewQueries: [{ propertyName: "headerNode", first: true, predicate: ["headerNode"], descendants: true, isSignal: true }, { propertyName: "infoNode", first: true, predicate: ["infoNode"], descendants: true, isSignal: true }, { propertyName: "socialProvidersNode", first: true, predicate: ["socialProvidersNode"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "@let url = kcContext.url;\n@let idpAlias = kcContext.idpAlias;\n<ng-template #headerNode>\n {{ i18n.msgStr('confirmLinkIdpTitle') }}\n</ng-template>\n<form\n id=\"kc-register-form\"\n method=\"post\"\n [action]=\"url.loginAction\"\n>\n <div [kcClass]=\"'kcFormGroupClass'\">\n <button\n type=\"submit\"\n name=\"submitAction\"\n id=\"updateProfile\"\n value=\"updateProfile\"\n [kcClass]=\"['kcButtonClass', 'kcButtonDefaultClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n >\n {{ i18n.msgStr('confirmLinkIdpReviewProfile') }}\n </button>\n <button\n type=\"submit\"\n name=\"submitAction\"\n id=\"linkAccount\"\n value=\"linkAccount\"\n [kcClass]=\"['kcButtonClass', 'kcButtonDefaultClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n >\n {{ i18n.msgStr('confirmLinkIdpContinue', idpAlias) }}\n </button>\n </div>\n</form>\n", dependencies: [{ kind: "directive", type: KcClassDirective, selector: "[kcClass]", inputs: ["class", "ngClass", "kcClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
30
27
  }
31
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: LoginIdpLinkConfirmComponent, decorators: [{
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: LoginIdpLinkConfirmComponent, decorators: [{
32
29
  type: Component,
33
- args: [{ standalone: true, imports: [TemplateComponent, KcClassDirective], selector: 'kc-root', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
30
+ args: [{ standalone: true, imports: [TemplateComponent, KcClassDirective], selector: 'kc-login-idp-link-confirm', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
34
31
  {
35
32
  provide: ComponentReference,
36
33
  useExisting: forwardRef(() => LoginIdpLinkConfirmComponent)
37
34
  }
38
- ], template: "@let url = kcContext.url;\n@let idpAlias = kcContext.idpAlias;\n<kc-login-template\n [displayInfo]=\"displayInfo\"\n [bodyClassName]=\"bodyClassName()\"\n [displayMessage]=\"displayMessage\"\n [displayRequiredFields]=\"displayRequiredFields()\"\n [documentTitle]=\"documentTitle()\"\n>\n <ng-container headerNode>\n {{ i18n.msgStr('confirmLinkIdpTitle') }}\n </ng-container>\n <ng-container content>\n <form\n id=\"kc-register-form\"\n [action]=\"url.loginAction\"\n method=\"post\"\n >\n <div [kcClass]=\"'kcFormGroupClass'\">\n <button\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonDefaultClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n name=\"submitAction\"\n id=\"updateProfile\"\n value=\"updateProfile\"\n >\n {{ i18n.msgStr('confirmLinkIdpReviewProfile') }}\n </button>\n <button\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonDefaultClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n name=\"submitAction\"\n id=\"linkAccount\"\n value=\"linkAccount\"\n >\n {{ i18n.msgStr('confirmLinkIdpContinue', idpAlias) }}\n </button>\n </div>\n </form>\n </ng-container>\n</kc-login-template>\n" }]
35
+ ], template: "@let url = kcContext.url;\n@let idpAlias = kcContext.idpAlias;\n<ng-template #headerNode>\n {{ i18n.msgStr('confirmLinkIdpTitle') }}\n</ng-template>\n<form\n id=\"kc-register-form\"\n method=\"post\"\n [action]=\"url.loginAction\"\n>\n <div [kcClass]=\"'kcFormGroupClass'\">\n <button\n type=\"submit\"\n name=\"submitAction\"\n id=\"updateProfile\"\n value=\"updateProfile\"\n [kcClass]=\"['kcButtonClass', 'kcButtonDefaultClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n >\n {{ i18n.msgStr('confirmLinkIdpReviewProfile') }}\n </button>\n <button\n type=\"submit\"\n name=\"submitAction\"\n id=\"linkAccount\"\n value=\"linkAccount\"\n [kcClass]=\"['kcButtonClass', 'kcButtonDefaultClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n >\n {{ i18n.msgStr('confirmLinkIdpContinue', idpAlias) }}\n </button>\n </div>\n</form>\n" }]
39
36
  }] });
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4taWRwLWxpbmstY29uZmlybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbG9naW4vcGFnZXMvbG9naW4taWRwLWxpbmstY29uZmlybS9sb2dpbi1pZHAtbGluay1jb25maXJtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9sb2dpbi9wYWdlcy9sb2dpbi1pZHAtbGluay1jb25maXJtL2xvZ2luLWlkcC1saW5rLWNvbmZpcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saURBQWlELENBQUM7QUFDbEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFDNUYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDbkYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDbEYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQzs7QUFrQmhGLE1BQU0sT0FBTyw0QkFBNkIsU0FBUSxrQkFBa0I7SUFicEU7O1FBY0ksY0FBUyxHQUFHLE1BQU0sQ0FBK0QsZ0JBQWdCLENBQUMsQ0FBQztRQUNuRyxTQUFJLEdBQUcsTUFBTSxDQUFPLFVBQVUsQ0FBQyxDQUFDO1FBQ3ZCLG9CQUFlLEdBQUcsTUFBTSxDQUFVLGVBQWUsQ0FBQyxDQUFDO1FBQ25ELFlBQU8sR0FBRyxNQUFNLENBQW9DLGFBQWEsQ0FBQyxDQUFDO1FBQzVFLDBCQUFxQixHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyQyxrQkFBYSxHQUFHLEtBQUssRUFBVSxDQUFDO1FBQ2hDLGtCQUFhLEdBQUcsS0FBSyxFQUFVLENBQUM7UUFDaEMsZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFDN0IsbUJBQWMsR0FBWSxLQUFLLENBQUM7S0FDbkM7OEdBVlksNEJBQTRCO2tHQUE1Qiw0QkFBNEIsMGdCQVAxQjtZQUNQO2dCQUNJLE9BQU8sRUFBRSxrQkFBa0I7Z0JBQzNCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsNEJBQTRCLENBQUM7YUFDOUQ7U0FDSixpREN2QkwsdWhEQXlDQSw0Q0QzQmMsaUJBQWlCLG9LQUFFLGdCQUFnQjs7MkZBV3BDLDRCQUE0QjtrQkFieEMsU0FBUztpQ0FDTSxJQUFJLFdBQ1AsQ0FBQyxpQkFBaUIsRUFBRSxnQkFBZ0IsQ0FBQyxZQUNwQyxTQUFTLG1CQUVGLHVCQUF1QixDQUFDLE1BQU0sYUFDcEM7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLGtCQUFrQjs0QkFDM0IsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsNkJBQTZCLENBQUM7eUJBQzlEO3FCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgZm9yd2FyZFJlZiwgaW5qZWN0LCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVVNFX0RFRkFVTFRfQ1NTIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbGliL3Rva2Vucy91c2UtZGVmYXVsdC1jc3MnO1xuaW1wb3J0IHsgQ29tcG9uZW50UmVmZXJlbmNlIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vY2xhc3Nlcy9jb21wb25lbnQtcmVmZXJlbmNlJztcbmltcG9ydCB7IFRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vY29udGFpbmVycy90ZW1wbGF0ZSc7XG5pbXBvcnQgeyBLY0NsYXNzRGlyZWN0aXZlIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vZGlyZWN0aXZlcy9rYy1jbGFzcyc7XG5pbXBvcnQgeyBMT0dJTl9DTEFTU0VTIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vdG9rZW5zL2NsYXNzZXMnO1xuaW1wb3J0IHsgTE9HSU5fSTE4TiB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL3Rva2Vucy9pMThuJztcbmltcG9ydCB7IEtDX0xPR0lOX0NPTlRFWFQgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi90b2tlbnMva2MtY29udGV4dCc7XG5pbXBvcnQgdHlwZSB7IENsYXNzS2V5IH0gZnJvbSAna2V5Y2xvYWtpZnkvbG9naW4vbGliL2tjQ2xzeCc7XG5pbXBvcnQgdHlwZSB7IEkxOG4gfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9pMThuJztcbmltcG9ydCB0eXBlIHsgS2NDb250ZXh0IH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vS2NDb250ZXh0JztcblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbVGVtcGxhdGVDb21wb25lbnQsIEtjQ2xhc3NEaXJlY3RpdmVdLFxuICAgIHNlbGVjdG9yOiAna2Mtcm9vdCcsXG4gICAgdGVtcGxhdGVVcmw6ICdsb2dpbi1pZHAtbGluay1jb25maXJtLmNvbXBvbmVudC5odG1sJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogQ29tcG9uZW50UmVmZXJlbmNlLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gTG9naW5JZHBMaW5rQ29uZmlybUNvbXBvbmVudClcbiAgICAgICAgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgTG9naW5JZHBMaW5rQ29uZmlybUNvbXBvbmVudCBleHRlbmRzIENvbXBvbmVudFJlZmVyZW5jZSB7XG4gICAga2NDb250ZXh0ID0gaW5qZWN0PEV4dHJhY3Q8S2NDb250ZXh0LCB7IHBhZ2VJZDogJ2xvZ2luLWlkcC1saW5rLWNvbmZpcm0uZnRsJyB9Pj4oS0NfTE9HSU5fQ09OVEVYVCk7XG4gICAgaTE4biA9IGluamVjdDxJMThuPihMT0dJTl9JMThOKTtcbiAgICBvdmVycmlkZSBkb1VzZURlZmF1bHRDc3MgPSBpbmplY3Q8Ym9vbGVhbj4oVVNFX0RFRkFVTFRfQ1NTKTtcbiAgICBvdmVycmlkZSBjbGFzc2VzID0gaW5qZWN0PFBhcnRpYWw8UmVjb3JkPENsYXNzS2V5LCBzdHJpbmc+Pj4oTE9HSU5fQ0xBU1NFUyk7XG4gICAgZGlzcGxheVJlcXVpcmVkRmllbGRzID0gaW5wdXQoZmFsc2UpO1xuICAgIGRvY3VtZW50VGl0bGUgPSBpbnB1dDxzdHJpbmc+KCk7XG4gICAgYm9keUNsYXNzTmFtZSA9IGlucHV0PHN0cmluZz4oKTtcbiAgICBkaXNwbGF5SW5mbzogYm9vbGVhbiA9IGZhbHNlO1xuICAgIGRpc3BsYXlNZXNzYWdlOiBib29sZWFuID0gZmFsc2U7XG59XG4iLCJAbGV0IHVybCA9IGtjQ29udGV4dC51cmw7XG5AbGV0IGlkcEFsaWFzID0ga2NDb250ZXh0LmlkcEFsaWFzO1xuPGtjLWxvZ2luLXRlbXBsYXRlXG4gICAgW2Rpc3BsYXlJbmZvXT1cImRpc3BsYXlJbmZvXCJcbiAgICBbYm9keUNsYXNzTmFtZV09XCJib2R5Q2xhc3NOYW1lKClcIlxuICAgIFtkaXNwbGF5TWVzc2FnZV09XCJkaXNwbGF5TWVzc2FnZVwiXG4gICAgW2Rpc3BsYXlSZXF1aXJlZEZpZWxkc109XCJkaXNwbGF5UmVxdWlyZWRGaWVsZHMoKVwiXG4gICAgW2RvY3VtZW50VGl0bGVdPVwiZG9jdW1lbnRUaXRsZSgpXCJcbj5cbiAgICA8bmctY29udGFpbmVyIGhlYWRlck5vZGU+XG4gICAgICAgIHt7IGkxOG4ubXNnU3RyKCdjb25maXJtTGlua0lkcFRpdGxlJykgfX1cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyIGNvbnRlbnQ+XG4gICAgICAgIDxmb3JtXG4gICAgICAgICAgICBpZD1cImtjLXJlZ2lzdGVyLWZvcm1cIlxuICAgICAgICAgICAgW2FjdGlvbl09XCJ1cmwubG9naW5BY3Rpb25cIlxuICAgICAgICAgICAgbWV0aG9kPVwicG9zdFwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxkaXYgW2tjQ2xhc3NdPVwiJ2tjRm9ybUdyb3VwQ2xhc3MnXCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwic3VibWl0XCJcbiAgICAgICAgICAgICAgICAgICAgW2tjQ2xhc3NdPVwiWydrY0J1dHRvbkNsYXNzJywgJ2tjQnV0dG9uRGVmYXVsdENsYXNzJywgJ2tjQnV0dG9uQmxvY2tDbGFzcycsICdrY0J1dHRvbkxhcmdlQ2xhc3MnXVwiXG4gICAgICAgICAgICAgICAgICAgIG5hbWU9XCJzdWJtaXRBY3Rpb25cIlxuICAgICAgICAgICAgICAgICAgICBpZD1cInVwZGF0ZVByb2ZpbGVcIlxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cInVwZGF0ZVByb2ZpbGVcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3sgaTE4bi5tc2dTdHIoJ2NvbmZpcm1MaW5rSWRwUmV2aWV3UHJvZmlsZScpIH19XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwic3VibWl0XCJcbiAgICAgICAgICAgICAgICAgICAgW2tjQ2xhc3NdPVwiWydrY0J1dHRvbkNsYXNzJywgJ2tjQnV0dG9uRGVmYXVsdENsYXNzJywgJ2tjQnV0dG9uQmxvY2tDbGFzcycsICdrY0J1dHRvbkxhcmdlQ2xhc3MnXVwiXG4gICAgICAgICAgICAgICAgICAgIG5hbWU9XCJzdWJtaXRBY3Rpb25cIlxuICAgICAgICAgICAgICAgICAgICBpZD1cImxpbmtBY2NvdW50XCJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU9XCJsaW5rQWNjb3VudFwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7eyBpMThuLm1zZ1N0cignY29uZmlybUxpbmtJZHBDb250aW51ZScsIGlkcEFsaWFzKSB9fVxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZm9ybT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbjwva2MtbG9naW4tdGVtcGxhdGU+XG4iXX0=
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4taWRwLWxpbmstY29uZmlybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbG9naW4vcGFnZXMvbG9naW4taWRwLWxpbmstY29uZmlybS9sb2dpbi1pZHAtbGluay1jb25maXJtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9sb2dpbi9wYWdlcy9sb2dpbi1pZHAtbGluay1jb25maXJtL2xvZ2luLWlkcC1saW5rLWNvbmZpcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFlLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUM1RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUNuRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUdsRixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDcEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOENBQThDLENBQUM7O0FBZWhGLE1BQU0sT0FBTyw0QkFBNkIsU0FBUSxrQkFBa0I7SUFicEU7O1FBY0ksY0FBUyxHQUFHLE1BQU0sQ0FBK0QsZ0JBQWdCLENBQUMsQ0FBQztRQUNuRyxTQUFJLEdBQUcsTUFBTSxDQUFPLFVBQVUsQ0FBQyxDQUFDO1FBS2hDLDBCQUFxQixHQUFHLEtBQUssQ0FBQztRQUM5QixnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUNwQixtQkFBYyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBRW5GLGVBQVUsR0FBSSxTQUFTLENBQTJCLFlBQVksQ0FBQyxDQUFDO1FBQ2hFLGFBQVEsR0FBSSxTQUFTLENBQTJCLFVBQVUsQ0FBQyxDQUFDO1FBQzVELHdCQUFtQixHQUFJLFNBQVMsQ0FBMkIscUJBQXFCLENBQUMsQ0FBQztLQUNyRjs4R0FkWSw0QkFBNEI7a0dBQTVCLDRCQUE0Qix3RUFQMUI7WUFDUDtnQkFDSSxPQUFPLEVBQUUsa0JBQWtCO2dCQUMzQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLDRCQUE0QixDQUFDO2FBQzlEO1NBQ0osK1lDcEJMLHFnQ0ErQkEsNENEcEJpQyxnQkFBZ0I7OzJGQVdwQyw0QkFBNEI7a0JBYnhDLFNBQVM7aUNBQ00sSUFBSSxXQUNQLENBQUMsaUJBQWlCLEVBQUUsZ0JBQWdCLENBQUMsWUFDcEMsMkJBQTJCLG1CQUVwQix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSxrQkFBa0I7NEJBQzNCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLDZCQUE2QixDQUFDO3lCQUM5RDtxQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGZvcndhcmRSZWYsIGluamVjdCwgVGVtcGxhdGVSZWYsIHZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tcG9uZW50UmVmZXJlbmNlIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vY2xhc3Nlcy9jb21wb25lbnQtcmVmZXJlbmNlJztcbmltcG9ydCB7IFRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vY29udGFpbmVycy90ZW1wbGF0ZSc7XG5pbXBvcnQgeyBLY0NsYXNzRGlyZWN0aXZlIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vZGlyZWN0aXZlcy9rYy1jbGFzcyc7XG5pbXBvcnQgdHlwZSB7IEkxOG4gfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9pMThuJztcbmltcG9ydCB0eXBlIHsgS2NDb250ZXh0IH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vS2NDb250ZXh0JztcbmltcG9ydCB7IExPR0lOX0kxOE4gfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi90b2tlbnMvaTE4bic7XG5pbXBvcnQgeyBLQ19MT0dJTl9DT05URVhUIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vdG9rZW5zL2tjLWNvbnRleHQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtUZW1wbGF0ZUNvbXBvbmVudCwgS2NDbGFzc0RpcmVjdGl2ZV0sXG4gICAgc2VsZWN0b3I6ICdrYy1sb2dpbi1pZHAtbGluay1jb25maXJtJyxcbiAgICB0ZW1wbGF0ZVVybDogJ2xvZ2luLWlkcC1saW5rLWNvbmZpcm0uY29tcG9uZW50Lmh0bWwnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBDb21wb25lbnRSZWZlcmVuY2UsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBMb2dpbklkcExpbmtDb25maXJtQ29tcG9uZW50KVxuICAgICAgICB9XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBMb2dpbklkcExpbmtDb25maXJtQ29tcG9uZW50IGV4dGVuZHMgQ29tcG9uZW50UmVmZXJlbmNlIHtcbiAgICBrY0NvbnRleHQgPSBpbmplY3Q8RXh0cmFjdDxLY0NvbnRleHQsIHsgcGFnZUlkOiAnbG9naW4taWRwLWxpbmstY29uZmlybS5mdGwnIH0+PihLQ19MT0dJTl9DT05URVhUKTtcbiAgICBpMThuID0gaW5qZWN0PEkxOG4+KExPR0lOX0kxOE4pO1xuXG4gICAgZG9jdW1lbnRUaXRsZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIGJvZHlDbGFzc05hbWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAgIGRpc3BsYXlSZXF1aXJlZEZpZWxkcyA9IGZhbHNlO1xuICAgIGRpc3BsYXlJbmZvID0gZmFsc2U7XG4gICAgZGlzcGxheU1lc3NhZ2UgPSAhdGhpcy5rY0NvbnRleHQubWVzc2FnZXNQZXJGaWVsZC5leGlzdHNFcnJvcigndG90cCcsICd1c2VyTGFiZWwnKTtcblxuICAgIGhlYWRlck5vZGU/ID0gdmlld0NoaWxkPFRlbXBsYXRlUmVmPEhUTUxFbGVtZW50Pj4oJ2hlYWRlck5vZGUnKTtcbiAgICBpbmZvTm9kZT8gPSB2aWV3Q2hpbGQ8VGVtcGxhdGVSZWY8SFRNTEVsZW1lbnQ+PignaW5mb05vZGUnKTtcbiAgICBzb2NpYWxQcm92aWRlcnNOb2RlPyA9IHZpZXdDaGlsZDxUZW1wbGF0ZVJlZjxIVE1MRWxlbWVudD4+KCdzb2NpYWxQcm92aWRlcnNOb2RlJyk7XG59XG4iLCJAbGV0IHVybCA9IGtjQ29udGV4dC51cmw7XG5AbGV0IGlkcEFsaWFzID0ga2NDb250ZXh0LmlkcEFsaWFzO1xuPG5nLXRlbXBsYXRlICNoZWFkZXJOb2RlPlxuICAgIHt7IGkxOG4ubXNnU3RyKCdjb25maXJtTGlua0lkcFRpdGxlJykgfX1cbjwvbmctdGVtcGxhdGU+XG48Zm9ybVxuICAgIGlkPVwia2MtcmVnaXN0ZXItZm9ybVwiXG4gICAgbWV0aG9kPVwicG9zdFwiXG4gICAgW2FjdGlvbl09XCJ1cmwubG9naW5BY3Rpb25cIlxuPlxuICAgIDxkaXYgW2tjQ2xhc3NdPVwiJ2tjRm9ybUdyb3VwQ2xhc3MnXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICAgICAgbmFtZT1cInN1Ym1pdEFjdGlvblwiXG4gICAgICAgICAgICBpZD1cInVwZGF0ZVByb2ZpbGVcIlxuICAgICAgICAgICAgdmFsdWU9XCJ1cGRhdGVQcm9maWxlXCJcbiAgICAgICAgICAgIFtrY0NsYXNzXT1cIlsna2NCdXR0b25DbGFzcycsICdrY0J1dHRvbkRlZmF1bHRDbGFzcycsICdrY0J1dHRvbkJsb2NrQ2xhc3MnLCAna2NCdXR0b25MYXJnZUNsYXNzJ11cIlxuICAgICAgICA+XG4gICAgICAgICAgICB7eyBpMThuLm1zZ1N0cignY29uZmlybUxpbmtJZHBSZXZpZXdQcm9maWxlJykgfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICAgICAgbmFtZT1cInN1Ym1pdEFjdGlvblwiXG4gICAgICAgICAgICBpZD1cImxpbmtBY2NvdW50XCJcbiAgICAgICAgICAgIHZhbHVlPVwibGlua0FjY291bnRcIlxuICAgICAgICAgICAgW2tjQ2xhc3NdPVwiWydrY0J1dHRvbkNsYXNzJywgJ2tjQnV0dG9uRGVmYXVsdENsYXNzJywgJ2tjQnV0dG9uQmxvY2tDbGFzcycsICdrY0J1dHRvbkxhcmdlQ2xhc3MnXVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIHt7IGkxOG4ubXNnU3RyKCdjb25maXJtTGlua0lkcENvbnRpbnVlJywgaWRwQWxpYXMpIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuPC9mb3JtPlxuIl19
@@ -1,10 +1,8 @@
1
- import { ChangeDetectionStrategy, Component, forwardRef, inject, input } from '@angular/core';
2
- import { USE_DEFAULT_CSS } from '@keycloakify/angular/lib/tokens/use-default-css';
1
+ import { ChangeDetectionStrategy, Component, forwardRef, inject, viewChild } from '@angular/core';
3
2
  import { ComponentReference } from '@keycloakify/angular/login/classes/component-reference';
4
3
  import { TemplateComponent } from '@keycloakify/angular/login/containers/template';
5
4
  import { KcClassDirective } from '@keycloakify/angular/login/directives/kc-class';
6
5
  import { LOGIN_I18N } from '@keycloakify/angular/login/tokens/i18n';
7
- import { LOGIN_CLASSES } from '@keycloakify/angular/login/tokens/classes';
8
6
  import { KC_LOGIN_CONTEXT } from '@keycloakify/angular/login/tokens/kc-context';
9
7
  import * as i0 from "@angular/core";
10
8
  export class LoginIdpLinkConfirmOverrideComponent extends ComponentReference {
@@ -12,29 +10,28 @@ export class LoginIdpLinkConfirmOverrideComponent extends ComponentReference {
12
10
  super(...arguments);
13
11
  this.kcContext = inject(KC_LOGIN_CONTEXT);
14
12
  this.i18n = inject(LOGIN_I18N);
15
- this.doUseDefaultCss = inject(USE_DEFAULT_CSS);
16
- this.classes = inject(LOGIN_CLASSES);
17
- this.displayRequiredFields = input(false);
18
- this.documentTitle = input();
19
- this.bodyClassName = input();
13
+ this.displayRequiredFields = false;
20
14
  this.displayInfo = false;
21
- this.displayMessage = false;
15
+ this.displayMessage = !this.kcContext.messagesPerField.existsError('totp', 'userLabel');
16
+ this.headerNode = viewChild('headerNode');
17
+ this.infoNode = viewChild('infoNode');
18
+ this.socialProvidersNode = viewChild('socialProvidersNode');
22
19
  }
23
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: LoginIdpLinkConfirmOverrideComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
24
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.6", type: LoginIdpLinkConfirmOverrideComponent, isStandalone: true, selector: "kc-root", inputs: { displayRequiredFields: { classPropertyName: "displayRequiredFields", publicName: "displayRequiredFields", isSignal: true, isRequired: false, transformFunction: null }, documentTitle: { classPropertyName: "documentTitle", publicName: "documentTitle", isSignal: true, isRequired: false, transformFunction: null }, bodyClassName: { classPropertyName: "bodyClassName", publicName: "bodyClassName", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
20
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: LoginIdpLinkConfirmOverrideComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
21
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.7", type: LoginIdpLinkConfirmOverrideComponent, isStandalone: true, selector: "kc-login-idp-link-confirm-override", providers: [
25
22
  {
26
23
  provide: ComponentReference,
27
24
  useExisting: forwardRef(() => LoginIdpLinkConfirmOverrideComponent)
28
25
  }
29
- ], usesInheritance: true, ngImport: i0, template: "@let url = kcContext.url;\n@let idpDisplayName = kcContext.idpDisplayName;\n\n<kc-login-template\n [displayInfo]=\"displayInfo\"\n [bodyClassName]=\"bodyClassName()\"\n [displayMessage]=\"displayMessage\"\n [displayRequiredFields]=\"displayRequiredFields()\"\n [documentTitle]=\"documentTitle()\"\n>\n <ng-container headerNode>\n {{ i18n.msgStr('confirmOverrideIdpTitle') }}\n </ng-container>\n <ng-container content>\n <form\n id=\"kc-register-form\"\n [action]=\"url.loginAction\"\n method=\"post\"\n >\n {{ i18n.msgStr('pageExpiredMsg1') }}\n <a\n id=\"loginRestartLink\"\n [href]=\"url.loginRestartFlowUrl\"\n >\n {{ i18n.msgStr('doClickHere') }}\n </a>\n <br />\n <br />\n <button\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonDefaultClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n name=\"submitAction\"\n id=\"confirmOverride\"\n value=\"confirmOverride\"\n >\n {{ i18n.msgStr('confirmOverrideIdpContinue', idpDisplayName) }}\n </button>\n </form>\n </ng-container>\n</kc-login-template>\n", dependencies: [{ kind: "directive", type: KcClassDirective, selector: "[kcClass]", inputs: ["class", "ngClass", "kcClass"] }, { kind: "component", type: TemplateComponent, selector: "kc-login-template", inputs: ["displayInfo", "displayMessage", "displayRequiredFields", "documentTitle", "bodyClassName"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
26
+ ], viewQueries: [{ propertyName: "headerNode", first: true, predicate: ["headerNode"], descendants: true, isSignal: true }, { propertyName: "infoNode", first: true, predicate: ["infoNode"], descendants: true, isSignal: true }, { propertyName: "socialProvidersNode", first: true, predicate: ["socialProvidersNode"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "@let url = kcContext.url;\n@let idpDisplayName = kcContext.idpDisplayName;\n\n<ng-template #headerNode>\n {{ i18n.msgStr('confirmOverrideIdpTitle') }}\n</ng-template>\n<form\n id=\"kc-register-form\"\n method=\"post\"\n [action]=\"url.loginAction\"\n>\n {{ i18n.msgStr('pageExpiredMsg1') }}\n <a\n id=\"loginRestartLink\"\n [href]=\"url.loginRestartFlowUrl\"\n >\n {{ i18n.msgStr('doClickHere') }}\n </a>\n <br />\n <br />\n <button\n type=\"submit\"\n name=\"submitAction\"\n id=\"confirmOverride\"\n value=\"confirmOverride\"\n [kcClass]=\"['kcButtonClass', 'kcButtonDefaultClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n >\n {{ i18n.msgStr('confirmOverrideIdpContinue', idpDisplayName) }}\n </button>\n</form>\n", dependencies: [{ kind: "directive", type: KcClassDirective, selector: "[kcClass]", inputs: ["class", "ngClass", "kcClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
30
27
  }
31
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: LoginIdpLinkConfirmOverrideComponent, decorators: [{
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: LoginIdpLinkConfirmOverrideComponent, decorators: [{
32
29
  type: Component,
33
- args: [{ standalone: true, imports: [KcClassDirective, TemplateComponent], selector: 'kc-root', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
30
+ args: [{ standalone: true, imports: [KcClassDirective, TemplateComponent], selector: 'kc-login-idp-link-confirm-override', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
34
31
  {
35
32
  provide: ComponentReference,
36
33
  useExisting: forwardRef(() => LoginIdpLinkConfirmOverrideComponent)
37
34
  }
38
- ], template: "@let url = kcContext.url;\n@let idpDisplayName = kcContext.idpDisplayName;\n\n<kc-login-template\n [displayInfo]=\"displayInfo\"\n [bodyClassName]=\"bodyClassName()\"\n [displayMessage]=\"displayMessage\"\n [displayRequiredFields]=\"displayRequiredFields()\"\n [documentTitle]=\"documentTitle()\"\n>\n <ng-container headerNode>\n {{ i18n.msgStr('confirmOverrideIdpTitle') }}\n </ng-container>\n <ng-container content>\n <form\n id=\"kc-register-form\"\n [action]=\"url.loginAction\"\n method=\"post\"\n >\n {{ i18n.msgStr('pageExpiredMsg1') }}\n <a\n id=\"loginRestartLink\"\n [href]=\"url.loginRestartFlowUrl\"\n >\n {{ i18n.msgStr('doClickHere') }}\n </a>\n <br />\n <br />\n <button\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonDefaultClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n name=\"submitAction\"\n id=\"confirmOverride\"\n value=\"confirmOverride\"\n >\n {{ i18n.msgStr('confirmOverrideIdpContinue', idpDisplayName) }}\n </button>\n </form>\n </ng-container>\n</kc-login-template>\n" }]
35
+ ], template: "@let url = kcContext.url;\n@let idpDisplayName = kcContext.idpDisplayName;\n\n<ng-template #headerNode>\n {{ i18n.msgStr('confirmOverrideIdpTitle') }}\n</ng-template>\n<form\n id=\"kc-register-form\"\n method=\"post\"\n [action]=\"url.loginAction\"\n>\n {{ i18n.msgStr('pageExpiredMsg1') }}\n <a\n id=\"loginRestartLink\"\n [href]=\"url.loginRestartFlowUrl\"\n >\n {{ i18n.msgStr('doClickHere') }}\n </a>\n <br />\n <br />\n <button\n type=\"submit\"\n name=\"submitAction\"\n id=\"confirmOverride\"\n value=\"confirmOverride\"\n [kcClass]=\"['kcButtonClass', 'kcButtonDefaultClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n >\n {{ i18n.msgStr('confirmOverrideIdpContinue', idpDisplayName) }}\n </button>\n</form>\n" }]
39
36
  }] });
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4taWRwLWxpbmstY29uZmlybS1vdmVycmlkZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbG9naW4vcGFnZXMvbG9naW4taWRwLWxpbmstY29uZmlybS1vdmVycmlkZS9sb2dpbi1pZHAtbGluay1jb25maXJtLW92ZXJyaWRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9sb2dpbi9wYWdlcy9sb2dpbi1pZHAtbGluay1jb25maXJtLW92ZXJyaWRlL2xvZ2luLWlkcC1saW5rLWNvbmZpcm0tb3ZlcnJpZGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saURBQWlELENBQUM7QUFDbEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFDNUYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDbkYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDbEYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBRXBFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQzs7QUFpQmhGLE1BQU0sT0FBTyxvQ0FBcUMsU0FBUSxrQkFBa0I7SUFiNUU7O1FBY0ksY0FBUyxHQUFHLE1BQU0sQ0FBd0UsZ0JBQWdCLENBQUMsQ0FBQztRQUM1RyxTQUFJLEdBQUcsTUFBTSxDQUFPLFVBQVUsQ0FBQyxDQUFDO1FBQ3ZCLG9CQUFlLEdBQUcsTUFBTSxDQUFVLGVBQWUsQ0FBQyxDQUFDO1FBQ25ELFlBQU8sR0FBRyxNQUFNLENBQW9DLGFBQWEsQ0FBQyxDQUFDO1FBQzVFLDBCQUFxQixHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyQyxrQkFBYSxHQUFHLEtBQUssRUFBVSxDQUFDO1FBQ2hDLGtCQUFhLEdBQUcsS0FBSyxFQUFVLENBQUM7UUFDaEMsZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFDN0IsbUJBQWMsR0FBWSxLQUFLLENBQUM7S0FDbkM7OEdBVlksb0NBQW9DO2tHQUFwQyxvQ0FBb0MsMGdCQVBsQztZQUNQO2dCQUNJLE9BQU8sRUFBRSxrQkFBa0I7Z0JBQzNCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsb0NBQW9DLENBQUM7YUFDdEU7U0FDSixpREN2QkwsNHpDQXdDQSw0Q0QxQmMsZ0JBQWdCLCtGQUFFLGlCQUFpQjs7MkZBV3BDLG9DQUFvQztrQkFiaEQsU0FBUztpQ0FDTSxJQUFJLFdBQ1AsQ0FBQyxnQkFBZ0IsRUFBRSxpQkFBaUIsQ0FBQyxZQUNwQyxTQUFTLG1CQUVGLHVCQUF1QixDQUFDLE1BQU0sYUFDcEM7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLGtCQUFrQjs0QkFDM0IsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUscUNBQXFDLENBQUM7eUJBQ3RFO3FCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgZm9yd2FyZFJlZiwgaW5qZWN0LCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVVNFX0RFRkFVTFRfQ1NTIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbGliL3Rva2Vucy91c2UtZGVmYXVsdC1jc3MnO1xuaW1wb3J0IHsgQ29tcG9uZW50UmVmZXJlbmNlIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vY2xhc3Nlcy9jb21wb25lbnQtcmVmZXJlbmNlJztcbmltcG9ydCB7IFRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vY29udGFpbmVycy90ZW1wbGF0ZSc7XG5pbXBvcnQgeyBLY0NsYXNzRGlyZWN0aXZlIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vZGlyZWN0aXZlcy9rYy1jbGFzcyc7XG5pbXBvcnQgeyBMT0dJTl9JMThOIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vdG9rZW5zL2kxOG4nO1xuaW1wb3J0IHR5cGUgeyBJMThuIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vaTE4bic7XG5pbXBvcnQgeyBMT0dJTl9DTEFTU0VTIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vdG9rZW5zL2NsYXNzZXMnO1xuaW1wb3J0IHsgS0NfTE9HSU5fQ09OVEVYVCB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL3Rva2Vucy9rYy1jb250ZXh0JztcbmltcG9ydCB0eXBlIHsgQ2xhc3NLZXkgfSBmcm9tICdrZXljbG9ha2lmeS9sb2dpbi9saWIva2NDbHN4JztcbmltcG9ydCB0eXBlIHsgS2NDb250ZXh0IH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vS2NDb250ZXh0JztcblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbS2NDbGFzc0RpcmVjdGl2ZSwgVGVtcGxhdGVDb21wb25lbnRdLFxuICAgIHNlbGVjdG9yOiAna2Mtcm9vdCcsXG4gICAgdGVtcGxhdGVVcmw6ICdsb2dpbi1pZHAtbGluay1jb25maXJtLW92ZXJyaWRlLmNvbXBvbmVudC5odG1sJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogQ29tcG9uZW50UmVmZXJlbmNlLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gTG9naW5JZHBMaW5rQ29uZmlybU92ZXJyaWRlQ29tcG9uZW50KVxuICAgICAgICB9XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBMb2dpbklkcExpbmtDb25maXJtT3ZlcnJpZGVDb21wb25lbnQgZXh0ZW5kcyBDb21wb25lbnRSZWZlcmVuY2Uge1xuICAgIGtjQ29udGV4dCA9IGluamVjdDxFeHRyYWN0PEtjQ29udGV4dCwgeyBwYWdlSWQ6ICdsb2dpbi1pZHAtbGluay1jb25maXJtLW92ZXJyaWRlLmZ0bCcgfT4+KEtDX0xPR0lOX0NPTlRFWFQpO1xuICAgIGkxOG4gPSBpbmplY3Q8STE4bj4oTE9HSU5fSTE4Tik7XG4gICAgb3ZlcnJpZGUgZG9Vc2VEZWZhdWx0Q3NzID0gaW5qZWN0PGJvb2xlYW4+KFVTRV9ERUZBVUxUX0NTUyk7XG4gICAgb3ZlcnJpZGUgY2xhc3NlcyA9IGluamVjdDxQYXJ0aWFsPFJlY29yZDxDbGFzc0tleSwgc3RyaW5nPj4+KExPR0lOX0NMQVNTRVMpO1xuICAgIGRpc3BsYXlSZXF1aXJlZEZpZWxkcyA9IGlucHV0KGZhbHNlKTtcbiAgICBkb2N1bWVudFRpdGxlID0gaW5wdXQ8c3RyaW5nPigpO1xuICAgIGJvZHlDbGFzc05hbWUgPSBpbnB1dDxzdHJpbmc+KCk7XG4gICAgZGlzcGxheUluZm86IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBkaXNwbGF5TWVzc2FnZTogYm9vbGVhbiA9IGZhbHNlO1xufVxuIiwiQGxldCB1cmwgPSBrY0NvbnRleHQudXJsO1xuQGxldCBpZHBEaXNwbGF5TmFtZSA9IGtjQ29udGV4dC5pZHBEaXNwbGF5TmFtZTtcblxuPGtjLWxvZ2luLXRlbXBsYXRlXG4gICAgW2Rpc3BsYXlJbmZvXT1cImRpc3BsYXlJbmZvXCJcbiAgICBbYm9keUNsYXNzTmFtZV09XCJib2R5Q2xhc3NOYW1lKClcIlxuICAgIFtkaXNwbGF5TWVzc2FnZV09XCJkaXNwbGF5TWVzc2FnZVwiXG4gICAgW2Rpc3BsYXlSZXF1aXJlZEZpZWxkc109XCJkaXNwbGF5UmVxdWlyZWRGaWVsZHMoKVwiXG4gICAgW2RvY3VtZW50VGl0bGVdPVwiZG9jdW1lbnRUaXRsZSgpXCJcbj5cbiAgICA8bmctY29udGFpbmVyIGhlYWRlck5vZGU+XG4gICAgICAgIHt7IGkxOG4ubXNnU3RyKCdjb25maXJtT3ZlcnJpZGVJZHBUaXRsZScpIH19XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciBjb250ZW50PlxuICAgICAgICA8Zm9ybVxuICAgICAgICAgICAgaWQ9XCJrYy1yZWdpc3Rlci1mb3JtXCJcbiAgICAgICAgICAgIFthY3Rpb25dPVwidXJsLmxvZ2luQWN0aW9uXCJcbiAgICAgICAgICAgIG1ldGhvZD1cInBvc3RcIlxuICAgICAgICA+XG4gICAgICAgICAgICB7eyBpMThuLm1zZ1N0cigncGFnZUV4cGlyZWRNc2cxJykgfX1cbiAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgaWQ9XCJsb2dpblJlc3RhcnRMaW5rXCJcbiAgICAgICAgICAgICAgICBbaHJlZl09XCJ1cmwubG9naW5SZXN0YXJ0Rmxvd1VybFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3sgaTE4bi5tc2dTdHIoJ2RvQ2xpY2tIZXJlJykgfX1cbiAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgIDxiciAvPlxuICAgICAgICAgICAgPGJyIC8+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgdHlwZT1cInN1Ym1pdFwiXG4gICAgICAgICAgICAgICAgW2tjQ2xhc3NdPVwiWydrY0J1dHRvbkNsYXNzJywgJ2tjQnV0dG9uRGVmYXVsdENsYXNzJywgJ2tjQnV0dG9uQmxvY2tDbGFzcycsICdrY0J1dHRvbkxhcmdlQ2xhc3MnXVwiXG4gICAgICAgICAgICAgICAgbmFtZT1cInN1Ym1pdEFjdGlvblwiXG4gICAgICAgICAgICAgICAgaWQ9XCJjb25maXJtT3ZlcnJpZGVcIlxuICAgICAgICAgICAgICAgIHZhbHVlPVwiY29uZmlybU92ZXJyaWRlXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7eyBpMThuLm1zZ1N0cignY29uZmlybU92ZXJyaWRlSWRwQ29udGludWUnLCBpZHBEaXNwbGF5TmFtZSkgfX1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Zvcm0+XG4gICAgPC9uZy1jb250YWluZXI+XG48L2tjLWxvZ2luLXRlbXBsYXRlPlxuIl19
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4taWRwLWxpbmstY29uZmlybS1vdmVycmlkZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbG9naW4vcGFnZXMvbG9naW4taWRwLWxpbmstY29uZmlybS1vdmVycmlkZS9sb2dpbi1pZHAtbGluay1jb25maXJtLW92ZXJyaWRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9sb2dpbi9wYWdlcy9sb2dpbi1pZHAtbGluay1jb25maXJtLW92ZXJyaWRlL2xvZ2luLWlkcC1saW5rLWNvbmZpcm0tb3ZlcnJpZGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFlLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUM1RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUNuRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUdsRixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDcEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOENBQThDLENBQUM7O0FBZWhGLE1BQU0sT0FBTyxvQ0FBcUMsU0FBUSxrQkFBa0I7SUFiNUU7O1FBY0ksY0FBUyxHQUFHLE1BQU0sQ0FBd0UsZ0JBQWdCLENBQUMsQ0FBQztRQUM1RyxTQUFJLEdBQUcsTUFBTSxDQUFPLFVBQVUsQ0FBQyxDQUFDO1FBS2hDLDBCQUFxQixHQUFHLEtBQUssQ0FBQztRQUM5QixnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUNwQixtQkFBYyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBRW5GLGVBQVUsR0FBSSxTQUFTLENBQTJCLFlBQVksQ0FBQyxDQUFDO1FBQ2hFLGFBQVEsR0FBSSxTQUFTLENBQTJCLFVBQVUsQ0FBQyxDQUFDO1FBQzVELHdCQUFtQixHQUFJLFNBQVMsQ0FBMkIscUJBQXFCLENBQUMsQ0FBQztLQUNyRjs4R0FkWSxvQ0FBb0M7a0dBQXBDLG9DQUFvQyxpRkFQbEM7WUFDUDtnQkFDSSxPQUFPLEVBQUUsa0JBQWtCO2dCQUMzQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLG9DQUFvQyxDQUFDO2FBQ3RFO1NBQ0osK1lDcEJMLDB6QkE4QkEsNENEbkJjLGdCQUFnQjs7MkZBV2pCLG9DQUFvQztrQkFiaEQsU0FBUztpQ0FDTSxJQUFJLFdBQ1AsQ0FBQyxnQkFBZ0IsRUFBRSxpQkFBaUIsQ0FBQyxZQUNwQyxvQ0FBb0MsbUJBRTdCLHVCQUF1QixDQUFDLE1BQU0sYUFDcEM7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLGtCQUFrQjs0QkFDM0IsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUscUNBQXFDLENBQUM7eUJBQ3RFO3FCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgZm9yd2FyZFJlZiwgaW5qZWN0LCBUZW1wbGF0ZVJlZiwgdmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21wb25lbnRSZWZlcmVuY2UgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9jbGFzc2VzL2NvbXBvbmVudC1yZWZlcmVuY2UnO1xuaW1wb3J0IHsgVGVtcGxhdGVDb21wb25lbnQgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9jb250YWluZXJzL3RlbXBsYXRlJztcbmltcG9ydCB7IEtjQ2xhc3NEaXJlY3RpdmUgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9kaXJlY3RpdmVzL2tjLWNsYXNzJztcbmltcG9ydCB0eXBlIHsgSTE4biB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL2kxOG4nO1xuaW1wb3J0IHR5cGUgeyBLY0NvbnRleHQgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9LY0NvbnRleHQnO1xuaW1wb3J0IHsgTE9HSU5fSTE4TiB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL3Rva2Vucy9pMThuJztcbmltcG9ydCB7IEtDX0xPR0lOX0NPTlRFWFQgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi90b2tlbnMva2MtY29udGV4dCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0tjQ2xhc3NEaXJlY3RpdmUsIFRlbXBsYXRlQ29tcG9uZW50XSxcbiAgICBzZWxlY3RvcjogJ2tjLWxvZ2luLWlkcC1saW5rLWNvbmZpcm0tb3ZlcnJpZGUnLFxuICAgIHRlbXBsYXRlVXJsOiAnbG9naW4taWRwLWxpbmstY29uZmlybS1vdmVycmlkZS5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IENvbXBvbmVudFJlZmVyZW5jZSxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IExvZ2luSWRwTGlua0NvbmZpcm1PdmVycmlkZUNvbXBvbmVudClcbiAgICAgICAgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgTG9naW5JZHBMaW5rQ29uZmlybU92ZXJyaWRlQ29tcG9uZW50IGV4dGVuZHMgQ29tcG9uZW50UmVmZXJlbmNlIHtcbiAgICBrY0NvbnRleHQgPSBpbmplY3Q8RXh0cmFjdDxLY0NvbnRleHQsIHsgcGFnZUlkOiAnbG9naW4taWRwLWxpbmstY29uZmlybS1vdmVycmlkZS5mdGwnIH0+PihLQ19MT0dJTl9DT05URVhUKTtcbiAgICBpMThuID0gaW5qZWN0PEkxOG4+KExPR0lOX0kxOE4pO1xuXG4gICAgZG9jdW1lbnRUaXRsZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIGJvZHlDbGFzc05hbWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAgIGRpc3BsYXlSZXF1aXJlZEZpZWxkcyA9IGZhbHNlO1xuICAgIGRpc3BsYXlJbmZvID0gZmFsc2U7XG4gICAgZGlzcGxheU1lc3NhZ2UgPSAhdGhpcy5rY0NvbnRleHQubWVzc2FnZXNQZXJGaWVsZC5leGlzdHNFcnJvcigndG90cCcsICd1c2VyTGFiZWwnKTtcblxuICAgIGhlYWRlck5vZGU/ID0gdmlld0NoaWxkPFRlbXBsYXRlUmVmPEhUTUxFbGVtZW50Pj4oJ2hlYWRlck5vZGUnKTtcbiAgICBpbmZvTm9kZT8gPSB2aWV3Q2hpbGQ8VGVtcGxhdGVSZWY8SFRNTEVsZW1lbnQ+PignaW5mb05vZGUnKTtcbiAgICBzb2NpYWxQcm92aWRlcnNOb2RlPyA9IHZpZXdDaGlsZDxUZW1wbGF0ZVJlZjxIVE1MRWxlbWVudD4+KCdzb2NpYWxQcm92aWRlcnNOb2RlJyk7XG59XG4iLCJAbGV0IHVybCA9IGtjQ29udGV4dC51cmw7XG5AbGV0IGlkcERpc3BsYXlOYW1lID0ga2NDb250ZXh0LmlkcERpc3BsYXlOYW1lO1xuXG48bmctdGVtcGxhdGUgI2hlYWRlck5vZGU+XG4gICAge3sgaTE4bi5tc2dTdHIoJ2NvbmZpcm1PdmVycmlkZUlkcFRpdGxlJykgfX1cbjwvbmctdGVtcGxhdGU+XG48Zm9ybVxuICAgIGlkPVwia2MtcmVnaXN0ZXItZm9ybVwiXG4gICAgbWV0aG9kPVwicG9zdFwiXG4gICAgW2FjdGlvbl09XCJ1cmwubG9naW5BY3Rpb25cIlxuPlxuICAgIHt7IGkxOG4ubXNnU3RyKCdwYWdlRXhwaXJlZE1zZzEnKSB9fVxuICAgIDxhXG4gICAgICAgIGlkPVwibG9naW5SZXN0YXJ0TGlua1wiXG4gICAgICAgIFtocmVmXT1cInVybC5sb2dpblJlc3RhcnRGbG93VXJsXCJcbiAgICA+XG4gICAgICAgIHt7IGkxOG4ubXNnU3RyKCdkb0NsaWNrSGVyZScpIH19XG4gICAgPC9hPlxuICAgIDxiciAvPlxuICAgIDxiciAvPlxuICAgIDxidXR0b25cbiAgICAgICAgdHlwZT1cInN1Ym1pdFwiXG4gICAgICAgIG5hbWU9XCJzdWJtaXRBY3Rpb25cIlxuICAgICAgICBpZD1cImNvbmZpcm1PdmVycmlkZVwiXG4gICAgICAgIHZhbHVlPVwiY29uZmlybU92ZXJyaWRlXCJcbiAgICAgICAgW2tjQ2xhc3NdPVwiWydrY0J1dHRvbkNsYXNzJywgJ2tjQnV0dG9uRGVmYXVsdENsYXNzJywgJ2tjQnV0dG9uQmxvY2tDbGFzcycsICdrY0J1dHRvbkxhcmdlQ2xhc3MnXVwiXG4gICAgPlxuICAgICAgICB7eyBpMThuLm1zZ1N0cignY29uZmlybU92ZXJyaWRlSWRwQ29udGludWUnLCBpZHBEaXNwbGF5TmFtZSkgfX1cbiAgICA8L2J1dHRvbj5cbjwvZm9ybT5cbiJdfQ==
@@ -1,10 +1,8 @@
1
- import { ChangeDetectionStrategy, Component, forwardRef, inject, input } from '@angular/core';
2
- import { USE_DEFAULT_CSS } from '@keycloakify/angular/lib/tokens/use-default-css';
1
+ import { ChangeDetectionStrategy, Component, forwardRef, inject, viewChild } from '@angular/core';
3
2
  import { ComponentReference } from '@keycloakify/angular/login/classes/component-reference';
4
3
  import { TemplateComponent } from '@keycloakify/angular/login/containers/template';
5
4
  import { KcClassDirective } from '@keycloakify/angular/login/directives/kc-class';
6
5
  import { LOGIN_I18N } from '@keycloakify/angular/login/tokens/i18n';
7
- import { LOGIN_CLASSES } from '@keycloakify/angular/login/tokens/classes';
8
6
  import { KC_LOGIN_CONTEXT } from '@keycloakify/angular/login/tokens/kc-context';
9
7
  import * as i0 from "@angular/core";
10
8
  export class LoginIdpLinkEmailComponent extends ComponentReference {
@@ -12,29 +10,28 @@ export class LoginIdpLinkEmailComponent extends ComponentReference {
12
10
  super(...arguments);
13
11
  this.kcContext = inject(KC_LOGIN_CONTEXT);
14
12
  this.i18n = inject(LOGIN_I18N);
15
- this.doUseDefaultCss = inject(USE_DEFAULT_CSS);
16
- this.classes = inject(LOGIN_CLASSES);
17
- this.displayRequiredFields = input(false);
18
- this.documentTitle = input();
19
- this.bodyClassName = input();
13
+ this.displayRequiredFields = false;
20
14
  this.displayInfo = false;
21
15
  this.displayMessage = false;
16
+ this.headerNode = viewChild('headerNode');
17
+ this.infoNode = viewChild('infoNode');
18
+ this.socialProvidersNode = viewChild('socialProvidersNode');
22
19
  }
23
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: LoginIdpLinkEmailComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
24
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.6", type: LoginIdpLinkEmailComponent, isStandalone: true, selector: "kc-root", inputs: { displayRequiredFields: { classPropertyName: "displayRequiredFields", publicName: "displayRequiredFields", isSignal: true, isRequired: false, transformFunction: null }, documentTitle: { classPropertyName: "documentTitle", publicName: "documentTitle", isSignal: true, isRequired: false, transformFunction: null }, bodyClassName: { classPropertyName: "bodyClassName", publicName: "bodyClassName", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
20
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: LoginIdpLinkEmailComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
21
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.7", type: LoginIdpLinkEmailComponent, isStandalone: true, selector: "kc-login-idp-link-email", providers: [
25
22
  {
26
23
  provide: ComponentReference,
27
24
  useExisting: forwardRef(() => LoginIdpLinkEmailComponent)
28
25
  }
29
- ], usesInheritance: true, ngImport: i0, template: "@let idpAlias = kcContext.idpAlias;\n@let brokerContext = kcContext.brokerContext;\n@let realm = kcContext.realm;\n@let url = kcContext.url;\n<kc-login-template\n [displayInfo]=\"displayInfo\"\n [bodyClassName]=\"bodyClassName()\"\n [displayMessage]=\"displayMessage\"\n [displayRequiredFields]=\"displayRequiredFields()\"\n [documentTitle]=\"documentTitle()\"\n>\n <ng-container headerNode>\n {{ i18n.msgStr('emailLinkIdpTitle', idpAlias) }}\n </ng-container>\n <ng-container content>\n <p\n id=\"instruction1\"\n class=\"instruction\"\n >\n {{ i18n.msgStr('emailLinkIdp1', idpAlias, brokerContext.username, realm.displayName) }}\n </p>\n <p\n id=\"instruction2\"\n class=\"instruction\"\n >\n {{ i18n.msgStr('emailLinkIdp2') }}\n <a [href]=\"url.loginAction\">{{ i18n.msgStr('doClickHere') }}</a>\n {{ i18n.msgStr('emailLinkIdp3') }}\n </p>\n <p\n id=\"instruction3\"\n class=\"instruction\"\n >\n {{ i18n.msgStr('emailLinkIdp4') }}\n <a [href]=\"url.loginAction\">{{ i18n.msgStr('doClickHere') }}</a>\n {{ i18n.msgStr('emailLinkIdp5') }}\n </p>\n </ng-container>\n</kc-login-template>\n", dependencies: [{ kind: "component", type: TemplateComponent, selector: "kc-login-template", inputs: ["displayInfo", "displayMessage", "displayRequiredFields", "documentTitle", "bodyClassName"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
26
+ ], viewQueries: [{ propertyName: "headerNode", first: true, predicate: ["headerNode"], descendants: true, isSignal: true }, { propertyName: "infoNode", first: true, predicate: ["infoNode"], descendants: true, isSignal: true }, { propertyName: "socialProvidersNode", first: true, predicate: ["socialProvidersNode"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "@let idpAlias = kcContext.idpAlias;\n@let brokerContext = kcContext.brokerContext;\n@let realm = kcContext.realm;\n@let url = kcContext.url;\n<ng-template #headerNode>\n {{ i18n.msgStr('emailLinkIdpTitle', idpAlias) }}\n</ng-template>\n<p\n id=\"instruction1\"\n class=\"instruction\"\n>\n {{ i18n.msgStr('emailLinkIdp1', idpAlias, brokerContext.username, realm.displayName) }}\n</p>\n<p\n id=\"instruction2\"\n class=\"instruction\"\n>\n {{ i18n.msgStr('emailLinkIdp2') }}\n <a [href]=\"url.loginAction\">{{ i18n.msgStr('doClickHere') }}</a>\n {{ i18n.msgStr('emailLinkIdp3') }}\n</p>\n<p\n id=\"instruction3\"\n class=\"instruction\"\n>\n {{ i18n.msgStr('emailLinkIdp4') }}\n <a [href]=\"url.loginAction\">{{ i18n.msgStr('doClickHere') }}</a>\n {{ i18n.msgStr('emailLinkIdp5') }}\n</p>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
30
27
  }
31
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: LoginIdpLinkEmailComponent, decorators: [{
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: LoginIdpLinkEmailComponent, decorators: [{
32
29
  type: Component,
33
- args: [{ standalone: true, imports: [TemplateComponent, KcClassDirective], selector: 'kc-root', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
30
+ args: [{ standalone: true, imports: [TemplateComponent, KcClassDirective], selector: 'kc-login-idp-link-email', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
34
31
  {
35
32
  provide: ComponentReference,
36
33
  useExisting: forwardRef(() => LoginIdpLinkEmailComponent)
37
34
  }
38
- ], template: "@let idpAlias = kcContext.idpAlias;\n@let brokerContext = kcContext.brokerContext;\n@let realm = kcContext.realm;\n@let url = kcContext.url;\n<kc-login-template\n [displayInfo]=\"displayInfo\"\n [bodyClassName]=\"bodyClassName()\"\n [displayMessage]=\"displayMessage\"\n [displayRequiredFields]=\"displayRequiredFields()\"\n [documentTitle]=\"documentTitle()\"\n>\n <ng-container headerNode>\n {{ i18n.msgStr('emailLinkIdpTitle', idpAlias) }}\n </ng-container>\n <ng-container content>\n <p\n id=\"instruction1\"\n class=\"instruction\"\n >\n {{ i18n.msgStr('emailLinkIdp1', idpAlias, brokerContext.username, realm.displayName) }}\n </p>\n <p\n id=\"instruction2\"\n class=\"instruction\"\n >\n {{ i18n.msgStr('emailLinkIdp2') }}\n <a [href]=\"url.loginAction\">{{ i18n.msgStr('doClickHere') }}</a>\n {{ i18n.msgStr('emailLinkIdp3') }}\n </p>\n <p\n id=\"instruction3\"\n class=\"instruction\"\n >\n {{ i18n.msgStr('emailLinkIdp4') }}\n <a [href]=\"url.loginAction\">{{ i18n.msgStr('doClickHere') }}</a>\n {{ i18n.msgStr('emailLinkIdp5') }}\n </p>\n </ng-container>\n</kc-login-template>\n" }]
35
+ ], template: "@let idpAlias = kcContext.idpAlias;\n@let brokerContext = kcContext.brokerContext;\n@let realm = kcContext.realm;\n@let url = kcContext.url;\n<ng-template #headerNode>\n {{ i18n.msgStr('emailLinkIdpTitle', idpAlias) }}\n</ng-template>\n<p\n id=\"instruction1\"\n class=\"instruction\"\n>\n {{ i18n.msgStr('emailLinkIdp1', idpAlias, brokerContext.username, realm.displayName) }}\n</p>\n<p\n id=\"instruction2\"\n class=\"instruction\"\n>\n {{ i18n.msgStr('emailLinkIdp2') }}\n <a [href]=\"url.loginAction\">{{ i18n.msgStr('doClickHere') }}</a>\n {{ i18n.msgStr('emailLinkIdp3') }}\n</p>\n<p\n id=\"instruction3\"\n class=\"instruction\"\n>\n {{ i18n.msgStr('emailLinkIdp4') }}\n <a [href]=\"url.loginAction\">{{ i18n.msgStr('doClickHere') }}</a>\n {{ i18n.msgStr('emailLinkIdp5') }}\n</p>\n" }]
39
36
  }] });
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4taWRwLWxpbmstZW1haWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xvZ2luL3BhZ2VzL2xvZ2luLWlkcC1saW5rLWVtYWlsL2xvZ2luLWlkcC1saW5rLWVtYWlsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9sb2dpbi9wYWdlcy9sb2dpbi1pZHAtbGluay1lbWFpbC9sb2dpbi1pZHAtbGluay1lbWFpbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUNsRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUM1RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUNuRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUNsRixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFFcEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDOztBQWlCaEYsTUFBTSxPQUFPLDBCQUEyQixTQUFRLGtCQUFrQjtJQWJsRTs7UUFjSSxjQUFTLEdBQUcsTUFBTSxDQUE2RCxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ2pHLFNBQUksR0FBRyxNQUFNLENBQU8sVUFBVSxDQUFDLENBQUM7UUFDdkIsb0JBQWUsR0FBRyxNQUFNLENBQVUsZUFBZSxDQUFDLENBQUM7UUFDbkQsWUFBTyxHQUFHLE1BQU0sQ0FBb0MsYUFBYSxDQUFDLENBQUM7UUFDNUUsMEJBQXFCLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JDLGtCQUFhLEdBQUcsS0FBSyxFQUFVLENBQUM7UUFDaEMsa0JBQWEsR0FBRyxLQUFLLEVBQVUsQ0FBQztRQUNoQyxnQkFBVyxHQUFZLEtBQUssQ0FBQztRQUM3QixtQkFBYyxHQUFZLEtBQUssQ0FBQztLQUNuQzs4R0FWWSwwQkFBMEI7a0dBQTFCLDBCQUEwQiwwZ0JBUHhCO1lBQ1A7Z0JBQ0ksT0FBTyxFQUFFLGtCQUFrQjtnQkFDM0IsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQywwQkFBMEIsQ0FBQzthQUM1RDtTQUNKLGlEQ3ZCTCxtekNBdUNBLDRDRHpCYyxpQkFBaUI7OzJGQVdsQiwwQkFBMEI7a0JBYnRDLFNBQVM7aUNBQ00sSUFBSSxXQUNQLENBQUMsaUJBQWlCLEVBQUUsZ0JBQWdCLENBQUMsWUFDcEMsU0FBUyxtQkFFRix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSxrQkFBa0I7NEJBQzNCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLDJCQUEyQixDQUFDO3lCQUM1RDtxQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGZvcndhcmRSZWYsIGluamVjdCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFVTRV9ERUZBVUxUX0NTUyB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xpYi90b2tlbnMvdXNlLWRlZmF1bHQtY3NzJztcbmltcG9ydCB7IENvbXBvbmVudFJlZmVyZW5jZSB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL2NsYXNzZXMvY29tcG9uZW50LXJlZmVyZW5jZSc7XG5pbXBvcnQgeyBUZW1wbGF0ZUNvbXBvbmVudCB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL2NvbnRhaW5lcnMvdGVtcGxhdGUnO1xuaW1wb3J0IHsgS2NDbGFzc0RpcmVjdGl2ZSB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL2RpcmVjdGl2ZXMva2MtY2xhc3MnO1xuaW1wb3J0IHsgTE9HSU5fSTE4TiB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL3Rva2Vucy9pMThuJztcbmltcG9ydCB0eXBlIHsgSTE4biB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL2kxOG4nO1xuaW1wb3J0IHsgTE9HSU5fQ0xBU1NFUyB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL3Rva2Vucy9jbGFzc2VzJztcbmltcG9ydCB7IEtDX0xPR0lOX0NPTlRFWFQgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi90b2tlbnMva2MtY29udGV4dCc7XG5pbXBvcnQgdHlwZSB7IENsYXNzS2V5IH0gZnJvbSAna2V5Y2xvYWtpZnkvbG9naW4vbGliL2tjQ2xzeCc7XG5pbXBvcnQgdHlwZSB7IEtjQ29udGV4dCB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL0tjQ29udGV4dCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1RlbXBsYXRlQ29tcG9uZW50LCBLY0NsYXNzRGlyZWN0aXZlXSxcbiAgICBzZWxlY3RvcjogJ2tjLXJvb3QnLFxuICAgIHRlbXBsYXRlVXJsOiAnbG9naW4taWRwLWxpbmstZW1haWwuY29tcG9uZW50Lmh0bWwnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBDb21wb25lbnRSZWZlcmVuY2UsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBMb2dpbklkcExpbmtFbWFpbENvbXBvbmVudClcbiAgICAgICAgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgTG9naW5JZHBMaW5rRW1haWxDb21wb25lbnQgZXh0ZW5kcyBDb21wb25lbnRSZWZlcmVuY2Uge1xuICAgIGtjQ29udGV4dCA9IGluamVjdDxFeHRyYWN0PEtjQ29udGV4dCwgeyBwYWdlSWQ6ICdsb2dpbi1pZHAtbGluay1lbWFpbC5mdGwnIH0+PihLQ19MT0dJTl9DT05URVhUKTtcbiAgICBpMThuID0gaW5qZWN0PEkxOG4+KExPR0lOX0kxOE4pO1xuICAgIG92ZXJyaWRlIGRvVXNlRGVmYXVsdENzcyA9IGluamVjdDxib29sZWFuPihVU0VfREVGQVVMVF9DU1MpO1xuICAgIG92ZXJyaWRlIGNsYXNzZXMgPSBpbmplY3Q8UGFydGlhbDxSZWNvcmQ8Q2xhc3NLZXksIHN0cmluZz4+PihMT0dJTl9DTEFTU0VTKTtcbiAgICBkaXNwbGF5UmVxdWlyZWRGaWVsZHMgPSBpbnB1dChmYWxzZSk7XG4gICAgZG9jdW1lbnRUaXRsZSA9IGlucHV0PHN0cmluZz4oKTtcbiAgICBib2R5Q2xhc3NOYW1lID0gaW5wdXQ8c3RyaW5nPigpO1xuICAgIGRpc3BsYXlJbmZvOiBib29sZWFuID0gZmFsc2U7XG4gICAgZGlzcGxheU1lc3NhZ2U6IGJvb2xlYW4gPSBmYWxzZTtcbn1cbiIsIkBsZXQgaWRwQWxpYXMgPSBrY0NvbnRleHQuaWRwQWxpYXM7XG5AbGV0IGJyb2tlckNvbnRleHQgPSBrY0NvbnRleHQuYnJva2VyQ29udGV4dDtcbkBsZXQgcmVhbG0gPSBrY0NvbnRleHQucmVhbG07XG5AbGV0IHVybCA9IGtjQ29udGV4dC51cmw7XG48a2MtbG9naW4tdGVtcGxhdGVcbiAgICBbZGlzcGxheUluZm9dPVwiZGlzcGxheUluZm9cIlxuICAgIFtib2R5Q2xhc3NOYW1lXT1cImJvZHlDbGFzc05hbWUoKVwiXG4gICAgW2Rpc3BsYXlNZXNzYWdlXT1cImRpc3BsYXlNZXNzYWdlXCJcbiAgICBbZGlzcGxheVJlcXVpcmVkRmllbGRzXT1cImRpc3BsYXlSZXF1aXJlZEZpZWxkcygpXCJcbiAgICBbZG9jdW1lbnRUaXRsZV09XCJkb2N1bWVudFRpdGxlKClcIlxuPlxuICAgIDxuZy1jb250YWluZXIgaGVhZGVyTm9kZT5cbiAgICAgICAge3sgaTE4bi5tc2dTdHIoJ2VtYWlsTGlua0lkcFRpdGxlJywgaWRwQWxpYXMpIH19XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciBjb250ZW50PlxuICAgICAgICA8cFxuICAgICAgICAgICAgaWQ9XCJpbnN0cnVjdGlvbjFcIlxuICAgICAgICAgICAgY2xhc3M9XCJpbnN0cnVjdGlvblwiXG4gICAgICAgID5cbiAgICAgICAgICAgIHt7IGkxOG4ubXNnU3RyKCdlbWFpbExpbmtJZHAxJywgaWRwQWxpYXMsIGJyb2tlckNvbnRleHQudXNlcm5hbWUsIHJlYWxtLmRpc3BsYXlOYW1lKSB9fVxuICAgICAgICA8L3A+XG4gICAgICAgIDxwXG4gICAgICAgICAgICBpZD1cImluc3RydWN0aW9uMlwiXG4gICAgICAgICAgICBjbGFzcz1cImluc3RydWN0aW9uXCJcbiAgICAgICAgPlxuICAgICAgICAgICAge3sgaTE4bi5tc2dTdHIoJ2VtYWlsTGlua0lkcDInKSB9fVxuICAgICAgICAgICAgPGEgW2hyZWZdPVwidXJsLmxvZ2luQWN0aW9uXCI+e3sgaTE4bi5tc2dTdHIoJ2RvQ2xpY2tIZXJlJykgfX08L2E+XG4gICAgICAgICAgICB7eyBpMThuLm1zZ1N0cignZW1haWxMaW5rSWRwMycpIH19XG4gICAgICAgIDwvcD5cbiAgICAgICAgPHBcbiAgICAgICAgICAgIGlkPVwiaW5zdHJ1Y3Rpb24zXCJcbiAgICAgICAgICAgIGNsYXNzPVwiaW5zdHJ1Y3Rpb25cIlxuICAgICAgICA+XG4gICAgICAgICAgICB7eyBpMThuLm1zZ1N0cignZW1haWxMaW5rSWRwNCcpIH19XG4gICAgICAgICAgICA8YSBbaHJlZl09XCJ1cmwubG9naW5BY3Rpb25cIj57eyBpMThuLm1zZ1N0cignZG9DbGlja0hlcmUnKSB9fTwvYT5cbiAgICAgICAgICAgIHt7IGkxOG4ubXNnU3RyKCdlbWFpbExpbmtJZHA1JykgfX1cbiAgICAgICAgPC9wPlxuICAgIDwvbmctY29udGFpbmVyPlxuPC9rYy1sb2dpbi10ZW1wbGF0ZT5cbiJdfQ==
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4taWRwLWxpbmstZW1haWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xvZ2luL3BhZ2VzL2xvZ2luLWlkcC1saW5rLWVtYWlsL2xvZ2luLWlkcC1saW5rLWVtYWlsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9sb2dpbi9wYWdlcy9sb2dpbi1pZHAtbGluay1lbWFpbC9sb2dpbi1pZHAtbGluay1lbWFpbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQWUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9HLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBQzVGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ25GLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBR2xGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQzs7QUFlaEYsTUFBTSxPQUFPLDBCQUEyQixTQUFRLGtCQUFrQjtJQWJsRTs7UUFjSSxjQUFTLEdBQUcsTUFBTSxDQUE2RCxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ2pHLFNBQUksR0FBRyxNQUFNLENBQU8sVUFBVSxDQUFDLENBQUM7UUFLaEMsMEJBQXFCLEdBQUcsS0FBSyxDQUFDO1FBQzlCLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBRXZCLGVBQVUsR0FBSSxTQUFTLENBQTJCLFlBQVksQ0FBQyxDQUFDO1FBQ2hFLGFBQVEsR0FBSSxTQUFTLENBQTJCLFVBQVUsQ0FBQyxDQUFDO1FBQzVELHdCQUFtQixHQUFJLFNBQVMsQ0FBMkIscUJBQXFCLENBQUMsQ0FBQztLQUNyRjs4R0FkWSwwQkFBMEI7a0dBQTFCLDBCQUEwQixzRUFQeEI7WUFDUDtnQkFDSSxPQUFPLEVBQUUsa0JBQWtCO2dCQUMzQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLDBCQUEwQixDQUFDO2FBQzVEO1NBQ0osK1lDcEJMLGkwQkE2QkE7OzJGRFBhLDBCQUEwQjtrQkFidEMsU0FBUztpQ0FDTSxJQUFJLFdBQ1AsQ0FBQyxpQkFBaUIsRUFBRSxnQkFBZ0IsQ0FBQyxZQUNwQyx5QkFBeUIsbUJBRWxCLHVCQUF1QixDQUFDLE1BQU0sYUFDcEM7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLGtCQUFrQjs0QkFDM0IsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsMkJBQTJCLENBQUM7eUJBQzVEO3FCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgZm9yd2FyZFJlZiwgaW5qZWN0LCBUZW1wbGF0ZVJlZiwgdmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21wb25lbnRSZWZlcmVuY2UgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9jbGFzc2VzL2NvbXBvbmVudC1yZWZlcmVuY2UnO1xuaW1wb3J0IHsgVGVtcGxhdGVDb21wb25lbnQgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9jb250YWluZXJzL3RlbXBsYXRlJztcbmltcG9ydCB7IEtjQ2xhc3NEaXJlY3RpdmUgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9kaXJlY3RpdmVzL2tjLWNsYXNzJztcbmltcG9ydCB0eXBlIHsgSTE4biB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL2kxOG4nO1xuaW1wb3J0IHR5cGUgeyBLY0NvbnRleHQgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9LY0NvbnRleHQnO1xuaW1wb3J0IHsgTE9HSU5fSTE4TiB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL3Rva2Vucy9pMThuJztcbmltcG9ydCB7IEtDX0xPR0lOX0NPTlRFWFQgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi90b2tlbnMva2MtY29udGV4dCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1RlbXBsYXRlQ29tcG9uZW50LCBLY0NsYXNzRGlyZWN0aXZlXSxcbiAgICBzZWxlY3RvcjogJ2tjLWxvZ2luLWlkcC1saW5rLWVtYWlsJyxcbiAgICB0ZW1wbGF0ZVVybDogJ2xvZ2luLWlkcC1saW5rLWVtYWlsLmNvbXBvbmVudC5odG1sJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogQ29tcG9uZW50UmVmZXJlbmNlLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gTG9naW5JZHBMaW5rRW1haWxDb21wb25lbnQpXG4gICAgICAgIH1cbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIExvZ2luSWRwTGlua0VtYWlsQ29tcG9uZW50IGV4dGVuZHMgQ29tcG9uZW50UmVmZXJlbmNlIHtcbiAgICBrY0NvbnRleHQgPSBpbmplY3Q8RXh0cmFjdDxLY0NvbnRleHQsIHsgcGFnZUlkOiAnbG9naW4taWRwLWxpbmstZW1haWwuZnRsJyB9Pj4oS0NfTE9HSU5fQ09OVEVYVCk7XG4gICAgaTE4biA9IGluamVjdDxJMThuPihMT0dJTl9JMThOKTtcblxuICAgIGRvY3VtZW50VGl0bGU6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICBib2R5Q2xhc3NOYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgICBkaXNwbGF5UmVxdWlyZWRGaWVsZHMgPSBmYWxzZTtcbiAgICBkaXNwbGF5SW5mbyA9IGZhbHNlO1xuICAgIGRpc3BsYXlNZXNzYWdlID0gZmFsc2U7XG5cbiAgICBoZWFkZXJOb2RlPyA9IHZpZXdDaGlsZDxUZW1wbGF0ZVJlZjxIVE1MRWxlbWVudD4+KCdoZWFkZXJOb2RlJyk7XG4gICAgaW5mb05vZGU/ID0gdmlld0NoaWxkPFRlbXBsYXRlUmVmPEhUTUxFbGVtZW50Pj4oJ2luZm9Ob2RlJyk7XG4gICAgc29jaWFsUHJvdmlkZXJzTm9kZT8gPSB2aWV3Q2hpbGQ8VGVtcGxhdGVSZWY8SFRNTEVsZW1lbnQ+Pignc29jaWFsUHJvdmlkZXJzTm9kZScpO1xufVxuIiwiQGxldCBpZHBBbGlhcyA9IGtjQ29udGV4dC5pZHBBbGlhcztcbkBsZXQgYnJva2VyQ29udGV4dCA9IGtjQ29udGV4dC5icm9rZXJDb250ZXh0O1xuQGxldCByZWFsbSA9IGtjQ29udGV4dC5yZWFsbTtcbkBsZXQgdXJsID0ga2NDb250ZXh0LnVybDtcbjxuZy10ZW1wbGF0ZSAjaGVhZGVyTm9kZT5cbiAgICB7eyBpMThuLm1zZ1N0cignZW1haWxMaW5rSWRwVGl0bGUnLCBpZHBBbGlhcykgfX1cbjwvbmctdGVtcGxhdGU+XG48cFxuICAgIGlkPVwiaW5zdHJ1Y3Rpb24xXCJcbiAgICBjbGFzcz1cImluc3RydWN0aW9uXCJcbj5cbiAgICB7eyBpMThuLm1zZ1N0cignZW1haWxMaW5rSWRwMScsIGlkcEFsaWFzLCBicm9rZXJDb250ZXh0LnVzZXJuYW1lLCByZWFsbS5kaXNwbGF5TmFtZSkgfX1cbjwvcD5cbjxwXG4gICAgaWQ9XCJpbnN0cnVjdGlvbjJcIlxuICAgIGNsYXNzPVwiaW5zdHJ1Y3Rpb25cIlxuPlxuICAgIHt7IGkxOG4ubXNnU3RyKCdlbWFpbExpbmtJZHAyJykgfX1cbiAgICA8YSBbaHJlZl09XCJ1cmwubG9naW5BY3Rpb25cIj57eyBpMThuLm1zZ1N0cignZG9DbGlja0hlcmUnKSB9fTwvYT5cbiAgICB7eyBpMThuLm1zZ1N0cignZW1haWxMaW5rSWRwMycpIH19XG48L3A+XG48cFxuICAgIGlkPVwiaW5zdHJ1Y3Rpb24zXCJcbiAgICBjbGFzcz1cImluc3RydWN0aW9uXCJcbj5cbiAgICB7eyBpMThuLm1zZ1N0cignZW1haWxMaW5rSWRwNCcpIH19XG4gICAgPGEgW2hyZWZdPVwidXJsLmxvZ2luQWN0aW9uXCI+e3sgaTE4bi5tc2dTdHIoJ2RvQ2xpY2tIZXJlJykgfX08L2E+XG4gICAge3sgaTE4bi5tc2dTdHIoJ2VtYWlsTGlua0lkcDUnKSB9fVxuPC9wPlxuIl19