@po-ui/ng-templates 18.10.0 → 18.12.0
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/esm2022/lib/components/po-page-login/po-page-login-base.component.mjs +16 -2
- package/esm2022/lib/components/po-page-login/po-page-login.component.mjs +5 -5
- package/fesm2022/po-ui-ng-templates.mjs +19 -5
- package/fesm2022/po-ui-ng-templates.mjs.map +1 -1
- package/lib/components/po-page-login/po-page-login-base.component.d.ts +13 -1
- package/package.json +4 -4
- package/po-ui-ng-templates-18.12.0.tgz +0 -0
- package/schematics/ng-add/index.js +1 -1
- package/po-ui-ng-templates-18.10.0.tgz +0 -0
|
@@ -138,7 +138,7 @@ function PoPageLoginComponent_div_32_Template(rf, ctx) { if (rf & 1) {
|
|
|
138
138
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
139
139
|
i0.ɵɵadvance();
|
|
140
140
|
i0.ɵɵtwoWayProperty("ngModel", ctx_r1.rememberUser);
|
|
141
|
-
i0.ɵɵproperty("p-label-off", ctx_r1.pageLoginLiterals.rememberUser)("p-label-on", ctx_r1.pageLoginLiterals.rememberUser);
|
|
141
|
+
i0.ɵɵproperty("p-label-off", ctx_r1.pageLoginLiterals.rememberUser)("p-label-on", ctx_r1.pageLoginLiterals.rememberUser)("p-hide-label-status", ctx_r1.hideLabelStatus);
|
|
142
142
|
i0.ɵɵadvance();
|
|
143
143
|
i0.ɵɵproperty("ngIf", ctx_r1.pageLoginLiterals.loginHint || ctx_r1.pageLoginLiterals.rememberUserHint);
|
|
144
144
|
} }
|
|
@@ -378,7 +378,7 @@ export class PoPageLoginComponent extends PoPageLoginBaseComponent {
|
|
|
378
378
|
let _t;
|
|
379
379
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.loginForm = _t.first);
|
|
380
380
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.pageLogin = _t.first);
|
|
381
|
-
} }, features: [i0.ɵɵInheritDefinitionFeature], decls: 36, vars: 42, consts: [["pageLogin", ""], ["loginForm", "ngForm"], [1, "po-page-login-support", 3, "click", "hidden"], ["p-icon", "ICON_HELP"], [3, "p-selected-language", "p-show-select-language", "p-languages", "p-initial-language", "p-background", "p-highlight-info", "p-logo", "p-secondary-logo"], [1, "po-page-login-header"], [1, "po-page-login-header-product-name"], [1, "po-page-login-header-product-environment", "po-mb-md-4", "po-mb-sm-1"], ["p-type", "warning", 3, "p-value", 4, "ngIf"], [1, "po-page-login-header-welcome", "po-mb-md-4", "po-mb-sm-2"], [1, "po-page-login-form"], [1, "po-row"], [1, "po-lg-12"], [1, "po-page-login-hint", "po-page-login-info-container"], ["name", "login", "p-auto-focus", "", "p-required", "", 1, "po-page-login-info-field", 3, "ngModelChange", "click", "keyup.enter", "p-change-model", "ngModel", "p-label", "p-no-autocomplete", "p-pattern", "p-placeholder"], ["class", "po-page-login-info-icon-container", 3, "po-page-login-info-icon-container-dynamic", 4, "ngIf"], [1, "po-field-container-bottom", "po-field-container-error-container"], ["class", "po-field-container-bottom-text-error po-field-container-error-item", 4, "ngFor", "ngForOf"], [1, "po-page-login-password-container"], ["name", "password", "p-required", "", 1, "po-page-login-field-size", "po-page-login-password-item", 3, "ngModelChange", "click", "keyup.enter", "p-change-model", "ngModel", "p-hide-password-peek", "p-label", "p-no-autocomplete", "p-pattern", "p-placeholder"], ["class", "po-page-login-password-item po-page-login-password-popover-container", 4, "ngIf"], ["class", "po-page-login-field-size po-lg-12", "name", "customFieldInput", "p-required", "", 3, "po-page-login-field-size-dynamic", "ngModel", "p-error-pattern", "p-pattern", "p-placeholder", "ngModelChange", "keyup.enter", 4, "ngIf"], ["class", "po-page-login-field-size po-lg-12", "name", "customFieldCombo", "p-required", "", 3, "po-page-login-field-size-dynamic", "ngModel", "p-field-value", "p-filter-service", "p-placeholder", "ngModelChange", 4, "ngIf"], ["class", "po-page-login-field-size po-lg-12", "name", "customFieldSelect", "p-required", "", 3, "po-page-login-field-size-dynamic", "ngModel", "p-placeholder", "p-options", "ngModelChange", 4, "ngIf"], ["class", "po-page-login-hint po-page-login-info-container", 4, "ngIf"], ["p-kind", "primary", 1, "po-lg-12", "po-page-login-button", "po-page-login-field-size", 3, "p-click", "p-disabled", "p-label", "p-loading"], ["class", "po-page-login-recovery-link", 4, "ngIf"], ["class", "po-page-login-register-link", 4, "ngIf"], ["p-type", "warning", 3, "p-value"], [1, "po-page-login-info-icon-container"], ["p-icon", "ICON_INFO po-field-icon", "p-tooltip-position", "right", 3, "p-tooltip", 4, "ngIf"], ["p-icon", "ICON_INFO po-field-icon", "p-tooltip-position", "right", 3, "p-tooltip"], [1, "po-field-container-bottom-text-error", "po-field-container-error-item"], ["p-icon", "ICON_EXCLAMATION"], [1, "po-field-container-error-text"], [1, "po-page-login-password-item", "po-page-login-password-popover-container"], [3, "p-literals", "p-recovery", "p-remaining-attempts", "p-forgot-password", 4, "ngIf"], [3, "p-forgot-password", "p-literals", "p-recovery", "p-remaining-attempts"], ["name", "customFieldInput", "p-required", "", 1, "po-page-login-field-size", "po-lg-12", 3, "ngModelChange", "keyup.enter", "ngModel", "p-error-pattern", "p-pattern", "p-placeholder"], ["name", "customFieldCombo", "p-required", "", 1, "po-page-login-field-size", "po-lg-12", 3, "ngModelChange", "ngModel", "p-field-value", "p-filter-service", "p-placeholder"], ["name", "customFieldSelect", "p-required", "", 1, "po-page-login-field-size", "po-lg-12", 3, "ngModelChange", "ngModel", "p-placeholder", "p-options"], ["name", "rememberUser", "p-label-position", "1", 1, "po-page-login-info-field", "po-lg-7", "po-offset-lg-5", "po-offset-xl-5", 3, "ngModelChange", "keyup.enter", "ngModel", "p-label-off", "p-label-on"], ["class", "po-page-login-info-icon-container po-page-login-info-icon-remember-user", 3, "po-page-login-info-icon-container-dynamic", 4, "ngIf"], [1, "po-page-login-info-icon-container", "po-page-login-info-icon-remember-user"], [1, "po-page-login-recovery-link"], [1, "po-font-text-large-bold", 3, "click"], [1, "po-page-login-register-link"]], template: function PoPageLoginComponent_Template(rf, ctx) { if (rf & 1) {
|
|
381
|
+
} }, features: [i0.ɵɵInheritDefinitionFeature], decls: 36, vars: 42, consts: [["pageLogin", ""], ["loginForm", "ngForm"], [1, "po-page-login-support", 3, "click", "hidden"], ["p-icon", "ICON_HELP"], [3, "p-selected-language", "p-show-select-language", "p-languages", "p-initial-language", "p-background", "p-highlight-info", "p-logo", "p-secondary-logo"], [1, "po-page-login-header"], [1, "po-page-login-header-product-name"], [1, "po-page-login-header-product-environment", "po-mb-md-4", "po-mb-sm-1"], ["p-type", "warning", 3, "p-value", 4, "ngIf"], [1, "po-page-login-header-welcome", "po-mb-md-4", "po-mb-sm-2"], [1, "po-page-login-form"], [1, "po-row"], [1, "po-lg-12"], [1, "po-page-login-hint", "po-page-login-info-container"], ["name", "login", "p-auto-focus", "", "p-required", "", 1, "po-page-login-info-field", 3, "ngModelChange", "click", "keyup.enter", "p-change-model", "ngModel", "p-label", "p-no-autocomplete", "p-pattern", "p-placeholder"], ["class", "po-page-login-info-icon-container", 3, "po-page-login-info-icon-container-dynamic", 4, "ngIf"], [1, "po-field-container-bottom", "po-field-container-error-container"], ["class", "po-field-container-bottom-text-error po-field-container-error-item", 4, "ngFor", "ngForOf"], [1, "po-page-login-password-container"], ["name", "password", "p-required", "", 1, "po-page-login-field-size", "po-page-login-password-item", 3, "ngModelChange", "click", "keyup.enter", "p-change-model", "ngModel", "p-hide-password-peek", "p-label", "p-no-autocomplete", "p-pattern", "p-placeholder"], ["class", "po-page-login-password-item po-page-login-password-popover-container", 4, "ngIf"], ["class", "po-page-login-field-size po-lg-12", "name", "customFieldInput", "p-required", "", 3, "po-page-login-field-size-dynamic", "ngModel", "p-error-pattern", "p-pattern", "p-placeholder", "ngModelChange", "keyup.enter", 4, "ngIf"], ["class", "po-page-login-field-size po-lg-12", "name", "customFieldCombo", "p-required", "", 3, "po-page-login-field-size-dynamic", "ngModel", "p-field-value", "p-filter-service", "p-placeholder", "ngModelChange", 4, "ngIf"], ["class", "po-page-login-field-size po-lg-12", "name", "customFieldSelect", "p-required", "", 3, "po-page-login-field-size-dynamic", "ngModel", "p-placeholder", "p-options", "ngModelChange", 4, "ngIf"], ["class", "po-page-login-hint po-page-login-info-container", 4, "ngIf"], ["p-kind", "primary", 1, "po-lg-12", "po-page-login-button", "po-page-login-field-size", 3, "p-click", "p-disabled", "p-label", "p-loading"], ["class", "po-page-login-recovery-link", 4, "ngIf"], ["class", "po-page-login-register-link", 4, "ngIf"], ["p-type", "warning", 3, "p-value"], [1, "po-page-login-info-icon-container"], ["p-icon", "ICON_INFO po-field-icon", "p-tooltip-position", "right", 3, "p-tooltip", 4, "ngIf"], ["p-icon", "ICON_INFO po-field-icon", "p-tooltip-position", "right", 3, "p-tooltip"], [1, "po-field-container-bottom-text-error", "po-field-container-error-item"], ["p-icon", "ICON_EXCLAMATION"], [1, "po-field-container-error-text"], [1, "po-page-login-password-item", "po-page-login-password-popover-container"], [3, "p-literals", "p-recovery", "p-remaining-attempts", "p-forgot-password", 4, "ngIf"], [3, "p-forgot-password", "p-literals", "p-recovery", "p-remaining-attempts"], ["name", "customFieldInput", "p-required", "", 1, "po-page-login-field-size", "po-lg-12", 3, "ngModelChange", "keyup.enter", "ngModel", "p-error-pattern", "p-pattern", "p-placeholder"], ["name", "customFieldCombo", "p-required", "", 1, "po-page-login-field-size", "po-lg-12", 3, "ngModelChange", "ngModel", "p-field-value", "p-filter-service", "p-placeholder"], ["name", "customFieldSelect", "p-required", "", 1, "po-page-login-field-size", "po-lg-12", 3, "ngModelChange", "ngModel", "p-placeholder", "p-options"], ["name", "rememberUser", "p-label-position", "1", 1, "po-page-login-info-field", "po-lg-7", "po-offset-lg-5", "po-offset-xl-5", 3, "ngModelChange", "keyup.enter", "ngModel", "p-label-off", "p-label-on", "p-hide-label-status"], ["class", "po-page-login-info-icon-container po-page-login-info-icon-remember-user", 3, "po-page-login-info-icon-container-dynamic", 4, "ngIf"], [1, "po-page-login-info-icon-container", "po-page-login-info-icon-remember-user"], [1, "po-page-login-recovery-link"], [1, "po-font-text-large-bold", 3, "click"], [1, "po-page-login-register-link"]], template: function PoPageLoginComponent_Template(rf, ctx) { if (rf & 1) {
|
|
382
382
|
const _r1 = i0.ɵɵgetCurrentView();
|
|
383
383
|
i0.ɵɵelementStart(0, "button", 2);
|
|
384
384
|
i0.ɵɵlistener("click", function PoPageLoginComponent_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.activateSupport()); });
|
|
@@ -416,7 +416,7 @@ export class PoPageLoginComponent extends PoPageLoginBaseComponent {
|
|
|
416
416
|
i0.ɵɵelementEnd()();
|
|
417
417
|
i0.ɵɵtemplate(28, PoPageLoginComponent_po_input_28_Template, 1, 6, "po-input", 21)(29, PoPageLoginComponent_po_combo_29_Template, 1, 6, "po-combo", 22)(30, PoPageLoginComponent_po_select_30_Template, 1, 5, "po-select", 23);
|
|
418
418
|
i0.ɵɵelementStart(31, "div", 12);
|
|
419
|
-
i0.ɵɵtemplate(32, PoPageLoginComponent_div_32_Template, 3,
|
|
419
|
+
i0.ɵɵtemplate(32, PoPageLoginComponent_div_32_Template, 3, 5, "div", 24);
|
|
420
420
|
i0.ɵɵelementEnd();
|
|
421
421
|
i0.ɵɵelementStart(33, "po-button", 25);
|
|
422
422
|
i0.ɵɵlistener("p-click", function PoPageLoginComponent_Template_po_button_p_click_33_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onLoginSubmit()); });
|
|
@@ -471,7 +471,7 @@ export class PoPageLoginComponent extends PoPageLoginBaseComponent {
|
|
|
471
471
|
}
|
|
472
472
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PoPageLoginComponent, [{
|
|
473
473
|
type: Component,
|
|
474
|
-
args: [{ selector: 'po-page-login', template: "<button class=\"po-page-login-support\" (click)=\"activateSupport()\" [hidden]=\"!support\">\n <po-icon p-icon=\"ICON_HELP\"></po-icon>\n {{ pageLoginLiterals?.support }}\n</button>\n\n<po-page-background\n #pageLogin\n [p-show-select-language]=\"showLanguage\"\n [p-languages]=\"languagesList\"\n [p-initial-language]=\"initialSelectLanguage\"\n [p-background]=\"background\"\n [p-highlight-info]=\"pageLoginLiterals.highlightInfo\"\n [p-logo]=\"logo\"\n [p-secondary-logo]=\"secondaryLogo\"\n (p-selected-language)=\"onSelectedLanguage($event)\"\n>\n <header class=\"po-page-login-header\">\n <div class=\"po-page-login-header-product-name\">\n <h1>{{ productName }}</h1>\n </div>\n\n <div class=\"po-page-login-header-product-environment po-mb-md-4 po-mb-sm-1\">\n <po-tag *ngIf=\"environment\" p-type=\"warning\" [p-value]=\"environment\"> </po-tag>\n </div>\n <div class=\"po-page-login-header-welcome po-mb-md-4 po-mb-sm-2\">{{ pageLoginLiterals.welcome }}</div>\n </header>\n\n <form #loginForm=\"ngForm\" class=\"po-page-login-form\">\n <div class=\"po-row\">\n <div class=\"po-lg-12\">\n <div class=\"po-page-login-hint po-page-login-info-container\">\n <po-login\n class=\"po-page-login-info-field\"\n [class.po-page-login-info-field-dynamic]=\"\n !pageLoginLiterals.loginHint && !pageLoginLiterals.rememberUserHint\n \"\n name=\"login\"\n [(ngModel)]=\"login\"\n p-auto-focus\n p-required\n [p-label]=\"pageLoginLiterals.loginLabel\"\n [p-no-autocomplete]=\"noAutocompleteLogin\"\n [p-pattern]=\"loginPattern\"\n [p-placeholder]=\"pageLoginLiterals.loginPlaceholder\"\n (click)=\"closePopover()\"\n (keyup.enter)=\"loginForm.valid && onLoginSubmit()\"\n (p-change-model)=\"changeLoginModel()\"\n >\n </po-login>\n\n <div\n *ngIf=\"pageLoginLiterals.loginHint || pageLoginLiterals.rememberUserHint\"\n class=\"po-page-login-info-icon-container\"\n [class.po-page-login-info-icon-container-dynamic]=\"\n !pageLoginLiterals.loginHint && !pageLoginLiterals.rememberUserHint\n \"\n >\n <po-icon\n p-icon=\"ICON_INFO po-field-icon\"\n *ngIf=\"pageLoginLiterals.loginHint\"\n p-tooltip-position=\"right\"\n [p-tooltip]=\"pageLoginLiterals.loginHint\"\n >\n </po-icon>\n </div>\n </div>\n\n <div class=\"po-field-container-bottom po-field-container-error-container\">\n <div\n *ngFor=\"let error of allLoginErrors\"\n class=\"po-field-container-bottom-text-error po-field-container-error-item\"\n >\n <po-icon p-icon=\"ICON_EXCLAMATION\"></po-icon>\n <span class=\"po-field-container-error-text\">{{ error }}</span>\n </div>\n </div>\n </div>\n\n <div class=\"po-lg-12\">\n <div class=\"po-page-login-password-container\">\n <po-password\n class=\"po-page-login-field-size po-page-login-password-item\"\n [class.po-page-login-field-size-dynamic]=\"\n !pageLoginLiterals.loginHint && !pageLoginLiterals.rememberUserHint\n \"\n name=\"password\"\n [(ngModel)]=\"password\"\n p-required\n [p-hide-password-peek]=\"hidePasswordPeek\"\n [p-label]=\"pageLoginLiterals.passwordLabel\"\n [p-no-autocomplete]=\"noAutocompletePassword\"\n [p-pattern]=\"passwordPattern\"\n [p-placeholder]=\"pageLoginLiterals.passwordPlaceholder\"\n (click)=\"closePopover()\"\n (keyup.enter)=\"loginForm.valid && onLoginSubmit()\"\n (p-change-model)=\"changePasswordModel()\"\n >\n </po-password>\n <div\n *ngIf=\"pageLoginLiterals.loginHint || pageLoginLiterals.rememberUserHint\"\n class=\"po-page-login-password-item po-page-login-password-popover-container\"\n >\n <po-page-login-popover\n *ngIf=\"showExceededAttemptsWarning && exceededAttemptsWarning\"\n [p-literals]=\"pageLoginLiterals\"\n [p-recovery]=\"recovery\"\n [p-remaining-attempts]=\"exceededAttemptsWarning\"\n (p-forgot-password)=\"openUrl($event)\"\n >\n </po-page-login-popover>\n </div>\n </div>\n <div class=\"po-field-container-bottom po-field-container-error-container\">\n <div\n *ngFor=\"let error of allPasswordErrors\"\n class=\"po-field-container-bottom-text-error po-field-container-error-item\"\n >\n <po-icon p-icon=\"ICON_EXCLAMATION\"></po-icon>\n <span class=\"po-field-container-error-text\">{{ error }}</span>\n </div>\n </div>\n </div>\n\n <po-input\n *ngIf=\"customField && customFieldType === 'input'\"\n [class.po-page-login-field-size-dynamic]=\"!pageLoginLiterals.loginHint && !pageLoginLiterals.rememberUserHint\"\n class=\"po-page-login-field-size po-lg-12\"\n name=\"customFieldInput\"\n [(ngModel)]=\"customFieldObject.value\"\n p-required\n [p-error-pattern]=\"customFieldObject.errorPattern || pageLoginLiterals.customFieldErrorPattern\"\n [p-pattern]=\"customFieldObject.pattern\"\n [p-placeholder]=\"customFieldObject.placeholder || pageLoginLiterals.customFieldPlaceholder\"\n (keyup.enter)=\"loginForm.valid && onLoginSubmit()\"\n >\n </po-input>\n\n <po-combo\n *ngIf=\"customField && customFieldType === 'combo'\"\n [class.po-page-login-field-size-dynamic]=\"!pageLoginLiterals.loginHint && !pageLoginLiterals.rememberUserHint\"\n class=\"po-page-login-field-size po-lg-12\"\n name=\"customFieldCombo\"\n [(ngModel)]=\"customFieldObject.value\"\n p-required\n [p-field-value]=\"customFieldObject.fieldValue\"\n [p-filter-service]=\"customFieldObject.url\"\n [p-placeholder]=\"customFieldObject.placeholder || pageLoginLiterals.customFieldPlaceholder\"\n >\n </po-combo>\n\n <po-select\n *ngIf=\"customField && customFieldType === 'select'\"\n [class.po-page-login-field-size-dynamic]=\"!pageLoginLiterals.loginHint && !pageLoginLiterals.rememberUserHint\"\n class=\"po-page-login-field-size po-lg-12\"\n name=\"customFieldSelect\"\n [(ngModel)]=\"customFieldObject.value\"\n p-required\n [p-placeholder]=\"customFieldObject.placeholder || pageLoginLiterals.customFieldPlaceholder\"\n [p-options]=\"customFieldObject.options\"\n >\n </po-select>\n\n <div class=\"po-lg-12\">\n <div *ngIf=\"!hideRememberUser\" class=\"po-page-login-hint po-page-login-info-container\">\n <po-switch\n class=\"po-page-login-info-field po-lg-7 po-offset-lg-5 po-offset-xl-5\"\n name=\"rememberUser\"\n [(ngModel)]=\"rememberUser\"\n p-label-position=\"1\"\n [p-label-off]=\"pageLoginLiterals.rememberUser\"\n [p-label-on]=\"pageLoginLiterals.rememberUser\"\n (keyup.enter)=\"loginForm.valid && onLoginSubmit()\"\n >\n </po-switch>\n\n <div\n *ngIf=\"pageLoginLiterals.loginHint || pageLoginLiterals.rememberUserHint\"\n class=\"po-page-login-info-icon-container po-page-login-info-icon-remember-user\"\n [class.po-page-login-info-icon-container-dynamic]=\"!pageLoginLiterals.rememberUserHint\"\n >\n <po-icon\n p-icon=\"ICON_INFO po-field-icon\"\n *ngIf=\"pageLoginLiterals.rememberUserHint\"\n p-tooltip-position=\"right\"\n [p-tooltip]=\"pageLoginLiterals.rememberUserHint\"\n >\n </po-icon>\n </div>\n </div>\n </div>\n\n <po-button\n [class.po-page-login-button-dynamic]=\"!pageLoginLiterals.loginHint && !pageLoginLiterals.rememberUserHint\"\n class=\"po-lg-12 po-page-login-button po-page-login-field-size\"\n p-kind=\"primary\"\n [p-disabled]=\"loginForm.invalid\"\n [p-label]=\"loading ? pageLoginLiterals.submittedLabel : pageLoginLiterals.submitLabel\"\n [p-loading]=\"loading\"\n (p-click)=\"onLoginSubmit()\"\n >\n </po-button>\n\n <div *ngIf=\"recovery\" class=\"po-page-login-recovery-link\">\n <a class=\"po-font-text-large-bold\" (click)=\"openUrl(recovery)\">{{ pageLoginLiterals.forgotPassword }}</a>\n </div>\n\n <div *ngIf=\"registerUrl\" class=\"po-page-login-register-link\">\n <a class=\"po-font-text-large-bold\" (click)=\"openUrl(registerUrl)\">{{ pageLoginLiterals.registerUrl }}</a>\n </div>\n </div>\n </form>\n</po-page-background>\n" }]
|
|
474
|
+
args: [{ selector: 'po-page-login', template: "<button class=\"po-page-login-support\" (click)=\"activateSupport()\" [hidden]=\"!support\">\n <po-icon p-icon=\"ICON_HELP\"></po-icon>\n {{ pageLoginLiterals?.support }}\n</button>\n\n<po-page-background\n #pageLogin\n [p-show-select-language]=\"showLanguage\"\n [p-languages]=\"languagesList\"\n [p-initial-language]=\"initialSelectLanguage\"\n [p-background]=\"background\"\n [p-highlight-info]=\"pageLoginLiterals.highlightInfo\"\n [p-logo]=\"logo\"\n [p-secondary-logo]=\"secondaryLogo\"\n (p-selected-language)=\"onSelectedLanguage($event)\"\n>\n <header class=\"po-page-login-header\">\n <div class=\"po-page-login-header-product-name\">\n <h1>{{ productName }}</h1>\n </div>\n\n <div class=\"po-page-login-header-product-environment po-mb-md-4 po-mb-sm-1\">\n <po-tag *ngIf=\"environment\" p-type=\"warning\" [p-value]=\"environment\"> </po-tag>\n </div>\n <div class=\"po-page-login-header-welcome po-mb-md-4 po-mb-sm-2\">{{ pageLoginLiterals.welcome }}</div>\n </header>\n\n <form #loginForm=\"ngForm\" class=\"po-page-login-form\">\n <div class=\"po-row\">\n <div class=\"po-lg-12\">\n <div class=\"po-page-login-hint po-page-login-info-container\">\n <po-login\n class=\"po-page-login-info-field\"\n [class.po-page-login-info-field-dynamic]=\"\n !pageLoginLiterals.loginHint && !pageLoginLiterals.rememberUserHint\n \"\n name=\"login\"\n [(ngModel)]=\"login\"\n p-auto-focus\n p-required\n [p-label]=\"pageLoginLiterals.loginLabel\"\n [p-no-autocomplete]=\"noAutocompleteLogin\"\n [p-pattern]=\"loginPattern\"\n [p-placeholder]=\"pageLoginLiterals.loginPlaceholder\"\n (click)=\"closePopover()\"\n (keyup.enter)=\"loginForm.valid && onLoginSubmit()\"\n (p-change-model)=\"changeLoginModel()\"\n >\n </po-login>\n\n <div\n *ngIf=\"pageLoginLiterals.loginHint || pageLoginLiterals.rememberUserHint\"\n class=\"po-page-login-info-icon-container\"\n [class.po-page-login-info-icon-container-dynamic]=\"\n !pageLoginLiterals.loginHint && !pageLoginLiterals.rememberUserHint\n \"\n >\n <po-icon\n p-icon=\"ICON_INFO po-field-icon\"\n *ngIf=\"pageLoginLiterals.loginHint\"\n p-tooltip-position=\"right\"\n [p-tooltip]=\"pageLoginLiterals.loginHint\"\n >\n </po-icon>\n </div>\n </div>\n\n <div class=\"po-field-container-bottom po-field-container-error-container\">\n <div\n *ngFor=\"let error of allLoginErrors\"\n class=\"po-field-container-bottom-text-error po-field-container-error-item\"\n >\n <po-icon p-icon=\"ICON_EXCLAMATION\"></po-icon>\n <span class=\"po-field-container-error-text\">{{ error }}</span>\n </div>\n </div>\n </div>\n\n <div class=\"po-lg-12\">\n <div class=\"po-page-login-password-container\">\n <po-password\n class=\"po-page-login-field-size po-page-login-password-item\"\n [class.po-page-login-field-size-dynamic]=\"\n !pageLoginLiterals.loginHint && !pageLoginLiterals.rememberUserHint\n \"\n name=\"password\"\n [(ngModel)]=\"password\"\n p-required\n [p-hide-password-peek]=\"hidePasswordPeek\"\n [p-label]=\"pageLoginLiterals.passwordLabel\"\n [p-no-autocomplete]=\"noAutocompletePassword\"\n [p-pattern]=\"passwordPattern\"\n [p-placeholder]=\"pageLoginLiterals.passwordPlaceholder\"\n (click)=\"closePopover()\"\n (keyup.enter)=\"loginForm.valid && onLoginSubmit()\"\n (p-change-model)=\"changePasswordModel()\"\n >\n </po-password>\n <div\n *ngIf=\"pageLoginLiterals.loginHint || pageLoginLiterals.rememberUserHint\"\n class=\"po-page-login-password-item po-page-login-password-popover-container\"\n >\n <po-page-login-popover\n *ngIf=\"showExceededAttemptsWarning && exceededAttemptsWarning\"\n [p-literals]=\"pageLoginLiterals\"\n [p-recovery]=\"recovery\"\n [p-remaining-attempts]=\"exceededAttemptsWarning\"\n (p-forgot-password)=\"openUrl($event)\"\n >\n </po-page-login-popover>\n </div>\n </div>\n <div class=\"po-field-container-bottom po-field-container-error-container\">\n <div\n *ngFor=\"let error of allPasswordErrors\"\n class=\"po-field-container-bottom-text-error po-field-container-error-item\"\n >\n <po-icon p-icon=\"ICON_EXCLAMATION\"></po-icon>\n <span class=\"po-field-container-error-text\">{{ error }}</span>\n </div>\n </div>\n </div>\n\n <po-input\n *ngIf=\"customField && customFieldType === 'input'\"\n [class.po-page-login-field-size-dynamic]=\"!pageLoginLiterals.loginHint && !pageLoginLiterals.rememberUserHint\"\n class=\"po-page-login-field-size po-lg-12\"\n name=\"customFieldInput\"\n [(ngModel)]=\"customFieldObject.value\"\n p-required\n [p-error-pattern]=\"customFieldObject.errorPattern || pageLoginLiterals.customFieldErrorPattern\"\n [p-pattern]=\"customFieldObject.pattern\"\n [p-placeholder]=\"customFieldObject.placeholder || pageLoginLiterals.customFieldPlaceholder\"\n (keyup.enter)=\"loginForm.valid && onLoginSubmit()\"\n >\n </po-input>\n\n <po-combo\n *ngIf=\"customField && customFieldType === 'combo'\"\n [class.po-page-login-field-size-dynamic]=\"!pageLoginLiterals.loginHint && !pageLoginLiterals.rememberUserHint\"\n class=\"po-page-login-field-size po-lg-12\"\n name=\"customFieldCombo\"\n [(ngModel)]=\"customFieldObject.value\"\n p-required\n [p-field-value]=\"customFieldObject.fieldValue\"\n [p-filter-service]=\"customFieldObject.url\"\n [p-placeholder]=\"customFieldObject.placeholder || pageLoginLiterals.customFieldPlaceholder\"\n >\n </po-combo>\n\n <po-select\n *ngIf=\"customField && customFieldType === 'select'\"\n [class.po-page-login-field-size-dynamic]=\"!pageLoginLiterals.loginHint && !pageLoginLiterals.rememberUserHint\"\n class=\"po-page-login-field-size po-lg-12\"\n name=\"customFieldSelect\"\n [(ngModel)]=\"customFieldObject.value\"\n p-required\n [p-placeholder]=\"customFieldObject.placeholder || pageLoginLiterals.customFieldPlaceholder\"\n [p-options]=\"customFieldObject.options\"\n >\n </po-select>\n\n <div class=\"po-lg-12\">\n <div *ngIf=\"!hideRememberUser\" class=\"po-page-login-hint po-page-login-info-container\">\n <po-switch\n class=\"po-page-login-info-field po-lg-7 po-offset-lg-5 po-offset-xl-5\"\n name=\"rememberUser\"\n [(ngModel)]=\"rememberUser\"\n p-label-position=\"1\"\n [p-label-off]=\"pageLoginLiterals.rememberUser\"\n [p-label-on]=\"pageLoginLiterals.rememberUser\"\n (keyup.enter)=\"loginForm.valid && onLoginSubmit()\"\n [p-hide-label-status]=\"hideLabelStatus\"\n >\n </po-switch>\n\n <div\n *ngIf=\"pageLoginLiterals.loginHint || pageLoginLiterals.rememberUserHint\"\n class=\"po-page-login-info-icon-container po-page-login-info-icon-remember-user\"\n [class.po-page-login-info-icon-container-dynamic]=\"!pageLoginLiterals.rememberUserHint\"\n >\n <po-icon\n p-icon=\"ICON_INFO po-field-icon\"\n *ngIf=\"pageLoginLiterals.rememberUserHint\"\n p-tooltip-position=\"right\"\n [p-tooltip]=\"pageLoginLiterals.rememberUserHint\"\n >\n </po-icon>\n </div>\n </div>\n </div>\n\n <po-button\n [class.po-page-login-button-dynamic]=\"!pageLoginLiterals.loginHint && !pageLoginLiterals.rememberUserHint\"\n class=\"po-lg-12 po-page-login-button po-page-login-field-size\"\n p-kind=\"primary\"\n [p-disabled]=\"loginForm.invalid\"\n [p-label]=\"loading ? pageLoginLiterals.submittedLabel : pageLoginLiterals.submitLabel\"\n [p-loading]=\"loading\"\n (p-click)=\"onLoginSubmit()\"\n >\n </po-button>\n\n <div *ngIf=\"recovery\" class=\"po-page-login-recovery-link\">\n <a class=\"po-font-text-large-bold\" (click)=\"openUrl(recovery)\">{{ pageLoginLiterals.forgotPassword }}</a>\n </div>\n\n <div *ngIf=\"registerUrl\" class=\"po-page-login-register-link\">\n <a class=\"po-font-text-large-bold\" (click)=\"openUrl(registerUrl)\">{{ pageLoginLiterals.registerUrl }}</a>\n </div>\n </div>\n </form>\n</po-page-background>\n" }]
|
|
475
475
|
}], () => [{ type: i0.ChangeDetectorRef }, { type: i1.ActivatedRoute }, { type: i2.PoComponentInjectorService }, { type: i0.IterableDiffers }, { type: i3.PoPageLoginService }, { type: i1.Router }, { type: i2.PoLanguageService }], { loginForm: [{
|
|
476
476
|
type: ViewChild,
|
|
477
477
|
args: ['loginForm', { read: NgForm, static: true }]
|
|
@@ -480,4 +480,4 @@ export class PoPageLoginComponent extends PoPageLoginBaseComponent {
|
|
|
480
480
|
args: ['pageLogin', { read: ViewContainerRef, static: true }]
|
|
481
481
|
}] }); })();
|
|
482
482
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PoPageLoginComponent, { className: "PoPageLoginComponent", filePath: "lib/components/po-page-login/po-page-login.component.ts", lineNumber: 60 }); })();
|
|
483
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tcGFnZS1sb2dpbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90ZW1wbGF0ZXMvc3JjL2xpYi9jb21wb25lbnRzL3BvLXBhZ2UtbG9naW4vcG8tcGFnZS1sb2dpbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90ZW1wbGF0ZXMvc3JjL2xpYi9jb21wb25lbnRzL3BvLXBhZ2UtbG9naW4vcG8tcGFnZS1sb2dpbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW1CLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXpELE9BQU8sRUFHTCxTQUFTLEVBSVQsU0FBUyxFQUNULGdCQUFnQixFQUNqQixNQUFNLGVBQWUsQ0FBQztBQUl2QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFHbEQsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sb0VBQW9FLENBQUM7QUFDdEgsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sMEVBQTBFLENBQUM7QUFDdkgsT0FBTyxFQUNMLHdCQUF3QixFQUN4QixvQkFBb0IsRUFDcEIsMEJBQTBCLEVBQzNCLE1BQU0sZ0NBQWdDLENBQUM7Ozs7Ozs7Ozs7OztJQ0ZsQyw2QkFBK0U7OztJQUFsQyw0Q0FBdUI7OztJQW1DOUQsOEJBTVU7OztJQUZSLDhEQUF5Qzs7O0lBWDdDLCtCQU1DO0lBQ0MscUZBS0M7SUFFSCxpQkFBTTs7O0lBWEosOElBRUM7SUFJRSxjQUFpQztJQUFqQyx5REFBaUM7OztJQVN0QywrQkFHQztJQUNDLDhCQUE2QztJQUM3QyxnQ0FBNEM7SUFBQSxZQUFXO0lBQ3pELEFBRHlELGlCQUFPLEVBQzFEOzs7SUFEd0MsZUFBVztJQUFYLDhCQUFXOzs7O0lBNkJ2RCxpREFNQztJQURDLHVQQUFxQixzQkFBZSxLQUFDO0lBRXZDLGlCQUF3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O1lBT3RELGNBQXVFO1lBQXZFLGdHQUF1RTtZQWV0RCxlQUFvQjtZQUFwQiwrQ0FBb0I7WUFVekMsY0FBZ0Q7WUFBaEQseUVBQWdEO1lBY2hELGNBQWdEO1lBQWhELHlFQUFnRDtZQWFoRCxjQUFpRDtZQUFqRCwwRUFBaUQ7WUFZNUMsZUFBdUI7WUFBdkIsNENBQXVCO1lBNkI3QixjQUEwRztZQUExRywySEFBMEc7WUFLMUcsQUFEQSxBQURBLGlEQUFnQyxtR0FDc0QsMEJBQ2pFO1lBS2pCLGNBQWM7WUFBZCxtQ0FBYztZQUlkLGNBQWlCO1lBQWpCLHNDQUFpQjs7O2lGRG5KaEIsb0JBQW9CO2NBSmhDLFNBQVM7MkJBQ0UsZUFBZTs0T0FJK0IsU0FBUztrQkFBaEUsU0FBUzttQkFBQyxXQUFXLEVBQUUsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7WUFDWSxTQUFTO2tCQUExRSxTQUFTO21CQUFDLFdBQVcsRUFBRSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFOztrRkFGckQsb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBOZ0Zvcm0gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7XG4gIEFmdGVyVmlld0NoZWNrZWQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbXBvbmVudFJlZixcbiAgSXRlcmFibGVEaWZmZXJzLFxuICBPbkluaXQsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0NvbnRhaW5lclJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgUG9MYW5ndWFnZVNlcnZpY2UgfSBmcm9tICdAcG8tdWkvbmctY29tcG9uZW50cyc7XG5cbmltcG9ydCB7IGlzRXh0ZXJuYWxMaW5rIH0gZnJvbSAnLi4vLi4vdXRpbHMvdXRpbCc7XG5pbXBvcnQgeyBQb0NvbXBvbmVudEluamVjdG9yU2VydmljZSB9IGZyb20gJ0Bwby11aS9uZy1jb21wb25lbnRzJztcblxuaW1wb3J0IHsgUG9Nb2RhbFBhc3N3b3JkUmVjb3ZlcnlDb21wb25lbnQgfSBmcm9tICcuLi9wby1tb2RhbC1wYXNzd29yZC1yZWNvdmVyeS9wby1tb2RhbC1wYXNzd29yZC1yZWNvdmVyeS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUG9Nb2RhbFBhc3N3b3JkUmVjb3ZlcnlUeXBlIH0gZnJvbSAnLi4vcG8tbW9kYWwtcGFzc3dvcmQtcmVjb3ZlcnkvZW51bXMvcG8tbW9kYWwtcGFzc3dvcmQtcmVjb3ZlcnktdHlwZS5lbnVtJztcbmltcG9ydCB7XG4gIFBvUGFnZUxvZ2luQmFzZUNvbXBvbmVudCxcbiAgcG9QYWdlTG9naW5MaXRlcmFsSW4sXG4gIHBvUGFnZUxvZ2luTGl0ZXJhbHNEZWZhdWx0XG59IGZyb20gJy4vcG8tcGFnZS1sb2dpbi1iYXNlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQb1BhZ2VMb2dpblJlY292ZXJ5IH0gZnJvbSAnLi9pbnRlcmZhY2VzL3BvLXBhZ2UtbG9naW4tcmVjb3ZlcnkuaW50ZXJmYWNlJztcbmltcG9ydCB7IFBvUGFnZUxvZ2luU2VydmljZSB9IGZyb20gJy4vcG8tcGFnZS1sb2dpbi5zZXJ2aWNlJztcblxuLyoqXG4gKiBAZG9jc0V4dGVuZHMgUG9QYWdlTG9naW5CYXNlQ29tcG9uZW50XG4gKlxuICogQGV4YW1wbGVcbiAqXG4gKiA8ZXhhbXBsZSBuYW1lPVwicG8tcGFnZS1sb2dpbi1iYXNpY1wiIHRpdGxlPVwiUE8gUGFnZSBMb2dpbiBCYXNpY1wiPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tcGFnZS1sb2dpbi1iYXNpYy9zYW1wbGUtcG8tcGFnZS1sb2dpbi1iYXNpYy5jb21wb25lbnQuaHRtbFwiPiA8L2ZpbGU+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1wYWdlLWxvZ2luLWJhc2ljL3NhbXBsZS1wby1wYWdlLWxvZ2luLWJhc2ljLmNvbXBvbmVudC50c1wiPiA8L2ZpbGU+XG4gKiA8L2V4YW1wbGU+XG4gKlxuICogPGV4YW1wbGUgbmFtZT1cInBvLXBhZ2UtbG9naW4tbGFic1wiIHRpdGxlPVwiUE8gUGFnZSBMb2dpbiBMYWJzXCI+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1wYWdlLWxvZ2luLWxhYnMvc2FtcGxlLXBvLXBhZ2UtbG9naW4tbGFicy5jb21wb25lbnQuaHRtbFwiPiA8L2ZpbGU+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1wYWdlLWxvZ2luLWxhYnMvc2FtcGxlLXBvLXBhZ2UtbG9naW4tbGFicy5jb21wb25lbnQudHNcIj4gPC9maWxlPlxuICogPC9leGFtcGxlPlxuICpcbiAqIDxleGFtcGxlIG5hbWU9XCJwby1wYWdlLWxvZ2luLWh1bWFuLXJlc291cmNlc1wiIHRpdGxlPVwiUE8gUGFnZSBMb2dpbiAtIEh1bWFuIFJlc291cmNlc1wiPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tcGFnZS1sb2dpbi1odW1hbi1yZXNvdXJjZXMvc2FtcGxlLXBvLXBhZ2UtbG9naW4taHVtYW4tcmVzb3VyY2VzLmNvbXBvbmVudC5odG1sXCI+IDwvZmlsZT5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLXBhZ2UtbG9naW4taHVtYW4tcmVzb3VyY2VzL3NhbXBsZS1wby1wYWdlLWxvZ2luLWh1bWFuLXJlc291cmNlcy5jb21wb25lbnQudHNcIj4gPC9maWxlPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tcGFnZS1sb2dpbi1odW1hbi1yZXNvdXJjZXMvc2FtcGxlLXBvLXBhZ2UtbG9naW4taHVtYW4tcmVzb3VyY2VzLm1vZHVsZS50c1wiPiA8L2ZpbGU+XG4gKiA8L2V4YW1wbGU+XG4gKlxuICogPGV4YW1wbGUgbmFtZT1cInBvLXBhZ2UtbG9naW4tYXV0b21hdGljLXNlcnZpY2VcIiB0aXRsZT1cIlBPIFBhZ2UgTG9naW4gLSBBdXRvbWF0aWMgU2VydmljZVwiPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tcGFnZS1sb2dpbi1hdXRvbWF0aWMtc2VydmljZS9zYW1wbGUtcG8tcGFnZS1sb2dpbi1hdXRvbWF0aWMtc2VydmljZS5jb21wb25lbnQuaHRtbFwiPiA8L2ZpbGU+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1wYWdlLWxvZ2luLWF1dG9tYXRpYy1zZXJ2aWNlL3NhbXBsZS1wby1wYWdlLWxvZ2luLWF1dG9tYXRpYy1zZXJ2aWNlLmNvbXBvbmVudC50c1wiPiA8L2ZpbGU+XG4gKiA8L2V4YW1wbGU+XG4gKi9cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncG8tcGFnZS1sb2dpbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9wby1wYWdlLWxvZ2luLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBQb1BhZ2VMb2dpbkNvbXBvbmVudCBleHRlbmRzIFBvUGFnZUxvZ2luQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0NoZWNrZWQsIE9uSW5pdCB7XG4gIEBWaWV3Q2hpbGQoJ2xvZ2luRm9ybScsIHsgcmVhZDogTmdGb3JtLCBzdGF0aWM6IHRydWUgfSkgbG9naW5Gb3JtOiBOZ0Zvcm07XG4gIEBWaWV3Q2hpbGQoJ3BhZ2VMb2dpbicsIHsgcmVhZDogVmlld0NvbnRhaW5lclJlZiwgc3RhdGljOiB0cnVlIH0pIHBhZ2VMb2dpbjogVmlld0NvbnRhaW5lclJlZjtcblxuICBpbml0aWFsU2VsZWN0TGFuZ3VhZ2U6IHN0cmluZztcblxuICBwcml2YXRlIGNvbXBvbmVudFJlZjogQ29tcG9uZW50UmVmPGFueT4gPSBudWxsO1xuICBwcml2YXRlIGRpZmZlcjogYW55O1xuICBwcml2YXRlIHJlYWRvbmx5IGN1c3RvbVBhc3N3b3JkRXJyb3IgPSB7IGN1c3RvbTogZmFsc2UgfTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHByaXZhdGUgcG9Db21wb25lbnRJbmplY3RvcjogUG9Db21wb25lbnRJbmplY3RvclNlcnZpY2UsXG4gICAgZGlmZmVyczogSXRlcmFibGVEaWZmZXJzLFxuICAgIGxvZ2luU2VydmljZTogUG9QYWdlTG9naW5TZXJ2aWNlLFxuICAgIHJvdXRlcjogUm91dGVyLFxuICAgIHBvTGFuZ3VhZ2VTZXJ2aWNlOiBQb0xhbmd1YWdlU2VydmljZVxuICApIHtcbiAgICBzdXBlcihsb2dpblNlcnZpY2UsIHJvdXRlciwgcG9MYW5ndWFnZVNlcnZpY2UpO1xuICAgIHRoaXMuZGlmZmVyID0gZGlmZmVycy5maW5kKFtdKS5jcmVhdGUobnVsbCk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0NoZWNrZWQoKSB7XG4gICAgaWYgKHRoaXMuZGlmZmVyKSB7XG4gICAgICB0aGlzLnZhbGlkYXRlQXJyYXlDaGFuZ2VzKHRoaXMuZGlmZmVyLCBbXG4gICAgICAgIHsgYXJyYXk6IHRoaXMubG9naW5FcnJvcnMsIGNhbGxiYWNrOiB0aGlzLmdlbmVyYXRlTG9naW5FcnJvci5iaW5kKHRoaXMpIH0sXG4gICAgICAgIHsgYXJyYXk6IHRoaXMucGFzc3dvcmRFcnJvcnMsIGNhbGxiYWNrOiB0aGlzLmdlbmVyYXRlUGFzc3dvcmRFcnJvci5iaW5kKHRoaXMpIH1cbiAgICAgIF0pO1xuICAgIH1cbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuY2hlY2tpbmdGb3JSb3V0ZU1ldGFkYXRhKHRoaXMuYWN0aXZhdGVkUm91dGUuc25hcHNob3QuZGF0YSk7XG4gICAgdGhpcy5zZWxlY3RlZExhbmd1YWdlID0gdGhpcy5pbml0aWFsaXplTGFuZ3VhZ2UoKTtcbiAgICB0aGlzLmluaXRpYWxTZWxlY3RMYW5ndWFnZSA9IHRoaXMuc2VsZWN0ZWRMYW5ndWFnZTtcbiAgfVxuXG4gIGFjdGl2YXRlU3VwcG9ydCgpIHtcbiAgICBzd2l0Y2ggKHR5cGVvZiB0aGlzLnN1cHBvcnQpIHtcbiAgICAgIGNhc2UgJ3N0cmluZyc6IHtcbiAgICAgICAgdGhpcy5zZXRVcmxSZWRpcmVjdCh0aGlzLnN1cHBvcnQpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ2Z1bmN0aW9uJzoge1xuICAgICAgICB0aGlzLnN1cHBvcnQoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY2hhbmdlTG9naW5Nb2RlbCgpIHtcbiAgICBpZiAodGhpcy5hdXRoZW50aWNhdGlvblVybCkge1xuICAgICAgdGhpcy5sb2dpbkVycm9ycyA9IFtdO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNldExvZ2luRXJyb3JzKHRoaXMubG9naW5FcnJvcnMpO1xuICAgICAgdGhpcy5sb2dpbkNoYW5nZS5lbWl0KHRoaXMubG9naW4pO1xuICAgIH1cbiAgfVxuXG4gIGNoYW5nZVBhc3N3b3JkTW9kZWwoKSB7XG4gICAgaWYgKHRoaXMuYXV0aGVudGljYXRpb25VcmwpIHtcbiAgICAgIHRoaXMucGFzc3dvcmRFcnJvcnMgPSBbXTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZXRQYXNzd29yZEVycm9ycyh0aGlzLnBhc3N3b3JkRXJyb3JzKTtcbiAgICAgIHRoaXMucGFzc3dvcmRDaGFuZ2UuZW1pdCh0aGlzLnBhc3N3b3JkKTtcbiAgICB9XG4gIH1cblxuICBvblNlbGVjdGVkTGFuZ3VhZ2UobGFuZ3VhZ2U6IHN0cmluZykge1xuICAgIHRoaXMubGFuZ3VhZ2VDaGFuZ2UuZW1pdCh0aGlzLmxhbmd1YWdlc0xpc3QuZmluZChsYW5ndWFnZUl0ZW0gPT4gbGFuZ3VhZ2VJdGVtLmxhbmd1YWdlID09PSBsYW5ndWFnZSkpO1xuICAgIHRoaXMuc2VsZWN0ZWRMYW5ndWFnZSA9IGxhbmd1YWdlO1xuICB9XG5cbiAgb3BlblVybChyZWNvdmVyeTogYW55KTogdm9pZCB7XG4gICAgc3dpdGNoICh0eXBlb2YgcmVjb3ZlcnkpIHtcbiAgICAgIGNhc2UgJ3N0cmluZyc6IHtcbiAgICAgICAgdGhpcy5zZXRVcmxSZWRpcmVjdChyZWNvdmVyeSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAnZnVuY3Rpb24nOiB7XG4gICAgICAgIHJlY292ZXJ5KCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAnb2JqZWN0Jzoge1xuICAgICAgICB0aGlzLmNyZWF0ZU1vZGFsUGFzc3dvcmRSZWNvdmVyeUNvbXBvbmVudChyZWNvdmVyeSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBjb25jYXRlbmF0ZUxvZ2luSGludFdpdGhDb250YWN0RW1haWwoY29udGFjdEVtYWlsOiBzdHJpbmcpIHtcbiAgICBjb25zdCBkZWZhdWx0TG9naW5IaW50TGl0ZXJhbCA9IHBvUGFnZUxvZ2luTGl0ZXJhbHNEZWZhdWx0W3RoaXMubGFuZ3VhZ2VdLmxvZ2luSGludDtcbiAgICBjb25zdCBwcmVwb3NpdGlvbkxpdGVyYWwgPSBwb1BhZ2VMb2dpbkxpdGVyYWxJblt0aGlzLmxhbmd1YWdlXTtcblxuICAgIHJldHVybiB0aGlzLmNvbmNhdGVuYXRlTGl0ZXJhbChjb250YWN0RW1haWwsICdsb2dpbkhpbnQnLCBkZWZhdWx0TG9naW5IaW50TGl0ZXJhbCwgcHJlcG9zaXRpb25MaXRlcmFsKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzZXRMb2dpbkVycm9ycyhlcnJvcnM6IEFycmF5PHN0cmluZz4pIHtcbiAgICBjb25zdCBjb250cm9sID0gdGhpcy5sb2dpbkZvcm0uZm9ybS5jb250cm9sc1snbG9naW4nXTtcbiAgICB0aGlzLnNldENvbnRyb2xFcnJvcnMoJ2FsbExvZ2luRXJyb3JzJywgY29udHJvbCwgZXJyb3JzLCB0aGlzLnBhZ2VMb2dpbkxpdGVyYWxzLmxvZ2luRXJyb3JQYXR0ZXJuKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzZXRQYXNzd29yZEVycm9ycyhlcnJvcnM6IEFycmF5PHN0cmluZz4pIHtcbiAgICBjb25zdCBjb250cm9sID0gdGhpcy5sb2dpbkZvcm0uZm9ybS5jb250cm9sc1sncGFzc3dvcmQnXTtcbiAgICB0aGlzLnNldENvbnRyb2xFcnJvcnMoJ2FsbFBhc3N3b3JkRXJyb3JzJywgY29udHJvbCwgZXJyb3JzLCB0aGlzLnBhZ2VMb2dpbkxpdGVyYWxzLnBhc3N3b3JkRXJyb3JQYXR0ZXJuKTtcbiAgfVxuXG4gIHByaXZhdGUgY2hlY2tpbmdGb3JNZXRhZGF0YVByb3BlcnR5KG9iamVjdCwgcHJvcGVydHkpIHtcbiAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iamVjdCwgcHJvcGVydHkpKSB7XG4gICAgICByZXR1cm4gb2JqZWN0W3Byb3BlcnR5XTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNoZWNraW5nRm9yUm91dGVNZXRhZGF0YShkYXRhKSB7XG4gICAgaWYgKE9iamVjdC5rZXlzKGRhdGEpLmxlbmd0aCAhPT0gMCkge1xuICAgICAgdGhpcy5hdXRoZW50aWNhdGlvblVybCA9IHRoaXMuY2hlY2tpbmdGb3JNZXRhZGF0YVByb3BlcnR5KGRhdGEsICdzZXJ2aWNlQXBpJykgfHwgdGhpcy5hdXRoZW50aWNhdGlvblVybDtcbiAgICAgIHRoaXMuYXV0aGVudGljYXRpb25UeXBlID0gdGhpcy5jaGVja2luZ0Zvck1ldGFkYXRhUHJvcGVydHkoZGF0YSwgJ2F1dGhlbnRpY2F0aW9uVHlwZScpIHx8IHRoaXMuYXV0aGVudGljYXRpb25UeXBlO1xuICAgICAgdGhpcy5lbnZpcm9ubWVudCA9IHRoaXMuY2hlY2tpbmdGb3JNZXRhZGF0YVByb3BlcnR5KGRhdGEsICdlbnZpcm9ubWVudCcpIHx8IHRoaXMuZW52aXJvbm1lbnQ7XG4gICAgICB0aGlzLnJlY292ZXJ5ID0gdGhpcy5jaGVja2luZ0Zvck1ldGFkYXRhUHJvcGVydHkoZGF0YSwgJ3JlY292ZXJ5JykgfHwgdGhpcy5yZWNvdmVyeTtcbiAgICAgIHRoaXMucmVnaXN0ZXJVcmwgPSB0aGlzLmNoZWNraW5nRm9yTWV0YWRhdGFQcm9wZXJ0eShkYXRhLCAncmVnaXN0ZXJVcmwnKSB8fCB0aGlzLnJlZ2lzdGVyVXJsO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY29uY2F0ZW5hdGUoZGVmYXVsdExpdGVyYWw6IHN0cmluZywgcHJlZml4TGl0ZXJhbDogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGAke2RlZmF1bHRMaXRlcmFsfSAke3ByZWZpeExpdGVyYWx9ICR7dmFsdWV9YDtcbiAgfVxuXG4gIHByaXZhdGUgY29uY2F0ZW5hdGVMaXRlcmFsKHZhbHVlOiBzdHJpbmcsIGxpdGVyYWw6IHN0cmluZywgZGVmYXVsdExpdGVyYWw6IHN0cmluZywgcHJlcG9zaXRpb25MaXRlcmFsOiBzdHJpbmcpIHtcbiAgICByZXR1cm4geyBbbGl0ZXJhbF06IHRoaXMuY29uY2F0ZW5hdGUoZGVmYXVsdExpdGVyYWwsIHByZXBvc2l0aW9uTGl0ZXJhbCwgdmFsdWUpIH07XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZU1vZGFsUGFzc3dvcmRSZWNvdmVyeUNvbXBvbmVudChwb1BhZ2VMb2dpblJlY292ZXJ5OiBQb1BhZ2VMb2dpblJlY292ZXJ5KSB7XG4gICAgaWYgKHRoaXMuY29tcG9uZW50UmVmKSB7XG4gICAgICB0aGlzLnBvQ29tcG9uZW50SW5qZWN0b3IuZGVzdHJveUNvbXBvbmVudEluQXBwbGljYXRpb24odGhpcy5jb21wb25lbnRSZWYpO1xuICAgIH1cblxuICAgIHRoaXMuY29tcG9uZW50UmVmID0gdGhpcy5wb0NvbXBvbmVudEluamVjdG9yLmNyZWF0ZUNvbXBvbmVudEluQXBwbGljYXRpb24oUG9Nb2RhbFBhc3N3b3JkUmVjb3ZlcnlDb21wb25lbnQpO1xuICAgIHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlLnVybFJlY292ZXJ5ID0gcG9QYWdlTG9naW5SZWNvdmVyeS51cmw7XG4gICAgdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UuY29udGFjdEVtYWlsID0gcG9QYWdlTG9naW5SZWNvdmVyeS5jb250YWN0TWFpbDtcbiAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5waG9uZU1hc2sgPSBwb1BhZ2VMb2dpblJlY292ZXJ5LnBob25lTWFzaztcbiAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS50eXBlID0gcG9QYWdlTG9naW5SZWNvdmVyeS50eXBlIHx8IFBvTW9kYWxQYXNzd29yZFJlY292ZXJ5VHlwZS5FbWFpbDtcbiAgICB0aGlzLmNvbXBvbmVudFJlZi5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5vcGVuKCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGdlbmVyYXRlTG9naW5FcnJvcigpIHtcbiAgICBpZiAodGhpcy5sb2dpbkVycm9ycyAmJiB0aGlzLmxvZ2luRXJyb3JzLmxlbmd0aCkge1xuICAgICAgdGhpcy5zZXRMb2dpbkVycm9ycyh0aGlzLmxvZ2luRXJyb3JzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgY29udHJvbCA9IHRoaXMubG9naW5Gb3JtLmZvcm0uY29udHJvbHNbJ2xvZ2luJ107XG4gICAgICBpZiAoY29udHJvbCkge1xuICAgICAgICB0aGlzLnJlc2V0Q29udHJvbChjb250cm9sKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdlbmVyYXRlUGFzc3dvcmRFcnJvcigpIHtcbiAgICBpZiAodGhpcy5wYXNzd29yZEVycm9ycyAmJiB0aGlzLnBhc3N3b3JkRXJyb3JzLmxlbmd0aCkge1xuICAgICAgdGhpcy5zZXRQYXNzd29yZEVycm9ycyh0aGlzLnBhc3N3b3JkRXJyb3JzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgY29udHJvbCA9IHRoaXMubG9naW5Gb3JtLmZvcm0uY29udHJvbHNbJ3Bhc3N3b3JkJ107XG5cbiAgICAgIGlmIChjb250cm9sKSB7XG4gICAgICAgIHRoaXMucmVzZXRDb250cm9sKGNvbnRyb2wpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmVzZXRDb250cm9sKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCkge1xuICAgIGNvbnRyb2wubWFya0FzUHJpc3RpbmUoKTtcbiAgICBjb250cm9sLm1hcmtBc1VudG91Y2hlZCgpO1xuICAgIGNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRDb250cm9sRXJyb3JzKGFsbEVycm9yczogc3RyaW5nLCBjb250cm9sOiBBYnN0cmFjdENvbnRyb2wsIGVycm9yczogQXJyYXk8c3RyaW5nPiwgcGF0dGVybkVycm9yOiBzdHJpbmcpIHtcbiAgICBpZiAoY29udHJvbCkge1xuICAgICAgdGhpc1thbGxFcnJvcnNdID0gY29udHJvbC5oYXNFcnJvcigncGF0dGVybicpID8gWy4uLmVycm9ycywgLi4uW3BhdHRlcm5FcnJvcl1dIDogWy4uLmVycm9yc107XG5cbiAgICAgIGlmIChlcnJvcnMgJiYgZXJyb3JzLmxlbmd0aCAmJiAoY29udHJvbC52YWxpZCB8fCBjb250cm9sLnByaXN0aW5lKSkge1xuICAgICAgICBjb250cm9sLm1hcmtBc1RvdWNoZWQoKTtcbiAgICAgICAgY29udHJvbC5tYXJrQXNEaXJ0eSgpO1xuICAgICAgICBjb250cm9sLnNldEVycm9ycyh0aGlzLmN1c3RvbVBhc3N3b3JkRXJyb3IpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0VXJsUmVkaXJlY3QodXJsKSB7XG4gICAgaXNFeHRlcm5hbExpbmsodXJsKSA/IHdpbmRvdy5vcGVuKHVybCwgJ19ibGFuaycpIDogdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3VybF0pO1xuICB9XG5cbiAgcHJpdmF0ZSB2YWxpZGF0ZUFycmF5Q2hhbmdlcyhkaWZmZXI6IGFueSwgYXJyYXk6IEFycmF5PHsgYXJyYXk6IEFycmF5PGFueT47IGNhbGxiYWNrOiBhbnkgfT4pIHtcbiAgICBhcnJheS5mb3JFYWNoKGVsZW1lbnQgPT4ge1xuICAgICAgY29uc3QgY2hhbmdlcyA9IGRpZmZlci5kaWZmKGVsZW1lbnQuYXJyYXkpO1xuICAgICAgaWYgKGNoYW5nZXMpIHtcbiAgICAgICAgZWxlbWVudC5jYWxsYmFjaygpO1xuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdGlhbGl6ZUxhbmd1YWdlKCkge1xuICAgIGNvbnN0IGxhbmd1YWdlID0gdGhpcy5sYW5ndWFnZXNMaXN0LmZpbmQobGFuZ3VhZ2VJdGVtID0+IGxhbmd1YWdlSXRlbS5sYW5ndWFnZSA9PT0gdGhpcy5sYW5ndWFnZSk7XG4gICAgcmV0dXJuIGxhbmd1YWdlPy5sYW5ndWFnZSB8fCB0aGlzLmxhbmd1YWdlc0xpc3RbMF0ubGFuZ3VhZ2U7XG4gIH1cbn1cbiIsIjxidXR0b24gY2xhc3M9XCJwby1wYWdlLWxvZ2luLXN1cHBvcnRcIiAoY2xpY2spPVwiYWN0aXZhdGVTdXBwb3J0KClcIiBbaGlkZGVuXT1cIiFzdXBwb3J0XCI+XG4gIDxwby1pY29uIHAtaWNvbj1cIklDT05fSEVMUFwiPjwvcG8taWNvbj5cbiAge3sgcGFnZUxvZ2luTGl0ZXJhbHM/LnN1cHBvcnQgfX1cbjwvYnV0dG9uPlxuXG48cG8tcGFnZS1iYWNrZ3JvdW5kXG4gICNwYWdlTG9naW5cbiAgW3Atc2hvdy1zZWxlY3QtbGFuZ3VhZ2VdPVwic2hvd0xhbmd1YWdlXCJcbiAgW3AtbGFuZ3VhZ2VzXT1cImxhbmd1YWdlc0xpc3RcIlxuICBbcC1pbml0aWFsLWxhbmd1YWdlXT1cImluaXRpYWxTZWxlY3RMYW5ndWFnZVwiXG4gIFtwLWJhY2tncm91bmRdPVwiYmFja2dyb3VuZFwiXG4gIFtwLWhpZ2hsaWdodC1pbmZvXT1cInBhZ2VMb2dpbkxpdGVyYWxzLmhpZ2hsaWdodEluZm9cIlxuICBbcC1sb2dvXT1cImxvZ29cIlxuICBbcC1zZWNvbmRhcnktbG9nb109XCJzZWNvbmRhcnlMb2dvXCJcbiAgKHAtc2VsZWN0ZWQtbGFuZ3VhZ2UpPVwib25TZWxlY3RlZExhbmd1YWdlKCRldmVudClcIlxuPlxuICA8aGVhZGVyIGNsYXNzPVwicG8tcGFnZS1sb2dpbi1oZWFkZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwicG8tcGFnZS1sb2dpbi1oZWFkZXItcHJvZHVjdC1uYW1lXCI+XG4gICAgICA8aDE+e3sgcHJvZHVjdE5hbWUgfX08L2gxPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cInBvLXBhZ2UtbG9naW4taGVhZGVyLXByb2R1Y3QtZW52aXJvbm1lbnQgcG8tbWItbWQtNCBwby1tYi1zbS0xXCI+XG4gICAgICA8cG8tdGFnICpuZ0lmPVwiZW52aXJvbm1lbnRcIiBwLXR5cGU9XCJ3YXJuaW5nXCIgW3AtdmFsdWVdPVwiZW52aXJvbm1lbnRcIj4gPC9wby10YWc+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInBvLXBhZ2UtbG9naW4taGVhZGVyLXdlbGNvbWUgcG8tbWItbWQtNCBwby1tYi1zbS0yXCI+e3sgcGFnZUxvZ2luTGl0ZXJhbHMud2VsY29tZSB9fTwvZGl2PlxuICA8L2hlYWRlcj5cblxuICA8Zm9ybSAjbG9naW5Gb3JtPVwibmdGb3JtXCIgY2xhc3M9XCJwby1wYWdlLWxvZ2luLWZvcm1cIj5cbiAgICA8ZGl2IGNsYXNzPVwicG8tcm93XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwicG8tbGctMTJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInBvLXBhZ2UtbG9naW4taGludCBwby1wYWdlLWxvZ2luLWluZm8tY29udGFpbmVyXCI+XG4gICAgICAgICAgPHBvLWxvZ2luXG4gICAgICAgICAgICBjbGFzcz1cInBvLXBhZ2UtbG9naW4taW5mby1maWVsZFwiXG4gICAgICAgICAgICBbY2xhc3MucG8tcGFnZS1sb2dpbi1pbmZvLWZpZWxkLWR5bmFtaWNdPVwiXG4gICAgICAgICAgICAgICFwYWdlTG9naW5MaXRlcmFscy5sb2dpbkhpbnQgJiYgIXBhZ2VMb2dpbkxpdGVyYWxzLnJlbWVtYmVyVXNlckhpbnRcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgICBuYW1lPVwibG9naW5cIlxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJsb2dpblwiXG4gICAgICAgICAgICBwLWF1dG8tZm9jdXNcbiAgICAgICAgICAgIHAtcmVxdWlyZWRcbiAgICAgICAgICAgIFtwLWxhYmVsXT1cInBhZ2VMb2dpbkxpdGVyYWxzLmxvZ2luTGFiZWxcIlxuICAgICAgICAgICAgW3Atbm8tYXV0b2NvbXBsZXRlXT1cIm5vQXV0b2NvbXBsZXRlTG9naW5cIlxuICAgICAgICAgICAgW3AtcGF0dGVybl09XCJsb2dpblBhdHRlcm5cIlxuICAgICAgICAgICAgW3AtcGxhY2Vob2xkZXJdPVwicGFnZUxvZ2luTGl0ZXJhbHMubG9naW5QbGFjZWhvbGRlclwiXG4gICAgICAgICAgICAoY2xpY2spPVwiY2xvc2VQb3BvdmVyKClcIlxuICAgICAgICAgICAgKGtleXVwLmVudGVyKT1cImxvZ2luRm9ybS52YWxpZCAmJiBvbkxvZ2luU3VibWl0KClcIlxuICAgICAgICAgICAgKHAtY2hhbmdlLW1vZGVsKT1cImNoYW5nZUxvZ2luTW9kZWwoKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgIDwvcG8tbG9naW4+XG5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAqbmdJZj1cInBhZ2VMb2dpbkxpdGVyYWxzLmxvZ2luSGludCB8fCBwYWdlTG9naW5MaXRlcmFscy5yZW1lbWJlclVzZXJIaW50XCJcbiAgICAgICAgICAgIGNsYXNzPVwicG8tcGFnZS1sb2dpbi1pbmZvLWljb24tY29udGFpbmVyXCJcbiAgICAgICAgICAgIFtjbGFzcy5wby1wYWdlLWxvZ2luLWluZm8taWNvbi1jb250YWluZXItZHluYW1pY109XCJcbiAgICAgICAgICAgICAgIXBhZ2VMb2dpbkxpdGVyYWxzLmxvZ2luSGludCAmJiAhcGFnZUxvZ2luTGl0ZXJhbHMucmVtZW1iZXJVc2VySGludFxuICAgICAgICAgICAgXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8cG8taWNvblxuICAgICAgICAgICAgICBwLWljb249XCJJQ09OX0lORk8gcG8tZmllbGQtaWNvblwiXG4gICAgICAgICAgICAgICpuZ0lmPVwicGFnZUxvZ2luTGl0ZXJhbHMubG9naW5IaW50XCJcbiAgICAgICAgICAgICAgcC10b29sdGlwLXBvc2l0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgICBbcC10b29sdGlwXT1cInBhZ2VMb2dpbkxpdGVyYWxzLmxvZ2luSGludFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8L3BvLWljb24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJwby1maWVsZC1jb250YWluZXItYm90dG9tIHBvLWZpZWxkLWNvbnRhaW5lci1lcnJvci1jb250YWluZXJcIj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgZXJyb3Igb2YgYWxsTG9naW5FcnJvcnNcIlxuICAgICAgICAgICAgY2xhc3M9XCJwby1maWVsZC1jb250YWluZXItYm90dG9tLXRleHQtZXJyb3IgcG8tZmllbGQtY29udGFpbmVyLWVycm9yLWl0ZW1cIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxwby1pY29uIHAtaWNvbj1cIklDT05fRVhDTEFNQVRJT05cIj48L3BvLWljb24+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInBvLWZpZWxkLWNvbnRhaW5lci1lcnJvci10ZXh0XCI+e3sgZXJyb3IgfX08L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJwby1sZy0xMlwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicG8tcGFnZS1sb2dpbi1wYXNzd29yZC1jb250YWluZXJcIj5cbiAgICAgICAgICA8cG8tcGFzc3dvcmRcbiAgICAgICAgICAgIGNsYXNzPVwicG8tcGFnZS1sb2dpbi1maWVsZC1zaXplIHBvLXBhZ2UtbG9naW4tcGFzc3dvcmQtaXRlbVwiXG4gICAgICAgICAgICBbY2xhc3MucG8tcGFnZS1sb2dpbi1maWVsZC1zaXplLWR5bmFtaWNdPVwiXG4gICAgICAgICAgICAgICFwYWdlTG9naW5MaXRlcmFscy5sb2dpbkhpbnQgJiYgIXBhZ2VMb2dpbkxpdGVyYWxzLnJlbWVtYmVyVXNlckhpbnRcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgICBuYW1lPVwicGFzc3dvcmRcIlxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJwYXNzd29yZFwiXG4gICAgICAgICAgICBwLXJlcXVpcmVkXG4gICAgICAgICAgICBbcC1oaWRlLXBhc3N3b3JkLXBlZWtdPVwiaGlkZVBhc3N3b3JkUGVla1wiXG4gICAgICAgICAgICBbcC1sYWJlbF09XCJwYWdlTG9naW5MaXRlcmFscy5wYXNzd29yZExhYmVsXCJcbiAgICAgICAgICAgIFtwLW5vLWF1dG9jb21wbGV0ZV09XCJub0F1dG9jb21wbGV0ZVBhc3N3b3JkXCJcbiAgICAgICAgICAgIFtwLXBhdHRlcm5dPVwicGFzc3dvcmRQYXR0ZXJuXCJcbiAgICAgICAgICAgIFtwLXBsYWNlaG9sZGVyXT1cInBhZ2VMb2dpbkxpdGVyYWxzLnBhc3N3b3JkUGxhY2Vob2xkZXJcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImNsb3NlUG9wb3ZlcigpXCJcbiAgICAgICAgICAgIChrZXl1cC5lbnRlcik9XCJsb2dpbkZvcm0udmFsaWQgJiYgb25Mb2dpblN1Ym1pdCgpXCJcbiAgICAgICAgICAgIChwLWNoYW5nZS1tb2RlbCk9XCJjaGFuZ2VQYXNzd29yZE1vZGVsKClcIlxuICAgICAgICAgID5cbiAgICAgICAgICA8L3BvLXBhc3N3b3JkPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICpuZ0lmPVwicGFnZUxvZ2luTGl0ZXJhbHMubG9naW5IaW50IHx8IHBhZ2VMb2dpbkxpdGVyYWxzLnJlbWVtYmVyVXNlckhpbnRcIlxuICAgICAgICAgICAgY2xhc3M9XCJwby1wYWdlLWxvZ2luLXBhc3N3b3JkLWl0ZW0gcG8tcGFnZS1sb2dpbi1wYXNzd29yZC1wb3BvdmVyLWNvbnRhaW5lclwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHBvLXBhZ2UtbG9naW4tcG9wb3ZlclxuICAgICAgICAgICAgICAqbmdJZj1cInNob3dFeGNlZWRlZEF0dGVtcHRzV2FybmluZyAmJiBleGNlZWRlZEF0dGVtcHRzV2FybmluZ1wiXG4gICAgICAgICAgICAgIFtwLWxpdGVyYWxzXT1cInBhZ2VMb2dpbkxpdGVyYWxzXCJcbiAgICAgICAgICAgICAgW3AtcmVjb3ZlcnldPVwicmVjb3ZlcnlcIlxuICAgICAgICAgICAgICBbcC1yZW1haW5pbmctYXR0ZW1wdHNdPVwiZXhjZWVkZWRBdHRlbXB0c1dhcm5pbmdcIlxuICAgICAgICAgICAgICAocC1mb3Jnb3QtcGFzc3dvcmQpPVwib3BlblVybCgkZXZlbnQpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDwvcG8tcGFnZS1sb2dpbi1wb3BvdmVyPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInBvLWZpZWxkLWNvbnRhaW5lci1ib3R0b20gcG8tZmllbGQtY29udGFpbmVyLWVycm9yLWNvbnRhaW5lclwiPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBlcnJvciBvZiBhbGxQYXNzd29yZEVycm9yc1wiXG4gICAgICAgICAgICBjbGFzcz1cInBvLWZpZWxkLWNvbnRhaW5lci1ib3R0b20tdGV4dC1lcnJvciBwby1maWVsZC1jb250YWluZXItZXJyb3ItaXRlbVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHBvLWljb24gcC1pY29uPVwiSUNPTl9FWENMQU1BVElPTlwiPjwvcG8taWNvbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicG8tZmllbGQtY29udGFpbmVyLWVycm9yLXRleHRcIj57eyBlcnJvciB9fTwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPHBvLWlucHV0XG4gICAgICAgICpuZ0lmPVwiY3VzdG9tRmllbGQgJiYgY3VzdG9tRmllbGRUeXBlID09PSAnaW5wdXQnXCJcbiAgICAgICAgW2NsYXNzLnBvLXBhZ2UtbG9naW4tZmllbGQtc2l6ZS1keW5hbWljXT1cIiFwYWdlTG9naW5MaXRlcmFscy5sb2dpbkhpbnQgJiYgIXBhZ2VMb2dpbkxpdGVyYWxzLnJlbWVtYmVyVXNlckhpbnRcIlxuICAgICAgICBjbGFzcz1cInBvLXBhZ2UtbG9naW4tZmllbGQtc2l6ZSBwby1sZy0xMlwiXG4gICAgICAgIG5hbWU9XCJjdXN0b21GaWVsZElucHV0XCJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJjdXN0b21GaWVsZE9iamVjdC52YWx1ZVwiXG4gICAgICAgIHAtcmVxdWlyZWRcbiAgICAgICAgW3AtZXJyb3ItcGF0dGVybl09XCJjdXN0b21GaWVsZE9iamVjdC5lcnJvclBhdHRlcm4gfHwgcGFnZUxvZ2luTGl0ZXJhbHMuY3VzdG9tRmllbGRFcnJvclBhdHRlcm5cIlxuICAgICAgICBbcC1wYXR0ZXJuXT1cImN1c3RvbUZpZWxkT2JqZWN0LnBhdHRlcm5cIlxuICAgICAgICBbcC1wbGFjZWhvbGRlcl09XCJjdXN0b21GaWVsZE9iamVjdC5wbGFjZWhvbGRlciB8fCBwYWdlTG9naW5MaXRlcmFscy5jdXN0b21GaWVsZFBsYWNlaG9sZGVyXCJcbiAgICAgICAgKGtleXVwLmVudGVyKT1cImxvZ2luRm9ybS52YWxpZCAmJiBvbkxvZ2luU3VibWl0KClcIlxuICAgICAgPlxuICAgICAgPC9wby1pbnB1dD5cblxuICAgICAgPHBvLWNvbWJvXG4gICAgICAgICpuZ0lmPVwiY3VzdG9tRmllbGQgJiYgY3VzdG9tRmllbGRUeXBlID09PSAnY29tYm8nXCJcbiAgICAgICAgW2NsYXNzLnBvLXBhZ2UtbG9naW4tZmllbGQtc2l6ZS1keW5hbWljXT1cIiFwYWdlTG9naW5MaXRlcmFscy5sb2dpbkhpbnQgJiYgIXBhZ2VMb2dpbkxpdGVyYWxzLnJlbWVtYmVyVXNlckhpbnRcIlxuICAgICAgICBjbGFzcz1cInBvLXBhZ2UtbG9naW4tZmllbGQtc2l6ZSBwby1sZy0xMlwiXG4gICAgICAgIG5hbWU9XCJjdXN0b21GaWVsZENvbWJvXCJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJjdXN0b21GaWVsZE9iamVjdC52YWx1ZVwiXG4gICAgICAgIHAtcmVxdWlyZWRcbiAgICAgICAgW3AtZmllbGQtdmFsdWVdPVwiY3VzdG9tRmllbGRPYmplY3QuZmllbGRWYWx1ZVwiXG4gICAgICAgIFtwLWZpbHRlci1zZXJ2aWNlXT1cImN1c3RvbUZpZWxkT2JqZWN0LnVybFwiXG4gICAgICAgIFtwLXBsYWNlaG9sZGVyXT1cImN1c3RvbUZpZWxkT2JqZWN0LnBsYWNlaG9sZGVyIHx8IHBhZ2VMb2dpbkxpdGVyYWxzLmN1c3RvbUZpZWxkUGxhY2Vob2xkZXJcIlxuICAgICAgPlxuICAgICAgPC9wby1jb21ibz5cblxuICAgICAgPHBvLXNlbGVjdFxuICAgICAgICAqbmdJZj1cImN1c3RvbUZpZWxkICYmIGN1c3RvbUZpZWxkVHlwZSA9PT0gJ3NlbGVjdCdcIlxuICAgICAgICBbY2xhc3MucG8tcGFnZS1sb2dpbi1maWVsZC1zaXplLWR5bmFtaWNdPVwiIXBhZ2VMb2dpbkxpdGVyYWxzLmxvZ2luSGludCAmJiAhcGFnZUxvZ2luTGl0ZXJhbHMucmVtZW1iZXJVc2VySGludFwiXG4gICAgICAgIGNsYXNzPVwicG8tcGFnZS1sb2dpbi1maWVsZC1zaXplIHBvLWxnLTEyXCJcbiAgICAgICAgbmFtZT1cImN1c3RvbUZpZWxkU2VsZWN0XCJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJjdXN0b21GaWVsZE9iamVjdC52YWx1ZVwiXG4gICAgICAgIHAtcmVxdWlyZWRcbiAgICAgICAgW3AtcGxhY2Vob2xkZXJdPVwiY3VzdG9tRmllbGRPYmplY3QucGxhY2Vob2xkZXIgfHwgcGFnZUxvZ2luTGl0ZXJhbHMuY3VzdG9tRmllbGRQbGFjZWhvbGRlclwiXG4gICAgICAgIFtwLW9wdGlvbnNdPVwiY3VzdG9tRmllbGRPYmplY3Qub3B0aW9uc1wiXG4gICAgICA+XG4gICAgICA8L3BvLXNlbGVjdD5cblxuICAgICAgPGRpdiBjbGFzcz1cInBvLWxnLTEyXCI+XG4gICAgICAgIDxkaXYgKm5nSWY9XCIhaGlkZVJlbWVtYmVyVXNlclwiIGNsYXNzPVwicG8tcGFnZS1sb2dpbi1oaW50IHBvLXBhZ2UtbG9naW4taW5mby1jb250YWluZXJcIj5cbiAgICAgICAgICA8cG8tc3dpdGNoXG4gICAgICAgICAgICBjbGFzcz1cInBvLXBhZ2UtbG9naW4taW5mby1maWVsZCBwby1sZy03IHBvLW9mZnNldC1sZy01IHBvLW9mZnNldC14bC01XCJcbiAgICAgICAgICAgIG5hbWU9XCJyZW1lbWJlclVzZXJcIlxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJyZW1lbWJlclVzZXJcIlxuICAgICAgICAgICAgcC1sYWJlbC1wb3NpdGlvbj1cIjFcIlxuICAgICAgICAgICAgW3AtbGFiZWwtb2ZmXT1cInBhZ2VMb2dpbkxpdGVyYWxzLnJlbWVtYmVyVXNlclwiXG4gICAgICAgICAgICBbcC1sYWJlbC1vbl09XCJwYWdlTG9naW5MaXRlcmFscy5yZW1lbWJlclVzZXJcIlxuICAgICAgICAgICAgKGtleXVwLmVudGVyKT1cImxvZ2luRm9ybS52YWxpZCAmJiBvbkxvZ2luU3VibWl0KClcIlxuICAgICAgICAgID5cbiAgICAgICAgICA8L3BvLXN3aXRjaD5cblxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICpuZ0lmPVwicGFnZUxvZ2luTGl0ZXJhbHMubG9naW5IaW50IHx8IHBhZ2VMb2dpbkxpdGVyYWxzLnJlbWVtYmVyVXNlckhpbnRcIlxuICAgICAgICAgICAgY2xhc3M9XCJwby1wYWdlLWxvZ2luLWluZm8taWNvbi1jb250YWluZXIgcG8tcGFnZS1sb2dpbi1pbmZvLWljb24tcmVtZW1iZXItdXNlclwiXG4gICAgICAgICAgICBbY2xhc3MucG8tcGFnZS1sb2dpbi1pbmZvLWljb24tY29udGFpbmVyLWR5bmFtaWNdPVwiIXBhZ2VMb2dpbkxpdGVyYWxzLnJlbWVtYmVyVXNlckhpbnRcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxwby1pY29uXG4gICAgICAgICAgICAgIHAtaWNvbj1cIklDT05fSU5GTyBwby1maWVsZC1pY29uXCJcbiAgICAgICAgICAgICAgKm5nSWY9XCJwYWdlTG9naW5MaXRlcmFscy5yZW1lbWJlclVzZXJIaW50XCJcbiAgICAgICAgICAgICAgcC10b29sdGlwLXBvc2l0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgICBbcC10b29sdGlwXT1cInBhZ2VMb2dpbkxpdGVyYWxzLnJlbWVtYmVyVXNlckhpbnRcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9wby1pY29uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8cG8tYnV0dG9uXG4gICAgICAgIFtjbGFzcy5wby1wYWdlLWxvZ2luLWJ1dHRvbi1keW5hbWljXT1cIiFwYWdlTG9naW5MaXRlcmFscy5sb2dpbkhpbnQgJiYgIXBhZ2VMb2dpbkxpdGVyYWxzLnJlbWVtYmVyVXNlckhpbnRcIlxuICAgICAgICBjbGFzcz1cInBvLWxnLTEyIHBvLXBhZ2UtbG9naW4tYnV0dG9uIHBvLXBhZ2UtbG9naW4tZmllbGQtc2l6ZVwiXG4gICAgICAgIHAta2luZD1cInByaW1hcnlcIlxuICAgICAgICBbcC1kaXNhYmxlZF09XCJsb2dpbkZvcm0uaW52YWxpZFwiXG4gICAgICAgIFtwLWxhYmVsXT1cImxvYWRpbmcgPyBwYWdlTG9naW5MaXRlcmFscy5zdWJtaXR0ZWRMYWJlbCA6IHBhZ2VMb2dpbkxpdGVyYWxzLnN1Ym1pdExhYmVsXCJcbiAgICAgICAgW3AtbG9hZGluZ109XCJsb2FkaW5nXCJcbiAgICAgICAgKHAtY2xpY2spPVwib25Mb2dpblN1Ym1pdCgpXCJcbiAgICAgID5cbiAgICAgIDwvcG8tYnV0dG9uPlxuXG4gICAgICA8ZGl2ICpuZ0lmPVwicmVjb3ZlcnlcIiBjbGFzcz1cInBvLXBhZ2UtbG9naW4tcmVjb3ZlcnktbGlua1wiPlxuICAgICAgICA8YSBjbGFzcz1cInBvLWZvbnQtdGV4dC1sYXJnZS1ib2xkXCIgKGNsaWNrKT1cIm9wZW5VcmwocmVjb3ZlcnkpXCI+e3sgcGFnZUxvZ2luTGl0ZXJhbHMuZm9yZ290UGFzc3dvcmQgfX08L2E+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiAqbmdJZj1cInJlZ2lzdGVyVXJsXCIgY2xhc3M9XCJwby1wYWdlLWxvZ2luLXJlZ2lzdGVyLWxpbmtcIj5cbiAgICAgICAgPGEgY2xhc3M9XCJwby1mb250LXRleHQtbGFyZ2UtYm9sZFwiIChjbGljayk9XCJvcGVuVXJsKHJlZ2lzdGVyVXJsKVwiPnt7IHBhZ2VMb2dpbkxpdGVyYWxzLnJlZ2lzdGVyVXJsIH19PC9hPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZm9ybT5cbjwvcG8tcGFnZS1iYWNrZ3JvdW5kPlxuIl19
|
|
483
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tcGFnZS1sb2dpbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90ZW1wbGF0ZXMvc3JjL2xpYi9jb21wb25lbnRzL3BvLXBhZ2UtbG9naW4vcG8tcGFnZS1sb2dpbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90ZW1wbGF0ZXMvc3JjL2xpYi9jb21wb25lbnRzL3BvLXBhZ2UtbG9naW4vcG8tcGFnZS1sb2dpbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW1CLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXpELE9BQU8sRUFHTCxTQUFTLEVBSVQsU0FBUyxFQUNULGdCQUFnQixFQUNqQixNQUFNLGVBQWUsQ0FBQztBQUl2QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFHbEQsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sb0VBQW9FLENBQUM7QUFDdEgsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sMEVBQTBFLENBQUM7QUFDdkgsT0FBTyxFQUNMLHdCQUF3QixFQUN4QixvQkFBb0IsRUFDcEIsMEJBQTBCLEVBQzNCLE1BQU0sZ0NBQWdDLENBQUM7Ozs7Ozs7Ozs7OztJQ0ZsQyw2QkFBK0U7OztJQUFsQyw0Q0FBdUI7OztJQW1DOUQsOEJBTVU7OztJQUZSLDhEQUF5Qzs7O0lBWDdDLCtCQU1DO0lBQ0MscUZBS0M7SUFFSCxpQkFBTTs7O0lBWEosOElBRUM7SUFJRSxjQUFpQztJQUFqQyx5REFBaUM7OztJQVN0QywrQkFHQztJQUNDLDhCQUE2QztJQUM3QyxnQ0FBNEM7SUFBQSxZQUFXO0lBQ3pELEFBRHlELGlCQUFPLEVBQzFEOzs7SUFEd0MsZUFBVztJQUFYLDhCQUFXOzs7O0lBNkJ2RCxpREFNQztJQURDLHVQQUFxQixzQkFBZSxLQUFDO0lBRXZDLGlCQUF3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Q0FDZiw0REFDMEI7WUFPdEQsY0FBdUU7WUFBdkUsZ0dBQXVFO1lBZXRELGVBQW9CO1lBQXBCLCtDQUFvQjtZQVV6QyxjQUFnRDtZQUFoRCx5RUFBZ0Q7WUFjaEQsY0FBZ0Q7WUFBaEQseUVBQWdEO1lBYWhELGNBQWlEO1lBQWpELDBFQUFpRDtZQVk1QyxlQUF1QjtZQUF2Qiw0Q0FBdUI7WUE4QjdCLGNBQTBHO1lBQTFHLDJIQUEwRztZQUsxRyxBQURBLEFBREEsaURBQWdDLG1HQUNzRCwwQkFDakU7WUFLakIsY0FBYztZQUFkLG1DQUFjO1lBSWQsY0FBaUI7WUFBakIsc0NBQWlCOzs7aUZEcEpoQixvQkFBb0I7Y0FKaEMsU0FBUzsyQkFDRSxlQUFlOzRPQUkrQixTQUFTO2tCQUFoRSxTQUFTO21CQUFDLFdBQVcsRUFBRSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtZQUNZLFNBQVM7a0JBQTFFLFNBQVM7bUJBQUMsV0FBVyxFQUFFLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7O2tGQUZyRCxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIE5nRm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3Q2hlY2tlZCxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgQ29tcG9uZW50UmVmLFxuICBJdGVyYWJsZURpZmZlcnMsXG4gIE9uSW5pdCxcbiAgVmlld0NoaWxkLFxuICBWaWV3Q29udGFpbmVyUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBQb0xhbmd1YWdlU2VydmljZSB9IGZyb20gJ0Bwby11aS9uZy1jb21wb25lbnRzJztcblxuaW1wb3J0IHsgaXNFeHRlcm5hbExpbmsgfSBmcm9tICcuLi8uLi91dGlscy91dGlsJztcbmltcG9ydCB7IFBvQ29tcG9uZW50SW5qZWN0b3JTZXJ2aWNlIH0gZnJvbSAnQHBvLXVpL25nLWNvbXBvbmVudHMnO1xuXG5pbXBvcnQgeyBQb01vZGFsUGFzc3dvcmRSZWNvdmVyeUNvbXBvbmVudCB9IGZyb20gJy4uL3BvLW1vZGFsLXBhc3N3b3JkLXJlY292ZXJ5L3BvLW1vZGFsLXBhc3N3b3JkLXJlY292ZXJ5LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQb01vZGFsUGFzc3dvcmRSZWNvdmVyeVR5cGUgfSBmcm9tICcuLi9wby1tb2RhbC1wYXNzd29yZC1yZWNvdmVyeS9lbnVtcy9wby1tb2RhbC1wYXNzd29yZC1yZWNvdmVyeS10eXBlLmVudW0nO1xuaW1wb3J0IHtcbiAgUG9QYWdlTG9naW5CYXNlQ29tcG9uZW50LFxuICBwb1BhZ2VMb2dpbkxpdGVyYWxJbixcbiAgcG9QYWdlTG9naW5MaXRlcmFsc0RlZmF1bHRcbn0gZnJvbSAnLi9wby1wYWdlLWxvZ2luLWJhc2UuY29tcG9uZW50JztcbmltcG9ydCB7IFBvUGFnZUxvZ2luUmVjb3ZlcnkgfSBmcm9tICcuL2ludGVyZmFjZXMvcG8tcGFnZS1sb2dpbi1yZWNvdmVyeS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUG9QYWdlTG9naW5TZXJ2aWNlIH0gZnJvbSAnLi9wby1wYWdlLWxvZ2luLnNlcnZpY2UnO1xuXG4vKipcbiAqIEBkb2NzRXh0ZW5kcyBQb1BhZ2VMb2dpbkJhc2VDb21wb25lbnRcbiAqXG4gKiBAZXhhbXBsZVxuICpcbiAqIDxleGFtcGxlIG5hbWU9XCJwby1wYWdlLWxvZ2luLWJhc2ljXCIgdGl0bGU9XCJQTyBQYWdlIExvZ2luIEJhc2ljXCI+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1wYWdlLWxvZ2luLWJhc2ljL3NhbXBsZS1wby1wYWdlLWxvZ2luLWJhc2ljLmNvbXBvbmVudC5odG1sXCI+IDwvZmlsZT5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLXBhZ2UtbG9naW4tYmFzaWMvc2FtcGxlLXBvLXBhZ2UtbG9naW4tYmFzaWMuY29tcG9uZW50LnRzXCI+IDwvZmlsZT5cbiAqIDwvZXhhbXBsZT5cbiAqXG4gKiA8ZXhhbXBsZSBuYW1lPVwicG8tcGFnZS1sb2dpbi1sYWJzXCIgdGl0bGU9XCJQTyBQYWdlIExvZ2luIExhYnNcIj5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLXBhZ2UtbG9naW4tbGFicy9zYW1wbGUtcG8tcGFnZS1sb2dpbi1sYWJzLmNvbXBvbmVudC5odG1sXCI+IDwvZmlsZT5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLXBhZ2UtbG9naW4tbGFicy9zYW1wbGUtcG8tcGFnZS1sb2dpbi1sYWJzLmNvbXBvbmVudC50c1wiPiA8L2ZpbGU+XG4gKiA8L2V4YW1wbGU+XG4gKlxuICogPGV4YW1wbGUgbmFtZT1cInBvLXBhZ2UtbG9naW4taHVtYW4tcmVzb3VyY2VzXCIgdGl0bGU9XCJQTyBQYWdlIExvZ2luIC0gSHVtYW4gUmVzb3VyY2VzXCI+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1wYWdlLWxvZ2luLWh1bWFuLXJlc291cmNlcy9zYW1wbGUtcG8tcGFnZS1sb2dpbi1odW1hbi1yZXNvdXJjZXMuY29tcG9uZW50Lmh0bWxcIj4gPC9maWxlPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tcGFnZS1sb2dpbi1odW1hbi1yZXNvdXJjZXMvc2FtcGxlLXBvLXBhZ2UtbG9naW4taHVtYW4tcmVzb3VyY2VzLmNvbXBvbmVudC50c1wiPiA8L2ZpbGU+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1wYWdlLWxvZ2luLWh1bWFuLXJlc291cmNlcy9zYW1wbGUtcG8tcGFnZS1sb2dpbi1odW1hbi1yZXNvdXJjZXMubW9kdWxlLnRzXCI+IDwvZmlsZT5cbiAqIDwvZXhhbXBsZT5cbiAqXG4gKiA8ZXhhbXBsZSBuYW1lPVwicG8tcGFnZS1sb2dpbi1hdXRvbWF0aWMtc2VydmljZVwiIHRpdGxlPVwiUE8gUGFnZSBMb2dpbiAtIEF1dG9tYXRpYyBTZXJ2aWNlXCI+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1wYWdlLWxvZ2luLWF1dG9tYXRpYy1zZXJ2aWNlL3NhbXBsZS1wby1wYWdlLWxvZ2luLWF1dG9tYXRpYy1zZXJ2aWNlLmNvbXBvbmVudC5odG1sXCI+IDwvZmlsZT5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLXBhZ2UtbG9naW4tYXV0b21hdGljLXNlcnZpY2Uvc2FtcGxlLXBvLXBhZ2UtbG9naW4tYXV0b21hdGljLXNlcnZpY2UuY29tcG9uZW50LnRzXCI+IDwvZmlsZT5cbiAqIDwvZXhhbXBsZT5cbiAqL1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwby1wYWdlLWxvZ2luJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BvLXBhZ2UtbG9naW4uY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFBvUGFnZUxvZ2luQ29tcG9uZW50IGV4dGVuZHMgUG9QYWdlTG9naW5CYXNlQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3Q2hlY2tlZCwgT25Jbml0IHtcbiAgQFZpZXdDaGlsZCgnbG9naW5Gb3JtJywgeyByZWFkOiBOZ0Zvcm0sIHN0YXRpYzogdHJ1ZSB9KSBsb2dpbkZvcm06IE5nRm9ybTtcbiAgQFZpZXdDaGlsZCgncGFnZUxvZ2luJywgeyByZWFkOiBWaWV3Q29udGFpbmVyUmVmLCBzdGF0aWM6IHRydWUgfSkgcGFnZUxvZ2luOiBWaWV3Q29udGFpbmVyUmVmO1xuXG4gIGluaXRpYWxTZWxlY3RMYW5ndWFnZTogc3RyaW5nO1xuXG4gIHByaXZhdGUgY29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8YW55PiA9IG51bGw7XG4gIHByaXZhdGUgZGlmZmVyOiBhbnk7XG4gIHByaXZhdGUgcmVhZG9ubHkgY3VzdG9tUGFzc3dvcmRFcnJvciA9IHsgY3VzdG9tOiBmYWxzZSB9O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHJpdmF0ZSBwb0NvbXBvbmVudEluamVjdG9yOiBQb0NvbXBvbmVudEluamVjdG9yU2VydmljZSxcbiAgICBkaWZmZXJzOiBJdGVyYWJsZURpZmZlcnMsXG4gICAgbG9naW5TZXJ2aWNlOiBQb1BhZ2VMb2dpblNlcnZpY2UsXG4gICAgcm91dGVyOiBSb3V0ZXIsXG4gICAgcG9MYW5ndWFnZVNlcnZpY2U6IFBvTGFuZ3VhZ2VTZXJ2aWNlXG4gICkge1xuICAgIHN1cGVyKGxvZ2luU2VydmljZSwgcm91dGVyLCBwb0xhbmd1YWdlU2VydmljZSk7XG4gICAgdGhpcy5kaWZmZXIgPSBkaWZmZXJzLmZpbmQoW10pLmNyZWF0ZShudWxsKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpIHtcbiAgICBpZiAodGhpcy5kaWZmZXIpIHtcbiAgICAgIHRoaXMudmFsaWRhdGVBcnJheUNoYW5nZXModGhpcy5kaWZmZXIsIFtcbiAgICAgICAgeyBhcnJheTogdGhpcy5sb2dpbkVycm9ycywgY2FsbGJhY2s6IHRoaXMuZ2VuZXJhdGVMb2dpbkVycm9yLmJpbmQodGhpcykgfSxcbiAgICAgICAgeyBhcnJheTogdGhpcy5wYXNzd29yZEVycm9ycywgY2FsbGJhY2s6IHRoaXMuZ2VuZXJhdGVQYXNzd29yZEVycm9yLmJpbmQodGhpcykgfVxuICAgICAgXSk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5jaGVja2luZ0ZvclJvdXRlTWV0YWRhdGEodGhpcy5hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5kYXRhKTtcbiAgICB0aGlzLnNlbGVjdGVkTGFuZ3VhZ2UgPSB0aGlzLmluaXRpYWxpemVMYW5ndWFnZSgpO1xuICAgIHRoaXMuaW5pdGlhbFNlbGVjdExhbmd1YWdlID0gdGhpcy5zZWxlY3RlZExhbmd1YWdlO1xuICB9XG5cbiAgYWN0aXZhdGVTdXBwb3J0KCkge1xuICAgIHN3aXRjaCAodHlwZW9mIHRoaXMuc3VwcG9ydCkge1xuICAgICAgY2FzZSAnc3RyaW5nJzoge1xuICAgICAgICB0aGlzLnNldFVybFJlZGlyZWN0KHRoaXMuc3VwcG9ydCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAnZnVuY3Rpb24nOiB7XG4gICAgICAgIHRoaXMuc3VwcG9ydCgpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjaGFuZ2VMb2dpbk1vZGVsKCkge1xuICAgIGlmICh0aGlzLmF1dGhlbnRpY2F0aW9uVXJsKSB7XG4gICAgICB0aGlzLmxvZ2luRXJyb3JzID0gW107XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2V0TG9naW5FcnJvcnModGhpcy5sb2dpbkVycm9ycyk7XG4gICAgICB0aGlzLmxvZ2luQ2hhbmdlLmVtaXQodGhpcy5sb2dpbik7XG4gICAgfVxuICB9XG5cbiAgY2hhbmdlUGFzc3dvcmRNb2RlbCgpIHtcbiAgICBpZiAodGhpcy5hdXRoZW50aWNhdGlvblVybCkge1xuICAgICAgdGhpcy5wYXNzd29yZEVycm9ycyA9IFtdO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNldFBhc3N3b3JkRXJyb3JzKHRoaXMucGFzc3dvcmRFcnJvcnMpO1xuICAgICAgdGhpcy5wYXNzd29yZENoYW5nZS5lbWl0KHRoaXMucGFzc3dvcmQpO1xuICAgIH1cbiAgfVxuXG4gIG9uU2VsZWN0ZWRMYW5ndWFnZShsYW5ndWFnZTogc3RyaW5nKSB7XG4gICAgdGhpcy5sYW5ndWFnZUNoYW5nZS5lbWl0KHRoaXMubGFuZ3VhZ2VzTGlzdC5maW5kKGxhbmd1YWdlSXRlbSA9PiBsYW5ndWFnZUl0ZW0ubGFuZ3VhZ2UgPT09IGxhbmd1YWdlKSk7XG4gICAgdGhpcy5zZWxlY3RlZExhbmd1YWdlID0gbGFuZ3VhZ2U7XG4gIH1cblxuICBvcGVuVXJsKHJlY292ZXJ5OiBhbnkpOiB2b2lkIHtcbiAgICBzd2l0Y2ggKHR5cGVvZiByZWNvdmVyeSkge1xuICAgICAgY2FzZSAnc3RyaW5nJzoge1xuICAgICAgICB0aGlzLnNldFVybFJlZGlyZWN0KHJlY292ZXJ5KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdmdW5jdGlvbic6IHtcbiAgICAgICAgcmVjb3ZlcnkoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdvYmplY3QnOiB7XG4gICAgICAgIHRoaXMuY3JlYXRlTW9kYWxQYXNzd29yZFJlY292ZXJ5Q29tcG9uZW50KHJlY292ZXJ5KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGNvbmNhdGVuYXRlTG9naW5IaW50V2l0aENvbnRhY3RFbWFpbChjb250YWN0RW1haWw6IHN0cmluZykge1xuICAgIGNvbnN0IGRlZmF1bHRMb2dpbkhpbnRMaXRlcmFsID0gcG9QYWdlTG9naW5MaXRlcmFsc0RlZmF1bHRbdGhpcy5sYW5ndWFnZV0ubG9naW5IaW50O1xuICAgIGNvbnN0IHByZXBvc2l0aW9uTGl0ZXJhbCA9IHBvUGFnZUxvZ2luTGl0ZXJhbEluW3RoaXMubGFuZ3VhZ2VdO1xuXG4gICAgcmV0dXJuIHRoaXMuY29uY2F0ZW5hdGVMaXRlcmFsKGNvbnRhY3RFbWFpbCwgJ2xvZ2luSGludCcsIGRlZmF1bHRMb2dpbkhpbnRMaXRlcmFsLCBwcmVwb3NpdGlvbkxpdGVyYWwpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNldExvZ2luRXJyb3JzKGVycm9yczogQXJyYXk8c3RyaW5nPikge1xuICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmxvZ2luRm9ybS5mb3JtLmNvbnRyb2xzWydsb2dpbiddO1xuICAgIHRoaXMuc2V0Q29udHJvbEVycm9ycygnYWxsTG9naW5FcnJvcnMnLCBjb250cm9sLCBlcnJvcnMsIHRoaXMucGFnZUxvZ2luTGl0ZXJhbHMubG9naW5FcnJvclBhdHRlcm4pO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNldFBhc3N3b3JkRXJyb3JzKGVycm9yczogQXJyYXk8c3RyaW5nPikge1xuICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmxvZ2luRm9ybS5mb3JtLmNvbnRyb2xzWydwYXNzd29yZCddO1xuICAgIHRoaXMuc2V0Q29udHJvbEVycm9ycygnYWxsUGFzc3dvcmRFcnJvcnMnLCBjb250cm9sLCBlcnJvcnMsIHRoaXMucGFnZUxvZ2luTGl0ZXJhbHMucGFzc3dvcmRFcnJvclBhdHRlcm4pO1xuICB9XG5cbiAgcHJpdmF0ZSBjaGVja2luZ0Zvck1ldGFkYXRhUHJvcGVydHkob2JqZWN0LCBwcm9wZXJ0eSkge1xuICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqZWN0LCBwcm9wZXJ0eSkpIHtcbiAgICAgIHJldHVybiBvYmplY3RbcHJvcGVydHldO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY2hlY2tpbmdGb3JSb3V0ZU1ldGFkYXRhKGRhdGEpIHtcbiAgICBpZiAoT2JqZWN0LmtleXMoZGF0YSkubGVuZ3RoICE9PSAwKSB7XG4gICAgICB0aGlzLmF1dGhlbnRpY2F0aW9uVXJsID0gdGhpcy5jaGVja2luZ0Zvck1ldGFkYXRhUHJvcGVydHkoZGF0YSwgJ3NlcnZpY2VBcGknKSB8fCB0aGlzLmF1dGhlbnRpY2F0aW9uVXJsO1xuICAgICAgdGhpcy5hdXRoZW50aWNhdGlvblR5cGUgPSB0aGlzLmNoZWNraW5nRm9yTWV0YWRhdGFQcm9wZXJ0eShkYXRhLCAnYXV0aGVudGljYXRpb25UeXBlJykgfHwgdGhpcy5hdXRoZW50aWNhdGlvblR5cGU7XG4gICAgICB0aGlzLmVudmlyb25tZW50ID0gdGhpcy5jaGVja2luZ0Zvck1ldGFkYXRhUHJvcGVydHkoZGF0YSwgJ2Vudmlyb25tZW50JykgfHwgdGhpcy5lbnZpcm9ubWVudDtcbiAgICAgIHRoaXMucmVjb3ZlcnkgPSB0aGlzLmNoZWNraW5nRm9yTWV0YWRhdGFQcm9wZXJ0eShkYXRhLCAncmVjb3ZlcnknKSB8fCB0aGlzLnJlY292ZXJ5O1xuICAgICAgdGhpcy5yZWdpc3RlclVybCA9IHRoaXMuY2hlY2tpbmdGb3JNZXRhZGF0YVByb3BlcnR5KGRhdGEsICdyZWdpc3RlclVybCcpIHx8IHRoaXMucmVnaXN0ZXJVcmw7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjb25jYXRlbmF0ZShkZWZhdWx0TGl0ZXJhbDogc3RyaW5nLCBwcmVmaXhMaXRlcmFsOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYCR7ZGVmYXVsdExpdGVyYWx9ICR7cHJlZml4TGl0ZXJhbH0gJHt2YWx1ZX1gO1xuICB9XG5cbiAgcHJpdmF0ZSBjb25jYXRlbmF0ZUxpdGVyYWwodmFsdWU6IHN0cmluZywgbGl0ZXJhbDogc3RyaW5nLCBkZWZhdWx0TGl0ZXJhbDogc3RyaW5nLCBwcmVwb3NpdGlvbkxpdGVyYWw6IHN0cmluZykge1xuICAgIHJldHVybiB7IFtsaXRlcmFsXTogdGhpcy5jb25jYXRlbmF0ZShkZWZhdWx0TGl0ZXJhbCwgcHJlcG9zaXRpb25MaXRlcmFsLCB2YWx1ZSkgfTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlTW9kYWxQYXNzd29yZFJlY292ZXJ5Q29tcG9uZW50KHBvUGFnZUxvZ2luUmVjb3Zlcnk6IFBvUGFnZUxvZ2luUmVjb3ZlcnkpIHtcbiAgICBpZiAodGhpcy5jb21wb25lbnRSZWYpIHtcbiAgICAgIHRoaXMucG9Db21wb25lbnRJbmplY3Rvci5kZXN0cm95Q29tcG9uZW50SW5BcHBsaWNhdGlvbih0aGlzLmNvbXBvbmVudFJlZik7XG4gICAgfVxuXG4gICAgdGhpcy5jb21wb25lbnRSZWYgPSB0aGlzLnBvQ29tcG9uZW50SW5qZWN0b3IuY3JlYXRlQ29tcG9uZW50SW5BcHBsaWNhdGlvbihQb01vZGFsUGFzc3dvcmRSZWNvdmVyeUNvbXBvbmVudCk7XG4gICAgdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UudXJsUmVjb3ZlcnkgPSBwb1BhZ2VMb2dpblJlY292ZXJ5LnVybDtcbiAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5jb250YWN0RW1haWwgPSBwb1BhZ2VMb2dpblJlY292ZXJ5LmNvbnRhY3RNYWlsO1xuICAgIHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlLnBob25lTWFzayA9IHBvUGFnZUxvZ2luUmVjb3ZlcnkucGhvbmVNYXNrO1xuICAgIHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlLnR5cGUgPSBwb1BhZ2VMb2dpblJlY292ZXJ5LnR5cGUgfHwgUG9Nb2RhbFBhc3N3b3JkUmVjb3ZlcnlUeXBlLkVtYWlsO1xuICAgIHRoaXMuY29tcG9uZW50UmVmLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlLm9wZW4oKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2VuZXJhdGVMb2dpbkVycm9yKCkge1xuICAgIGlmICh0aGlzLmxvZ2luRXJyb3JzICYmIHRoaXMubG9naW5FcnJvcnMubGVuZ3RoKSB7XG4gICAgICB0aGlzLnNldExvZ2luRXJyb3JzKHRoaXMubG9naW5FcnJvcnMpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBjb250cm9sID0gdGhpcy5sb2dpbkZvcm0uZm9ybS5jb250cm9sc1snbG9naW4nXTtcbiAgICAgIGlmIChjb250cm9sKSB7XG4gICAgICAgIHRoaXMucmVzZXRDb250cm9sKGNvbnRyb2wpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2VuZXJhdGVQYXNzd29yZEVycm9yKCkge1xuICAgIGlmICh0aGlzLnBhc3N3b3JkRXJyb3JzICYmIHRoaXMucGFzc3dvcmRFcnJvcnMubGVuZ3RoKSB7XG4gICAgICB0aGlzLnNldFBhc3N3b3JkRXJyb3JzKHRoaXMucGFzc3dvcmRFcnJvcnMpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBjb250cm9sID0gdGhpcy5sb2dpbkZvcm0uZm9ybS5jb250cm9sc1sncGFzc3dvcmQnXTtcblxuICAgICAgaWYgKGNvbnRyb2wpIHtcbiAgICAgICAgdGhpcy5yZXNldENvbnRyb2woY29udHJvbCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSByZXNldENvbnRyb2woY29udHJvbDogQWJzdHJhY3RDb250cm9sKSB7XG4gICAgY29udHJvbC5tYXJrQXNQcmlzdGluZSgpO1xuICAgIGNvbnRyb2wubWFya0FzVW50b3VjaGVkKCk7XG4gICAgY29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gIH1cblxuICBwcml2YXRlIHNldENvbnRyb2xFcnJvcnMoYWxsRXJyb3JzOiBzdHJpbmcsIGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCwgZXJyb3JzOiBBcnJheTxzdHJpbmc+LCBwYXR0ZXJuRXJyb3I6IHN0cmluZykge1xuICAgIGlmIChjb250cm9sKSB7XG4gICAgICB0aGlzW2FsbEVycm9yc10gPSBjb250cm9sLmhhc0Vycm9yKCdwYXR0ZXJuJykgPyBbLi4uZXJyb3JzLCAuLi5bcGF0dGVybkVycm9yXV0gOiBbLi4uZXJyb3JzXTtcblxuICAgICAgaWYgKGVycm9ycyAmJiBlcnJvcnMubGVuZ3RoICYmIChjb250cm9sLnZhbGlkIHx8IGNvbnRyb2wucHJpc3RpbmUpKSB7XG4gICAgICAgIGNvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xuICAgICAgICBjb250cm9sLm1hcmtBc0RpcnR5KCk7XG4gICAgICAgIGNvbnRyb2wuc2V0RXJyb3JzKHRoaXMuY3VzdG9tUGFzc3dvcmRFcnJvcik7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZXRVcmxSZWRpcmVjdCh1cmwpIHtcbiAgICBpc0V4dGVybmFsTGluayh1cmwpID8gd2luZG93Lm9wZW4odXJsLCAnX2JsYW5rJykgOiB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbdXJsXSk7XG4gIH1cblxuICBwcml2YXRlIHZhbGlkYXRlQXJyYXlDaGFuZ2VzKGRpZmZlcjogYW55LCBhcnJheTogQXJyYXk8eyBhcnJheTogQXJyYXk8YW55PjsgY2FsbGJhY2s6IGFueSB9Pikge1xuICAgIGFycmF5LmZvckVhY2goZWxlbWVudCA9PiB7XG4gICAgICBjb25zdCBjaGFuZ2VzID0gZGlmZmVyLmRpZmYoZWxlbWVudC5hcnJheSk7XG4gICAgICBpZiAoY2hhbmdlcykge1xuICAgICAgICBlbGVtZW50LmNhbGxiYWNrKCk7XG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0aWFsaXplTGFuZ3VhZ2UoKSB7XG4gICAgY29uc3QgbGFuZ3VhZ2UgPSB0aGlzLmxhbmd1YWdlc0xpc3QuZmluZChsYW5ndWFnZUl0ZW0gPT4gbGFuZ3VhZ2VJdGVtLmxhbmd1YWdlID09PSB0aGlzLmxhbmd1YWdlKTtcbiAgICByZXR1cm4gbGFuZ3VhZ2U/Lmxhbmd1YWdlIHx8IHRoaXMubGFuZ3VhZ2VzTGlzdFswXS5sYW5ndWFnZTtcbiAgfVxufVxuIiwiPGJ1dHRvbiBjbGFzcz1cInBvLXBhZ2UtbG9naW4tc3VwcG9ydFwiIChjbGljayk9XCJhY3RpdmF0ZVN1cHBvcnQoKVwiIFtoaWRkZW5dPVwiIXN1cHBvcnRcIj5cbiAgPHBvLWljb24gcC1pY29uPVwiSUNPTl9IRUxQXCI+PC9wby1pY29uPlxuICB7eyBwYWdlTG9naW5MaXRlcmFscz8uc3VwcG9ydCB9fVxuPC9idXR0b24+XG5cbjxwby1wYWdlLWJhY2tncm91bmRcbiAgI3BhZ2VMb2dpblxuICBbcC1zaG93LXNlbGVjdC1sYW5ndWFnZV09XCJzaG93TGFuZ3VhZ2VcIlxuICBbcC1sYW5ndWFnZXNdPVwibGFuZ3VhZ2VzTGlzdFwiXG4gIFtwLWluaXRpYWwtbGFuZ3VhZ2VdPVwiaW5pdGlhbFNlbGVjdExhbmd1YWdlXCJcbiAgW3AtYmFja2dyb3VuZF09XCJiYWNrZ3JvdW5kXCJcbiAgW3AtaGlnaGxpZ2h0LWluZm9dPVwicGFnZUxvZ2luTGl0ZXJhbHMuaGlnaGxpZ2h0SW5mb1wiXG4gIFtwLWxvZ29dPVwibG9nb1wiXG4gIFtwLXNlY29uZGFyeS1sb2dvXT1cInNlY29uZGFyeUxvZ29cIlxuICAocC1zZWxlY3RlZC1sYW5ndWFnZSk9XCJvblNlbGVjdGVkTGFuZ3VhZ2UoJGV2ZW50KVwiXG4+XG4gIDxoZWFkZXIgY2xhc3M9XCJwby1wYWdlLWxvZ2luLWhlYWRlclwiPlxuICAgIDxkaXYgY2xhc3M9XCJwby1wYWdlLWxvZ2luLWhlYWRlci1wcm9kdWN0LW5hbWVcIj5cbiAgICAgIDxoMT57eyBwcm9kdWN0TmFtZSB9fTwvaDE+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwicG8tcGFnZS1sb2dpbi1oZWFkZXItcHJvZHVjdC1lbnZpcm9ubWVudCBwby1tYi1tZC00IHBvLW1iLXNtLTFcIj5cbiAgICAgIDxwby10YWcgKm5nSWY9XCJlbnZpcm9ubWVudFwiIHAtdHlwZT1cIndhcm5pbmdcIiBbcC12YWx1ZV09XCJlbnZpcm9ubWVudFwiPiA8L3BvLXRhZz5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwicG8tcGFnZS1sb2dpbi1oZWFkZXItd2VsY29tZSBwby1tYi1tZC00IHBvLW1iLXNtLTJcIj57eyBwYWdlTG9naW5MaXRlcmFscy53ZWxjb21lIH19PC9kaXY+XG4gIDwvaGVhZGVyPlxuXG4gIDxmb3JtICNsb2dpbkZvcm09XCJuZ0Zvcm1cIiBjbGFzcz1cInBvLXBhZ2UtbG9naW4tZm9ybVwiPlxuICAgIDxkaXYgY2xhc3M9XCJwby1yb3dcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJwby1sZy0xMlwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicG8tcGFnZS1sb2dpbi1oaW50IHBvLXBhZ2UtbG9naW4taW5mby1jb250YWluZXJcIj5cbiAgICAgICAgICA8cG8tbG9naW5cbiAgICAgICAgICAgIGNsYXNzPVwicG8tcGFnZS1sb2dpbi1pbmZvLWZpZWxkXCJcbiAgICAgICAgICAgIFtjbGFzcy5wby1wYWdlLWxvZ2luLWluZm8tZmllbGQtZHluYW1pY109XCJcbiAgICAgICAgICAgICAgIXBhZ2VMb2dpbkxpdGVyYWxzLmxvZ2luSGludCAmJiAhcGFnZUxvZ2luTGl0ZXJhbHMucmVtZW1iZXJVc2VySGludFxuICAgICAgICAgICAgXCJcbiAgICAgICAgICAgIG5hbWU9XCJsb2dpblwiXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cImxvZ2luXCJcbiAgICAgICAgICAgIHAtYXV0by1mb2N1c1xuICAgICAgICAgICAgcC1yZXF1aXJlZFxuICAgICAgICAgICAgW3AtbGFiZWxdPVwicGFnZUxvZ2luTGl0ZXJhbHMubG9naW5MYWJlbFwiXG4gICAgICAgICAgICBbcC1uby1hdXRvY29tcGxldGVdPVwibm9BdXRvY29tcGxldGVMb2dpblwiXG4gICAgICAgICAgICBbcC1wYXR0ZXJuXT1cImxvZ2luUGF0dGVyblwiXG4gICAgICAgICAgICBbcC1wbGFjZWhvbGRlcl09XCJwYWdlTG9naW5MaXRlcmFscy5sb2dpblBsYWNlaG9sZGVyXCJcbiAgICAgICAgICAgIChjbGljayk9XCJjbG9zZVBvcG92ZXIoKVwiXG4gICAgICAgICAgICAoa2V5dXAuZW50ZXIpPVwibG9naW5Gb3JtLnZhbGlkICYmIG9uTG9naW5TdWJtaXQoKVwiXG4gICAgICAgICAgICAocC1jaGFuZ2UtbW9kZWwpPVwiY2hhbmdlTG9naW5Nb2RlbCgpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgPC9wby1sb2dpbj5cblxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICpuZ0lmPVwicGFnZUxvZ2luTGl0ZXJhbHMubG9naW5IaW50IHx8IHBhZ2VMb2dpbkxpdGVyYWxzLnJlbWVtYmVyVXNlckhpbnRcIlxuICAgICAgICAgICAgY2xhc3M9XCJwby1wYWdlLWxvZ2luLWluZm8taWNvbi1jb250YWluZXJcIlxuICAgICAgICAgICAgW2NsYXNzLnBvLXBhZ2UtbG9naW4taW5mby1pY29uLWNvbnRhaW5lci1keW5hbWljXT1cIlxuICAgICAgICAgICAgICAhcGFnZUxvZ2luTGl0ZXJhbHMubG9naW5IaW50ICYmICFwYWdlTG9naW5MaXRlcmFscy5yZW1lbWJlclVzZXJIaW50XG4gICAgICAgICAgICBcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxwby1pY29uXG4gICAgICAgICAgICAgIHAtaWNvbj1cIklDT05fSU5GTyBwby1maWVsZC1pY29uXCJcbiAgICAgICAgICAgICAgKm5nSWY9XCJwYWdlTG9naW5MaXRlcmFscy5sb2dpbkhpbnRcIlxuICAgICAgICAgICAgICBwLXRvb2x0aXAtcG9zaXRpb249XCJyaWdodFwiXG4gICAgICAgICAgICAgIFtwLXRvb2x0aXBdPVwicGFnZUxvZ2luTGl0ZXJhbHMubG9naW5IaW50XCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDwvcG8taWNvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cInBvLWZpZWxkLWNvbnRhaW5lci1ib3R0b20gcG8tZmllbGQtY29udGFpbmVyLWVycm9yLWNvbnRhaW5lclwiPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBlcnJvciBvZiBhbGxMb2dpbkVycm9yc1wiXG4gICAgICAgICAgICBjbGFzcz1cInBvLWZpZWxkLWNvbnRhaW5lci1ib3R0b20tdGV4dC1lcnJvciBwby1maWVsZC1jb250YWluZXItZXJyb3ItaXRlbVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHBvLWljb24gcC1pY29uPVwiSUNPTl9FWENMQU1BVElPTlwiPjwvcG8taWNvbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicG8tZmllbGQtY29udGFpbmVyLWVycm9yLXRleHRcIj57eyBlcnJvciB9fTwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cInBvLWxnLTEyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJwby1wYWdlLWxvZ2luLXBhc3N3b3JkLWNvbnRhaW5lclwiPlxuICAgICAgICAgIDxwby1wYXNzd29yZFxuICAgICAgICAgICAgY2xhc3M9XCJwby1wYWdlLWxvZ2luLWZpZWxkLXNpemUgcG8tcGFnZS1sb2dpbi1wYXNzd29yZC1pdGVtXCJcbiAgICAgICAgICAgIFtjbGFzcy5wby1wYWdlLWxvZ2luLWZpZWxkLXNpemUtZHluYW1pY109XCJcbiAgICAgICAgICAgICAgIXBhZ2VMb2dpbkxpdGVyYWxzLmxvZ2luSGludCAmJiAhcGFnZUxvZ2luTGl0ZXJhbHMucmVtZW1iZXJVc2VySGludFxuICAgICAgICAgICAgXCJcbiAgICAgICAgICAgIG5hbWU9XCJwYXNzd29yZFwiXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cInBhc3N3b3JkXCJcbiAgICAgICAgICAgIHAtcmVxdWlyZWRcbiAgICAgICAgICAgIFtwLWhpZGUtcGFzc3dvcmQtcGVla109XCJoaWRlUGFzc3dvcmRQZWVrXCJcbiAgICAgICAgICAgIFtwLWxhYmVsXT1cInBhZ2VMb2dpbkxpdGVyYWxzLnBhc3N3b3JkTGFiZWxcIlxuICAgICAgICAgICAgW3Atbm8tYXV0b2NvbXBsZXRlXT1cIm5vQXV0b2NvbXBsZXRlUGFzc3dvcmRcIlxuICAgICAgICAgICAgW3AtcGF0dGVybl09XCJwYXNzd29yZFBhdHRlcm5cIlxuICAgICAgICAgICAgW3AtcGxhY2Vob2xkZXJdPVwicGFnZUxvZ2luTGl0ZXJhbHMucGFzc3dvcmRQbGFjZWhvbGRlclwiXG4gICAgICAgICAgICAoY2xpY2spPVwiY2xvc2VQb3BvdmVyKClcIlxuICAgICAgICAgICAgKGtleXVwLmVudGVyKT1cImxvZ2luRm9ybS52YWxpZCAmJiBvbkxvZ2luU3VibWl0KClcIlxuICAgICAgICAgICAgKHAtY2hhbmdlLW1vZGVsKT1cImNoYW5nZVBhc3N3b3JkTW9kZWwoKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgIDwvcG8tcGFzc3dvcmQ+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgKm5nSWY9XCJwYWdlTG9naW5MaXRlcmFscy5sb2dpbkhpbnQgfHwgcGFnZUxvZ2luTGl0ZXJhbHMucmVtZW1iZXJVc2VySGludFwiXG4gICAgICAgICAgICBjbGFzcz1cInBvLXBhZ2UtbG9naW4tcGFzc3dvcmQtaXRlbSBwby1wYWdlLWxvZ2luLXBhc3N3b3JkLXBvcG92ZXItY29udGFpbmVyXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8cG8tcGFnZS1sb2dpbi1wb3BvdmVyXG4gICAgICAgICAgICAgICpuZ0lmPVwic2hvd0V4Y2VlZGVkQXR0ZW1wdHNXYXJuaW5nICYmIGV4Y2VlZGVkQXR0ZW1wdHNXYXJuaW5nXCJcbiAgICAgICAgICAgICAgW3AtbGl0ZXJhbHNdPVwicGFnZUxvZ2luTGl0ZXJhbHNcIlxuICAgICAgICAgICAgICBbcC1yZWNvdmVyeV09XCJyZWNvdmVyeVwiXG4gICAgICAgICAgICAgIFtwLXJlbWFpbmluZy1hdHRlbXB0c109XCJleGNlZWRlZEF0dGVtcHRzV2FybmluZ1wiXG4gICAgICAgICAgICAgIChwLWZvcmdvdC1wYXNzd29yZCk9XCJvcGVuVXJsKCRldmVudClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9wby1wYWdlLWxvZ2luLXBvcG92ZXI+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwicG8tZmllbGQtY29udGFpbmVyLWJvdHRvbSBwby1maWVsZC1jb250YWluZXItZXJyb3ItY29udGFpbmVyXCI+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IGVycm9yIG9mIGFsbFBhc3N3b3JkRXJyb3JzXCJcbiAgICAgICAgICAgIGNsYXNzPVwicG8tZmllbGQtY29udGFpbmVyLWJvdHRvbS10ZXh0LWVycm9yIHBvLWZpZWxkLWNvbnRhaW5lci1lcnJvci1pdGVtXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8cG8taWNvbiBwLWljb249XCJJQ09OX0VYQ0xBTUFUSU9OXCI+PC9wby1pY29uPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwby1maWVsZC1jb250YWluZXItZXJyb3ItdGV4dFwiPnt7IGVycm9yIH19PC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8cG8taW5wdXRcbiAgICAgICAgKm5nSWY9XCJjdXN0b21GaWVsZCAmJiBjdXN0b21GaWVsZFR5cGUgPT09ICdpbnB1dCdcIlxuICAgICAgICBbY2xhc3MucG8tcGFnZS1sb2dpbi1maWVsZC1zaXplLWR5bmFtaWNdPVwiIXBhZ2VMb2dpbkxpdGVyYWxzLmxvZ2luSGludCAmJiAhcGFnZUxvZ2luTGl0ZXJhbHMucmVtZW1iZXJVc2VySGludFwiXG4gICAgICAgIGNsYXNzPVwicG8tcGFnZS1sb2dpbi1maWVsZC1zaXplIHBvLWxnLTEyXCJcbiAgICAgICAgbmFtZT1cImN1c3RvbUZpZWxkSW5wdXRcIlxuICAgICAgICBbKG5nTW9kZWwpXT1cImN1c3RvbUZpZWxkT2JqZWN0LnZhbHVlXCJcbiAgICAgICAgcC1yZXF1aXJlZFxuICAgICAgICBbcC1lcnJvci1wYXR0ZXJuXT1cImN1c3RvbUZpZWxkT2JqZWN0LmVycm9yUGF0dGVybiB8fCBwYWdlTG9naW5MaXRlcmFscy5jdXN0b21GaWVsZEVycm9yUGF0dGVyblwiXG4gICAgICAgIFtwLXBhdHRlcm5dPVwiY3VzdG9tRmllbGRPYmplY3QucGF0dGVyblwiXG4gICAgICAgIFtwLXBsYWNlaG9sZGVyXT1cImN1c3RvbUZpZWxkT2JqZWN0LnBsYWNlaG9sZGVyIHx8IHBhZ2VMb2dpbkxpdGVyYWxzLmN1c3RvbUZpZWxkUGxhY2Vob2xkZXJcIlxuICAgICAgICAoa2V5dXAuZW50ZXIpPVwibG9naW5Gb3JtLnZhbGlkICYmIG9uTG9naW5TdWJtaXQoKVwiXG4gICAgICA+XG4gICAgICA8L3BvLWlucHV0PlxuXG4gICAgICA8cG8tY29tYm9cbiAgICAgICAgKm5nSWY9XCJjdXN0b21GaWVsZCAmJiBjdXN0b21GaWVsZFR5cGUgPT09ICdjb21ibydcIlxuICAgICAgICBbY2xhc3MucG8tcGFnZS1sb2dpbi1maWVsZC1zaXplLWR5bmFtaWNdPVwiIXBhZ2VMb2dpbkxpdGVyYWxzLmxvZ2luSGludCAmJiAhcGFnZUxvZ2luTGl0ZXJhbHMucmVtZW1iZXJVc2VySGludFwiXG4gICAgICAgIGNsYXNzPVwicG8tcGFnZS1sb2dpbi1maWVsZC1zaXplIHBvLWxnLTEyXCJcbiAgICAgICAgbmFtZT1cImN1c3RvbUZpZWxkQ29tYm9cIlxuICAgICAgICBbKG5nTW9kZWwpXT1cImN1c3RvbUZpZWxkT2JqZWN0LnZhbHVlXCJcbiAgICAgICAgcC1yZXF1aXJlZFxuICAgICAgICBbcC1maWVsZC12YWx1ZV09XCJjdXN0b21GaWVsZE9iamVjdC5maWVsZFZhbHVlXCJcbiAgICAgICAgW3AtZmlsdGVyLXNlcnZpY2VdPVwiY3VzdG9tRmllbGRPYmplY3QudXJsXCJcbiAgICAgICAgW3AtcGxhY2Vob2xkZXJdPVwiY3VzdG9tRmllbGRPYmplY3QucGxhY2Vob2xkZXIgfHwgcGFnZUxvZ2luTGl0ZXJhbHMuY3VzdG9tRmllbGRQbGFjZWhvbGRlclwiXG4gICAgICA+XG4gICAgICA8L3BvLWNvbWJvPlxuXG4gICAgICA8cG8tc2VsZWN0XG4gICAgICAgICpuZ0lmPVwiY3VzdG9tRmllbGQgJiYgY3VzdG9tRmllbGRUeXBlID09PSAnc2VsZWN0J1wiXG4gICAgICAgIFtjbGFzcy5wby1wYWdlLWxvZ2luLWZpZWxkLXNpemUtZHluYW1pY109XCIhcGFnZUxvZ2luTGl0ZXJhbHMubG9naW5IaW50ICYmICFwYWdlTG9naW5MaXRlcmFscy5yZW1lbWJlclVzZXJIaW50XCJcbiAgICAgICAgY2xhc3M9XCJwby1wYWdlLWxvZ2luLWZpZWxkLXNpemUgcG8tbGctMTJcIlxuICAgICAgICBuYW1lPVwiY3VzdG9tRmllbGRTZWxlY3RcIlxuICAgICAgICBbKG5nTW9kZWwpXT1cImN1c3RvbUZpZWxkT2JqZWN0LnZhbHVlXCJcbiAgICAgICAgcC1yZXF1aXJlZFxuICAgICAgICBbcC1wbGFjZWhvbGRlcl09XCJjdXN0b21GaWVsZE9iamVjdC5wbGFjZWhvbGRlciB8fCBwYWdlTG9naW5MaXRlcmFscy5jdXN0b21GaWVsZFBsYWNlaG9sZGVyXCJcbiAgICAgICAgW3Atb3B0aW9uc109XCJjdXN0b21GaWVsZE9iamVjdC5vcHRpb25zXCJcbiAgICAgID5cbiAgICAgIDwvcG8tc2VsZWN0PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwicG8tbGctMTJcIj5cbiAgICAgICAgPGRpdiAqbmdJZj1cIiFoaWRlUmVtZW1iZXJVc2VyXCIgY2xhc3M9XCJwby1wYWdlLWxvZ2luLWhpbnQgcG8tcGFnZS1sb2dpbi1pbmZvLWNvbnRhaW5lclwiPlxuICAgICAgICAgIDxwby1zd2l0Y2hcbiAgICAgICAgICAgIGNsYXNzPVwicG8tcGFnZS1sb2dpbi1pbmZvLWZpZWxkIHBvLWxnLTcgcG8tb2Zmc2V0LWxnLTUgcG8tb2Zmc2V0LXhsLTVcIlxuICAgICAgICAgICAgbmFtZT1cInJlbWVtYmVyVXNlclwiXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cInJlbWVtYmVyVXNlclwiXG4gICAgICAgICAgICBwLWxhYmVsLXBvc2l0aW9uPVwiMVwiXG4gICAgICAgICAgICBbcC1sYWJlbC1vZmZdPVwicGFnZUxvZ2luTGl0ZXJhbHMucmVtZW1iZXJVc2VyXCJcbiAgICAgICAgICAgIFtwLWxhYmVsLW9uXT1cInBhZ2VMb2dpbkxpdGVyYWxzLnJlbWVtYmVyVXNlclwiXG4gICAgICAgICAgICAoa2V5dXAuZW50ZXIpPVwibG9naW5Gb3JtLnZhbGlkICYmIG9uTG9naW5TdWJtaXQoKVwiXG4gICAgICAgICAgICBbcC1oaWRlLWxhYmVsLXN0YXR1c109XCJoaWRlTGFiZWxTdGF0dXNcIlxuICAgICAgICAgID5cbiAgICAgICAgICA8L3BvLXN3aXRjaD5cblxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICpuZ0lmPVwicGFnZUxvZ2luTGl0ZXJhbHMubG9naW5IaW50IHx8IHBhZ2VMb2dpbkxpdGVyYWxzLnJlbWVtYmVyVXNlckhpbnRcIlxuICAgICAgICAgICAgY2xhc3M9XCJwby1wYWdlLWxvZ2luLWluZm8taWNvbi1jb250YWluZXIgcG8tcGFnZS1sb2dpbi1pbmZvLWljb24tcmVtZW1iZXItdXNlclwiXG4gICAgICAgICAgICBbY2xhc3MucG8tcGFnZS1sb2dpbi1pbmZvLWljb24tY29udGFpbmVyLWR5bmFtaWNdPVwiIXBhZ2VMb2dpbkxpdGVyYWxzLnJlbWVtYmVyVXNlckhpbnRcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxwby1pY29uXG4gICAgICAgICAgICAgIHAtaWNvbj1cIklDT05fSU5GTyBwby1maWVsZC1pY29uXCJcbiAgICAgICAgICAgICAgKm5nSWY9XCJwYWdlTG9naW5MaXRlcmFscy5yZW1lbWJlclVzZXJIaW50XCJcbiAgICAgICAgICAgICAgcC10b29sdGlwLXBvc2l0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgICBbcC10b29sdGlwXT1cInBhZ2VMb2dpbkxpdGVyYWxzLnJlbWVtYmVyVXNlckhpbnRcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9wby1pY29uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8cG8tYnV0dG9uXG4gICAgICAgIFtjbGFzcy5wby1wYWdlLWxvZ2luLWJ1dHRvbi1keW5hbWljXT1cIiFwYWdlTG9naW5MaXRlcmFscy5sb2dpbkhpbnQgJiYgIXBhZ2VMb2dpbkxpdGVyYWxzLnJlbWVtYmVyVXNlckhpbnRcIlxuICAgICAgICBjbGFzcz1cInBvLWxnLTEyIHBvLXBhZ2UtbG9naW4tYnV0dG9uIHBvLXBhZ2UtbG9naW4tZmllbGQtc2l6ZVwiXG4gICAgICAgIHAta2luZD1cInByaW1hcnlcIlxuICAgICAgICBbcC1kaXNhYmxlZF09XCJsb2dpbkZvcm0uaW52YWxpZFwiXG4gICAgICAgIFtwLWxhYmVsXT1cImxvYWRpbmcgPyBwYWdlTG9naW5MaXRlcmFscy5zdWJtaXR0ZWRMYWJlbCA6IHBhZ2VMb2dpbkxpdGVyYWxzLnN1Ym1pdExhYmVsXCJcbiAgICAgICAgW3AtbG9hZGluZ109XCJsb2FkaW5nXCJcbiAgICAgICAgKHAtY2xpY2spPVwib25Mb2dpblN1Ym1pdCgpXCJcbiAgICAgID5cbiAgICAgIDwvcG8tYnV0dG9uPlxuXG4gICAgICA8ZGl2ICpuZ0lmPVwicmVjb3ZlcnlcIiBjbGFzcz1cInBvLXBhZ2UtbG9naW4tcmVjb3ZlcnktbGlua1wiPlxuICAgICAgICA8YSBjbGFzcz1cInBvLWZvbnQtdGV4dC1sYXJnZS1ib2xkXCIgKGNsaWNrKT1cIm9wZW5VcmwocmVjb3ZlcnkpXCI+e3sgcGFnZUxvZ2luTGl0ZXJhbHMuZm9yZ290UGFzc3dvcmQgfX08L2E+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiAqbmdJZj1cInJlZ2lzdGVyVXJsXCIgY2xhc3M9XCJwby1wYWdlLWxvZ2luLXJlZ2lzdGVyLWxpbmtcIj5cbiAgICAgICAgPGEgY2xhc3M9XCJwby1mb250LXRleHQtbGFyZ2UtYm9sZFwiIChjbGljayk9XCJvcGVuVXJsKHJlZ2lzdGVyVXJsKVwiPnt7IHBhZ2VMb2dpbkxpdGVyYWxzLnJlZ2lzdGVyVXJsIH19PC9hPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZm9ybT5cbjwvcG8tcGFnZS1iYWNrZ3JvdW5kPlxuIl19
|
|
@@ -9639,6 +9639,17 @@ class PoPageLoginBaseComponent {
|
|
|
9639
9639
|
* @default `true`
|
|
9640
9640
|
*/
|
|
9641
9641
|
noAutocompletePassword = true;
|
|
9642
|
+
/**
|
|
9643
|
+
* @optional
|
|
9644
|
+
*
|
|
9645
|
+
* @description
|
|
9646
|
+
*
|
|
9647
|
+
* Indica se o status do `model` do switch de lembrar o usuário será escondido visualmente.
|
|
9648
|
+
*
|
|
9649
|
+
* > Por padrão será atribuído `false`.
|
|
9650
|
+
* @default `false`
|
|
9651
|
+
*/
|
|
9652
|
+
hideLabelStatus = false;
|
|
9642
9653
|
/**
|
|
9643
9654
|
* @optional
|
|
9644
9655
|
*
|
|
@@ -10337,7 +10348,7 @@ class PoPageLoginBaseComponent {
|
|
|
10337
10348
|
}
|
|
10338
10349
|
}
|
|
10339
10350
|
static ɵfac = function PoPageLoginBaseComponent_Factory(t) { return new (t || PoPageLoginBaseComponent)(i0.ɵɵdirectiveInject(PoPageLoginService), i0.ɵɵdirectiveInject(i1$1.Router), i0.ɵɵdirectiveInject(i2.PoLanguageService)); };
|
|
10340
|
-
static ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: PoPageLoginBaseComponent, inputs: { background: [0, "p-background", "background"], logo: [0, "p-logo", "logo"], loginPattern: [0, "p-login-pattern", "loginPattern"], passwordPattern: [0, "p-password-pattern", "passwordPattern"], secondaryLogo: [0, "p-secondary-logo", "secondaryLogo"], noAutocompleteLogin: [0, "p-no-autocomplete-login", "noAutocompleteLogin"], noAutocompletePassword: [0, "p-no-autocomplete-password", "noAutocompletePassword"], hidePasswordPeek: [0, "p-hide-password-peek", "hidePasswordPeek"], customField: [0, "p-custom-field", "customField"], contactEmail: [0, "p-contact-email", "contactEmail"], productName: [0, "p-product-name", "productName"], environment: [0, "p-environment", "environment"], exceededAttemptsWarning: [0, "p-exceeded-attempts-warning", "exceededAttemptsWarning"], hideRememberUser: [0, "p-hide-remember-user", "hideRememberUser"], literals: [0, "p-literals", "literals"], loading: [0, "p-loading", "loading"], login: [0, "p-login", "login"], loginErrors: [0, "p-login-errors", "loginErrors"], passwordErrors: [0, "p-password-errors", "passwordErrors"], recovery: [0, "p-recovery", "recovery"], registerUrl: [0, "p-register-url", "registerUrl"], authenticationType: [0, "p-authentication-type", "authenticationType"], authenticationUrl: [0, "p-authentication-url", "authenticationUrl"], blockedUrl: [0, "p-blocked-url", "blockedUrl"], support: [0, "p-support", "support"], languagesList: [0, "p-languages", "languagesList"] }, outputs: { loginChange: "p-login-change", loginSubmit: "p-login-submit", passwordChange: "p-password-change", languageChange: "p-language-change" } });
|
|
10351
|
+
static ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: PoPageLoginBaseComponent, inputs: { background: [0, "p-background", "background"], logo: [0, "p-logo", "logo"], loginPattern: [0, "p-login-pattern", "loginPattern"], passwordPattern: [0, "p-password-pattern", "passwordPattern"], secondaryLogo: [0, "p-secondary-logo", "secondaryLogo"], noAutocompleteLogin: [0, "p-no-autocomplete-login", "noAutocompleteLogin"], noAutocompletePassword: [0, "p-no-autocomplete-password", "noAutocompletePassword"], hideLabelStatus: [2, "p-hide-label-status", "hideLabelStatus", convertToBoolean], hidePasswordPeek: [0, "p-hide-password-peek", "hidePasswordPeek"], customField: [0, "p-custom-field", "customField"], contactEmail: [0, "p-contact-email", "contactEmail"], productName: [0, "p-product-name", "productName"], environment: [0, "p-environment", "environment"], exceededAttemptsWarning: [0, "p-exceeded-attempts-warning", "exceededAttemptsWarning"], hideRememberUser: [0, "p-hide-remember-user", "hideRememberUser"], literals: [0, "p-literals", "literals"], loading: [0, "p-loading", "loading"], login: [0, "p-login", "login"], loginErrors: [0, "p-login-errors", "loginErrors"], passwordErrors: [0, "p-password-errors", "passwordErrors"], recovery: [0, "p-recovery", "recovery"], registerUrl: [0, "p-register-url", "registerUrl"], authenticationType: [0, "p-authentication-type", "authenticationType"], authenticationUrl: [0, "p-authentication-url", "authenticationUrl"], blockedUrl: [0, "p-blocked-url", "blockedUrl"], support: [0, "p-support", "support"], languagesList: [0, "p-languages", "languagesList"] }, outputs: { loginChange: "p-login-change", loginSubmit: "p-login-submit", passwordChange: "p-password-change", languageChange: "p-language-change" }, features: [i0.ɵɵInputTransformsFeature] });
|
|
10341
10352
|
}
|
|
10342
10353
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PoPageLoginBaseComponent, [{
|
|
10343
10354
|
type: Directive
|
|
@@ -10374,6 +10385,9 @@ class PoPageLoginBaseComponent {
|
|
|
10374
10385
|
}], noAutocompletePassword: [{
|
|
10375
10386
|
type: Input,
|
|
10376
10387
|
args: ['p-no-autocomplete-password']
|
|
10388
|
+
}], hideLabelStatus: [{
|
|
10389
|
+
type: Input,
|
|
10390
|
+
args: [{ alias: 'p-hide-label-status', transform: convertToBoolean }]
|
|
10377
10391
|
}], hidePasswordPeek: [{
|
|
10378
10392
|
type: Input,
|
|
10379
10393
|
args: ['p-hide-password-peek']
|
|
@@ -10690,7 +10704,7 @@ function PoPageLoginComponent_div_32_Template(rf, ctx) { if (rf & 1) {
|
|
|
10690
10704
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
10691
10705
|
i0.ɵɵadvance();
|
|
10692
10706
|
i0.ɵɵtwoWayProperty("ngModel", ctx_r1.rememberUser);
|
|
10693
|
-
i0.ɵɵproperty("p-label-off", ctx_r1.pageLoginLiterals.rememberUser)("p-label-on", ctx_r1.pageLoginLiterals.rememberUser);
|
|
10707
|
+
i0.ɵɵproperty("p-label-off", ctx_r1.pageLoginLiterals.rememberUser)("p-label-on", ctx_r1.pageLoginLiterals.rememberUser)("p-hide-label-status", ctx_r1.hideLabelStatus);
|
|
10694
10708
|
i0.ɵɵadvance();
|
|
10695
10709
|
i0.ɵɵproperty("ngIf", ctx_r1.pageLoginLiterals.loginHint || ctx_r1.pageLoginLiterals.rememberUserHint);
|
|
10696
10710
|
} }
|
|
@@ -10930,7 +10944,7 @@ class PoPageLoginComponent extends PoPageLoginBaseComponent {
|
|
|
10930
10944
|
let _t;
|
|
10931
10945
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.loginForm = _t.first);
|
|
10932
10946
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.pageLogin = _t.first);
|
|
10933
|
-
} }, features: [i0.ɵɵInheritDefinitionFeature], decls: 36, vars: 42, consts: [["pageLogin", ""], ["loginForm", "ngForm"], [1, "po-page-login-support", 3, "click", "hidden"], ["p-icon", "ICON_HELP"], [3, "p-selected-language", "p-show-select-language", "p-languages", "p-initial-language", "p-background", "p-highlight-info", "p-logo", "p-secondary-logo"], [1, "po-page-login-header"], [1, "po-page-login-header-product-name"], [1, "po-page-login-header-product-environment", "po-mb-md-4", "po-mb-sm-1"], ["p-type", "warning", 3, "p-value", 4, "ngIf"], [1, "po-page-login-header-welcome", "po-mb-md-4", "po-mb-sm-2"], [1, "po-page-login-form"], [1, "po-row"], [1, "po-lg-12"], [1, "po-page-login-hint", "po-page-login-info-container"], ["name", "login", "p-auto-focus", "", "p-required", "", 1, "po-page-login-info-field", 3, "ngModelChange", "click", "keyup.enter", "p-change-model", "ngModel", "p-label", "p-no-autocomplete", "p-pattern", "p-placeholder"], ["class", "po-page-login-info-icon-container", 3, "po-page-login-info-icon-container-dynamic", 4, "ngIf"], [1, "po-field-container-bottom", "po-field-container-error-container"], ["class", "po-field-container-bottom-text-error po-field-container-error-item", 4, "ngFor", "ngForOf"], [1, "po-page-login-password-container"], ["name", "password", "p-required", "", 1, "po-page-login-field-size", "po-page-login-password-item", 3, "ngModelChange", "click", "keyup.enter", "p-change-model", "ngModel", "p-hide-password-peek", "p-label", "p-no-autocomplete", "p-pattern", "p-placeholder"], ["class", "po-page-login-password-item po-page-login-password-popover-container", 4, "ngIf"], ["class", "po-page-login-field-size po-lg-12", "name", "customFieldInput", "p-required", "", 3, "po-page-login-field-size-dynamic", "ngModel", "p-error-pattern", "p-pattern", "p-placeholder", "ngModelChange", "keyup.enter", 4, "ngIf"], ["class", "po-page-login-field-size po-lg-12", "name", "customFieldCombo", "p-required", "", 3, "po-page-login-field-size-dynamic", "ngModel", "p-field-value", "p-filter-service", "p-placeholder", "ngModelChange", 4, "ngIf"], ["class", "po-page-login-field-size po-lg-12", "name", "customFieldSelect", "p-required", "", 3, "po-page-login-field-size-dynamic", "ngModel", "p-placeholder", "p-options", "ngModelChange", 4, "ngIf"], ["class", "po-page-login-hint po-page-login-info-container", 4, "ngIf"], ["p-kind", "primary", 1, "po-lg-12", "po-page-login-button", "po-page-login-field-size", 3, "p-click", "p-disabled", "p-label", "p-loading"], ["class", "po-page-login-recovery-link", 4, "ngIf"], ["class", "po-page-login-register-link", 4, "ngIf"], ["p-type", "warning", 3, "p-value"], [1, "po-page-login-info-icon-container"], ["p-icon", "ICON_INFO po-field-icon", "p-tooltip-position", "right", 3, "p-tooltip", 4, "ngIf"], ["p-icon", "ICON_INFO po-field-icon", "p-tooltip-position", "right", 3, "p-tooltip"], [1, "po-field-container-bottom-text-error", "po-field-container-error-item"], ["p-icon", "ICON_EXCLAMATION"], [1, "po-field-container-error-text"], [1, "po-page-login-password-item", "po-page-login-password-popover-container"], [3, "p-literals", "p-recovery", "p-remaining-attempts", "p-forgot-password", 4, "ngIf"], [3, "p-forgot-password", "p-literals", "p-recovery", "p-remaining-attempts"], ["name", "customFieldInput", "p-required", "", 1, "po-page-login-field-size", "po-lg-12", 3, "ngModelChange", "keyup.enter", "ngModel", "p-error-pattern", "p-pattern", "p-placeholder"], ["name", "customFieldCombo", "p-required", "", 1, "po-page-login-field-size", "po-lg-12", 3, "ngModelChange", "ngModel", "p-field-value", "p-filter-service", "p-placeholder"], ["name", "customFieldSelect", "p-required", "", 1, "po-page-login-field-size", "po-lg-12", 3, "ngModelChange", "ngModel", "p-placeholder", "p-options"], ["name", "rememberUser", "p-label-position", "1", 1, "po-page-login-info-field", "po-lg-7", "po-offset-lg-5", "po-offset-xl-5", 3, "ngModelChange", "keyup.enter", "ngModel", "p-label-off", "p-label-on"], ["class", "po-page-login-info-icon-container po-page-login-info-icon-remember-user", 3, "po-page-login-info-icon-container-dynamic", 4, "ngIf"], [1, "po-page-login-info-icon-container", "po-page-login-info-icon-remember-user"], [1, "po-page-login-recovery-link"], [1, "po-font-text-large-bold", 3, "click"], [1, "po-page-login-register-link"]], template: function PoPageLoginComponent_Template(rf, ctx) { if (rf & 1) {
|
|
10947
|
+
} }, features: [i0.ɵɵInheritDefinitionFeature], decls: 36, vars: 42, consts: [["pageLogin", ""], ["loginForm", "ngForm"], [1, "po-page-login-support", 3, "click", "hidden"], ["p-icon", "ICON_HELP"], [3, "p-selected-language", "p-show-select-language", "p-languages", "p-initial-language", "p-background", "p-highlight-info", "p-logo", "p-secondary-logo"], [1, "po-page-login-header"], [1, "po-page-login-header-product-name"], [1, "po-page-login-header-product-environment", "po-mb-md-4", "po-mb-sm-1"], ["p-type", "warning", 3, "p-value", 4, "ngIf"], [1, "po-page-login-header-welcome", "po-mb-md-4", "po-mb-sm-2"], [1, "po-page-login-form"], [1, "po-row"], [1, "po-lg-12"], [1, "po-page-login-hint", "po-page-login-info-container"], ["name", "login", "p-auto-focus", "", "p-required", "", 1, "po-page-login-info-field", 3, "ngModelChange", "click", "keyup.enter", "p-change-model", "ngModel", "p-label", "p-no-autocomplete", "p-pattern", "p-placeholder"], ["class", "po-page-login-info-icon-container", 3, "po-page-login-info-icon-container-dynamic", 4, "ngIf"], [1, "po-field-container-bottom", "po-field-container-error-container"], ["class", "po-field-container-bottom-text-error po-field-container-error-item", 4, "ngFor", "ngForOf"], [1, "po-page-login-password-container"], ["name", "password", "p-required", "", 1, "po-page-login-field-size", "po-page-login-password-item", 3, "ngModelChange", "click", "keyup.enter", "p-change-model", "ngModel", "p-hide-password-peek", "p-label", "p-no-autocomplete", "p-pattern", "p-placeholder"], ["class", "po-page-login-password-item po-page-login-password-popover-container", 4, "ngIf"], ["class", "po-page-login-field-size po-lg-12", "name", "customFieldInput", "p-required", "", 3, "po-page-login-field-size-dynamic", "ngModel", "p-error-pattern", "p-pattern", "p-placeholder", "ngModelChange", "keyup.enter", 4, "ngIf"], ["class", "po-page-login-field-size po-lg-12", "name", "customFieldCombo", "p-required", "", 3, "po-page-login-field-size-dynamic", "ngModel", "p-field-value", "p-filter-service", "p-placeholder", "ngModelChange", 4, "ngIf"], ["class", "po-page-login-field-size po-lg-12", "name", "customFieldSelect", "p-required", "", 3, "po-page-login-field-size-dynamic", "ngModel", "p-placeholder", "p-options", "ngModelChange", 4, "ngIf"], ["class", "po-page-login-hint po-page-login-info-container", 4, "ngIf"], ["p-kind", "primary", 1, "po-lg-12", "po-page-login-button", "po-page-login-field-size", 3, "p-click", "p-disabled", "p-label", "p-loading"], ["class", "po-page-login-recovery-link", 4, "ngIf"], ["class", "po-page-login-register-link", 4, "ngIf"], ["p-type", "warning", 3, "p-value"], [1, "po-page-login-info-icon-container"], ["p-icon", "ICON_INFO po-field-icon", "p-tooltip-position", "right", 3, "p-tooltip", 4, "ngIf"], ["p-icon", "ICON_INFO po-field-icon", "p-tooltip-position", "right", 3, "p-tooltip"], [1, "po-field-container-bottom-text-error", "po-field-container-error-item"], ["p-icon", "ICON_EXCLAMATION"], [1, "po-field-container-error-text"], [1, "po-page-login-password-item", "po-page-login-password-popover-container"], [3, "p-literals", "p-recovery", "p-remaining-attempts", "p-forgot-password", 4, "ngIf"], [3, "p-forgot-password", "p-literals", "p-recovery", "p-remaining-attempts"], ["name", "customFieldInput", "p-required", "", 1, "po-page-login-field-size", "po-lg-12", 3, "ngModelChange", "keyup.enter", "ngModel", "p-error-pattern", "p-pattern", "p-placeholder"], ["name", "customFieldCombo", "p-required", "", 1, "po-page-login-field-size", "po-lg-12", 3, "ngModelChange", "ngModel", "p-field-value", "p-filter-service", "p-placeholder"], ["name", "customFieldSelect", "p-required", "", 1, "po-page-login-field-size", "po-lg-12", 3, "ngModelChange", "ngModel", "p-placeholder", "p-options"], ["name", "rememberUser", "p-label-position", "1", 1, "po-page-login-info-field", "po-lg-7", "po-offset-lg-5", "po-offset-xl-5", 3, "ngModelChange", "keyup.enter", "ngModel", "p-label-off", "p-label-on", "p-hide-label-status"], ["class", "po-page-login-info-icon-container po-page-login-info-icon-remember-user", 3, "po-page-login-info-icon-container-dynamic", 4, "ngIf"], [1, "po-page-login-info-icon-container", "po-page-login-info-icon-remember-user"], [1, "po-page-login-recovery-link"], [1, "po-font-text-large-bold", 3, "click"], [1, "po-page-login-register-link"]], template: function PoPageLoginComponent_Template(rf, ctx) { if (rf & 1) {
|
|
10934
10948
|
const _r1 = i0.ɵɵgetCurrentView();
|
|
10935
10949
|
i0.ɵɵelementStart(0, "button", 2);
|
|
10936
10950
|
i0.ɵɵlistener("click", function PoPageLoginComponent_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.activateSupport()); });
|
|
@@ -10968,7 +10982,7 @@ class PoPageLoginComponent extends PoPageLoginBaseComponent {
|
|
|
10968
10982
|
i0.ɵɵelementEnd()();
|
|
10969
10983
|
i0.ɵɵtemplate(28, PoPageLoginComponent_po_input_28_Template, 1, 6, "po-input", 21)(29, PoPageLoginComponent_po_combo_29_Template, 1, 6, "po-combo", 22)(30, PoPageLoginComponent_po_select_30_Template, 1, 5, "po-select", 23);
|
|
10970
10984
|
i0.ɵɵelementStart(31, "div", 12);
|
|
10971
|
-
i0.ɵɵtemplate(32, PoPageLoginComponent_div_32_Template, 3,
|
|
10985
|
+
i0.ɵɵtemplate(32, PoPageLoginComponent_div_32_Template, 3, 5, "div", 24);
|
|
10972
10986
|
i0.ɵɵelementEnd();
|
|
10973
10987
|
i0.ɵɵelementStart(33, "po-button", 25);
|
|
10974
10988
|
i0.ɵɵlistener("p-click", function PoPageLoginComponent_Template_po_button_p_click_33_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onLoginSubmit()); });
|
|
@@ -11023,7 +11037,7 @@ class PoPageLoginComponent extends PoPageLoginBaseComponent {
|
|
|
11023
11037
|
}
|
|
11024
11038
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PoPageLoginComponent, [{
|
|
11025
11039
|
type: Component,
|
|
11026
|
-
args: [{ selector: 'po-page-login', template: "<button class=\"po-page-login-support\" (click)=\"activateSupport()\" [hidden]=\"!support\">\n <po-icon p-icon=\"ICON_HELP\"></po-icon>\n {{ pageLoginLiterals?.support }}\n</button>\n\n<po-page-background\n #pageLogin\n [p-show-select-language]=\"showLanguage\"\n [p-languages]=\"languagesList\"\n [p-initial-language]=\"initialSelectLanguage\"\n [p-background]=\"background\"\n [p-highlight-info]=\"pageLoginLiterals.highlightInfo\"\n [p-logo]=\"logo\"\n [p-secondary-logo]=\"secondaryLogo\"\n (p-selected-language)=\"onSelectedLanguage($event)\"\n>\n <header class=\"po-page-login-header\">\n <div class=\"po-page-login-header-product-name\">\n <h1>{{ productName }}</h1>\n </div>\n\n <div class=\"po-page-login-header-product-environment po-mb-md-4 po-mb-sm-1\">\n <po-tag *ngIf=\"environment\" p-type=\"warning\" [p-value]=\"environment\"> </po-tag>\n </div>\n <div class=\"po-page-login-header-welcome po-mb-md-4 po-mb-sm-2\">{{ pageLoginLiterals.welcome }}</div>\n </header>\n\n <form #loginForm=\"ngForm\" class=\"po-page-login-form\">\n <div class=\"po-row\">\n <div class=\"po-lg-12\">\n <div class=\"po-page-login-hint po-page-login-info-container\">\n <po-login\n class=\"po-page-login-info-field\"\n [class.po-page-login-info-field-dynamic]=\"\n !pageLoginLiterals.loginHint && !pageLoginLiterals.rememberUserHint\n \"\n name=\"login\"\n [(ngModel)]=\"login\"\n p-auto-focus\n p-required\n [p-label]=\"pageLoginLiterals.loginLabel\"\n [p-no-autocomplete]=\"noAutocompleteLogin\"\n [p-pattern]=\"loginPattern\"\n [p-placeholder]=\"pageLoginLiterals.loginPlaceholder\"\n (click)=\"closePopover()\"\n (keyup.enter)=\"loginForm.valid && onLoginSubmit()\"\n (p-change-model)=\"changeLoginModel()\"\n >\n </po-login>\n\n <div\n *ngIf=\"pageLoginLiterals.loginHint || pageLoginLiterals.rememberUserHint\"\n class=\"po-page-login-info-icon-container\"\n [class.po-page-login-info-icon-container-dynamic]=\"\n !pageLoginLiterals.loginHint && !pageLoginLiterals.rememberUserHint\n \"\n >\n <po-icon\n p-icon=\"ICON_INFO po-field-icon\"\n *ngIf=\"pageLoginLiterals.loginHint\"\n p-tooltip-position=\"right\"\n [p-tooltip]=\"pageLoginLiterals.loginHint\"\n >\n </po-icon>\n </div>\n </div>\n\n <div class=\"po-field-container-bottom po-field-container-error-container\">\n <div\n *ngFor=\"let error of allLoginErrors\"\n class=\"po-field-container-bottom-text-error po-field-container-error-item\"\n >\n <po-icon p-icon=\"ICON_EXCLAMATION\"></po-icon>\n <span class=\"po-field-container-error-text\">{{ error }}</span>\n </div>\n </div>\n </div>\n\n <div class=\"po-lg-12\">\n <div class=\"po-page-login-password-container\">\n <po-password\n class=\"po-page-login-field-size po-page-login-password-item\"\n [class.po-page-login-field-size-dynamic]=\"\n !pageLoginLiterals.loginHint && !pageLoginLiterals.rememberUserHint\n \"\n name=\"password\"\n [(ngModel)]=\"password\"\n p-required\n [p-hide-password-peek]=\"hidePasswordPeek\"\n [p-label]=\"pageLoginLiterals.passwordLabel\"\n [p-no-autocomplete]=\"noAutocompletePassword\"\n [p-pattern]=\"passwordPattern\"\n [p-placeholder]=\"pageLoginLiterals.passwordPlaceholder\"\n (click)=\"closePopover()\"\n (keyup.enter)=\"loginForm.valid && onLoginSubmit()\"\n (p-change-model)=\"changePasswordModel()\"\n >\n </po-password>\n <div\n *ngIf=\"pageLoginLiterals.loginHint || pageLoginLiterals.rememberUserHint\"\n class=\"po-page-login-password-item po-page-login-password-popover-container\"\n >\n <po-page-login-popover\n *ngIf=\"showExceededAttemptsWarning && exceededAttemptsWarning\"\n [p-literals]=\"pageLoginLiterals\"\n [p-recovery]=\"recovery\"\n [p-remaining-attempts]=\"exceededAttemptsWarning\"\n (p-forgot-password)=\"openUrl($event)\"\n >\n </po-page-login-popover>\n </div>\n </div>\n <div class=\"po-field-container-bottom po-field-container-error-container\">\n <div\n *ngFor=\"let error of allPasswordErrors\"\n class=\"po-field-container-bottom-text-error po-field-container-error-item\"\n >\n <po-icon p-icon=\"ICON_EXCLAMATION\"></po-icon>\n <span class=\"po-field-container-error-text\">{{ error }}</span>\n </div>\n </div>\n </div>\n\n <po-input\n *ngIf=\"customField && customFieldType === 'input'\"\n [class.po-page-login-field-size-dynamic]=\"!pageLoginLiterals.loginHint && !pageLoginLiterals.rememberUserHint\"\n class=\"po-page-login-field-size po-lg-12\"\n name=\"customFieldInput\"\n [(ngModel)]=\"customFieldObject.value\"\n p-required\n [p-error-pattern]=\"customFieldObject.errorPattern || pageLoginLiterals.customFieldErrorPattern\"\n [p-pattern]=\"customFieldObject.pattern\"\n [p-placeholder]=\"customFieldObject.placeholder || pageLoginLiterals.customFieldPlaceholder\"\n (keyup.enter)=\"loginForm.valid && onLoginSubmit()\"\n >\n </po-input>\n\n <po-combo\n *ngIf=\"customField && customFieldType === 'combo'\"\n [class.po-page-login-field-size-dynamic]=\"!pageLoginLiterals.loginHint && !pageLoginLiterals.rememberUserHint\"\n class=\"po-page-login-field-size po-lg-12\"\n name=\"customFieldCombo\"\n [(ngModel)]=\"customFieldObject.value\"\n p-required\n [p-field-value]=\"customFieldObject.fieldValue\"\n [p-filter-service]=\"customFieldObject.url\"\n [p-placeholder]=\"customFieldObject.placeholder || pageLoginLiterals.customFieldPlaceholder\"\n >\n </po-combo>\n\n <po-select\n *ngIf=\"customField && customFieldType === 'select'\"\n [class.po-page-login-field-size-dynamic]=\"!pageLoginLiterals.loginHint && !pageLoginLiterals.rememberUserHint\"\n class=\"po-page-login-field-size po-lg-12\"\n name=\"customFieldSelect\"\n [(ngModel)]=\"customFieldObject.value\"\n p-required\n [p-placeholder]=\"customFieldObject.placeholder || pageLoginLiterals.customFieldPlaceholder\"\n [p-options]=\"customFieldObject.options\"\n >\n </po-select>\n\n <div class=\"po-lg-12\">\n <div *ngIf=\"!hideRememberUser\" class=\"po-page-login-hint po-page-login-info-container\">\n <po-switch\n class=\"po-page-login-info-field po-lg-7 po-offset-lg-5 po-offset-xl-5\"\n name=\"rememberUser\"\n [(ngModel)]=\"rememberUser\"\n p-label-position=\"1\"\n [p-label-off]=\"pageLoginLiterals.rememberUser\"\n [p-label-on]=\"pageLoginLiterals.rememberUser\"\n (keyup.enter)=\"loginForm.valid && onLoginSubmit()\"\n >\n </po-switch>\n\n <div\n *ngIf=\"pageLoginLiterals.loginHint || pageLoginLiterals.rememberUserHint\"\n class=\"po-page-login-info-icon-container po-page-login-info-icon-remember-user\"\n [class.po-page-login-info-icon-container-dynamic]=\"!pageLoginLiterals.rememberUserHint\"\n >\n <po-icon\n p-icon=\"ICON_INFO po-field-icon\"\n *ngIf=\"pageLoginLiterals.rememberUserHint\"\n p-tooltip-position=\"right\"\n [p-tooltip]=\"pageLoginLiterals.rememberUserHint\"\n >\n </po-icon>\n </div>\n </div>\n </div>\n\n <po-button\n [class.po-page-login-button-dynamic]=\"!pageLoginLiterals.loginHint && !pageLoginLiterals.rememberUserHint\"\n class=\"po-lg-12 po-page-login-button po-page-login-field-size\"\n p-kind=\"primary\"\n [p-disabled]=\"loginForm.invalid\"\n [p-label]=\"loading ? pageLoginLiterals.submittedLabel : pageLoginLiterals.submitLabel\"\n [p-loading]=\"loading\"\n (p-click)=\"onLoginSubmit()\"\n >\n </po-button>\n\n <div *ngIf=\"recovery\" class=\"po-page-login-recovery-link\">\n <a class=\"po-font-text-large-bold\" (click)=\"openUrl(recovery)\">{{ pageLoginLiterals.forgotPassword }}</a>\n </div>\n\n <div *ngIf=\"registerUrl\" class=\"po-page-login-register-link\">\n <a class=\"po-font-text-large-bold\" (click)=\"openUrl(registerUrl)\">{{ pageLoginLiterals.registerUrl }}</a>\n </div>\n </div>\n </form>\n</po-page-background>\n" }]
|
|
11040
|
+
args: [{ selector: 'po-page-login', template: "<button class=\"po-page-login-support\" (click)=\"activateSupport()\" [hidden]=\"!support\">\n <po-icon p-icon=\"ICON_HELP\"></po-icon>\n {{ pageLoginLiterals?.support }}\n</button>\n\n<po-page-background\n #pageLogin\n [p-show-select-language]=\"showLanguage\"\n [p-languages]=\"languagesList\"\n [p-initial-language]=\"initialSelectLanguage\"\n [p-background]=\"background\"\n [p-highlight-info]=\"pageLoginLiterals.highlightInfo\"\n [p-logo]=\"logo\"\n [p-secondary-logo]=\"secondaryLogo\"\n (p-selected-language)=\"onSelectedLanguage($event)\"\n>\n <header class=\"po-page-login-header\">\n <div class=\"po-page-login-header-product-name\">\n <h1>{{ productName }}</h1>\n </div>\n\n <div class=\"po-page-login-header-product-environment po-mb-md-4 po-mb-sm-1\">\n <po-tag *ngIf=\"environment\" p-type=\"warning\" [p-value]=\"environment\"> </po-tag>\n </div>\n <div class=\"po-page-login-header-welcome po-mb-md-4 po-mb-sm-2\">{{ pageLoginLiterals.welcome }}</div>\n </header>\n\n <form #loginForm=\"ngForm\" class=\"po-page-login-form\">\n <div class=\"po-row\">\n <div class=\"po-lg-12\">\n <div class=\"po-page-login-hint po-page-login-info-container\">\n <po-login\n class=\"po-page-login-info-field\"\n [class.po-page-login-info-field-dynamic]=\"\n !pageLoginLiterals.loginHint && !pageLoginLiterals.rememberUserHint\n \"\n name=\"login\"\n [(ngModel)]=\"login\"\n p-auto-focus\n p-required\n [p-label]=\"pageLoginLiterals.loginLabel\"\n [p-no-autocomplete]=\"noAutocompleteLogin\"\n [p-pattern]=\"loginPattern\"\n [p-placeholder]=\"pageLoginLiterals.loginPlaceholder\"\n (click)=\"closePopover()\"\n (keyup.enter)=\"loginForm.valid && onLoginSubmit()\"\n (p-change-model)=\"changeLoginModel()\"\n >\n </po-login>\n\n <div\n *ngIf=\"pageLoginLiterals.loginHint || pageLoginLiterals.rememberUserHint\"\n class=\"po-page-login-info-icon-container\"\n [class.po-page-login-info-icon-container-dynamic]=\"\n !pageLoginLiterals.loginHint && !pageLoginLiterals.rememberUserHint\n \"\n >\n <po-icon\n p-icon=\"ICON_INFO po-field-icon\"\n *ngIf=\"pageLoginLiterals.loginHint\"\n p-tooltip-position=\"right\"\n [p-tooltip]=\"pageLoginLiterals.loginHint\"\n >\n </po-icon>\n </div>\n </div>\n\n <div class=\"po-field-container-bottom po-field-container-error-container\">\n <div\n *ngFor=\"let error of allLoginErrors\"\n class=\"po-field-container-bottom-text-error po-field-container-error-item\"\n >\n <po-icon p-icon=\"ICON_EXCLAMATION\"></po-icon>\n <span class=\"po-field-container-error-text\">{{ error }}</span>\n </div>\n </div>\n </div>\n\n <div class=\"po-lg-12\">\n <div class=\"po-page-login-password-container\">\n <po-password\n class=\"po-page-login-field-size po-page-login-password-item\"\n [class.po-page-login-field-size-dynamic]=\"\n !pageLoginLiterals.loginHint && !pageLoginLiterals.rememberUserHint\n \"\n name=\"password\"\n [(ngModel)]=\"password\"\n p-required\n [p-hide-password-peek]=\"hidePasswordPeek\"\n [p-label]=\"pageLoginLiterals.passwordLabel\"\n [p-no-autocomplete]=\"noAutocompletePassword\"\n [p-pattern]=\"passwordPattern\"\n [p-placeholder]=\"pageLoginLiterals.passwordPlaceholder\"\n (click)=\"closePopover()\"\n (keyup.enter)=\"loginForm.valid && onLoginSubmit()\"\n (p-change-model)=\"changePasswordModel()\"\n >\n </po-password>\n <div\n *ngIf=\"pageLoginLiterals.loginHint || pageLoginLiterals.rememberUserHint\"\n class=\"po-page-login-password-item po-page-login-password-popover-container\"\n >\n <po-page-login-popover\n *ngIf=\"showExceededAttemptsWarning && exceededAttemptsWarning\"\n [p-literals]=\"pageLoginLiterals\"\n [p-recovery]=\"recovery\"\n [p-remaining-attempts]=\"exceededAttemptsWarning\"\n (p-forgot-password)=\"openUrl($event)\"\n >\n </po-page-login-popover>\n </div>\n </div>\n <div class=\"po-field-container-bottom po-field-container-error-container\">\n <div\n *ngFor=\"let error of allPasswordErrors\"\n class=\"po-field-container-bottom-text-error po-field-container-error-item\"\n >\n <po-icon p-icon=\"ICON_EXCLAMATION\"></po-icon>\n <span class=\"po-field-container-error-text\">{{ error }}</span>\n </div>\n </div>\n </div>\n\n <po-input\n *ngIf=\"customField && customFieldType === 'input'\"\n [class.po-page-login-field-size-dynamic]=\"!pageLoginLiterals.loginHint && !pageLoginLiterals.rememberUserHint\"\n class=\"po-page-login-field-size po-lg-12\"\n name=\"customFieldInput\"\n [(ngModel)]=\"customFieldObject.value\"\n p-required\n [p-error-pattern]=\"customFieldObject.errorPattern || pageLoginLiterals.customFieldErrorPattern\"\n [p-pattern]=\"customFieldObject.pattern\"\n [p-placeholder]=\"customFieldObject.placeholder || pageLoginLiterals.customFieldPlaceholder\"\n (keyup.enter)=\"loginForm.valid && onLoginSubmit()\"\n >\n </po-input>\n\n <po-combo\n *ngIf=\"customField && customFieldType === 'combo'\"\n [class.po-page-login-field-size-dynamic]=\"!pageLoginLiterals.loginHint && !pageLoginLiterals.rememberUserHint\"\n class=\"po-page-login-field-size po-lg-12\"\n name=\"customFieldCombo\"\n [(ngModel)]=\"customFieldObject.value\"\n p-required\n [p-field-value]=\"customFieldObject.fieldValue\"\n [p-filter-service]=\"customFieldObject.url\"\n [p-placeholder]=\"customFieldObject.placeholder || pageLoginLiterals.customFieldPlaceholder\"\n >\n </po-combo>\n\n <po-select\n *ngIf=\"customField && customFieldType === 'select'\"\n [class.po-page-login-field-size-dynamic]=\"!pageLoginLiterals.loginHint && !pageLoginLiterals.rememberUserHint\"\n class=\"po-page-login-field-size po-lg-12\"\n name=\"customFieldSelect\"\n [(ngModel)]=\"customFieldObject.value\"\n p-required\n [p-placeholder]=\"customFieldObject.placeholder || pageLoginLiterals.customFieldPlaceholder\"\n [p-options]=\"customFieldObject.options\"\n >\n </po-select>\n\n <div class=\"po-lg-12\">\n <div *ngIf=\"!hideRememberUser\" class=\"po-page-login-hint po-page-login-info-container\">\n <po-switch\n class=\"po-page-login-info-field po-lg-7 po-offset-lg-5 po-offset-xl-5\"\n name=\"rememberUser\"\n [(ngModel)]=\"rememberUser\"\n p-label-position=\"1\"\n [p-label-off]=\"pageLoginLiterals.rememberUser\"\n [p-label-on]=\"pageLoginLiterals.rememberUser\"\n (keyup.enter)=\"loginForm.valid && onLoginSubmit()\"\n [p-hide-label-status]=\"hideLabelStatus\"\n >\n </po-switch>\n\n <div\n *ngIf=\"pageLoginLiterals.loginHint || pageLoginLiterals.rememberUserHint\"\n class=\"po-page-login-info-icon-container po-page-login-info-icon-remember-user\"\n [class.po-page-login-info-icon-container-dynamic]=\"!pageLoginLiterals.rememberUserHint\"\n >\n <po-icon\n p-icon=\"ICON_INFO po-field-icon\"\n *ngIf=\"pageLoginLiterals.rememberUserHint\"\n p-tooltip-position=\"right\"\n [p-tooltip]=\"pageLoginLiterals.rememberUserHint\"\n >\n </po-icon>\n </div>\n </div>\n </div>\n\n <po-button\n [class.po-page-login-button-dynamic]=\"!pageLoginLiterals.loginHint && !pageLoginLiterals.rememberUserHint\"\n class=\"po-lg-12 po-page-login-button po-page-login-field-size\"\n p-kind=\"primary\"\n [p-disabled]=\"loginForm.invalid\"\n [p-label]=\"loading ? pageLoginLiterals.submittedLabel : pageLoginLiterals.submitLabel\"\n [p-loading]=\"loading\"\n (p-click)=\"onLoginSubmit()\"\n >\n </po-button>\n\n <div *ngIf=\"recovery\" class=\"po-page-login-recovery-link\">\n <a class=\"po-font-text-large-bold\" (click)=\"openUrl(recovery)\">{{ pageLoginLiterals.forgotPassword }}</a>\n </div>\n\n <div *ngIf=\"registerUrl\" class=\"po-page-login-register-link\">\n <a class=\"po-font-text-large-bold\" (click)=\"openUrl(registerUrl)\">{{ pageLoginLiterals.registerUrl }}</a>\n </div>\n </div>\n </form>\n</po-page-background>\n" }]
|
|
11027
11041
|
}], () => [{ type: i0.ChangeDetectorRef }, { type: i1$1.ActivatedRoute }, { type: i2.PoComponentInjectorService }, { type: i0.IterableDiffers }, { type: PoPageLoginService }, { type: i1$1.Router }, { type: i2.PoLanguageService }], { loginForm: [{
|
|
11028
11042
|
type: ViewChild,
|
|
11029
11043
|
args: ['loginForm', { read: NgForm, static: true }]
|