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

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 (247) hide show
  1. package/esm2022/account/containers/template/template.component.mjs +6 -6
  2. package/esm2022/account/directives/kc-class/kc-class.directive.mjs +3 -3
  3. package/esm2022/account/pages/account/account.component.mjs +6 -6
  4. package/esm2022/account/pages/applications/applications.component.mjs +6 -6
  5. package/esm2022/account/pages/federatedIdentity/federatedIdentity.component.mjs +6 -6
  6. package/esm2022/account/pages/log/log.component.mjs +3 -3
  7. package/esm2022/account/pages/password/password.component.mjs +7 -6
  8. package/esm2022/account/pages/sessions/sessions.component.mjs +6 -6
  9. package/esm2022/account/pages/totp/totp.component.mjs +6 -6
  10. package/esm2022/account/providers/keycloakify-angular/keycloakify-angular.providers.mjs +2 -1
  11. package/esm2022/account/services/account-resource-injector/account-resource-injector.service.mjs +3 -3
  12. package/esm2022/account/services/i18n/i18n.service.mjs +3 -3
  13. package/esm2022/lib/directives/attributes/attributes.directive.mjs +3 -3
  14. package/esm2022/lib/pipes/input-type/input-type.pipe.mjs +3 -3
  15. package/esm2022/lib/pipes/is-array-with-empty-object/is-array-with-empty-object.pipe.mjs +3 -3
  16. package/esm2022/lib/pipes/kc-sanitize/kc-sanitize.pipe.mjs +3 -3
  17. package/esm2022/lib/pipes/to-array/to-array.pipe.mjs +3 -3
  18. package/esm2022/lib/pipes/to-number/to-number.pipe.mjs +3 -3
  19. package/esm2022/lib/services/resource-injector/resource-injector.service.mjs +3 -3
  20. package/esm2022/login/components/add-remove-buttons-multi-valued-attribute/add-remove-buttons-multi-valued-attribute.component.mjs +5 -5
  21. package/esm2022/login/components/field-errors/field-errors.component.mjs +6 -6
  22. package/esm2022/login/components/group-label/group-label.component.mjs +3 -3
  23. package/esm2022/login/components/input-field-by-type/input-field-by-type.component.mjs +6 -6
  24. package/esm2022/login/components/input-tag/input-tag.component.mjs +6 -6
  25. package/esm2022/login/components/input-tag-selects/input-tag-selects.component.mjs +3 -3
  26. package/esm2022/login/components/logout-other-sessions/logout-other-sessions.component.mjs +3 -3
  27. package/esm2022/login/components/password-wrapper/password-wrapper.component.mjs +6 -6
  28. package/esm2022/login/components/select-tag/select-tag.component.mjs +3 -3
  29. package/esm2022/login/components/textarea-tag/textarea-tag.component.mjs +3 -3
  30. package/esm2022/login/components/user-profile-form-fields/user-profile-form-fields.component.mjs +6 -6
  31. package/esm2022/login/containers/template/template.component.mjs +6 -6
  32. package/esm2022/login/directives/kc-class/kc-class.directive.mjs +5 -5
  33. package/esm2022/login/pages/code/code.component.mjs +3 -3
  34. package/esm2022/login/pages/delete-account-confirm/delete-account-confirm.component.mjs +6 -6
  35. package/esm2022/login/pages/delete-credential/delete-credential.component.mjs +6 -6
  36. package/esm2022/login/pages/error/error.component.mjs +3 -3
  37. package/esm2022/login/pages/frontchannel-logout/frontchannel-logout.component.mjs +6 -6
  38. package/esm2022/login/pages/idp-review-user-profile/idp-review-user-profile.component.mjs +6 -6
  39. package/esm2022/login/pages/info/info.component.mjs +3 -3
  40. package/esm2022/login/pages/login/login.component.mjs +6 -6
  41. package/esm2022/login/pages/login-config-totp/login-config-totp.component.mjs +6 -6
  42. package/esm2022/login/pages/login-idp-link-confirm/login-idp-link-confirm.component.mjs +6 -6
  43. package/esm2022/login/pages/login-idp-link-confirm-override/login-idp-link-confirm-override.component.mjs +6 -6
  44. package/esm2022/login/pages/login-idp-link-email/login-idp-link-email.component.mjs +3 -3
  45. package/esm2022/login/pages/login-oauth-grant/login-oauth-grant.component.mjs +6 -6
  46. package/esm2022/login/pages/login-oauth2-device-verify-user-code/login-oauth2-device-verify-user-code.component.mjs +6 -6
  47. package/esm2022/login/pages/login-otp/login-otp.component.mjs +6 -6
  48. package/esm2022/login/pages/login-page-expired/login-page-expired.component.mjs +3 -3
  49. package/esm2022/login/pages/login-passkeys-conditional-authenticate/login-passkeys-conditional-authenticate.component.mjs +6 -6
  50. package/esm2022/login/pages/login-password/login-password.component.mjs +6 -6
  51. package/esm2022/login/pages/login-recovery-authn-code-config/login-recovery-authn-code-config.component.mjs +6 -6
  52. package/esm2022/login/pages/login-recovery-authn-code-input/login-recovery-authn-code-input.component.mjs +6 -6
  53. package/esm2022/login/pages/login-reset-otp/login-reset-otp.component.mjs +6 -6
  54. package/esm2022/login/pages/login-reset-password/login-reset-password.component.mjs +6 -6
  55. package/esm2022/login/pages/login-update-password/login-update-password.component.mjs +6 -6
  56. package/esm2022/login/pages/login-update-profile/login-update-profile.component.mjs +6 -6
  57. package/esm2022/login/pages/login-username/login-username.component.mjs +6 -6
  58. package/esm2022/login/pages/login-verify-email/login-verify-email.component.mjs +3 -3
  59. package/esm2022/login/pages/login-x509-info/login-x509-info.component.mjs +6 -6
  60. package/esm2022/login/pages/logout-confirm/logout-confirm.component.mjs +6 -6
  61. package/esm2022/login/pages/register/register.component.mjs +6 -6
  62. package/esm2022/login/pages/saml-post-form/saml-post-form.component.mjs +6 -6
  63. package/esm2022/login/pages/select-authenticator/select-authenticator.component.mjs +6 -6
  64. package/esm2022/login/pages/terms/terms.component.mjs +6 -6
  65. package/esm2022/login/pages/update-email/update-email.component.mjs +6 -6
  66. package/esm2022/login/pages/webauthn-authenticate/webauthn-authenticate.component.mjs +6 -6
  67. package/esm2022/login/pages/webauthn-error/webauthn-error.component.mjs +6 -6
  68. package/esm2022/login/pages/webauthn-register/webauthn-register.component.mjs +6 -6
  69. package/esm2022/login/providers/keycloakify-angular/keycloakify-angular.providers.mjs +2 -1
  70. package/esm2022/login/services/i18n/i18n.service.mjs +3 -3
  71. package/esm2022/login/services/login-resource-injector/login-resource-injector.service.mjs +3 -3
  72. package/esm2022/login/services/submit/submit.service.mjs +4 -4
  73. package/esm2022/login/services/user-profile-form/user-profile-form.service.mjs +3 -3
  74. package/fesm2022/keycloakify-angular-account-containers-template.mjs +5 -5
  75. package/fesm2022/keycloakify-angular-account-containers-template.mjs.map +1 -1
  76. package/fesm2022/keycloakify-angular-account-directives-kc-class.mjs +3 -3
  77. package/fesm2022/keycloakify-angular-account-pages-account.mjs +5 -5
  78. package/fesm2022/keycloakify-angular-account-pages-account.mjs.map +1 -1
  79. package/fesm2022/keycloakify-angular-account-pages-applications.mjs +5 -5
  80. package/fesm2022/keycloakify-angular-account-pages-applications.mjs.map +1 -1
  81. package/fesm2022/keycloakify-angular-account-pages-federatedIdentity.mjs +5 -5
  82. package/fesm2022/keycloakify-angular-account-pages-federatedIdentity.mjs.map +1 -1
  83. package/fesm2022/keycloakify-angular-account-pages-log.mjs +3 -3
  84. package/fesm2022/keycloakify-angular-account-pages-password.mjs +6 -5
  85. package/fesm2022/keycloakify-angular-account-pages-password.mjs.map +1 -1
  86. package/fesm2022/keycloakify-angular-account-pages-sessions.mjs +5 -5
  87. package/fesm2022/keycloakify-angular-account-pages-sessions.mjs.map +1 -1
  88. package/fesm2022/keycloakify-angular-account-pages-totp.mjs +5 -5
  89. package/fesm2022/keycloakify-angular-account-pages-totp.mjs.map +1 -1
  90. package/fesm2022/keycloakify-angular-account-providers-keycloakify-angular.mjs +1 -0
  91. package/fesm2022/keycloakify-angular-account-providers-keycloakify-angular.mjs.map +1 -1
  92. package/fesm2022/keycloakify-angular-account-services-account-resource-injector.mjs +3 -3
  93. package/fesm2022/keycloakify-angular-account-services-i18n.mjs +3 -3
  94. package/fesm2022/keycloakify-angular-lib-directives-attributes.mjs +3 -3
  95. package/fesm2022/keycloakify-angular-lib-pipes-input-type.mjs +3 -3
  96. package/fesm2022/keycloakify-angular-lib-pipes-is-array-with-empty-object.mjs +3 -3
  97. package/fesm2022/keycloakify-angular-lib-pipes-kc-sanitize.mjs +3 -3
  98. package/fesm2022/keycloakify-angular-lib-pipes-to-array.mjs +3 -3
  99. package/fesm2022/keycloakify-angular-lib-pipes-to-number.mjs +3 -3
  100. package/fesm2022/keycloakify-angular-lib-services-resource-injector.mjs +3 -3
  101. package/fesm2022/keycloakify-angular-login-components-add-remove-buttons-multi-valued-attribute.mjs +4 -4
  102. package/fesm2022/keycloakify-angular-login-components-add-remove-buttons-multi-valued-attribute.mjs.map +1 -1
  103. package/fesm2022/keycloakify-angular-login-components-field-errors.mjs +5 -5
  104. package/fesm2022/keycloakify-angular-login-components-field-errors.mjs.map +1 -1
  105. package/fesm2022/keycloakify-angular-login-components-group-label.mjs +3 -3
  106. package/fesm2022/keycloakify-angular-login-components-input-field-by-type.mjs +5 -5
  107. package/fesm2022/keycloakify-angular-login-components-input-field-by-type.mjs.map +1 -1
  108. package/fesm2022/keycloakify-angular-login-components-input-tag-selects.mjs +3 -3
  109. package/fesm2022/keycloakify-angular-login-components-input-tag.mjs +5 -5
  110. package/fesm2022/keycloakify-angular-login-components-input-tag.mjs.map +1 -1
  111. package/fesm2022/keycloakify-angular-login-components-logout-other-sessions.mjs +3 -3
  112. package/fesm2022/keycloakify-angular-login-components-password-wrapper.mjs +5 -5
  113. package/fesm2022/keycloakify-angular-login-components-password-wrapper.mjs.map +1 -1
  114. package/fesm2022/keycloakify-angular-login-components-select-tag.mjs +3 -3
  115. package/fesm2022/keycloakify-angular-login-components-textarea-tag.mjs +3 -3
  116. package/fesm2022/keycloakify-angular-login-components-user-profile-form-fields.mjs +5 -5
  117. package/fesm2022/keycloakify-angular-login-components-user-profile-form-fields.mjs.map +1 -1
  118. package/fesm2022/keycloakify-angular-login-containers-template.mjs +5 -5
  119. package/fesm2022/keycloakify-angular-login-containers-template.mjs.map +1 -1
  120. package/fesm2022/keycloakify-angular-login-directives-kc-class.mjs +4 -4
  121. package/fesm2022/keycloakify-angular-login-directives-kc-class.mjs.map +1 -1
  122. package/fesm2022/keycloakify-angular-login-pages-code.mjs +3 -3
  123. package/fesm2022/keycloakify-angular-login-pages-delete-account-confirm.mjs +5 -5
  124. package/fesm2022/keycloakify-angular-login-pages-delete-account-confirm.mjs.map +1 -1
  125. package/fesm2022/keycloakify-angular-login-pages-delete-credential.mjs +5 -5
  126. package/fesm2022/keycloakify-angular-login-pages-delete-credential.mjs.map +1 -1
  127. package/fesm2022/keycloakify-angular-login-pages-error.mjs +3 -3
  128. package/fesm2022/keycloakify-angular-login-pages-frontchannel-logout.mjs +5 -5
  129. package/fesm2022/keycloakify-angular-login-pages-frontchannel-logout.mjs.map +1 -1
  130. package/fesm2022/keycloakify-angular-login-pages-idp-review-user-profile.mjs +5 -5
  131. package/fesm2022/keycloakify-angular-login-pages-idp-review-user-profile.mjs.map +1 -1
  132. package/fesm2022/keycloakify-angular-login-pages-info.mjs +3 -3
  133. package/fesm2022/keycloakify-angular-login-pages-login-config-totp.mjs +5 -5
  134. package/fesm2022/keycloakify-angular-login-pages-login-config-totp.mjs.map +1 -1
  135. package/fesm2022/keycloakify-angular-login-pages-login-idp-link-confirm-override.mjs +5 -5
  136. package/fesm2022/keycloakify-angular-login-pages-login-idp-link-confirm-override.mjs.map +1 -1
  137. package/fesm2022/keycloakify-angular-login-pages-login-idp-link-confirm.mjs +5 -5
  138. package/fesm2022/keycloakify-angular-login-pages-login-idp-link-confirm.mjs.map +1 -1
  139. package/fesm2022/keycloakify-angular-login-pages-login-idp-link-email.mjs +3 -3
  140. package/fesm2022/keycloakify-angular-login-pages-login-oauth-grant.mjs +5 -5
  141. package/fesm2022/keycloakify-angular-login-pages-login-oauth-grant.mjs.map +1 -1
  142. package/fesm2022/keycloakify-angular-login-pages-login-oauth2-device-verify-user-code.mjs +5 -5
  143. package/fesm2022/keycloakify-angular-login-pages-login-oauth2-device-verify-user-code.mjs.map +1 -1
  144. package/fesm2022/keycloakify-angular-login-pages-login-otp.mjs +5 -5
  145. package/fesm2022/keycloakify-angular-login-pages-login-otp.mjs.map +1 -1
  146. package/fesm2022/keycloakify-angular-login-pages-login-page-expired.mjs +3 -3
  147. package/fesm2022/keycloakify-angular-login-pages-login-passkeys-conditional-authenticate.mjs +5 -5
  148. package/fesm2022/keycloakify-angular-login-pages-login-passkeys-conditional-authenticate.mjs.map +1 -1
  149. package/fesm2022/keycloakify-angular-login-pages-login-password.mjs +5 -5
  150. package/fesm2022/keycloakify-angular-login-pages-login-password.mjs.map +1 -1
  151. package/fesm2022/keycloakify-angular-login-pages-login-recovery-authn-code-config.mjs +5 -5
  152. package/fesm2022/keycloakify-angular-login-pages-login-recovery-authn-code-config.mjs.map +1 -1
  153. package/fesm2022/keycloakify-angular-login-pages-login-recovery-authn-code-input.mjs +5 -5
  154. package/fesm2022/keycloakify-angular-login-pages-login-recovery-authn-code-input.mjs.map +1 -1
  155. package/fesm2022/keycloakify-angular-login-pages-login-reset-otp.mjs +5 -5
  156. package/fesm2022/keycloakify-angular-login-pages-login-reset-otp.mjs.map +1 -1
  157. package/fesm2022/keycloakify-angular-login-pages-login-reset-password.mjs +5 -5
  158. package/fesm2022/keycloakify-angular-login-pages-login-reset-password.mjs.map +1 -1
  159. package/fesm2022/keycloakify-angular-login-pages-login-update-password.mjs +5 -5
  160. package/fesm2022/keycloakify-angular-login-pages-login-update-password.mjs.map +1 -1
  161. package/fesm2022/keycloakify-angular-login-pages-login-update-profile.mjs +5 -5
  162. package/fesm2022/keycloakify-angular-login-pages-login-update-profile.mjs.map +1 -1
  163. package/fesm2022/keycloakify-angular-login-pages-login-username.mjs +5 -5
  164. package/fesm2022/keycloakify-angular-login-pages-login-username.mjs.map +1 -1
  165. package/fesm2022/keycloakify-angular-login-pages-login-verify-email.mjs +3 -3
  166. package/fesm2022/keycloakify-angular-login-pages-login-x509-info.mjs +5 -5
  167. package/fesm2022/keycloakify-angular-login-pages-login-x509-info.mjs.map +1 -1
  168. package/fesm2022/keycloakify-angular-login-pages-login.mjs +5 -5
  169. package/fesm2022/keycloakify-angular-login-pages-login.mjs.map +1 -1
  170. package/fesm2022/keycloakify-angular-login-pages-logout-confirm.mjs +5 -5
  171. package/fesm2022/keycloakify-angular-login-pages-logout-confirm.mjs.map +1 -1
  172. package/fesm2022/keycloakify-angular-login-pages-register.mjs +5 -5
  173. package/fesm2022/keycloakify-angular-login-pages-register.mjs.map +1 -1
  174. package/fesm2022/keycloakify-angular-login-pages-saml-post-form.mjs +5 -5
  175. package/fesm2022/keycloakify-angular-login-pages-saml-post-form.mjs.map +1 -1
  176. package/fesm2022/keycloakify-angular-login-pages-select-authenticator.mjs +5 -5
  177. package/fesm2022/keycloakify-angular-login-pages-select-authenticator.mjs.map +1 -1
  178. package/fesm2022/keycloakify-angular-login-pages-terms.mjs +5 -5
  179. package/fesm2022/keycloakify-angular-login-pages-terms.mjs.map +1 -1
  180. package/fesm2022/keycloakify-angular-login-pages-update-email.mjs +5 -5
  181. package/fesm2022/keycloakify-angular-login-pages-update-email.mjs.map +1 -1
  182. package/fesm2022/keycloakify-angular-login-pages-webauthn-authenticate.mjs +5 -5
  183. package/fesm2022/keycloakify-angular-login-pages-webauthn-authenticate.mjs.map +1 -1
  184. package/fesm2022/keycloakify-angular-login-pages-webauthn-error.mjs +5 -5
  185. package/fesm2022/keycloakify-angular-login-pages-webauthn-error.mjs.map +1 -1
  186. package/fesm2022/keycloakify-angular-login-pages-webauthn-register.mjs +5 -5
  187. package/fesm2022/keycloakify-angular-login-pages-webauthn-register.mjs.map +1 -1
  188. package/fesm2022/keycloakify-angular-login-providers-keycloakify-angular.mjs +1 -0
  189. package/fesm2022/keycloakify-angular-login-providers-keycloakify-angular.mjs.map +1 -1
  190. package/fesm2022/keycloakify-angular-login-services-i18n.mjs +3 -3
  191. package/fesm2022/keycloakify-angular-login-services-login-resource-injector.mjs +3 -3
  192. package/fesm2022/keycloakify-angular-login-services-submit.mjs +3 -3
  193. package/fesm2022/keycloakify-angular-login-services-submit.mjs.map +1 -1
  194. package/fesm2022/keycloakify-angular-login-services-user-profile-form.mjs +3 -3
  195. package/login/directives/kc-class/kc-class.directive.d.ts +1 -1
  196. package/package.json +1 -1
  197. package/src/account/containers/template/template.component.html +2 -2
  198. package/src/account/pages/account/account.component.html +3 -3
  199. package/src/account/pages/applications/applications.component.html +2 -2
  200. package/src/account/pages/federatedIdentity/federatedIdentity.component.html +5 -5
  201. package/src/account/pages/password/password.component.html +4 -4
  202. package/src/account/pages/password/password.component.ts +1 -0
  203. package/src/account/pages/sessions/sessions.component.html +1 -1
  204. package/src/account/pages/totp/totp.component.html +11 -11
  205. package/src/account/providers/keycloakify-angular/keycloakify-angular.providers.ts +1 -0
  206. package/src/login/components/add-remove-buttons-multi-valued-attribute/add-remove-buttons-multi-valued-attribute.component.html +2 -2
  207. package/src/login/components/field-errors/field-errors.component.html +1 -1
  208. package/src/login/components/input-field-by-type/input-field-by-type.component.html +6 -6
  209. package/src/login/components/input-tag/input-tag.component.html +2 -2
  210. package/src/login/components/password-wrapper/password-wrapper.component.html +2 -2
  211. package/src/login/components/user-profile-form-fields/user-profile-form-fields.component.html +7 -11
  212. package/src/login/containers/template/template.component.html +11 -11
  213. package/src/login/directives/kc-class/kc-class.directive.ts +1 -2
  214. package/src/login/pages/delete-account-confirm/delete-account-confirm.component.html +3 -3
  215. package/src/login/pages/delete-credential/delete-credential.component.html +4 -4
  216. package/src/login/pages/frontchannel-logout/frontchannel-logout.component.html +1 -1
  217. package/src/login/pages/idp-review-user-profile/idp-review-user-profile.component.html +3 -3
  218. package/src/login/pages/login/login.component.html +9 -9
  219. package/src/login/pages/login-config-totp/login-config-totp.component.html +10 -10
  220. package/src/login/pages/login-idp-link-confirm/login-idp-link-confirm.component.html +3 -3
  221. package/src/login/pages/login-idp-link-confirm-override/login-idp-link-confirm-override.component.html +2 -2
  222. package/src/login/pages/login-oauth-grant/login-oauth-grant.component.html +5 -5
  223. package/src/login/pages/login-oauth2-device-verify-user-code/login-oauth2-device-verify-user-code.component.html +3 -3
  224. package/src/login/pages/login-otp/login-otp.component.html +7 -7
  225. package/src/login/pages/login-passkeys-conditional-authenticate/login-passkeys-conditional-authenticate.component.html +9 -9
  226. package/src/login/pages/login-password/login-password.component.html +5 -5
  227. package/src/login/pages/login-recovery-authn-code-config/login-recovery-authn-code-config.component.html +9 -9
  228. package/src/login/pages/login-recovery-authn-code-input/login-recovery-authn-code-input.component.html +5 -5
  229. package/src/login/pages/login-reset-otp/login-reset-otp.component.html +5 -5
  230. package/src/login/pages/login-reset-password/login-reset-password.component.html +4 -4
  231. package/src/login/pages/login-update-password/login-update-password.component.html +8 -8
  232. package/src/login/pages/login-update-profile/login-update-profile.component.html +4 -4
  233. package/src/login/pages/login-username/login-username.component.html +7 -7
  234. package/src/login/pages/login-x509-info/login-x509-info.component.html +3 -3
  235. package/src/login/pages/logout-confirm/logout-confirm.component.html +2 -2
  236. package/src/login/pages/register/register.component.html +7 -7
  237. package/src/login/pages/saml-post-form/saml-post-form.component.html +1 -1
  238. package/src/login/pages/select-authenticator/select-authenticator.component.html +2 -2
  239. package/src/login/pages/terms/terms.component.html +3 -3
  240. package/src/login/pages/update-email/update-email.component.html +5 -5
  241. package/src/login/pages/webauthn-authenticate/webauthn-authenticate.component.html +4 -5
  242. package/src/login/pages/webauthn-error/webauthn-error.component.html +6 -6
  243. package/src/login/pages/webauthn-register/webauthn-register.component.html +4 -4
  244. package/src/login/providers/keycloakify-angular/keycloakify-angular.providers.ts +1 -0
  245. package/src/login/services/submit/submit.service.ts +1 -1
  246. package/src/tsconfig.lib.json +0 -12
  247. package/src/tsconfig.lib.prod.json +0 -10
@@ -16,9 +16,9 @@
16
16
  </div>
17
17
  </div>
18
18
  <form
19
- [action]="url.accountUrl"
20
19
  class="form-horizontal"
21
20
  method="post"
21
+ [action]="url.accountUrl"
22
22
  >
23
23
  <input
24
24
  type="hidden"
@@ -143,17 +143,17 @@
143
143
  }
144
144
  <button
145
145
  type="submit"
146
- [kcClass]="['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonLargeClass']"
147
146
  name="submitAction"
148
147
  value="Save"
148
+ [kcClass]="['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonLargeClass']"
149
149
  >
150
150
  {{ i18n.msgStr('doSave') }}
151
151
  </button>
152
152
  <button
153
153
  type="submit"
154
- [kcClass]="['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonLargeClass']"
155
154
  name="submitAction"
156
155
  value="Cancel"
156
+ [kcClass]="['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonLargeClass']"
157
157
  >
158
158
  {{ i18n.msgStr('doCancel') }}
159
159
  </button>
@@ -10,8 +10,8 @@
10
10
  </div>
11
11
 
12
12
  <form
13
- [action]="url.applicationsUrl"
14
13
  method="post"
14
+ [action]="url.applicationsUrl"
15
15
  >
16
16
  <input
17
17
  type="hidden"
@@ -137,9 +137,9 @@
137
137
  ) {
138
138
  <button
139
139
  type="submit"
140
+ name="clientId"
140
141
  [kcClass]="['kcButtonPrimaryClass', 'kcButtonClass']"
141
142
  [id]="'revoke-' + application.client.clientId"
142
- name="clientId"
143
143
  [value]="application.client.id"
144
144
  >
145
145
  {{ i18n.msgStr('revoke') }}
@@ -15,8 +15,8 @@
15
15
  <div class="row margin-bottom">
16
16
  <div class="col-sm-2 col-md-2">
17
17
  <label
18
- [for]="identity.providerId"
19
18
  class="control-label"
19
+ [for]="identity.providerId"
20
20
  >
21
21
  {{ identity.displayName }}
22
22
  </label>
@@ -32,9 +32,9 @@
32
32
  @if (identity.connected) {
33
33
  @if (federatedIdentity.removeLinkPossible) {
34
34
  <form
35
- [action]="url.socialUrl"
36
35
  method="post"
37
36
  class="form-inline"
37
+ [action]="url.socialUrl"
38
38
  >
39
39
  <input
40
40
  type="hidden"
@@ -52,8 +52,8 @@
52
52
  [value]="identity.providerId"
53
53
  />
54
54
  <button
55
- [id]="'remove-link-' + identity.providerId"
56
55
  class="btn btn-default"
56
+ [id]="'remove-link-' + identity.providerId"
57
57
  >
58
58
  {{ i18n.msgStr('doRemove') }}
59
59
  </button>
@@ -61,9 +61,9 @@
61
61
  }
62
62
  } @else {
63
63
  <form
64
- [action]="url.socialUrl"
65
64
  method="post"
66
65
  class="form-inline"
66
+ [action]="url.socialUrl"
67
67
  >
68
68
  <input
69
69
  type="hidden"
@@ -81,8 +81,8 @@
81
81
  [value]="identity.providerId"
82
82
  />
83
83
  <button
84
- [id]="'add-link-' + identity.providerId"
85
84
  class="btn btn-default"
85
+ [id]="'add-link-' + identity.providerId"
86
86
  >
87
87
  {{ i18n.msgStr('doAdd') }}
88
88
  </button>
@@ -15,17 +15,17 @@
15
15
  </div>
16
16
 
17
17
  <form
18
- [action]="url.passwordUrl"
19
18
  class="form-horizontal"
20
19
  method="post"
20
+ [action]="url.passwordUrl"
21
21
  >
22
22
  <input
23
23
  type="text"
24
24
  id="username"
25
25
  name="username"
26
- [value]="account.username ?? ''"
27
26
  autoComplete="username"
28
27
  readOnly
28
+ [value]="account.username ?? ''"
29
29
  [style.display]="'none'"
30
30
  />
31
31
 
@@ -115,11 +115,11 @@
115
115
  >
116
116
  <div>
117
117
  <button
118
- [disabled]="newPasswordError() !== '' || newPasswordConfirmError() !== ''"
119
118
  type="submit"
120
- [kcClass]="['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonLargeClass']"
121
119
  name="submitAction"
122
120
  value="Save"
121
+ [disabled]="newPasswordError() !== '' || newPasswordConfirmError() !== ''"
122
+ [kcClass]="['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonLargeClass']"
123
123
  >
124
124
  {{ i18n.msgStr('doSave') }}
125
125
  </button>
@@ -42,6 +42,7 @@ export class PasswordComponent extends ComponentReference {
42
42
 
43
43
  constructor() {
44
44
  super();
45
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
45
46
  // @ts-ignore
46
47
  window.kcContext = {
47
48
  ...this.kcContext,
@@ -42,8 +42,8 @@
42
42
  </table>
43
43
 
44
44
  <form
45
- [action]="url.sessionsUrl"
46
45
  method="post"
46
+ [action]="url.sessionsUrl"
47
47
  >
48
48
  <input
49
49
  type="hidden"
@@ -40,9 +40,9 @@
40
40
  <td class="provider">{{ credential.userLabel || '' }}</td>
41
41
  <td class="action">
42
42
  <form
43
- [action]="url.totpUrl"
44
43
  method="post"
45
44
  class="form-inline"
45
+ [action]="url.totpUrl"
46
46
  >
47
47
  <input
48
48
  type="hidden"
@@ -63,8 +63,8 @@
63
63
  [value]="credential.id"
64
64
  />
65
65
  <button
66
- [id]="'remove-mobile-' + index"
67
66
  class="btn btn-default"
67
+ [id]="'remove-mobile-' + index"
68
68
  >
69
69
  <i class="pficon pficon-delete"></i>
70
70
  </button>
@@ -95,8 +95,8 @@
95
95
  </p>
96
96
  <p>
97
97
  <a
98
- [href]="totp.qrUrl"
99
98
  id="mode-barcode"
99
+ [href]="totp.qrUrl"
100
100
  >
101
101
  {{ i18n.msgStr('totpScanBarcode') }}
102
102
  </a>
@@ -121,14 +121,14 @@
121
121
  <p>
122
122
  <img
123
123
  id="kc-totp-secret-qr-code"
124
- [src]="'data:image/png;base64, ' + totp.totpSecretQrCode"
125
124
  alt="Figure: Barcode"
125
+ [src]="'data:image/png;base64, ' + totp.totpSecretQrCode"
126
126
  />
127
127
  </p>
128
128
  <p>
129
129
  <a
130
- [href]="totp.manualUrl"
131
130
  id="mode-manual"
131
+ [href]="totp.manualUrl"
132
132
  >
133
133
  {{ i18n.msgStr('totpUnableToScan') }}
134
134
  </a>
@@ -142,10 +142,10 @@
142
142
  </ol>
143
143
  <hr />
144
144
  <form
145
- [action]="url.totpUrl"
146
- [kcClass]="'kcFormClass'"
147
145
  id="kc-totp-settings-form"
148
146
  method="post"
147
+ [action]="url.totpUrl"
148
+ [kcClass]="'kcFormClass'"
149
149
  >
150
150
  <input
151
151
  type="hidden"
@@ -175,8 +175,8 @@
175
175
  @if (messagesPerField.existsError('totp')) {
176
176
  <span
177
177
  id="input-error-otp-code"
178
- [kcClass]="'kcInputErrorMessageClass'"
179
178
  aria-live="polite"
179
+ [kcClass]="'kcInputErrorMessageClass'"
180
180
  [innerHTML]="messagesPerField.get('totp') | kcSanitize: 'html'"
181
181
  ></span>
182
182
  }
@@ -220,8 +220,8 @@
220
220
  @if (messagesPerField.existsError('userLabel')) {
221
221
  <span
222
222
  id="input-error-otp-label"
223
- [kcClass]="'kcInputErrorMessageClass'"
224
223
  aria-live="polite"
224
+ [kcClass]="'kcInputErrorMessageClass'"
225
225
  [innerHTML]="messagesPerField.get('userLabel') | kcSanitize: 'html'"
226
226
  ></span>
227
227
  }
@@ -236,16 +236,16 @@
236
236
  <div [kcClass]="'kcInputWrapperClass'">
237
237
  <input
238
238
  type="submit"
239
- [kcClass]="['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonLargeClass']"
240
239
  id="saveTOTPBtn"
240
+ [kcClass]="['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonLargeClass']"
241
241
  [value]="i18n.msgStr('doSave')"
242
242
  />
243
243
  <button
244
244
  type="submit"
245
- [kcClass]="['kcButtonClass', 'kcButtonDefaultClass', 'kcButtonLargeClass']"
246
245
  id="cancelTOTPBtn"
247
246
  name="submitAction"
248
247
  value="Cancel"
248
+ [kcClass]="['kcButtonClass', 'kcButtonDefaultClass', 'kcButtonLargeClass']"
249
249
  >
250
250
  {{ i18n.msgStr('doCancel') }}
251
251
  </button>
@@ -24,6 +24,7 @@ export const provideKeycloakifyAngularAccount = (
24
24
  makeEnvironmentProviders([
25
25
  {
26
26
  provide: KC_ACCOUNT_CONTEXT,
27
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
27
28
  // @ts-ignore
28
29
  useValue: window.kcContext
29
30
  },
@@ -1,9 +1,9 @@
1
1
  @let idPostfix = attribute()?.name ?? '' + '-' + (fieldIndex() ?? 0 + 1);
2
2
  @if (hasRemove()) {
3
3
  <button
4
- [id]="'kc-remove-' + idPostfix"
5
4
  type="button"
6
5
  class="pf-c-button pf-m-inline pf-m-link"
6
+ [id]="'kc-remove-' + idPostfix"
7
7
  (click)="onRemove()"
8
8
  >
9
9
  {{ i18n.msgStr('remove') }}
@@ -14,9 +14,9 @@
14
14
  }
15
15
  @if (hasAdd()) {
16
16
  <button
17
- [id]="'kc-add-' + idPostfix"
18
17
  type="button"
19
18
  class="pf-c-button pf-m-inline pf-m-link"
19
+ [id]="'kc-add-' + idPostfix"
20
20
  (click)="onAdd()"
21
21
  >
22
22
  {{ i18n.msgStr('addValue') }}
@@ -1,8 +1,8 @@
1
1
  @let index = fieldIndex();
2
2
  <span
3
+ aria-live="polite"
3
4
  [id]="'input-error-' + attribute.name + (index === undefined ? '' : '-' + index)"
4
5
  [kcClass]="'kcInputErrorMessageClass'"
5
- aria-live="polite"
6
6
  >
7
7
  @for (error of displayableErrors(); track error; let i = $index) {
8
8
  @if (error.fieldIndex === index) {
@@ -8,7 +8,7 @@
8
8
  [value]="$any(valueOrValues())"
9
9
  [displayableErrors]="displayableErrors()"
10
10
  (dispatchFormAction)="dispatchFormAction.emit($event)"
11
- ></kc-textarea-tag>
11
+ />
12
12
  }
13
13
  @case (type === 'select' || type === 'multiselect' ? type : '') {
14
14
  <kc-select-tag
@@ -16,7 +16,7 @@
16
16
  [valueOrValues]="valueOrValues()"
17
17
  [displayableErrors]="displayableErrors()"
18
18
  (dispatchFormAction)="dispatchFormAction.emit($event)"
19
- ></kc-select-tag>
19
+ />
20
20
  }
21
21
  @case (type === 'select-radiobuttons' || type === 'multiselect-checkboxes' ? type : '') {
22
22
  <kc-input-tag-selects
@@ -24,7 +24,7 @@
24
24
  [valueOrValues]="valueOrValues()"
25
25
  [displayableErrors]="displayableErrors()"
26
26
  (dispatchFormAction)="dispatchFormAction.emit($event)"
27
- ></kc-input-tag-selects>
27
+ />
28
28
  }
29
29
  @default {
30
30
  @let values = valueOrValues();
@@ -37,7 +37,7 @@
37
37
  [fieldIndex]="i"
38
38
  [displayableErrors]="displayableErrors()"
39
39
  (dispatchFormAction)="dispatchFormAction.emit($event)"
40
- ></kc-input-tag>
40
+ />
41
41
  }
42
42
  } @else {
43
43
  @if (attr.name === 'password' || attr.name === 'password-confirm') {
@@ -47,7 +47,7 @@
47
47
  [valueOrValues]="valueOrValues()"
48
48
  [displayableErrors]="displayableErrors()"
49
49
  (dispatchFormAction)="dispatchFormAction.emit($event)"
50
- ></kc-input-tag>
50
+ />
51
51
  </kc-password-wrapper>
52
52
  } @else {
53
53
  <kc-input-tag
@@ -55,7 +55,7 @@
55
55
  [valueOrValues]="valueOrValues()"
56
56
  [displayableErrors]="displayableErrors()"
57
57
  (dispatchFormAction)="dispatchFormAction.emit($event)"
58
- ></kc-input-tag>
58
+ />
59
59
  }
60
60
  }
61
61
  }
@@ -34,12 +34,12 @@
34
34
  [attribute]="attr"
35
35
  [displayableErrors]="displayableErrors()"
36
36
  [fieldIndex]="index"
37
- ></kc-field-errors>
37
+ />
38
38
  <kc-add-remove-buttons-multi-valued-attribute
39
39
  [attribute]="attr"
40
40
  [values]="values"
41
41
  [fieldIndex]="index"
42
42
  (dispatchFormAction)="dispatchFormAction.emit($event)"
43
- ></kc-add-remove-buttons-multi-valued-attribute>
43
+ />
44
44
  }
45
45
  }
@@ -1,5 +1,5 @@
1
1
  <div [kcClass]="'kcInputGroup'">
2
- <ng-content></ng-content>
2
+ <ng-content />
3
3
  <button
4
4
  type="button"
5
5
  [kcClass]="'kcFormPasswordVisibilityButtonClass'"
@@ -8,8 +8,8 @@
8
8
  (click)="togglePasswordVisibility()"
9
9
  >
10
10
  <i
11
- [kcClass]="isPasswordRevealed() ? 'kcFormPasswordVisibilityIconHide' : 'kcFormPasswordVisibilityIconShow'"
12
11
  aria-hidden="true"
12
+ [kcClass]="isPasswordRevealed() ? 'kcFormPasswordVisibilityIconHide' : 'kcFormPasswordVisibilityIconShow'"
13
13
  ></i>
14
14
  </button>
15
15
  </div>
@@ -1,7 +1,7 @@
1
1
  @let formFieldStates = formState().formFieldStates;
2
2
 
3
3
  @for (fieldState of formFieldStates; track fieldState.attribute) {
4
- <kc-group-label [attribute]="fieldState.attribute"> </kc-group-label>
4
+ <kc-group-label [attribute]="fieldState.attribute" />
5
5
 
6
6
  @if (beforeField) {
7
7
  <ng-container
@@ -11,8 +11,7 @@
11
11
  valueOrValues: fieldState.valueOrValues,
12
12
  displayableErrors: fieldState.displayableErrors
13
13
  }"
14
- >
15
- </ng-container>
14
+ />
16
15
  }
17
16
 
18
17
  <div
@@ -34,9 +33,9 @@
34
33
  <div [kcClass]="'kcInputWrapperClass'">
35
34
  @if (fieldState.attribute.annotations.inputHelperTextBefore) {
36
35
  <div
36
+ aria-live="polite"
37
37
  [kcClass]="'kcInputHelperTextBeforeClass'"
38
38
  [id]="'form-help-text-before-' + fieldState.attribute.name"
39
- aria-live="polite"
40
39
  >
41
40
  {{ i18n.advancedMsgStr(fieldState.attribute.annotations.inputHelperTextBefore) }}
42
41
  </div>
@@ -47,19 +46,17 @@
47
46
  [valueOrValues]="fieldState.valueOrValues"
48
47
  [displayableErrors]="fieldState.displayableErrors"
49
48
  (dispatchFormAction)="onDispatch($event)"
50
- >
51
- </kc-input-field-by-type>
49
+ />
52
50
 
53
51
  <kc-field-errors
54
52
  [attribute]="fieldState.attribute"
55
53
  [displayableErrors]="fieldState.displayableErrors"
56
- >
57
- </kc-field-errors>
54
+ />
58
55
  @if (fieldState.attribute.annotations.inputHelperTextAfter) {
59
56
  <div
57
+ aria-live="polite"
60
58
  [kcClass]="'kcInputHelperTextAfterClass'"
61
59
  [id]="'form-help-text-after-' + fieldState.attribute.name"
62
- aria-live="polite"
63
60
  >
64
61
  {{ i18n.advancedMsgStr(fieldState.attribute.annotations.inputHelperTextAfter) }}
65
62
  </div>
@@ -73,8 +70,7 @@
73
70
  valueOrValues: fieldState.valueOrValues,
74
71
  displayableErrors: fieldState.displayableErrors
75
72
  }"
76
- >
77
- </ng-container>
73
+ />
78
74
  }
79
75
  <!-- NOTE: Downloading of html5DataAnnotations scripts is done in the useUserProfileForm hook -->
80
76
  </div>
@@ -33,16 +33,16 @@
33
33
  >
34
34
  <div
35
35
  id="kc-locale-dropdown"
36
- [kcClass]="'kcLocaleDropDownClass'"
37
36
  class="menu-button-links"
37
+ [kcClass]="'kcLocaleDropDownClass'"
38
38
  >
39
39
  <button
40
40
  tabindex="1"
41
41
  id="kc-current-locale-link"
42
- [attr.aria-label]="i18n.msgStr('languages')"
43
42
  aria-haspopup="true"
44
43
  aria-expanded="false"
45
44
  aria-controls="language-switch1"
45
+ [attr.aria-label]="i18n.msgStr('languages')"
46
46
  >
47
47
  {{ i18n.currentLanguage.label }}
48
48
  </button>
@@ -56,8 +56,8 @@
56
56
  >
57
57
  @for (entry of i18n.enabledLanguages; track entry; let idx = $index) {
58
58
  <li
59
- [kcClass]="'kcLocaleListItemClass'"
60
59
  role="none"
60
+ [kcClass]="'kcLocaleListItemClass'"
61
61
  >
62
62
  <a
63
63
  role="menuitem"
@@ -80,7 +80,7 @@
80
80
  <ng-template #node>
81
81
  @if (auth && !auth.showUsername && !auth.showResetCredentials) {
82
82
  <h1 id="kc-page-title">
83
- <ng-content select="[headerNode]"></ng-content>
83
+ <ng-content select="[headerNode]" />
84
84
  </h1>
85
85
  } @else {
86
86
  <div
@@ -107,8 +107,8 @@
107
107
  @if (displayRequiredFields()) {
108
108
  <div [kcClass]="'kcContentWrapperClass'">
109
109
  <div
110
- [kcClass]="'kcLabelWrapperClass'"
111
110
  class="subtitle"
111
+ [kcClass]="'kcLabelWrapperClass'"
112
112
  >
113
113
  <span class="subtitle">
114
114
  <span class="required">*</span>
@@ -116,11 +116,11 @@
116
116
  </span>
117
117
  </div>
118
118
  <div class="col-md-10">
119
- <ng-container [ngTemplateOutlet]="node"></ng-container>
119
+ <ng-container [ngTemplateOutlet]="node" />
120
120
  </div>
121
121
  </div>
122
122
  } @else {
123
- <ng-container [ngTemplateOutlet]="node"></ng-container>
123
+ <ng-container [ngTemplateOutlet]="node" />
124
124
  }
125
125
  </header>
126
126
 
@@ -156,12 +156,12 @@
156
156
  </div>
157
157
  }
158
158
  <!-- Content -->
159
- <ng-content select="[content]"></ng-content>
159
+ <ng-content select="[content]" />
160
160
  @if (!!auth && auth?.showTryAnotherWayLink) {
161
161
  <form
162
162
  id="kc-select-try-another-way-form"
163
- [action]="url?.loginAction"
164
163
  method="post"
164
+ [action]="url?.loginAction"
165
165
  >
166
166
  <div [kcClass]="'kcFormGroupClass'">
167
167
  <div [kcClass]="'kcFormGroupClass'">
@@ -181,7 +181,7 @@
181
181
  </form>
182
182
  }
183
183
 
184
- <ng-content select="[socialProvidersNode]"></ng-content>
184
+ <ng-content select="[socialProvidersNode]" />
185
185
  <!-- Info display -->
186
186
  @if (displayInfo()) {
187
187
  <div
@@ -192,7 +192,7 @@
192
192
  id="kc-info-wrapper"
193
193
  [kcClass]="'kcInfoAreaWrapperClass'"
194
194
  >
195
- <ng-content select="[infoNode]"></ng-content>
195
+ <ng-content select="[infoNode]" />
196
196
  </div>
197
197
  </div>
198
198
  }
@@ -10,9 +10,8 @@ import {
10
10
  Renderer2,
11
11
  ɵstringify as stringify
12
12
  } from '@angular/core';
13
- import type { ClassKey } from 'keycloakify/login/lib/kcClsx';
14
- import { getKcClsx } from 'keycloakify/login/lib/kcClsx';
15
13
  import { ComponentReference } from '@keycloakify/angular/login/classes/component-reference';
14
+ import { type ClassKey, getKcClsx } from 'keycloakify/login/lib/kcClsx';
16
15
 
17
16
  interface CssClassState {
18
17
  // PERF: could use a bit mask to represent state as all fields are boolean flags
@@ -6,9 +6,9 @@
6
6
  </ng-container>
7
7
  <ng-container content>
8
8
  <form
9
- [action]="url.loginAction"
10
9
  method="post"
11
10
  class="form-actions"
11
+ [action]="url.loginAction"
12
12
  >
13
13
  <div
14
14
  class="alert alert-warning"
@@ -27,17 +27,17 @@
27
27
  </p>
28
28
  <div id="kc-form-buttons">
29
29
  <input
30
- [kcClass]="['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonLargeClass']"
31
30
  type="submit"
31
+ [kcClass]="['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonLargeClass']"
32
32
  [value]="i18n.msgStr('doConfirmDelete')"
33
33
  />
34
34
  @if (triggered_from_aia) {
35
35
  <button
36
- [kcClass]="['kcButtonClass', 'kcButtonDefaultClass', 'kcButtonLargeClass']"
37
36
  style="margin-left: calc(100% - 220px)"
38
37
  type="submit"
39
38
  name="cancel-aia"
40
39
  value="true"
40
+ [kcClass]="['kcButtonClass', 'kcButtonDefaultClass', 'kcButtonLargeClass']"
41
41
  >
42
42
  {{ i18n.msgStr('doCancel') }}
43
43
  </button>
@@ -11,23 +11,23 @@
11
11
 
12
12
  <form
13
13
  class="form-actions"
14
- [action]="url.loginAction"
15
14
  method="post"
15
+ [action]="url.loginAction"
16
16
  >
17
17
  <input
18
- [kcClass]="['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonLargeClass']"
19
18
  name="accept"
20
19
  id="kc-accept"
21
20
  type="submit"
21
+ [kcClass]="['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonLargeClass']"
22
22
  [value]="i18n.msgStr('doConfirmDelete')"
23
23
  />
24
24
 
25
25
  <input
26
- [kcClass]="['kcButtonClass', 'kcButtonDefaultClass', 'kcButtonLargeClass']"
27
26
  name="cancel-aia"
28
- [value]="i18n.msgStr('doCancel')"
29
27
  id="kc-decline"
30
28
  type="submit"
29
+ [kcClass]="['kcButtonClass', 'kcButtonDefaultClass', 'kcButtonLargeClass']"
30
+ [value]="i18n.msgStr('doCancel')"
31
31
  />
32
32
  </form>
33
33
  <div class="clearfix"></div>
@@ -16,8 +16,8 @@
16
16
  <li>
17
17
  {{ client.name }}
18
18
  <iframe
19
- [src]="'client.frontChannelLogoutUrl' | kcSanitize: 'resourceUrl'"
20
19
  style="display: none"
20
+ [src]="'client.frontChannelLogoutUrl' | kcSanitize: 'resourceUrl'"
21
21
  ></iframe>
22
22
  </li>
23
23
  }
@@ -12,11 +12,11 @@
12
12
  <ng-container content>
13
13
  <form
14
14
  id="kc-idp-review-profile-form"
15
+ method="post"
15
16
  [kcClass]="'kcFormClass'"
16
17
  [action]="url.loginAction"
17
- method="post"
18
18
  >
19
- <ng-container [ngComponentOutlet]="userProfileFormFields() ?? null"></ng-container>
19
+ <ng-container [ngComponentOutlet]="userProfileFormFields() ?? null" />
20
20
  <div [kcClass]="'kcFormGroupClass'">
21
21
  <div
22
22
  id="kc-form-options"
@@ -29,8 +29,8 @@
29
29
  [kcClass]="'kcFormButtonsClass'"
30
30
  >
31
31
  <input
32
- [kcClass]="['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonBlockClass', 'kcButtonLargeClass']"
33
32
  type="submit"
33
+ [kcClass]="['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonBlockClass', 'kcButtonLargeClass']"
34
34
  [value]="i18n.msgStr('doSubmit')"
35
35
  [disabled]="!isFormSubmittable()"
36
36
  />