@keycloakify/angular 20.0.2 → 20.1.1

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 (134) hide show
  1. package/README.md +2 -2
  2. package/fesm2022/keycloakify-angular-account-directives-kc-class.mjs +3 -3
  3. package/fesm2022/keycloakify-angular-account-pages-account.mjs +3 -3
  4. package/fesm2022/keycloakify-angular-account-pages-applications.mjs +3 -3
  5. package/fesm2022/keycloakify-angular-account-pages-federatedIdentity.mjs +3 -3
  6. package/fesm2022/keycloakify-angular-account-pages-log.mjs +3 -3
  7. package/fesm2022/keycloakify-angular-account-pages-password.mjs +10 -10
  8. package/fesm2022/keycloakify-angular-account-pages-password.mjs.map +1 -1
  9. package/fesm2022/keycloakify-angular-account-pages-sessions.mjs +3 -3
  10. package/fesm2022/keycloakify-angular-account-pages-totp.mjs +3 -3
  11. package/fesm2022/keycloakify-angular-account-services-account-resource-injector.mjs +3 -3
  12. package/fesm2022/keycloakify-angular-account-services-i18n.mjs +3 -3
  13. package/fesm2022/keycloakify-angular-account-template.mjs +8 -8
  14. package/fesm2022/keycloakify-angular-account-template.mjs.map +1 -1
  15. package/fesm2022/keycloakify-angular-lib-directives-attributes.mjs +4 -4
  16. package/fesm2022/keycloakify-angular-lib-directives-attributes.mjs.map +1 -1
  17. package/fesm2022/keycloakify-angular-lib-pipes-input-type.mjs +3 -3
  18. package/fesm2022/keycloakify-angular-lib-pipes-is-array-with-empty-object.mjs +3 -3
  19. package/fesm2022/keycloakify-angular-lib-pipes-kc-sanitize.mjs +3 -3
  20. package/fesm2022/keycloakify-angular-lib-pipes-to-array.mjs +3 -3
  21. package/fesm2022/keycloakify-angular-lib-pipes-to-number.mjs +3 -3
  22. package/fesm2022/keycloakify-angular-lib-services-resource-injector.mjs +3 -3
  23. package/fesm2022/keycloakify-angular-login-components-add-remove-buttons-multi-valued-attribute.mjs +8 -8
  24. package/fesm2022/keycloakify-angular-login-components-add-remove-buttons-multi-valued-attribute.mjs.map +1 -1
  25. package/fesm2022/keycloakify-angular-login-components-field-errors.mjs +6 -6
  26. package/fesm2022/keycloakify-angular-login-components-field-errors.mjs.map +1 -1
  27. package/fesm2022/keycloakify-angular-login-components-group-label.mjs +6 -6
  28. package/fesm2022/keycloakify-angular-login-components-group-label.mjs.map +1 -1
  29. package/fesm2022/keycloakify-angular-login-components-input-field-by-type.mjs +8 -8
  30. package/fesm2022/keycloakify-angular-login-components-input-field-by-type.mjs.map +1 -1
  31. package/fesm2022/keycloakify-angular-login-components-input-tag-selects.mjs +8 -8
  32. package/fesm2022/keycloakify-angular-login-components-input-tag-selects.mjs.map +1 -1
  33. package/fesm2022/keycloakify-angular-login-components-input-tag.mjs +10 -10
  34. package/fesm2022/keycloakify-angular-login-components-input-tag.mjs.map +1 -1
  35. package/fesm2022/keycloakify-angular-login-components-logout-other-sessions.mjs +3 -3
  36. package/fesm2022/keycloakify-angular-login-components-password-wrapper.mjs +5 -5
  37. package/fesm2022/keycloakify-angular-login-components-password-wrapper.mjs.map +1 -1
  38. package/fesm2022/keycloakify-angular-login-components-select-tag.mjs +8 -8
  39. package/fesm2022/keycloakify-angular-login-components-select-tag.mjs.map +1 -1
  40. package/fesm2022/keycloakify-angular-login-components-textarea-tag.mjs +6 -6
  41. package/fesm2022/keycloakify-angular-login-components-textarea-tag.mjs.map +1 -1
  42. package/fesm2022/keycloakify-angular-login-components-user-profile-form-fields.mjs +3 -3
  43. package/fesm2022/keycloakify-angular-login-directives-kc-class.mjs +3 -3
  44. package/fesm2022/keycloakify-angular-login-pages-code.mjs +6 -6
  45. package/fesm2022/keycloakify-angular-login-pages-code.mjs.map +1 -1
  46. package/fesm2022/keycloakify-angular-login-pages-delete-account-confirm.mjs +6 -6
  47. package/fesm2022/keycloakify-angular-login-pages-delete-account-confirm.mjs.map +1 -1
  48. package/fesm2022/keycloakify-angular-login-pages-delete-credential.mjs +6 -6
  49. package/fesm2022/keycloakify-angular-login-pages-delete-credential.mjs.map +1 -1
  50. package/fesm2022/keycloakify-angular-login-pages-error.mjs +6 -6
  51. package/fesm2022/keycloakify-angular-login-pages-error.mjs.map +1 -1
  52. package/fesm2022/keycloakify-angular-login-pages-frontchannel-logout.mjs +24 -15
  53. package/fesm2022/keycloakify-angular-login-pages-frontchannel-logout.mjs.map +1 -1
  54. package/fesm2022/keycloakify-angular-login-pages-idp-review-user-profile.mjs +9 -9
  55. package/fesm2022/keycloakify-angular-login-pages-idp-review-user-profile.mjs.map +1 -1
  56. package/fesm2022/keycloakify-angular-login-pages-info.mjs +6 -6
  57. package/fesm2022/keycloakify-angular-login-pages-info.mjs.map +1 -1
  58. package/fesm2022/keycloakify-angular-login-pages-login-config-totp.mjs +7 -7
  59. package/fesm2022/keycloakify-angular-login-pages-login-config-totp.mjs.map +1 -1
  60. package/fesm2022/keycloakify-angular-login-pages-login-idp-link-confirm-override.mjs +6 -6
  61. package/fesm2022/keycloakify-angular-login-pages-login-idp-link-confirm-override.mjs.map +1 -1
  62. package/fesm2022/keycloakify-angular-login-pages-login-idp-link-confirm.mjs +6 -6
  63. package/fesm2022/keycloakify-angular-login-pages-login-idp-link-confirm.mjs.map +1 -1
  64. package/fesm2022/keycloakify-angular-login-pages-login-idp-link-email.mjs +6 -6
  65. package/fesm2022/keycloakify-angular-login-pages-login-idp-link-email.mjs.map +1 -1
  66. package/fesm2022/keycloakify-angular-login-pages-login-oauth-grant.mjs +6 -6
  67. package/fesm2022/keycloakify-angular-login-pages-login-oauth-grant.mjs.map +1 -1
  68. package/fesm2022/keycloakify-angular-login-pages-login-oauth2-device-verify-user-code.mjs +6 -6
  69. package/fesm2022/keycloakify-angular-login-pages-login-oauth2-device-verify-user-code.mjs.map +1 -1
  70. package/fesm2022/keycloakify-angular-login-pages-login-otp.mjs +6 -6
  71. package/fesm2022/keycloakify-angular-login-pages-login-otp.mjs.map +1 -1
  72. package/fesm2022/keycloakify-angular-login-pages-login-page-expired.mjs +6 -6
  73. package/fesm2022/keycloakify-angular-login-pages-login-page-expired.mjs.map +1 -1
  74. package/fesm2022/keycloakify-angular-login-pages-login-passkeys-conditional-authenticate.mjs +6 -6
  75. package/fesm2022/keycloakify-angular-login-pages-login-passkeys-conditional-authenticate.mjs.map +1 -1
  76. package/fesm2022/keycloakify-angular-login-pages-login-password.mjs +7 -7
  77. package/fesm2022/keycloakify-angular-login-pages-login-password.mjs.map +1 -1
  78. package/fesm2022/keycloakify-angular-login-pages-login-recovery-authn-code-config.mjs +7 -7
  79. package/fesm2022/keycloakify-angular-login-pages-login-recovery-authn-code-config.mjs.map +1 -1
  80. package/fesm2022/keycloakify-angular-login-pages-login-recovery-authn-code-input.mjs +6 -6
  81. package/fesm2022/keycloakify-angular-login-pages-login-recovery-authn-code-input.mjs.map +1 -1
  82. package/fesm2022/keycloakify-angular-login-pages-login-reset-otp.mjs +6 -6
  83. package/fesm2022/keycloakify-angular-login-pages-login-reset-otp.mjs.map +1 -1
  84. package/fesm2022/keycloakify-angular-login-pages-login-reset-password.mjs +6 -6
  85. package/fesm2022/keycloakify-angular-login-pages-login-reset-password.mjs.map +1 -1
  86. package/fesm2022/keycloakify-angular-login-pages-login-update-password.mjs +7 -7
  87. package/fesm2022/keycloakify-angular-login-pages-login-update-password.mjs.map +1 -1
  88. package/fesm2022/keycloakify-angular-login-pages-login-update-profile.mjs +8 -8
  89. package/fesm2022/keycloakify-angular-login-pages-login-update-profile.mjs.map +1 -1
  90. package/fesm2022/keycloakify-angular-login-pages-login-username.mjs +8 -8
  91. package/fesm2022/keycloakify-angular-login-pages-login-username.mjs.map +1 -1
  92. package/fesm2022/keycloakify-angular-login-pages-login-verify-email.mjs +6 -6
  93. package/fesm2022/keycloakify-angular-login-pages-login-verify-email.mjs.map +1 -1
  94. package/fesm2022/keycloakify-angular-login-pages-login-x509-info.mjs +6 -6
  95. package/fesm2022/keycloakify-angular-login-pages-login-x509-info.mjs.map +1 -1
  96. package/fesm2022/keycloakify-angular-login-pages-login.mjs +8 -8
  97. package/fesm2022/keycloakify-angular-login-pages-login.mjs.map +1 -1
  98. package/fesm2022/keycloakify-angular-login-pages-logout-confirm.mjs +6 -6
  99. package/fesm2022/keycloakify-angular-login-pages-logout-confirm.mjs.map +1 -1
  100. package/fesm2022/keycloakify-angular-login-pages-register.mjs +22 -14
  101. package/fesm2022/keycloakify-angular-login-pages-register.mjs.map +1 -1
  102. package/fesm2022/keycloakify-angular-login-pages-saml-post-form.mjs +8 -8
  103. package/fesm2022/keycloakify-angular-login-pages-saml-post-form.mjs.map +1 -1
  104. package/fesm2022/keycloakify-angular-login-pages-select-authenticator.mjs +6 -6
  105. package/fesm2022/keycloakify-angular-login-pages-select-authenticator.mjs.map +1 -1
  106. package/fesm2022/keycloakify-angular-login-pages-terms.mjs +6 -6
  107. package/fesm2022/keycloakify-angular-login-pages-terms.mjs.map +1 -1
  108. package/fesm2022/keycloakify-angular-login-pages-update-email.mjs +8 -8
  109. package/fesm2022/keycloakify-angular-login-pages-update-email.mjs.map +1 -1
  110. package/fesm2022/keycloakify-angular-login-pages-webauthn-authenticate.mjs +6 -6
  111. package/fesm2022/keycloakify-angular-login-pages-webauthn-authenticate.mjs.map +1 -1
  112. package/fesm2022/keycloakify-angular-login-pages-webauthn-error.mjs +7 -7
  113. package/fesm2022/keycloakify-angular-login-pages-webauthn-error.mjs.map +1 -1
  114. package/fesm2022/keycloakify-angular-login-pages-webauthn-register.mjs +6 -6
  115. package/fesm2022/keycloakify-angular-login-pages-webauthn-register.mjs.map +1 -1
  116. package/fesm2022/keycloakify-angular-login-services-i18n.mjs +3 -3
  117. package/fesm2022/keycloakify-angular-login-services-login-resource-injector.mjs +11 -9
  118. package/fesm2022/keycloakify-angular-login-services-login-resource-injector.mjs.map +1 -1
  119. package/fesm2022/keycloakify-angular-login-services-user-profile-form.mjs +3 -3
  120. package/fesm2022/keycloakify-angular-login-template.mjs +13 -13
  121. package/fesm2022/keycloakify-angular-login-template.mjs.map +1 -1
  122. package/login/pages/frontchannel-logout/index.d.ts +5 -3
  123. package/login/pages/register/index.d.ts +4 -3
  124. package/package.json +14 -14
  125. package/src/login/pages/frontchannel-logout/frontchannel-logout.component.html +3 -2
  126. package/src/login/pages/frontchannel-logout/frontchannel-logout.component.ts +20 -6
  127. package/src/login/pages/idp-review-user-profile/idp-review-user-profile.component.ts +1 -1
  128. package/src/login/pages/login-username/login-username.component.ts +1 -1
  129. package/src/login/pages/register/register.component.html +1 -1
  130. package/src/login/pages/register/register.component.ts +27 -7
  131. package/src/login/pages/saml-post-form/saml-post-form.component.ts +1 -1
  132. package/src/login/pages/webauthn-error/webauthn-error.component.ts +1 -1
  133. package/src/login/services/login-resource-injector/login-resource-injector.service.ts +8 -6
  134. package/src/login/template/template.component.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"keycloakify-angular-login-pages-delete-credential.mjs","sources":["../../src/login/pages/delete-credential/delete-credential.component.ts","../../src/login/pages/delete-credential/delete-credential.component.html","../../src/login/pages/delete-credential/keycloakify-angular-login-pages-delete-credential.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, forwardRef, inject, type TemplateRef, viewChild } from '@angular/core';\nimport { USE_DEFAULT_CSS } from '@keycloakify/angular/lib/tokens/use-default-css';\nimport { ComponentReference } from '@keycloakify/angular/login/classes/component-reference';\nimport { KcClassDirective } from '@keycloakify/angular/login/directives/kc-class';\nimport type { I18n } from '@keycloakify/angular/login/i18n';\nimport type { KcContext } from '@keycloakify/angular/login/KcContext';\nimport { LOGIN_CLASSES } from '@keycloakify/angular/login/tokens/classes';\nimport { LOGIN_I18N } from '@keycloakify/angular/login/tokens/i18n';\nimport { KC_LOGIN_CONTEXT } from '@keycloakify/angular/login/tokens/kc-context';\nimport type { ClassKey } from 'keycloakify/login/lib/kcClsx';\n\n@Component({\n imports: [KcClassDirective],\n selector: 'kc-delete-credential',\n templateUrl: 'delete-credential.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: ComponentReference,\n useExisting: forwardRef(() => DeleteCredentialComponent)\n }\n ]\n})\nexport class DeleteCredentialComponent extends ComponentReference {\n kcContext = inject<Extract<KcContext, { pageId: 'delete-credential.ftl' }>>(KC_LOGIN_CONTEXT);\n i18n = inject<I18n>(LOGIN_I18N);\n\n override doUseDefaultCss = inject<boolean>(USE_DEFAULT_CSS);\n override classes = inject<Partial<Record<ClassKey, string>>>(LOGIN_CLASSES);\n\n documentTitle: string | undefined;\n bodyClassName: string | undefined;\n\n displayRequiredFields = false;\n displayInfo = false;\n displayMessage = false;\n\n headerNode = viewChild<TemplateRef<HTMLElement>>('headerNode');\n infoNode = viewChild<TemplateRef<HTMLElement>>('infoNode');\n socialProvidersNode = viewChild<TemplateRef<HTMLElement>>('socialProvidersNode');\n}\n","@let url = kcContext.url;\n@let credentialLabel = kcContext.credentialLabel;\n<ng-template #headerNode>\n @let credentialLabel = kcContext.credentialLabel;\n {{ i18n.msgStr('deleteCredentialTitle', credentialLabel) }}\n</ng-template>\n\n<div id=\"kc-delete-text\">\n {{ i18n.msgStr('deleteCredentialMessage', credentialLabel) }}\n</div>\n\n<form\n class=\"form-actions\"\n method=\"post\"\n [action]=\"url.loginAction\"\n>\n <input\n name=\"accept\"\n id=\"kc-accept\"\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doConfirmDelete')\"\n />\n\n <input\n name=\"cancel-aia\"\n id=\"kc-decline\"\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonDefaultClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doCancel')\"\n />\n</form>\n<div class=\"clearfix\"></div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;AAuBM,MAAO,yBAA0B,SAAQ,kBAAkB,CAAA;AAZjE,IAAA,WAAA,GAAA;;AAaI,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAA0D,gBAAgB,CAAC;AAC7F,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAO,UAAU,CAAC;AAEtB,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAAU,eAAe,CAAC;AAClD,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAoC,aAAa,CAAC;QAK3E,IAAqB,CAAA,qBAAA,GAAG,KAAK;QAC7B,IAAW,CAAA,WAAA,GAAG,KAAK;QACnB,IAAc,CAAA,cAAA,GAAG,KAAK;AAEtB,QAAA,IAAA,CAAA,UAAU,GAAG,SAAS,CAA2B,YAAY,CAAC;AAC9D,QAAA,IAAA,CAAA,QAAQ,GAAG,SAAS,CAA2B,UAAU,CAAC;AAC1D,QAAA,IAAA,CAAA,mBAAmB,GAAG,SAAS,CAA2B,qBAAqB,CAAC;AACnF;8GAjBY,yBAAyB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,yBAAyB,EAPvB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,SAAA,EAAA;AACP,YAAA;AACI,gBAAA,OAAO,EAAE,kBAAkB;AAC3B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,yBAAyB;AAC1D;SACJ,ECrBL,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,YAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,UAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,qBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,27BAiCA,4CDrBc,gBAAgB,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAWjB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAZrC,SAAS;8BACG,CAAC,gBAAgB,CAAC,EACjB,QAAA,EAAA,sBAAsB,mBAEf,uBAAuB,CAAC,MAAM,EACpC,SAAA,EAAA;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,kBAAkB;AAC3B,4BAAA,WAAW,EAAE,UAAU,CAAC,+BAA+B;AAC1D;AACJ,qBAAA,EAAA,QAAA,EAAA,27BAAA,EAAA;;;AErBL;;AAEG;;;;"}
1
+ {"version":3,"file":"keycloakify-angular-login-pages-delete-credential.mjs","sources":["../../src/login/pages/delete-credential/delete-credential.component.ts","../../src/login/pages/delete-credential/delete-credential.component.html","../../src/login/pages/delete-credential/keycloakify-angular-login-pages-delete-credential.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, forwardRef, inject, type TemplateRef, viewChild } from '@angular/core';\nimport { USE_DEFAULT_CSS } from '@keycloakify/angular/lib/tokens/use-default-css';\nimport { ComponentReference } from '@keycloakify/angular/login/classes/component-reference';\nimport { KcClassDirective } from '@keycloakify/angular/login/directives/kc-class';\nimport type { I18n } from '@keycloakify/angular/login/i18n';\nimport type { KcContext } from '@keycloakify/angular/login/KcContext';\nimport { LOGIN_CLASSES } from '@keycloakify/angular/login/tokens/classes';\nimport { LOGIN_I18N } from '@keycloakify/angular/login/tokens/i18n';\nimport { KC_LOGIN_CONTEXT } from '@keycloakify/angular/login/tokens/kc-context';\nimport type { ClassKey } from 'keycloakify/login/lib/kcClsx';\n\n@Component({\n imports: [KcClassDirective],\n selector: 'kc-delete-credential',\n templateUrl: 'delete-credential.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: ComponentReference,\n useExisting: forwardRef(() => DeleteCredentialComponent)\n }\n ]\n})\nexport class DeleteCredentialComponent extends ComponentReference {\n kcContext = inject<Extract<KcContext, { pageId: 'delete-credential.ftl' }>>(KC_LOGIN_CONTEXT);\n i18n = inject<I18n>(LOGIN_I18N);\n\n override doUseDefaultCss = inject<boolean>(USE_DEFAULT_CSS);\n override classes = inject<Partial<Record<ClassKey, string>>>(LOGIN_CLASSES);\n\n documentTitle: string | undefined;\n bodyClassName: string | undefined;\n\n displayRequiredFields = false;\n displayInfo = false;\n displayMessage = false;\n\n headerNode = viewChild<TemplateRef<HTMLElement>>('headerNode');\n infoNode = viewChild<TemplateRef<HTMLElement>>('infoNode');\n socialProvidersNode = viewChild<TemplateRef<HTMLElement>>('socialProvidersNode');\n}\n","@let url = kcContext.url;\n@let credentialLabel = kcContext.credentialLabel;\n<ng-template #headerNode>\n @let credentialLabel = kcContext.credentialLabel;\n {{ i18n.msgStr('deleteCredentialTitle', credentialLabel) }}\n</ng-template>\n\n<div id=\"kc-delete-text\">\n {{ i18n.msgStr('deleteCredentialMessage', credentialLabel) }}\n</div>\n\n<form\n class=\"form-actions\"\n method=\"post\"\n [action]=\"url.loginAction\"\n>\n <input\n name=\"accept\"\n id=\"kc-accept\"\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doConfirmDelete')\"\n />\n\n <input\n name=\"cancel-aia\"\n id=\"kc-decline\"\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonDefaultClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doCancel')\"\n />\n</form>\n<div class=\"clearfix\"></div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;AAuBM,MAAO,yBAA0B,SAAQ,kBAAkB,CAAA;AAZjE,IAAA,WAAA,GAAA;;AAaI,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAA0D,gBAAgB,CAAC;AAC7F,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAO,UAAU,CAAC;AAEtB,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAAU,eAAe,CAAC;AAClD,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAoC,aAAa,CAAC;QAK3E,IAAqB,CAAA,qBAAA,GAAG,KAAK;QAC7B,IAAW,CAAA,WAAA,GAAG,KAAK;QACnB,IAAc,CAAA,cAAA,GAAG,KAAK;AAEtB,QAAA,IAAA,CAAA,UAAU,GAAG,SAAS,CAA2B,YAAY,sDAAC;AAC9D,QAAA,IAAA,CAAA,QAAQ,GAAG,SAAS,CAA2B,UAAU,oDAAC;AAC1D,QAAA,IAAA,CAAA,mBAAmB,GAAG,SAAS,CAA2B,qBAAqB,+DAAC;AACnF;8GAjBY,yBAAyB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,yBAAyB,EAPvB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,SAAA,EAAA;AACP,YAAA;AACI,gBAAA,OAAO,EAAE,kBAAkB;AAC3B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,yBAAyB;AAC1D;SACJ,ECrBL,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,YAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,UAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,qBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,27BAiCA,4CDrBc,gBAAgB,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAWjB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAZrC,SAAS;8BACG,CAAC,gBAAgB,CAAC,EACjB,QAAA,EAAA,sBAAsB,mBAEf,uBAAuB,CAAC,MAAM,EACpC,SAAA,EAAA;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,kBAAkB;AAC3B,4BAAA,WAAW,EAAE,UAAU,CAAC,+BAA+B;AAC1D;AACJ,qBAAA,EAAA,QAAA,EAAA,27BAAA,EAAA;;;AErBL;;AAEG;;;;"}
@@ -17,19 +17,19 @@ class ErrorComponent extends ComponentReference {
17
17
  this.displayRequiredFields = false;
18
18
  this.displayInfo = false;
19
19
  this.displayMessage = false;
20
- this.headerNode = viewChild('headerNode');
21
- this.infoNode = viewChild('infoNode');
22
- this.socialProvidersNode = viewChild('socialProvidersNode');
20
+ this.headerNode = viewChild('headerNode', ...(ngDevMode ? [{ debugName: "headerNode" }] : []));
21
+ this.infoNode = viewChild('infoNode', ...(ngDevMode ? [{ debugName: "infoNode" }] : []));
22
+ this.socialProvidersNode = viewChild('socialProvidersNode', ...(ngDevMode ? [{ debugName: "socialProvidersNode" }] : []));
23
23
  }
24
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: ErrorComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
25
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.3", type: ErrorComponent, isStandalone: true, selector: "kc-error", providers: [
24
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: ErrorComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
25
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.3", type: ErrorComponent, isStandalone: true, selector: "kc-error", providers: [
26
26
  {
27
27
  provide: ComponentReference,
28
28
  useExisting: forwardRef(() => ErrorComponent)
29
29
  }
30
30
  ], viewQueries: [{ propertyName: "headerNode", first: true, predicate: ["headerNode"], descendants: true, isSignal: true }, { propertyName: "infoNode", first: true, predicate: ["infoNode"], descendants: true, isSignal: true }, { propertyName: "socialProvidersNode", first: true, predicate: ["socialProvidersNode"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "@let message = kcContext.message;\n@let skipLink = kcContext.skipLink;\n@let client = kcContext.client;\n<ng-template #headerNode>\n {{ i18n.msgStr('errorTitle') }}\n</ng-template>\n\n<div id=\"kc-error-message\">\n <p\n class=\"instruction\"\n [innerHTML]=\"message.summary | kcSanitize: 'html'\"\n ></p>\n @if (!skipLink && !!client?.baseUrl) {\n <p>\n <a\n id=\"backToApplication\"\n [href]=\"client.baseUrl\"\n [innerHTML]=\"i18n.msgStr('backToApplication') | kcSanitize: 'html'\"\n ></a>\n </p>\n }\n</div>\n", dependencies: [{ kind: "pipe", type: KcSanitizePipe, name: "kcSanitize" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
31
31
  }
32
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: ErrorComponent, decorators: [{
32
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: ErrorComponent, decorators: [{
33
33
  type: Component,
34
34
  args: [{ imports: [KcSanitizePipe], selector: 'kc-error', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
35
35
  {
@@ -1 +1 @@
1
- {"version":3,"file":"keycloakify-angular-login-pages-error.mjs","sources":["../../src/login/pages/error/error.component.ts","../../src/login/pages/error/error.component.html","../../src/login/pages/error/keycloakify-angular-login-pages-error.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, forwardRef, inject, type TemplateRef, viewChild } from '@angular/core';\nimport { KcSanitizePipe } from '@keycloakify/angular/lib/pipes/kc-sanitize';\nimport { USE_DEFAULT_CSS } from '@keycloakify/angular/lib/tokens/use-default-css';\nimport { ComponentReference } from '@keycloakify/angular/login/classes/component-reference';\nimport type { I18n } from '@keycloakify/angular/login/i18n';\nimport type { KcContext } from '@keycloakify/angular/login/KcContext';\nimport { LOGIN_CLASSES } from '@keycloakify/angular/login/tokens/classes';\nimport { LOGIN_I18N } from '@keycloakify/angular/login/tokens/i18n';\nimport { KC_LOGIN_CONTEXT } from '@keycloakify/angular/login/tokens/kc-context';\nimport type { ClassKey } from 'keycloakify/login/lib/kcClsx';\n\n@Component({\n imports: [KcSanitizePipe],\n selector: 'kc-error',\n templateUrl: 'error.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: ComponentReference,\n useExisting: forwardRef(() => ErrorComponent)\n }\n ]\n})\nexport class ErrorComponent extends ComponentReference {\n kcContext = inject<Extract<KcContext, { pageId: 'error.ftl' }>>(KC_LOGIN_CONTEXT);\n i18n = inject<I18n>(LOGIN_I18N);\n\n override doUseDefaultCss = inject<boolean>(USE_DEFAULT_CSS);\n override classes = inject<Partial<Record<ClassKey, string>>>(LOGIN_CLASSES);\n\n documentTitle: string | undefined;\n bodyClassName: string | undefined;\n\n displayRequiredFields = false;\n displayInfo = false;\n displayMessage = false;\n\n headerNode = viewChild<TemplateRef<HTMLElement>>('headerNode');\n infoNode = viewChild<TemplateRef<HTMLElement>>('infoNode');\n socialProvidersNode = viewChild<TemplateRef<HTMLElement>>('socialProvidersNode');\n}\n","@let message = kcContext.message;\n@let skipLink = kcContext.skipLink;\n@let client = kcContext.client;\n<ng-template #headerNode>\n {{ i18n.msgStr('errorTitle') }}\n</ng-template>\n\n<div id=\"kc-error-message\">\n <p\n class=\"instruction\"\n [innerHTML]=\"message.summary | kcSanitize: 'html'\"\n ></p>\n @if (!skipLink && !!client?.baseUrl) {\n <p>\n <a\n id=\"backToApplication\"\n [href]=\"client.baseUrl\"\n [innerHTML]=\"i18n.msgStr('backToApplication') | kcSanitize: 'html'\"\n ></a>\n </p>\n }\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;AAuBM,MAAO,cAAe,SAAQ,kBAAkB,CAAA;AAZtD,IAAA,WAAA,GAAA;;AAaI,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAA8C,gBAAgB,CAAC;AACjF,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAO,UAAU,CAAC;AAEtB,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAAU,eAAe,CAAC;AAClD,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAoC,aAAa,CAAC;QAK3E,IAAqB,CAAA,qBAAA,GAAG,KAAK;QAC7B,IAAW,CAAA,WAAA,GAAG,KAAK;QACnB,IAAc,CAAA,cAAA,GAAG,KAAK;AAEtB,QAAA,IAAA,CAAA,UAAU,GAAG,SAAS,CAA2B,YAAY,CAAC;AAC9D,QAAA,IAAA,CAAA,QAAQ,GAAG,SAAS,CAA2B,UAAU,CAAC;AAC1D,QAAA,IAAA,CAAA,mBAAmB,GAAG,SAAS,CAA2B,qBAAqB,CAAC;AACnF;8GAjBY,cAAc,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,cAAc,EAPZ,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,UAAA,EAAA,SAAA,EAAA;AACP,YAAA;AACI,gBAAA,OAAO,EAAE,kBAAkB;AAC3B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,cAAc;AAC/C;SACJ,ECrBL,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,YAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,UAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,qBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,inBAsBA,uCDVc,cAAc,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAWf,cAAc,EAAA,UAAA,EAAA,CAAA;kBAZ1B,SAAS;8BACG,CAAC,cAAc,CAAC,EACf,QAAA,EAAA,UAAU,mBAEH,uBAAuB,CAAC,MAAM,EACpC,SAAA,EAAA;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,kBAAkB;AAC3B,4BAAA,WAAW,EAAE,UAAU,CAAC,oBAAoB;AAC/C;AACJ,qBAAA,EAAA,QAAA,EAAA,inBAAA,EAAA;;;AErBL;;AAEG;;;;"}
1
+ {"version":3,"file":"keycloakify-angular-login-pages-error.mjs","sources":["../../src/login/pages/error/error.component.ts","../../src/login/pages/error/error.component.html","../../src/login/pages/error/keycloakify-angular-login-pages-error.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, forwardRef, inject, type TemplateRef, viewChild } from '@angular/core';\nimport { KcSanitizePipe } from '@keycloakify/angular/lib/pipes/kc-sanitize';\nimport { USE_DEFAULT_CSS } from '@keycloakify/angular/lib/tokens/use-default-css';\nimport { ComponentReference } from '@keycloakify/angular/login/classes/component-reference';\nimport type { I18n } from '@keycloakify/angular/login/i18n';\nimport type { KcContext } from '@keycloakify/angular/login/KcContext';\nimport { LOGIN_CLASSES } from '@keycloakify/angular/login/tokens/classes';\nimport { LOGIN_I18N } from '@keycloakify/angular/login/tokens/i18n';\nimport { KC_LOGIN_CONTEXT } from '@keycloakify/angular/login/tokens/kc-context';\nimport type { ClassKey } from 'keycloakify/login/lib/kcClsx';\n\n@Component({\n imports: [KcSanitizePipe],\n selector: 'kc-error',\n templateUrl: 'error.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: ComponentReference,\n useExisting: forwardRef(() => ErrorComponent)\n }\n ]\n})\nexport class ErrorComponent extends ComponentReference {\n kcContext = inject<Extract<KcContext, { pageId: 'error.ftl' }>>(KC_LOGIN_CONTEXT);\n i18n = inject<I18n>(LOGIN_I18N);\n\n override doUseDefaultCss = inject<boolean>(USE_DEFAULT_CSS);\n override classes = inject<Partial<Record<ClassKey, string>>>(LOGIN_CLASSES);\n\n documentTitle: string | undefined;\n bodyClassName: string | undefined;\n\n displayRequiredFields = false;\n displayInfo = false;\n displayMessage = false;\n\n headerNode = viewChild<TemplateRef<HTMLElement>>('headerNode');\n infoNode = viewChild<TemplateRef<HTMLElement>>('infoNode');\n socialProvidersNode = viewChild<TemplateRef<HTMLElement>>('socialProvidersNode');\n}\n","@let message = kcContext.message;\n@let skipLink = kcContext.skipLink;\n@let client = kcContext.client;\n<ng-template #headerNode>\n {{ i18n.msgStr('errorTitle') }}\n</ng-template>\n\n<div id=\"kc-error-message\">\n <p\n class=\"instruction\"\n [innerHTML]=\"message.summary | kcSanitize: 'html'\"\n ></p>\n @if (!skipLink && !!client?.baseUrl) {\n <p>\n <a\n id=\"backToApplication\"\n [href]=\"client.baseUrl\"\n [innerHTML]=\"i18n.msgStr('backToApplication') | kcSanitize: 'html'\"\n ></a>\n </p>\n }\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;AAuBM,MAAO,cAAe,SAAQ,kBAAkB,CAAA;AAZtD,IAAA,WAAA,GAAA;;AAaI,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAA8C,gBAAgB,CAAC;AACjF,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAO,UAAU,CAAC;AAEtB,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAAU,eAAe,CAAC;AAClD,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAoC,aAAa,CAAC;QAK3E,IAAqB,CAAA,qBAAA,GAAG,KAAK;QAC7B,IAAW,CAAA,WAAA,GAAG,KAAK;QACnB,IAAc,CAAA,cAAA,GAAG,KAAK;AAEtB,QAAA,IAAA,CAAA,UAAU,GAAG,SAAS,CAA2B,YAAY,sDAAC;AAC9D,QAAA,IAAA,CAAA,QAAQ,GAAG,SAAS,CAA2B,UAAU,oDAAC;AAC1D,QAAA,IAAA,CAAA,mBAAmB,GAAG,SAAS,CAA2B,qBAAqB,+DAAC;AACnF;8GAjBY,cAAc,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,cAAc,EAPZ,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,UAAA,EAAA,SAAA,EAAA;AACP,YAAA;AACI,gBAAA,OAAO,EAAE,kBAAkB;AAC3B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,cAAc;AAC/C;SACJ,ECrBL,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,YAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,UAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,qBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,inBAsBA,uCDVc,cAAc,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAWf,cAAc,EAAA,UAAA,EAAA,CAAA;kBAZ1B,SAAS;8BACG,CAAC,cAAc,CAAC,EACf,QAAA,EAAA,UAAU,mBAEH,uBAAuB,CAAC,MAAM,EACpC,SAAA,EAAA;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,kBAAkB;AAC3B,4BAAA,WAAW,EAAE,UAAU,CAAC,oBAAoB;AAC/C;AACJ,qBAAA,EAAA,QAAA,EAAA,inBAAA,EAAA;;;AErBL;;AAEG;;;;"}
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { inject, viewChild, forwardRef, ChangeDetectionStrategy, Component } from '@angular/core';
2
+ import { inject, viewChild, signal, effect, forwardRef, ChangeDetectionStrategy, Component } from '@angular/core';
3
3
  import { KcSanitizePipe } from '@keycloakify/angular/lib/pipes/kc-sanitize';
4
4
  import { USE_DEFAULT_CSS } from '@keycloakify/angular/lib/tokens/use-default-css';
5
5
  import { ComponentReference } from '@keycloakify/angular/login/classes/component-reference';
@@ -9,7 +9,7 @@ import { KC_LOGIN_CONTEXT } from '@keycloakify/angular/login/tokens/kc-context';
9
9
 
10
10
  class FrontchannelLogoutComponent extends ComponentReference {
11
11
  constructor() {
12
- super(...arguments);
12
+ super();
13
13
  this.kcContext = inject(KC_LOGIN_CONTEXT);
14
14
  this.i18n = inject(LOGIN_I18N);
15
15
  this.doUseDefaultCss = inject(USE_DEFAULT_CSS);
@@ -18,32 +18,41 @@ class FrontchannelLogoutComponent extends ComponentReference {
18
18
  this.displayRequiredFields = false;
19
19
  this.displayInfo = false;
20
20
  this.displayMessage = false;
21
- this.headerNode = viewChild('headerNode');
22
- this.infoNode = viewChild('infoNode');
23
- this.socialProvidersNode = viewChild('socialProvidersNode');
21
+ this.headerNode = viewChild('headerNode', ...(ngDevMode ? [{ debugName: "headerNode" }] : []));
22
+ this.infoNode = viewChild('infoNode', ...(ngDevMode ? [{ debugName: "infoNode" }] : []));
23
+ this.socialProvidersNode = viewChild('socialProvidersNode', ...(ngDevMode ? [{ debugName: "socialProvidersNode" }] : []));
24
+ this.iframeLoadCount = signal(0, ...(ngDevMode ? [{ debugName: "iframeLoadCount" }] : []));
25
+ effect(() => {
26
+ const logout = this.kcContext.logout;
27
+ if (!logout.logoutRedirectUri) {
28
+ return;
29
+ }
30
+ if (this.iframeLoadCount() !== logout.clients.length) {
31
+ return;
32
+ }
33
+ window.location.replace(logout.logoutRedirectUri);
34
+ });
24
35
  }
25
- ngOnInit() {
26
- if (this.kcContext.logout.logoutRedirectUri) {
27
- window.location.replace(this.kcContext.logout.logoutRedirectUri);
28
- }
36
+ onIframeLoaded() {
37
+ this.iframeLoadCount.update(count => count + 1);
29
38
  }
30
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: FrontchannelLogoutComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
31
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.3", type: FrontchannelLogoutComponent, isStandalone: true, selector: "kc-frontchannel-logout", providers: [
39
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: FrontchannelLogoutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
40
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.3", type: FrontchannelLogoutComponent, isStandalone: true, selector: "kc-frontchannel-logout", providers: [
32
41
  {
33
42
  provide: ComponentReference,
34
43
  useExisting: forwardRef(() => FrontchannelLogoutComponent)
35
44
  }
36
- ], viewQueries: [{ propertyName: "headerNode", first: true, predicate: ["headerNode"], descendants: true, isSignal: true }, { propertyName: "infoNode", first: true, predicate: ["infoNode"], descendants: true, isSignal: true }, { propertyName: "socialProvidersNode", first: true, predicate: ["socialProvidersNode"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "@let logout = kcContext.logout;\n\n<ng-template #headerNode>\n {{ i18n.msgStr('frontchannel-logout.title') }}\n</ng-template>\n<p>{{ i18n.msgStr('frontchannel-logout.message') }}</p>\n<ul>\n @for (client of logout.clients; track client.name; let idx = $index) {\n <li>\n {{ client.name }}\n <iframe\n style=\"display: none\"\n [src]=\"client.frontChannelLogoutUrl | kcSanitize: 'resourceUrl'\"\n ></iframe>\n </li>\n }\n</ul>\n@if (logout.logoutRedirectUri) {\n <a\n id=\"continue\"\n class=\"btn btn-primary\"\n [href]=\"logout.logoutRedirectUri\"\n >\n {{ i18n.msgStr('doContinue') }}\n </a>\n}\n", dependencies: [{ kind: "pipe", type: KcSanitizePipe, name: "kcSanitize" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
45
+ ], viewQueries: [{ propertyName: "headerNode", first: true, predicate: ["headerNode"], descendants: true, isSignal: true }, { propertyName: "infoNode", first: true, predicate: ["infoNode"], descendants: true, isSignal: true }, { propertyName: "socialProvidersNode", first: true, predicate: ["socialProvidersNode"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "@let logout = kcContext.logout;\n\n<ng-template #headerNode>\n {{ i18n.msgStr('frontchannel-logout.title') }}\n</ng-template>\n<p>{{ i18n.msgStr('frontchannel-logout.message') }}</p>\n<ul>\n @for (client of logout.clients; track client.name) {\n <li>\n {{ client.name }}\n <iframe\n style=\"display: none\"\n [src]=\"client.frontChannelLogoutUrl | kcSanitize: 'resourceUrl'\"\n (load)=\"onIframeLoaded()\"\n ></iframe>\n </li>\n }\n</ul>\n@if (logout.logoutRedirectUri !== undefined) {\n <a\n id=\"continue\"\n class=\"btn btn-primary\"\n [href]=\"logout.logoutRedirectUri\"\n >\n {{ i18n.msgStr('doContinue') }}\n </a>\n}\n", dependencies: [{ kind: "pipe", type: KcSanitizePipe, name: "kcSanitize" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
37
46
  }
38
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: FrontchannelLogoutComponent, decorators: [{
47
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: FrontchannelLogoutComponent, decorators: [{
39
48
  type: Component,
40
49
  args: [{ imports: [KcSanitizePipe], selector: 'kc-frontchannel-logout', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
41
50
  {
42
51
  provide: ComponentReference,
43
52
  useExisting: forwardRef(() => FrontchannelLogoutComponent)
44
53
  }
45
- ], template: "@let logout = kcContext.logout;\n\n<ng-template #headerNode>\n {{ i18n.msgStr('frontchannel-logout.title') }}\n</ng-template>\n<p>{{ i18n.msgStr('frontchannel-logout.message') }}</p>\n<ul>\n @for (client of logout.clients; track client.name; let idx = $index) {\n <li>\n {{ client.name }}\n <iframe\n style=\"display: none\"\n [src]=\"client.frontChannelLogoutUrl | kcSanitize: 'resourceUrl'\"\n ></iframe>\n </li>\n }\n</ul>\n@if (logout.logoutRedirectUri) {\n <a\n id=\"continue\"\n class=\"btn btn-primary\"\n [href]=\"logout.logoutRedirectUri\"\n >\n {{ i18n.msgStr('doContinue') }}\n </a>\n}\n" }]
46
- }] });
54
+ ], template: "@let logout = kcContext.logout;\n\n<ng-template #headerNode>\n {{ i18n.msgStr('frontchannel-logout.title') }}\n</ng-template>\n<p>{{ i18n.msgStr('frontchannel-logout.message') }}</p>\n<ul>\n @for (client of logout.clients; track client.name) {\n <li>\n {{ client.name }}\n <iframe\n style=\"display: none\"\n [src]=\"client.frontChannelLogoutUrl | kcSanitize: 'resourceUrl'\"\n (load)=\"onIframeLoaded()\"\n ></iframe>\n </li>\n }\n</ul>\n@if (logout.logoutRedirectUri !== undefined) {\n <a\n id=\"continue\"\n class=\"btn btn-primary\"\n [href]=\"logout.logoutRedirectUri\"\n >\n {{ i18n.msgStr('doContinue') }}\n </a>\n}\n" }]
55
+ }], ctorParameters: () => [] });
47
56
 
48
57
  /**
49
58
  * Generated bundle index. Do not edit.
@@ -1 +1 @@
1
- {"version":3,"file":"keycloakify-angular-login-pages-frontchannel-logout.mjs","sources":["../../src/login/pages/frontchannel-logout/frontchannel-logout.component.ts","../../src/login/pages/frontchannel-logout/frontchannel-logout.component.html","../../src/login/pages/frontchannel-logout/keycloakify-angular-login-pages-frontchannel-logout.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, forwardRef, inject, OnInit, type TemplateRef, viewChild } from '@angular/core';\nimport { KcSanitizePipe } from '@keycloakify/angular/lib/pipes/kc-sanitize';\nimport { USE_DEFAULT_CSS } from '@keycloakify/angular/lib/tokens/use-default-css';\nimport { ComponentReference } from '@keycloakify/angular/login/classes/component-reference';\nimport type { I18n } from '@keycloakify/angular/login/i18n';\nimport type { KcContext } from '@keycloakify/angular/login/KcContext';\nimport { LOGIN_CLASSES } from '@keycloakify/angular/login/tokens/classes';\nimport { LOGIN_I18N } from '@keycloakify/angular/login/tokens/i18n';\nimport { KC_LOGIN_CONTEXT } from '@keycloakify/angular/login/tokens/kc-context';\nimport type { ClassKey } from 'keycloakify/login/lib/kcClsx';\n\n@Component({\n imports: [KcSanitizePipe],\n selector: 'kc-frontchannel-logout',\n templateUrl: 'frontchannel-logout.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: ComponentReference,\n useExisting: forwardRef(() => FrontchannelLogoutComponent)\n }\n ]\n})\nexport class FrontchannelLogoutComponent extends ComponentReference implements OnInit {\n kcContext = inject<Extract<KcContext, { pageId: 'frontchannel-logout.ftl' }>>(KC_LOGIN_CONTEXT);\n i18n = inject<I18n>(LOGIN_I18N);\n\n override doUseDefaultCss = inject<boolean>(USE_DEFAULT_CSS);\n override classes = inject<Partial<Record<ClassKey, string>>>(LOGIN_CLASSES);\n\n documentTitle: string | undefined = this.i18n.msgStr('frontchannel-logout.title');\n bodyClassName: string | undefined;\n\n displayRequiredFields = false;\n displayInfo = false;\n displayMessage = false;\n\n headerNode = viewChild<TemplateRef<HTMLElement>>('headerNode');\n infoNode = viewChild<TemplateRef<HTMLElement>>('infoNode');\n socialProvidersNode = viewChild<TemplateRef<HTMLElement>>('socialProvidersNode');\n\n ngOnInit(): void {\n if (this.kcContext.logout.logoutRedirectUri) {\n window.location.replace(this.kcContext.logout.logoutRedirectUri);\n }\n }\n}\n","@let logout = kcContext.logout;\n\n<ng-template #headerNode>\n {{ i18n.msgStr('frontchannel-logout.title') }}\n</ng-template>\n<p>{{ i18n.msgStr('frontchannel-logout.message') }}</p>\n<ul>\n @for (client of logout.clients; track client.name; let idx = $index) {\n <li>\n {{ client.name }}\n <iframe\n style=\"display: none\"\n [src]=\"client.frontChannelLogoutUrl | kcSanitize: 'resourceUrl'\"\n ></iframe>\n </li>\n }\n</ul>\n@if (logout.logoutRedirectUri) {\n <a\n id=\"continue\"\n class=\"btn btn-primary\"\n [href]=\"logout.logoutRedirectUri\"\n >\n {{ i18n.msgStr('doContinue') }}\n </a>\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;AAuBM,MAAO,2BAA4B,SAAQ,kBAAkB,CAAA;AAZnE,IAAA,WAAA,GAAA;;AAaI,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAA4D,gBAAgB,CAAC;AAC/F,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAO,UAAU,CAAC;AAEtB,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAAU,eAAe,CAAC;AAClD,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAoC,aAAa,CAAC;QAE3E,IAAa,CAAA,aAAA,GAAuB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,2BAA2B,CAAC;QAGjF,IAAqB,CAAA,qBAAA,GAAG,KAAK;QAC7B,IAAW,CAAA,WAAA,GAAG,KAAK;QACnB,IAAc,CAAA,cAAA,GAAG,KAAK;AAEtB,QAAA,IAAA,CAAA,UAAU,GAAG,SAAS,CAA2B,YAAY,CAAC;AAC9D,QAAA,IAAA,CAAA,QAAQ,GAAG,SAAS,CAA2B,UAAU,CAAC;AAC1D,QAAA,IAAA,CAAA,mBAAmB,GAAG,SAAS,CAA2B,qBAAqB,CAAC;AAOnF;IALG,QAAQ,GAAA;QACJ,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,iBAAiB,EAAE;AACzC,YAAA,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,iBAAiB,CAAC;;;8GApB/D,2BAA2B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA3B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,2BAA2B,EAPzB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,SAAA,EAAA;AACP,YAAA;AACI,gBAAA,OAAO,EAAE,kBAAkB;AAC3B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,2BAA2B;AAC5D;SACJ,ECrBL,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,YAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,UAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,qBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,mtBA0BA,uCDdc,cAAc,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAWf,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAZvC,SAAS;8BACG,CAAC,cAAc,CAAC,EACf,QAAA,EAAA,wBAAwB,mBAEjB,uBAAuB,CAAC,MAAM,EACpC,SAAA,EAAA;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,kBAAkB;AAC3B,4BAAA,WAAW,EAAE,UAAU,CAAC,iCAAiC;AAC5D;AACJ,qBAAA,EAAA,QAAA,EAAA,mtBAAA,EAAA;;;AErBL;;AAEG;;;;"}
1
+ {"version":3,"file":"keycloakify-angular-login-pages-frontchannel-logout.mjs","sources":["../../src/login/pages/frontchannel-logout/frontchannel-logout.component.ts","../../src/login/pages/frontchannel-logout/frontchannel-logout.component.html","../../src/login/pages/frontchannel-logout/keycloakify-angular-login-pages-frontchannel-logout.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, forwardRef, inject, type TemplateRef, viewChild, signal, effect } from '@angular/core';\nimport { KcSanitizePipe } from '@keycloakify/angular/lib/pipes/kc-sanitize';\nimport { USE_DEFAULT_CSS } from '@keycloakify/angular/lib/tokens/use-default-css';\nimport { ComponentReference } from '@keycloakify/angular/login/classes/component-reference';\nimport type { I18n } from '@keycloakify/angular/login/i18n';\nimport type { KcContext } from '@keycloakify/angular/login/KcContext';\nimport { LOGIN_CLASSES } from '@keycloakify/angular/login/tokens/classes';\nimport { LOGIN_I18N } from '@keycloakify/angular/login/tokens/i18n';\nimport { KC_LOGIN_CONTEXT } from '@keycloakify/angular/login/tokens/kc-context';\nimport type { ClassKey } from 'keycloakify/login/lib/kcClsx';\n\n@Component({\n imports: [KcSanitizePipe],\n selector: 'kc-frontchannel-logout',\n templateUrl: 'frontchannel-logout.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: ComponentReference,\n useExisting: forwardRef(() => FrontchannelLogoutComponent)\n }\n ]\n})\nexport class FrontchannelLogoutComponent extends ComponentReference {\n kcContext = inject<Extract<KcContext, { pageId: 'frontchannel-logout.ftl' }>>(KC_LOGIN_CONTEXT);\n i18n = inject<I18n>(LOGIN_I18N);\n\n override doUseDefaultCss = inject<boolean>(USE_DEFAULT_CSS);\n override classes = inject<Partial<Record<ClassKey, string>>>(LOGIN_CLASSES);\n\n documentTitle: string | undefined = this.i18n.msgStr('frontchannel-logout.title');\n bodyClassName: string | undefined;\n\n displayRequiredFields = false;\n displayInfo = false;\n displayMessage = false;\n\n headerNode = viewChild<TemplateRef<HTMLElement>>('headerNode');\n infoNode = viewChild<TemplateRef<HTMLElement>>('infoNode');\n socialProvidersNode = viewChild<TemplateRef<HTMLElement>>('socialProvidersNode');\n\n readonly iframeLoadCount = signal(0);\n\n constructor() {\n super();\n effect(() => {\n const logout = this.kcContext.logout;\n if (!logout.logoutRedirectUri) {\n return;\n }\n if (this.iframeLoadCount() !== logout.clients.length) {\n return;\n }\n window.location.replace(logout.logoutRedirectUri);\n });\n }\n\n onIframeLoaded() {\n this.iframeLoadCount.update(count => count + 1);\n }\n}\n","@let logout = kcContext.logout;\n\n<ng-template #headerNode>\n {{ i18n.msgStr('frontchannel-logout.title') }}\n</ng-template>\n<p>{{ i18n.msgStr('frontchannel-logout.message') }}</p>\n<ul>\n @for (client of logout.clients; track client.name) {\n <li>\n {{ client.name }}\n <iframe\n style=\"display: none\"\n [src]=\"client.frontChannelLogoutUrl | kcSanitize: 'resourceUrl'\"\n (load)=\"onIframeLoaded()\"\n ></iframe>\n </li>\n }\n</ul>\n@if (logout.logoutRedirectUri !== undefined) {\n <a\n id=\"continue\"\n class=\"btn btn-primary\"\n [href]=\"logout.logoutRedirectUri\"\n >\n {{ i18n.msgStr('doContinue') }}\n </a>\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -22,25 +22,25 @@ class IdpReviewUserProfileComponent extends ComponentReference {
22
22
  this.displayRequiredFields = true;
23
23
  this.displayInfo = false;
24
24
  this.displayMessage = !this.kcContext?.messagesPerField?.existsError('global');
25
- this.headerNode = viewChild('headerNode');
26
- this.infoNode = viewChild('infoNode');
27
- this.socialProvidersNode = viewChild('socialProvidersNode');
28
- this.userProfileFormFields = input();
25
+ this.headerNode = viewChild('headerNode', ...(ngDevMode ? [{ debugName: "headerNode" }] : []));
26
+ this.infoNode = viewChild('infoNode', ...(ngDevMode ? [{ debugName: "infoNode" }] : []));
27
+ this.socialProvidersNode = viewChild('socialProvidersNode', ...(ngDevMode ? [{ debugName: "socialProvidersNode" }] : []));
28
+ this.userProfileFormFields = input(...(ngDevMode ? [undefined, { debugName: "userProfileFormFields" }] : []));
29
29
  this.isFormSubmittable = toSignal(this.#userProfileFormService.formState$.pipe(map(s => s.isFormSubmittable)), { initialValue: false });
30
30
  }
31
31
  #userProfileFormService;
32
32
  onCallback() {
33
- document.getElementById('kc-register-form').submit();
33
+ document.getElementById('kc-register-form').requestSubmit();
34
34
  }
35
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: IdpReviewUserProfileComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
36
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.0.3", type: IdpReviewUserProfileComponent, isStandalone: true, selector: "kc-idp-review-user-profile", inputs: { userProfileFormFields: { classPropertyName: "userProfileFormFields", publicName: "userProfileFormFields", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
35
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: IdpReviewUserProfileComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
36
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.1.3", type: IdpReviewUserProfileComponent, isStandalone: true, selector: "kc-idp-review-user-profile", inputs: { userProfileFormFields: { classPropertyName: "userProfileFormFields", publicName: "userProfileFormFields", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
37
37
  {
38
38
  provide: ComponentReference,
39
39
  useExisting: forwardRef(() => IdpReviewUserProfileComponent)
40
40
  }
41
- ], viewQueries: [{ propertyName: "headerNode", first: true, predicate: ["headerNode"], descendants: true, isSignal: true }, { propertyName: "infoNode", first: true, predicate: ["infoNode"], descendants: true, isSignal: true }, { propertyName: "socialProvidersNode", first: true, predicate: ["socialProvidersNode"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "@let url = kcContext.url;\n\n<ng-template #headerNode>\n {{ i18n.msgStr('loginIdpReviewProfileTitle') }}\n</ng-template>\n<form\n id=\"kc-idp-review-profile-form\"\n method=\"post\"\n [kcClass]=\"'kcFormClass'\"\n [action]=\"url.loginAction\"\n>\n <ng-container [ngComponentOutlet]=\"userProfileFormFields() ?? null\" />\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div\n id=\"kc-form-options\"\n [kcClass]=\"'kcFormOptionsClass'\"\n >\n <div [kcClass]=\"'kcFormOptionsWrapperClass'\"></div>\n </div>\n <div\n id=\"kc-form-buttons\"\n [kcClass]=\"'kcFormButtonsClass'\"\n >\n <input\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doSubmit')\"\n [disabled]=\"!isFormSubmittable()\"\n />\n </div>\n </div>\n</form>\n", dependencies: [{ kind: "directive", type: KcClassDirective, selector: "[kcClass]", inputs: ["class", "ngClass", "kcClass"] }, { kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"], exportAs: ["ngComponentOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
41
+ ], viewQueries: [{ propertyName: "headerNode", first: true, predicate: ["headerNode"], descendants: true, isSignal: true }, { propertyName: "infoNode", first: true, predicate: ["infoNode"], descendants: true, isSignal: true }, { propertyName: "socialProvidersNode", first: true, predicate: ["socialProvidersNode"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "@let url = kcContext.url;\n\n<ng-template #headerNode>\n {{ i18n.msgStr('loginIdpReviewProfileTitle') }}\n</ng-template>\n<form\n id=\"kc-idp-review-profile-form\"\n method=\"post\"\n [kcClass]=\"'kcFormClass'\"\n [action]=\"url.loginAction\"\n>\n <ng-container [ngComponentOutlet]=\"userProfileFormFields() ?? null\" />\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div\n id=\"kc-form-options\"\n [kcClass]=\"'kcFormOptionsClass'\"\n >\n <div [kcClass]=\"'kcFormOptionsWrapperClass'\"></div>\n </div>\n <div\n id=\"kc-form-buttons\"\n [kcClass]=\"'kcFormButtonsClass'\"\n >\n <input\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doSubmit')\"\n [disabled]=\"!isFormSubmittable()\"\n />\n </div>\n </div>\n</form>\n", dependencies: [{ kind: "directive", type: KcClassDirective, selector: "[kcClass]", inputs: ["class", "ngClass", "kcClass"] }, { kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletEnvironmentInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"], exportAs: ["ngComponentOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
42
42
  }
43
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: IdpReviewUserProfileComponent, decorators: [{
43
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: IdpReviewUserProfileComponent, decorators: [{
44
44
  type: Component,
45
45
  args: [{ imports: [KcClassDirective, NgComponentOutlet], selector: 'kc-idp-review-user-profile', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
46
46
  {
@@ -1 +1 @@
1
- {"version":3,"file":"keycloakify-angular-login-pages-idp-review-user-profile.mjs","sources":["../../src/login/pages/idp-review-user-profile/idp-review-user-profile.component.ts","../../src/login/pages/idp-review-user-profile/idp-review-user-profile.component.html","../../src/login/pages/idp-review-user-profile/keycloakify-angular-login-pages-idp-review-user-profile.ts"],"sourcesContent":["import { NgComponentOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, forwardRef, inject, input, type TemplateRef, Type, viewChild } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { USE_DEFAULT_CSS } from '@keycloakify/angular/lib/tokens/use-default-css';\nimport { ComponentReference } from '@keycloakify/angular/login/classes/component-reference';\nimport type { UserProfileFormFieldsComponent } from '@keycloakify/angular/login/components/user-profile-form-fields';\nimport { KcClassDirective } from '@keycloakify/angular/login/directives/kc-class';\nimport type { I18n } from '@keycloakify/angular/login/i18n';\nimport type { KcContext } from '@keycloakify/angular/login/KcContext';\nimport { UserProfileFormService } from '@keycloakify/angular/login/services/user-profile-form';\nimport { LOGIN_CLASSES } from '@keycloakify/angular/login/tokens/classes';\nimport { LOGIN_I18N } from '@keycloakify/angular/login/tokens/i18n';\nimport { KC_LOGIN_CONTEXT } from '@keycloakify/angular/login/tokens/kc-context';\nimport type { ClassKey } from 'keycloakify/login/lib/kcClsx';\nimport { map } from 'rxjs';\n\n@Component({\n imports: [KcClassDirective, NgComponentOutlet],\n selector: 'kc-idp-review-user-profile',\n templateUrl: 'idp-review-user-profile.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: ComponentReference,\n useExisting: forwardRef(() => IdpReviewUserProfileComponent)\n }\n ]\n})\nexport class IdpReviewUserProfileComponent extends ComponentReference {\n kcContext = inject<Extract<KcContext, { pageId: 'idp-review-user-profile.ftl' }>>(KC_LOGIN_CONTEXT);\n i18n = inject<I18n>(LOGIN_I18N);\n #userProfileFormService = inject(UserProfileFormService);\n override doUseDefaultCss = inject<boolean>(USE_DEFAULT_CSS);\n override classes = inject<Partial<Record<ClassKey, string>>>(LOGIN_CLASSES);\n\n documentTitle: string | undefined;\n bodyClassName: string | undefined;\n\n displayRequiredFields = true;\n displayInfo = false;\n displayMessage = !this.kcContext?.messagesPerField?.existsError('global');\n\n headerNode = viewChild<TemplateRef<HTMLElement>>('headerNode');\n infoNode = viewChild<TemplateRef<HTMLElement>>('infoNode');\n socialProvidersNode = viewChild<TemplateRef<HTMLElement>>('socialProvidersNode');\n\n userProfileFormFields = input<Type<UserProfileFormFieldsComponent>>();\n isFormSubmittable = toSignal(this.#userProfileFormService.formState$.pipe(map(s => s.isFormSubmittable)), { initialValue: false });\n\n onCallback() {\n (document.getElementById('kc-register-form') as HTMLFormElement).submit();\n }\n}\n","@let url = kcContext.url;\n\n<ng-template #headerNode>\n {{ i18n.msgStr('loginIdpReviewProfileTitle') }}\n</ng-template>\n<form\n id=\"kc-idp-review-profile-form\"\n method=\"post\"\n [kcClass]=\"'kcFormClass'\"\n [action]=\"url.loginAction\"\n>\n <ng-container [ngComponentOutlet]=\"userProfileFormFields() ?? null\" />\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div\n id=\"kc-form-options\"\n [kcClass]=\"'kcFormOptionsClass'\"\n >\n <div [kcClass]=\"'kcFormOptionsWrapperClass'\"></div>\n </div>\n <div\n id=\"kc-form-buttons\"\n [kcClass]=\"'kcFormButtonsClass'\"\n >\n <input\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doSubmit')\"\n [disabled]=\"!isFormSubmittable()\"\n />\n </div>\n </div>\n</form>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;AA4BM,MAAO,6BAA8B,SAAQ,kBAAkB,CAAA;AAZrE,IAAA,WAAA,GAAA;;AAaI,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAgE,gBAAgB,CAAC;AACnG,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAO,UAAU,CAAC;AAC/B,QAAA,IAAA,CAAA,uBAAuB,GAAG,MAAM,CAAC,sBAAsB,CAAC;AAC/C,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAAU,eAAe,CAAC;AAClD,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAoC,aAAa,CAAC;QAK3E,IAAqB,CAAA,qBAAA,GAAG,IAAI;QAC5B,IAAW,CAAA,WAAA,GAAG,KAAK;AACnB,QAAA,IAAA,CAAA,cAAc,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,gBAAgB,EAAE,WAAW,CAAC,QAAQ,CAAC;AAEzE,QAAA,IAAA,CAAA,UAAU,GAAG,SAAS,CAA2B,YAAY,CAAC;AAC9D,QAAA,IAAA,CAAA,QAAQ,GAAG,SAAS,CAA2B,UAAU,CAAC;AAC1D,QAAA,IAAA,CAAA,mBAAmB,GAAG,SAAS,CAA2B,qBAAqB,CAAC;QAEhF,IAAqB,CAAA,qBAAA,GAAG,KAAK,EAAwC;AACrE,QAAA,IAAA,CAAA,iBAAiB,GAAG,QAAQ,CAAC,IAAI,CAAC,uBAAuB,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,iBAAiB,CAAC,CAAC,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC;AAKrI;AArBG,IAAA,uBAAuB;IAkBvB,UAAU,GAAA;QACL,QAAQ,CAAC,cAAc,CAAC,kBAAkB,CAAqB,CAAC,MAAM,EAAE;;8GAtBpE,6BAA6B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA7B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,6BAA6B,EAP3B,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,EAAA,qBAAA,EAAA,EAAA,iBAAA,EAAA,uBAAA,EAAA,UAAA,EAAA,uBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,SAAA,EAAA;AACP,YAAA;AACI,gBAAA,OAAO,EAAE,kBAAkB;AAC3B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,6BAA6B;AAC9D;AACJ,SAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,YAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,UAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,qBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC1BL,w/BAgCA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDfc,gBAAgB,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,iBAAiB,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,EAAA,yBAAA,EAAA,2BAAA,EAAA,0BAAA,EAAA,2BAAA,EAAA,kCAAA,CAAA,EAAA,QAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAWpC,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBAZzC,SAAS;8BACG,CAAC,gBAAgB,EAAE,iBAAiB,CAAC,EAAA,QAAA,EACpC,4BAA4B,EAErB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACpC,SAAA,EAAA;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,kBAAkB;AAC3B,4BAAA,WAAW,EAAE,UAAU,CAAC,mCAAmC;AAC9D;AACJ,qBAAA,EAAA,QAAA,EAAA,w/BAAA,EAAA;;;AE1BL;;AAEG;;;;"}
1
+ {"version":3,"file":"keycloakify-angular-login-pages-idp-review-user-profile.mjs","sources":["../../src/login/pages/idp-review-user-profile/idp-review-user-profile.component.ts","../../src/login/pages/idp-review-user-profile/idp-review-user-profile.component.html","../../src/login/pages/idp-review-user-profile/keycloakify-angular-login-pages-idp-review-user-profile.ts"],"sourcesContent":["import { NgComponentOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, forwardRef, inject, input, type TemplateRef, Type, viewChild } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { USE_DEFAULT_CSS } from '@keycloakify/angular/lib/tokens/use-default-css';\nimport { ComponentReference } from '@keycloakify/angular/login/classes/component-reference';\nimport type { UserProfileFormFieldsComponent } from '@keycloakify/angular/login/components/user-profile-form-fields';\nimport { KcClassDirective } from '@keycloakify/angular/login/directives/kc-class';\nimport type { I18n } from '@keycloakify/angular/login/i18n';\nimport type { KcContext } from '@keycloakify/angular/login/KcContext';\nimport { UserProfileFormService } from '@keycloakify/angular/login/services/user-profile-form';\nimport { LOGIN_CLASSES } from '@keycloakify/angular/login/tokens/classes';\nimport { LOGIN_I18N } from '@keycloakify/angular/login/tokens/i18n';\nimport { KC_LOGIN_CONTEXT } from '@keycloakify/angular/login/tokens/kc-context';\nimport type { ClassKey } from 'keycloakify/login/lib/kcClsx';\nimport { map } from 'rxjs';\n\n@Component({\n imports: [KcClassDirective, NgComponentOutlet],\n selector: 'kc-idp-review-user-profile',\n templateUrl: 'idp-review-user-profile.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: ComponentReference,\n useExisting: forwardRef(() => IdpReviewUserProfileComponent)\n }\n ]\n})\nexport class IdpReviewUserProfileComponent extends ComponentReference {\n kcContext = inject<Extract<KcContext, { pageId: 'idp-review-user-profile.ftl' }>>(KC_LOGIN_CONTEXT);\n i18n = inject<I18n>(LOGIN_I18N);\n #userProfileFormService = inject(UserProfileFormService);\n override doUseDefaultCss = inject<boolean>(USE_DEFAULT_CSS);\n override classes = inject<Partial<Record<ClassKey, string>>>(LOGIN_CLASSES);\n\n documentTitle: string | undefined;\n bodyClassName: string | undefined;\n\n displayRequiredFields = true;\n displayInfo = false;\n displayMessage = !this.kcContext?.messagesPerField?.existsError('global');\n\n headerNode = viewChild<TemplateRef<HTMLElement>>('headerNode');\n infoNode = viewChild<TemplateRef<HTMLElement>>('infoNode');\n socialProvidersNode = viewChild<TemplateRef<HTMLElement>>('socialProvidersNode');\n\n userProfileFormFields = input<Type<UserProfileFormFieldsComponent>>();\n isFormSubmittable = toSignal(this.#userProfileFormService.formState$.pipe(map(s => s.isFormSubmittable)), { initialValue: false });\n\n onCallback() {\n (document.getElementById('kc-register-form') as HTMLFormElement).requestSubmit();\n }\n}\n","@let url = kcContext.url;\n\n<ng-template #headerNode>\n {{ i18n.msgStr('loginIdpReviewProfileTitle') }}\n</ng-template>\n<form\n id=\"kc-idp-review-profile-form\"\n method=\"post\"\n [kcClass]=\"'kcFormClass'\"\n [action]=\"url.loginAction\"\n>\n <ng-container [ngComponentOutlet]=\"userProfileFormFields() ?? null\" />\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div\n id=\"kc-form-options\"\n [kcClass]=\"'kcFormOptionsClass'\"\n >\n <div [kcClass]=\"'kcFormOptionsWrapperClass'\"></div>\n </div>\n <div\n id=\"kc-form-buttons\"\n [kcClass]=\"'kcFormButtonsClass'\"\n >\n <input\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doSubmit')\"\n [disabled]=\"!isFormSubmittable()\"\n />\n </div>\n </div>\n</form>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -17,9 +17,9 @@ class InfoComponent extends ComponentReference {
17
17
  this.displayRequiredFields = false;
18
18
  this.displayInfo = false;
19
19
  this.displayMessage = false;
20
- this.headerNode = viewChild('headerNode');
21
- this.infoNode = viewChild('infoNode');
22
- this.socialProvidersNode = viewChild('socialProvidersNode');
20
+ this.headerNode = viewChild('headerNode', ...(ngDevMode ? [{ debugName: "headerNode" }] : []));
21
+ this.infoNode = viewChild('infoNode', ...(ngDevMode ? [{ debugName: "infoNode" }] : []));
22
+ this.socialProvidersNode = viewChild('socialProvidersNode', ...(ngDevMode ? [{ debugName: "socialProvidersNode" }] : []));
23
23
  }
24
24
  get infoMessage() {
25
25
  let html = this.kcContext.message.summary;
@@ -30,15 +30,15 @@ class InfoComponent extends ComponentReference {
30
30
  }
31
31
  return html;
32
32
  }
33
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: InfoComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
34
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.3", type: InfoComponent, isStandalone: true, selector: "kc-info", providers: [
33
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: InfoComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
34
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.3", type: InfoComponent, isStandalone: true, selector: "kc-info", providers: [
35
35
  {
36
36
  provide: ComponentReference,
37
37
  useExisting: forwardRef(() => InfoComponent)
38
38
  }
39
39
  ], viewQueries: [{ propertyName: "headerNode", first: true, predicate: ["headerNode"], descendants: true, isSignal: true }, { propertyName: "infoNode", first: true, predicate: ["infoNode"], descendants: true, isSignal: true }, { propertyName: "socialProvidersNode", first: true, predicate: ["socialProvidersNode"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "@let skipLink = kcContext.skipLink;\n@let actionUri = kcContext.actionUri;\n@let pageRedirectUri = kcContext.pageRedirectUri;\n@let client = kcContext.client;\n\n<ng-template #headerNode>\n @let messageHeader = kcContext.messageHeader;\n @let message = kcContext.message;\n <span [innerHTML]=\"messageHeader ?? i18n.advancedMsgStr(message.summary) | kcSanitize: 'html'\"> </span>\n</ng-template>\n<div id=\"kc-info-message\">\n <p\n class=\"instruction\"\n [innerHTML]=\"infoMessage | kcSanitize: 'html'\"\n ></p>\n @if (!skipLink) {\n @if (pageRedirectUri) {\n <p>\n <a\n [href]=\"pageRedirectUri\"\n [innerHTML]=\"i18n.msgStr('backToApplication') | kcSanitize: 'html'\"\n >\n </a>\n </p>\n } @else if (actionUri) {\n <p>\n <a\n [href]=\"actionUri\"\n [innerHTML]=\"i18n.msgStr('proceedWithAction') | kcSanitize: 'html'\"\n >\n </a>\n </p>\n } @else if (client.baseUrl) {\n <p>\n <a\n [href]=\"client.baseUrl\"\n [innerHTML]=\"i18n.msgStr('backToApplication') | kcSanitize: 'html'\"\n >\n </a>\n </p>\n }\n }\n</div>\n", dependencies: [{ kind: "pipe", type: KcSanitizePipe, name: "kcSanitize" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
40
40
  }
41
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: InfoComponent, decorators: [{
41
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: InfoComponent, decorators: [{
42
42
  type: Component,
43
43
  args: [{ imports: [KcSanitizePipe], selector: 'kc-info', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
44
44
  {
@@ -1 +1 @@
1
- {"version":3,"file":"keycloakify-angular-login-pages-info.mjs","sources":["../../src/login/pages/info/info.component.ts","../../src/login/pages/info/info.component.html","../../src/login/pages/info/keycloakify-angular-login-pages-info.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, forwardRef, inject, type TemplateRef, viewChild } from '@angular/core';\nimport { KcSanitizePipe } from '@keycloakify/angular/lib/pipes/kc-sanitize';\nimport { USE_DEFAULT_CSS } from '@keycloakify/angular/lib/tokens/use-default-css';\nimport { ComponentReference } from '@keycloakify/angular/login/classes/component-reference';\nimport type { I18n } from '@keycloakify/angular/login/i18n';\nimport type { KcContext } from '@keycloakify/angular/login/KcContext';\nimport { LOGIN_CLASSES } from '@keycloakify/angular/login/tokens/classes';\nimport { LOGIN_I18N } from '@keycloakify/angular/login/tokens/i18n';\nimport { KC_LOGIN_CONTEXT } from '@keycloakify/angular/login/tokens/kc-context';\nimport type { ClassKey } from 'keycloakify/login/lib/kcClsx';\n\n@Component({\n imports: [KcSanitizePipe],\n selector: 'kc-info',\n templateUrl: 'info.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: ComponentReference,\n useExisting: forwardRef(() => InfoComponent)\n }\n ]\n})\nexport class InfoComponent extends ComponentReference {\n kcContext = inject<Extract<KcContext, { pageId: 'info.ftl' }>>(KC_LOGIN_CONTEXT);\n i18n = inject<I18n>(LOGIN_I18N);\n\n override doUseDefaultCss = inject<boolean>(USE_DEFAULT_CSS);\n override classes = inject<Partial<Record<ClassKey, string>>>(LOGIN_CLASSES);\n\n documentTitle: string | undefined;\n bodyClassName: string | undefined;\n\n displayRequiredFields = false;\n displayInfo = false;\n displayMessage = false;\n\n headerNode = viewChild<TemplateRef<HTMLElement>>('headerNode');\n infoNode = viewChild<TemplateRef<HTMLElement>>('infoNode');\n socialProvidersNode = viewChild<TemplateRef<HTMLElement>>('socialProvidersNode');\n\n get infoMessage() {\n let html = this.kcContext.message.summary;\n if (this.kcContext.requiredActions) {\n html += '<b>';\n\n html += this.kcContext.requiredActions.map(requiredAction => this.i18n.advancedMsgStr(`requiredAction.${requiredAction}`)).join(', ');\n\n html += '</b>';\n }\n return html;\n }\n}\n","@let skipLink = kcContext.skipLink;\n@let actionUri = kcContext.actionUri;\n@let pageRedirectUri = kcContext.pageRedirectUri;\n@let client = kcContext.client;\n\n<ng-template #headerNode>\n @let messageHeader = kcContext.messageHeader;\n @let message = kcContext.message;\n <span [innerHTML]=\"messageHeader ?? i18n.advancedMsgStr(message.summary) | kcSanitize: 'html'\"> </span>\n</ng-template>\n<div id=\"kc-info-message\">\n <p\n class=\"instruction\"\n [innerHTML]=\"infoMessage | kcSanitize: 'html'\"\n ></p>\n @if (!skipLink) {\n @if (pageRedirectUri) {\n <p>\n <a\n [href]=\"pageRedirectUri\"\n [innerHTML]=\"i18n.msgStr('backToApplication') | kcSanitize: 'html'\"\n >\n </a>\n </p>\n } @else if (actionUri) {\n <p>\n <a\n [href]=\"actionUri\"\n [innerHTML]=\"i18n.msgStr('proceedWithAction') | kcSanitize: 'html'\"\n >\n </a>\n </p>\n } @else if (client.baseUrl) {\n <p>\n <a\n [href]=\"client.baseUrl\"\n [innerHTML]=\"i18n.msgStr('backToApplication') | kcSanitize: 'html'\"\n >\n </a>\n </p>\n }\n }\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"keycloakify-angular-login-pages-info.mjs","sources":["../../src/login/pages/info/info.component.ts","../../src/login/pages/info/info.component.html","../../src/login/pages/info/keycloakify-angular-login-pages-info.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, forwardRef, inject, type TemplateRef, viewChild } from '@angular/core';\nimport { KcSanitizePipe } from '@keycloakify/angular/lib/pipes/kc-sanitize';\nimport { USE_DEFAULT_CSS } from '@keycloakify/angular/lib/tokens/use-default-css';\nimport { ComponentReference } from '@keycloakify/angular/login/classes/component-reference';\nimport type { I18n } from '@keycloakify/angular/login/i18n';\nimport type { KcContext } from '@keycloakify/angular/login/KcContext';\nimport { LOGIN_CLASSES } from '@keycloakify/angular/login/tokens/classes';\nimport { LOGIN_I18N } from '@keycloakify/angular/login/tokens/i18n';\nimport { KC_LOGIN_CONTEXT } from '@keycloakify/angular/login/tokens/kc-context';\nimport type { ClassKey } from 'keycloakify/login/lib/kcClsx';\n\n@Component({\n imports: [KcSanitizePipe],\n selector: 'kc-info',\n templateUrl: 'info.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: ComponentReference,\n useExisting: forwardRef(() => InfoComponent)\n }\n ]\n})\nexport class InfoComponent extends ComponentReference {\n kcContext = inject<Extract<KcContext, { pageId: 'info.ftl' }>>(KC_LOGIN_CONTEXT);\n i18n = inject<I18n>(LOGIN_I18N);\n\n override doUseDefaultCss = inject<boolean>(USE_DEFAULT_CSS);\n override classes = inject<Partial<Record<ClassKey, string>>>(LOGIN_CLASSES);\n\n documentTitle: string | undefined;\n bodyClassName: string | undefined;\n\n displayRequiredFields = false;\n displayInfo = false;\n displayMessage = false;\n\n headerNode = viewChild<TemplateRef<HTMLElement>>('headerNode');\n infoNode = viewChild<TemplateRef<HTMLElement>>('infoNode');\n socialProvidersNode = viewChild<TemplateRef<HTMLElement>>('socialProvidersNode');\n\n get infoMessage() {\n let html = this.kcContext.message.summary;\n if (this.kcContext.requiredActions) {\n html += '<b>';\n\n html += this.kcContext.requiredActions.map(requiredAction => this.i18n.advancedMsgStr(`requiredAction.${requiredAction}`)).join(', ');\n\n html += '</b>';\n }\n return html;\n }\n}\n","@let skipLink = kcContext.skipLink;\n@let actionUri = kcContext.actionUri;\n@let pageRedirectUri = kcContext.pageRedirectUri;\n@let client = kcContext.client;\n\n<ng-template #headerNode>\n @let messageHeader = kcContext.messageHeader;\n @let message = kcContext.message;\n <span [innerHTML]=\"messageHeader ?? i18n.advancedMsgStr(message.summary) | kcSanitize: 'html'\"> </span>\n</ng-template>\n<div id=\"kc-info-message\">\n <p\n class=\"instruction\"\n [innerHTML]=\"infoMessage | kcSanitize: 'html'\"\n ></p>\n @if (!skipLink) {\n @if (pageRedirectUri) {\n <p>\n <a\n [href]=\"pageRedirectUri\"\n [innerHTML]=\"i18n.msgStr('backToApplication') | kcSanitize: 'html'\"\n >\n </a>\n </p>\n } @else if (actionUri) {\n <p>\n <a\n [href]=\"actionUri\"\n [innerHTML]=\"i18n.msgStr('proceedWithAction') | kcSanitize: 'html'\"\n >\n </a>\n </p>\n } @else if (client.baseUrl) {\n <p>\n <a\n [href]=\"client.baseUrl\"\n [innerHTML]=\"i18n.msgStr('backToApplication') | kcSanitize: 'html'\"\n >\n </a>\n </p>\n }\n }\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -19,19 +19,19 @@ class LoginConfigTotpComponent extends ComponentReference {
19
19
  this.displayRequiredFields = false;
20
20
  this.displayInfo = false;
21
21
  this.displayMessage = !this.kcContext.messagesPerField.existsError('totp', 'userLabel');
22
- this.headerNode = viewChild('headerNode');
23
- this.infoNode = viewChild('infoNode');
24
- this.socialProvidersNode = viewChild('socialProvidersNode');
22
+ this.headerNode = viewChild('headerNode', ...(ngDevMode ? [{ debugName: "headerNode" }] : []));
23
+ this.infoNode = viewChild('infoNode', ...(ngDevMode ? [{ debugName: "infoNode" }] : []));
24
+ this.socialProvidersNode = viewChild('socialProvidersNode', ...(ngDevMode ? [{ debugName: "socialProvidersNode" }] : []));
25
25
  }
26
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: LoginConfigTotpComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
27
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.3", type: LoginConfigTotpComponent, isStandalone: true, selector: "kc-login-config-totp", providers: [
26
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: LoginConfigTotpComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
27
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.3", type: LoginConfigTotpComponent, isStandalone: true, selector: "kc-login-config-totp", providers: [
28
28
  {
29
29
  provide: ComponentReference,
30
30
  useExisting: forwardRef(() => LoginConfigTotpComponent)
31
31
  }
32
- ], viewQueries: [{ propertyName: "headerNode", first: true, predicate: ["headerNode"], descendants: true, isSignal: true }, { propertyName: "infoNode", first: true, predicate: ["infoNode"], descendants: true, isSignal: true }, { propertyName: "socialProvidersNode", first: true, predicate: ["socialProvidersNode"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "@let totp = kcContext.totp;\n@let url = kcContext.url;\n@let messagesPerField = kcContext.messagesPerField;\n@let mode = kcContext.mode;\n@let isAppInitiatedAction = kcContext.isAppInitiatedAction;\n\n<ng-template #headerNode>\n {{ i18n.msgStr('loginTotpStep1') }}\n</ng-template>\n<ol id=\"kc-totp-settings\">\n <li>\n <p>{{ i18n.msgStr('loginTotpStep1') }}</p>\n <ul id=\"kc-totp-supported-apps\">\n @for (app of totp.supportedApplications; track app) {\n <li>{{ i18n.advancedMsgStr(app) }}</li>\n }\n </ul>\n </li>\n @if (kcContext.mode === 'manual') {\n <li>\n <p>{{ i18n.msgStr('loginTotpManualStep2') }}</p>\n <p>\n <span id=\"kc-totp-secret-key\">{{ totp.totpSecretEncoded }}</span>\n </p>\n <p>\n <a\n id=\"mode-barcode\"\n [href]=\"totp.qrUrl\"\n >\n {{ i18n.msgStr('loginTotpScanBarcode') }}\n </a>\n </p>\n </li>\n <li>\n <p>{{ i18n.msgStr('loginTotpManualStep3') }}</p>\n <p></p>\n <ul>\n <li id=\"kc-totp-type\">\n {{ i18n.msgStr('loginTotpType') }}:\n {{ i18n.advancedMsgStr('loginTotp.' + totp.policy.type) }}\n </li>\n <li id=\"kc-totp-algorithm\">\n {{ i18n.msgStr('loginTotpAlgorithm') }}:\n {{ totp.policy.getAlgorithmKey() }}\n </li>\n <li id=\"kc-totp-digits\">{{ i18n.msgStr('loginTotpDigits') }}: {{ totp.policy.digits }}</li>\n @if (totp.policy.type === 'totp') {\n <li id=\"kc-totp-period\">\n {{ i18n.msgStr('loginTotpInterval') }}:\n {{ totp.policy.period }}\n </li>\n } @else {\n <li id=\"kc-totp-counter\">\n {{ i18n.msgStr('loginTotpCounter') }}:\n {{ totp.policy.initialCounter }}\n </li>\n }\n </ul>\n </li>\n } @else {\n <li>\n <p>{{ i18n.msgStr('loginTotpStep2') }}</p>\n <img\n id=\"kc-totp-secret-qr-code\"\n alt=\"Figure: Barcode\"\n [src]=\"'data:image/png;base64, ' + totp.totpSecretQrCode\"\n />\n <br />\n <p>\n <a\n id=\"mode-manual\"\n [href]=\"totp.manualUrl\"\n >\n {{ i18n.msgStr('loginTotpUnableToScan') }}\n </a>\n </p>\n </li>\n }\n <li>\n <p>{{ i18n.msgStr('loginTotpStep3') }}</p>\n <p>{{ i18n.msgStr('loginTotpStep3DeviceName') }}</p>\n </li>\n</ol>\n<form\n id=\"kc-totp-settings-form\"\n method=\"post\"\n [action]=\"url.loginAction\"\n [kcClass]=\"'kcFormClass'\"\n>\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div [kcClass]=\"'kcInputWrapperClass'\">\n <label\n for=\"totp\"\n [kcClass]=\"'kcLabelClass'\"\n >\n {{ i18n.msgStr('authenticatorCode') }}\n </label>\n <span class=\"required\">*</span>\n </div>\n <div [kcClass]=\"'kcInputWrapperClass'\">\n <input\n type=\"text\"\n id=\"totp\"\n name=\"totp\"\n autoComplete=\"off\"\n [kcClass]=\"'kcInputClass'\"\n [attr.aria-invalid]=\"messagesPerField.existsError('totp')\"\n />\n @if (messagesPerField.existsError('totp')) {\n <span\n id=\"input-error-otp-code\"\n aria-live=\"polite\"\n [kcClass]=\"'kcInputErrorMessageClass'\"\n [innerHTML]=\"messagesPerField.get('totp') | kcSanitize: 'html'\"\n ></span>\n }\n </div>\n <input\n type=\"hidden\"\n id=\"totpSecret\"\n name=\"totpSecret\"\n [value]=\"totp.totpSecret\"\n />\n @if (mode) {\n <input\n type=\"hidden\"\n id=\"mode\"\n [value]=\"mode\"\n />\n }\n </div>\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div [kcClass]=\"'kcInputWrapperClass'\">\n <label\n for=\"userLabel\"\n [kcClass]=\"'kcLabelClass'\"\n >\n {{ i18n.msgStr('loginTotpDeviceName') }}\n </label>\n @if (totp.otpCredentials.length >= 1) {\n <span class=\"required\">*</span>\n }\n </div>\n <div [kcClass]=\"'kcInputWrapperClass'\">\n <input\n type=\"text\"\n id=\"userLabel\"\n name=\"userLabel\"\n autoComplete=\"off\"\n [kcClass]=\"'kcInputClass'\"\n [attr.aria-invalid]=\"messagesPerField.existsError('userLabel')\"\n />\n @if (messagesPerField.existsError('userLabel')) {\n <span\n id=\"input-error-otp-label\"\n aria-live=\"polite\"\n [kcClass]=\"'kcInputErrorMessageClass'\"\n [innerHTML]=\"messagesPerField.get('userLabel') | kcSanitize: 'html'\"\n ></span>\n }\n </div>\n </div>\n <div [kcClass]=\"'kcFormGroupClass'\">\n <kc-logout-other-sessions />\n </div>\n\n @if (isAppInitiatedAction) {\n <input\n type=\"submit\"\n id=\"saveTOTPBtn\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doSubmit')\"\n />\n <button\n type=\"submit\"\n id=\"cancelTOTPBtn\"\n name=\"cancel-aia\"\n [kcClass]=\"['kcButtonClass', 'kcButtonDefaultClass', 'kcButtonLargeClass', 'kcButtonLargeClass']\"\n [value]=\"true\"\n >\n {{ i18n.msgStr('doCancel') }}\n </button>\n } @else {\n <input\n type=\"submit\"\n id=\"saveTOTPBtn\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doSubmit')\"\n />\n }\n</form>\n", dependencies: [{ kind: "directive", type: KcClassDirective, selector: "[kcClass]", inputs: ["class", "ngClass", "kcClass"] }, { kind: "pipe", type: KcSanitizePipe, name: "kcSanitize" }, { kind: "component", type: LogoutOtherSessionsComponent, selector: "kc-logout-other-sessions" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
32
+ ], viewQueries: [{ propertyName: "headerNode", first: true, predicate: ["headerNode"], descendants: true, isSignal: true }, { propertyName: "infoNode", first: true, predicate: ["infoNode"], descendants: true, isSignal: true }, { propertyName: "socialProvidersNode", first: true, predicate: ["socialProvidersNode"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "@let totp = kcContext.totp;\n@let url = kcContext.url;\n@let messagesPerField = kcContext.messagesPerField;\n@let mode = kcContext.mode;\n@let isAppInitiatedAction = kcContext.isAppInitiatedAction;\n\n<ng-template #headerNode>\n {{ i18n.msgStr('loginTotpStep1') }}\n</ng-template>\n<ol id=\"kc-totp-settings\">\n <li>\n <p>{{ i18n.msgStr('loginTotpStep1') }}</p>\n <ul id=\"kc-totp-supported-apps\">\n @for (app of totp.supportedApplications; track app) {\n <li>{{ i18n.advancedMsgStr(app) }}</li>\n }\n </ul>\n </li>\n @if (kcContext.mode === 'manual') {\n <li>\n <p>{{ i18n.msgStr('loginTotpManualStep2') }}</p>\n <p>\n <span id=\"kc-totp-secret-key\">{{ totp.totpSecretEncoded }}</span>\n </p>\n <p>\n <a\n id=\"mode-barcode\"\n [href]=\"totp.qrUrl\"\n >\n {{ i18n.msgStr('loginTotpScanBarcode') }}\n </a>\n </p>\n </li>\n <li>\n <p>{{ i18n.msgStr('loginTotpManualStep3') }}</p>\n <p></p>\n <ul>\n <li id=\"kc-totp-type\">\n {{ i18n.msgStr('loginTotpType') }}:\n {{ i18n.advancedMsgStr('loginTotp.' + totp.policy.type) }}\n </li>\n <li id=\"kc-totp-algorithm\">\n {{ i18n.msgStr('loginTotpAlgorithm') }}:\n {{ totp.policy.getAlgorithmKey() }}\n </li>\n <li id=\"kc-totp-digits\">{{ i18n.msgStr('loginTotpDigits') }}: {{ totp.policy.digits }}</li>\n @if (totp.policy.type === 'totp') {\n <li id=\"kc-totp-period\">\n {{ i18n.msgStr('loginTotpInterval') }}:\n {{ totp.policy.period }}\n </li>\n } @else {\n <li id=\"kc-totp-counter\">\n {{ i18n.msgStr('loginTotpCounter') }}:\n {{ totp.policy.initialCounter }}\n </li>\n }\n </ul>\n </li>\n } @else {\n <li>\n <p>{{ i18n.msgStr('loginTotpStep2') }}</p>\n <img\n id=\"kc-totp-secret-qr-code\"\n alt=\"Figure: Barcode\"\n [src]=\"'data:image/png;base64, ' + totp.totpSecretQrCode\"\n />\n <br />\n <p>\n <a\n id=\"mode-manual\"\n [href]=\"totp.manualUrl\"\n >\n {{ i18n.msgStr('loginTotpUnableToScan') }}\n </a>\n </p>\n </li>\n }\n <li>\n <p>{{ i18n.msgStr('loginTotpStep3') }}</p>\n <p>{{ i18n.msgStr('loginTotpStep3DeviceName') }}</p>\n </li>\n</ol>\n<form\n id=\"kc-totp-settings-form\"\n method=\"post\"\n [action]=\"url.loginAction\"\n [kcClass]=\"'kcFormClass'\"\n>\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div [kcClass]=\"'kcInputWrapperClass'\">\n <label\n for=\"totp\"\n [kcClass]=\"'kcLabelClass'\"\n >\n {{ i18n.msgStr('authenticatorCode') }}\n </label>\n <span class=\"required\">*</span>\n </div>\n <div [kcClass]=\"'kcInputWrapperClass'\">\n <input\n type=\"text\"\n id=\"totp\"\n name=\"totp\"\n autoComplete=\"off\"\n [kcClass]=\"'kcInputClass'\"\n [attr.aria-invalid]=\"messagesPerField.existsError('totp')\"\n />\n @if (messagesPerField.existsError('totp')) {\n <span\n id=\"input-error-otp-code\"\n aria-live=\"polite\"\n [kcClass]=\"'kcInputErrorMessageClass'\"\n [innerHTML]=\"messagesPerField.get('totp') | kcSanitize: 'html'\"\n ></span>\n }\n </div>\n <input\n type=\"hidden\"\n id=\"totpSecret\"\n name=\"totpSecret\"\n [value]=\"totp.totpSecret\"\n />\n @if (mode) {\n <input\n type=\"hidden\"\n id=\"mode\"\n [value]=\"mode\"\n />\n }\n </div>\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div [kcClass]=\"'kcInputWrapperClass'\">\n <label\n for=\"userLabel\"\n [kcClass]=\"'kcLabelClass'\"\n >\n {{ i18n.msgStr('loginTotpDeviceName') }}\n </label>\n @if (totp.otpCredentials.length >= 1) {\n <span class=\"required\">*</span>\n }\n </div>\n <div [kcClass]=\"'kcInputWrapperClass'\">\n <input\n type=\"text\"\n id=\"userLabel\"\n name=\"userLabel\"\n autoComplete=\"off\"\n [kcClass]=\"'kcInputClass'\"\n [attr.aria-invalid]=\"messagesPerField.existsError('userLabel')\"\n />\n @if (messagesPerField.existsError('userLabel')) {\n <span\n id=\"input-error-otp-label\"\n aria-live=\"polite\"\n [kcClass]=\"'kcInputErrorMessageClass'\"\n [innerHTML]=\"messagesPerField.get('userLabel') | kcSanitize: 'html'\"\n ></span>\n }\n </div>\n </div>\n <div [kcClass]=\"'kcFormGroupClass'\">\n <kc-logout-other-sessions />\n </div>\n\n @if (isAppInitiatedAction) {\n <input\n type=\"submit\"\n id=\"saveTOTPBtn\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doSubmit')\"\n />\n <button\n type=\"submit\"\n id=\"cancelTOTPBtn\"\n name=\"cancel-aia\"\n [kcClass]=\"['kcButtonClass', 'kcButtonDefaultClass', 'kcButtonLargeClass', 'kcButtonLargeClass']\"\n [value]=\"true\"\n >\n {{ i18n.msgStr('doCancel') }}\n </button>\n } @else {\n <input\n type=\"submit\"\n id=\"saveTOTPBtn\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doSubmit')\"\n />\n }\n</form>\n", dependencies: [{ kind: "directive", type: KcClassDirective, selector: "[kcClass]", inputs: ["class", "ngClass", "kcClass"] }, { kind: "component", type: LogoutOtherSessionsComponent, selector: "kc-logout-other-sessions" }, { kind: "pipe", type: KcSanitizePipe, name: "kcSanitize" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
33
33
  }
34
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: LoginConfigTotpComponent, decorators: [{
34
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: LoginConfigTotpComponent, decorators: [{
35
35
  type: Component,
36
36
  args: [{ imports: [KcClassDirective, KcSanitizePipe, LogoutOtherSessionsComponent], selector: 'kc-login-config-totp', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
37
37
  {
@@ -1 +1 @@
1
- {"version":3,"file":"keycloakify-angular-login-pages-login-config-totp.mjs","sources":["../../src/login/pages/login-config-totp/login-config-totp.component.ts","../../src/login/pages/login-config-totp/login-config-totp.component.html","../../src/login/pages/login-config-totp/keycloakify-angular-login-pages-login-config-totp.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, forwardRef, inject, type TemplateRef, viewChild } from '@angular/core';\nimport { KcSanitizePipe } from '@keycloakify/angular/lib/pipes/kc-sanitize';\nimport { USE_DEFAULT_CSS } from '@keycloakify/angular/lib/tokens/use-default-css';\nimport { ComponentReference } from '@keycloakify/angular/login/classes/component-reference';\nimport { LogoutOtherSessionsComponent } from '@keycloakify/angular/login/components/logout-other-sessions';\nimport { KcClassDirective } from '@keycloakify/angular/login/directives/kc-class';\nimport type { I18n } from '@keycloakify/angular/login/i18n';\nimport type { KcContext } from '@keycloakify/angular/login/KcContext';\nimport { LOGIN_CLASSES } from '@keycloakify/angular/login/tokens/classes';\nimport { LOGIN_I18N } from '@keycloakify/angular/login/tokens/i18n';\nimport { KC_LOGIN_CONTEXT } from '@keycloakify/angular/login/tokens/kc-context';\nimport type { ClassKey } from 'keycloakify/login/lib/kcClsx';\n\n@Component({\n imports: [KcClassDirective, KcSanitizePipe, LogoutOtherSessionsComponent],\n selector: 'kc-login-config-totp',\n templateUrl: 'login-config-totp.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: ComponentReference,\n useExisting: forwardRef(() => LoginConfigTotpComponent)\n }\n ]\n})\nexport class LoginConfigTotpComponent extends ComponentReference {\n kcContext = inject<Extract<KcContext, { pageId: 'login-config-totp.ftl' }>>(KC_LOGIN_CONTEXT);\n i18n = inject<I18n>(LOGIN_I18N);\n override doUseDefaultCss = inject<boolean>(USE_DEFAULT_CSS);\n override classes = inject<Partial<Record<ClassKey, string>>>(LOGIN_CLASSES);\n\n documentTitle: string | undefined;\n bodyClassName: string | undefined;\n\n displayRequiredFields = false;\n displayInfo = false;\n displayMessage = !this.kcContext.messagesPerField.existsError('totp', 'userLabel');\n\n headerNode = viewChild<TemplateRef<HTMLElement>>('headerNode');\n infoNode = viewChild<TemplateRef<HTMLElement>>('infoNode');\n socialProvidersNode = viewChild<TemplateRef<HTMLElement>>('socialProvidersNode');\n}\n","@let totp = kcContext.totp;\n@let url = kcContext.url;\n@let messagesPerField = kcContext.messagesPerField;\n@let mode = kcContext.mode;\n@let isAppInitiatedAction = kcContext.isAppInitiatedAction;\n\n<ng-template #headerNode>\n {{ i18n.msgStr('loginTotpStep1') }}\n</ng-template>\n<ol id=\"kc-totp-settings\">\n <li>\n <p>{{ i18n.msgStr('loginTotpStep1') }}</p>\n <ul id=\"kc-totp-supported-apps\">\n @for (app of totp.supportedApplications; track app) {\n <li>{{ i18n.advancedMsgStr(app) }}</li>\n }\n </ul>\n </li>\n @if (kcContext.mode === 'manual') {\n <li>\n <p>{{ i18n.msgStr('loginTotpManualStep2') }}</p>\n <p>\n <span id=\"kc-totp-secret-key\">{{ totp.totpSecretEncoded }}</span>\n </p>\n <p>\n <a\n id=\"mode-barcode\"\n [href]=\"totp.qrUrl\"\n >\n {{ i18n.msgStr('loginTotpScanBarcode') }}\n </a>\n </p>\n </li>\n <li>\n <p>{{ i18n.msgStr('loginTotpManualStep3') }}</p>\n <p></p>\n <ul>\n <li id=\"kc-totp-type\">\n {{ i18n.msgStr('loginTotpType') }}:\n {{ i18n.advancedMsgStr('loginTotp.' + totp.policy.type) }}\n </li>\n <li id=\"kc-totp-algorithm\">\n {{ i18n.msgStr('loginTotpAlgorithm') }}:\n {{ totp.policy.getAlgorithmKey() }}\n </li>\n <li id=\"kc-totp-digits\">{{ i18n.msgStr('loginTotpDigits') }}: {{ totp.policy.digits }}</li>\n @if (totp.policy.type === 'totp') {\n <li id=\"kc-totp-period\">\n {{ i18n.msgStr('loginTotpInterval') }}:\n {{ totp.policy.period }}\n </li>\n } @else {\n <li id=\"kc-totp-counter\">\n {{ i18n.msgStr('loginTotpCounter') }}:\n {{ totp.policy.initialCounter }}\n </li>\n }\n </ul>\n </li>\n } @else {\n <li>\n <p>{{ i18n.msgStr('loginTotpStep2') }}</p>\n <img\n id=\"kc-totp-secret-qr-code\"\n alt=\"Figure: Barcode\"\n [src]=\"'data:image/png;base64, ' + totp.totpSecretQrCode\"\n />\n <br />\n <p>\n <a\n id=\"mode-manual\"\n [href]=\"totp.manualUrl\"\n >\n {{ i18n.msgStr('loginTotpUnableToScan') }}\n </a>\n </p>\n </li>\n }\n <li>\n <p>{{ i18n.msgStr('loginTotpStep3') }}</p>\n <p>{{ i18n.msgStr('loginTotpStep3DeviceName') }}</p>\n </li>\n</ol>\n<form\n id=\"kc-totp-settings-form\"\n method=\"post\"\n [action]=\"url.loginAction\"\n [kcClass]=\"'kcFormClass'\"\n>\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div [kcClass]=\"'kcInputWrapperClass'\">\n <label\n for=\"totp\"\n [kcClass]=\"'kcLabelClass'\"\n >\n {{ i18n.msgStr('authenticatorCode') }}\n </label>\n <span class=\"required\">*</span>\n </div>\n <div [kcClass]=\"'kcInputWrapperClass'\">\n <input\n type=\"text\"\n id=\"totp\"\n name=\"totp\"\n autoComplete=\"off\"\n [kcClass]=\"'kcInputClass'\"\n [attr.aria-invalid]=\"messagesPerField.existsError('totp')\"\n />\n @if (messagesPerField.existsError('totp')) {\n <span\n id=\"input-error-otp-code\"\n aria-live=\"polite\"\n [kcClass]=\"'kcInputErrorMessageClass'\"\n [innerHTML]=\"messagesPerField.get('totp') | kcSanitize: 'html'\"\n ></span>\n }\n </div>\n <input\n type=\"hidden\"\n id=\"totpSecret\"\n name=\"totpSecret\"\n [value]=\"totp.totpSecret\"\n />\n @if (mode) {\n <input\n type=\"hidden\"\n id=\"mode\"\n [value]=\"mode\"\n />\n }\n </div>\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div [kcClass]=\"'kcInputWrapperClass'\">\n <label\n for=\"userLabel\"\n [kcClass]=\"'kcLabelClass'\"\n >\n {{ i18n.msgStr('loginTotpDeviceName') }}\n </label>\n @if (totp.otpCredentials.length >= 1) {\n <span class=\"required\">*</span>\n }\n </div>\n <div [kcClass]=\"'kcInputWrapperClass'\">\n <input\n type=\"text\"\n id=\"userLabel\"\n name=\"userLabel\"\n autoComplete=\"off\"\n [kcClass]=\"'kcInputClass'\"\n [attr.aria-invalid]=\"messagesPerField.existsError('userLabel')\"\n />\n @if (messagesPerField.existsError('userLabel')) {\n <span\n id=\"input-error-otp-label\"\n aria-live=\"polite\"\n [kcClass]=\"'kcInputErrorMessageClass'\"\n [innerHTML]=\"messagesPerField.get('userLabel') | kcSanitize: 'html'\"\n ></span>\n }\n </div>\n </div>\n <div [kcClass]=\"'kcFormGroupClass'\">\n <kc-logout-other-sessions />\n </div>\n\n @if (isAppInitiatedAction) {\n <input\n type=\"submit\"\n id=\"saveTOTPBtn\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doSubmit')\"\n />\n <button\n type=\"submit\"\n id=\"cancelTOTPBtn\"\n name=\"cancel-aia\"\n [kcClass]=\"['kcButtonClass', 'kcButtonDefaultClass', 'kcButtonLargeClass', 'kcButtonLargeClass']\"\n [value]=\"true\"\n >\n {{ i18n.msgStr('doCancel') }}\n </button>\n } @else {\n <input\n type=\"submit\"\n id=\"saveTOTPBtn\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doSubmit')\"\n />\n }\n</form>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"keycloakify-angular-login-pages-login-config-totp.mjs","sources":["../../src/login/pages/login-config-totp/login-config-totp.component.ts","../../src/login/pages/login-config-totp/login-config-totp.component.html","../../src/login/pages/login-config-totp/keycloakify-angular-login-pages-login-config-totp.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, forwardRef, inject, type TemplateRef, viewChild } from '@angular/core';\nimport { KcSanitizePipe } from '@keycloakify/angular/lib/pipes/kc-sanitize';\nimport { USE_DEFAULT_CSS } from '@keycloakify/angular/lib/tokens/use-default-css';\nimport { ComponentReference } from '@keycloakify/angular/login/classes/component-reference';\nimport { LogoutOtherSessionsComponent } from '@keycloakify/angular/login/components/logout-other-sessions';\nimport { KcClassDirective } from '@keycloakify/angular/login/directives/kc-class';\nimport type { I18n } from '@keycloakify/angular/login/i18n';\nimport type { KcContext } from '@keycloakify/angular/login/KcContext';\nimport { LOGIN_CLASSES } from '@keycloakify/angular/login/tokens/classes';\nimport { LOGIN_I18N } from '@keycloakify/angular/login/tokens/i18n';\nimport { KC_LOGIN_CONTEXT } from '@keycloakify/angular/login/tokens/kc-context';\nimport type { ClassKey } from 'keycloakify/login/lib/kcClsx';\n\n@Component({\n imports: [KcClassDirective, KcSanitizePipe, LogoutOtherSessionsComponent],\n selector: 'kc-login-config-totp',\n templateUrl: 'login-config-totp.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: ComponentReference,\n useExisting: forwardRef(() => LoginConfigTotpComponent)\n }\n ]\n})\nexport class LoginConfigTotpComponent extends ComponentReference {\n kcContext = inject<Extract<KcContext, { pageId: 'login-config-totp.ftl' }>>(KC_LOGIN_CONTEXT);\n i18n = inject<I18n>(LOGIN_I18N);\n override doUseDefaultCss = inject<boolean>(USE_DEFAULT_CSS);\n override classes = inject<Partial<Record<ClassKey, string>>>(LOGIN_CLASSES);\n\n documentTitle: string | undefined;\n bodyClassName: string | undefined;\n\n displayRequiredFields = false;\n displayInfo = false;\n displayMessage = !this.kcContext.messagesPerField.existsError('totp', 'userLabel');\n\n headerNode = viewChild<TemplateRef<HTMLElement>>('headerNode');\n infoNode = viewChild<TemplateRef<HTMLElement>>('infoNode');\n socialProvidersNode = viewChild<TemplateRef<HTMLElement>>('socialProvidersNode');\n}\n","@let totp = kcContext.totp;\n@let url = kcContext.url;\n@let messagesPerField = kcContext.messagesPerField;\n@let mode = kcContext.mode;\n@let isAppInitiatedAction = kcContext.isAppInitiatedAction;\n\n<ng-template #headerNode>\n {{ i18n.msgStr('loginTotpStep1') }}\n</ng-template>\n<ol id=\"kc-totp-settings\">\n <li>\n <p>{{ i18n.msgStr('loginTotpStep1') }}</p>\n <ul id=\"kc-totp-supported-apps\">\n @for (app of totp.supportedApplications; track app) {\n <li>{{ i18n.advancedMsgStr(app) }}</li>\n }\n </ul>\n </li>\n @if (kcContext.mode === 'manual') {\n <li>\n <p>{{ i18n.msgStr('loginTotpManualStep2') }}</p>\n <p>\n <span id=\"kc-totp-secret-key\">{{ totp.totpSecretEncoded }}</span>\n </p>\n <p>\n <a\n id=\"mode-barcode\"\n [href]=\"totp.qrUrl\"\n >\n {{ i18n.msgStr('loginTotpScanBarcode') }}\n </a>\n </p>\n </li>\n <li>\n <p>{{ i18n.msgStr('loginTotpManualStep3') }}</p>\n <p></p>\n <ul>\n <li id=\"kc-totp-type\">\n {{ i18n.msgStr('loginTotpType') }}:\n {{ i18n.advancedMsgStr('loginTotp.' + totp.policy.type) }}\n </li>\n <li id=\"kc-totp-algorithm\">\n {{ i18n.msgStr('loginTotpAlgorithm') }}:\n {{ totp.policy.getAlgorithmKey() }}\n </li>\n <li id=\"kc-totp-digits\">{{ i18n.msgStr('loginTotpDigits') }}: {{ totp.policy.digits }}</li>\n @if (totp.policy.type === 'totp') {\n <li id=\"kc-totp-period\">\n {{ i18n.msgStr('loginTotpInterval') }}:\n {{ totp.policy.period }}\n </li>\n } @else {\n <li id=\"kc-totp-counter\">\n {{ i18n.msgStr('loginTotpCounter') }}:\n {{ totp.policy.initialCounter }}\n </li>\n }\n </ul>\n </li>\n } @else {\n <li>\n <p>{{ i18n.msgStr('loginTotpStep2') }}</p>\n <img\n id=\"kc-totp-secret-qr-code\"\n alt=\"Figure: Barcode\"\n [src]=\"'data:image/png;base64, ' + totp.totpSecretQrCode\"\n />\n <br />\n <p>\n <a\n id=\"mode-manual\"\n [href]=\"totp.manualUrl\"\n >\n {{ i18n.msgStr('loginTotpUnableToScan') }}\n </a>\n </p>\n </li>\n }\n <li>\n <p>{{ i18n.msgStr('loginTotpStep3') }}</p>\n <p>{{ i18n.msgStr('loginTotpStep3DeviceName') }}</p>\n </li>\n</ol>\n<form\n id=\"kc-totp-settings-form\"\n method=\"post\"\n [action]=\"url.loginAction\"\n [kcClass]=\"'kcFormClass'\"\n>\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div [kcClass]=\"'kcInputWrapperClass'\">\n <label\n for=\"totp\"\n [kcClass]=\"'kcLabelClass'\"\n >\n {{ i18n.msgStr('authenticatorCode') }}\n </label>\n <span class=\"required\">*</span>\n </div>\n <div [kcClass]=\"'kcInputWrapperClass'\">\n <input\n type=\"text\"\n id=\"totp\"\n name=\"totp\"\n autoComplete=\"off\"\n [kcClass]=\"'kcInputClass'\"\n [attr.aria-invalid]=\"messagesPerField.existsError('totp')\"\n />\n @if (messagesPerField.existsError('totp')) {\n <span\n id=\"input-error-otp-code\"\n aria-live=\"polite\"\n [kcClass]=\"'kcInputErrorMessageClass'\"\n [innerHTML]=\"messagesPerField.get('totp') | kcSanitize: 'html'\"\n ></span>\n }\n </div>\n <input\n type=\"hidden\"\n id=\"totpSecret\"\n name=\"totpSecret\"\n [value]=\"totp.totpSecret\"\n />\n @if (mode) {\n <input\n type=\"hidden\"\n id=\"mode\"\n [value]=\"mode\"\n />\n }\n </div>\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div [kcClass]=\"'kcInputWrapperClass'\">\n <label\n for=\"userLabel\"\n [kcClass]=\"'kcLabelClass'\"\n >\n {{ i18n.msgStr('loginTotpDeviceName') }}\n </label>\n @if (totp.otpCredentials.length >= 1) {\n <span class=\"required\">*</span>\n }\n </div>\n <div [kcClass]=\"'kcInputWrapperClass'\">\n <input\n type=\"text\"\n id=\"userLabel\"\n name=\"userLabel\"\n autoComplete=\"off\"\n [kcClass]=\"'kcInputClass'\"\n [attr.aria-invalid]=\"messagesPerField.existsError('userLabel')\"\n />\n @if (messagesPerField.existsError('userLabel')) {\n <span\n id=\"input-error-otp-label\"\n aria-live=\"polite\"\n [kcClass]=\"'kcInputErrorMessageClass'\"\n [innerHTML]=\"messagesPerField.get('userLabel') | kcSanitize: 'html'\"\n ></span>\n }\n </div>\n </div>\n <div [kcClass]=\"'kcFormGroupClass'\">\n <kc-logout-other-sessions />\n </div>\n\n @if (isAppInitiatedAction) {\n <input\n type=\"submit\"\n id=\"saveTOTPBtn\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doSubmit')\"\n />\n <button\n type=\"submit\"\n id=\"cancelTOTPBtn\"\n name=\"cancel-aia\"\n [kcClass]=\"['kcButtonClass', 'kcButtonDefaultClass', 'kcButtonLargeClass', 'kcButtonLargeClass']\"\n [value]=\"true\"\n >\n {{ i18n.msgStr('doCancel') }}\n </button>\n } @else {\n <input\n type=\"submit\"\n id=\"saveTOTPBtn\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doSubmit')\"\n />\n }\n</form>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -13,19 +13,19 @@ class LoginIdpLinkConfirmOverrideComponent extends ComponentReference {
13
13
  this.displayRequiredFields = false;
14
14
  this.displayInfo = false;
15
15
  this.displayMessage = !this.kcContext.messagesPerField.existsError('totp', 'userLabel');
16
- this.headerNode = viewChild('headerNode');
17
- this.infoNode = viewChild('infoNode');
18
- this.socialProvidersNode = viewChild('socialProvidersNode');
16
+ this.headerNode = viewChild('headerNode', ...(ngDevMode ? [{ debugName: "headerNode" }] : []));
17
+ this.infoNode = viewChild('infoNode', ...(ngDevMode ? [{ debugName: "infoNode" }] : []));
18
+ this.socialProvidersNode = viewChild('socialProvidersNode', ...(ngDevMode ? [{ debugName: "socialProvidersNode" }] : []));
19
19
  }
20
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: LoginIdpLinkConfirmOverrideComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
21
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.0.3", type: LoginIdpLinkConfirmOverrideComponent, isStandalone: true, selector: "kc-login-idp-link-confirm-override", providers: [
20
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: LoginIdpLinkConfirmOverrideComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
21
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.1.3", type: LoginIdpLinkConfirmOverrideComponent, isStandalone: true, selector: "kc-login-idp-link-confirm-override", providers: [
22
22
  {
23
23
  provide: ComponentReference,
24
24
  useExisting: forwardRef(() => LoginIdpLinkConfirmOverrideComponent)
25
25
  }
26
26
  ], viewQueries: [{ propertyName: "headerNode", first: true, predicate: ["headerNode"], descendants: true, isSignal: true }, { propertyName: "infoNode", first: true, predicate: ["infoNode"], descendants: true, isSignal: true }, { propertyName: "socialProvidersNode", first: true, predicate: ["socialProvidersNode"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "@let url = kcContext.url;\n@let idpDisplayName = kcContext.idpDisplayName;\n\n<ng-template #headerNode>\n {{ i18n.msgStr('confirmOverrideIdpTitle') }}\n</ng-template>\n<form\n id=\"kc-register-form\"\n method=\"post\"\n [action]=\"url.loginAction\"\n>\n {{ i18n.msgStr('pageExpiredMsg1') }}\n <a\n id=\"loginRestartLink\"\n [href]=\"url.loginRestartFlowUrl\"\n >\n {{ i18n.msgStr('doClickHere') }}\n </a>\n <br />\n <br />\n <button\n type=\"submit\"\n name=\"submitAction\"\n id=\"confirmOverride\"\n value=\"confirmOverride\"\n [kcClass]=\"['kcButtonClass', 'kcButtonDefaultClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n >\n {{ i18n.msgStr('confirmOverrideIdpContinue', idpDisplayName) }}\n </button>\n</form>\n", dependencies: [{ kind: "directive", type: KcClassDirective, selector: "[kcClass]", inputs: ["class", "ngClass", "kcClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
27
27
  }
28
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: LoginIdpLinkConfirmOverrideComponent, decorators: [{
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: LoginIdpLinkConfirmOverrideComponent, decorators: [{
29
29
  type: Component,
30
30
  args: [{ imports: [KcClassDirective], selector: 'kc-login-idp-link-confirm-override', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
31
31
  {
@@ -1 +1 @@
1
- {"version":3,"file":"keycloakify-angular-login-pages-login-idp-link-confirm-override.mjs","sources":["../../src/login/pages/login-idp-link-confirm-override/login-idp-link-confirm-override.component.ts","../../src/login/pages/login-idp-link-confirm-override/login-idp-link-confirm-override.component.html","../../src/login/pages/login-idp-link-confirm-override/keycloakify-angular-login-pages-login-idp-link-confirm-override.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, forwardRef, inject, type TemplateRef, viewChild } from '@angular/core';\nimport { ComponentReference } from '@keycloakify/angular/login/classes/component-reference';\nimport { KcClassDirective } from '@keycloakify/angular/login/directives/kc-class';\nimport type { I18n } from '@keycloakify/angular/login/i18n';\nimport type { KcContext } from '@keycloakify/angular/login/KcContext';\nimport { LOGIN_I18N } from '@keycloakify/angular/login/tokens/i18n';\nimport { KC_LOGIN_CONTEXT } from '@keycloakify/angular/login/tokens/kc-context';\n\n@Component({\n imports: [KcClassDirective],\n selector: 'kc-login-idp-link-confirm-override',\n templateUrl: 'login-idp-link-confirm-override.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: ComponentReference,\n useExisting: forwardRef(() => LoginIdpLinkConfirmOverrideComponent)\n }\n ]\n})\nexport class LoginIdpLinkConfirmOverrideComponent extends ComponentReference {\n kcContext = inject<Extract<KcContext, { pageId: 'login-idp-link-confirm-override.ftl' }>>(KC_LOGIN_CONTEXT);\n i18n = inject<I18n>(LOGIN_I18N);\n\n documentTitle: string | undefined;\n bodyClassName: string | undefined;\n\n displayRequiredFields = false;\n displayInfo = false;\n displayMessage = !this.kcContext.messagesPerField.existsError('totp', 'userLabel');\n\n headerNode = viewChild<TemplateRef<HTMLElement>>('headerNode');\n infoNode = viewChild<TemplateRef<HTMLElement>>('infoNode');\n socialProvidersNode = viewChild<TemplateRef<HTMLElement>>('socialProvidersNode');\n}\n","@let url = kcContext.url;\n@let idpDisplayName = kcContext.idpDisplayName;\n\n<ng-template #headerNode>\n {{ i18n.msgStr('confirmOverrideIdpTitle') }}\n</ng-template>\n<form\n id=\"kc-register-form\"\n method=\"post\"\n [action]=\"url.loginAction\"\n>\n {{ i18n.msgStr('pageExpiredMsg1') }}\n <a\n id=\"loginRestartLink\"\n [href]=\"url.loginRestartFlowUrl\"\n >\n {{ i18n.msgStr('doClickHere') }}\n </a>\n <br />\n <br />\n <button\n type=\"submit\"\n name=\"submitAction\"\n id=\"confirmOverride\"\n value=\"confirmOverride\"\n [kcClass]=\"['kcButtonClass', 'kcButtonDefaultClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n >\n {{ i18n.msgStr('confirmOverrideIdpContinue', idpDisplayName) }}\n </button>\n</form>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;AAoBM,MAAO,oCAAqC,SAAQ,kBAAkB,CAAA;AAZ5E,IAAA,WAAA,GAAA;;AAaI,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAwE,gBAAgB,CAAC;AAC3G,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAO,UAAU,CAAC;QAK/B,IAAqB,CAAA,qBAAA,GAAG,KAAK;QAC7B,IAAW,CAAA,WAAA,GAAG,KAAK;AACnB,QAAA,IAAA,CAAA,cAAc,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC;AAElF,QAAA,IAAA,CAAA,UAAU,GAAG,SAAS,CAA2B,YAAY,CAAC;AAC9D,QAAA,IAAA,CAAA,QAAQ,GAAG,SAAS,CAA2B,UAAU,CAAC;AAC1D,QAAA,IAAA,CAAA,mBAAmB,GAAG,SAAS,CAA2B,qBAAqB,CAAC;AACnF;8GAdY,oCAAoC,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oCAAoC,EAPlC,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oCAAA,EAAA,SAAA,EAAA;AACP,YAAA;AACI,gBAAA,OAAO,EAAE,kBAAkB;AAC3B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,oCAAoC;AACrE;SACJ,EClBL,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,YAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,UAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,qBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,0zBA8BA,4CDrBc,gBAAgB,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAWjB,oCAAoC,EAAA,UAAA,EAAA,CAAA;kBAZhD,SAAS;8BACG,CAAC,gBAAgB,CAAC,EACjB,QAAA,EAAA,oCAAoC,mBAE7B,uBAAuB,CAAC,MAAM,EACpC,SAAA,EAAA;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,kBAAkB;AAC3B,4BAAA,WAAW,EAAE,UAAU,CAAC,0CAA0C;AACrE;AACJ,qBAAA,EAAA,QAAA,EAAA,0zBAAA,EAAA;;;AElBL;;AAEG;;;;"}
1
+ {"version":3,"file":"keycloakify-angular-login-pages-login-idp-link-confirm-override.mjs","sources":["../../src/login/pages/login-idp-link-confirm-override/login-idp-link-confirm-override.component.ts","../../src/login/pages/login-idp-link-confirm-override/login-idp-link-confirm-override.component.html","../../src/login/pages/login-idp-link-confirm-override/keycloakify-angular-login-pages-login-idp-link-confirm-override.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, forwardRef, inject, type TemplateRef, viewChild } from '@angular/core';\nimport { ComponentReference } from '@keycloakify/angular/login/classes/component-reference';\nimport { KcClassDirective } from '@keycloakify/angular/login/directives/kc-class';\nimport type { I18n } from '@keycloakify/angular/login/i18n';\nimport type { KcContext } from '@keycloakify/angular/login/KcContext';\nimport { LOGIN_I18N } from '@keycloakify/angular/login/tokens/i18n';\nimport { KC_LOGIN_CONTEXT } from '@keycloakify/angular/login/tokens/kc-context';\n\n@Component({\n imports: [KcClassDirective],\n selector: 'kc-login-idp-link-confirm-override',\n templateUrl: 'login-idp-link-confirm-override.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: ComponentReference,\n useExisting: forwardRef(() => LoginIdpLinkConfirmOverrideComponent)\n }\n ]\n})\nexport class LoginIdpLinkConfirmOverrideComponent extends ComponentReference {\n kcContext = inject<Extract<KcContext, { pageId: 'login-idp-link-confirm-override.ftl' }>>(KC_LOGIN_CONTEXT);\n i18n = inject<I18n>(LOGIN_I18N);\n\n documentTitle: string | undefined;\n bodyClassName: string | undefined;\n\n displayRequiredFields = false;\n displayInfo = false;\n displayMessage = !this.kcContext.messagesPerField.existsError('totp', 'userLabel');\n\n headerNode = viewChild<TemplateRef<HTMLElement>>('headerNode');\n infoNode = viewChild<TemplateRef<HTMLElement>>('infoNode');\n socialProvidersNode = viewChild<TemplateRef<HTMLElement>>('socialProvidersNode');\n}\n","@let url = kcContext.url;\n@let idpDisplayName = kcContext.idpDisplayName;\n\n<ng-template #headerNode>\n {{ i18n.msgStr('confirmOverrideIdpTitle') }}\n</ng-template>\n<form\n id=\"kc-register-form\"\n method=\"post\"\n [action]=\"url.loginAction\"\n>\n {{ i18n.msgStr('pageExpiredMsg1') }}\n <a\n id=\"loginRestartLink\"\n [href]=\"url.loginRestartFlowUrl\"\n >\n {{ i18n.msgStr('doClickHere') }}\n </a>\n <br />\n <br />\n <button\n type=\"submit\"\n name=\"submitAction\"\n id=\"confirmOverride\"\n value=\"confirmOverride\"\n [kcClass]=\"['kcButtonClass', 'kcButtonDefaultClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n >\n {{ i18n.msgStr('confirmOverrideIdpContinue', idpDisplayName) }}\n </button>\n</form>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;AAoBM,MAAO,oCAAqC,SAAQ,kBAAkB,CAAA;AAZ5E,IAAA,WAAA,GAAA;;AAaI,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAwE,gBAAgB,CAAC;AAC3G,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAO,UAAU,CAAC;QAK/B,IAAqB,CAAA,qBAAA,GAAG,KAAK;QAC7B,IAAW,CAAA,WAAA,GAAG,KAAK;AACnB,QAAA,IAAA,CAAA,cAAc,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC;AAElF,QAAA,IAAA,CAAA,UAAU,GAAG,SAAS,CAA2B,YAAY,sDAAC;AAC9D,QAAA,IAAA,CAAA,QAAQ,GAAG,SAAS,CAA2B,UAAU,oDAAC;AAC1D,QAAA,IAAA,CAAA,mBAAmB,GAAG,SAAS,CAA2B,qBAAqB,+DAAC;AACnF;8GAdY,oCAAoC,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oCAAoC,EAPlC,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oCAAA,EAAA,SAAA,EAAA;AACP,YAAA;AACI,gBAAA,OAAO,EAAE,kBAAkB;AAC3B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,oCAAoC;AACrE;SACJ,EClBL,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,YAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,UAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,qBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,0zBA8BA,4CDrBc,gBAAgB,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAWjB,oCAAoC,EAAA,UAAA,EAAA,CAAA;kBAZhD,SAAS;8BACG,CAAC,gBAAgB,CAAC,EACjB,QAAA,EAAA,oCAAoC,mBAE7B,uBAAuB,CAAC,MAAM,EACpC,SAAA,EAAA;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,kBAAkB;AAC3B,4BAAA,WAAW,EAAE,UAAU,CAAC,0CAA0C;AACrE;AACJ,qBAAA,EAAA,QAAA,EAAA,0zBAAA,EAAA;;;AElBL;;AAEG;;;;"}