@keycloakify/angular 0.0.1-rc.0 → 0.0.1-rc.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (472) hide show
  1. package/lib/i18n.d.ts +2 -2
  2. package/lib/i18n.mjs +6 -0
  3. package/lib/models/index.d.ts +1 -1
  4. package/lib/models/index.mjs +2 -0
  5. package/lib/models/script.model.mjs +2 -0
  6. package/lib/providers/keycloakify-angular.providers.d.ts +5 -5
  7. package/lib/providers/keycloakify-angular.providers.mjs +54 -0
  8. package/lib/public-api.d.ts +5 -5
  9. package/lib/public-api.mjs +4 -0
  10. package/lib/services/i18n.service.d.ts +3 -0
  11. package/lib/services/i18n.service.mjs +11 -0
  12. package/lib/services/index.d.ts +2 -2
  13. package/lib/services/index.mjs +3 -0
  14. package/lib/services/resource-injector.service.d.ts +5 -2
  15. package/lib/services/resource-injector.service.mjs +54 -0
  16. package/login/DefaultPage.d.ts +4 -4
  17. package/login/DefaultPage.mjs +121 -0
  18. package/login/KcContext.d.ts +1 -1
  19. package/login/KcContext.mjs +2 -0
  20. package/login/classes/component-reference.class.d.ts +1 -1
  21. package/login/classes/component-reference.class.mjs +3 -0
  22. package/login/components/add-remove-buttons-multi-valued-attribute/add-remove-buttons-multi-valued-attribute.component.d.ts +5 -2
  23. package/login/components/add-remove-buttons-multi-valued-attribute/add-remove-buttons-multi-valued-attribute.component.mjs +105 -0
  24. package/login/components/field-errors/field-errors.component.d.ts +7 -4
  25. package/login/components/field-errors/field-errors.component.mjs +32 -0
  26. package/login/components/group-label/group-label.component.d.ts +6 -3
  27. package/login/components/group-label/group-label.component.mjs +41 -0
  28. package/login/components/hello-world/hello-world.component.d.ts +5 -0
  29. package/login/components/hello-world/hello-world.component.mjs +11 -0
  30. package/login/components/index.d.ts +11 -11
  31. package/login/components/index.mjs +12 -0
  32. package/login/components/input-field-by-type/input-field-by-type.component.d.ts +7 -4
  33. package/login/components/input-field-by-type/input-field-by-type.component.mjs +45 -0
  34. package/login/components/input-tag/input-tag.component.d.ts +7 -4
  35. package/login/components/input-tag/input-tag.component.mjs +89 -0
  36. package/login/components/input-tag-selects/input-tag-selects.component.d.ts +9 -6
  37. package/login/components/input-tag-selects/input-tag-selects.component.mjs +115 -0
  38. package/login/components/logout-other-sessions/logout-other-sessions.component.d.ts +5 -2
  39. package/login/components/logout-other-sessions/logout-other-sessions.component.mjs +30 -0
  40. package/login/components/password-wrapper/password-wrapper.component.d.ts +6 -3
  41. package/login/components/password-wrapper/password-wrapper.component.mjs +44 -0
  42. package/login/components/select-tag/select-tag.component.d.ts +7 -4
  43. package/login/components/select-tag/select-tag.component.mjs +80 -0
  44. package/login/components/textarea-tag/textarea-tag.component.d.ts +7 -4
  45. package/login/components/textarea-tag/textarea-tag.component.mjs +48 -0
  46. package/login/components/user-profile-form-fields/user-profile-form-fields.component.d.ts +8 -5
  47. package/login/components/user-profile-form-fields/user-profile-form-fields.component.mjs +55 -0
  48. package/login/containers/template.component.d.ts +11 -8
  49. package/login/containers/template.component.mjs +70 -0
  50. package/login/directives/attributes.directive.d.ts +3 -0
  51. package/login/directives/attributes.directive.mjs +26 -0
  52. package/login/directives/index.d.ts +2 -2
  53. package/login/directives/index.mjs +3 -0
  54. package/login/directives/kc-class.directive.d.ts +5 -2
  55. package/login/directives/kc-class.directive.mjs +138 -0
  56. package/login/i18n.d.ts +2 -2
  57. package/login/i18n.mjs +2 -0
  58. package/login/pages/code/code.component.d.ts +6 -3
  59. package/login/pages/code/code.component.mjs +32 -0
  60. package/login/pages/delete-account-confirm/delete-account-confirm.component.d.ts +6 -3
  61. package/login/pages/delete-account-confirm/delete-account-confirm.component.mjs +32 -0
  62. package/login/pages/delete-credential/delete-credential.component.d.ts +6 -3
  63. package/login/pages/delete-credential/delete-credential.component.mjs +37 -0
  64. package/login/pages/error/error.component.d.ts +6 -3
  65. package/login/pages/error/error.component.mjs +32 -0
  66. package/login/pages/frontchannel-logout/frontchannel-logout.component.d.ts +7 -4
  67. package/login/pages/frontchannel-logout/frontchannel-logout.component.mjs +41 -0
  68. package/login/pages/idp-review-user-profile/idp-review-user-profile.component.d.ts +6 -3
  69. package/login/pages/idp-review-user-profile/idp-review-user-profile.component.mjs +42 -0
  70. package/login/pages/info/info.component.d.ts +9 -6
  71. package/login/pages/info/info.component.mjs +58 -0
  72. package/login/pages/login/login.component.d.ts +6 -3
  73. package/login/pages/login/login.component.mjs +41 -0
  74. package/login/pages/login-config-totp/login-config-totp.component.d.ts +6 -3
  75. package/login/pages/login-config-totp/login-config-totp.component.mjs +40 -0
  76. package/login/pages/login-idp-link-confirm/login-idp-link-confirm.component.d.ts +6 -3
  77. package/login/pages/login-idp-link-confirm/login-idp-link-confirm.component.mjs +37 -0
  78. package/login/pages/login-idp-link-confirm-override/login-idp-link-confirm-override.component.d.ts +6 -3
  79. package/login/pages/login-idp-link-confirm-override/login-idp-link-confirm-override.component.mjs +37 -0
  80. package/login/pages/login-idp-link-email/login-idp-link-email.component.d.ts +6 -3
  81. package/login/pages/login-idp-link-email/login-idp-link-email.component.mjs +37 -0
  82. package/login/pages/login-oauth-grant/login-oauth-grant.component.d.ts +6 -3
  83. package/login/pages/login-oauth-grant/login-oauth-grant.component.mjs +38 -0
  84. package/login/pages/login-oauth2-device-verify-user-code/login-oauth2-device-verify-user-code.component.d.ts +6 -3
  85. package/login/pages/login-oauth2-device-verify-user-code/login-oauth2-device-verify-user-code.component.mjs +37 -0
  86. package/login/pages/login-otp/login-otp.component.d.ts +6 -3
  87. package/login/pages/login-otp/login-otp.component.mjs +38 -0
  88. package/login/pages/login-page-expired/login-page-expired.component.d.ts +6 -3
  89. package/login/pages/login-page-expired/login-page-expired.component.mjs +36 -0
  90. package/login/pages/login-passkeys-conditional-authenticate/login-passkeys-conditional-authenticate.component.d.ts +8 -5
  91. package/login/pages/login-passkeys-conditional-authenticate/login-passkeys-conditional-authenticate.component.mjs +85 -0
  92. package/login/pages/login-password/login-password.component.d.ts +6 -3
  93. package/login/pages/login-password/login-password.component.mjs +40 -0
  94. package/login/pages/login-recovery-authn-code-config/login-recovery-authn-code-config.component.d.ts +6 -3
  95. package/login/pages/login-recovery-authn-code-config/login-recovery-authn-code-config.component.mjs +40 -0
  96. package/login/pages/login-recovery-authn-code-input/login-recovery-authn-code-input.component.d.ts +6 -3
  97. package/login/pages/login-recovery-authn-code-input/login-recovery-authn-code-input.component.mjs +38 -0
  98. package/login/pages/login-reset-otp/login-reset-otp.component.d.ts +6 -3
  99. package/login/pages/login-reset-otp/login-reset-otp.component.mjs +37 -0
  100. package/login/pages/login-reset-password/login-reset-password.component.d.ts +6 -3
  101. package/login/pages/login-reset-password/login-reset-password.component.mjs +38 -0
  102. package/login/pages/login-update-password/login-update-password.component.d.ts +6 -3
  103. package/login/pages/login-update-password/login-update-password.component.mjs +40 -0
  104. package/login/pages/login-update-profile/login-update-profile.component.d.ts +6 -3
  105. package/login/pages/login-update-profile/login-update-profile.component.mjs +39 -0
  106. package/login/pages/login-username/login-username.component.d.ts +6 -3
  107. package/login/pages/login-username/login-username.component.mjs +40 -0
  108. package/login/pages/login-verify-email/login-verify-email.component.d.ts +6 -3
  109. package/login/pages/login-verify-email/login-verify-email.component.mjs +37 -0
  110. package/login/pages/login-x509-info/login-x509-info.component.d.ts +6 -3
  111. package/login/pages/login-x509-info/login-x509-info.component.mjs +37 -0
  112. package/login/pages/logout-confirm/logout-confirm.component.d.ts +6 -3
  113. package/login/pages/logout-confirm/logout-confirm.component.mjs +37 -0
  114. package/login/pages/register/register.component.d.ts +6 -3
  115. package/login/pages/register/register.component.mjs +55 -0
  116. package/login/pages/saml-post-form/saml-post-form.component.d.ts +7 -4
  117. package/login/pages/saml-post-form/saml-post-form.component.mjs +49 -0
  118. package/login/pages/select-authenticator/select-authenticator.component.d.ts +6 -3
  119. package/login/pages/select-authenticator/select-authenticator.component.mjs +39 -0
  120. package/login/pages/terms/terms.component.d.ts +6 -3
  121. package/login/pages/terms/terms.component.mjs +37 -0
  122. package/login/pages/update-email/update-email.component.d.ts +6 -3
  123. package/login/pages/update-email/update-email.component.mjs +40 -0
  124. package/login/pages/webauthn-authenticate/webauthn-authenticate.component.d.ts +8 -5
  125. package/login/pages/webauthn-authenticate/webauthn-authenticate.component.mjs +81 -0
  126. package/login/pages/webauthn-error/webauthn-error.component.d.ts +6 -3
  127. package/login/pages/webauthn-error/webauthn-error.component.mjs +46 -0
  128. package/login/pages/webauthn-register/webauthn-register.component.d.ts +8 -5
  129. package/login/pages/webauthn-register/webauthn-register.component.mjs +76 -0
  130. package/login/pipes/advanced-msg-str.pipe.d.ts +4 -1
  131. package/login/pipes/advanced-msg-str.pipe.mjs +19 -0
  132. package/login/pipes/index.d.ts +6 -6
  133. package/login/pipes/index.mjs +7 -0
  134. package/login/pipes/input-type.pipe.d.ts +4 -1
  135. package/login/pipes/input-type.pipe.mjs +20 -0
  136. package/login/pipes/kc-sanitize.pipe.d.ts +5 -2
  137. package/login/pipes/kc-sanitize.pipe.mjs +34 -0
  138. package/login/pipes/msg-str.pipe.d.ts +5 -2
  139. package/login/pipes/msg-str.pipe.mjs +19 -0
  140. package/login/pipes/to-array.pipe.d.ts +4 -1
  141. package/login/pipes/to-array.pipe.mjs +21 -0
  142. package/login/pipes/to-number.pipe.d.ts +4 -1
  143. package/login/pipes/to-number.pipe.mjs +20 -0
  144. package/login/services/index.d.ts +2 -2
  145. package/login/services/index.mjs +3 -0
  146. package/login/services/login-resource-injector.service.d.ts +4 -1
  147. package/login/services/login-resource-injector.service.mjs +68 -0
  148. package/login/services/user-profile-form.service.d.ts +15 -12
  149. package/login/services/user-profile-form.service.mjs +1017 -0
  150. package/package.json +94 -204
  151. package/src/lib/i18n.ts +2 -2
  152. package/src/lib/models/index.ts +1 -1
  153. package/src/lib/providers/keycloakify-angular.providers.ts +18 -18
  154. package/src/lib/public-api.ts +5 -5
  155. package/src/lib/services/i18n.service.ts +2 -2
  156. package/src/lib/services/index.ts +2 -2
  157. package/src/lib/services/resource-injector.service.ts +7 -7
  158. package/src/login/DefaultPage.ts +76 -76
  159. package/src/login/KcContext.ts +1 -1
  160. package/src/login/classes/component-reference.class.ts +1 -1
  161. package/src/login/components/add-remove-buttons-multi-valued-attribute/add-remove-buttons-multi-valued-attribute.component.html +19 -19
  162. package/src/login/components/add-remove-buttons-multi-valued-attribute/add-remove-buttons-multi-valued-attribute.component.ts +12 -22
  163. package/src/login/components/field-errors/field-errors.component.html +10 -10
  164. package/src/login/components/field-errors/field-errors.component.ts +9 -15
  165. package/src/login/components/group-label/group-label.component.html +25 -25
  166. package/src/login/components/group-label/group-label.component.ts +12 -19
  167. package/src/login/components/hello-world/hello-world.component.css +0 -0
  168. package/src/login/components/hello-world/hello-world.component.html +1 -0
  169. package/src/login/components/hello-world/hello-world.component.ts +10 -0
  170. package/src/login/components/index.ts +11 -11
  171. package/src/login/components/input-field-by-type/input-field-by-type.component.html +57 -57
  172. package/src/login/components/input-field-by-type/input-field-by-type.component.ts +16 -34
  173. package/src/login/components/input-tag/input-tag.component.html +41 -45
  174. package/src/login/components/input-tag/input-tag.component.ts +20 -31
  175. package/src/login/components/input-tag-selects/input-tag-selects.component.html +22 -22
  176. package/src/login/components/input-tag-selects/input-tag-selects.component.ts +27 -41
  177. package/src/login/components/logout-other-sessions/logout-other-sessions.component.html +15 -15
  178. package/src/login/components/logout-other-sessions/logout-other-sessions.component.ts +8 -8
  179. package/src/login/components/password-wrapper/password-wrapper.component.html +13 -13
  180. package/src/login/components/password-wrapper/password-wrapper.component.ts +10 -23
  181. package/src/login/components/select-tag/select-tag.component.html +26 -26
  182. package/src/login/components/select-tag/select-tag.component.ts +18 -33
  183. package/src/login/components/textarea-tag/textarea-tag.component.html +13 -15
  184. package/src/login/components/textarea-tag/textarea-tag.component.ts +14 -24
  185. package/src/login/components/user-profile-form-fields/user-profile-form-fields.component.html +71 -71
  186. package/src/login/components/user-profile-form-fields/user-profile-form-fields.component.ts +17 -41
  187. package/src/login/containers/template.component.html +183 -183
  188. package/src/login/containers/template.component.ts +20 -38
  189. package/src/login/directives/attributes.directive.ts +2 -2
  190. package/src/login/directives/index.ts +2 -2
  191. package/src/login/directives/kc-class.directive.ts +11 -11
  192. package/src/login/i18n.ts +2 -2
  193. package/src/login/pages/code/code.component.html +21 -21
  194. package/src/login/pages/code/code.component.ts +11 -15
  195. package/src/login/pages/delete-account-confirm/delete-account-confirm.component.html +44 -42
  196. package/src/login/pages/delete-account-confirm/delete-account-confirm.component.ts +11 -16
  197. package/src/login/pages/delete-credential/delete-credential.component.html +29 -29
  198. package/src/login/pages/delete-credential/delete-credential.component.ts +11 -22
  199. package/src/login/pages/error/error.component.html +20 -20
  200. package/src/login/pages/error/error.component.ts +11 -15
  201. package/src/login/pages/frontchannel-logout/frontchannel-logout.component.html +31 -31
  202. package/src/login/pages/frontchannel-logout/frontchannel-logout.component.ts +11 -23
  203. package/src/login/pages/idp-review-user-profile/idp-review-user-profile.component.html +36 -36
  204. package/src/login/pages/idp-review-user-profile/idp-review-user-profile.component.ts +15 -32
  205. package/src/login/pages/info/info.component.html +45 -45
  206. package/src/login/pages/info/info.component.ts +16 -28
  207. package/src/login/pages/login/login.component.html +194 -194
  208. package/src/login/pages/login/login.component.ts +17 -42
  209. package/src/login/pages/login-config-totp/login-config-totp.component.html +189 -179
  210. package/src/login/pages/login-config-totp/login-config-totp.component.ts +16 -37
  211. package/src/login/pages/login-idp-link-confirm/login-idp-link-confirm.component.html +35 -35
  212. package/src/login/pages/login-idp-link-confirm/login-idp-link-confirm.component.ts +11 -22
  213. package/src/login/pages/login-idp-link-confirm-override/login-idp-link-confirm-override.component.html +34 -34
  214. package/src/login/pages/login-idp-link-confirm-override/login-idp-link-confirm-override.component.ts +11 -24
  215. package/src/login/pages/login-idp-link-email/login-idp-link-email.component.html +32 -30
  216. package/src/login/pages/login-idp-link-email/login-idp-link-email.component.ts +11 -22
  217. package/src/login/pages/login-oauth-grant/login-oauth-grant.component.html +83 -81
  218. package/src/login/pages/login-oauth-grant/login-oauth-grant.component.ts +13 -24
  219. package/src/login/pages/login-oauth2-device-verify-user-code/login-oauth2-device-verify-user-code.component.html +57 -57
  220. package/src/login/pages/login-oauth2-device-verify-user-code/login-oauth2-device-verify-user-code.component.ts +11 -24
  221. package/src/login/pages/login-otp/login-otp.component.html +96 -96
  222. package/src/login/pages/login-otp/login-otp.component.ts +13 -23
  223. package/src/login/pages/login-page-expired/login-page-expired.component.html +31 -31
  224. package/src/login/pages/login-page-expired/login-page-expired.component.ts +10 -21
  225. package/src/login/pages/login-passkeys-conditional-authenticate/login-passkeys-conditional-authenticate.component.html +183 -181
  226. package/src/login/pages/login-passkeys-conditional-authenticate/login-passkeys-conditional-authenticate.component.ts +21 -28
  227. package/src/login/pages/login-password/login-password.component.html +82 -82
  228. package/src/login/pages/login-password/login-password.component.ts +15 -32
  229. package/src/login/pages/login-recovery-authn-code-config/login-recovery-authn-code-config.component.html +142 -142
  230. package/src/login/pages/login-recovery-authn-code-config/login-recovery-authn-code-config.component.ts +14 -33
  231. package/src/login/pages/login-recovery-authn-code-input/login-recovery-authn-code-input.component.html +67 -67
  232. package/src/login/pages/login-recovery-authn-code-input/login-recovery-authn-code-input.component.ts +13 -27
  233. package/src/login/pages/login-reset-otp/login-reset-otp.component.html +61 -59
  234. package/src/login/pages/login-reset-otp/login-reset-otp.component.ts +12 -22
  235. package/src/login/pages/login-reset-password/login-reset-password.component.html +84 -84
  236. package/src/login/pages/login-reset-password/login-reset-password.component.ts +13 -24
  237. package/src/login/pages/login-update-password/login-update-password.component.html +107 -107
  238. package/src/login/pages/login-update-password/login-update-password.component.ts +16 -37
  239. package/src/login/pages/login-update-profile/login-update-profile.component.html +53 -53
  240. package/src/login/pages/login-update-profile/login-update-profile.component.ts +14 -31
  241. package/src/login/pages/login-username/login-username.component.html +146 -146
  242. package/src/login/pages/login-username/login-username.component.ts +16 -37
  243. package/src/login/pages/login-verify-email/login-verify-email.component.html +22 -22
  244. package/src/login/pages/login-verify-email/login-verify-email.component.ts +11 -22
  245. package/src/login/pages/login-x509-info/login-x509-info.component.html +96 -96
  246. package/src/login/pages/login-x509-info/login-x509-info.component.ts +11 -21
  247. package/src/login/pages/logout-confirm/logout-confirm.component.html +51 -51
  248. package/src/login/pages/logout-confirm/logout-confirm.component.ts +11 -21
  249. package/src/login/pages/register/register.component.html +113 -113
  250. package/src/login/pages/register/register.component.ts +17 -28
  251. package/src/login/pages/saml-post-form/saml-post-form.component.html +47 -48
  252. package/src/login/pages/saml-post-form/saml-post-form.component.ts +13 -25
  253. package/src/login/pages/select-authenticator/select-authenticator.component.html +43 -44
  254. package/src/login/pages/select-authenticator/select-authenticator.component.ts +14 -31
  255. package/src/login/pages/terms/terms.component.html +32 -32
  256. package/src/login/pages/terms/terms.component.ts +11 -21
  257. package/src/login/pages/update-email/update-email.component.html +52 -52
  258. package/src/login/pages/update-email/update-email.component.ts +15 -32
  259. package/src/login/pages/webauthn-authenticate/webauthn-authenticate.component.html +146 -148
  260. package/src/login/pages/webauthn-authenticate/webauthn-authenticate.component.ts +23 -47
  261. package/src/login/pages/webauthn-error/webauthn-error.component.html +53 -53
  262. package/src/login/pages/webauthn-error/webauthn-error.component.ts +16 -31
  263. package/src/login/pages/webauthn-register/webauthn-register.component.html +73 -73
  264. package/src/login/pages/webauthn-register/webauthn-register.component.ts +21 -37
  265. package/src/login/pipes/advanced-msg-str.pipe.ts +4 -4
  266. package/src/login/pipes/index.ts +6 -6
  267. package/src/login/pipes/input-type.pipe.ts +4 -4
  268. package/src/login/pipes/kc-sanitize.pipe.ts +8 -8
  269. package/src/login/pipes/msg-str.pipe.ts +5 -5
  270. package/src/login/pipes/to-array.pipe.ts +2 -2
  271. package/src/login/pipes/to-number.pipe.ts +3 -3
  272. package/src/login/services/index.ts +2 -2
  273. package/src/login/services/login-resource-injector.service.ts +11 -11
  274. package/src/login/services/user-profile-form.service.ts +178 -178
  275. package/src/tsconfig.json +0 -1
  276. package/stories/login/pages/login/login.stories.ts +146 -0
  277. package/lib/i18n.js +0 -6
  278. package/lib/i18n.js.map +0 -1
  279. package/lib/models/index.js +0 -2
  280. package/lib/models/index.js.map +0 -1
  281. package/lib/models/script.model.js +0 -2
  282. package/lib/models/script.model.js.map +0 -1
  283. package/lib/providers/keycloakify-angular.providers.js +0 -58
  284. package/lib/providers/keycloakify-angular.providers.js.map +0 -1
  285. package/lib/public-api.js +0 -4
  286. package/lib/public-api.js.map +0 -1
  287. package/lib/services/i18n.service.js +0 -14
  288. package/lib/services/i18n.service.js.map +0 -1
  289. package/lib/services/index.js +0 -3
  290. package/lib/services/index.js.map +0 -1
  291. package/lib/services/resource-injector.service.js +0 -57
  292. package/lib/services/resource-injector.service.js.map +0 -1
  293. package/login/DefaultPage.js +0 -121
  294. package/login/DefaultPage.js.map +0 -1
  295. package/login/KcContext.js +0 -2
  296. package/login/KcContext.js.map +0 -1
  297. package/login/classes/component-reference.class.js +0 -3
  298. package/login/classes/component-reference.class.js.map +0 -1
  299. package/login/components/add-remove-buttons-multi-valued-attribute/add-remove-buttons-multi-valued-attribute.component.html +0 -24
  300. package/login/components/add-remove-buttons-multi-valued-attribute/add-remove-buttons-multi-valued-attribute.component.js +0 -123
  301. package/login/components/add-remove-buttons-multi-valued-attribute/add-remove-buttons-multi-valued-attribute.component.js.map +0 -1
  302. package/login/components/field-errors/field-errors.component.html +0 -15
  303. package/login/components/field-errors/field-errors.component.js +0 -45
  304. package/login/components/field-errors/field-errors.component.js.map +0 -1
  305. package/login/components/group-label/group-label.component.html +0 -30
  306. package/login/components/group-label/group-label.component.js +0 -55
  307. package/login/components/group-label/group-label.component.js.map +0 -1
  308. package/login/components/index.js +0 -12
  309. package/login/components/index.js.map +0 -1
  310. package/login/components/input-field-by-type/input-field-by-type.component.html +0 -63
  311. package/login/components/input-field-by-type/input-field-by-type.component.js +0 -63
  312. package/login/components/input-field-by-type/input-field-by-type.component.js.map +0 -1
  313. package/login/components/input-tag/input-tag.component.html +0 -49
  314. package/login/components/input-tag/input-tag.component.js +0 -107
  315. package/login/components/input-tag/input-tag.component.js.map +0 -1
  316. package/login/components/input-tag-selects/input-tag-selects.component.html +0 -29
  317. package/login/components/input-tag-selects/input-tag-selects.component.js +0 -132
  318. package/login/components/input-tag-selects/input-tag-selects.component.js.map +0 -1
  319. package/login/components/logout-other-sessions/logout-other-sessions.component.html +0 -19
  320. package/login/components/logout-other-sessions/logout-other-sessions.component.js +0 -43
  321. package/login/components/logout-other-sessions/logout-other-sessions.component.js.map +0 -1
  322. package/login/components/password-wrapper/password-wrapper.component.html +0 -15
  323. package/login/components/password-wrapper/password-wrapper.component.js +0 -57
  324. package/login/components/password-wrapper/password-wrapper.component.js.map +0 -1
  325. package/login/components/select-tag/select-tag.component.html +0 -31
  326. package/login/components/select-tag/select-tag.component.js +0 -97
  327. package/login/components/select-tag/select-tag.component.js.map +0 -1
  328. package/login/components/textarea-tag/textarea-tag.component.html +0 -18
  329. package/login/components/textarea-tag/textarea-tag.component.js +0 -63
  330. package/login/components/textarea-tag/textarea-tag.component.js.map +0 -1
  331. package/login/components/user-profile-form-fields/user-profile-form-fields.component.html +0 -85
  332. package/login/components/user-profile-form-fields/user-profile-form-fields.component.js +0 -74
  333. package/login/components/user-profile-form-fields/user-profile-form-fields.component.js.map +0 -1
  334. package/login/containers/template.component.html +0 -203
  335. package/login/containers/template.component.js +0 -78
  336. package/login/containers/template.component.js.map +0 -1
  337. package/login/directives/attributes.directive.js +0 -34
  338. package/login/directives/attributes.directive.js.map +0 -1
  339. package/login/directives/index.js +0 -3
  340. package/login/directives/index.js.map +0 -1
  341. package/login/directives/kc-class.directive.js +0 -146
  342. package/login/directives/kc-class.directive.js.map +0 -1
  343. package/login/i18n.js +0 -2
  344. package/login/i18n.js.map +0 -1
  345. package/login/pages/code/code.component.html +0 -26
  346. package/login/pages/code/code.component.js +0 -38
  347. package/login/pages/code/code.component.js.map +0 -1
  348. package/login/pages/delete-account-confirm/delete-account-confirm.component.html +0 -46
  349. package/login/pages/delete-account-confirm/delete-account-confirm.component.js +0 -38
  350. package/login/pages/delete-account-confirm/delete-account-confirm.component.js.map +0 -1
  351. package/login/pages/delete-credential/delete-credential.component.html +0 -35
  352. package/login/pages/delete-credential/delete-credential.component.js +0 -43
  353. package/login/pages/delete-credential/delete-credential.component.js.map +0 -1
  354. package/login/pages/error/error.component.html +0 -25
  355. package/login/pages/error/error.component.js +0 -38
  356. package/login/pages/error/error.component.js.map +0 -1
  357. package/login/pages/frontchannel-logout/frontchannel-logout.component.html +0 -35
  358. package/login/pages/frontchannel-logout/frontchannel-logout.component.js +0 -47
  359. package/login/pages/frontchannel-logout/frontchannel-logout.component.js.map +0 -1
  360. package/login/pages/idp-review-user-profile/idp-review-user-profile.component.html +0 -41
  361. package/login/pages/idp-review-user-profile/idp-review-user-profile.component.js +0 -54
  362. package/login/pages/idp-review-user-profile/idp-review-user-profile.component.js.map +0 -1
  363. package/login/pages/info/info.component.html +0 -54
  364. package/login/pages/info/info.component.js +0 -61
  365. package/login/pages/info/info.component.js.map +0 -1
  366. package/login/pages/login/login.component.html +0 -212
  367. package/login/pages/login/login.component.js +0 -58
  368. package/login/pages/login/login.component.js.map +0 -1
  369. package/login/pages/login-config-totp/login-config-totp.component.html +0 -190
  370. package/login/pages/login-config-totp/login-config-totp.component.js +0 -53
  371. package/login/pages/login-config-totp/login-config-totp.component.js.map +0 -1
  372. package/login/pages/login-idp-link-confirm/login-idp-link-confirm.component.html +0 -41
  373. package/login/pages/login-idp-link-confirm/login-idp-link-confirm.component.js +0 -43
  374. package/login/pages/login-idp-link-confirm/login-idp-link-confirm.component.js.map +0 -1
  375. package/login/pages/login-idp-link-confirm-override/login-idp-link-confirm-override.component.html +0 -40
  376. package/login/pages/login-idp-link-confirm-override/login-idp-link-confirm-override.component.js +0 -43
  377. package/login/pages/login-idp-link-confirm-override/login-idp-link-confirm-override.component.js.map +0 -1
  378. package/login/pages/login-idp-link-email/login-idp-link-email.component.html +0 -37
  379. package/login/pages/login-idp-link-email/login-idp-link-email.component.js +0 -43
  380. package/login/pages/login-idp-link-email/login-idp-link-email.component.js.map +0 -1
  381. package/login/pages/login-oauth-grant/login-oauth-grant.component.html +0 -92
  382. package/login/pages/login-oauth-grant/login-oauth-grant.component.js +0 -44
  383. package/login/pages/login-oauth-grant/login-oauth-grant.component.js.map +0 -1
  384. package/login/pages/login-oauth2-device-verify-user-code/login-oauth2-device-verify-user-code.component.html +0 -63
  385. package/login/pages/login-oauth2-device-verify-user-code/login-oauth2-device-verify-user-code.component.js +0 -43
  386. package/login/pages/login-oauth2-device-verify-user-code/login-oauth2-device-verify-user-code.component.js.map +0 -1
  387. package/login/pages/login-otp/login-otp.component.html +0 -103
  388. package/login/pages/login-otp/login-otp.component.js +0 -44
  389. package/login/pages/login-otp/login-otp.component.js.map +0 -1
  390. package/login/pages/login-page-expired/login-page-expired.component.html +0 -35
  391. package/login/pages/login-page-expired/login-page-expired.component.js +0 -42
  392. package/login/pages/login-page-expired/login-page-expired.component.js.map +0 -1
  393. package/login/pages/login-passkeys-conditional-authenticate/login-passkeys-conditional-authenticate.component.html +0 -203
  394. package/login/pages/login-passkeys-conditional-authenticate/login-passkeys-conditional-authenticate.component.js +0 -91
  395. package/login/pages/login-passkeys-conditional-authenticate/login-passkeys-conditional-authenticate.component.js.map +0 -1
  396. package/login/pages/login-password/login-password.component.html +0 -90
  397. package/login/pages/login-password/login-password.component.js +0 -52
  398. package/login/pages/login-password/login-password.component.js.map +0 -1
  399. package/login/pages/login-recovery-authn-code-config/login-recovery-authn-code-config.component.html +0 -155
  400. package/login/pages/login-recovery-authn-code-config/login-recovery-authn-code-config.component.js +0 -51
  401. package/login/pages/login-recovery-authn-code-config/login-recovery-authn-code-config.component.js.map +0 -1
  402. package/login/pages/login-recovery-authn-code-input/login-recovery-authn-code-input.component.html +0 -76
  403. package/login/pages/login-recovery-authn-code-input/login-recovery-authn-code-input.component.js +0 -44
  404. package/login/pages/login-recovery-authn-code-input/login-recovery-authn-code-input.component.js.map +0 -1
  405. package/login/pages/login-reset-otp/login-reset-otp.component.html +0 -65
  406. package/login/pages/login-reset-otp/login-reset-otp.component.js +0 -43
  407. package/login/pages/login-reset-otp/login-reset-otp.component.js.map +0 -1
  408. package/login/pages/login-reset-password/login-reset-password.component.html +0 -95
  409. package/login/pages/login-reset-password/login-reset-password.component.js +0 -44
  410. package/login/pages/login-reset-password/login-reset-password.component.js.map +0 -1
  411. package/login/pages/login-update-password/login-update-password.component.html +0 -116
  412. package/login/pages/login-update-password/login-update-password.component.js +0 -53
  413. package/login/pages/login-update-password/login-update-password.component.js.map +0 -1
  414. package/login/pages/login-update-profile/login-update-profile.component.html +0 -59
  415. package/login/pages/login-update-profile/login-update-profile.component.js +0 -50
  416. package/login/pages/login-update-profile/login-update-profile.component.js.map +0 -1
  417. package/login/pages/login-username/login-username.component.html +0 -161
  418. package/login/pages/login-username/login-username.component.js +0 -56
  419. package/login/pages/login-username/login-username.component.js.map +0 -1
  420. package/login/pages/login-verify-email/login-verify-email.component.html +0 -27
  421. package/login/pages/login-verify-email/login-verify-email.component.js +0 -43
  422. package/login/pages/login-verify-email/login-verify-email.component.js.map +0 -1
  423. package/login/pages/login-x509-info/login-x509-info.component.html +0 -102
  424. package/login/pages/login-x509-info/login-x509-info.component.js +0 -43
  425. package/login/pages/login-x509-info/login-x509-info.component.js.map +0 -1
  426. package/login/pages/logout-confirm/logout-confirm.component.html +0 -59
  427. package/login/pages/logout-confirm/logout-confirm.component.js +0 -43
  428. package/login/pages/logout-confirm/logout-confirm.component.js.map +0 -1
  429. package/login/pages/register/register.component.html +0 -126
  430. package/login/pages/register/register.component.js +0 -62
  431. package/login/pages/register/register.component.js.map +0 -1
  432. package/login/pages/saml-post-form/saml-post-form.component.html +0 -51
  433. package/login/pages/saml-post-form/saml-post-form.component.js +0 -55
  434. package/login/pages/saml-post-form/saml-post-form.component.js.map +0 -1
  435. package/login/pages/select-authenticator/select-authenticator.component.html +0 -49
  436. package/login/pages/select-authenticator/select-authenticator.component.js +0 -51
  437. package/login/pages/select-authenticator/select-authenticator.component.js.map +0 -1
  438. package/login/pages/terms/terms.component.html +0 -36
  439. package/login/pages/terms/terms.component.js +0 -43
  440. package/login/pages/terms/terms.component.js.map +0 -1
  441. package/login/pages/update-email/update-email.component.html +0 -58
  442. package/login/pages/update-email/update-email.component.js +0 -52
  443. package/login/pages/update-email/update-email.component.js.map +0 -1
  444. package/login/pages/webauthn-authenticate/webauthn-authenticate.component.html +0 -162
  445. package/login/pages/webauthn-authenticate/webauthn-authenticate.component.js +0 -93
  446. package/login/pages/webauthn-authenticate/webauthn-authenticate.component.js.map +0 -1
  447. package/login/pages/webauthn-error/webauthn-error.component.html +0 -60
  448. package/login/pages/webauthn-error/webauthn-error.component.js +0 -57
  449. package/login/pages/webauthn-error/webauthn-error.component.js.map +0 -1
  450. package/login/pages/webauthn-register/webauthn-register.component.html +0 -82
  451. package/login/pages/webauthn-register/webauthn-register.component.js +0 -86
  452. package/login/pages/webauthn-register/webauthn-register.component.js.map +0 -1
  453. package/login/pipes/advanced-msg-str.pipe.js +0 -31
  454. package/login/pipes/advanced-msg-str.pipe.js.map +0 -1
  455. package/login/pipes/index.js +0 -7
  456. package/login/pipes/index.js.map +0 -1
  457. package/login/pipes/input-type.pipe.js +0 -23
  458. package/login/pipes/input-type.pipe.js.map +0 -1
  459. package/login/pipes/kc-sanitize.pipe.js +0 -36
  460. package/login/pipes/kc-sanitize.pipe.js.map +0 -1
  461. package/login/pipes/msg-str.pipe.js +0 -31
  462. package/login/pipes/msg-str.pipe.js.map +0 -1
  463. package/login/pipes/to-array.pipe.js +0 -24
  464. package/login/pipes/to-array.pipe.js.map +0 -1
  465. package/login/pipes/to-number.pipe.js +0 -23
  466. package/login/pipes/to-number.pipe.js.map +0 -1
  467. package/login/services/index.js +0 -3
  468. package/login/services/index.js.map +0 -1
  469. package/login/services/login-resource-injector.service.js +0 -71
  470. package/login/services/login-resource-injector.service.js.map +0 -1
  471. package/login/services/user-profile-form.service.js +0 -1031
  472. package/login/services/user-profile-form.service.js.map +0 -1
@@ -0,0 +1,85 @@
1
+ import { ChangeDetectionStrategy, Component, forwardRef, inject } from '@angular/core';
2
+ import { CLASSES, KC_CONTEXT, USE_DEFAULT_CSS } from '../../../lib/public-api';
3
+ import { getKcClsx } from 'keycloakify/login/lib/kcClsx';
4
+ import { ComponentReference } from '../../../login/classes/component-reference.class';
5
+ import { TemplateComponent } from '../../../login/containers/template.component';
6
+ import { KcClassDirective } from '../../../login/directives/kc-class.directive';
7
+ import { AdvancedMsgStrPipe } from '../../../login/pipes/advanced-msg-str.pipe';
8
+ import { MsgStrPipe } from '../../../login/pipes/msg-str.pipe';
9
+ import { LoginResourceInjectorService } from '../../../login/services';
10
+ import * as i0 from "@angular/core";
11
+ export class LoginPasskeysConditionalAuthenticateComponent extends ComponentReference {
12
+ constructor() {
13
+ super();
14
+ this.kcContext = inject(KC_CONTEXT);
15
+ this.loginResourceInjectorService = inject(LoginResourceInjectorService);
16
+ this.msgStr = inject(MsgStrPipe);
17
+ this.doUseDefaultCss = inject(USE_DEFAULT_CSS);
18
+ this.classes = inject(CLASSES);
19
+ this.displayInfo = true;
20
+ this.authButtonId = 'authenticateWebAuthnButton';
21
+ const { url, challenge, rpId, userVerification, isUserIdentified, createTimeout } = this.kcContext;
22
+ const scripts = [
23
+ {
24
+ type: 'module',
25
+ id: 'LoginRecoveryAuthnCodeConfig',
26
+ textContent: `
27
+ import { authenticateByWebAuthn } from "${url.resourcesPath}/js/webauthnAuthenticate.js";
28
+ import { initAuthenticate } from "${url.resourcesPath}/js/passkeysConditionalAuth.js";
29
+
30
+ const authButton = document.getElementById("${this.authButtonId}");
31
+ const input = {
32
+ isUserIdentified : ${isUserIdentified},
33
+ challenge : ${JSON.stringify(challenge)},
34
+ userVerification : ${JSON.stringify(userVerification)},
35
+ rpId : ${JSON.stringify(rpId)},
36
+ createTimeout : ${createTimeout}
37
+ };
38
+ authButton.addEventListener("click", () => {
39
+ authenticateByWebAuthn({
40
+ ...input,
41
+ errmsg : ${JSON.stringify(this.msgStr.transform('webauthn-unsupported-browser-text'))}
42
+ });
43
+ });
44
+
45
+ initAuthenticate({
46
+ ...input,
47
+ errmsg : ${JSON.stringify(this.msgStr.transform('passkey-unsupported-browser-text'))}
48
+ });
49
+ `
50
+ }
51
+ ];
52
+ this.loginResourceInjectorService.insertAdditionalScripts(scripts);
53
+ }
54
+ selectAuthListItemIconClass(iconClass) {
55
+ const kcClsx = getKcClsx({
56
+ doUseDefaultCss: this.doUseDefaultCss ?? true,
57
+ classes: this.classes
58
+ }).kcClsx;
59
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
60
+ const className = kcClsx(iconClass);
61
+ if (className === iconClass) {
62
+ return kcClsx('kcWebAuthnDefaultIcon');
63
+ }
64
+ return className;
65
+ }
66
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: LoginPasskeysConditionalAuthenticateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
67
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.6", type: LoginPasskeysConditionalAuthenticateComponent, isStandalone: true, selector: "kc-root", providers: [
68
+ MsgStrPipe,
69
+ {
70
+ provide: ComponentReference,
71
+ useExisting: forwardRef(() => LoginPasskeysConditionalAuthenticateComponent)
72
+ }
73
+ ], usesInheritance: true, ngImport: i0, template: "@let authenticators = kcContext.authenticators;\n@let realm = kcContext.realm;\n@let url = kcContext.url;\n@let shouldDisplayAuthenticators = kcContext.shouldDisplayAuthenticators;\n@let login = kcContext.login;\n@let messagesPerField = kcContext.messagesPerField;\n@let usernameHidden = kcContext.usernameHidden;\n@let registrationDisabled = kcContext.registrationDisabled;\n<kc-login-template [displayInfo]=\"displayInfo\">\n <ng-container headerNode>\n {{ 'passkey-login-title' | msgStr }}\n </ng-container>\n <ng-container infoNode>\n @if (realm.registrationAllowed && !registrationDisabled) {\n <div id=\"kc-registration\">\n <span>\n {{ 'noAccount' | msgStr }}\n <a\n tabIndex=\"6\"\n [href]=\"url.registrationUrl\"\n >\n {{ 'doRegister' | msgStr }}\n </a>\n </span>\n </div>\n }\n </ng-container>\n\n <ng-container content>\n <form\n id=\"webauth\"\n [action]=\"url.loginAction\"\n method=\"post\"\n >\n <input\n type=\"hidden\"\n id=\"clientDataJSON\"\n name=\"clientDataJSON\"\n />\n <input\n type=\"hidden\"\n id=\"authenticatorData\"\n name=\"authenticatorData\"\n />\n <input\n type=\"hidden\"\n id=\"signature\"\n name=\"signature\"\n />\n <input\n type=\"hidden\"\n id=\"credentialId\"\n name=\"credentialId\"\n />\n <input\n type=\"hidden\"\n id=\"userHandle\"\n name=\"userHandle\"\n />\n <input\n type=\"hidden\"\n id=\"error\"\n name=\"error\"\n />\n </form>\n <div\n [kcClass]=\"'kcFormGroupClass'\"\n no-bottom-margin=\"true\"\n style=\"margin-bottom: 0\"\n >\n @if (authenticators !== undefined && authenticators.authenticators.length !== 0) {\n <form\n id=\"authn_select\"\n [kcClass]=\"'kcFormClass'\"\n >\n @for (authenticator of authenticators.authenticators; track authenticator; let i = $index) {\n <input\n type=\"hidden\"\n name=\"authn_use_chk\"\n readOnly\n [value]=\"authenticator.credentialId\"\n />\n }\n </form>\n\n @if (shouldDisplayAuthenticators) {\n @if (authenticators.authenticators.length > 1) {\n <p [kcClass]=\"'kcSelectAuthListItemTitle'\">\n {{ 'passkey-available-authenticators' | msgStr }}\n </p>\n }\n\n <div [kcClass]=\"'kcFormClass'\">\n @for (authenticator of authenticators.authenticators; track authenticator; let i = $index) {\n <div\n id=\"'kc-webauthn-authenticator-item-' + i\"\n [kcClass]=\"'kcSelectAuthListItemClass'\"\n >\n <i\n [ngClass]=\"selectAuthListItemIconClass(authenticator.transports.iconClass)\"\n [kcClass]=\"'kcCommonLogoIdP'\"\n aria-hidden=\"true\"\n ></i>\n <div [kcClass]=\"'kcSelectAuthListItemBodyClass'\">\n <div\n [id]=\"'kc-webauthn-authenticator-label-' + i\"\n [kcClass]=\"'kcSelectAuthListItemHeadingClass'\"\n >\n {{ authenticator.label | advancedMsgStr }}\n </div>\n @if (\n authenticator.transports !== undefined &&\n authenticator.transports.displayNameProperties !== undefined &&\n authenticator.transports.displayNameProperties.length !== 0\n ) {\n <div\n [id]=\"'kc-webauthn-authenticator-transport-' + i\"\n [kcClass]=\"'kcSelectAuthListItemDescriptionClass'\"\n >\n @for (\n nameProperty of authenticator.transports.displayNameProperties;\n track nameProperty;\n let i = $index\n ) {\n <span>\n {{ nameProperty | advancedMsgStr }}\n </span>\n @if (i !== authenticator.transports.displayNameProperties.length - 1) {\n <span>, </span>\n }\n }\n </div>\n <div [kcClass]=\"'kcSelectAuthListItemDescriptionClass'\">\n <span [id]=\"'kc-webauthn-authenticator-createdlabel-' + i\">\n {{ 'passkey-createdAt-label' | msgStr }}\n </span>\n <span [id]=\"'kc-webauthn-authenticator-created-' + i\">\n {{ authenticator.createdAt }}\n </span>\n </div>\n <div [kcClass]=\"'kcSelectAuthListItemFillClass'\"></div>\n }\n </div>\n </div>\n }\n </div>\n }\n }\n <div id=\"kc-form-wrapper\">\n @if (realm.password) {\n <form\n id=\"kc-form-passkey\"\n [action]=\"url.loginAction\"\n method=\"post\"\n style=\"display: none\"\n >\n @if (!usernameHidden) {\n <div [kcClass]=\"'kcFormGroupClass'\">\n <label\n for=\"username\"\n [kcClass]=\"'kcLabelClass'\"\n >\n {{ 'passkey-autofill-select' | msgStr }}\n </label>\n <input\n tabIndex=\"1\"\n id=\"username\"\n [attr.aria-invalid]=\"messagesPerField.existsError('username')\"\n [kcClass]=\"'kcInputClass'\"\n name=\"username\"\n [value]=\"login.username ?? ''\"\n type=\"text\"\n autoFocus\n autoComplete=\"off\"\n />\n @if (messagesPerField.existsError('username')) {\n <span\n id=\"input-error-username\"\n [kcClass]=\"'kcInputErrorMessageClass'\"\n aria-live=\"polite\"\n >\n {{ messagesPerField.get('username') }}\n </span>\n }\n </div>\n }\n </form>\n <div\n id=\"kc-form-passkey-button\"\n [kcClass]=\"'kcFormButtonsClass'\"\n style=\"display: none\"\n >\n <input\n id=\"authButtonId\"\n type=\"button\"\n autoFocus\n value=\"{{ 'passkey-doAuthenticate' | msgStr }}\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n />\n </div>\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: "pipe", type: MsgStrPipe, name: "msgStr" }, { kind: "directive", type: KcClassDirective, selector: "[kcClass]", inputs: ["class", "ngClass", "kcClass"] }, { kind: "pipe", type: AdvancedMsgStrPipe, name: "advancedMsgStr" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
74
+ }
75
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: LoginPasskeysConditionalAuthenticateComponent, decorators: [{
76
+ type: Component,
77
+ args: [{ standalone: true, imports: [TemplateComponent, MsgStrPipe, KcClassDirective, AdvancedMsgStrPipe], selector: 'kc-root', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
78
+ MsgStrPipe,
79
+ {
80
+ provide: ComponentReference,
81
+ useExisting: forwardRef(() => LoginPasskeysConditionalAuthenticateComponent)
82
+ }
83
+ ], template: "@let authenticators = kcContext.authenticators;\n@let realm = kcContext.realm;\n@let url = kcContext.url;\n@let shouldDisplayAuthenticators = kcContext.shouldDisplayAuthenticators;\n@let login = kcContext.login;\n@let messagesPerField = kcContext.messagesPerField;\n@let usernameHidden = kcContext.usernameHidden;\n@let registrationDisabled = kcContext.registrationDisabled;\n<kc-login-template [displayInfo]=\"displayInfo\">\n <ng-container headerNode>\n {{ 'passkey-login-title' | msgStr }}\n </ng-container>\n <ng-container infoNode>\n @if (realm.registrationAllowed && !registrationDisabled) {\n <div id=\"kc-registration\">\n <span>\n {{ 'noAccount' | msgStr }}\n <a\n tabIndex=\"6\"\n [href]=\"url.registrationUrl\"\n >\n {{ 'doRegister' | msgStr }}\n </a>\n </span>\n </div>\n }\n </ng-container>\n\n <ng-container content>\n <form\n id=\"webauth\"\n [action]=\"url.loginAction\"\n method=\"post\"\n >\n <input\n type=\"hidden\"\n id=\"clientDataJSON\"\n name=\"clientDataJSON\"\n />\n <input\n type=\"hidden\"\n id=\"authenticatorData\"\n name=\"authenticatorData\"\n />\n <input\n type=\"hidden\"\n id=\"signature\"\n name=\"signature\"\n />\n <input\n type=\"hidden\"\n id=\"credentialId\"\n name=\"credentialId\"\n />\n <input\n type=\"hidden\"\n id=\"userHandle\"\n name=\"userHandle\"\n />\n <input\n type=\"hidden\"\n id=\"error\"\n name=\"error\"\n />\n </form>\n <div\n [kcClass]=\"'kcFormGroupClass'\"\n no-bottom-margin=\"true\"\n style=\"margin-bottom: 0\"\n >\n @if (authenticators !== undefined && authenticators.authenticators.length !== 0) {\n <form\n id=\"authn_select\"\n [kcClass]=\"'kcFormClass'\"\n >\n @for (authenticator of authenticators.authenticators; track authenticator; let i = $index) {\n <input\n type=\"hidden\"\n name=\"authn_use_chk\"\n readOnly\n [value]=\"authenticator.credentialId\"\n />\n }\n </form>\n\n @if (shouldDisplayAuthenticators) {\n @if (authenticators.authenticators.length > 1) {\n <p [kcClass]=\"'kcSelectAuthListItemTitle'\">\n {{ 'passkey-available-authenticators' | msgStr }}\n </p>\n }\n\n <div [kcClass]=\"'kcFormClass'\">\n @for (authenticator of authenticators.authenticators; track authenticator; let i = $index) {\n <div\n id=\"'kc-webauthn-authenticator-item-' + i\"\n [kcClass]=\"'kcSelectAuthListItemClass'\"\n >\n <i\n [ngClass]=\"selectAuthListItemIconClass(authenticator.transports.iconClass)\"\n [kcClass]=\"'kcCommonLogoIdP'\"\n aria-hidden=\"true\"\n ></i>\n <div [kcClass]=\"'kcSelectAuthListItemBodyClass'\">\n <div\n [id]=\"'kc-webauthn-authenticator-label-' + i\"\n [kcClass]=\"'kcSelectAuthListItemHeadingClass'\"\n >\n {{ authenticator.label | advancedMsgStr }}\n </div>\n @if (\n authenticator.transports !== undefined &&\n authenticator.transports.displayNameProperties !== undefined &&\n authenticator.transports.displayNameProperties.length !== 0\n ) {\n <div\n [id]=\"'kc-webauthn-authenticator-transport-' + i\"\n [kcClass]=\"'kcSelectAuthListItemDescriptionClass'\"\n >\n @for (\n nameProperty of authenticator.transports.displayNameProperties;\n track nameProperty;\n let i = $index\n ) {\n <span>\n {{ nameProperty | advancedMsgStr }}\n </span>\n @if (i !== authenticator.transports.displayNameProperties.length - 1) {\n <span>, </span>\n }\n }\n </div>\n <div [kcClass]=\"'kcSelectAuthListItemDescriptionClass'\">\n <span [id]=\"'kc-webauthn-authenticator-createdlabel-' + i\">\n {{ 'passkey-createdAt-label' | msgStr }}\n </span>\n <span [id]=\"'kc-webauthn-authenticator-created-' + i\">\n {{ authenticator.createdAt }}\n </span>\n </div>\n <div [kcClass]=\"'kcSelectAuthListItemFillClass'\"></div>\n }\n </div>\n </div>\n }\n </div>\n }\n }\n <div id=\"kc-form-wrapper\">\n @if (realm.password) {\n <form\n id=\"kc-form-passkey\"\n [action]=\"url.loginAction\"\n method=\"post\"\n style=\"display: none\"\n >\n @if (!usernameHidden) {\n <div [kcClass]=\"'kcFormGroupClass'\">\n <label\n for=\"username\"\n [kcClass]=\"'kcLabelClass'\"\n >\n {{ 'passkey-autofill-select' | msgStr }}\n </label>\n <input\n tabIndex=\"1\"\n id=\"username\"\n [attr.aria-invalid]=\"messagesPerField.existsError('username')\"\n [kcClass]=\"'kcInputClass'\"\n name=\"username\"\n [value]=\"login.username ?? ''\"\n type=\"text\"\n autoFocus\n autoComplete=\"off\"\n />\n @if (messagesPerField.existsError('username')) {\n <span\n id=\"input-error-username\"\n [kcClass]=\"'kcInputErrorMessageClass'\"\n aria-live=\"polite\"\n >\n {{ messagesPerField.get('username') }}\n </span>\n }\n </div>\n }\n </form>\n <div\n id=\"kc-form-passkey-button\"\n [kcClass]=\"'kcFormButtonsClass'\"\n style=\"display: none\"\n >\n <input\n id=\"authButtonId\"\n type=\"button\"\n autoFocus\n value=\"{{ 'passkey-doAuthenticate' | msgStr }}\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n />\n </div>\n }\n </div>\n </div>\n </ng-container>\n</kc-login-template>\n" }]
84
+ }], ctorParameters: () => [] });
85
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4tcGFzc2tleXMtY29uZGl0aW9uYWwtYXV0aGVudGljYXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tleWNsb2FraWZ5LWFuZ3VsYXIvc3JjL2xvZ2luL3BhZ2VzL2xvZ2luLXBhc3NrZXlzLWNvbmRpdGlvbmFsLWF1dGhlbnRpY2F0ZS9sb2dpbi1wYXNza2V5cy1jb25kaXRpb25hbC1hdXRoZW50aWNhdGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2V5Y2xvYWtpZnktYW5ndWxhci9zcmMvbG9naW4vcGFnZXMvbG9naW4tcGFzc2tleXMtY29uZGl0aW9uYWwtYXV0aGVudGljYXRlL2xvZ2luLXBhc3NrZXlzLWNvbmRpdGlvbmFsLWF1dGhlbnRpY2F0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkYsT0FBTyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFJM0YsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhEQUE4RCxDQUFDO0FBQ2xHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBQzdGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBQzVGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBQzVGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7QUFnQm5GLE1BQU0sT0FBTyw2Q0FBOEMsU0FBUSxrQkFBa0I7SUFVakY7UUFDSSxLQUFLLEVBQUUsQ0FBQztRQVZaLGNBQVMsR0FBRyxNQUFNLENBQWdGLFVBQVUsQ0FBQyxDQUFDO1FBQzlHLGlDQUE0QixHQUFHLE1BQU0sQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO1FBQ3BFLFdBQU0sR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDbkIsb0JBQWUsR0FBRyxNQUFNLENBQVUsZUFBZSxDQUFDLENBQUM7UUFDbkQsWUFBTyxHQUFHLE1BQU0sQ0FBb0MsT0FBTyxDQUFDLENBQUM7UUFDdEUsZ0JBQVcsR0FBWSxJQUFJLENBQUM7UUFFNUIsaUJBQVksR0FBRyw0QkFBNEIsQ0FBQztRQUl4QyxNQUFNLEVBQ0YsR0FBRyxFQUNILFNBQVMsRUFDVCxJQUFJLEVBQ0osZ0JBQWdCLEVBQ2hCLGdCQUFnQixFQUVoQixhQUFhLEVBQ2hCLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUNuQixNQUFNLE9BQU8sR0FBYTtZQUN0QjtnQkFDSSxJQUFJLEVBQUUsUUFBUTtnQkFDZCxFQUFFLEVBQUUsOEJBQThCO2dCQUNsQyxXQUFXLEVBQUU7OERBQ2lDLEdBQUcsQ0FBQyxhQUFhO3dEQUN2QixHQUFHLENBQUMsYUFBYTs7a0VBRVAsSUFBSSxDQUFDLFlBQVk7OzZDQUV0QyxnQkFBZ0I7c0NBQ3ZCLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDOzZDQUNsQixJQUFJLENBQUMsU0FBUyxDQUFDLGdCQUFnQixDQUFDO2lDQUM1QyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQzswQ0FDWCxhQUFhOzs7Ozt1Q0FLaEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDOzs7Ozs7bUNBTTlFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsa0NBQWtDLENBQUMsQ0FBQzs7V0FFakc7YUFDRTtTQUNKLENBQUM7UUFDRixJQUFJLENBQUMsNEJBQTRCLENBQUMsdUJBQXVCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUVELDJCQUEyQixDQUFDLFNBQWlCO1FBQ3pDLE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQztZQUNyQixlQUFlLEVBQUUsSUFBSSxDQUFDLGVBQWUsSUFBSSxJQUFJO1lBQzdDLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztTQUN4QixDQUFDLENBQUMsTUFBTSxDQUFDO1FBQ1YsOERBQThEO1FBQzlELE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxTQUFnQixDQUFDLENBQUM7UUFDM0MsSUFBSSxTQUFTLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDMUIsT0FBTyxNQUFNLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQUMzQyxDQUFDO1FBQ0QsT0FBTyxTQUFTLENBQUM7SUFDckIsQ0FBQzs4R0FqRVEsNkNBQTZDO2tHQUE3Qyw2Q0FBNkMsc0RBUjNDO1lBQ1AsVUFBVTtZQUNWO2dCQUNJLE9BQU8sRUFBRSxrQkFBa0I7Z0JBQzNCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsNkNBQTZDLENBQUM7YUFDL0U7U0FDSixpREN6QkwsKzRTQTZNQSw0Q0Q5TGMsaUJBQWlCLCtKQUFFLFVBQVUsK0NBQUUsZ0JBQWdCLDBGQUFFLGtCQUFrQjs7MkZBWXBFLDZDQUE2QztrQkFkekQsU0FBUztpQ0FDTSxJQUFJLFdBQ1AsQ0FBQyxpQkFBaUIsRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsa0JBQWtCLENBQUMsWUFDcEUsU0FBUyxtQkFFRix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDO3dCQUNQLFVBQVU7d0JBQ1Y7NEJBQ0ksT0FBTyxFQUFFLGtCQUFrQjs0QkFDM0IsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsOENBQThDLENBQUM7eUJBQy9FO3FCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgZm9yd2FyZFJlZiwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDTEFTU0VTLCBLQ19DT05URVhULCBVU0VfREVGQVVMVF9DU1MgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9saWIvcHVibGljLWFwaSc7XG5pbXBvcnQgeyBTY3JpcHQgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9saWIvbW9kZWxzJztcbmltcG9ydCB7IENsYXNzS2V5IH0gZnJvbSAna2V5Y2xvYWtpZnkvbG9naW4vbGliL2tjQ2xzeCc7XG5pbXBvcnQgeyBLY0NvbnRleHQgfSBmcm9tICdrZXljbG9ha2lmeS9sb2dpbi9LY0NvbnRleHQnO1xuaW1wb3J0IHsgZ2V0S2NDbHN4IH0gZnJvbSAna2V5Y2xvYWtpZnkvbG9naW4vbGliL2tjQ2xzeCc7XG5pbXBvcnQgeyBDb21wb25lbnRSZWZlcmVuY2UgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9jbGFzc2VzL2NvbXBvbmVudC1yZWZlcmVuY2UuY2xhc3MnO1xuaW1wb3J0IHsgVGVtcGxhdGVDb21wb25lbnQgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9jb250YWluZXJzL3RlbXBsYXRlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBLY0NsYXNzRGlyZWN0aXZlIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vZGlyZWN0aXZlcy9rYy1jbGFzcy5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQWR2YW5jZWRNc2dTdHJQaXBlIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vcGlwZXMvYWR2YW5jZWQtbXNnLXN0ci5waXBlJztcbmltcG9ydCB7IE1zZ1N0clBpcGUgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9waXBlcy9tc2ctc3RyLnBpcGUnO1xuaW1wb3J0IHsgTG9naW5SZXNvdXJjZUluamVjdG9yU2VydmljZSB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL3NlcnZpY2VzJztcblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbVGVtcGxhdGVDb21wb25lbnQsIE1zZ1N0clBpcGUsIEtjQ2xhc3NEaXJlY3RpdmUsIEFkdmFuY2VkTXNnU3RyUGlwZV0sXG4gICAgc2VsZWN0b3I6ICdrYy1yb290JyxcbiAgICB0ZW1wbGF0ZVVybDogJ2xvZ2luLXBhc3NrZXlzLWNvbmRpdGlvbmFsLWF1dGhlbnRpY2F0ZS5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIE1zZ1N0clBpcGUsXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IENvbXBvbmVudFJlZmVyZW5jZSxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IExvZ2luUGFzc2tleXNDb25kaXRpb25hbEF1dGhlbnRpY2F0ZUNvbXBvbmVudClcbiAgICAgICAgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgTG9naW5QYXNza2V5c0NvbmRpdGlvbmFsQXV0aGVudGljYXRlQ29tcG9uZW50IGV4dGVuZHMgQ29tcG9uZW50UmVmZXJlbmNlIHtcbiAgICBrY0NvbnRleHQgPSBpbmplY3Q8RXh0cmFjdDxLY0NvbnRleHQsIHsgcGFnZUlkOiAnbG9naW4tcGFzc2tleXMtY29uZGl0aW9uYWwtYXV0aGVudGljYXRlLmZ0bCcgfT4+KEtDX0NPTlRFWFQpO1xuICAgIGxvZ2luUmVzb3VyY2VJbmplY3RvclNlcnZpY2UgPSBpbmplY3QoTG9naW5SZXNvdXJjZUluamVjdG9yU2VydmljZSk7XG4gICAgbXNnU3RyID0gaW5qZWN0KE1zZ1N0clBpcGUpO1xuICAgIG92ZXJyaWRlIGRvVXNlRGVmYXVsdENzcyA9IGluamVjdDxib29sZWFuPihVU0VfREVGQVVMVF9DU1MpO1xuICAgIG92ZXJyaWRlIGNsYXNzZXMgPSBpbmplY3Q8UGFydGlhbDxSZWNvcmQ8Q2xhc3NLZXksIHN0cmluZz4+PihDTEFTU0VTKTtcbiAgICBkaXNwbGF5SW5mbzogYm9vbGVhbiA9IHRydWU7XG5cbiAgICBhdXRoQnV0dG9uSWQgPSAnYXV0aGVudGljYXRlV2ViQXV0aG5CdXR0b24nO1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGNvbnN0IHtcbiAgICAgICAgICAgIHVybCxcbiAgICAgICAgICAgIGNoYWxsZW5nZSxcbiAgICAgICAgICAgIHJwSWQsXG4gICAgICAgICAgICB1c2VyVmVyaWZpY2F0aW9uLFxuICAgICAgICAgICAgaXNVc2VySWRlbnRpZmllZCxcblxuICAgICAgICAgICAgY3JlYXRlVGltZW91dFxuICAgICAgICB9ID0gdGhpcy5rY0NvbnRleHQ7XG4gICAgICAgIGNvbnN0IHNjcmlwdHM6IFNjcmlwdFtdID0gW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHR5cGU6ICdtb2R1bGUnLFxuICAgICAgICAgICAgICAgIGlkOiAnTG9naW5SZWNvdmVyeUF1dGhuQ29kZUNvbmZpZycsXG4gICAgICAgICAgICAgICAgdGV4dENvbnRlbnQ6IGBcbiAgICAgICAgICAgICAgICAgICAgaW1wb3J0IHsgYXV0aGVudGljYXRlQnlXZWJBdXRobiB9IGZyb20gXCIke3VybC5yZXNvdXJjZXNQYXRofS9qcy93ZWJhdXRobkF1dGhlbnRpY2F0ZS5qc1wiO1xuICAgICAgICAgICAgICAgICAgICBpbXBvcnQgeyBpbml0QXV0aGVudGljYXRlIH0gZnJvbSBcIiR7dXJsLnJlc291cmNlc1BhdGh9L2pzL3Bhc3NrZXlzQ29uZGl0aW9uYWxBdXRoLmpzXCI7XG5cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYXV0aEJ1dHRvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwiJHt0aGlzLmF1dGhCdXR0b25JZH1cIik7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGlucHV0ID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaXNVc2VySWRlbnRpZmllZCA6ICR7aXNVc2VySWRlbnRpZmllZH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBjaGFsbGVuZ2UgOiAke0pTT04uc3RyaW5naWZ5KGNoYWxsZW5nZSl9LFxuICAgICAgICAgICAgICAgICAgICAgICAgdXNlclZlcmlmaWNhdGlvbiA6ICR7SlNPTi5zdHJpbmdpZnkodXNlclZlcmlmaWNhdGlvbil9LFxuICAgICAgICAgICAgICAgICAgICAgICAgcnBJZCA6ICR7SlNPTi5zdHJpbmdpZnkocnBJZCl9LFxuICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlVGltZW91dCA6ICR7Y3JlYXRlVGltZW91dH1cbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgYXV0aEJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRlQnlXZWJBdXRobih7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uaW5wdXQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJybXNnIDogJHtKU09OLnN0cmluZ2lmeSh0aGlzLm1zZ1N0ci50cmFuc2Zvcm0oJ3dlYmF1dGhuLXVuc3VwcG9ydGVkLWJyb3dzZXItdGV4dCcpKX1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgICAgICBpbml0QXV0aGVudGljYXRlKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLmlucHV0LFxuICAgICAgICAgICAgICAgICAgICAgICAgZXJybXNnIDogJHtKU09OLnN0cmluZ2lmeSh0aGlzLm1zZ1N0ci50cmFuc2Zvcm0oJ3Bhc3NrZXktdW5zdXBwb3J0ZWQtYnJvd3Nlci10ZXh0JykpfVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICBgXG4gICAgICAgICAgICB9XG4gICAgICAgIF07XG4gICAgICAgIHRoaXMubG9naW5SZXNvdXJjZUluamVjdG9yU2VydmljZS5pbnNlcnRBZGRpdGlvbmFsU2NyaXB0cyhzY3JpcHRzKTtcbiAgICB9XG5cbiAgICBzZWxlY3RBdXRoTGlzdEl0ZW1JY29uQ2xhc3MoaWNvbkNsYXNzOiBzdHJpbmcpIHtcbiAgICAgICAgY29uc3Qga2NDbHN4ID0gZ2V0S2NDbHN4KHtcbiAgICAgICAgICAgIGRvVXNlRGVmYXVsdENzczogdGhpcy5kb1VzZURlZmF1bHRDc3MgPz8gdHJ1ZSxcbiAgICAgICAgICAgIGNsYXNzZXM6IHRoaXMuY2xhc3Nlc1xuICAgICAgICB9KS5rY0Nsc3g7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICAgIGNvbnN0IGNsYXNzTmFtZSA9IGtjQ2xzeChpY29uQ2xhc3MgYXMgYW55KTtcbiAgICAgICAgaWYgKGNsYXNzTmFtZSA9PT0gaWNvbkNsYXNzKSB7XG4gICAgICAgICAgICByZXR1cm4ga2NDbHN4KCdrY1dlYkF1dGhuRGVmYXVsdEljb24nKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY2xhc3NOYW1lO1xuICAgIH1cbn1cbiIsIkBsZXQgYXV0aGVudGljYXRvcnMgPSBrY0NvbnRleHQuYXV0aGVudGljYXRvcnM7XG5AbGV0IHJlYWxtID0ga2NDb250ZXh0LnJlYWxtO1xuQGxldCB1cmwgPSBrY0NvbnRleHQudXJsO1xuQGxldCBzaG91bGREaXNwbGF5QXV0aGVudGljYXRvcnMgPSBrY0NvbnRleHQuc2hvdWxkRGlzcGxheUF1dGhlbnRpY2F0b3JzO1xuQGxldCBsb2dpbiA9IGtjQ29udGV4dC5sb2dpbjtcbkBsZXQgbWVzc2FnZXNQZXJGaWVsZCA9IGtjQ29udGV4dC5tZXNzYWdlc1BlckZpZWxkO1xuQGxldCB1c2VybmFtZUhpZGRlbiA9IGtjQ29udGV4dC51c2VybmFtZUhpZGRlbjtcbkBsZXQgcmVnaXN0cmF0aW9uRGlzYWJsZWQgPSBrY0NvbnRleHQucmVnaXN0cmF0aW9uRGlzYWJsZWQ7XG48a2MtbG9naW4tdGVtcGxhdGUgW2Rpc3BsYXlJbmZvXT1cImRpc3BsYXlJbmZvXCI+XG4gICAgPG5nLWNvbnRhaW5lciBoZWFkZXJOb2RlPlxuICAgICAgICB7eyAncGFzc2tleS1sb2dpbi10aXRsZScgfCBtc2dTdHIgfX1cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyIGluZm9Ob2RlPlxuICAgICAgICBAaWYgKHJlYWxtLnJlZ2lzdHJhdGlvbkFsbG93ZWQgJiYgIXJlZ2lzdHJhdGlvbkRpc2FibGVkKSB7XG4gICAgICAgICAgICA8ZGl2IGlkPVwia2MtcmVnaXN0cmF0aW9uXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4+XG4gICAgICAgICAgICAgICAgICAgIHt7ICdub0FjY291bnQnIHwgbXNnU3RyIH19XG4gICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICB0YWJJbmRleD1cIjZcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2hyZWZdPVwidXJsLnJlZ2lzdHJhdGlvblVybFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdkb1JlZ2lzdGVyJyB8IG1zZ1N0ciB9fVxuICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy1jb250YWluZXIgY29udGVudD5cbiAgICAgICAgPGZvcm1cbiAgICAgICAgICAgIGlkPVwid2ViYXV0aFwiXG4gICAgICAgICAgICBbYWN0aW9uXT1cInVybC5sb2dpbkFjdGlvblwiXG4gICAgICAgICAgICBtZXRob2Q9XCJwb3N0XCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgdHlwZT1cImhpZGRlblwiXG4gICAgICAgICAgICAgICAgaWQ9XCJjbGllbnREYXRhSlNPTlwiXG4gICAgICAgICAgICAgICAgbmFtZT1cImNsaWVudERhdGFKU09OXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICB0eXBlPVwiaGlkZGVuXCJcbiAgICAgICAgICAgICAgICBpZD1cImF1dGhlbnRpY2F0b3JEYXRhXCJcbiAgICAgICAgICAgICAgICBuYW1lPVwiYXV0aGVudGljYXRvckRhdGFcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgIHR5cGU9XCJoaWRkZW5cIlxuICAgICAgICAgICAgICAgIGlkPVwic2lnbmF0dXJlXCJcbiAgICAgICAgICAgICAgICBuYW1lPVwic2lnbmF0dXJlXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICB0eXBlPVwiaGlkZGVuXCJcbiAgICAgICAgICAgICAgICBpZD1cImNyZWRlbnRpYWxJZFwiXG4gICAgICAgICAgICAgICAgbmFtZT1cImNyZWRlbnRpYWxJZFwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgdHlwZT1cImhpZGRlblwiXG4gICAgICAgICAgICAgICAgaWQ9XCJ1c2VySGFuZGxlXCJcbiAgICAgICAgICAgICAgICBuYW1lPVwidXNlckhhbmRsZVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgdHlwZT1cImhpZGRlblwiXG4gICAgICAgICAgICAgICAgaWQ9XCJlcnJvclwiXG4gICAgICAgICAgICAgICAgbmFtZT1cImVycm9yXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgIDwvZm9ybT5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgW2tjQ2xhc3NdPVwiJ2tjRm9ybUdyb3VwQ2xhc3MnXCJcbiAgICAgICAgICAgIG5vLWJvdHRvbS1tYXJnaW49XCJ0cnVlXCJcbiAgICAgICAgICAgIHN0eWxlPVwibWFyZ2luLWJvdHRvbTogMFwiXG4gICAgICAgID5cbiAgICAgICAgICAgIEBpZiAoYXV0aGVudGljYXRvcnMgIT09IHVuZGVmaW5lZCAmJiBhdXRoZW50aWNhdG9ycy5hdXRoZW50aWNhdG9ycy5sZW5ndGggIT09IDApIHtcbiAgICAgICAgICAgICAgICA8Zm9ybVxuICAgICAgICAgICAgICAgICAgICBpZD1cImF1dGhuX3NlbGVjdFwiXG4gICAgICAgICAgICAgICAgICAgIFtrY0NsYXNzXT1cIidrY0Zvcm1DbGFzcydcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgQGZvciAoYXV0aGVudGljYXRvciBvZiBhdXRoZW50aWNhdG9ycy5hdXRoZW50aWNhdG9yczsgdHJhY2sgYXV0aGVudGljYXRvcjsgbGV0IGkgPSAkaW5kZXgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJoaWRkZW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJhdXRobl91c2VfY2hrXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWFkT25seVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJhdXRoZW50aWNhdG9yLmNyZWRlbnRpYWxJZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC9mb3JtPlxuXG4gICAgICAgICAgICAgICAgQGlmIChzaG91bGREaXNwbGF5QXV0aGVudGljYXRvcnMpIHtcbiAgICAgICAgICAgICAgICAgICAgQGlmIChhdXRoZW50aWNhdG9ycy5hdXRoZW50aWNhdG9ycy5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8cCBba2NDbGFzc109XCIna2NTZWxlY3RBdXRoTGlzdEl0ZW1UaXRsZSdcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAncGFzc2tleS1hdmFpbGFibGUtYXV0aGVudGljYXRvcnMnIHwgbXNnU3RyIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICA8ZGl2IFtrY0NsYXNzXT1cIidrY0Zvcm1DbGFzcydcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBmb3IgKGF1dGhlbnRpY2F0b3Igb2YgYXV0aGVudGljYXRvcnMuYXV0aGVudGljYXRvcnM7IHRyYWNrIGF1dGhlbnRpY2F0b3I7IGxldCBpID0gJGluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cIidrYy13ZWJhdXRobi1hdXRoZW50aWNhdG9yLWl0ZW0tJyArIGlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBba2NDbGFzc109XCIna2NTZWxlY3RBdXRoTGlzdEl0ZW1DbGFzcydcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInNlbGVjdEF1dGhMaXN0SXRlbUljb25DbGFzcyhhdXRoZW50aWNhdG9yLnRyYW5zcG9ydHMuaWNvbkNsYXNzKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBba2NDbGFzc109XCIna2NDb21tb25Mb2dvSWRQJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IFtrY0NsYXNzXT1cIidrY1NlbGVjdEF1dGhMaXN0SXRlbUJvZHlDbGFzcydcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaWRdPVwiJ2tjLXdlYmF1dGhuLWF1dGhlbnRpY2F0b3ItbGFiZWwtJyArIGlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtrY0NsYXNzXT1cIidrY1NlbGVjdEF1dGhMaXN0SXRlbUhlYWRpbmdDbGFzcydcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGF1dGhlbnRpY2F0b3IubGFiZWwgfCBhZHZhbmNlZE1zZ1N0ciB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0b3IudHJhbnNwb3J0cyAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRvci50cmFuc3BvcnRzLmRpc3BsYXlOYW1lUHJvcGVydGllcyAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRvci50cmFuc3BvcnRzLmRpc3BsYXlOYW1lUHJvcGVydGllcy5sZW5ndGggIT09IDBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lkXT1cIidrYy13ZWJhdXRobi1hdXRoZW50aWNhdG9yLXRyYW5zcG9ydC0nICsgaVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtrY0NsYXNzXT1cIidrY1NlbGVjdEF1dGhMaXN0SXRlbURlc2NyaXB0aW9uQ2xhc3MnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBmb3IgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZVByb3BlcnR5IG9mIGF1dGhlbnRpY2F0b3IudHJhbnNwb3J0cy5kaXNwbGF5TmFtZVByb3BlcnRpZXM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFjayBuYW1lUHJvcGVydHk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgaSA9ICRpbmRleFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IG5hbWVQcm9wZXJ0eSB8IGFkdmFuY2VkTXNnU3RyIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGkgIT09IGF1dGhlbnRpY2F0b3IudHJhbnNwb3J0cy5kaXNwbGF5TmFtZVByb3BlcnRpZXMubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPiwgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBba2NDbGFzc109XCIna2NTZWxlY3RBdXRoTGlzdEl0ZW1EZXNjcmlwdGlvbkNsYXNzJ1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBbaWRdPVwiJ2tjLXdlYmF1dGhuLWF1dGhlbnRpY2F0b3ItY3JlYXRlZGxhYmVsLScgKyBpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAncGFzc2tleS1jcmVhdGVkQXQtbGFiZWwnIHwgbXNnU3RyIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gW2lkXT1cIidrYy13ZWJhdXRobi1hdXRoZW50aWNhdG9yLWNyZWF0ZWQtJyArIGlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGF1dGhlbnRpY2F0b3IuY3JlYXRlZEF0IH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IFtrY0NsYXNzXT1cIidrY1NlbGVjdEF1dGhMaXN0SXRlbUZpbGxDbGFzcydcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDxkaXYgaWQ9XCJrYy1mb3JtLXdyYXBwZXJcIj5cbiAgICAgICAgICAgICAgICBAaWYgKHJlYWxtLnBhc3N3b3JkKSB7XG4gICAgICAgICAgICAgICAgICAgIDxmb3JtXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImtjLWZvcm0tcGFzc2tleVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYWN0aW9uXT1cInVybC5sb2dpbkFjdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBtZXRob2Q9XCJwb3N0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwiZGlzcGxheTogbm9uZVwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoIXVzZXJuYW1lSGlkZGVuKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBba2NDbGFzc109XCIna2NGb3JtR3JvdXBDbGFzcydcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3I9XCJ1c2VybmFtZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBba2NDbGFzc109XCIna2NMYWJlbENsYXNzJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdwYXNza2V5LWF1dG9maWxsLXNlbGVjdCcgfCBtc2dTdHIgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJJbmRleD1cIjFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJ1c2VybmFtZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWludmFsaWRdPVwibWVzc2FnZXNQZXJGaWVsZC5leGlzdHNFcnJvcigndXNlcm5hbWUnKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBba2NDbGFzc109XCIna2NJbnB1dENsYXNzJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwidXNlcm5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImxvZ2luLnVzZXJuYW1lID8/ICcnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG9Gb2N1c1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0b0NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChtZXNzYWdlc1BlckZpZWxkLmV4aXN0c0Vycm9yKCd1c2VybmFtZScpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiaW5wdXQtZXJyb3ItdXNlcm5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtrY0NsYXNzXT1cIidrY0lucHV0RXJyb3JNZXNzYWdlQ2xhc3MnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxpdmU9XCJwb2xpdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IG1lc3NhZ2VzUGVyRmllbGQuZ2V0KCd1c2VybmFtZScpIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC9mb3JtPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImtjLWZvcm0tcGFzc2tleS1idXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2tjQ2xhc3NdPVwiJ2tjRm9ybUJ1dHRvbnNDbGFzcydcIlxuICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJkaXNwbGF5OiBub25lXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJhdXRoQnV0dG9uSWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG9Gb2N1c1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPVwie3sgJ3Bhc3NrZXktZG9BdXRoZW50aWNhdGUnIHwgbXNnU3RyIH19XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBba2NDbGFzc109XCJbJ2tjQnV0dG9uQ2xhc3MnLCAna2NCdXR0b25QcmltYXJ5Q2xhc3MnLCAna2NCdXR0b25CbG9ja0NsYXNzJywgJ2tjQnV0dG9uTGFyZ2VDbGFzcyddXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbjwva2MtbG9naW4tdGVtcGxhdGU+XG4iXX0=
@@ -1,6 +1,7 @@
1
- import { ClassKey } from "keycloakify/login/lib/kcClsx";
2
- import { KcContext } from "keycloakify/login/KcContext";
3
- import { ComponentReference } from "../../../login/classes/component-reference.class";
1
+ import { ClassKey } from 'keycloakify/login/lib/kcClsx';
2
+ import { KcContext } from 'keycloakify/login/KcContext';
3
+ import { ComponentReference } from '../../../login/classes/component-reference.class';
4
+ import * as i0 from "@angular/core";
4
5
  export declare class LoginPasswordComponent extends ComponentReference {
5
6
  kcContext: KcContext.LoginPassword;
6
7
  doUseDefaultCss: boolean;
@@ -11,4 +12,6 @@ export declare class LoginPasswordComponent extends ComponentReference {
11
12
  displayInfo: boolean;
12
13
  displayMessage: boolean;
13
14
  isLoginButtonDisabled: import("@angular/core").WritableSignal<boolean>;
15
+ static ɵfac: i0.ɵɵFactoryDeclaration<LoginPasswordComponent, never>;
16
+ static ɵcmp: i0.ɵɵComponentDeclaration<LoginPasswordComponent, "kc-root", never, { "displayRequiredFields": { "alias": "displayRequiredFields"; "required": false; "isSignal": true; }; "documentTitle": { "alias": "documentTitle"; "required": false; "isSignal": true; }; "bodyClassName": { "alias": "bodyClassName"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
14
17
  }
@@ -0,0 +1,40 @@
1
+ import { ChangeDetectionStrategy, Component, forwardRef, inject, input, signal } from '@angular/core';
2
+ import { CLASSES, KC_CONTEXT, USE_DEFAULT_CSS } from '../../../lib/public-api';
3
+ import { ComponentReference } from '../../../login/classes/component-reference.class';
4
+ import { PasswordWrapperComponent } from '../../../login/components/password-wrapper/password-wrapper.component';
5
+ import { TemplateComponent } from '../../../login/containers/template.component';
6
+ import { KcClassDirective } from '../../../login/directives/kc-class.directive';
7
+ import { KcSanitizePipe } from '../../../login/pipes/kc-sanitize.pipe';
8
+ import { MsgStrPipe } from '../../../login/pipes/msg-str.pipe';
9
+ import * as i0 from "@angular/core";
10
+ export class LoginPasswordComponent extends ComponentReference {
11
+ constructor() {
12
+ super(...arguments);
13
+ this.kcContext = inject(KC_CONTEXT);
14
+ this.doUseDefaultCss = inject(USE_DEFAULT_CSS);
15
+ this.classes = inject(CLASSES);
16
+ this.displayRequiredFields = input(false);
17
+ this.documentTitle = input();
18
+ this.bodyClassName = input();
19
+ this.displayInfo = false;
20
+ this.displayMessage = this.kcContext.messagesPerField.existsError('password');
21
+ this.isLoginButtonDisabled = signal(false);
22
+ }
23
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: LoginPasswordComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
24
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.6", type: LoginPasswordComponent, 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
+ {
26
+ provide: ComponentReference,
27
+ useExisting: forwardRef(() => LoginPasswordComponent)
28
+ }
29
+ ], usesInheritance: true, ngImport: i0, template: "@let url = kcContext.url;\n@let messagesPerField = kcContext.messagesPerField;\n@let realm = kcContext.realm;\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 {{ 'doLogIn' | msgStr }}\n </ng-container>\n <ng-container content>\n <div id=\"kc-form\">\n <div id=\"kc-form-wrapper\">\n <form\n id=\"kc-form-login\"\n (onSubmit)=\"isLoginButtonDisabled.set(true)\"\n [action]=\"url?.loginAction\"\n method=\"post\"\n >\n <div\n [kcClass]=\"'kcFormGroupClass'\"\n class=\"no-bottom-margin\"\n >\n <hr />\n <label\n for=\"password\"\n [kcClass]=\"'kcLabelClass'\"\n >\n {{ 'password' | msgStr }}\n </label>\n <kc-password-wrapper passwordInputId=\"password\">\n <input\n type=\"password\"\n id=\"password\"\n name=\"password\"\n [kcClass]=\"'kcInputClass'\"\n [required]=\"true\"\n [autofocus]=\"true\"\n [tabindex]=\"1\"\n aria-describedby=\"input-error-password\"\n />\n </kc-password-wrapper>\n\n @if (messagesPerField.existsError('password')) {\n <span\n id=\"input-error-password\"\n [kcClass]=\"'kcInputErrorMessageClass'\"\n aria-live=\"polite\"\n [innerHTML]=\"messagesPerField.getFirstError('password') | kcSanitize: 'html'\"\n >\n </span>\n }\n </div>\n <div [kcClass]=\"['kcFormGroupClass', 'kcFormSettingClass']\">\n <div id=\"kc-form-options\"></div>\n <div [kcClass]=\"'kcFormOptionsWrapperClass'\">\n @if (realm.resetPasswordAllowed) {\n <span>\n <a\n tabindex=\"5\"\n href=\"{{ url.loginResetCredentialsUrl }}\"\n >\n {{ 'doForgotPassword' | msgStr }}\n </a>\n </span>\n }\n </div>\n </div>\n <div\n id=\"kc-form-buttons\"\n [kcClass]=\"'kcFormGroupClass'\"\n >\n <input\n type=\"submit\"\n id=\"kc-login\"\n name=\"login\"\n [value]=\"'doLogIn' | msgStr\"\n [disabled]=\"isLoginButtonDisabled()\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n [tabindex]=\"4\"\n />\n </div>\n </form>\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: "pipe", type: MsgStrPipe, name: "msgStr" }, { kind: "directive", type: KcClassDirective, selector: "[kcClass]", inputs: ["class", "ngClass", "kcClass"] }, { kind: "component", type: PasswordWrapperComponent, selector: "kc-password-wrapper", inputs: ["passwordInputId"] }, { kind: "pipe", type: KcSanitizePipe, name: "kcSanitize" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
30
+ }
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: LoginPasswordComponent, decorators: [{
32
+ type: Component,
33
+ args: [{ standalone: true, imports: [TemplateComponent, MsgStrPipe, KcClassDirective, PasswordWrapperComponent, KcSanitizePipe], selector: 'kc-root', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
34
+ {
35
+ provide: ComponentReference,
36
+ useExisting: forwardRef(() => LoginPasswordComponent)
37
+ }
38
+ ], template: "@let url = kcContext.url;\n@let messagesPerField = kcContext.messagesPerField;\n@let realm = kcContext.realm;\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 {{ 'doLogIn' | msgStr }}\n </ng-container>\n <ng-container content>\n <div id=\"kc-form\">\n <div id=\"kc-form-wrapper\">\n <form\n id=\"kc-form-login\"\n (onSubmit)=\"isLoginButtonDisabled.set(true)\"\n [action]=\"url?.loginAction\"\n method=\"post\"\n >\n <div\n [kcClass]=\"'kcFormGroupClass'\"\n class=\"no-bottom-margin\"\n >\n <hr />\n <label\n for=\"password\"\n [kcClass]=\"'kcLabelClass'\"\n >\n {{ 'password' | msgStr }}\n </label>\n <kc-password-wrapper passwordInputId=\"password\">\n <input\n type=\"password\"\n id=\"password\"\n name=\"password\"\n [kcClass]=\"'kcInputClass'\"\n [required]=\"true\"\n [autofocus]=\"true\"\n [tabindex]=\"1\"\n aria-describedby=\"input-error-password\"\n />\n </kc-password-wrapper>\n\n @if (messagesPerField.existsError('password')) {\n <span\n id=\"input-error-password\"\n [kcClass]=\"'kcInputErrorMessageClass'\"\n aria-live=\"polite\"\n [innerHTML]=\"messagesPerField.getFirstError('password') | kcSanitize: 'html'\"\n >\n </span>\n }\n </div>\n <div [kcClass]=\"['kcFormGroupClass', 'kcFormSettingClass']\">\n <div id=\"kc-form-options\"></div>\n <div [kcClass]=\"'kcFormOptionsWrapperClass'\">\n @if (realm.resetPasswordAllowed) {\n <span>\n <a\n tabindex=\"5\"\n href=\"{{ url.loginResetCredentialsUrl }}\"\n >\n {{ 'doForgotPassword' | msgStr }}\n </a>\n </span>\n }\n </div>\n </div>\n <div\n id=\"kc-form-buttons\"\n [kcClass]=\"'kcFormGroupClass'\"\n >\n <input\n type=\"submit\"\n id=\"kc-login\"\n name=\"login\"\n [value]=\"'doLogIn' | msgStr\"\n [disabled]=\"isLoginButtonDisabled()\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n [tabindex]=\"4\"\n />\n </div>\n </form>\n </div>\n </div>\n </ng-container>\n</kc-login-template>\n" }]
39
+ }] });
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4tcGFzc3dvcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2V5Y2xvYWtpZnktYW5ndWxhci9zcmMvbG9naW4vcGFnZXMvbG9naW4tcGFzc3dvcmQvbG9naW4tcGFzc3dvcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2V5Y2xvYWtpZnktYW5ndWxhci9zcmMvbG9naW4vcGFnZXMvbG9naW4tcGFzc3dvcmQvbG9naW4tcGFzc3dvcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEcsT0FBTyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFHM0YsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOERBQThELENBQUM7QUFDbEcsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sbUZBQW1GLENBQUM7QUFDN0gsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMERBQTBELENBQUM7QUFDN0YsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMERBQTBELENBQUM7QUFDNUYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQ25GLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQzs7QUFlM0UsTUFBTSxPQUFPLHNCQUF1QixTQUFRLGtCQUFrQjtJQWI5RDs7UUFjSSxjQUFTLEdBQUcsTUFBTSxDQUF1RCxVQUFVLENBQUMsQ0FBQztRQUM1RSxvQkFBZSxHQUFHLE1BQU0sQ0FBVSxlQUFlLENBQUMsQ0FBQztRQUNuRCxZQUFPLEdBQUcsTUFBTSxDQUFvQyxPQUFPLENBQUMsQ0FBQztRQUN0RSwwQkFBcUIsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckMsa0JBQWEsR0FBRyxLQUFLLEVBQVUsQ0FBQztRQUNoQyxrQkFBYSxHQUFHLEtBQUssRUFBVSxDQUFDO1FBQ2hDLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLG1CQUFjLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFekUsMEJBQXFCLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQ3pDOzhHQVhZLHNCQUFzQjtrR0FBdEIsc0JBQXNCLDBnQkFQcEI7WUFDUDtnQkFDSSxPQUFPLEVBQUUsa0JBQWtCO2dCQUMzQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHNCQUFzQixDQUFDO2FBQ3hEO1NBQ0osaURDdEJMLCszSEEwRkEsNENEN0VjLGlCQUFpQiwrSkFBRSxVQUFVLCtDQUFFLGdCQUFnQiwrRkFBRSx3QkFBd0Isd0ZBQUUsY0FBYzs7MkZBVzFGLHNCQUFzQjtrQkFibEMsU0FBUztpQ0FDTSxJQUFJLFdBQ1AsQ0FBQyxpQkFBaUIsRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsd0JBQXdCLEVBQUUsY0FBYyxDQUFDLFlBQzFGLFNBQVMsbUJBRUYsdUJBQXVCLENBQUMsTUFBTSxhQUNwQzt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsa0JBQWtCOzRCQUMzQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSx1QkFBdUIsQ0FBQzt5QkFDeEQ7cUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBmb3J3YXJkUmVmLCBpbmplY3QsIGlucHV0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENMQVNTRVMsIEtDX0NPTlRFWFQsIFVTRV9ERUZBVUxUX0NTUyB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xpYi9wdWJsaWMtYXBpJztcbmltcG9ydCB7IENsYXNzS2V5IH0gZnJvbSAna2V5Y2xvYWtpZnkvbG9naW4vbGliL2tjQ2xzeCc7XG5pbXBvcnQgeyBLY0NvbnRleHQgfSBmcm9tICdrZXljbG9ha2lmeS9sb2dpbi9LY0NvbnRleHQnO1xuaW1wb3J0IHsgQ29tcG9uZW50UmVmZXJlbmNlIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vY2xhc3Nlcy9jb21wb25lbnQtcmVmZXJlbmNlLmNsYXNzJztcbmltcG9ydCB7IFBhc3N3b3JkV3JhcHBlckNvbXBvbmVudCB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL2NvbXBvbmVudHMvcGFzc3dvcmQtd3JhcHBlci9wYXNzd29yZC13cmFwcGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUZW1wbGF0ZUNvbXBvbmVudCB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL2NvbnRhaW5lcnMvdGVtcGxhdGUuY29tcG9uZW50JztcbmltcG9ydCB7IEtjQ2xhc3NEaXJlY3RpdmUgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9kaXJlY3RpdmVzL2tjLWNsYXNzLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBLY1Nhbml0aXplUGlwZSB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL3BpcGVzL2tjLXNhbml0aXplLnBpcGUnO1xuaW1wb3J0IHsgTXNnU3RyUGlwZSB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL3BpcGVzL21zZy1zdHIucGlwZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1RlbXBsYXRlQ29tcG9uZW50LCBNc2dTdHJQaXBlLCBLY0NsYXNzRGlyZWN0aXZlLCBQYXNzd29yZFdyYXBwZXJDb21wb25lbnQsIEtjU2FuaXRpemVQaXBlXSxcbiAgICBzZWxlY3RvcjogJ2tjLXJvb3QnLFxuICAgIHRlbXBsYXRlVXJsOiAnbG9naW4tcGFzc3dvcmQuY29tcG9uZW50Lmh0bWwnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBDb21wb25lbnRSZWZlcmVuY2UsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBMb2dpblBhc3N3b3JkQ29tcG9uZW50KVxuICAgICAgICB9XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBMb2dpblBhc3N3b3JkQ29tcG9uZW50IGV4dGVuZHMgQ29tcG9uZW50UmVmZXJlbmNlIHtcbiAgICBrY0NvbnRleHQgPSBpbmplY3Q8RXh0cmFjdDxLY0NvbnRleHQsIHsgcGFnZUlkOiAnbG9naW4tcGFzc3dvcmQuZnRsJyB9Pj4oS0NfQ09OVEVYVCk7XG4gICAgb3ZlcnJpZGUgZG9Vc2VEZWZhdWx0Q3NzID0gaW5qZWN0PGJvb2xlYW4+KFVTRV9ERUZBVUxUX0NTUyk7XG4gICAgb3ZlcnJpZGUgY2xhc3NlcyA9IGluamVjdDxQYXJ0aWFsPFJlY29yZDxDbGFzc0tleSwgc3RyaW5nPj4+KENMQVNTRVMpO1xuICAgIGRpc3BsYXlSZXF1aXJlZEZpZWxkcyA9IGlucHV0KGZhbHNlKTtcbiAgICBkb2N1bWVudFRpdGxlID0gaW5wdXQ8c3RyaW5nPigpO1xuICAgIGJvZHlDbGFzc05hbWUgPSBpbnB1dDxzdHJpbmc+KCk7XG4gICAgZGlzcGxheUluZm8gPSBmYWxzZTtcbiAgICBkaXNwbGF5TWVzc2FnZSA9IHRoaXMua2NDb250ZXh0Lm1lc3NhZ2VzUGVyRmllbGQuZXhpc3RzRXJyb3IoJ3Bhc3N3b3JkJyk7XG5cbiAgICBpc0xvZ2luQnV0dG9uRGlzYWJsZWQgPSBzaWduYWwoZmFsc2UpO1xufVxuIiwiQGxldCB1cmwgPSBrY0NvbnRleHQudXJsO1xuQGxldCBtZXNzYWdlc1BlckZpZWxkID0ga2NDb250ZXh0Lm1lc3NhZ2VzUGVyRmllbGQ7XG5AbGV0IHJlYWxtID0ga2NDb250ZXh0LnJlYWxtO1xuPGtjLWxvZ2luLXRlbXBsYXRlXG4gICAgW2Rpc3BsYXlJbmZvXT1cImRpc3BsYXlJbmZvXCJcbiAgICBbYm9keUNsYXNzTmFtZV09XCJib2R5Q2xhc3NOYW1lKClcIlxuICAgIFtkaXNwbGF5TWVzc2FnZV09XCJkaXNwbGF5TWVzc2FnZVwiXG4gICAgW2Rpc3BsYXlSZXF1aXJlZEZpZWxkc109XCJkaXNwbGF5UmVxdWlyZWRGaWVsZHMoKVwiXG4gICAgW2RvY3VtZW50VGl0bGVdPVwiZG9jdW1lbnRUaXRsZSgpXCJcbj5cbiAgICA8bmctY29udGFpbmVyIGhlYWRlck5vZGU+XG4gICAgICAgIHt7ICdkb0xvZ0luJyB8IG1zZ1N0ciB9fVxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgY29udGVudD5cbiAgICAgICAgPGRpdiBpZD1cImtjLWZvcm1cIj5cbiAgICAgICAgICAgIDxkaXYgaWQ9XCJrYy1mb3JtLXdyYXBwZXJcIj5cbiAgICAgICAgICAgICAgICA8Zm9ybVxuICAgICAgICAgICAgICAgICAgICBpZD1cImtjLWZvcm0tbG9naW5cIlxuICAgICAgICAgICAgICAgICAgICAob25TdWJtaXQpPVwiaXNMb2dpbkJ1dHRvbkRpc2FibGVkLnNldCh0cnVlKVwiXG4gICAgICAgICAgICAgICAgICAgIFthY3Rpb25dPVwidXJsPy5sb2dpbkFjdGlvblwiXG4gICAgICAgICAgICAgICAgICAgIG1ldGhvZD1cInBvc3RcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgW2tjQ2xhc3NdPVwiJ2tjRm9ybUdyb3VwQ2xhc3MnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibm8tYm90dG9tLW1hcmdpblwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxociAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yPVwicGFzc3dvcmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtrY0NsYXNzXT1cIidrY0xhYmVsQ2xhc3MnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAncGFzc3dvcmQnIHwgbXNnU3RyIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGtjLXBhc3N3b3JkLXdyYXBwZXIgcGFzc3dvcmRJbnB1dElkPVwicGFzc3dvcmRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInBhc3N3b3JkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJwYXNzd29yZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJwYXNzd29yZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtrY0NsYXNzXT1cIidrY0lucHV0Q2xhc3MnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JlcXVpcmVkXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXV0b2ZvY3VzXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdGFiaW5kZXhdPVwiMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtZGVzY3JpYmVkYnk9XCJpbnB1dC1lcnJvci1wYXNzd29yZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwva2MtcGFzc3dvcmQtd3JhcHBlcj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChtZXNzYWdlc1BlckZpZWxkLmV4aXN0c0Vycm9yKCdwYXNzd29yZCcpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJpbnB1dC1lcnJvci1wYXNzd29yZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtrY0NsYXNzXT1cIidrY0lucHV0RXJyb3JNZXNzYWdlQ2xhc3MnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1saXZlPVwicG9saXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJtZXNzYWdlc1BlckZpZWxkLmdldEZpcnN0RXJyb3IoJ3Bhc3N3b3JkJykgfCBrY1Nhbml0aXplOiAnaHRtbCdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IFtrY0NsYXNzXT1cIlsna2NGb3JtR3JvdXBDbGFzcycsICdrY0Zvcm1TZXR0aW5nQ2xhc3MnXVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD1cImtjLWZvcm0tb3B0aW9uc1wiPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBba2NDbGFzc109XCIna2NGb3JtT3B0aW9uc1dyYXBwZXJDbGFzcydcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKHJlYWxtLnJlc2V0UGFzc3dvcmRBbGxvd2VkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJpbmRleD1cIjVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9XCJ7eyB1cmwubG9naW5SZXNldENyZWRlbnRpYWxzVXJsIH19XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAnZG9Gb3Jnb3RQYXNzd29yZCcgfCBtc2dTdHIgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJrYy1mb3JtLWJ1dHRvbnNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2tjQ2xhc3NdPVwiJ2tjRm9ybUdyb3VwQ2xhc3MnXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInN1Ym1pdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJrYy1sb2dpblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImxvZ2luXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiJ2RvTG9nSW4nIHwgbXNnU3RyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiaXNMb2dpbkJ1dHRvbkRpc2FibGVkKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtrY0NsYXNzXT1cIlsna2NCdXR0b25DbGFzcycsICdrY0J1dHRvblByaW1hcnlDbGFzcycsICdrY0J1dHRvbkJsb2NrQ2xhc3MnLCAna2NCdXR0b25MYXJnZUNsYXNzJ11cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0YWJpbmRleF09XCI0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZm9ybT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbjwva2MtbG9naW4tdGVtcGxhdGU+XG4iXX0=
@@ -1,6 +1,7 @@
1
- import { ClassKey } from "keycloakify/login/lib/kcClsx";
2
- import { KcContext } from "keycloakify/login/KcContext";
3
- import { ComponentReference } from "../../../login/classes/component-reference.class";
1
+ import { ClassKey } from 'keycloakify/login/lib/kcClsx';
2
+ import { KcContext } from 'keycloakify/login/KcContext';
3
+ import { ComponentReference } from '../../../login/classes/component-reference.class';
4
+ import * as i0 from "@angular/core";
4
5
  export declare class LoginRecoveryAuthnCodeConfigComponent extends ComponentReference {
5
6
  kcContext: KcContext.LoginRecoveryAuthnCodeConfig;
6
7
  doUseDefaultCss: boolean;
@@ -12,4 +13,6 @@ export declare class LoginRecoveryAuthnCodeConfigComponent extends ComponentRefe
12
13
  displayMessage: boolean;
13
14
  toggleRecoveryCodesConfirmation: import("@angular/core").WritableSignal<boolean>;
14
15
  olRecoveryCodesListId: string;
16
+ static ɵfac: i0.ɵɵFactoryDeclaration<LoginRecoveryAuthnCodeConfigComponent, never>;
17
+ static ɵcmp: i0.ɵɵComponentDeclaration<LoginRecoveryAuthnCodeConfigComponent, "kc-root", never, { "displayRequiredFields": { "alias": "displayRequiredFields"; "required": false; "isSignal": true; }; "documentTitle": { "alias": "documentTitle"; "required": false; "isSignal": true; }; "bodyClassName": { "alias": "bodyClassName"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
15
18
  }
@@ -0,0 +1,40 @@
1
+ import { ChangeDetectionStrategy, Component, forwardRef, inject, input, signal } from '@angular/core';
2
+ import { CLASSES, KC_CONTEXT, USE_DEFAULT_CSS } from '../../../lib/public-api';
3
+ import { ComponentReference } from '../../../login/classes/component-reference.class';
4
+ import { LogoutOtherSessionsComponent } from '../../../login/components/logout-other-sessions/logout-other-sessions.component';
5
+ import { TemplateComponent } from '../../../login/containers/template.component';
6
+ import { KcClassDirective } from '../../../login/directives';
7
+ import { MsgStrPipe } from '../../../login/pipes/msg-str.pipe';
8
+ import * as i0 from "@angular/core";
9
+ export class LoginRecoveryAuthnCodeConfigComponent extends ComponentReference {
10
+ constructor() {
11
+ super(...arguments);
12
+ this.kcContext = inject(KC_CONTEXT);
13
+ this.doUseDefaultCss = inject(USE_DEFAULT_CSS);
14
+ this.classes = inject(CLASSES);
15
+ this.displayRequiredFields = input(false);
16
+ this.documentTitle = input();
17
+ this.bodyClassName = input();
18
+ this.displayInfo = false;
19
+ this.displayMessage = false;
20
+ this.toggleRecoveryCodesConfirmation = signal(false);
21
+ this.olRecoveryCodesListId = 'kc-recovery-codes-list';
22
+ }
23
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: LoginRecoveryAuthnCodeConfigComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
24
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.6", type: LoginRecoveryAuthnCodeConfigComponent, 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
+ {
26
+ provide: ComponentReference,
27
+ useExisting: forwardRef(() => LoginRecoveryAuthnCodeConfigComponent)
28
+ }
29
+ ], usesInheritance: true, ngImport: i0, template: "@let recoveryAuthnCodesConfigBean = kcContext.recoveryAuthnCodesConfigBean;\n@let isAppInitiatedAction = kcContext.isAppInitiatedAction;\n<kc-login-template\n [displayInfo]=\"displayInfo\"\n [bodyClassName]=\"bodyClassName()\"\n [displayMessage]=\"displayMessage\"\n [displayRequiredFields]=\"displayRequiredFields()\"\n [documentTitle]=\"documentTitle()\"\n>\n <ng-container headerNode>\n {{ 'recovery-code-config-header' | msgStr }}\n </ng-container>\n\n <ng-container content>\n <div\n [kcClass]=\"'kcRecoveryCodesWarning'\"\n class=\"pf-c-alert pf-m-warning pf-m-inline\"\n aria-label=\"Warning alert\"\n >\n <div class=\"pf-c-alert__icon\">\n <i\n class=\"pficon-warning-triangle-o\"\n aria-hidden=\"true\"\n ></i>\n </div>\n <h4 class=\"pf-c-alert__title\">\n <span class=\"pf-screen-reader\">Warning alert:</span>\n {{ 'recovery-code-config-warning-title' | msgStr }}\n </h4>\n <div class=\"pf-c-alert__description\">\n <p>{{ 'recovery-code-config-warning-message' | msgStr }}</p>\n </div>\n </div>\n\n <ol\n [id]=\"olRecoveryCodesListId\"\n [kcClass]=\"'kcRecoveryCodesList'\"\n >\n @for (code of recoveryAuthnCodesConfigBean.generatedRecoveryAuthnCodesList; track code; let i = $index) {\n <li>\n <span>{{ i + 1 }}:</span> {{ code.slice(0, 4) }}-{{ code.slice(4, 8) }}-{{ code.slice(8) }}\n </li>\n }\n </ol>\n\n <!-- actions -->\n <div [kcClass]=\"'kcRecoveryCodesActions'\">\n <button\n id=\"printRecoveryCodes\"\n class=\"pf-c-button pf-m-link\"\n type=\"button\"\n >\n <i\n class=\"pficon-print\"\n aria-hidden=\"true\"\n ></i>\n {{ 'recovery-codes-print' | msgStr }}\n </button>\n <button\n id=\"downloadRecoveryCodes\"\n class=\"pf-c-button pf-m-link\"\n type=\"button\"\n >\n <i\n class=\"pficon-save\"\n aria-hidden=\"true\"\n ></i>\n {{ 'recovery-codes-download' | msgStr }}\n </button>\n <button\n id=\"copyRecoveryCodes\"\n class=\"pf-c-button pf-m-link\"\n type=\"button\"\n >\n <i\n class=\"pficon-blueprint\"\n aria-hidden=\"true\"\n ></i>\n {{ 'recovery-codes-copy' | msgStr }}\n </button>\n </div>\n\n <!-- confirmation checkbox -->\n\n <div\n [kcClass]=\"'kcFormOptionsClass'\"\n class=\"checkbox\"\n >\n <label for=\"kcRecoveryCodesConfirmationCheck\">\n <input\n [kcClass]=\"'kcCheckInputClass'\"\n type=\"checkbox\"\n id=\"kcRecoveryCodesConfirmationCheck\"\n name=\"kcRecoveryCodesConfirmationCheck\"\n [checked]=\"toggleRecoveryCodesConfirmation()\"\n (change)=\"toggleRecoveryCodesConfirmation.set($any($event.target).checked)\"\n />\n {{ 'recovery-codes-confirmation-message' | msgStr }}\n </label>\n </div>\n\n <form\n [action]=\"kcContext.url.loginAction\"\n [kcClass]=\"'kcFormGroupClass'\"\n id=\"kc-recovery-codes-settings-form\"\n method=\"post\"\n >\n <input\n type=\"hidden\"\n name=\"generatedRecoveryAuthnCodes\"\n [value]=\"recoveryAuthnCodesConfigBean.generatedRecoveryAuthnCodesAsString\"\n />\n <input\n type=\"hidden\"\n name=\"generatedAt\"\n [value]=\"recoveryAuthnCodesConfigBean.generatedAt\"\n />\n <input\n type=\"hidden\"\n id=\"userLabel\"\n name=\"userLabel\"\n [value]=\"'recovery-codes-label-default' | msgStr\"\n />\n\n <kc-logout-other-sessions></kc-logout-other-sessions>\n\n @if (isAppInitiatedAction) {\n <input\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonLargeClass']\"\n id=\"saveRecoveryAuthnCodesBtn\"\n [value]=\"'recovery-codes-action-complete' | msgStr\"\n [disabled]=\"!toggleRecoveryCodesConfirmation()\"\n />\n <button\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonDefaultClass', 'kcButtonLargeClass']\"\n id=\"cancelRecoveryAuthnCodesBtn\"\n name=\"cancel-aia\"\n value=\"true\"\n >\n {{ 'recovery-codes-action-cancel' | msgStr }}\n </button>\n } @else {\n <input\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n id=\"saveRecoveryAuthnCodesBtn\"\n [value]=\"'recovery-codes-action-complete' | msgStr\"\n [disabled]=\"!toggleRecoveryCodesConfirmation()\"\n />\n }\n </form>\n </ng-container>\n</kc-login-template>\n", dependencies: [{ kind: "pipe", type: MsgStrPipe, name: "msgStr" }, { kind: "component", type: TemplateComponent, selector: "kc-login-template", inputs: ["displayInfo", "displayMessage", "displayRequiredFields", "documentTitle", "bodyClassName"] }, { kind: "directive", type: KcClassDirective, selector: "[kcClass]", inputs: ["class", "ngClass", "kcClass"] }, { kind: "component", type: LogoutOtherSessionsComponent, selector: "kc-logout-other-sessions" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
30
+ }
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: LoginRecoveryAuthnCodeConfigComponent, decorators: [{
32
+ type: Component,
33
+ args: [{ standalone: true, imports: [MsgStrPipe, TemplateComponent, KcClassDirective, LogoutOtherSessionsComponent], selector: 'kc-root', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
34
+ {
35
+ provide: ComponentReference,
36
+ useExisting: forwardRef(() => LoginRecoveryAuthnCodeConfigComponent)
37
+ }
38
+ ], template: "@let recoveryAuthnCodesConfigBean = kcContext.recoveryAuthnCodesConfigBean;\n@let isAppInitiatedAction = kcContext.isAppInitiatedAction;\n<kc-login-template\n [displayInfo]=\"displayInfo\"\n [bodyClassName]=\"bodyClassName()\"\n [displayMessage]=\"displayMessage\"\n [displayRequiredFields]=\"displayRequiredFields()\"\n [documentTitle]=\"documentTitle()\"\n>\n <ng-container headerNode>\n {{ 'recovery-code-config-header' | msgStr }}\n </ng-container>\n\n <ng-container content>\n <div\n [kcClass]=\"'kcRecoveryCodesWarning'\"\n class=\"pf-c-alert pf-m-warning pf-m-inline\"\n aria-label=\"Warning alert\"\n >\n <div class=\"pf-c-alert__icon\">\n <i\n class=\"pficon-warning-triangle-o\"\n aria-hidden=\"true\"\n ></i>\n </div>\n <h4 class=\"pf-c-alert__title\">\n <span class=\"pf-screen-reader\">Warning alert:</span>\n {{ 'recovery-code-config-warning-title' | msgStr }}\n </h4>\n <div class=\"pf-c-alert__description\">\n <p>{{ 'recovery-code-config-warning-message' | msgStr }}</p>\n </div>\n </div>\n\n <ol\n [id]=\"olRecoveryCodesListId\"\n [kcClass]=\"'kcRecoveryCodesList'\"\n >\n @for (code of recoveryAuthnCodesConfigBean.generatedRecoveryAuthnCodesList; track code; let i = $index) {\n <li>\n <span>{{ i + 1 }}:</span> {{ code.slice(0, 4) }}-{{ code.slice(4, 8) }}-{{ code.slice(8) }}\n </li>\n }\n </ol>\n\n <!-- actions -->\n <div [kcClass]=\"'kcRecoveryCodesActions'\">\n <button\n id=\"printRecoveryCodes\"\n class=\"pf-c-button pf-m-link\"\n type=\"button\"\n >\n <i\n class=\"pficon-print\"\n aria-hidden=\"true\"\n ></i>\n {{ 'recovery-codes-print' | msgStr }}\n </button>\n <button\n id=\"downloadRecoveryCodes\"\n class=\"pf-c-button pf-m-link\"\n type=\"button\"\n >\n <i\n class=\"pficon-save\"\n aria-hidden=\"true\"\n ></i>\n {{ 'recovery-codes-download' | msgStr }}\n </button>\n <button\n id=\"copyRecoveryCodes\"\n class=\"pf-c-button pf-m-link\"\n type=\"button\"\n >\n <i\n class=\"pficon-blueprint\"\n aria-hidden=\"true\"\n ></i>\n {{ 'recovery-codes-copy' | msgStr }}\n </button>\n </div>\n\n <!-- confirmation checkbox -->\n\n <div\n [kcClass]=\"'kcFormOptionsClass'\"\n class=\"checkbox\"\n >\n <label for=\"kcRecoveryCodesConfirmationCheck\">\n <input\n [kcClass]=\"'kcCheckInputClass'\"\n type=\"checkbox\"\n id=\"kcRecoveryCodesConfirmationCheck\"\n name=\"kcRecoveryCodesConfirmationCheck\"\n [checked]=\"toggleRecoveryCodesConfirmation()\"\n (change)=\"toggleRecoveryCodesConfirmation.set($any($event.target).checked)\"\n />\n {{ 'recovery-codes-confirmation-message' | msgStr }}\n </label>\n </div>\n\n <form\n [action]=\"kcContext.url.loginAction\"\n [kcClass]=\"'kcFormGroupClass'\"\n id=\"kc-recovery-codes-settings-form\"\n method=\"post\"\n >\n <input\n type=\"hidden\"\n name=\"generatedRecoveryAuthnCodes\"\n [value]=\"recoveryAuthnCodesConfigBean.generatedRecoveryAuthnCodesAsString\"\n />\n <input\n type=\"hidden\"\n name=\"generatedAt\"\n [value]=\"recoveryAuthnCodesConfigBean.generatedAt\"\n />\n <input\n type=\"hidden\"\n id=\"userLabel\"\n name=\"userLabel\"\n [value]=\"'recovery-codes-label-default' | msgStr\"\n />\n\n <kc-logout-other-sessions></kc-logout-other-sessions>\n\n @if (isAppInitiatedAction) {\n <input\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonLargeClass']\"\n id=\"saveRecoveryAuthnCodesBtn\"\n [value]=\"'recovery-codes-action-complete' | msgStr\"\n [disabled]=\"!toggleRecoveryCodesConfirmation()\"\n />\n <button\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonDefaultClass', 'kcButtonLargeClass']\"\n id=\"cancelRecoveryAuthnCodesBtn\"\n name=\"cancel-aia\"\n value=\"true\"\n >\n {{ 'recovery-codes-action-cancel' | msgStr }}\n </button>\n } @else {\n <input\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n id=\"saveRecoveryAuthnCodesBtn\"\n [value]=\"'recovery-codes-action-complete' | msgStr\"\n [disabled]=\"!toggleRecoveryCodesConfirmation()\"\n />\n }\n </form>\n </ng-container>\n</kc-login-template>\n" }]
39
+ }] });
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4tcmVjb3ZlcnktYXV0aG4tY29kZS1jb25maWcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2V5Y2xvYWtpZnktYW5ndWxhci9zcmMvbG9naW4vcGFnZXMvbG9naW4tcmVjb3ZlcnktYXV0aG4tY29kZS1jb25maWcvbG9naW4tcmVjb3ZlcnktYXV0aG4tY29kZS1jb25maWcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2V5Y2xvYWtpZnktYW5ndWxhci9zcmMvbG9naW4vcGFnZXMvbG9naW4tcmVjb3ZlcnktYXV0aG4tY29kZS1jb25maWcvbG9naW4tcmVjb3ZlcnktYXV0aG4tY29kZS1jb25maWcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEcsT0FBTyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFHM0YsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOERBQThELENBQUM7QUFDbEcsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sNkZBQTZGLENBQUM7QUFDM0ksT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMERBQTBELENBQUM7QUFDN0YsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDekUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtDQUErQyxDQUFDOztBQWUzRSxNQUFNLE9BQU8scUNBQXNDLFNBQVEsa0JBQWtCO0lBYjdFOztRQWNJLGNBQVMsR0FBRyxNQUFNLENBQXlFLFVBQVUsQ0FBQyxDQUFDO1FBQzlGLG9CQUFlLEdBQUcsTUFBTSxDQUFVLGVBQWUsQ0FBQyxDQUFDO1FBQ25ELFlBQU8sR0FBRyxNQUFNLENBQW9DLE9BQU8sQ0FBQyxDQUFDO1FBQ3RFLDBCQUFxQixHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyQyxrQkFBYSxHQUFHLEtBQUssRUFBVSxDQUFDO1FBQ2hDLGtCQUFhLEdBQUcsS0FBSyxFQUFVLENBQUM7UUFDaEMsZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFDN0IsbUJBQWMsR0FBWSxLQUFLLENBQUM7UUFDaEMsb0NBQStCLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRWhELDBCQUFxQixHQUFHLHdCQUF3QixDQUFDO0tBQ3BEOzhHQVpZLHFDQUFxQztrR0FBckMscUNBQXFDLDBnQkFQbkM7WUFDUDtnQkFDSSxPQUFPLEVBQUUsa0JBQWtCO2dCQUMzQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHFDQUFxQyxDQUFDO2FBQ3ZFO1NBQ0osaURDckJMLDB1TEEySkEsdUNEL0ljLFVBQVUsK0NBQUUsaUJBQWlCLG9LQUFFLGdCQUFnQiwrRkFBRSw0QkFBNEI7OzJGQVc5RSxxQ0FBcUM7a0JBYmpELFNBQVM7aUNBQ00sSUFBSSxXQUNQLENBQUMsVUFBVSxFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixFQUFFLDRCQUE0QixDQUFDLFlBQzlFLFNBQVMsbUJBRUYsdUJBQXVCLENBQUMsTUFBTSxhQUNwQzt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsa0JBQWtCOzRCQUMzQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxzQ0FBc0MsQ0FBQzt5QkFDdkU7cUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBmb3J3YXJkUmVmLCBpbmplY3QsIGlucHV0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENMQVNTRVMsIEtDX0NPTlRFWFQsIFVTRV9ERUZBVUxUX0NTUyB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xpYi9wdWJsaWMtYXBpJztcbmltcG9ydCB7IENsYXNzS2V5IH0gZnJvbSAna2V5Y2xvYWtpZnkvbG9naW4vbGliL2tjQ2xzeCc7XG5pbXBvcnQgeyBLY0NvbnRleHQgfSBmcm9tICdrZXljbG9ha2lmeS9sb2dpbi9LY0NvbnRleHQnO1xuaW1wb3J0IHsgQ29tcG9uZW50UmVmZXJlbmNlIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vY2xhc3Nlcy9jb21wb25lbnQtcmVmZXJlbmNlLmNsYXNzJztcbmltcG9ydCB7IExvZ291dE90aGVyU2Vzc2lvbnNDb21wb25lbnQgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9jb21wb25lbnRzL2xvZ291dC1vdGhlci1zZXNzaW9ucy9sb2dvdXQtb3RoZXItc2Vzc2lvbnMuY29tcG9uZW50JztcbmltcG9ydCB7IFRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vY29udGFpbmVycy90ZW1wbGF0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgS2NDbGFzc0RpcmVjdGl2ZSB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL2RpcmVjdGl2ZXMnO1xuaW1wb3J0IHsgTXNnU3RyUGlwZSB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL3BpcGVzL21zZy1zdHIucGlwZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW01zZ1N0clBpcGUsIFRlbXBsYXRlQ29tcG9uZW50LCBLY0NsYXNzRGlyZWN0aXZlLCBMb2dvdXRPdGhlclNlc3Npb25zQ29tcG9uZW50XSxcbiAgICBzZWxlY3RvcjogJ2tjLXJvb3QnLFxuICAgIHRlbXBsYXRlVXJsOiAnbG9naW4tcmVjb3ZlcnktYXV0aG4tY29kZS1jb25maWcuY29tcG9uZW50Lmh0bWwnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBDb21wb25lbnRSZWZlcmVuY2UsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBMb2dpblJlY292ZXJ5QXV0aG5Db2RlQ29uZmlnQ29tcG9uZW50KVxuICAgICAgICB9XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBMb2dpblJlY292ZXJ5QXV0aG5Db2RlQ29uZmlnQ29tcG9uZW50IGV4dGVuZHMgQ29tcG9uZW50UmVmZXJlbmNlIHtcbiAgICBrY0NvbnRleHQgPSBpbmplY3Q8RXh0cmFjdDxLY0NvbnRleHQsIHsgcGFnZUlkOiAnbG9naW4tcmVjb3ZlcnktYXV0aG4tY29kZS1jb25maWcuZnRsJyB9Pj4oS0NfQ09OVEVYVCk7XG4gICAgb3ZlcnJpZGUgZG9Vc2VEZWZhdWx0Q3NzID0gaW5qZWN0PGJvb2xlYW4+KFVTRV9ERUZBVUxUX0NTUyk7XG4gICAgb3ZlcnJpZGUgY2xhc3NlcyA9IGluamVjdDxQYXJ0aWFsPFJlY29yZDxDbGFzc0tleSwgc3RyaW5nPj4+KENMQVNTRVMpO1xuICAgIGRpc3BsYXlSZXF1aXJlZEZpZWxkcyA9IGlucHV0KGZhbHNlKTtcbiAgICBkb2N1bWVudFRpdGxlID0gaW5wdXQ8c3RyaW5nPigpO1xuICAgIGJvZHlDbGFzc05hbWUgPSBpbnB1dDxzdHJpbmc+KCk7XG4gICAgZGlzcGxheUluZm86IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBkaXNwbGF5TWVzc2FnZTogYm9vbGVhbiA9IGZhbHNlO1xuICAgIHRvZ2dsZVJlY292ZXJ5Q29kZXNDb25maXJtYXRpb24gPSBzaWduYWwoZmFsc2UpO1xuXG4gICAgb2xSZWNvdmVyeUNvZGVzTGlzdElkID0gJ2tjLXJlY292ZXJ5LWNvZGVzLWxpc3QnO1xufVxuIiwiQGxldCByZWNvdmVyeUF1dGhuQ29kZXNDb25maWdCZWFuID0ga2NDb250ZXh0LnJlY292ZXJ5QXV0aG5Db2Rlc0NvbmZpZ0JlYW47XG5AbGV0IGlzQXBwSW5pdGlhdGVkQWN0aW9uID0ga2NDb250ZXh0LmlzQXBwSW5pdGlhdGVkQWN0aW9uO1xuPGtjLWxvZ2luLXRlbXBsYXRlXG4gICAgW2Rpc3BsYXlJbmZvXT1cImRpc3BsYXlJbmZvXCJcbiAgICBbYm9keUNsYXNzTmFtZV09XCJib2R5Q2xhc3NOYW1lKClcIlxuICAgIFtkaXNwbGF5TWVzc2FnZV09XCJkaXNwbGF5TWVzc2FnZVwiXG4gICAgW2Rpc3BsYXlSZXF1aXJlZEZpZWxkc109XCJkaXNwbGF5UmVxdWlyZWRGaWVsZHMoKVwiXG4gICAgW2RvY3VtZW50VGl0bGVdPVwiZG9jdW1lbnRUaXRsZSgpXCJcbj5cbiAgICA8bmctY29udGFpbmVyIGhlYWRlck5vZGU+XG4gICAgICAgIHt7ICdyZWNvdmVyeS1jb2RlLWNvbmZpZy1oZWFkZXInIHwgbXNnU3RyIH19XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctY29udGFpbmVyIGNvbnRlbnQ+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgIFtrY0NsYXNzXT1cIidrY1JlY292ZXJ5Q29kZXNXYXJuaW5nJ1wiXG4gICAgICAgICAgICBjbGFzcz1cInBmLWMtYWxlcnQgcGYtbS13YXJuaW5nIHBmLW0taW5saW5lXCJcbiAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJXYXJuaW5nIGFsZXJ0XCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBmLWMtYWxlcnRfX2ljb25cIj5cbiAgICAgICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInBmaWNvbi13YXJuaW5nLXRyaWFuZ2xlLW9cIlxuICAgICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgICAgICAgID48L2k+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxoNCBjbGFzcz1cInBmLWMtYWxlcnRfX3RpdGxlXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwZi1zY3JlZW4tcmVhZGVyXCI+V2FybmluZyBhbGVydDo8L3NwYW4+XG4gICAgICAgICAgICAgICAge3sgJ3JlY292ZXJ5LWNvZGUtY29uZmlnLXdhcm5pbmctdGl0bGUnIHwgbXNnU3RyIH19XG4gICAgICAgICAgICA8L2g0PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBmLWMtYWxlcnRfX2Rlc2NyaXB0aW9uXCI+XG4gICAgICAgICAgICAgICAgPHA+e3sgJ3JlY292ZXJ5LWNvZGUtY29uZmlnLXdhcm5pbmctbWVzc2FnZScgfCBtc2dTdHIgfX08L3A+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPG9sXG4gICAgICAgICAgICBbaWRdPVwib2xSZWNvdmVyeUNvZGVzTGlzdElkXCJcbiAgICAgICAgICAgIFtrY0NsYXNzXT1cIidrY1JlY292ZXJ5Q29kZXNMaXN0J1wiXG4gICAgICAgID5cbiAgICAgICAgICAgIEBmb3IgKGNvZGUgb2YgcmVjb3ZlcnlBdXRobkNvZGVzQ29uZmlnQmVhbi5nZW5lcmF0ZWRSZWNvdmVyeUF1dGhuQ29kZXNMaXN0OyB0cmFjayBjb2RlOyBsZXQgaSA9ICRpbmRleCkge1xuICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgaSArIDEgfX06PC9zcGFuPiB7eyBjb2RlLnNsaWNlKDAsIDQpIH19LXt7IGNvZGUuc2xpY2UoNCwgOCkgfX0te3sgY29kZS5zbGljZSg4KSB9fVxuICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvb2w+XG5cbiAgICAgICAgPCEtLSBhY3Rpb25zIC0tPlxuICAgICAgICA8ZGl2IFtrY0NsYXNzXT1cIidrY1JlY292ZXJ5Q29kZXNBY3Rpb25zJ1wiPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIGlkPVwicHJpbnRSZWNvdmVyeUNvZGVzXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInBmLWMtYnV0dG9uIHBmLW0tbGlua1wiXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwZmljb24tcHJpbnRcIlxuICAgICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgICAgICAgID48L2k+XG4gICAgICAgICAgICAgICAge3sgJ3JlY292ZXJ5LWNvZGVzLXByaW50JyB8IG1zZ1N0ciB9fVxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgaWQ9XCJkb3dubG9hZFJlY292ZXJ5Q29kZXNcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwicGYtYy1idXR0b24gcGYtbS1saW5rXCJcbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInBmaWNvbi1zYXZlXCJcbiAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICA+PC9pPlxuICAgICAgICAgICAgICAgIHt7ICdyZWNvdmVyeS1jb2Rlcy1kb3dubG9hZCcgfCBtc2dTdHIgfX1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIGlkPVwiY29weVJlY292ZXJ5Q29kZXNcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwicGYtYy1idXR0b24gcGYtbS1saW5rXCJcbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInBmaWNvbi1ibHVlcHJpbnRcIlxuICAgICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgICAgICAgID48L2k+XG4gICAgICAgICAgICAgICAge3sgJ3JlY292ZXJ5LWNvZGVzLWNvcHknIHwgbXNnU3RyIH19XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPCEtLSBjb25maXJtYXRpb24gY2hlY2tib3ggLS0+XG5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgW2tjQ2xhc3NdPVwiJ2tjRm9ybU9wdGlvbnNDbGFzcydcIlxuICAgICAgICAgICAgY2xhc3M9XCJjaGVja2JveFwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJrY1JlY292ZXJ5Q29kZXNDb25maXJtYXRpb25DaGVja1wiPlxuICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICBba2NDbGFzc109XCIna2NDaGVja0lucHV0Q2xhc3MnXCJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICAgICAgICAgICAgaWQ9XCJrY1JlY292ZXJ5Q29kZXNDb25maXJtYXRpb25DaGVja1wiXG4gICAgICAgICAgICAgICAgICAgIG5hbWU9XCJrY1JlY292ZXJ5Q29kZXNDb25maXJtYXRpb25DaGVja1wiXG4gICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cInRvZ2dsZVJlY292ZXJ5Q29kZXNDb25maXJtYXRpb24oKVwiXG4gICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwidG9nZ2xlUmVjb3ZlcnlDb2Rlc0NvbmZpcm1hdGlvbi5zZXQoJGFueSgkZXZlbnQudGFyZ2V0KS5jaGVja2VkKVwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICB7eyAncmVjb3ZlcnktY29kZXMtY29uZmlybWF0aW9uLW1lc3NhZ2UnIHwgbXNnU3RyIH19XG4gICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8Zm9ybVxuICAgICAgICAgICAgW2FjdGlvbl09XCJrY0NvbnRleHQudXJsLmxvZ2luQWN0aW9uXCJcbiAgICAgICAgICAgIFtrY0NsYXNzXT1cIidrY0Zvcm1Hcm91cENsYXNzJ1wiXG4gICAgICAgICAgICBpZD1cImtjLXJlY292ZXJ5LWNvZGVzLXNldHRpbmdzLWZvcm1cIlxuICAgICAgICAgICAgbWV0aG9kPVwicG9zdFwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgIHR5cGU9XCJoaWRkZW5cIlxuICAgICAgICAgICAgICAgIG5hbWU9XCJnZW5lcmF0ZWRSZWNvdmVyeUF1dGhuQ29kZXNcIlxuICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJyZWNvdmVyeUF1dGhuQ29kZXNDb25maWdCZWFuLmdlbmVyYXRlZFJlY292ZXJ5QXV0aG5Db2Rlc0FzU3RyaW5nXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICB0eXBlPVwiaGlkZGVuXCJcbiAgICAgICAgICAgICAgICBuYW1lPVwiZ2VuZXJhdGVkQXRcIlxuICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJyZWNvdmVyeUF1dGhuQ29kZXNDb25maWdCZWFuLmdlbmVyYXRlZEF0XCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICB0eXBlPVwiaGlkZGVuXCJcbiAgICAgICAgICAgICAgICBpZD1cInVzZXJMYWJlbFwiXG4gICAgICAgICAgICAgICAgbmFtZT1cInVzZXJMYWJlbFwiXG4gICAgICAgICAgICAgICAgW3ZhbHVlXT1cIidyZWNvdmVyeS1jb2Rlcy1sYWJlbC1kZWZhdWx0JyB8IG1zZ1N0clwiXG4gICAgICAgICAgICAvPlxuXG4gICAgICAgICAgICA8a2MtbG9nb3V0LW90aGVyLXNlc3Npb25zPjwva2MtbG9nb3V0LW90aGVyLXNlc3Npb25zPlxuXG4gICAgICAgICAgICBAaWYgKGlzQXBwSW5pdGlhdGVkQWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICAgICAgICAgICAgICBba2NDbGFzc109XCJbJ2tjQnV0dG9uQ2xhc3MnLCAna2NCdXR0b25QcmltYXJ5Q2xhc3MnLCAna2NCdXR0b25MYXJnZUNsYXNzJ11cIlxuICAgICAgICAgICAgICAgICAgICBpZD1cInNhdmVSZWNvdmVyeUF1dGhuQ29kZXNCdG5cIlxuICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiJ3JlY292ZXJ5LWNvZGVzLWFjdGlvbi1jb21wbGV0ZScgfCBtc2dTdHJcIlxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIXRvZ2dsZVJlY292ZXJ5Q29kZXNDb25maXJtYXRpb24oKVwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICAgICAgICAgICAgICBba2NDbGFzc109XCJbJ2tjQnV0dG9uQ2xhc3MnLCAna2NCdXR0b25EZWZhdWx0Q2xhc3MnLCAna2NCdXR0b25MYXJnZUNsYXNzJ11cIlxuICAgICAgICAgICAgICAgICAgICBpZD1cImNhbmNlbFJlY292ZXJ5QXV0aG5Db2Rlc0J0blwiXG4gICAgICAgICAgICAgICAgICAgIG5hbWU9XCJjYW5jZWwtYWlhXCJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU9XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHt7ICdyZWNvdmVyeS1jb2Rlcy1hY3Rpb24tY2FuY2VsJyB8IG1zZ1N0ciB9fVxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICAgICAgICAgICAgICBba2NDbGFzc109XCJbJ2tjQnV0dG9uQ2xhc3MnLCAna2NCdXR0b25QcmltYXJ5Q2xhc3MnLCAna2NCdXR0b25CbG9ja0NsYXNzJywgJ2tjQnV0dG9uTGFyZ2VDbGFzcyddXCJcbiAgICAgICAgICAgICAgICAgICAgaWQ9XCJzYXZlUmVjb3ZlcnlBdXRobkNvZGVzQnRuXCJcbiAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cIidyZWNvdmVyeS1jb2Rlcy1hY3Rpb24tY29tcGxldGUnIHwgbXNnU3RyXCJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiF0b2dnbGVSZWNvdmVyeUNvZGVzQ29uZmlybWF0aW9uKClcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZm9ybT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbjwva2MtbG9naW4tdGVtcGxhdGU+XG4iXX0=
@@ -1,6 +1,7 @@
1
- import { ClassKey } from "keycloakify/login/lib/kcClsx";
2
- import { KcContext } from "keycloakify/login/KcContext";
3
- import { ComponentReference } from "../../../login/classes/component-reference.class";
1
+ import { ClassKey } from 'keycloakify/login/lib/kcClsx';
2
+ import { KcContext } from 'keycloakify/login/KcContext';
3
+ import { ComponentReference } from '../../../login/classes/component-reference.class';
4
+ import * as i0 from "@angular/core";
4
5
  export declare class LoginRecoveryAuthnCodeInputComponent extends ComponentReference {
5
6
  kcContext: KcContext.LoginRecoveryAuthnCodeInput;
6
7
  doUseDefaultCss: boolean;
@@ -10,4 +11,6 @@ export declare class LoginRecoveryAuthnCodeInputComponent extends ComponentRefer
10
11
  bodyClassName: import("@angular/core").InputSignal<string | undefined>;
11
12
  displayInfo: boolean;
12
13
  displayMessage: boolean;
14
+ static ɵfac: i0.ɵɵFactoryDeclaration<LoginRecoveryAuthnCodeInputComponent, never>;
15
+ static ɵcmp: i0.ɵɵComponentDeclaration<LoginRecoveryAuthnCodeInputComponent, "kc-root", never, { "displayRequiredFields": { "alias": "displayRequiredFields"; "required": false; "isSignal": true; }; "documentTitle": { "alias": "documentTitle"; "required": false; "isSignal": true; }; "bodyClassName": { "alias": "bodyClassName"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
13
16
  }
@@ -0,0 +1,38 @@
1
+ import { ChangeDetectionStrategy, Component, forwardRef, inject, input } from '@angular/core';
2
+ import { CLASSES, KC_CONTEXT, USE_DEFAULT_CSS } from '../../../lib/public-api';
3
+ import { ComponentReference } from '../../../login/classes/component-reference.class';
4
+ import { TemplateComponent } from '../../../login/containers/template.component';
5
+ import { KcClassDirective } from '../../../login/directives';
6
+ import { KcSanitizePipe } from '../../../login/pipes/kc-sanitize.pipe';
7
+ import { MsgStrPipe } from '../../../login/pipes/msg-str.pipe';
8
+ import * as i0 from "@angular/core";
9
+ export class LoginRecoveryAuthnCodeInputComponent extends ComponentReference {
10
+ constructor() {
11
+ super(...arguments);
12
+ this.kcContext = inject(KC_CONTEXT);
13
+ this.doUseDefaultCss = inject(USE_DEFAULT_CSS);
14
+ this.classes = inject(CLASSES);
15
+ this.displayRequiredFields = input(false);
16
+ this.documentTitle = input();
17
+ this.bodyClassName = input();
18
+ this.displayInfo = false;
19
+ this.displayMessage = this.kcContext.messagesPerField.existsError('recoveryCodeInput');
20
+ }
21
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: LoginRecoveryAuthnCodeInputComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
22
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.6", type: LoginRecoveryAuthnCodeInputComponent, 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: [
23
+ {
24
+ provide: ComponentReference,
25
+ useExisting: forwardRef(() => LoginRecoveryAuthnCodeInputComponent)
26
+ }
27
+ ], usesInheritance: true, ngImport: i0, template: "@let url = kcContext.url;\n@let recoveryAuthnCodesInputBean = kcContext.recoveryAuthnCodesInputBean;\n@let messagesPerField = kcContext.messagesPerField;\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 {{ 'auth-recovery-code-header' | msgStr }}\n </ng-container>\n\n <ng-container content>\n <form\n id=\"kc-recovery-code-login-form\"\n [kcClass]=\"'kcFormClass'\"\n [action]=\"url.loginAction\"\n method=\"post\"\n >\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div [kcClass]=\"'kcLabelWrapperClass'\">\n <label\n for=\"recoveryCodeInput\"\n [kcClass]=\"'kcLabelClass'\"\n >\n {{ 'auth-recovery-code-prompt' | msgStr: recoveryAuthnCodesInputBean.codeNumber.toString() }}\n </label>\n </div>\n <div [kcClass]=\"'kcInputWrapperClass'\">\n <input\n tabIndex=\"1\"\n id=\"recoveryCodeInput\"\n name=\"recoveryCodeInput\"\n [attr.aria-invalid]=\"messagesPerField.existsError('recoveryCodeInput')\"\n autoComplete=\"off\"\n type=\"text\"\n [kcClass]=\"'kcInputClass'\"\n autoFocus\n />\n @if (messagesPerField.existsError('recoveryCodeInput')) {\n <span\n id=\"input-error\"\n [kcClass]=\"'kcInputErrorMessageClass'\"\n aria-live=\"polite\"\n [innerHTML]=\"messagesPerField.get('recoveryCodeInput') | kcSanitize: 'html'\"\n ></span>\n }\n </div>\n </div>\n\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div\n id=\"kc-form-options\"\n [kcClass]=\"'kcFormOptionsWrapperClass'\"\n >\n <div [kcClass]=\"'kcFormOptionsWrapperClass'\"></div>\n </div>\n <div\n id=\"kc-form-buttons\"\n [kcClass]=\"'kcFormButtonsClass'\"\n >\n <input\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n name=\"login\"\n id=\"kc-login\"\n type=\"submit\"\n [value]=\"'doLogIn' | msgStr\"\n />\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: "pipe", type: MsgStrPipe, name: "msgStr" }, { kind: "directive", type: KcClassDirective, selector: "[kcClass]", inputs: ["class", "ngClass", "kcClass"] }, { kind: "pipe", type: KcSanitizePipe, name: "kcSanitize" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
28
+ }
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: LoginRecoveryAuthnCodeInputComponent, decorators: [{
30
+ type: Component,
31
+ args: [{ standalone: true, imports: [TemplateComponent, MsgStrPipe, KcClassDirective, KcSanitizePipe], selector: 'kc-root', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
32
+ {
33
+ provide: ComponentReference,
34
+ useExisting: forwardRef(() => LoginRecoveryAuthnCodeInputComponent)
35
+ }
36
+ ], template: "@let url = kcContext.url;\n@let recoveryAuthnCodesInputBean = kcContext.recoveryAuthnCodesInputBean;\n@let messagesPerField = kcContext.messagesPerField;\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 {{ 'auth-recovery-code-header' | msgStr }}\n </ng-container>\n\n <ng-container content>\n <form\n id=\"kc-recovery-code-login-form\"\n [kcClass]=\"'kcFormClass'\"\n [action]=\"url.loginAction\"\n method=\"post\"\n >\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div [kcClass]=\"'kcLabelWrapperClass'\">\n <label\n for=\"recoveryCodeInput\"\n [kcClass]=\"'kcLabelClass'\"\n >\n {{ 'auth-recovery-code-prompt' | msgStr: recoveryAuthnCodesInputBean.codeNumber.toString() }}\n </label>\n </div>\n <div [kcClass]=\"'kcInputWrapperClass'\">\n <input\n tabIndex=\"1\"\n id=\"recoveryCodeInput\"\n name=\"recoveryCodeInput\"\n [attr.aria-invalid]=\"messagesPerField.existsError('recoveryCodeInput')\"\n autoComplete=\"off\"\n type=\"text\"\n [kcClass]=\"'kcInputClass'\"\n autoFocus\n />\n @if (messagesPerField.existsError('recoveryCodeInput')) {\n <span\n id=\"input-error\"\n [kcClass]=\"'kcInputErrorMessageClass'\"\n aria-live=\"polite\"\n [innerHTML]=\"messagesPerField.get('recoveryCodeInput') | kcSanitize: 'html'\"\n ></span>\n }\n </div>\n </div>\n\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div\n id=\"kc-form-options\"\n [kcClass]=\"'kcFormOptionsWrapperClass'\"\n >\n <div [kcClass]=\"'kcFormOptionsWrapperClass'\"></div>\n </div>\n <div\n id=\"kc-form-buttons\"\n [kcClass]=\"'kcFormButtonsClass'\"\n >\n <input\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n name=\"login\"\n id=\"kc-login\"\n type=\"submit\"\n [value]=\"'doLogIn' | msgStr\"\n />\n </div>\n </div>\n </form>\n </ng-container>\n</kc-login-template>\n" }]
37
+ }] });
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4tcmVjb3ZlcnktYXV0aG4tY29kZS1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rZXljbG9ha2lmeS1hbmd1bGFyL3NyYy9sb2dpbi9wYWdlcy9sb2dpbi1yZWNvdmVyeS1hdXRobi1jb2RlLWlucHV0L2xvZ2luLXJlY292ZXJ5LWF1dGhuLWNvZGUtaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2V5Y2xvYWtpZnktYW5ndWxhci9zcmMvbG9naW4vcGFnZXMvbG9naW4tcmVjb3ZlcnktYXV0aG4tY29kZS1pbnB1dC9sb2dpbi1yZWNvdmVyeS1hdXRobi1jb2RlLWlucHV0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUYsT0FBTyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFHM0YsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOERBQThELENBQUM7QUFDbEcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMERBQTBELENBQUM7QUFDN0YsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDekUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQ25GLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQzs7QUFlM0UsTUFBTSxPQUFPLG9DQUFxQyxTQUFRLGtCQUFrQjtJQWI1RTs7UUFjSSxjQUFTLEdBQUcsTUFBTSxDQUF3RSxVQUFVLENBQUMsQ0FBQztRQUM3RixvQkFBZSxHQUFHLE1BQU0sQ0FBVSxlQUFlLENBQUMsQ0FBQztRQUNuRCxZQUFPLEdBQUcsTUFBTSxDQUFvQyxPQUFPLENBQUMsQ0FBQztRQUN0RSwwQkFBcUIsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckMsa0JBQWEsR0FBRyxLQUFLLEVBQVUsQ0FBQztRQUNoQyxrQkFBYSxHQUFHLEtBQUssRUFBVSxDQUFDO1FBQ2hDLGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBQzdCLG1CQUFjLEdBQVksSUFBSSxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsbUJBQW1CLENBQUMsQ0FBQztLQUM5Rjs4R0FUWSxvQ0FBb0M7a0dBQXBDLG9DQUFvQywwZ0JBUGxDO1lBQ1A7Z0JBQ0ksT0FBTyxFQUFFLGtCQUFrQjtnQkFDM0IsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxvQ0FBb0MsQ0FBQzthQUN0RTtTQUNKLGlEQ3JCTCwrL0ZBNEVBLDRDRGhFYyxpQkFBaUIsK0pBQUUsVUFBVSwrQ0FBRSxnQkFBZ0IsMEZBQUUsY0FBYzs7MkZBV2hFLG9DQUFvQztrQkFiaEQsU0FBUztpQ0FDTSxJQUFJLFdBQ1AsQ0FBQyxpQkFBaUIsRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsY0FBYyxDQUFDLFlBQ2hFLFNBQVMsbUJBRUYsdUJBQXVCLENBQUMsTUFBTSxhQUNwQzt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsa0JBQWtCOzRCQUMzQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxxQ0FBcUMsQ0FBQzt5QkFDdEU7cUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBmb3J3YXJkUmVmLCBpbmplY3QsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDTEFTU0VTLCBLQ19DT05URVhULCBVU0VfREVGQVVMVF9DU1MgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9saWIvcHVibGljLWFwaSc7XG5pbXBvcnQgeyBDbGFzc0tleSB9IGZyb20gJ2tleWNsb2FraWZ5L2xvZ2luL2xpYi9rY0Nsc3gnO1xuaW1wb3J0IHsgS2NDb250ZXh0IH0gZnJvbSAna2V5Y2xvYWtpZnkvbG9naW4vS2NDb250ZXh0JztcbmltcG9ydCB7IENvbXBvbmVudFJlZmVyZW5jZSB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL2NsYXNzZXMvY29tcG9uZW50LXJlZmVyZW5jZS5jbGFzcyc7XG5pbXBvcnQgeyBUZW1wbGF0ZUNvbXBvbmVudCB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL2NvbnRhaW5lcnMvdGVtcGxhdGUuY29tcG9uZW50JztcbmltcG9ydCB7IEtjQ2xhc3NEaXJlY3RpdmUgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9kaXJlY3RpdmVzJztcbmltcG9ydCB7IEtjU2FuaXRpemVQaXBlIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vcGlwZXMva2Mtc2FuaXRpemUucGlwZSc7XG5pbXBvcnQgeyBNc2dTdHJQaXBlIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vcGlwZXMvbXNnLXN0ci5waXBlJztcblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbVGVtcGxhdGVDb21wb25lbnQsIE1zZ1N0clBpcGUsIEtjQ2xhc3NEaXJlY3RpdmUsIEtjU2FuaXRpemVQaXBlXSxcbiAgICBzZWxlY3RvcjogJ2tjLXJvb3QnLFxuICAgIHRlbXBsYXRlVXJsOiAnbG9naW4tcmVjb3ZlcnktYXV0aG4tY29kZS1pbnB1dC5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IENvbXBvbmVudFJlZmVyZW5jZSxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IExvZ2luUmVjb3ZlcnlBdXRobkNvZGVJbnB1dENvbXBvbmVudClcbiAgICAgICAgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgTG9naW5SZWNvdmVyeUF1dGhuQ29kZUlucHV0Q29tcG9uZW50IGV4dGVuZHMgQ29tcG9uZW50UmVmZXJlbmNlIHtcbiAgICBrY0NvbnRleHQgPSBpbmplY3Q8RXh0cmFjdDxLY0NvbnRleHQsIHsgcGFnZUlkOiAnbG9naW4tcmVjb3ZlcnktYXV0aG4tY29kZS1pbnB1dC5mdGwnIH0+PihLQ19DT05URVhUKTtcbiAgICBvdmVycmlkZSBkb1VzZURlZmF1bHRDc3MgPSBpbmplY3Q8Ym9vbGVhbj4oVVNFX0RFRkFVTFRfQ1NTKTtcbiAgICBvdmVycmlkZSBjbGFzc2VzID0gaW5qZWN0PFBhcnRpYWw8UmVjb3JkPENsYXNzS2V5LCBzdHJpbmc+Pj4oQ0xBU1NFUyk7XG4gICAgZGlzcGxheVJlcXVpcmVkRmllbGRzID0gaW5wdXQoZmFsc2UpO1xuICAgIGRvY3VtZW50VGl0bGUgPSBpbnB1dDxzdHJpbmc+KCk7XG4gICAgYm9keUNsYXNzTmFtZSA9IGlucHV0PHN0cmluZz4oKTtcbiAgICBkaXNwbGF5SW5mbzogYm9vbGVhbiA9IGZhbHNlO1xuICAgIGRpc3BsYXlNZXNzYWdlOiBib29sZWFuID0gdGhpcy5rY0NvbnRleHQubWVzc2FnZXNQZXJGaWVsZC5leGlzdHNFcnJvcigncmVjb3ZlcnlDb2RlSW5wdXQnKTtcbn1cbiIsIkBsZXQgdXJsID0ga2NDb250ZXh0LnVybDtcbkBsZXQgcmVjb3ZlcnlBdXRobkNvZGVzSW5wdXRCZWFuID0ga2NDb250ZXh0LnJlY292ZXJ5QXV0aG5Db2Rlc0lucHV0QmVhbjtcbkBsZXQgbWVzc2FnZXNQZXJGaWVsZCA9IGtjQ29udGV4dC5tZXNzYWdlc1BlckZpZWxkO1xuXG48a2MtbG9naW4tdGVtcGxhdGVcbiAgICBbZGlzcGxheUluZm9dPVwiZGlzcGxheUluZm9cIlxuICAgIFtib2R5Q2xhc3NOYW1lXT1cImJvZHlDbGFzc05hbWUoKVwiXG4gICAgW2Rpc3BsYXlNZXNzYWdlXT1cImRpc3BsYXlNZXNzYWdlXCJcbiAgICBbZGlzcGxheVJlcXVpcmVkRmllbGRzXT1cImRpc3BsYXlSZXF1aXJlZEZpZWxkcygpXCJcbiAgICBbZG9jdW1lbnRUaXRsZV09XCJkb2N1bWVudFRpdGxlKClcIlxuPlxuICAgIDxuZy1jb250YWluZXIgaGVhZGVyTm9kZT5cbiAgICAgICAge3sgJ2F1dGgtcmVjb3ZlcnktY29kZS1oZWFkZXInIHwgbXNnU3RyIH19XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctY29udGFpbmVyIGNvbnRlbnQ+XG4gICAgICAgIDxmb3JtXG4gICAgICAgICAgICBpZD1cImtjLXJlY292ZXJ5LWNvZGUtbG9naW4tZm9ybVwiXG4gICAgICAgICAgICBba2NDbGFzc109XCIna2NGb3JtQ2xhc3MnXCJcbiAgICAgICAgICAgIFthY3Rpb25dPVwidXJsLmxvZ2luQWN0aW9uXCJcbiAgICAgICAgICAgIG1ldGhvZD1cInBvc3RcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2IFtrY0NsYXNzXT1cIidrY0Zvcm1Hcm91cENsYXNzJ1wiPlxuICAgICAgICAgICAgICAgIDxkaXYgW2tjQ2xhc3NdPVwiJ2tjTGFiZWxXcmFwcGVyQ2xhc3MnXCI+XG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgICAgICAgICAgICAgZm9yPVwicmVjb3ZlcnlDb2RlSW5wdXRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2tjQ2xhc3NdPVwiJ2tjTGFiZWxDbGFzcydcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyAnYXV0aC1yZWNvdmVyeS1jb2RlLXByb21wdCcgfCBtc2dTdHI6IHJlY292ZXJ5QXV0aG5Db2Rlc0lucHV0QmVhbi5jb2RlTnVtYmVyLnRvU3RyaW5nKCkgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IFtrY0NsYXNzXT1cIidrY0lucHV0V3JhcHBlckNsYXNzJ1wiPlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhYkluZGV4PVwiMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cInJlY292ZXJ5Q29kZUlucHV0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJyZWNvdmVyeUNvZGVJbnB1dFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWludmFsaWRdPVwibWVzc2FnZXNQZXJGaWVsZC5leGlzdHNFcnJvcigncmVjb3ZlcnlDb2RlSW5wdXQnKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBhdXRvQ29tcGxldGU9XCJvZmZcIlxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2tjQ2xhc3NdPVwiJ2tjSW5wdXRDbGFzcydcIlxuICAgICAgICAgICAgICAgICAgICAgICAgYXV0b0ZvY3VzXG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIEBpZiAobWVzc2FnZXNQZXJGaWVsZC5leGlzdHNFcnJvcigncmVjb3ZlcnlDb2RlSW5wdXQnKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cImlucHV0LWVycm9yXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBba2NDbGFzc109XCIna2NJbnB1dEVycm9yTWVzc2FnZUNsYXNzJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1saXZlPVwicG9saXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cIm1lc3NhZ2VzUGVyRmllbGQuZ2V0KCdyZWNvdmVyeUNvZGVJbnB1dCcpIHwga2NTYW5pdGl6ZTogJ2h0bWwnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2IFtrY0NsYXNzXT1cIidrY0Zvcm1Hcm91cENsYXNzJ1wiPlxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgaWQ9XCJrYy1mb3JtLW9wdGlvbnNcIlxuICAgICAgICAgICAgICAgICAgICBba2NDbGFzc109XCIna2NGb3JtT3B0aW9uc1dyYXBwZXJDbGFzcydcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBba2NDbGFzc109XCIna2NGb3JtT3B0aW9uc1dyYXBwZXJDbGFzcydcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIGlkPVwia2MtZm9ybS1idXR0b25zXCJcbiAgICAgICAgICAgICAgICAgICAgW2tjQ2xhc3NdPVwiJ2tjRm9ybUJ1dHRvbnNDbGFzcydcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICBba2NDbGFzc109XCJbJ2tjQnV0dG9uQ2xhc3MnLCAna2NCdXR0b25QcmltYXJ5Q2xhc3MnLCAna2NCdXR0b25CbG9ja0NsYXNzJywgJ2tjQnV0dG9uTGFyZ2VDbGFzcyddXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJsb2dpblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImtjLWxvZ2luXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cIidkb0xvZ0luJyB8IG1zZ1N0clwiXG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9mb3JtPlxuICAgIDwvbmctY29udGFpbmVyPlxuPC9rYy1sb2dpbi10ZW1wbGF0ZT5cbiJdfQ==
@@ -1,6 +1,7 @@
1
- import { ClassKey } from "keycloakify/login/lib/kcClsx";
2
- import { KcContext } from "keycloakify/login/KcContext";
3
- import { ComponentReference } from "../../../login/classes/component-reference.class";
1
+ import { ClassKey } from 'keycloakify/login/lib/kcClsx';
2
+ import { KcContext } from 'keycloakify/login/KcContext';
3
+ import { ComponentReference } from '../../../login/classes/component-reference.class';
4
+ import * as i0 from "@angular/core";
4
5
  export declare class LoginResetOtpComponent extends ComponentReference {
5
6
  kcContext: KcContext.LoginResetOtp;
6
7
  doUseDefaultCss: boolean;
@@ -10,4 +11,6 @@ export declare class LoginResetOtpComponent extends ComponentReference {
10
11
  bodyClassName: import("@angular/core").InputSignal<string | undefined>;
11
12
  displayInfo: boolean;
12
13
  displayMessage: boolean;
14
+ static ɵfac: i0.ɵɵFactoryDeclaration<LoginResetOtpComponent, never>;
15
+ static ɵcmp: i0.ɵɵComponentDeclaration<LoginResetOtpComponent, "kc-root", never, { "displayRequiredFields": { "alias": "displayRequiredFields"; "required": false; "isSignal": true; }; "documentTitle": { "alias": "documentTitle"; "required": false; "isSignal": true; }; "bodyClassName": { "alias": "bodyClassName"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
13
16
  }