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

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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keycloakify-angular-login-services-user-profile-form.mjs","sources":["../../src/login/services/user-profile-form/user-profile-form.service.ts","../../src/login/services/user-profile-form/keycloakify-angular-login-services-user-profile-form.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/ban-ts-comment */\n\nimport {\n computed,\n inject,\n Injectable,\n signal,\n Signal,\n WritableSignal\n} from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport type { KcContext } from '@keycloakify/angular/login/KcContext';\nimport type { I18n } from '@keycloakify/angular/login/i18n';\nimport { LoginResourceInjectorService } from '@keycloakify/angular/login/services/login-resource-injector';\nimport { LOGIN_I18N } from '@keycloakify/angular/login/tokens/i18n';\nimport { KC_LOGIN_CONTEXT } from '@keycloakify/angular/login/tokens/kc-context';\nimport { DO_MAKE_USER_CONFIRM_PASSWORD } from '@keycloakify/angular/login/tokens/make-user-confirm-password';\nimport {\n type Attribute,\n type PasswordPolicies,\n type Validators\n} from 'keycloakify/login/KcContext';\nimport type {\n KcContextLike as KcContextLike_i18n,\n MessageKey_defaultSet\n} from 'keycloakify/login/i18n/noJsx';\nimport { emailRegexp } from 'keycloakify/tools/emailRegExp';\nimport { formatNumber } from 'keycloakify/tools/formatNumber';\nimport { structuredCloneButFunctions } from 'keycloakify/tools/structuredCloneButFunctions';\nimport { assert, id } from 'tsafe';\n\ntype KcContextLike_useGetErrors = KcContextLike_i18n & {\n messagesPerField: Pick<KcContext['messagesPerField'], 'existsError' | 'get'>;\n passwordPolicies?: PasswordPolicies;\n};\nexport namespace FormFieldError {\n export type Source =\n | Source.Validator\n | Source.PasswordPolicy\n | Source.Server\n | Source.Other;\n\n export namespace Source {\n export type Validator = {\n type: 'validator';\n name: keyof Validators;\n };\n export type PasswordPolicy = {\n type: 'passwordPolicy';\n name: keyof PasswordPolicies;\n };\n export type Server = {\n type: 'server';\n };\n\n export type Other = {\n type: 'other';\n rule: 'passwordConfirmMatchesPassword' | 'requiredField';\n };\n }\n}\n\nexport type KcContextLike = KcContextLike_i18n &\n KcContextLike_useGetErrors & {\n profile: {\n attributesByName: Record<string, Attribute>;\n html5DataAnnotations?: Record<string, string>;\n };\n passwordRequired?: boolean;\n realm: { registrationEmailAsUsername: boolean };\n url: {\n resourcesPath: string;\n };\n };\nexport type FormFieldError = {\n errorMessage: SafeHtml; // this was jsx, be carefull\n errorMessageStr: string;\n source: FormFieldError.Source;\n fieldIndex: number | undefined;\n};\nnamespace internal {\n export type FormFieldState = {\n attribute: Attribute;\n errors: FormFieldError[];\n hasLostFocusAtLeastOnce: boolean | boolean[];\n valueOrValues: string | string[];\n };\n\n export type State = {\n formFieldStates: FormFieldState[];\n };\n}\ntype FormFieldState = {\n attribute: Attribute;\n displayableErrors: FormFieldError[];\n valueOrValues: string | string[];\n};\ntype FormState = {\n isFormSubmittable: boolean;\n formFieldStates: FormFieldState[];\n};\nexport type FormAction =\n | {\n action: 'update';\n name: string;\n valueOrValues: string | string[];\n /** Default false */\n displayErrorsImmediately?: boolean;\n }\n | {\n action: 'focus lost';\n name: string;\n fieldIndex: number | undefined;\n };\n\n@Injectable({ providedIn: 'root' })\nexport class UserProfileFormService {\n private kcContext: KcContextLike =\n inject<Extract<KcContext, { pageId: 'register.ftl' }>>(KC_LOGIN_CONTEXT);\n private i18n = inject<I18n>(LOGIN_I18N);\n private doMakeUserConfirmPassword = inject(DO_MAKE_USER_CONFIRM_PASSWORD);\n private loginResourceInjectorService = inject(LoginResourceInjectorService);\n private sanitizer: DomSanitizer = inject(DomSanitizer);\n private initialState: internal.State = (() => {\n const attributes: Attribute[] = (() => {\n mock_user_profile_attributes_for_older_keycloak_versions: {\n if (\n 'profile' in this.kcContext &&\n 'attributesByName' in this.kcContext.profile &&\n Object.keys(this.kcContext.profile.attributesByName).length !== 0\n ) {\n break mock_user_profile_attributes_for_older_keycloak_versions;\n }\n\n if (\n 'register' in this.kcContext &&\n this.kcContext.register instanceof Object &&\n 'formData' in this.kcContext.register\n ) {\n //NOTE: Handle legacy register.ftl page\n return (['firstName', 'lastName', 'email', 'username'] as const)\n .filter(name =>\n name !== 'username'\n ? true\n : !this.kcContext.realm.registrationEmailAsUsername\n )\n .map(name =>\n id<Attribute>({\n name: name,\n displayName: id<`\\${${MessageKey_defaultSet}}`>(\n `\\${${name}}`\n ),\n required: true,\n value:\n (this.kcContext as any).register.formData[name] ?? '',\n html5DataAnnotations: {},\n readOnly: false,\n validators: {},\n annotations: {},\n autocomplete: (() => {\n switch (name) {\n case 'email':\n return 'email';\n case 'username':\n return 'username';\n default:\n return undefined;\n }\n })()\n })\n );\n }\n\n if ('user' in this.kcContext && this.kcContext.user instanceof Object) {\n //NOTE: Handle legacy login-update-profile.ftl\n return (['username', 'email', 'firstName', 'lastName'] as const)\n .filter(name =>\n name !== 'username'\n ? true\n : (this.kcContext as any).user.editUsernameAllowed\n )\n .map(name =>\n id<Attribute>({\n name: name,\n displayName: id<`\\${${MessageKey_defaultSet}}`>(\n `\\${${name}}`\n ),\n required: true,\n value: (this.kcContext as any).user[name] ?? '',\n html5DataAnnotations: {},\n readOnly: false,\n validators: {},\n annotations: {},\n autocomplete: (() => {\n switch (name) {\n case 'email':\n return 'email';\n case 'username':\n return 'username';\n default:\n return undefined;\n }\n })()\n })\n );\n }\n\n if ('email' in this.kcContext && this.kcContext.email instanceof Object) {\n //NOTE: Handle legacy update-email.ftl\n return [\n id<Attribute>({\n name: 'email',\n displayName: id<`\\${${MessageKey_defaultSet}}`>(`\\${email}`),\n required: true,\n value: (this.kcContext.email as any).value ?? '',\n html5DataAnnotations: {},\n readOnly: false,\n validators: {},\n annotations: {},\n autocomplete: 'email'\n })\n ];\n }\n\n assert(false, 'Unable to mock user profile from the current kcContext');\n }\n\n return Object.values(this.kcContext.profile.attributesByName).map(\n structuredCloneButFunctions\n );\n })();\n // Retro-compatibility and consistency patches\n attributes.forEach(attribute => {\n patch_legacy_group: {\n if (typeof attribute.group !== 'string') {\n break patch_legacy_group;\n }\n\n const {\n group,\n groupDisplayHeader,\n groupDisplayDescription,\n groupAnnotations\n } = attribute as Attribute & {\n group: string;\n groupDisplayHeader?: string;\n groupDisplayDescription?: string;\n groupAnnotations: Record<string, string>;\n };\n\n delete attribute.group;\n // @ts-expect-error\n delete attribute.groupDisplayHeader;\n // @ts-expect-error\n delete attribute.groupDisplayDescription;\n // @ts-expect-error\n delete attribute.groupAnnotations;\n\n if (group === '') {\n break patch_legacy_group;\n }\n\n attribute.group = {\n name: group,\n displayHeader: groupDisplayHeader,\n displayDescription: groupDisplayDescription,\n annotations: groupAnnotations,\n html5DataAnnotations: {}\n };\n }\n\n // Attributes with options rendered by default as select inputs\n if (\n attribute.validators.options !== undefined &&\n attribute.annotations.inputType === undefined\n ) {\n attribute.annotations.inputType = 'select';\n }\n\n // Consistency patch on values/value property\n {\n if (this.getIsMultivaluedSingleField({ attribute })) {\n attribute.multivalued = true;\n }\n\n if (attribute.multivalued) {\n attribute.values ??=\n attribute.value !== undefined ? [attribute.value] : [];\n delete attribute.value;\n } else {\n attribute.value ??= attribute.values?.[0];\n delete attribute.values;\n }\n }\n });\n add_password_and_password_confirm: {\n if (!this.kcContext.passwordRequired) {\n break add_password_and_password_confirm;\n }\n\n attributes.forEach((attribute, i) => {\n if (\n attribute.name !==\n (this.kcContext.realm.registrationEmailAsUsername\n ? 'email'\n : 'username')\n ) {\n // NOTE: We want to add password and password-confirm after the field that identifies the user.\n // It's either email or username.\n return;\n }\n\n attributes.splice(\n i + 1,\n 0,\n {\n name: 'password',\n displayName: id<`\\${${MessageKey_defaultSet}}`>('${password}'),\n required: true,\n readOnly: false,\n validators: {},\n annotations: {},\n autocomplete: 'new-password',\n html5DataAnnotations: {}\n },\n {\n name: 'password-confirm',\n displayName:\n id<`\\${${MessageKey_defaultSet}}`>('${passwordConfirm}'),\n required: true,\n readOnly: false,\n validators: {},\n annotations: {},\n html5DataAnnotations: {},\n autocomplete: 'new-password'\n }\n );\n });\n }\n const initialFormFieldState: {\n attribute: Attribute;\n valueOrValues: string | string[];\n }[] = [];\n\n for (const attribute of attributes) {\n handle_multi_valued_attribute: {\n if (!attribute.multivalued) {\n break handle_multi_valued_attribute;\n }\n\n const values = attribute.values?.length ? attribute.values : [''];\n\n apply_validator_min_range: {\n if (this.getIsMultivaluedSingleField({ attribute })) {\n break apply_validator_min_range;\n }\n\n const validator = attribute.validators.multivalued;\n\n if (validator === undefined) {\n break apply_validator_min_range;\n }\n\n const { min: minStr } = validator;\n\n if (!minStr) {\n break apply_validator_min_range;\n }\n\n const min = parseInt(`${minStr}`);\n\n for (let index = values.length; index < min; index++) {\n values.push('');\n }\n }\n\n initialFormFieldState.push({\n attribute,\n valueOrValues: values\n });\n\n continue;\n }\n\n initialFormFieldState.push({\n attribute,\n valueOrValues: attribute.value ?? ''\n });\n }\n\n const initialState: internal.State = {\n formFieldStates: initialFormFieldState.map(\n ({ attribute, valueOrValues }) => ({\n attribute,\n errors: this.getErrors({\n attributeName: attribute.name,\n formFieldStates: initialFormFieldState\n }),\n hasLostFocusAtLeastOnce:\n valueOrValues instanceof Array &&\n !this.getIsMultivaluedSingleField({ attribute })\n ? valueOrValues.map(() => false)\n : false,\n valueOrValues: valueOrValues\n })\n )\n };\n return initialState;\n })();\n\n private state: WritableSignal<internal.State> = signal(this.initialState);\n\n formState: Signal<FormState> = computed(() => {\n const state: internal.State = this.state();\n return {\n formFieldStates: state.formFieldStates.map(\n ({\n errors,\n hasLostFocusAtLeastOnce: hasLostFocusAtLeastOnceOrArr,\n attribute,\n ...valueOrValuesWrap\n }) => ({\n displayableErrors: errors.filter(error => {\n const hasLostFocusAtLeastOnce =\n typeof hasLostFocusAtLeastOnceOrArr === 'boolean'\n ? hasLostFocusAtLeastOnceOrArr\n : error.fieldIndex !== undefined\n ? hasLostFocusAtLeastOnceOrArr[error.fieldIndex]\n : hasLostFocusAtLeastOnceOrArr[\n hasLostFocusAtLeastOnceOrArr.length - 1\n ];\n let value = false;\n switch (error.source.type) {\n case 'server':\n value = true;\n break;\n case 'other':\n switch (error.source.rule) {\n case 'requiredField':\n value = hasLostFocusAtLeastOnce;\n break;\n case 'passwordConfirmMatchesPassword':\n value = hasLostFocusAtLeastOnce;\n break;\n }\n // assert<Equals<typeof error.source.rule, never>>(false);\n break;\n case 'passwordPolicy':\n switch (error.source.name) {\n case 'length':\n value = hasLostFocusAtLeastOnce;\n break;\n case 'digits':\n value = hasLostFocusAtLeastOnce;\n break;\n case 'lowerCase':\n value = hasLostFocusAtLeastOnce;\n break;\n case 'upperCase':\n value = hasLostFocusAtLeastOnce;\n break;\n case 'specialChars':\n value = hasLostFocusAtLeastOnce;\n break;\n case 'notUsername':\n value = true;\n break;\n case 'notEmail':\n value = true;\n break;\n }\n // assert<Equals<typeof error.source, never>>(false);\n break;\n case 'validator':\n switch (error.source.name) {\n case 'length':\n value = hasLostFocusAtLeastOnce;\n break;\n case 'pattern':\n value = hasLostFocusAtLeastOnce;\n break;\n case 'email':\n value = hasLostFocusAtLeastOnce;\n break;\n case 'integer':\n value = hasLostFocusAtLeastOnce;\n break;\n case 'multivalued':\n value = hasLostFocusAtLeastOnce;\n break;\n case 'options':\n value = hasLostFocusAtLeastOnce;\n break;\n }\n // assert<Equals<typeof error.source, never>>(false);\n break;\n }\n return value;\n }),\n attribute,\n ...valueOrValuesWrap\n })\n ),\n isFormSubmittable: state.formFieldStates.every(\n ({ errors }) => errors.length === 0\n )\n };\n });\n\n constructor() {\n this.loginResourceInjectorService.insertAdditionalScripts(\n Object.keys(this.kcContext.profile?.html5DataAnnotations ?? {})\n .filter(key => key !== 'kcMultivalued' && key !== 'kcNumberFormat') // NOTE: Keycloakify handles it.\n .map(key => ({\n type: 'module',\n src: `${this.kcContext.url.resourcesPath}/js/${key}.js`,\n id: `${this.kcContext.url.resourcesPath}/js/${key}.js`\n }))\n );\n }\n\n public dispatchFormAction(formAction: FormAction) {\n if (!formAction) return;\n const state = this.state();\n const formFieldState = state.formFieldStates.find(\n ({ attribute }) => attribute.name === formAction.name\n );\n assert(formFieldState !== undefined);\n switch (formAction.action) {\n case 'update':\n formFieldState.valueOrValues = formAction.valueOrValues;\n\n apply_formatters: {\n const { attribute } = formFieldState;\n\n const { kcNumberFormat } = attribute.html5DataAnnotations ?? {};\n\n if (!kcNumberFormat) {\n break apply_formatters;\n }\n\n if (formFieldState.valueOrValues instanceof Array) {\n formFieldState.valueOrValues = formFieldState.valueOrValues.map(\n value => formatNumber(value, kcNumberFormat)\n );\n } else {\n formFieldState.valueOrValues = formatNumber(\n formFieldState.valueOrValues,\n kcNumberFormat\n );\n }\n }\n\n formFieldState.errors = this.getErrors({\n attributeName: formAction.name,\n formFieldStates: state.formFieldStates\n });\n\n simulate_focus_lost: {\n const { displayErrorsImmediately = false } = formAction;\n\n if (!displayErrorsImmediately) {\n break simulate_focus_lost;\n }\n\n for (const fieldIndex of formAction.valueOrValues instanceof Array\n ? formAction.valueOrValues.map((...[, index]) => index)\n : [undefined]) {\n this.dispatchFormAction({\n action: 'focus lost',\n name: formAction.name,\n fieldIndex\n });\n }\n }\n\n update_password_confirm: {\n if (this.doMakeUserConfirmPassword) {\n break update_password_confirm;\n }\n\n if (formAction.name !== 'password') {\n break update_password_confirm;\n }\n\n this.dispatchFormAction({\n action: 'update',\n name: 'password-confirm',\n valueOrValues: formAction.valueOrValues,\n displayErrorsImmediately: formAction.displayErrorsImmediately\n });\n }\n\n trigger_password_confirm_validation_on_password_change: {\n if (!this.doMakeUserConfirmPassword) {\n break trigger_password_confirm_validation_on_password_change;\n }\n\n if (formAction.name !== 'password') {\n break trigger_password_confirm_validation_on_password_change;\n }\n\n this.dispatchFormAction({\n action: 'update',\n name: 'password-confirm',\n valueOrValues: (() => {\n const formFieldState = state.formFieldStates.find(\n ({ attribute }) => attribute.name === 'password-confirm'\n );\n\n assert(formFieldState !== undefined);\n\n return formFieldState.valueOrValues;\n })(),\n displayErrorsImmediately: formAction.displayErrorsImmediately\n });\n }\n\n break;\n case 'focus lost':\n if (formFieldState.hasLostFocusAtLeastOnce instanceof Array) {\n const { fieldIndex } = formAction;\n assert(fieldIndex !== undefined);\n formFieldState.hasLostFocusAtLeastOnce[fieldIndex] = true;\n break;\n }\n\n formFieldState.hasLostFocusAtLeastOnce = true;\n break;\n }\n this.state.update(state => ({\n ...state,\n formFieldStates: state.formFieldStates.map(f => {\n if (f.attribute === formFieldState.attribute) return formFieldState;\n return f;\n })\n }));\n }\n\n private getIsMultivaluedSingleField(params: { attribute: Attribute }) {\n const { attribute } = params;\n\n return attribute.annotations.inputType?.startsWith('multiselect') ?? false;\n }\n\n private getErrors(params: {\n attributeName: string;\n formFieldStates: {\n attribute: Attribute;\n valueOrValues: string | string[];\n }[];\n }): FormFieldError[] {\n const { messagesPerField, passwordPolicies } = this.kcContext;\n\n const { msgStr, advancedMsgStr } = this.i18n;\n const { attributeName, formFieldStates } = params;\n\n const formFieldState = formFieldStates.find(\n ({ attribute }) => attribute.name === attributeName\n );\n\n assert(formFieldState !== undefined);\n\n const { attribute } = formFieldState;\n\n const valueOrValues = (() => {\n let { valueOrValues } = formFieldState;\n\n unFormat_number: {\n const { kcNumberUnFormat } = attribute.html5DataAnnotations ?? {};\n\n if (!kcNumberUnFormat) {\n break unFormat_number;\n }\n\n if (valueOrValues instanceof Array) {\n valueOrValues = valueOrValues.map(value =>\n formatNumber(value, kcNumberUnFormat)\n );\n } else {\n valueOrValues = formatNumber(valueOrValues, kcNumberUnFormat);\n }\n }\n\n return valueOrValues;\n })();\n\n assert(attribute !== undefined);\n\n server_side_error: {\n if (attribute.multivalued) {\n const defaultValues = attribute.values?.length ? attribute.values : [''];\n\n assert(valueOrValues instanceof Array);\n\n const values = valueOrValues;\n\n if (\n JSON.stringify(defaultValues) !==\n JSON.stringify(values.slice(0, defaultValues.length))\n ) {\n break server_side_error;\n }\n } else {\n const defaultValue = attribute.value ?? '';\n\n assert(typeof valueOrValues === 'string');\n\n const value = valueOrValues;\n\n if (defaultValue !== value) {\n break server_side_error;\n }\n }\n\n let doesErrorExist: boolean;\n\n try {\n doesErrorExist = messagesPerField.existsError(attributeName);\n } catch {\n break server_side_error;\n }\n\n if (!doesErrorExist) {\n break server_side_error;\n }\n\n const errorMessageStr = messagesPerField.get(attributeName);\n\n return [\n {\n errorMessageStr,\n errorMessage: this.sanitizer.bypassSecurityTrustHtml(\n `<span>${errorMessageStr}</span>`\n ),\n fieldIndex: undefined,\n source: {\n type: 'server'\n }\n }\n ];\n }\n\n handle_multi_valued_multi_fields: {\n if (!attribute.multivalued) {\n break handle_multi_valued_multi_fields;\n }\n\n if (this.getIsMultivaluedSingleField({ attribute })) {\n break handle_multi_valued_multi_fields;\n }\n\n assert(valueOrValues instanceof Array);\n\n const values = valueOrValues;\n\n const errors = values\n .map((...[, index]) => {\n const specificValueErrors = this.getErrors({\n attributeName,\n formFieldStates: formFieldStates.map(formFieldState => {\n if (formFieldState.attribute.name === attributeName) {\n assert(formFieldState.valueOrValues instanceof Array);\n return {\n attribute: {\n ...attribute,\n annotations: {\n ...attribute.annotations,\n inputType: undefined\n },\n multivalued: false\n },\n valueOrValues: formFieldState.valueOrValues[index]\n };\n }\n\n return formFieldState;\n })\n });\n\n return specificValueErrors\n .filter(error => {\n if (\n error.source.type === 'other' &&\n error.source.rule === 'requiredField'\n ) {\n return false;\n }\n\n return true;\n })\n .map(\n (error): FormFieldError => ({\n ...error,\n fieldIndex: index\n })\n );\n })\n .reduce((acc, errors) => [...acc, ...errors], []);\n\n required_field: {\n if (!attribute.required) {\n break required_field;\n }\n\n if (values.every(value => value !== '')) {\n break required_field;\n }\n\n const msgArgs = ['error-user-attribute-required'] as const;\n\n errors.push({\n errorMessage: this.sanitizer.bypassSecurityTrustHtml(\n `<span data-key=\"${attributeName}-${errors.length}\">${msgStr(...msgArgs)}</span>`\n ),\n errorMessageStr: msgStr(...msgArgs),\n fieldIndex: undefined,\n source: {\n type: 'other',\n rule: 'requiredField'\n }\n });\n }\n\n return errors;\n }\n\n handle_multi_valued_single_field: {\n if (!attribute.multivalued) {\n break handle_multi_valued_single_field;\n }\n\n if (!this.getIsMultivaluedSingleField({ attribute })) {\n break handle_multi_valued_single_field;\n }\n\n const validatorName = 'multivalued';\n\n const validator = attribute.validators[validatorName];\n\n if (validator === undefined) {\n return [];\n }\n\n const { min: minStr } = validator;\n\n const min = minStr ? parseInt(`${minStr}`) : attribute.required ? 1 : 0;\n\n assert(!isNaN(min));\n\n const { max: maxStr } = validator;\n\n const max = !maxStr ? Infinity : parseInt(`${maxStr}`);\n\n assert(!isNaN(max));\n\n assert(valueOrValues instanceof Array);\n\n const values = valueOrValues;\n\n if (min <= values.length && values.length <= max) {\n return [];\n }\n\n const msgArgs = [\n 'error-invalid-multivalued-size',\n `${min}`,\n `${max}`\n ] as const;\n\n return [\n {\n errorMessage: this.sanitizer.bypassSecurityTrustHtml(\n `<span data-key=\"0\">${msgStr(...msgArgs)}</span>`\n ),\n errorMessageStr: msgStr(...msgArgs),\n fieldIndex: undefined,\n source: {\n type: 'validator',\n name: validatorName\n }\n }\n ];\n }\n\n assert(typeof valueOrValues === 'string');\n\n const value = valueOrValues;\n\n const errors: FormFieldError[] = [];\n\n check_password_policies: {\n if (attributeName !== 'password') {\n break check_password_policies;\n }\n\n if (passwordPolicies === undefined) {\n break check_password_policies;\n }\n\n check_password_policy_x: {\n const policyName = 'length';\n\n const policy = passwordPolicies[policyName];\n\n if (!policy) {\n break check_password_policy_x;\n }\n\n const minLength = policy;\n\n if (value.length >= minLength) {\n break check_password_policy_x;\n }\n\n const msgArgs = [\n 'invalidPasswordMinLengthMessage',\n `${minLength}`\n ] as const;\n\n errors.push({\n errorMessage: this.sanitizer.bypassSecurityTrustHtml(\n `<span data-key=\"${attributeName}-${errors.length}\">${msgStr(...msgArgs)}</span>`\n ),\n errorMessageStr: msgStr(...msgArgs),\n fieldIndex: undefined,\n source: {\n type: 'passwordPolicy',\n name: policyName\n }\n });\n }\n\n check_password_policy_x: {\n const policyName = 'digits';\n\n const policy = passwordPolicies[policyName];\n\n if (!policy) {\n break check_password_policy_x;\n }\n\n const minNumberOfDigits = policy;\n\n if (\n value.split('').filter(char => !isNaN(parseInt(char))).length >=\n minNumberOfDigits\n ) {\n break check_password_policy_x;\n }\n\n const msgArgs = [\n 'invalidPasswordMinDigitsMessage',\n `${minNumberOfDigits}`\n ] as const;\n\n errors.push({\n errorMessage: this.sanitizer.bypassSecurityTrustHtml(\n `<span data-key=\"${attributeName}-${errors.length}\">${msgStr(...msgArgs)}</span>`\n ),\n errorMessageStr: msgStr(...msgArgs),\n fieldIndex: undefined,\n source: {\n type: 'passwordPolicy',\n name: policyName\n }\n });\n }\n\n check_password_policy_x: {\n const policyName = 'lowerCase';\n\n const policy = passwordPolicies[policyName];\n\n if (!policy) {\n break check_password_policy_x;\n }\n\n const minNumberOfLowerCaseChar = policy;\n\n if (\n value\n .split('')\n .filter(\n char =>\n char === char.toLowerCase() && char !== char.toUpperCase()\n ).length >= minNumberOfLowerCaseChar\n ) {\n break check_password_policy_x;\n }\n\n const msgArgs = [\n 'invalidPasswordMinLowerCaseCharsMessage',\n `${minNumberOfLowerCaseChar}`\n ] as const;\n\n errors.push({\n errorMessage: this.sanitizer.bypassSecurityTrustHtml(\n `<span data-key=\"${attributeName}-${errors.length}\">${msgStr(...msgArgs)}</span>`\n ),\n errorMessageStr: msgStr(...msgArgs),\n fieldIndex: undefined,\n source: {\n type: 'passwordPolicy',\n name: policyName\n }\n });\n }\n\n check_password_policy_x: {\n const policyName = 'upperCase';\n\n const policy = passwordPolicies[policyName];\n\n if (!policy) {\n break check_password_policy_x;\n }\n\n const minNumberOfUpperCaseChar = policy;\n\n if (\n value\n .split('')\n .filter(\n char =>\n char === char.toUpperCase() && char !== char.toLowerCase()\n ).length >= minNumberOfUpperCaseChar\n ) {\n break check_password_policy_x;\n }\n\n const msgArgs = [\n 'invalidPasswordMinUpperCaseCharsMessage',\n `${minNumberOfUpperCaseChar}`\n ] as const;\n\n errors.push({\n errorMessage: this.sanitizer.bypassSecurityTrustHtml(\n `<span data-key=\"${attributeName}-${errors.length}\">${msgStr(...msgArgs)}</span>`\n ),\n errorMessageStr: msgStr(...msgArgs),\n fieldIndex: undefined,\n source: {\n type: 'passwordPolicy',\n name: policyName\n }\n });\n }\n\n check_password_policy_x: {\n const policyName = 'specialChars';\n\n const policy = passwordPolicies[policyName];\n\n if (!policy) {\n break check_password_policy_x;\n }\n\n const minNumberOfSpecialChar = policy;\n\n if (\n value.split('').filter(char => !char.match(/[a-zA-Z0-9]/)).length >=\n minNumberOfSpecialChar\n ) {\n break check_password_policy_x;\n }\n\n const msgArgs = [\n 'invalidPasswordMinSpecialCharsMessage',\n `${minNumberOfSpecialChar}`\n ] as const;\n\n errors.push({\n errorMessage: this.sanitizer.bypassSecurityTrustHtml(\n `<span data-key=\"${attributeName}-${errors.length}\">${msgStr(...msgArgs)}</span>`\n ),\n errorMessageStr: msgStr(...msgArgs),\n fieldIndex: undefined,\n source: {\n type: 'passwordPolicy',\n name: policyName\n }\n });\n }\n\n check_password_policy_x: {\n const policyName = 'notUsername';\n\n const notUsername = passwordPolicies[policyName];\n\n if (!notUsername) {\n break check_password_policy_x;\n }\n\n const usernameFormFieldState = formFieldStates.find(\n formFieldState => formFieldState.attribute.name === 'username'\n );\n\n if (!usernameFormFieldState) {\n break check_password_policy_x;\n }\n\n const usernameValue = (() => {\n let { valueOrValues } = usernameFormFieldState;\n\n assert(typeof valueOrValues === 'string');\n\n unFormat_number: {\n const { kcNumberUnFormat } = attribute.html5DataAnnotations ?? {};\n\n if (!kcNumberUnFormat) {\n break unFormat_number;\n }\n\n valueOrValues = formatNumber(valueOrValues, kcNumberUnFormat);\n }\n\n return valueOrValues;\n })();\n\n if (usernameValue === '') {\n break check_password_policy_x;\n }\n\n if (value !== usernameValue) {\n break check_password_policy_x;\n }\n\n const msgArgs = ['invalidPasswordNotUsernameMessage'] as const;\n\n errors.push({\n errorMessage: this.sanitizer.bypassSecurityTrustHtml(\n `<span data-key=\"${attributeName}-${errors.length}\">${msgStr(...msgArgs)}</span>`\n ),\n errorMessageStr: msgStr(...msgArgs),\n fieldIndex: undefined,\n source: {\n type: 'passwordPolicy',\n name: policyName\n }\n });\n }\n\n check_password_policy_x: {\n const policyName = 'notEmail';\n\n const notEmail = passwordPolicies[policyName];\n\n if (!notEmail) {\n break check_password_policy_x;\n }\n\n const emailFormFieldState = formFieldStates.find(\n formFieldState => formFieldState.attribute.name === 'email'\n );\n\n if (!emailFormFieldState) {\n break check_password_policy_x;\n }\n\n assert(typeof emailFormFieldState.valueOrValues === 'string');\n\n {\n const emailValue = emailFormFieldState.valueOrValues;\n\n if (emailValue === '') {\n break check_password_policy_x;\n }\n\n if (value !== emailValue) {\n break check_password_policy_x;\n }\n }\n\n const msgArgs = ['invalidPasswordNotEmailMessage'] as const;\n\n errors.push({\n errorMessage: this.sanitizer.bypassSecurityTrustHtml(\n `<span data-key=\"${attributeName}-${errors.length}\">${msgStr(...msgArgs)}</span>`\n ),\n errorMessageStr: msgStr(...msgArgs),\n fieldIndex: undefined,\n source: {\n type: 'passwordPolicy',\n name: policyName\n }\n });\n }\n }\n\n password_confirm_matches_password: {\n if (attributeName !== 'password-confirm') {\n break password_confirm_matches_password;\n }\n\n const passwordFormFieldState = formFieldStates.find(\n formFieldState => formFieldState.attribute.name === 'password'\n );\n\n assert(passwordFormFieldState !== undefined);\n\n assert(typeof passwordFormFieldState.valueOrValues === 'string');\n\n {\n const passwordValue = passwordFormFieldState.valueOrValues;\n\n if (value === passwordValue) {\n break password_confirm_matches_password;\n }\n }\n\n const msgArgs = ['invalidPasswordConfirmMessage'] as const;\n\n errors.push({\n errorMessage: this.sanitizer.bypassSecurityTrustHtml(\n `<span data-key=\"${attributeName}-${errors.length}\">${msgStr(...msgArgs)}</span>`\n ),\n errorMessageStr: msgStr(...msgArgs),\n fieldIndex: undefined,\n source: {\n type: 'other',\n rule: 'passwordConfirmMatchesPassword'\n }\n });\n }\n\n const { validators } = attribute;\n\n required_field: {\n if (!attribute.required) {\n break required_field;\n }\n\n if (value !== '') {\n break required_field;\n }\n\n const msgArgs = ['error-user-attribute-required'] as const;\n\n errors.push({\n errorMessage: this.sanitizer.bypassSecurityTrustHtml(\n `<span data-key=\"${attributeName}-${errors.length}\">${msgStr(...msgArgs)}</span>`\n ),\n errorMessageStr: msgStr(...msgArgs),\n fieldIndex: undefined,\n source: {\n type: 'other',\n rule: 'requiredField'\n }\n });\n }\n\n validator_x: {\n const validatorName = 'length';\n\n const validator = validators[validatorName];\n\n if (!validator) {\n break validator_x;\n }\n\n const {\n 'ignore.empty.value': ignoreEmptyValue = false,\n max,\n min\n } = validator;\n\n if (ignoreEmptyValue && value === '') {\n break validator_x;\n }\n\n const source: FormFieldError.Source = {\n type: 'validator',\n name: validatorName\n };\n\n if (max && value.length > parseInt(`${max}`)) {\n const msgArgs = ['error-invalid-length-too-long', `${max}`] as const;\n\n errors.push({\n errorMessage: this.sanitizer.bypassSecurityTrustHtml(\n `<span data-key=\"${attributeName}-${errors.length}\">${msgStr(...msgArgs)}</span>`\n ),\n errorMessageStr: msgStr(...msgArgs),\n fieldIndex: undefined,\n source\n });\n }\n\n if (min && value.length < parseInt(`${min}`)) {\n const msgArgs = ['error-invalid-length-too-short', `${min}`] as const;\n\n errors.push({\n errorMessage: this.sanitizer.bypassSecurityTrustHtml(\n `<span data-key=\"${attributeName}-${errors.length}\">${msgStr(...msgArgs)}</span>`\n ),\n errorMessageStr: msgStr(...msgArgs),\n fieldIndex: undefined,\n source\n });\n }\n }\n\n validator_x: {\n const validatorName = 'pattern';\n\n const validator = validators[validatorName];\n\n if (validator === undefined) {\n break validator_x;\n }\n\n const {\n 'ignore.empty.value': ignoreEmptyValue = false,\n pattern,\n 'error-message': errorMessageKey\n } = validator;\n\n if (ignoreEmptyValue && value === '') {\n break validator_x;\n }\n\n if (new RegExp(pattern).test(value)) {\n break validator_x;\n }\n\n const msgArgs = [\n errorMessageKey ?? id<MessageKey_defaultSet>('shouldMatchPattern'),\n pattern\n ] as const;\n\n errors.push({\n errorMessage: this.sanitizer.bypassSecurityTrustHtml(\n `<span data-key=\"${attributeName}-${errors.length}\">${advancedMsgStr(...msgArgs)}</span>`\n ),\n errorMessageStr: advancedMsgStr(...msgArgs),\n fieldIndex: undefined,\n source: {\n type: 'validator',\n name: validatorName\n }\n });\n }\n\n validator_x: {\n {\n const lastError = errors[errors.length - 1];\n if (\n lastError !== undefined &&\n lastError.source.type === 'validator' &&\n lastError.source.name === 'pattern'\n ) {\n break validator_x;\n }\n }\n\n const validatorName = 'email';\n\n const validator = validators[validatorName];\n\n if (validator === undefined) {\n break validator_x;\n }\n\n const { 'ignore.empty.value': ignoreEmptyValue = false } = validator;\n\n if (ignoreEmptyValue && value === '') {\n break validator_x;\n }\n\n if (emailRegexp.test(value)) {\n break validator_x;\n }\n\n const msgArgs = [id<MessageKey_defaultSet>('invalidEmailMessage')] as const;\n\n errors.push({\n errorMessage: this.sanitizer.bypassSecurityTrustHtml(\n `<span data-key=\"${attributeName}-${errors.length}\">${msgStr(...msgArgs)}</span>`\n ),\n errorMessageStr: msgStr(...msgArgs),\n fieldIndex: undefined,\n source: {\n type: 'validator',\n name: validatorName\n }\n });\n }\n\n validator_x: {\n const validatorName = 'integer';\n\n const validator = validators[validatorName];\n\n if (validator === undefined) {\n break validator_x;\n }\n\n const {\n 'ignore.empty.value': ignoreEmptyValue = false,\n max,\n min\n } = validator;\n\n if (ignoreEmptyValue && value === '') {\n break validator_x;\n }\n\n const intValue = parseInt(value);\n\n const source: FormFieldError.Source = {\n type: 'validator',\n name: validatorName\n };\n\n if (isNaN(intValue)) {\n const msgArgs = ['mustBeAnInteger'] as const;\n\n errors.push({\n errorMessage: this.sanitizer.bypassSecurityTrustHtml(\n `<span data-key=\"${attributeName}-${errors.length}\">${msgStr(...msgArgs)}</span>`\n ),\n errorMessageStr: msgStr(...msgArgs),\n fieldIndex: undefined,\n source\n });\n\n break validator_x;\n }\n\n if (max && intValue > parseInt(`${max}`)) {\n const msgArgs = ['error-number-out-of-range-too-big', `${max}`] as const;\n\n errors.push({\n errorMessage: this.sanitizer.bypassSecurityTrustHtml(\n `<span data-key=\"${attributeName}-${errors.length}\">${msgStr(...msgArgs)}</span>`\n ),\n errorMessageStr: msgStr(...msgArgs),\n fieldIndex: undefined,\n source\n });\n\n break validator_x;\n }\n\n if (min && intValue < parseInt(`${min}`)) {\n const msgArgs = [\n 'error-number-out-of-range-too-small',\n `${min}`\n ] as const;\n\n errors.push({\n errorMessage: this.sanitizer.bypassSecurityTrustHtml(\n `<span data-key=\"${attributeName}-${errors.length}\">${msgStr(...msgArgs)}</span>`\n ),\n errorMessageStr: msgStr(...msgArgs),\n fieldIndex: undefined,\n source\n });\n\n break validator_x;\n }\n }\n\n validator_x: {\n const validatorName = 'options';\n\n const validator = validators[validatorName];\n\n if (validator === undefined) {\n break validator_x;\n }\n\n if (value === '') {\n break validator_x;\n }\n\n if (validator.options.indexOf(value) >= 0) {\n break validator_x;\n }\n\n const msgArgs = [id<MessageKey_defaultSet>('notAValidOption')] as const;\n\n errors.push({\n errorMessage: this.sanitizer.bypassSecurityTrustHtml(\n `<span data-key=\"${attributeName}-${errors.length}\">${msgStr(...msgArgs)}</span>`\n ),\n errorMessageStr: msgStr(...msgArgs),\n fieldIndex: undefined,\n source: {\n type: 'validator',\n name: validatorName\n }\n });\n }\n\n //TODO: Implement missing validators. See Validators type definition.\n\n return errors;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { InjectionToken } from '@angular/core';
2
+
3
+ const LOGIN_CLASSES = new InjectionToken('login classes');
4
+
5
+ /**
6
+ * Generated bundle index. Do not edit.
7
+ */
8
+
9
+ export { LOGIN_CLASSES };
10
+ //# sourceMappingURL=keycloakify-angular-login-tokens-classes.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keycloakify-angular-login-tokens-classes.mjs","sources":["../../src/login/tokens/classes/classes.token.ts","../../src/login/tokens/classes/keycloakify-angular-login-tokens-classes.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport type { ClassKey } from 'keycloakify/login/lib/kcClsx';\n\nexport const LOGIN_CLASSES = new InjectionToken<{ [key in ClassKey]?: string }>(\n 'login classes'\n);\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;MAGa,aAAa,GAAG,IAAI,cAAc,CAC3C,eAAe;;ACJnB;;AAEG;;;;"}
@@ -0,0 +1,10 @@
1
+ import { InjectionToken } from '@angular/core';
2
+
3
+ const LOGIN_I18N = new InjectionToken('login i18n');
4
+
5
+ /**
6
+ * Generated bundle index. Do not edit.
7
+ */
8
+
9
+ export { LOGIN_I18N };
10
+ //# sourceMappingURL=keycloakify-angular-login-tokens-i18n.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keycloakify-angular-login-tokens-i18n.mjs","sources":["../../src/login/tokens/i18n/i18n.token.ts","../../src/login/tokens/i18n/keycloakify-angular-login-tokens-i18n.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\nexport const LOGIN_I18N = new InjectionToken<unknown>('login i18n');\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;MAEa,UAAU,GAAG,IAAI,cAAc,CAAU,YAAY;;ACFlE;;AAEG;;;;"}
@@ -0,0 +1,10 @@
1
+ import { InjectionToken } from '@angular/core';
2
+
3
+ const KC_LOGIN_CONTEXT = new InjectionToken('keycloak login context');
4
+
5
+ /**
6
+ * Generated bundle index. Do not edit.
7
+ */
8
+
9
+ export { KC_LOGIN_CONTEXT };
10
+ //# sourceMappingURL=keycloakify-angular-login-tokens-kc-context.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keycloakify-angular-login-tokens-kc-context.mjs","sources":["../../src/login/tokens/kc-context/kc-context.token.ts","../../src/login/tokens/kc-context/keycloakify-angular-login-tokens-kc-context.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport type { KcContext } from '@keycloakify/angular/login/KcContext';\n\nexport const KC_LOGIN_CONTEXT = new InjectionToken<KcContext>('keycloak login context');\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;MAGa,gBAAgB,GAAG,IAAI,cAAc,CAAY,wBAAwB;;ACHtF;;AAEG;;;;"}
@@ -0,0 +1,10 @@
1
+ import { InjectionToken } from '@angular/core';
2
+
3
+ const DO_MAKE_USER_CONFIRM_PASSWORD = new InjectionToken('doMakeUserConfirmPassword');
4
+
5
+ /**
6
+ * Generated bundle index. Do not edit.
7
+ */
8
+
9
+ export { DO_MAKE_USER_CONFIRM_PASSWORD };
10
+ //# sourceMappingURL=keycloakify-angular-login-tokens-make-user-confirm-password.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keycloakify-angular-login-tokens-make-user-confirm-password.mjs","sources":["../../src/login/tokens/make-user-confirm-password/make-user-confirm-password.token.ts","../../src/login/tokens/make-user-confirm-password/keycloakify-angular-login-tokens-make-user-confirm-password.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\nexport const DO_MAKE_USER_CONFIRM_PASSWORD = new InjectionToken<boolean>(\n 'doMakeUserConfirmPassword'\n);\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;MAEa,6BAA6B,GAAG,IAAI,cAAc,CAC3D,2BAA2B;;ACH/B;;AAEG;;;;"}
@@ -0,0 +1,8 @@
1
+ const KEYCLOAKIFY_ANGULAR = '@keycloakify/angular';
2
+
3
+ /**
4
+ * Generated bundle index. Do not edit.
5
+ */
6
+
7
+ export { KEYCLOAKIFY_ANGULAR };
8
+ //# sourceMappingURL=keycloakify-angular.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keycloakify-angular.mjs","sources":["../../src/public-api.ts","../../src/keycloakify-angular.ts"],"sourcesContent":["export const KEYCLOAKIFY_ANGULAR = '@keycloakify/angular';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"AAAO,MAAM,mBAAmB,GAAG;;ACAnC;;AAEG;;;;"}
package/index.d.ts ADDED
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="@keycloakify/angular" />
5
+ export * from './public-api';
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="@keycloakify/angular/lib/directives/attributes" />
5
+ export * from './public-api';
@@ -1,2 +1 @@
1
1
  export * from './attributes.directive';
2
- export * from './kc-class.directive';
package/lib/index.d.ts ADDED
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="@keycloakify/angular/lib" />
5
+ export * from './public-api';
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="@keycloakify/angular/lib/models/script" />
5
+ export * from './public-api';
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="@keycloakify/angular/lib/pipes/input-type" />
5
+ export * from './public-api';
@@ -0,0 +1 @@
1
+ export * from './input-type.pipe';
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="@keycloakify/angular/lib/pipes/is-array-with-empty-object" />
5
+ export * from './public-api';
@@ -0,0 +1,7 @@
1
+ import { PipeTransform } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export declare class IsArrayWithEmptyObjectPipe implements PipeTransform {
4
+ transform(variable: unknown): boolean;
5
+ static ɵfac: i0.ɵɵFactoryDeclaration<IsArrayWithEmptyObjectPipe, never>;
6
+ static ɵpipe: i0.ɵɵPipeDeclaration<IsArrayWithEmptyObjectPipe, "isArrayWithEmptyObject", true>;
7
+ }
@@ -0,0 +1 @@
1
+ export * from './is-array-with-empty-object.pipe';
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="@keycloakify/angular/lib/pipes/kc-sanitize" />
5
+ export * from './public-api';
@@ -1,10 +1,9 @@
1
1
  import { PipeTransform } from '@angular/core';
2
- import { DomSanitizer, SafeHtml, SafeResourceUrl, SafeScript, SafeStyle, SafeUrl } from '@angular/platform-browser';
2
+ import { SafeHtml, SafeResourceUrl, SafeScript, SafeStyle, SafeUrl } from '@angular/platform-browser';
3
3
  import * as i0 from "@angular/core";
4
4
  export declare class KcSanitizePipe implements PipeTransform {
5
- private sanitizer;
6
- constructor(sanitizer: DomSanitizer);
7
- transform(value: any, type: string): SafeHtml | SafeStyle | SafeScript | SafeUrl | SafeResourceUrl;
5
+ #private;
6
+ transform(value: string, type: 'html' | 'style' | 'script' | 'url' | 'resourceUrl'): SafeHtml | SafeStyle | SafeScript | SafeUrl | SafeResourceUrl;
8
7
  static ɵfac: i0.ɵɵFactoryDeclaration<KcSanitizePipe, never>;
9
8
  static ɵpipe: i0.ɵɵPipeDeclaration<KcSanitizePipe, "kcSanitize", true>;
10
9
  }
@@ -0,0 +1 @@
1
+ export * from './kc-sanitize.pipe';
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="@keycloakify/angular/lib/pipes/to-array" />
5
+ export * from './public-api';
@@ -0,0 +1 @@
1
+ export * from './to-array.pipe';
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="@keycloakify/angular/lib/pipes/to-number" />
5
+ export * from './public-api';
@@ -0,0 +1 @@
1
+ export * from './to-number.pipe';
@@ -1,10 +1 @@
1
- import { KcContext as KcAccountContext } from 'keycloakify/account/KcContext';
2
- import { KcContext as KcLoginContext } from 'keycloakify/login/KcContext';
3
- declare global {
4
- interface Window {
5
- kcContext?: KcLoginContext | KcAccountContext;
6
- }
7
- }
8
- export * from './models';
9
- export * from './providers/keycloakify-angular.providers';
10
- export * from './services';
1
+ export declare const KEYCLOAKIFY_ANGULAR_LIB = "@keycloakify/angular/lib";
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="@keycloakify/angular/lib/services/resource-injector" />
5
+ export * from './public-api';
@@ -1,2 +1 @@
1
1
  export * from './resource-injector.service';
2
- export * from './i18n.service';
@@ -1,5 +1,5 @@
1
1
  import { Observable } from 'rxjs';
2
- import { Script } from '../models/script.model';
2
+ import { Script } from '@keycloakify/angular/lib/models/script';
3
3
  import * as i0 from "@angular/core";
4
4
  export declare class ResourceInjectorService {
5
5
  private renderer;
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="@keycloakify/angular/lib/tokens/use-default-css" />
5
+ export * from './public-api';
@@ -0,0 +1 @@
1
+ export * from './use-default-css.token';
@@ -0,0 +1,2 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ export declare const USE_DEFAULT_CSS: InjectionToken<boolean>;
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="@keycloakify/angular/login/KcContext" />
5
+ export * from './public-api';
@@ -0,0 +1 @@
1
+ export * from './KcContext';
@@ -1,4 +1,4 @@
1
- import { ClassKey } from 'keycloakify/login/lib/kcClsx';
1
+ import type { ClassKey } from 'keycloakify/login/lib/kcClsx';
2
2
  export declare abstract class ComponentReference {
3
3
  doUseDefaultCss: boolean | undefined;
4
4
  classes: Partial<Record<ClassKey, string>> | undefined;
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="@keycloakify/angular/login/classes/component-reference" />
5
+ export * from './public-api';
@@ -0,0 +1 @@
1
+ export * from './component-reference.class';
@@ -1,7 +1,9 @@
1
- import { Attribute } from 'keycloakify/login/KcContext';
2
- import { FormAction } from '../../../login/services/user-profile-form.service';
1
+ import { type FormAction } from '@keycloakify/angular/login/services/user-profile-form';
2
+ import { type Attribute } from 'keycloakify/login/KcContext';
3
+ import type { I18n } from '@keycloakify/angular/login/i18n';
3
4
  import * as i0 from "@angular/core";
4
5
  export declare class AddRemoveButtonsMultiValuedAttributeComponent {
6
+ i18n: I18n;
5
7
  attribute: import("@angular/core").InputSignal<Attribute | undefined>;
6
8
  values: import("@angular/core").InputSignal<string[] | undefined>;
7
9
  fieldIndex: import("@angular/core").InputSignal<number | undefined>;
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="@keycloakify/angular/login/components/add-remove-buttons-multi-valued-attribute" />
5
+ export * from './public-api';
@@ -0,0 +1 @@
1
+ export * from './add-remove-buttons-multi-valued-attribute.component';
@@ -1,7 +1,7 @@
1
- import { Attribute } from 'keycloakify/login/KcContext';
2
- import { ClassKey } from 'keycloakify/login/lib/kcClsx';
3
- import { ComponentReference } from '../../../login/classes/component-reference.class';
4
- import { FormFieldError } from '../../../login/services/user-profile-form.service';
1
+ import { ComponentReference } from '@keycloakify/angular/login/classes/component-reference';
2
+ import { type FormFieldError } from '@keycloakify/angular/login/services/user-profile-form';
3
+ import { type Attribute } from 'keycloakify/login/KcContext';
4
+ import type { ClassKey } from 'keycloakify/login/lib/kcClsx';
5
5
  import * as i0 from "@angular/core";
6
6
  export declare class FieldErrorsComponent extends ComponentReference {
7
7
  attribute: import("@angular/core").InputSignal<Attribute | undefined>;
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="@keycloakify/angular/login/components/field-errors" />
5
+ export * from './public-api';
@@ -0,0 +1 @@
1
+ export * from './field-errors.component';
@@ -1,8 +1,10 @@
1
- import { Attribute } from 'keycloakify/login/KcContext';
2
- import { ClassKey } from 'keycloakify/login/lib/kcClsx';
3
- import { ComponentReference } from '../../../login/classes/component-reference.class';
1
+ import { ComponentReference } from '@keycloakify/angular/login/classes/component-reference';
2
+ import { type Attribute } from 'keycloakify/login/KcContext';
3
+ import type { ClassKey } from 'keycloakify/login/lib/kcClsx';
4
+ import type { I18n } from '@keycloakify/angular/login/i18n';
4
5
  import * as i0 from "@angular/core";
5
6
  export declare class GroupLabelComponent extends ComponentReference {
7
+ i18n: I18n;
6
8
  attribute: import("@angular/core").InputSignal<Attribute | undefined>;
7
9
  groupName: import("@angular/core").InputSignal<string | undefined>;
8
10
  doUseDefaultCss: boolean;
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="@keycloakify/angular/login/components/group-label" />
5
+ export * from './public-api';
@@ -0,0 +1 @@
1
+ export * from './group-label.component';
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="@keycloakify/angular/login/components/input-field-by-type" />
5
+ export * from './public-api';
@@ -1,7 +1,7 @@
1
- import { Attribute } from 'keycloakify/login/KcContext';
2
- import { ClassKey } from 'keycloakify/login/lib/kcClsx';
3
- import { ComponentReference } from '../../../login/classes/component-reference.class';
4
- import { FormAction, FormFieldError } from '../../../login/services/user-profile-form.service';
1
+ import { ComponentReference } from '@keycloakify/angular/login/classes/component-reference';
2
+ import { FormAction, FormFieldError } from '@keycloakify/angular/login/services/user-profile-form';
3
+ import { type Attribute } from 'keycloakify/login/KcContext';
4
+ import type { ClassKey } from 'keycloakify/login/lib/kcClsx';
5
5
  import * as i0 from "@angular/core";
6
6
  export declare class InputFieldByTypeComponent extends ComponentReference {
7
7
  attribute: import("@angular/core").InputSignal<Attribute | undefined>;
@@ -0,0 +1 @@
1
+ export * from './input-field-by-type.component';
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="@keycloakify/angular/login/components/input-tag" />
5
+ export * from './public-api';