@keycloakify/angular 0.0.1-rc.18 → 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 (271) 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 +40 -7
  10. package/esm2022/account/pages/account/account.component.mjs +6 -5
  11. package/esm2022/account/pages/applications/applications.component.mjs +6 -5
  12. package/esm2022/account/pages/federatedIdentity/federatedIdentity.component.mjs +6 -5
  13. package/esm2022/account/pages/log/log.component.mjs +6 -5
  14. package/esm2022/account/pages/password/password.component.mjs +6 -5
  15. package/esm2022/account/pages/sessions/sessions.component.mjs +6 -5
  16. package/esm2022/account/pages/totp/totp.component.mjs +6 -5
  17. package/esm2022/login/containers/template/template.component.mjs +81 -13
  18. package/esm2022/login/pages/code/code.component.mjs +14 -8
  19. package/esm2022/login/pages/delete-account-confirm/delete-account-confirm.component.mjs +12 -6
  20. package/esm2022/login/pages/delete-credential/delete-credential.component.mjs +10 -9
  21. package/esm2022/login/pages/error/error.component.mjs +14 -8
  22. package/esm2022/login/pages/frontchannel-logout/frontchannel-logout.component.mjs +12 -10
  23. package/esm2022/login/pages/idp-review-user-profile/idp-review-user-profile.component.mjs +12 -11
  24. package/esm2022/login/pages/info/info.component.mjs +11 -10
  25. package/esm2022/login/pages/login/login.component.mjs +13 -12
  26. package/esm2022/login/pages/login-config-totp/login-config-totp.component.mjs +12 -11
  27. package/esm2022/login/pages/login-idp-link-confirm/login-idp-link-confirm.component.mjs +11 -14
  28. package/esm2022/login/pages/login-idp-link-confirm-override/login-idp-link-confirm-override.component.mjs +11 -14
  29. package/esm2022/login/pages/login-idp-link-email/login-idp-link-email.component.mjs +10 -13
  30. package/esm2022/login/pages/login-oauth-grant/login-oauth-grant.component.mjs +11 -13
  31. package/esm2022/login/pages/login-oauth2-device-verify-user-code/login-oauth2-device-verify-user-code.component.mjs +10 -9
  32. package/esm2022/login/pages/login-otp/login-otp.component.mjs +11 -10
  33. package/esm2022/login/pages/login-page-expired/login-page-expired.component.mjs +10 -9
  34. package/esm2022/login/pages/login-passkeys-conditional-authenticate/login-passkeys-conditional-authenticate.component.mjs +11 -6
  35. package/esm2022/login/pages/login-password/login-password.component.mjs +13 -11
  36. package/esm2022/login/pages/login-recovery-authn-code-config/login-recovery-authn-code-config.component.mjs +12 -11
  37. package/esm2022/login/pages/login-recovery-authn-code-input/login-recovery-authn-code-input.component.mjs +12 -11
  38. package/esm2022/login/pages/login-reset-otp/login-reset-otp.component.mjs +11 -10
  39. package/esm2022/login/pages/login-reset-password/login-reset-password.component.mjs +11 -10
  40. package/esm2022/login/pages/login-update-password/login-update-password.component.mjs +11 -10
  41. package/esm2022/login/pages/login-update-profile/login-update-profile.component.mjs +11 -10
  42. package/esm2022/login/pages/login-username/login-username.component.mjs +12 -11
  43. package/esm2022/login/pages/login-verify-email/login-verify-email.component.mjs +10 -9
  44. package/esm2022/login/pages/login-x509-info/login-x509-info.component.mjs +10 -9
  45. package/esm2022/login/pages/logout-confirm/logout-confirm.component.mjs +10 -13
  46. package/esm2022/login/pages/register/register.component.mjs +14 -13
  47. package/esm2022/login/pages/saml-post-form/saml-post-form.component.mjs +14 -15
  48. package/esm2022/login/pages/select-authenticator/select-authenticator.component.mjs +11 -10
  49. package/esm2022/login/pages/terms/terms.component.mjs +10 -9
  50. package/esm2022/login/pages/update-email/update-email.component.mjs +12 -15
  51. package/esm2022/login/pages/webauthn-authenticate/webauthn-authenticate.component.mjs +10 -9
  52. package/esm2022/login/pages/webauthn-error/webauthn-error.component.mjs +11 -10
  53. package/esm2022/login/pages/webauthn-register/webauthn-register.component.mjs +10 -9
  54. package/fesm2022/keycloakify-angular-account-containers-template.mjs +40 -7
  55. package/fesm2022/keycloakify-angular-account-containers-template.mjs.map +1 -1
  56. package/fesm2022/keycloakify-angular-account-pages-account.mjs +5 -4
  57. package/fesm2022/keycloakify-angular-account-pages-account.mjs.map +1 -1
  58. package/fesm2022/keycloakify-angular-account-pages-applications.mjs +5 -4
  59. package/fesm2022/keycloakify-angular-account-pages-applications.mjs.map +1 -1
  60. package/fesm2022/keycloakify-angular-account-pages-federatedIdentity.mjs +5 -4
  61. package/fesm2022/keycloakify-angular-account-pages-federatedIdentity.mjs.map +1 -1
  62. package/fesm2022/keycloakify-angular-account-pages-log.mjs +5 -4
  63. package/fesm2022/keycloakify-angular-account-pages-log.mjs.map +1 -1
  64. package/fesm2022/keycloakify-angular-account-pages-password.mjs +5 -4
  65. package/fesm2022/keycloakify-angular-account-pages-password.mjs.map +1 -1
  66. package/fesm2022/keycloakify-angular-account-pages-sessions.mjs +5 -4
  67. package/fesm2022/keycloakify-angular-account-pages-sessions.mjs.map +1 -1
  68. package/fesm2022/keycloakify-angular-account-pages-totp.mjs +5 -4
  69. package/fesm2022/keycloakify-angular-account-pages-totp.mjs.map +1 -1
  70. package/fesm2022/keycloakify-angular-login-containers-template.mjs +81 -13
  71. package/fesm2022/keycloakify-angular-login-containers-template.mjs.map +1 -1
  72. package/fesm2022/keycloakify-angular-login-pages-code.mjs +13 -7
  73. package/fesm2022/keycloakify-angular-login-pages-code.mjs.map +1 -1
  74. package/fesm2022/keycloakify-angular-login-pages-delete-account-confirm.mjs +11 -5
  75. package/fesm2022/keycloakify-angular-login-pages-delete-account-confirm.mjs.map +1 -1
  76. package/fesm2022/keycloakify-angular-login-pages-delete-credential.mjs +9 -8
  77. package/fesm2022/keycloakify-angular-login-pages-delete-credential.mjs.map +1 -1
  78. package/fesm2022/keycloakify-angular-login-pages-error.mjs +13 -7
  79. package/fesm2022/keycloakify-angular-login-pages-error.mjs.map +1 -1
  80. package/fesm2022/keycloakify-angular-login-pages-frontchannel-logout.mjs +11 -9
  81. package/fesm2022/keycloakify-angular-login-pages-frontchannel-logout.mjs.map +1 -1
  82. package/fesm2022/keycloakify-angular-login-pages-idp-review-user-profile.mjs +11 -10
  83. package/fesm2022/keycloakify-angular-login-pages-idp-review-user-profile.mjs.map +1 -1
  84. package/fesm2022/keycloakify-angular-login-pages-info.mjs +10 -9
  85. package/fesm2022/keycloakify-angular-login-pages-info.mjs.map +1 -1
  86. package/fesm2022/keycloakify-angular-login-pages-login-config-totp.mjs +11 -10
  87. package/fesm2022/keycloakify-angular-login-pages-login-config-totp.mjs.map +1 -1
  88. package/fesm2022/keycloakify-angular-login-pages-login-idp-link-confirm-override.mjs +10 -13
  89. package/fesm2022/keycloakify-angular-login-pages-login-idp-link-confirm-override.mjs.map +1 -1
  90. package/fesm2022/keycloakify-angular-login-pages-login-idp-link-confirm.mjs +10 -13
  91. package/fesm2022/keycloakify-angular-login-pages-login-idp-link-confirm.mjs.map +1 -1
  92. package/fesm2022/keycloakify-angular-login-pages-login-idp-link-email.mjs +9 -12
  93. package/fesm2022/keycloakify-angular-login-pages-login-idp-link-email.mjs.map +1 -1
  94. package/fesm2022/keycloakify-angular-login-pages-login-oauth-grant.mjs +10 -12
  95. package/fesm2022/keycloakify-angular-login-pages-login-oauth-grant.mjs.map +1 -1
  96. package/fesm2022/keycloakify-angular-login-pages-login-oauth2-device-verify-user-code.mjs +9 -8
  97. package/fesm2022/keycloakify-angular-login-pages-login-oauth2-device-verify-user-code.mjs.map +1 -1
  98. package/fesm2022/keycloakify-angular-login-pages-login-otp.mjs +10 -9
  99. package/fesm2022/keycloakify-angular-login-pages-login-otp.mjs.map +1 -1
  100. package/fesm2022/keycloakify-angular-login-pages-login-page-expired.mjs +9 -8
  101. package/fesm2022/keycloakify-angular-login-pages-login-page-expired.mjs.map +1 -1
  102. package/fesm2022/keycloakify-angular-login-pages-login-passkeys-conditional-authenticate.mjs +10 -5
  103. package/fesm2022/keycloakify-angular-login-pages-login-passkeys-conditional-authenticate.mjs.map +1 -1
  104. package/fesm2022/keycloakify-angular-login-pages-login-password.mjs +12 -10
  105. package/fesm2022/keycloakify-angular-login-pages-login-password.mjs.map +1 -1
  106. package/fesm2022/keycloakify-angular-login-pages-login-recovery-authn-code-config.mjs +11 -10
  107. package/fesm2022/keycloakify-angular-login-pages-login-recovery-authn-code-config.mjs.map +1 -1
  108. package/fesm2022/keycloakify-angular-login-pages-login-recovery-authn-code-input.mjs +11 -10
  109. package/fesm2022/keycloakify-angular-login-pages-login-recovery-authn-code-input.mjs.map +1 -1
  110. package/fesm2022/keycloakify-angular-login-pages-login-reset-otp.mjs +10 -9
  111. package/fesm2022/keycloakify-angular-login-pages-login-reset-otp.mjs.map +1 -1
  112. package/fesm2022/keycloakify-angular-login-pages-login-reset-password.mjs +10 -9
  113. package/fesm2022/keycloakify-angular-login-pages-login-reset-password.mjs.map +1 -1
  114. package/fesm2022/keycloakify-angular-login-pages-login-update-password.mjs +10 -9
  115. package/fesm2022/keycloakify-angular-login-pages-login-update-password.mjs.map +1 -1
  116. package/fesm2022/keycloakify-angular-login-pages-login-update-profile.mjs +10 -9
  117. package/fesm2022/keycloakify-angular-login-pages-login-update-profile.mjs.map +1 -1
  118. package/fesm2022/keycloakify-angular-login-pages-login-username.mjs +11 -10
  119. package/fesm2022/keycloakify-angular-login-pages-login-username.mjs.map +1 -1
  120. package/fesm2022/keycloakify-angular-login-pages-login-verify-email.mjs +9 -8
  121. package/fesm2022/keycloakify-angular-login-pages-login-verify-email.mjs.map +1 -1
  122. package/fesm2022/keycloakify-angular-login-pages-login-x509-info.mjs +9 -8
  123. package/fesm2022/keycloakify-angular-login-pages-login-x509-info.mjs.map +1 -1
  124. package/fesm2022/keycloakify-angular-login-pages-login.mjs +12 -11
  125. package/fesm2022/keycloakify-angular-login-pages-login.mjs.map +1 -1
  126. package/fesm2022/keycloakify-angular-login-pages-logout-confirm.mjs +9 -12
  127. package/fesm2022/keycloakify-angular-login-pages-logout-confirm.mjs.map +1 -1
  128. package/fesm2022/keycloakify-angular-login-pages-register.mjs +13 -12
  129. package/fesm2022/keycloakify-angular-login-pages-register.mjs.map +1 -1
  130. package/fesm2022/keycloakify-angular-login-pages-saml-post-form.mjs +13 -14
  131. package/fesm2022/keycloakify-angular-login-pages-saml-post-form.mjs.map +1 -1
  132. package/fesm2022/keycloakify-angular-login-pages-select-authenticator.mjs +10 -9
  133. package/fesm2022/keycloakify-angular-login-pages-select-authenticator.mjs.map +1 -1
  134. package/fesm2022/keycloakify-angular-login-pages-terms.mjs +9 -8
  135. package/fesm2022/keycloakify-angular-login-pages-terms.mjs.map +1 -1
  136. package/fesm2022/keycloakify-angular-login-pages-update-email.mjs +11 -14
  137. package/fesm2022/keycloakify-angular-login-pages-update-email.mjs.map +1 -1
  138. package/fesm2022/keycloakify-angular-login-pages-webauthn-authenticate.mjs +9 -8
  139. package/fesm2022/keycloakify-angular-login-pages-webauthn-authenticate.mjs.map +1 -1
  140. package/fesm2022/keycloakify-angular-login-pages-webauthn-error.mjs +10 -9
  141. package/fesm2022/keycloakify-angular-login-pages-webauthn-error.mjs.map +1 -1
  142. package/fesm2022/keycloakify-angular-login-pages-webauthn-register.mjs +9 -8
  143. package/fesm2022/keycloakify-angular-login-pages-webauthn-register.mjs.map +1 -1
  144. package/login/containers/template/template.component.d.ts +25 -9
  145. package/login/pages/code/code.component.d.ts +12 -3
  146. package/login/pages/delete-account-confirm/delete-account-confirm.component.d.ts +11 -2
  147. package/login/pages/delete-credential/delete-credential.component.d.ts +9 -5
  148. package/login/pages/error/error.component.d.ts +11 -2
  149. package/login/pages/frontchannel-logout/frontchannel-logout.component.d.ts +9 -5
  150. package/login/pages/idp-review-user-profile/idp-review-user-profile.component.d.ts +10 -7
  151. package/login/pages/info/info.component.d.ts +9 -5
  152. package/login/pages/login/login.component.d.ts +10 -6
  153. package/login/pages/login-config-totp/login-config-totp.component.d.ts +9 -5
  154. package/login/pages/login-idp-link-confirm/login-idp-link-confirm.component.d.ts +8 -7
  155. package/login/pages/login-idp-link-confirm-override/login-idp-link-confirm-override.component.d.ts +8 -7
  156. package/login/pages/login-idp-link-email/login-idp-link-email.component.d.ts +8 -7
  157. package/login/pages/login-oauth-grant/login-oauth-grant.component.d.ts +8 -7
  158. package/login/pages/login-oauth2-device-verify-user-code/login-oauth2-device-verify-user-code.component.d.ts +9 -5
  159. package/login/pages/login-otp/login-otp.component.d.ts +9 -5
  160. package/login/pages/login-page-expired/login-page-expired.component.d.ts +9 -5
  161. package/login/pages/login-passkeys-conditional-authenticate/login-passkeys-conditional-authenticate.component.d.ts +11 -3
  162. package/login/pages/login-password/login-password.component.d.ts +10 -5
  163. package/login/pages/login-recovery-authn-code-config/login-recovery-authn-code-config.component.d.ts +9 -5
  164. package/login/pages/login-recovery-authn-code-input/login-recovery-authn-code-input.component.d.ts +9 -5
  165. package/login/pages/login-reset-otp/login-reset-otp.component.d.ts +9 -5
  166. package/login/pages/login-reset-password/login-reset-password.component.d.ts +9 -5
  167. package/login/pages/login-update-password/login-update-password.component.d.ts +9 -5
  168. package/login/pages/login-update-profile/login-update-profile.component.d.ts +9 -6
  169. package/login/pages/login-username/login-username.component.d.ts +10 -6
  170. package/login/pages/login-verify-email/login-verify-email.component.d.ts +9 -5
  171. package/login/pages/login-x509-info/login-x509-info.component.d.ts +9 -5
  172. package/login/pages/logout-confirm/logout-confirm.component.d.ts +8 -7
  173. package/login/pages/register/register.component.d.ts +11 -8
  174. package/login/pages/saml-post-form/saml-post-form.component.d.ts +10 -7
  175. package/login/pages/select-authenticator/select-authenticator.component.d.ts +9 -5
  176. package/login/pages/terms/terms.component.d.ts +9 -5
  177. package/login/pages/update-email/update-email.component.d.ts +9 -9
  178. package/login/pages/webauthn-authenticate/webauthn-authenticate.component.d.ts +10 -6
  179. package/login/pages/webauthn-error/webauthn-error.component.d.ts +9 -5
  180. package/login/pages/webauthn-register/webauthn-register.component.d.ts +10 -6
  181. package/package.json +8 -8
  182. package/src/account/containers/template/template.component.html +15 -10
  183. package/src/account/containers/template/template.component.ts +54 -7
  184. package/src/account/pages/account/account.component.html +139 -143
  185. package/src/account/pages/account/account.component.ts +4 -3
  186. package/src/account/pages/applications/applications.component.html +128 -136
  187. package/src/account/pages/applications/applications.component.ts +4 -3
  188. package/src/account/pages/federatedIdentity/federatedIdentity.component.html +84 -88
  189. package/src/account/pages/federatedIdentity/federatedIdentity.component.ts +4 -3
  190. package/src/account/pages/log/log.component.html +35 -39
  191. package/src/account/pages/log/log.component.ts +4 -3
  192. package/src/account/pages/password/password.component.html +109 -113
  193. package/src/account/pages/password/password.component.ts +5 -3
  194. package/src/account/pages/sessions/sessions.component.html +52 -56
  195. package/src/account/pages/sessions/sessions.component.ts +4 -3
  196. package/src/account/pages/totp/totp.component.html +234 -238
  197. package/src/account/pages/totp/totp.component.ts +4 -3
  198. package/src/login/containers/template/template.component.html +22 -8
  199. package/src/login/containers/template/template.component.ts +100 -12
  200. package/src/login/pages/code/code.component.html +19 -23
  201. package/src/login/pages/code/code.component.ts +18 -6
  202. package/src/login/pages/delete-account-confirm/delete-account-confirm.component.html +41 -45
  203. package/src/login/pages/delete-account-confirm/delete-account-confirm.component.ts +16 -4
  204. package/src/login/pages/delete-credential/delete-credential.component.html +29 -31
  205. package/src/login/pages/delete-credential/delete-credential.component.ts +16 -9
  206. package/src/login/pages/error/error.component.html +20 -22
  207. package/src/login/pages/error/error.component.ts +17 -5
  208. package/src/login/pages/frontchannel-logout/frontchannel-logout.component.html +25 -34
  209. package/src/login/pages/frontchannel-logout/frontchannel-logout.component.ts +17 -9
  210. package/src/login/pages/idp-review-user-profile/idp-review-user-profile.component.html +29 -38
  211. package/src/login/pages/idp-review-user-profile/idp-review-user-profile.component.ts +18 -12
  212. package/src/login/pages/info/info.component.html +39 -48
  213. package/src/login/pages/info/info.component.ts +17 -10
  214. package/src/login/pages/login/login.component.html +184 -194
  215. package/src/login/pages/login/login.component.ts +20 -12
  216. package/src/login/pages/login-config-totp/login-config-totp.component.html +181 -190
  217. package/src/login/pages/login-config-totp/login-config-totp.component.ts +16 -10
  218. package/src/login/pages/login-idp-link-confirm/login-idp-link-confirm.component.html +27 -37
  219. package/src/login/pages/login-idp-link-confirm/login-idp-link-confirm.component.ts +15 -14
  220. package/src/login/pages/login-idp-link-confirm-override/login-idp-link-confirm-override.component.html +26 -36
  221. package/src/login/pages/login-idp-link-confirm-override/login-idp-link-confirm-override.component.ts +15 -14
  222. package/src/login/pages/login-idp-link-email/login-idp-link-email.component.html +24 -34
  223. package/src/login/pages/login-idp-link-email/login-idp-link-email.component.ts +15 -14
  224. package/src/login/pages/login-oauth-grant/login-oauth-grant.component.html +75 -84
  225. package/src/login/pages/login-oauth-grant/login-oauth-grant.component.ts +15 -14
  226. package/src/login/pages/login-oauth2-device-verify-user-code/login-oauth2-device-verify-user-code.component.html +49 -58
  227. package/src/login/pages/login-oauth2-device-verify-user-code/login-oauth2-device-verify-user-code.component.ts +15 -9
  228. package/src/login/pages/login-otp/login-otp.component.html +89 -98
  229. package/src/login/pages/login-otp/login-otp.component.ts +16 -9
  230. package/src/login/pages/login-page-expired/login-page-expired.component.html +26 -33
  231. package/src/login/pages/login-page-expired/login-page-expired.component.ts +15 -9
  232. package/src/login/pages/login-passkeys-conditional-authenticate/login-passkeys-conditional-authenticate.component.html +181 -188
  233. package/src/login/pages/login-passkeys-conditional-authenticate/login-passkeys-conditional-authenticate.component.ts +15 -5
  234. package/src/login/pages/login-password/login-password.component.html +73 -80
  235. package/src/login/pages/login-password/login-password.component.ts +17 -9
  236. package/src/login/pages/login-recovery-authn-code-config/login-recovery-authn-code-config.component.html +136 -145
  237. package/src/login/pages/login-recovery-authn-code-config/login-recovery-authn-code-config.component.ts +17 -9
  238. package/src/login/pages/login-recovery-authn-code-input/login-recovery-authn-code-input.component.html +60 -68
  239. package/src/login/pages/login-recovery-authn-code-input/login-recovery-authn-code-input.component.ts +16 -9
  240. package/src/login/pages/login-reset-otp/login-reset-otp.component.html +53 -60
  241. package/src/login/pages/login-reset-otp/login-reset-otp.component.ts +15 -8
  242. package/src/login/pages/login-reset-password/login-reset-password.component.html +77 -86
  243. package/src/login/pages/login-reset-password/login-reset-password.component.ts +16 -9
  244. package/src/login/pages/login-update-password/login-update-password.component.html +98 -108
  245. package/src/login/pages/login-update-password/login-update-password.component.ts +15 -8
  246. package/src/login/pages/login-update-profile/login-update-profile.component.html +44 -53
  247. package/src/login/pages/login-update-profile/login-update-profile.component.ts +17 -10
  248. package/src/login/pages/login-username/login-username.component.html +138 -148
  249. package/src/login/pages/login-username/login-username.component.ts +16 -9
  250. package/src/login/pages/login-verify-email/login-verify-email.component.html +17 -25
  251. package/src/login/pages/login-verify-email/login-verify-email.component.ts +15 -9
  252. package/src/login/pages/login-x509-info/login-x509-info.component.html +85 -94
  253. package/src/login/pages/login-x509-info/login-x509-info.component.ts +15 -9
  254. package/src/login/pages/logout-confirm/logout-confirm.component.html +39 -49
  255. package/src/login/pages/logout-confirm/logout-confirm.component.ts +15 -14
  256. package/src/login/pages/register/register.component.html +100 -110
  257. package/src/login/pages/register/register.component.ts +19 -12
  258. package/src/login/pages/saml-post-form/saml-post-form.component.html +39 -48
  259. package/src/login/pages/saml-post-form/saml-post-form.component.ts +19 -13
  260. package/src/login/pages/select-authenticator/select-authenticator.component.html +36 -44
  261. package/src/login/pages/select-authenticator/select-authenticator.component.ts +16 -9
  262. package/src/login/pages/terms/terms.component.html +25 -34
  263. package/src/login/pages/terms/terms.component.ts +16 -9
  264. package/src/login/pages/update-email/update-email.component.html +44 -53
  265. package/src/login/pages/update-email/update-email.component.ts +16 -15
  266. package/src/login/pages/webauthn-authenticate/webauthn-authenticate.component.html +134 -144
  267. package/src/login/pages/webauthn-authenticate/webauthn-authenticate.component.ts +16 -9
  268. package/src/login/pages/webauthn-error/webauthn-error.component.html +45 -55
  269. package/src/login/pages/webauthn-error/webauthn-error.component.ts +16 -9
  270. package/src/login/pages/webauthn-register/webauthn-register.component.html +65 -75
  271. package/src/login/pages/webauthn-register/webauthn-register.component.ts +16 -9
@@ -1,10 +1,10 @@
1
1
  import { AsyncPipe, NgClass } from '@angular/common';
2
- import { ChangeDetectionStrategy, Component, forwardRef, inject, input, signal } from '@angular/core';
2
+ import { ChangeDetectionStrategy, Component, forwardRef, inject, signal, viewChild } from '@angular/core';
3
+ import { KcSanitizePipe } from '@keycloakify/angular/lib/pipes/kc-sanitize';
3
4
  import { USE_DEFAULT_CSS } from '@keycloakify/angular/lib/tokens/use-default-css';
4
5
  import { ComponentReference } from '@keycloakify/angular/login/classes/component-reference';
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';
@@ -13,31 +13,32 @@ export class LoginUsernameComponent extends ComponentReference {
13
13
  constructor() {
14
14
  super(...arguments);
15
15
  this.kcContext = inject(KC_LOGIN_CONTEXT);
16
- this.displayRequiredFields = input(false);
17
- this.documentTitle = input();
18
- this.bodyClassName = input();
19
16
  this.i18n = inject(LOGIN_I18N);
20
17
  this.doUseDefaultCss = inject(USE_DEFAULT_CSS);
21
18
  this.classes = inject(LOGIN_CLASSES);
22
- this.isLoginButtonDisabled = signal(false);
19
+ this.displayRequiredFields = false;
23
20
  this.displayInfo = !!this.kcContext?.realm?.password && !!this.kcContext?.realm?.registrationAllowed && !this.kcContext?.registrationDisabled;
24
21
  this.displayMessage = !this.kcContext?.messagesPerField?.existsError('username');
22
+ this.headerNode = viewChild('headerNode');
23
+ this.infoNode = viewChild('infoNode');
24
+ this.socialProvidersNode = viewChild('socialProvidersNode');
25
+ this.isLoginButtonDisabled = signal(false);
25
26
  }
26
27
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: LoginUsernameComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
27
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: LoginUsernameComponent, 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: [
28
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: LoginUsernameComponent, isStandalone: true, selector: "kc-login-username", providers: [
28
29
  {
29
30
  provide: ComponentReference,
30
31
  useExisting: forwardRef(() => LoginUsernameComponent)
31
32
  }
32
- ], usesInheritance: true, ngImport: i0, template: "@let realm = kcContext.realm;\n@let social = kcContext.social;\n@let usernameHidden = kcContext.usernameHidden;\n@let messagesPerField = kcContext.messagesPerField;\n@let url = kcContext.url;\n@let login = kcContext.login;\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('doLogIn') }}\n </ng-container>\n <ng-container infoNode>\n <div id=\"kc-registration\">\n <span>\n {{ i18n.msgStr('noAccount') }}\n <a\n tabindex=\"6\"\n [href]=\"url?.registrationUrl\"\n >\n {{ i18n.msgStr('doRegister') }}\n </a>\n </span>\n </div>\n </ng-container>\n <ng-container socialProvidersNode>\n @if (!!realm?.password && !!social?.providers?.length) {\n <div\n id=\"kc-social-providers\"\n [kcClass]=\"'kcFormSocialAccountSectionClass'\"\n >\n <hr />\n <h2>{{ i18n.msgStr('identity-provider-login-label') }}</h2>\n <ul\n [kcClass]=\"{\n kcFormSocialAccountListClass: true,\n kcFormSocialAccountListGridClass: (social?.providers?.length ?? 0) > 3\n }\"\n >\n @for (provider of social?.providers; track provider.alias; let idx = $index) {\n <li>\n <a\n type=\"button\"\n [id]=\"provider.alias\"\n [kcClass]=\"{\n kcFormSocialAccountListButtonClass: true,\n kcFormSocialAccountGridItem: (social?.providers?.length ?? 0) > 3\n }\"\n [href]=\"provider.loginUrl\"\n >\n @if (provider.iconClasses) {\n <i\n aria-hidden=\"true\"\n [ngClass]=\"provider.iconClasses\"\n [kcClass]=\"'kcCommonLogoIdP'\"\n ></i>\n }\n <span\n [ngClass]=\"{\n 'kc-social-icon-text': provider.iconClasses\n }\"\n [kcClass]=\"'kcFormSocialAccountNameClass'\"\n [innerHTML]=\"provider.displayName | kcSanitize: 'html'\"\n ></span>\n </a>\n </li>\n }\n </ul>\n </div>\n }\n </ng-container>\n <ng-container content>\n <div id=\"kc-form\">\n <div id=\"kc-form-wrapper\">\n @if (realm.password) {\n <form\n id=\"kc-form-login\"\n method=\"post\"\n [action]=\"url?.loginAction\"\n (onSubmit)=\"isLoginButtonDisabled.set(true)\"\n >\n @if (!usernameHidden) {\n <div [kcClass]=\"'kcFormGroupClass'\">\n <label\n for=\"username\"\n [kcClass]=\"'kcLabelClass'\"\n >\n @if (!realm?.loginWithEmailAllowed) {\n {{ i18n.msgStr('username') }}\n } @else if (!realm?.registrationEmailAsUsername) {\n {{ i18n.msgStr('usernameOrEmail') }}\n } @else {\n {{ i18n.msgStr('email') }}\n }\n </label>\n <input\n tabindex=\"2\"\n id=\"username\"\n name=\"username\"\n type=\"text\"\n autofocus\n autoComplete=\"off\"\n [kcClass]=\"'kcInputClass'\"\n [defaultValue]=\"login?.username || ''\"\n [attr.aria-invalid]=\"messagesPerField?.existsError('username')\"\n />\n @if (messagesPerField?.existsError('username')) {\n <span\n id=\"input-error\"\n aria-live=\"polite\"\n [kcClass]=\"'kcInputErrorMessageClass'\"\n [innerHTML]=\"messagesPerField.getFirstError('username') | kcSanitize: 'html'\"\n >\n </span>\n }\n <!---->\n </div>\n }\n\n <div [kcClass]=\"['kcFormGroupClass', 'kcFormSettingClass']\">\n <div id=\"kc-form-options\">\n @if (realm.rememberMe && !usernameHidden) {\n <div class=\"checkbox\">\n <label>\n <input\n tabindex=\"5\"\n id=\"rememberMe\"\n name=\"rememberMe\"\n type=\"checkbox\"\n [defaultChecked]=\"!!login?.rememberMe\"\n />\n {{ i18n.msgStr('rememberMe') }}\n </label>\n </div>\n }\n </div>\n </div>\n <div\n id=\"kc-form-buttons\"\n [kcClass]=\"'kcFormGroupClass'\"\n >\n <input\n tabindex=\"4\"\n name=\"login\"\n id=\"kc-login\"\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doLogIn')\"\n />\n </div>\n </form>\n }\n </div>\n </div>\n </ng-container>\n</kc-login-template>\n", dependencies: [{ kind: "directive", type: KcClassDirective, selector: "[kcClass]", inputs: ["class", "ngClass", "kcClass"] }, { kind: "pipe", type: KcSanitizePipe, name: "kcSanitize" }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: TemplateComponent, selector: "kc-login-template", inputs: ["displayInfo", "displayMessage", "displayRequiredFields", "documentTitle", "bodyClassName"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
33
+ ], 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 realm = kcContext.realm;\n@let social = kcContext.social;\n@let usernameHidden = kcContext.usernameHidden;\n@let messagesPerField = kcContext.messagesPerField;\n@let url = kcContext.url;\n@let login = kcContext.login;\n\n<ng-template #headerNode>\n {{ i18n.msgStr('doLogIn') }}\n</ng-template>\n<ng-container infoNode>\n <div id=\"kc-registration\">\n <span>\n {{ i18n.msgStr('noAccount') }}\n <a\n tabindex=\"6\"\n [href]=\"url?.registrationUrl\"\n >\n {{ i18n.msgStr('doRegister') }}\n </a>\n </span>\n </div>\n</ng-container>\n<ng-template #socialProvidersNode>\n @if (!!realm?.password && !!social?.providers?.length) {\n <div\n id=\"kc-social-providers\"\n [kcClass]=\"'kcFormSocialAccountSectionClass'\"\n >\n <hr />\n <h2>{{ i18n.msgStr('identity-provider-login-label') }}</h2>\n <ul\n [kcClass]=\"{\n kcFormSocialAccountListClass: true,\n kcFormSocialAccountListGridClass: (social?.providers?.length ?? 0) > 3\n }\"\n >\n @for (provider of social?.providers; track provider.alias; let idx = $index) {\n <li>\n <a\n type=\"button\"\n [id]=\"provider.alias\"\n [kcClass]=\"{\n kcFormSocialAccountListButtonClass: true,\n kcFormSocialAccountGridItem: (social?.providers?.length ?? 0) > 3\n }\"\n [href]=\"provider.loginUrl\"\n >\n @if (provider.iconClasses) {\n <i\n aria-hidden=\"true\"\n [ngClass]=\"provider.iconClasses\"\n [kcClass]=\"'kcCommonLogoIdP'\"\n ></i>\n }\n <span\n [ngClass]=\"{\n 'kc-social-icon-text': provider.iconClasses\n }\"\n [kcClass]=\"'kcFormSocialAccountNameClass'\"\n [innerHTML]=\"provider.displayName | kcSanitize: 'html'\"\n ></span>\n </a>\n </li>\n }\n </ul>\n </div>\n }\n</ng-template>\n<div id=\"kc-form\">\n <div id=\"kc-form-wrapper\">\n @if (realm.password) {\n <form\n id=\"kc-form-login\"\n method=\"post\"\n [action]=\"url?.loginAction\"\n (onSubmit)=\"isLoginButtonDisabled.set(true)\"\n >\n @if (!usernameHidden) {\n <div [kcClass]=\"'kcFormGroupClass'\">\n <label\n for=\"username\"\n [kcClass]=\"'kcLabelClass'\"\n >\n @if (!realm?.loginWithEmailAllowed) {\n {{ i18n.msgStr('username') }}\n } @else if (!realm?.registrationEmailAsUsername) {\n {{ i18n.msgStr('usernameOrEmail') }}\n } @else {\n {{ i18n.msgStr('email') }}\n }\n </label>\n <input\n tabindex=\"2\"\n id=\"username\"\n name=\"username\"\n type=\"text\"\n autofocus\n autoComplete=\"off\"\n [kcClass]=\"'kcInputClass'\"\n [defaultValue]=\"login?.username || ''\"\n [attr.aria-invalid]=\"messagesPerField?.existsError('username')\"\n />\n @if (messagesPerField?.existsError('username')) {\n <span\n id=\"input-error\"\n aria-live=\"polite\"\n [kcClass]=\"'kcInputErrorMessageClass'\"\n [innerHTML]=\"messagesPerField.getFirstError('username') | kcSanitize: 'html'\"\n >\n </span>\n }\n <!---->\n </div>\n }\n\n <div [kcClass]=\"['kcFormGroupClass', 'kcFormSettingClass']\">\n <div id=\"kc-form-options\">\n @if (realm.rememberMe && !usernameHidden) {\n <div class=\"checkbox\">\n <label>\n <input\n tabindex=\"5\"\n id=\"rememberMe\"\n name=\"rememberMe\"\n type=\"checkbox\"\n [defaultChecked]=\"!!login?.rememberMe\"\n />\n {{ i18n.msgStr('rememberMe') }}\n </label>\n </div>\n }\n </div>\n </div>\n <div\n id=\"kc-form-buttons\"\n [kcClass]=\"'kcFormGroupClass'\"\n >\n <input\n tabindex=\"4\"\n name=\"login\"\n id=\"kc-login\"\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doLogIn')\"\n />\n </div>\n </form>\n }\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: KcClassDirective, selector: "[kcClass]", inputs: ["class", "ngClass", "kcClass"] }, { kind: "pipe", type: KcSanitizePipe, name: "kcSanitize" }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
33
34
  }
34
35
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: LoginUsernameComponent, decorators: [{
35
36
  type: Component,
36
- args: [{ selector: 'kc-root', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [KcClassDirective, AsyncPipe, KcSanitizePipe, NgClass, TemplateComponent], providers: [
37
+ args: [{ selector: 'kc-login-username', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [KcClassDirective, AsyncPipe, KcSanitizePipe, NgClass, TemplateComponent], providers: [
37
38
  {
38
39
  provide: ComponentReference,
39
40
  useExisting: forwardRef(() => LoginUsernameComponent)
40
41
  }
41
- ], template: "@let realm = kcContext.realm;\n@let social = kcContext.social;\n@let usernameHidden = kcContext.usernameHidden;\n@let messagesPerField = kcContext.messagesPerField;\n@let url = kcContext.url;\n@let login = kcContext.login;\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('doLogIn') }}\n </ng-container>\n <ng-container infoNode>\n <div id=\"kc-registration\">\n <span>\n {{ i18n.msgStr('noAccount') }}\n <a\n tabindex=\"6\"\n [href]=\"url?.registrationUrl\"\n >\n {{ i18n.msgStr('doRegister') }}\n </a>\n </span>\n </div>\n </ng-container>\n <ng-container socialProvidersNode>\n @if (!!realm?.password && !!social?.providers?.length) {\n <div\n id=\"kc-social-providers\"\n [kcClass]=\"'kcFormSocialAccountSectionClass'\"\n >\n <hr />\n <h2>{{ i18n.msgStr('identity-provider-login-label') }}</h2>\n <ul\n [kcClass]=\"{\n kcFormSocialAccountListClass: true,\n kcFormSocialAccountListGridClass: (social?.providers?.length ?? 0) > 3\n }\"\n >\n @for (provider of social?.providers; track provider.alias; let idx = $index) {\n <li>\n <a\n type=\"button\"\n [id]=\"provider.alias\"\n [kcClass]=\"{\n kcFormSocialAccountListButtonClass: true,\n kcFormSocialAccountGridItem: (social?.providers?.length ?? 0) > 3\n }\"\n [href]=\"provider.loginUrl\"\n >\n @if (provider.iconClasses) {\n <i\n aria-hidden=\"true\"\n [ngClass]=\"provider.iconClasses\"\n [kcClass]=\"'kcCommonLogoIdP'\"\n ></i>\n }\n <span\n [ngClass]=\"{\n 'kc-social-icon-text': provider.iconClasses\n }\"\n [kcClass]=\"'kcFormSocialAccountNameClass'\"\n [innerHTML]=\"provider.displayName | kcSanitize: 'html'\"\n ></span>\n </a>\n </li>\n }\n </ul>\n </div>\n }\n </ng-container>\n <ng-container content>\n <div id=\"kc-form\">\n <div id=\"kc-form-wrapper\">\n @if (realm.password) {\n <form\n id=\"kc-form-login\"\n method=\"post\"\n [action]=\"url?.loginAction\"\n (onSubmit)=\"isLoginButtonDisabled.set(true)\"\n >\n @if (!usernameHidden) {\n <div [kcClass]=\"'kcFormGroupClass'\">\n <label\n for=\"username\"\n [kcClass]=\"'kcLabelClass'\"\n >\n @if (!realm?.loginWithEmailAllowed) {\n {{ i18n.msgStr('username') }}\n } @else if (!realm?.registrationEmailAsUsername) {\n {{ i18n.msgStr('usernameOrEmail') }}\n } @else {\n {{ i18n.msgStr('email') }}\n }\n </label>\n <input\n tabindex=\"2\"\n id=\"username\"\n name=\"username\"\n type=\"text\"\n autofocus\n autoComplete=\"off\"\n [kcClass]=\"'kcInputClass'\"\n [defaultValue]=\"login?.username || ''\"\n [attr.aria-invalid]=\"messagesPerField?.existsError('username')\"\n />\n @if (messagesPerField?.existsError('username')) {\n <span\n id=\"input-error\"\n aria-live=\"polite\"\n [kcClass]=\"'kcInputErrorMessageClass'\"\n [innerHTML]=\"messagesPerField.getFirstError('username') | kcSanitize: 'html'\"\n >\n </span>\n }\n <!---->\n </div>\n }\n\n <div [kcClass]=\"['kcFormGroupClass', 'kcFormSettingClass']\">\n <div id=\"kc-form-options\">\n @if (realm.rememberMe && !usernameHidden) {\n <div class=\"checkbox\">\n <label>\n <input\n tabindex=\"5\"\n id=\"rememberMe\"\n name=\"rememberMe\"\n type=\"checkbox\"\n [defaultChecked]=\"!!login?.rememberMe\"\n />\n {{ i18n.msgStr('rememberMe') }}\n </label>\n </div>\n }\n </div>\n </div>\n <div\n id=\"kc-form-buttons\"\n [kcClass]=\"'kcFormGroupClass'\"\n >\n <input\n tabindex=\"4\"\n name=\"login\"\n id=\"kc-login\"\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doLogIn')\"\n />\n </div>\n </form>\n }\n </div>\n </div>\n </ng-container>\n</kc-login-template>\n" }]
42
+ ], template: "@let realm = kcContext.realm;\n@let social = kcContext.social;\n@let usernameHidden = kcContext.usernameHidden;\n@let messagesPerField = kcContext.messagesPerField;\n@let url = kcContext.url;\n@let login = kcContext.login;\n\n<ng-template #headerNode>\n {{ i18n.msgStr('doLogIn') }}\n</ng-template>\n<ng-container infoNode>\n <div id=\"kc-registration\">\n <span>\n {{ i18n.msgStr('noAccount') }}\n <a\n tabindex=\"6\"\n [href]=\"url?.registrationUrl\"\n >\n {{ i18n.msgStr('doRegister') }}\n </a>\n </span>\n </div>\n</ng-container>\n<ng-template #socialProvidersNode>\n @if (!!realm?.password && !!social?.providers?.length) {\n <div\n id=\"kc-social-providers\"\n [kcClass]=\"'kcFormSocialAccountSectionClass'\"\n >\n <hr />\n <h2>{{ i18n.msgStr('identity-provider-login-label') }}</h2>\n <ul\n [kcClass]=\"{\n kcFormSocialAccountListClass: true,\n kcFormSocialAccountListGridClass: (social?.providers?.length ?? 0) > 3\n }\"\n >\n @for (provider of social?.providers; track provider.alias; let idx = $index) {\n <li>\n <a\n type=\"button\"\n [id]=\"provider.alias\"\n [kcClass]=\"{\n kcFormSocialAccountListButtonClass: true,\n kcFormSocialAccountGridItem: (social?.providers?.length ?? 0) > 3\n }\"\n [href]=\"provider.loginUrl\"\n >\n @if (provider.iconClasses) {\n <i\n aria-hidden=\"true\"\n [ngClass]=\"provider.iconClasses\"\n [kcClass]=\"'kcCommonLogoIdP'\"\n ></i>\n }\n <span\n [ngClass]=\"{\n 'kc-social-icon-text': provider.iconClasses\n }\"\n [kcClass]=\"'kcFormSocialAccountNameClass'\"\n [innerHTML]=\"provider.displayName | kcSanitize: 'html'\"\n ></span>\n </a>\n </li>\n }\n </ul>\n </div>\n }\n</ng-template>\n<div id=\"kc-form\">\n <div id=\"kc-form-wrapper\">\n @if (realm.password) {\n <form\n id=\"kc-form-login\"\n method=\"post\"\n [action]=\"url?.loginAction\"\n (onSubmit)=\"isLoginButtonDisabled.set(true)\"\n >\n @if (!usernameHidden) {\n <div [kcClass]=\"'kcFormGroupClass'\">\n <label\n for=\"username\"\n [kcClass]=\"'kcLabelClass'\"\n >\n @if (!realm?.loginWithEmailAllowed) {\n {{ i18n.msgStr('username') }}\n } @else if (!realm?.registrationEmailAsUsername) {\n {{ i18n.msgStr('usernameOrEmail') }}\n } @else {\n {{ i18n.msgStr('email') }}\n }\n </label>\n <input\n tabindex=\"2\"\n id=\"username\"\n name=\"username\"\n type=\"text\"\n autofocus\n autoComplete=\"off\"\n [kcClass]=\"'kcInputClass'\"\n [defaultValue]=\"login?.username || ''\"\n [attr.aria-invalid]=\"messagesPerField?.existsError('username')\"\n />\n @if (messagesPerField?.existsError('username')) {\n <span\n id=\"input-error\"\n aria-live=\"polite\"\n [kcClass]=\"'kcInputErrorMessageClass'\"\n [innerHTML]=\"messagesPerField.getFirstError('username') | kcSanitize: 'html'\"\n >\n </span>\n }\n <!---->\n </div>\n }\n\n <div [kcClass]=\"['kcFormGroupClass', 'kcFormSettingClass']\">\n <div id=\"kc-form-options\">\n @if (realm.rememberMe && !usernameHidden) {\n <div class=\"checkbox\">\n <label>\n <input\n tabindex=\"5\"\n id=\"rememberMe\"\n name=\"rememberMe\"\n type=\"checkbox\"\n [defaultChecked]=\"!!login?.rememberMe\"\n />\n {{ i18n.msgStr('rememberMe') }}\n </label>\n </div>\n }\n </div>\n </div>\n <div\n id=\"kc-form-buttons\"\n [kcClass]=\"'kcFormGroupClass'\"\n >\n <input\n tabindex=\"4\"\n name=\"login\"\n id=\"kc-login\"\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doLogIn')\"\n />\n </div>\n </form>\n }\n </div>\n</div>\n" }]
42
43
  }] });
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4tdXNlcm5hbWUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xvZ2luL3BhZ2VzL2xvZ2luLXVzZXJuYW1lL2xvZ2luLXVzZXJuYW1lLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9sb2dpbi9wYWdlcy9sb2dpbi11c2VybmFtZS9sb2dpbi11c2VybmFtZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3JELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RHLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUNsRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUM1RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUNuRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUNsRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDNUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQzs7QUFrQmhGLE1BQU0sT0FBTyxzQkFBdUIsU0FBUSxrQkFBa0I7SUFiOUQ7O1FBY0ksY0FBUyxHQUFHLE1BQU0sQ0FBdUQsZ0JBQWdCLENBQUMsQ0FBQztRQUMzRiwwQkFBcUIsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckMsa0JBQWEsR0FBRyxLQUFLLEVBQVUsQ0FBQztRQUNoQyxrQkFBYSxHQUFHLEtBQUssRUFBVSxDQUFDO1FBQ2hDLFNBQUksR0FBRyxNQUFNLENBQU8sVUFBVSxDQUFDLENBQUM7UUFDdkIsb0JBQWUsR0FBRyxNQUFNLENBQVUsZUFBZSxDQUFDLENBQUM7UUFDbkQsWUFBTyxHQUFHLE1BQU0sQ0FBb0MsYUFBYSxDQUFDLENBQUM7UUFDNUUsMEJBQXFCLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3RDLGdCQUFXLEdBQVksQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLFFBQVEsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsbUJBQW1CLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLG9CQUFvQixDQUFDO1FBQ2xKLG1CQUFjLEdBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQztLQUN4Rjs4R0FYWSxzQkFBc0I7a0dBQXRCLHNCQUFzQiwwZ0JBUHBCO1lBQ1A7Z0JBQ0ksT0FBTyxFQUFFLGtCQUFrQjtnQkFDM0IsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQzthQUN4RDtTQUNKLGlEQ3pCTCxtNU9BaUtBLDRDRDlJYyxnQkFBZ0IsMEZBQWEsY0FBYyxtREFBRSxPQUFPLG9GQUFFLGlCQUFpQjs7MkZBUXhFLHNCQUFzQjtrQkFibEMsU0FBUzsrQkFDSSxTQUFTLGNBRVAsSUFBSSxtQkFDQyx1QkFBdUIsQ0FBQyxNQUFNLFdBQ3RDLENBQUMsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLGNBQWMsRUFBRSxPQUFPLEVBQUUsaUJBQWlCLENBQUMsYUFDdkU7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLGtCQUFrQjs0QkFDM0IsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsdUJBQXVCLENBQUM7eUJBQ3hEO3FCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXN5bmNQaXBlLCBOZ0NsYXNzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGZvcndhcmRSZWYsIGluamVjdCwgaW5wdXQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVVNFX0RFRkFVTFRfQ1NTIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbGliL3Rva2Vucy91c2UtZGVmYXVsdC1jc3MnO1xuaW1wb3J0IHsgQ29tcG9uZW50UmVmZXJlbmNlIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vY2xhc3Nlcy9jb21wb25lbnQtcmVmZXJlbmNlJztcbmltcG9ydCB7IFRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vY29udGFpbmVycy90ZW1wbGF0ZSc7XG5pbXBvcnQgeyBLY0NsYXNzRGlyZWN0aXZlIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vZGlyZWN0aXZlcy9rYy1jbGFzcyc7XG5pbXBvcnQgeyBLY1Nhbml0aXplUGlwZSB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xpYi9waXBlcy9rYy1zYW5pdGl6ZSc7XG5pbXBvcnQgeyBMT0dJTl9DTEFTU0VTIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vdG9rZW5zL2NsYXNzZXMnO1xuaW1wb3J0IHsgTE9HSU5fSTE4TiB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL3Rva2Vucy9pMThuJztcbmltcG9ydCB7IEtDX0xPR0lOX0NPTlRFWFQgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi90b2tlbnMva2MtY29udGV4dCc7XG5pbXBvcnQgdHlwZSB7IENsYXNzS2V5IH0gZnJvbSAna2V5Y2xvYWtpZnkvbG9naW4vbGliL2tjQ2xzeCc7XG5pbXBvcnQgdHlwZSB7IEkxOG4gfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9pMThuJztcbmltcG9ydCB0eXBlIHsgS2NDb250ZXh0IH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vS2NDb250ZXh0JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdrYy1yb290JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbG9naW4tdXNlcm5hbWUuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgaW1wb3J0czogW0tjQ2xhc3NEaXJlY3RpdmUsIEFzeW5jUGlwZSwgS2NTYW5pdGl6ZVBpcGUsIE5nQ2xhc3MsIFRlbXBsYXRlQ29tcG9uZW50XSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogQ29tcG9uZW50UmVmZXJlbmNlLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gTG9naW5Vc2VybmFtZUNvbXBvbmVudClcbiAgICAgICAgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgTG9naW5Vc2VybmFtZUNvbXBvbmVudCBleHRlbmRzIENvbXBvbmVudFJlZmVyZW5jZSB7XG4gICAga2NDb250ZXh0ID0gaW5qZWN0PEV4dHJhY3Q8S2NDb250ZXh0LCB7IHBhZ2VJZDogJ2xvZ2luLXVzZXJuYW1lLmZ0bCcgfT4+KEtDX0xPR0lOX0NPTlRFWFQpO1xuICAgIGRpc3BsYXlSZXF1aXJlZEZpZWxkcyA9IGlucHV0KGZhbHNlKTtcbiAgICBkb2N1bWVudFRpdGxlID0gaW5wdXQ8c3RyaW5nPigpO1xuICAgIGJvZHlDbGFzc05hbWUgPSBpbnB1dDxzdHJpbmc+KCk7XG4gICAgaTE4biA9IGluamVjdDxJMThuPihMT0dJTl9JMThOKTtcbiAgICBvdmVycmlkZSBkb1VzZURlZmF1bHRDc3MgPSBpbmplY3Q8Ym9vbGVhbj4oVVNFX0RFRkFVTFRfQ1NTKTtcbiAgICBvdmVycmlkZSBjbGFzc2VzID0gaW5qZWN0PFBhcnRpYWw8UmVjb3JkPENsYXNzS2V5LCBzdHJpbmc+Pj4oTE9HSU5fQ0xBU1NFUyk7XG4gICAgaXNMb2dpbkJ1dHRvbkRpc2FibGVkID0gc2lnbmFsKGZhbHNlKTtcbiAgICBkaXNwbGF5SW5mbzogYm9vbGVhbiA9ICEhdGhpcy5rY0NvbnRleHQ/LnJlYWxtPy5wYXNzd29yZCAmJiAhIXRoaXMua2NDb250ZXh0Py5yZWFsbT8ucmVnaXN0cmF0aW9uQWxsb3dlZCAmJiAhdGhpcy5rY0NvbnRleHQ/LnJlZ2lzdHJhdGlvbkRpc2FibGVkO1xuICAgIGRpc3BsYXlNZXNzYWdlOiBib29sZWFuID0gIXRoaXMua2NDb250ZXh0Py5tZXNzYWdlc1BlckZpZWxkPy5leGlzdHNFcnJvcigndXNlcm5hbWUnKTtcbn1cbiIsIkBsZXQgcmVhbG0gPSBrY0NvbnRleHQucmVhbG07XG5AbGV0IHNvY2lhbCA9IGtjQ29udGV4dC5zb2NpYWw7XG5AbGV0IHVzZXJuYW1lSGlkZGVuID0ga2NDb250ZXh0LnVzZXJuYW1lSGlkZGVuO1xuQGxldCBtZXNzYWdlc1BlckZpZWxkID0ga2NDb250ZXh0Lm1lc3NhZ2VzUGVyRmllbGQ7XG5AbGV0IHVybCA9IGtjQ29udGV4dC51cmw7XG5AbGV0IGxvZ2luID0ga2NDb250ZXh0LmxvZ2luO1xuXG48a2MtbG9naW4tdGVtcGxhdGVcbiAgICBbZGlzcGxheUluZm9dPVwiZGlzcGxheUluZm9cIlxuICAgIFtib2R5Q2xhc3NOYW1lXT1cImJvZHlDbGFzc05hbWUoKVwiXG4gICAgW2Rpc3BsYXlNZXNzYWdlXT1cImRpc3BsYXlNZXNzYWdlXCJcbiAgICBbZGlzcGxheVJlcXVpcmVkRmllbGRzXT1cImRpc3BsYXlSZXF1aXJlZEZpZWxkcygpXCJcbiAgICBbZG9jdW1lbnRUaXRsZV09XCJkb2N1bWVudFRpdGxlKClcIlxuPlxuICAgIDxuZy1jb250YWluZXIgaGVhZGVyTm9kZT5cbiAgICAgICAge3sgaTE4bi5tc2dTdHIoJ2RvTG9nSW4nKSB9fVxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgaW5mb05vZGU+XG4gICAgICAgIDxkaXYgaWQ9XCJrYy1yZWdpc3RyYXRpb25cIj5cbiAgICAgICAgICAgIDxzcGFuPlxuICAgICAgICAgICAgICAgIHt7IGkxOG4ubXNnU3RyKCdub0FjY291bnQnKSB9fVxuICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgIHRhYmluZGV4PVwiNlwiXG4gICAgICAgICAgICAgICAgICAgIFtocmVmXT1cInVybD8ucmVnaXN0cmF0aW9uVXJsXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHt7IGkxOG4ubXNnU3RyKCdkb1JlZ2lzdGVyJykgfX1cbiAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgc29jaWFsUHJvdmlkZXJzTm9kZT5cbiAgICAgICAgQGlmICghIXJlYWxtPy5wYXNzd29yZCAmJiAhIXNvY2lhbD8ucHJvdmlkZXJzPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBpZD1cImtjLXNvY2lhbC1wcm92aWRlcnNcIlxuICAgICAgICAgICAgICAgIFtrY0NsYXNzXT1cIidrY0Zvcm1Tb2NpYWxBY2NvdW50U2VjdGlvbkNsYXNzJ1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGhyIC8+XG4gICAgICAgICAgICAgICAgPGgyPnt7IGkxOG4ubXNnU3RyKCdpZGVudGl0eS1wcm92aWRlci1sb2dpbi1sYWJlbCcpIH19PC9oMj5cbiAgICAgICAgICAgICAgICA8dWxcbiAgICAgICAgICAgICAgICAgICAgW2tjQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICAgICAgICAga2NGb3JtU29jaWFsQWNjb3VudExpc3RDbGFzczogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGtjRm9ybVNvY2lhbEFjY291bnRMaXN0R3JpZENsYXNzOiAoc29jaWFsPy5wcm92aWRlcnM/Lmxlbmd0aCA/PyAwKSA+IDNcbiAgICAgICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICBAZm9yIChwcm92aWRlciBvZiBzb2NpYWw/LnByb3ZpZGVyczsgdHJhY2sgcHJvdmlkZXIuYWxpYXM7IGxldCBpZHggPSAkaW5kZXgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lkXT1cInByb3ZpZGVyLmFsaWFzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2tjQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2NGb3JtU29jaWFsQWNjb3VudExpc3RCdXR0b25DbGFzczogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtjRm9ybVNvY2lhbEFjY291bnRHcmlkSXRlbTogKHNvY2lhbD8ucHJvdmlkZXJzPy5sZW5ndGggPz8gMCkgPiAzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaHJlZl09XCJwcm92aWRlci5sb2dpblVybFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKHByb3ZpZGVyLmljb25DbGFzc2VzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwicHJvdmlkZXIuaWNvbkNsYXNzZXNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtrY0NsYXNzXT1cIidrY0NvbW1vbkxvZ29JZFAnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L2k+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAna2Mtc29jaWFsLWljb24tdGV4dCc6IHByb3ZpZGVyLmljb25DbGFzc2VzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtrY0NsYXNzXT1cIidrY0Zvcm1Tb2NpYWxBY2NvdW50TmFtZUNsYXNzJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cInByb3ZpZGVyLmRpc3BsYXlOYW1lIHwga2NTYW5pdGl6ZTogJ2h0bWwnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciBjb250ZW50PlxuICAgICAgICA8ZGl2IGlkPVwia2MtZm9ybVwiPlxuICAgICAgICAgICAgPGRpdiBpZD1cImtjLWZvcm0td3JhcHBlclwiPlxuICAgICAgICAgICAgICAgIEBpZiAocmVhbG0ucGFzc3dvcmQpIHtcbiAgICAgICAgICAgICAgICAgICAgPGZvcm1cbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwia2MtZm9ybS1sb2dpblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBtZXRob2Q9XCJwb3N0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthY3Rpb25dPVwidXJsPy5sb2dpbkFjdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAob25TdWJtaXQpPVwiaXNMb2dpbkJ1dHRvbkRpc2FibGVkLnNldCh0cnVlKVwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoIXVzZXJuYW1lSGlkZGVuKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBba2NDbGFzc109XCIna2NGb3JtR3JvdXBDbGFzcydcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3I9XCJ1c2VybmFtZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBba2NDbGFzc109XCIna2NMYWJlbENsYXNzJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoIXJlYWxtPy5sb2dpbldpdGhFbWFpbEFsbG93ZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpMThuLm1zZ1N0cigndXNlcm5hbWUnKSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSBpZiAoIXJlYWxtPy5yZWdpc3RyYXRpb25FbWFpbEFzVXNlcm5hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpMThuLm1zZ1N0cigndXNlcm5hbWVPckVtYWlsJykgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGkxOG4ubXNnU3RyKCdlbWFpbCcpIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFiaW5kZXg9XCIyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwidXNlcm5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cInVzZXJuYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG9mb2N1c1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0b0NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtrY0NsYXNzXT1cIidrY0lucHV0Q2xhc3MnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkZWZhdWx0VmFsdWVdPVwibG9naW4/LnVzZXJuYW1lIHx8ICcnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtaW52YWxpZF09XCJtZXNzYWdlc1BlckZpZWxkPy5leGlzdHNFcnJvcigndXNlcm5hbWUnKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAobWVzc2FnZXNQZXJGaWVsZD8uZXhpc3RzRXJyb3IoJ3VzZXJuYW1lJykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJpbnB1dC1lcnJvclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1saXZlPVwicG9saXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBba2NDbGFzc109XCIna2NJbnB1dEVycm9yTWVzc2FnZUNsYXNzJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJtZXNzYWdlc1BlckZpZWxkLmdldEZpcnN0RXJyb3IoJ3VzZXJuYW1lJykgfCBrY1Nhbml0aXplOiAnaHRtbCdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0tLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBba2NDbGFzc109XCJbJ2tjRm9ybUdyb3VwQ2xhc3MnLCAna2NGb3JtU2V0dGluZ0NsYXNzJ11cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPVwia2MtZm9ybS1vcHRpb25zXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAocmVhbG0ucmVtZW1iZXJNZSAmJiAhdXNlcm5hbWVIaWRkZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGVja2JveFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJpbmRleD1cIjVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJyZW1lbWJlck1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJyZW1lbWJlck1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGVmYXVsdENoZWNrZWRdPVwiISFsb2dpbj8ucmVtZW1iZXJNZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGkxOG4ubXNnU3RyKCdyZW1lbWJlck1lJykgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwia2MtZm9ybS1idXR0b25zXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBba2NDbGFzc109XCIna2NGb3JtR3JvdXBDbGFzcydcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJpbmRleD1cIjRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwibG9naW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cImtjLWxvZ2luXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInN1Ym1pdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtrY0NsYXNzXT1cIlsna2NCdXR0b25DbGFzcycsICdrY0J1dHRvblByaW1hcnlDbGFzcycsICdrY0J1dHRvbkJsb2NrQ2xhc3MnLCAna2NCdXR0b25MYXJnZUNsYXNzJ11cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiaTE4bi5tc2dTdHIoJ2RvTG9nSW4nKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Zvcm0+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuPC9rYy1sb2dpbi10ZW1wbGF0ZT5cbiJdfQ==
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4tdXNlcm5hbWUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xvZ2luL3BhZ2VzL2xvZ2luLXVzZXJuYW1lL2xvZ2luLXVzZXJuYW1lLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9sb2dpbi9wYWdlcy9sb2dpbi11c2VybmFtZS9sb2dpbi11c2VybmFtZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3JELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQWUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZILE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saURBQWlELENBQUM7QUFDbEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFDNUYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDbkYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFHbEYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQzs7QUFnQmhGLE1BQU0sT0FBTyxzQkFBdUIsU0FBUSxrQkFBa0I7SUFiOUQ7O1FBY0ksY0FBUyxHQUFHLE1BQU0sQ0FBdUQsZ0JBQWdCLENBQUMsQ0FBQztRQUMzRixTQUFJLEdBQUcsTUFBTSxDQUFPLFVBQVUsQ0FBQyxDQUFDO1FBQ3ZCLG9CQUFlLEdBQUcsTUFBTSxDQUFVLGVBQWUsQ0FBQyxDQUFDO1FBQ25ELFlBQU8sR0FBRyxNQUFNLENBQW9DLGFBQWEsQ0FBQyxDQUFDO1FBSzVFLDBCQUFxQixHQUFHLEtBQUssQ0FBQztRQUM5QixnQkFBVyxHQUFZLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLEtBQUssRUFBRSxRQUFRLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLG1CQUFtQixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxvQkFBb0IsQ0FBQztRQUNsSixtQkFBYyxHQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFckYsZUFBVSxHQUFJLFNBQVMsQ0FBMkIsWUFBWSxDQUFDLENBQUM7UUFDaEUsYUFBUSxHQUFJLFNBQVMsQ0FBMkIsVUFBVSxDQUFDLENBQUM7UUFDNUQsd0JBQW1CLEdBQUksU0FBUyxDQUEyQixxQkFBcUIsQ0FBQyxDQUFDO1FBRWxGLDBCQUFxQixHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztLQUN6Qzs4R0FsQlksc0JBQXNCO2tHQUF0QixzQkFBc0IsZ0VBUHBCO1lBQ1A7Z0JBQ0ksT0FBTyxFQUFFLGtCQUFrQjtnQkFDM0IsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQzthQUN4RDtTQUNKLCtZQ3pCTCw0dE1BdUpBLDRDRHBJYyxnQkFBZ0IsMEZBQWEsY0FBYyxtREFBRSxPQUFPOzsyRkFRckQsc0JBQXNCO2tCQWJsQyxTQUFTOytCQUNJLG1CQUFtQixjQUVqQixJQUFJLG1CQUNDLHVCQUF1QixDQUFDLE1BQU0sV0FDdEMsQ0FBQyxnQkFBZ0IsRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsQ0FBQyxhQUN2RTt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsa0JBQWtCOzRCQUMzQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSx1QkFBdUIsQ0FBQzt5QkFDeEQ7cUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBc3luY1BpcGUsIE5nQ2xhc3MgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgZm9yd2FyZFJlZiwgaW5qZWN0LCBzaWduYWwsIFRlbXBsYXRlUmVmLCB2aWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEtjU2FuaXRpemVQaXBlIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbGliL3BpcGVzL2tjLXNhbml0aXplJztcbmltcG9ydCB7IFVTRV9ERUZBVUxUX0NTUyB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xpYi90b2tlbnMvdXNlLWRlZmF1bHQtY3NzJztcbmltcG9ydCB7IENvbXBvbmVudFJlZmVyZW5jZSB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL2NsYXNzZXMvY29tcG9uZW50LXJlZmVyZW5jZSc7XG5pbXBvcnQgeyBUZW1wbGF0ZUNvbXBvbmVudCB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL2NvbnRhaW5lcnMvdGVtcGxhdGUnO1xuaW1wb3J0IHsgS2NDbGFzc0RpcmVjdGl2ZSB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL2RpcmVjdGl2ZXMva2MtY2xhc3MnO1xuaW1wb3J0IHR5cGUgeyBJMThuIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vaTE4bic7XG5pbXBvcnQgdHlwZSB7IEtjQ29udGV4dCB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL0tjQ29udGV4dCc7XG5pbXBvcnQgeyBMT0dJTl9DTEFTU0VTIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vdG9rZW5zL2NsYXNzZXMnO1xuaW1wb3J0IHsgTE9HSU5fSTE4TiB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL3Rva2Vucy9pMThuJztcbmltcG9ydCB7IEtDX0xPR0lOX0NPTlRFWFQgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi90b2tlbnMva2MtY29udGV4dCc7XG5pbXBvcnQgdHlwZSB7IENsYXNzS2V5IH0gZnJvbSAna2V5Y2xvYWtpZnkvbG9naW4vbGliL2tjQ2xzeCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAna2MtbG9naW4tdXNlcm5hbWUnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9sb2dpbi11c2VybmFtZS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBpbXBvcnRzOiBbS2NDbGFzc0RpcmVjdGl2ZSwgQXN5bmNQaXBlLCBLY1Nhbml0aXplUGlwZSwgTmdDbGFzcywgVGVtcGxhdGVDb21wb25lbnRdLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBDb21wb25lbnRSZWZlcmVuY2UsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBMb2dpblVzZXJuYW1lQ29tcG9uZW50KVxuICAgICAgICB9XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBMb2dpblVzZXJuYW1lQ29tcG9uZW50IGV4dGVuZHMgQ29tcG9uZW50UmVmZXJlbmNlIHtcbiAgICBrY0NvbnRleHQgPSBpbmplY3Q8RXh0cmFjdDxLY0NvbnRleHQsIHsgcGFnZUlkOiAnbG9naW4tdXNlcm5hbWUuZnRsJyB9Pj4oS0NfTE9HSU5fQ09OVEVYVCk7XG4gICAgaTE4biA9IGluamVjdDxJMThuPihMT0dJTl9JMThOKTtcbiAgICBvdmVycmlkZSBkb1VzZURlZmF1bHRDc3MgPSBpbmplY3Q8Ym9vbGVhbj4oVVNFX0RFRkFVTFRfQ1NTKTtcbiAgICBvdmVycmlkZSBjbGFzc2VzID0gaW5qZWN0PFBhcnRpYWw8UmVjb3JkPENsYXNzS2V5LCBzdHJpbmc+Pj4oTE9HSU5fQ0xBU1NFUyk7XG5cbiAgICBkb2N1bWVudFRpdGxlOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgYm9keUNsYXNzTmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gICAgZGlzcGxheVJlcXVpcmVkRmllbGRzID0gZmFsc2U7XG4gICAgZGlzcGxheUluZm86IGJvb2xlYW4gPSAhIXRoaXMua2NDb250ZXh0Py5yZWFsbT8ucGFzc3dvcmQgJiYgISF0aGlzLmtjQ29udGV4dD8ucmVhbG0/LnJlZ2lzdHJhdGlvbkFsbG93ZWQgJiYgIXRoaXMua2NDb250ZXh0Py5yZWdpc3RyYXRpb25EaXNhYmxlZDtcbiAgICBkaXNwbGF5TWVzc2FnZTogYm9vbGVhbiA9ICF0aGlzLmtjQ29udGV4dD8ubWVzc2FnZXNQZXJGaWVsZD8uZXhpc3RzRXJyb3IoJ3VzZXJuYW1lJyk7XG5cbiAgICBoZWFkZXJOb2RlPyA9IHZpZXdDaGlsZDxUZW1wbGF0ZVJlZjxIVE1MRWxlbWVudD4+KCdoZWFkZXJOb2RlJyk7XG4gICAgaW5mb05vZGU/ID0gdmlld0NoaWxkPFRlbXBsYXRlUmVmPEhUTUxFbGVtZW50Pj4oJ2luZm9Ob2RlJyk7XG4gICAgc29jaWFsUHJvdmlkZXJzTm9kZT8gPSB2aWV3Q2hpbGQ8VGVtcGxhdGVSZWY8SFRNTEVsZW1lbnQ+Pignc29jaWFsUHJvdmlkZXJzTm9kZScpO1xuXG4gICAgaXNMb2dpbkJ1dHRvbkRpc2FibGVkID0gc2lnbmFsKGZhbHNlKTtcbn1cbiIsIkBsZXQgcmVhbG0gPSBrY0NvbnRleHQucmVhbG07XG5AbGV0IHNvY2lhbCA9IGtjQ29udGV4dC5zb2NpYWw7XG5AbGV0IHVzZXJuYW1lSGlkZGVuID0ga2NDb250ZXh0LnVzZXJuYW1lSGlkZGVuO1xuQGxldCBtZXNzYWdlc1BlckZpZWxkID0ga2NDb250ZXh0Lm1lc3NhZ2VzUGVyRmllbGQ7XG5AbGV0IHVybCA9IGtjQ29udGV4dC51cmw7XG5AbGV0IGxvZ2luID0ga2NDb250ZXh0LmxvZ2luO1xuXG48bmctdGVtcGxhdGUgI2hlYWRlck5vZGU+XG4gICAge3sgaTE4bi5tc2dTdHIoJ2RvTG9nSW4nKSB9fVxuPC9uZy10ZW1wbGF0ZT5cbjxuZy1jb250YWluZXIgaW5mb05vZGU+XG4gICAgPGRpdiBpZD1cImtjLXJlZ2lzdHJhdGlvblwiPlxuICAgICAgICA8c3Bhbj5cbiAgICAgICAgICAgIHt7IGkxOG4ubXNnU3RyKCdub0FjY291bnQnKSB9fVxuICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICB0YWJpbmRleD1cIjZcIlxuICAgICAgICAgICAgICAgIFtocmVmXT1cInVybD8ucmVnaXN0cmF0aW9uVXJsXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7eyBpMThuLm1zZ1N0cignZG9SZWdpc3RlcicpIH19XG4gICAgICAgICAgICA8L2E+XG4gICAgICAgIDwvc3Bhbj5cbiAgICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuPG5nLXRlbXBsYXRlICNzb2NpYWxQcm92aWRlcnNOb2RlPlxuICAgIEBpZiAoISFyZWFsbT8ucGFzc3dvcmQgJiYgISFzb2NpYWw/LnByb3ZpZGVycz8ubGVuZ3RoKSB7XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgIGlkPVwia2Mtc29jaWFsLXByb3ZpZGVyc1wiXG4gICAgICAgICAgICBba2NDbGFzc109XCIna2NGb3JtU29jaWFsQWNjb3VudFNlY3Rpb25DbGFzcydcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8aHIgLz5cbiAgICAgICAgICAgIDxoMj57eyBpMThuLm1zZ1N0cignaWRlbnRpdHktcHJvdmlkZXItbG9naW4tbGFiZWwnKSB9fTwvaDI+XG4gICAgICAgICAgICA8dWxcbiAgICAgICAgICAgICAgICBba2NDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgICAgIGtjRm9ybVNvY2lhbEFjY291bnRMaXN0Q2xhc3M6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIGtjRm9ybVNvY2lhbEFjY291bnRMaXN0R3JpZENsYXNzOiAoc29jaWFsPy5wcm92aWRlcnM/Lmxlbmd0aCA/PyAwKSA+IDNcbiAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICBAZm9yIChwcm92aWRlciBvZiBzb2NpYWw/LnByb3ZpZGVyczsgdHJhY2sgcHJvdmlkZXIuYWxpYXM7IGxldCBpZHggPSAkaW5kZXgpIHtcbiAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaWRdPVwicHJvdmlkZXIuYWxpYXNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtrY0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2NGb3JtU29jaWFsQWNjb3VudExpc3RCdXR0b25DbGFzczogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2NGb3JtU29jaWFsQWNjb3VudEdyaWRJdGVtOiAoc29jaWFsPy5wcm92aWRlcnM/Lmxlbmd0aCA/PyAwKSA+IDNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaHJlZl09XCJwcm92aWRlci5sb2dpblVybFwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChwcm92aWRlci5pY29uQ2xhc3Nlcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInByb3ZpZGVyLmljb25DbGFzc2VzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtrY0NsYXNzXT1cIidrY0NvbW1vbkxvZ29JZFAnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2tjLXNvY2lhbC1pY29uLXRleHQnOiBwcm92aWRlci5pY29uQ2xhc3Nlc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2tjQ2xhc3NdPVwiJ2tjRm9ybVNvY2lhbEFjY291bnROYW1lQ2xhc3MnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJwcm92aWRlci5kaXNwbGF5TmFtZSB8IGtjU2FuaXRpemU6ICdodG1sJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L3VsPlxuICAgICAgICA8L2Rpdj5cbiAgICB9XG48L25nLXRlbXBsYXRlPlxuPGRpdiBpZD1cImtjLWZvcm1cIj5cbiAgICA8ZGl2IGlkPVwia2MtZm9ybS13cmFwcGVyXCI+XG4gICAgICAgIEBpZiAocmVhbG0ucGFzc3dvcmQpIHtcbiAgICAgICAgICAgIDxmb3JtXG4gICAgICAgICAgICAgICAgaWQ9XCJrYy1mb3JtLWxvZ2luXCJcbiAgICAgICAgICAgICAgICBtZXRob2Q9XCJwb3N0XCJcbiAgICAgICAgICAgICAgICBbYWN0aW9uXT1cInVybD8ubG9naW5BY3Rpb25cIlxuICAgICAgICAgICAgICAgIChvblN1Ym1pdCk9XCJpc0xvZ2luQnV0dG9uRGlzYWJsZWQuc2V0KHRydWUpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICBAaWYgKCF1c2VybmFtZUhpZGRlbikge1xuICAgICAgICAgICAgICAgICAgICA8ZGl2IFtrY0NsYXNzXT1cIidrY0Zvcm1Hcm91cENsYXNzJ1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yPVwidXNlcm5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtrY0NsYXNzXT1cIidrY0xhYmVsQ2xhc3MnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKCFyZWFsbT8ubG9naW5XaXRoRW1haWxBbGxvd2VkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGkxOG4ubXNnU3RyKCd1c2VybmFtZScpIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSBpZiAoIXJlYWxtPy5yZWdpc3RyYXRpb25FbWFpbEFzVXNlcm5hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaTE4bi5tc2dTdHIoJ3VzZXJuYW1lT3JFbWFpbCcpIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGkxOG4ubXNnU3RyKCdlbWFpbCcpIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYmluZGV4PVwiMlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJ1c2VybmFtZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cInVzZXJuYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0b2ZvY3VzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0b0NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBba2NDbGFzc109XCIna2NJbnB1dENsYXNzJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2RlZmF1bHRWYWx1ZV09XCJsb2dpbj8udXNlcm5hbWUgfHwgJydcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtaW52YWxpZF09XCJtZXNzYWdlc1BlckZpZWxkPy5leGlzdHNFcnJvcigndXNlcm5hbWUnKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChtZXNzYWdlc1BlckZpZWxkPy5leGlzdHNFcnJvcigndXNlcm5hbWUnKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiaW5wdXQtZXJyb3JcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxpdmU9XCJwb2xpdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBba2NDbGFzc109XCIna2NJbnB1dEVycm9yTWVzc2FnZUNsYXNzJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpbm5lckhUTUxdPVwibWVzc2FnZXNQZXJGaWVsZC5nZXRGaXJzdEVycm9yKCd1c2VybmFtZScpIHwga2NTYW5pdGl6ZTogJ2h0bWwnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgPCEtLS0tPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICA8ZGl2IFtrY0NsYXNzXT1cIlsna2NGb3JtR3JvdXBDbGFzcycsICdrY0Zvcm1TZXR0aW5nQ2xhc3MnXVwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPVwia2MtZm9ybS1vcHRpb25zXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKHJlYWxtLnJlbWVtYmVyTWUgJiYgIXVzZXJuYW1lSGlkZGVuKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrYm94XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYmluZGV4PVwiNVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJyZW1lbWJlck1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwicmVtZW1iZXJNZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGVmYXVsdENoZWNrZWRdPVwiISFsb2dpbj8ucmVtZW1iZXJNZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaTE4bi5tc2dTdHIoJ3JlbWVtYmVyTWUnKSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIGlkPVwia2MtZm9ybS1idXR0b25zXCJcbiAgICAgICAgICAgICAgICAgICAgW2tjQ2xhc3NdPVwiJ2tjRm9ybUdyb3VwQ2xhc3MnXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgdGFiaW5kZXg9XCI0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJsb2dpblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImtjLWxvZ2luXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2tjQ2xhc3NdPVwiWydrY0J1dHRvbkNsYXNzJywgJ2tjQnV0dG9uUHJpbWFyeUNsYXNzJywgJ2tjQnV0dG9uQmxvY2tDbGFzcycsICdrY0J1dHRvbkxhcmdlQ2xhc3MnXVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiaTE4bi5tc2dTdHIoJ2RvTG9nSW4nKVwiXG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Zvcm0+XG4gICAgICAgIH1cbiAgICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -1,4 +1,4 @@
1
- import { ChangeDetectionStrategy, Component, forwardRef, inject, input } from '@angular/core';
1
+ import { ChangeDetectionStrategy, Component, forwardRef, inject, viewChild } from '@angular/core';
2
2
  import { USE_DEFAULT_CSS } from '@keycloakify/angular/lib/tokens/use-default-css';
3
3
  import { ComponentReference } from '@keycloakify/angular/login/classes/component-reference';
4
4
  import { TemplateComponent } from '@keycloakify/angular/login/containers/template';
@@ -14,27 +14,28 @@ export class LoginVerifyEmailComponent extends ComponentReference {
14
14
  this.i18n = inject(LOGIN_I18N);
15
15
  this.doUseDefaultCss = inject(USE_DEFAULT_CSS);
16
16
  this.classes = inject(LOGIN_CLASSES);
17
- this.displayRequiredFields = input(false);
18
- this.documentTitle = input();
19
- this.bodyClassName = input();
17
+ this.displayRequiredFields = false;
20
18
  this.displayInfo = true;
21
19
  this.displayMessage = true;
20
+ this.headerNode = viewChild('headerNode');
21
+ this.infoNode = viewChild('infoNode');
22
+ this.socialProvidersNode = viewChild('socialProvidersNode');
22
23
  }
23
24
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: LoginVerifyEmailComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
24
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.7", type: LoginVerifyEmailComponent, 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: [
25
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.7", type: LoginVerifyEmailComponent, isStandalone: true, selector: "kc-login-verify-email", providers: [
25
26
  {
26
27
  provide: ComponentReference,
27
28
  useExisting: forwardRef(() => LoginVerifyEmailComponent)
28
29
  }
29
- ], usesInheritance: true, ngImport: i0, template: "@let url = kcContext.url;\n@let user = kcContext.user;\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('emailVerifyTitle') }}\n </ng-container>\n <ng-container infoNode>\n <p class=\"instruction\">\n {{ i18n.msgStr('emailVerifyInstruction2') }}\n <br />\n <a [href]=\"url.loginAction\">{{ i18n.msgStr('doClickHere') }}</a>\n &nbsp;\n {{ i18n.msgStr('emailVerifyInstruction3') }}\n </p>\n </ng-container>\n <ng-container content>\n <p class=\"instruction\">\n {{ i18n.msgStr('emailVerifyInstruction1', user?.email ?? '') }}\n </p></ng-container\n >\n</kc-login-template>\n", dependencies: [{ kind: "component", type: TemplateComponent, selector: "kc-login-template", inputs: ["displayInfo", "displayMessage", "displayRequiredFields", "documentTitle", "bodyClassName"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
30
+ ], 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 user = kcContext.user;\n\n<ng-template #headerNode>\n {{ i18n.msgStr('emailVerifyTitle') }}\n</ng-template>\n<ng-template #infoNode>\n <p class=\"instruction\">\n {{ i18n.msgStr('emailVerifyInstruction2') }}\n <br />\n <a [href]=\"url.loginAction\">{{ i18n.msgStr('doClickHere') }}</a>\n &nbsp;\n {{ i18n.msgStr('emailVerifyInstruction3') }}\n </p>\n</ng-template>\n\n<p class=\"instruction\">\n {{ i18n.msgStr('emailVerifyInstruction1', user?.email ?? '') }}\n</p>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
30
31
  }
31
32
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: LoginVerifyEmailComponent, decorators: [{
32
33
  type: Component,
33
- args: [{ standalone: true, imports: [KcClassDirective, TemplateComponent], selector: 'kc-root', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
34
+ args: [{ standalone: true, imports: [KcClassDirective, TemplateComponent], selector: 'kc-login-verify-email', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
34
35
  {
35
36
  provide: ComponentReference,
36
37
  useExisting: forwardRef(() => LoginVerifyEmailComponent)
37
38
  }
38
- ], template: "@let url = kcContext.url;\n@let user = kcContext.user;\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('emailVerifyTitle') }}\n </ng-container>\n <ng-container infoNode>\n <p class=\"instruction\">\n {{ i18n.msgStr('emailVerifyInstruction2') }}\n <br />\n <a [href]=\"url.loginAction\">{{ i18n.msgStr('doClickHere') }}</a>\n &nbsp;\n {{ i18n.msgStr('emailVerifyInstruction3') }}\n </p>\n </ng-container>\n <ng-container content>\n <p class=\"instruction\">\n {{ i18n.msgStr('emailVerifyInstruction1', user?.email ?? '') }}\n </p></ng-container\n >\n</kc-login-template>\n" }]
39
+ ], template: "@let url = kcContext.url;\n@let user = kcContext.user;\n\n<ng-template #headerNode>\n {{ i18n.msgStr('emailVerifyTitle') }}\n</ng-template>\n<ng-template #infoNode>\n <p class=\"instruction\">\n {{ i18n.msgStr('emailVerifyInstruction2') }}\n <br />\n <a [href]=\"url.loginAction\">{{ i18n.msgStr('doClickHere') }}</a>\n &nbsp;\n {{ i18n.msgStr('emailVerifyInstruction3') }}\n </p>\n</ng-template>\n\n<p class=\"instruction\">\n {{ i18n.msgStr('emailVerifyInstruction1', user?.email ?? '') }}\n</p>\n" }]
39
40
  }] });
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4tdmVyaWZ5LWVtYWlsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9sb2dpbi9wYWdlcy9sb2dpbi12ZXJpZnktZW1haWwvbG9naW4tdmVyaWZ5LWVtYWlsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9sb2dpbi9wYWdlcy9sb2dpbi12ZXJpZnktZW1haWwvbG9naW4tdmVyaWZ5LWVtYWlsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBQzVGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ25GLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDcEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOENBQThDLENBQUM7O0FBa0JoRixNQUFNLE9BQU8seUJBQTBCLFNBQVEsa0JBQWtCO0lBYmpFOztRQWNJLGNBQVMsR0FBRyxNQUFNLENBQTJELGdCQUFnQixDQUFDLENBQUM7UUFDL0YsU0FBSSxHQUFHLE1BQU0sQ0FBTyxVQUFVLENBQUMsQ0FBQztRQUN2QixvQkFBZSxHQUFHLE1BQU0sQ0FBVSxlQUFlLENBQUMsQ0FBQztRQUNuRCxZQUFPLEdBQUcsTUFBTSxDQUFvQyxhQUFhLENBQUMsQ0FBQztRQUM1RSwwQkFBcUIsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckMsa0JBQWEsR0FBRyxLQUFLLEVBQVUsQ0FBQztRQUNoQyxrQkFBYSxHQUFHLEtBQUssRUFBVSxDQUFDO1FBQ2hDLGdCQUFXLEdBQVksSUFBSSxDQUFDO1FBQzVCLG1CQUFjLEdBQVksSUFBSSxDQUFDO0tBQ2xDOzhHQVZZLHlCQUF5QjtrR0FBekIseUJBQXlCLDBnQkFQdkI7WUFDUDtnQkFDSSxPQUFPLEVBQUUsa0JBQWtCO2dCQUMzQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHlCQUF5QixDQUFDO2FBQzNEO1NBQ0osaURDdkJMLCs1QkEyQkEsNENEYmdDLGlCQUFpQjs7MkZBV3BDLHlCQUF5QjtrQkFickMsU0FBUztpQ0FDTSxJQUFJLFdBQ1AsQ0FBQyxnQkFBZ0IsRUFBRSxpQkFBaUIsQ0FBQyxZQUNwQyxTQUFTLG1CQUVGLHVCQUF1QixDQUFDLE1BQU0sYUFDcEM7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLGtCQUFrQjs0QkFDM0IsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsMEJBQTBCLENBQUM7eUJBQzNEO3FCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgZm9yd2FyZFJlZiwgaW5qZWN0LCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVVNFX0RFRkFVTFRfQ1NTIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbGliL3Rva2Vucy91c2UtZGVmYXVsdC1jc3MnO1xuaW1wb3J0IHsgQ29tcG9uZW50UmVmZXJlbmNlIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vY2xhc3Nlcy9jb21wb25lbnQtcmVmZXJlbmNlJztcbmltcG9ydCB7IFRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vY29udGFpbmVycy90ZW1wbGF0ZSc7XG5pbXBvcnQgeyBLY0NsYXNzRGlyZWN0aXZlIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vZGlyZWN0aXZlcy9rYy1jbGFzcyc7XG5pbXBvcnQgeyBMT0dJTl9DTEFTU0VTIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vdG9rZW5zL2NsYXNzZXMnO1xuaW1wb3J0IHsgTE9HSU5fSTE4TiB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL3Rva2Vucy9pMThuJztcbmltcG9ydCB7IEtDX0xPR0lOX0NPTlRFWFQgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi90b2tlbnMva2MtY29udGV4dCc7XG5pbXBvcnQgdHlwZSB7IENsYXNzS2V5IH0gZnJvbSAna2V5Y2xvYWtpZnkvbG9naW4vbGliL2tjQ2xzeCc7XG5pbXBvcnQgdHlwZSB7IEkxOG4gfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9pMThuJztcbmltcG9ydCB0eXBlIHsgS2NDb250ZXh0IH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vS2NDb250ZXh0JztcblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbS2NDbGFzc0RpcmVjdGl2ZSwgVGVtcGxhdGVDb21wb25lbnRdLFxuICAgIHNlbGVjdG9yOiAna2Mtcm9vdCcsXG4gICAgdGVtcGxhdGVVcmw6ICdsb2dpbi12ZXJpZnktZW1haWwuY29tcG9uZW50Lmh0bWwnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBDb21wb25lbnRSZWZlcmVuY2UsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBMb2dpblZlcmlmeUVtYWlsQ29tcG9uZW50KVxuICAgICAgICB9XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBMb2dpblZlcmlmeUVtYWlsQ29tcG9uZW50IGV4dGVuZHMgQ29tcG9uZW50UmVmZXJlbmNlIHtcbiAgICBrY0NvbnRleHQgPSBpbmplY3Q8RXh0cmFjdDxLY0NvbnRleHQsIHsgcGFnZUlkOiAnbG9naW4tdmVyaWZ5LWVtYWlsLmZ0bCcgfT4+KEtDX0xPR0lOX0NPTlRFWFQpO1xuICAgIGkxOG4gPSBpbmplY3Q8STE4bj4oTE9HSU5fSTE4Tik7XG4gICAgb3ZlcnJpZGUgZG9Vc2VEZWZhdWx0Q3NzID0gaW5qZWN0PGJvb2xlYW4+KFVTRV9ERUZBVUxUX0NTUyk7XG4gICAgb3ZlcnJpZGUgY2xhc3NlcyA9IGluamVjdDxQYXJ0aWFsPFJlY29yZDxDbGFzc0tleSwgc3RyaW5nPj4+KExPR0lOX0NMQVNTRVMpO1xuICAgIGRpc3BsYXlSZXF1aXJlZEZpZWxkcyA9IGlucHV0KGZhbHNlKTtcbiAgICBkb2N1bWVudFRpdGxlID0gaW5wdXQ8c3RyaW5nPigpO1xuICAgIGJvZHlDbGFzc05hbWUgPSBpbnB1dDxzdHJpbmc+KCk7XG4gICAgZGlzcGxheUluZm86IGJvb2xlYW4gPSB0cnVlO1xuICAgIGRpc3BsYXlNZXNzYWdlOiBib29sZWFuID0gdHJ1ZTtcbn1cbiIsIkBsZXQgdXJsID0ga2NDb250ZXh0LnVybDtcbkBsZXQgdXNlciA9IGtjQ29udGV4dC51c2VyO1xuPGtjLWxvZ2luLXRlbXBsYXRlXG4gICAgW2Rpc3BsYXlJbmZvXT1cImRpc3BsYXlJbmZvXCJcbiAgICBbYm9keUNsYXNzTmFtZV09XCJib2R5Q2xhc3NOYW1lKClcIlxuICAgIFtkaXNwbGF5TWVzc2FnZV09XCJkaXNwbGF5TWVzc2FnZVwiXG4gICAgW2Rpc3BsYXlSZXF1aXJlZEZpZWxkc109XCJkaXNwbGF5UmVxdWlyZWRGaWVsZHMoKVwiXG4gICAgW2RvY3VtZW50VGl0bGVdPVwiZG9jdW1lbnRUaXRsZSgpXCJcbj5cbiAgICA8bmctY29udGFpbmVyIGhlYWRlck5vZGU+XG4gICAgICAgIHt7IGkxOG4ubXNnU3RyKCdlbWFpbFZlcmlmeVRpdGxlJykgfX1cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyIGluZm9Ob2RlPlxuICAgICAgICA8cCBjbGFzcz1cImluc3RydWN0aW9uXCI+XG4gICAgICAgICAgICB7eyBpMThuLm1zZ1N0cignZW1haWxWZXJpZnlJbnN0cnVjdGlvbjInKSB9fVxuICAgICAgICAgICAgPGJyIC8+XG4gICAgICAgICAgICA8YSBbaHJlZl09XCJ1cmwubG9naW5BY3Rpb25cIj57eyBpMThuLm1zZ1N0cignZG9DbGlja0hlcmUnKSB9fTwvYT5cbiAgICAgICAgICAgICZuYnNwO1xuICAgICAgICAgICAge3sgaTE4bi5tc2dTdHIoJ2VtYWlsVmVyaWZ5SW5zdHJ1Y3Rpb24zJykgfX1cbiAgICAgICAgPC9wPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgY29udGVudD5cbiAgICAgICAgPHAgY2xhc3M9XCJpbnN0cnVjdGlvblwiPlxuICAgICAgICAgICAge3sgaTE4bi5tc2dTdHIoJ2VtYWlsVmVyaWZ5SW5zdHJ1Y3Rpb24xJywgdXNlcj8uZW1haWwgPz8gJycpIH19XG4gICAgICAgIDwvcD48L25nLWNvbnRhaW5lclxuICAgID5cbjwva2MtbG9naW4tdGVtcGxhdGU+XG4iXX0=
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4tdmVyaWZ5LWVtYWlsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9sb2dpbi9wYWdlcy9sb2dpbi12ZXJpZnktZW1haWwvbG9naW4tdmVyaWZ5LWVtYWlsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9sb2dpbi9wYWdlcy9sb2dpbi12ZXJpZnktZW1haWwvbG9naW4tdmVyaWZ5LWVtYWlsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBZSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0csT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBQzVGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ25GLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBR2xGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDcEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOENBQThDLENBQUM7O0FBZ0JoRixNQUFNLE9BQU8seUJBQTBCLFNBQVEsa0JBQWtCO0lBYmpFOztRQWNJLGNBQVMsR0FBRyxNQUFNLENBQTJELGdCQUFnQixDQUFDLENBQUM7UUFDL0YsU0FBSSxHQUFHLE1BQU0sQ0FBTyxVQUFVLENBQUMsQ0FBQztRQUN2QixvQkFBZSxHQUFHLE1BQU0sQ0FBVSxlQUFlLENBQUMsQ0FBQztRQUNuRCxZQUFPLEdBQUcsTUFBTSxDQUFvQyxhQUFhLENBQUMsQ0FBQztRQUs1RSwwQkFBcUIsR0FBRyxLQUFLLENBQUM7UUFDOUIsZ0JBQVcsR0FBRyxJQUFJLENBQUM7UUFDbkIsbUJBQWMsR0FBRyxJQUFJLENBQUM7UUFFdEIsZUFBVSxHQUFJLFNBQVMsQ0FBMkIsWUFBWSxDQUFDLENBQUM7UUFDaEUsYUFBUSxHQUFJLFNBQVMsQ0FBMkIsVUFBVSxDQUFDLENBQUM7UUFDNUQsd0JBQW1CLEdBQUksU0FBUyxDQUEyQixxQkFBcUIsQ0FBQyxDQUFDO0tBQ3JGOzhHQWhCWSx5QkFBeUI7a0dBQXpCLHlCQUF5QixvRUFQdkI7WUFDUDtnQkFDSSxPQUFPLEVBQUUsa0JBQWtCO2dCQUMzQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHlCQUF5QixDQUFDO2FBQzNEO1NBQ0osK1lDdkJMLG9pQkFtQkE7OzJGRE1hLHlCQUF5QjtrQkFickMsU0FBUztpQ0FDTSxJQUFJLFdBQ1AsQ0FBQyxnQkFBZ0IsRUFBRSxpQkFBaUIsQ0FBQyxZQUNwQyx1QkFBdUIsbUJBRWhCLHVCQUF1QixDQUFDLE1BQU0sYUFDcEM7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLGtCQUFrQjs0QkFDM0IsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsMEJBQTBCLENBQUM7eUJBQzNEO3FCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgZm9yd2FyZFJlZiwgaW5qZWN0LCBUZW1wbGF0ZVJlZiwgdmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVU0VfREVGQVVMVF9DU1MgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9saWIvdG9rZW5zL3VzZS1kZWZhdWx0LWNzcyc7XG5pbXBvcnQgeyBDb21wb25lbnRSZWZlcmVuY2UgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9jbGFzc2VzL2NvbXBvbmVudC1yZWZlcmVuY2UnO1xuaW1wb3J0IHsgVGVtcGxhdGVDb21wb25lbnQgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9jb250YWluZXJzL3RlbXBsYXRlJztcbmltcG9ydCB7IEtjQ2xhc3NEaXJlY3RpdmUgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9kaXJlY3RpdmVzL2tjLWNsYXNzJztcbmltcG9ydCB0eXBlIHsgSTE4biB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL2kxOG4nO1xuaW1wb3J0IHR5cGUgeyBLY0NvbnRleHQgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9LY0NvbnRleHQnO1xuaW1wb3J0IHsgTE9HSU5fQ0xBU1NFUyB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL3Rva2Vucy9jbGFzc2VzJztcbmltcG9ydCB7IExPR0lOX0kxOE4gfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi90b2tlbnMvaTE4bic7XG5pbXBvcnQgeyBLQ19MT0dJTl9DT05URVhUIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vdG9rZW5zL2tjLWNvbnRleHQnO1xuaW1wb3J0IHR5cGUgeyBDbGFzc0tleSB9IGZyb20gJ2tleWNsb2FraWZ5L2xvZ2luL2xpYi9rY0Nsc3gnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtLY0NsYXNzRGlyZWN0aXZlLCBUZW1wbGF0ZUNvbXBvbmVudF0sXG4gICAgc2VsZWN0b3I6ICdrYy1sb2dpbi12ZXJpZnktZW1haWwnLFxuICAgIHRlbXBsYXRlVXJsOiAnbG9naW4tdmVyaWZ5LWVtYWlsLmNvbXBvbmVudC5odG1sJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogQ29tcG9uZW50UmVmZXJlbmNlLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gTG9naW5WZXJpZnlFbWFpbENvbXBvbmVudClcbiAgICAgICAgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgTG9naW5WZXJpZnlFbWFpbENvbXBvbmVudCBleHRlbmRzIENvbXBvbmVudFJlZmVyZW5jZSB7XG4gICAga2NDb250ZXh0ID0gaW5qZWN0PEV4dHJhY3Q8S2NDb250ZXh0LCB7IHBhZ2VJZDogJ2xvZ2luLXZlcmlmeS1lbWFpbC5mdGwnIH0+PihLQ19MT0dJTl9DT05URVhUKTtcbiAgICBpMThuID0gaW5qZWN0PEkxOG4+KExPR0lOX0kxOE4pO1xuICAgIG92ZXJyaWRlIGRvVXNlRGVmYXVsdENzcyA9IGluamVjdDxib29sZWFuPihVU0VfREVGQVVMVF9DU1MpO1xuICAgIG92ZXJyaWRlIGNsYXNzZXMgPSBpbmplY3Q8UGFydGlhbDxSZWNvcmQ8Q2xhc3NLZXksIHN0cmluZz4+PihMT0dJTl9DTEFTU0VTKTtcblxuICAgIGRvY3VtZW50VGl0bGU6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICBib2R5Q2xhc3NOYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgICBkaXNwbGF5UmVxdWlyZWRGaWVsZHMgPSBmYWxzZTtcbiAgICBkaXNwbGF5SW5mbyA9IHRydWU7XG4gICAgZGlzcGxheU1lc3NhZ2UgPSB0cnVlO1xuXG4gICAgaGVhZGVyTm9kZT8gPSB2aWV3Q2hpbGQ8VGVtcGxhdGVSZWY8SFRNTEVsZW1lbnQ+PignaGVhZGVyTm9kZScpO1xuICAgIGluZm9Ob2RlPyA9IHZpZXdDaGlsZDxUZW1wbGF0ZVJlZjxIVE1MRWxlbWVudD4+KCdpbmZvTm9kZScpO1xuICAgIHNvY2lhbFByb3ZpZGVyc05vZGU/ID0gdmlld0NoaWxkPFRlbXBsYXRlUmVmPEhUTUxFbGVtZW50Pj4oJ3NvY2lhbFByb3ZpZGVyc05vZGUnKTtcbn1cbiIsIkBsZXQgdXJsID0ga2NDb250ZXh0LnVybDtcbkBsZXQgdXNlciA9IGtjQ29udGV4dC51c2VyO1xuXG48bmctdGVtcGxhdGUgI2hlYWRlck5vZGU+XG4gICAge3sgaTE4bi5tc2dTdHIoJ2VtYWlsVmVyaWZ5VGl0bGUnKSB9fVxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjaW5mb05vZGU+XG4gICAgPHAgY2xhc3M9XCJpbnN0cnVjdGlvblwiPlxuICAgICAgICB7eyBpMThuLm1zZ1N0cignZW1haWxWZXJpZnlJbnN0cnVjdGlvbjInKSB9fVxuICAgICAgICA8YnIgLz5cbiAgICAgICAgPGEgW2hyZWZdPVwidXJsLmxvZ2luQWN0aW9uXCI+e3sgaTE4bi5tc2dTdHIoJ2RvQ2xpY2tIZXJlJykgfX08L2E+XG4gICAgICAgICZuYnNwO1xuICAgICAgICB7eyBpMThuLm1zZ1N0cignZW1haWxWZXJpZnlJbnN0cnVjdGlvbjMnKSB9fVxuICAgIDwvcD5cbjwvbmctdGVtcGxhdGU+XG5cbjxwIGNsYXNzPVwiaW5zdHJ1Y3Rpb25cIj5cbiAgICB7eyBpMThuLm1zZ1N0cignZW1haWxWZXJpZnlJbnN0cnVjdGlvbjEnLCB1c2VyPy5lbWFpbCA/PyAnJykgfX1cbjwvcD5cbiJdfQ==
@@ -1,4 +1,4 @@
1
- import { ChangeDetectionStrategy, Component, forwardRef, inject, input } from '@angular/core';
1
+ import { ChangeDetectionStrategy, Component, forwardRef, inject, viewChild } from '@angular/core';
2
2
  import { USE_DEFAULT_CSS } from '@keycloakify/angular/lib/tokens/use-default-css';
3
3
  import { ComponentReference } from '@keycloakify/angular/login/classes/component-reference';
4
4
  import { TemplateComponent } from '@keycloakify/angular/login/containers/template';
@@ -14,27 +14,28 @@ export class LoginX509InfoComponent extends ComponentReference {
14
14
  this.i18n = inject(LOGIN_I18N);
15
15
  this.doUseDefaultCss = inject(USE_DEFAULT_CSS);
16
16
  this.classes = inject(LOGIN_CLASSES);
17
- this.displayRequiredFields = input(false);
18
- this.documentTitle = input();
19
- this.bodyClassName = input();
17
+ this.displayRequiredFields = false;
20
18
  this.displayInfo = false;
21
19
  this.displayMessage = false;
20
+ this.headerNode = viewChild('headerNode');
21
+ this.infoNode = viewChild('infoNode');
22
+ this.socialProvidersNode = viewChild('socialProvidersNode');
22
23
  }
23
24
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: LoginX509InfoComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
24
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: LoginX509InfoComponent, 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: [
25
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: LoginX509InfoComponent, isStandalone: true, selector: "kc-login-x509-info", providers: [
25
26
  {
26
27
  provide: ComponentReference,
27
28
  useExisting: forwardRef(() => LoginX509InfoComponent)
28
29
  }
29
- ], usesInheritance: true, ngImport: i0, template: "@let url = kcContext.url;\n@let x509 = kcContext.x509;\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('doLogIn') }}\n </ng-container>\n <ng-container content>\n <form\n id=\"kc-x509-login-info\"\n method=\"post\"\n [kcClass]=\"'kcFormClass'\"\n [action]=\"url.loginAction\"\n >\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div [kcClass]=\"'kcLabelWrapperClass'\">\n <label\n for=\"certificate_subjectDN\"\n [kcClass]=\"'kcLabelClass'\"\n >\n {{ i18n.msgStr('clientCertificate') }}\n </label>\n </div>\n @if (x509.formData.subjectDN) {\n <div [kcClass]=\"'kcLabelWrapperClass'\">\n <label\n id=\"certificate_subjectDN\"\n [kcClass]=\"'kcLabelClass'\"\n >\n {{ x509.formData.subjectDN }}\n </label>\n </div>\n } @else {\n <div [kcClass]=\"'kcLabelWrapperClass'\">\n <label\n id=\"certificate_subjectDN\"\n [kcClass]=\"'kcLabelClass'\"\n >\n {{ i18n.msgStr('noCertificate') }}\n </label>\n </div>\n }\n </div>\n <div [kcClass]=\"'kcFormGroupClass'\">\n @if (x509.formData.isUserEnabled) {\n <div [kcClass]=\"'kcLabelWrapperClass'\">\n <label\n for=\"username\"\n [kcClass]=\"'kcLabelClass'\"\n >\n {{ i18n.msgStr('doX509Login') }}\n </label>\n </div>\n <div [kcClass]=\"'kcLabelWrapperClass'\">\n <label\n id=\"username\"\n [kcClass]=\"'kcLabelClass'\"\n >\n {{ x509.formData.username }}\n </label>\n </div>\n }\n </div>\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div\n id=\"kc-form-options\"\n [kcClass]=\"'kcFormOptionsClass'\"\n >\n <div [kcClass]=\"'kcFormOptionsWrapperClass'\"></div>\n </div>\n <div\n id=\"kc-form-buttons\"\n [kcClass]=\"'kcFormButtonsClass'\"\n >\n <div [kcClass]=\"'kcFormButtonsWrapperClass'\">\n <input\n name=\"login\"\n id=\"kc-login\"\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doContinue')\"\n />\n @if (x509.formData.isUserEnabled) {\n <input\n name=\"cancel\"\n id=\"kc-cancel\"\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonDefaultClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doIgnore')\"\n />\n }\n </div>\n </div>\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 }); }
30
+ ], 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 x509 = kcContext.x509;\n\n<ng-template #headerNode>\n {{ i18n.msgStr('doLogIn') }}\n</ng-template>\n<form\n id=\"kc-x509-login-info\"\n method=\"post\"\n [kcClass]=\"'kcFormClass'\"\n [action]=\"url.loginAction\"\n>\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div [kcClass]=\"'kcLabelWrapperClass'\">\n <label\n for=\"certificate_subjectDN\"\n [kcClass]=\"'kcLabelClass'\"\n >\n {{ i18n.msgStr('clientCertificate') }}\n </label>\n </div>\n @if (x509.formData.subjectDN) {\n <div [kcClass]=\"'kcLabelWrapperClass'\">\n <label\n id=\"certificate_subjectDN\"\n [kcClass]=\"'kcLabelClass'\"\n >\n {{ x509.formData.subjectDN }}\n </label>\n </div>\n } @else {\n <div [kcClass]=\"'kcLabelWrapperClass'\">\n <label\n id=\"certificate_subjectDN\"\n [kcClass]=\"'kcLabelClass'\"\n >\n {{ i18n.msgStr('noCertificate') }}\n </label>\n </div>\n }\n </div>\n <div [kcClass]=\"'kcFormGroupClass'\">\n @if (x509.formData.isUserEnabled) {\n <div [kcClass]=\"'kcLabelWrapperClass'\">\n <label\n for=\"username\"\n [kcClass]=\"'kcLabelClass'\"\n >\n {{ i18n.msgStr('doX509Login') }}\n </label>\n </div>\n <div [kcClass]=\"'kcLabelWrapperClass'\">\n <label\n id=\"username\"\n [kcClass]=\"'kcLabelClass'\"\n >\n {{ x509.formData.username }}\n </label>\n </div>\n }\n </div>\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div\n id=\"kc-form-options\"\n [kcClass]=\"'kcFormOptionsClass'\"\n >\n <div [kcClass]=\"'kcFormOptionsWrapperClass'\"></div>\n </div>\n <div\n id=\"kc-form-buttons\"\n [kcClass]=\"'kcFormButtonsClass'\"\n >\n <div [kcClass]=\"'kcFormButtonsWrapperClass'\">\n <input\n name=\"login\"\n id=\"kc-login\"\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doContinue')\"\n />\n @if (x509.formData.isUserEnabled) {\n <input\n name=\"cancel\"\n id=\"kc-cancel\"\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonDefaultClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doIgnore')\"\n />\n }\n </div>\n </div>\n </div>\n</form>\n", dependencies: [{ kind: "directive", type: KcClassDirective, selector: "[kcClass]", inputs: ["class", "ngClass", "kcClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
30
31
  }
31
32
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: LoginX509InfoComponent, decorators: [{
32
33
  type: Component,
33
- args: [{ standalone: true, imports: [TemplateComponent, KcClassDirective], selector: 'kc-root', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
34
+ args: [{ standalone: true, imports: [TemplateComponent, KcClassDirective], selector: 'kc-login-x509-info', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
34
35
  {
35
36
  provide: ComponentReference,
36
37
  useExisting: forwardRef(() => LoginX509InfoComponent)
37
38
  }
38
- ], template: "@let url = kcContext.url;\n@let x509 = kcContext.x509;\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('doLogIn') }}\n </ng-container>\n <ng-container content>\n <form\n id=\"kc-x509-login-info\"\n method=\"post\"\n [kcClass]=\"'kcFormClass'\"\n [action]=\"url.loginAction\"\n >\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div [kcClass]=\"'kcLabelWrapperClass'\">\n <label\n for=\"certificate_subjectDN\"\n [kcClass]=\"'kcLabelClass'\"\n >\n {{ i18n.msgStr('clientCertificate') }}\n </label>\n </div>\n @if (x509.formData.subjectDN) {\n <div [kcClass]=\"'kcLabelWrapperClass'\">\n <label\n id=\"certificate_subjectDN\"\n [kcClass]=\"'kcLabelClass'\"\n >\n {{ x509.formData.subjectDN }}\n </label>\n </div>\n } @else {\n <div [kcClass]=\"'kcLabelWrapperClass'\">\n <label\n id=\"certificate_subjectDN\"\n [kcClass]=\"'kcLabelClass'\"\n >\n {{ i18n.msgStr('noCertificate') }}\n </label>\n </div>\n }\n </div>\n <div [kcClass]=\"'kcFormGroupClass'\">\n @if (x509.formData.isUserEnabled) {\n <div [kcClass]=\"'kcLabelWrapperClass'\">\n <label\n for=\"username\"\n [kcClass]=\"'kcLabelClass'\"\n >\n {{ i18n.msgStr('doX509Login') }}\n </label>\n </div>\n <div [kcClass]=\"'kcLabelWrapperClass'\">\n <label\n id=\"username\"\n [kcClass]=\"'kcLabelClass'\"\n >\n {{ x509.formData.username }}\n </label>\n </div>\n }\n </div>\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div\n id=\"kc-form-options\"\n [kcClass]=\"'kcFormOptionsClass'\"\n >\n <div [kcClass]=\"'kcFormOptionsWrapperClass'\"></div>\n </div>\n <div\n id=\"kc-form-buttons\"\n [kcClass]=\"'kcFormButtonsClass'\"\n >\n <div [kcClass]=\"'kcFormButtonsWrapperClass'\">\n <input\n name=\"login\"\n id=\"kc-login\"\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doContinue')\"\n />\n @if (x509.formData.isUserEnabled) {\n <input\n name=\"cancel\"\n id=\"kc-cancel\"\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonDefaultClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doIgnore')\"\n />\n }\n </div>\n </div>\n </div>\n </form>\n </ng-container>\n</kc-login-template>\n" }]
39
+ ], template: "@let url = kcContext.url;\n@let x509 = kcContext.x509;\n\n<ng-template #headerNode>\n {{ i18n.msgStr('doLogIn') }}\n</ng-template>\n<form\n id=\"kc-x509-login-info\"\n method=\"post\"\n [kcClass]=\"'kcFormClass'\"\n [action]=\"url.loginAction\"\n>\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div [kcClass]=\"'kcLabelWrapperClass'\">\n <label\n for=\"certificate_subjectDN\"\n [kcClass]=\"'kcLabelClass'\"\n >\n {{ i18n.msgStr('clientCertificate') }}\n </label>\n </div>\n @if (x509.formData.subjectDN) {\n <div [kcClass]=\"'kcLabelWrapperClass'\">\n <label\n id=\"certificate_subjectDN\"\n [kcClass]=\"'kcLabelClass'\"\n >\n {{ x509.formData.subjectDN }}\n </label>\n </div>\n } @else {\n <div [kcClass]=\"'kcLabelWrapperClass'\">\n <label\n id=\"certificate_subjectDN\"\n [kcClass]=\"'kcLabelClass'\"\n >\n {{ i18n.msgStr('noCertificate') }}\n </label>\n </div>\n }\n </div>\n <div [kcClass]=\"'kcFormGroupClass'\">\n @if (x509.formData.isUserEnabled) {\n <div [kcClass]=\"'kcLabelWrapperClass'\">\n <label\n for=\"username\"\n [kcClass]=\"'kcLabelClass'\"\n >\n {{ i18n.msgStr('doX509Login') }}\n </label>\n </div>\n <div [kcClass]=\"'kcLabelWrapperClass'\">\n <label\n id=\"username\"\n [kcClass]=\"'kcLabelClass'\"\n >\n {{ x509.formData.username }}\n </label>\n </div>\n }\n </div>\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div\n id=\"kc-form-options\"\n [kcClass]=\"'kcFormOptionsClass'\"\n >\n <div [kcClass]=\"'kcFormOptionsWrapperClass'\"></div>\n </div>\n <div\n id=\"kc-form-buttons\"\n [kcClass]=\"'kcFormButtonsClass'\"\n >\n <div [kcClass]=\"'kcFormButtonsWrapperClass'\">\n <input\n name=\"login\"\n id=\"kc-login\"\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doContinue')\"\n />\n @if (x509.formData.isUserEnabled) {\n <input\n name=\"cancel\"\n id=\"kc-cancel\"\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonDefaultClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doIgnore')\"\n />\n }\n </div>\n </div>\n </div>\n</form>\n" }]
39
40
  }] });
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4teDUwOS1pbmZvLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9sb2dpbi9wYWdlcy9sb2dpbi14NTA5LWluZm8vbG9naW4teDUwOS1pbmZvLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9sb2dpbi9wYWdlcy9sb2dpbi14NTA5LWluZm8vbG9naW4teDUwOS1pbmZvLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBQzVGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ25GLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDcEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOENBQThDLENBQUM7O0FBa0JoRixNQUFNLE9BQU8sc0JBQXVCLFNBQVEsa0JBQWtCO0lBYjlEOztRQWNJLGNBQVMsR0FBRyxNQUFNLENBQXdELGdCQUFnQixDQUFDLENBQUM7UUFDNUYsU0FBSSxHQUFHLE1BQU0sQ0FBTyxVQUFVLENBQUMsQ0FBQztRQUN2QixvQkFBZSxHQUFHLE1BQU0sQ0FBVSxlQUFlLENBQUMsQ0FBQztRQUNuRCxZQUFPLEdBQUcsTUFBTSxDQUFvQyxhQUFhLENBQUMsQ0FBQztRQUM1RSwwQkFBcUIsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckMsa0JBQWEsR0FBRyxLQUFLLEVBQVUsQ0FBQztRQUNoQyxrQkFBYSxHQUFHLEtBQUssRUFBVSxDQUFDO1FBQ2hDLGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBQzdCLG1CQUFjLEdBQVksS0FBSyxDQUFDO0tBQ25DOzhHQVZZLHNCQUFzQjtrR0FBdEIsc0JBQXNCLDBnQkFQcEI7WUFDUDtnQkFDSSxPQUFPLEVBQUUsa0JBQWtCO2dCQUMzQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHNCQUFzQixDQUFDO2FBQ3hEO1NBQ0osaURDdkJMLCtpSUFzR0EsNENEeEZjLGlCQUFpQixvS0FBRSxnQkFBZ0I7OzJGQVdwQyxzQkFBc0I7a0JBYmxDLFNBQVM7aUNBQ00sSUFBSSxXQUNQLENBQUMsaUJBQWlCLEVBQUUsZ0JBQWdCLENBQUMsWUFDcEMsU0FBUyxtQkFFRix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSxrQkFBa0I7NEJBQzNCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLHVCQUF1QixDQUFDO3lCQUN4RDtxQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGZvcndhcmRSZWYsIGluamVjdCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFVTRV9ERUZBVUxUX0NTUyB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xpYi90b2tlbnMvdXNlLWRlZmF1bHQtY3NzJztcbmltcG9ydCB7IENvbXBvbmVudFJlZmVyZW5jZSB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL2NsYXNzZXMvY29tcG9uZW50LXJlZmVyZW5jZSc7XG5pbXBvcnQgeyBUZW1wbGF0ZUNvbXBvbmVudCB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL2NvbnRhaW5lcnMvdGVtcGxhdGUnO1xuaW1wb3J0IHsgS2NDbGFzc0RpcmVjdGl2ZSB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL2RpcmVjdGl2ZXMva2MtY2xhc3MnO1xuaW1wb3J0IHsgTE9HSU5fQ0xBU1NFUyB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL3Rva2Vucy9jbGFzc2VzJztcbmltcG9ydCB7IExPR0lOX0kxOE4gfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi90b2tlbnMvaTE4bic7XG5pbXBvcnQgeyBLQ19MT0dJTl9DT05URVhUIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vdG9rZW5zL2tjLWNvbnRleHQnO1xuaW1wb3J0IHR5cGUgeyBDbGFzc0tleSB9IGZyb20gJ2tleWNsb2FraWZ5L2xvZ2luL2xpYi9rY0Nsc3gnO1xuaW1wb3J0IHR5cGUgeyBJMThuIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vaTE4bic7XG5pbXBvcnQgdHlwZSB7IEtjQ29udGV4dCB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL0tjQ29udGV4dCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1RlbXBsYXRlQ29tcG9uZW50LCBLY0NsYXNzRGlyZWN0aXZlXSxcbiAgICBzZWxlY3RvcjogJ2tjLXJvb3QnLFxuICAgIHRlbXBsYXRlVXJsOiAnbG9naW4teDUwOS1pbmZvLmNvbXBvbmVudC5odG1sJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogQ29tcG9uZW50UmVmZXJlbmNlLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gTG9naW5YNTA5SW5mb0NvbXBvbmVudClcbiAgICAgICAgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgTG9naW5YNTA5SW5mb0NvbXBvbmVudCBleHRlbmRzIENvbXBvbmVudFJlZmVyZW5jZSB7XG4gICAga2NDb250ZXh0ID0gaW5qZWN0PEV4dHJhY3Q8S2NDb250ZXh0LCB7IHBhZ2VJZDogJ2xvZ2luLXg1MDktaW5mby5mdGwnIH0+PihLQ19MT0dJTl9DT05URVhUKTtcbiAgICBpMThuID0gaW5qZWN0PEkxOG4+KExPR0lOX0kxOE4pO1xuICAgIG92ZXJyaWRlIGRvVXNlRGVmYXVsdENzcyA9IGluamVjdDxib29sZWFuPihVU0VfREVGQVVMVF9DU1MpO1xuICAgIG92ZXJyaWRlIGNsYXNzZXMgPSBpbmplY3Q8UGFydGlhbDxSZWNvcmQ8Q2xhc3NLZXksIHN0cmluZz4+PihMT0dJTl9DTEFTU0VTKTtcbiAgICBkaXNwbGF5UmVxdWlyZWRGaWVsZHMgPSBpbnB1dChmYWxzZSk7XG4gICAgZG9jdW1lbnRUaXRsZSA9IGlucHV0PHN0cmluZz4oKTtcbiAgICBib2R5Q2xhc3NOYW1lID0gaW5wdXQ8c3RyaW5nPigpO1xuICAgIGRpc3BsYXlJbmZvOiBib29sZWFuID0gZmFsc2U7XG4gICAgZGlzcGxheU1lc3NhZ2U6IGJvb2xlYW4gPSBmYWxzZTtcbn1cbiIsIkBsZXQgdXJsID0ga2NDb250ZXh0LnVybDtcbkBsZXQgeDUwOSA9IGtjQ29udGV4dC54NTA5O1xuPGtjLWxvZ2luLXRlbXBsYXRlXG4gICAgW2Rpc3BsYXlJbmZvXT1cImRpc3BsYXlJbmZvXCJcbiAgICBbYm9keUNsYXNzTmFtZV09XCJib2R5Q2xhc3NOYW1lKClcIlxuICAgIFtkaXNwbGF5TWVzc2FnZV09XCJkaXNwbGF5TWVzc2FnZVwiXG4gICAgW2Rpc3BsYXlSZXF1aXJlZEZpZWxkc109XCJkaXNwbGF5UmVxdWlyZWRGaWVsZHMoKVwiXG4gICAgW2RvY3VtZW50VGl0bGVdPVwiZG9jdW1lbnRUaXRsZSgpXCJcbj5cbiAgICA8bmctY29udGFpbmVyIGhlYWRlck5vZGU+XG4gICAgICAgIHt7IGkxOG4ubXNnU3RyKCdkb0xvZ0luJykgfX1cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyIGNvbnRlbnQ+XG4gICAgICAgIDxmb3JtXG4gICAgICAgICAgICBpZD1cImtjLXg1MDktbG9naW4taW5mb1wiXG4gICAgICAgICAgICBtZXRob2Q9XCJwb3N0XCJcbiAgICAgICAgICAgIFtrY0NsYXNzXT1cIidrY0Zvcm1DbGFzcydcIlxuICAgICAgICAgICAgW2FjdGlvbl09XCJ1cmwubG9naW5BY3Rpb25cIlxuICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2IFtrY0NsYXNzXT1cIidrY0Zvcm1Hcm91cENsYXNzJ1wiPlxuICAgICAgICAgICAgICAgIDxkaXYgW2tjQ2xhc3NdPVwiJ2tjTGFiZWxXcmFwcGVyQ2xhc3MnXCI+XG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgICAgICAgICAgICAgZm9yPVwiY2VydGlmaWNhdGVfc3ViamVjdEROXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtrY0NsYXNzXT1cIidrY0xhYmVsQ2xhc3MnXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgaTE4bi5tc2dTdHIoJ2NsaWVudENlcnRpZmljYXRlJykgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICBAaWYgKHg1MDkuZm9ybURhdGEuc3ViamVjdEROKSB7XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgW2tjQ2xhc3NdPVwiJ2tjTGFiZWxXcmFwcGVyQ2xhc3MnXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cImNlcnRpZmljYXRlX3N1YmplY3RETlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2tjQ2xhc3NdPVwiJ2tjTGFiZWxDbGFzcydcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHg1MDkuZm9ybURhdGEuc3ViamVjdEROIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBba2NDbGFzc109XCIna2NMYWJlbFdyYXBwZXJDbGFzcydcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY2VydGlmaWNhdGVfc3ViamVjdEROXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBba2NDbGFzc109XCIna2NMYWJlbENsYXNzJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaTE4bi5tc2dTdHIoJ25vQ2VydGlmaWNhdGUnKSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IFtrY0NsYXNzXT1cIidrY0Zvcm1Hcm91cENsYXNzJ1wiPlxuICAgICAgICAgICAgICAgIEBpZiAoeDUwOS5mb3JtRGF0YS5pc1VzZXJFbmFibGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgW2tjQ2xhc3NdPVwiJ2tjTGFiZWxXcmFwcGVyQ2xhc3MnXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3I9XCJ1c2VybmFtZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2tjQ2xhc3NdPVwiJ2tjTGFiZWxDbGFzcydcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGkxOG4ubXNnU3RyKCdkb1g1MDlMb2dpbicpIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBba2NDbGFzc109XCIna2NMYWJlbFdyYXBwZXJDbGFzcydcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwidXNlcm5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtrY0NsYXNzXT1cIidrY0xhYmVsQ2xhc3MnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyB4NTA5LmZvcm1EYXRhLnVzZXJuYW1lIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgW2tjQ2xhc3NdPVwiJ2tjRm9ybUdyb3VwQ2xhc3MnXCI+XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICBpZD1cImtjLWZvcm0tb3B0aW9uc1wiXG4gICAgICAgICAgICAgICAgICAgIFtrY0NsYXNzXT1cIidrY0Zvcm1PcHRpb25zQ2xhc3MnXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgW2tjQ2xhc3NdPVwiJ2tjRm9ybU9wdGlvbnNXcmFwcGVyQ2xhc3MnXCI+PC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICBpZD1cImtjLWZvcm0tYnV0dG9uc1wiXG4gICAgICAgICAgICAgICAgICAgIFtrY0NsYXNzXT1cIidrY0Zvcm1CdXR0b25zQ2xhc3MnXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgW2tjQ2xhc3NdPVwiJ2tjRm9ybUJ1dHRvbnNXcmFwcGVyQ2xhc3MnXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwibG9naW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwia2MtbG9naW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtrY0NsYXNzXT1cIlsna2NCdXR0b25DbGFzcycsICdrY0J1dHRvblByaW1hcnlDbGFzcycsICdrY0J1dHRvbkxhcmdlQ2xhc3MnXVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImkxOG4ubXNnU3RyKCdkb0NvbnRpbnVlJylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoeDUwOS5mb3JtRGF0YS5pc1VzZXJFbmFibGVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJjYW5jZWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cImtjLWNhbmNlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBba2NDbGFzc109XCJbJ2tjQnV0dG9uQ2xhc3MnLCAna2NCdXR0b25EZWZhdWx0Q2xhc3MnLCAna2NCdXR0b25MYXJnZUNsYXNzJ11cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiaTE4bi5tc2dTdHIoJ2RvSWdub3JlJylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZm9ybT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbjwva2MtbG9naW4tdGVtcGxhdGU+XG4iXX0=
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4teDUwOS1pbmZvLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9sb2dpbi9wYWdlcy9sb2dpbi14NTA5LWluZm8vbG9naW4teDUwOS1pbmZvLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9sb2dpbi9wYWdlcy9sb2dpbi14NTA5LWluZm8vbG9naW4teDUwOS1pbmZvLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBZSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0csT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBQzVGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ25GLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBR2xGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDcEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOENBQThDLENBQUM7O0FBZ0JoRixNQUFNLE9BQU8sc0JBQXVCLFNBQVEsa0JBQWtCO0lBYjlEOztRQWNJLGNBQVMsR0FBRyxNQUFNLENBQXdELGdCQUFnQixDQUFDLENBQUM7UUFDNUYsU0FBSSxHQUFHLE1BQU0sQ0FBTyxVQUFVLENBQUMsQ0FBQztRQUN2QixvQkFBZSxHQUFHLE1BQU0sQ0FBVSxlQUFlLENBQUMsQ0FBQztRQUNuRCxZQUFPLEdBQUcsTUFBTSxDQUFvQyxhQUFhLENBQUMsQ0FBQztRQUs1RSwwQkFBcUIsR0FBRyxLQUFLLENBQUM7UUFDOUIsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFDcEIsbUJBQWMsR0FBRyxLQUFLLENBQUM7UUFFdkIsZUFBVSxHQUFJLFNBQVMsQ0FBMkIsWUFBWSxDQUFDLENBQUM7UUFDaEUsYUFBUSxHQUFJLFNBQVMsQ0FBMkIsVUFBVSxDQUFDLENBQUM7UUFDNUQsd0JBQW1CLEdBQUksU0FBUyxDQUEyQixxQkFBcUIsQ0FBQyxDQUFDO0tBQ3JGOzhHQWhCWSxzQkFBc0I7a0dBQXRCLHNCQUFzQixpRUFQcEI7WUFDUDtnQkFDSSxPQUFPLEVBQUUsa0JBQWtCO2dCQUMzQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHNCQUFzQixDQUFDO2FBQ3hEO1NBQ0osK1lDdkJMLHVqR0E2RkEsNENEL0VpQyxnQkFBZ0I7OzJGQVdwQyxzQkFBc0I7a0JBYmxDLFNBQVM7aUNBQ00sSUFBSSxXQUNQLENBQUMsaUJBQWlCLEVBQUUsZ0JBQWdCLENBQUMsWUFDcEMsb0JBQW9CLG1CQUViLHVCQUF1QixDQUFDLE1BQU0sYUFDcEM7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLGtCQUFrQjs0QkFDM0IsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsdUJBQXVCLENBQUM7eUJBQ3hEO3FCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgZm9yd2FyZFJlZiwgaW5qZWN0LCBUZW1wbGF0ZVJlZiwgdmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVU0VfREVGQVVMVF9DU1MgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9saWIvdG9rZW5zL3VzZS1kZWZhdWx0LWNzcyc7XG5pbXBvcnQgeyBDb21wb25lbnRSZWZlcmVuY2UgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9jbGFzc2VzL2NvbXBvbmVudC1yZWZlcmVuY2UnO1xuaW1wb3J0IHsgVGVtcGxhdGVDb21wb25lbnQgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9jb250YWluZXJzL3RlbXBsYXRlJztcbmltcG9ydCB7IEtjQ2xhc3NEaXJlY3RpdmUgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9kaXJlY3RpdmVzL2tjLWNsYXNzJztcbmltcG9ydCB0eXBlIHsgSTE4biB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL2kxOG4nO1xuaW1wb3J0IHR5cGUgeyBLY0NvbnRleHQgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9LY0NvbnRleHQnO1xuaW1wb3J0IHsgTE9HSU5fQ0xBU1NFUyB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL3Rva2Vucy9jbGFzc2VzJztcbmltcG9ydCB7IExPR0lOX0kxOE4gfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi90b2tlbnMvaTE4bic7XG5pbXBvcnQgeyBLQ19MT0dJTl9DT05URVhUIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vdG9rZW5zL2tjLWNvbnRleHQnO1xuaW1wb3J0IHR5cGUgeyBDbGFzc0tleSB9IGZyb20gJ2tleWNsb2FraWZ5L2xvZ2luL2xpYi9rY0Nsc3gnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtUZW1wbGF0ZUNvbXBvbmVudCwgS2NDbGFzc0RpcmVjdGl2ZV0sXG4gICAgc2VsZWN0b3I6ICdrYy1sb2dpbi14NTA5LWluZm8nLFxuICAgIHRlbXBsYXRlVXJsOiAnbG9naW4teDUwOS1pbmZvLmNvbXBvbmVudC5odG1sJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogQ29tcG9uZW50UmVmZXJlbmNlLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gTG9naW5YNTA5SW5mb0NvbXBvbmVudClcbiAgICAgICAgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgTG9naW5YNTA5SW5mb0NvbXBvbmVudCBleHRlbmRzIENvbXBvbmVudFJlZmVyZW5jZSB7XG4gICAga2NDb250ZXh0ID0gaW5qZWN0PEV4dHJhY3Q8S2NDb250ZXh0LCB7IHBhZ2VJZDogJ2xvZ2luLXg1MDktaW5mby5mdGwnIH0+PihLQ19MT0dJTl9DT05URVhUKTtcbiAgICBpMThuID0gaW5qZWN0PEkxOG4+KExPR0lOX0kxOE4pO1xuICAgIG92ZXJyaWRlIGRvVXNlRGVmYXVsdENzcyA9IGluamVjdDxib29sZWFuPihVU0VfREVGQVVMVF9DU1MpO1xuICAgIG92ZXJyaWRlIGNsYXNzZXMgPSBpbmplY3Q8UGFydGlhbDxSZWNvcmQ8Q2xhc3NLZXksIHN0cmluZz4+PihMT0dJTl9DTEFTU0VTKTtcblxuICAgIGRvY3VtZW50VGl0bGU6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICBib2R5Q2xhc3NOYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgICBkaXNwbGF5UmVxdWlyZWRGaWVsZHMgPSBmYWxzZTtcbiAgICBkaXNwbGF5SW5mbyA9IGZhbHNlO1xuICAgIGRpc3BsYXlNZXNzYWdlID0gZmFsc2U7XG5cbiAgICBoZWFkZXJOb2RlPyA9IHZpZXdDaGlsZDxUZW1wbGF0ZVJlZjxIVE1MRWxlbWVudD4+KCdoZWFkZXJOb2RlJyk7XG4gICAgaW5mb05vZGU/ID0gdmlld0NoaWxkPFRlbXBsYXRlUmVmPEhUTUxFbGVtZW50Pj4oJ2luZm9Ob2RlJyk7XG4gICAgc29jaWFsUHJvdmlkZXJzTm9kZT8gPSB2aWV3Q2hpbGQ8VGVtcGxhdGVSZWY8SFRNTEVsZW1lbnQ+Pignc29jaWFsUHJvdmlkZXJzTm9kZScpO1xufVxuIiwiQGxldCB1cmwgPSBrY0NvbnRleHQudXJsO1xuQGxldCB4NTA5ID0ga2NDb250ZXh0Lng1MDk7XG5cbjxuZy10ZW1wbGF0ZSAjaGVhZGVyTm9kZT5cbiAgICB7eyBpMThuLm1zZ1N0cignZG9Mb2dJbicpIH19XG48L25nLXRlbXBsYXRlPlxuPGZvcm1cbiAgICBpZD1cImtjLXg1MDktbG9naW4taW5mb1wiXG4gICAgbWV0aG9kPVwicG9zdFwiXG4gICAgW2tjQ2xhc3NdPVwiJ2tjRm9ybUNsYXNzJ1wiXG4gICAgW2FjdGlvbl09XCJ1cmwubG9naW5BY3Rpb25cIlxuPlxuICAgIDxkaXYgW2tjQ2xhc3NdPVwiJ2tjRm9ybUdyb3VwQ2xhc3MnXCI+XG4gICAgICAgIDxkaXYgW2tjQ2xhc3NdPVwiJ2tjTGFiZWxXcmFwcGVyQ2xhc3MnXCI+XG4gICAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgICAgICBmb3I9XCJjZXJ0aWZpY2F0ZV9zdWJqZWN0RE5cIlxuICAgICAgICAgICAgICAgIFtrY0NsYXNzXT1cIidrY0xhYmVsQ2xhc3MnXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7eyBpMThuLm1zZ1N0cignY2xpZW50Q2VydGlmaWNhdGUnKSB9fVxuICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIEBpZiAoeDUwOS5mb3JtRGF0YS5zdWJqZWN0RE4pIHtcbiAgICAgICAgICAgIDxkaXYgW2tjQ2xhc3NdPVwiJ2tjTGFiZWxXcmFwcGVyQ2xhc3MnXCI+XG4gICAgICAgICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICAgICAgICAgIGlkPVwiY2VydGlmaWNhdGVfc3ViamVjdEROXCJcbiAgICAgICAgICAgICAgICAgICAgW2tjQ2xhc3NdPVwiJ2tjTGFiZWxDbGFzcydcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3sgeDUwOS5mb3JtRGF0YS5zdWJqZWN0RE4gfX1cbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgPGRpdiBba2NDbGFzc109XCIna2NMYWJlbFdyYXBwZXJDbGFzcydcIj5cbiAgICAgICAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgICAgICAgICAgaWQ9XCJjZXJ0aWZpY2F0ZV9zdWJqZWN0RE5cIlxuICAgICAgICAgICAgICAgICAgICBba2NDbGFzc109XCIna2NMYWJlbENsYXNzJ1wiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7eyBpMThuLm1zZ1N0cignbm9DZXJ0aWZpY2F0ZScpIH19XG4gICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgPC9kaXY+XG4gICAgPGRpdiBba2NDbGFzc109XCIna2NGb3JtR3JvdXBDbGFzcydcIj5cbiAgICAgICAgQGlmICh4NTA5LmZvcm1EYXRhLmlzVXNlckVuYWJsZWQpIHtcbiAgICAgICAgICAgIDxkaXYgW2tjQ2xhc3NdPVwiJ2tjTGFiZWxXcmFwcGVyQ2xhc3MnXCI+XG4gICAgICAgICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICAgICAgICAgIGZvcj1cInVzZXJuYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgW2tjQ2xhc3NdPVwiJ2tjTGFiZWxDbGFzcydcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3sgaTE4bi5tc2dTdHIoJ2RvWDUwOUxvZ2luJykgfX1cbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IFtrY0NsYXNzXT1cIidrY0xhYmVsV3JhcHBlckNsYXNzJ1wiPlxuICAgICAgICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgICAgICAgICBpZD1cInVzZXJuYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgW2tjQ2xhc3NdPVwiJ2tjTGFiZWxDbGFzcydcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3sgeDUwOS5mb3JtRGF0YS51c2VybmFtZSB9fVxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgIDwvZGl2PlxuICAgIDxkaXYgW2tjQ2xhc3NdPVwiJ2tjRm9ybUdyb3VwQ2xhc3MnXCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgIGlkPVwia2MtZm9ybS1vcHRpb25zXCJcbiAgICAgICAgICAgIFtrY0NsYXNzXT1cIidrY0Zvcm1PcHRpb25zQ2xhc3MnXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGRpdiBba2NDbGFzc109XCIna2NGb3JtT3B0aW9uc1dyYXBwZXJDbGFzcydcIj48L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgIGlkPVwia2MtZm9ybS1idXR0b25zXCJcbiAgICAgICAgICAgIFtrY0NsYXNzXT1cIidrY0Zvcm1CdXR0b25zQ2xhc3MnXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGRpdiBba2NDbGFzc109XCIna2NGb3JtQnV0dG9uc1dyYXBwZXJDbGFzcydcIj5cbiAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgbmFtZT1cImxvZ2luXCJcbiAgICAgICAgICAgICAgICAgICAgaWQ9XCJrYy1sb2dpblwiXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICAgICAgICAgICAgICBba2NDbGFzc109XCJbJ2tjQnV0dG9uQ2xhc3MnLCAna2NCdXR0b25QcmltYXJ5Q2xhc3MnLCAna2NCdXR0b25MYXJnZUNsYXNzJ11cIlxuICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiaTE4bi5tc2dTdHIoJ2RvQ29udGludWUnKVwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICBAaWYgKHg1MDkuZm9ybURhdGEuaXNVc2VyRW5hYmxlZCkge1xuICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJjYW5jZWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJrYy1jYW5jZWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInN1Ym1pdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBba2NDbGFzc109XCJbJ2tjQnV0dG9uQ2xhc3MnLCAna2NCdXR0b25EZWZhdWx0Q2xhc3MnLCAna2NCdXR0b25MYXJnZUNsYXNzJ11cIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImkxOG4ubXNnU3RyKCdkb0lnbm9yZScpXCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Zvcm0+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 LogoutConfirmComponent 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 = true;
16
+ this.headerNode = viewChild('headerNode');
17
+ this.infoNode = viewChild('infoNode');
18
+ this.socialProvidersNode = viewChild('socialProvidersNode');
22
19
  }
23
20
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: LogoutConfirmComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
24
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: LogoutConfirmComponent, 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: [
21
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: LogoutConfirmComponent, isStandalone: true, selector: "kc-logout-confirm", providers: [
25
22
  {
26
23
  provide: ComponentReference,
27
24
  useExisting: forwardRef(() => LogoutConfirmComponent)
28
25
  }
29
- ], usesInheritance: true, ngImport: i0, template: "@let url = kcContext.url;\n@let logoutConfirm = kcContext.logoutConfirm;\n@let client = kcContext.client;\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('logoutConfirmTitle') }}\n </ng-container>\n <ng-container content>\n <div\n id=\"kc-logout-confirm\"\n class=\"content-area\"\n >\n <p class=\"instruction\">{{ i18n.msgStr('logoutConfirmHeader') }}</p>\n <form\n class=\"form-actions\"\n method=\"POST\"\n [action]=\"url.logoutConfirmAction\"\n >\n <input\n type=\"hidden\"\n name=\"session_code\"\n [value]=\"logoutConfirm.code\"\n />\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div id=\"kc-form-options\">\n <div [kcClass]=\"'kcFormOptionsWrapperClass'\"></div>\n </div>\n <div\n id=\"kc-form-buttons\"\n class=\"kcFormGroupClass\"\n >\n <input\n tabIndex=\"4\"\n name=\"confirmLogout\"\n id=\"kc-logout\"\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doLogout')\"\n />\n </div>\n </div>\n </form>\n <div id=\"kc-info-message\">\n @if (!logoutConfirm.skipLink && client.baseUrl) {\n <p>\n <a [href]=\"client.baseUrl\">{{ i18n.msgStr('backToApplication') }}</a>\n </p>\n }\n </div>\n </div>\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 logoutConfirm = kcContext.logoutConfirm;\n@let client = kcContext.client;\n\n<ng-template #headerNode>\n {{ i18n.msgStr('logoutConfirmTitle') }}\n</ng-template>\n<div\n id=\"kc-logout-confirm\"\n class=\"content-area\"\n>\n <p class=\"instruction\">{{ i18n.msgStr('logoutConfirmHeader') }}</p>\n <form\n class=\"form-actions\"\n method=\"POST\"\n [action]=\"url.logoutConfirmAction\"\n >\n <input\n type=\"hidden\"\n name=\"session_code\"\n [value]=\"logoutConfirm.code\"\n />\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div id=\"kc-form-options\">\n <div [kcClass]=\"'kcFormOptionsWrapperClass'\"></div>\n </div>\n <div\n id=\"kc-form-buttons\"\n class=\"kcFormGroupClass\"\n >\n <input\n tabIndex=\"4\"\n name=\"confirmLogout\"\n id=\"kc-logout\"\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doLogout')\"\n />\n </div>\n </div>\n </form>\n <div id=\"kc-info-message\">\n @if (!logoutConfirm.skipLink && client.baseUrl) {\n <p>\n <a [href]=\"client.baseUrl\">{{ i18n.msgStr('backToApplication') }}</a>\n </p>\n }\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: KcClassDirective, selector: "[kcClass]", inputs: ["class", "ngClass", "kcClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
30
27
  }
31
28
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: LogoutConfirmComponent, 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-logout-confirm', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
34
31
  {
35
32
  provide: ComponentReference,
36
33
  useExisting: forwardRef(() => LogoutConfirmComponent)
37
34
  }
38
- ], template: "@let url = kcContext.url;\n@let logoutConfirm = kcContext.logoutConfirm;\n@let client = kcContext.client;\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('logoutConfirmTitle') }}\n </ng-container>\n <ng-container content>\n <div\n id=\"kc-logout-confirm\"\n class=\"content-area\"\n >\n <p class=\"instruction\">{{ i18n.msgStr('logoutConfirmHeader') }}</p>\n <form\n class=\"form-actions\"\n method=\"POST\"\n [action]=\"url.logoutConfirmAction\"\n >\n <input\n type=\"hidden\"\n name=\"session_code\"\n [value]=\"logoutConfirm.code\"\n />\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div id=\"kc-form-options\">\n <div [kcClass]=\"'kcFormOptionsWrapperClass'\"></div>\n </div>\n <div\n id=\"kc-form-buttons\"\n class=\"kcFormGroupClass\"\n >\n <input\n tabIndex=\"4\"\n name=\"confirmLogout\"\n id=\"kc-logout\"\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doLogout')\"\n />\n </div>\n </div>\n </form>\n <div id=\"kc-info-message\">\n @if (!logoutConfirm.skipLink && client.baseUrl) {\n <p>\n <a [href]=\"client.baseUrl\">{{ i18n.msgStr('backToApplication') }}</a>\n </p>\n }\n </div>\n </div>\n </ng-container>\n</kc-login-template>\n" }]
35
+ ], template: "@let url = kcContext.url;\n@let logoutConfirm = kcContext.logoutConfirm;\n@let client = kcContext.client;\n\n<ng-template #headerNode>\n {{ i18n.msgStr('logoutConfirmTitle') }}\n</ng-template>\n<div\n id=\"kc-logout-confirm\"\n class=\"content-area\"\n>\n <p class=\"instruction\">{{ i18n.msgStr('logoutConfirmHeader') }}</p>\n <form\n class=\"form-actions\"\n method=\"POST\"\n [action]=\"url.logoutConfirmAction\"\n >\n <input\n type=\"hidden\"\n name=\"session_code\"\n [value]=\"logoutConfirm.code\"\n />\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div id=\"kc-form-options\">\n <div [kcClass]=\"'kcFormOptionsWrapperClass'\"></div>\n </div>\n <div\n id=\"kc-form-buttons\"\n class=\"kcFormGroupClass\"\n >\n <input\n tabIndex=\"4\"\n name=\"confirmLogout\"\n id=\"kc-logout\"\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doLogout')\"\n />\n </div>\n </div>\n </form>\n <div id=\"kc-info-message\">\n @if (!logoutConfirm.skipLink && client.baseUrl) {\n <p>\n <a [href]=\"client.baseUrl\">{{ i18n.msgStr('backToApplication') }}</a>\n </p>\n }\n </div>\n</div>\n" }]
39
36
  }] });
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nb3V0LWNvbmZpcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xvZ2luL3BhZ2VzL2xvZ291dC1jb25maXJtL2xvZ291dC1jb25maXJtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9sb2dpbi9wYWdlcy9sb2dvdXQtY29uZmlybS9sb2dvdXQtY29uZmlybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUNsRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUM1RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUNuRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUNsRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDMUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDOztBQWtCaEYsTUFBTSxPQUFPLHNCQUF1QixTQUFRLGtCQUFrQjtJQWI5RDs7UUFjSSxjQUFTLEdBQUcsTUFBTSxDQUF1RCxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzNGLFNBQUksR0FBRyxNQUFNLENBQU8sVUFBVSxDQUFDLENBQUM7UUFDdkIsb0JBQWUsR0FBRyxNQUFNLENBQVUsZUFBZSxDQUFDLENBQUM7UUFDbkQsWUFBTyxHQUFHLE1BQU0sQ0FBb0MsYUFBYSxDQUFDLENBQUM7UUFDNUUsMEJBQXFCLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JDLGtCQUFhLEdBQUcsS0FBSyxFQUFVLENBQUM7UUFDaEMsa0JBQWEsR0FBRyxLQUFLLEVBQVUsQ0FBQztRQUNoQyxnQkFBVyxHQUFZLEtBQUssQ0FBQztRQUM3QixtQkFBYyxHQUFZLElBQUksQ0FBQztLQUNsQzs4R0FWWSxzQkFBc0I7a0dBQXRCLHNCQUFzQiwwZ0JBUHBCO1lBQ1A7Z0JBQ0ksT0FBTyxFQUFFLGtCQUFrQjtnQkFDM0IsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQzthQUN4RDtTQUNKLGlEQ3ZCTCxvckVBMkRBLDRDRDdDYyxpQkFBaUIsb0tBQUUsZ0JBQWdCOzsyRkFXcEMsc0JBQXNCO2tCQWJsQyxTQUFTO2lDQUNNLElBQUksV0FDUCxDQUFDLGlCQUFpQixFQUFFLGdCQUFnQixDQUFDLFlBQ3BDLFNBQVMsbUJBRUYsdUJBQXVCLENBQUMsTUFBTSxhQUNwQzt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsa0JBQWtCOzRCQUMzQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSx1QkFBdUIsQ0FBQzt5QkFDeEQ7cUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBmb3J3YXJkUmVmLCBpbmplY3QsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVU0VfREVGQVVMVF9DU1MgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9saWIvdG9rZW5zL3VzZS1kZWZhdWx0LWNzcyc7XG5pbXBvcnQgeyBDb21wb25lbnRSZWZlcmVuY2UgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9jbGFzc2VzL2NvbXBvbmVudC1yZWZlcmVuY2UnO1xuaW1wb3J0IHsgVGVtcGxhdGVDb21wb25lbnQgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9jb250YWluZXJzL3RlbXBsYXRlJztcbmltcG9ydCB7IEtjQ2xhc3NEaXJlY3RpdmUgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9kaXJlY3RpdmVzL2tjLWNsYXNzJztcbmltcG9ydCB7IExPR0lOX0NMQVNTRVMgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi90b2tlbnMvY2xhc3Nlcyc7XG5pbXBvcnQgeyBMT0dJTl9JMThOIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vdG9rZW5zL2kxOG4nO1xuaW1wb3J0IHsgS0NfTE9HSU5fQ09OVEVYVCB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL3Rva2Vucy9rYy1jb250ZXh0JztcbmltcG9ydCB0eXBlIHsgQ2xhc3NLZXkgfSBmcm9tICdrZXljbG9ha2lmeS9sb2dpbi9saWIva2NDbHN4JztcbmltcG9ydCB0eXBlIHsgSTE4biB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL2kxOG4nO1xuaW1wb3J0IHR5cGUgeyBLY0NvbnRleHQgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9LY0NvbnRleHQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtUZW1wbGF0ZUNvbXBvbmVudCwgS2NDbGFzc0RpcmVjdGl2ZV0sXG4gICAgc2VsZWN0b3I6ICdrYy1yb290JyxcbiAgICB0ZW1wbGF0ZVVybDogJ2xvZ291dC1jb25maXJtLmNvbXBvbmVudC5odG1sJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogQ29tcG9uZW50UmVmZXJlbmNlLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gTG9nb3V0Q29uZmlybUNvbXBvbmVudClcbiAgICAgICAgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgTG9nb3V0Q29uZmlybUNvbXBvbmVudCBleHRlbmRzIENvbXBvbmVudFJlZmVyZW5jZSB7XG4gICAga2NDb250ZXh0ID0gaW5qZWN0PEV4dHJhY3Q8S2NDb250ZXh0LCB7IHBhZ2VJZDogJ2xvZ291dC1jb25maXJtLmZ0bCcgfT4+KEtDX0xPR0lOX0NPTlRFWFQpO1xuICAgIGkxOG4gPSBpbmplY3Q8STE4bj4oTE9HSU5fSTE4Tik7XG4gICAgb3ZlcnJpZGUgZG9Vc2VEZWZhdWx0Q3NzID0gaW5qZWN0PGJvb2xlYW4+KFVTRV9ERUZBVUxUX0NTUyk7XG4gICAgb3ZlcnJpZGUgY2xhc3NlcyA9IGluamVjdDxQYXJ0aWFsPFJlY29yZDxDbGFzc0tleSwgc3RyaW5nPj4+KExPR0lOX0NMQVNTRVMpO1xuICAgIGRpc3BsYXlSZXF1aXJlZEZpZWxkcyA9IGlucHV0KGZhbHNlKTtcbiAgICBkb2N1bWVudFRpdGxlID0gaW5wdXQ8c3RyaW5nPigpO1xuICAgIGJvZHlDbGFzc05hbWUgPSBpbnB1dDxzdHJpbmc+KCk7XG4gICAgZGlzcGxheUluZm86IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBkaXNwbGF5TWVzc2FnZTogYm9vbGVhbiA9IHRydWU7XG59XG4iLCJAbGV0IHVybCA9IGtjQ29udGV4dC51cmw7XG5AbGV0IGxvZ291dENvbmZpcm0gPSBrY0NvbnRleHQubG9nb3V0Q29uZmlybTtcbkBsZXQgY2xpZW50ID0ga2NDb250ZXh0LmNsaWVudDtcblxuPGtjLWxvZ2luLXRlbXBsYXRlXG4gICAgW2Rpc3BsYXlJbmZvXT1cImRpc3BsYXlJbmZvXCJcbiAgICBbYm9keUNsYXNzTmFtZV09XCJib2R5Q2xhc3NOYW1lKClcIlxuICAgIFtkaXNwbGF5TWVzc2FnZV09XCJkaXNwbGF5TWVzc2FnZVwiXG4gICAgW2Rpc3BsYXlSZXF1aXJlZEZpZWxkc109XCJkaXNwbGF5UmVxdWlyZWRGaWVsZHMoKVwiXG4gICAgW2RvY3VtZW50VGl0bGVdPVwiZG9jdW1lbnRUaXRsZSgpXCJcbj5cbiAgICA8bmctY29udGFpbmVyIGhlYWRlck5vZGU+XG4gICAgICAgIHt7IGkxOG4ubXNnU3RyKCdsb2dvdXRDb25maXJtVGl0bGUnKSB9fVxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgY29udGVudD5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgaWQ9XCJrYy1sb2dvdXQtY29uZmlybVwiXG4gICAgICAgICAgICBjbGFzcz1cImNvbnRlbnQtYXJlYVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxwIGNsYXNzPVwiaW5zdHJ1Y3Rpb25cIj57eyBpMThuLm1zZ1N0cignbG9nb3V0Q29uZmlybUhlYWRlcicpIH19PC9wPlxuICAgICAgICAgICAgPGZvcm1cbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tYWN0aW9uc1wiXG4gICAgICAgICAgICAgICAgbWV0aG9kPVwiUE9TVFwiXG4gICAgICAgICAgICAgICAgW2FjdGlvbl09XCJ1cmwubG9nb3V0Q29uZmlybUFjdGlvblwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJoaWRkZW5cIlxuICAgICAgICAgICAgICAgICAgICBuYW1lPVwic2Vzc2lvbl9jb2RlXCJcbiAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImxvZ291dENvbmZpcm0uY29kZVwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8ZGl2IFtrY0NsYXNzXT1cIidrY0Zvcm1Hcm91cENsYXNzJ1wiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPVwia2MtZm9ybS1vcHRpb25zXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IFtrY0NsYXNzXT1cIidrY0Zvcm1PcHRpb25zV3JhcHBlckNsYXNzJ1wiPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJrYy1mb3JtLWJ1dHRvbnNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJrY0Zvcm1Hcm91cENsYXNzXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFiSW5kZXg9XCI0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiY29uZmlybUxvZ291dFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJrYy1sb2dvdXRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtrY0NsYXNzXT1cIlsna2NCdXR0b25DbGFzcycsICdrY0J1dHRvblByaW1hcnlDbGFzcycsICdrY0J1dHRvbkJsb2NrQ2xhc3MnLCAna2NCdXR0b25MYXJnZUNsYXNzJ11cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJpMThuLm1zZ1N0cignZG9Mb2dvdXQnKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZm9ybT5cbiAgICAgICAgICAgIDxkaXYgaWQ9XCJrYy1pbmZvLW1lc3NhZ2VcIj5cbiAgICAgICAgICAgICAgICBAaWYgKCFsb2dvdXRDb25maXJtLnNraXBMaW5rICYmIGNsaWVudC5iYXNlVXJsKSB7XG4gICAgICAgICAgICAgICAgICAgIDxwPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGEgW2hyZWZdPVwiY2xpZW50LmJhc2VVcmxcIj57eyBpMThuLm1zZ1N0cignYmFja1RvQXBwbGljYXRpb24nKSB9fTwvYT5cbiAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbjwva2MtbG9naW4tdGVtcGxhdGU+XG4iXX0=
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nb3V0LWNvbmZpcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xvZ2luL3BhZ2VzL2xvZ291dC1jb25maXJtL2xvZ291dC1jb25maXJtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9sb2dpbi9wYWdlcy9sb2dvdXQtY29uZmlybS9sb2dvdXQtY29uZmlybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQWUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9HLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBQzVGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ25GLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBR2xGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQzs7QUFlaEYsTUFBTSxPQUFPLHNCQUF1QixTQUFRLGtCQUFrQjtJQWI5RDs7UUFjSSxjQUFTLEdBQUcsTUFBTSxDQUF1RCxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzNGLFNBQUksR0FBRyxNQUFNLENBQU8sVUFBVSxDQUFDLENBQUM7UUFLaEMsMEJBQXFCLEdBQUcsS0FBSyxDQUFDO1FBQzlCLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLG1CQUFjLEdBQUcsSUFBSSxDQUFDO1FBRXRCLGVBQVUsR0FBSSxTQUFTLENBQTJCLFlBQVksQ0FBQyxDQUFDO1FBQ2hFLGFBQVEsR0FBSSxTQUFTLENBQTJCLFVBQVUsQ0FBQyxDQUFDO1FBQzVELHdCQUFtQixHQUFJLFNBQVMsQ0FBMkIscUJBQXFCLENBQUMsQ0FBQztLQUNyRjs4R0FkWSxzQkFBc0I7a0dBQXRCLHNCQUFzQixnRUFQcEI7WUFDUDtnQkFDSSxPQUFPLEVBQUUsa0JBQWtCO2dCQUMzQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHNCQUFzQixDQUFDO2FBQ3hEO1NBQ0osK1lDcEJMLGtpREFpREEsNENEdENpQyxnQkFBZ0I7OzJGQVdwQyxzQkFBc0I7a0JBYmxDLFNBQVM7aUNBQ00sSUFBSSxXQUNQLENBQUMsaUJBQWlCLEVBQUUsZ0JBQWdCLENBQUMsWUFDcEMsbUJBQW1CLG1CQUVaLHVCQUF1QixDQUFDLE1BQU0sYUFDcEM7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLGtCQUFrQjs0QkFDM0IsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsdUJBQXVCLENBQUM7eUJBQ3hEO3FCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgZm9yd2FyZFJlZiwgaW5qZWN0LCBUZW1wbGF0ZVJlZiwgdmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21wb25lbnRSZWZlcmVuY2UgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9jbGFzc2VzL2NvbXBvbmVudC1yZWZlcmVuY2UnO1xuaW1wb3J0IHsgVGVtcGxhdGVDb21wb25lbnQgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9jb250YWluZXJzL3RlbXBsYXRlJztcbmltcG9ydCB7IEtjQ2xhc3NEaXJlY3RpdmUgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9kaXJlY3RpdmVzL2tjLWNsYXNzJztcbmltcG9ydCB0eXBlIHsgSTE4biB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL2kxOG4nO1xuaW1wb3J0IHR5cGUgeyBLY0NvbnRleHQgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9LY0NvbnRleHQnO1xuaW1wb3J0IHsgTE9HSU5fSTE4TiB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL3Rva2Vucy9pMThuJztcbmltcG9ydCB7IEtDX0xPR0lOX0NPTlRFWFQgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi90b2tlbnMva2MtY29udGV4dCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1RlbXBsYXRlQ29tcG9uZW50LCBLY0NsYXNzRGlyZWN0aXZlXSxcbiAgICBzZWxlY3RvcjogJ2tjLWxvZ291dC1jb25maXJtJyxcbiAgICB0ZW1wbGF0ZVVybDogJ2xvZ291dC1jb25maXJtLmNvbXBvbmVudC5odG1sJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogQ29tcG9uZW50UmVmZXJlbmNlLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gTG9nb3V0Q29uZmlybUNvbXBvbmVudClcbiAgICAgICAgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgTG9nb3V0Q29uZmlybUNvbXBvbmVudCBleHRlbmRzIENvbXBvbmVudFJlZmVyZW5jZSB7XG4gICAga2NDb250ZXh0ID0gaW5qZWN0PEV4dHJhY3Q8S2NDb250ZXh0LCB7IHBhZ2VJZDogJ2xvZ291dC1jb25maXJtLmZ0bCcgfT4+KEtDX0xPR0lOX0NPTlRFWFQpO1xuICAgIGkxOG4gPSBpbmplY3Q8STE4bj4oTE9HSU5fSTE4Tik7XG5cbiAgICBkb2N1bWVudFRpdGxlOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgYm9keUNsYXNzTmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gICAgZGlzcGxheVJlcXVpcmVkRmllbGRzID0gZmFsc2U7XG4gICAgZGlzcGxheUluZm8gPSBmYWxzZTtcbiAgICBkaXNwbGF5TWVzc2FnZSA9IHRydWU7XG5cbiAgICBoZWFkZXJOb2RlPyA9IHZpZXdDaGlsZDxUZW1wbGF0ZVJlZjxIVE1MRWxlbWVudD4+KCdoZWFkZXJOb2RlJyk7XG4gICAgaW5mb05vZGU/ID0gdmlld0NoaWxkPFRlbXBsYXRlUmVmPEhUTUxFbGVtZW50Pj4oJ2luZm9Ob2RlJyk7XG4gICAgc29jaWFsUHJvdmlkZXJzTm9kZT8gPSB2aWV3Q2hpbGQ8VGVtcGxhdGVSZWY8SFRNTEVsZW1lbnQ+Pignc29jaWFsUHJvdmlkZXJzTm9kZScpO1xufVxuIiwiQGxldCB1cmwgPSBrY0NvbnRleHQudXJsO1xuQGxldCBsb2dvdXRDb25maXJtID0ga2NDb250ZXh0LmxvZ291dENvbmZpcm07XG5AbGV0IGNsaWVudCA9IGtjQ29udGV4dC5jbGllbnQ7XG5cbjxuZy10ZW1wbGF0ZSAjaGVhZGVyTm9kZT5cbiAgICB7eyBpMThuLm1zZ1N0cignbG9nb3V0Q29uZmlybVRpdGxlJykgfX1cbjwvbmctdGVtcGxhdGU+XG48ZGl2XG4gICAgaWQ9XCJrYy1sb2dvdXQtY29uZmlybVwiXG4gICAgY2xhc3M9XCJjb250ZW50LWFyZWFcIlxuPlxuICAgIDxwIGNsYXNzPVwiaW5zdHJ1Y3Rpb25cIj57eyBpMThuLm1zZ1N0cignbG9nb3V0Q29uZmlybUhlYWRlcicpIH19PC9wPlxuICAgIDxmb3JtXG4gICAgICAgIGNsYXNzPVwiZm9ybS1hY3Rpb25zXCJcbiAgICAgICAgbWV0aG9kPVwiUE9TVFwiXG4gICAgICAgIFthY3Rpb25dPVwidXJsLmxvZ291dENvbmZpcm1BY3Rpb25cIlxuICAgID5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgICB0eXBlPVwiaGlkZGVuXCJcbiAgICAgICAgICAgIG5hbWU9XCJzZXNzaW9uX2NvZGVcIlxuICAgICAgICAgICAgW3ZhbHVlXT1cImxvZ291dENvbmZpcm0uY29kZVwiXG4gICAgICAgIC8+XG4gICAgICAgIDxkaXYgW2tjQ2xhc3NdPVwiJ2tjRm9ybUdyb3VwQ2xhc3MnXCI+XG4gICAgICAgICAgICA8ZGl2IGlkPVwia2MtZm9ybS1vcHRpb25zXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBba2NDbGFzc109XCIna2NGb3JtT3B0aW9uc1dyYXBwZXJDbGFzcydcIj48L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGlkPVwia2MtZm9ybS1idXR0b25zXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImtjRm9ybUdyb3VwQ2xhc3NcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICB0YWJJbmRleD1cIjRcIlxuICAgICAgICAgICAgICAgICAgICBuYW1lPVwiY29uZmlybUxvZ291dFwiXG4gICAgICAgICAgICAgICAgICAgIGlkPVwia2MtbG9nb3V0XCJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cInN1Ym1pdFwiXG4gICAgICAgICAgICAgICAgICAgIFtrY0NsYXNzXT1cIlsna2NCdXR0b25DbGFzcycsICdrY0J1dHRvblByaW1hcnlDbGFzcycsICdrY0J1dHRvbkJsb2NrQ2xhc3MnLCAna2NCdXR0b25MYXJnZUNsYXNzJ11cIlxuICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiaTE4bi5tc2dTdHIoJ2RvTG9nb3V0JylcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9mb3JtPlxuICAgIDxkaXYgaWQ9XCJrYy1pbmZvLW1lc3NhZ2VcIj5cbiAgICAgICAgQGlmICghbG9nb3V0Q29uZmlybS5za2lwTGluayAmJiBjbGllbnQuYmFzZVVybCkge1xuICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgICAgPGEgW2hyZWZdPVwiY2xpZW50LmJhc2VVcmxcIj57eyBpMThuLm1zZ1N0cignYmFja1RvQXBwbGljYXRpb24nKSB9fTwvYT5cbiAgICAgICAgICAgIDwvcD5cbiAgICAgICAgfVxuICAgIDwvZGl2PlxuPC9kaXY+XG4iXX0=