@keycloakify/angular 0.0.1-rc.23 → 0.0.1-rc.25
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.
- package/README.md +2 -0
- package/account/providers/keycloakify-angular/keycloakify-angular.providers.d.ts +2 -0
- package/bin/338.index.js +15 -1
- package/bin/758.index.js +15 -1
- package/bin/925.index.js +13 -2
- package/esm2022/account/providers/keycloakify-angular/keycloakify-angular.providers.mjs +2 -4
- package/esm2022/login/containers/template/template.component.mjs +11 -5
- package/esm2022/login/login.mjs +1 -1
- package/esm2022/login/pages/code/code.component.mjs +3 -3
- package/esm2022/login/pages/delete-credential/delete-credential.component.mjs +3 -3
- package/esm2022/login/pages/error/error.component.mjs +3 -3
- package/esm2022/login/pages/idp-review-user-profile/idp-review-user-profile.component.mjs +7 -7
- package/esm2022/login/pages/info/info.component.mjs +3 -3
- package/esm2022/login/pages/login/login.component.mjs +3 -3
- package/esm2022/login/pages/login-idp-link-email/login-idp-link-email.component.mjs +3 -3
- package/esm2022/login/pages/login-oauth-grant/login-oauth-grant.component.mjs +3 -3
- package/esm2022/login/pages/login-page-expired/login-page-expired.component.mjs +3 -3
- package/esm2022/login/pages/login-passkeys-conditional-authenticate/login-passkeys-conditional-authenticate.component.mjs +3 -3
- package/esm2022/login/pages/login-password/login-password.component.mjs +3 -3
- package/esm2022/login/pages/login-recovery-authn-code-input/login-recovery-authn-code-input.component.mjs +3 -3
- package/esm2022/login/pages/login-reset-otp/login-reset-otp.component.mjs +3 -3
- package/esm2022/login/pages/login-reset-password/login-reset-password.component.mjs +3 -3
- package/esm2022/login/pages/login-update-profile/login-update-profile.component.mjs +7 -7
- package/esm2022/login/pages/login-username/login-username.component.mjs +3 -3
- package/esm2022/login/pages/login-verify-email/login-verify-email.component.mjs +3 -3
- package/esm2022/login/pages/register/register.component.mjs +7 -7
- package/esm2022/login/pages/select-authenticator/select-authenticator.component.mjs +3 -3
- package/esm2022/login/pages/update-email/update-email.component.mjs +7 -7
- package/esm2022/login/pages/webauthn-authenticate/webauthn-authenticate.component.mjs +3 -3
- package/esm2022/login/providers/keycloakify-angular/keycloakify-angular.providers.mjs +2 -4
- package/fesm2022/keycloakify-angular-account-providers-keycloakify-angular.mjs +1 -3
- package/fesm2022/keycloakify-angular-account-providers-keycloakify-angular.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-containers-template.mjs +10 -4
- package/fesm2022/keycloakify-angular-login-containers-template.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-code.mjs +2 -2
- package/fesm2022/keycloakify-angular-login-pages-code.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-delete-credential.mjs +2 -2
- package/fesm2022/keycloakify-angular-login-pages-delete-credential.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-error.mjs +2 -2
- package/fesm2022/keycloakify-angular-login-pages-error.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-idp-review-user-profile.mjs +6 -6
- package/fesm2022/keycloakify-angular-login-pages-idp-review-user-profile.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-info.mjs +2 -2
- package/fesm2022/keycloakify-angular-login-pages-info.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-login-idp-link-email.mjs +2 -2
- package/fesm2022/keycloakify-angular-login-pages-login-idp-link-email.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-login-oauth-grant.mjs +2 -2
- package/fesm2022/keycloakify-angular-login-pages-login-oauth-grant.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-login-page-expired.mjs +2 -2
- package/fesm2022/keycloakify-angular-login-pages-login-page-expired.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-login-passkeys-conditional-authenticate.mjs +2 -2
- package/fesm2022/keycloakify-angular-login-pages-login-passkeys-conditional-authenticate.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-login-password.mjs +2 -2
- package/fesm2022/keycloakify-angular-login-pages-login-password.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-login-recovery-authn-code-input.mjs +2 -2
- package/fesm2022/keycloakify-angular-login-pages-login-recovery-authn-code-input.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-login-reset-otp.mjs +2 -2
- package/fesm2022/keycloakify-angular-login-pages-login-reset-otp.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-login-reset-password.mjs +2 -2
- package/fesm2022/keycloakify-angular-login-pages-login-reset-password.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-login-update-profile.mjs +6 -6
- package/fesm2022/keycloakify-angular-login-pages-login-update-profile.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-login-username.mjs +2 -2
- package/fesm2022/keycloakify-angular-login-pages-login-username.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-login-verify-email.mjs +2 -2
- package/fesm2022/keycloakify-angular-login-pages-login-verify-email.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-login.mjs +2 -2
- package/fesm2022/keycloakify-angular-login-pages-login.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-register.mjs +7 -7
- package/fesm2022/keycloakify-angular-login-pages-register.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-select-authenticator.mjs +2 -2
- package/fesm2022/keycloakify-angular-login-pages-select-authenticator.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-update-email.mjs +6 -6
- package/fesm2022/keycloakify-angular-login-pages-update-email.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-webauthn-authenticate.mjs +2 -2
- package/fesm2022/keycloakify-angular-login-pages-webauthn-authenticate.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-providers-keycloakify-angular.mjs +1 -3
- package/fesm2022/keycloakify-angular-login-providers-keycloakify-angular.mjs.map +1 -1
- package/login/containers/template/template.component.d.ts +4 -2
- package/login/login.d.ts +1 -0
- package/login/pages/idp-review-user-profile/idp-review-user-profile.component.d.ts +4 -2
- package/login/pages/login-update-profile/login-update-profile.component.d.ts +4 -2
- package/login/pages/register/register.component.d.ts +4 -2
- package/login/pages/update-email/update-email.component.d.ts +4 -2
- package/login/providers/keycloakify-angular/keycloakify-angular.providers.d.ts +2 -0
- package/package.json +1 -1
- package/src/account/providers/keycloakify-angular/keycloakify-angular.providers.ts +2 -3
- package/src/bin/eject-page.ts +21 -3
- package/src/bin/update-kc-gen.ts +15 -1
- package/src/login/containers/template/template.component.html +1 -0
- package/src/login/containers/template/template.component.ts +6 -0
- package/src/login/login.ts +1 -0
- package/src/login/pages/code/code.component.html +1 -0
- package/src/login/pages/delete-credential/delete-credential.component.html +26 -26
- package/src/login/pages/error/error.component.html +16 -17
- package/src/login/pages/idp-review-user-profile/idp-review-user-profile.component.html +1 -1
- package/src/login/pages/idp-review-user-profile/idp-review-user-profile.component.ts +4 -3
- package/src/login/pages/info/info.component.html +2 -2
- package/src/login/pages/login/login.component.html +3 -1
- package/src/login/pages/login-idp-link-email/login-idp-link-email.component.html +2 -0
- package/src/login/pages/login-oauth-grant/login-oauth-grant.component.html +1 -0
- package/src/login/pages/login-page-expired/login-page-expired.component.html +23 -24
- package/src/login/pages/login-passkeys-conditional-authenticate/login-passkeys-conditional-authenticate.component.html +166 -165
- package/src/login/pages/login-password/login-password.component.html +68 -69
- package/src/login/pages/login-recovery-authn-code-input/login-recovery-authn-code-input.component.html +55 -57
- package/src/login/pages/login-reset-otp/login-reset-otp.component.html +48 -49
- package/src/login/pages/login-reset-password/login-reset-password.component.html +1 -0
- package/src/login/pages/login-update-profile/login-update-profile.component.html +1 -1
- package/src/login/pages/login-update-profile/login-update-profile.component.ts +3 -2
- package/src/login/pages/login-username/login-username.component.html +5 -3
- package/src/login/pages/login-verify-email/login-verify-email.component.html +1 -1
- package/src/login/pages/register/register.component.html +2 -2
- package/src/login/pages/register/register.component.ts +3 -2
- package/src/login/pages/select-authenticator/select-authenticator.component.html +32 -32
- package/src/login/pages/update-email/update-email.component.html +1 -1
- package/src/login/pages/update-email/update-email.component.ts +3 -2
- package/src/login/pages/webauthn-authenticate/webauthn-authenticate.component.html +1 -0
- package/src/login/providers/keycloakify-angular/keycloakify-angular.providers.ts +2 -3
package/README.md
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
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';
|
|
3
4
|
export type KeycloakifyAngularAccountConfig = {
|
|
4
5
|
doUseDefaultCss?: boolean;
|
|
5
6
|
classes?: {
|
|
6
7
|
[key in ClassKey]?: string;
|
|
7
8
|
};
|
|
9
|
+
kcContext: KcContext;
|
|
8
10
|
getI18n: (params: {
|
|
9
11
|
kcContext: KcContextLike;
|
|
10
12
|
}) => {
|
package/bin/338.index.js
CHANGED
|
@@ -249,7 +249,10 @@ function command(params) {
|
|
|
249
249
|
` doUseDefaultCss,`,
|
|
250
250
|
` classes,`,
|
|
251
251
|
...(themeType === 'login'
|
|
252
|
-
? [
|
|
252
|
+
? [
|
|
253
|
+
` UserProfileFormFieldsComponent,`,
|
|
254
|
+
` doMakeUserConfirmPassword,`
|
|
255
|
+
]
|
|
253
256
|
: []),
|
|
254
257
|
` },`,
|
|
255
258
|
` ] = await Promise.all([`,
|
|
@@ -261,6 +264,7 @@ function command(params) {
|
|
|
261
264
|
` const appRef = await bootstrapApplication({`,
|
|
262
265
|
` KcRootComponent: TemplateComponent,`,
|
|
263
266
|
` kcProvider: provideKeycloakifyAngular({`,
|
|
267
|
+
` kcContext,`,
|
|
264
268
|
` classes,`,
|
|
265
269
|
` getI18n,`,
|
|
266
270
|
` doUseDefaultCss,`,
|
|
@@ -274,6 +278,16 @@ function command(params) {
|
|
|
274
278
|
` if ("page" in componentRef.instance) {`,
|
|
275
279
|
` componentRef.setInput("page", PageComponent);`,
|
|
276
280
|
` }`,
|
|
281
|
+
...(themeType === 'login'
|
|
282
|
+
? [
|
|
283
|
+
` if ("userProfileFormFields" in componentRef.instance) {`,
|
|
284
|
+
` componentRef.setInput(`,
|
|
285
|
+
` "userProfileFormFields",`,
|
|
286
|
+
` UserProfileFormFieldsComponent`,
|
|
287
|
+
` );`,
|
|
288
|
+
` }`
|
|
289
|
+
]
|
|
290
|
+
: []),
|
|
277
291
|
` });`,
|
|
278
292
|
` }`,
|
|
279
293
|
` break;`
|
package/bin/758.index.js
CHANGED
|
@@ -81,7 +81,10 @@ function command(params) {
|
|
|
81
81
|
` doUseDefaultCss,`,
|
|
82
82
|
` classes,`,
|
|
83
83
|
...(themeType === 'login'
|
|
84
|
-
? [
|
|
84
|
+
? [
|
|
85
|
+
` UserProfileFormFieldsComponent,`,
|
|
86
|
+
` doMakeUserConfirmPassword,`
|
|
87
|
+
]
|
|
85
88
|
: []),
|
|
86
89
|
` },`,
|
|
87
90
|
` ] = await Promise.all([`,
|
|
@@ -93,6 +96,7 @@ function command(params) {
|
|
|
93
96
|
` const appRef = await bootstrapApplication({`,
|
|
94
97
|
` KcRootComponent: TemplateComponent,`,
|
|
95
98
|
` kcProvider: provideKeycloakifyAngular({`,
|
|
99
|
+
` kcContext,`,
|
|
96
100
|
` classes,`,
|
|
97
101
|
` getI18n,`,
|
|
98
102
|
` doUseDefaultCss,`,
|
|
@@ -106,6 +110,16 @@ function command(params) {
|
|
|
106
110
|
` if ("page" in componentRef.instance) {`,
|
|
107
111
|
` componentRef.setInput("page", PageComponent);`,
|
|
108
112
|
` }`,
|
|
113
|
+
...(themeType === 'login'
|
|
114
|
+
? [
|
|
115
|
+
` if ("userProfileFormFields" in componentRef.instance) {`,
|
|
116
|
+
` componentRef.setInput(`,
|
|
117
|
+
` "userProfileFormFields",`,
|
|
118
|
+
` UserProfileFormFieldsComponent`,
|
|
119
|
+
` );`,
|
|
120
|
+
` }`
|
|
121
|
+
]
|
|
122
|
+
: []),
|
|
109
123
|
` });`,
|
|
110
124
|
` }`,
|
|
111
125
|
` break;`
|
package/bin/925.index.js
CHANGED
|
@@ -296,11 +296,16 @@ async function command(params) {
|
|
|
296
296
|
console.log(`→ ${themeType}`);
|
|
297
297
|
console.log(source/* default */.Ay.cyan('Select the page you want to customize:'));
|
|
298
298
|
const templateValue = 'template.ftl (Layout common to every page)';
|
|
299
|
+
const userProfileFormFieldsValue = 'user-profile-commons.ftl (Renders the form of the register.ftl, login-update-profile.ftl, update-email.ftl and idp-review-user-profile.ftl)';
|
|
299
300
|
const { value: pageIdOrComponent } = await dist_default()({
|
|
300
301
|
values: (() => {
|
|
301
302
|
switch (themeType) {
|
|
302
303
|
case 'login':
|
|
303
|
-
return [
|
|
304
|
+
return [
|
|
305
|
+
templateValue,
|
|
306
|
+
userProfileFormFieldsValue,
|
|
307
|
+
...constants/* LOGIN_THEME_PAGE_IDS */.hz
|
|
308
|
+
];
|
|
304
309
|
case 'account':
|
|
305
310
|
return [templateValue, ...constants/* ACCOUNT_THEME_PAGE_IDS */.Hp];
|
|
306
311
|
}
|
|
@@ -314,6 +319,9 @@ async function command(params) {
|
|
|
314
319
|
if (pageIdOrComponent === templateValue) {
|
|
315
320
|
return (0,external_path_.join)('containers', 'template');
|
|
316
321
|
}
|
|
322
|
+
if (pageIdOrComponent === userProfileFormFieldsValue) {
|
|
323
|
+
return (0,external_path_.join)('components', 'user-profile-form-fields');
|
|
324
|
+
}
|
|
317
325
|
return (0,external_path_.join)('pages', pageIdOrComponent.replace(/\.ftl$/, ''));
|
|
318
326
|
})();
|
|
319
327
|
{
|
|
@@ -371,7 +379,8 @@ async function command(params) {
|
|
|
371
379
|
}
|
|
372
380
|
}
|
|
373
381
|
edit_KcPage: {
|
|
374
|
-
if (pageIdOrComponent !== templateValue
|
|
382
|
+
if (pageIdOrComponent !== templateValue &&
|
|
383
|
+
pageIdOrComponent !== userProfileFormFieldsValue) {
|
|
375
384
|
break edit_KcPage;
|
|
376
385
|
}
|
|
377
386
|
const kcAppTsFilePath = (0,external_path_.join)(buildContext.themeSrcDirPath, themeType, 'KcPage.ts');
|
|
@@ -406,6 +415,7 @@ async function command(params) {
|
|
|
406
415
|
`+ return {`,
|
|
407
416
|
`+ PageComponent: (await import('./${componentDirRelativeToThemeTypePath.split(external_path_.sep).join('/')}')).${kebabCaseToCamelCase(capitalize(pageId).replace(/\.ftl$/, ''))}Component,`,
|
|
408
417
|
`+ TemplateComponent,`,
|
|
418
|
+
...(themeType === 'login' ? [`+ UserProfileFormFieldsComponent,`] : []),
|
|
409
419
|
...(themeType === 'login' ? [`+ doMakeUserConfirmPassword,`] : []),
|
|
410
420
|
`+ doUseDefaultCss,`,
|
|
411
421
|
`+ classes,`,
|
|
@@ -415,6 +425,7 @@ async function command(params) {
|
|
|
415
425
|
` return {`,
|
|
416
426
|
` PageComponent: await getDefaultPageComponent(pageId),`,
|
|
417
427
|
` TemplateComponent,`,
|
|
428
|
+
...(themeType === 'login' ? [` UserProfileFormFieldsComponent,`] : []),
|
|
418
429
|
...(themeType === 'login' ? [` doMakeUserConfirmPassword,`] : []),
|
|
419
430
|
` doUseDefaultCss,`,
|
|
420
431
|
` classes,`,
|
|
@@ -8,9 +8,7 @@ import { USE_DEFAULT_CSS } from '@keycloakify/angular/lib/tokens/use-default-css
|
|
|
8
8
|
export const provideKeycloakifyAngular = (config) => makeEnvironmentProviders([
|
|
9
9
|
{
|
|
10
10
|
provide: KC_ACCOUNT_CONTEXT,
|
|
11
|
-
|
|
12
|
-
// @ts-ignore
|
|
13
|
-
useValue: window.kcContext
|
|
11
|
+
useValue: config.kcContext
|
|
14
12
|
},
|
|
15
13
|
{
|
|
16
14
|
provide: LOCALE_ID,
|
|
@@ -46,4 +44,4 @@ export const provideKeycloakifyAngular = (config) => makeEnvironmentProviders([
|
|
|
46
44
|
{ provide: USE_DEFAULT_CSS, useValue: config?.doUseDefaultCss ?? true },
|
|
47
45
|
{ provide: ACCOUNT_CLASSES, useValue: config?.classes ?? {} }
|
|
48
46
|
]);
|
|
49
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5Y2xvYWtpZnktYW5ndWxhci5wcm92aWRlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYWNjb3VudC9wcm92aWRlcnMva2V5Y2xvYWtpZnktYW5ndWxhci9rZXljbG9ha2lmeS1hbmd1bGFyLnByb3ZpZGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDeEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDcEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBZWxGLE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUFHLENBQUMsTUFBdUMsRUFBRSxFQUFFLENBQ2pGLHdCQUF3QixDQUFDO0lBQ3JCO1FBQ0ksT0FBTyxFQUFFLGtCQUFrQjtRQUMzQixRQUFRLEVBQUUsTUFBTSxDQUFDLFNBQVM7S0FDN0I7SUFDRDtRQUNJLE9BQU8sRUFBRSxTQUFTO1FBQ2xCLFVBQVUsRUFBRSxDQUFDLFFBQWtCLEVBQUUsRUFBRTtZQUMvQixPQUFPLFFBQVEsQ0FBQyxlQUFlLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQztRQUNqRCxDQUFDO1FBQ0QsSUFBSSxFQUFFLENBQUMsUUFBUSxDQUFDO0tBQ25CO0lBQ0Q7UUFDSSxPQUFPLEVBQUUsZUFBZTtRQUN4QixLQUFLLEVBQUUsSUFBSTtRQUNYLFVBQVUsRUFBRSxDQUFDLFdBQXdCLEVBQUUsU0FBb0IsRUFBRSxFQUFFLENBQUMsS0FBSyxJQUFJLEVBQUU7WUFDdkUsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQztZQUUvQixNQUFNLEVBQUUsSUFBSSxFQUFFLHNCQUFzQixFQUFFLEdBQUcsT0FBTyxDQUFDO2dCQUM3QyxTQUFTO2FBQ1osQ0FBQyxDQUFDO1lBQ0gsSUFBSSxXQUFXLEdBQUcsSUFBSSxPQUFPLENBQWMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUNyRSxJQUFJLHNCQUFzQixFQUFFLENBQUM7Z0JBQ3pCLFdBQVcsR0FBRyxzQkFBc0IsQ0FBQztZQUN6QyxDQUFDO1lBQ0QsT0FBTyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUMzQixXQUFXLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztnQkFDeEIsT0FBTyxJQUFJLENBQUM7WUFDaEIsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDO1FBQ0QsSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLGtCQUFrQixDQUFDO0tBQzFDO0lBQ0Q7UUFDSSxPQUFPLEVBQUUsWUFBWTtRQUNyQixVQUFVLEVBQUUsQ0FBQyxXQUF3QixFQUFFLEVBQUUsQ0FBQyxXQUFXLENBQUMsSUFBSTtRQUMxRCxJQUFJLEVBQUUsQ0FBQyxXQUFXLENBQUM7S0FDdEI7SUFDRCxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxlQUFlLElBQUksSUFBSSxFQUFFO0lBQ3ZFLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE9BQU8sSUFBSSxFQUFFLEVBQUU7Q0FDaEUsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQVBQX0lOSVRJQUxJWkVSLCBMT0NBTEVfSUQsIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9hY2NvdW50L3NlcnZpY2VzL2kxOG4nO1xuaW1wb3J0IHsgQUNDT1VOVF9DTEFTU0VTIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvYWNjb3VudC90b2tlbnMvY2xhc3Nlcyc7XG5pbXBvcnQgeyBBQ0NPVU5UX0kxOE4gfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9hY2NvdW50L3Rva2Vucy9pMThuJztcbmltcG9ydCB7IEtDX0FDQ09VTlRfQ09OVEVYVCB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2FjY291bnQvdG9rZW5zL2tjLWNvbnRleHQnO1xuaW1wb3J0IHsgVVNFX0RFRkFVTFRfQ1NTIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbGliL3Rva2Vucy91c2UtZGVmYXVsdC1jc3MnO1xuaW1wb3J0IHsgdHlwZSBLY0NvbnRleHRMaWtlIH0gZnJvbSAna2V5Y2xvYWtpZnkvYWNjb3VudC9pMThuL25vSnN4JztcbmltcG9ydCB0eXBlIHsgQ2xhc3NLZXkgfSBmcm9tICdrZXljbG9ha2lmeS9hY2NvdW50L2xpYi9rY0Nsc3gnO1xuaW1wb3J0IHR5cGUgeyBLY0NvbnRleHQgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9hY2NvdW50L0tjQ29udGV4dCc7XG5cbmV4cG9ydCB0eXBlIEtleWNsb2FraWZ5QW5ndWxhckFjY291bnRDb25maWcgPSB7XG4gICAgZG9Vc2VEZWZhdWx0Q3NzPzogYm9vbGVhbjtcbiAgICBjbGFzc2VzPzogeyBba2V5IGluIENsYXNzS2V5XT86IHN0cmluZyB9O1xuICAgIGtjQ29udGV4dDogS2NDb250ZXh0O1xuICAgIGdldEkxOG46IChwYXJhbXM6IHsga2NDb250ZXh0OiBLY0NvbnRleHRMaWtlIH0pID0+IHtcbiAgICAgICAgaTE4bjogdW5rbm93bjtcbiAgICAgICAgcHJJMThuX2N1cnJlbnRMYW5ndWFnZTogUHJvbWlzZTx1bmtub3duPiB8IHVuZGVmaW5lZDtcbiAgICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IHByb3ZpZGVLZXljbG9ha2lmeUFuZ3VsYXIgPSAoY29uZmlnOiBLZXljbG9ha2lmeUFuZ3VsYXJBY2NvdW50Q29uZmlnKSA9PlxuICAgIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVycyhbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEtDX0FDQ09VTlRfQ09OVEVYVCxcbiAgICAgICAgICAgIHVzZVZhbHVlOiBjb25maWcua2NDb250ZXh0XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IExPQ0FMRV9JRCxcbiAgICAgICAgICAgIHVzZUZhY3Rvcnk6IChkb2N1bWVudDogRG9jdW1lbnQpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmxhbmcgPz8gJ2VuJztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBkZXBzOiBbRE9DVU1FTlRdXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEFQUF9JTklUSUFMSVpFUixcbiAgICAgICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgICAgICAgdXNlRmFjdG9yeTogKGkxOG5TZXJ2aWNlOiBJMThuU2VydmljZSwga2NDb250ZXh0OiBLY0NvbnRleHQpID0+IGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBnZXRJMThuID0gY29uZmlnLmdldEkxOG47XG5cbiAgICAgICAgICAgICAgICBjb25zdCB7IGkxOG4sIHBySTE4bl9jdXJyZW50TGFuZ3VhZ2UgfSA9IGdldEkxOG4oe1xuICAgICAgICAgICAgICAgICAgICBrY0NvbnRleHRcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBsZXQgaTE4blByb21pc2UgPSBuZXcgUHJvbWlzZTx0eXBlb2YgaTE4bj4ocmVzb2x2ZSA9PiByZXNvbHZlKGkxOG4pKTtcbiAgICAgICAgICAgICAgICBpZiAocHJJMThuX2N1cnJlbnRMYW5ndWFnZSkge1xuICAgICAgICAgICAgICAgICAgICBpMThuUHJvbWlzZSA9IHBySTE4bl9jdXJyZW50TGFuZ3VhZ2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBpMThuUHJvbWlzZS50aGVuKGkxOG4gPT4ge1xuICAgICAgICAgICAgICAgICAgICBpMThuU2VydmljZS5pMThuID0gaTE4bjtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZGVwczogW0kxOG5TZXJ2aWNlLCBLQ19BQ0NPVU5UX0NPTlRFWFRdXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEFDQ09VTlRfSTE4TixcbiAgICAgICAgICAgIHVzZUZhY3Rvcnk6IChpMThuU2VydmljZTogSTE4blNlcnZpY2UpID0+IGkxOG5TZXJ2aWNlLmkxOG4sXG4gICAgICAgICAgICBkZXBzOiBbSTE4blNlcnZpY2VdXG4gICAgICAgIH0sXG4gICAgICAgIHsgcHJvdmlkZTogVVNFX0RFRkFVTFRfQ1NTLCB1c2VWYWx1ZTogY29uZmlnPy5kb1VzZURlZmF1bHRDc3MgPz8gdHJ1ZSB9LFxuICAgICAgICB7IHByb3ZpZGU6IEFDQ09VTlRfQ0xBU1NFUywgdXNlVmFsdWU6IGNvbmZpZz8uY2xhc3NlcyA/PyB7fSB9XG4gICAgXSk7XG4iXX0=
|
|
@@ -15,18 +15,23 @@ export class DynamicPageInjectorComponent {
|
|
|
15
15
|
#vcr;
|
|
16
16
|
constructor() {
|
|
17
17
|
this.page = input();
|
|
18
|
+
this.userProfileFormFields = input();
|
|
18
19
|
this.componentCreated = output();
|
|
19
20
|
this.#vcr = inject(ViewContainerRef);
|
|
20
21
|
effect(() => {
|
|
21
22
|
const page = this.page();
|
|
23
|
+
const userProfileFormFields = this.userProfileFormFields();
|
|
22
24
|
if (!page)
|
|
23
25
|
return;
|
|
24
26
|
const compRef = this.#vcr.createComponent(page);
|
|
27
|
+
if ('userProfileFormFields' in compRef.instance && userProfileFormFields) {
|
|
28
|
+
compRef.setInput('userProfileFormFields', userProfileFormFields);
|
|
29
|
+
}
|
|
25
30
|
this.componentCreated.emit(compRef.instance);
|
|
26
31
|
}, { allowSignalWrites: true });
|
|
27
32
|
}
|
|
28
33
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: DynamicPageInjectorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
29
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.7", type: DynamicPageInjectorComponent, isStandalone: true, selector: "kc-dynamic-page-injector", inputs: { page: { classPropertyName: "page", publicName: "page", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { componentCreated: "componentCreated" }, ngImport: i0, template: ``, isInline: true }); }
|
|
34
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.7", type: DynamicPageInjectorComponent, isStandalone: true, selector: "kc-dynamic-page-injector", inputs: { page: { classPropertyName: "page", publicName: "page", isSignal: true, isRequired: false, transformFunction: null }, userProfileFormFields: { classPropertyName: "userProfileFormFields", publicName: "userProfileFormFields", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { componentCreated: "componentCreated" }, ngImport: i0, template: ``, isInline: true }); }
|
|
30
35
|
}
|
|
31
36
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: DynamicPageInjectorComponent, decorators: [{
|
|
32
37
|
type: Component,
|
|
@@ -53,6 +58,7 @@ export class TemplateComponent extends ComponentReference {
|
|
|
53
58
|
this.displayMessage = true;
|
|
54
59
|
this.displayRequiredFields = false;
|
|
55
60
|
this.page = input();
|
|
61
|
+
this.userProfileFormFields = input();
|
|
56
62
|
this.title.setTitle(this.documentTitle ?? this.i18n.msgStr('loginTitle', this.kcContext.realm.displayName));
|
|
57
63
|
this.isReadyToRender$ = this.loginResourceInjectorService.injectResource(this.doUseDefaultCss);
|
|
58
64
|
}
|
|
@@ -115,12 +121,12 @@ export class TemplateComponent extends ComponentReference {
|
|
|
115
121
|
this.#cdr.markForCheck();
|
|
116
122
|
}
|
|
117
123
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: TemplateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
118
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: TemplateComponent, isStandalone: true, selector: "kc-root", inputs: { page: { classPropertyName: "page", publicName: "page", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
|
|
124
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: TemplateComponent, isStandalone: true, selector: "kc-root", inputs: { page: { classPropertyName: "page", publicName: "page", isSignal: true, isRequired: false, transformFunction: null }, userProfileFormFields: { classPropertyName: "userProfileFormFields", publicName: "userProfileFormFields", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
|
|
119
125
|
{
|
|
120
126
|
provide: ComponentReference,
|
|
121
127
|
useExisting: forwardRef(() => TemplateComponent)
|
|
122
128
|
}
|
|
123
|
-
], usesInheritance: true, ngImport: i0, template: "@let realm = kcContext.realm;\n@let message = kcContext.message;\n@let auth = kcContext.auth;\n@let isAppInitiatedAction = kcContext.isAppInitiatedAction;\n@let url = kcContext.url;\n@let isReadyToRender = isReadyToRender$ | async;\n\n@if (isReadyToRender) {\n <div [kcClass]=\"'kcLoginClass'\">\n <div\n id=\"kc-header\"\n [kcClass]=\"'kcHeaderClass'\"\n >\n <div\n id=\"kc-header-wrapper\"\n [kcClass]=\"'kcHeaderWrapperClass'\"\n >\n <div [innerHTML]=\"realm?.displayNameHtml ?? '' | kcSanitize: 'html'\"></div>\n </div>\n </div>\n\n <div [kcClass]=\"'kcFormCardClass'\">\n <header [kcClass]=\"'kcFormHeaderClass'\">\n <!-- Locale switcher -->\n @if (i18n.enabledLanguages.length > 1) {\n <div\n id=\"kc-locale\"\n [kcClass]=\"'kcLocaleMainClass'\"\n >\n <div\n id=\"kc-locale-wrapper\"\n [kcClass]=\"'kcLocaleWrapperClass'\"\n >\n <div\n id=\"kc-locale-dropdown\"\n class=\"menu-button-links\"\n [kcClass]=\"'kcLocaleDropDownClass'\"\n >\n <button\n tabindex=\"1\"\n id=\"kc-current-locale-link\"\n aria-haspopup=\"true\"\n aria-expanded=\"false\"\n aria-controls=\"language-switch1\"\n [attr.aria-label]=\"i18n.msgStr('languages')\"\n >\n {{ i18n.currentLanguage.label }}\n </button>\n <ul\n role=\"menu\"\n tabindex=\"-1\"\n aria-labelledby=\"kc-current-locale-link\"\n aria-activedescendant=\"\"\n id=\"language-switch1\"\n [kcClass]=\"'kcLocaleListClass'\"\n >\n @for (entry of i18n.enabledLanguages; track entry; let idx = $index) {\n <li\n role=\"none\"\n [kcClass]=\"'kcLocaleListItemClass'\"\n >\n <a\n role=\"menuitem\"\n tabindex=\"-1\"\n [href]=\"entry.href\"\n [kcClass]=\"'kcLocaleItemClass'\"\n [id]=\"'language-' + idx\"\n >\n {{ entry.label }}\n </a>\n </li>\n }\n </ul>\n </div>\n </div>\n </div>\n }\n\n <!-- Header content -->\n <ng-template #node>\n @if (auth && !auth.showUsername && !auth.showResetCredentials) {\n <h1 id=\"kc-page-title\">\n @let header = headerNode && headerNode();\n @if (header) {\n <ng-container [ngTemplateOutlet]=\"header\" />\n }\n </h1>\n } @else {\n <div\n id=\"kc-username\"\n [kcClass]=\"'kcFormGroupClass'\"\n >\n <label id=\"kc-attempted-username\">{{ auth?.attemptedUsername }}</label>\n <a\n id=\"reset-login\"\n [href]=\"url?.loginRestartFlowUrl\"\n [attr.aria-label]=\"i18n.msgStr('restartLoginTooltip')\"\n >\n <div class=\"kc-login-tooltip\">\n <i [kcClass]=\"'kcResetFlowIcon'\"></i>\n <span class=\"kc-tooltip-text\">\n {{ i18n.msgStr('restartLoginTooltip') }}\n </span>\n </div>\n </a>\n </div>\n }\n </ng-template>\n\n @if (displayRequiredFields) {\n <div [kcClass]=\"'kcContentWrapperClass'\">\n <div\n class=\"subtitle\"\n [kcClass]=\"'kcLabelWrapperClass'\"\n >\n <span class=\"subtitle\">\n <span class=\"required\">*</span>\n {{ i18n.msgStr('requiredFields') }}\n </span>\n </div>\n <div class=\"col-md-10\">\n <ng-container [ngTemplateOutlet]=\"node\" />\n </div>\n </div>\n } @else {\n <ng-container [ngTemplateOutlet]=\"node\" />\n }\n </header>\n\n <div id=\"kc-content\">\n <div id=\"kc-content-wrapper\">\n <!-- Message display -->\n @if (displayMessage && message && (message.type !== 'warning' || !isAppInitiatedAction)) {\n <div\n [kcClass]=\"'kcAlertClass'\"\n [ngClass]=\"message.type === 'error' ? 'pf-m-danger' : 'pf-m-' + message.type\"\n [class]=\"'alert-' + message.type\"\n >\n <div class=\"pf-c-alert__icon\">\n @switch (message.type) {\n @case ('success') {\n <span [kcClass]=\"'kcFeedbackSuccessIcon'\"></span>\n }\n @case ('warning') {\n <span [kcClass]=\"'kcFeedbackWarningIcon'\"></span>\n }\n @case ('info') {\n <span [kcClass]=\"'kcFeedbackInfoIcon'\"></span>\n }\n @case ('error') {\n <span [kcClass]=\"'kcFeedbackErrorIcon'\"></span>\n }\n }\n </div>\n <span\n [kcClass]=\"'kcAlertTitleClass'\"\n [innerHTML]=\"message.summary | kcSanitize: 'html'\"\n ></span>\n </div>\n }\n <!-- Content -->\n @let pageRef = page();\n @if (!!pageRef) {\n <kc-dynamic-page-injector\n [page]=\"pageRef\"\n (componentCreated)=\"onComponentCreated($event)\"\n />\n }\n @if (!!auth && auth?.showTryAnotherWayLink) {\n <form\n id=\"kc-select-try-another-way-form\"\n method=\"post\"\n [action]=\"url?.loginAction\"\n >\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div [kcClass]=\"'kcFormGroupClass'\">\n <input\n type=\"hidden\"\n name=\"tryAnotherWay\"\n value=\"on\"\n />\n <a\n id=\"try-another-way\"\n (click)=\"tryAnotherWay()\"\n >\n {{ i18n.msgStr('doTryAnotherWay') }}\n </a>\n </div>\n </div>\n </form>\n }\n @let socialProviders = socialProvidersNode && socialProvidersNode();\n @if (socialProviders) {\n <ng-container [ngTemplateOutlet]=\"socialProviders\" />\n }\n <!-- Info display -->\n @if (displayInfo) {\n <div\n id=\"kc-info\"\n [kcClass]=\"'kcSignUpClass'\"\n >\n <div\n id=\"kc-info-wrapper\"\n [kcClass]=\"'kcInfoAreaWrapperClass'\"\n >\n @let info = infoNode && infoNode();\n @if (info) {\n <ng-container [ngTemplateOutlet]=\"info\" />\n }\n </div>\n </div>\n }\n </div>\n </div>\n </div>\n </div>\n}\n", dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: KcSanitizePipe, name: "kcSanitize" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: KcClassDirective, selector: "[kcClass]", inputs: ["class", "ngClass", "kcClass"] }, { kind: "component", type: DynamicPageInjectorComponent, selector: "kc-dynamic-page-injector", inputs: ["page"], outputs: ["componentCreated"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
129
|
+
], usesInheritance: true, ngImport: i0, template: "@let realm = kcContext.realm;\n@let message = kcContext.message;\n@let auth = kcContext.auth;\n@let isAppInitiatedAction = kcContext.isAppInitiatedAction;\n@let url = kcContext.url;\n@let isReadyToRender = isReadyToRender$ | async;\n\n@if (isReadyToRender) {\n <div [kcClass]=\"'kcLoginClass'\">\n <div\n id=\"kc-header\"\n [kcClass]=\"'kcHeaderClass'\"\n >\n <div\n id=\"kc-header-wrapper\"\n [kcClass]=\"'kcHeaderWrapperClass'\"\n >\n <div [innerHTML]=\"realm?.displayNameHtml ?? '' | kcSanitize: 'html'\"></div>\n </div>\n </div>\n\n <div [kcClass]=\"'kcFormCardClass'\">\n <header [kcClass]=\"'kcFormHeaderClass'\">\n <!-- Locale switcher -->\n @if (i18n.enabledLanguages.length > 1) {\n <div\n id=\"kc-locale\"\n [kcClass]=\"'kcLocaleMainClass'\"\n >\n <div\n id=\"kc-locale-wrapper\"\n [kcClass]=\"'kcLocaleWrapperClass'\"\n >\n <div\n id=\"kc-locale-dropdown\"\n class=\"menu-button-links\"\n [kcClass]=\"'kcLocaleDropDownClass'\"\n >\n <button\n tabindex=\"1\"\n id=\"kc-current-locale-link\"\n aria-haspopup=\"true\"\n aria-expanded=\"false\"\n aria-controls=\"language-switch1\"\n [attr.aria-label]=\"i18n.msgStr('languages')\"\n >\n {{ i18n.currentLanguage.label }}\n </button>\n <ul\n role=\"menu\"\n tabindex=\"-1\"\n aria-labelledby=\"kc-current-locale-link\"\n aria-activedescendant=\"\"\n id=\"language-switch1\"\n [kcClass]=\"'kcLocaleListClass'\"\n >\n @for (entry of i18n.enabledLanguages; track entry; let idx = $index) {\n <li\n role=\"none\"\n [kcClass]=\"'kcLocaleListItemClass'\"\n >\n <a\n role=\"menuitem\"\n tabindex=\"-1\"\n [href]=\"entry.href\"\n [kcClass]=\"'kcLocaleItemClass'\"\n [id]=\"'language-' + idx\"\n >\n {{ entry.label }}\n </a>\n </li>\n }\n </ul>\n </div>\n </div>\n </div>\n }\n\n <!-- Header content -->\n <ng-template #node>\n @if (auth && !auth.showUsername && !auth.showResetCredentials) {\n <h1 id=\"kc-page-title\">\n @let header = headerNode && headerNode();\n @if (header) {\n <ng-container [ngTemplateOutlet]=\"header\" />\n }\n </h1>\n } @else {\n <div\n id=\"kc-username\"\n [kcClass]=\"'kcFormGroupClass'\"\n >\n <label id=\"kc-attempted-username\">{{ auth?.attemptedUsername }}</label>\n <a\n id=\"reset-login\"\n [href]=\"url?.loginRestartFlowUrl\"\n [attr.aria-label]=\"i18n.msgStr('restartLoginTooltip')\"\n >\n <div class=\"kc-login-tooltip\">\n <i [kcClass]=\"'kcResetFlowIcon'\"></i>\n <span class=\"kc-tooltip-text\">\n {{ i18n.msgStr('restartLoginTooltip') }}\n </span>\n </div>\n </a>\n </div>\n }\n </ng-template>\n\n @if (displayRequiredFields) {\n <div [kcClass]=\"'kcContentWrapperClass'\">\n <div\n class=\"subtitle\"\n [kcClass]=\"'kcLabelWrapperClass'\"\n >\n <span class=\"subtitle\">\n <span class=\"required\">*</span>\n {{ i18n.msgStr('requiredFields') }}\n </span>\n </div>\n <div class=\"col-md-10\">\n <ng-container [ngTemplateOutlet]=\"node\" />\n </div>\n </div>\n } @else {\n <ng-container [ngTemplateOutlet]=\"node\" />\n }\n </header>\n\n <div id=\"kc-content\">\n <div id=\"kc-content-wrapper\">\n <!-- Message display -->\n @if (displayMessage && message && (message.type !== 'warning' || !isAppInitiatedAction)) {\n <div\n [kcClass]=\"'kcAlertClass'\"\n [ngClass]=\"message.type === 'error' ? 'pf-m-danger' : 'pf-m-' + message.type\"\n [class]=\"'alert-' + message.type\"\n >\n <div class=\"pf-c-alert__icon\">\n @switch (message.type) {\n @case ('success') {\n <span [kcClass]=\"'kcFeedbackSuccessIcon'\"></span>\n }\n @case ('warning') {\n <span [kcClass]=\"'kcFeedbackWarningIcon'\"></span>\n }\n @case ('info') {\n <span [kcClass]=\"'kcFeedbackInfoIcon'\"></span>\n }\n @case ('error') {\n <span [kcClass]=\"'kcFeedbackErrorIcon'\"></span>\n }\n }\n </div>\n <span\n [kcClass]=\"'kcAlertTitleClass'\"\n [innerHTML]=\"message.summary | kcSanitize: 'html'\"\n ></span>\n </div>\n }\n <!-- Content -->\n @let pageRef = page();\n @if (!!pageRef) {\n <kc-dynamic-page-injector\n [page]=\"pageRef\"\n [userProfileFormFields]=\"userProfileFormFields()\"\n (componentCreated)=\"onComponentCreated($event)\"\n />\n }\n @if (!!auth && auth?.showTryAnotherWayLink) {\n <form\n id=\"kc-select-try-another-way-form\"\n method=\"post\"\n [action]=\"url?.loginAction\"\n >\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div [kcClass]=\"'kcFormGroupClass'\">\n <input\n type=\"hidden\"\n name=\"tryAnotherWay\"\n value=\"on\"\n />\n <a\n id=\"try-another-way\"\n (click)=\"tryAnotherWay()\"\n >\n {{ i18n.msgStr('doTryAnotherWay') }}\n </a>\n </div>\n </div>\n </form>\n }\n @let socialProviders = socialProvidersNode && socialProvidersNode();\n @if (socialProviders) {\n <ng-container [ngTemplateOutlet]=\"socialProviders\" />\n }\n <!-- Info display -->\n @if (displayInfo) {\n <div\n id=\"kc-info\"\n [kcClass]=\"'kcSignUpClass'\"\n >\n <div\n id=\"kc-info-wrapper\"\n [kcClass]=\"'kcInfoAreaWrapperClass'\"\n >\n @let info = infoNode && infoNode();\n @if (info) {\n <ng-container [ngTemplateOutlet]=\"info\" />\n }\n </div>\n </div>\n }\n </div>\n </div>\n </div>\n </div>\n}\n", dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: KcSanitizePipe, name: "kcSanitize" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: KcClassDirective, selector: "[kcClass]", inputs: ["class", "ngClass", "kcClass"] }, { kind: "component", type: DynamicPageInjectorComponent, selector: "kc-dynamic-page-injector", inputs: ["page", "userProfileFormFields"], outputs: ["componentCreated"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
124
130
|
}
|
|
125
131
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: TemplateComponent, decorators: [{
|
|
126
132
|
type: Component,
|
|
@@ -129,6 +135,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
|
|
|
129
135
|
provide: ComponentReference,
|
|
130
136
|
useExisting: forwardRef(() => TemplateComponent)
|
|
131
137
|
}
|
|
132
|
-
], template: "@let realm = kcContext.realm;\n@let message = kcContext.message;\n@let auth = kcContext.auth;\n@let isAppInitiatedAction = kcContext.isAppInitiatedAction;\n@let url = kcContext.url;\n@let isReadyToRender = isReadyToRender$ | async;\n\n@if (isReadyToRender) {\n <div [kcClass]=\"'kcLoginClass'\">\n <div\n id=\"kc-header\"\n [kcClass]=\"'kcHeaderClass'\"\n >\n <div\n id=\"kc-header-wrapper\"\n [kcClass]=\"'kcHeaderWrapperClass'\"\n >\n <div [innerHTML]=\"realm?.displayNameHtml ?? '' | kcSanitize: 'html'\"></div>\n </div>\n </div>\n\n <div [kcClass]=\"'kcFormCardClass'\">\n <header [kcClass]=\"'kcFormHeaderClass'\">\n <!-- Locale switcher -->\n @if (i18n.enabledLanguages.length > 1) {\n <div\n id=\"kc-locale\"\n [kcClass]=\"'kcLocaleMainClass'\"\n >\n <div\n id=\"kc-locale-wrapper\"\n [kcClass]=\"'kcLocaleWrapperClass'\"\n >\n <div\n id=\"kc-locale-dropdown\"\n class=\"menu-button-links\"\n [kcClass]=\"'kcLocaleDropDownClass'\"\n >\n <button\n tabindex=\"1\"\n id=\"kc-current-locale-link\"\n aria-haspopup=\"true\"\n aria-expanded=\"false\"\n aria-controls=\"language-switch1\"\n [attr.aria-label]=\"i18n.msgStr('languages')\"\n >\n {{ i18n.currentLanguage.label }}\n </button>\n <ul\n role=\"menu\"\n tabindex=\"-1\"\n aria-labelledby=\"kc-current-locale-link\"\n aria-activedescendant=\"\"\n id=\"language-switch1\"\n [kcClass]=\"'kcLocaleListClass'\"\n >\n @for (entry of i18n.enabledLanguages; track entry; let idx = $index) {\n <li\n role=\"none\"\n [kcClass]=\"'kcLocaleListItemClass'\"\n >\n <a\n role=\"menuitem\"\n tabindex=\"-1\"\n [href]=\"entry.href\"\n [kcClass]=\"'kcLocaleItemClass'\"\n [id]=\"'language-' + idx\"\n >\n {{ entry.label }}\n </a>\n </li>\n }\n </ul>\n </div>\n </div>\n </div>\n }\n\n <!-- Header content -->\n <ng-template #node>\n @if (auth && !auth.showUsername && !auth.showResetCredentials) {\n <h1 id=\"kc-page-title\">\n @let header = headerNode && headerNode();\n @if (header) {\n <ng-container [ngTemplateOutlet]=\"header\" />\n }\n </h1>\n } @else {\n <div\n id=\"kc-username\"\n [kcClass]=\"'kcFormGroupClass'\"\n >\n <label id=\"kc-attempted-username\">{{ auth?.attemptedUsername }}</label>\n <a\n id=\"reset-login\"\n [href]=\"url?.loginRestartFlowUrl\"\n [attr.aria-label]=\"i18n.msgStr('restartLoginTooltip')\"\n >\n <div class=\"kc-login-tooltip\">\n <i [kcClass]=\"'kcResetFlowIcon'\"></i>\n <span class=\"kc-tooltip-text\">\n {{ i18n.msgStr('restartLoginTooltip') }}\n </span>\n </div>\n </a>\n </div>\n }\n </ng-template>\n\n @if (displayRequiredFields) {\n <div [kcClass]=\"'kcContentWrapperClass'\">\n <div\n class=\"subtitle\"\n [kcClass]=\"'kcLabelWrapperClass'\"\n >\n <span class=\"subtitle\">\n <span class=\"required\">*</span>\n {{ i18n.msgStr('requiredFields') }}\n </span>\n </div>\n <div class=\"col-md-10\">\n <ng-container [ngTemplateOutlet]=\"node\" />\n </div>\n </div>\n } @else {\n <ng-container [ngTemplateOutlet]=\"node\" />\n }\n </header>\n\n <div id=\"kc-content\">\n <div id=\"kc-content-wrapper\">\n <!-- Message display -->\n @if (displayMessage && message && (message.type !== 'warning' || !isAppInitiatedAction)) {\n <div\n [kcClass]=\"'kcAlertClass'\"\n [ngClass]=\"message.type === 'error' ? 'pf-m-danger' : 'pf-m-' + message.type\"\n [class]=\"'alert-' + message.type\"\n >\n <div class=\"pf-c-alert__icon\">\n @switch (message.type) {\n @case ('success') {\n <span [kcClass]=\"'kcFeedbackSuccessIcon'\"></span>\n }\n @case ('warning') {\n <span [kcClass]=\"'kcFeedbackWarningIcon'\"></span>\n }\n @case ('info') {\n <span [kcClass]=\"'kcFeedbackInfoIcon'\"></span>\n }\n @case ('error') {\n <span [kcClass]=\"'kcFeedbackErrorIcon'\"></span>\n }\n }\n </div>\n <span\n [kcClass]=\"'kcAlertTitleClass'\"\n [innerHTML]=\"message.summary | kcSanitize: 'html'\"\n ></span>\n </div>\n }\n <!-- Content -->\n @let pageRef = page();\n @if (!!pageRef) {\n <kc-dynamic-page-injector\n [page]=\"pageRef\"\n (componentCreated)=\"onComponentCreated($event)\"\n />\n }\n @if (!!auth && auth?.showTryAnotherWayLink) {\n <form\n id=\"kc-select-try-another-way-form\"\n method=\"post\"\n [action]=\"url?.loginAction\"\n >\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div [kcClass]=\"'kcFormGroupClass'\">\n <input\n type=\"hidden\"\n name=\"tryAnotherWay\"\n value=\"on\"\n />\n <a\n id=\"try-another-way\"\n (click)=\"tryAnotherWay()\"\n >\n {{ i18n.msgStr('doTryAnotherWay') }}\n </a>\n </div>\n </div>\n </form>\n }\n @let socialProviders = socialProvidersNode && socialProvidersNode();\n @if (socialProviders) {\n <ng-container [ngTemplateOutlet]=\"socialProviders\" />\n }\n <!-- Info display -->\n @if (displayInfo) {\n <div\n id=\"kc-info\"\n [kcClass]=\"'kcSignUpClass'\"\n >\n <div\n id=\"kc-info-wrapper\"\n [kcClass]=\"'kcInfoAreaWrapperClass'\"\n >\n @let info = infoNode && infoNode();\n @if (info) {\n <ng-container [ngTemplateOutlet]=\"info\" />\n }\n </div>\n </div>\n }\n </div>\n </div>\n </div>\n </div>\n}\n" }]
|
|
138
|
+
], template: "@let realm = kcContext.realm;\n@let message = kcContext.message;\n@let auth = kcContext.auth;\n@let isAppInitiatedAction = kcContext.isAppInitiatedAction;\n@let url = kcContext.url;\n@let isReadyToRender = isReadyToRender$ | async;\n\n@if (isReadyToRender) {\n <div [kcClass]=\"'kcLoginClass'\">\n <div\n id=\"kc-header\"\n [kcClass]=\"'kcHeaderClass'\"\n >\n <div\n id=\"kc-header-wrapper\"\n [kcClass]=\"'kcHeaderWrapperClass'\"\n >\n <div [innerHTML]=\"realm?.displayNameHtml ?? '' | kcSanitize: 'html'\"></div>\n </div>\n </div>\n\n <div [kcClass]=\"'kcFormCardClass'\">\n <header [kcClass]=\"'kcFormHeaderClass'\">\n <!-- Locale switcher -->\n @if (i18n.enabledLanguages.length > 1) {\n <div\n id=\"kc-locale\"\n [kcClass]=\"'kcLocaleMainClass'\"\n >\n <div\n id=\"kc-locale-wrapper\"\n [kcClass]=\"'kcLocaleWrapperClass'\"\n >\n <div\n id=\"kc-locale-dropdown\"\n class=\"menu-button-links\"\n [kcClass]=\"'kcLocaleDropDownClass'\"\n >\n <button\n tabindex=\"1\"\n id=\"kc-current-locale-link\"\n aria-haspopup=\"true\"\n aria-expanded=\"false\"\n aria-controls=\"language-switch1\"\n [attr.aria-label]=\"i18n.msgStr('languages')\"\n >\n {{ i18n.currentLanguage.label }}\n </button>\n <ul\n role=\"menu\"\n tabindex=\"-1\"\n aria-labelledby=\"kc-current-locale-link\"\n aria-activedescendant=\"\"\n id=\"language-switch1\"\n [kcClass]=\"'kcLocaleListClass'\"\n >\n @for (entry of i18n.enabledLanguages; track entry; let idx = $index) {\n <li\n role=\"none\"\n [kcClass]=\"'kcLocaleListItemClass'\"\n >\n <a\n role=\"menuitem\"\n tabindex=\"-1\"\n [href]=\"entry.href\"\n [kcClass]=\"'kcLocaleItemClass'\"\n [id]=\"'language-' + idx\"\n >\n {{ entry.label }}\n </a>\n </li>\n }\n </ul>\n </div>\n </div>\n </div>\n }\n\n <!-- Header content -->\n <ng-template #node>\n @if (auth && !auth.showUsername && !auth.showResetCredentials) {\n <h1 id=\"kc-page-title\">\n @let header = headerNode && headerNode();\n @if (header) {\n <ng-container [ngTemplateOutlet]=\"header\" />\n }\n </h1>\n } @else {\n <div\n id=\"kc-username\"\n [kcClass]=\"'kcFormGroupClass'\"\n >\n <label id=\"kc-attempted-username\">{{ auth?.attemptedUsername }}</label>\n <a\n id=\"reset-login\"\n [href]=\"url?.loginRestartFlowUrl\"\n [attr.aria-label]=\"i18n.msgStr('restartLoginTooltip')\"\n >\n <div class=\"kc-login-tooltip\">\n <i [kcClass]=\"'kcResetFlowIcon'\"></i>\n <span class=\"kc-tooltip-text\">\n {{ i18n.msgStr('restartLoginTooltip') }}\n </span>\n </div>\n </a>\n </div>\n }\n </ng-template>\n\n @if (displayRequiredFields) {\n <div [kcClass]=\"'kcContentWrapperClass'\">\n <div\n class=\"subtitle\"\n [kcClass]=\"'kcLabelWrapperClass'\"\n >\n <span class=\"subtitle\">\n <span class=\"required\">*</span>\n {{ i18n.msgStr('requiredFields') }}\n </span>\n </div>\n <div class=\"col-md-10\">\n <ng-container [ngTemplateOutlet]=\"node\" />\n </div>\n </div>\n } @else {\n <ng-container [ngTemplateOutlet]=\"node\" />\n }\n </header>\n\n <div id=\"kc-content\">\n <div id=\"kc-content-wrapper\">\n <!-- Message display -->\n @if (displayMessage && message && (message.type !== 'warning' || !isAppInitiatedAction)) {\n <div\n [kcClass]=\"'kcAlertClass'\"\n [ngClass]=\"message.type === 'error' ? 'pf-m-danger' : 'pf-m-' + message.type\"\n [class]=\"'alert-' + message.type\"\n >\n <div class=\"pf-c-alert__icon\">\n @switch (message.type) {\n @case ('success') {\n <span [kcClass]=\"'kcFeedbackSuccessIcon'\"></span>\n }\n @case ('warning') {\n <span [kcClass]=\"'kcFeedbackWarningIcon'\"></span>\n }\n @case ('info') {\n <span [kcClass]=\"'kcFeedbackInfoIcon'\"></span>\n }\n @case ('error') {\n <span [kcClass]=\"'kcFeedbackErrorIcon'\"></span>\n }\n }\n </div>\n <span\n [kcClass]=\"'kcAlertTitleClass'\"\n [innerHTML]=\"message.summary | kcSanitize: 'html'\"\n ></span>\n </div>\n }\n <!-- Content -->\n @let pageRef = page();\n @if (!!pageRef) {\n <kc-dynamic-page-injector\n [page]=\"pageRef\"\n [userProfileFormFields]=\"userProfileFormFields()\"\n (componentCreated)=\"onComponentCreated($event)\"\n />\n }\n @if (!!auth && auth?.showTryAnotherWayLink) {\n <form\n id=\"kc-select-try-another-way-form\"\n method=\"post\"\n [action]=\"url?.loginAction\"\n >\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div [kcClass]=\"'kcFormGroupClass'\">\n <input\n type=\"hidden\"\n name=\"tryAnotherWay\"\n value=\"on\"\n />\n <a\n id=\"try-another-way\"\n (click)=\"tryAnotherWay()\"\n >\n {{ i18n.msgStr('doTryAnotherWay') }}\n </a>\n </div>\n </div>\n </form>\n }\n @let socialProviders = socialProvidersNode && socialProvidersNode();\n @if (socialProviders) {\n <ng-container [ngTemplateOutlet]=\"socialProviders\" />\n }\n <!-- Info display -->\n @if (displayInfo) {\n <div\n id=\"kc-info\"\n [kcClass]=\"'kcSignUpClass'\"\n >\n <div\n id=\"kc-info-wrapper\"\n [kcClass]=\"'kcInfoAreaWrapperClass'\"\n >\n @let info = infoNode && infoNode();\n @if (info) {\n <ng-container [ngTemplateOutlet]=\"info\" />\n }\n </div>\n </div>\n }\n </div>\n </div>\n </div>\n </div>\n}\n" }]
|
|
133
139
|
}], ctorParameters: () => [] });
|
|
134
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xvZ2luL2NvbnRhaW5lcnMvdGVtcGxhdGUvdGVtcGxhdGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vc3JjL2xvZ2luL2NvbnRhaW5lcnMvdGVtcGxhdGUvdGVtcGxhdGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlELE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxRQUFRLEVBQ1IsTUFBTSxFQUNOLFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEVBSVQsZ0JBQWdCLEVBQ25CLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUNsRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUM1RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUdsRixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSw2REFBNkQsQ0FBQztBQUMzRyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDMUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ2hGLE9BQU8sRUFBaUIsU0FBUyxFQUFFLE1BQU0sOEJBQThCLENBQUM7O0FBUXhFLE1BQU0s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QixvSkFBRSxnQkFBZ0IsK0ZBckI5RCw0QkFBNEI7OzJGQThCNUIsaUJBQWlCO2tCQWI3QixTQUFTOytCQUNJLFNBQVMsY0FFUCxJQUFJLFdBQ1AsQ0FBQyxTQUFTLEVBQUUsY0FBYyxFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLDRCQUE0QixDQUFDLG1CQUNyRix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSxrQkFBa0I7NEJBQzNCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLGtCQUFrQixDQUFDO3lCQUNuRDtxQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFzeW5jUGlwZSwgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBjb21wdXRlZCxcbiAgICBlZmZlY3QsXG4gICAgZm9yd2FyZFJlZixcbiAgICBpbmplY3QsXG4gICAgaW5wdXQsXG4gICAgT25Jbml0LFxuICAgIG91dHB1dCxcbiAgICBSZW5kZXJlcjIsXG4gICAgU2lnbmFsLFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFR5cGUsXG4gICAgVmlld0NvbnRhaW5lclJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1ldGEsIFRpdGxlIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBLY1Nhbml0aXplUGlwZSB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xpYi9waXBlcy9rYy1zYW5pdGl6ZSc7XG5pbXBvcnQgeyBVU0VfREVGQVVMVF9DU1MgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9saWIvdG9rZW5zL3VzZS1kZWZhdWx0LWNzcyc7XG5pbXBvcnQgeyBDb21wb25lbnRSZWZlcmVuY2UgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9jbGFzc2VzL2NvbXBvbmVudC1yZWZlcmVuY2UnO1xuaW1wb3J0IHsgS2NDbGFzc0RpcmVjdGl2ZSB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL2RpcmVjdGl2ZXMva2MtY2xhc3MnO1xuaW1wb3J0IHR5cGUgeyBJMThuIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vaTE4bic7XG5pbXBvcnQgeyBLY0NvbnRleHQgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9LY0NvbnRleHQnO1xuaW1wb3J0IHsgTG9naW5SZXNvdXJjZUluamVjdG9yU2VydmljZSB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL3NlcnZpY2VzL2xvZ2luLXJlc291cmNlLWluamVjdG9yJztcbmltcG9ydCB7IExPR0lOX0NMQVNTRVMgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi90b2tlbnMvY2xhc3Nlcyc7XG5pbXBvcnQgeyBMT0dJTl9JMThOIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vdG9rZW5zL2kxOG4nO1xuaW1wb3J0IHsgS0NfTE9HSU5fQ09OVEVYVCB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL3Rva2Vucy9rYy1jb250ZXh0JztcbmltcG9ydCB7IHR5cGUgQ2xhc3NLZXksIGdldEtjQ2xzeCB9IGZyb20gJ2tleWNsb2FraWZ5L2xvZ2luL2xpYi9rY0Nsc3gnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2tjLWR5bmFtaWMtcGFnZS1pbmplY3RvcicsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICB0ZW1wbGF0ZTogYGBcbn0pXG5leHBvcnQgY2xhc3MgRHluYW1pY1BhZ2VJbmplY3RvckNvbXBvbmVudCB7XG4gICAgcGFnZSA9IGlucHV0PFR5cGU8dW5rbm93bj4+KCk7XG4gICAgY29tcG9uZW50Q3JlYXRlZCA9IG91dHB1dDxvYmplY3Q+KCk7XG4gICAgI3ZjciA9IGluamVjdDxWaWV3Q29udGFpbmVyUmVmPihWaWV3Q29udGFpbmVyUmVmKTtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgZWZmZWN0KFxuICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHBhZ2UgPSB0aGlzLnBhZ2UoKTtcbiAgICAgICAgICAgICAgICBpZiAoIXBhZ2UpIHJldHVybjtcbiAgICAgICAgICAgICAgICBjb25zdCBjb21wUmVmID0gdGhpcy4jdmNyLmNyZWF0ZUNvbXBvbmVudChwYWdlKTtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbXBvbmVudENyZWF0ZWQuZW1pdChjb21wUmVmLmluc3RhbmNlIGFzIG9iamVjdCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgeyBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZSB9XG4gICAgICAgICk7XG4gICAgfVxufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2tjLXJvb3QnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi90ZW1wbGF0ZS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbQXN5bmNQaXBlLCBLY1Nhbml0aXplUGlwZSwgTmdUZW1wbGF0ZU91dGxldCwgS2NDbGFzc0RpcmVjdGl2ZSwgRHluYW1pY1BhZ2VJbmplY3RvckNvbXBvbmVudF0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IENvbXBvbmVudFJlZmVyZW5jZSxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFRlbXBsYXRlQ29tcG9uZW50KVxuICAgICAgICB9XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBUZW1wbGF0ZUNvbXBvbmVudCBleHRlbmRzIENvbXBvbmVudFJlZmVyZW5jZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgaTE4biA9IGluamVjdDxJMThuPihMT0dJTl9JMThOKTtcbiAgICByZW5kZXJlciA9IGluamVjdChSZW5kZXJlcjIpO1xuICAgICNjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuICAgIG1ldGEgPSBpbmplY3QoTWV0YSk7XG4gICAgdGl0bGUgPSBpbmplY3QoVGl0bGUpO1xuICAgIGtjQ29udGV4dCA9IGluamVjdDxLY0NvbnRleHQ+KEtDX0xPR0lOX0NPTlRFWFQpO1xuICAgIG92ZXJyaWRlIGRvVXNlRGVmYXVsdENzcyA9IGluamVjdDxib29sZWFuPihVU0VfREVGQVVMVF9DU1MpO1xuICAgIG92ZXJyaWRlIGNsYXNzZXMgPSBpbmplY3Q8UGFydGlhbDxSZWNvcmQ8Q2xhc3NLZXksIHN0cmluZz4+PihMT0dJTl9DTEFTU0VTKTtcbiAgICBsb2dpblJlc291cmNlSW5qZWN0b3JTZXJ2aWNlID0gaW5qZWN0KExvZ2luUmVzb3VyY2VJbmplY3RvclNlcnZpY2UpO1xuXG4gICAgZGlzcGxheUluZm8gPSBmYWxzZTtcbiAgICBkaXNwbGF5TWVzc2FnZSA9IHRydWU7XG4gICAgZGlzcGxheVJlcXVpcmVkRmllbGRzID0gZmFsc2U7XG4gICAgZG9jdW1lbnRUaXRsZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIGJvZHlDbGFzc05hbWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAgIGlzUmVhZHlUb1JlbmRlciQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG5cbiAgICBwYWdlID0gaW5wdXQ8VHlwZTx1bmtub3duPj4oKTtcbiAgICBoZWFkZXJOb2RlOiBTaWduYWw8VGVtcGxhdGVSZWY8SFRNTEVsZW1lbnQ+PiB8IHVuZGVmaW5lZDtcbiAgICBpbmZvTm9kZTogU2lnbmFsPFRlbXBsYXRlUmVmPEhUTUxFbGVtZW50Pj4gfCB1bmRlZmluZWQ7XG4gICAgc29jaWFsUHJvdmlkZXJzTm9kZTogU2lnbmFsPFRlbXBsYXRlUmVmPEhUTUxFbGVtZW50Pj4gfCB1bmRlZmluZWQ7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcblxuICAgICAgICB0aGlzLnRpdGxlLnNldFRpdGxlKHRoaXMuZG9jdW1lbnRUaXRsZSA/PyB0aGlzLmkxOG4ubXNnU3RyKCdsb2dpblRpdGxlJywgdGhpcy5rY0NvbnRleHQucmVhbG0uZGlzcGxheU5hbWUpKTtcbiAgICAgICAgdGhpcy5pc1JlYWR5VG9SZW5kZXIkID0gdGhpcy5sb2dpblJlc291cmNlSW5qZWN0b3JTZXJ2aWNlLmluamVjdFJlc291cmNlKHRoaXMuZG9Vc2VEZWZhdWx0Q3NzKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5hcHBseUtjSW5kZXhDbGFzc2VzKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhcHBseUtjSW5kZXhDbGFzc2VzKCkge1xuICAgICAgICBjb25zdCBrY0Nsc3ggPSBnZXRLY0Nsc3goe1xuICAgICAgICAgICAgZG9Vc2VEZWZhdWx0Q3NzOiB0aGlzLmRvVXNlRGVmYXVsdENzcyxcbiAgICAgICAgICAgIGNsYXNzZXM6IHRoaXMuY2xhc3Nlc1xuICAgICAgICB9KS5rY0Nsc3g7XG4gICAgICAgIGNvbnN0IGtjQm9keUNsYXNzID0gdGhpcy5ib2R5Q2xhc3NOYW1lID8/IGtjQ2xzeCgna2NCb2R5Q2xhc3MnKTtcbiAgICAgICAgY29uc3Qga2NIdG1sQ2xhc3MgPSBrY0Nsc3goJ2tjSHRtbENsYXNzJyk7XG4gICAgICAgIGNvbnN0IGtjQm9keUNsYXNzZXMgPSBrY0JvZHlDbGFzcy5zcGxpdCgvXFxzKy8pO1xuICAgICAgICBjb25zdCBrY0h0bWxDbGFzc2VzID0ga2NIdG1sQ2xhc3Muc3BsaXQoL1xccysvKTtcbiAgICAgICAga2NCb2R5Q2xhc3Nlcy5mb3JFYWNoKGtsYXNzID0+IHtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MoZG9jdW1lbnQuYm9keSwga2xhc3MpO1xuICAgICAgICB9KTtcbiAgICAgICAga2NIdG1sQ2xhc3Nlcy5mb3JFYWNoKGtsYXNzID0+IHtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LCBrbGFzcyk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHRyeUFub3RoZXJXYXkoKSB7XG4gICAgICAgIGRvY3VtZW50LmZvcm1zWydrYy1zZWxlY3QtdHJ5LWFub3RoZXItd2F5LWZvcm0nIGFzIG5ldmVyXS5zdWJtaXQoKTtcbiAgICB9XG5cbiAgICBvbkNvbXBvbmVudENyZWF0ZWQoY29tcFJlZjogb2JqZWN0KSB7XG4gICAgICAgIGlmICgnZGlzcGxheUluZm8nIGluIGNvbXBSZWYgJiYgY29tcFJlZi5kaXNwbGF5SW5mbykge1xuICAgICAgICAgICAgdGhpcy5kaXNwbGF5SW5mbyA9IGNvbXBSZWYuZGlzcGxheUluZm8gYXMgYm9vbGVhbjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoJ2Rpc3BsYXlNZXNzYWdlJyBpbiBjb21wUmVmICYmIGNvbXBSZWYuZGlzcGxheU1lc3NhZ2UpIHtcbiAgICAgICAgICAgIHRoaXMuZGlzcGxheU1lc3NhZ2UgPSBjb21wUmVmLmRpc3BsYXlNZXNzYWdlIGFzIGJvb2xlYW47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCdkaXNwbGF5UmVxdWlyZWRGaWVsZHMnIGluIGNvbXBSZWYgJiYgY29tcFJlZi5kaXNwbGF5UmVxdWlyZWRGaWVsZHMpIHtcbiAgICAgICAgICAgIHRoaXMuZGlzcGxheVJlcXVpcmVkRmllbGRzID0gY29tcFJlZi5kaXNwbGF5UmVxdWlyZWRGaWVsZHMgYXMgYm9vbGVhbjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoJ2RvY3VtZW50VGl0bGUnIGluIGNvbXBSZWYgJiYgY29tcFJlZi5kb2N1bWVudFRpdGxlKSB7XG4gICAgICAgICAgICB0aGlzLmRvY3VtZW50VGl0bGUgPSBjb21wUmVmLmRvY3VtZW50VGl0bGUgYXMgc3RyaW5nO1xuICAgICAgICB9XG4gICAgICAgIGlmICgnYm9keUNsYXNzTmFtZScgaW4gY29tcFJlZiAmJiBjb21wUmVmLmJvZHlDbGFzc05hbWUpIHtcbiAgICAgICAgICAgIHRoaXMuYm9keUNsYXNzTmFtZSA9IGNvbXBSZWYuYm9keUNsYXNzTmFtZSBhcyBzdHJpbmc7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCdoZWFkZXJOb2RlJyBpbiBjb21wUmVmICYmIGNvbXBSZWYuaGVhZGVyTm9kZSkge1xuICAgICAgICAgICAgdGhpcy5oZWFkZXJOb2RlID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGhlYWRlck5vZGUgPSAoY29tcFJlZi5oZWFkZXJOb2RlIGFzIFNpZ25hbDxUZW1wbGF0ZVJlZjxIVE1MRWxlbWVudD4+KSgpO1xuICAgICAgICAgICAgICAgIHJldHVybiBoZWFkZXJOb2RlO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCdpbmZvTm9kZScgaW4gY29tcFJlZiAmJiBjb21wUmVmLmluZm9Ob2RlKSB7XG4gICAgICAgICAgICB0aGlzLmluZm9Ob2RlID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGluZm9Ob2RlID0gKGNvbXBSZWYuaW5mb05vZGUgYXMgU2lnbmFsPFRlbXBsYXRlUmVmPEhUTUxFbGVtZW50Pj4pKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGluZm9Ob2RlO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCdzb2NpYWxQcm92aWRlcnNOb2RlJyBpbiBjb21wUmVmICYmIGNvbXBSZWYuc29jaWFsUHJvdmlkZXJzTm9kZSkge1xuICAgICAgICAgICAgdGhpcy5zb2NpYWxQcm92aWRlcnNOb2RlID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHNvY2lhbFByb3ZpZGVyc05vZGUgPSAoY29tcFJlZi5zb2NpYWxQcm92aWRlcnNOb2RlIGFzIFNpZ25hbDxUZW1wbGF0ZVJlZjxIVE1MRWxlbWVudD4+KSgpO1xuICAgICAgICAgICAgICAgIHJldHVybiBzb2NpYWxQcm92aWRlcnNOb2RlO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy4jY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cbn1cbiIsIkBsZXQgcmVhbG0gPSBrY0NvbnRleHQucmVhbG07XG5AbGV0IG1lc3NhZ2UgPSBrY0NvbnRleHQubWVzc2FnZTtcbkBsZXQgYXV0aCA9IGtjQ29udGV4dC5hdXRoO1xuQGxldCBpc0FwcEluaXRpYXRlZEFjdGlvbiA9IGtjQ29udGV4dC5pc0FwcEluaXRpYXRlZEFjdGlvbjtcbkBsZXQgdXJsID0ga2NDb250ZXh0LnVybDtcbkBsZXQgaXNSZWFkeVRvUmVuZGVyID0gaXNSZWFkeVRvUmVuZGVyJCB8IGFzeW5jO1xuXG5AaWYgKGlzUmVhZHlUb1JlbmRlcikge1xuICAgIDxkaXYgW2tjQ2xhc3NdPVwiJ2tjTG9naW5DbGFzcydcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgaWQ9XCJrYy1oZWFkZXJcIlxuICAgICAgICAgICAgW2tjQ2xhc3NdPVwiJ2tjSGVhZGVyQ2xhc3MnXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGlkPVwia2MtaGVhZGVyLXdyYXBwZXJcIlxuICAgICAgICAgICAgICAgIFtrY0NsYXNzXT1cIidrY0hlYWRlcldyYXBwZXJDbGFzcydcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxkaXYgW2lubmVySFRNTF09XCJyZWFsbT8uZGlzcGxheU5hbWVIdG1sID8/ICcnIHwga2NTYW5pdGl6ZTogJ2h0bWwnXCI+PC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBba2NDbGFzc109XCIna2NGb3JtQ2FyZENsYXNzJ1wiPlxuICAgICAgICAgICAgPGhlYWRlciBba2NDbGFzc109XCIna2NGb3JtSGVhZGVyQ2xhc3MnXCI+XG4gICAgICAgICAgICAgICAgPCEtLSBMb2NhbGUgc3dpdGNoZXIgLS0+XG4gICAgICAgICAgICAgICAgQGlmIChpMThuLmVuYWJsZWRMYW5ndWFnZXMubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImtjLWxvY2FsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBba2NDbGFzc109XCIna2NMb2NhbGVNYWluQ2xhc3MnXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwia2MtbG9jYWxlLXdyYXBwZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtrY0NsYXNzXT1cIidrY0xvY2FsZVdyYXBwZXJDbGFzcydcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJrYy1sb2NhbGUtZHJvcGRvd25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1lbnUtYnV0dG9uLWxpbmtzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2tjQ2xhc3NdPVwiJ2tjTG9jYWxlRHJvcERvd25DbGFzcydcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFiaW5kZXg9XCIxXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwia2MtY3VycmVudC1sb2NhbGUtbGlua1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWhhc3BvcHVwPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWV4cGFuZGVkPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1jb250cm9scz1cImxhbmd1YWdlLXN3aXRjaDFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJpMThuLm1zZ1N0cignbGFuZ3VhZ2VzJylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpMThuLmN1cnJlbnRMYW5ndWFnZS5sYWJlbCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb2xlPVwibWVudVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJpbmRleD1cIi0xXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWxsZWRieT1cImtjLWN1cnJlbnQtbG9jYWxlLWxpbmtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1hY3RpdmVkZXNjZW5kYW50PVwiXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwibGFuZ3VhZ2Utc3dpdGNoMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBba2NDbGFzc109XCIna2NMb2NhbGVMaXN0Q2xhc3MnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGZvciAoZW50cnkgb2YgaTE4bi5lbmFibGVkTGFuZ3VhZ2VzOyB0cmFjayBlbnRyeTsgbGV0IGlkeCA9ICRpbmRleCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb2xlPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtrY0NsYXNzXT1cIidrY0xvY2FsZUxpc3RJdGVtQ2xhc3MnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb2xlPVwibWVudWl0ZW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFiaW5kZXg9XCItMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaHJlZl09XCJlbnRyeS5ocmVmXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtrY0NsYXNzXT1cIidrY0xvY2FsZUl0ZW1DbGFzcydcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lkXT1cIidsYW5ndWFnZS0nICsgaWR4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgZW50cnkubGFiZWwgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgPCEtLSBIZWFkZXIgY29udGVudCAtLT5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI25vZGU+XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoYXV0aCAmJiAhYXV0aC5zaG93VXNlcm5hbWUgJiYgIWF1dGguc2hvd1Jlc2V0Q3JlZGVudGlhbHMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxoMSBpZD1cImtjLXBhZ2UtdGl0bGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAbGV0IGhlYWRlciA9IGhlYWRlck5vZGUgJiYgaGVhZGVyTm9kZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoaGVhZGVyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiaGVhZGVyXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2gxPlxuICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cImtjLXVzZXJuYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBba2NDbGFzc109XCIna2NGb3JtR3JvdXBDbGFzcydcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBpZD1cImtjLWF0dGVtcHRlZC11c2VybmFtZVwiPnt7IGF1dGg/LmF0dGVtcHRlZFVzZXJuYW1lIH19PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cInJlc2V0LWxvZ2luXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2hyZWZdPVwidXJsPy5sb2dpblJlc3RhcnRGbG93VXJsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJpMThuLm1zZ1N0cigncmVzdGFydExvZ2luVG9vbHRpcCcpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJrYy1sb2dpbi10b29sdGlwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBba2NDbGFzc109XCIna2NSZXNldEZsb3dJY29uJ1wiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwia2MtdG9vbHRpcC10ZXh0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaTE4bi5tc2dTdHIoJ3Jlc3RhcnRMb2dpblRvb2x0aXAnKSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICAgICAgICAgICAgICBAaWYgKGRpc3BsYXlSZXF1aXJlZEZpZWxkcykge1xuICAgICAgICAgICAgICAgICAgICA8ZGl2IFtrY0NsYXNzXT1cIidrY0NvbnRlbnRXcmFwcGVyQ2xhc3MnXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzdWJ0aXRsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2tjQ2xhc3NdPVwiJ2tjTGFiZWxXcmFwcGVyQ2xhc3MnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN1YnRpdGxlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicmVxdWlyZWRcIj4qPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpMThuLm1zZ1N0cigncmVxdWlyZWRGaWVsZHMnKSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwibm9kZVwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwibm9kZVwiIC8+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9oZWFkZXI+XG5cbiAgICAgICAgICAgIDxkaXYgaWQ9XCJrYy1jb250ZW50XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBpZD1cImtjLWNvbnRlbnQtd3JhcHBlclwiPlxuICAgICAgICAgICAgICAgICAgICA8IS0tIE1lc3NhZ2UgZGlzcGxheSAtLT5cbiAgICAgICAgICAgICAgICAgICAgQGlmIChkaXNwbGF5TWVzc2FnZSAmJiBtZXNzYWdlICYmIChtZXNzYWdlLnR5cGUgIT09ICd3YXJuaW5nJyB8fCAhaXNBcHBJbml0aWF0ZWRBY3Rpb24pKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2tjQ2xhc3NdPVwiJ2tjQWxlcnRDbGFzcydcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIm1lc3NhZ2UudHlwZSA9PT0gJ2Vycm9yJyA/ICdwZi1tLWRhbmdlcicgOiAncGYtbS0nICsgbWVzc2FnZS50eXBlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3NdPVwiJ2FsZXJ0LScgKyBtZXNzYWdlLnR5cGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwZi1jLWFsZXJ0X19pY29uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBzd2l0Y2ggKG1lc3NhZ2UudHlwZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGNhc2UgKCdzdWNjZXNzJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIFtrY0NsYXNzXT1cIidrY0ZlZWRiYWNrU3VjY2Vzc0ljb24nXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGNhc2UgKCd3YXJuaW5nJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIFtrY0NsYXNzXT1cIidrY0ZlZWRiYWNrV2FybmluZ0ljb24nXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGNhc2UgKCdpbmZvJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIFtrY0NsYXNzXT1cIidrY0ZlZWRiYWNrSW5mb0ljb24nXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGNhc2UgKCdlcnJvcicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBba2NDbGFzc109XCIna2NGZWVkYmFja0Vycm9ySWNvbidcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBba2NDbGFzc109XCIna2NBbGVydFRpdGxlQ2xhc3MnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJtZXNzYWdlLnN1bW1hcnkgfCBrY1Nhbml0aXplOiAnaHRtbCdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8IS0tIENvbnRlbnQgLS0+XG4gICAgICAgICAgICAgICAgICAgIEBsZXQgcGFnZVJlZiA9IHBhZ2UoKTtcbiAgICAgICAgICAgICAgICAgICAgQGlmICghIXBhZ2VSZWYpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxrYy1keW5hbWljLXBhZ2UtaW5qZWN0b3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcGFnZV09XCJwYWdlUmVmXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29tcG9uZW50Q3JlYXRlZCk9XCJvbkNvbXBvbmVudENyZWF0ZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoISFhdXRoICYmIGF1dGg/LnNob3dUcnlBbm90aGVyV2F5TGluaykge1xuICAgICAgICAgICAgICAgICAgICAgICAgPGZvcm1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cImtjLXNlbGVjdC10cnktYW5vdGhlci13YXktZm9ybVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kPVwicG9zdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FjdGlvbl09XCJ1cmw/LmxvZ2luQWN0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IFtrY0NsYXNzXT1cIidrY0Zvcm1Hcm91cENsYXNzJ1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IFtrY0NsYXNzXT1cIidrY0Zvcm1Hcm91cENsYXNzJ1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImhpZGRlblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cInRyeUFub3RoZXJXYXlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPVwib25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJ0cnktYW5vdGhlci13YXlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJ0cnlBbm90aGVyV2F5KClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGkxOG4ubXNnU3RyKCdkb1RyeUFub3RoZXJXYXknKSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZm9ybT5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBAbGV0IHNvY2lhbFByb3ZpZGVycyA9IHNvY2lhbFByb3ZpZGVyc05vZGUgJiYgc29jaWFsUHJvdmlkZXJzTm9kZSgpO1xuICAgICAgICAgICAgICAgICAgICBAaWYgKHNvY2lhbFByb3ZpZGVycykge1xuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJzb2NpYWxQcm92aWRlcnNcIiAvPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDwhLS0gSW5mbyBkaXNwbGF5IC0tPlxuICAgICAgICAgICAgICAgICAgICBAaWYgKGRpc3BsYXlJbmZvKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJrYy1pbmZvXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBba2NDbGFzc109XCIna2NTaWduVXBDbGFzcydcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJrYy1pbmZvLXdyYXBwZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBba2NDbGFzc109XCIna2NJbmZvQXJlYVdyYXBwZXJDbGFzcydcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGxldCBpbmZvID0gaW5mb05vZGUgJiYgaW5mb05vZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChpbmZvKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImluZm9cIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxufVxuIl19
|
|
140
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xvZ2luL2NvbnRhaW5lcnMvdGVtcGxhdGUvdGVtcGxhdGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vc3JjL2xvZ2luL2NvbnRhaW5lcnMvdGVtcGxhdGUvdGVtcGxhdGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlELE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxRQUFRLEVBQ1IsTUFBTSxFQUNOLFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEVBSVQsZ0JBQWdCLEVBQ25CLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUNsRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUM1RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUdsRixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSw2REFBNkQsQ0FBQztBQUMzRyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDMUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ2hGLE9BQU8sRUFBaUIsU0FBUyxFQUFFLE1BQU0sOEJBQThCLENBQUM7O0FBUXhFLE1BQU0s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QUFDLENBQUM7UUFDUCxDQUFDO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUM3QixDQUFDOzhHQTVGUSxpQkFBaUI7a0dBQWpCLGlCQUFpQiwrVkFQZjtZQUNQO2dCQUNJLE9BQU8sRUFBRSxrQkFBa0I7Z0JBQzNCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsaUJBQWlCLENBQUM7YUFDbkQ7U0FDSixpREN0RUwsb3VVQTBOQSx1Q0QzSmMsU0FBUyx5Q0FBRSxjQUFjLG1EQUFFLGdCQUFnQixvSkFBRSxnQkFBZ0IsK0ZBMUI5RCw0QkFBNEI7OzJGQW1DNUIsaUJBQWlCO2tCQWI3QixTQUFTOytCQUNJLFNBQVMsY0FFUCxJQUFJLFdBQ1AsQ0FBQyxTQUFTLEVBQUUsY0FBYyxFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLDRCQUE0QixDQUFDLG1CQUNyRix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSxrQkFBa0I7NEJBQzNCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLGtCQUFrQixDQUFDO3lCQUNuRDtxQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFzeW5jUGlwZSwgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBjb21wdXRlZCxcbiAgICBlZmZlY3QsXG4gICAgZm9yd2FyZFJlZixcbiAgICBpbmplY3QsXG4gICAgaW5wdXQsXG4gICAgT25Jbml0LFxuICAgIG91dHB1dCxcbiAgICBSZW5kZXJlcjIsXG4gICAgU2lnbmFsLFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFR5cGUsXG4gICAgVmlld0NvbnRhaW5lclJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1ldGEsIFRpdGxlIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBLY1Nhbml0aXplUGlwZSB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xpYi9waXBlcy9rYy1zYW5pdGl6ZSc7XG5pbXBvcnQgeyBVU0VfREVGQVVMVF9DU1MgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9saWIvdG9rZW5zL3VzZS1kZWZhdWx0LWNzcyc7XG5pbXBvcnQgeyBDb21wb25lbnRSZWZlcmVuY2UgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9jbGFzc2VzL2NvbXBvbmVudC1yZWZlcmVuY2UnO1xuaW1wb3J0IHsgS2NDbGFzc0RpcmVjdGl2ZSB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL2RpcmVjdGl2ZXMva2MtY2xhc3MnO1xuaW1wb3J0IHR5cGUgeyBJMThuIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vaTE4bic7XG5pbXBvcnQgeyBLY0NvbnRleHQgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9LY0NvbnRleHQnO1xuaW1wb3J0IHsgTG9naW5SZXNvdXJjZUluamVjdG9yU2VydmljZSB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL3NlcnZpY2VzL2xvZ2luLXJlc291cmNlLWluamVjdG9yJztcbmltcG9ydCB7IExPR0lOX0NMQVNTRVMgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi90b2tlbnMvY2xhc3Nlcyc7XG5pbXBvcnQgeyBMT0dJTl9JMThOIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vdG9rZW5zL2kxOG4nO1xuaW1wb3J0IHsgS0NfTE9HSU5fQ09OVEVYVCB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL3Rva2Vucy9rYy1jb250ZXh0JztcbmltcG9ydCB7IHR5cGUgQ2xhc3NLZXksIGdldEtjQ2xzeCB9IGZyb20gJ2tleWNsb2FraWZ5L2xvZ2luL2xpYi9rY0Nsc3gnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2tjLWR5bmFtaWMtcGFnZS1pbmplY3RvcicsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICB0ZW1wbGF0ZTogYGBcbn0pXG5leHBvcnQgY2xhc3MgRHluYW1pY1BhZ2VJbmplY3RvckNvbXBvbmVudCB7XG4gICAgcGFnZSA9IGlucHV0PFR5cGU8dW5rbm93bj4+KCk7XG4gICAgdXNlclByb2ZpbGVGb3JtRmllbGRzID0gaW5wdXQ8VHlwZTx1bmtub3duPj4oKTtcbiAgICBjb21wb25lbnRDcmVhdGVkID0gb3V0cHV0PG9iamVjdD4oKTtcbiAgICAjdmNyID0gaW5qZWN0PFZpZXdDb250YWluZXJSZWY+KFZpZXdDb250YWluZXJSZWYpO1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBlZmZlY3QoXG4gICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgcGFnZSA9IHRoaXMucGFnZSgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHVzZXJQcm9maWxlRm9ybUZpZWxkcyA9IHRoaXMudXNlclByb2ZpbGVGb3JtRmllbGRzKCk7XG4gICAgICAgICAgICAgICAgaWYgKCFwYWdlKSByZXR1cm47XG4gICAgICAgICAgICAgICAgY29uc3QgY29tcFJlZiA9IHRoaXMuI3Zjci5jcmVhdGVDb21wb25lbnQocGFnZSk7XG4gICAgICAgICAgICAgICAgaWYgKCd1c2VyUHJvZmlsZUZvcm1GaWVsZHMnIGluIChjb21wUmVmLmluc3RhbmNlIGFzIG9iamVjdCkgJiYgdXNlclByb2ZpbGVGb3JtRmllbGRzKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbXBSZWYuc2V0SW5wdXQoJ3VzZXJQcm9maWxlRm9ybUZpZWxkcycsIHVzZXJQcm9maWxlRm9ybUZpZWxkcyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuY29tcG9uZW50Q3JlYXRlZC5lbWl0KGNvbXBSZWYuaW5zdGFuY2UgYXMgb2JqZWN0KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH1cbiAgICAgICAgKTtcbiAgICB9XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAna2Mtcm9vdCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3RlbXBsYXRlLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtBc3luY1BpcGUsIEtjU2FuaXRpemVQaXBlLCBOZ1RlbXBsYXRlT3V0bGV0LCBLY0NsYXNzRGlyZWN0aXZlLCBEeW5hbWljUGFnZUluamVjdG9yQ29tcG9uZW50XSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogQ29tcG9uZW50UmVmZXJlbmNlLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVGVtcGxhdGVDb21wb25lbnQpXG4gICAgICAgIH1cbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIFRlbXBsYXRlQ29tcG9uZW50IGV4dGVuZHMgQ29tcG9uZW50UmVmZXJlbmNlIGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBpMThuID0gaW5qZWN0PEkxOG4+KExPR0lOX0kxOE4pO1xuICAgIHJlbmRlcmVyID0gaW5qZWN0KFJlbmRlcmVyMik7XG4gICAgI2NkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gICAgbWV0YSA9IGluamVjdChNZXRhKTtcbiAgICB0aXRsZSA9IGluamVjdChUaXRsZSk7XG4gICAga2NDb250ZXh0ID0gaW5qZWN0PEtjQ29udGV4dD4oS0NfTE9HSU5fQ09OVEVYVCk7XG4gICAgb3ZlcnJpZGUgZG9Vc2VEZWZhdWx0Q3NzID0gaW5qZWN0PGJvb2xlYW4+KFVTRV9ERUZBVUxUX0NTUyk7XG4gICAgb3ZlcnJpZGUgY2xhc3NlcyA9IGluamVjdDxQYXJ0aWFsPFJlY29yZDxDbGFzc0tleSwgc3RyaW5nPj4+KExPR0lOX0NMQVNTRVMpO1xuICAgIGxvZ2luUmVzb3VyY2VJbmplY3RvclNlcnZpY2UgPSBpbmplY3QoTG9naW5SZXNvdXJjZUluamVjdG9yU2VydmljZSk7XG5cbiAgICBkaXNwbGF5SW5mbyA9IGZhbHNlO1xuICAgIGRpc3BsYXlNZXNzYWdlID0gdHJ1ZTtcbiAgICBkaXNwbGF5UmVxdWlyZWRGaWVsZHMgPSBmYWxzZTtcbiAgICBkb2N1bWVudFRpdGxlOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgYm9keUNsYXNzTmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gICAgaXNSZWFkeVRvUmVuZGVyJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcblxuICAgIHBhZ2UgPSBpbnB1dDxUeXBlPHVua25vd24+PigpO1xuICAgIHVzZXJQcm9maWxlRm9ybUZpZWxkcyA9IGlucHV0PFR5cGU8dW5rbm93bj4+KCk7XG4gICAgaGVhZGVyTm9kZTogU2lnbmFsPFRlbXBsYXRlUmVmPEhUTUxFbGVtZW50Pj4gfCB1bmRlZmluZWQ7XG4gICAgaW5mb05vZGU6IFNpZ25hbDxUZW1wbGF0ZVJlZjxIVE1MRWxlbWVudD4+IHwgdW5kZWZpbmVkO1xuICAgIHNvY2lhbFByb3ZpZGVyc05vZGU6IFNpZ25hbDxUZW1wbGF0ZVJlZjxIVE1MRWxlbWVudD4+IHwgdW5kZWZpbmVkO1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG5cbiAgICAgICAgdGhpcy50aXRsZS5zZXRUaXRsZSh0aGlzLmRvY3VtZW50VGl0bGUgPz8gdGhpcy5pMThuLm1zZ1N0cignbG9naW5UaXRsZScsIHRoaXMua2NDb250ZXh0LnJlYWxtLmRpc3BsYXlOYW1lKSk7XG4gICAgICAgIHRoaXMuaXNSZWFkeVRvUmVuZGVyJCA9IHRoaXMubG9naW5SZXNvdXJjZUluamVjdG9yU2VydmljZS5pbmplY3RSZXNvdXJjZSh0aGlzLmRvVXNlRGVmYXVsdENzcyk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuYXBwbHlLY0luZGV4Q2xhc3NlcygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgYXBwbHlLY0luZGV4Q2xhc3NlcygpIHtcbiAgICAgICAgY29uc3Qga2NDbHN4ID0gZ2V0S2NDbHN4KHtcbiAgICAgICAgICAgIGRvVXNlRGVmYXVsdENzczogdGhpcy5kb1VzZURlZmF1bHRDc3MsXG4gICAgICAgICAgICBjbGFzc2VzOiB0aGlzLmNsYXNzZXNcbiAgICAgICAgfSkua2NDbHN4O1xuICAgICAgICBjb25zdCBrY0JvZHlDbGFzcyA9IHRoaXMuYm9keUNsYXNzTmFtZSA/PyBrY0Nsc3goJ2tjQm9keUNsYXNzJyk7XG4gICAgICAgIGNvbnN0IGtjSHRtbENsYXNzID0ga2NDbHN4KCdrY0h0bWxDbGFzcycpO1xuICAgICAgICBjb25zdCBrY0JvZHlDbGFzc2VzID0ga2NCb2R5Q2xhc3Muc3BsaXQoL1xccysvKTtcbiAgICAgICAgY29uc3Qga2NIdG1sQ2xhc3NlcyA9IGtjSHRtbENsYXNzLnNwbGl0KC9cXHMrLyk7XG4gICAgICAgIGtjQm9keUNsYXNzZXMuZm9yRWFjaChrbGFzcyA9PiB7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKGRvY3VtZW50LmJvZHksIGtsYXNzKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGtjSHRtbENsYXNzZXMuZm9yRWFjaChrbGFzcyA9PiB7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCwga2xhc3MpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICB0cnlBbm90aGVyV2F5KCkge1xuICAgICAgICBkb2N1bWVudC5mb3Jtc1sna2Mtc2VsZWN0LXRyeS1hbm90aGVyLXdheS1mb3JtJyBhcyBuZXZlcl0uc3VibWl0KCk7XG4gICAgfVxuXG4gICAgb25Db21wb25lbnRDcmVhdGVkKGNvbXBSZWY6IG9iamVjdCkge1xuICAgICAgICBpZiAoJ2Rpc3BsYXlJbmZvJyBpbiBjb21wUmVmICYmIGNvbXBSZWYuZGlzcGxheUluZm8pIHtcbiAgICAgICAgICAgIHRoaXMuZGlzcGxheUluZm8gPSBjb21wUmVmLmRpc3BsYXlJbmZvIGFzIGJvb2xlYW47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCdkaXNwbGF5TWVzc2FnZScgaW4gY29tcFJlZiAmJiBjb21wUmVmLmRpc3BsYXlNZXNzYWdlKSB7XG4gICAgICAgICAgICB0aGlzLmRpc3BsYXlNZXNzYWdlID0gY29tcFJlZi5kaXNwbGF5TWVzc2FnZSBhcyBib29sZWFuO1xuICAgICAgICB9XG4gICAgICAgIGlmICgnZGlzcGxheVJlcXVpcmVkRmllbGRzJyBpbiBjb21wUmVmICYmIGNvbXBSZWYuZGlzcGxheVJlcXVpcmVkRmllbGRzKSB7XG4gICAgICAgICAgICB0aGlzLmRpc3BsYXlSZXF1aXJlZEZpZWxkcyA9IGNvbXBSZWYuZGlzcGxheVJlcXVpcmVkRmllbGRzIGFzIGJvb2xlYW47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCdkb2N1bWVudFRpdGxlJyBpbiBjb21wUmVmICYmIGNvbXBSZWYuZG9jdW1lbnRUaXRsZSkge1xuICAgICAgICAgICAgdGhpcy5kb2N1bWVudFRpdGxlID0gY29tcFJlZi5kb2N1bWVudFRpdGxlIGFzIHN0cmluZztcbiAgICAgICAgfVxuICAgICAgICBpZiAoJ2JvZHlDbGFzc05hbWUnIGluIGNvbXBSZWYgJiYgY29tcFJlZi5ib2R5Q2xhc3NOYW1lKSB7XG4gICAgICAgICAgICB0aGlzLmJvZHlDbGFzc05hbWUgPSBjb21wUmVmLmJvZHlDbGFzc05hbWUgYXMgc3RyaW5nO1xuICAgICAgICB9XG4gICAgICAgIGlmICgnaGVhZGVyTm9kZScgaW4gY29tcFJlZiAmJiBjb21wUmVmLmhlYWRlck5vZGUpIHtcbiAgICAgICAgICAgIHRoaXMuaGVhZGVyTm9kZSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBoZWFkZXJOb2RlID0gKGNvbXBSZWYuaGVhZGVyTm9kZSBhcyBTaWduYWw8VGVtcGxhdGVSZWY8SFRNTEVsZW1lbnQ+PikoKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gaGVhZGVyTm9kZTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGlmICgnaW5mb05vZGUnIGluIGNvbXBSZWYgJiYgY29tcFJlZi5pbmZvTm9kZSkge1xuICAgICAgICAgICAgdGhpcy5pbmZvTm9kZSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBpbmZvTm9kZSA9IChjb21wUmVmLmluZm9Ob2RlIGFzIFNpZ25hbDxUZW1wbGF0ZVJlZjxIVE1MRWxlbWVudD4+KSgpO1xuICAgICAgICAgICAgICAgIHJldHVybiBpbmZvTm9kZTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGlmICgnc29jaWFsUHJvdmlkZXJzTm9kZScgaW4gY29tcFJlZiAmJiBjb21wUmVmLnNvY2lhbFByb3ZpZGVyc05vZGUpIHtcbiAgICAgICAgICAgIHRoaXMuc29jaWFsUHJvdmlkZXJzTm9kZSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBzb2NpYWxQcm92aWRlcnNOb2RlID0gKGNvbXBSZWYuc29jaWFsUHJvdmlkZXJzTm9kZSBhcyBTaWduYWw8VGVtcGxhdGVSZWY8SFRNTEVsZW1lbnQ+PikoKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gc29jaWFsUHJvdmlkZXJzTm9kZTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuI2Nkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG59XG4iLCJAbGV0IHJlYWxtID0ga2NDb250ZXh0LnJlYWxtO1xuQGxldCBtZXNzYWdlID0ga2NDb250ZXh0Lm1lc3NhZ2U7XG5AbGV0IGF1dGggPSBrY0NvbnRleHQuYXV0aDtcbkBsZXQgaXNBcHBJbml0aWF0ZWRBY3Rpb24gPSBrY0NvbnRleHQuaXNBcHBJbml0aWF0ZWRBY3Rpb247XG5AbGV0IHVybCA9IGtjQ29udGV4dC51cmw7XG5AbGV0IGlzUmVhZHlUb1JlbmRlciA9IGlzUmVhZHlUb1JlbmRlciQgfCBhc3luYztcblxuQGlmIChpc1JlYWR5VG9SZW5kZXIpIHtcbiAgICA8ZGl2IFtrY0NsYXNzXT1cIidrY0xvZ2luQ2xhc3MnXCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgIGlkPVwia2MtaGVhZGVyXCJcbiAgICAgICAgICAgIFtrY0NsYXNzXT1cIidrY0hlYWRlckNsYXNzJ1wiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBpZD1cImtjLWhlYWRlci13cmFwcGVyXCJcbiAgICAgICAgICAgICAgICBba2NDbGFzc109XCIna2NIZWFkZXJXcmFwcGVyQ2xhc3MnXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8ZGl2IFtpbm5lckhUTUxdPVwicmVhbG0/LmRpc3BsYXlOYW1lSHRtbCA/PyAnJyB8IGtjU2FuaXRpemU6ICdodG1sJ1wiPjwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgW2tjQ2xhc3NdPVwiJ2tjRm9ybUNhcmRDbGFzcydcIj5cbiAgICAgICAgICAgIDxoZWFkZXIgW2tjQ2xhc3NdPVwiJ2tjRm9ybUhlYWRlckNsYXNzJ1wiPlxuICAgICAgICAgICAgICAgIDwhLS0gTG9jYWxlIHN3aXRjaGVyIC0tPlxuICAgICAgICAgICAgICAgIEBpZiAoaTE4bi5lbmFibGVkTGFuZ3VhZ2VzLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJrYy1sb2NhbGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2tjQ2xhc3NdPVwiJ2tjTG9jYWxlTWFpbkNsYXNzJ1wiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cImtjLWxvY2FsZS13cmFwcGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBba2NDbGFzc109XCIna2NMb2NhbGVXcmFwcGVyQ2xhc3MnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwia2MtbG9jYWxlLWRyb3Bkb3duXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtZW51LWJ1dHRvbi1saW5rc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtrY0NsYXNzXT1cIidrY0xvY2FsZURyb3BEb3duQ2xhc3MnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYmluZGV4PVwiMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cImtjLWN1cnJlbnQtbG9jYWxlLWxpbmtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1oYXNwb3B1cD1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1leHBhbmRlZD1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtY29udHJvbHM9XCJsYW5ndWFnZS1zd2l0Y2gxXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiaTE4bi5tc2dTdHIoJ2xhbmd1YWdlcycpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaTE4bi5jdXJyZW50TGFuZ3VhZ2UubGFiZWwgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cIm1lbnVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFiaW5kZXg9XCItMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsbGVkYnk9XCJrYy1jdXJyZW50LWxvY2FsZS1saW5rXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtYWN0aXZlZGVzY2VuZGFudD1cIlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cImxhbmd1YWdlLXN3aXRjaDFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2tjQ2xhc3NdPVwiJ2tjTG9jYWxlTGlzdENsYXNzJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBmb3IgKGVudHJ5IG9mIGkxOG4uZW5hYmxlZExhbmd1YWdlczsgdHJhY2sgZW50cnk7IGxldCBpZHggPSAkaW5kZXgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBba2NDbGFzc109XCIna2NMb2NhbGVMaXN0SXRlbUNsYXNzJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cIm1lbnVpdGVtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2hyZWZdPVwiZW50cnkuaHJlZlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBba2NDbGFzc109XCIna2NMb2NhbGVJdGVtQ2xhc3MnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpZF09XCInbGFuZ3VhZ2UtJyArIGlkeFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGVudHJ5LmxhYmVsIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIDwhLS0gSGVhZGVyIGNvbnRlbnQgLS0+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNub2RlPlxuICAgICAgICAgICAgICAgICAgICBAaWYgKGF1dGggJiYgIWF1dGguc2hvd1VzZXJuYW1lICYmICFhdXRoLnNob3dSZXNldENyZWRlbnRpYWxzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8aDEgaWQ9XCJrYy1wYWdlLXRpdGxlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGxldCBoZWFkZXIgPSBoZWFkZXJOb2RlICYmIGhlYWRlck5vZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGhlYWRlcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImhlYWRlclwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9oMT5cbiAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJrYy11c2VybmFtZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2tjQ2xhc3NdPVwiJ2tjRm9ybUdyb3VwQ2xhc3MnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgaWQ9XCJrYy1hdHRlbXB0ZWQtdXNlcm5hbWVcIj57eyBhdXRoPy5hdHRlbXB0ZWRVc2VybmFtZSB9fTwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJyZXNldC1sb2dpblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtocmVmXT1cInVybD8ubG9naW5SZXN0YXJ0Rmxvd1VybFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiaTE4bi5tc2dTdHIoJ3Jlc3RhcnRMb2dpblRvb2x0aXAnKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwia2MtbG9naW4tdG9vbHRpcFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgW2tjQ2xhc3NdPVwiJ2tjUmVzZXRGbG93SWNvbidcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImtjLXRvb2x0aXAtdGV4dFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGkxOG4ubXNnU3RyKCdyZXN0YXJ0TG9naW5Ub29sdGlwJykgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICAgICAgICAgICAgQGlmIChkaXNwbGF5UmVxdWlyZWRGaWVsZHMpIHtcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBba2NDbGFzc109XCIna2NDb250ZW50V3JhcHBlckNsYXNzJ1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic3VidGl0bGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtrY0NsYXNzXT1cIidrY0xhYmVsV3JhcHBlckNsYXNzJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdWJ0aXRsZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInJlcXVpcmVkXCI+Kjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaTE4bi5tc2dTdHIoJ3JlcXVpcmVkRmllbGRzJykgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIm5vZGVcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIm5vZGVcIiAvPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvaGVhZGVyPlxuXG4gICAgICAgICAgICA8ZGl2IGlkPVwia2MtY29udGVudFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJrYy1jb250ZW50LXdyYXBwZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPCEtLSBNZXNzYWdlIGRpc3BsYXkgLS0+XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoZGlzcGxheU1lc3NhZ2UgJiYgbWVzc2FnZSAmJiAobWVzc2FnZS50eXBlICE9PSAnd2FybmluZycgfHwgIWlzQXBwSW5pdGlhdGVkQWN0aW9uKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtrY0NsYXNzXT1cIidrY0FsZXJ0Q2xhc3MnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJtZXNzYWdlLnR5cGUgPT09ICdlcnJvcicgPyAncGYtbS1kYW5nZXInIDogJ3BmLW0tJyArIG1lc3NhZ2UudHlwZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzXT1cIidhbGVydC0nICsgbWVzc2FnZS50eXBlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGYtYy1hbGVydF9faWNvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAc3dpdGNoIChtZXNzYWdlLnR5cGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBjYXNlICgnc3VjY2VzcycpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBba2NDbGFzc109XCIna2NGZWVkYmFja1N1Y2Nlc3NJY29uJ1wiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBjYXNlICgnd2FybmluZycpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBba2NDbGFzc109XCIna2NGZWVkYmFja1dhcm5pbmdJY29uJ1wiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBjYXNlICgnaW5mbycpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBba2NDbGFzc109XCIna2NGZWVkYmFja0luZm9JY29uJ1wiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBjYXNlICgnZXJyb3InKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gW2tjQ2xhc3NdPVwiJ2tjRmVlZGJhY2tFcnJvckljb24nXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2tjQ2xhc3NdPVwiJ2tjQWxlcnRUaXRsZUNsYXNzJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpbm5lckhUTUxdPVwibWVzc2FnZS5zdW1tYXJ5IHwga2NTYW5pdGl6ZTogJ2h0bWwnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPCEtLSBDb250ZW50IC0tPlxuICAgICAgICAgICAgICAgICAgICBAbGV0IHBhZ2VSZWYgPSBwYWdlKCk7XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoISFwYWdlUmVmKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8a2MtZHluYW1pYy1wYWdlLWluamVjdG9yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BhZ2VdPVwicGFnZVJlZlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3VzZXJQcm9maWxlRm9ybUZpZWxkc109XCJ1c2VyUHJvZmlsZUZvcm1GaWVsZHMoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbXBvbmVudENyZWF0ZWQpPVwib25Db21wb25lbnRDcmVhdGVkKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBAaWYgKCEhYXV0aCAmJiBhdXRoPy5zaG93VHJ5QW5vdGhlcldheUxpbmspIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxmb3JtXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJrYy1zZWxlY3QtdHJ5LWFub3RoZXItd2F5LWZvcm1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZD1cInBvc3RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthY3Rpb25dPVwidXJsPy5sb2dpbkFjdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBba2NDbGFzc109XCIna2NGb3JtR3JvdXBDbGFzcydcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBba2NDbGFzc109XCIna2NGb3JtR3JvdXBDbGFzcydcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJoaWRkZW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJ0cnlBbm90aGVyV2F5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cIm9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwidHJ5LWFub3RoZXItd2F5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwidHJ5QW5vdGhlcldheSgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpMThuLm1zZ1N0cignZG9UcnlBbm90aGVyV2F5JykgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Zvcm0+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgQGxldCBzb2NpYWxQcm92aWRlcnMgPSBzb2NpYWxQcm92aWRlcnNOb2RlICYmIHNvY2lhbFByb3ZpZGVyc05vZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgQGlmIChzb2NpYWxQcm92aWRlcnMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwic29jaWFsUHJvdmlkZXJzXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8IS0tIEluZm8gZGlzcGxheSAtLT5cbiAgICAgICAgICAgICAgICAgICAgQGlmIChkaXNwbGF5SW5mbykge1xuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwia2MtaW5mb1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2tjQ2xhc3NdPVwiJ2tjU2lnblVwQ2xhc3MnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwia2MtaW5mby13cmFwcGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2tjQ2xhc3NdPVwiJ2tjSW5mb0FyZWFXcmFwcGVyQ2xhc3MnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBsZXQgaW5mbyA9IGluZm9Ob2RlICYmIGluZm9Ob2RlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoaW5mbykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJpbmZvXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbn1cbiJdfQ==
|
package/esm2022/login/login.mjs
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export { i18nBuilder } from 'keycloakify/login/i18n/noJsx';
|
|
2
2
|
export { getDefaultPageComponent } from './defaultPage';
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbG9naW4vbG9naW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRTNELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGVBQWUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHR5cGUgeyBDbGFzc0tleSB9IGZyb20gJ2tleWNsb2FraWZ5L2xvZ2luJztcblxuZXhwb3J0IHsgaTE4bkJ1aWxkZXIgfSBmcm9tICdrZXljbG9ha2lmeS9sb2dpbi9pMThuL25vSnN4JztcblxuZXhwb3J0IHsgZ2V0RGVmYXVsdFBhZ2VDb21wb25lbnQgfSBmcm9tICcuL2RlZmF1bHRQYWdlJztcblxuZXhwb3J0IHR5cGUgS2NQYWdlID0ge1xuICAgIFBhZ2VDb21wb25lbnQ6IFR5cGU8dW5rbm93bj47XG4gICAgVGVtcGxhdGVDb21wb25lbnQ6IFR5cGU8dW5rbm93bj47XG4gICAgZG9Vc2VEZWZhdWx0Q3NzOiBib29sZWFuO1xuICAgIGNsYXNzZXM6IHsgW2tleSBpbiBDbGFzc0tleV0/
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbG9naW4vbG9naW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRTNELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGVBQWUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHR5cGUgeyBDbGFzc0tleSB9IGZyb20gJ2tleWNsb2FraWZ5L2xvZ2luJztcblxuZXhwb3J0IHsgaTE4bkJ1aWxkZXIgfSBmcm9tICdrZXljbG9ha2lmeS9sb2dpbi9pMThuL25vSnN4JztcblxuZXhwb3J0IHsgZ2V0RGVmYXVsdFBhZ2VDb21wb25lbnQgfSBmcm9tICcuL2RlZmF1bHRQYWdlJztcblxuZXhwb3J0IHR5cGUgS2NQYWdlID0ge1xuICAgIFBhZ2VDb21wb25lbnQ6IFR5cGU8dW5rbm93bj47XG4gICAgVGVtcGxhdGVDb21wb25lbnQ6IFR5cGU8dW5rbm93bj47XG4gICAgZG9Vc2VEZWZhdWx0Q3NzOiBib29sZWFuO1xuICAgIGNsYXNzZXM6IHsgW2tleSBpbiBDbGFzc0tleV0/OiBzdHJpbmcgfTtcbiAgICBVc2VyUHJvZmlsZUZvcm1GaWVsZHNDb21wb25lbnQ6IFR5cGU8dW5rbm93bj47XG4gICAgZG9NYWtlVXNlckNvbmZpcm1QYXNzd29yZDogYm9vbGVhbjtcbn07XG4iXX0=
|
|
@@ -26,7 +26,7 @@ export class CodeComponent extends ComponentReference {
|
|
|
26
26
|
provide: ComponentReference,
|
|
27
27
|
useExisting: forwardRef(() => CodeComponent)
|
|
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 code = kcContext.code;\n\n<ng-template #headerNode>\n @if (code.success) {\n {{ i18n.msgStr('codeSuccessTitle') }}\n } @else {\n {{ i18n.msgStr('codeErrorTitle', code.error) }}\n }\n</ng-template>\n\n<div id=\"kc-code\">\n @if (code.success) {\n <p>{{ i18n.msgStr('copyCodeInstruction') }}</p>\n <input\n id=\"code\"\n [kcClass]=\"'kcTextareaClass'\"\n [defaultValue]=\"code.code\"\n />\n } @else {\n <p id=\"error\">{{ code.error }}</p>\n }\n</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 code = kcContext.code;\n\n<ng-template #headerNode>\n @let code = kcContext.code;\n @if (code.success) {\n {{ i18n.msgStr('codeSuccessTitle') }}\n } @else {\n {{ i18n.msgStr('codeErrorTitle', code.error) }}\n }\n</ng-template>\n\n<div id=\"kc-code\">\n @if (code.success) {\n <p>{{ i18n.msgStr('copyCodeInstruction') }}</p>\n <input\n id=\"code\"\n [kcClass]=\"'kcTextareaClass'\"\n [defaultValue]=\"code.code\"\n />\n } @else {\n <p id=\"error\">{{ code.error }}</p>\n }\n</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: CodeComponent, 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(() => CodeComponent)
|
|
37
37
|
}
|
|
38
|
-
], template: "@let code = kcContext.code;\n\n<ng-template #headerNode>\n @if (code.success) {\n {{ i18n.msgStr('codeSuccessTitle') }}\n } @else {\n {{ i18n.msgStr('codeErrorTitle', code.error) }}\n }\n</ng-template>\n\n<div id=\"kc-code\">\n @if (code.success) {\n <p>{{ i18n.msgStr('copyCodeInstruction') }}</p>\n <input\n id=\"code\"\n [kcClass]=\"'kcTextareaClass'\"\n [defaultValue]=\"code.code\"\n />\n } @else {\n <p id=\"error\">{{ code.error }}</p>\n }\n</div>\n" }]
|
|
38
|
+
], template: "@let code = kcContext.code;\n\n<ng-template #headerNode>\n @let code = kcContext.code;\n @if (code.success) {\n {{ i18n.msgStr('codeSuccessTitle') }}\n } @else {\n {{ i18n.msgStr('codeErrorTitle', code.error) }}\n }\n</ng-template>\n\n<div id=\"kc-code\">\n @if (code.success) {\n <p>{{ i18n.msgStr('copyCodeInstruction') }}</p>\n <input\n id=\"code\"\n [kcClass]=\"'kcTextareaClass'\"\n [defaultValue]=\"code.code\"\n />\n } @else {\n <p id=\"error\">{{ code.error }}</p>\n }\n</div>\n" }]
|
|
39
39
|
}] });
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbG9naW4vcGFnZXMvY29kZS9jb2RlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9sb2dpbi9wYWdlcy9jb2RlL2NvZGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFvQixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEgsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBQzVGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBR2xGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDcEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOENBQThDLENBQUM7O0FBZ0JoRixNQUFNLE9BQU8sYUFBYyxTQUFRLGtCQUFrQjtJQWJyRDs7UUFjSSxjQUFTLEdBQUcsTUFBTSxDQUE2QyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ2pGLFNBQUksR0FBRyxNQUFNLENBQU8sVUFBVSxDQUFDLENBQUM7UUFFdkIsb0JBQWUsR0FBRyxNQUFNLENBQVUsZUFBZSxDQUFDLENBQUM7UUFDbkQsWUFBTyxHQUFHLE1BQU0sQ0FBb0MsYUFBYSxDQUFDLENBQUM7UUFLNUUsMEJBQXFCLEdBQUcsS0FBSyxDQUFDO1FBQzlCLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBRXZCLGVBQVUsR0FBSSxTQUFTLENBQTJCLFlBQVksQ0FBQyxDQUFDO1FBQ2hFLGFBQVEsR0FBSSxTQUFTLENBQTJCLFVBQVUsQ0FBQyxDQUFDO1FBQzVELHdCQUFtQixHQUFJLFNBQVMsQ0FBMkIscUJBQXFCLENBQUMsQ0FBQztLQUNyRjs4R0FqQlksYUFBYTtrR0FBYixhQUFhLHNEQVBYO1lBQ1A7Z0JBQ0ksT0FBTyxFQUFFLGtCQUFrQjtnQkFDM0IsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxhQUFhLENBQUM7YUFDL0M7U0FDSiwrWUN0Qkwsd2tCQXVCQSw0Q0RWYyxnQkFBZ0I7OzJGQVdqQixhQUFhO2tCQWJ6QixTQUFTO2lDQUNNLElBQUksV0FDUCxDQUFDLGdCQUFnQixDQUFDLFlBQ2pCLFNBQVMsbUJBRUYsdUJBQXVCLENBQUMsTUFBTSxhQUNwQzt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsa0JBQWtCOzRCQUMzQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxjQUFjLENBQUM7eUJBQy9DO3FCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgZm9yd2FyZFJlZiwgaW5qZWN0LCB0eXBlIFRlbXBsYXRlUmVmLCB2aWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFVTRV9ERUZBVUxUX0NTUyB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xpYi90b2tlbnMvdXNlLWRlZmF1bHQtY3NzJztcbmltcG9ydCB7IENvbXBvbmVudFJlZmVyZW5jZSB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL2NsYXNzZXMvY29tcG9uZW50LXJlZmVyZW5jZSc7XG5pbXBvcnQgeyBLY0NsYXNzRGlyZWN0aXZlIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vZGlyZWN0aXZlcy9rYy1jbGFzcyc7XG5pbXBvcnQgdHlwZSB7IEkxOG4gfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9pMThuJztcbmltcG9ydCB0eXBlIHsgS2NDb250ZXh0IH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vS2NDb250ZXh0JztcbmltcG9ydCB7IExPR0lOX0NMQVNTRVMgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi90b2tlbnMvY2xhc3Nlcyc7XG5pbXBvcnQgeyBMT0dJTl9JMThOIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vdG9rZW5zL2kxOG4nO1xuaW1wb3J0IHsgS0NfTE9HSU5fQ09OVEVYVCB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL3Rva2Vucy9rYy1jb250ZXh0JztcbmltcG9ydCB0eXBlIHsgQ2xhc3NLZXkgfSBmcm9tICdrZXljbG9ha2lmeS9sb2dpbi9saWIva2NDbHN4JztcblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbS2NDbGFzc0RpcmVjdGl2ZV0sXG4gICAgc2VsZWN0b3I6ICdrYy1jb2RlJyxcbiAgICB0ZW1wbGF0ZVVybDogJ2NvZGUuY29tcG9uZW50Lmh0bWwnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBDb21wb25lbnRSZWZlcmVuY2UsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBDb2RlQ29tcG9uZW50KVxuICAgICAgICB9XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBDb2RlQ29tcG9uZW50IGV4dGVuZHMgQ29tcG9uZW50UmVmZXJlbmNlIHtcbiAgICBrY0NvbnRleHQgPSBpbmplY3Q8RXh0cmFjdDxLY0NvbnRleHQsIHsgcGFnZUlkOiAnY29kZS5mdGwnIH0+PihLQ19MT0dJTl9DT05URVhUKTtcbiAgICBpMThuID0gaW5qZWN0PEkxOG4+KExPR0lOX0kxOE4pO1xuXG4gICAgb3ZlcnJpZGUgZG9Vc2VEZWZhdWx0Q3NzID0gaW5qZWN0PGJvb2xlYW4+KFVTRV9ERUZBVUxUX0NTUyk7XG4gICAgb3ZlcnJpZGUgY2xhc3NlcyA9IGluamVjdDxQYXJ0aWFsPFJlY29yZDxDbGFzc0tleSwgc3RyaW5nPj4+KExPR0lOX0NMQVNTRVMpO1xuXG4gICAgZG9jdW1lbnRUaXRsZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIGJvZHlDbGFzc05hbWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAgIGRpc3BsYXlSZXF1aXJlZEZpZWxkcyA9IGZhbHNlO1xuICAgIGRpc3BsYXlJbmZvID0gZmFsc2U7XG4gICAgZGlzcGxheU1lc3NhZ2UgPSBmYWxzZTtcblxuICAgIGhlYWRlck5vZGU/ID0gdmlld0NoaWxkPFRlbXBsYXRlUmVmPEhUTUxFbGVtZW50Pj4oJ2hlYWRlck5vZGUnKTtcbiAgICBpbmZvTm9kZT8gPSB2aWV3Q2hpbGQ8VGVtcGxhdGVSZWY8SFRNTEVsZW1lbnQ+PignaW5mb05vZGUnKTtcbiAgICBzb2NpYWxQcm92aWRlcnNOb2RlPyA9IHZpZXdDaGlsZDxUZW1wbGF0ZVJlZjxIVE1MRWxlbWVudD4+KCdzb2NpYWxQcm92aWRlcnNOb2RlJyk7XG59XG4iLCJAbGV0IGNvZGUgPSBrY0NvbnRleHQuY29kZTtcblxuPG5nLXRlbXBsYXRlICNoZWFkZXJOb2RlPlxuICAgIEBsZXQgY29kZSA9IGtjQ29udGV4dC5jb2RlO1xuICAgIEBpZiAoY29kZS5zdWNjZXNzKSB7XG4gICAgICAgIHt7IGkxOG4ubXNnU3RyKCdjb2RlU3VjY2Vzc1RpdGxlJykgfX1cbiAgICB9IEBlbHNlIHtcbiAgICAgICAge3sgaTE4bi5tc2dTdHIoJ2NvZGVFcnJvclRpdGxlJywgY29kZS5lcnJvcikgfX1cbiAgICB9XG48L25nLXRlbXBsYXRlPlxuXG48ZGl2IGlkPVwia2MtY29kZVwiPlxuICAgIEBpZiAoY29kZS5zdWNjZXNzKSB7XG4gICAgICAgIDxwPnt7IGkxOG4ubXNnU3RyKCdjb3B5Q29kZUluc3RydWN0aW9uJykgfX08L3A+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgaWQ9XCJjb2RlXCJcbiAgICAgICAgICAgIFtrY0NsYXNzXT1cIidrY1RleHRhcmVhQ2xhc3MnXCJcbiAgICAgICAgICAgIFtkZWZhdWx0VmFsdWVdPVwiY29kZS5jb2RlXCJcbiAgICAgICAgLz5cbiAgICB9IEBlbHNlIHtcbiAgICAgICAgPHAgaWQ9XCJlcnJvclwiPnt7IGNvZGUuZXJyb3IgfX08L3A+XG4gICAgfVxuPC9kaXY+XG4iXX0=
|