@keycloakify/angular 0.0.1 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (21) hide show
  1. package/account/providers/keycloakify-angular/keycloakify-angular.providers.d.ts +1 -2
  2. package/esm2022/account/providers/keycloakify-angular/keycloakify-angular.providers.mjs +1 -1
  3. package/esm2022/login/pages/login-oauth-grant/login-oauth-grant.component.mjs +3 -3
  4. package/esm2022/login/pages/register/register.component.mjs +3 -3
  5. package/esm2022/login/pages/terms/terms.component.mjs +3 -3
  6. package/esm2022/login/providers/keycloakify-angular/keycloakify-angular.providers.mjs +1 -1
  7. package/fesm2022/keycloakify-angular-account-providers-keycloakify-angular.mjs.map +1 -1
  8. package/fesm2022/keycloakify-angular-login-pages-login-oauth-grant.mjs +2 -2
  9. package/fesm2022/keycloakify-angular-login-pages-login-oauth-grant.mjs.map +1 -1
  10. package/fesm2022/keycloakify-angular-login-pages-register.mjs +2 -2
  11. package/fesm2022/keycloakify-angular-login-pages-register.mjs.map +1 -1
  12. package/fesm2022/keycloakify-angular-login-pages-terms.mjs +2 -2
  13. package/fesm2022/keycloakify-angular-login-pages-terms.mjs.map +1 -1
  14. package/fesm2022/keycloakify-angular-login-providers-keycloakify-angular.mjs.map +1 -1
  15. package/login/providers/keycloakify-angular/keycloakify-angular.providers.d.ts +1 -2
  16. package/package.json +18 -18
  17. package/src/account/providers/keycloakify-angular/keycloakify-angular.providers.ts +2 -2
  18. package/src/login/pages/login-oauth-grant/login-oauth-grant.component.html +1 -1
  19. package/src/login/pages/register/register.component.html +3 -3
  20. package/src/login/pages/terms/terms.component.html +1 -1
  21. package/src/login/providers/keycloakify-angular/keycloakify-angular.providers.ts +1 -1
@@ -1,12 +1,11 @@
1
1
  import { type KcContextLike } from 'keycloakify/account/i18n/noJsx';
2
2
  import type { ClassKey } from 'keycloakify/account/lib/kcClsx';
3
- import type { KcContext } from '@keycloakify/angular/account/KcContext';
4
3
  export type KeycloakifyAngularAccountConfig = {
5
4
  doUseDefaultCss?: boolean;
6
5
  classes?: {
7
6
  [key in ClassKey]?: string;
8
7
  };
9
- kcContext: KcContext;
8
+ kcContext: unknown;
10
9
  getI18n: (params: {
11
10
  kcContext: KcContextLike;
12
11
  }) => {
@@ -44,4 +44,4 @@ export const provideKeycloakifyAngular = (config) => makeEnvironmentProviders([
44
44
  { provide: USE_DEFAULT_CSS, useValue: config?.doUseDefaultCss ?? true },
45
45
  { provide: ACCOUNT_CLASSES, useValue: config?.classes ?? {} }
46
46
  ]);
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5Y2xvYWtpZnktYW5ndWxhci5wcm92aWRlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYWNjb3VudC9wcm92aWRlcnMva2V5Y2xvYWtpZnktYW5ndWxhci9rZXljbG9ha2lmeS1hbmd1bGFyLnByb3ZpZGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDeEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDcEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBZWxGLE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUFHLENBQUMsTUFBdUMsRUFBRSxFQUFFLENBQ2pGLHdCQUF3QixDQUFDO0lBQ3JCO1FBQ0ksT0FBTyxFQUFFLGtCQUFrQjtRQUMzQixRQUFRLEVBQUUsTUFBTSxDQUFDLFNBQVM7S0FDN0I7SUFDRDtRQUNJLE9BQU8sRUFBRSxTQUFTO1FBQ2xCLFVBQVUsRUFBRSxDQUFDLFFBQWtCLEVBQUUsRUFBRTtZQUMvQixPQUFPLFFBQVEsQ0FBQyxlQUFlLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQztRQUNqRCxDQUFDO1FBQ0QsSUFBSSxFQUFFLENBQUMsUUFBUSxDQUFDO0tBQ25CO0lBQ0Q7UUFDSSxPQUFPLEVBQUUsZUFBZTtRQUN4QixLQUFLLEVBQUUsSUFBSTtRQUNYLFVBQVUsRUFBRSxDQUFDLFdBQXdCLEVBQUUsU0FBb0IsRUFBRSxFQUFFLENBQUMsS0FBSyxJQUFJLEVBQUU7WUFDdkUsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQztZQUUvQixNQUFNLEVBQUUsSUFBSSxFQUFFLHNCQUFzQixFQUFFLEdBQUcsT0FBTyxDQUFDO2dCQUM3QyxTQUFTO2FBQ1osQ0FBQyxDQUFDO1lBQ0gsSUFBSSxXQUFXLEdBQUcsSUFBSSxPQUFPLENBQWMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUNyRSxJQUFJLHNCQUFzQixFQUFFLENBQUM7Z0JBQ3pCLFdBQVcsR0FBRyxzQkFBc0IsQ0FBQztZQUN6QyxDQUFDO1lBQ0QsT0FBTyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUMzQixXQUFXLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztnQkFDeEIsT0FBTyxJQUFJLENBQUM7WUFDaEIsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDO1FBQ0QsSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLGtCQUFrQixDQUFDO0tBQzFDO0lBQ0Q7UUFDSSxPQUFPLEVBQUUsWUFBWTtRQUNyQixVQUFVLEVBQUUsQ0FBQyxXQUF3QixFQUFFLEVBQUUsQ0FBQyxXQUFXLENBQUMsSUFBSTtRQUMxRCxJQUFJLEVBQUUsQ0FBQyxXQUFXLENBQUM7S0FDdEI7SUFDRCxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxlQUFlLElBQUksSUFBSSxFQUFFO0lBQ3ZFLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE9BQU8sSUFBSSxFQUFFLEVBQUU7Q0FDaEUsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQVBQX0lOSVRJQUxJWkVSLCBMT0NBTEVfSUQsIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9hY2NvdW50L3NlcnZpY2VzL2kxOG4nO1xuaW1wb3J0IHsgQUNDT1VOVF9DTEFTU0VTIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvYWNjb3VudC90b2tlbnMvY2xhc3Nlcyc7XG5pbXBvcnQgeyBBQ0NPVU5UX0kxOE4gfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9hY2NvdW50L3Rva2Vucy9pMThuJztcbmltcG9ydCB7IEtDX0FDQ09VTlRfQ09OVEVYVCB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2FjY291bnQvdG9rZW5zL2tjLWNvbnRleHQnO1xuaW1wb3J0IHsgVVNFX0RFRkFVTFRfQ1NTIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbGliL3Rva2Vucy91c2UtZGVmYXVsdC1jc3MnO1xuaW1wb3J0IHsgdHlwZSBLY0NvbnRleHRMaWtlIH0gZnJvbSAna2V5Y2xvYWtpZnkvYWNjb3VudC9pMThuL25vSnN4JztcbmltcG9ydCB0eXBlIHsgQ2xhc3NLZXkgfSBmcm9tICdrZXljbG9ha2lmeS9hY2NvdW50L2xpYi9rY0Nsc3gnO1xuaW1wb3J0IHR5cGUgeyBLY0NvbnRleHQgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9hY2NvdW50L0tjQ29udGV4dCc7XG5cbmV4cG9ydCB0eXBlIEtleWNsb2FraWZ5QW5ndWxhckFjY291bnRDb25maWcgPSB7XG4gICAgZG9Vc2VEZWZhdWx0Q3NzPzogYm9vbGVhbjtcbiAgICBjbGFzc2VzPzogeyBba2V5IGluIENsYXNzS2V5XT86IHN0cmluZyB9O1xuICAgIGtjQ29udGV4dDogS2NDb250ZXh0O1xuICAgIGdldEkxOG46IChwYXJhbXM6IHsga2NDb250ZXh0OiBLY0NvbnRleHRMaWtlIH0pID0+IHtcbiAgICAgICAgaTE4bjogdW5rbm93bjtcbiAgICAgICAgcHJJMThuX2N1cnJlbnRMYW5ndWFnZTogUHJvbWlzZTx1bmtub3duPiB8IHVuZGVmaW5lZDtcbiAgICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IHByb3ZpZGVLZXljbG9ha2lmeUFuZ3VsYXIgPSAoY29uZmlnOiBLZXljbG9ha2lmeUFuZ3VsYXJBY2NvdW50Q29uZmlnKSA9PlxuICAgIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVycyhbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEtDX0FDQ09VTlRfQ09OVEVYVCxcbiAgICAgICAgICAgIHVzZVZhbHVlOiBjb25maWcua2NDb250ZXh0XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IExPQ0FMRV9JRCxcbiAgICAgICAgICAgIHVzZUZhY3Rvcnk6IChkb2N1bWVudDogRG9jdW1lbnQpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmxhbmcgPz8gJ2VuJztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBkZXBzOiBbRE9DVU1FTlRdXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEFQUF9JTklUSUFMSVpFUixcbiAgICAgICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgICAgICAgdXNlRmFjdG9yeTogKGkxOG5TZXJ2aWNlOiBJMThuU2VydmljZSwga2NDb250ZXh0OiBLY0NvbnRleHQpID0+IGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBnZXRJMThuID0gY29uZmlnLmdldEkxOG47XG5cbiAgICAgICAgICAgICAgICBjb25zdCB7IGkxOG4sIHBySTE4bl9jdXJyZW50TGFuZ3VhZ2UgfSA9IGdldEkxOG4oe1xuICAgICAgICAgICAgICAgICAgICBrY0NvbnRleHRcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBsZXQgaTE4blByb21pc2UgPSBuZXcgUHJvbWlzZTx0eXBlb2YgaTE4bj4ocmVzb2x2ZSA9PiByZXNvbHZlKGkxOG4pKTtcbiAgICAgICAgICAgICAgICBpZiAocHJJMThuX2N1cnJlbnRMYW5ndWFnZSkge1xuICAgICAgICAgICAgICAgICAgICBpMThuUHJvbWlzZSA9IHBySTE4bl9jdXJyZW50TGFuZ3VhZ2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBpMThuUHJvbWlzZS50aGVuKGkxOG4gPT4ge1xuICAgICAgICAgICAgICAgICAgICBpMThuU2VydmljZS5pMThuID0gaTE4bjtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZGVwczogW0kxOG5TZXJ2aWNlLCBLQ19BQ0NPVU5UX0NPTlRFWFRdXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEFDQ09VTlRfSTE4TixcbiAgICAgICAgICAgIHVzZUZhY3Rvcnk6IChpMThuU2VydmljZTogSTE4blNlcnZpY2UpID0+IGkxOG5TZXJ2aWNlLmkxOG4sXG4gICAgICAgICAgICBkZXBzOiBbSTE4blNlcnZpY2VdXG4gICAgICAgIH0sXG4gICAgICAgIHsgcHJvdmlkZTogVVNFX0RFRkFVTFRfQ1NTLCB1c2VWYWx1ZTogY29uZmlnPy5kb1VzZURlZmF1bHRDc3MgPz8gdHJ1ZSB9LFxuICAgICAgICB7IHByb3ZpZGU6IEFDQ09VTlRfQ0xBU1NFUywgdXNlVmFsdWU6IGNvbmZpZz8uY2xhc3NlcyA/PyB7fSB9XG4gICAgXSk7XG4iXX0=
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5Y2xvYWtpZnktYW5ndWxhci5wcm92aWRlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYWNjb3VudC9wcm92aWRlcnMva2V5Y2xvYWtpZnktYW5ndWxhci9rZXljbG9ha2lmeS1hbmd1bGFyLnByb3ZpZGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFckYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDeEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDcEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBY2xGLE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUFHLENBQUMsTUFBdUMsRUFBRSxFQUFFLENBQ2pGLHdCQUF3QixDQUFDO0lBQ3JCO1FBQ0ksT0FBTyxFQUFFLGtCQUFrQjtRQUMzQixRQUFRLEVBQUUsTUFBTSxDQUFDLFNBQVM7S0FDN0I7SUFDRDtRQUNJLE9BQU8sRUFBRSxTQUFTO1FBQ2xCLFVBQVUsRUFBRSxDQUFDLFFBQWtCLEVBQUUsRUFBRTtZQUMvQixPQUFPLFFBQVEsQ0FBQyxlQUFlLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQztRQUNqRCxDQUFDO1FBQ0QsSUFBSSxFQUFFLENBQUMsUUFBUSxDQUFDO0tBQ25CO0lBQ0Q7UUFDSSxPQUFPLEVBQUUsZUFBZTtRQUN4QixLQUFLLEVBQUUsSUFBSTtRQUNYLFVBQVUsRUFBRSxDQUFDLFdBQXdCLEVBQUUsU0FBb0IsRUFBRSxFQUFFLENBQUMsS0FBSyxJQUFJLEVBQUU7WUFDdkUsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQztZQUUvQixNQUFNLEVBQUUsSUFBSSxFQUFFLHNCQUFzQixFQUFFLEdBQUcsT0FBTyxDQUFDO2dCQUM3QyxTQUFTO2FBQ1osQ0FBQyxDQUFDO1lBQ0gsSUFBSSxXQUFXLEdBQUcsSUFBSSxPQUFPLENBQWMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUNyRSxJQUFJLHNCQUFzQixFQUFFLENBQUM7Z0JBQ3pCLFdBQVcsR0FBRyxzQkFBc0IsQ0FBQztZQUN6QyxDQUFDO1lBQ0QsT0FBTyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUMzQixXQUFXLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztnQkFDeEIsT0FBTyxJQUFJLENBQUM7WUFDaEIsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDO1FBQ0QsSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLGtCQUFrQixDQUFDO0tBQzFDO0lBQ0Q7UUFDSSxPQUFPLEVBQUUsWUFBWTtRQUNyQixVQUFVLEVBQUUsQ0FBQyxXQUF3QixFQUFFLEVBQUUsQ0FBQyxXQUFXLENBQUMsSUFBSTtRQUMxRCxJQUFJLEVBQUUsQ0FBQyxXQUFXLENBQUM7S0FDdEI7SUFDRCxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxlQUFlLElBQUksSUFBSSxFQUFFO0lBQ3ZFLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE9BQU8sSUFBSSxFQUFFLEVBQUU7Q0FDaEUsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQVBQX0lOSVRJQUxJWkVSLCBMT0NBTEVfSUQsIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHR5cGUgeyBLY0NvbnRleHQgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9hY2NvdW50L0tjQ29udGV4dCc7XG5pbXBvcnQgeyBJMThuU2VydmljZSB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2FjY291bnQvc2VydmljZXMvaTE4bic7XG5pbXBvcnQgeyBBQ0NPVU5UX0NMQVNTRVMgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9hY2NvdW50L3Rva2Vucy9jbGFzc2VzJztcbmltcG9ydCB7IEFDQ09VTlRfSTE4TiB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2FjY291bnQvdG9rZW5zL2kxOG4nO1xuaW1wb3J0IHsgS0NfQUNDT1VOVF9DT05URVhUIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvYWNjb3VudC90b2tlbnMva2MtY29udGV4dCc7XG5pbXBvcnQgeyBVU0VfREVGQVVMVF9DU1MgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9saWIvdG9rZW5zL3VzZS1kZWZhdWx0LWNzcyc7XG5pbXBvcnQgeyB0eXBlIEtjQ29udGV4dExpa2UgfSBmcm9tICdrZXljbG9ha2lmeS9hY2NvdW50L2kxOG4vbm9Kc3gnO1xuaW1wb3J0IHR5cGUgeyBDbGFzc0tleSB9IGZyb20gJ2tleWNsb2FraWZ5L2FjY291bnQvbGliL2tjQ2xzeCc7XG5cbmV4cG9ydCB0eXBlIEtleWNsb2FraWZ5QW5ndWxhckFjY291bnRDb25maWcgPSB7XG4gICAgZG9Vc2VEZWZhdWx0Q3NzPzogYm9vbGVhbjtcbiAgICBjbGFzc2VzPzogeyBba2V5IGluIENsYXNzS2V5XT86IHN0cmluZyB9O1xuICAgIGtjQ29udGV4dDogdW5rbm93bjtcbiAgICBnZXRJMThuOiAocGFyYW1zOiB7IGtjQ29udGV4dDogS2NDb250ZXh0TGlrZSB9KSA9PiB7XG4gICAgICAgIGkxOG46IHVua25vd247XG4gICAgICAgIHBySTE4bl9jdXJyZW50TGFuZ3VhZ2U6IFByb21pc2U8dW5rbm93bj4gfCB1bmRlZmluZWQ7XG4gICAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBwcm92aWRlS2V5Y2xvYWtpZnlBbmd1bGFyID0gKGNvbmZpZzogS2V5Y2xvYWtpZnlBbmd1bGFyQWNjb3VudENvbmZpZykgPT5cbiAgICBtYWtlRW52aXJvbm1lbnRQcm92aWRlcnMoW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBLQ19BQ0NPVU5UX0NPTlRFWFQsXG4gICAgICAgICAgICB1c2VWYWx1ZTogY29uZmlnLmtjQ29udGV4dFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBMT0NBTEVfSUQsXG4gICAgICAgICAgICB1c2VGYWN0b3J5OiAoZG9jdW1lbnQ6IERvY3VtZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5sYW5nID8/ICdlbic7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZGVwczogW0RPQ1VNRU5UXVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBBUFBfSU5JVElBTElaRVIsXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgICAgICAgIHVzZUZhY3Rvcnk6IChpMThuU2VydmljZTogSTE4blNlcnZpY2UsIGtjQ29udGV4dDogS2NDb250ZXh0KSA9PiBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgZ2V0STE4biA9IGNvbmZpZy5nZXRJMThuO1xuXG4gICAgICAgICAgICAgICAgY29uc3QgeyBpMThuLCBwckkxOG5fY3VycmVudExhbmd1YWdlIH0gPSBnZXRJMThuKHtcbiAgICAgICAgICAgICAgICAgICAga2NDb250ZXh0XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgbGV0IGkxOG5Qcm9taXNlID0gbmV3IFByb21pc2U8dHlwZW9mIGkxOG4+KHJlc29sdmUgPT4gcmVzb2x2ZShpMThuKSk7XG4gICAgICAgICAgICAgICAgaWYgKHBySTE4bl9jdXJyZW50TGFuZ3VhZ2UpIHtcbiAgICAgICAgICAgICAgICAgICAgaTE4blByb21pc2UgPSBwckkxOG5fY3VycmVudExhbmd1YWdlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gaTE4blByb21pc2UudGhlbihpMThuID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaTE4blNlcnZpY2UuaTE4biA9IGkxOG47XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGRlcHM6IFtJMThuU2VydmljZSwgS0NfQUNDT1VOVF9DT05URVhUXVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBBQ0NPVU5UX0kxOE4sXG4gICAgICAgICAgICB1c2VGYWN0b3J5OiAoaTE4blNlcnZpY2U6IEkxOG5TZXJ2aWNlKSA9PiBpMThuU2VydmljZS5pMThuLFxuICAgICAgICAgICAgZGVwczogW0kxOG5TZXJ2aWNlXVxuICAgICAgICB9LFxuICAgICAgICB7IHByb3ZpZGU6IFVTRV9ERUZBVUxUX0NTUywgdXNlVmFsdWU6IGNvbmZpZz8uZG9Vc2VEZWZhdWx0Q3NzID8/IHRydWUgfSxcbiAgICAgICAgeyBwcm92aWRlOiBBQ0NPVU5UX0NMQVNTRVMsIHVzZVZhbHVlOiBjb25maWc/LmNsYXNzZXMgPz8ge30gfVxuICAgIF0pO1xuIl19
@@ -23,7 +23,7 @@ export class LoginOauthGrantComponent extends ComponentReference {
23
23
  provide: ComponentReference,
24
24
  useExisting: forwardRef(() => LoginOauthGrantComponent)
25
25
  }
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 client = kcContext.client;\n@let oauth = kcContext.oauth;\n@let url = kcContext.url;\n\n<ng-template #headerNode>\n @let client = kcContext.client;\n @if (client.attributes['logoUri']) {\n <img\n alt=\"\"\n [src]=\"client.attributes['logoUri']\"\n />\n }\n <p>\n {{ i18n.msgStr('oauthGrantTitle', client.name ? i18n.advancedMsgStr(client.name) : client.clientId) }}\n </p>\n</ng-template>\n\n<div\n id=\"kc-oauth\"\n class=\"content-area\"\n>\n <h3>{{ i18n.msgStr('oauthGrantRequest') }}</h3>\n <ul>\n @for (clientScope of oauth.clientScopesRequested; track clientScope) {\n <li>\n <span>\n {{ i18n.advancedMsgStr(clientScope.consentScreenText) }}\n @if (clientScope.dynamicScopeParameter) {\n : <b>{{ clientScope.dynamicScopeParameter }}</b>\n }\n </span>\n </li>\n }\n </ul>\n\n @if (client.attributes['policyUri'] || client.attributes['tosUri']) {\n <h3>\n @if (client.name) {\n {{ i18n.msgStr('oauthGrantInformation', i18n.advancedMsgStr(client.name)) }}\n } @else {\n {{ i18n.msgStr('oauthGrantInformation', client.clientId) }}\n }\n @if (client.attributes['policyUri']) {\n {{ i18n.msgStr('oauthGrantReview') }}\n <a\n target=\"_blank\"\n [href]=\"client.attributes['policyUri']\"\n >\n {{ i18n.msgStr('oauthGrantPolicy') }}\n </a>\n }\n </h3>\n }\n <form\n class=\"form-actions\"\n method=\"post\"\n [action]=\"url.oauthAction\"\n >\n <input\n type=\"hidden\"\n name=\"code\"\n [value]=\"oauth.code\"\n />\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div id=\"kc-form-options\">\n <div [kcClass]=\"'kcFormOptionsWrapperClass'\"></div>\n </div>\n\n <div id=\"kc-form-buttons\">\n <div [kcClass]=\"'kcFormButtonsWrapperClass'\">\n <input\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doYes')\"\n />\n <input\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonDefaultClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doNo')\"\n />\n </div>\n </div>\n </div>\n </form>\n <div className=\"clearfix\"></div>\n</div>\n", dependencies: [{ kind: "directive", type: KcClassDirective, selector: "[kcClass]", inputs: ["class", "ngClass", "kcClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
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 client = kcContext.client;\n@let oauth = kcContext.oauth;\n@let url = kcContext.url;\n\n<ng-template #headerNode>\n @let client = kcContext.client;\n @if (client.attributes['logoUri']) {\n <img\n alt=\"\"\n [src]=\"client.attributes['logoUri']\"\n />\n }\n <p>\n {{ i18n.msgStr('oauthGrantTitle', client.name ? i18n.advancedMsgStr(client.name) : client.clientId) }}\n </p>\n</ng-template>\n\n<div\n id=\"kc-oauth\"\n class=\"content-area\"\n>\n <h3>{{ i18n.msgStr('oauthGrantRequest') }}</h3>\n <ul>\n @for (clientScope of oauth.clientScopesRequested; track clientScope) {\n <li>\n <span>\n {{ i18n.advancedMsgStr(clientScope.consentScreenText) }}\n @if (clientScope.dynamicScopeParameter) {\n : <b>{{ clientScope.dynamicScopeParameter }}</b>\n }\n </span>\n </li>\n }\n </ul>\n\n @if (client.attributes['policyUri'] || client.attributes['tosUri']) {\n <h3>\n @if (client.name) {\n {{ i18n.msgStr('oauthGrantInformation', i18n.advancedMsgStr(client.name)) }}\n } @else {\n {{ i18n.msgStr('oauthGrantInformation', client.clientId) }}\n }\n @if (client.attributes['policyUri']) {\n {{ i18n.msgStr('oauthGrantReview') }}\n <a\n target=\"_blank\"\n [href]=\"client.attributes['policyUri']\"\n >\n {{ i18n.msgStr('oauthGrantPolicy') }}\n </a>\n }\n </h3>\n }\n <form\n class=\"form-actions\"\n method=\"post\"\n [action]=\"url.oauthAction\"\n >\n <input\n type=\"hidden\"\n name=\"code\"\n [value]=\"oauth.code\"\n />\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div id=\"kc-form-options\">\n <div [kcClass]=\"'kcFormOptionsWrapperClass'\"></div>\n </div>\n\n <div id=\"kc-form-buttons\">\n <div [kcClass]=\"'kcFormButtonsWrapperClass'\">\n <input\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doYes')\"\n />\n <input\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonDefaultClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doNo')\"\n />\n </div>\n </div>\n </div>\n </form>\n <div class=\"clearfix\"></div>\n</div>\n", dependencies: [{ kind: "directive", type: KcClassDirective, selector: "[kcClass]", inputs: ["class", "ngClass", "kcClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
27
27
  }
28
28
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: LoginOauthGrantComponent, decorators: [{
29
29
  type: Component,
@@ -32,6 +32,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
32
32
  provide: ComponentReference,
33
33
  useExisting: forwardRef(() => LoginOauthGrantComponent)
34
34
  }
35
- ], template: "@let client = kcContext.client;\n@let oauth = kcContext.oauth;\n@let url = kcContext.url;\n\n<ng-template #headerNode>\n @let client = kcContext.client;\n @if (client.attributes['logoUri']) {\n <img\n alt=\"\"\n [src]=\"client.attributes['logoUri']\"\n />\n }\n <p>\n {{ i18n.msgStr('oauthGrantTitle', client.name ? i18n.advancedMsgStr(client.name) : client.clientId) }}\n </p>\n</ng-template>\n\n<div\n id=\"kc-oauth\"\n class=\"content-area\"\n>\n <h3>{{ i18n.msgStr('oauthGrantRequest') }}</h3>\n <ul>\n @for (clientScope of oauth.clientScopesRequested; track clientScope) {\n <li>\n <span>\n {{ i18n.advancedMsgStr(clientScope.consentScreenText) }}\n @if (clientScope.dynamicScopeParameter) {\n : <b>{{ clientScope.dynamicScopeParameter }}</b>\n }\n </span>\n </li>\n }\n </ul>\n\n @if (client.attributes['policyUri'] || client.attributes['tosUri']) {\n <h3>\n @if (client.name) {\n {{ i18n.msgStr('oauthGrantInformation', i18n.advancedMsgStr(client.name)) }}\n } @else {\n {{ i18n.msgStr('oauthGrantInformation', client.clientId) }}\n }\n @if (client.attributes['policyUri']) {\n {{ i18n.msgStr('oauthGrantReview') }}\n <a\n target=\"_blank\"\n [href]=\"client.attributes['policyUri']\"\n >\n {{ i18n.msgStr('oauthGrantPolicy') }}\n </a>\n }\n </h3>\n }\n <form\n class=\"form-actions\"\n method=\"post\"\n [action]=\"url.oauthAction\"\n >\n <input\n type=\"hidden\"\n name=\"code\"\n [value]=\"oauth.code\"\n />\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div id=\"kc-form-options\">\n <div [kcClass]=\"'kcFormOptionsWrapperClass'\"></div>\n </div>\n\n <div id=\"kc-form-buttons\">\n <div [kcClass]=\"'kcFormButtonsWrapperClass'\">\n <input\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doYes')\"\n />\n <input\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonDefaultClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doNo')\"\n />\n </div>\n </div>\n </div>\n </form>\n <div className=\"clearfix\"></div>\n</div>\n" }]
35
+ ], template: "@let client = kcContext.client;\n@let oauth = kcContext.oauth;\n@let url = kcContext.url;\n\n<ng-template #headerNode>\n @let client = kcContext.client;\n @if (client.attributes['logoUri']) {\n <img\n alt=\"\"\n [src]=\"client.attributes['logoUri']\"\n />\n }\n <p>\n {{ i18n.msgStr('oauthGrantTitle', client.name ? i18n.advancedMsgStr(client.name) : client.clientId) }}\n </p>\n</ng-template>\n\n<div\n id=\"kc-oauth\"\n class=\"content-area\"\n>\n <h3>{{ i18n.msgStr('oauthGrantRequest') }}</h3>\n <ul>\n @for (clientScope of oauth.clientScopesRequested; track clientScope) {\n <li>\n <span>\n {{ i18n.advancedMsgStr(clientScope.consentScreenText) }}\n @if (clientScope.dynamicScopeParameter) {\n : <b>{{ clientScope.dynamicScopeParameter }}</b>\n }\n </span>\n </li>\n }\n </ul>\n\n @if (client.attributes['policyUri'] || client.attributes['tosUri']) {\n <h3>\n @if (client.name) {\n {{ i18n.msgStr('oauthGrantInformation', i18n.advancedMsgStr(client.name)) }}\n } @else {\n {{ i18n.msgStr('oauthGrantInformation', client.clientId) }}\n }\n @if (client.attributes['policyUri']) {\n {{ i18n.msgStr('oauthGrantReview') }}\n <a\n target=\"_blank\"\n [href]=\"client.attributes['policyUri']\"\n >\n {{ i18n.msgStr('oauthGrantPolicy') }}\n </a>\n }\n </h3>\n }\n <form\n class=\"form-actions\"\n method=\"post\"\n [action]=\"url.oauthAction\"\n >\n <input\n type=\"hidden\"\n name=\"code\"\n [value]=\"oauth.code\"\n />\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div id=\"kc-form-options\">\n <div [kcClass]=\"'kcFormOptionsWrapperClass'\"></div>\n </div>\n\n <div id=\"kc-form-buttons\">\n <div [kcClass]=\"'kcFormButtonsWrapperClass'\">\n <input\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doYes')\"\n />\n <input\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonDefaultClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doNo')\"\n />\n </div>\n </div>\n </div>\n </form>\n <div class=\"clearfix\"></div>\n</div>\n" }]
36
36
  }] });
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4tb2F1dGgtZ3JhbnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xvZ2luL3BhZ2VzL2xvZ2luLW9hdXRoLWdyYW50L2xvZ2luLW9hdXRoLWdyYW50LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9sb2dpbi9wYWdlcy9sb2dpbi1vYXV0aC1ncmFudC9sb2dpbi1vYXV0aC1ncmFudC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQW9CLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwSCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUM1RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUdsRixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDcEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOENBQThDLENBQUM7O0FBZWhGLE1BQU0sT0FBTyx3QkFBeUIsU0FBUSxrQkFBa0I7SUFiaEU7O1FBY0ksY0FBUyxHQUFHLE1BQU0sQ0FBMEQsZ0JBQWdCLENBQUMsQ0FBQztRQUM5RixTQUFJLEdBQUcsTUFBTSxDQUFPLFVBQVUsQ0FBQyxDQUFDO1FBR2hDLGtCQUFhLEdBQUcsT0FBTyxDQUFDO1FBRXhCLDBCQUFxQixHQUFHLEtBQUssQ0FBQztRQUM5QixnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUNwQixtQkFBYyxHQUFHLEtBQUssQ0FBQztRQUV2QixlQUFVLEdBQUcsU0FBUyxDQUEyQixZQUFZLENBQUMsQ0FBQztRQUMvRCxhQUFRLEdBQUcsU0FBUyxDQUEyQixVQUFVLENBQUMsQ0FBQztRQUMzRCx3QkFBbUIsR0FBRyxTQUFTLENBQTJCLHFCQUFxQixDQUFDLENBQUM7S0FDcEY7OEdBZFksd0JBQXdCO2tHQUF4Qix3QkFBd0IsbUVBUHRCO1lBQ1A7Z0JBQ0ksT0FBTyxFQUFFLGtCQUFrQjtnQkFDM0IsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQzthQUMxRDtTQUNKLCtZQ25CTCxzeUZBc0ZBLDRDRDVFYyxnQkFBZ0I7OzJGQVdqQix3QkFBd0I7a0JBYnBDLFNBQVM7aUNBQ00sSUFBSSxXQUNQLENBQUMsZ0JBQWdCLENBQUMsWUFDakIsc0JBQXNCLG1CQUVmLHVCQUF1QixDQUFDLE1BQU0sYUFDcEM7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLGtCQUFrQjs0QkFDM0IsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUseUJBQXlCLENBQUM7eUJBQzFEO3FCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgZm9yd2FyZFJlZiwgaW5qZWN0LCB0eXBlIFRlbXBsYXRlUmVmLCB2aWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbXBvbmVudFJlZmVyZW5jZSB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL2NsYXNzZXMvY29tcG9uZW50LXJlZmVyZW5jZSc7XG5pbXBvcnQgeyBLY0NsYXNzRGlyZWN0aXZlIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vZGlyZWN0aXZlcy9rYy1jbGFzcyc7XG5pbXBvcnQgdHlwZSB7IEkxOG4gfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9pMThuJztcbmltcG9ydCB0eXBlIHsgS2NDb250ZXh0IH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vS2NDb250ZXh0JztcbmltcG9ydCB7IExPR0lOX0kxOE4gfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi90b2tlbnMvaTE4bic7XG5pbXBvcnQgeyBLQ19MT0dJTl9DT05URVhUIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vdG9rZW5zL2tjLWNvbnRleHQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtLY0NsYXNzRGlyZWN0aXZlXSxcbiAgICBzZWxlY3RvcjogJ2tjLWxvZ2luLW9hdXRoLWdyYW50JyxcbiAgICB0ZW1wbGF0ZVVybDogJ2xvZ2luLW9hdXRoLWdyYW50LmNvbXBvbmVudC5odG1sJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogQ29tcG9uZW50UmVmZXJlbmNlLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gTG9naW5PYXV0aEdyYW50Q29tcG9uZW50KVxuICAgICAgICB9XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBMb2dpbk9hdXRoR3JhbnRDb21wb25lbnQgZXh0ZW5kcyBDb21wb25lbnRSZWZlcmVuY2Uge1xuICAgIGtjQ29udGV4dCA9IGluamVjdDxFeHRyYWN0PEtjQ29udGV4dCwgeyBwYWdlSWQ6ICdsb2dpbi1vYXV0aC1ncmFudC5mdGwnIH0+PihLQ19MT0dJTl9DT05URVhUKTtcbiAgICBpMThuID0gaW5qZWN0PEkxOG4+KExPR0lOX0kxOE4pO1xuXG4gICAgZG9jdW1lbnRUaXRsZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIGJvZHlDbGFzc05hbWUgPSAnb2F1dGgnO1xuXG4gICAgZGlzcGxheVJlcXVpcmVkRmllbGRzID0gZmFsc2U7XG4gICAgZGlzcGxheUluZm8gPSBmYWxzZTtcbiAgICBkaXNwbGF5TWVzc2FnZSA9IGZhbHNlO1xuXG4gICAgaGVhZGVyTm9kZSA9IHZpZXdDaGlsZDxUZW1wbGF0ZVJlZjxIVE1MRWxlbWVudD4+KCdoZWFkZXJOb2RlJyk7XG4gICAgaW5mb05vZGUgPSB2aWV3Q2hpbGQ8VGVtcGxhdGVSZWY8SFRNTEVsZW1lbnQ+PignaW5mb05vZGUnKTtcbiAgICBzb2NpYWxQcm92aWRlcnNOb2RlID0gdmlld0NoaWxkPFRlbXBsYXRlUmVmPEhUTUxFbGVtZW50Pj4oJ3NvY2lhbFByb3ZpZGVyc05vZGUnKTtcbn1cbiIsIkBsZXQgY2xpZW50ID0ga2NDb250ZXh0LmNsaWVudDtcbkBsZXQgb2F1dGggPSBrY0NvbnRleHQub2F1dGg7XG5AbGV0IHVybCA9IGtjQ29udGV4dC51cmw7XG5cbjxuZy10ZW1wbGF0ZSAjaGVhZGVyTm9kZT5cbiAgICBAbGV0IGNsaWVudCA9IGtjQ29udGV4dC5jbGllbnQ7XG4gICAgQGlmIChjbGllbnQuYXR0cmlidXRlc1snbG9nb1VyaSddKSB7XG4gICAgICAgIDxpbWdcbiAgICAgICAgICAgIGFsdD1cIlwiXG4gICAgICAgICAgICBbc3JjXT1cImNsaWVudC5hdHRyaWJ1dGVzWydsb2dvVXJpJ11cIlxuICAgICAgICAvPlxuICAgIH1cbiAgICA8cD5cbiAgICAgICAge3sgaTE4bi5tc2dTdHIoJ29hdXRoR3JhbnRUaXRsZScsIGNsaWVudC5uYW1lID8gaTE4bi5hZHZhbmNlZE1zZ1N0cihjbGllbnQubmFtZSkgOiBjbGllbnQuY2xpZW50SWQpIH19XG4gICAgPC9wPlxuPC9uZy10ZW1wbGF0ZT5cblxuPGRpdlxuICAgIGlkPVwia2Mtb2F1dGhcIlxuICAgIGNsYXNzPVwiY29udGVudC1hcmVhXCJcbj5cbiAgICA8aDM+e3sgaTE4bi5tc2dTdHIoJ29hdXRoR3JhbnRSZXF1ZXN0JykgfX08L2gzPlxuICAgIDx1bD5cbiAgICAgICAgQGZvciAoY2xpZW50U2NvcGUgb2Ygb2F1dGguY2xpZW50U2NvcGVzUmVxdWVzdGVkOyB0cmFjayBjbGllbnRTY29wZSkge1xuICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgIDxzcGFuPlxuICAgICAgICAgICAgICAgICAgICB7eyBpMThuLmFkdmFuY2VkTXNnU3RyKGNsaWVudFNjb3BlLmNvbnNlbnRTY3JlZW5UZXh0KSB9fVxuICAgICAgICAgICAgICAgICAgICBAaWYgKGNsaWVudFNjb3BlLmR5bmFtaWNTY29wZVBhcmFtZXRlcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgOiA8Yj57eyBjbGllbnRTY29wZS5keW5hbWljU2NvcGVQYXJhbWV0ZXIgfX08L2I+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L2xpPlxuICAgICAgICB9XG4gICAgPC91bD5cblxuICAgIEBpZiAoY2xpZW50LmF0dHJpYnV0ZXNbJ3BvbGljeVVyaSddIHx8IGNsaWVudC5hdHRyaWJ1dGVzWyd0b3NVcmknXSkge1xuICAgICAgICA8aDM+XG4gICAgICAgICAgICBAaWYgKGNsaWVudC5uYW1lKSB7XG4gICAgICAgICAgICAgICAge3sgaTE4bi5tc2dTdHIoJ29hdXRoR3JhbnRJbmZvcm1hdGlvbicsIGkxOG4uYWR2YW5jZWRNc2dTdHIoY2xpZW50Lm5hbWUpKSB9fVxuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAge3sgaTE4bi5tc2dTdHIoJ29hdXRoR3JhbnRJbmZvcm1hdGlvbicsIGNsaWVudC5jbGllbnRJZCkgfX1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpZiAoY2xpZW50LmF0dHJpYnV0ZXNbJ3BvbGljeVVyaSddKSB7XG4gICAgICAgICAgICAgICAge3sgaTE4bi5tc2dTdHIoJ29hdXRoR3JhbnRSZXZpZXcnKSB9fVxuICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgICAgICAgICAgIFtocmVmXT1cImNsaWVudC5hdHRyaWJ1dGVzWydwb2xpY3lVcmknXVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7eyBpMThuLm1zZ1N0cignb2F1dGhHcmFudFBvbGljeScpIH19XG4gICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgfVxuICAgICAgICA8L2gzPlxuICAgIH1cbiAgICA8Zm9ybVxuICAgICAgICBjbGFzcz1cImZvcm0tYWN0aW9uc1wiXG4gICAgICAgIG1ldGhvZD1cInBvc3RcIlxuICAgICAgICBbYWN0aW9uXT1cInVybC5vYXV0aEFjdGlvblwiXG4gICAgPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIHR5cGU9XCJoaWRkZW5cIlxuICAgICAgICAgICAgbmFtZT1cImNvZGVcIlxuICAgICAgICAgICAgW3ZhbHVlXT1cIm9hdXRoLmNvZGVcIlxuICAgICAgICAvPlxuICAgICAgICA8ZGl2IFtrY0NsYXNzXT1cIidrY0Zvcm1Hcm91cENsYXNzJ1wiPlxuICAgICAgICAgICAgPGRpdiBpZD1cImtjLWZvcm0tb3B0aW9uc1wiPlxuICAgICAgICAgICAgICAgIDxkaXYgW2tjQ2xhc3NdPVwiJ2tjRm9ybU9wdGlvbnNXcmFwcGVyQ2xhc3MnXCI+PC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiBpZD1cImtjLWZvcm0tYnV0dG9uc1wiPlxuICAgICAgICAgICAgICAgIDxkaXYgW2tjQ2xhc3NdPVwiJ2tjRm9ybUJ1dHRvbnNXcmFwcGVyQ2xhc3MnXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInN1Ym1pdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBba2NDbGFzc109XCJbJ2tjQnV0dG9uQ2xhc3MnLCAna2NCdXR0b25QcmltYXJ5Q2xhc3MnLCAna2NCdXR0b25MYXJnZUNsYXNzJ11cIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImkxOG4ubXNnU3RyKCdkb1llcycpXCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwic3VibWl0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtrY0NsYXNzXT1cIlsna2NCdXR0b25DbGFzcycsICdrY0J1dHRvbkRlZmF1bHRDbGFzcycsICdrY0J1dHRvbkxhcmdlQ2xhc3MnXVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiaTE4bi5tc2dTdHIoJ2RvTm8nKVwiXG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9mb3JtPlxuICAgIDxkaXYgY2xhc3NOYW1lPVwiY2xlYXJmaXhcIj48L2Rpdj5cbjwvZGl2PlxuIl19
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4tb2F1dGgtZ3JhbnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xvZ2luL3BhZ2VzL2xvZ2luLW9hdXRoLWdyYW50L2xvZ2luLW9hdXRoLWdyYW50LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9sb2dpbi9wYWdlcy9sb2dpbi1vYXV0aC1ncmFudC9sb2dpbi1vYXV0aC1ncmFudC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQW9CLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwSCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUM1RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUdsRixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDcEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOENBQThDLENBQUM7O0FBZWhGLE1BQU0sT0FBTyx3QkFBeUIsU0FBUSxrQkFBa0I7SUFiaEU7O1FBY0ksY0FBUyxHQUFHLE1BQU0sQ0FBMEQsZ0JBQWdCLENBQUMsQ0FBQztRQUM5RixTQUFJLEdBQUcsTUFBTSxDQUFPLFVBQVUsQ0FBQyxDQUFDO1FBR2hDLGtCQUFhLEdBQUcsT0FBTyxDQUFDO1FBRXhCLDBCQUFxQixHQUFHLEtBQUssQ0FBQztRQUM5QixnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUNwQixtQkFBYyxHQUFHLEtBQUssQ0FBQztRQUV2QixlQUFVLEdBQUcsU0FBUyxDQUEyQixZQUFZLENBQUMsQ0FBQztRQUMvRCxhQUFRLEdBQUcsU0FBUyxDQUEyQixVQUFVLENBQUMsQ0FBQztRQUMzRCx3QkFBbUIsR0FBRyxTQUFTLENBQTJCLHFCQUFxQixDQUFDLENBQUM7S0FDcEY7OEdBZFksd0JBQXdCO2tHQUF4Qix3QkFBd0IsbUVBUHRCO1lBQ1A7Z0JBQ0ksT0FBTyxFQUFFLGtCQUFrQjtnQkFDM0IsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQzthQUMxRDtTQUNKLCtZQ25CTCxreUZBc0ZBLDRDRDVFYyxnQkFBZ0I7OzJGQVdqQix3QkFBd0I7a0JBYnBDLFNBQVM7aUNBQ00sSUFBSSxXQUNQLENBQUMsZ0JBQWdCLENBQUMsWUFDakIsc0JBQXNCLG1CQUVmLHVCQUF1QixDQUFDLE1BQU0sYUFDcEM7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLGtCQUFrQjs0QkFDM0IsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUseUJBQXlCLENBQUM7eUJBQzFEO3FCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgZm9yd2FyZFJlZiwgaW5qZWN0LCB0eXBlIFRlbXBsYXRlUmVmLCB2aWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbXBvbmVudFJlZmVyZW5jZSB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL2NsYXNzZXMvY29tcG9uZW50LXJlZmVyZW5jZSc7XG5pbXBvcnQgeyBLY0NsYXNzRGlyZWN0aXZlIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vZGlyZWN0aXZlcy9rYy1jbGFzcyc7XG5pbXBvcnQgdHlwZSB7IEkxOG4gfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9pMThuJztcbmltcG9ydCB0eXBlIHsgS2NDb250ZXh0IH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vS2NDb250ZXh0JztcbmltcG9ydCB7IExPR0lOX0kxOE4gfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi90b2tlbnMvaTE4bic7XG5pbXBvcnQgeyBLQ19MT0dJTl9DT05URVhUIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vdG9rZW5zL2tjLWNvbnRleHQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtLY0NsYXNzRGlyZWN0aXZlXSxcbiAgICBzZWxlY3RvcjogJ2tjLWxvZ2luLW9hdXRoLWdyYW50JyxcbiAgICB0ZW1wbGF0ZVVybDogJ2xvZ2luLW9hdXRoLWdyYW50LmNvbXBvbmVudC5odG1sJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogQ29tcG9uZW50UmVmZXJlbmNlLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gTG9naW5PYXV0aEdyYW50Q29tcG9uZW50KVxuICAgICAgICB9XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBMb2dpbk9hdXRoR3JhbnRDb21wb25lbnQgZXh0ZW5kcyBDb21wb25lbnRSZWZlcmVuY2Uge1xuICAgIGtjQ29udGV4dCA9IGluamVjdDxFeHRyYWN0PEtjQ29udGV4dCwgeyBwYWdlSWQ6ICdsb2dpbi1vYXV0aC1ncmFudC5mdGwnIH0+PihLQ19MT0dJTl9DT05URVhUKTtcbiAgICBpMThuID0gaW5qZWN0PEkxOG4+KExPR0lOX0kxOE4pO1xuXG4gICAgZG9jdW1lbnRUaXRsZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIGJvZHlDbGFzc05hbWUgPSAnb2F1dGgnO1xuXG4gICAgZGlzcGxheVJlcXVpcmVkRmllbGRzID0gZmFsc2U7XG4gICAgZGlzcGxheUluZm8gPSBmYWxzZTtcbiAgICBkaXNwbGF5TWVzc2FnZSA9IGZhbHNlO1xuXG4gICAgaGVhZGVyTm9kZSA9IHZpZXdDaGlsZDxUZW1wbGF0ZVJlZjxIVE1MRWxlbWVudD4+KCdoZWFkZXJOb2RlJyk7XG4gICAgaW5mb05vZGUgPSB2aWV3Q2hpbGQ8VGVtcGxhdGVSZWY8SFRNTEVsZW1lbnQ+PignaW5mb05vZGUnKTtcbiAgICBzb2NpYWxQcm92aWRlcnNOb2RlID0gdmlld0NoaWxkPFRlbXBsYXRlUmVmPEhUTUxFbGVtZW50Pj4oJ3NvY2lhbFByb3ZpZGVyc05vZGUnKTtcbn1cbiIsIkBsZXQgY2xpZW50ID0ga2NDb250ZXh0LmNsaWVudDtcbkBsZXQgb2F1dGggPSBrY0NvbnRleHQub2F1dGg7XG5AbGV0IHVybCA9IGtjQ29udGV4dC51cmw7XG5cbjxuZy10ZW1wbGF0ZSAjaGVhZGVyTm9kZT5cbiAgICBAbGV0IGNsaWVudCA9IGtjQ29udGV4dC5jbGllbnQ7XG4gICAgQGlmIChjbGllbnQuYXR0cmlidXRlc1snbG9nb1VyaSddKSB7XG4gICAgICAgIDxpbWdcbiAgICAgICAgICAgIGFsdD1cIlwiXG4gICAgICAgICAgICBbc3JjXT1cImNsaWVudC5hdHRyaWJ1dGVzWydsb2dvVXJpJ11cIlxuICAgICAgICAvPlxuICAgIH1cbiAgICA8cD5cbiAgICAgICAge3sgaTE4bi5tc2dTdHIoJ29hdXRoR3JhbnRUaXRsZScsIGNsaWVudC5uYW1lID8gaTE4bi5hZHZhbmNlZE1zZ1N0cihjbGllbnQubmFtZSkgOiBjbGllbnQuY2xpZW50SWQpIH19XG4gICAgPC9wPlxuPC9uZy10ZW1wbGF0ZT5cblxuPGRpdlxuICAgIGlkPVwia2Mtb2F1dGhcIlxuICAgIGNsYXNzPVwiY29udGVudC1hcmVhXCJcbj5cbiAgICA8aDM+e3sgaTE4bi5tc2dTdHIoJ29hdXRoR3JhbnRSZXF1ZXN0JykgfX08L2gzPlxuICAgIDx1bD5cbiAgICAgICAgQGZvciAoY2xpZW50U2NvcGUgb2Ygb2F1dGguY2xpZW50U2NvcGVzUmVxdWVzdGVkOyB0cmFjayBjbGllbnRTY29wZSkge1xuICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgIDxzcGFuPlxuICAgICAgICAgICAgICAgICAgICB7eyBpMThuLmFkdmFuY2VkTXNnU3RyKGNsaWVudFNjb3BlLmNvbnNlbnRTY3JlZW5UZXh0KSB9fVxuICAgICAgICAgICAgICAgICAgICBAaWYgKGNsaWVudFNjb3BlLmR5bmFtaWNTY29wZVBhcmFtZXRlcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgOiA8Yj57eyBjbGllbnRTY29wZS5keW5hbWljU2NvcGVQYXJhbWV0ZXIgfX08L2I+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L2xpPlxuICAgICAgICB9XG4gICAgPC91bD5cblxuICAgIEBpZiAoY2xpZW50LmF0dHJpYnV0ZXNbJ3BvbGljeVVyaSddIHx8IGNsaWVudC5hdHRyaWJ1dGVzWyd0b3NVcmknXSkge1xuICAgICAgICA8aDM+XG4gICAgICAgICAgICBAaWYgKGNsaWVudC5uYW1lKSB7XG4gICAgICAgICAgICAgICAge3sgaTE4bi5tc2dTdHIoJ29hdXRoR3JhbnRJbmZvcm1hdGlvbicsIGkxOG4uYWR2YW5jZWRNc2dTdHIoY2xpZW50Lm5hbWUpKSB9fVxuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAge3sgaTE4bi5tc2dTdHIoJ29hdXRoR3JhbnRJbmZvcm1hdGlvbicsIGNsaWVudC5jbGllbnRJZCkgfX1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpZiAoY2xpZW50LmF0dHJpYnV0ZXNbJ3BvbGljeVVyaSddKSB7XG4gICAgICAgICAgICAgICAge3sgaTE4bi5tc2dTdHIoJ29hdXRoR3JhbnRSZXZpZXcnKSB9fVxuICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgICAgICAgICAgIFtocmVmXT1cImNsaWVudC5hdHRyaWJ1dGVzWydwb2xpY3lVcmknXVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7eyBpMThuLm1zZ1N0cignb2F1dGhHcmFudFBvbGljeScpIH19XG4gICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgfVxuICAgICAgICA8L2gzPlxuICAgIH1cbiAgICA8Zm9ybVxuICAgICAgICBjbGFzcz1cImZvcm0tYWN0aW9uc1wiXG4gICAgICAgIG1ldGhvZD1cInBvc3RcIlxuICAgICAgICBbYWN0aW9uXT1cInVybC5vYXV0aEFjdGlvblwiXG4gICAgPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIHR5cGU9XCJoaWRkZW5cIlxuICAgICAgICAgICAgbmFtZT1cImNvZGVcIlxuICAgICAgICAgICAgW3ZhbHVlXT1cIm9hdXRoLmNvZGVcIlxuICAgICAgICAvPlxuICAgICAgICA8ZGl2IFtrY0NsYXNzXT1cIidrY0Zvcm1Hcm91cENsYXNzJ1wiPlxuICAgICAgICAgICAgPGRpdiBpZD1cImtjLWZvcm0tb3B0aW9uc1wiPlxuICAgICAgICAgICAgICAgIDxkaXYgW2tjQ2xhc3NdPVwiJ2tjRm9ybU9wdGlvbnNXcmFwcGVyQ2xhc3MnXCI+PC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiBpZD1cImtjLWZvcm0tYnV0dG9uc1wiPlxuICAgICAgICAgICAgICAgIDxkaXYgW2tjQ2xhc3NdPVwiJ2tjRm9ybUJ1dHRvbnNXcmFwcGVyQ2xhc3MnXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInN1Ym1pdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBba2NDbGFzc109XCJbJ2tjQnV0dG9uQ2xhc3MnLCAna2NCdXR0b25QcmltYXJ5Q2xhc3MnLCAna2NCdXR0b25MYXJnZUNsYXNzJ11cIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImkxOG4ubXNnU3RyKCdkb1llcycpXCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwic3VibWl0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtrY0NsYXNzXT1cIlsna2NCdXR0b25DbGFzcycsICdrY0J1dHRvbkRlZmF1bHRDbGFzcycsICdrY0J1dHRvbkxhcmdlQ2xhc3MnXVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiaTE4bi5tc2dTdHIoJ2RvTm8nKVwiXG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9mb3JtPlxuICAgIDxkaXYgY2xhc3M9XCJjbGVhcmZpeFwiPjwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -41,7 +41,7 @@ export class RegisterComponent extends ComponentReference {
41
41
  provide: ComponentReference,
42
42
  useExisting: forwardRef(() => RegisterComponent)
43
43
  }
44
- ], 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 messagesPerField = kcContext.messagesPerField;\n@let recaptchaRequired = kcContext.recaptchaRequired;\n@let recaptchaVisible = kcContext.recaptchaVisible;\n@let recaptchaSiteKey = kcContext.recaptchaSiteKey;\n@let recaptchaAction = kcContext.recaptchaAction;\n@let termsAcceptanceRequired = kcContext.termsAcceptanceRequired;\n\n<ng-template #headerNode>\n @let messageHeader = kcContext.messageHeader;\n {{ messageHeader ?? i18n.advancedMsgStr('registerTitle') }}\n</ng-template>\n<form\n id=\"kc-register-form\"\n method=\"post\"\n [kcClass]=\"'kcFormClass'\"\n [action]=\"url.registrationAction\"\n>\n <ng-container [ngComponentOutlet]=\"userProfileFormFields() ?? null\" />\n @if (termsAcceptanceRequired) {\n <div className=\"form-group\">\n <div [kcClass]=\"'kcInputWrapperClass'\">\n {{ i18n.msgStr('termsTitle') }}\n <div id=\"kc-registration-terms-text\">\n {{ i18n.msgStr('termsText') }}\n </div>\n </div>\n </div>\n <div className=\"form-group\">\n <div [kcClass]=\"'kcLabelWrapperClass'\">\n <input\n type=\"checkbox\"\n id=\"termsAccepted\"\n name=\"termsAccepted\"\n [kcClass]=\"'kcCheckboxInputClass'\"\n [checked]=\"areTermsAccepted()\"\n [attr.aria-invalid]=\"messagesPerField.existsError('termsAccepted')\"\n (change)=\"areTermsAccepted.set($any($event.target).checked)\"\n />\n <label\n for=\"termsAccepted\"\n [kcClass]=\"'kcLabelClass'\"\n >\n {{ i18n.msgStr('acceptTerms') }}\n </label>\n </div>\n @if (messagesPerField.existsError('termsAccepted')) {\n <div [kcClass]=\"'kcLabelWrapperClass'\">\n <span\n id=\"input-error-terms-accepted\"\n aria-live=\"polite\"\n [kcClass]=\"'kcInputErrorMessageClass'\"\n [innerHtml]=\"messagesPerField.get('termsAccepted') | kcSanitize: 'html'\"\n ></span>\n </div>\n }\n </div>\n }\n @if (recaptchaRequired && (recaptchaVisible || recaptchaAction === undefined)) {\n <div className=\"form-group\">\n <div [kcClass]=\"'kcInputWrapperClass'\">\n <div\n class=\"g-recaptcha\"\n data-size=\"compact\"\n [attr.data-sitekey]=\"recaptchaSiteKey\"\n [attr.data-action]=\"recaptchaAction\"\n ></div>\n </div>\n </div>\n }\n\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div\n id=\"kc-form-options\"\n [kcClass]=\"'kcFormOptionsClass'\"\n >\n <div [kcClass]=\"'kcFormOptionsWrapperClass'\">\n <span>\n <a\n [href]=\"url.loginUrl\"\n [innerHTML]=\"i18n.msgStr('backToLogin') | kcSanitize: 'html'\"\n ></a>\n </span>\n </div>\n </div>\n @if (recaptchaRequired && !recaptchaVisible && recaptchaAction !== undefined) {\n <div\n id=\"kc-form-buttons\"\n [kcClass]=\"'kcFormButtonsClass'\"\n >\n <button\n class=\"g-recaptcha\"\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n [attr.data-sitekey]=\"recaptchaSiteKey\"\n [attr.data-callback]=\"onCallback\"\n [attr.data-action]=\"recaptchaAction\"\n >\n {{ i18n.msgStr('doRegister') }}\n </button>\n </div>\n } @else {\n <div\n id=\"kc-form-buttons\"\n [kcClass]=\"'kcFormButtonsClass'\"\n >\n <input\n type=\"submit\"\n [disabled]=\"!isFormSubmittable() || (termsAcceptanceRequired && !areTermsAccepted())\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doRegister')\"\n />\n </div>\n }\n </div>\n</form>\n", dependencies: [{ kind: "directive", type: KcClassDirective, selector: "[kcClass]", inputs: ["class", "ngClass", "kcClass"] }, { kind: "pipe", type: KcSanitizePipe, name: "kcSanitize" }, { kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
44
+ ], 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 messagesPerField = kcContext.messagesPerField;\n@let recaptchaRequired = kcContext.recaptchaRequired;\n@let recaptchaVisible = kcContext.recaptchaVisible;\n@let recaptchaSiteKey = kcContext.recaptchaSiteKey;\n@let recaptchaAction = kcContext.recaptchaAction;\n@let termsAcceptanceRequired = kcContext.termsAcceptanceRequired;\n\n<ng-template #headerNode>\n @let messageHeader = kcContext.messageHeader;\n {{ messageHeader ?? i18n.advancedMsgStr('registerTitle') }}\n</ng-template>\n<form\n id=\"kc-register-form\"\n method=\"post\"\n [kcClass]=\"'kcFormClass'\"\n [action]=\"url.registrationAction\"\n>\n <ng-container [ngComponentOutlet]=\"userProfileFormFields() ?? null\" />\n @if (termsAcceptanceRequired) {\n <div class=\"form-group\">\n <div [kcClass]=\"'kcInputWrapperClass'\">\n {{ i18n.msgStr('termsTitle') }}\n <div id=\"kc-registration-terms-text\">\n {{ i18n.msgStr('termsText') }}\n </div>\n </div>\n </div>\n <div class=\"form-group\">\n <div [kcClass]=\"'kcLabelWrapperClass'\">\n <input\n type=\"checkbox\"\n id=\"termsAccepted\"\n name=\"termsAccepted\"\n [kcClass]=\"'kcCheckboxInputClass'\"\n [checked]=\"areTermsAccepted()\"\n [attr.aria-invalid]=\"messagesPerField.existsError('termsAccepted')\"\n (change)=\"areTermsAccepted.set($any($event.target).checked)\"\n />\n <label\n for=\"termsAccepted\"\n [kcClass]=\"'kcLabelClass'\"\n >\n {{ i18n.msgStr('acceptTerms') }}\n </label>\n </div>\n @if (messagesPerField.existsError('termsAccepted')) {\n <div [kcClass]=\"'kcLabelWrapperClass'\">\n <span\n id=\"input-error-terms-accepted\"\n aria-live=\"polite\"\n [kcClass]=\"'kcInputErrorMessageClass'\"\n [innerHtml]=\"messagesPerField.get('termsAccepted') | kcSanitize: 'html'\"\n ></span>\n </div>\n }\n </div>\n }\n @if (recaptchaRequired && (recaptchaVisible || recaptchaAction === undefined)) {\n <div class=\"form-group\">\n <div [kcClass]=\"'kcInputWrapperClass'\">\n <div\n class=\"g-recaptcha\"\n data-size=\"compact\"\n [attr.data-sitekey]=\"recaptchaSiteKey\"\n [attr.data-action]=\"recaptchaAction\"\n ></div>\n </div>\n </div>\n }\n\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div\n id=\"kc-form-options\"\n [kcClass]=\"'kcFormOptionsClass'\"\n >\n <div [kcClass]=\"'kcFormOptionsWrapperClass'\">\n <span>\n <a\n [href]=\"url.loginUrl\"\n [innerHTML]=\"i18n.msgStr('backToLogin') | kcSanitize: 'html'\"\n ></a>\n </span>\n </div>\n </div>\n @if (recaptchaRequired && !recaptchaVisible && recaptchaAction !== undefined) {\n <div\n id=\"kc-form-buttons\"\n [kcClass]=\"'kcFormButtonsClass'\"\n >\n <button\n class=\"g-recaptcha\"\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n [attr.data-sitekey]=\"recaptchaSiteKey\"\n [attr.data-callback]=\"onCallback\"\n [attr.data-action]=\"recaptchaAction\"\n >\n {{ i18n.msgStr('doRegister') }}\n </button>\n </div>\n } @else {\n <div\n id=\"kc-form-buttons\"\n [kcClass]=\"'kcFormButtonsClass'\"\n >\n <input\n type=\"submit\"\n [disabled]=\"!isFormSubmittable() || (termsAcceptanceRequired && !areTermsAccepted())\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doRegister')\"\n />\n </div>\n }\n </div>\n</form>\n", dependencies: [{ kind: "directive", type: KcClassDirective, selector: "[kcClass]", inputs: ["class", "ngClass", "kcClass"] }, { kind: "pipe", type: KcSanitizePipe, name: "kcSanitize" }, { kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
45
45
  }
46
46
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: RegisterComponent, decorators: [{
47
47
  type: Component,
@@ -50,6 +50,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
50
50
  provide: ComponentReference,
51
51
  useExisting: forwardRef(() => RegisterComponent)
52
52
  }
53
- ], template: "@let url = kcContext.url;\n@let messagesPerField = kcContext.messagesPerField;\n@let recaptchaRequired = kcContext.recaptchaRequired;\n@let recaptchaVisible = kcContext.recaptchaVisible;\n@let recaptchaSiteKey = kcContext.recaptchaSiteKey;\n@let recaptchaAction = kcContext.recaptchaAction;\n@let termsAcceptanceRequired = kcContext.termsAcceptanceRequired;\n\n<ng-template #headerNode>\n @let messageHeader = kcContext.messageHeader;\n {{ messageHeader ?? i18n.advancedMsgStr('registerTitle') }}\n</ng-template>\n<form\n id=\"kc-register-form\"\n method=\"post\"\n [kcClass]=\"'kcFormClass'\"\n [action]=\"url.registrationAction\"\n>\n <ng-container [ngComponentOutlet]=\"userProfileFormFields() ?? null\" />\n @if (termsAcceptanceRequired) {\n <div className=\"form-group\">\n <div [kcClass]=\"'kcInputWrapperClass'\">\n {{ i18n.msgStr('termsTitle') }}\n <div id=\"kc-registration-terms-text\">\n {{ i18n.msgStr('termsText') }}\n </div>\n </div>\n </div>\n <div className=\"form-group\">\n <div [kcClass]=\"'kcLabelWrapperClass'\">\n <input\n type=\"checkbox\"\n id=\"termsAccepted\"\n name=\"termsAccepted\"\n [kcClass]=\"'kcCheckboxInputClass'\"\n [checked]=\"areTermsAccepted()\"\n [attr.aria-invalid]=\"messagesPerField.existsError('termsAccepted')\"\n (change)=\"areTermsAccepted.set($any($event.target).checked)\"\n />\n <label\n for=\"termsAccepted\"\n [kcClass]=\"'kcLabelClass'\"\n >\n {{ i18n.msgStr('acceptTerms') }}\n </label>\n </div>\n @if (messagesPerField.existsError('termsAccepted')) {\n <div [kcClass]=\"'kcLabelWrapperClass'\">\n <span\n id=\"input-error-terms-accepted\"\n aria-live=\"polite\"\n [kcClass]=\"'kcInputErrorMessageClass'\"\n [innerHtml]=\"messagesPerField.get('termsAccepted') | kcSanitize: 'html'\"\n ></span>\n </div>\n }\n </div>\n }\n @if (recaptchaRequired && (recaptchaVisible || recaptchaAction === undefined)) {\n <div className=\"form-group\">\n <div [kcClass]=\"'kcInputWrapperClass'\">\n <div\n class=\"g-recaptcha\"\n data-size=\"compact\"\n [attr.data-sitekey]=\"recaptchaSiteKey\"\n [attr.data-action]=\"recaptchaAction\"\n ></div>\n </div>\n </div>\n }\n\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div\n id=\"kc-form-options\"\n [kcClass]=\"'kcFormOptionsClass'\"\n >\n <div [kcClass]=\"'kcFormOptionsWrapperClass'\">\n <span>\n <a\n [href]=\"url.loginUrl\"\n [innerHTML]=\"i18n.msgStr('backToLogin') | kcSanitize: 'html'\"\n ></a>\n </span>\n </div>\n </div>\n @if (recaptchaRequired && !recaptchaVisible && recaptchaAction !== undefined) {\n <div\n id=\"kc-form-buttons\"\n [kcClass]=\"'kcFormButtonsClass'\"\n >\n <button\n class=\"g-recaptcha\"\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n [attr.data-sitekey]=\"recaptchaSiteKey\"\n [attr.data-callback]=\"onCallback\"\n [attr.data-action]=\"recaptchaAction\"\n >\n {{ i18n.msgStr('doRegister') }}\n </button>\n </div>\n } @else {\n <div\n id=\"kc-form-buttons\"\n [kcClass]=\"'kcFormButtonsClass'\"\n >\n <input\n type=\"submit\"\n [disabled]=\"!isFormSubmittable() || (termsAcceptanceRequired && !areTermsAccepted())\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doRegister')\"\n />\n </div>\n }\n </div>\n</form>\n" }]
53
+ ], template: "@let url = kcContext.url;\n@let messagesPerField = kcContext.messagesPerField;\n@let recaptchaRequired = kcContext.recaptchaRequired;\n@let recaptchaVisible = kcContext.recaptchaVisible;\n@let recaptchaSiteKey = kcContext.recaptchaSiteKey;\n@let recaptchaAction = kcContext.recaptchaAction;\n@let termsAcceptanceRequired = kcContext.termsAcceptanceRequired;\n\n<ng-template #headerNode>\n @let messageHeader = kcContext.messageHeader;\n {{ messageHeader ?? i18n.advancedMsgStr('registerTitle') }}\n</ng-template>\n<form\n id=\"kc-register-form\"\n method=\"post\"\n [kcClass]=\"'kcFormClass'\"\n [action]=\"url.registrationAction\"\n>\n <ng-container [ngComponentOutlet]=\"userProfileFormFields() ?? null\" />\n @if (termsAcceptanceRequired) {\n <div class=\"form-group\">\n <div [kcClass]=\"'kcInputWrapperClass'\">\n {{ i18n.msgStr('termsTitle') }}\n <div id=\"kc-registration-terms-text\">\n {{ i18n.msgStr('termsText') }}\n </div>\n </div>\n </div>\n <div class=\"form-group\">\n <div [kcClass]=\"'kcLabelWrapperClass'\">\n <input\n type=\"checkbox\"\n id=\"termsAccepted\"\n name=\"termsAccepted\"\n [kcClass]=\"'kcCheckboxInputClass'\"\n [checked]=\"areTermsAccepted()\"\n [attr.aria-invalid]=\"messagesPerField.existsError('termsAccepted')\"\n (change)=\"areTermsAccepted.set($any($event.target).checked)\"\n />\n <label\n for=\"termsAccepted\"\n [kcClass]=\"'kcLabelClass'\"\n >\n {{ i18n.msgStr('acceptTerms') }}\n </label>\n </div>\n @if (messagesPerField.existsError('termsAccepted')) {\n <div [kcClass]=\"'kcLabelWrapperClass'\">\n <span\n id=\"input-error-terms-accepted\"\n aria-live=\"polite\"\n [kcClass]=\"'kcInputErrorMessageClass'\"\n [innerHtml]=\"messagesPerField.get('termsAccepted') | kcSanitize: 'html'\"\n ></span>\n </div>\n }\n </div>\n }\n @if (recaptchaRequired && (recaptchaVisible || recaptchaAction === undefined)) {\n <div class=\"form-group\">\n <div [kcClass]=\"'kcInputWrapperClass'\">\n <div\n class=\"g-recaptcha\"\n data-size=\"compact\"\n [attr.data-sitekey]=\"recaptchaSiteKey\"\n [attr.data-action]=\"recaptchaAction\"\n ></div>\n </div>\n </div>\n }\n\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div\n id=\"kc-form-options\"\n [kcClass]=\"'kcFormOptionsClass'\"\n >\n <div [kcClass]=\"'kcFormOptionsWrapperClass'\">\n <span>\n <a\n [href]=\"url.loginUrl\"\n [innerHTML]=\"i18n.msgStr('backToLogin') | kcSanitize: 'html'\"\n ></a>\n </span>\n </div>\n </div>\n @if (recaptchaRequired && !recaptchaVisible && recaptchaAction !== undefined) {\n <div\n id=\"kc-form-buttons\"\n [kcClass]=\"'kcFormButtonsClass'\"\n >\n <button\n class=\"g-recaptcha\"\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n [attr.data-sitekey]=\"recaptchaSiteKey\"\n [attr.data-callback]=\"onCallback\"\n [attr.data-action]=\"recaptchaAction\"\n >\n {{ i18n.msgStr('doRegister') }}\n </button>\n </div>\n } @else {\n <div\n id=\"kc-form-buttons\"\n [kcClass]=\"'kcFormButtonsClass'\"\n >\n <input\n type=\"submit\"\n [disabled]=\"!isFormSubmittable() || (termsAcceptanceRequired && !areTermsAccepted())\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doRegister')\"\n />\n </div>\n }\n </div>\n</form>\n" }]
54
54
  }], ctorParameters: () => [] });
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xvZ2luL3BhZ2VzL3JlZ2lzdGVyL3JlZ2lzdGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9sb2dpbi9wYWdlcy9yZWdpc3Rlci9yZWdpc3Rlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUEwQixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekksT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUNsRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUU1RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUdsRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDM0UsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQzs7QUFnQmhGLE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxrQkFBa0I7SUFDckQsY0FBYyxDQUF5QjtJQXNCdkM7UUFDSSxLQUFLLEVBQUUsQ0FBQztRQXZCWixtQkFBYyxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN2QyxjQUFTLEdBQUcsTUFBTSxDQUFpRCxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3JGLFNBQUksR0FBRyxNQUFNLENBQU8sVUFBVSxDQUFDLENBQUM7UUFFdkIsb0JBQWUsR0FBRyxNQUFNLENBQVUsZUFBZSxDQUFDLENBQUM7UUFDbkQsWUFBTyxHQUFHLE1BQU0sQ0FBb0MsYUFBYSxDQUFDLENBQUM7UUFLNUUsMEJBQXFCLEdBQUcsS0FBSyxDQUFDO1FBQzlCLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLG1CQUFjLEdBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUVuRixlQUFVLEdBQUcsU0FBUyxDQUEyQixZQUFZLENBQUMsQ0FBQztRQUMvRCxhQUFRLEdBQUcsU0FBUyxDQUEyQixVQUFVLENBQUMsQ0FBQztRQUMzRCx3QkFBbUIsR0FBRyxTQUFTLENBQTJCLHFCQUFxQixDQUFDLENBQUM7UUFFakYsc0JBQWlCLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xDLHFCQUFnQixHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqQywwQkFBcUIsR0FBRyxLQUFLLEVBQXdDLENBQUM7UUFJbEUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLEVBQUU7WUFDakYsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUM1QyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFDRCxVQUFVO1FBQ0wsUUFBUSxDQUFDLGNBQWMsQ0FBQyxrQkFBa0IsQ0FBcUIsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUM5RSxDQUFDOzhHQS9CUSxpQkFBaUI7a0dBQWpCLGlCQUFpQiw4T0FQZjtZQUNQO2dCQUNJLE9BQU8sRUFBRSxrQkFBa0I7Z0JBQzNCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsaUJBQWlCLENBQUM7YUFDbkQ7U0FDSiwrWUMzQkwsb2pKQW9IQSw0Q0QvRmMsZ0JBQWdCLDBGQUFhLGNBQWMsbURBQVcsaUJBQWlCOzsyRkFReEUsaUJBQWlCO2tCQWI3QixTQUFTOytCQUNJLGFBQWEsY0FFWCxJQUFJLG1CQUNDLHVCQUF1QixDQUFDLE1BQU0sV0FDdEMsQ0FBQyxnQkFBZ0IsRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsQ0FBQyxhQUN2RTt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsa0JBQWtCOzRCQUMzQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxrQkFBa0IsQ0FBQzt5QkFDbkQ7cUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBc3luY1BpcGUsIE5nQ2xhc3MsIE5nQ29tcG9uZW50T3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGZvcndhcmRSZWYsIGluamVjdCwgaW5wdXQsIHNpZ25hbCwgdHlwZSBUZW1wbGF0ZVJlZiwgVHlwZSwgdmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBLY1Nhbml0aXplUGlwZSB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xpYi9waXBlcy9rYy1zYW5pdGl6ZSc7XG5pbXBvcnQgeyBVU0VfREVGQVVMVF9DU1MgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9saWIvdG9rZW5zL3VzZS1kZWZhdWx0LWNzcyc7XG5pbXBvcnQgeyBDb21wb25lbnRSZWZlcmVuY2UgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9jbGFzc2VzL2NvbXBvbmVudC1yZWZlcmVuY2UnO1xuaW1wb3J0IHsgVXNlclByb2ZpbGVGb3JtRmllbGRzQ29tcG9uZW50IH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vY29tcG9uZW50cy91c2VyLXByb2ZpbGUtZm9ybS1maWVsZHMnO1xuaW1wb3J0IHsgS2NDbGFzc0RpcmVjdGl2ZSB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL2RpcmVjdGl2ZXMva2MtY2xhc3MnO1xuaW1wb3J0IHR5cGUgeyBJMThuIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vaTE4bic7XG5pbXBvcnQgdHlwZSB7IEtjQ29udGV4dCB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL0tjQ29udGV4dCc7XG5pbXBvcnQgeyBTdWJtaXRTZXJ2aWNlIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vc2VydmljZXMvc3VibWl0JztcbmltcG9ydCB7IExPR0lOX0NMQVNTRVMgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi90b2tlbnMvY2xhc3Nlcyc7XG5pbXBvcnQgeyBMT0dJTl9JMThOIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vdG9rZW5zL2kxOG4nO1xuaW1wb3J0IHsgS0NfTE9HSU5fQ09OVEVYVCB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL3Rva2Vucy9rYy1jb250ZXh0JztcbmltcG9ydCB0eXBlIHsgQ2xhc3NLZXkgfSBmcm9tICdrZXljbG9ha2lmeS9sb2dpbi9saWIva2NDbHN4JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdrYy1yZWdpc3RlcicsXG4gICAgdGVtcGxhdGVVcmw6ICdyZWdpc3Rlci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBpbXBvcnRzOiBbS2NDbGFzc0RpcmVjdGl2ZSwgQXN5bmNQaXBlLCBLY1Nhbml0aXplUGlwZSwgTmdDbGFzcywgTmdDb21wb25lbnRPdXRsZXRdLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBDb21wb25lbnRSZWZlcmVuY2UsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBSZWdpc3RlckNvbXBvbmVudClcbiAgICAgICAgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgUmVnaXN0ZXJDb21wb25lbnQgZXh0ZW5kcyBDb21wb25lbnRSZWZlcmVuY2Uge1xuICAgICNzdWJtaXRTZXJ2aWNlID0gaW5qZWN0KFN1Ym1pdFNlcnZpY2UpO1xuICAgIGtjQ29udGV4dCA9IGluamVjdDxFeHRyYWN0PEtjQ29udGV4dCwgeyBwYWdlSWQ6ICdyZWdpc3Rlci5mdGwnIH0+PihLQ19MT0dJTl9DT05URVhUKTtcbiAgICBpMThuID0gaW5qZWN0PEkxOG4+KExPR0lOX0kxOE4pO1xuXG4gICAgb3ZlcnJpZGUgZG9Vc2VEZWZhdWx0Q3NzID0gaW5qZWN0PGJvb2xlYW4+KFVTRV9ERUZBVUxUX0NTUyk7XG4gICAgb3ZlcnJpZGUgY2xhc3NlcyA9IGluamVjdDxQYXJ0aWFsPFJlY29yZDxDbGFzc0tleSwgc3RyaW5nPj4+KExPR0lOX0NMQVNTRVMpO1xuXG4gICAgZG9jdW1lbnRUaXRsZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIGJvZHlDbGFzc05hbWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAgIGRpc3BsYXlSZXF1aXJlZEZpZWxkcyA9IGZhbHNlO1xuICAgIGRpc3BsYXlJbmZvID0gZmFsc2U7XG4gICAgZGlzcGxheU1lc3NhZ2U6IGJvb2xlYW4gPSAhdGhpcy5rY0NvbnRleHQ/Lm1lc3NhZ2VzUGVyRmllbGQ/LmV4aXN0c0Vycm9yKCdnbG9iYWwnKTtcblxuICAgIGhlYWRlck5vZGUgPSB2aWV3Q2hpbGQ8VGVtcGxhdGVSZWY8SFRNTEVsZW1lbnQ+PignaGVhZGVyTm9kZScpO1xuICAgIGluZm9Ob2RlID0gdmlld0NoaWxkPFRlbXBsYXRlUmVmPEhUTUxFbGVtZW50Pj4oJ2luZm9Ob2RlJyk7XG4gICAgc29jaWFsUHJvdmlkZXJzTm9kZSA9IHZpZXdDaGlsZDxUZW1wbGF0ZVJlZjxIVE1MRWxlbWVudD4+KCdzb2NpYWxQcm92aWRlcnNOb2RlJyk7XG5cbiAgICBpc0Zvcm1TdWJtaXR0YWJsZSA9IHNpZ25hbChmYWxzZSk7XG4gICAgYXJlVGVybXNBY2NlcHRlZCA9IHNpZ25hbChmYWxzZSk7XG4gICAgdXNlclByb2ZpbGVGb3JtRmllbGRzID0gaW5wdXQ8VHlwZTxVc2VyUHJvZmlsZUZvcm1GaWVsZHNDb21wb25lbnQ+PigpO1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuI3N1Ym1pdFNlcnZpY2UuaXNTdWJtaXR0YWJsZS5waXBlKHRha2VVbnRpbERlc3Ryb3llZCgpKS5zdWJzY3JpYmUoc3VibWl0dGFibGUgPT4ge1xuICAgICAgICAgICAgdGhpcy5pc0Zvcm1TdWJtaXR0YWJsZS5zZXQoc3VibWl0dGFibGUpO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgb25DYWxsYmFjaygpIHtcbiAgICAgICAgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdrYy1yZWdpc3Rlci1mb3JtJykgYXMgSFRNTEZvcm1FbGVtZW50KS5zdWJtaXQoKTtcbiAgICB9XG59XG4iLCJAbGV0IHVybCA9IGtjQ29udGV4dC51cmw7XG5AbGV0IG1lc3NhZ2VzUGVyRmllbGQgPSBrY0NvbnRleHQubWVzc2FnZXNQZXJGaWVsZDtcbkBsZXQgcmVjYXB0Y2hhUmVxdWlyZWQgPSBrY0NvbnRleHQucmVjYXB0Y2hhUmVxdWlyZWQ7XG5AbGV0IHJlY2FwdGNoYVZpc2libGUgPSBrY0NvbnRleHQucmVjYXB0Y2hhVmlzaWJsZTtcbkBsZXQgcmVjYXB0Y2hhU2l0ZUtleSA9IGtjQ29udGV4dC5yZWNhcHRjaGFTaXRlS2V5O1xuQGxldCByZWNhcHRjaGFBY3Rpb24gPSBrY0NvbnRleHQucmVjYXB0Y2hhQWN0aW9uO1xuQGxldCB0ZXJtc0FjY2VwdGFuY2VSZXF1aXJlZCA9IGtjQ29udGV4dC50ZXJtc0FjY2VwdGFuY2VSZXF1aXJlZDtcblxuPG5nLXRlbXBsYXRlICNoZWFkZXJOb2RlPlxuICAgIEBsZXQgbWVzc2FnZUhlYWRlciA9IGtjQ29udGV4dC5tZXNzYWdlSGVhZGVyO1xuICAgIHt7IG1lc3NhZ2VIZWFkZXIgPz8gaTE4bi5hZHZhbmNlZE1zZ1N0cigncmVnaXN0ZXJUaXRsZScpIH19XG48L25nLXRlbXBsYXRlPlxuPGZvcm1cbiAgICBpZD1cImtjLXJlZ2lzdGVyLWZvcm1cIlxuICAgIG1ldGhvZD1cInBvc3RcIlxuICAgIFtrY0NsYXNzXT1cIidrY0Zvcm1DbGFzcydcIlxuICAgIFthY3Rpb25dPVwidXJsLnJlZ2lzdHJhdGlvbkFjdGlvblwiXG4+XG4gICAgPG5nLWNvbnRhaW5lciBbbmdDb21wb25lbnRPdXRsZXRdPVwidXNlclByb2ZpbGVGb3JtRmllbGRzKCkgPz8gbnVsbFwiIC8+XG4gICAgQGlmICh0ZXJtc0FjY2VwdGFuY2VSZXF1aXJlZCkge1xuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZvcm0tZ3JvdXBcIj5cbiAgICAgICAgICAgIDxkaXYgW2tjQ2xhc3NdPVwiJ2tjSW5wdXRXcmFwcGVyQ2xhc3MnXCI+XG4gICAgICAgICAgICAgICAge3sgaTE4bi5tc2dTdHIoJ3Rlcm1zVGl0bGUnKSB9fVxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJrYy1yZWdpc3RyYXRpb24tdGVybXMtdGV4dFwiPlxuICAgICAgICAgICAgICAgICAgICB7eyBpMThuLm1zZ1N0cigndGVybXNUZXh0JykgfX1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgICAgICA8ZGl2IFtrY0NsYXNzXT1cIidrY0xhYmVsV3JhcHBlckNsYXNzJ1wiPlxuICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgICAgICAgICAgICBpZD1cInRlcm1zQWNjZXB0ZWRcIlxuICAgICAgICAgICAgICAgICAgICBuYW1lPVwidGVybXNBY2NlcHRlZFwiXG4gICAgICAgICAgICAgICAgICAgIFtrY0NsYXNzXT1cIidrY0NoZWNrYm94SW5wdXRDbGFzcydcIlxuICAgICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJhcmVUZXJtc0FjY2VwdGVkKClcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWludmFsaWRdPVwibWVzc2FnZXNQZXJGaWVsZC5leGlzdHNFcnJvcigndGVybXNBY2NlcHRlZCcpXCJcbiAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJhcmVUZXJtc0FjY2VwdGVkLnNldCgkYW55KCRldmVudC50YXJnZXQpLmNoZWNrZWQpXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgICAgICAgICBmb3I9XCJ0ZXJtc0FjY2VwdGVkXCJcbiAgICAgICAgICAgICAgICAgICAgW2tjQ2xhc3NdPVwiJ2tjTGFiZWxDbGFzcydcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3sgaTE4bi5tc2dTdHIoJ2FjY2VwdFRlcm1zJykgfX1cbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICBAaWYgKG1lc3NhZ2VzUGVyRmllbGQuZXhpc3RzRXJyb3IoJ3Rlcm1zQWNjZXB0ZWQnKSkge1xuICAgICAgICAgICAgICAgIDxkaXYgW2tjQ2xhc3NdPVwiJ2tjTGFiZWxXcmFwcGVyQ2xhc3MnXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImlucHV0LWVycm9yLXRlcm1zLWFjY2VwdGVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGl2ZT1cInBvbGl0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBba2NDbGFzc109XCIna2NJbnB1dEVycm9yTWVzc2FnZUNsYXNzJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbaW5uZXJIdG1sXT1cIm1lc3NhZ2VzUGVyRmllbGQuZ2V0KCd0ZXJtc0FjY2VwdGVkJykgfCBrY1Nhbml0aXplOiAnaHRtbCdcIlxuICAgICAgICAgICAgICAgICAgICA+PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICB9XG4gICAgQGlmIChyZWNhcHRjaGFSZXF1aXJlZCAmJiAocmVjYXB0Y2hhVmlzaWJsZSB8fCByZWNhcHRjaGFBY3Rpb24gPT09IHVuZGVmaW5lZCkpIHtcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgICAgICA8ZGl2IFtrY0NsYXNzXT1cIidrY0lucHV0V3JhcHBlckNsYXNzJ1wiPlxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJnLXJlY2FwdGNoYVwiXG4gICAgICAgICAgICAgICAgICAgIGRhdGEtc2l6ZT1cImNvbXBhY3RcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLXNpdGVrZXldPVwicmVjYXB0Y2hhU2l0ZUtleVwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtYWN0aW9uXT1cInJlY2FwdGNoYUFjdGlvblwiXG4gICAgICAgICAgICAgICAgPjwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIH1cblxuICAgIDxkaXYgW2tjQ2xhc3NdPVwiJ2tjRm9ybUdyb3VwQ2xhc3MnXCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgIGlkPVwia2MtZm9ybS1vcHRpb25zXCJcbiAgICAgICAgICAgIFtrY0NsYXNzXT1cIidrY0Zvcm1PcHRpb25zQ2xhc3MnXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGRpdiBba2NDbGFzc109XCIna2NGb3JtT3B0aW9uc1dyYXBwZXJDbGFzcydcIj5cbiAgICAgICAgICAgICAgICA8c3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgIFtocmVmXT1cInVybC5sb2dpblVybFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cImkxOG4ubXNnU3RyKCdiYWNrVG9Mb2dpbicpIHwga2NTYW5pdGl6ZTogJ2h0bWwnXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvYT5cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIEBpZiAocmVjYXB0Y2hhUmVxdWlyZWQgJiYgIXJlY2FwdGNoYVZpc2libGUgJiYgcmVjYXB0Y2hhQWN0aW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBpZD1cImtjLWZvcm0tYnV0dG9uc1wiXG4gICAgICAgICAgICAgICAgW2tjQ2xhc3NdPVwiJ2tjRm9ybUJ1dHRvbnNDbGFzcydcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJnLXJlY2FwdGNoYVwiXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICAgICAgICAgICAgICBba2NDbGFzc109XCJbJ2tjQnV0dG9uQ2xhc3MnLCAna2NCdXR0b25QcmltYXJ5Q2xhc3MnLCAna2NCdXR0b25CbG9ja0NsYXNzJywgJ2tjQnV0dG9uTGFyZ2VDbGFzcyddXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS1zaXRla2V5XT1cInJlY2FwdGNoYVNpdGVLZXlcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLWNhbGxiYWNrXT1cIm9uQ2FsbGJhY2tcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLWFjdGlvbl09XCJyZWNhcHRjaGFBY3Rpb25cIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3sgaTE4bi5tc2dTdHIoJ2RvUmVnaXN0ZXInKSB9fVxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGlkPVwia2MtZm9ybS1idXR0b25zXCJcbiAgICAgICAgICAgICAgICBba2NDbGFzc109XCIna2NGb3JtQnV0dG9uc0NsYXNzJ1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWlzRm9ybVN1Ym1pdHRhYmxlKCkgfHwgKHRlcm1zQWNjZXB0YW5jZVJlcXVpcmVkICYmICFhcmVUZXJtc0FjY2VwdGVkKCkpXCJcbiAgICAgICAgICAgICAgICAgICAgW2tjQ2xhc3NdPVwiWydrY0J1dHRvbkNsYXNzJywgJ2tjQnV0dG9uUHJpbWFyeUNsYXNzJywgJ2tjQnV0dG9uQmxvY2tDbGFzcycsICdrY0J1dHRvbkxhcmdlQ2xhc3MnXVwiXG4gICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJpMThuLm1zZ1N0cignZG9SZWdpc3RlcicpXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICA8L2Rpdj5cbjwvZm9ybT5cbiJdfQ==
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xvZ2luL3BhZ2VzL3JlZ2lzdGVyL3JlZ2lzdGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9sb2dpbi9wYWdlcy9yZWdpc3Rlci9yZWdpc3Rlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUEwQixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekksT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUNsRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUU1RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUdsRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDM0UsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQzs7QUFnQmhGLE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxrQkFBa0I7SUFDckQsY0FBYyxDQUF5QjtJQXNCdkM7UUFDSSxLQUFLLEVBQUUsQ0FBQztRQXZCWixtQkFBYyxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN2QyxjQUFTLEdBQUcsTUFBTSxDQUFpRCxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3JGLFNBQUksR0FBRyxNQUFNLENBQU8sVUFBVSxDQUFDLENBQUM7UUFFdkIsb0JBQWUsR0FBRyxNQUFNLENBQVUsZUFBZSxDQUFDLENBQUM7UUFDbkQsWUFBTyxHQUFHLE1BQU0sQ0FBb0MsYUFBYSxDQUFDLENBQUM7UUFLNUUsMEJBQXFCLEdBQUcsS0FBSyxDQUFDO1FBQzlCLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLG1CQUFjLEdBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUVuRixlQUFVLEdBQUcsU0FBUyxDQUEyQixZQUFZLENBQUMsQ0FBQztRQUMvRCxhQUFRLEdBQUcsU0FBUyxDQUEyQixVQUFVLENBQUMsQ0FBQztRQUMzRCx3QkFBbUIsR0FBRyxTQUFTLENBQTJCLHFCQUFxQixDQUFDLENBQUM7UUFFakYsc0JBQWlCLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xDLHFCQUFnQixHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqQywwQkFBcUIsR0FBRyxLQUFLLEVBQXdDLENBQUM7UUFJbEUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLEVBQUU7WUFDakYsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUM1QyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFDRCxVQUFVO1FBQ0wsUUFBUSxDQUFDLGNBQWMsQ0FBQyxrQkFBa0IsQ0FBcUIsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUM5RSxDQUFDOzhHQS9CUSxpQkFBaUI7a0dBQWpCLGlCQUFpQiw4T0FQZjtZQUNQO2dCQUNJLE9BQU8sRUFBRSxrQkFBa0I7Z0JBQzNCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsaUJBQWlCLENBQUM7YUFDbkQ7U0FDSiwrWUMzQkwsd2lKQW9IQSw0Q0QvRmMsZ0JBQWdCLDBGQUFhLGNBQWMsbURBQVcsaUJBQWlCOzsyRkFReEUsaUJBQWlCO2tCQWI3QixTQUFTOytCQUNJLGFBQWEsY0FFWCxJQUFJLG1CQUNDLHVCQUF1QixDQUFDLE1BQU0sV0FDdEMsQ0FBQyxnQkFBZ0IsRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsQ0FBQyxhQUN2RTt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsa0JBQWtCOzRCQUMzQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxrQkFBa0IsQ0FBQzt5QkFDbkQ7cUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBc3luY1BpcGUsIE5nQ2xhc3MsIE5nQ29tcG9uZW50T3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGZvcndhcmRSZWYsIGluamVjdCwgaW5wdXQsIHNpZ25hbCwgdHlwZSBUZW1wbGF0ZVJlZiwgVHlwZSwgdmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBLY1Nhbml0aXplUGlwZSB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xpYi9waXBlcy9rYy1zYW5pdGl6ZSc7XG5pbXBvcnQgeyBVU0VfREVGQVVMVF9DU1MgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9saWIvdG9rZW5zL3VzZS1kZWZhdWx0LWNzcyc7XG5pbXBvcnQgeyBDb21wb25lbnRSZWZlcmVuY2UgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9jbGFzc2VzL2NvbXBvbmVudC1yZWZlcmVuY2UnO1xuaW1wb3J0IHsgVXNlclByb2ZpbGVGb3JtRmllbGRzQ29tcG9uZW50IH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vY29tcG9uZW50cy91c2VyLXByb2ZpbGUtZm9ybS1maWVsZHMnO1xuaW1wb3J0IHsgS2NDbGFzc0RpcmVjdGl2ZSB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL2RpcmVjdGl2ZXMva2MtY2xhc3MnO1xuaW1wb3J0IHR5cGUgeyBJMThuIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vaTE4bic7XG5pbXBvcnQgdHlwZSB7IEtjQ29udGV4dCB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL0tjQ29udGV4dCc7XG5pbXBvcnQgeyBTdWJtaXRTZXJ2aWNlIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vc2VydmljZXMvc3VibWl0JztcbmltcG9ydCB7IExPR0lOX0NMQVNTRVMgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi90b2tlbnMvY2xhc3Nlcyc7XG5pbXBvcnQgeyBMT0dJTl9JMThOIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vdG9rZW5zL2kxOG4nO1xuaW1wb3J0IHsgS0NfTE9HSU5fQ09OVEVYVCB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL3Rva2Vucy9rYy1jb250ZXh0JztcbmltcG9ydCB0eXBlIHsgQ2xhc3NLZXkgfSBmcm9tICdrZXljbG9ha2lmeS9sb2dpbi9saWIva2NDbHN4JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdrYy1yZWdpc3RlcicsXG4gICAgdGVtcGxhdGVVcmw6ICdyZWdpc3Rlci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBpbXBvcnRzOiBbS2NDbGFzc0RpcmVjdGl2ZSwgQXN5bmNQaXBlLCBLY1Nhbml0aXplUGlwZSwgTmdDbGFzcywgTmdDb21wb25lbnRPdXRsZXRdLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBDb21wb25lbnRSZWZlcmVuY2UsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBSZWdpc3RlckNvbXBvbmVudClcbiAgICAgICAgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgUmVnaXN0ZXJDb21wb25lbnQgZXh0ZW5kcyBDb21wb25lbnRSZWZlcmVuY2Uge1xuICAgICNzdWJtaXRTZXJ2aWNlID0gaW5qZWN0KFN1Ym1pdFNlcnZpY2UpO1xuICAgIGtjQ29udGV4dCA9IGluamVjdDxFeHRyYWN0PEtjQ29udGV4dCwgeyBwYWdlSWQ6ICdyZWdpc3Rlci5mdGwnIH0+PihLQ19MT0dJTl9DT05URVhUKTtcbiAgICBpMThuID0gaW5qZWN0PEkxOG4+KExPR0lOX0kxOE4pO1xuXG4gICAgb3ZlcnJpZGUgZG9Vc2VEZWZhdWx0Q3NzID0gaW5qZWN0PGJvb2xlYW4+KFVTRV9ERUZBVUxUX0NTUyk7XG4gICAgb3ZlcnJpZGUgY2xhc3NlcyA9IGluamVjdDxQYXJ0aWFsPFJlY29yZDxDbGFzc0tleSwgc3RyaW5nPj4+KExPR0lOX0NMQVNTRVMpO1xuXG4gICAgZG9jdW1lbnRUaXRsZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIGJvZHlDbGFzc05hbWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAgIGRpc3BsYXlSZXF1aXJlZEZpZWxkcyA9IGZhbHNlO1xuICAgIGRpc3BsYXlJbmZvID0gZmFsc2U7XG4gICAgZGlzcGxheU1lc3NhZ2U6IGJvb2xlYW4gPSAhdGhpcy5rY0NvbnRleHQ/Lm1lc3NhZ2VzUGVyRmllbGQ/LmV4aXN0c0Vycm9yKCdnbG9iYWwnKTtcblxuICAgIGhlYWRlck5vZGUgPSB2aWV3Q2hpbGQ8VGVtcGxhdGVSZWY8SFRNTEVsZW1lbnQ+PignaGVhZGVyTm9kZScpO1xuICAgIGluZm9Ob2RlID0gdmlld0NoaWxkPFRlbXBsYXRlUmVmPEhUTUxFbGVtZW50Pj4oJ2luZm9Ob2RlJyk7XG4gICAgc29jaWFsUHJvdmlkZXJzTm9kZSA9IHZpZXdDaGlsZDxUZW1wbGF0ZVJlZjxIVE1MRWxlbWVudD4+KCdzb2NpYWxQcm92aWRlcnNOb2RlJyk7XG5cbiAgICBpc0Zvcm1TdWJtaXR0YWJsZSA9IHNpZ25hbChmYWxzZSk7XG4gICAgYXJlVGVybXNBY2NlcHRlZCA9IHNpZ25hbChmYWxzZSk7XG4gICAgdXNlclByb2ZpbGVGb3JtRmllbGRzID0gaW5wdXQ8VHlwZTxVc2VyUHJvZmlsZUZvcm1GaWVsZHNDb21wb25lbnQ+PigpO1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuI3N1Ym1pdFNlcnZpY2UuaXNTdWJtaXR0YWJsZS5waXBlKHRha2VVbnRpbERlc3Ryb3llZCgpKS5zdWJzY3JpYmUoc3VibWl0dGFibGUgPT4ge1xuICAgICAgICAgICAgdGhpcy5pc0Zvcm1TdWJtaXR0YWJsZS5zZXQoc3VibWl0dGFibGUpO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgb25DYWxsYmFjaygpIHtcbiAgICAgICAgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdrYy1yZWdpc3Rlci1mb3JtJykgYXMgSFRNTEZvcm1FbGVtZW50KS5zdWJtaXQoKTtcbiAgICB9XG59XG4iLCJAbGV0IHVybCA9IGtjQ29udGV4dC51cmw7XG5AbGV0IG1lc3NhZ2VzUGVyRmllbGQgPSBrY0NvbnRleHQubWVzc2FnZXNQZXJGaWVsZDtcbkBsZXQgcmVjYXB0Y2hhUmVxdWlyZWQgPSBrY0NvbnRleHQucmVjYXB0Y2hhUmVxdWlyZWQ7XG5AbGV0IHJlY2FwdGNoYVZpc2libGUgPSBrY0NvbnRleHQucmVjYXB0Y2hhVmlzaWJsZTtcbkBsZXQgcmVjYXB0Y2hhU2l0ZUtleSA9IGtjQ29udGV4dC5yZWNhcHRjaGFTaXRlS2V5O1xuQGxldCByZWNhcHRjaGFBY3Rpb24gPSBrY0NvbnRleHQucmVjYXB0Y2hhQWN0aW9uO1xuQGxldCB0ZXJtc0FjY2VwdGFuY2VSZXF1aXJlZCA9IGtjQ29udGV4dC50ZXJtc0FjY2VwdGFuY2VSZXF1aXJlZDtcblxuPG5nLXRlbXBsYXRlICNoZWFkZXJOb2RlPlxuICAgIEBsZXQgbWVzc2FnZUhlYWRlciA9IGtjQ29udGV4dC5tZXNzYWdlSGVhZGVyO1xuICAgIHt7IG1lc3NhZ2VIZWFkZXIgPz8gaTE4bi5hZHZhbmNlZE1zZ1N0cigncmVnaXN0ZXJUaXRsZScpIH19XG48L25nLXRlbXBsYXRlPlxuPGZvcm1cbiAgICBpZD1cImtjLXJlZ2lzdGVyLWZvcm1cIlxuICAgIG1ldGhvZD1cInBvc3RcIlxuICAgIFtrY0NsYXNzXT1cIidrY0Zvcm1DbGFzcydcIlxuICAgIFthY3Rpb25dPVwidXJsLnJlZ2lzdHJhdGlvbkFjdGlvblwiXG4+XG4gICAgPG5nLWNvbnRhaW5lciBbbmdDb21wb25lbnRPdXRsZXRdPVwidXNlclByb2ZpbGVGb3JtRmllbGRzKCkgPz8gbnVsbFwiIC8+XG4gICAgQGlmICh0ZXJtc0FjY2VwdGFuY2VSZXF1aXJlZCkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICAgICAgICAgICAgPGRpdiBba2NDbGFzc109XCIna2NJbnB1dFdyYXBwZXJDbGFzcydcIj5cbiAgICAgICAgICAgICAgICB7eyBpMThuLm1zZ1N0cigndGVybXNUaXRsZScpIH19XG4gICAgICAgICAgICAgICAgPGRpdiBpZD1cImtjLXJlZ2lzdHJhdGlvbi10ZXJtcy10ZXh0XCI+XG4gICAgICAgICAgICAgICAgICAgIHt7IGkxOG4ubXNnU3RyKCd0ZXJtc1RleHQnKSB9fVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICAgICAgICAgICAgPGRpdiBba2NDbGFzc109XCIna2NMYWJlbFdyYXBwZXJDbGFzcydcIj5cbiAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICAgICAgICAgICAgaWQ9XCJ0ZXJtc0FjY2VwdGVkXCJcbiAgICAgICAgICAgICAgICAgICAgbmFtZT1cInRlcm1zQWNjZXB0ZWRcIlxuICAgICAgICAgICAgICAgICAgICBba2NDbGFzc109XCIna2NDaGVja2JveElucHV0Q2xhc3MnXCJcbiAgICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwiYXJlVGVybXNBY2NlcHRlZCgpXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1pbnZhbGlkXT1cIm1lc3NhZ2VzUGVyRmllbGQuZXhpc3RzRXJyb3IoJ3Rlcm1zQWNjZXB0ZWQnKVwiXG4gICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwiYXJlVGVybXNBY2NlcHRlZC5zZXQoJGFueSgkZXZlbnQudGFyZ2V0KS5jaGVja2VkKVwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgICAgICAgICAgZm9yPVwidGVybXNBY2NlcHRlZFwiXG4gICAgICAgICAgICAgICAgICAgIFtrY0NsYXNzXT1cIidrY0xhYmVsQ2xhc3MnXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHt7IGkxOG4ubXNnU3RyKCdhY2NlcHRUZXJtcycpIH19XG4gICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgQGlmIChtZXNzYWdlc1BlckZpZWxkLmV4aXN0c0Vycm9yKCd0ZXJtc0FjY2VwdGVkJykpIHtcbiAgICAgICAgICAgICAgICA8ZGl2IFtrY0NsYXNzXT1cIidrY0xhYmVsV3JhcHBlckNsYXNzJ1wiPlxuICAgICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJpbnB1dC1lcnJvci10ZXJtcy1hY2NlcHRlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxpdmU9XCJwb2xpdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2tjQ2xhc3NdPVwiJ2tjSW5wdXRFcnJvck1lc3NhZ2VDbGFzcydcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2lubmVySHRtbF09XCJtZXNzYWdlc1BlckZpZWxkLmdldCgndGVybXNBY2NlcHRlZCcpIHwga2NTYW5pdGl6ZTogJ2h0bWwnXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgfVxuICAgIEBpZiAocmVjYXB0Y2hhUmVxdWlyZWQgJiYgKHJlY2FwdGNoYVZpc2libGUgfHwgcmVjYXB0Y2hhQWN0aW9uID09PSB1bmRlZmluZWQpKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgICAgICA8ZGl2IFtrY0NsYXNzXT1cIidrY0lucHV0V3JhcHBlckNsYXNzJ1wiPlxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJnLXJlY2FwdGNoYVwiXG4gICAgICAgICAgICAgICAgICAgIGRhdGEtc2l6ZT1cImNvbXBhY3RcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLXNpdGVrZXldPVwicmVjYXB0Y2hhU2l0ZUtleVwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtYWN0aW9uXT1cInJlY2FwdGNoYUFjdGlvblwiXG4gICAgICAgICAgICAgICAgPjwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIH1cblxuICAgIDxkaXYgW2tjQ2xhc3NdPVwiJ2tjRm9ybUdyb3VwQ2xhc3MnXCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgIGlkPVwia2MtZm9ybS1vcHRpb25zXCJcbiAgICAgICAgICAgIFtrY0NsYXNzXT1cIidrY0Zvcm1PcHRpb25zQ2xhc3MnXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGRpdiBba2NDbGFzc109XCIna2NGb3JtT3B0aW9uc1dyYXBwZXJDbGFzcydcIj5cbiAgICAgICAgICAgICAgICA8c3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgIFtocmVmXT1cInVybC5sb2dpblVybFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cImkxOG4ubXNnU3RyKCdiYWNrVG9Mb2dpbicpIHwga2NTYW5pdGl6ZTogJ2h0bWwnXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvYT5cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIEBpZiAocmVjYXB0Y2hhUmVxdWlyZWQgJiYgIXJlY2FwdGNoYVZpc2libGUgJiYgcmVjYXB0Y2hhQWN0aW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBpZD1cImtjLWZvcm0tYnV0dG9uc1wiXG4gICAgICAgICAgICAgICAgW2tjQ2xhc3NdPVwiJ2tjRm9ybUJ1dHRvbnNDbGFzcydcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJnLXJlY2FwdGNoYVwiXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICAgICAgICAgICAgICBba2NDbGFzc109XCJbJ2tjQnV0dG9uQ2xhc3MnLCAna2NCdXR0b25QcmltYXJ5Q2xhc3MnLCAna2NCdXR0b25CbG9ja0NsYXNzJywgJ2tjQnV0dG9uTGFyZ2VDbGFzcyddXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS1zaXRla2V5XT1cInJlY2FwdGNoYVNpdGVLZXlcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLWNhbGxiYWNrXT1cIm9uQ2FsbGJhY2tcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLWFjdGlvbl09XCJyZWNhcHRjaGFBY3Rpb25cIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3sgaTE4bi5tc2dTdHIoJ2RvUmVnaXN0ZXInKSB9fVxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGlkPVwia2MtZm9ybS1idXR0b25zXCJcbiAgICAgICAgICAgICAgICBba2NDbGFzc109XCIna2NGb3JtQnV0dG9uc0NsYXNzJ1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWlzRm9ybVN1Ym1pdHRhYmxlKCkgfHwgKHRlcm1zQWNjZXB0YW5jZVJlcXVpcmVkICYmICFhcmVUZXJtc0FjY2VwdGVkKCkpXCJcbiAgICAgICAgICAgICAgICAgICAgW2tjQ2xhc3NdPVwiWydrY0J1dHRvbkNsYXNzJywgJ2tjQnV0dG9uUHJpbWFyeUNsYXNzJywgJ2tjQnV0dG9uQmxvY2tDbGFzcycsICdrY0J1dHRvbkxhcmdlQ2xhc3MnXVwiXG4gICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJpMThuLm1zZ1N0cignZG9SZWdpc3RlcicpXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICA8L2Rpdj5cbjwvZm9ybT5cbiJdfQ==
@@ -26,7 +26,7 @@ export class TermsComponent extends ComponentReference {
26
26
  provide: ComponentReference,
27
27
  useExisting: forwardRef(() => TermsComponent)
28
28
  }
29
- ], 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('termsTitle') }}\n</ng-template>\n<div id=\"kc-terms-text\">{{ i18n.msgStr('termsText') }}</div>\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', 'kcButtonClass', 'kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doAccept')\"\n />\n <input\n name=\"cancel\"\n id=\"kc-decline\"\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonDefaultClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doDecline')\"\n />\n</form>\n<div className=\"clearfix\"></div>\n", dependencies: [{ kind: "directive", type: KcClassDirective, selector: "[kcClass]", inputs: ["class", "ngClass", "kcClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
29
+ ], 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('termsTitle') }}\n</ng-template>\n<div id=\"kc-terms-text\">{{ i18n.msgStr('termsText') }}</div>\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', 'kcButtonClass', 'kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doAccept')\"\n />\n <input\n name=\"cancel\"\n id=\"kc-decline\"\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonDefaultClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doDecline')\"\n />\n</form>\n<div class=\"clearfix\"></div>\n", dependencies: [{ kind: "directive", type: KcClassDirective, selector: "[kcClass]", inputs: ["class", "ngClass", "kcClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
30
30
  }
31
31
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: TermsComponent, decorators: [{
32
32
  type: Component,
@@ -35,6 +35,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
35
35
  provide: ComponentReference,
36
36
  useExisting: forwardRef(() => TermsComponent)
37
37
  }
38
- ], template: "@let url = kcContext.url;\n\n<ng-template #headerNode>\n {{ i18n.msgStr('termsTitle') }}\n</ng-template>\n<div id=\"kc-terms-text\">{{ i18n.msgStr('termsText') }}</div>\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', 'kcButtonClass', 'kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doAccept')\"\n />\n <input\n name=\"cancel\"\n id=\"kc-decline\"\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonDefaultClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doDecline')\"\n />\n</form>\n<div className=\"clearfix\"></div>\n" }]
38
+ ], template: "@let url = kcContext.url;\n\n<ng-template #headerNode>\n {{ i18n.msgStr('termsTitle') }}\n</ng-template>\n<div id=\"kc-terms-text\">{{ i18n.msgStr('termsText') }}</div>\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', 'kcButtonClass', 'kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doAccept')\"\n />\n <input\n name=\"cancel\"\n id=\"kc-decline\"\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonDefaultClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doDecline')\"\n />\n</form>\n<div class=\"clearfix\"></div>\n" }]
39
39
  }] });
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVybXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xvZ2luL3BhZ2VzL3Rlcm1zL3Rlcm1zLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9sb2dpbi9wYWdlcy90ZXJtcy90ZXJtcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQW9CLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwSCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saURBQWlELENBQUM7QUFDbEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFDNUYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFHbEYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQzs7QUFnQmhGLE1BQU0sT0FBTyxjQUFlLFNBQVEsa0JBQWtCO0lBYnREOztRQWNJLGNBQVMsR0FBRyxNQUFNLENBQThDLGdCQUFnQixDQUFDLENBQUM7UUFDbEYsU0FBSSxHQUFHLE1BQU0sQ0FBTyxVQUFVLENBQUMsQ0FBQztRQUV2QixvQkFBZSxHQUFHLE1BQU0sQ0FBVSxlQUFlLENBQUMsQ0FBQztRQUNuRCxZQUFPLEdBQUcsTUFBTSxDQUFvQyxhQUFhLENBQUMsQ0FBQztRQUs1RSwwQkFBcUIsR0FBRyxLQUFLLENBQUM7UUFDOUIsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFDcEIsbUJBQWMsR0FBRyxLQUFLLENBQUM7UUFFdkIsZUFBVSxHQUFHLFNBQVMsQ0FBMkIsWUFBWSxDQUFDLENBQUM7UUFDL0QsYUFBUSxHQUFHLFNBQVMsQ0FBMkIsVUFBVSxDQUFDLENBQUM7UUFDM0Qsd0JBQW1CLEdBQUcsU0FBUyxDQUEyQixxQkFBcUIsQ0FBQyxDQUFDO0tBQ3BGOzhHQWpCWSxjQUFjO2tHQUFkLGNBQWMsdURBUFo7WUFDUDtnQkFDSSxPQUFPLEVBQUUsa0JBQWtCO2dCQUMzQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGNBQWMsQ0FBQzthQUNoRDtTQUNKLCtZQ3RCTCxxeUJBMkJBLDRDRGRjLGdCQUFnQjs7MkZBV2pCLGNBQWM7a0JBYjFCLFNBQVM7aUNBQ00sSUFBSSxXQUNQLENBQUMsZ0JBQWdCLENBQUMsWUFDakIsVUFBVSxtQkFFSCx1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSxrQkFBa0I7NEJBQzNCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLGVBQWUsQ0FBQzt5QkFDaEQ7cUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBmb3J3YXJkUmVmLCBpbmplY3QsIHR5cGUgVGVtcGxhdGVSZWYsIHZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVVNFX0RFRkFVTFRfQ1NTIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbGliL3Rva2Vucy91c2UtZGVmYXVsdC1jc3MnO1xuaW1wb3J0IHsgQ29tcG9uZW50UmVmZXJlbmNlIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vY2xhc3Nlcy9jb21wb25lbnQtcmVmZXJlbmNlJztcbmltcG9ydCB7IEtjQ2xhc3NEaXJlY3RpdmUgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9kaXJlY3RpdmVzL2tjLWNsYXNzJztcbmltcG9ydCB0eXBlIHsgSTE4biB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL2kxOG4nO1xuaW1wb3J0IHR5cGUgeyBLY0NvbnRleHQgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9LY0NvbnRleHQnO1xuaW1wb3J0IHsgTE9HSU5fQ0xBU1NFUyB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL3Rva2Vucy9jbGFzc2VzJztcbmltcG9ydCB7IExPR0lOX0kxOE4gfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi90b2tlbnMvaTE4bic7XG5pbXBvcnQgeyBLQ19MT0dJTl9DT05URVhUIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vdG9rZW5zL2tjLWNvbnRleHQnO1xuaW1wb3J0IHR5cGUgeyBDbGFzc0tleSB9IGZyb20gJ2tleWNsb2FraWZ5L2xvZ2luL2xpYi9rY0Nsc3gnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtLY0NsYXNzRGlyZWN0aXZlXSxcbiAgICBzZWxlY3RvcjogJ2tjLXRlcm1zJyxcbiAgICB0ZW1wbGF0ZVVybDogJ3Rlcm1zLmNvbXBvbmVudC5odG1sJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogQ29tcG9uZW50UmVmZXJlbmNlLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVGVybXNDb21wb25lbnQpXG4gICAgICAgIH1cbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIFRlcm1zQ29tcG9uZW50IGV4dGVuZHMgQ29tcG9uZW50UmVmZXJlbmNlIHtcbiAgICBrY0NvbnRleHQgPSBpbmplY3Q8RXh0cmFjdDxLY0NvbnRleHQsIHsgcGFnZUlkOiAndGVybXMuZnRsJyB9Pj4oS0NfTE9HSU5fQ09OVEVYVCk7XG4gICAgaTE4biA9IGluamVjdDxJMThuPihMT0dJTl9JMThOKTtcblxuICAgIG92ZXJyaWRlIGRvVXNlRGVmYXVsdENzcyA9IGluamVjdDxib29sZWFuPihVU0VfREVGQVVMVF9DU1MpO1xuICAgIG92ZXJyaWRlIGNsYXNzZXMgPSBpbmplY3Q8UGFydGlhbDxSZWNvcmQ8Q2xhc3NLZXksIHN0cmluZz4+PihMT0dJTl9DTEFTU0VTKTtcblxuICAgIGRvY3VtZW50VGl0bGU6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICBib2R5Q2xhc3NOYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgICBkaXNwbGF5UmVxdWlyZWRGaWVsZHMgPSBmYWxzZTtcbiAgICBkaXNwbGF5SW5mbyA9IGZhbHNlO1xuICAgIGRpc3BsYXlNZXNzYWdlID0gZmFsc2U7XG5cbiAgICBoZWFkZXJOb2RlID0gdmlld0NoaWxkPFRlbXBsYXRlUmVmPEhUTUxFbGVtZW50Pj4oJ2hlYWRlck5vZGUnKTtcbiAgICBpbmZvTm9kZSA9IHZpZXdDaGlsZDxUZW1wbGF0ZVJlZjxIVE1MRWxlbWVudD4+KCdpbmZvTm9kZScpO1xuICAgIHNvY2lhbFByb3ZpZGVyc05vZGUgPSB2aWV3Q2hpbGQ8VGVtcGxhdGVSZWY8SFRNTEVsZW1lbnQ+Pignc29jaWFsUHJvdmlkZXJzTm9kZScpO1xufVxuIiwiQGxldCB1cmwgPSBrY0NvbnRleHQudXJsO1xuXG48bmctdGVtcGxhdGUgI2hlYWRlck5vZGU+XG4gICAge3sgaTE4bi5tc2dTdHIoJ3Rlcm1zVGl0bGUnKSB9fVxuPC9uZy10ZW1wbGF0ZT5cbjxkaXYgaWQ9XCJrYy10ZXJtcy10ZXh0XCI+e3sgaTE4bi5tc2dTdHIoJ3Rlcm1zVGV4dCcpIH19PC9kaXY+XG48Zm9ybVxuICAgIGNsYXNzPVwiZm9ybS1hY3Rpb25zXCJcbiAgICBtZXRob2Q9XCJQT1NUXCJcbiAgICBbYWN0aW9uXT1cInVybC5sb2dpbkFjdGlvblwiXG4+XG4gICAgPGlucHV0XG4gICAgICAgIG5hbWU9XCJhY2NlcHRcIlxuICAgICAgICBpZD1cImtjLWFjY2VwdFwiXG4gICAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICBba2NDbGFzc109XCJbJ2tjQnV0dG9uQ2xhc3MnLCAna2NCdXR0b25DbGFzcycsICdrY0J1dHRvbkNsYXNzJywgJ2tjQnV0dG9uUHJpbWFyeUNsYXNzJywgJ2tjQnV0dG9uTGFyZ2VDbGFzcyddXCJcbiAgICAgICAgW3ZhbHVlXT1cImkxOG4ubXNnU3RyKCdkb0FjY2VwdCcpXCJcbiAgICAvPlxuICAgIDxpbnB1dFxuICAgICAgICBuYW1lPVwiY2FuY2VsXCJcbiAgICAgICAgaWQ9XCJrYy1kZWNsaW5lXCJcbiAgICAgICAgdHlwZT1cInN1Ym1pdFwiXG4gICAgICAgIFtrY0NsYXNzXT1cIlsna2NCdXR0b25DbGFzcycsICdrY0J1dHRvbkRlZmF1bHRDbGFzcycsICdrY0J1dHRvbkxhcmdlQ2xhc3MnXVwiXG4gICAgICAgIFt2YWx1ZV09XCJpMThuLm1zZ1N0cignZG9EZWNsaW5lJylcIlxuICAgIC8+XG48L2Zvcm0+XG48ZGl2IGNsYXNzTmFtZT1cImNsZWFyZml4XCI+PC9kaXY+XG4iXX0=
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVybXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xvZ2luL3BhZ2VzL3Rlcm1zL3Rlcm1zLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9sb2dpbi9wYWdlcy90ZXJtcy90ZXJtcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQW9CLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwSCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saURBQWlELENBQUM7QUFDbEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFDNUYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFHbEYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQzs7QUFnQmhGLE1BQU0sT0FBTyxjQUFlLFNBQVEsa0JBQWtCO0lBYnREOztRQWNJLGNBQVMsR0FBRyxNQUFNLENBQThDLGdCQUFnQixDQUFDLENBQUM7UUFDbEYsU0FBSSxHQUFHLE1BQU0sQ0FBTyxVQUFVLENBQUMsQ0FBQztRQUV2QixvQkFBZSxHQUFHLE1BQU0sQ0FBVSxlQUFlLENBQUMsQ0FBQztRQUNuRCxZQUFPLEdBQUcsTUFBTSxDQUFvQyxhQUFhLENBQUMsQ0FBQztRQUs1RSwwQkFBcUIsR0FBRyxLQUFLLENBQUM7UUFDOUIsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFDcEIsbUJBQWMsR0FBRyxLQUFLLENBQUM7UUFFdkIsZUFBVSxHQUFHLFNBQVMsQ0FBMkIsWUFBWSxDQUFDLENBQUM7UUFDL0QsYUFBUSxHQUFHLFNBQVMsQ0FBMkIsVUFBVSxDQUFDLENBQUM7UUFDM0Qsd0JBQW1CLEdBQUcsU0FBUyxDQUEyQixxQkFBcUIsQ0FBQyxDQUFDO0tBQ3BGOzhHQWpCWSxjQUFjO2tHQUFkLGNBQWMsdURBUFo7WUFDUDtnQkFDSSxPQUFPLEVBQUUsa0JBQWtCO2dCQUMzQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGNBQWMsQ0FBQzthQUNoRDtTQUNKLCtZQ3RCTCxpeUJBMkJBLDRDRGRjLGdCQUFnQjs7MkZBV2pCLGNBQWM7a0JBYjFCLFNBQVM7aUNBQ00sSUFBSSxXQUNQLENBQUMsZ0JBQWdCLENBQUMsWUFDakIsVUFBVSxtQkFFSCx1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSxrQkFBa0I7NEJBQzNCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLGVBQWUsQ0FBQzt5QkFDaEQ7cUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBmb3J3YXJkUmVmLCBpbmplY3QsIHR5cGUgVGVtcGxhdGVSZWYsIHZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVVNFX0RFRkFVTFRfQ1NTIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbGliL3Rva2Vucy91c2UtZGVmYXVsdC1jc3MnO1xuaW1wb3J0IHsgQ29tcG9uZW50UmVmZXJlbmNlIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vY2xhc3Nlcy9jb21wb25lbnQtcmVmZXJlbmNlJztcbmltcG9ydCB7IEtjQ2xhc3NEaXJlY3RpdmUgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9kaXJlY3RpdmVzL2tjLWNsYXNzJztcbmltcG9ydCB0eXBlIHsgSTE4biB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL2kxOG4nO1xuaW1wb3J0IHR5cGUgeyBLY0NvbnRleHQgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9LY0NvbnRleHQnO1xuaW1wb3J0IHsgTE9HSU5fQ0xBU1NFUyB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL3Rva2Vucy9jbGFzc2VzJztcbmltcG9ydCB7IExPR0lOX0kxOE4gfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi90b2tlbnMvaTE4bic7XG5pbXBvcnQgeyBLQ19MT0dJTl9DT05URVhUIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vdG9rZW5zL2tjLWNvbnRleHQnO1xuaW1wb3J0IHR5cGUgeyBDbGFzc0tleSB9IGZyb20gJ2tleWNsb2FraWZ5L2xvZ2luL2xpYi9rY0Nsc3gnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtLY0NsYXNzRGlyZWN0aXZlXSxcbiAgICBzZWxlY3RvcjogJ2tjLXRlcm1zJyxcbiAgICB0ZW1wbGF0ZVVybDogJ3Rlcm1zLmNvbXBvbmVudC5odG1sJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogQ29tcG9uZW50UmVmZXJlbmNlLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVGVybXNDb21wb25lbnQpXG4gICAgICAgIH1cbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIFRlcm1zQ29tcG9uZW50IGV4dGVuZHMgQ29tcG9uZW50UmVmZXJlbmNlIHtcbiAgICBrY0NvbnRleHQgPSBpbmplY3Q8RXh0cmFjdDxLY0NvbnRleHQsIHsgcGFnZUlkOiAndGVybXMuZnRsJyB9Pj4oS0NfTE9HSU5fQ09OVEVYVCk7XG4gICAgaTE4biA9IGluamVjdDxJMThuPihMT0dJTl9JMThOKTtcblxuICAgIG92ZXJyaWRlIGRvVXNlRGVmYXVsdENzcyA9IGluamVjdDxib29sZWFuPihVU0VfREVGQVVMVF9DU1MpO1xuICAgIG92ZXJyaWRlIGNsYXNzZXMgPSBpbmplY3Q8UGFydGlhbDxSZWNvcmQ8Q2xhc3NLZXksIHN0cmluZz4+PihMT0dJTl9DTEFTU0VTKTtcblxuICAgIGRvY3VtZW50VGl0bGU6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICBib2R5Q2xhc3NOYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgICBkaXNwbGF5UmVxdWlyZWRGaWVsZHMgPSBmYWxzZTtcbiAgICBkaXNwbGF5SW5mbyA9IGZhbHNlO1xuICAgIGRpc3BsYXlNZXNzYWdlID0gZmFsc2U7XG5cbiAgICBoZWFkZXJOb2RlID0gdmlld0NoaWxkPFRlbXBsYXRlUmVmPEhUTUxFbGVtZW50Pj4oJ2hlYWRlck5vZGUnKTtcbiAgICBpbmZvTm9kZSA9IHZpZXdDaGlsZDxUZW1wbGF0ZVJlZjxIVE1MRWxlbWVudD4+KCdpbmZvTm9kZScpO1xuICAgIHNvY2lhbFByb3ZpZGVyc05vZGUgPSB2aWV3Q2hpbGQ8VGVtcGxhdGVSZWY8SFRNTEVsZW1lbnQ+Pignc29jaWFsUHJvdmlkZXJzTm9kZScpO1xufVxuIiwiQGxldCB1cmwgPSBrY0NvbnRleHQudXJsO1xuXG48bmctdGVtcGxhdGUgI2hlYWRlck5vZGU+XG4gICAge3sgaTE4bi5tc2dTdHIoJ3Rlcm1zVGl0bGUnKSB9fVxuPC9uZy10ZW1wbGF0ZT5cbjxkaXYgaWQ9XCJrYy10ZXJtcy10ZXh0XCI+e3sgaTE4bi5tc2dTdHIoJ3Rlcm1zVGV4dCcpIH19PC9kaXY+XG48Zm9ybVxuICAgIGNsYXNzPVwiZm9ybS1hY3Rpb25zXCJcbiAgICBtZXRob2Q9XCJQT1NUXCJcbiAgICBbYWN0aW9uXT1cInVybC5sb2dpbkFjdGlvblwiXG4+XG4gICAgPGlucHV0XG4gICAgICAgIG5hbWU9XCJhY2NlcHRcIlxuICAgICAgICBpZD1cImtjLWFjY2VwdFwiXG4gICAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICBba2NDbGFzc109XCJbJ2tjQnV0dG9uQ2xhc3MnLCAna2NCdXR0b25DbGFzcycsICdrY0J1dHRvbkNsYXNzJywgJ2tjQnV0dG9uUHJpbWFyeUNsYXNzJywgJ2tjQnV0dG9uTGFyZ2VDbGFzcyddXCJcbiAgICAgICAgW3ZhbHVlXT1cImkxOG4ubXNnU3RyKCdkb0FjY2VwdCcpXCJcbiAgICAvPlxuICAgIDxpbnB1dFxuICAgICAgICBuYW1lPVwiY2FuY2VsXCJcbiAgICAgICAgaWQ9XCJrYy1kZWNsaW5lXCJcbiAgICAgICAgdHlwZT1cInN1Ym1pdFwiXG4gICAgICAgIFtrY0NsYXNzXT1cIlsna2NCdXR0b25DbGFzcycsICdrY0J1dHRvbkRlZmF1bHRDbGFzcycsICdrY0J1dHRvbkxhcmdlQ2xhc3MnXVwiXG4gICAgICAgIFt2YWx1ZV09XCJpMThuLm1zZ1N0cignZG9EZWNsaW5lJylcIlxuICAgIC8+XG48L2Zvcm0+XG48ZGl2IGNsYXNzPVwiY2xlYXJmaXhcIj48L2Rpdj5cbiJdfQ==
@@ -49,4 +49,4 @@ export const provideKeycloakifyAngular = (config) => makeEnvironmentProviders([
49
49
  { provide: USE_DEFAULT_CSS, useValue: config?.doUseDefaultCss ?? true },
50
50
  { provide: LOGIN_CLASSES, useValue: config?.classes ?? {} }
51
51
  ]);
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5Y2xvYWtpZnktYW5ndWxhci5wcm92aWRlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbG9naW4vcHJvdmlkZXJzL2tleWNsb2FraWZ5LWFuZ3VsYXIva2V5Y2xvYWtpZnktYW5ndWxhci5wcm92aWRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUVsRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUNoRixPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQWU3RyxNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxDQUFDLE1BQXFDLEVBQUUsRUFBRSxDQUMvRSx3QkFBd0IsQ0FBQztJQUNyQjtRQUNJLE9BQU8sRUFBRSxnQkFBZ0I7UUFDekIsUUFBUSxFQUFFLE1BQU0sQ0FBQyxTQUFTO0tBQzdCO0lBQ0Q7UUFDSSxPQUFPLEVBQUUsNkJBQTZCO1FBQ3RDLFFBQVEsRUFBRSxNQUFNLEVBQUUseUJBQXlCLElBQUksSUFBSTtLQUN0RDtJQUNEO1FBQ0ksT0FBTyxFQUFFLFNBQVM7UUFDbEIsVUFBVSxFQUFFLENBQUMsUUFBa0IsRUFBRSxFQUFFO1lBQy9CLE9BQU8sUUFBUSxDQUFDLGVBQWUsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDO1FBQ2pELENBQUM7UUFDRCxJQUFJLEVBQUUsQ0FBQyxRQUFRLENBQUM7S0FDbkI7SUFDRDtRQUNJLE9BQU8sRUFBRSxlQUFlO1FBQ3hCLEtBQUssRUFBRSxJQUFJO1FBQ1gsVUFBVSxFQUFFLENBQUMsV0FBd0IsRUFBRSxTQUFvQixFQUFFLEVBQUUsQ0FBQyxLQUFLLElBQUksRUFBRTtZQUN2RSxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDO1lBRS9CLE1BQU0sRUFBRSxJQUFJLEVBQUUsc0JBQXNCLEVBQUUsR0FBRyxPQUFPLENBQUM7Z0JBQzdDLFNBQVM7YUFDWixDQUFDLENBQUM7WUFDSCxJQUFJLFdBQVcsR0FBRyxJQUFJLE9BQU8sQ0FBYyxPQUFPLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQ3JFLElBQUksc0JBQXNCLEVBQUUsQ0FBQztnQkFDekIsV0FBVyxHQUFHLHNCQUFzQixDQUFDO1lBQ3pDLENBQUM7WUFDRCxPQUFPLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQzNCLFdBQVcsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO2dCQUN4QixPQUFPLElBQUksQ0FBQztZQUNoQixDQUFDLENBQUMsQ0FBQztRQUNQLENBQUM7UUFDRCxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUUsZ0JBQWdCLENBQUM7S0FDeEM7SUFDRDtRQUNJLE9BQU8sRUFBRSxVQUFVO1FBQ25CLFVBQVUsRUFBRSxDQUFDLFdBQXdCLEVBQUUsRUFBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJO1FBQzFELElBQUksRUFBRSxDQUFDLFdBQVcsQ0FBQztLQUN0QjtJQUNELEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLGVBQWUsSUFBSSxJQUFJLEVBQUU7SUFDdkUsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsT0FBTyxJQUFJLEVBQUUsRUFBRTtDQUM5RCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBBUFBfSU5JVElBTElaRVIsIExPQ0FMRV9JRCwgbWFrZUVudmlyb25tZW50UHJvdmlkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVU0VfREVGQVVMVF9DU1MgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9saWIvdG9rZW5zL3VzZS1kZWZhdWx0LWNzcyc7XG5pbXBvcnQgdHlwZSB7IEtjQ29udGV4dCB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL0tjQ29udGV4dCc7XG5pbXBvcnQgeyBJMThuU2VydmljZSB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL3NlcnZpY2VzL2kxOG4nO1xuaW1wb3J0IHsgTE9HSU5fQ0xBU1NFUyB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL3Rva2Vucy9jbGFzc2VzJztcbmltcG9ydCB7IExPR0lOX0kxOE4gfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi90b2tlbnMvaTE4bic7XG5pbXBvcnQgeyBLQ19MT0dJTl9DT05URVhUIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vdG9rZW5zL2tjLWNvbnRleHQnO1xuaW1wb3J0IHsgRE9fTUFLRV9VU0VSX0NPTkZJUk1fUEFTU1dPUkQgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi90b2tlbnMvbWFrZS11c2VyLWNvbmZpcm0tcGFzc3dvcmQnO1xuaW1wb3J0IHsgdHlwZSBLY0NvbnRleHRMaWtlIH0gZnJvbSAna2V5Y2xvYWtpZnkvbG9naW4vaTE4bi9ub0pzeCc7XG5pbXBvcnQgdHlwZSB7IENsYXNzS2V5IH0gZnJvbSAna2V5Y2xvYWtpZnkvbG9naW4vbGliL2tjQ2xzeCc7XG5cbmV4cG9ydCB0eXBlIEtleWNsb2FraWZ5QW5ndWxhckxvZ2luQ29uZmlnID0ge1xuICAgIGRvTWFrZVVzZXJDb25maXJtUGFzc3dvcmQ/OiBib29sZWFuO1xuICAgIGRvVXNlRGVmYXVsdENzcz86IGJvb2xlYW47XG4gICAgY2xhc3Nlcz86IHsgW2tleSBpbiBDbGFzc0tleV0/OiBzdHJpbmcgfTtcbiAgICBrY0NvbnRleHQ6IEtjQ29udGV4dDtcbiAgICBnZXRJMThuOiAocGFyYW1zOiB7IGtjQ29udGV4dDogS2NDb250ZXh0TGlrZSB9KSA9PiB7XG4gICAgICAgIGkxOG46IHVua25vd247XG4gICAgICAgIHBySTE4bl9jdXJyZW50TGFuZ3VhZ2U6IFByb21pc2U8dW5rbm93bj4gfCB1bmRlZmluZWQ7XG4gICAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBwcm92aWRlS2V5Y2xvYWtpZnlBbmd1bGFyID0gKGNvbmZpZzogS2V5Y2xvYWtpZnlBbmd1bGFyTG9naW5Db25maWcpID0+XG4gICAgbWFrZUVudmlyb25tZW50UHJvdmlkZXJzKFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogS0NfTE9HSU5fQ09OVEVYVCxcbiAgICAgICAgICAgIHVzZVZhbHVlOiBjb25maWcua2NDb250ZXh0XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IERPX01BS0VfVVNFUl9DT05GSVJNX1BBU1NXT1JELFxuICAgICAgICAgICAgdXNlVmFsdWU6IGNvbmZpZz8uZG9NYWtlVXNlckNvbmZpcm1QYXNzd29yZCA/PyB0cnVlXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IExPQ0FMRV9JRCxcbiAgICAgICAgICAgIHVzZUZhY3Rvcnk6IChkb2N1bWVudDogRG9jdW1lbnQpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmxhbmcgPz8gJ2VuJztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBkZXBzOiBbRE9DVU1FTlRdXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEFQUF9JTklUSUFMSVpFUixcbiAgICAgICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgICAgICAgdXNlRmFjdG9yeTogKGkxOG5TZXJ2aWNlOiBJMThuU2VydmljZSwga2NDb250ZXh0OiBLY0NvbnRleHQpID0+IGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBnZXRJMThuID0gY29uZmlnLmdldEkxOG47XG5cbiAgICAgICAgICAgICAgICBjb25zdCB7IGkxOG4sIHBySTE4bl9jdXJyZW50TGFuZ3VhZ2UgfSA9IGdldEkxOG4oe1xuICAgICAgICAgICAgICAgICAgICBrY0NvbnRleHRcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBsZXQgaTE4blByb21pc2UgPSBuZXcgUHJvbWlzZTx0eXBlb2YgaTE4bj4ocmVzb2x2ZSA9PiByZXNvbHZlKGkxOG4pKTtcbiAgICAgICAgICAgICAgICBpZiAocHJJMThuX2N1cnJlbnRMYW5ndWFnZSkge1xuICAgICAgICAgICAgICAgICAgICBpMThuUHJvbWlzZSA9IHBySTE4bl9jdXJyZW50TGFuZ3VhZ2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBpMThuUHJvbWlzZS50aGVuKGkxOG4gPT4ge1xuICAgICAgICAgICAgICAgICAgICBpMThuU2VydmljZS5pMThuID0gaTE4bjtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZGVwczogW0kxOG5TZXJ2aWNlLCBLQ19MT0dJTl9DT05URVhUXVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBMT0dJTl9JMThOLFxuICAgICAgICAgICAgdXNlRmFjdG9yeTogKGkxOG5TZXJ2aWNlOiBJMThuU2VydmljZSkgPT4gaTE4blNlcnZpY2UuaTE4bixcbiAgICAgICAgICAgIGRlcHM6IFtJMThuU2VydmljZV1cbiAgICAgICAgfSxcbiAgICAgICAgeyBwcm92aWRlOiBVU0VfREVGQVVMVF9DU1MsIHVzZVZhbHVlOiBjb25maWc/LmRvVXNlRGVmYXVsdENzcyA/PyB0cnVlIH0sXG4gICAgICAgIHsgcHJvdmlkZTogTE9HSU5fQ0xBU1NFUywgdXNlVmFsdWU6IGNvbmZpZz8uY2xhc3NlcyA/PyB7fSB9XG4gICAgXSk7XG4iXX0=
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5Y2xvYWtpZnktYW5ndWxhci5wcm92aWRlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbG9naW4vcHJvdmlkZXJzL2tleWNsb2FraWZ5LWFuZ3VsYXIva2V5Y2xvYWtpZnktYW5ndWxhci5wcm92aWRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUVsRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUNoRixPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQWU3RyxNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxDQUFDLE1BQXFDLEVBQUUsRUFBRSxDQUMvRSx3QkFBd0IsQ0FBQztJQUNyQjtRQUNJLE9BQU8sRUFBRSxnQkFBZ0I7UUFDekIsUUFBUSxFQUFFLE1BQU0sQ0FBQyxTQUFTO0tBQzdCO0lBQ0Q7UUFDSSxPQUFPLEVBQUUsNkJBQTZCO1FBQ3RDLFFBQVEsRUFBRSxNQUFNLEVBQUUseUJBQXlCLElBQUksSUFBSTtLQUN0RDtJQUNEO1FBQ0ksT0FBTyxFQUFFLFNBQVM7UUFDbEIsVUFBVSxFQUFFLENBQUMsUUFBa0IsRUFBRSxFQUFFO1lBQy9CLE9BQU8sUUFBUSxDQUFDLGVBQWUsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDO1FBQ2pELENBQUM7UUFDRCxJQUFJLEVBQUUsQ0FBQyxRQUFRLENBQUM7S0FDbkI7SUFDRDtRQUNJLE9BQU8sRUFBRSxlQUFlO1FBQ3hCLEtBQUssRUFBRSxJQUFJO1FBQ1gsVUFBVSxFQUFFLENBQUMsV0FBd0IsRUFBRSxTQUFvQixFQUFFLEVBQUUsQ0FBQyxLQUFLLElBQUksRUFBRTtZQUN2RSxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDO1lBRS9CLE1BQU0sRUFBRSxJQUFJLEVBQUUsc0JBQXNCLEVBQUUsR0FBRyxPQUFPLENBQUM7Z0JBQzdDLFNBQVM7YUFDWixDQUFDLENBQUM7WUFDSCxJQUFJLFdBQVcsR0FBRyxJQUFJLE9BQU8sQ0FBYyxPQUFPLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQ3JFLElBQUksc0JBQXNCLEVBQUUsQ0FBQztnQkFDekIsV0FBVyxHQUFHLHNCQUFzQixDQUFDO1lBQ3pDLENBQUM7WUFDRCxPQUFPLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQzNCLFdBQVcsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO2dCQUN4QixPQUFPLElBQUksQ0FBQztZQUNoQixDQUFDLENBQUMsQ0FBQztRQUNQLENBQUM7UUFDRCxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUUsZ0JBQWdCLENBQUM7S0FDeEM7SUFDRDtRQUNJLE9BQU8sRUFBRSxVQUFVO1FBQ25CLFVBQVUsRUFBRSxDQUFDLFdBQXdCLEVBQUUsRUFBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJO1FBQzFELElBQUksRUFBRSxDQUFDLFdBQVcsQ0FBQztLQUN0QjtJQUNELEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLGVBQWUsSUFBSSxJQUFJLEVBQUU7SUFDdkUsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsT0FBTyxJQUFJLEVBQUUsRUFBRTtDQUM5RCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBBUFBfSU5JVElBTElaRVIsIExPQ0FMRV9JRCwgbWFrZUVudmlyb25tZW50UHJvdmlkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVU0VfREVGQVVMVF9DU1MgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9saWIvdG9rZW5zL3VzZS1kZWZhdWx0LWNzcyc7XG5pbXBvcnQgdHlwZSB7IEtjQ29udGV4dCB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL0tjQ29udGV4dCc7XG5pbXBvcnQgeyBJMThuU2VydmljZSB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL3NlcnZpY2VzL2kxOG4nO1xuaW1wb3J0IHsgTE9HSU5fQ0xBU1NFUyB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL3Rva2Vucy9jbGFzc2VzJztcbmltcG9ydCB7IExPR0lOX0kxOE4gfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi90b2tlbnMvaTE4bic7XG5pbXBvcnQgeyBLQ19MT0dJTl9DT05URVhUIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vdG9rZW5zL2tjLWNvbnRleHQnO1xuaW1wb3J0IHsgRE9fTUFLRV9VU0VSX0NPTkZJUk1fUEFTU1dPUkQgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi90b2tlbnMvbWFrZS11c2VyLWNvbmZpcm0tcGFzc3dvcmQnO1xuaW1wb3J0IHsgdHlwZSBLY0NvbnRleHRMaWtlIH0gZnJvbSAna2V5Y2xvYWtpZnkvbG9naW4vaTE4bi9ub0pzeCc7XG5pbXBvcnQgdHlwZSB7IENsYXNzS2V5IH0gZnJvbSAna2V5Y2xvYWtpZnkvbG9naW4vbGliL2tjQ2xzeCc7XG5cbmV4cG9ydCB0eXBlIEtleWNsb2FraWZ5QW5ndWxhckxvZ2luQ29uZmlnID0ge1xuICAgIGRvTWFrZVVzZXJDb25maXJtUGFzc3dvcmQ/OiBib29sZWFuO1xuICAgIGRvVXNlRGVmYXVsdENzcz86IGJvb2xlYW47XG4gICAgY2xhc3Nlcz86IHsgW2tleSBpbiBDbGFzc0tleV0/OiBzdHJpbmcgfTtcbiAgICBrY0NvbnRleHQ6IHVua25vd247XG4gICAgZ2V0STE4bjogKHBhcmFtczogeyBrY0NvbnRleHQ6IEtjQ29udGV4dExpa2UgfSkgPT4ge1xuICAgICAgICBpMThuOiB1bmtub3duO1xuICAgICAgICBwckkxOG5fY3VycmVudExhbmd1YWdlOiBQcm9taXNlPHVua25vd24+IHwgdW5kZWZpbmVkO1xuICAgIH07XG59O1xuXG5leHBvcnQgY29uc3QgcHJvdmlkZUtleWNsb2FraWZ5QW5ndWxhciA9IChjb25maWc6IEtleWNsb2FraWZ5QW5ndWxhckxvZ2luQ29uZmlnKSA9PlxuICAgIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVycyhbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEtDX0xPR0lOX0NPTlRFWFQsXG4gICAgICAgICAgICB1c2VWYWx1ZTogY29uZmlnLmtjQ29udGV4dFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBET19NQUtFX1VTRVJfQ09ORklSTV9QQVNTV09SRCxcbiAgICAgICAgICAgIHVzZVZhbHVlOiBjb25maWc/LmRvTWFrZVVzZXJDb25maXJtUGFzc3dvcmQgPz8gdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBMT0NBTEVfSUQsXG4gICAgICAgICAgICB1c2VGYWN0b3J5OiAoZG9jdW1lbnQ6IERvY3VtZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5sYW5nID8/ICdlbic7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZGVwczogW0RPQ1VNRU5UXVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBBUFBfSU5JVElBTElaRVIsXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgICAgICAgIHVzZUZhY3Rvcnk6IChpMThuU2VydmljZTogSTE4blNlcnZpY2UsIGtjQ29udGV4dDogS2NDb250ZXh0KSA9PiBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgZ2V0STE4biA9IGNvbmZpZy5nZXRJMThuO1xuXG4gICAgICAgICAgICAgICAgY29uc3QgeyBpMThuLCBwckkxOG5fY3VycmVudExhbmd1YWdlIH0gPSBnZXRJMThuKHtcbiAgICAgICAgICAgICAgICAgICAga2NDb250ZXh0XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgbGV0IGkxOG5Qcm9taXNlID0gbmV3IFByb21pc2U8dHlwZW9mIGkxOG4+KHJlc29sdmUgPT4gcmVzb2x2ZShpMThuKSk7XG4gICAgICAgICAgICAgICAgaWYgKHBySTE4bl9jdXJyZW50TGFuZ3VhZ2UpIHtcbiAgICAgICAgICAgICAgICAgICAgaTE4blByb21pc2UgPSBwckkxOG5fY3VycmVudExhbmd1YWdlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gaTE4blByb21pc2UudGhlbihpMThuID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaTE4blNlcnZpY2UuaTE4biA9IGkxOG47XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGRlcHM6IFtJMThuU2VydmljZSwgS0NfTE9HSU5fQ09OVEVYVF1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTE9HSU5fSTE4TixcbiAgICAgICAgICAgIHVzZUZhY3Rvcnk6IChpMThuU2VydmljZTogSTE4blNlcnZpY2UpID0+IGkxOG5TZXJ2aWNlLmkxOG4sXG4gICAgICAgICAgICBkZXBzOiBbSTE4blNlcnZpY2VdXG4gICAgICAgIH0sXG4gICAgICAgIHsgcHJvdmlkZTogVVNFX0RFRkFVTFRfQ1NTLCB1c2VWYWx1ZTogY29uZmlnPy5kb1VzZURlZmF1bHRDc3MgPz8gdHJ1ZSB9LFxuICAgICAgICB7IHByb3ZpZGU6IExPR0lOX0NMQVNTRVMsIHVzZVZhbHVlOiBjb25maWc/LmNsYXNzZXMgPz8ge30gfVxuICAgIF0pO1xuIl19
@@ -1 +1 @@
1
- {"version":3,"file":"keycloakify-angular-account-providers-keycloakify-angular.mjs","sources":["../../src/account/providers/keycloakify-angular/keycloakify-angular.providers.ts","../../src/account/providers/keycloakify-angular/keycloakify-angular-account-providers-keycloakify-angular.ts"],"sourcesContent":["import { DOCUMENT } from '@angular/common';\nimport { APP_INITIALIZER, LOCALE_ID, makeEnvironmentProviders } from '@angular/core';\nimport { I18nService } from '@keycloakify/angular/account/services/i18n';\nimport { ACCOUNT_CLASSES } from '@keycloakify/angular/account/tokens/classes';\nimport { ACCOUNT_I18N } from '@keycloakify/angular/account/tokens/i18n';\nimport { KC_ACCOUNT_CONTEXT } from '@keycloakify/angular/account/tokens/kc-context';\nimport { USE_DEFAULT_CSS } from '@keycloakify/angular/lib/tokens/use-default-css';\nimport { type KcContextLike } from 'keycloakify/account/i18n/noJsx';\nimport type { ClassKey } from 'keycloakify/account/lib/kcClsx';\nimport type { KcContext } from '@keycloakify/angular/account/KcContext';\n\nexport type KeycloakifyAngularAccountConfig = {\n doUseDefaultCss?: boolean;\n classes?: { [key in ClassKey]?: string };\n kcContext: KcContext;\n getI18n: (params: { kcContext: KcContextLike }) => {\n i18n: unknown;\n prI18n_currentLanguage: Promise<unknown> | undefined;\n };\n};\n\nexport const provideKeycloakifyAngular = (config: KeycloakifyAngularAccountConfig) =>\n makeEnvironmentProviders([\n {\n provide: KC_ACCOUNT_CONTEXT,\n useValue: config.kcContext\n },\n {\n provide: LOCALE_ID,\n useFactory: (document: Document) => {\n return document.documentElement.lang ?? 'en';\n },\n deps: [DOCUMENT]\n },\n {\n provide: APP_INITIALIZER,\n multi: true,\n useFactory: (i18nService: I18nService, kcContext: KcContext) => async () => {\n const getI18n = config.getI18n;\n\n const { i18n, prI18n_currentLanguage } = getI18n({\n kcContext\n });\n let i18nPromise = new Promise<typeof i18n>(resolve => resolve(i18n));\n if (prI18n_currentLanguage) {\n i18nPromise = prI18n_currentLanguage;\n }\n return i18nPromise.then(i18n => {\n i18nService.i18n = i18n;\n return true;\n });\n },\n deps: [I18nService, KC_ACCOUNT_CONTEXT]\n },\n {\n provide: ACCOUNT_I18N,\n useFactory: (i18nService: I18nService) => i18nService.i18n,\n deps: [I18nService]\n },\n { provide: USE_DEFAULT_CSS, useValue: config?.doUseDefaultCss ?? true },\n { provide: ACCOUNT_CLASSES, useValue: config?.classes ?? {} }\n ]);\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;AAqBa,MAAA,yBAAyB,GAAG,CAAC,MAAuC,KAC7E,wBAAwB,CAAC;AACrB,IAAA;AACI,QAAA,OAAO,EAAE,kBAAkB;QAC3B,QAAQ,EAAE,MAAM,CAAC,SAAS;AAC7B,KAAA;AACD,IAAA;AACI,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,UAAU,EAAE,CAAC,QAAkB,KAAI;AAC/B,YAAA,OAAO,QAAQ,CAAC,eAAe,CAAC,IAAI,IAAI,IAAI,CAAC;SAChD;QACD,IAAI,EAAE,CAAC,QAAQ,CAAC;AACnB,KAAA;AACD,IAAA;AACI,QAAA,OAAO,EAAE,eAAe;AACxB,QAAA,KAAK,EAAE,IAAI;QACX,UAAU,EAAE,CAAC,WAAwB,EAAE,SAAoB,KAAK,YAAW;AACvE,YAAA,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;AAE/B,YAAA,MAAM,EAAE,IAAI,EAAE,sBAAsB,EAAE,GAAG,OAAO,CAAC;gBAC7C,SAAS;AACZ,aAAA,CAAC,CAAC;AACH,YAAA,IAAI,WAAW,GAAG,IAAI,OAAO,CAAc,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;YACrE,IAAI,sBAAsB,EAAE;gBACxB,WAAW,GAAG,sBAAsB,CAAC;aACxC;AACD,YAAA,OAAO,WAAW,CAAC,IAAI,CAAC,IAAI,IAAG;AAC3B,gBAAA,WAAW,CAAC,IAAI,GAAG,IAAI,CAAC;AACxB,gBAAA,OAAO,IAAI,CAAC;AAChB,aAAC,CAAC,CAAC;SACN;AACD,QAAA,IAAI,EAAE,CAAC,WAAW,EAAE,kBAAkB,CAAC;AAC1C,KAAA;AACD,IAAA;AACI,QAAA,OAAO,EAAE,YAAY;QACrB,UAAU,EAAE,CAAC,WAAwB,KAAK,WAAW,CAAC,IAAI;QAC1D,IAAI,EAAE,CAAC,WAAW,CAAC;AACtB,KAAA;IACD,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,EAAE,eAAe,IAAI,IAAI,EAAE;IACvE,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,IAAI,EAAE,EAAE;AAChE,CAAA;;AC7DL;;AAEG;;;;"}
1
+ {"version":3,"file":"keycloakify-angular-account-providers-keycloakify-angular.mjs","sources":["../../src/account/providers/keycloakify-angular/keycloakify-angular.providers.ts","../../src/account/providers/keycloakify-angular/keycloakify-angular-account-providers-keycloakify-angular.ts"],"sourcesContent":["import { DOCUMENT } from '@angular/common';\nimport { APP_INITIALIZER, LOCALE_ID, makeEnvironmentProviders } from '@angular/core';\nimport type { KcContext } from '@keycloakify/angular/account/KcContext';\nimport { I18nService } from '@keycloakify/angular/account/services/i18n';\nimport { ACCOUNT_CLASSES } from '@keycloakify/angular/account/tokens/classes';\nimport { ACCOUNT_I18N } from '@keycloakify/angular/account/tokens/i18n';\nimport { KC_ACCOUNT_CONTEXT } from '@keycloakify/angular/account/tokens/kc-context';\nimport { USE_DEFAULT_CSS } from '@keycloakify/angular/lib/tokens/use-default-css';\nimport { type KcContextLike } from 'keycloakify/account/i18n/noJsx';\nimport type { ClassKey } from 'keycloakify/account/lib/kcClsx';\n\nexport type KeycloakifyAngularAccountConfig = {\n doUseDefaultCss?: boolean;\n classes?: { [key in ClassKey]?: string };\n kcContext: unknown;\n getI18n: (params: { kcContext: KcContextLike }) => {\n i18n: unknown;\n prI18n_currentLanguage: Promise<unknown> | undefined;\n };\n};\n\nexport const provideKeycloakifyAngular = (config: KeycloakifyAngularAccountConfig) =>\n makeEnvironmentProviders([\n {\n provide: KC_ACCOUNT_CONTEXT,\n useValue: config.kcContext\n },\n {\n provide: LOCALE_ID,\n useFactory: (document: Document) => {\n return document.documentElement.lang ?? 'en';\n },\n deps: [DOCUMENT]\n },\n {\n provide: APP_INITIALIZER,\n multi: true,\n useFactory: (i18nService: I18nService, kcContext: KcContext) => async () => {\n const getI18n = config.getI18n;\n\n const { i18n, prI18n_currentLanguage } = getI18n({\n kcContext\n });\n let i18nPromise = new Promise<typeof i18n>(resolve => resolve(i18n));\n if (prI18n_currentLanguage) {\n i18nPromise = prI18n_currentLanguage;\n }\n return i18nPromise.then(i18n => {\n i18nService.i18n = i18n;\n return true;\n });\n },\n deps: [I18nService, KC_ACCOUNT_CONTEXT]\n },\n {\n provide: ACCOUNT_I18N,\n useFactory: (i18nService: I18nService) => i18nService.i18n,\n deps: [I18nService]\n },\n { provide: USE_DEFAULT_CSS, useValue: config?.doUseDefaultCss ?? true },\n { provide: ACCOUNT_CLASSES, useValue: config?.classes ?? {} }\n ]);\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;AAqBa,MAAA,yBAAyB,GAAG,CAAC,MAAuC,KAC7E,wBAAwB,CAAC;AACrB,IAAA;AACI,QAAA,OAAO,EAAE,kBAAkB;QAC3B,QAAQ,EAAE,MAAM,CAAC,SAAS;AAC7B,KAAA;AACD,IAAA;AACI,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,UAAU,EAAE,CAAC,QAAkB,KAAI;AAC/B,YAAA,OAAO,QAAQ,CAAC,eAAe,CAAC,IAAI,IAAI,IAAI,CAAC;SAChD;QACD,IAAI,EAAE,CAAC,QAAQ,CAAC;AACnB,KAAA;AACD,IAAA;AACI,QAAA,OAAO,EAAE,eAAe;AACxB,QAAA,KAAK,EAAE,IAAI;QACX,UAAU,EAAE,CAAC,WAAwB,EAAE,SAAoB,KAAK,YAAW;AACvE,YAAA,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;AAE/B,YAAA,MAAM,EAAE,IAAI,EAAE,sBAAsB,EAAE,GAAG,OAAO,CAAC;gBAC7C,SAAS;AACZ,aAAA,CAAC,CAAC;AACH,YAAA,IAAI,WAAW,GAAG,IAAI,OAAO,CAAc,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;YACrE,IAAI,sBAAsB,EAAE;gBACxB,WAAW,GAAG,sBAAsB,CAAC;aACxC;AACD,YAAA,OAAO,WAAW,CAAC,IAAI,CAAC,IAAI,IAAG;AAC3B,gBAAA,WAAW,CAAC,IAAI,GAAG,IAAI,CAAC;AACxB,gBAAA,OAAO,IAAI,CAAC;AAChB,aAAC,CAAC,CAAC;SACN;AACD,QAAA,IAAI,EAAE,CAAC,WAAW,EAAE,kBAAkB,CAAC;AAC1C,KAAA;AACD,IAAA;AACI,QAAA,OAAO,EAAE,YAAY;QACrB,UAAU,EAAE,CAAC,WAAwB,KAAK,WAAW,CAAC,IAAI;QAC1D,IAAI,EAAE,CAAC,WAAW,CAAC;AACtB,KAAA;IACD,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,EAAE,eAAe,IAAI,IAAI,EAAE;IACvE,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,IAAI,EAAE,EAAE;AAChE,CAAA;;AC7DL;;AAEG;;;;"}
@@ -24,7 +24,7 @@ class LoginOauthGrantComponent extends ComponentReference {
24
24
  provide: ComponentReference,
25
25
  useExisting: forwardRef(() => LoginOauthGrantComponent)
26
26
  }
27
- ], 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 client = kcContext.client;\n@let oauth = kcContext.oauth;\n@let url = kcContext.url;\n\n<ng-template #headerNode>\n @let client = kcContext.client;\n @if (client.attributes['logoUri']) {\n <img\n alt=\"\"\n [src]=\"client.attributes['logoUri']\"\n />\n }\n <p>\n {{ i18n.msgStr('oauthGrantTitle', client.name ? i18n.advancedMsgStr(client.name) : client.clientId) }}\n </p>\n</ng-template>\n\n<div\n id=\"kc-oauth\"\n class=\"content-area\"\n>\n <h3>{{ i18n.msgStr('oauthGrantRequest') }}</h3>\n <ul>\n @for (clientScope of oauth.clientScopesRequested; track clientScope) {\n <li>\n <span>\n {{ i18n.advancedMsgStr(clientScope.consentScreenText) }}\n @if (clientScope.dynamicScopeParameter) {\n : <b>{{ clientScope.dynamicScopeParameter }}</b>\n }\n </span>\n </li>\n }\n </ul>\n\n @if (client.attributes['policyUri'] || client.attributes['tosUri']) {\n <h3>\n @if (client.name) {\n {{ i18n.msgStr('oauthGrantInformation', i18n.advancedMsgStr(client.name)) }}\n } @else {\n {{ i18n.msgStr('oauthGrantInformation', client.clientId) }}\n }\n @if (client.attributes['policyUri']) {\n {{ i18n.msgStr('oauthGrantReview') }}\n <a\n target=\"_blank\"\n [href]=\"client.attributes['policyUri']\"\n >\n {{ i18n.msgStr('oauthGrantPolicy') }}\n </a>\n }\n </h3>\n }\n <form\n class=\"form-actions\"\n method=\"post\"\n [action]=\"url.oauthAction\"\n >\n <input\n type=\"hidden\"\n name=\"code\"\n [value]=\"oauth.code\"\n />\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div id=\"kc-form-options\">\n <div [kcClass]=\"'kcFormOptionsWrapperClass'\"></div>\n </div>\n\n <div id=\"kc-form-buttons\">\n <div [kcClass]=\"'kcFormButtonsWrapperClass'\">\n <input\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doYes')\"\n />\n <input\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonDefaultClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doNo')\"\n />\n </div>\n </div>\n </div>\n </form>\n <div className=\"clearfix\"></div>\n</div>\n", dependencies: [{ kind: "directive", type: KcClassDirective, selector: "[kcClass]", inputs: ["class", "ngClass", "kcClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
27
+ ], 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 client = kcContext.client;\n@let oauth = kcContext.oauth;\n@let url = kcContext.url;\n\n<ng-template #headerNode>\n @let client = kcContext.client;\n @if (client.attributes['logoUri']) {\n <img\n alt=\"\"\n [src]=\"client.attributes['logoUri']\"\n />\n }\n <p>\n {{ i18n.msgStr('oauthGrantTitle', client.name ? i18n.advancedMsgStr(client.name) : client.clientId) }}\n </p>\n</ng-template>\n\n<div\n id=\"kc-oauth\"\n class=\"content-area\"\n>\n <h3>{{ i18n.msgStr('oauthGrantRequest') }}</h3>\n <ul>\n @for (clientScope of oauth.clientScopesRequested; track clientScope) {\n <li>\n <span>\n {{ i18n.advancedMsgStr(clientScope.consentScreenText) }}\n @if (clientScope.dynamicScopeParameter) {\n : <b>{{ clientScope.dynamicScopeParameter }}</b>\n }\n </span>\n </li>\n }\n </ul>\n\n @if (client.attributes['policyUri'] || client.attributes['tosUri']) {\n <h3>\n @if (client.name) {\n {{ i18n.msgStr('oauthGrantInformation', i18n.advancedMsgStr(client.name)) }}\n } @else {\n {{ i18n.msgStr('oauthGrantInformation', client.clientId) }}\n }\n @if (client.attributes['policyUri']) {\n {{ i18n.msgStr('oauthGrantReview') }}\n <a\n target=\"_blank\"\n [href]=\"client.attributes['policyUri']\"\n >\n {{ i18n.msgStr('oauthGrantPolicy') }}\n </a>\n }\n </h3>\n }\n <form\n class=\"form-actions\"\n method=\"post\"\n [action]=\"url.oauthAction\"\n >\n <input\n type=\"hidden\"\n name=\"code\"\n [value]=\"oauth.code\"\n />\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div id=\"kc-form-options\">\n <div [kcClass]=\"'kcFormOptionsWrapperClass'\"></div>\n </div>\n\n <div id=\"kc-form-buttons\">\n <div [kcClass]=\"'kcFormButtonsWrapperClass'\">\n <input\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doYes')\"\n />\n <input\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonDefaultClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doNo')\"\n />\n </div>\n </div>\n </div>\n </form>\n <div class=\"clearfix\"></div>\n</div>\n", dependencies: [{ kind: "directive", type: KcClassDirective, selector: "[kcClass]", inputs: ["class", "ngClass", "kcClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
28
28
  }
29
29
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: LoginOauthGrantComponent, decorators: [{
30
30
  type: Component,
@@ -33,7 +33,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
33
33
  provide: ComponentReference,
34
34
  useExisting: forwardRef(() => LoginOauthGrantComponent)
35
35
  }
36
- ], template: "@let client = kcContext.client;\n@let oauth = kcContext.oauth;\n@let url = kcContext.url;\n\n<ng-template #headerNode>\n @let client = kcContext.client;\n @if (client.attributes['logoUri']) {\n <img\n alt=\"\"\n [src]=\"client.attributes['logoUri']\"\n />\n }\n <p>\n {{ i18n.msgStr('oauthGrantTitle', client.name ? i18n.advancedMsgStr(client.name) : client.clientId) }}\n </p>\n</ng-template>\n\n<div\n id=\"kc-oauth\"\n class=\"content-area\"\n>\n <h3>{{ i18n.msgStr('oauthGrantRequest') }}</h3>\n <ul>\n @for (clientScope of oauth.clientScopesRequested; track clientScope) {\n <li>\n <span>\n {{ i18n.advancedMsgStr(clientScope.consentScreenText) }}\n @if (clientScope.dynamicScopeParameter) {\n : <b>{{ clientScope.dynamicScopeParameter }}</b>\n }\n </span>\n </li>\n }\n </ul>\n\n @if (client.attributes['policyUri'] || client.attributes['tosUri']) {\n <h3>\n @if (client.name) {\n {{ i18n.msgStr('oauthGrantInformation', i18n.advancedMsgStr(client.name)) }}\n } @else {\n {{ i18n.msgStr('oauthGrantInformation', client.clientId) }}\n }\n @if (client.attributes['policyUri']) {\n {{ i18n.msgStr('oauthGrantReview') }}\n <a\n target=\"_blank\"\n [href]=\"client.attributes['policyUri']\"\n >\n {{ i18n.msgStr('oauthGrantPolicy') }}\n </a>\n }\n </h3>\n }\n <form\n class=\"form-actions\"\n method=\"post\"\n [action]=\"url.oauthAction\"\n >\n <input\n type=\"hidden\"\n name=\"code\"\n [value]=\"oauth.code\"\n />\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div id=\"kc-form-options\">\n <div [kcClass]=\"'kcFormOptionsWrapperClass'\"></div>\n </div>\n\n <div id=\"kc-form-buttons\">\n <div [kcClass]=\"'kcFormButtonsWrapperClass'\">\n <input\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doYes')\"\n />\n <input\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonDefaultClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doNo')\"\n />\n </div>\n </div>\n </div>\n </form>\n <div className=\"clearfix\"></div>\n</div>\n" }]
36
+ ], template: "@let client = kcContext.client;\n@let oauth = kcContext.oauth;\n@let url = kcContext.url;\n\n<ng-template #headerNode>\n @let client = kcContext.client;\n @if (client.attributes['logoUri']) {\n <img\n alt=\"\"\n [src]=\"client.attributes['logoUri']\"\n />\n }\n <p>\n {{ i18n.msgStr('oauthGrantTitle', client.name ? i18n.advancedMsgStr(client.name) : client.clientId) }}\n </p>\n</ng-template>\n\n<div\n id=\"kc-oauth\"\n class=\"content-area\"\n>\n <h3>{{ i18n.msgStr('oauthGrantRequest') }}</h3>\n <ul>\n @for (clientScope of oauth.clientScopesRequested; track clientScope) {\n <li>\n <span>\n {{ i18n.advancedMsgStr(clientScope.consentScreenText) }}\n @if (clientScope.dynamicScopeParameter) {\n : <b>{{ clientScope.dynamicScopeParameter }}</b>\n }\n </span>\n </li>\n }\n </ul>\n\n @if (client.attributes['policyUri'] || client.attributes['tosUri']) {\n <h3>\n @if (client.name) {\n {{ i18n.msgStr('oauthGrantInformation', i18n.advancedMsgStr(client.name)) }}\n } @else {\n {{ i18n.msgStr('oauthGrantInformation', client.clientId) }}\n }\n @if (client.attributes['policyUri']) {\n {{ i18n.msgStr('oauthGrantReview') }}\n <a\n target=\"_blank\"\n [href]=\"client.attributes['policyUri']\"\n >\n {{ i18n.msgStr('oauthGrantPolicy') }}\n </a>\n }\n </h3>\n }\n <form\n class=\"form-actions\"\n method=\"post\"\n [action]=\"url.oauthAction\"\n >\n <input\n type=\"hidden\"\n name=\"code\"\n [value]=\"oauth.code\"\n />\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div id=\"kc-form-options\">\n <div [kcClass]=\"'kcFormOptionsWrapperClass'\"></div>\n </div>\n\n <div id=\"kc-form-buttons\">\n <div [kcClass]=\"'kcFormButtonsWrapperClass'\">\n <input\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doYes')\"\n />\n <input\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonDefaultClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doNo')\"\n />\n </div>\n </div>\n </div>\n </form>\n <div class=\"clearfix\"></div>\n</div>\n" }]
37
37
  }] });
38
38
 
39
39
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"keycloakify-angular-login-pages-login-oauth-grant.mjs","sources":["../../src/login/pages/login-oauth-grant/login-oauth-grant.component.ts","../../src/login/pages/login-oauth-grant/login-oauth-grant.component.html","../../src/login/pages/login-oauth-grant/keycloakify-angular-login-pages-login-oauth-grant.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 standalone: true,\n imports: [KcClassDirective],\n selector: 'kc-login-oauth-grant',\n templateUrl: 'login-oauth-grant.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: ComponentReference,\n useExisting: forwardRef(() => LoginOauthGrantComponent)\n }\n ]\n})\nexport class LoginOauthGrantComponent extends ComponentReference {\n kcContext = inject<Extract<KcContext, { pageId: 'login-oauth-grant.ftl' }>>(KC_LOGIN_CONTEXT);\n i18n = inject<I18n>(LOGIN_I18N);\n\n documentTitle: string | undefined;\n bodyClassName = 'oauth';\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 client = kcContext.client;\n@let oauth = kcContext.oauth;\n@let url = kcContext.url;\n\n<ng-template #headerNode>\n @let client = kcContext.client;\n @if (client.attributes['logoUri']) {\n <img\n alt=\"\"\n [src]=\"client.attributes['logoUri']\"\n />\n }\n <p>\n {{ i18n.msgStr('oauthGrantTitle', client.name ? i18n.advancedMsgStr(client.name) : client.clientId) }}\n </p>\n</ng-template>\n\n<div\n id=\"kc-oauth\"\n class=\"content-area\"\n>\n <h3>{{ i18n.msgStr('oauthGrantRequest') }}</h3>\n <ul>\n @for (clientScope of oauth.clientScopesRequested; track clientScope) {\n <li>\n <span>\n {{ i18n.advancedMsgStr(clientScope.consentScreenText) }}\n @if (clientScope.dynamicScopeParameter) {\n : <b>{{ clientScope.dynamicScopeParameter }}</b>\n }\n </span>\n </li>\n }\n </ul>\n\n @if (client.attributes['policyUri'] || client.attributes['tosUri']) {\n <h3>\n @if (client.name) {\n {{ i18n.msgStr('oauthGrantInformation', i18n.advancedMsgStr(client.name)) }}\n } @else {\n {{ i18n.msgStr('oauthGrantInformation', client.clientId) }}\n }\n @if (client.attributes['policyUri']) {\n {{ i18n.msgStr('oauthGrantReview') }}\n <a\n target=\"_blank\"\n [href]=\"client.attributes['policyUri']\"\n >\n {{ i18n.msgStr('oauthGrantPolicy') }}\n </a>\n }\n </h3>\n }\n <form\n class=\"form-actions\"\n method=\"post\"\n [action]=\"url.oauthAction\"\n >\n <input\n type=\"hidden\"\n name=\"code\"\n [value]=\"oauth.code\"\n />\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div id=\"kc-form-options\">\n <div [kcClass]=\"'kcFormOptionsWrapperClass'\"></div>\n </div>\n\n <div id=\"kc-form-buttons\">\n <div [kcClass]=\"'kcFormButtonsWrapperClass'\">\n <input\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doYes')\"\n />\n <input\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonDefaultClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doNo')\"\n />\n </div>\n </div>\n </div>\n </form>\n <div className=\"clearfix\"></div>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;AAqBM,MAAO,wBAAyB,SAAQ,kBAAkB,CAAA;AAbhE,IAAA,WAAA,GAAA;;AAcI,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAA0D,gBAAgB,CAAC,CAAC;AAC9F,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAO,UAAU,CAAC,CAAC;QAGhC,IAAa,CAAA,aAAA,GAAG,OAAO,CAAC;QAExB,IAAqB,CAAA,qBAAA,GAAG,KAAK,CAAC;QAC9B,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;QACpB,IAAc,CAAA,cAAA,GAAG,KAAK,CAAC;AAEvB,QAAA,IAAA,CAAA,UAAU,GAAG,SAAS,CAA2B,YAAY,CAAC,CAAC;AAC/D,QAAA,IAAA,CAAA,QAAQ,GAAG,SAAS,CAA2B,UAAU,CAAC,CAAC;AAC3D,QAAA,IAAA,CAAA,mBAAmB,GAAG,SAAS,CAA2B,qBAAqB,CAAC,CAAC;AACpF,KAAA;8GAdY,wBAAwB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,wBAAwB,EAPtB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,SAAA,EAAA;AACP,YAAA;AACI,gBAAA,OAAO,EAAE,kBAAkB;AAC3B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,wBAAwB,CAAC;AAC1D,aAAA;SACJ,ECnBL,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,syFAsFA,4CD5Ec,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,EAAA;;2FAWjB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAbpC,SAAS;iCACM,IAAI,EAAA,OAAA,EACP,CAAC,gBAAgB,CAAC,EAAA,QAAA,EACjB,sBAAsB,EAEf,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACpC,SAAA,EAAA;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,kBAAkB;AAC3B,4BAAA,WAAW,EAAE,UAAU,CAAC,8BAA8B,CAAC;AAC1D,yBAAA;AACJ,qBAAA,EAAA,QAAA,EAAA,syFAAA,EAAA,CAAA;;;AEnBL;;AAEG;;;;"}
1
+ {"version":3,"file":"keycloakify-angular-login-pages-login-oauth-grant.mjs","sources":["../../src/login/pages/login-oauth-grant/login-oauth-grant.component.ts","../../src/login/pages/login-oauth-grant/login-oauth-grant.component.html","../../src/login/pages/login-oauth-grant/keycloakify-angular-login-pages-login-oauth-grant.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 standalone: true,\n imports: [KcClassDirective],\n selector: 'kc-login-oauth-grant',\n templateUrl: 'login-oauth-grant.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: ComponentReference,\n useExisting: forwardRef(() => LoginOauthGrantComponent)\n }\n ]\n})\nexport class LoginOauthGrantComponent extends ComponentReference {\n kcContext = inject<Extract<KcContext, { pageId: 'login-oauth-grant.ftl' }>>(KC_LOGIN_CONTEXT);\n i18n = inject<I18n>(LOGIN_I18N);\n\n documentTitle: string | undefined;\n bodyClassName = 'oauth';\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 client = kcContext.client;\n@let oauth = kcContext.oauth;\n@let url = kcContext.url;\n\n<ng-template #headerNode>\n @let client = kcContext.client;\n @if (client.attributes['logoUri']) {\n <img\n alt=\"\"\n [src]=\"client.attributes['logoUri']\"\n />\n }\n <p>\n {{ i18n.msgStr('oauthGrantTitle', client.name ? i18n.advancedMsgStr(client.name) : client.clientId) }}\n </p>\n</ng-template>\n\n<div\n id=\"kc-oauth\"\n class=\"content-area\"\n>\n <h3>{{ i18n.msgStr('oauthGrantRequest') }}</h3>\n <ul>\n @for (clientScope of oauth.clientScopesRequested; track clientScope) {\n <li>\n <span>\n {{ i18n.advancedMsgStr(clientScope.consentScreenText) }}\n @if (clientScope.dynamicScopeParameter) {\n : <b>{{ clientScope.dynamicScopeParameter }}</b>\n }\n </span>\n </li>\n }\n </ul>\n\n @if (client.attributes['policyUri'] || client.attributes['tosUri']) {\n <h3>\n @if (client.name) {\n {{ i18n.msgStr('oauthGrantInformation', i18n.advancedMsgStr(client.name)) }}\n } @else {\n {{ i18n.msgStr('oauthGrantInformation', client.clientId) }}\n }\n @if (client.attributes['policyUri']) {\n {{ i18n.msgStr('oauthGrantReview') }}\n <a\n target=\"_blank\"\n [href]=\"client.attributes['policyUri']\"\n >\n {{ i18n.msgStr('oauthGrantPolicy') }}\n </a>\n }\n </h3>\n }\n <form\n class=\"form-actions\"\n method=\"post\"\n [action]=\"url.oauthAction\"\n >\n <input\n type=\"hidden\"\n name=\"code\"\n [value]=\"oauth.code\"\n />\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div id=\"kc-form-options\">\n <div [kcClass]=\"'kcFormOptionsWrapperClass'\"></div>\n </div>\n\n <div id=\"kc-form-buttons\">\n <div [kcClass]=\"'kcFormButtonsWrapperClass'\">\n <input\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doYes')\"\n />\n <input\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonDefaultClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doNo')\"\n />\n </div>\n </div>\n </div>\n </form>\n <div class=\"clearfix\"></div>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;AAqBM,MAAO,wBAAyB,SAAQ,kBAAkB,CAAA;AAbhE,IAAA,WAAA,GAAA;;AAcI,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAA0D,gBAAgB,CAAC,CAAC;AAC9F,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAO,UAAU,CAAC,CAAC;QAGhC,IAAa,CAAA,aAAA,GAAG,OAAO,CAAC;QAExB,IAAqB,CAAA,qBAAA,GAAG,KAAK,CAAC;QAC9B,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;QACpB,IAAc,CAAA,cAAA,GAAG,KAAK,CAAC;AAEvB,QAAA,IAAA,CAAA,UAAU,GAAG,SAAS,CAA2B,YAAY,CAAC,CAAC;AAC/D,QAAA,IAAA,CAAA,QAAQ,GAAG,SAAS,CAA2B,UAAU,CAAC,CAAC;AAC3D,QAAA,IAAA,CAAA,mBAAmB,GAAG,SAAS,CAA2B,qBAAqB,CAAC,CAAC;AACpF,KAAA;8GAdY,wBAAwB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,wBAAwB,EAPtB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,SAAA,EAAA;AACP,YAAA;AACI,gBAAA,OAAO,EAAE,kBAAkB;AAC3B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,wBAAwB,CAAC;AAC1D,aAAA;SACJ,ECnBL,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,kyFAsFA,4CD5Ec,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,EAAA;;2FAWjB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAbpC,SAAS;iCACM,IAAI,EAAA,OAAA,EACP,CAAC,gBAAgB,CAAC,EAAA,QAAA,EACjB,sBAAsB,EAEf,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACpC,SAAA,EAAA;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,kBAAkB;AAC3B,4BAAA,WAAW,EAAE,UAAU,CAAC,8BAA8B,CAAC;AAC1D,yBAAA;AACJ,qBAAA,EAAA,QAAA,EAAA,kyFAAA,EAAA,CAAA;;;AEnBL;;AAEG;;;;"}
@@ -42,7 +42,7 @@ class RegisterComponent extends ComponentReference {
42
42
  provide: ComponentReference,
43
43
  useExisting: forwardRef(() => RegisterComponent)
44
44
  }
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 url = kcContext.url;\n@let messagesPerField = kcContext.messagesPerField;\n@let recaptchaRequired = kcContext.recaptchaRequired;\n@let recaptchaVisible = kcContext.recaptchaVisible;\n@let recaptchaSiteKey = kcContext.recaptchaSiteKey;\n@let recaptchaAction = kcContext.recaptchaAction;\n@let termsAcceptanceRequired = kcContext.termsAcceptanceRequired;\n\n<ng-template #headerNode>\n @let messageHeader = kcContext.messageHeader;\n {{ messageHeader ?? i18n.advancedMsgStr('registerTitle') }}\n</ng-template>\n<form\n id=\"kc-register-form\"\n method=\"post\"\n [kcClass]=\"'kcFormClass'\"\n [action]=\"url.registrationAction\"\n>\n <ng-container [ngComponentOutlet]=\"userProfileFormFields() ?? null\" />\n @if (termsAcceptanceRequired) {\n <div className=\"form-group\">\n <div [kcClass]=\"'kcInputWrapperClass'\">\n {{ i18n.msgStr('termsTitle') }}\n <div id=\"kc-registration-terms-text\">\n {{ i18n.msgStr('termsText') }}\n </div>\n </div>\n </div>\n <div className=\"form-group\">\n <div [kcClass]=\"'kcLabelWrapperClass'\">\n <input\n type=\"checkbox\"\n id=\"termsAccepted\"\n name=\"termsAccepted\"\n [kcClass]=\"'kcCheckboxInputClass'\"\n [checked]=\"areTermsAccepted()\"\n [attr.aria-invalid]=\"messagesPerField.existsError('termsAccepted')\"\n (change)=\"areTermsAccepted.set($any($event.target).checked)\"\n />\n <label\n for=\"termsAccepted\"\n [kcClass]=\"'kcLabelClass'\"\n >\n {{ i18n.msgStr('acceptTerms') }}\n </label>\n </div>\n @if (messagesPerField.existsError('termsAccepted')) {\n <div [kcClass]=\"'kcLabelWrapperClass'\">\n <span\n id=\"input-error-terms-accepted\"\n aria-live=\"polite\"\n [kcClass]=\"'kcInputErrorMessageClass'\"\n [innerHtml]=\"messagesPerField.get('termsAccepted') | kcSanitize: 'html'\"\n ></span>\n </div>\n }\n </div>\n }\n @if (recaptchaRequired && (recaptchaVisible || recaptchaAction === undefined)) {\n <div className=\"form-group\">\n <div [kcClass]=\"'kcInputWrapperClass'\">\n <div\n class=\"g-recaptcha\"\n data-size=\"compact\"\n [attr.data-sitekey]=\"recaptchaSiteKey\"\n [attr.data-action]=\"recaptchaAction\"\n ></div>\n </div>\n </div>\n }\n\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div\n id=\"kc-form-options\"\n [kcClass]=\"'kcFormOptionsClass'\"\n >\n <div [kcClass]=\"'kcFormOptionsWrapperClass'\">\n <span>\n <a\n [href]=\"url.loginUrl\"\n [innerHTML]=\"i18n.msgStr('backToLogin') | kcSanitize: 'html'\"\n ></a>\n </span>\n </div>\n </div>\n @if (recaptchaRequired && !recaptchaVisible && recaptchaAction !== undefined) {\n <div\n id=\"kc-form-buttons\"\n [kcClass]=\"'kcFormButtonsClass'\"\n >\n <button\n class=\"g-recaptcha\"\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n [attr.data-sitekey]=\"recaptchaSiteKey\"\n [attr.data-callback]=\"onCallback\"\n [attr.data-action]=\"recaptchaAction\"\n >\n {{ i18n.msgStr('doRegister') }}\n </button>\n </div>\n } @else {\n <div\n id=\"kc-form-buttons\"\n [kcClass]=\"'kcFormButtonsClass'\"\n >\n <input\n type=\"submit\"\n [disabled]=\"!isFormSubmittable() || (termsAcceptanceRequired && !areTermsAccepted())\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doRegister')\"\n />\n </div>\n }\n </div>\n</form>\n", dependencies: [{ kind: "directive", type: KcClassDirective, selector: "[kcClass]", inputs: ["class", "ngClass", "kcClass"] }, { kind: "pipe", type: KcSanitizePipe, name: "kcSanitize" }, { kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }], 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 url = kcContext.url;\n@let messagesPerField = kcContext.messagesPerField;\n@let recaptchaRequired = kcContext.recaptchaRequired;\n@let recaptchaVisible = kcContext.recaptchaVisible;\n@let recaptchaSiteKey = kcContext.recaptchaSiteKey;\n@let recaptchaAction = kcContext.recaptchaAction;\n@let termsAcceptanceRequired = kcContext.termsAcceptanceRequired;\n\n<ng-template #headerNode>\n @let messageHeader = kcContext.messageHeader;\n {{ messageHeader ?? i18n.advancedMsgStr('registerTitle') }}\n</ng-template>\n<form\n id=\"kc-register-form\"\n method=\"post\"\n [kcClass]=\"'kcFormClass'\"\n [action]=\"url.registrationAction\"\n>\n <ng-container [ngComponentOutlet]=\"userProfileFormFields() ?? null\" />\n @if (termsAcceptanceRequired) {\n <div class=\"form-group\">\n <div [kcClass]=\"'kcInputWrapperClass'\">\n {{ i18n.msgStr('termsTitle') }}\n <div id=\"kc-registration-terms-text\">\n {{ i18n.msgStr('termsText') }}\n </div>\n </div>\n </div>\n <div class=\"form-group\">\n <div [kcClass]=\"'kcLabelWrapperClass'\">\n <input\n type=\"checkbox\"\n id=\"termsAccepted\"\n name=\"termsAccepted\"\n [kcClass]=\"'kcCheckboxInputClass'\"\n [checked]=\"areTermsAccepted()\"\n [attr.aria-invalid]=\"messagesPerField.existsError('termsAccepted')\"\n (change)=\"areTermsAccepted.set($any($event.target).checked)\"\n />\n <label\n for=\"termsAccepted\"\n [kcClass]=\"'kcLabelClass'\"\n >\n {{ i18n.msgStr('acceptTerms') }}\n </label>\n </div>\n @if (messagesPerField.existsError('termsAccepted')) {\n <div [kcClass]=\"'kcLabelWrapperClass'\">\n <span\n id=\"input-error-terms-accepted\"\n aria-live=\"polite\"\n [kcClass]=\"'kcInputErrorMessageClass'\"\n [innerHtml]=\"messagesPerField.get('termsAccepted') | kcSanitize: 'html'\"\n ></span>\n </div>\n }\n </div>\n }\n @if (recaptchaRequired && (recaptchaVisible || recaptchaAction === undefined)) {\n <div class=\"form-group\">\n <div [kcClass]=\"'kcInputWrapperClass'\">\n <div\n class=\"g-recaptcha\"\n data-size=\"compact\"\n [attr.data-sitekey]=\"recaptchaSiteKey\"\n [attr.data-action]=\"recaptchaAction\"\n ></div>\n </div>\n </div>\n }\n\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div\n id=\"kc-form-options\"\n [kcClass]=\"'kcFormOptionsClass'\"\n >\n <div [kcClass]=\"'kcFormOptionsWrapperClass'\">\n <span>\n <a\n [href]=\"url.loginUrl\"\n [innerHTML]=\"i18n.msgStr('backToLogin') | kcSanitize: 'html'\"\n ></a>\n </span>\n </div>\n </div>\n @if (recaptchaRequired && !recaptchaVisible && recaptchaAction !== undefined) {\n <div\n id=\"kc-form-buttons\"\n [kcClass]=\"'kcFormButtonsClass'\"\n >\n <button\n class=\"g-recaptcha\"\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n [attr.data-sitekey]=\"recaptchaSiteKey\"\n [attr.data-callback]=\"onCallback\"\n [attr.data-action]=\"recaptchaAction\"\n >\n {{ i18n.msgStr('doRegister') }}\n </button>\n </div>\n } @else {\n <div\n id=\"kc-form-buttons\"\n [kcClass]=\"'kcFormButtonsClass'\"\n >\n <input\n type=\"submit\"\n [disabled]=\"!isFormSubmittable() || (termsAcceptanceRequired && !areTermsAccepted())\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doRegister')\"\n />\n </div>\n }\n </div>\n</form>\n", dependencies: [{ kind: "directive", type: KcClassDirective, selector: "[kcClass]", inputs: ["class", "ngClass", "kcClass"] }, { kind: "pipe", type: KcSanitizePipe, name: "kcSanitize" }, { kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
46
46
  }
47
47
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: RegisterComponent, decorators: [{
48
48
  type: Component,
@@ -51,7 +51,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
51
51
  provide: ComponentReference,
52
52
  useExisting: forwardRef(() => RegisterComponent)
53
53
  }
54
- ], template: "@let url = kcContext.url;\n@let messagesPerField = kcContext.messagesPerField;\n@let recaptchaRequired = kcContext.recaptchaRequired;\n@let recaptchaVisible = kcContext.recaptchaVisible;\n@let recaptchaSiteKey = kcContext.recaptchaSiteKey;\n@let recaptchaAction = kcContext.recaptchaAction;\n@let termsAcceptanceRequired = kcContext.termsAcceptanceRequired;\n\n<ng-template #headerNode>\n @let messageHeader = kcContext.messageHeader;\n {{ messageHeader ?? i18n.advancedMsgStr('registerTitle') }}\n</ng-template>\n<form\n id=\"kc-register-form\"\n method=\"post\"\n [kcClass]=\"'kcFormClass'\"\n [action]=\"url.registrationAction\"\n>\n <ng-container [ngComponentOutlet]=\"userProfileFormFields() ?? null\" />\n @if (termsAcceptanceRequired) {\n <div className=\"form-group\">\n <div [kcClass]=\"'kcInputWrapperClass'\">\n {{ i18n.msgStr('termsTitle') }}\n <div id=\"kc-registration-terms-text\">\n {{ i18n.msgStr('termsText') }}\n </div>\n </div>\n </div>\n <div className=\"form-group\">\n <div [kcClass]=\"'kcLabelWrapperClass'\">\n <input\n type=\"checkbox\"\n id=\"termsAccepted\"\n name=\"termsAccepted\"\n [kcClass]=\"'kcCheckboxInputClass'\"\n [checked]=\"areTermsAccepted()\"\n [attr.aria-invalid]=\"messagesPerField.existsError('termsAccepted')\"\n (change)=\"areTermsAccepted.set($any($event.target).checked)\"\n />\n <label\n for=\"termsAccepted\"\n [kcClass]=\"'kcLabelClass'\"\n >\n {{ i18n.msgStr('acceptTerms') }}\n </label>\n </div>\n @if (messagesPerField.existsError('termsAccepted')) {\n <div [kcClass]=\"'kcLabelWrapperClass'\">\n <span\n id=\"input-error-terms-accepted\"\n aria-live=\"polite\"\n [kcClass]=\"'kcInputErrorMessageClass'\"\n [innerHtml]=\"messagesPerField.get('termsAccepted') | kcSanitize: 'html'\"\n ></span>\n </div>\n }\n </div>\n }\n @if (recaptchaRequired && (recaptchaVisible || recaptchaAction === undefined)) {\n <div className=\"form-group\">\n <div [kcClass]=\"'kcInputWrapperClass'\">\n <div\n class=\"g-recaptcha\"\n data-size=\"compact\"\n [attr.data-sitekey]=\"recaptchaSiteKey\"\n [attr.data-action]=\"recaptchaAction\"\n ></div>\n </div>\n </div>\n }\n\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div\n id=\"kc-form-options\"\n [kcClass]=\"'kcFormOptionsClass'\"\n >\n <div [kcClass]=\"'kcFormOptionsWrapperClass'\">\n <span>\n <a\n [href]=\"url.loginUrl\"\n [innerHTML]=\"i18n.msgStr('backToLogin') | kcSanitize: 'html'\"\n ></a>\n </span>\n </div>\n </div>\n @if (recaptchaRequired && !recaptchaVisible && recaptchaAction !== undefined) {\n <div\n id=\"kc-form-buttons\"\n [kcClass]=\"'kcFormButtonsClass'\"\n >\n <button\n class=\"g-recaptcha\"\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n [attr.data-sitekey]=\"recaptchaSiteKey\"\n [attr.data-callback]=\"onCallback\"\n [attr.data-action]=\"recaptchaAction\"\n >\n {{ i18n.msgStr('doRegister') }}\n </button>\n </div>\n } @else {\n <div\n id=\"kc-form-buttons\"\n [kcClass]=\"'kcFormButtonsClass'\"\n >\n <input\n type=\"submit\"\n [disabled]=\"!isFormSubmittable() || (termsAcceptanceRequired && !areTermsAccepted())\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doRegister')\"\n />\n </div>\n }\n </div>\n</form>\n" }]
54
+ ], template: "@let url = kcContext.url;\n@let messagesPerField = kcContext.messagesPerField;\n@let recaptchaRequired = kcContext.recaptchaRequired;\n@let recaptchaVisible = kcContext.recaptchaVisible;\n@let recaptchaSiteKey = kcContext.recaptchaSiteKey;\n@let recaptchaAction = kcContext.recaptchaAction;\n@let termsAcceptanceRequired = kcContext.termsAcceptanceRequired;\n\n<ng-template #headerNode>\n @let messageHeader = kcContext.messageHeader;\n {{ messageHeader ?? i18n.advancedMsgStr('registerTitle') }}\n</ng-template>\n<form\n id=\"kc-register-form\"\n method=\"post\"\n [kcClass]=\"'kcFormClass'\"\n [action]=\"url.registrationAction\"\n>\n <ng-container [ngComponentOutlet]=\"userProfileFormFields() ?? null\" />\n @if (termsAcceptanceRequired) {\n <div class=\"form-group\">\n <div [kcClass]=\"'kcInputWrapperClass'\">\n {{ i18n.msgStr('termsTitle') }}\n <div id=\"kc-registration-terms-text\">\n {{ i18n.msgStr('termsText') }}\n </div>\n </div>\n </div>\n <div class=\"form-group\">\n <div [kcClass]=\"'kcLabelWrapperClass'\">\n <input\n type=\"checkbox\"\n id=\"termsAccepted\"\n name=\"termsAccepted\"\n [kcClass]=\"'kcCheckboxInputClass'\"\n [checked]=\"areTermsAccepted()\"\n [attr.aria-invalid]=\"messagesPerField.existsError('termsAccepted')\"\n (change)=\"areTermsAccepted.set($any($event.target).checked)\"\n />\n <label\n for=\"termsAccepted\"\n [kcClass]=\"'kcLabelClass'\"\n >\n {{ i18n.msgStr('acceptTerms') }}\n </label>\n </div>\n @if (messagesPerField.existsError('termsAccepted')) {\n <div [kcClass]=\"'kcLabelWrapperClass'\">\n <span\n id=\"input-error-terms-accepted\"\n aria-live=\"polite\"\n [kcClass]=\"'kcInputErrorMessageClass'\"\n [innerHtml]=\"messagesPerField.get('termsAccepted') | kcSanitize: 'html'\"\n ></span>\n </div>\n }\n </div>\n }\n @if (recaptchaRequired && (recaptchaVisible || recaptchaAction === undefined)) {\n <div class=\"form-group\">\n <div [kcClass]=\"'kcInputWrapperClass'\">\n <div\n class=\"g-recaptcha\"\n data-size=\"compact\"\n [attr.data-sitekey]=\"recaptchaSiteKey\"\n [attr.data-action]=\"recaptchaAction\"\n ></div>\n </div>\n </div>\n }\n\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div\n id=\"kc-form-options\"\n [kcClass]=\"'kcFormOptionsClass'\"\n >\n <div [kcClass]=\"'kcFormOptionsWrapperClass'\">\n <span>\n <a\n [href]=\"url.loginUrl\"\n [innerHTML]=\"i18n.msgStr('backToLogin') | kcSanitize: 'html'\"\n ></a>\n </span>\n </div>\n </div>\n @if (recaptchaRequired && !recaptchaVisible && recaptchaAction !== undefined) {\n <div\n id=\"kc-form-buttons\"\n [kcClass]=\"'kcFormButtonsClass'\"\n >\n <button\n class=\"g-recaptcha\"\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n [attr.data-sitekey]=\"recaptchaSiteKey\"\n [attr.data-callback]=\"onCallback\"\n [attr.data-action]=\"recaptchaAction\"\n >\n {{ i18n.msgStr('doRegister') }}\n </button>\n </div>\n } @else {\n <div\n id=\"kc-form-buttons\"\n [kcClass]=\"'kcFormButtonsClass'\"\n >\n <input\n type=\"submit\"\n [disabled]=\"!isFormSubmittable() || (termsAcceptanceRequired && !areTermsAccepted())\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doRegister')\"\n />\n </div>\n }\n </div>\n</form>\n" }]
55
55
  }], ctorParameters: () => [] });
56
56
 
57
57
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"keycloakify-angular-login-pages-register.mjs","sources":["../../src/login/pages/register/register.component.ts","../../src/login/pages/register/register.component.html","../../src/login/pages/register/keycloakify-angular-login-pages-register.ts"],"sourcesContent":["import { AsyncPipe, NgClass, NgComponentOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, forwardRef, inject, input, signal, type TemplateRef, Type, viewChild } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\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 { 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 { SubmitService } from '@keycloakify/angular/login/services/submit';\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 selector: 'kc-register',\n templateUrl: 'register.component.html',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [KcClassDirective, AsyncPipe, KcSanitizePipe, NgClass, NgComponentOutlet],\n providers: [\n {\n provide: ComponentReference,\n useExisting: forwardRef(() => RegisterComponent)\n }\n ]\n})\nexport class RegisterComponent extends ComponentReference {\n #submitService = inject(SubmitService);\n kcContext = inject<Extract<KcContext, { pageId: 'register.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: boolean = !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 isFormSubmittable = signal(false);\n areTermsAccepted = signal(false);\n userProfileFormFields = input<Type<UserProfileFormFieldsComponent>>();\n\n constructor() {\n super();\n this.#submitService.isSubmittable.pipe(takeUntilDestroyed()).subscribe(submittable => {\n this.isFormSubmittable.set(submittable);\n });\n }\n onCallback() {\n (document.getElementById('kc-register-form') as HTMLFormElement).submit();\n }\n}\n","@let url = kcContext.url;\n@let messagesPerField = kcContext.messagesPerField;\n@let recaptchaRequired = kcContext.recaptchaRequired;\n@let recaptchaVisible = kcContext.recaptchaVisible;\n@let recaptchaSiteKey = kcContext.recaptchaSiteKey;\n@let recaptchaAction = kcContext.recaptchaAction;\n@let termsAcceptanceRequired = kcContext.termsAcceptanceRequired;\n\n<ng-template #headerNode>\n @let messageHeader = kcContext.messageHeader;\n {{ messageHeader ?? i18n.advancedMsgStr('registerTitle') }}\n</ng-template>\n<form\n id=\"kc-register-form\"\n method=\"post\"\n [kcClass]=\"'kcFormClass'\"\n [action]=\"url.registrationAction\"\n>\n <ng-container [ngComponentOutlet]=\"userProfileFormFields() ?? null\" />\n @if (termsAcceptanceRequired) {\n <div className=\"form-group\">\n <div [kcClass]=\"'kcInputWrapperClass'\">\n {{ i18n.msgStr('termsTitle') }}\n <div id=\"kc-registration-terms-text\">\n {{ i18n.msgStr('termsText') }}\n </div>\n </div>\n </div>\n <div className=\"form-group\">\n <div [kcClass]=\"'kcLabelWrapperClass'\">\n <input\n type=\"checkbox\"\n id=\"termsAccepted\"\n name=\"termsAccepted\"\n [kcClass]=\"'kcCheckboxInputClass'\"\n [checked]=\"areTermsAccepted()\"\n [attr.aria-invalid]=\"messagesPerField.existsError('termsAccepted')\"\n (change)=\"areTermsAccepted.set($any($event.target).checked)\"\n />\n <label\n for=\"termsAccepted\"\n [kcClass]=\"'kcLabelClass'\"\n >\n {{ i18n.msgStr('acceptTerms') }}\n </label>\n </div>\n @if (messagesPerField.existsError('termsAccepted')) {\n <div [kcClass]=\"'kcLabelWrapperClass'\">\n <span\n id=\"input-error-terms-accepted\"\n aria-live=\"polite\"\n [kcClass]=\"'kcInputErrorMessageClass'\"\n [innerHtml]=\"messagesPerField.get('termsAccepted') | kcSanitize: 'html'\"\n ></span>\n </div>\n }\n </div>\n }\n @if (recaptchaRequired && (recaptchaVisible || recaptchaAction === undefined)) {\n <div className=\"form-group\">\n <div [kcClass]=\"'kcInputWrapperClass'\">\n <div\n class=\"g-recaptcha\"\n data-size=\"compact\"\n [attr.data-sitekey]=\"recaptchaSiteKey\"\n [attr.data-action]=\"recaptchaAction\"\n ></div>\n </div>\n </div>\n }\n\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div\n id=\"kc-form-options\"\n [kcClass]=\"'kcFormOptionsClass'\"\n >\n <div [kcClass]=\"'kcFormOptionsWrapperClass'\">\n <span>\n <a\n [href]=\"url.loginUrl\"\n [innerHTML]=\"i18n.msgStr('backToLogin') | kcSanitize: 'html'\"\n ></a>\n </span>\n </div>\n </div>\n @if (recaptchaRequired && !recaptchaVisible && recaptchaAction !== undefined) {\n <div\n id=\"kc-form-buttons\"\n [kcClass]=\"'kcFormButtonsClass'\"\n >\n <button\n class=\"g-recaptcha\"\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n [attr.data-sitekey]=\"recaptchaSiteKey\"\n [attr.data-callback]=\"onCallback\"\n [attr.data-action]=\"recaptchaAction\"\n >\n {{ i18n.msgStr('doRegister') }}\n </button>\n </div>\n } @else {\n <div\n id=\"kc-form-buttons\"\n [kcClass]=\"'kcFormButtonsClass'\"\n >\n <input\n type=\"submit\"\n [disabled]=\"!isFormSubmittable() || (termsAcceptanceRequired && !areTermsAccepted())\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doRegister')\"\n />\n </div>\n }\n </div>\n</form>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;;;;;;AA6BM,MAAO,iBAAkB,SAAQ,kBAAkB,CAAA;AACrD,IAAA,cAAc,CAAyB;AAsBvC,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE,CAAC;AAvBZ,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;AACvC,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAiD,gBAAgB,CAAC,CAAC;AACrF,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAO,UAAU,CAAC,CAAC;AAEvB,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAAU,eAAe,CAAC,CAAC;AACnD,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAoC,aAAa,CAAC,CAAC;QAK5E,IAAqB,CAAA,qBAAA,GAAG,KAAK,CAAC;QAC9B,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;AACpB,QAAA,IAAA,CAAA,cAAc,GAAY,CAAC,IAAI,CAAC,SAAS,EAAE,gBAAgB,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;AAEnF,QAAA,IAAA,CAAA,UAAU,GAAG,SAAS,CAA2B,YAAY,CAAC,CAAC;AAC/D,QAAA,IAAA,CAAA,QAAQ,GAAG,SAAS,CAA2B,UAAU,CAAC,CAAC;AAC3D,QAAA,IAAA,CAAA,mBAAmB,GAAG,SAAS,CAA2B,qBAAqB,CAAC,CAAC;AAEjF,QAAA,IAAA,CAAA,iBAAiB,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;AAClC,QAAA,IAAA,CAAA,gBAAgB,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QACjC,IAAqB,CAAA,qBAAA,GAAG,KAAK,EAAwC,CAAC;AAIlE,QAAA,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC,SAAS,CAAC,WAAW,IAAG;AACjF,YAAA,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AAC5C,SAAC,CAAC,CAAC;KACN;IACD,UAAU,GAAA;QACL,QAAQ,CAAC,cAAc,CAAC,kBAAkB,CAAqB,CAAC,MAAM,EAAE,CAAC;KAC7E;8GA/BQ,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iBAAiB,EAPf,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,aAAA,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,iBAAiB,CAAC;AACnD,aAAA;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,EC3BL,ojJAoHA,ED/Fc,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,gBAAgB,EAAa,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,cAAc,mDAAW,iBAAiB,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,EAAA,yBAAA,EAAA,2BAAA,EAAA,0BAAA,EAAA,2BAAA,EAAA,kCAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;2FAQxE,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAb7B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,aAAa,cAEX,IAAI,EAAA,eAAA,EACC,uBAAuB,CAAC,MAAM,WACtC,CAAC,gBAAgB,EAAE,SAAS,EAAE,cAAc,EAAE,OAAO,EAAE,iBAAiB,CAAC,EACvE,SAAA,EAAA;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,kBAAkB;AAC3B,4BAAA,WAAW,EAAE,UAAU,CAAC,uBAAuB,CAAC;AACnD,yBAAA;AACJ,qBAAA,EAAA,QAAA,EAAA,ojJAAA,EAAA,CAAA;;;AE3BL;;AAEG;;;;"}
1
+ {"version":3,"file":"keycloakify-angular-login-pages-register.mjs","sources":["../../src/login/pages/register/register.component.ts","../../src/login/pages/register/register.component.html","../../src/login/pages/register/keycloakify-angular-login-pages-register.ts"],"sourcesContent":["import { AsyncPipe, NgClass, NgComponentOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, forwardRef, inject, input, signal, type TemplateRef, Type, viewChild } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\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 { 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 { SubmitService } from '@keycloakify/angular/login/services/submit';\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 selector: 'kc-register',\n templateUrl: 'register.component.html',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [KcClassDirective, AsyncPipe, KcSanitizePipe, NgClass, NgComponentOutlet],\n providers: [\n {\n provide: ComponentReference,\n useExisting: forwardRef(() => RegisterComponent)\n }\n ]\n})\nexport class RegisterComponent extends ComponentReference {\n #submitService = inject(SubmitService);\n kcContext = inject<Extract<KcContext, { pageId: 'register.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: boolean = !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 isFormSubmittable = signal(false);\n areTermsAccepted = signal(false);\n userProfileFormFields = input<Type<UserProfileFormFieldsComponent>>();\n\n constructor() {\n super();\n this.#submitService.isSubmittable.pipe(takeUntilDestroyed()).subscribe(submittable => {\n this.isFormSubmittable.set(submittable);\n });\n }\n onCallback() {\n (document.getElementById('kc-register-form') as HTMLFormElement).submit();\n }\n}\n","@let url = kcContext.url;\n@let messagesPerField = kcContext.messagesPerField;\n@let recaptchaRequired = kcContext.recaptchaRequired;\n@let recaptchaVisible = kcContext.recaptchaVisible;\n@let recaptchaSiteKey = kcContext.recaptchaSiteKey;\n@let recaptchaAction = kcContext.recaptchaAction;\n@let termsAcceptanceRequired = kcContext.termsAcceptanceRequired;\n\n<ng-template #headerNode>\n @let messageHeader = kcContext.messageHeader;\n {{ messageHeader ?? i18n.advancedMsgStr('registerTitle') }}\n</ng-template>\n<form\n id=\"kc-register-form\"\n method=\"post\"\n [kcClass]=\"'kcFormClass'\"\n [action]=\"url.registrationAction\"\n>\n <ng-container [ngComponentOutlet]=\"userProfileFormFields() ?? null\" />\n @if (termsAcceptanceRequired) {\n <div class=\"form-group\">\n <div [kcClass]=\"'kcInputWrapperClass'\">\n {{ i18n.msgStr('termsTitle') }}\n <div id=\"kc-registration-terms-text\">\n {{ i18n.msgStr('termsText') }}\n </div>\n </div>\n </div>\n <div class=\"form-group\">\n <div [kcClass]=\"'kcLabelWrapperClass'\">\n <input\n type=\"checkbox\"\n id=\"termsAccepted\"\n name=\"termsAccepted\"\n [kcClass]=\"'kcCheckboxInputClass'\"\n [checked]=\"areTermsAccepted()\"\n [attr.aria-invalid]=\"messagesPerField.existsError('termsAccepted')\"\n (change)=\"areTermsAccepted.set($any($event.target).checked)\"\n />\n <label\n for=\"termsAccepted\"\n [kcClass]=\"'kcLabelClass'\"\n >\n {{ i18n.msgStr('acceptTerms') }}\n </label>\n </div>\n @if (messagesPerField.existsError('termsAccepted')) {\n <div [kcClass]=\"'kcLabelWrapperClass'\">\n <span\n id=\"input-error-terms-accepted\"\n aria-live=\"polite\"\n [kcClass]=\"'kcInputErrorMessageClass'\"\n [innerHtml]=\"messagesPerField.get('termsAccepted') | kcSanitize: 'html'\"\n ></span>\n </div>\n }\n </div>\n }\n @if (recaptchaRequired && (recaptchaVisible || recaptchaAction === undefined)) {\n <div class=\"form-group\">\n <div [kcClass]=\"'kcInputWrapperClass'\">\n <div\n class=\"g-recaptcha\"\n data-size=\"compact\"\n [attr.data-sitekey]=\"recaptchaSiteKey\"\n [attr.data-action]=\"recaptchaAction\"\n ></div>\n </div>\n </div>\n }\n\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div\n id=\"kc-form-options\"\n [kcClass]=\"'kcFormOptionsClass'\"\n >\n <div [kcClass]=\"'kcFormOptionsWrapperClass'\">\n <span>\n <a\n [href]=\"url.loginUrl\"\n [innerHTML]=\"i18n.msgStr('backToLogin') | kcSanitize: 'html'\"\n ></a>\n </span>\n </div>\n </div>\n @if (recaptchaRequired && !recaptchaVisible && recaptchaAction !== undefined) {\n <div\n id=\"kc-form-buttons\"\n [kcClass]=\"'kcFormButtonsClass'\"\n >\n <button\n class=\"g-recaptcha\"\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n [attr.data-sitekey]=\"recaptchaSiteKey\"\n [attr.data-callback]=\"onCallback\"\n [attr.data-action]=\"recaptchaAction\"\n >\n {{ i18n.msgStr('doRegister') }}\n </button>\n </div>\n } @else {\n <div\n id=\"kc-form-buttons\"\n [kcClass]=\"'kcFormButtonsClass'\"\n >\n <input\n type=\"submit\"\n [disabled]=\"!isFormSubmittable() || (termsAcceptanceRequired && !areTermsAccepted())\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doRegister')\"\n />\n </div>\n }\n </div>\n</form>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;;;;;;AA6BM,MAAO,iBAAkB,SAAQ,kBAAkB,CAAA;AACrD,IAAA,cAAc,CAAyB;AAsBvC,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE,CAAC;AAvBZ,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;AACvC,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAiD,gBAAgB,CAAC,CAAC;AACrF,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAO,UAAU,CAAC,CAAC;AAEvB,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAAU,eAAe,CAAC,CAAC;AACnD,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAoC,aAAa,CAAC,CAAC;QAK5E,IAAqB,CAAA,qBAAA,GAAG,KAAK,CAAC;QAC9B,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;AACpB,QAAA,IAAA,CAAA,cAAc,GAAY,CAAC,IAAI,CAAC,SAAS,EAAE,gBAAgB,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;AAEnF,QAAA,IAAA,CAAA,UAAU,GAAG,SAAS,CAA2B,YAAY,CAAC,CAAC;AAC/D,QAAA,IAAA,CAAA,QAAQ,GAAG,SAAS,CAA2B,UAAU,CAAC,CAAC;AAC3D,QAAA,IAAA,CAAA,mBAAmB,GAAG,SAAS,CAA2B,qBAAqB,CAAC,CAAC;AAEjF,QAAA,IAAA,CAAA,iBAAiB,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;AAClC,QAAA,IAAA,CAAA,gBAAgB,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QACjC,IAAqB,CAAA,qBAAA,GAAG,KAAK,EAAwC,CAAC;AAIlE,QAAA,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC,SAAS,CAAC,WAAW,IAAG;AACjF,YAAA,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AAC5C,SAAC,CAAC,CAAC;KACN;IACD,UAAU,GAAA;QACL,QAAQ,CAAC,cAAc,CAAC,kBAAkB,CAAqB,CAAC,MAAM,EAAE,CAAC;KAC7E;8GA/BQ,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iBAAiB,EAPf,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,aAAA,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,iBAAiB,CAAC;AACnD,aAAA;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,EC3BL,wiJAoHA,ED/Fc,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,gBAAgB,EAAa,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,cAAc,mDAAW,iBAAiB,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,EAAA,yBAAA,EAAA,2BAAA,EAAA,0BAAA,EAAA,2BAAA,EAAA,kCAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;2FAQxE,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAb7B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,aAAa,cAEX,IAAI,EAAA,eAAA,EACC,uBAAuB,CAAC,MAAM,WACtC,CAAC,gBAAgB,EAAE,SAAS,EAAE,cAAc,EAAE,OAAO,EAAE,iBAAiB,CAAC,EACvE,SAAA,EAAA;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,kBAAkB;AAC3B,4BAAA,WAAW,EAAE,UAAU,CAAC,uBAAuB,CAAC;AACnD,yBAAA;AACJ,qBAAA,EAAA,QAAA,EAAA,wiJAAA,EAAA,CAAA;;;AE3BL;;AAEG;;;;"}
@@ -27,7 +27,7 @@ class TermsComponent extends ComponentReference {
27
27
  provide: ComponentReference,
28
28
  useExisting: forwardRef(() => TermsComponent)
29
29
  }
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 url = kcContext.url;\n\n<ng-template #headerNode>\n {{ i18n.msgStr('termsTitle') }}\n</ng-template>\n<div id=\"kc-terms-text\">{{ i18n.msgStr('termsText') }}</div>\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', 'kcButtonClass', 'kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doAccept')\"\n />\n <input\n name=\"cancel\"\n id=\"kc-decline\"\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonDefaultClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doDecline')\"\n />\n</form>\n<div className=\"clearfix\"></div>\n", dependencies: [{ kind: "directive", type: KcClassDirective, selector: "[kcClass]", inputs: ["class", "ngClass", "kcClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
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 url = kcContext.url;\n\n<ng-template #headerNode>\n {{ i18n.msgStr('termsTitle') }}\n</ng-template>\n<div id=\"kc-terms-text\">{{ i18n.msgStr('termsText') }}</div>\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', 'kcButtonClass', 'kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doAccept')\"\n />\n <input\n name=\"cancel\"\n id=\"kc-decline\"\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonDefaultClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doDecline')\"\n />\n</form>\n<div class=\"clearfix\"></div>\n", dependencies: [{ kind: "directive", type: KcClassDirective, selector: "[kcClass]", inputs: ["class", "ngClass", "kcClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
31
31
  }
32
32
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: TermsComponent, decorators: [{
33
33
  type: Component,
@@ -36,7 +36,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
36
36
  provide: ComponentReference,
37
37
  useExisting: forwardRef(() => TermsComponent)
38
38
  }
39
- ], template: "@let url = kcContext.url;\n\n<ng-template #headerNode>\n {{ i18n.msgStr('termsTitle') }}\n</ng-template>\n<div id=\"kc-terms-text\">{{ i18n.msgStr('termsText') }}</div>\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', 'kcButtonClass', 'kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doAccept')\"\n />\n <input\n name=\"cancel\"\n id=\"kc-decline\"\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonDefaultClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doDecline')\"\n />\n</form>\n<div className=\"clearfix\"></div>\n" }]
39
+ ], template: "@let url = kcContext.url;\n\n<ng-template #headerNode>\n {{ i18n.msgStr('termsTitle') }}\n</ng-template>\n<div id=\"kc-terms-text\">{{ i18n.msgStr('termsText') }}</div>\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', 'kcButtonClass', 'kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doAccept')\"\n />\n <input\n name=\"cancel\"\n id=\"kc-decline\"\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonDefaultClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doDecline')\"\n />\n</form>\n<div class=\"clearfix\"></div>\n" }]
40
40
  }] });
41
41
 
42
42
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"keycloakify-angular-login-pages-terms.mjs","sources":["../../src/login/pages/terms/terms.component.ts","../../src/login/pages/terms/terms.component.html","../../src/login/pages/terms/keycloakify-angular-login-pages-terms.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 standalone: true,\n imports: [KcClassDirective],\n selector: 'kc-terms',\n templateUrl: 'terms.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: ComponentReference,\n useExisting: forwardRef(() => TermsComponent)\n }\n ]\n})\nexport class TermsComponent extends ComponentReference {\n kcContext = inject<Extract<KcContext, { pageId: 'terms.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\n<ng-template #headerNode>\n {{ i18n.msgStr('termsTitle') }}\n</ng-template>\n<div id=\"kc-terms-text\">{{ i18n.msgStr('termsText') }}</div>\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', 'kcButtonClass', 'kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doAccept')\"\n />\n <input\n name=\"cancel\"\n id=\"kc-decline\"\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonDefaultClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doDecline')\"\n />\n</form>\n<div className=\"clearfix\"></div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;;AAwBM,MAAO,cAAe,SAAQ,kBAAkB,CAAA;AAbtD,IAAA,WAAA,GAAA;;AAcI,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAA8C,gBAAgB,CAAC,CAAC;AAClF,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAO,UAAU,CAAC,CAAC;AAEvB,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAAU,eAAe,CAAC,CAAC;AACnD,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAoC,aAAa,CAAC,CAAC;QAK5E,IAAqB,CAAA,qBAAA,GAAG,KAAK,CAAC;QAC9B,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;QACpB,IAAc,CAAA,cAAA,GAAG,KAAK,CAAC;AAEvB,QAAA,IAAA,CAAA,UAAU,GAAG,SAAS,CAA2B,YAAY,CAAC,CAAC;AAC/D,QAAA,IAAA,CAAA,QAAQ,GAAG,SAAS,CAA2B,UAAU,CAAC,CAAC;AAC3D,QAAA,IAAA,CAAA,mBAAmB,GAAG,SAAS,CAA2B,qBAAqB,CAAC,CAAC;AACpF,KAAA;8GAjBY,cAAc,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;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,CAAC;AAChD,aAAA;SACJ,ECtBL,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,qyBA2BA,4CDdc,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,EAAA;;2FAWjB,cAAc,EAAA,UAAA,EAAA,CAAA;kBAb1B,SAAS;iCACM,IAAI,EAAA,OAAA,EACP,CAAC,gBAAgB,CAAC,EAAA,QAAA,EACjB,UAAU,EAEH,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACpC,SAAA,EAAA;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,kBAAkB;AAC3B,4BAAA,WAAW,EAAE,UAAU,CAAC,oBAAoB,CAAC;AAChD,yBAAA;AACJ,qBAAA,EAAA,QAAA,EAAA,qyBAAA,EAAA,CAAA;;;AEtBL;;AAEG;;;;"}
1
+ {"version":3,"file":"keycloakify-angular-login-pages-terms.mjs","sources":["../../src/login/pages/terms/terms.component.ts","../../src/login/pages/terms/terms.component.html","../../src/login/pages/terms/keycloakify-angular-login-pages-terms.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 standalone: true,\n imports: [KcClassDirective],\n selector: 'kc-terms',\n templateUrl: 'terms.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: ComponentReference,\n useExisting: forwardRef(() => TermsComponent)\n }\n ]\n})\nexport class TermsComponent extends ComponentReference {\n kcContext = inject<Extract<KcContext, { pageId: 'terms.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\n<ng-template #headerNode>\n {{ i18n.msgStr('termsTitle') }}\n</ng-template>\n<div id=\"kc-terms-text\">{{ i18n.msgStr('termsText') }}</div>\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', 'kcButtonClass', 'kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doAccept')\"\n />\n <input\n name=\"cancel\"\n id=\"kc-decline\"\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonDefaultClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doDecline')\"\n />\n</form>\n<div class=\"clearfix\"></div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;;AAwBM,MAAO,cAAe,SAAQ,kBAAkB,CAAA;AAbtD,IAAA,WAAA,GAAA;;AAcI,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAA8C,gBAAgB,CAAC,CAAC;AAClF,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAO,UAAU,CAAC,CAAC;AAEvB,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAAU,eAAe,CAAC,CAAC;AACnD,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAoC,aAAa,CAAC,CAAC;QAK5E,IAAqB,CAAA,qBAAA,GAAG,KAAK,CAAC;QAC9B,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;QACpB,IAAc,CAAA,cAAA,GAAG,KAAK,CAAC;AAEvB,QAAA,IAAA,CAAA,UAAU,GAAG,SAAS,CAA2B,YAAY,CAAC,CAAC;AAC/D,QAAA,IAAA,CAAA,QAAQ,GAAG,SAAS,CAA2B,UAAU,CAAC,CAAC;AAC3D,QAAA,IAAA,CAAA,mBAAmB,GAAG,SAAS,CAA2B,qBAAqB,CAAC,CAAC;AACpF,KAAA;8GAjBY,cAAc,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;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,CAAC;AAChD,aAAA;SACJ,ECtBL,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,iyBA2BA,4CDdc,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,EAAA;;2FAWjB,cAAc,EAAA,UAAA,EAAA,CAAA;kBAb1B,SAAS;iCACM,IAAI,EAAA,OAAA,EACP,CAAC,gBAAgB,CAAC,EAAA,QAAA,EACjB,UAAU,EAEH,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACpC,SAAA,EAAA;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,kBAAkB;AAC3B,4BAAA,WAAW,EAAE,UAAU,CAAC,oBAAoB,CAAC;AAChD,yBAAA;AACJ,qBAAA,EAAA,QAAA,EAAA,iyBAAA,EAAA,CAAA;;;AEtBL;;AAEG;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"keycloakify-angular-login-providers-keycloakify-angular.mjs","sources":["../../src/login/providers/keycloakify-angular/keycloakify-angular.providers.ts","../../src/login/providers/keycloakify-angular/keycloakify-angular-login-providers-keycloakify-angular.ts"],"sourcesContent":["import { DOCUMENT } from '@angular/common';\nimport { APP_INITIALIZER, LOCALE_ID, makeEnvironmentProviders } from '@angular/core';\nimport { USE_DEFAULT_CSS } from '@keycloakify/angular/lib/tokens/use-default-css';\nimport type { KcContext } from '@keycloakify/angular/login/KcContext';\nimport { I18nService } from '@keycloakify/angular/login/services/i18n';\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 { DO_MAKE_USER_CONFIRM_PASSWORD } from '@keycloakify/angular/login/tokens/make-user-confirm-password';\nimport { type KcContextLike } from 'keycloakify/login/i18n/noJsx';\nimport type { ClassKey } from 'keycloakify/login/lib/kcClsx';\n\nexport type KeycloakifyAngularLoginConfig = {\n doMakeUserConfirmPassword?: boolean;\n doUseDefaultCss?: boolean;\n classes?: { [key in ClassKey]?: string };\n kcContext: KcContext;\n getI18n: (params: { kcContext: KcContextLike }) => {\n i18n: unknown;\n prI18n_currentLanguage: Promise<unknown> | undefined;\n };\n};\n\nexport const provideKeycloakifyAngular = (config: KeycloakifyAngularLoginConfig) =>\n makeEnvironmentProviders([\n {\n provide: KC_LOGIN_CONTEXT,\n useValue: config.kcContext\n },\n {\n provide: DO_MAKE_USER_CONFIRM_PASSWORD,\n useValue: config?.doMakeUserConfirmPassword ?? true\n },\n {\n provide: LOCALE_ID,\n useFactory: (document: Document) => {\n return document.documentElement.lang ?? 'en';\n },\n deps: [DOCUMENT]\n },\n {\n provide: APP_INITIALIZER,\n multi: true,\n useFactory: (i18nService: I18nService, kcContext: KcContext) => async () => {\n const getI18n = config.getI18n;\n\n const { i18n, prI18n_currentLanguage } = getI18n({\n kcContext\n });\n let i18nPromise = new Promise<typeof i18n>(resolve => resolve(i18n));\n if (prI18n_currentLanguage) {\n i18nPromise = prI18n_currentLanguage;\n }\n return i18nPromise.then(i18n => {\n i18nService.i18n = i18n;\n return true;\n });\n },\n deps: [I18nService, KC_LOGIN_CONTEXT]\n },\n {\n provide: LOGIN_I18N,\n useFactory: (i18nService: I18nService) => i18nService.i18n,\n deps: [I18nService]\n },\n { provide: USE_DEFAULT_CSS, useValue: config?.doUseDefaultCss ?? true },\n { provide: LOGIN_CLASSES, useValue: config?.classes ?? {} }\n ]);\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;;AAuBa,MAAA,yBAAyB,GAAG,CAAC,MAAqC,KAC3E,wBAAwB,CAAC;AACrB,IAAA;AACI,QAAA,OAAO,EAAE,gBAAgB;QACzB,QAAQ,EAAE,MAAM,CAAC,SAAS;AAC7B,KAAA;AACD,IAAA;AACI,QAAA,OAAO,EAAE,6BAA6B;AACtC,QAAA,QAAQ,EAAE,MAAM,EAAE,yBAAyB,IAAI,IAAI;AACtD,KAAA;AACD,IAAA;AACI,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,UAAU,EAAE,CAAC,QAAkB,KAAI;AAC/B,YAAA,OAAO,QAAQ,CAAC,eAAe,CAAC,IAAI,IAAI,IAAI,CAAC;SAChD;QACD,IAAI,EAAE,CAAC,QAAQ,CAAC;AACnB,KAAA;AACD,IAAA;AACI,QAAA,OAAO,EAAE,eAAe;AACxB,QAAA,KAAK,EAAE,IAAI;QACX,UAAU,EAAE,CAAC,WAAwB,EAAE,SAAoB,KAAK,YAAW;AACvE,YAAA,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;AAE/B,YAAA,MAAM,EAAE,IAAI,EAAE,sBAAsB,EAAE,GAAG,OAAO,CAAC;gBAC7C,SAAS;AACZ,aAAA,CAAC,CAAC;AACH,YAAA,IAAI,WAAW,GAAG,IAAI,OAAO,CAAc,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;YACrE,IAAI,sBAAsB,EAAE;gBACxB,WAAW,GAAG,sBAAsB,CAAC;aACxC;AACD,YAAA,OAAO,WAAW,CAAC,IAAI,CAAC,IAAI,IAAG;AAC3B,gBAAA,WAAW,CAAC,IAAI,GAAG,IAAI,CAAC;AACxB,gBAAA,OAAO,IAAI,CAAC;AAChB,aAAC,CAAC,CAAC;SACN;AACD,QAAA,IAAI,EAAE,CAAC,WAAW,EAAE,gBAAgB,CAAC;AACxC,KAAA;AACD,IAAA;AACI,QAAA,OAAO,EAAE,UAAU;QACnB,UAAU,EAAE,CAAC,WAAwB,KAAK,WAAW,CAAC,IAAI;QAC1D,IAAI,EAAE,CAAC,WAAW,CAAC;AACtB,KAAA;IACD,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,EAAE,eAAe,IAAI,IAAI,EAAE;IACvE,EAAE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,IAAI,EAAE,EAAE;AAC9D,CAAA;;ACnEL;;AAEG;;;;"}
1
+ {"version":3,"file":"keycloakify-angular-login-providers-keycloakify-angular.mjs","sources":["../../src/login/providers/keycloakify-angular/keycloakify-angular.providers.ts","../../src/login/providers/keycloakify-angular/keycloakify-angular-login-providers-keycloakify-angular.ts"],"sourcesContent":["import { DOCUMENT } from '@angular/common';\nimport { APP_INITIALIZER, LOCALE_ID, makeEnvironmentProviders } from '@angular/core';\nimport { USE_DEFAULT_CSS } from '@keycloakify/angular/lib/tokens/use-default-css';\nimport type { KcContext } from '@keycloakify/angular/login/KcContext';\nimport { I18nService } from '@keycloakify/angular/login/services/i18n';\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 { DO_MAKE_USER_CONFIRM_PASSWORD } from '@keycloakify/angular/login/tokens/make-user-confirm-password';\nimport { type KcContextLike } from 'keycloakify/login/i18n/noJsx';\nimport type { ClassKey } from 'keycloakify/login/lib/kcClsx';\n\nexport type KeycloakifyAngularLoginConfig = {\n doMakeUserConfirmPassword?: boolean;\n doUseDefaultCss?: boolean;\n classes?: { [key in ClassKey]?: string };\n kcContext: unknown;\n getI18n: (params: { kcContext: KcContextLike }) => {\n i18n: unknown;\n prI18n_currentLanguage: Promise<unknown> | undefined;\n };\n};\n\nexport const provideKeycloakifyAngular = (config: KeycloakifyAngularLoginConfig) =>\n makeEnvironmentProviders([\n {\n provide: KC_LOGIN_CONTEXT,\n useValue: config.kcContext\n },\n {\n provide: DO_MAKE_USER_CONFIRM_PASSWORD,\n useValue: config?.doMakeUserConfirmPassword ?? true\n },\n {\n provide: LOCALE_ID,\n useFactory: (document: Document) => {\n return document.documentElement.lang ?? 'en';\n },\n deps: [DOCUMENT]\n },\n {\n provide: APP_INITIALIZER,\n multi: true,\n useFactory: (i18nService: I18nService, kcContext: KcContext) => async () => {\n const getI18n = config.getI18n;\n\n const { i18n, prI18n_currentLanguage } = getI18n({\n kcContext\n });\n let i18nPromise = new Promise<typeof i18n>(resolve => resolve(i18n));\n if (prI18n_currentLanguage) {\n i18nPromise = prI18n_currentLanguage;\n }\n return i18nPromise.then(i18n => {\n i18nService.i18n = i18n;\n return true;\n });\n },\n deps: [I18nService, KC_LOGIN_CONTEXT]\n },\n {\n provide: LOGIN_I18N,\n useFactory: (i18nService: I18nService) => i18nService.i18n,\n deps: [I18nService]\n },\n { provide: USE_DEFAULT_CSS, useValue: config?.doUseDefaultCss ?? true },\n { provide: LOGIN_CLASSES, useValue: config?.classes ?? {} }\n ]);\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;;AAuBa,MAAA,yBAAyB,GAAG,CAAC,MAAqC,KAC3E,wBAAwB,CAAC;AACrB,IAAA;AACI,QAAA,OAAO,EAAE,gBAAgB;QACzB,QAAQ,EAAE,MAAM,CAAC,SAAS;AAC7B,KAAA;AACD,IAAA;AACI,QAAA,OAAO,EAAE,6BAA6B;AACtC,QAAA,QAAQ,EAAE,MAAM,EAAE,yBAAyB,IAAI,IAAI;AACtD,KAAA;AACD,IAAA;AACI,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,UAAU,EAAE,CAAC,QAAkB,KAAI;AAC/B,YAAA,OAAO,QAAQ,CAAC,eAAe,CAAC,IAAI,IAAI,IAAI,CAAC;SAChD;QACD,IAAI,EAAE,CAAC,QAAQ,CAAC;AACnB,KAAA;AACD,IAAA;AACI,QAAA,OAAO,EAAE,eAAe;AACxB,QAAA,KAAK,EAAE,IAAI;QACX,UAAU,EAAE,CAAC,WAAwB,EAAE,SAAoB,KAAK,YAAW;AACvE,YAAA,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;AAE/B,YAAA,MAAM,EAAE,IAAI,EAAE,sBAAsB,EAAE,GAAG,OAAO,CAAC;gBAC7C,SAAS;AACZ,aAAA,CAAC,CAAC;AACH,YAAA,IAAI,WAAW,GAAG,IAAI,OAAO,CAAc,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;YACrE,IAAI,sBAAsB,EAAE;gBACxB,WAAW,GAAG,sBAAsB,CAAC;aACxC;AACD,YAAA,OAAO,WAAW,CAAC,IAAI,CAAC,IAAI,IAAG;AAC3B,gBAAA,WAAW,CAAC,IAAI,GAAG,IAAI,CAAC;AACxB,gBAAA,OAAO,IAAI,CAAC;AAChB,aAAC,CAAC,CAAC;SACN;AACD,QAAA,IAAI,EAAE,CAAC,WAAW,EAAE,gBAAgB,CAAC;AACxC,KAAA;AACD,IAAA;AACI,QAAA,OAAO,EAAE,UAAU;QACnB,UAAU,EAAE,CAAC,WAAwB,KAAK,WAAW,CAAC,IAAI;QAC1D,IAAI,EAAE,CAAC,WAAW,CAAC;AACtB,KAAA;IACD,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,EAAE,eAAe,IAAI,IAAI,EAAE;IACvE,EAAE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,IAAI,EAAE,EAAE;AAC9D,CAAA;;ACnEL;;AAEG;;;;"}
@@ -1,4 +1,3 @@
1
- import type { KcContext } from '@keycloakify/angular/login/KcContext';
2
1
  import { type KcContextLike } from 'keycloakify/login/i18n/noJsx';
3
2
  import type { ClassKey } from 'keycloakify/login/lib/kcClsx';
4
3
  export type KeycloakifyAngularLoginConfig = {
@@ -7,7 +6,7 @@ export type KeycloakifyAngularLoginConfig = {
7
6
  classes?: {
8
7
  [key in ClassKey]?: string;
9
8
  };
10
- kcContext: KcContext;
9
+ kcContext: unknown;
11
10
  getI18n: (params: {
12
11
  kcContext: KcContextLike;
13
12
  }) => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@keycloakify/angular",
3
- "version": "0.0.1",
3
+ "version": "0.0.3",
4
4
  "peerDependencies": {
5
5
  "keycloakify": "^11.3.4",
6
6
  "@angular/core": "^18.0.0",
@@ -309,11 +309,11 @@
309
309
  "esm": "./esm2022/login/directives/kc-class/keycloakify-angular-login-directives-kc-class.mjs",
310
310
  "default": "./fesm2022/keycloakify-angular-login-directives-kc-class.mjs"
311
311
  },
312
- "./login/pages/delete-account-confirm": {
313
- "types": "./login/pages/delete-account-confirm/index.d.ts",
314
- "esm2022": "./esm2022/login/pages/delete-account-confirm/keycloakify-angular-login-pages-delete-account-confirm.mjs",
315
- "esm": "./esm2022/login/pages/delete-account-confirm/keycloakify-angular-login-pages-delete-account-confirm.mjs",
316
- "default": "./fesm2022/keycloakify-angular-login-pages-delete-account-confirm.mjs"
312
+ "./login/providers/keycloakify-angular": {
313
+ "types": "./login/providers/keycloakify-angular/index.d.ts",
314
+ "esm2022": "./esm2022/login/providers/keycloakify-angular/keycloakify-angular-login-providers-keycloakify-angular.mjs",
315
+ "esm": "./esm2022/login/providers/keycloakify-angular/keycloakify-angular-login-providers-keycloakify-angular.mjs",
316
+ "default": "./fesm2022/keycloakify-angular-login-providers-keycloakify-angular.mjs"
317
317
  },
318
318
  "./login/pages/code": {
319
319
  "types": "./login/pages/code/index.d.ts",
@@ -321,6 +321,12 @@
321
321
  "esm": "./esm2022/login/pages/code/keycloakify-angular-login-pages-code.mjs",
322
322
  "default": "./fesm2022/keycloakify-angular-login-pages-code.mjs"
323
323
  },
324
+ "./login/pages/delete-account-confirm": {
325
+ "types": "./login/pages/delete-account-confirm/index.d.ts",
326
+ "esm2022": "./esm2022/login/pages/delete-account-confirm/keycloakify-angular-login-pages-delete-account-confirm.mjs",
327
+ "esm": "./esm2022/login/pages/delete-account-confirm/keycloakify-angular-login-pages-delete-account-confirm.mjs",
328
+ "default": "./fesm2022/keycloakify-angular-login-pages-delete-account-confirm.mjs"
329
+ },
324
330
  "./login/pages/delete-credential": {
325
331
  "types": "./login/pages/delete-credential/index.d.ts",
326
332
  "esm2022": "./esm2022/login/pages/delete-credential/keycloakify-angular-login-pages-delete-credential.mjs",
@@ -363,18 +369,18 @@
363
369
  "esm": "./esm2022/login/pages/login-config-totp/keycloakify-angular-login-pages-login-config-totp.mjs",
364
370
  "default": "./fesm2022/keycloakify-angular-login-pages-login-config-totp.mjs"
365
371
  },
366
- "./login/pages/login-idp-link-confirm-override": {
367
- "types": "./login/pages/login-idp-link-confirm-override/index.d.ts",
368
- "esm2022": "./esm2022/login/pages/login-idp-link-confirm-override/keycloakify-angular-login-pages-login-idp-link-confirm-override.mjs",
369
- "esm": "./esm2022/login/pages/login-idp-link-confirm-override/keycloakify-angular-login-pages-login-idp-link-confirm-override.mjs",
370
- "default": "./fesm2022/keycloakify-angular-login-pages-login-idp-link-confirm-override.mjs"
371
- },
372
372
  "./login/pages/login-idp-link-confirm": {
373
373
  "types": "./login/pages/login-idp-link-confirm/index.d.ts",
374
374
  "esm2022": "./esm2022/login/pages/login-idp-link-confirm/keycloakify-angular-login-pages-login-idp-link-confirm.mjs",
375
375
  "esm": "./esm2022/login/pages/login-idp-link-confirm/keycloakify-angular-login-pages-login-idp-link-confirm.mjs",
376
376
  "default": "./fesm2022/keycloakify-angular-login-pages-login-idp-link-confirm.mjs"
377
377
  },
378
+ "./login/pages/login-idp-link-confirm-override": {
379
+ "types": "./login/pages/login-idp-link-confirm-override/index.d.ts",
380
+ "esm2022": "./esm2022/login/pages/login-idp-link-confirm-override/keycloakify-angular-login-pages-login-idp-link-confirm-override.mjs",
381
+ "esm": "./esm2022/login/pages/login-idp-link-confirm-override/keycloakify-angular-login-pages-login-idp-link-confirm-override.mjs",
382
+ "default": "./fesm2022/keycloakify-angular-login-pages-login-idp-link-confirm-override.mjs"
383
+ },
378
384
  "./login/pages/login-idp-link-email": {
379
385
  "types": "./login/pages/login-idp-link-email/index.d.ts",
380
386
  "esm2022": "./esm2022/login/pages/login-idp-link-email/keycloakify-angular-login-pages-login-idp-link-email.mjs",
@@ -525,12 +531,6 @@
525
531
  "esm": "./esm2022/login/pages/webauthn-register/keycloakify-angular-login-pages-webauthn-register.mjs",
526
532
  "default": "./fesm2022/keycloakify-angular-login-pages-webauthn-register.mjs"
527
533
  },
528
- "./login/providers/keycloakify-angular": {
529
- "types": "./login/providers/keycloakify-angular/index.d.ts",
530
- "esm2022": "./esm2022/login/providers/keycloakify-angular/keycloakify-angular-login-providers-keycloakify-angular.mjs",
531
- "esm": "./esm2022/login/providers/keycloakify-angular/keycloakify-angular-login-providers-keycloakify-angular.mjs",
532
- "default": "./fesm2022/keycloakify-angular-login-providers-keycloakify-angular.mjs"
533
- },
534
534
  "./login/services/i18n": {
535
535
  "types": "./login/services/i18n/index.d.ts",
536
536
  "esm2022": "./esm2022/login/services/i18n/keycloakify-angular-login-services-i18n.mjs",
@@ -1,5 +1,6 @@
1
1
  import { DOCUMENT } from '@angular/common';
2
2
  import { APP_INITIALIZER, LOCALE_ID, makeEnvironmentProviders } from '@angular/core';
3
+ import type { KcContext } from '@keycloakify/angular/account/KcContext';
3
4
  import { I18nService } from '@keycloakify/angular/account/services/i18n';
4
5
  import { ACCOUNT_CLASSES } from '@keycloakify/angular/account/tokens/classes';
5
6
  import { ACCOUNT_I18N } from '@keycloakify/angular/account/tokens/i18n';
@@ -7,12 +8,11 @@ import { KC_ACCOUNT_CONTEXT } from '@keycloakify/angular/account/tokens/kc-conte
7
8
  import { USE_DEFAULT_CSS } from '@keycloakify/angular/lib/tokens/use-default-css';
8
9
  import { type KcContextLike } from 'keycloakify/account/i18n/noJsx';
9
10
  import type { ClassKey } from 'keycloakify/account/lib/kcClsx';
10
- import type { KcContext } from '@keycloakify/angular/account/KcContext';
11
11
 
12
12
  export type KeycloakifyAngularAccountConfig = {
13
13
  doUseDefaultCss?: boolean;
14
14
  classes?: { [key in ClassKey]?: string };
15
- kcContext: KcContext;
15
+ kcContext: unknown;
16
16
  getI18n: (params: { kcContext: KcContextLike }) => {
17
17
  i18n: unknown;
18
18
  prI18n_currentLanguage: Promise<unknown> | undefined;
@@ -82,5 +82,5 @@
82
82
  </div>
83
83
  </div>
84
84
  </form>
85
- <div className="clearfix"></div>
85
+ <div class="clearfix"></div>
86
86
  </div>
@@ -18,7 +18,7 @@
18
18
  >
19
19
  <ng-container [ngComponentOutlet]="userProfileFormFields() ?? null" />
20
20
  @if (termsAcceptanceRequired) {
21
- <div className="form-group">
21
+ <div class="form-group">
22
22
  <div [kcClass]="'kcInputWrapperClass'">
23
23
  {{ i18n.msgStr('termsTitle') }}
24
24
  <div id="kc-registration-terms-text">
@@ -26,7 +26,7 @@
26
26
  </div>
27
27
  </div>
28
28
  </div>
29
- <div className="form-group">
29
+ <div class="form-group">
30
30
  <div [kcClass]="'kcLabelWrapperClass'">
31
31
  <input
32
32
  type="checkbox"
@@ -57,7 +57,7 @@
57
57
  </div>
58
58
  }
59
59
  @if (recaptchaRequired && (recaptchaVisible || recaptchaAction === undefined)) {
60
- <div className="form-group">
60
+ <div class="form-group">
61
61
  <div [kcClass]="'kcInputWrapperClass'">
62
62
  <div
63
63
  class="g-recaptcha"
@@ -24,4 +24,4 @@
24
24
  [value]="i18n.msgStr('doDecline')"
25
25
  />
26
26
  </form>
27
- <div className="clearfix"></div>
27
+ <div class="clearfix"></div>
@@ -14,7 +14,7 @@ export type KeycloakifyAngularLoginConfig = {
14
14
  doMakeUserConfirmPassword?: boolean;
15
15
  doUseDefaultCss?: boolean;
16
16
  classes?: { [key in ClassKey]?: string };
17
- kcContext: KcContext;
17
+ kcContext: unknown;
18
18
  getI18n: (params: { kcContext: KcContextLike }) => {
19
19
  i18n: unknown;
20
20
  prI18n_currentLanguage: Promise<unknown> | undefined;