@keycloakify/angular 0.0.1-rc.2 → 0.0.1-rc.21

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 (983) hide show
  1. package/README.md +76 -1
  2. package/account/DefaultPage/DefaultPage.d.ts +38 -0
  3. package/account/DefaultPage/index.d.ts +5 -0
  4. package/account/DefaultPage/public-api.d.ts +1 -0
  5. package/account/KcContext/KcContext.d.ts +1 -0
  6. package/account/KcContext/index.d.ts +5 -0
  7. package/account/KcContext/public-api.d.ts +1 -0
  8. package/account/classes/component-reference/component-reference.class.d.ts +6 -0
  9. package/account/classes/component-reference/index.d.ts +5 -0
  10. package/account/classes/component-reference/public-api.d.ts +1 -0
  11. package/account/containers/template/index.d.ts +5 -0
  12. package/account/containers/template/public-api.d.ts +1 -0
  13. package/account/containers/template/template.component.d.ts +39 -0
  14. package/account/directives/kc-class/index.d.ts +5 -0
  15. package/{login/directives → account/directives/kc-class}/kc-class.directive.d.ts +1 -1
  16. package/account/directives/kc-class/public-api.d.ts +1 -0
  17. package/account/i18n/i18n.d.ts +4 -0
  18. package/account/i18n/index.d.ts +5 -0
  19. package/account/i18n/public-api.d.ts +1 -0
  20. package/account/pages/account/account.component.d.ts +15 -0
  21. package/account/pages/account/index.d.ts +5 -0
  22. package/account/pages/account/public-api.d.ts +1 -0
  23. package/account/pages/applications/applications.component.d.ts +14 -0
  24. package/account/pages/applications/index.d.ts +5 -0
  25. package/account/pages/applications/public-api.d.ts +1 -0
  26. package/account/pages/federatedIdentity/federatedIdentity.component.d.ts +14 -0
  27. package/account/pages/federatedIdentity/index.d.ts +5 -0
  28. package/account/pages/federatedIdentity/public-api.d.ts +1 -0
  29. package/account/pages/log/index.d.ts +5 -0
  30. package/account/pages/log/log.component.d.ts +14 -0
  31. package/account/pages/log/public-api.d.ts +1 -0
  32. package/account/pages/password/index.d.ts +5 -0
  33. package/account/pages/password/password.component.d.ts +29 -0
  34. package/account/pages/password/public-api.d.ts +1 -0
  35. package/account/pages/sessions/index.d.ts +5 -0
  36. package/account/pages/sessions/public-api.d.ts +1 -0
  37. package/account/pages/sessions/sessions.component.d.ts +14 -0
  38. package/account/pages/totp/index.d.ts +5 -0
  39. package/account/pages/totp/public-api.d.ts +1 -0
  40. package/account/pages/totp/totp.component.d.ts +14 -0
  41. package/account/providers/keycloakify-angular/index.d.ts +5 -0
  42. package/account/providers/keycloakify-angular/keycloakify-angular.providers.d.ts +15 -0
  43. package/account/providers/keycloakify-angular/public-api.d.ts +1 -0
  44. package/account/services/account-resource-injector/account-resource-injector.service.d.ts +10 -0
  45. package/account/services/account-resource-injector/index.d.ts +5 -0
  46. package/account/services/account-resource-injector/public-api.d.ts +1 -0
  47. package/account/services/i18n/i18n.service.d.ts +6 -0
  48. package/account/services/i18n/index.d.ts +5 -0
  49. package/account/services/i18n/public-api.d.ts +1 -0
  50. package/account/tokens/classes/classes.token.d.ts +16 -0
  51. package/account/tokens/classes/index.d.ts +5 -0
  52. package/account/tokens/classes/public-api.d.ts +1 -0
  53. package/account/tokens/i18n/i18n.token.d.ts +2 -0
  54. package/account/tokens/i18n/index.d.ts +5 -0
  55. package/account/tokens/i18n/public-api.d.ts +1 -0
  56. package/account/tokens/kc-context/index.d.ts +5 -0
  57. package/account/tokens/kc-context/kc-context.token.d.ts +3 -0
  58. package/account/tokens/kc-context/public-api.d.ts +1 -0
  59. package/bin/main.js +224 -0
  60. package/esm2022/account/DefaultPage/DefaultPage.mjs +34 -0
  61. package/esm2022/account/DefaultPage/keycloakify-angular-account-DefaultPage.mjs +5 -0
  62. package/esm2022/account/DefaultPage/public-api.mjs +2 -0
  63. package/esm2022/account/KcContext/KcContext.mjs +2 -0
  64. package/esm2022/account/KcContext/keycloakify-angular-account-KcContext.mjs +5 -0
  65. package/esm2022/account/KcContext/public-api.mjs +2 -0
  66. package/esm2022/account/classes/component-reference/component-reference.class.mjs +3 -0
  67. package/esm2022/account/classes/component-reference/keycloakify-angular-account-classes-component-reference.mjs +5 -0
  68. package/esm2022/account/classes/component-reference/public-api.mjs +2 -0
  69. package/esm2022/account/containers/template/keycloakify-angular-account-containers-template.mjs +5 -0
  70. package/esm2022/account/containers/template/public-api.mjs +2 -0
  71. package/esm2022/account/containers/template/template.component.mjs +99 -0
  72. package/esm2022/account/directives/kc-class/kc-class.directive.mjs +141 -0
  73. package/esm2022/account/directives/kc-class/keycloakify-angular-account-directives-kc-class.mjs +5 -0
  74. package/esm2022/account/directives/kc-class/public-api.mjs +2 -0
  75. package/esm2022/account/i18n/i18n.mjs +2 -0
  76. package/esm2022/account/i18n/keycloakify-angular-account-i18n.mjs +5 -0
  77. package/esm2022/account/i18n/public-api.mjs +2 -0
  78. package/esm2022/account/pages/account/account.component.mjs +40 -0
  79. package/esm2022/account/pages/account/keycloakify-angular-account-pages-account.mjs +5 -0
  80. package/esm2022/account/pages/account/public-api.mjs +2 -0
  81. package/esm2022/account/pages/applications/applications.component.mjs +38 -0
  82. package/esm2022/account/pages/applications/keycloakify-angular-account-pages-applications.mjs +5 -0
  83. package/esm2022/account/pages/applications/public-api.mjs +2 -0
  84. package/esm2022/account/pages/federatedIdentity/federatedIdentity.component.mjs +37 -0
  85. package/esm2022/account/pages/federatedIdentity/keycloakify-angular-account-pages-federatedIdentity.mjs +5 -0
  86. package/esm2022/account/pages/federatedIdentity/public-api.mjs +2 -0
  87. package/esm2022/account/pages/log/keycloakify-angular-account-pages-log.mjs +5 -0
  88. package/esm2022/account/pages/log/log.component.mjs +37 -0
  89. package/esm2022/account/pages/log/public-api.mjs +2 -0
  90. package/esm2022/account/pages/password/keycloakify-angular-account-pages-password.mjs +5 -0
  91. package/esm2022/account/pages/password/password.component.mjs +109 -0
  92. package/esm2022/account/pages/password/public-api.mjs +2 -0
  93. package/esm2022/account/pages/sessions/keycloakify-angular-account-pages-sessions.mjs +5 -0
  94. package/esm2022/account/pages/sessions/public-api.mjs +2 -0
  95. package/esm2022/account/pages/sessions/sessions.component.mjs +37 -0
  96. package/esm2022/account/pages/totp/keycloakify-angular-account-pages-totp.mjs +5 -0
  97. package/esm2022/account/pages/totp/public-api.mjs +2 -0
  98. package/esm2022/account/pages/totp/totp.component.mjs +38 -0
  99. package/esm2022/account/providers/keycloakify-angular/keycloakify-angular-account-providers-keycloakify-angular.mjs +5 -0
  100. package/esm2022/account/providers/keycloakify-angular/keycloakify-angular.providers.mjs +49 -0
  101. package/esm2022/account/providers/keycloakify-angular/public-api.mjs +2 -0
  102. package/esm2022/account/services/account-resource-injector/account-resource-injector.service.mjs +37 -0
  103. package/esm2022/account/services/account-resource-injector/keycloakify-angular-account-services-account-resource-injector.mjs +5 -0
  104. package/esm2022/account/services/account-resource-injector/public-api.mjs +2 -0
  105. package/esm2022/account/services/i18n/i18n.service.mjs +12 -0
  106. package/esm2022/account/services/i18n/keycloakify-angular-account-services-i18n.mjs +5 -0
  107. package/esm2022/account/services/i18n/public-api.mjs +2 -0
  108. package/esm2022/account/tokens/classes/classes.token.mjs +3 -0
  109. package/esm2022/account/tokens/classes/keycloakify-angular-account-tokens-classes.mjs +5 -0
  110. package/esm2022/account/tokens/classes/public-api.mjs +2 -0
  111. package/esm2022/account/tokens/i18n/i18n.token.mjs +3 -0
  112. package/esm2022/account/tokens/i18n/keycloakify-angular-account-tokens-i18n.mjs +5 -0
  113. package/esm2022/account/tokens/i18n/public-api.mjs +2 -0
  114. package/esm2022/account/tokens/kc-context/kc-context.token.mjs +3 -0
  115. package/esm2022/account/tokens/kc-context/keycloakify-angular-account-tokens-kc-context.mjs +5 -0
  116. package/esm2022/account/tokens/kc-context/public-api.mjs +2 -0
  117. package/esm2022/keycloakify-angular.mjs +5 -0
  118. package/esm2022/lib/directives/attributes/attributes.directive.mjs +26 -0
  119. package/esm2022/lib/directives/attributes/keycloakify-angular-lib-directives-attributes.mjs +5 -0
  120. package/esm2022/lib/directives/attributes/public-api.mjs +2 -0
  121. package/esm2022/lib/keycloakify-angular-lib.mjs +5 -0
  122. package/esm2022/lib/models/script/keycloakify-angular-lib-models-script.mjs +5 -0
  123. package/esm2022/lib/models/script/public-api.mjs +2 -0
  124. package/esm2022/lib/models/script/script.model.mjs +2 -0
  125. package/esm2022/lib/pipes/input-type/input-type.pipe.mjs +20 -0
  126. package/esm2022/lib/pipes/input-type/keycloakify-angular-lib-pipes-input-type.mjs +5 -0
  127. package/esm2022/lib/pipes/input-type/public-api.mjs +2 -0
  128. package/esm2022/lib/pipes/is-array-with-empty-object/is-array-with-empty-object.pipe.mjs +20 -0
  129. package/esm2022/lib/pipes/is-array-with-empty-object/keycloakify-angular-lib-pipes-is-array-with-empty-object.mjs +5 -0
  130. package/esm2022/lib/pipes/is-array-with-empty-object/public-api.mjs +2 -0
  131. package/esm2022/lib/pipes/kc-sanitize/kc-sanitize.pipe.mjs +29 -0
  132. package/esm2022/lib/pipes/kc-sanitize/keycloakify-angular-lib-pipes-kc-sanitize.mjs +5 -0
  133. package/esm2022/lib/pipes/kc-sanitize/public-api.mjs +2 -0
  134. package/esm2022/lib/pipes/to-array/keycloakify-angular-lib-pipes-to-array.mjs +5 -0
  135. package/esm2022/lib/pipes/to-array/public-api.mjs +2 -0
  136. package/esm2022/lib/pipes/to-array/to-array.pipe.mjs +21 -0
  137. package/esm2022/lib/pipes/to-number/keycloakify-angular-lib-pipes-to-number.mjs +5 -0
  138. package/esm2022/lib/pipes/to-number/public-api.mjs +2 -0
  139. package/esm2022/lib/pipes/to-number/to-number.pipe.mjs +20 -0
  140. package/esm2022/lib/public-api.mjs +2 -0
  141. package/esm2022/lib/services/resource-injector/keycloakify-angular-lib-services-resource-injector.mjs +5 -0
  142. package/esm2022/lib/services/resource-injector/public-api.mjs +2 -0
  143. package/esm2022/lib/services/resource-injector/resource-injector.service.mjs +54 -0
  144. package/esm2022/lib/tokens/use-default-css/keycloakify-angular-lib-tokens-use-default-css.mjs +5 -0
  145. package/esm2022/lib/tokens/use-default-css/public-api.mjs +2 -0
  146. package/esm2022/lib/tokens/use-default-css/use-default-css.token.mjs +3 -0
  147. package/esm2022/login/KcContext/KcContext.mjs +2 -0
  148. package/esm2022/login/KcContext/keycloakify-angular-login-KcContext.mjs +5 -0
  149. package/esm2022/login/KcContext/public-api.mjs +2 -0
  150. package/esm2022/login/classes/component-reference/component-reference.class.mjs +3 -0
  151. package/esm2022/login/classes/component-reference/keycloakify-angular-login-classes-component-reference.mjs +5 -0
  152. package/esm2022/login/classes/component-reference/public-api.mjs +2 -0
  153. package/esm2022/login/components/add-remove-buttons-multi-valued-attribute/add-remove-buttons-multi-valued-attribute.component.mjs +106 -0
  154. package/esm2022/login/components/add-remove-buttons-multi-valued-attribute/keycloakify-angular-login-components-add-remove-buttons-multi-valued-attribute.mjs +5 -0
  155. package/esm2022/login/components/add-remove-buttons-multi-valued-attribute/public-api.mjs +2 -0
  156. package/esm2022/login/components/field-errors/field-errors.component.mjs +33 -0
  157. package/esm2022/login/components/field-errors/keycloakify-angular-login-components-field-errors.mjs +5 -0
  158. package/esm2022/login/components/field-errors/public-api.mjs +2 -0
  159. package/esm2022/login/components/group-label/group-label.component.mjs +43 -0
  160. package/esm2022/login/components/group-label/keycloakify-angular-login-components-group-label.mjs +5 -0
  161. package/esm2022/login/components/group-label/public-api.mjs +2 -0
  162. package/esm2022/login/components/input-field-by-type/input-field-by-type.component.mjs +46 -0
  163. package/esm2022/login/components/input-field-by-type/keycloakify-angular-login-components-input-field-by-type.mjs +5 -0
  164. package/esm2022/login/components/input-field-by-type/public-api.mjs +2 -0
  165. package/esm2022/login/components/input-tag/input-tag.component.mjs +90 -0
  166. package/esm2022/login/components/input-tag/keycloakify-angular-login-components-input-tag.mjs +5 -0
  167. package/esm2022/login/components/input-tag/public-api.mjs +2 -0
  168. package/esm2022/login/components/input-tag-selects/input-tag-selects.component.mjs +117 -0
  169. package/esm2022/login/components/input-tag-selects/keycloakify-angular-login-components-input-tag-selects.mjs +5 -0
  170. package/esm2022/login/components/input-tag-selects/public-api.mjs +2 -0
  171. package/esm2022/login/components/logout-other-sessions/keycloakify-angular-login-components-logout-other-sessions.mjs +5 -0
  172. package/esm2022/login/components/logout-other-sessions/logout-other-sessions.component.mjs +32 -0
  173. package/esm2022/login/components/logout-other-sessions/public-api.mjs +2 -0
  174. package/esm2022/login/components/password-wrapper/keycloakify-angular-login-components-password-wrapper.mjs +5 -0
  175. package/esm2022/login/components/password-wrapper/password-wrapper.component.mjs +46 -0
  176. package/esm2022/login/components/password-wrapper/public-api.mjs +2 -0
  177. package/esm2022/login/components/select-tag/keycloakify-angular-login-components-select-tag.mjs +5 -0
  178. package/esm2022/login/components/select-tag/public-api.mjs +2 -0
  179. package/esm2022/login/components/select-tag/select-tag.component.mjs +82 -0
  180. package/esm2022/login/components/textarea-tag/keycloakify-angular-login-components-textarea-tag.mjs +5 -0
  181. package/esm2022/login/components/textarea-tag/public-api.mjs +2 -0
  182. package/esm2022/login/components/textarea-tag/textarea-tag.component.mjs +49 -0
  183. package/esm2022/login/components/user-profile-form-fields/keycloakify-angular-login-components-user-profile-form-fields.mjs +5 -0
  184. package/esm2022/login/components/user-profile-form-fields/public-api.mjs +2 -0
  185. package/esm2022/login/components/user-profile-form-fields/user-profile-form-fields.component.mjs +62 -0
  186. package/esm2022/login/containers/template/keycloakify-angular-login-containers-template.mjs +5 -0
  187. package/esm2022/login/containers/template/public-api.mjs +2 -0
  188. package/esm2022/login/containers/template/template.component.mjs +140 -0
  189. package/esm2022/login/directives/kc-class/kc-class.directive.mjs +138 -0
  190. package/esm2022/login/directives/kc-class/keycloakify-angular-login-directives-kc-class.mjs +5 -0
  191. package/esm2022/login/directives/kc-class/public-api.mjs +2 -0
  192. package/esm2022/login/getDefaultPageComponent/getDefaultPageComponent.mjs +77 -0
  193. package/esm2022/login/getDefaultPageComponent/keycloakify-angular-login-getDefaultPageComponent.mjs +5 -0
  194. package/esm2022/login/getDefaultPageComponent/public-api.mjs +2 -0
  195. package/esm2022/login/i18n/i18n.mjs +2 -0
  196. package/esm2022/login/i18n/keycloakify-angular-login-i18n.mjs +5 -0
  197. package/esm2022/login/i18n/public-api.mjs +2 -0
  198. package/esm2022/login/pages/code/code.component.mjs +41 -0
  199. package/esm2022/login/pages/code/keycloakify-angular-login-pages-code.mjs +5 -0
  200. package/esm2022/login/pages/code/public-api.mjs +2 -0
  201. package/esm2022/login/pages/delete-account-confirm/delete-account-confirm.component.mjs +41 -0
  202. package/esm2022/login/pages/delete-account-confirm/keycloakify-angular-login-pages-delete-account-confirm.mjs +5 -0
  203. package/esm2022/login/pages/delete-account-confirm/public-api.mjs +2 -0
  204. package/esm2022/login/pages/delete-credential/delete-credential.component.mjs +41 -0
  205. package/esm2022/login/pages/delete-credential/keycloakify-angular-login-pages-delete-credential.mjs +5 -0
  206. package/esm2022/login/pages/delete-credential/public-api.mjs +2 -0
  207. package/esm2022/login/pages/error/error.component.mjs +41 -0
  208. package/esm2022/login/pages/error/keycloakify-angular-login-pages-error.mjs +5 -0
  209. package/esm2022/login/pages/error/public-api.mjs +2 -0
  210. package/esm2022/login/pages/frontchannel-logout/frontchannel-logout.component.mjs +46 -0
  211. package/esm2022/login/pages/frontchannel-logout/keycloakify-angular-login-pages-frontchannel-logout.mjs +5 -0
  212. package/esm2022/login/pages/frontchannel-logout/public-api.mjs +2 -0
  213. package/esm2022/login/pages/idp-review-user-profile/idp-review-user-profile.component.mjs +54 -0
  214. package/esm2022/login/pages/idp-review-user-profile/keycloakify-angular-login-pages-idp-review-user-profile.mjs +5 -0
  215. package/esm2022/login/pages/idp-review-user-profile/public-api.mjs +2 -0
  216. package/esm2022/login/pages/info/info.component.mjs +50 -0
  217. package/esm2022/login/pages/info/keycloakify-angular-login-pages-info.mjs +5 -0
  218. package/esm2022/login/pages/info/public-api.mjs +2 -0
  219. package/esm2022/login/pages/login/keycloakify-angular-login-pages-login.mjs +5 -0
  220. package/esm2022/login/pages/login/login.component.mjs +45 -0
  221. package/esm2022/login/pages/login/public-api.mjs +2 -0
  222. package/esm2022/login/pages/login-config-totp/keycloakify-angular-login-pages-login-config-totp.mjs +5 -0
  223. package/esm2022/login/pages/login-config-totp/login-config-totp.component.mjs +43 -0
  224. package/esm2022/login/pages/login-config-totp/public-api.mjs +2 -0
  225. package/esm2022/login/pages/login-idp-link-confirm/keycloakify-angular-login-pages-login-idp-link-confirm.mjs +5 -0
  226. package/esm2022/login/pages/login-idp-link-confirm/login-idp-link-confirm.component.mjs +37 -0
  227. package/esm2022/login/pages/login-idp-link-confirm/public-api.mjs +2 -0
  228. package/esm2022/login/pages/login-idp-link-confirm-override/keycloakify-angular-login-pages-login-idp-link-confirm-override.mjs +5 -0
  229. package/esm2022/login/pages/login-idp-link-confirm-override/login-idp-link-confirm-override.component.mjs +37 -0
  230. package/esm2022/login/pages/login-idp-link-confirm-override/public-api.mjs +2 -0
  231. package/esm2022/login/pages/login-idp-link-email/keycloakify-angular-login-pages-login-idp-link-email.mjs +5 -0
  232. package/esm2022/login/pages/login-idp-link-email/login-idp-link-email.component.mjs +37 -0
  233. package/esm2022/login/pages/login-idp-link-email/public-api.mjs +2 -0
  234. package/esm2022/login/pages/login-oauth-grant/keycloakify-angular-login-pages-login-oauth-grant.mjs +5 -0
  235. package/esm2022/login/pages/login-oauth-grant/login-oauth-grant.component.mjs +38 -0
  236. package/esm2022/login/pages/login-oauth-grant/public-api.mjs +2 -0
  237. package/esm2022/login/pages/login-oauth2-device-verify-user-code/keycloakify-angular-login-pages-login-oauth2-device-verify-user-code.mjs +5 -0
  238. package/esm2022/login/pages/login-oauth2-device-verify-user-code/login-oauth2-device-verify-user-code.component.mjs +41 -0
  239. package/esm2022/login/pages/login-oauth2-device-verify-user-code/public-api.mjs +2 -0
  240. package/esm2022/login/pages/login-otp/keycloakify-angular-login-pages-login-otp.mjs +5 -0
  241. package/esm2022/login/pages/login-otp/login-otp.component.mjs +42 -0
  242. package/esm2022/login/pages/login-otp/public-api.mjs +2 -0
  243. package/esm2022/login/pages/login-page-expired/keycloakify-angular-login-pages-login-page-expired.mjs +5 -0
  244. package/esm2022/login/pages/login-page-expired/login-page-expired.component.mjs +40 -0
  245. package/esm2022/login/pages/login-page-expired/public-api.mjs +2 -0
  246. package/esm2022/login/pages/login-passkeys-conditional-authenticate/keycloakify-angular-login-pages-login-passkeys-conditional-authenticate.mjs +5 -0
  247. package/esm2022/login/pages/login-passkeys-conditional-authenticate/login-passkeys-conditional-authenticate.component.mjs +89 -0
  248. package/esm2022/login/pages/login-passkeys-conditional-authenticate/public-api.mjs +2 -0
  249. package/esm2022/login/pages/login-password/keycloakify-angular-login-pages-login-password.mjs +5 -0
  250. package/esm2022/login/pages/login-password/login-password.component.mjs +45 -0
  251. package/esm2022/login/pages/login-password/public-api.mjs +2 -0
  252. package/esm2022/login/pages/login-recovery-authn-code-config/keycloakify-angular-login-pages-login-recovery-authn-code-config.mjs +5 -0
  253. package/esm2022/login/pages/login-recovery-authn-code-config/login-recovery-authn-code-config.component.mjs +44 -0
  254. package/esm2022/login/pages/login-recovery-authn-code-config/public-api.mjs +2 -0
  255. package/esm2022/login/pages/login-recovery-authn-code-input/keycloakify-angular-login-pages-login-recovery-authn-code-input.mjs +5 -0
  256. package/esm2022/login/pages/login-recovery-authn-code-input/login-recovery-authn-code-input.component.mjs +42 -0
  257. package/esm2022/login/pages/login-recovery-authn-code-input/public-api.mjs +2 -0
  258. package/esm2022/login/pages/login-reset-otp/keycloakify-angular-login-pages-login-reset-otp.mjs +5 -0
  259. package/esm2022/login/pages/login-reset-otp/login-reset-otp.component.mjs +41 -0
  260. package/esm2022/login/pages/login-reset-otp/public-api.mjs +2 -0
  261. package/esm2022/login/pages/login-reset-password/keycloakify-angular-login-pages-login-reset-password.mjs +5 -0
  262. package/esm2022/login/pages/login-reset-password/login-reset-password.component.mjs +42 -0
  263. package/esm2022/login/pages/login-reset-password/public-api.mjs +2 -0
  264. package/esm2022/login/pages/login-update-password/keycloakify-angular-login-pages-login-update-password.mjs +5 -0
  265. package/esm2022/login/pages/login-update-password/login-update-password.component.mjs +44 -0
  266. package/esm2022/login/pages/login-update-password/public-api.mjs +2 -0
  267. package/esm2022/login/pages/login-update-profile/keycloakify-angular-login-pages-login-update-profile.mjs +5 -0
  268. package/esm2022/login/pages/login-update-profile/login-update-profile.component.mjs +51 -0
  269. package/esm2022/login/pages/login-update-profile/public-api.mjs +2 -0
  270. package/esm2022/login/pages/login-username/keycloakify-angular-login-pages-login-username.mjs +5 -0
  271. package/esm2022/login/pages/login-username/login-username.component.mjs +44 -0
  272. package/esm2022/login/pages/login-username/public-api.mjs +2 -0
  273. package/esm2022/login/pages/login-verify-email/keycloakify-angular-login-pages-login-verify-email.mjs +5 -0
  274. package/esm2022/login/pages/login-verify-email/login-verify-email.component.mjs +41 -0
  275. package/esm2022/login/pages/login-verify-email/public-api.mjs +2 -0
  276. package/esm2022/login/pages/login-x509-info/keycloakify-angular-login-pages-login-x509-info.mjs +5 -0
  277. package/esm2022/login/pages/login-x509-info/login-x509-info.component.mjs +41 -0
  278. package/esm2022/login/pages/login-x509-info/public-api.mjs +2 -0
  279. package/esm2022/login/pages/logout-confirm/keycloakify-angular-login-pages-logout-confirm.mjs +5 -0
  280. package/esm2022/login/pages/logout-confirm/logout-confirm.component.mjs +37 -0
  281. package/esm2022/login/pages/logout-confirm/public-api.mjs +2 -0
  282. package/esm2022/login/pages/register/keycloakify-angular-login-pages-register.mjs +5 -0
  283. package/esm2022/login/pages/register/public-api.mjs +2 -0
  284. package/esm2022/login/pages/register/register.component.mjs +56 -0
  285. package/esm2022/login/pages/saml-post-form/keycloakify-angular-login-pages-saml-post-form.mjs +5 -0
  286. package/esm2022/login/pages/saml-post-form/public-api.mjs +2 -0
  287. package/esm2022/login/pages/saml-post-form/saml-post-form.component.mjs +51 -0
  288. package/esm2022/login/pages/select-authenticator/keycloakify-angular-login-pages-select-authenticator.mjs +5 -0
  289. package/esm2022/login/pages/select-authenticator/public-api.mjs +2 -0
  290. package/esm2022/login/pages/select-authenticator/select-authenticator.component.mjs +42 -0
  291. package/esm2022/login/pages/terms/keycloakify-angular-login-pages-terms.mjs +5 -0
  292. package/esm2022/login/pages/terms/public-api.mjs +2 -0
  293. package/esm2022/login/pages/terms/terms.component.mjs +41 -0
  294. package/esm2022/login/pages/update-email/keycloakify-angular-login-pages-update-email.mjs +5 -0
  295. package/esm2022/login/pages/update-email/public-api.mjs +2 -0
  296. package/esm2022/login/pages/update-email/update-email.component.mjs +48 -0
  297. package/esm2022/login/pages/webauthn-authenticate/keycloakify-angular-login-pages-webauthn-authenticate.mjs +5 -0
  298. package/esm2022/login/pages/webauthn-authenticate/public-api.mjs +2 -0
  299. package/esm2022/login/pages/webauthn-authenticate/webauthn-authenticate.component.mjs +81 -0
  300. package/esm2022/login/pages/webauthn-error/keycloakify-angular-login-pages-webauthn-error.mjs +5 -0
  301. package/esm2022/login/pages/webauthn-error/public-api.mjs +2 -0
  302. package/esm2022/login/pages/webauthn-error/webauthn-error.component.mjs +50 -0
  303. package/esm2022/login/pages/webauthn-register/keycloakify-angular-login-pages-webauthn-register.mjs +5 -0
  304. package/esm2022/login/pages/webauthn-register/public-api.mjs +2 -0
  305. package/esm2022/login/pages/webauthn-register/webauthn-register.component.mjs +77 -0
  306. package/esm2022/login/providers/keycloakify-angular/keycloakify-angular-login-providers-keycloakify-angular.mjs +5 -0
  307. package/esm2022/login/providers/keycloakify-angular/keycloakify-angular.providers.mjs +54 -0
  308. package/esm2022/login/providers/keycloakify-angular/public-api.mjs +2 -0
  309. package/esm2022/login/services/i18n/i18n.service.mjs +12 -0
  310. package/esm2022/login/services/i18n/keycloakify-angular-login-services-i18n.mjs +5 -0
  311. package/esm2022/login/services/i18n/public-api.mjs +2 -0
  312. package/esm2022/login/services/login-resource-injector/keycloakify-angular-login-services-login-resource-injector.mjs +5 -0
  313. package/esm2022/login/services/login-resource-injector/login-resource-injector.service.mjs +68 -0
  314. package/esm2022/login/services/login-resource-injector/public-api.mjs +2 -0
  315. package/esm2022/login/services/submit/keycloakify-angular-login-services-submit.mjs +5 -0
  316. package/esm2022/login/services/submit/public-api.mjs +2 -0
  317. package/esm2022/login/services/submit/submit.service.mjs +20 -0
  318. package/esm2022/login/services/user-profile-form/keycloakify-angular-login-services-user-profile-form.mjs +5 -0
  319. package/esm2022/login/services/user-profile-form/public-api.mjs +2 -0
  320. package/esm2022/login/services/user-profile-form/user-profile-form.service.mjs +1019 -0
  321. package/esm2022/login/tokens/classes/classes.token.mjs +3 -0
  322. package/esm2022/login/tokens/classes/keycloakify-angular-login-tokens-classes.mjs +5 -0
  323. package/esm2022/login/tokens/classes/public-api.mjs +2 -0
  324. package/esm2022/login/tokens/i18n/i18n.token.mjs +3 -0
  325. package/esm2022/login/tokens/i18n/keycloakify-angular-login-tokens-i18n.mjs +5 -0
  326. package/esm2022/login/tokens/i18n/public-api.mjs +2 -0
  327. package/esm2022/login/tokens/kc-context/kc-context.token.mjs +3 -0
  328. package/esm2022/login/tokens/kc-context/keycloakify-angular-login-tokens-kc-context.mjs +5 -0
  329. package/esm2022/login/tokens/kc-context/public-api.mjs +2 -0
  330. package/esm2022/login/tokens/make-user-confirm-password/keycloakify-angular-login-tokens-make-user-confirm-password.mjs +5 -0
  331. package/esm2022/login/tokens/make-user-confirm-password/make-user-confirm-password.token.mjs +3 -0
  332. package/esm2022/login/tokens/make-user-confirm-password/public-api.mjs +2 -0
  333. package/esm2022/public-api.mjs +2 -0
  334. package/fesm2022/keycloakify-angular-account-DefaultPage.mjs +39 -0
  335. package/fesm2022/keycloakify-angular-account-DefaultPage.mjs.map +1 -0
  336. package/fesm2022/keycloakify-angular-account-KcContext.mjs +4 -0
  337. package/fesm2022/keycloakify-angular-account-KcContext.mjs.map +1 -0
  338. package/fesm2022/keycloakify-angular-account-classes-component-reference.mjs +9 -0
  339. package/fesm2022/keycloakify-angular-account-classes-component-reference.mjs.map +1 -0
  340. package/fesm2022/keycloakify-angular-account-containers-template.mjs +106 -0
  341. package/fesm2022/keycloakify-angular-account-containers-template.mjs.map +1 -0
  342. package/fesm2022/keycloakify-angular-account-directives-kc-class.mjs +148 -0
  343. package/fesm2022/keycloakify-angular-account-directives-kc-class.mjs.map +1 -0
  344. package/fesm2022/keycloakify-angular-account-i18n.mjs +4 -0
  345. package/fesm2022/keycloakify-angular-account-i18n.mjs.map +1 -0
  346. package/fesm2022/keycloakify-angular-account-pages-account.mjs +47 -0
  347. package/fesm2022/keycloakify-angular-account-pages-account.mjs.map +1 -0
  348. package/fesm2022/keycloakify-angular-account-pages-applications.mjs +45 -0
  349. package/fesm2022/keycloakify-angular-account-pages-applications.mjs.map +1 -0
  350. package/fesm2022/keycloakify-angular-account-pages-federatedIdentity.mjs +44 -0
  351. package/fesm2022/keycloakify-angular-account-pages-federatedIdentity.mjs.map +1 -0
  352. package/fesm2022/keycloakify-angular-account-pages-log.mjs +44 -0
  353. package/fesm2022/keycloakify-angular-account-pages-log.mjs.map +1 -0
  354. package/fesm2022/keycloakify-angular-account-pages-password.mjs +116 -0
  355. package/fesm2022/keycloakify-angular-account-pages-password.mjs.map +1 -0
  356. package/fesm2022/keycloakify-angular-account-pages-sessions.mjs +44 -0
  357. package/fesm2022/keycloakify-angular-account-pages-sessions.mjs.map +1 -0
  358. package/fesm2022/keycloakify-angular-account-pages-totp.mjs +45 -0
  359. package/fesm2022/keycloakify-angular-account-pages-totp.mjs.map +1 -0
  360. package/fesm2022/keycloakify-angular-account-providers-keycloakify-angular.mjs +56 -0
  361. package/fesm2022/keycloakify-angular-account-providers-keycloakify-angular.mjs.map +1 -0
  362. package/fesm2022/keycloakify-angular-account-services-account-resource-injector.mjs +44 -0
  363. package/fesm2022/keycloakify-angular-account-services-account-resource-injector.mjs.map +1 -0
  364. package/fesm2022/keycloakify-angular-account-services-i18n.mjs +19 -0
  365. package/fesm2022/keycloakify-angular-account-services-i18n.mjs.map +1 -0
  366. package/fesm2022/keycloakify-angular-account-tokens-classes.mjs +10 -0
  367. package/fesm2022/keycloakify-angular-account-tokens-classes.mjs.map +1 -0
  368. package/fesm2022/keycloakify-angular-account-tokens-i18n.mjs +10 -0
  369. package/fesm2022/keycloakify-angular-account-tokens-i18n.mjs.map +1 -0
  370. package/fesm2022/keycloakify-angular-account-tokens-kc-context.mjs +10 -0
  371. package/fesm2022/keycloakify-angular-account-tokens-kc-context.mjs.map +1 -0
  372. package/fesm2022/keycloakify-angular-lib-directives-attributes.mjs +33 -0
  373. package/fesm2022/keycloakify-angular-lib-directives-attributes.mjs.map +1 -0
  374. package/fesm2022/keycloakify-angular-lib-models-script.mjs +4 -0
  375. package/fesm2022/keycloakify-angular-lib-models-script.mjs.map +1 -0
  376. package/fesm2022/keycloakify-angular-lib-pipes-input-type.mjs +27 -0
  377. package/fesm2022/keycloakify-angular-lib-pipes-input-type.mjs.map +1 -0
  378. package/fesm2022/keycloakify-angular-lib-pipes-is-array-with-empty-object.mjs +27 -0
  379. package/fesm2022/keycloakify-angular-lib-pipes-is-array-with-empty-object.mjs.map +1 -0
  380. package/fesm2022/keycloakify-angular-lib-pipes-kc-sanitize.mjs +36 -0
  381. package/fesm2022/keycloakify-angular-lib-pipes-kc-sanitize.mjs.map +1 -0
  382. package/fesm2022/keycloakify-angular-lib-pipes-to-array.mjs +28 -0
  383. package/fesm2022/keycloakify-angular-lib-pipes-to-array.mjs.map +1 -0
  384. package/fesm2022/keycloakify-angular-lib-pipes-to-number.mjs +27 -0
  385. package/fesm2022/keycloakify-angular-lib-pipes-to-number.mjs.map +1 -0
  386. package/fesm2022/keycloakify-angular-lib-services-resource-injector.mjs +61 -0
  387. package/fesm2022/keycloakify-angular-lib-services-resource-injector.mjs.map +1 -0
  388. package/fesm2022/keycloakify-angular-lib-tokens-use-default-css.mjs +10 -0
  389. package/fesm2022/keycloakify-angular-lib-tokens-use-default-css.mjs.map +1 -0
  390. package/fesm2022/keycloakify-angular-lib.mjs +8 -0
  391. package/fesm2022/keycloakify-angular-lib.mjs.map +1 -0
  392. package/fesm2022/keycloakify-angular-login-KcContext.mjs +4 -0
  393. package/fesm2022/keycloakify-angular-login-KcContext.mjs.map +1 -0
  394. package/fesm2022/keycloakify-angular-login-classes-component-reference.mjs +9 -0
  395. package/fesm2022/keycloakify-angular-login-classes-component-reference.mjs.map +1 -0
  396. package/fesm2022/keycloakify-angular-login-components-add-remove-buttons-multi-valued-attribute.mjs +113 -0
  397. package/fesm2022/keycloakify-angular-login-components-add-remove-buttons-multi-valued-attribute.mjs.map +1 -0
  398. package/fesm2022/keycloakify-angular-login-components-field-errors.mjs +40 -0
  399. package/fesm2022/keycloakify-angular-login-components-field-errors.mjs.map +1 -0
  400. package/fesm2022/keycloakify-angular-login-components-group-label.mjs +50 -0
  401. package/fesm2022/keycloakify-angular-login-components-group-label.mjs.map +1 -0
  402. package/fesm2022/keycloakify-angular-login-components-input-field-by-type.mjs +53 -0
  403. package/fesm2022/keycloakify-angular-login-components-input-field-by-type.mjs.map +1 -0
  404. package/fesm2022/keycloakify-angular-login-components-input-tag-selects.mjs +124 -0
  405. package/fesm2022/keycloakify-angular-login-components-input-tag-selects.mjs.map +1 -0
  406. package/fesm2022/keycloakify-angular-login-components-input-tag.mjs +97 -0
  407. package/fesm2022/keycloakify-angular-login-components-input-tag.mjs.map +1 -0
  408. package/fesm2022/keycloakify-angular-login-components-logout-other-sessions.mjs +39 -0
  409. package/fesm2022/keycloakify-angular-login-components-logout-other-sessions.mjs.map +1 -0
  410. package/fesm2022/keycloakify-angular-login-components-password-wrapper.mjs +53 -0
  411. package/fesm2022/keycloakify-angular-login-components-password-wrapper.mjs.map +1 -0
  412. package/fesm2022/keycloakify-angular-login-components-select-tag.mjs +89 -0
  413. package/fesm2022/keycloakify-angular-login-components-select-tag.mjs.map +1 -0
  414. package/fesm2022/keycloakify-angular-login-components-textarea-tag.mjs +56 -0
  415. package/fesm2022/keycloakify-angular-login-components-textarea-tag.mjs.map +1 -0
  416. package/fesm2022/keycloakify-angular-login-components-user-profile-form-fields.mjs +69 -0
  417. package/fesm2022/keycloakify-angular-login-components-user-profile-form-fields.mjs.map +1 -0
  418. package/fesm2022/keycloakify-angular-login-containers-template.mjs +147 -0
  419. package/fesm2022/keycloakify-angular-login-containers-template.mjs.map +1 -0
  420. package/fesm2022/keycloakify-angular-login-directives-kc-class.mjs +145 -0
  421. package/fesm2022/keycloakify-angular-login-directives-kc-class.mjs.map +1 -0
  422. package/fesm2022/keycloakify-angular-login-getDefaultPageComponent.mjs +83 -0
  423. package/fesm2022/keycloakify-angular-login-getDefaultPageComponent.mjs.map +1 -0
  424. package/fesm2022/keycloakify-angular-login-i18n.mjs +4 -0
  425. package/fesm2022/keycloakify-angular-login-i18n.mjs.map +1 -0
  426. package/fesm2022/keycloakify-angular-login-pages-code.mjs +48 -0
  427. package/fesm2022/keycloakify-angular-login-pages-code.mjs.map +1 -0
  428. package/fesm2022/keycloakify-angular-login-pages-delete-account-confirm.mjs +48 -0
  429. package/fesm2022/keycloakify-angular-login-pages-delete-account-confirm.mjs.map +1 -0
  430. package/fesm2022/keycloakify-angular-login-pages-delete-credential.mjs +48 -0
  431. package/fesm2022/keycloakify-angular-login-pages-delete-credential.mjs.map +1 -0
  432. package/fesm2022/keycloakify-angular-login-pages-error.mjs +48 -0
  433. package/fesm2022/keycloakify-angular-login-pages-error.mjs.map +1 -0
  434. package/fesm2022/keycloakify-angular-login-pages-frontchannel-logout.mjs +53 -0
  435. package/fesm2022/keycloakify-angular-login-pages-frontchannel-logout.mjs.map +1 -0
  436. package/fesm2022/keycloakify-angular-login-pages-idp-review-user-profile.mjs +61 -0
  437. package/fesm2022/keycloakify-angular-login-pages-idp-review-user-profile.mjs.map +1 -0
  438. package/fesm2022/keycloakify-angular-login-pages-info.mjs +57 -0
  439. package/fesm2022/keycloakify-angular-login-pages-info.mjs.map +1 -0
  440. package/fesm2022/keycloakify-angular-login-pages-login-config-totp.mjs +50 -0
  441. package/fesm2022/keycloakify-angular-login-pages-login-config-totp.mjs.map +1 -0
  442. package/fesm2022/keycloakify-angular-login-pages-login-idp-link-confirm-override.mjs +44 -0
  443. package/fesm2022/keycloakify-angular-login-pages-login-idp-link-confirm-override.mjs.map +1 -0
  444. package/fesm2022/keycloakify-angular-login-pages-login-idp-link-confirm.mjs +44 -0
  445. package/fesm2022/keycloakify-angular-login-pages-login-idp-link-confirm.mjs.map +1 -0
  446. package/fesm2022/keycloakify-angular-login-pages-login-idp-link-email.mjs +44 -0
  447. package/fesm2022/keycloakify-angular-login-pages-login-idp-link-email.mjs.map +1 -0
  448. package/fesm2022/keycloakify-angular-login-pages-login-oauth-grant.mjs +45 -0
  449. package/fesm2022/keycloakify-angular-login-pages-login-oauth-grant.mjs.map +1 -0
  450. package/fesm2022/keycloakify-angular-login-pages-login-oauth2-device-verify-user-code.mjs +48 -0
  451. package/fesm2022/keycloakify-angular-login-pages-login-oauth2-device-verify-user-code.mjs.map +1 -0
  452. package/fesm2022/keycloakify-angular-login-pages-login-otp.mjs +49 -0
  453. package/fesm2022/keycloakify-angular-login-pages-login-otp.mjs.map +1 -0
  454. package/fesm2022/keycloakify-angular-login-pages-login-page-expired.mjs +47 -0
  455. package/fesm2022/keycloakify-angular-login-pages-login-page-expired.mjs.map +1 -0
  456. package/fesm2022/keycloakify-angular-login-pages-login-passkeys-conditional-authenticate.mjs +96 -0
  457. package/fesm2022/keycloakify-angular-login-pages-login-passkeys-conditional-authenticate.mjs.map +1 -0
  458. package/fesm2022/keycloakify-angular-login-pages-login-password.mjs +52 -0
  459. package/fesm2022/keycloakify-angular-login-pages-login-password.mjs.map +1 -0
  460. package/fesm2022/keycloakify-angular-login-pages-login-recovery-authn-code-config.mjs +51 -0
  461. package/fesm2022/keycloakify-angular-login-pages-login-recovery-authn-code-config.mjs.map +1 -0
  462. package/fesm2022/keycloakify-angular-login-pages-login-recovery-authn-code-input.mjs +49 -0
  463. package/fesm2022/keycloakify-angular-login-pages-login-recovery-authn-code-input.mjs.map +1 -0
  464. package/fesm2022/keycloakify-angular-login-pages-login-reset-otp.mjs +48 -0
  465. package/fesm2022/keycloakify-angular-login-pages-login-reset-otp.mjs.map +1 -0
  466. package/fesm2022/keycloakify-angular-login-pages-login-reset-password.mjs +49 -0
  467. package/fesm2022/keycloakify-angular-login-pages-login-reset-password.mjs.map +1 -0
  468. package/fesm2022/keycloakify-angular-login-pages-login-update-password.mjs +51 -0
  469. package/fesm2022/keycloakify-angular-login-pages-login-update-password.mjs.map +1 -0
  470. package/fesm2022/keycloakify-angular-login-pages-login-update-profile.mjs +58 -0
  471. package/fesm2022/keycloakify-angular-login-pages-login-update-profile.mjs.map +1 -0
  472. package/fesm2022/keycloakify-angular-login-pages-login-username.mjs +51 -0
  473. package/fesm2022/keycloakify-angular-login-pages-login-username.mjs.map +1 -0
  474. package/fesm2022/keycloakify-angular-login-pages-login-verify-email.mjs +48 -0
  475. package/fesm2022/keycloakify-angular-login-pages-login-verify-email.mjs.map +1 -0
  476. package/fesm2022/keycloakify-angular-login-pages-login-x509-info.mjs +48 -0
  477. package/fesm2022/keycloakify-angular-login-pages-login-x509-info.mjs.map +1 -0
  478. package/fesm2022/keycloakify-angular-login-pages-login.mjs +52 -0
  479. package/fesm2022/keycloakify-angular-login-pages-login.mjs.map +1 -0
  480. package/fesm2022/keycloakify-angular-login-pages-logout-confirm.mjs +44 -0
  481. package/fesm2022/keycloakify-angular-login-pages-logout-confirm.mjs.map +1 -0
  482. package/fesm2022/keycloakify-angular-login-pages-register.mjs +63 -0
  483. package/fesm2022/keycloakify-angular-login-pages-register.mjs.map +1 -0
  484. package/fesm2022/keycloakify-angular-login-pages-saml-post-form.mjs +58 -0
  485. package/fesm2022/keycloakify-angular-login-pages-saml-post-form.mjs.map +1 -0
  486. package/fesm2022/keycloakify-angular-login-pages-select-authenticator.mjs +49 -0
  487. package/fesm2022/keycloakify-angular-login-pages-select-authenticator.mjs.map +1 -0
  488. package/fesm2022/keycloakify-angular-login-pages-terms.mjs +48 -0
  489. package/fesm2022/keycloakify-angular-login-pages-terms.mjs.map +1 -0
  490. package/fesm2022/keycloakify-angular-login-pages-update-email.mjs +55 -0
  491. package/fesm2022/keycloakify-angular-login-pages-update-email.mjs.map +1 -0
  492. package/fesm2022/keycloakify-angular-login-pages-webauthn-authenticate.mjs +88 -0
  493. package/fesm2022/keycloakify-angular-login-pages-webauthn-authenticate.mjs.map +1 -0
  494. package/fesm2022/keycloakify-angular-login-pages-webauthn-error.mjs +57 -0
  495. package/fesm2022/keycloakify-angular-login-pages-webauthn-error.mjs.map +1 -0
  496. package/fesm2022/keycloakify-angular-login-pages-webauthn-register.mjs +84 -0
  497. package/fesm2022/keycloakify-angular-login-pages-webauthn-register.mjs.map +1 -0
  498. package/fesm2022/keycloakify-angular-login-providers-keycloakify-angular.mjs +61 -0
  499. package/fesm2022/keycloakify-angular-login-providers-keycloakify-angular.mjs.map +1 -0
  500. package/fesm2022/keycloakify-angular-login-services-i18n.mjs +19 -0
  501. package/fesm2022/keycloakify-angular-login-services-i18n.mjs.map +1 -0
  502. package/fesm2022/keycloakify-angular-login-services-login-resource-injector.mjs +75 -0
  503. package/fesm2022/keycloakify-angular-login-services-login-resource-injector.mjs.map +1 -0
  504. package/fesm2022/keycloakify-angular-login-services-submit.mjs +27 -0
  505. package/fesm2022/keycloakify-angular-login-services-submit.mjs.map +1 -0
  506. package/fesm2022/keycloakify-angular-login-services-user-profile-form.mjs +1026 -0
  507. package/fesm2022/keycloakify-angular-login-services-user-profile-form.mjs.map +1 -0
  508. package/fesm2022/keycloakify-angular-login-tokens-classes.mjs +10 -0
  509. package/fesm2022/keycloakify-angular-login-tokens-classes.mjs.map +1 -0
  510. package/fesm2022/keycloakify-angular-login-tokens-i18n.mjs +10 -0
  511. package/fesm2022/keycloakify-angular-login-tokens-i18n.mjs.map +1 -0
  512. package/fesm2022/keycloakify-angular-login-tokens-kc-context.mjs +10 -0
  513. package/fesm2022/keycloakify-angular-login-tokens-kc-context.mjs.map +1 -0
  514. package/fesm2022/keycloakify-angular-login-tokens-make-user-confirm-password.mjs +10 -0
  515. package/fesm2022/keycloakify-angular-login-tokens-make-user-confirm-password.mjs.map +1 -0
  516. package/fesm2022/keycloakify-angular.mjs +8 -0
  517. package/fesm2022/keycloakify-angular.mjs.map +1 -0
  518. package/index.d.ts +5 -0
  519. package/lib/directives/attributes/index.d.ts +5 -0
  520. package/{login/directives/index.d.ts → lib/directives/attributes/public-api.d.ts} +0 -1
  521. package/lib/index.d.ts +5 -0
  522. package/lib/models/script/index.d.ts +5 -0
  523. package/lib/pipes/input-type/index.d.ts +5 -0
  524. package/lib/pipes/input-type/public-api.d.ts +1 -0
  525. package/lib/pipes/is-array-with-empty-object/index.d.ts +5 -0
  526. package/lib/pipes/is-array-with-empty-object/is-array-with-empty-object.pipe.d.ts +7 -0
  527. package/lib/pipes/is-array-with-empty-object/public-api.d.ts +1 -0
  528. package/lib/pipes/kc-sanitize/index.d.ts +5 -0
  529. package/{login/pipes → lib/pipes/kc-sanitize}/kc-sanitize.pipe.d.ts +3 -4
  530. package/lib/pipes/kc-sanitize/public-api.d.ts +1 -0
  531. package/lib/pipes/to-array/index.d.ts +5 -0
  532. package/lib/pipes/to-array/public-api.d.ts +1 -0
  533. package/lib/pipes/to-number/index.d.ts +5 -0
  534. package/lib/pipes/to-number/public-api.d.ts +1 -0
  535. package/lib/public-api.d.ts +1 -10
  536. package/lib/services/resource-injector/index.d.ts +5 -0
  537. package/lib/services/{index.d.ts → resource-injector/public-api.d.ts} +0 -1
  538. package/lib/services/{resource-injector.service.d.ts → resource-injector/resource-injector.service.d.ts} +1 -1
  539. package/lib/tokens/use-default-css/index.d.ts +5 -0
  540. package/lib/tokens/use-default-css/public-api.d.ts +1 -0
  541. package/lib/tokens/use-default-css/use-default-css.token.d.ts +2 -0
  542. package/login/KcContext/index.d.ts +5 -0
  543. package/login/KcContext/public-api.d.ts +1 -0
  544. package/login/classes/{component-reference.class.d.ts → component-reference/component-reference.class.d.ts} +1 -1
  545. package/login/classes/component-reference/index.d.ts +5 -0
  546. package/login/classes/component-reference/public-api.d.ts +1 -0
  547. package/login/components/add-remove-buttons-multi-valued-attribute/add-remove-buttons-multi-valued-attribute.component.d.ts +4 -2
  548. package/login/components/add-remove-buttons-multi-valued-attribute/index.d.ts +5 -0
  549. package/login/components/add-remove-buttons-multi-valued-attribute/public-api.d.ts +1 -0
  550. package/login/components/field-errors/field-errors.component.d.ts +4 -4
  551. package/login/components/field-errors/index.d.ts +5 -0
  552. package/login/components/field-errors/public-api.d.ts +1 -0
  553. package/login/components/group-label/group-label.component.d.ts +5 -3
  554. package/login/components/group-label/index.d.ts +5 -0
  555. package/login/components/group-label/public-api.d.ts +1 -0
  556. package/login/components/input-field-by-type/index.d.ts +5 -0
  557. package/login/components/input-field-by-type/input-field-by-type.component.d.ts +4 -4
  558. package/login/components/input-field-by-type/public-api.d.ts +1 -0
  559. package/login/components/input-tag/index.d.ts +5 -0
  560. package/login/components/input-tag/input-tag.component.d.ts +6 -4
  561. package/login/components/input-tag/public-api.d.ts +1 -0
  562. package/login/components/input-tag-selects/index.d.ts +5 -0
  563. package/login/components/input-tag-selects/input-tag-selects.component.d.ts +6 -4
  564. package/login/components/input-tag-selects/public-api.d.ts +1 -0
  565. package/login/components/logout-other-sessions/index.d.ts +5 -0
  566. package/login/components/logout-other-sessions/logout-other-sessions.component.d.ts +4 -2
  567. package/login/components/logout-other-sessions/public-api.d.ts +1 -0
  568. package/login/components/password-wrapper/index.d.ts +5 -0
  569. package/login/components/password-wrapper/password-wrapper.component.d.ts +4 -2
  570. package/login/components/password-wrapper/public-api.d.ts +1 -0
  571. package/login/components/select-tag/index.d.ts +5 -0
  572. package/login/components/select-tag/public-api.d.ts +1 -0
  573. package/login/components/select-tag/select-tag.component.d.ts +6 -4
  574. package/login/components/textarea-tag/index.d.ts +5 -0
  575. package/login/components/textarea-tag/public-api.d.ts +1 -0
  576. package/login/components/textarea-tag/textarea-tag.component.d.ts +4 -4
  577. package/login/components/user-profile-form-fields/index.d.ts +5 -0
  578. package/login/components/user-profile-form-fields/public-api.d.ts +1 -0
  579. package/login/components/user-profile-form-fields/user-profile-form-fields.component.d.ts +8 -5
  580. package/login/containers/template/index.d.ts +5 -0
  581. package/login/containers/template/public-api.d.ts +1 -0
  582. package/login/containers/template/template.component.d.ts +47 -0
  583. package/login/directives/kc-class/index.d.ts +5 -0
  584. package/login/directives/kc-class/kc-class.directive.d.ts +26 -0
  585. package/login/directives/kc-class/public-api.d.ts +1 -0
  586. package/login/getDefaultPageComponent/getDefaultPageComponent.d.ts +3 -0
  587. package/login/getDefaultPageComponent/index.d.ts +5 -0
  588. package/login/getDefaultPageComponent/public-api.d.ts +1 -0
  589. package/login/{i18n.d.ts → i18n/i18n.d.ts} +1 -1
  590. package/login/i18n/index.d.ts +5 -0
  591. package/login/i18n/public-api.d.ts +1 -0
  592. package/login/pages/code/code.component.d.ts +15 -4
  593. package/login/pages/code/index.d.ts +5 -0
  594. package/login/pages/code/public-api.d.ts +1 -0
  595. package/login/pages/delete-account-confirm/delete-account-confirm.component.d.ts +15 -4
  596. package/login/pages/delete-account-confirm/index.d.ts +5 -0
  597. package/login/pages/delete-account-confirm/public-api.d.ts +1 -0
  598. package/login/pages/delete-credential/delete-credential.component.d.ts +13 -7
  599. package/login/pages/delete-credential/index.d.ts +5 -0
  600. package/login/pages/delete-credential/public-api.d.ts +1 -0
  601. package/login/pages/error/error.component.d.ts +15 -4
  602. package/login/pages/error/index.d.ts +5 -0
  603. package/login/pages/error/public-api.d.ts +1 -0
  604. package/login/pages/frontchannel-logout/frontchannel-logout.component.d.ts +13 -7
  605. package/login/pages/frontchannel-logout/index.d.ts +5 -0
  606. package/login/pages/frontchannel-logout/public-api.d.ts +1 -0
  607. package/login/pages/idp-review-user-profile/idp-review-user-profile.component.d.ts +18 -8
  608. package/login/pages/idp-review-user-profile/index.d.ts +5 -0
  609. package/login/pages/idp-review-user-profile/public-api.d.ts +1 -0
  610. package/login/pages/info/index.d.ts +5 -0
  611. package/login/pages/info/info.component.d.ts +13 -13
  612. package/login/pages/info/public-api.d.ts +1 -0
  613. package/login/pages/login/index.d.ts +5 -0
  614. package/login/pages/login/login.component.d.ts +14 -8
  615. package/login/pages/login/public-api.d.ts +1 -0
  616. package/login/pages/login-config-totp/index.d.ts +5 -0
  617. package/login/pages/login-config-totp/login-config-totp.component.d.ts +13 -7
  618. package/login/pages/login-config-totp/public-api.d.ts +1 -0
  619. package/login/pages/login-idp-link-confirm/index.d.ts +5 -0
  620. package/login/pages/login-idp-link-confirm/login-idp-link-confirm.component.d.ts +12 -9
  621. package/login/pages/login-idp-link-confirm/public-api.d.ts +1 -0
  622. package/login/pages/login-idp-link-confirm-override/index.d.ts +5 -0
  623. package/login/pages/login-idp-link-confirm-override/login-idp-link-confirm-override.component.d.ts +12 -9
  624. package/login/pages/login-idp-link-confirm-override/public-api.d.ts +1 -0
  625. package/login/pages/login-idp-link-email/index.d.ts +5 -0
  626. package/login/pages/login-idp-link-email/login-idp-link-email.component.d.ts +12 -9
  627. package/login/pages/login-idp-link-email/public-api.d.ts +1 -0
  628. package/login/pages/login-oauth-grant/index.d.ts +5 -0
  629. package/login/pages/login-oauth-grant/login-oauth-grant.component.d.ts +12 -9
  630. package/login/pages/login-oauth-grant/public-api.d.ts +1 -0
  631. package/login/pages/login-oauth2-device-verify-user-code/index.d.ts +5 -0
  632. package/login/pages/login-oauth2-device-verify-user-code/login-oauth2-device-verify-user-code.component.d.ts +13 -7
  633. package/login/pages/login-oauth2-device-verify-user-code/public-api.d.ts +1 -0
  634. package/login/pages/login-otp/index.d.ts +5 -0
  635. package/login/pages/login-otp/login-otp.component.d.ts +13 -7
  636. package/login/pages/login-otp/public-api.d.ts +1 -0
  637. package/login/pages/login-page-expired/index.d.ts +5 -0
  638. package/login/pages/login-page-expired/login-page-expired.component.d.ts +13 -7
  639. package/login/pages/login-page-expired/public-api.d.ts +1 -0
  640. package/login/pages/login-passkeys-conditional-authenticate/index.d.ts +5 -0
  641. package/login/pages/login-passkeys-conditional-authenticate/login-passkeys-conditional-authenticate.component.d.ts +15 -7
  642. package/login/pages/login-passkeys-conditional-authenticate/public-api.d.ts +1 -0
  643. package/login/pages/login-password/index.d.ts +5 -0
  644. package/login/pages/login-password/login-password.component.d.ts +14 -7
  645. package/login/pages/login-password/public-api.d.ts +1 -0
  646. package/login/pages/login-recovery-authn-code-config/index.d.ts +5 -0
  647. package/login/pages/login-recovery-authn-code-config/login-recovery-authn-code-config.component.d.ts +13 -7
  648. package/login/pages/login-recovery-authn-code-config/public-api.d.ts +1 -0
  649. package/login/pages/login-recovery-authn-code-input/index.d.ts +5 -0
  650. package/login/pages/login-recovery-authn-code-input/login-recovery-authn-code-input.component.d.ts +13 -7
  651. package/login/pages/login-recovery-authn-code-input/public-api.d.ts +1 -0
  652. package/login/pages/login-reset-otp/index.d.ts +5 -0
  653. package/login/pages/login-reset-otp/login-reset-otp.component.d.ts +13 -7
  654. package/login/pages/login-reset-otp/public-api.d.ts +1 -0
  655. package/login/pages/login-reset-password/index.d.ts +5 -0
  656. package/login/pages/login-reset-password/login-reset-password.component.d.ts +13 -7
  657. package/login/pages/login-reset-password/public-api.d.ts +1 -0
  658. package/login/pages/login-update-password/index.d.ts +5 -0
  659. package/login/pages/login-update-password/login-update-password.component.d.ts +13 -7
  660. package/login/pages/login-update-password/public-api.d.ts +1 -0
  661. package/login/pages/login-update-profile/index.d.ts +5 -0
  662. package/login/pages/login-update-profile/login-update-profile.component.d.ts +17 -7
  663. package/login/pages/login-update-profile/public-api.d.ts +1 -0
  664. package/login/pages/login-username/index.d.ts +5 -0
  665. package/login/pages/login-username/login-username.component.d.ts +14 -8
  666. package/login/pages/login-username/public-api.d.ts +1 -0
  667. package/login/pages/login-verify-email/index.d.ts +5 -0
  668. package/login/pages/login-verify-email/login-verify-email.component.d.ts +13 -7
  669. package/login/pages/login-verify-email/public-api.d.ts +1 -0
  670. package/login/pages/login-x509-info/index.d.ts +5 -0
  671. package/login/pages/login-x509-info/login-x509-info.component.d.ts +13 -7
  672. package/login/pages/login-x509-info/public-api.d.ts +1 -0
  673. package/login/pages/logout-confirm/index.d.ts +5 -0
  674. package/login/pages/logout-confirm/logout-confirm.component.d.ts +12 -9
  675. package/login/pages/logout-confirm/public-api.d.ts +1 -0
  676. package/login/pages/register/index.d.ts +5 -0
  677. package/login/pages/register/public-api.d.ts +1 -0
  678. package/login/pages/register/register.component.d.ts +19 -9
  679. package/login/pages/saml-post-form/index.d.ts +5 -0
  680. package/login/pages/saml-post-form/public-api.d.ts +1 -0
  681. package/login/pages/saml-post-form/saml-post-form.component.d.ts +14 -9
  682. package/login/pages/select-authenticator/index.d.ts +5 -0
  683. package/login/pages/select-authenticator/public-api.d.ts +1 -0
  684. package/login/pages/select-authenticator/select-authenticator.component.d.ts +13 -7
  685. package/login/pages/terms/index.d.ts +5 -0
  686. package/login/pages/terms/public-api.d.ts +1 -0
  687. package/login/pages/terms/terms.component.d.ts +13 -7
  688. package/login/pages/update-email/index.d.ts +5 -0
  689. package/login/pages/update-email/public-api.d.ts +1 -0
  690. package/login/pages/update-email/update-email.component.d.ts +16 -9
  691. package/login/pages/webauthn-authenticate/index.d.ts +5 -0
  692. package/login/pages/webauthn-authenticate/public-api.d.ts +1 -0
  693. package/login/pages/webauthn-authenticate/webauthn-authenticate.component.d.ts +14 -10
  694. package/login/pages/webauthn-error/index.d.ts +5 -0
  695. package/login/pages/webauthn-error/public-api.d.ts +1 -0
  696. package/login/pages/webauthn-error/webauthn-error.component.d.ts +13 -7
  697. package/login/pages/webauthn-register/index.d.ts +5 -0
  698. package/login/pages/webauthn-register/public-api.d.ts +1 -0
  699. package/login/pages/webauthn-register/webauthn-register.component.d.ts +14 -10
  700. package/login/providers/keycloakify-angular/index.d.ts +5 -0
  701. package/login/providers/keycloakify-angular/keycloakify-angular.providers.d.ts +16 -0
  702. package/login/providers/keycloakify-angular/public-api.d.ts +1 -0
  703. package/login/services/i18n/i18n.service.d.ts +6 -0
  704. package/login/services/i18n/index.d.ts +5 -0
  705. package/login/services/i18n/public-api.d.ts +1 -0
  706. package/login/services/login-resource-injector/index.d.ts +5 -0
  707. package/login/services/{login-resource-injector.service.d.ts → login-resource-injector/login-resource-injector.service.d.ts} +1 -1
  708. package/login/services/{index.d.ts → login-resource-injector/public-api.d.ts} +0 -1
  709. package/login/services/submit/index.d.ts +5 -0
  710. package/login/services/submit/public-api.d.ts +1 -0
  711. package/login/services/submit/submit.service.d.ts +9 -0
  712. package/login/services/user-profile-form/index.d.ts +5 -0
  713. package/login/services/user-profile-form/public-api.d.ts +1 -0
  714. package/login/services/{user-profile-form.service.d.ts → user-profile-form/user-profile-form.service.d.ts} +2 -1
  715. package/{lib/providers/keycloakify-angular.providers.d.ts → login/tokens/classes/classes.token.d.ts} +1 -24
  716. package/login/tokens/classes/index.d.ts +5 -0
  717. package/login/tokens/classes/public-api.d.ts +1 -0
  718. package/login/tokens/i18n/i18n.token.d.ts +2 -0
  719. package/login/tokens/i18n/index.d.ts +5 -0
  720. package/login/tokens/i18n/public-api.d.ts +1 -0
  721. package/login/tokens/kc-context/index.d.ts +5 -0
  722. package/login/tokens/kc-context/kc-context.token.d.ts +3 -0
  723. package/login/tokens/kc-context/public-api.d.ts +1 -0
  724. package/login/tokens/make-user-confirm-password/index.d.ts +5 -0
  725. package/login/tokens/make-user-confirm-password/make-user-confirm-password.token.d.ts +2 -0
  726. package/login/tokens/make-user-confirm-password/public-api.d.ts +1 -0
  727. package/package.json +591 -338
  728. package/public-api.d.ts +1 -0
  729. package/src/account/DefaultPage.ts +61 -0
  730. package/src/account/KcContext.ts +1 -0
  731. package/src/account/classes/component-reference/component-reference.class.ts +6 -0
  732. package/src/account/containers/template/template.component.html +130 -0
  733. package/src/account/containers/template/template.component.ts +118 -0
  734. package/src/account/directives/kc-class/kc-class.directive.ts +170 -0
  735. package/src/account/i18n.ts +4 -0
  736. package/src/account/pages/account/account.component.html +161 -0
  737. package/src/account/pages/account/account.component.ts +35 -0
  738. package/src/account/pages/applications/applications.component.html +148 -0
  739. package/src/account/pages/applications/applications.component.ts +33 -0
  740. package/src/account/pages/federatedIdentity/federatedIdentity.component.html +93 -0
  741. package/src/account/pages/federatedIdentity/federatedIdentity.component.ts +32 -0
  742. package/src/account/pages/log/log.component.html +40 -0
  743. package/src/account/pages/log/log.component.ts +32 -0
  744. package/src/account/pages/password/password.component.html +127 -0
  745. package/src/account/pages/password/password.component.ts +113 -0
  746. package/src/account/pages/sessions/sessions.component.html +59 -0
  747. package/src/account/pages/sessions/sessions.component.ts +32 -0
  748. package/src/account/pages/totp/totp.component.html +254 -0
  749. package/src/account/pages/totp/totp.component.ts +33 -0
  750. package/src/account/providers/keycloakify-angular/keycloakify-angular.providers.ts +65 -0
  751. package/src/account/services/account-resource-injector/account-resource-injector.service.ts +41 -0
  752. package/src/account/services/i18n/i18n.service.ts +7 -0
  753. package/src/account/tokens/classes/classes.token.ts +6 -0
  754. package/src/account/tokens/i18n/i18n.token.ts +3 -0
  755. package/src/account/tokens/kc-context/kc-context.token.ts +6 -0
  756. package/src/lib/pipes/is-array-with-empty-object/is-array-with-empty-object.pipe.ts +16 -0
  757. package/src/{login/pipes → lib/pipes/kc-sanitize}/kc-sanitize.pipe.ts +9 -11
  758. package/src/lib/services/{resource-injector.service.ts → resource-injector/resource-injector.service.ts} +1 -1
  759. package/src/lib/tokens/use-default-css/use-default-css.token.ts +3 -0
  760. package/src/login/classes/{component-reference.class.ts → component-reference/component-reference.class.ts} +1 -1
  761. package/src/login/components/add-remove-buttons-multi-valued-attribute/add-remove-buttons-multi-valued-attribute.component.html +19 -19
  762. package/src/login/components/add-remove-buttons-multi-valued-attribute/add-remove-buttons-multi-valued-attribute.component.ts +8 -16
  763. package/src/login/components/field-errors/field-errors.component.html +10 -10
  764. package/src/login/components/field-errors/field-errors.component.ts +9 -14
  765. package/src/login/components/group-label/group-label.component.html +25 -25
  766. package/src/login/components/group-label/group-label.component.ts +13 -17
  767. package/src/login/components/input-field-by-type/input-field-by-type.component.html +57 -57
  768. package/src/login/components/input-field-by-type/input-field-by-type.component.ts +15 -32
  769. package/src/login/components/input-tag/input-tag.component.html +41 -45
  770. package/src/login/components/input-tag/input-tag.component.ts +19 -28
  771. package/src/login/components/input-tag-selects/input-tag-selects.component.html +22 -22
  772. package/src/login/components/input-tag-selects/input-tag-selects.component.ts +14 -25
  773. package/src/login/components/logout-other-sessions/logout-other-sessions.component.html +15 -15
  774. package/src/login/components/logout-other-sessions/logout-other-sessions.component.ts +10 -7
  775. package/src/login/components/password-wrapper/password-wrapper.component.html +13 -13
  776. package/src/login/components/password-wrapper/password-wrapper.component.ts +12 -22
  777. package/src/login/components/select-tag/select-tag.component.html +26 -26
  778. package/src/login/components/select-tag/select-tag.component.ts +16 -28
  779. package/src/login/components/textarea-tag/textarea-tag.component.html +13 -15
  780. package/src/login/components/textarea-tag/textarea-tag.component.ts +10 -19
  781. package/src/login/components/user-profile-form-fields/user-profile-form-fields.component.html +66 -73
  782. package/src/login/components/user-profile-form-fields/user-profile-form-fields.component.ts +28 -42
  783. package/src/login/containers/template/template.component.html +217 -0
  784. package/src/login/containers/template/template.component.ts +166 -0
  785. package/src/login/directives/{kc-class.directive.ts → kc-class/kc-class.directive.ts} +2 -3
  786. package/src/login/getDefaultPageComponent.ts +153 -0
  787. package/src/login/i18n.ts +1 -1
  788. package/src/login/pages/code/code.component.html +13 -17
  789. package/src/login/pages/code/code.component.ts +28 -16
  790. package/src/login/pages/delete-account-confirm/delete-account-confirm.component.html +35 -37
  791. package/src/login/pages/delete-account-confirm/delete-account-confirm.component.ts +28 -17
  792. package/src/login/pages/delete-credential/delete-credential.component.html +23 -25
  793. package/src/login/pages/delete-credential/delete-credential.component.ts +28 -28
  794. package/src/login/pages/error/error.component.html +18 -20
  795. package/src/login/pages/error/error.component.ts +28 -16
  796. package/src/login/pages/frontchannel-logout/frontchannel-logout.component.html +20 -29
  797. package/src/login/pages/frontchannel-logout/frontchannel-logout.component.ts +28 -28
  798. package/src/login/pages/idp-review-user-profile/idp-review-user-profile.component.html +24 -33
  799. package/src/login/pages/idp-review-user-profile/idp-review-user-profile.component.ts +42 -35
  800. package/src/login/pages/info/info.component.html +31 -40
  801. package/src/login/pages/info/info.component.ts +29 -39
  802. package/src/login/pages/login/login.component.html +177 -187
  803. package/src/login/pages/login/login.component.ts +32 -45
  804. package/src/login/pages/login-config-totp/login-config-totp.component.html +157 -156
  805. package/src/login/pages/login-config-totp/login-config-totp.component.ts +29 -42
  806. package/src/login/pages/login-idp-link-confirm/login-idp-link-confirm.component.html +22 -32
  807. package/src/login/pages/login-idp-link-confirm/login-idp-link-confirm.component.ts +23 -29
  808. package/src/login/pages/login-idp-link-confirm-override/login-idp-link-confirm-override.component.html +20 -30
  809. package/src/login/pages/login-idp-link-confirm-override/login-idp-link-confirm-override.component.ts +23 -31
  810. package/src/login/pages/login-idp-link-email/login-idp-link-email.component.html +24 -32
  811. package/src/login/pages/login-idp-link-email/login-idp-link-email.component.ts +23 -29
  812. package/src/login/pages/login-oauth-grant/login-oauth-grant.component.html +66 -73
  813. package/src/login/pages/login-oauth-grant/login-oauth-grant.component.ts +23 -30
  814. package/src/login/pages/login-oauth2-device-verify-user-code/login-oauth2-device-verify-user-code.component.html +40 -49
  815. package/src/login/pages/login-oauth2-device-verify-user-code/login-oauth2-device-verify-user-code.component.ts +27 -30
  816. package/src/login/pages/login-otp/login-otp.component.html +79 -88
  817. package/src/login/pages/login-otp/login-otp.component.ts +28 -27
  818. package/src/login/pages/login-page-expired/login-page-expired.component.html +24 -31
  819. package/src/login/pages/login-page-expired/login-page-expired.component.ts +26 -27
  820. package/src/login/pages/login-passkeys-conditional-authenticate/login-passkeys-conditional-authenticate.component.html +175 -180
  821. package/src/login/pages/login-passkeys-conditional-authenticate/login-passkeys-conditional-authenticate.component.ts +31 -28
  822. package/src/login/pages/login-password/login-password.component.html +76 -83
  823. package/src/login/pages/login-password/login-password.component.ts +30 -35
  824. package/src/login/pages/login-recovery-authn-code-config/login-recovery-authn-code-config.component.html +97 -106
  825. package/src/login/pages/login-recovery-authn-code-config/login-recovery-authn-code-config.component.ts +30 -37
  826. package/src/login/pages/login-recovery-authn-code-input/login-recovery-authn-code-input.component.html +57 -65
  827. package/src/login/pages/login-recovery-authn-code-input/login-recovery-authn-code-input.component.ts +29 -32
  828. package/src/login/pages/login-reset-otp/login-reset-otp.component.html +53 -58
  829. package/src/login/pages/login-reset-otp/login-reset-otp.component.ts +27 -26
  830. package/src/login/pages/login-reset-password/login-reset-password.component.html +65 -74
  831. package/src/login/pages/login-reset-password/login-reset-password.component.ts +28 -28
  832. package/src/login/pages/login-update-password/login-update-password.component.html +88 -98
  833. package/src/login/pages/login-update-password/login-update-password.component.ts +30 -40
  834. package/src/login/pages/login-update-profile/login-update-profile.component.html +40 -50
  835. package/src/login/pages/login-update-profile/login-update-profile.component.ts +40 -34
  836. package/src/login/pages/login-username/login-username.component.html +131 -141
  837. package/src/login/pages/login-username/login-username.component.ts +29 -39
  838. package/src/login/pages/login-verify-email/login-verify-email.component.html +15 -23
  839. package/src/login/pages/login-verify-email/login-verify-email.component.ts +27 -28
  840. package/src/login/pages/login-x509-info/login-x509-info.component.html +76 -85
  841. package/src/login/pages/login-x509-info/login-x509-info.component.ts +27 -27
  842. package/src/login/pages/logout-confirm/logout-confirm.component.html +35 -45
  843. package/src/login/pages/logout-confirm/logout-confirm.component.ts +23 -28
  844. package/src/login/pages/register/register.component.html +89 -99
  845. package/src/login/pages/register/register.component.ts +42 -41
  846. package/src/login/pages/saml-post-form/saml-post-form.component.html +31 -41
  847. package/src/login/pages/saml-post-form/saml-post-form.component.ts +30 -32
  848. package/src/login/pages/select-authenticator/select-authenticator.component.html +36 -45
  849. package/src/login/pages/select-authenticator/select-authenticator.component.ts +28 -35
  850. package/src/login/pages/terms/terms.component.html +19 -28
  851. package/src/login/pages/terms/terms.component.ts +28 -27
  852. package/src/login/pages/update-email/update-email.component.html +40 -49
  853. package/src/login/pages/update-email/update-email.component.ts +38 -37
  854. package/src/login/pages/webauthn-authenticate/webauthn-authenticate.component.html +116 -129
  855. package/src/login/pages/webauthn-authenticate/webauthn-authenticate.component.ts +33 -50
  856. package/src/login/pages/webauthn-error/webauthn-error.component.html +34 -44
  857. package/src/login/pages/webauthn-error/webauthn-error.component.ts +29 -33
  858. package/src/login/pages/webauthn-register/webauthn-register.component.html +49 -59
  859. package/src/login/pages/webauthn-register/webauthn-register.component.ts +34 -41
  860. package/src/login/providers/keycloakify-angular/keycloakify-angular.providers.ts +69 -0
  861. package/src/login/services/i18n/i18n.service.ts +7 -0
  862. package/src/login/services/{login-resource-injector.service.ts → login-resource-injector/login-resource-injector.service.ts} +5 -4
  863. package/src/login/services/submit/submit.service.ts +12 -0
  864. package/src/login/services/{user-profile-form.service.ts → user-profile-form/user-profile-form.service.ts} +11 -13
  865. package/src/login/tokens/classes/classes.token.ts +6 -0
  866. package/src/login/tokens/i18n/i18n.token.ts +3 -0
  867. package/src/login/tokens/kc-context/kc-context.token.ts +4 -0
  868. package/src/login/tokens/make-user-confirm-password/make-user-confirm-password.token.ts +5 -0
  869. package/lib/i18n.d.ts +0 -4
  870. package/lib/i18n.mjs +0 -6
  871. package/lib/models/index.mjs +0 -2
  872. package/lib/models/script.model.mjs +0 -2
  873. package/lib/providers/keycloakify-angular.providers.mjs +0 -54
  874. package/lib/public-api.mjs +0 -4
  875. package/lib/services/i18n.service.d.ts +0 -6
  876. package/lib/services/i18n.service.mjs +0 -11
  877. package/lib/services/index.mjs +0 -3
  878. package/lib/services/resource-injector.service.mjs +0 -54
  879. package/login/DefaultPage.d.ts +0 -260
  880. package/login/DefaultPage.mjs +0 -121
  881. package/login/KcContext.mjs +0 -2
  882. package/login/classes/component-reference.class.mjs +0 -3
  883. package/login/components/add-remove-buttons-multi-valued-attribute/add-remove-buttons-multi-valued-attribute.component.mjs +0 -105
  884. package/login/components/field-errors/field-errors.component.mjs +0 -32
  885. package/login/components/group-label/group-label.component.mjs +0 -41
  886. package/login/components/hello-world/hello-world.component.d.ts +0 -5
  887. package/login/components/hello-world/hello-world.component.mjs +0 -11
  888. package/login/components/index.d.ts +0 -11
  889. package/login/components/index.mjs +0 -12
  890. package/login/components/input-field-by-type/input-field-by-type.component.mjs +0 -52
  891. package/login/components/input-tag/input-tag.component.mjs +0 -89
  892. package/login/components/input-tag-selects/input-tag-selects.component.mjs +0 -115
  893. package/login/components/logout-other-sessions/logout-other-sessions.component.mjs +0 -30
  894. package/login/components/password-wrapper/password-wrapper.component.mjs +0 -44
  895. package/login/components/select-tag/select-tag.component.mjs +0 -80
  896. package/login/components/textarea-tag/textarea-tag.component.mjs +0 -48
  897. package/login/components/user-profile-form-fields/user-profile-form-fields.component.mjs +0 -62
  898. package/login/containers/template.component.d.ts +0 -31
  899. package/login/containers/template.component.mjs +0 -71
  900. package/login/directives/attributes.directive.mjs +0 -26
  901. package/login/directives/index.mjs +0 -3
  902. package/login/directives/kc-class.directive.mjs +0 -138
  903. package/login/i18n.mjs +0 -2
  904. package/login/pages/code/code.component.mjs +0 -32
  905. package/login/pages/delete-account-confirm/delete-account-confirm.component.mjs +0 -32
  906. package/login/pages/delete-credential/delete-credential.component.mjs +0 -37
  907. package/login/pages/error/error.component.mjs +0 -32
  908. package/login/pages/frontchannel-logout/frontchannel-logout.component.mjs +0 -41
  909. package/login/pages/idp-review-user-profile/idp-review-user-profile.component.mjs +0 -47
  910. package/login/pages/info/info.component.mjs +0 -58
  911. package/login/pages/login/login.component.mjs +0 -51
  912. package/login/pages/login-config-totp/login-config-totp.component.mjs +0 -47
  913. package/login/pages/login-idp-link-confirm/login-idp-link-confirm.component.mjs +0 -37
  914. package/login/pages/login-idp-link-confirm-override/login-idp-link-confirm-override.component.mjs +0 -37
  915. package/login/pages/login-idp-link-email/login-idp-link-email.component.mjs +0 -37
  916. package/login/pages/login-oauth-grant/login-oauth-grant.component.mjs +0 -38
  917. package/login/pages/login-oauth2-device-verify-user-code/login-oauth2-device-verify-user-code.component.mjs +0 -37
  918. package/login/pages/login-otp/login-otp.component.mjs +0 -38
  919. package/login/pages/login-page-expired/login-page-expired.component.mjs +0 -36
  920. package/login/pages/login-passkeys-conditional-authenticate/login-passkeys-conditional-authenticate.component.mjs +0 -85
  921. package/login/pages/login-password/login-password.component.mjs +0 -46
  922. package/login/pages/login-recovery-authn-code-config/login-recovery-authn-code-config.component.mjs +0 -45
  923. package/login/pages/login-recovery-authn-code-input/login-recovery-authn-code-input.component.mjs +0 -38
  924. package/login/pages/login-reset-otp/login-reset-otp.component.mjs +0 -37
  925. package/login/pages/login-reset-password/login-reset-password.component.mjs +0 -38
  926. package/login/pages/login-update-password/login-update-password.component.mjs +0 -47
  927. package/login/pages/login-update-profile/login-update-profile.component.mjs +0 -44
  928. package/login/pages/login-username/login-username.component.mjs +0 -49
  929. package/login/pages/login-verify-email/login-verify-email.component.mjs +0 -37
  930. package/login/pages/login-x509-info/login-x509-info.component.mjs +0 -37
  931. package/login/pages/logout-confirm/logout-confirm.component.mjs +0 -37
  932. package/login/pages/register/register.component.mjs +0 -55
  933. package/login/pages/saml-post-form/saml-post-form.component.mjs +0 -49
  934. package/login/pages/select-authenticator/select-authenticator.component.mjs +0 -45
  935. package/login/pages/terms/terms.component.mjs +0 -37
  936. package/login/pages/update-email/update-email.component.mjs +0 -46
  937. package/login/pages/webauthn-authenticate/webauthn-authenticate.component.mjs +0 -87
  938. package/login/pages/webauthn-error/webauthn-error.component.mjs +0 -51
  939. package/login/pages/webauthn-register/webauthn-register.component.mjs +0 -81
  940. package/login/pipes/advanced-msg-str.pipe.d.ts +0 -8
  941. package/login/pipes/advanced-msg-str.pipe.mjs +0 -19
  942. package/login/pipes/index.d.ts +0 -6
  943. package/login/pipes/index.mjs +0 -7
  944. package/login/pipes/input-type.pipe.mjs +0 -20
  945. package/login/pipes/kc-sanitize.pipe.mjs +0 -34
  946. package/login/pipes/msg-str.pipe.d.ts +0 -9
  947. package/login/pipes/msg-str.pipe.mjs +0 -19
  948. package/login/pipes/to-array.pipe.mjs +0 -21
  949. package/login/pipes/to-number.pipe.mjs +0 -20
  950. package/login/services/index.mjs +0 -3
  951. package/login/services/login-resource-injector.service.mjs +0 -68
  952. package/login/services/user-profile-form.service.mjs +0 -1017
  953. package/src/lib/i18n.ts +0 -9
  954. package/src/lib/models/index.ts +0 -1
  955. package/src/lib/providers/keycloakify-angular.providers.ts +0 -92
  956. package/src/lib/public-api.ts +0 -12
  957. package/src/lib/services/i18n.service.ts +0 -5
  958. package/src/lib/services/index.ts +0 -2
  959. package/src/login/DefaultPage.ts +0 -208
  960. package/src/login/components/hello-world/hello-world.component.css +0 -0
  961. package/src/login/components/hello-world/hello-world.component.html +0 -1
  962. package/src/login/components/hello-world/hello-world.component.ts +0 -10
  963. package/src/login/components/index.ts +0 -11
  964. package/src/login/containers/template.component.html +0 -203
  965. package/src/login/containers/template.component.ts +0 -94
  966. package/src/login/directives/index.ts +0 -2
  967. package/src/login/pipes/advanced-msg-str.pipe.ts +0 -13
  968. package/src/login/pipes/index.ts +0 -6
  969. package/src/login/pipes/msg-str.pipe.ts +0 -14
  970. package/src/login/services/index.ts +0 -2
  971. package/src/tsconfig.json +0 -18
  972. /package/{login/directives → lib/directives/attributes}/attributes.directive.d.ts +0 -0
  973. /package/lib/models/{index.d.ts → script/public-api.d.ts} +0 -0
  974. /package/lib/models/{script.model.d.ts → script/script.model.d.ts} +0 -0
  975. /package/{login/pipes → lib/pipes/input-type}/input-type.pipe.d.ts +0 -0
  976. /package/{login/pipes → lib/pipes/to-array}/to-array.pipe.d.ts +0 -0
  977. /package/{login/pipes → lib/pipes/to-number}/to-number.pipe.d.ts +0 -0
  978. /package/login/{KcContext.d.ts → KcContext/KcContext.d.ts} +0 -0
  979. /package/src/{login/directives → lib/directives/attributes}/attributes.directive.ts +0 -0
  980. /package/src/lib/models/{script.model.ts → script/script.model.ts} +0 -0
  981. /package/src/{login/pipes → lib/pipes/input-type}/input-type.pipe.ts +0 -0
  982. /package/src/{login/pipes → lib/pipes/to-array}/to-array.pipe.ts +0 -0
  983. /package/src/{login/pipes → lib/pipes/to-number}/to-number.pipe.ts +0 -0
@@ -1,85 +0,0 @@
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> {{ nameProperty | advancedMsgStr }} </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> {{ nameProperty | advancedMsgStr }} </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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4tcGFzc2tleXMtY29uZGl0aW9uYWwtYXV0aGVudGljYXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tleWNsb2FraWZ5LWFuZ3VsYXIvc3JjL2xvZ2luL3BhZ2VzL2xvZ2luLXBhc3NrZXlzLWNvbmRpdGlvbmFsLWF1dGhlbnRpY2F0ZS9sb2dpbi1wYXNza2V5cy1jb25kaXRpb25hbC1hdXRoZW50aWNhdGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2V5Y2xvYWtpZnktYW5ndWxhci9zcmMvbG9naW4vcGFnZXMvbG9naW4tcGFzc2tleXMtY29uZGl0aW9uYWwtYXV0aGVudGljYXRlL2xvZ2luLXBhc3NrZXlzLWNvbmRpdGlvbmFsLWF1dGhlbnRpY2F0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkYsT0FBTyxFQUNILE9BQU8sRUFDUCxVQUFVLEVBQ1YsZUFBZSxFQUNsQixNQUFNLHFDQUFxQyxDQUFDO0FBSTdDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUNsRyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUM3RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUM1RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUM1RixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDM0UsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0scUNBQXFDLENBQUM7O0FBZ0JuRixNQUFNLE9BQU8sNkNBQThDLFNBQVEsa0JBQWtCO0lBYWpGO1FBQ0ksS0FBSyxFQUFFLENBQUM7UUFiWixjQUFTLEdBQ0wsTUFBTSxDQUVKLFVBQVUsQ0FBQyxDQUFDO1FBQ2xCLGlDQUE0QixHQUFHLE1BQU0sQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO1FBQ3BFLFdBQU0sR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDbkIsb0JBQWUsR0FBRyxNQUFNLENBQVUsZUFBZSxDQUFDLENBQUM7UUFDbkQsWUFBTyxHQUFHLE1BQU0sQ0FBb0MsT0FBTyxDQUFDLENBQUM7UUFDdEUsZ0JBQVcsR0FBWSxJQUFJLENBQUM7UUFFNUIsaUJBQVksR0FBRyw0QkFBNEIsQ0FBQztRQUl4QyxNQUFNLEVBQ0YsR0FBRyxFQUNILFNBQVMsRUFDVCxJQUFJLEVBQ0osZ0JBQWdCLEVBQ2hCLGdCQUFnQixFQUVoQixhQUFhLEVBQ2hCLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUNuQixNQUFNLE9BQU8sR0FBYTtZQUN0QjtnQkFDSSxJQUFJLEVBQUUsUUFBUTtnQkFDZCxFQUFFLEVBQUUsOEJBQThCO2dCQUNsQyxXQUFXLEVBQUU7OERBQ2lDLEdBQUcsQ0FBQyxhQUFhO3dEQUN2QixHQUFHLENBQUMsYUFBYTs7a0VBRVAsSUFBSSxDQUFDLFlBQVk7OzZDQUV0QyxnQkFBZ0I7c0NBQ3ZCLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDOzZDQUNsQixJQUFJLENBQUMsU0FBUyxDQUFDLGdCQUFnQixDQUFDO2lDQUM1QyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQzswQ0FDWCxhQUFhOzs7Ozt1Q0FLaEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDOzs7Ozs7bUNBTTlFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsa0NBQWtDLENBQUMsQ0FBQzs7V0FFakc7YUFDRTtTQUNKLENBQUM7UUFDRixJQUFJLENBQUMsNEJBQTRCLENBQUMsdUJBQXVCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUVELDJCQUEyQixDQUFDLFNBQWlCO1FBQ3pDLE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQztZQUNyQixlQUFlLEVBQUUsSUFBSSxDQUFDLGVBQWUsSUFBSSxJQUFJO1lBQzdDLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztTQUN4QixDQUFDLENBQUMsTUFBTSxDQUFDO1FBQ1YsOERBQThEO1FBQzlELE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxTQUFnQixDQUFDLENBQUM7UUFDM0MsSUFBSSxTQUFTLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDMUIsT0FBTyxNQUFNLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQUMzQyxDQUFDO1FBQ0QsT0FBTyxTQUFTLENBQUM7SUFDckIsQ0FBQzs4R0FwRVEsNkNBQTZDO2tHQUE3Qyw2Q0FBNkMsc0RBUjNDO1lBQ1AsVUFBVTtZQUNWO2dCQUNJLE9BQU8sRUFBRSxrQkFBa0I7Z0JBQzNCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsNkNBQTZDLENBQUM7YUFDL0U7U0FDSixpREM3QkwsMjdOQTJNQSw0Q0R4TGMsaUJBQWlCLCtKQUFFLFVBQVUsK0NBQUUsZ0JBQWdCLDBGQUFFLGtCQUFrQjs7MkZBWXBFLDZDQUE2QztrQkFkekQsU0FBUztpQ0FDTSxJQUFJLFdBQ1AsQ0FBQyxpQkFBaUIsRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsa0JBQWtCLENBQUMsWUFDcEUsU0FBUyxtQkFFRix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDO3dCQUNQLFVBQVU7d0JBQ1Y7NEJBQ0ksT0FBTyxFQUFFLGtCQUFrQjs0QkFDM0IsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsOENBQThDLENBQUM7eUJBQy9FO3FCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgZm9yd2FyZFJlZiwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIENMQVNTRVMsXG4gICAgS0NfQ09OVEVYVCxcbiAgICBVU0VfREVGQVVMVF9DU1Ncbn0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbGliL3B1YmxpYy1hcGknO1xuaW1wb3J0IHsgU2NyaXB0IH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbGliL21vZGVscyc7XG5pbXBvcnQgeyBDbGFzc0tleSB9IGZyb20gJ2tleWNsb2FraWZ5L2xvZ2luL2xpYi9rY0Nsc3gnO1xuaW1wb3J0IHsgS2NDb250ZXh0IH0gZnJvbSAna2V5Y2xvYWtpZnkvbG9naW4vS2NDb250ZXh0JztcbmltcG9ydCB7IGdldEtjQ2xzeCB9IGZyb20gJ2tleWNsb2FraWZ5L2xvZ2luL2xpYi9rY0Nsc3gnO1xuaW1wb3J0IHsgQ29tcG9uZW50UmVmZXJlbmNlIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vY2xhc3Nlcy9jb21wb25lbnQtcmVmZXJlbmNlLmNsYXNzJztcbmltcG9ydCB7IFRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vY29udGFpbmVycy90ZW1wbGF0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgS2NDbGFzc0RpcmVjdGl2ZSB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL2RpcmVjdGl2ZXMva2MtY2xhc3MuZGlyZWN0aXZlJztcbmltcG9ydCB7IEFkdmFuY2VkTXNnU3RyUGlwZSB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL3BpcGVzL2FkdmFuY2VkLW1zZy1zdHIucGlwZSc7XG5pbXBvcnQgeyBNc2dTdHJQaXBlIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vcGlwZXMvbXNnLXN0ci5waXBlJztcbmltcG9ydCB7IExvZ2luUmVzb3VyY2VJbmplY3RvclNlcnZpY2UgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9zZXJ2aWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1RlbXBsYXRlQ29tcG9uZW50LCBNc2dTdHJQaXBlLCBLY0NsYXNzRGlyZWN0aXZlLCBBZHZhbmNlZE1zZ1N0clBpcGVdLFxuICAgIHNlbGVjdG9yOiAna2Mtcm9vdCcsXG4gICAgdGVtcGxhdGVVcmw6ICdsb2dpbi1wYXNza2V5cy1jb25kaXRpb25hbC1hdXRoZW50aWNhdGUuY29tcG9uZW50Lmh0bWwnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICBNc2dTdHJQaXBlLFxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBDb21wb25lbnRSZWZlcmVuY2UsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBMb2dpblBhc3NrZXlzQ29uZGl0aW9uYWxBdXRoZW50aWNhdGVDb21wb25lbnQpXG4gICAgICAgIH1cbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIExvZ2luUGFzc2tleXNDb25kaXRpb25hbEF1dGhlbnRpY2F0ZUNvbXBvbmVudCBleHRlbmRzIENvbXBvbmVudFJlZmVyZW5jZSB7XG4gICAga2NDb250ZXh0ID1cbiAgICAgICAgaW5qZWN0PFxuICAgICAgICAgICAgRXh0cmFjdDxLY0NvbnRleHQsIHsgcGFnZUlkOiAnbG9naW4tcGFzc2tleXMtY29uZGl0aW9uYWwtYXV0aGVudGljYXRlLmZ0bCcgfT5cbiAgICAgICAgPihLQ19DT05URVhUKTtcbiAgICBsb2dpblJlc291cmNlSW5qZWN0b3JTZXJ2aWNlID0gaW5qZWN0KExvZ2luUmVzb3VyY2VJbmplY3RvclNlcnZpY2UpO1xuICAgIG1zZ1N0ciA9IGluamVjdChNc2dTdHJQaXBlKTtcbiAgICBvdmVycmlkZSBkb1VzZURlZmF1bHRDc3MgPSBpbmplY3Q8Ym9vbGVhbj4oVVNFX0RFRkFVTFRfQ1NTKTtcbiAgICBvdmVycmlkZSBjbGFzc2VzID0gaW5qZWN0PFBhcnRpYWw8UmVjb3JkPENsYXNzS2V5LCBzdHJpbmc+Pj4oQ0xBU1NFUyk7XG4gICAgZGlzcGxheUluZm86IGJvb2xlYW4gPSB0cnVlO1xuXG4gICAgYXV0aEJ1dHRvbklkID0gJ2F1dGhlbnRpY2F0ZVdlYkF1dGhuQnV0dG9uJztcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBjb25zdCB7XG4gICAgICAgICAgICB1cmwsXG4gICAgICAgICAgICBjaGFsbGVuZ2UsXG4gICAgICAgICAgICBycElkLFxuICAgICAgICAgICAgdXNlclZlcmlmaWNhdGlvbixcbiAgICAgICAgICAgIGlzVXNlcklkZW50aWZpZWQsXG5cbiAgICAgICAgICAgIGNyZWF0ZVRpbWVvdXRcbiAgICAgICAgfSA9IHRoaXMua2NDb250ZXh0O1xuICAgICAgICBjb25zdCBzY3JpcHRzOiBTY3JpcHRbXSA9IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB0eXBlOiAnbW9kdWxlJyxcbiAgICAgICAgICAgICAgICBpZDogJ0xvZ2luUmVjb3ZlcnlBdXRobkNvZGVDb25maWcnLFxuICAgICAgICAgICAgICAgIHRleHRDb250ZW50OiBgXG4gICAgICAgICAgICAgICAgICAgIGltcG9ydCB7IGF1dGhlbnRpY2F0ZUJ5V2ViQXV0aG4gfSBmcm9tIFwiJHt1cmwucmVzb3VyY2VzUGF0aH0vanMvd2ViYXV0aG5BdXRoZW50aWNhdGUuanNcIjtcbiAgICAgICAgICAgICAgICAgICAgaW1wb3J0IHsgaW5pdEF1dGhlbnRpY2F0ZSB9IGZyb20gXCIke3VybC5yZXNvdXJjZXNQYXRofS9qcy9wYXNza2V5c0NvbmRpdGlvbmFsQXV0aC5qc1wiO1xuXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGF1dGhCdXR0b24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcIiR7dGhpcy5hdXRoQnV0dG9uSWR9XCIpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBpbnB1dCA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzVXNlcklkZW50aWZpZWQgOiAke2lzVXNlcklkZW50aWZpZWR9LFxuICAgICAgICAgICAgICAgICAgICAgICAgY2hhbGxlbmdlIDogJHtKU09OLnN0cmluZ2lmeShjaGFsbGVuZ2UpfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHVzZXJWZXJpZmljYXRpb24gOiAke0pTT04uc3RyaW5naWZ5KHVzZXJWZXJpZmljYXRpb24pfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJwSWQgOiAke0pTT04uc3RyaW5naWZ5KHJwSWQpfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZVRpbWVvdXQgOiAke2NyZWF0ZVRpbWVvdXR9XG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIGF1dGhCdXR0b24uYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0ZUJ5V2ViQXV0aG4oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLmlucHV0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm1zZyA6ICR7SlNPTi5zdHJpbmdpZnkodGhpcy5tc2dTdHIudHJhbnNmb3JtKCd3ZWJhdXRobi11bnN1cHBvcnRlZC1icm93c2VyLXRleHQnKSl9XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICAgICAgaW5pdEF1dGhlbnRpY2F0ZSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAuLi5pbnB1dCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVycm1zZyA6ICR7SlNPTi5zdHJpbmdpZnkodGhpcy5tc2dTdHIudHJhbnNmb3JtKCdwYXNza2V5LXVuc3VwcG9ydGVkLWJyb3dzZXItdGV4dCcpKX1cbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgYFxuICAgICAgICAgICAgfVxuICAgICAgICBdO1xuICAgICAgICB0aGlzLmxvZ2luUmVzb3VyY2VJbmplY3RvclNlcnZpY2UuaW5zZXJ0QWRkaXRpb25hbFNjcmlwdHMoc2NyaXB0cyk7XG4gICAgfVxuXG4gICAgc2VsZWN0QXV0aExpc3RJdGVtSWNvbkNsYXNzKGljb25DbGFzczogc3RyaW5nKSB7XG4gICAgICAgIGNvbnN0IGtjQ2xzeCA9IGdldEtjQ2xzeCh7XG4gICAgICAgICAgICBkb1VzZURlZmF1bHRDc3M6IHRoaXMuZG9Vc2VEZWZhdWx0Q3NzID8/IHRydWUsXG4gICAgICAgICAgICBjbGFzc2VzOiB0aGlzLmNsYXNzZXNcbiAgICAgICAgfSkua2NDbHN4O1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgICBjb25zdCBjbGFzc05hbWUgPSBrY0Nsc3goaWNvbkNsYXNzIGFzIGFueSk7XG4gICAgICAgIGlmIChjbGFzc05hbWUgPT09IGljb25DbGFzcykge1xuICAgICAgICAgICAgcmV0dXJuIGtjQ2xzeCgna2NXZWJBdXRobkRlZmF1bHRJY29uJyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNsYXNzTmFtZTtcbiAgICB9XG59XG4iLCJAbGV0IGF1dGhlbnRpY2F0b3JzID0ga2NDb250ZXh0LmF1dGhlbnRpY2F0b3JzO1xuQGxldCByZWFsbSA9IGtjQ29udGV4dC5yZWFsbTtcbkBsZXQgdXJsID0ga2NDb250ZXh0LnVybDtcbkBsZXQgc2hvdWxkRGlzcGxheUF1dGhlbnRpY2F0b3JzID0ga2NDb250ZXh0LnNob3VsZERpc3BsYXlBdXRoZW50aWNhdG9ycztcbkBsZXQgbG9naW4gPSBrY0NvbnRleHQubG9naW47XG5AbGV0IG1lc3NhZ2VzUGVyRmllbGQgPSBrY0NvbnRleHQubWVzc2FnZXNQZXJGaWVsZDtcbkBsZXQgdXNlcm5hbWVIaWRkZW4gPSBrY0NvbnRleHQudXNlcm5hbWVIaWRkZW47XG5AbGV0IHJlZ2lzdHJhdGlvbkRpc2FibGVkID0ga2NDb250ZXh0LnJlZ2lzdHJhdGlvbkRpc2FibGVkO1xuPGtjLWxvZ2luLXRlbXBsYXRlIFtkaXNwbGF5SW5mb109XCJkaXNwbGF5SW5mb1wiPlxuICA8bmctY29udGFpbmVyIGhlYWRlck5vZGU+XG4gICAge3sgJ3Bhc3NrZXktbG9naW4tdGl0bGUnIHwgbXNnU3RyIH19XG4gIDwvbmctY29udGFpbmVyPlxuICA8bmctY29udGFpbmVyIGluZm9Ob2RlPlxuICAgIEBpZiAocmVhbG0ucmVnaXN0cmF0aW9uQWxsb3dlZCAmJiAhcmVnaXN0cmF0aW9uRGlzYWJsZWQpIHtcbiAgICAgIDxkaXYgaWQ9XCJrYy1yZWdpc3RyYXRpb25cIj5cbiAgICAgICAgPHNwYW4+XG4gICAgICAgICAge3sgJ25vQWNjb3VudCcgfCBtc2dTdHIgfX1cbiAgICAgICAgICA8YVxuICAgICAgICAgICAgdGFiSW5kZXg9XCI2XCJcbiAgICAgICAgICAgIFtocmVmXT1cInVybC5yZWdpc3RyYXRpb25VcmxcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt7ICdkb1JlZ2lzdGVyJyB8IG1zZ1N0ciB9fVxuICAgICAgICAgIDwvYT5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgfVxuICA8L25nLWNvbnRhaW5lcj5cblxuICA8bmctY29udGFpbmVyIGNvbnRlbnQ+XG4gICAgPGZvcm1cbiAgICAgIGlkPVwid2ViYXV0aFwiXG4gICAgICBbYWN0aW9uXT1cInVybC5sb2dpbkFjdGlvblwiXG4gICAgICBtZXRob2Q9XCJwb3N0XCJcbiAgICA+XG4gICAgICA8aW5wdXRcbiAgICAgICAgdHlwZT1cImhpZGRlblwiXG4gICAgICAgIGlkPVwiY2xpZW50RGF0YUpTT05cIlxuICAgICAgICBuYW1lPVwiY2xpZW50RGF0YUpTT05cIlxuICAgICAgLz5cbiAgICAgIDxpbnB1dFxuICAgICAgICB0eXBlPVwiaGlkZGVuXCJcbiAgICAgICAgaWQ9XCJhdXRoZW50aWNhdG9yRGF0YVwiXG4gICAgICAgIG5hbWU9XCJhdXRoZW50aWNhdG9yRGF0YVwiXG4gICAgICAvPlxuICAgICAgPGlucHV0XG4gICAgICAgIHR5cGU9XCJoaWRkZW5cIlxuICAgICAgICBpZD1cInNpZ25hdHVyZVwiXG4gICAgICAgIG5hbWU9XCJzaWduYXR1cmVcIlxuICAgICAgLz5cbiAgICAgIDxpbnB1dFxuICAgICAgICB0eXBlPVwiaGlkZGVuXCJcbiAgICAgICAgaWQ9XCJjcmVkZW50aWFsSWRcIlxuICAgICAgICBuYW1lPVwiY3JlZGVudGlhbElkXCJcbiAgICAgIC8+XG4gICAgICA8aW5wdXRcbiAgICAgICAgdHlwZT1cImhpZGRlblwiXG4gICAgICAgIGlkPVwidXNlckhhbmRsZVwiXG4gICAgICAgIG5hbWU9XCJ1c2VySGFuZGxlXCJcbiAgICAgIC8+XG4gICAgICA8aW5wdXRcbiAgICAgICAgdHlwZT1cImhpZGRlblwiXG4gICAgICAgIGlkPVwiZXJyb3JcIlxuICAgICAgICBuYW1lPVwiZXJyb3JcIlxuICAgICAgLz5cbiAgICA8L2Zvcm0+XG4gICAgPGRpdlxuICAgICAgW2tjQ2xhc3NdPVwiJ2tjRm9ybUdyb3VwQ2xhc3MnXCJcbiAgICAgIG5vLWJvdHRvbS1tYXJnaW49XCJ0cnVlXCJcbiAgICAgIHN0eWxlPVwibWFyZ2luLWJvdHRvbTogMFwiXG4gICAgPlxuICAgICAgQGlmIChhdXRoZW50aWNhdG9ycyAhPT0gdW5kZWZpbmVkICYmIGF1dGhlbnRpY2F0b3JzLmF1dGhlbnRpY2F0b3JzLmxlbmd0aCAhPT0gMCkge1xuICAgICAgICA8Zm9ybVxuICAgICAgICAgIGlkPVwiYXV0aG5fc2VsZWN0XCJcbiAgICAgICAgICBba2NDbGFzc109XCIna2NGb3JtQ2xhc3MnXCJcbiAgICAgICAgPlxuICAgICAgICAgIEBmb3IgKGF1dGhlbnRpY2F0b3Igb2YgYXV0aGVudGljYXRvcnMuYXV0aGVudGljYXRvcnM7IHRyYWNrIGF1dGhlbnRpY2F0b3I7IGxldCBpID0gJGluZGV4KSB7XG4gICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgdHlwZT1cImhpZGRlblwiXG4gICAgICAgICAgICAgIG5hbWU9XCJhdXRobl91c2VfY2hrXCJcbiAgICAgICAgICAgICAgcmVhZE9ubHlcbiAgICAgICAgICAgICAgW3ZhbHVlXT1cImF1dGhlbnRpY2F0b3IuY3JlZGVudGlhbElkXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgfVxuICAgICAgICA8L2Zvcm0+XG5cbiAgICAgICAgQGlmIChzaG91bGREaXNwbGF5QXV0aGVudGljYXRvcnMpIHtcbiAgICAgICAgICBAaWYgKGF1dGhlbnRpY2F0b3JzLmF1dGhlbnRpY2F0b3JzLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgIDxwIFtrY0NsYXNzXT1cIidrY1NlbGVjdEF1dGhMaXN0SXRlbVRpdGxlJ1wiPlxuICAgICAgICAgICAgICB7eyAncGFzc2tleS1hdmFpbGFibGUtYXV0aGVudGljYXRvcnMnIHwgbXNnU3RyIH19XG4gICAgICAgICAgICA8L3A+XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgPGRpdiBba2NDbGFzc109XCIna2NGb3JtQ2xhc3MnXCI+XG4gICAgICAgICAgICBAZm9yIChhdXRoZW50aWNhdG9yIG9mIGF1dGhlbnRpY2F0b3JzLmF1dGhlbnRpY2F0b3JzOyB0cmFjayBhdXRoZW50aWNhdG9yOyBsZXQgaSA9ICRpbmRleCkge1xuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgaWQ9XCIna2Mtd2ViYXV0aG4tYXV0aGVudGljYXRvci1pdGVtLScgKyBpXCJcbiAgICAgICAgICAgICAgICBba2NDbGFzc109XCIna2NTZWxlY3RBdXRoTGlzdEl0ZW1DbGFzcydcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInNlbGVjdEF1dGhMaXN0SXRlbUljb25DbGFzcyhhdXRoZW50aWNhdG9yLnRyYW5zcG9ydHMuaWNvbkNsYXNzKVwiXG4gICAgICAgICAgICAgICAgICBba2NDbGFzc109XCIna2NDb21tb25Mb2dvSWRQJ1wiXG4gICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgICAgICAgID48L2k+XG4gICAgICAgICAgICAgICAgPGRpdiBba2NDbGFzc109XCIna2NTZWxlY3RBdXRoTGlzdEl0ZW1Cb2R5Q2xhc3MnXCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIFtpZF09XCIna2Mtd2ViYXV0aG4tYXV0aGVudGljYXRvci1sYWJlbC0nICsgaVwiXG4gICAgICAgICAgICAgICAgICAgIFtrY0NsYXNzXT1cIidrY1NlbGVjdEF1dGhMaXN0SXRlbUhlYWRpbmdDbGFzcydcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7eyBhdXRoZW50aWNhdG9yLmxhYmVsIHwgYWR2YW5jZWRNc2dTdHIgfX1cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgQGlmIChcbiAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRvci50cmFuc3BvcnRzICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRvci50cmFuc3BvcnRzLmRpc3BsYXlOYW1lUHJvcGVydGllcyAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0b3IudHJhbnNwb3J0cy5kaXNwbGF5TmFtZVByb3BlcnRpZXMubGVuZ3RoICE9PSAwXG4gICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgIFtpZF09XCIna2Mtd2ViYXV0aG4tYXV0aGVudGljYXRvci10cmFuc3BvcnQtJyArIGlcIlxuICAgICAgICAgICAgICAgICAgICAgIFtrY0NsYXNzXT1cIidrY1NlbGVjdEF1dGhMaXN0SXRlbURlc2NyaXB0aW9uQ2xhc3MnXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIEBmb3IgKFxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZVByb3BlcnR5IG9mIGF1dGhlbnRpY2F0b3IudHJhbnNwb3J0cy5kaXNwbGF5TmFtZVByb3BlcnRpZXM7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFjayBuYW1lUHJvcGVydHk7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgaSA9ICRpbmRleFxuICAgICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+IHt7IG5hbWVQcm9wZXJ0eSB8IGFkdmFuY2VkTXNnU3RyIH19IDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoaSAhPT0gYXV0aGVudGljYXRvci50cmFuc3BvcnRzLmRpc3BsYXlOYW1lUHJvcGVydGllcy5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPiwgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgW2tjQ2xhc3NdPVwiJ2tjU2VsZWN0QXV0aExpc3RJdGVtRGVzY3JpcHRpb25DbGFzcydcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBbaWRdPVwiJ2tjLXdlYmF1dGhuLWF1dGhlbnRpY2F0b3ItY3JlYXRlZGxhYmVsLScgKyBpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyAncGFzc2tleS1jcmVhdGVkQXQtbGFiZWwnIHwgbXNnU3RyIH19XG4gICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIFtpZF09XCIna2Mtd2ViYXV0aG4tYXV0aGVudGljYXRvci1jcmVhdGVkLScgKyBpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBhdXRoZW50aWNhdG9yLmNyZWF0ZWRBdCB9fVxuICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgW2tjQ2xhc3NdPVwiJ2tjU2VsZWN0QXV0aExpc3RJdGVtRmlsbENsYXNzJ1wiPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgPGRpdiBpZD1cImtjLWZvcm0td3JhcHBlclwiPlxuICAgICAgICBAaWYgKHJlYWxtLnBhc3N3b3JkKSB7XG4gICAgICAgICAgPGZvcm1cbiAgICAgICAgICAgIGlkPVwia2MtZm9ybS1wYXNza2V5XCJcbiAgICAgICAgICAgIFthY3Rpb25dPVwidXJsLmxvZ2luQWN0aW9uXCJcbiAgICAgICAgICAgIG1ldGhvZD1cInBvc3RcIlxuICAgICAgICAgICAgc3R5bGU9XCJkaXNwbGF5OiBub25lXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICBAaWYgKCF1c2VybmFtZUhpZGRlbikge1xuICAgICAgICAgICAgICA8ZGl2IFtrY0NsYXNzXT1cIidrY0Zvcm1Hcm91cENsYXNzJ1wiPlxuICAgICAgICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgICAgICAgZm9yPVwidXNlcm5hbWVcIlxuICAgICAgICAgICAgICAgICAgW2tjQ2xhc3NdPVwiJ2tjTGFiZWxDbGFzcydcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHt7ICdwYXNza2V5LWF1dG9maWxsLXNlbGVjdCcgfCBtc2dTdHIgfX1cbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgdGFiSW5kZXg9XCIxXCJcbiAgICAgICAgICAgICAgICAgIGlkPVwidXNlcm5hbWVcIlxuICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1pbnZhbGlkXT1cIm1lc3NhZ2VzUGVyRmllbGQuZXhpc3RzRXJyb3IoJ3VzZXJuYW1lJylcIlxuICAgICAgICAgICAgICAgICAgW2tjQ2xhc3NdPVwiJ2tjSW5wdXRDbGFzcydcIlxuICAgICAgICAgICAgICAgICAgbmFtZT1cInVzZXJuYW1lXCJcbiAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJsb2dpbi51c2VybmFtZSA/PyAnJ1wiXG4gICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICBhdXRvRm9jdXNcbiAgICAgICAgICAgICAgICAgIGF1dG9Db21wbGV0ZT1cIm9mZlwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICBAaWYgKG1lc3NhZ2VzUGVyRmllbGQuZXhpc3RzRXJyb3IoJ3VzZXJuYW1lJykpIHtcbiAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgIGlkPVwiaW5wdXQtZXJyb3ItdXNlcm5hbWVcIlxuICAgICAgICAgICAgICAgICAgICBba2NDbGFzc109XCIna2NJbnB1dEVycm9yTWVzc2FnZUNsYXNzJ1wiXG4gICAgICAgICAgICAgICAgICAgIGFyaWEtbGl2ZT1cInBvbGl0ZVwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHt7IG1lc3NhZ2VzUGVyRmllbGQuZ2V0KCd1c2VybmFtZScpIH19XG4gICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2Zvcm0+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgaWQ9XCJrYy1mb3JtLXBhc3NrZXktYnV0dG9uXCJcbiAgICAgICAgICAgIFtrY0NsYXNzXT1cIidrY0Zvcm1CdXR0b25zQ2xhc3MnXCJcbiAgICAgICAgICAgIHN0eWxlPVwiZGlzcGxheTogbm9uZVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgIGlkPVwiYXV0aEJ1dHRvbklkXCJcbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgIGF1dG9Gb2N1c1xuICAgICAgICAgICAgICB2YWx1ZT1cInt7ICdwYXNza2V5LWRvQXV0aGVudGljYXRlJyB8IG1zZ1N0ciB9fVwiXG4gICAgICAgICAgICAgIFtrY0NsYXNzXT1cIlsna2NCdXR0b25DbGFzcycsICdrY0J1dHRvblByaW1hcnlDbGFzcycsICdrY0J1dHRvbkJsb2NrQ2xhc3MnLCAna2NCdXR0b25MYXJnZUNsYXNzJ11cIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuPC9rYy1sb2dpbi10ZW1wbGF0ZT5cbiJdfQ==
@@ -1,46 +0,0 @@
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: [
34
- TemplateComponent,
35
- MsgStrPipe,
36
- KcClassDirective,
37
- PasswordWrapperComponent,
38
- KcSanitizePipe
39
- ], selector: 'kc-root', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
40
- {
41
- provide: ComponentReference,
42
- useExisting: forwardRef(() => LoginPasswordComponent)
43
- }
44
- ], 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" }]
45
- }] });
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4tcGFzc3dvcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2V5Y2xvYWtpZnktYW5ndWxhci9zcmMvbG9naW4vcGFnZXMvbG9naW4tcGFzc3dvcmQvbG9naW4tcGFzc3dvcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2V5Y2xvYWtpZnktYW5ndWxhci9zcmMvbG9naW4vcGFnZXMvbG9naW4tcGFzc3dvcmQvbG9naW4tcGFzc3dvcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDSCxPQUFPLEVBQ1AsVUFBVSxFQUNWLGVBQWUsRUFDbEIsTUFBTSxxQ0FBcUMsQ0FBQztBQUc3QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUNsRyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxtRkFBbUYsQ0FBQztBQUM3SCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUM3RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUM1RixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDbkYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtDQUErQyxDQUFDOztBQXFCM0UsTUFBTSxPQUFPLHNCQUF1QixTQUFRLGtCQUFrQjtJQW5COUQ7O1FBb0JJLGNBQVMsR0FBRyxNQUFNLENBQXVELFVBQVUsQ0FBQyxDQUFDO1FBQzVFLG9CQUFlLEdBQUcsTUFBTSxDQUFVLGVBQWUsQ0FBQyxDQUFDO1FBQ25ELFlBQU8sR0FBRyxNQUFNLENBQW9DLE9BQU8sQ0FBQyxDQUFDO1FBQ3RFLDBCQUFxQixHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyQyxrQkFBYSxHQUFHLEtBQUssRUFBVSxDQUFDO1FBQ2hDLGtCQUFhLEdBQUcsS0FBSyxFQUFVLENBQUM7UUFDaEMsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFDcEIsbUJBQWMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUV6RSwwQkFBcUIsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7S0FDekM7OEdBWFksc0JBQXNCO2tHQUF0QixzQkFBc0IsMGdCQVBwQjtZQUNQO2dCQUNJLE9BQU8sRUFBRSxrQkFBa0I7Z0JBQzNCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsc0JBQXNCLENBQUM7YUFDeEQ7U0FDSixpREN2Q0wseTdGQTBGQSw0Q0RqRVEsaUJBQWlCLCtKQUNqQixVQUFVLCtDQUNWLGdCQUFnQiwrRkFDaEIsd0JBQXdCLHdGQUN4QixjQUFjOzsyRkFZVCxzQkFBc0I7a0JBbkJsQyxTQUFTO2lDQUNNLElBQUksV0FDUDt3QkFDTCxpQkFBaUI7d0JBQ2pCLFVBQVU7d0JBQ1YsZ0JBQWdCO3dCQUNoQix3QkFBd0I7d0JBQ3hCLGNBQWM7cUJBQ2pCLFlBQ1MsU0FBUyxtQkFFRix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSxrQkFBa0I7NEJBQzNCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLHVCQUF1QixDQUFDO3lCQUN4RDtxQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIGZvcndhcmRSZWYsXG4gICAgaW5qZWN0LFxuICAgIGlucHV0LFxuICAgIHNpZ25hbFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgQ0xBU1NFUyxcbiAgICBLQ19DT05URVhULFxuICAgIFVTRV9ERUZBVUxUX0NTU1xufSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9saWIvcHVibGljLWFwaSc7XG5pbXBvcnQgeyBDbGFzc0tleSB9IGZyb20gJ2tleWNsb2FraWZ5L2xvZ2luL2xpYi9rY0Nsc3gnO1xuaW1wb3J0IHsgS2NDb250ZXh0IH0gZnJvbSAna2V5Y2xvYWtpZnkvbG9naW4vS2NDb250ZXh0JztcbmltcG9ydCB7IENvbXBvbmVudFJlZmVyZW5jZSB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL2NsYXNzZXMvY29tcG9uZW50LXJlZmVyZW5jZS5jbGFzcyc7XG5pbXBvcnQgeyBQYXNzd29yZFdyYXBwZXJDb21wb25lbnQgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9jb21wb25lbnRzL3Bhc3N3b3JkLXdyYXBwZXIvcGFzc3dvcmQtd3JhcHBlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGVtcGxhdGVDb21wb25lbnQgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9jb250YWluZXJzL3RlbXBsYXRlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBLY0NsYXNzRGlyZWN0aXZlIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vZGlyZWN0aXZlcy9rYy1jbGFzcy5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgS2NTYW5pdGl6ZVBpcGUgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9waXBlcy9rYy1zYW5pdGl6ZS5waXBlJztcbmltcG9ydCB7IE1zZ1N0clBpcGUgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9waXBlcy9tc2ctc3RyLnBpcGUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgVGVtcGxhdGVDb21wb25lbnQsXG4gICAgICAgIE1zZ1N0clBpcGUsXG4gICAgICAgIEtjQ2xhc3NEaXJlY3RpdmUsXG4gICAgICAgIFBhc3N3b3JkV3JhcHBlckNvbXBvbmVudCxcbiAgICAgICAgS2NTYW5pdGl6ZVBpcGVcbiAgICBdLFxuICAgIHNlbGVjdG9yOiAna2Mtcm9vdCcsXG4gICAgdGVtcGxhdGVVcmw6ICdsb2dpbi1wYXNzd29yZC5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IENvbXBvbmVudFJlZmVyZW5jZSxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IExvZ2luUGFzc3dvcmRDb21wb25lbnQpXG4gICAgICAgIH1cbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIExvZ2luUGFzc3dvcmRDb21wb25lbnQgZXh0ZW5kcyBDb21wb25lbnRSZWZlcmVuY2Uge1xuICAgIGtjQ29udGV4dCA9IGluamVjdDxFeHRyYWN0PEtjQ29udGV4dCwgeyBwYWdlSWQ6ICdsb2dpbi1wYXNzd29yZC5mdGwnIH0+PihLQ19DT05URVhUKTtcbiAgICBvdmVycmlkZSBkb1VzZURlZmF1bHRDc3MgPSBpbmplY3Q8Ym9vbGVhbj4oVVNFX0RFRkFVTFRfQ1NTKTtcbiAgICBvdmVycmlkZSBjbGFzc2VzID0gaW5qZWN0PFBhcnRpYWw8UmVjb3JkPENsYXNzS2V5LCBzdHJpbmc+Pj4oQ0xBU1NFUyk7XG4gICAgZGlzcGxheVJlcXVpcmVkRmllbGRzID0gaW5wdXQoZmFsc2UpO1xuICAgIGRvY3VtZW50VGl0bGUgPSBpbnB1dDxzdHJpbmc+KCk7XG4gICAgYm9keUNsYXNzTmFtZSA9IGlucHV0PHN0cmluZz4oKTtcbiAgICBkaXNwbGF5SW5mbyA9IGZhbHNlO1xuICAgIGRpc3BsYXlNZXNzYWdlID0gdGhpcy5rY0NvbnRleHQubWVzc2FnZXNQZXJGaWVsZC5leGlzdHNFcnJvcigncGFzc3dvcmQnKTtcblxuICAgIGlzTG9naW5CdXR0b25EaXNhYmxlZCA9IHNpZ25hbChmYWxzZSk7XG59XG4iLCJAbGV0IHVybCA9IGtjQ29udGV4dC51cmw7XG5AbGV0IG1lc3NhZ2VzUGVyRmllbGQgPSBrY0NvbnRleHQubWVzc2FnZXNQZXJGaWVsZDtcbkBsZXQgcmVhbG0gPSBrY0NvbnRleHQucmVhbG07XG48a2MtbG9naW4tdGVtcGxhdGVcbiAgW2Rpc3BsYXlJbmZvXT1cImRpc3BsYXlJbmZvXCJcbiAgW2JvZHlDbGFzc05hbWVdPVwiYm9keUNsYXNzTmFtZSgpXCJcbiAgW2Rpc3BsYXlNZXNzYWdlXT1cImRpc3BsYXlNZXNzYWdlXCJcbiAgW2Rpc3BsYXlSZXF1aXJlZEZpZWxkc109XCJkaXNwbGF5UmVxdWlyZWRGaWVsZHMoKVwiXG4gIFtkb2N1bWVudFRpdGxlXT1cImRvY3VtZW50VGl0bGUoKVwiXG4+XG4gIDxuZy1jb250YWluZXIgaGVhZGVyTm9kZT5cbiAgICB7eyAnZG9Mb2dJbicgfCBtc2dTdHIgfX1cbiAgPC9uZy1jb250YWluZXI+XG4gIDxuZy1jb250YWluZXIgY29udGVudD5cbiAgICA8ZGl2IGlkPVwia2MtZm9ybVwiPlxuICAgICAgPGRpdiBpZD1cImtjLWZvcm0td3JhcHBlclwiPlxuICAgICAgICA8Zm9ybVxuICAgICAgICAgIGlkPVwia2MtZm9ybS1sb2dpblwiXG4gICAgICAgICAgKG9uU3VibWl0KT1cImlzTG9naW5CdXR0b25EaXNhYmxlZC5zZXQodHJ1ZSlcIlxuICAgICAgICAgIFthY3Rpb25dPVwidXJsPy5sb2dpbkFjdGlvblwiXG4gICAgICAgICAgbWV0aG9kPVwicG9zdFwiXG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBba2NDbGFzc109XCIna2NGb3JtR3JvdXBDbGFzcydcIlxuICAgICAgICAgICAgY2xhc3M9XCJuby1ib3R0b20tbWFyZ2luXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8aHIgLz5cbiAgICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgICBmb3I9XCJwYXNzd29yZFwiXG4gICAgICAgICAgICAgIFtrY0NsYXNzXT1cIidrY0xhYmVsQ2xhc3MnXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge3sgJ3Bhc3N3b3JkJyB8IG1zZ1N0ciB9fVxuICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgIDxrYy1wYXNzd29yZC13cmFwcGVyIHBhc3N3b3JkSW5wdXRJZD1cInBhc3N3b3JkXCI+XG4gICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgIHR5cGU9XCJwYXNzd29yZFwiXG4gICAgICAgICAgICAgICAgaWQ9XCJwYXNzd29yZFwiXG4gICAgICAgICAgICAgICAgbmFtZT1cInBhc3N3b3JkXCJcbiAgICAgICAgICAgICAgICBba2NDbGFzc109XCIna2NJbnB1dENsYXNzJ1wiXG4gICAgICAgICAgICAgICAgW3JlcXVpcmVkXT1cInRydWVcIlxuICAgICAgICAgICAgICAgIFthdXRvZm9jdXNdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgW3RhYmluZGV4XT1cIjFcIlxuICAgICAgICAgICAgICAgIGFyaWEtZGVzY3JpYmVkYnk9XCJpbnB1dC1lcnJvci1wYXNzd29yZFwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L2tjLXBhc3N3b3JkLXdyYXBwZXI+XG5cbiAgICAgICAgICAgIEBpZiAobWVzc2FnZXNQZXJGaWVsZC5leGlzdHNFcnJvcigncGFzc3dvcmQnKSkge1xuICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgIGlkPVwiaW5wdXQtZXJyb3ItcGFzc3dvcmRcIlxuICAgICAgICAgICAgICAgIFtrY0NsYXNzXT1cIidrY0lucHV0RXJyb3JNZXNzYWdlQ2xhc3MnXCJcbiAgICAgICAgICAgICAgICBhcmlhLWxpdmU9XCJwb2xpdGVcIlxuICAgICAgICAgICAgICAgIFtpbm5lckhUTUxdPVwibWVzc2FnZXNQZXJGaWVsZC5nZXRGaXJzdEVycm9yKCdwYXNzd29yZCcpIHwga2NTYW5pdGl6ZTogJ2h0bWwnXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBba2NDbGFzc109XCJbJ2tjRm9ybUdyb3VwQ2xhc3MnLCAna2NGb3JtU2V0dGluZ0NsYXNzJ11cIj5cbiAgICAgICAgICAgIDxkaXYgaWQ9XCJrYy1mb3JtLW9wdGlvbnNcIj48L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgW2tjQ2xhc3NdPVwiJ2tjRm9ybU9wdGlvbnNXcmFwcGVyQ2xhc3MnXCI+XG4gICAgICAgICAgICAgIEBpZiAocmVhbG0ucmVzZXRQYXNzd29yZEFsbG93ZWQpIHtcbiAgICAgICAgICAgICAgICA8c3Bhbj5cbiAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgIHRhYmluZGV4PVwiNVwiXG4gICAgICAgICAgICAgICAgICAgIGhyZWY9XCJ7eyB1cmwubG9naW5SZXNldENyZWRlbnRpYWxzVXJsIH19XCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3sgJ2RvRm9yZ290UGFzc3dvcmQnIHwgbXNnU3RyIH19XG4gICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBpZD1cImtjLWZvcm0tYnV0dG9uc1wiXG4gICAgICAgICAgICBba2NDbGFzc109XCIna2NGb3JtR3JvdXBDbGFzcydcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICB0eXBlPVwic3VibWl0XCJcbiAgICAgICAgICAgICAgaWQ9XCJrYy1sb2dpblwiXG4gICAgICAgICAgICAgIG5hbWU9XCJsb2dpblwiXG4gICAgICAgICAgICAgIFt2YWx1ZV09XCInZG9Mb2dJbicgfCBtc2dTdHJcIlxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiaXNMb2dpbkJ1dHRvbkRpc2FibGVkKClcIlxuICAgICAgICAgICAgICBba2NDbGFzc109XCJbJ2tjQnV0dG9uQ2xhc3MnLCAna2NCdXR0b25QcmltYXJ5Q2xhc3MnLCAna2NCdXR0b25CbG9ja0NsYXNzJywgJ2tjQnV0dG9uTGFyZ2VDbGFzcyddXCJcbiAgICAgICAgICAgICAgW3RhYmluZGV4XT1cIjRcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9mb3JtPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuPC9rYy1sb2dpbi10ZW1wbGF0ZT5cbiJdfQ==
@@ -1,45 +0,0 @@
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: [
34
- MsgStrPipe,
35
- TemplateComponent,
36
- KcClassDirective,
37
- LogoutOtherSessionsComponent
38
- ], selector: 'kc-root', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
39
- {
40
- provide: ComponentReference,
41
- useExisting: forwardRef(() => LoginRecoveryAuthnCodeConfigComponent)
42
- }
43
- ], 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" }]
44
- }] });
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4tcmVjb3ZlcnktYXV0aG4tY29kZS1jb25maWcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2V5Y2xvYWtpZnktYW5ndWxhci9zcmMvbG9naW4vcGFnZXMvbG9naW4tcmVjb3ZlcnktYXV0aG4tY29kZS1jb25maWcvbG9naW4tcmVjb3ZlcnktYXV0aG4tY29kZS1jb25maWcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2V5Y2xvYWtpZnktYW5ndWxhci9zcmMvbG9naW4vcGFnZXMvbG9naW4tcmVjb3ZlcnktYXV0aG4tY29kZS1jb25maWcvbG9naW4tcmVjb3ZlcnktYXV0aG4tY29kZS1jb25maWcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDSCxPQUFPLEVBQ1AsVUFBVSxFQUNWLGVBQWUsRUFDbEIsTUFBTSxxQ0FBcUMsQ0FBQztBQUc3QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUNsRyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSw2RkFBNkYsQ0FBQztBQUMzSSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUM3RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0NBQStDLENBQUM7O0FBb0IzRSxNQUFNLE9BQU8scUNBQXNDLFNBQVEsa0JBQWtCO0lBbEI3RTs7UUFtQkksY0FBUyxHQUNMLE1BQU0sQ0FDRixVQUFVLENBQ2IsQ0FBQztRQUNHLG9CQUFlLEdBQUcsTUFBTSxDQUFVLGVBQWUsQ0FBQyxDQUFDO1FBQ25ELFlBQU8sR0FBRyxNQUFNLENBQW9DLE9BQU8sQ0FBQyxDQUFDO1FBQ3RFLDBCQUFxQixHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyQyxrQkFBYSxHQUFHLEtBQUssRUFBVSxDQUFDO1FBQ2hDLGtCQUFhLEdBQUcsS0FBSyxFQUFVLENBQUM7UUFDaEMsZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFDN0IsbUJBQWMsR0FBWSxLQUFLLENBQUM7UUFDaEMsb0NBQStCLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRWhELDBCQUFxQixHQUFHLHdCQUF3QixDQUFDO0tBQ3BEOzhHQWZZLHFDQUFxQztrR0FBckMscUNBQXFDLDBnQkFQbkM7WUFDUDtnQkFDSSxPQUFPLEVBQUUsa0JBQWtCO2dCQUMzQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHFDQUFxQyxDQUFDO2FBQ3ZFO1NBQ0osaURDckNMLHN3SkEySkEsdUNEbklRLFVBQVUsK0NBQ1YsaUJBQWlCLG9LQUNqQixnQkFBZ0IsK0ZBQ2hCLDRCQUE0Qjs7MkZBWXZCLHFDQUFxQztrQkFsQmpELFNBQVM7aUNBQ00sSUFBSSxXQUNQO3dCQUNMLFVBQVU7d0JBQ1YsaUJBQWlCO3dCQUNqQixnQkFBZ0I7d0JBQ2hCLDRCQUE0QjtxQkFDL0IsWUFDUyxTQUFTLG1CQUVGLHVCQUF1QixDQUFDLE1BQU0sYUFDcEM7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLGtCQUFrQjs0QkFDM0IsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsc0NBQXNDLENBQUM7eUJBQ3ZFO3FCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgZm9yd2FyZFJlZixcbiAgICBpbmplY3QsXG4gICAgaW5wdXQsXG4gICAgc2lnbmFsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBDTEFTU0VTLFxuICAgIEtDX0NPTlRFWFQsXG4gICAgVVNFX0RFRkFVTFRfQ1NTXG59IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xpYi9wdWJsaWMtYXBpJztcbmltcG9ydCB7IENsYXNzS2V5IH0gZnJvbSAna2V5Y2xvYWtpZnkvbG9naW4vbGliL2tjQ2xzeCc7XG5pbXBvcnQgeyBLY0NvbnRleHQgfSBmcm9tICdrZXljbG9ha2lmeS9sb2dpbi9LY0NvbnRleHQnO1xuaW1wb3J0IHsgQ29tcG9uZW50UmVmZXJlbmNlIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vY2xhc3Nlcy9jb21wb25lbnQtcmVmZXJlbmNlLmNsYXNzJztcbmltcG9ydCB7IExvZ291dE90aGVyU2Vzc2lvbnNDb21wb25lbnQgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9jb21wb25lbnRzL2xvZ291dC1vdGhlci1zZXNzaW9ucy9sb2dvdXQtb3RoZXItc2Vzc2lvbnMuY29tcG9uZW50JztcbmltcG9ydCB7IFRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vY29udGFpbmVycy90ZW1wbGF0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgS2NDbGFzc0RpcmVjdGl2ZSB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL2RpcmVjdGl2ZXMnO1xuaW1wb3J0IHsgTXNnU3RyUGlwZSB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL3BpcGVzL21zZy1zdHIucGlwZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBNc2dTdHJQaXBlLFxuICAgICAgICBUZW1wbGF0ZUNvbXBvbmVudCxcbiAgICAgICAgS2NDbGFzc0RpcmVjdGl2ZSxcbiAgICAgICAgTG9nb3V0T3RoZXJTZXNzaW9uc0NvbXBvbmVudFxuICAgIF0sXG4gICAgc2VsZWN0b3I6ICdrYy1yb290JyxcbiAgICB0ZW1wbGF0ZVVybDogJ2xvZ2luLXJlY292ZXJ5LWF1dGhuLWNvZGUtY29uZmlnLmNvbXBvbmVudC5odG1sJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogQ29tcG9uZW50UmVmZXJlbmNlLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gTG9naW5SZWNvdmVyeUF1dGhuQ29kZUNvbmZpZ0NvbXBvbmVudClcbiAgICAgICAgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgTG9naW5SZWNvdmVyeUF1dGhuQ29kZUNvbmZpZ0NvbXBvbmVudCBleHRlbmRzIENvbXBvbmVudFJlZmVyZW5jZSB7XG4gICAga2NDb250ZXh0ID1cbiAgICAgICAgaW5qZWN0PEV4dHJhY3Q8S2NDb250ZXh0LCB7IHBhZ2VJZDogJ2xvZ2luLXJlY292ZXJ5LWF1dGhuLWNvZGUtY29uZmlnLmZ0bCcgfT4+KFxuICAgICAgICAgICAgS0NfQ09OVEVYVFxuICAgICAgICApO1xuICAgIG92ZXJyaWRlIGRvVXNlRGVmYXVsdENzcyA9IGluamVjdDxib29sZWFuPihVU0VfREVGQVVMVF9DU1MpO1xuICAgIG92ZXJyaWRlIGNsYXNzZXMgPSBpbmplY3Q8UGFydGlhbDxSZWNvcmQ8Q2xhc3NLZXksIHN0cmluZz4+PihDTEFTU0VTKTtcbiAgICBkaXNwbGF5UmVxdWlyZWRGaWVsZHMgPSBpbnB1dChmYWxzZSk7XG4gICAgZG9jdW1lbnRUaXRsZSA9IGlucHV0PHN0cmluZz4oKTtcbiAgICBib2R5Q2xhc3NOYW1lID0gaW5wdXQ8c3RyaW5nPigpO1xuICAgIGRpc3BsYXlJbmZvOiBib29sZWFuID0gZmFsc2U7XG4gICAgZGlzcGxheU1lc3NhZ2U6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICB0b2dnbGVSZWNvdmVyeUNvZGVzQ29uZmlybWF0aW9uID0gc2lnbmFsKGZhbHNlKTtcblxuICAgIG9sUmVjb3ZlcnlDb2Rlc0xpc3RJZCA9ICdrYy1yZWNvdmVyeS1jb2Rlcy1saXN0Jztcbn1cbiIsIkBsZXQgcmVjb3ZlcnlBdXRobkNvZGVzQ29uZmlnQmVhbiA9IGtjQ29udGV4dC5yZWNvdmVyeUF1dGhuQ29kZXNDb25maWdCZWFuO1xuQGxldCBpc0FwcEluaXRpYXRlZEFjdGlvbiA9IGtjQ29udGV4dC5pc0FwcEluaXRpYXRlZEFjdGlvbjtcbjxrYy1sb2dpbi10ZW1wbGF0ZVxuICBbZGlzcGxheUluZm9dPVwiZGlzcGxheUluZm9cIlxuICBbYm9keUNsYXNzTmFtZV09XCJib2R5Q2xhc3NOYW1lKClcIlxuICBbZGlzcGxheU1lc3NhZ2VdPVwiZGlzcGxheU1lc3NhZ2VcIlxuICBbZGlzcGxheVJlcXVpcmVkRmllbGRzXT1cImRpc3BsYXlSZXF1aXJlZEZpZWxkcygpXCJcbiAgW2RvY3VtZW50VGl0bGVdPVwiZG9jdW1lbnRUaXRsZSgpXCJcbj5cbiAgPG5nLWNvbnRhaW5lciBoZWFkZXJOb2RlPlxuICAgIHt7ICdyZWNvdmVyeS1jb2RlLWNvbmZpZy1oZWFkZXInIHwgbXNnU3RyIH19XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDxuZy1jb250YWluZXIgY29udGVudD5cbiAgICA8ZGl2XG4gICAgICBba2NDbGFzc109XCIna2NSZWNvdmVyeUNvZGVzV2FybmluZydcIlxuICAgICAgY2xhc3M9XCJwZi1jLWFsZXJ0IHBmLW0td2FybmluZyBwZi1tLWlubGluZVwiXG4gICAgICBhcmlhLWxhYmVsPVwiV2FybmluZyBhbGVydFwiXG4gICAgPlxuICAgICAgPGRpdiBjbGFzcz1cInBmLWMtYWxlcnRfX2ljb25cIj5cbiAgICAgICAgPGlcbiAgICAgICAgICBjbGFzcz1cInBmaWNvbi13YXJuaW5nLXRyaWFuZ2xlLW9cIlxuICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgID48L2k+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxoNCBjbGFzcz1cInBmLWMtYWxlcnRfX3RpdGxlXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwicGYtc2NyZWVuLXJlYWRlclwiPldhcm5pbmcgYWxlcnQ6PC9zcGFuPlxuICAgICAgICB7eyAncmVjb3ZlcnktY29kZS1jb25maWctd2FybmluZy10aXRsZScgfCBtc2dTdHIgfX1cbiAgICAgIDwvaDQ+XG4gICAgICA8ZGl2IGNsYXNzPVwicGYtYy1hbGVydF9fZGVzY3JpcHRpb25cIj5cbiAgICAgICAgPHA+e3sgJ3JlY292ZXJ5LWNvZGUtY29uZmlnLXdhcm5pbmctbWVzc2FnZScgfCBtc2dTdHIgfX08L3A+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxvbFxuICAgICAgW2lkXT1cIm9sUmVjb3ZlcnlDb2Rlc0xpc3RJZFwiXG4gICAgICBba2NDbGFzc109XCIna2NSZWNvdmVyeUNvZGVzTGlzdCdcIlxuICAgID5cbiAgICAgIEBmb3IgKGNvZGUgb2YgcmVjb3ZlcnlBdXRobkNvZGVzQ29uZmlnQmVhbi5nZW5lcmF0ZWRSZWNvdmVyeUF1dGhuQ29kZXNMaXN0OyB0cmFjayBjb2RlOyBsZXQgaSA9ICRpbmRleCkge1xuICAgICAgICA8bGk+XG4gICAgICAgICAgPHNwYW4+e3sgaSArIDEgfX06PC9zcGFuPiB7eyBjb2RlLnNsaWNlKDAsIDQpIH19LXt7IGNvZGUuc2xpY2UoNCwgOCkgfX0te3sgY29kZS5zbGljZSg4KSB9fVxuICAgICAgICA8L2xpPlxuICAgICAgfVxuICAgIDwvb2w+XG5cbiAgICA8IS0tIGFjdGlvbnMgLS0+XG4gICAgPGRpdiBba2NDbGFzc109XCIna2NSZWNvdmVyeUNvZGVzQWN0aW9ucydcIj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgaWQ9XCJwcmludFJlY292ZXJ5Q29kZXNcIlxuICAgICAgICBjbGFzcz1cInBmLWMtYnV0dG9uIHBmLW0tbGlua1wiXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgPlxuICAgICAgICA8aVxuICAgICAgICAgIGNsYXNzPVwicGZpY29uLXByaW50XCJcbiAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICA+PC9pPlxuICAgICAgICB7eyAncmVjb3ZlcnktY29kZXMtcHJpbnQnIHwgbXNnU3RyIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgaWQ9XCJkb3dubG9hZFJlY292ZXJ5Q29kZXNcIlxuICAgICAgICBjbGFzcz1cInBmLWMtYnV0dG9uIHBmLW0tbGlua1wiXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgPlxuICAgICAgICA8aVxuICAgICAgICAgIGNsYXNzPVwicGZpY29uLXNhdmVcIlxuICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgID48L2k+XG4gICAgICAgIHt7ICdyZWNvdmVyeS1jb2Rlcy1kb3dubG9hZCcgfCBtc2dTdHIgfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBpZD1cImNvcHlSZWNvdmVyeUNvZGVzXCJcbiAgICAgICAgY2xhc3M9XCJwZi1jLWJ1dHRvbiBwZi1tLWxpbmtcIlxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgID5cbiAgICAgICAgPGlcbiAgICAgICAgICBjbGFzcz1cInBmaWNvbi1ibHVlcHJpbnRcIlxuICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgID48L2k+XG4gICAgICAgIHt7ICdyZWNvdmVyeS1jb2Rlcy1jb3B5JyB8IG1zZ1N0ciB9fVxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG5cbiAgICA8IS0tIGNvbmZpcm1hdGlvbiBjaGVja2JveCAtLT5cblxuICAgIDxkaXZcbiAgICAgIFtrY0NsYXNzXT1cIidrY0Zvcm1PcHRpb25zQ2xhc3MnXCJcbiAgICAgIGNsYXNzPVwiY2hlY2tib3hcIlxuICAgID5cbiAgICAgIDxsYWJlbCBmb3I9XCJrY1JlY292ZXJ5Q29kZXNDb25maXJtYXRpb25DaGVja1wiPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICBba2NDbGFzc109XCIna2NDaGVja0lucHV0Q2xhc3MnXCJcbiAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgIGlkPVwia2NSZWNvdmVyeUNvZGVzQ29uZmlybWF0aW9uQ2hlY2tcIlxuICAgICAgICAgIG5hbWU9XCJrY1JlY292ZXJ5Q29kZXNDb25maXJtYXRpb25DaGVja1wiXG4gICAgICAgICAgW2NoZWNrZWRdPVwidG9nZ2xlUmVjb3ZlcnlDb2Rlc0NvbmZpcm1hdGlvbigpXCJcbiAgICAgICAgICAoY2hhbmdlKT1cInRvZ2dsZVJlY292ZXJ5Q29kZXNDb25maXJtYXRpb24uc2V0KCRhbnkoJGV2ZW50LnRhcmdldCkuY2hlY2tlZClcIlxuICAgICAgICAvPlxuICAgICAgICB7eyAncmVjb3ZlcnktY29kZXMtY29uZmlybWF0aW9uLW1lc3NhZ2UnIHwgbXNnU3RyIH19XG4gICAgICA8L2xhYmVsPlxuICAgIDwvZGl2PlxuXG4gICAgPGZvcm1cbiAgICAgIFthY3Rpb25dPVwia2NDb250ZXh0LnVybC5sb2dpbkFjdGlvblwiXG4gICAgICBba2NDbGFzc109XCIna2NGb3JtR3JvdXBDbGFzcydcIlxuICAgICAgaWQ9XCJrYy1yZWNvdmVyeS1jb2Rlcy1zZXR0aW5ncy1mb3JtXCJcbiAgICAgIG1ldGhvZD1cInBvc3RcIlxuICAgID5cbiAgICAgIDxpbnB1dFxuICAgICAgICB0eXBlPVwiaGlkZGVuXCJcbiAgICAgICAgbmFtZT1cImdlbmVyYXRlZFJlY292ZXJ5QXV0aG5Db2Rlc1wiXG4gICAgICAgIFt2YWx1ZV09XCJyZWNvdmVyeUF1dGhuQ29kZXNDb25maWdCZWFuLmdlbmVyYXRlZFJlY292ZXJ5QXV0aG5Db2Rlc0FzU3RyaW5nXCJcbiAgICAgIC8+XG4gICAgICA8aW5wdXRcbiAgICAgICAgdHlwZT1cImhpZGRlblwiXG4gICAgICAgIG5hbWU9XCJnZW5lcmF0ZWRBdFwiXG4gICAgICAgIFt2YWx1ZV09XCJyZWNvdmVyeUF1dGhuQ29kZXNDb25maWdCZWFuLmdlbmVyYXRlZEF0XCJcbiAgICAgIC8+XG4gICAgICA8aW5wdXRcbiAgICAgICAgdHlwZT1cImhpZGRlblwiXG4gICAgICAgIGlkPVwidXNlckxhYmVsXCJcbiAgICAgICAgbmFtZT1cInVzZXJMYWJlbFwiXG4gICAgICAgIFt2YWx1ZV09XCIncmVjb3ZlcnktY29kZXMtbGFiZWwtZGVmYXVsdCcgfCBtc2dTdHJcIlxuICAgICAgLz5cblxuICAgICAgPGtjLWxvZ291dC1vdGhlci1zZXNzaW9ucz48L2tjLWxvZ291dC1vdGhlci1zZXNzaW9ucz5cblxuICAgICAgQGlmIChpc0FwcEluaXRpYXRlZEFjdGlvbikge1xuICAgICAgICA8aW5wdXRcbiAgICAgICAgICB0eXBlPVwic3VibWl0XCJcbiAgICAgICAgICBba2NDbGFzc109XCJbJ2tjQnV0dG9uQ2xhc3MnLCAna2NCdXR0b25QcmltYXJ5Q2xhc3MnLCAna2NCdXR0b25MYXJnZUNsYXNzJ11cIlxuICAgICAgICAgIGlkPVwic2F2ZVJlY292ZXJ5QXV0aG5Db2Rlc0J0blwiXG4gICAgICAgICAgW3ZhbHVlXT1cIidyZWNvdmVyeS1jb2Rlcy1hY3Rpb24tY29tcGxldGUnIHwgbXNnU3RyXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiIXRvZ2dsZVJlY292ZXJ5Q29kZXNDb25maXJtYXRpb24oKVwiXG4gICAgICAgIC8+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICB0eXBlPVwic3VibWl0XCJcbiAgICAgICAgICBba2NDbGFzc109XCJbJ2tjQnV0dG9uQ2xhc3MnLCAna2NCdXR0b25EZWZhdWx0Q2xhc3MnLCAna2NCdXR0b25MYXJnZUNsYXNzJ11cIlxuICAgICAgICAgIGlkPVwiY2FuY2VsUmVjb3ZlcnlBdXRobkNvZGVzQnRuXCJcbiAgICAgICAgICBuYW1lPVwiY2FuY2VsLWFpYVwiXG4gICAgICAgICAgdmFsdWU9XCJ0cnVlXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7ICdyZWNvdmVyeS1jb2Rlcy1hY3Rpb24tY2FuY2VsJyB8IG1zZ1N0ciB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICA8aW5wdXRcbiAgICAgICAgICB0eXBlPVwic3VibWl0XCJcbiAgICAgICAgICBba2NDbGFzc109XCJbJ2tjQnV0dG9uQ2xhc3MnLCAna2NCdXR0b25QcmltYXJ5Q2xhc3MnLCAna2NCdXR0b25CbG9ja0NsYXNzJywgJ2tjQnV0dG9uTGFyZ2VDbGFzcyddXCJcbiAgICAgICAgICBpZD1cInNhdmVSZWNvdmVyeUF1dGhuQ29kZXNCdG5cIlxuICAgICAgICAgIFt2YWx1ZV09XCIncmVjb3ZlcnktY29kZXMtYWN0aW9uLWNvbXBsZXRlJyB8IG1zZ1N0clwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIiF0b2dnbGVSZWNvdmVyeUNvZGVzQ29uZmlybWF0aW9uKClcIlxuICAgICAgICAvPlxuICAgICAgfVxuICAgIDwvZm9ybT5cbiAgPC9uZy1jb250YWluZXI+XG48L2tjLWxvZ2luLXRlbXBsYXRlPlxuIl19
@@ -1,38 +0,0 @@
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4tcmVjb3ZlcnktYXV0aG4tY29kZS1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rZXljbG9ha2lmeS1hbmd1bGFyL3NyYy9sb2dpbi9wYWdlcy9sb2dpbi1yZWNvdmVyeS1hdXRobi1jb2RlLWlucHV0L2xvZ2luLXJlY292ZXJ5LWF1dGhuLWNvZGUtaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2V5Y2xvYWtpZnktYW5ndWxhci9zcmMvbG9naW4vcGFnZXMvbG9naW4tcmVjb3ZlcnktYXV0aG4tY29kZS1pbnB1dC9sb2dpbi1yZWNvdmVyeS1hdXRobi1jb2RlLWlucHV0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUNSLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDSCxPQUFPLEVBQ1AsVUFBVSxFQUNWLGVBQWUsRUFDbEIsTUFBTSxxQ0FBcUMsQ0FBQztBQUc3QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUNsRyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUM3RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDbkYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtDQUErQyxDQUFDOztBQWUzRSxNQUFNLE9BQU8sb0NBQXFDLFNBQVEsa0JBQWtCO0lBYjVFOztRQWNJLGNBQVMsR0FDTCxNQUFNLENBQ0YsVUFBVSxDQUNiLENBQUM7UUFDRyxvQkFBZSxHQUFHLE1BQU0sQ0FBVSxlQUFlLENBQUMsQ0FBQztRQUNuRCxZQUFPLEdBQUcsTUFBTSxDQUFvQyxPQUFPLENBQUMsQ0FBQztRQUN0RSwwQkFBcUIsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckMsa0JBQWEsR0FBRyxLQUFLLEVBQVUsQ0FBQztRQUNoQyxrQkFBYSxHQUFHLEtBQUssRUFBVSxDQUFDO1FBQ2hDLGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBQzdCLG1CQUFjLEdBQ1YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsbUJBQW1CLENBQUMsQ0FBQztLQUN4RTs4R0FiWSxvQ0FBb0M7a0dBQXBDLG9DQUFvQywwZ0JBUGxDO1lBQ1A7Z0JBQ0ksT0FBTyxFQUFFLGtCQUFrQjtnQkFDM0IsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxvQ0FBb0MsQ0FBQzthQUN0RTtTQUNKLGlEQy9CTCxpOEVBNEVBLDRDRHREYyxpQkFBaUIsK0pBQUUsVUFBVSwrQ0FBRSxnQkFBZ0IsMEZBQUUsY0FBYzs7MkZBV2hFLG9DQUFvQztrQkFiaEQsU0FBUztpQ0FDTSxJQUFJLFdBQ1AsQ0FBQyxpQkFBaUIsRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsY0FBYyxDQUFDLFlBQ2hFLFNBQVMsbUJBRUYsdUJBQXVCLENBQUMsTUFBTSxhQUNwQzt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsa0JBQWtCOzRCQUMzQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxxQ0FBcUMsQ0FBQzt5QkFDdEU7cUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBmb3J3YXJkUmVmLFxuICAgIGluamVjdCxcbiAgICBpbnB1dFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgQ0xBU1NFUyxcbiAgICBLQ19DT05URVhULFxuICAgIFVTRV9ERUZBVUxUX0NTU1xufSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9saWIvcHVibGljLWFwaSc7XG5pbXBvcnQgeyBDbGFzc0tleSB9IGZyb20gJ2tleWNsb2FraWZ5L2xvZ2luL2xpYi9rY0Nsc3gnO1xuaW1wb3J0IHsgS2NDb250ZXh0IH0gZnJvbSAna2V5Y2xvYWtpZnkvbG9naW4vS2NDb250ZXh0JztcbmltcG9ydCB7IENvbXBvbmVudFJlZmVyZW5jZSB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL2NsYXNzZXMvY29tcG9uZW50LXJlZmVyZW5jZS5jbGFzcyc7XG5pbXBvcnQgeyBUZW1wbGF0ZUNvbXBvbmVudCB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL2NvbnRhaW5lcnMvdGVtcGxhdGUuY29tcG9uZW50JztcbmltcG9ydCB7IEtjQ2xhc3NEaXJlY3RpdmUgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9kaXJlY3RpdmVzJztcbmltcG9ydCB7IEtjU2FuaXRpemVQaXBlIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vcGlwZXMva2Mtc2FuaXRpemUucGlwZSc7XG5pbXBvcnQgeyBNc2dTdHJQaXBlIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vcGlwZXMvbXNnLXN0ci5waXBlJztcblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbVGVtcGxhdGVDb21wb25lbnQsIE1zZ1N0clBpcGUsIEtjQ2xhc3NEaXJlY3RpdmUsIEtjU2FuaXRpemVQaXBlXSxcbiAgICBzZWxlY3RvcjogJ2tjLXJvb3QnLFxuICAgIHRlbXBsYXRlVXJsOiAnbG9naW4tcmVjb3ZlcnktYXV0aG4tY29kZS1pbnB1dC5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IENvbXBvbmVudFJlZmVyZW5jZSxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IExvZ2luUmVjb3ZlcnlBdXRobkNvZGVJbnB1dENvbXBvbmVudClcbiAgICAgICAgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgTG9naW5SZWNvdmVyeUF1dGhuQ29kZUlucHV0Q29tcG9uZW50IGV4dGVuZHMgQ29tcG9uZW50UmVmZXJlbmNlIHtcbiAgICBrY0NvbnRleHQgPVxuICAgICAgICBpbmplY3Q8RXh0cmFjdDxLY0NvbnRleHQsIHsgcGFnZUlkOiAnbG9naW4tcmVjb3ZlcnktYXV0aG4tY29kZS1pbnB1dC5mdGwnIH0+PihcbiAgICAgICAgICAgIEtDX0NPTlRFWFRcbiAgICAgICAgKTtcbiAgICBvdmVycmlkZSBkb1VzZURlZmF1bHRDc3MgPSBpbmplY3Q8Ym9vbGVhbj4oVVNFX0RFRkFVTFRfQ1NTKTtcbiAgICBvdmVycmlkZSBjbGFzc2VzID0gaW5qZWN0PFBhcnRpYWw8UmVjb3JkPENsYXNzS2V5LCBzdHJpbmc+Pj4oQ0xBU1NFUyk7XG4gICAgZGlzcGxheVJlcXVpcmVkRmllbGRzID0gaW5wdXQoZmFsc2UpO1xuICAgIGRvY3VtZW50VGl0bGUgPSBpbnB1dDxzdHJpbmc+KCk7XG4gICAgYm9keUNsYXNzTmFtZSA9IGlucHV0PHN0cmluZz4oKTtcbiAgICBkaXNwbGF5SW5mbzogYm9vbGVhbiA9IGZhbHNlO1xuICAgIGRpc3BsYXlNZXNzYWdlOiBib29sZWFuID1cbiAgICAgICAgdGhpcy5rY0NvbnRleHQubWVzc2FnZXNQZXJGaWVsZC5leGlzdHNFcnJvcigncmVjb3ZlcnlDb2RlSW5wdXQnKTtcbn1cbiIsIkBsZXQgdXJsID0ga2NDb250ZXh0LnVybDtcbkBsZXQgcmVjb3ZlcnlBdXRobkNvZGVzSW5wdXRCZWFuID0ga2NDb250ZXh0LnJlY292ZXJ5QXV0aG5Db2Rlc0lucHV0QmVhbjtcbkBsZXQgbWVzc2FnZXNQZXJGaWVsZCA9IGtjQ29udGV4dC5tZXNzYWdlc1BlckZpZWxkO1xuXG48a2MtbG9naW4tdGVtcGxhdGVcbiAgW2Rpc3BsYXlJbmZvXT1cImRpc3BsYXlJbmZvXCJcbiAgW2JvZHlDbGFzc05hbWVdPVwiYm9keUNsYXNzTmFtZSgpXCJcbiAgW2Rpc3BsYXlNZXNzYWdlXT1cImRpc3BsYXlNZXNzYWdlXCJcbiAgW2Rpc3BsYXlSZXF1aXJlZEZpZWxkc109XCJkaXNwbGF5UmVxdWlyZWRGaWVsZHMoKVwiXG4gIFtkb2N1bWVudFRpdGxlXT1cImRvY3VtZW50VGl0bGUoKVwiXG4+XG4gIDxuZy1jb250YWluZXIgaGVhZGVyTm9kZT5cbiAgICB7eyAnYXV0aC1yZWNvdmVyeS1jb2RlLWhlYWRlcicgfCBtc2dTdHIgfX1cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPG5nLWNvbnRhaW5lciBjb250ZW50PlxuICAgIDxmb3JtXG4gICAgICBpZD1cImtjLXJlY292ZXJ5LWNvZGUtbG9naW4tZm9ybVwiXG4gICAgICBba2NDbGFzc109XCIna2NGb3JtQ2xhc3MnXCJcbiAgICAgIFthY3Rpb25dPVwidXJsLmxvZ2luQWN0aW9uXCJcbiAgICAgIG1ldGhvZD1cInBvc3RcIlxuICAgID5cbiAgICAgIDxkaXYgW2tjQ2xhc3NdPVwiJ2tjRm9ybUdyb3VwQ2xhc3MnXCI+XG4gICAgICAgIDxkaXYgW2tjQ2xhc3NdPVwiJ2tjTGFiZWxXcmFwcGVyQ2xhc3MnXCI+XG4gICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICBmb3I9XCJyZWNvdmVyeUNvZGVJbnB1dFwiXG4gICAgICAgICAgICBba2NDbGFzc109XCIna2NMYWJlbENsYXNzJ1wiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge3sgJ2F1dGgtcmVjb3ZlcnktY29kZS1wcm9tcHQnIHwgbXNnU3RyOiByZWNvdmVyeUF1dGhuQ29kZXNJbnB1dEJlYW4uY29kZU51bWJlci50b1N0cmluZygpIH19XG4gICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgW2tjQ2xhc3NdPVwiJ2tjSW5wdXRXcmFwcGVyQ2xhc3MnXCI+XG4gICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICB0YWJJbmRleD1cIjFcIlxuICAgICAgICAgICAgaWQ9XCJyZWNvdmVyeUNvZGVJbnB1dFwiXG4gICAgICAgICAgICBuYW1lPVwicmVjb3ZlcnlDb2RlSW5wdXRcIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1pbnZhbGlkXT1cIm1lc3NhZ2VzUGVyRmllbGQuZXhpc3RzRXJyb3IoJ3JlY292ZXJ5Q29kZUlucHV0JylcIlxuICAgICAgICAgICAgYXV0b0NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgIFtrY0NsYXNzXT1cIidrY0lucHV0Q2xhc3MnXCJcbiAgICAgICAgICAgIGF1dG9Gb2N1c1xuICAgICAgICAgIC8+XG4gICAgICAgICAgQGlmIChtZXNzYWdlc1BlckZpZWxkLmV4aXN0c0Vycm9yKCdyZWNvdmVyeUNvZGVJbnB1dCcpKSB7XG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICBpZD1cImlucHV0LWVycm9yXCJcbiAgICAgICAgICAgICAgW2tjQ2xhc3NdPVwiJ2tjSW5wdXRFcnJvck1lc3NhZ2VDbGFzcydcIlxuICAgICAgICAgICAgICBhcmlhLWxpdmU9XCJwb2xpdGVcIlxuICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cIm1lc3NhZ2VzUGVyRmllbGQuZ2V0KCdyZWNvdmVyeUNvZGVJbnB1dCcpIHwga2NTYW5pdGl6ZTogJ2h0bWwnXCJcbiAgICAgICAgICAgID48L3NwYW4+XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IFtrY0NsYXNzXT1cIidrY0Zvcm1Hcm91cENsYXNzJ1wiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgaWQ9XCJrYy1mb3JtLW9wdGlvbnNcIlxuICAgICAgICAgIFtrY0NsYXNzXT1cIidrY0Zvcm1PcHRpb25zV3JhcHBlckNsYXNzJ1wiXG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2IFtrY0NsYXNzXT1cIidrY0Zvcm1PcHRpb25zV3JhcHBlckNsYXNzJ1wiPjwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGlkPVwia2MtZm9ybS1idXR0b25zXCJcbiAgICAgICAgICBba2NDbGFzc109XCIna2NGb3JtQnV0dG9uc0NsYXNzJ1wiXG4gICAgICAgID5cbiAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIFtrY0NsYXNzXT1cIlsna2NCdXR0b25DbGFzcycsICdrY0J1dHRvblByaW1hcnlDbGFzcycsICdrY0J1dHRvbkJsb2NrQ2xhc3MnLCAna2NCdXR0b25MYXJnZUNsYXNzJ11cIlxuICAgICAgICAgICAgbmFtZT1cImxvZ2luXCJcbiAgICAgICAgICAgIGlkPVwia2MtbG9naW5cIlxuICAgICAgICAgICAgdHlwZT1cInN1Ym1pdFwiXG4gICAgICAgICAgICBbdmFsdWVdPVwiJ2RvTG9nSW4nIHwgbXNnU3RyXCJcbiAgICAgICAgICAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZm9ybT5cbiAgPC9uZy1jb250YWluZXI+XG48L2tjLWxvZ2luLXRlbXBsYXRlPlxuIl19
@@ -1,37 +0,0 @@
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 { MsgStrPipe } from '../../../login/pipes/msg-str.pipe';
7
- import * as i0 from "@angular/core";
8
- export class LoginResetOtpComponent extends ComponentReference {
9
- constructor() {
10
- super(...arguments);
11
- this.kcContext = inject(KC_CONTEXT);
12
- this.doUseDefaultCss = inject(USE_DEFAULT_CSS);
13
- this.classes = inject(CLASSES);
14
- this.displayRequiredFields = input(false);
15
- this.documentTitle = input();
16
- this.bodyClassName = input();
17
- this.displayInfo = false;
18
- this.displayMessage = this.kcContext.messagesPerField.existsError('totp');
19
- }
20
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: LoginResetOtpComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
21
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.6", type: LoginResetOtpComponent, 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: [
22
- {
23
- provide: ComponentReference,
24
- useExisting: forwardRef(() => LoginResetOtpComponent)
25
- }
26
- ], usesInheritance: true, ngImport: i0, template: "@let url = kcContext.url;\n@let configuredOtpCredentials = kcContext.configuredOtpCredentials;\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 <form\n id=\"kc-otp-reset-form\"\n [kcClass]=\"'kcFormClass'\"\n [action]=\"url.loginAction\"\n method=\"post\"\n >\n <div [kcClass]=\"'kcInputWrapperClass'\">\n <div [kcClass]=\"'kcInfoAreaWrapperClass'\">\n <p id=\"kc-otp-reset-form-description\">{{ 'otp-reset-description' | msgStr }}</p>\n @for (otpCredential of configuredOtpCredentials.userOtpCredentials; track otpCredential; let i = $index) {\n <input\n id=\"kc-otp-credential-{{ i }}\"\n [kcClass]=\"'kcLoginOTPListInputClass'\"\n type=\"radio\"\n name=\"selectedCredentialId\"\n [value]=\"otpCredential.id\"\n [defaultChecked]=\"otpCredential.id === configuredOtpCredentials.selectedCredentialId\"\n />\n <label\n for=\"kc-otp-credential-0\"\n [kcClass]=\"'kcLoginOTPListClass'\"\n [tabIndex]=\"i\"\n >\n <span [kcClass]=\"'kcLoginOTPListItemHeaderClass'\">\n <span [kcClass]=\"'kcLoginOTPListItemIconBodyClass'\">\n <i\n [kcClass]=\"'kcLoginOTPListItemIconClass'\"\n aria-hidden=\"true\"\n ></i>\n </span>\n <span [kcClass]=\"'kcLoginOTPListItemTitleClass'\">{{ otpCredential.userLabel }}</span>\n </span>\n </label>\n }\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div\n id=\"kc-form-buttons\"\n [kcClass]=\"'kcFormButtonsClass'\"\n >\n <input\n id=\"kc-otp-reset-form-submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n type=\"submit\"\n [value]=\"'doSubmit' | msgStr\"\n />\n </div>\n </div>\n </div>\n </div>\n </form>\n </ng-container>\n</kc-login-template>\n", dependencies: [{ kind: "directive", type: KcClassDirective, selector: "[kcClass]", inputs: ["class", "ngClass", "kcClass"] }, { kind: "pipe", type: MsgStrPipe, name: "msgStr" }, { kind: "component", type: TemplateComponent, selector: "kc-login-template", inputs: ["displayInfo", "displayMessage", "displayRequiredFields", "documentTitle", "bodyClassName"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
27
- }
28
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: LoginResetOtpComponent, decorators: [{
29
- type: Component,
30
- args: [{ standalone: true, imports: [KcClassDirective, MsgStrPipe, TemplateComponent], selector: 'kc-root', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
31
- {
32
- provide: ComponentReference,
33
- useExisting: forwardRef(() => LoginResetOtpComponent)
34
- }
35
- ], template: "@let url = kcContext.url;\n@let configuredOtpCredentials = kcContext.configuredOtpCredentials;\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 <form\n id=\"kc-otp-reset-form\"\n [kcClass]=\"'kcFormClass'\"\n [action]=\"url.loginAction\"\n method=\"post\"\n >\n <div [kcClass]=\"'kcInputWrapperClass'\">\n <div [kcClass]=\"'kcInfoAreaWrapperClass'\">\n <p id=\"kc-otp-reset-form-description\">{{ 'otp-reset-description' | msgStr }}</p>\n @for (otpCredential of configuredOtpCredentials.userOtpCredentials; track otpCredential; let i = $index) {\n <input\n id=\"kc-otp-credential-{{ i }}\"\n [kcClass]=\"'kcLoginOTPListInputClass'\"\n type=\"radio\"\n name=\"selectedCredentialId\"\n [value]=\"otpCredential.id\"\n [defaultChecked]=\"otpCredential.id === configuredOtpCredentials.selectedCredentialId\"\n />\n <label\n for=\"kc-otp-credential-0\"\n [kcClass]=\"'kcLoginOTPListClass'\"\n [tabIndex]=\"i\"\n >\n <span [kcClass]=\"'kcLoginOTPListItemHeaderClass'\">\n <span [kcClass]=\"'kcLoginOTPListItemIconBodyClass'\">\n <i\n [kcClass]=\"'kcLoginOTPListItemIconClass'\"\n aria-hidden=\"true\"\n ></i>\n </span>\n <span [kcClass]=\"'kcLoginOTPListItemTitleClass'\">{{ otpCredential.userLabel }}</span>\n </span>\n </label>\n }\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div\n id=\"kc-form-buttons\"\n [kcClass]=\"'kcFormButtonsClass'\"\n >\n <input\n id=\"kc-otp-reset-form-submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n type=\"submit\"\n [value]=\"'doSubmit' | msgStr\"\n />\n </div>\n </div>\n </div>\n </div>\n </form>\n </ng-container>\n</kc-login-template>\n" }]
36
- }] });
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4tcmVzZXQtb3RwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tleWNsb2FraWZ5LWFuZ3VsYXIvc3JjL2xvZ2luL3BhZ2VzL2xvZ2luLXJlc2V0LW90cC9sb2dpbi1yZXNldC1vdHAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2V5Y2xvYWtpZnktYW5ndWxhci9zcmMvbG9naW4vcGFnZXMvbG9naW4tcmVzZXQtb3RwL2xvZ2luLXJlc2V0LW90cC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsTUFBTSxFQUNOLEtBQUssRUFDUixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0gsT0FBTyxFQUNQLFVBQVUsRUFDVixlQUFlLEVBQ2xCLE1BQU0scUNBQXFDLENBQUM7QUFHN0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOERBQThELENBQUM7QUFDbEcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMERBQTBELENBQUM7QUFDN0YsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDekUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtDQUErQyxDQUFDOztBQWUzRSxNQUFNLE9BQU8sc0JBQXVCLFNBQVEsa0JBQWtCO0lBYjlEOztRQWNJLGNBQVMsR0FBRyxNQUFNLENBQXdELFVBQVUsQ0FBQyxDQUFDO1FBQzdFLG9CQUFlLEdBQUcsTUFBTSxDQUFVLGVBQWUsQ0FBQyxDQUFDO1FBQ25ELFlBQU8sR0FBRyxNQUFNLENBQW9DLE9BQU8sQ0FBQyxDQUFDO1FBQ3RFLDBCQUFxQixHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyQyxrQkFBYSxHQUFHLEtBQUssRUFBVSxDQUFDO1FBQ2hDLGtCQUFhLEdBQUcsS0FBSyxFQUFVLENBQUM7UUFDaEMsZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFDN0IsbUJBQWMsR0FBWSxJQUFJLENBQUMsU0FBUyxDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztLQUNqRjs4R0FUWSxzQkFBc0I7a0dBQXRCLHNCQUFzQiwwZ0JBUHBCO1lBQ1A7Z0JBQ0ksT0FBTyxFQUFFLGtCQUFrQjtnQkFDM0IsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQzthQUN4RDtTQUNKLGlEQzlCTCwyNkVBaUVBLDRDRDVDYyxnQkFBZ0IsMEZBQUUsVUFBVSwrQ0FBRSxpQkFBaUI7OzJGQVdoRCxzQkFBc0I7a0JBYmxDLFNBQVM7aUNBQ00sSUFBSSxXQUNQLENBQUMsZ0JBQWdCLEVBQUUsVUFBVSxFQUFFLGlCQUFpQixDQUFDLFlBQ2hELFNBQVMsbUJBRUYsdUJBQXVCLENBQUMsTUFBTSxhQUNwQzt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsa0JBQWtCOzRCQUMzQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSx1QkFBdUIsQ0FBQzt5QkFDeEQ7cUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBmb3J3YXJkUmVmLFxuICAgIGluamVjdCxcbiAgICBpbnB1dFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgQ0xBU1NFUyxcbiAgICBLQ19DT05URVhULFxuICAgIFVTRV9ERUZBVUxUX0NTU1xufSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9saWIvcHVibGljLWFwaSc7XG5pbXBvcnQgeyBDbGFzc0tleSB9IGZyb20gJ2tleWNsb2FraWZ5L2xvZ2luL2xpYi9rY0Nsc3gnO1xuaW1wb3J0IHsgS2NDb250ZXh0IH0gZnJvbSAna2V5Y2xvYWtpZnkvbG9naW4vS2NDb250ZXh0JztcbmltcG9ydCB7IENvbXBvbmVudFJlZmVyZW5jZSB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL2NsYXNzZXMvY29tcG9uZW50LXJlZmVyZW5jZS5jbGFzcyc7XG5pbXBvcnQgeyBUZW1wbGF0ZUNvbXBvbmVudCB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL2NvbnRhaW5lcnMvdGVtcGxhdGUuY29tcG9uZW50JztcbmltcG9ydCB7IEtjQ2xhc3NEaXJlY3RpdmUgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9kaXJlY3RpdmVzJztcbmltcG9ydCB7IE1zZ1N0clBpcGUgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9waXBlcy9tc2ctc3RyLnBpcGUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtLY0NsYXNzRGlyZWN0aXZlLCBNc2dTdHJQaXBlLCBUZW1wbGF0ZUNvbXBvbmVudF0sXG4gICAgc2VsZWN0b3I6ICdrYy1yb290JyxcbiAgICB0ZW1wbGF0ZVVybDogJ2xvZ2luLXJlc2V0LW90cC5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IENvbXBvbmVudFJlZmVyZW5jZSxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IExvZ2luUmVzZXRPdHBDb21wb25lbnQpXG4gICAgICAgIH1cbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIExvZ2luUmVzZXRPdHBDb21wb25lbnQgZXh0ZW5kcyBDb21wb25lbnRSZWZlcmVuY2Uge1xuICAgIGtjQ29udGV4dCA9IGluamVjdDxFeHRyYWN0PEtjQ29udGV4dCwgeyBwYWdlSWQ6ICdsb2dpbi1yZXNldC1vdHAuZnRsJyB9Pj4oS0NfQ09OVEVYVCk7XG4gICAgb3ZlcnJpZGUgZG9Vc2VEZWZhdWx0Q3NzID0gaW5qZWN0PGJvb2xlYW4+KFVTRV9ERUZBVUxUX0NTUyk7XG4gICAgb3ZlcnJpZGUgY2xhc3NlcyA9IGluamVjdDxQYXJ0aWFsPFJlY29yZDxDbGFzc0tleSwgc3RyaW5nPj4+KENMQVNTRVMpO1xuICAgIGRpc3BsYXlSZXF1aXJlZEZpZWxkcyA9IGlucHV0KGZhbHNlKTtcbiAgICBkb2N1bWVudFRpdGxlID0gaW5wdXQ8c3RyaW5nPigpO1xuICAgIGJvZHlDbGFzc05hbWUgPSBpbnB1dDxzdHJpbmc+KCk7XG4gICAgZGlzcGxheUluZm86IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBkaXNwbGF5TWVzc2FnZTogYm9vbGVhbiA9IHRoaXMua2NDb250ZXh0Lm1lc3NhZ2VzUGVyRmllbGQuZXhpc3RzRXJyb3IoJ3RvdHAnKTtcbn1cbiIsIkBsZXQgdXJsID0ga2NDb250ZXh0LnVybDtcbkBsZXQgY29uZmlndXJlZE90cENyZWRlbnRpYWxzID0ga2NDb250ZXh0LmNvbmZpZ3VyZWRPdHBDcmVkZW50aWFscztcbjxrYy1sb2dpbi10ZW1wbGF0ZVxuICBbZGlzcGxheUluZm9dPVwiZGlzcGxheUluZm9cIlxuICBbYm9keUNsYXNzTmFtZV09XCJib2R5Q2xhc3NOYW1lKClcIlxuICBbZGlzcGxheU1lc3NhZ2VdPVwiZGlzcGxheU1lc3NhZ2VcIlxuICBbZGlzcGxheVJlcXVpcmVkRmllbGRzXT1cImRpc3BsYXlSZXF1aXJlZEZpZWxkcygpXCJcbiAgW2RvY3VtZW50VGl0bGVdPVwiZG9jdW1lbnRUaXRsZSgpXCJcbj5cbiAgPG5nLWNvbnRhaW5lciBoZWFkZXJOb2RlPlxuICAgIHt7ICdkb0xvZ0luJyB8IG1zZ1N0ciB9fVxuICA8L25nLWNvbnRhaW5lcj5cbiAgPG5nLWNvbnRhaW5lciBjb250ZW50PlxuICAgIDxmb3JtXG4gICAgICBpZD1cImtjLW90cC1yZXNldC1mb3JtXCJcbiAgICAgIFtrY0NsYXNzXT1cIidrY0Zvcm1DbGFzcydcIlxuICAgICAgW2FjdGlvbl09XCJ1cmwubG9naW5BY3Rpb25cIlxuICAgICAgbWV0aG9kPVwicG9zdFwiXG4gICAgPlxuICAgICAgPGRpdiBba2NDbGFzc109XCIna2NJbnB1dFdyYXBwZXJDbGFzcydcIj5cbiAgICAgICAgPGRpdiBba2NDbGFzc109XCIna2NJbmZvQXJlYVdyYXBwZXJDbGFzcydcIj5cbiAgICAgICAgICA8cCBpZD1cImtjLW90cC1yZXNldC1mb3JtLWRlc2NyaXB0aW9uXCI+e3sgJ290cC1yZXNldC1kZXNjcmlwdGlvbicgfCBtc2dTdHIgfX08L3A+XG4gICAgICAgICAgQGZvciAob3RwQ3JlZGVudGlhbCBvZiBjb25maWd1cmVkT3RwQ3JlZGVudGlhbHMudXNlck90cENyZWRlbnRpYWxzOyB0cmFjayBvdHBDcmVkZW50aWFsOyBsZXQgaSA9ICRpbmRleCkge1xuICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgIGlkPVwia2Mtb3RwLWNyZWRlbnRpYWwte3sgaSB9fVwiXG4gICAgICAgICAgICAgIFtrY0NsYXNzXT1cIidrY0xvZ2luT1RQTGlzdElucHV0Q2xhc3MnXCJcbiAgICAgICAgICAgICAgdHlwZT1cInJhZGlvXCJcbiAgICAgICAgICAgICAgbmFtZT1cInNlbGVjdGVkQ3JlZGVudGlhbElkXCJcbiAgICAgICAgICAgICAgW3ZhbHVlXT1cIm90cENyZWRlbnRpYWwuaWRcIlxuICAgICAgICAgICAgICBbZGVmYXVsdENoZWNrZWRdPVwib3RwQ3JlZGVudGlhbC5pZCA9PT0gY29uZmlndXJlZE90cENyZWRlbnRpYWxzLnNlbGVjdGVkQ3JlZGVudGlhbElkXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgICAgZm9yPVwia2Mtb3RwLWNyZWRlbnRpYWwtMFwiXG4gICAgICAgICAgICAgIFtrY0NsYXNzXT1cIidrY0xvZ2luT1RQTGlzdENsYXNzJ1wiXG4gICAgICAgICAgICAgIFt0YWJJbmRleF09XCJpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPHNwYW4gW2tjQ2xhc3NdPVwiJ2tjTG9naW5PVFBMaXN0SXRlbUhlYWRlckNsYXNzJ1wiPlxuICAgICAgICAgICAgICAgIDxzcGFuIFtrY0NsYXNzXT1cIidrY0xvZ2luT1RQTGlzdEl0ZW1JY29uQm9keUNsYXNzJ1wiPlxuICAgICAgICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgICAgICAgW2tjQ2xhc3NdPVwiJ2tjTG9naW5PVFBMaXN0SXRlbUljb25DbGFzcydcIlxuICAgICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgPjwvaT5cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgPHNwYW4gW2tjQ2xhc3NdPVwiJ2tjTG9naW5PVFBMaXN0SXRlbVRpdGxlQ2xhc3MnXCI+e3sgb3RwQ3JlZGVudGlhbC51c2VyTGFiZWwgfX08L3NwYW4+XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgfVxuICAgICAgICAgIDxkaXYgW2tjQ2xhc3NdPVwiJ2tjRm9ybUdyb3VwQ2xhc3MnXCI+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIGlkPVwia2MtZm9ybS1idXR0b25zXCJcbiAgICAgICAgICAgICAgW2tjQ2xhc3NdPVwiJ2tjRm9ybUJ1dHRvbnNDbGFzcydcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICBpZD1cImtjLW90cC1yZXNldC1mb3JtLXN1Ym1pdFwiXG4gICAgICAgICAgICAgICAgW2tjQ2xhc3NdPVwiWydrY0J1dHRvbkNsYXNzJywgJ2tjQnV0dG9uUHJpbWFyeUNsYXNzJywgJ2tjQnV0dG9uQmxvY2tDbGFzcycsICdrY0J1dHRvbkxhcmdlQ2xhc3MnXVwiXG4gICAgICAgICAgICAgICAgdHlwZT1cInN1Ym1pdFwiXG4gICAgICAgICAgICAgICAgW3ZhbHVlXT1cIidkb1N1Ym1pdCcgfCBtc2dTdHJcIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9mb3JtPlxuICA8L25nLWNvbnRhaW5lcj5cbjwva2MtbG9naW4tdGVtcGxhdGU+XG4iXX0=
@@ -1,38 +0,0 @@
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 LoginResetPasswordComponent 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('username');
20
- }
21
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: LoginResetPasswordComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
22
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.6", type: LoginResetPasswordComponent, 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(() => LoginResetPasswordComponent)
26
- }
27
- ], usesInheritance: true, ngImport: i0, template: "@let url = kcContext.url;\n@let messagesPerField = kcContext.messagesPerField;\n@let realm = kcContext.realm;\n@let auth = kcContext.auth;\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 {{ 'emailForgotTitle' | msgStr }}\n </ng-container>\n <ng-container infoNode>\n @if (realm.duplicateEmailsAllowed) {\n {{ 'emailInstructionUsername' | msgStr }}\n } @else {\n {{ 'emailInstruction' | msgStr }}\n }\n </ng-container>\n\n <ng-container content>\n <form\n id=\"kc-passwd-update-form\"\n [kcClass]=\"'kcFormClass'\"\n [action]=\"url.loginAction\"\n method=\"post\"\n >\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div [kcClass]=\"'kcLabelWrapperClass'\">\n <label\n for=\"password-new\"\n [kcClass]=\"'kcLabelClass'\"\n >\n @if (realm.loginWithEmailAllowed) {\n {{ 'username' | msgStr }}\n } @else if (!realm.registrationEmailAsUsername) {\n {{ 'usernameOrEmail' | msgStr }}\n } @else {\n {{ 'email' | msgStr }}\n }\n </label>\n </div>\n\n <div [kcClass]=\"'kcInputWrapperClass'\">\n <input\n type=\"text\"\n id=\"username\"\n name=\"username\"\n [kcClass]=\"'kcInputClass'\"\n autoFocus\n [attr.aria-invalid]=\"messagesPerField.existsError('username')\"\n [defaultValue]=\"auth.attemptedUsername ?? ''\"\n />\n\n @if (messagesPerField.existsError('username')) {\n <span\n id=\"input-error-username\"\n [kcClass]=\"'kcInputErrorMessageClass'\"\n aria-live=\"polite\"\n [innerHtml]=\"messagesPerField.get('username') | kcSanitize: 'html'\"\n ></span>\n }\n </div>\n </div>\n\n <div [kcClass]=\"['kcFormGroupClass', 'kcFormSettingClass']\">\n <div\n id=\"kc-form-options\"\n [kcClass]=\"'kcFormOptionsClass'\"\n >\n <div [kcClass]=\"'kcFormOptionsWrapperClass'\">\n <span>\n <a\n [href]=\"url.loginUrl\"\n [innerHTML]=\"'backToLogin' | msgStr | kcSanitize: 'html'\"\n ></a>\n </span>\n </div>\n </div>\n <div\n id=\"kc-form-buttons\"\n [kcClass]=\"'kcFormButtonsClass'\"\n >\n <input\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n type=\"submit\"\n [value]=\"'doSubmit' | 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: LoginResetPasswordComponent, 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(() => LoginResetPasswordComponent)
35
- }
36
- ], template: "@let url = kcContext.url;\n@let messagesPerField = kcContext.messagesPerField;\n@let realm = kcContext.realm;\n@let auth = kcContext.auth;\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 {{ 'emailForgotTitle' | msgStr }}\n </ng-container>\n <ng-container infoNode>\n @if (realm.duplicateEmailsAllowed) {\n {{ 'emailInstructionUsername' | msgStr }}\n } @else {\n {{ 'emailInstruction' | msgStr }}\n }\n </ng-container>\n\n <ng-container content>\n <form\n id=\"kc-passwd-update-form\"\n [kcClass]=\"'kcFormClass'\"\n [action]=\"url.loginAction\"\n method=\"post\"\n >\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div [kcClass]=\"'kcLabelWrapperClass'\">\n <label\n for=\"password-new\"\n [kcClass]=\"'kcLabelClass'\"\n >\n @if (realm.loginWithEmailAllowed) {\n {{ 'username' | msgStr }}\n } @else if (!realm.registrationEmailAsUsername) {\n {{ 'usernameOrEmail' | msgStr }}\n } @else {\n {{ 'email' | msgStr }}\n }\n </label>\n </div>\n\n <div [kcClass]=\"'kcInputWrapperClass'\">\n <input\n type=\"text\"\n id=\"username\"\n name=\"username\"\n [kcClass]=\"'kcInputClass'\"\n autoFocus\n [attr.aria-invalid]=\"messagesPerField.existsError('username')\"\n [defaultValue]=\"auth.attemptedUsername ?? ''\"\n />\n\n @if (messagesPerField.existsError('username')) {\n <span\n id=\"input-error-username\"\n [kcClass]=\"'kcInputErrorMessageClass'\"\n aria-live=\"polite\"\n [innerHtml]=\"messagesPerField.get('username') | kcSanitize: 'html'\"\n ></span>\n }\n </div>\n </div>\n\n <div [kcClass]=\"['kcFormGroupClass', 'kcFormSettingClass']\">\n <div\n id=\"kc-form-options\"\n [kcClass]=\"'kcFormOptionsClass'\"\n >\n <div [kcClass]=\"'kcFormOptionsWrapperClass'\">\n <span>\n <a\n [href]=\"url.loginUrl\"\n [innerHTML]=\"'backToLogin' | msgStr | kcSanitize: 'html'\"\n ></a>\n </span>\n </div>\n </div>\n <div\n id=\"kc-form-buttons\"\n [kcClass]=\"'kcFormButtonsClass'\"\n >\n <input\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n type=\"submit\"\n [value]=\"'doSubmit' | msgStr\"\n />\n </div>\n </div>\n </form>\n </ng-container>\n</kc-login-template>\n" }]
37
- }] });
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4tcmVzZXQtcGFzc3dvcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2V5Y2xvYWtpZnktYW5ndWxhci9zcmMvbG9naW4vcGFnZXMvbG9naW4tcmVzZXQtcGFzc3dvcmQvbG9naW4tcmVzZXQtcGFzc3dvcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2V5Y2xvYWtpZnktYW5ndWxhci9zcmMvbG9naW4vcGFnZXMvbG9naW4tcmVzZXQtcGFzc3dvcmQvbG9naW4tcmVzZXQtcGFzc3dvcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEVBQ1IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNILE9BQU8sRUFDUCxVQUFVLEVBQ1YsZUFBZSxFQUNsQixNQUFNLHFDQUFxQyxDQUFDO0FBRzdDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhEQUE4RCxDQUFDO0FBQ2xHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBQzdGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUNuRixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0NBQStDLENBQUM7O0FBZTNFLE1BQU0sT0FBTywyQkFBNEIsU0FBUSxrQkFBa0I7SUFibkU7O1FBY0ksY0FBUyxHQUNMLE1BQU0sQ0FBNkQsVUFBVSxDQUFDLENBQUM7UUFDMUUsb0JBQWUsR0FBRyxNQUFNLENBQVUsZUFBZSxDQUFDLENBQUM7UUFDbkQsWUFBTyxHQUFHLE1BQU0sQ0FBb0MsT0FBTyxDQUFDLENBQUM7UUFDdEUsMEJBQXFCLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JDLGtCQUFhLEdBQUcsS0FBSyxFQUFVLENBQUM7UUFDaEMsa0JBQWEsR0FBRyxLQUFLLEVBQVUsQ0FBQztRQUNoQyxnQkFBVyxHQUFZLEtBQUssQ0FBQztRQUM3QixtQkFBYyxHQUFZLElBQUksQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0tBQ3JGOzhHQVZZLDJCQUEyQjtrR0FBM0IsMkJBQTJCLDBnQkFQekI7WUFDUDtnQkFDSSxPQUFPLEVBQUUsa0JBQWtCO2dCQUMzQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLDJCQUEyQixDQUFDO2FBQzdEO1NBQ0osaURDL0JMLHc1RkErRkEsNENEekVjLGlCQUFpQiwrSkFBRSxVQUFVLCtDQUFFLGdCQUFnQiwwRkFBRSxjQUFjOzsyRkFXaEUsMkJBQTJCO2tCQWJ2QyxTQUFTO2lDQUNNLElBQUksV0FDUCxDQUFDLGlCQUFpQixFQUFFLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxjQUFjLENBQUMsWUFDaEUsU0FBUyxtQkFFRix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSxrQkFBa0I7NEJBQzNCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLDRCQUE0QixDQUFDO3lCQUM3RDtxQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIGZvcndhcmRSZWYsXG4gICAgaW5qZWN0LFxuICAgIGlucHV0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBDTEFTU0VTLFxuICAgIEtDX0NPTlRFWFQsXG4gICAgVVNFX0RFRkFVTFRfQ1NTXG59IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xpYi9wdWJsaWMtYXBpJztcbmltcG9ydCB7IENsYXNzS2V5IH0gZnJvbSAna2V5Y2xvYWtpZnkvbG9naW4vbGliL2tjQ2xzeCc7XG5pbXBvcnQgeyBLY0NvbnRleHQgfSBmcm9tICdrZXljbG9ha2lmeS9sb2dpbi9LY0NvbnRleHQnO1xuaW1wb3J0IHsgQ29tcG9uZW50UmVmZXJlbmNlIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vY2xhc3Nlcy9jb21wb25lbnQtcmVmZXJlbmNlLmNsYXNzJztcbmltcG9ydCB7IFRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vY29udGFpbmVycy90ZW1wbGF0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgS2NDbGFzc0RpcmVjdGl2ZSB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL2RpcmVjdGl2ZXMnO1xuaW1wb3J0IHsgS2NTYW5pdGl6ZVBpcGUgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9waXBlcy9rYy1zYW5pdGl6ZS5waXBlJztcbmltcG9ydCB7IE1zZ1N0clBpcGUgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9waXBlcy9tc2ctc3RyLnBpcGUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtUZW1wbGF0ZUNvbXBvbmVudCwgTXNnU3RyUGlwZSwgS2NDbGFzc0RpcmVjdGl2ZSwgS2NTYW5pdGl6ZVBpcGVdLFxuICAgIHNlbGVjdG9yOiAna2Mtcm9vdCcsXG4gICAgdGVtcGxhdGVVcmw6ICdsb2dpbi1yZXNldC1wYXNzd29yZC5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IENvbXBvbmVudFJlZmVyZW5jZSxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IExvZ2luUmVzZXRQYXNzd29yZENvbXBvbmVudClcbiAgICAgICAgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgTG9naW5SZXNldFBhc3N3b3JkQ29tcG9uZW50IGV4dGVuZHMgQ29tcG9uZW50UmVmZXJlbmNlIHtcbiAgICBrY0NvbnRleHQgPVxuICAgICAgICBpbmplY3Q8RXh0cmFjdDxLY0NvbnRleHQsIHsgcGFnZUlkOiAnbG9naW4tcmVzZXQtcGFzc3dvcmQuZnRsJyB9Pj4oS0NfQ09OVEVYVCk7XG4gICAgb3ZlcnJpZGUgZG9Vc2VEZWZhdWx0Q3NzID0gaW5qZWN0PGJvb2xlYW4+KFVTRV9ERUZBVUxUX0NTUyk7XG4gICAgb3ZlcnJpZGUgY2xhc3NlcyA9IGluamVjdDxQYXJ0aWFsPFJlY29yZDxDbGFzc0tleSwgc3RyaW5nPj4+KENMQVNTRVMpO1xuICAgIGRpc3BsYXlSZXF1aXJlZEZpZWxkcyA9IGlucHV0KGZhbHNlKTtcbiAgICBkb2N1bWVudFRpdGxlID0gaW5wdXQ8c3RyaW5nPigpO1xuICAgIGJvZHlDbGFzc05hbWUgPSBpbnB1dDxzdHJpbmc+KCk7XG4gICAgZGlzcGxheUluZm86IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBkaXNwbGF5TWVzc2FnZTogYm9vbGVhbiA9IHRoaXMua2NDb250ZXh0Lm1lc3NhZ2VzUGVyRmllbGQuZXhpc3RzRXJyb3IoJ3VzZXJuYW1lJyk7XG59XG4iLCJAbGV0IHVybCA9IGtjQ29udGV4dC51cmw7XG5AbGV0IG1lc3NhZ2VzUGVyRmllbGQgPSBrY0NvbnRleHQubWVzc2FnZXNQZXJGaWVsZDtcbkBsZXQgcmVhbG0gPSBrY0NvbnRleHQucmVhbG07XG5AbGV0IGF1dGggPSBrY0NvbnRleHQuYXV0aDtcbjxrYy1sb2dpbi10ZW1wbGF0ZVxuICBbZGlzcGxheUluZm9dPVwiZGlzcGxheUluZm9cIlxuICBbYm9keUNsYXNzTmFtZV09XCJib2R5Q2xhc3NOYW1lKClcIlxuICBbZGlzcGxheU1lc3NhZ2VdPVwiZGlzcGxheU1lc3NhZ2VcIlxuICBbZGlzcGxheVJlcXVpcmVkRmllbGRzXT1cImRpc3BsYXlSZXF1aXJlZEZpZWxkcygpXCJcbiAgW2RvY3VtZW50VGl0bGVdPVwiZG9jdW1lbnRUaXRsZSgpXCJcbj5cbiAgPG5nLWNvbnRhaW5lciBoZWFkZXJOb2RlPlxuICAgIHt7ICdlbWFpbEZvcmdvdFRpdGxlJyB8IG1zZ1N0ciB9fVxuICA8L25nLWNvbnRhaW5lcj5cbiAgPG5nLWNvbnRhaW5lciBpbmZvTm9kZT5cbiAgICBAaWYgKHJlYWxtLmR1cGxpY2F0ZUVtYWlsc0FsbG93ZWQpIHtcbiAgICAgIHt7ICdlbWFpbEluc3RydWN0aW9uVXNlcm5hbWUnIHwgbXNnU3RyIH19XG4gICAgfSBAZWxzZSB7XG4gICAgICB7eyAnZW1haWxJbnN0cnVjdGlvbicgfCBtc2dTdHIgfX1cbiAgICB9XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDxuZy1jb250YWluZXIgY29udGVudD5cbiAgICA8Zm9ybVxuICAgICAgaWQ9XCJrYy1wYXNzd2QtdXBkYXRlLWZvcm1cIlxuICAgICAgW2tjQ2xhc3NdPVwiJ2tjRm9ybUNsYXNzJ1wiXG4gICAgICBbYWN0aW9uXT1cInVybC5sb2dpbkFjdGlvblwiXG4gICAgICBtZXRob2Q9XCJwb3N0XCJcbiAgICA+XG4gICAgICA8ZGl2IFtrY0NsYXNzXT1cIidrY0Zvcm1Hcm91cENsYXNzJ1wiPlxuICAgICAgICA8ZGl2IFtrY0NsYXNzXT1cIidrY0xhYmVsV3JhcHBlckNsYXNzJ1wiPlxuICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgZm9yPVwicGFzc3dvcmQtbmV3XCJcbiAgICAgICAgICAgIFtrY0NsYXNzXT1cIidrY0xhYmVsQ2xhc3MnXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICBAaWYgKHJlYWxtLmxvZ2luV2l0aEVtYWlsQWxsb3dlZCkge1xuICAgICAgICAgICAgICB7eyAndXNlcm5hbWUnIHwgbXNnU3RyIH19XG4gICAgICAgICAgICB9IEBlbHNlIGlmICghcmVhbG0ucmVnaXN0cmF0aW9uRW1haWxBc1VzZXJuYW1lKSB7XG4gICAgICAgICAgICAgIHt7ICd1c2VybmFtZU9yRW1haWwnIHwgbXNnU3RyIH19XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAge3sgJ2VtYWlsJyB8IG1zZ1N0ciB9fVxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgW2tjQ2xhc3NdPVwiJ2tjSW5wdXRXcmFwcGVyQ2xhc3MnXCI+XG4gICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICBpZD1cInVzZXJuYW1lXCJcbiAgICAgICAgICAgIG5hbWU9XCJ1c2VybmFtZVwiXG4gICAgICAgICAgICBba2NDbGFzc109XCIna2NJbnB1dENsYXNzJ1wiXG4gICAgICAgICAgICBhdXRvRm9jdXNcbiAgICAgICAgICAgIFthdHRyLmFyaWEtaW52YWxpZF09XCJtZXNzYWdlc1BlckZpZWxkLmV4aXN0c0Vycm9yKCd1c2VybmFtZScpXCJcbiAgICAgICAgICAgIFtkZWZhdWx0VmFsdWVdPVwiYXV0aC5hdHRlbXB0ZWRVc2VybmFtZSA/PyAnJ1wiXG4gICAgICAgICAgLz5cblxuICAgICAgICAgIEBpZiAobWVzc2FnZXNQZXJGaWVsZC5leGlzdHNFcnJvcigndXNlcm5hbWUnKSkge1xuICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgaWQ9XCJpbnB1dC1lcnJvci11c2VybmFtZVwiXG4gICAgICAgICAgICAgIFtrY0NsYXNzXT1cIidrY0lucHV0RXJyb3JNZXNzYWdlQ2xhc3MnXCJcbiAgICAgICAgICAgICAgYXJpYS1saXZlPVwicG9saXRlXCJcbiAgICAgICAgICAgICAgW2lubmVySHRtbF09XCJtZXNzYWdlc1BlckZpZWxkLmdldCgndXNlcm5hbWUnKSB8IGtjU2FuaXRpemU6ICdodG1sJ1wiXG4gICAgICAgICAgICA+PC9zcGFuPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBba2NDbGFzc109XCJbJ2tjRm9ybUdyb3VwQ2xhc3MnLCAna2NGb3JtU2V0dGluZ0NsYXNzJ11cIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGlkPVwia2MtZm9ybS1vcHRpb25zXCJcbiAgICAgICAgICBba2NDbGFzc109XCIna2NGb3JtT3B0aW9uc0NsYXNzJ1wiXG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2IFtrY0NsYXNzXT1cIidrY0Zvcm1PcHRpb25zV3JhcHBlckNsYXNzJ1wiPlxuICAgICAgICAgICAgPHNwYW4+XG4gICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgW2hyZWZdPVwidXJsLmxvZ2luVXJsXCJcbiAgICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cIidiYWNrVG9Mb2dpbicgfCBtc2dTdHIgfCBrY1Nhbml0aXplOiAnaHRtbCdcIlxuICAgICAgICAgICAgICA+PC9hPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGlkPVwia2MtZm9ybS1idXR0b25zXCJcbiAgICAgICAgICBba2NDbGFzc109XCIna2NGb3JtQnV0dG9uc0NsYXNzJ1wiXG4gICAgICAgID5cbiAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIFtrY0NsYXNzXT1cIlsna2NCdXR0b25DbGFzcycsICdrY0J1dHRvblByaW1hcnlDbGFzcycsICdrY0J1dHRvbkJsb2NrQ2xhc3MnLCAna2NCdXR0b25MYXJnZUNsYXNzJ11cIlxuICAgICAgICAgICAgdHlwZT1cInN1Ym1pdFwiXG4gICAgICAgICAgICBbdmFsdWVdPVwiJ2RvU3VibWl0JyB8IG1zZ1N0clwiXG4gICAgICAgICAgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Zvcm0+XG4gIDwvbmctY29udGFpbmVyPlxuPC9rYy1sb2dpbi10ZW1wbGF0ZT5cbiJdfQ==