ngx-histaff-alpha 2.0.4 → 2.0.6
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/app/libraries/language-changer/language-changer/language-changer.component.mjs
CHANGED
|
@@ -58,6 +58,9 @@ export class LanguageChangerComponent extends BaseDropdownComponent {
|
|
|
58
58
|
onMenuItemClick(item) {
|
|
59
59
|
this.mls.lang$.next(item.lang === EnumTranslateKey.UI_LANGUAGE_CHANGER_MENU_VI ? 'vi' : 'en');
|
|
60
60
|
this.expandState = !this.expandState;
|
|
61
|
+
if (!!localStorage) {
|
|
62
|
+
localStorage.setItem("lang", this.mls.lang$.value);
|
|
63
|
+
}
|
|
61
64
|
}
|
|
62
65
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: LanguageChangerComponent, deps: [{ token: i1.MultiLanguageService }, { token: i0.Renderer2 }, { token: i2.DomService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
63
66
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.3", type: LanguageChangerComponent, isStandalone: true, selector: "app-language-changer", usesInheritance: true, ngImport: i0, template: "<div #container class=\"app-language-changer-container\">\r\n <div class=\"block d-flex d-flex-center\" (click)=\"onBlockClick()\">\r\n <!-- <span>{{ currentLang | translate: lang }}</span> -->\r\n <img [src]=\"this.currentLang == 'UI_LANGUAGE_CHANGER_MENU_VI' ? '../../../assets/icon/vietnam-lang.svg' : '../../../assets/icon/england-lang.svg'\">\r\n </div>\r\n <div class=\"dropdown\" [class.open]=\"expandState\">\r\n <ul>\r\n <li *ngFor=\"let item of languages\" (click)=\"onMenuItemClick(item)\">\r\n <span>{{ item.translateCode | translate: lang }}</span>\r\n </li>\r\n </ul>\r\n </div>\r\n</div>\r\n", styles: [".app-language-changer-container{position:relative}.app-language-changer-container>.block{cursor:pointer;padding:5px;background-color:var(--color-bg-core-table-highlighted);border-radius:5px;color:#fff;height:30px}.app-language-changer-container>.dropdown{position:absolute;width:var(--size-left-bar-full-width);top:var(--size-form-control-height);right:0;height:0px;overflow:hidden;transition:height .5s ease-out;color:var(--color-menu-level-1)}.app-language-changer-container>.dropdown>ul{background-color:var(--color-bg-menu-level-2)}.app-language-changer-container>.dropdown>ul>li{height:var(--size-form-control-height);cursor:pointer;display:flex;align-items:center}.app-language-changer-container>.dropdown>ul>li>i{margin-right:var(--size-layout-block-cell-spacing)}.app-language-changer-container>.dropdown.open{display:block;background-color:var(--color-bg-block);padding:var(--size-layout-block-cell-spacing);height:calc(var(--size-form-control-height) * 2 + var(--size-layout-block-cell-spacing) * 2);transition:height .5s ease-out;box-shadow:var(--decoration-box-shadow)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
|
|
@@ -69,4 +72,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
|
|
|
69
72
|
TranslatePipe
|
|
70
73
|
], template: "<div #container class=\"app-language-changer-container\">\r\n <div class=\"block d-flex d-flex-center\" (click)=\"onBlockClick()\">\r\n <!-- <span>{{ currentLang | translate: lang }}</span> -->\r\n <img [src]=\"this.currentLang == 'UI_LANGUAGE_CHANGER_MENU_VI' ? '../../../assets/icon/vietnam-lang.svg' : '../../../assets/icon/england-lang.svg'\">\r\n </div>\r\n <div class=\"dropdown\" [class.open]=\"expandState\">\r\n <ul>\r\n <li *ngFor=\"let item of languages\" (click)=\"onMenuItemClick(item)\">\r\n <span>{{ item.translateCode | translate: lang }}</span>\r\n </li>\r\n </ul>\r\n </div>\r\n</div>\r\n", styles: [".app-language-changer-container{position:relative}.app-language-changer-container>.block{cursor:pointer;padding:5px;background-color:var(--color-bg-core-table-highlighted);border-radius:5px;color:#fff;height:30px}.app-language-changer-container>.dropdown{position:absolute;width:var(--size-left-bar-full-width);top:var(--size-form-control-height);right:0;height:0px;overflow:hidden;transition:height .5s ease-out;color:var(--color-menu-level-1)}.app-language-changer-container>.dropdown>ul{background-color:var(--color-bg-menu-level-2)}.app-language-changer-container>.dropdown>ul>li{height:var(--size-form-control-height);cursor:pointer;display:flex;align-items:center}.app-language-changer-container>.dropdown>ul>li>i{margin-right:var(--size-layout-block-cell-spacing)}.app-language-changer-container>.dropdown.open{display:block;background-color:var(--color-bg-block);padding:var(--size-layout-block-cell-spacing);height:calc(var(--size-form-control-height) * 2 + var(--size-layout-block-cell-spacing) * 2);transition:height .5s ease-out;box-shadow:var(--decoration-box-shadow)}\n"] }]
|
|
71
74
|
}], ctorParameters: () => [{ type: i1.MultiLanguageService }, { type: i0.Renderer2 }, { type: i2.DomService }] });
|
|
72
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFuZ3VhZ2UtY2hhbmdlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaGlzdGFmZi1hbHBoYS9zcmMvbGliL2FwcC9saWJyYXJpZXMvbGFuZ3VhZ2UtY2hhbmdlci9sYW5ndWFnZS1jaGFuZ2VyL2xhbmd1YWdlLWNoYW5nZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWhpc3RhZmYtYWxwaGEvc3JjL2xpYi9hcHAvbGlicmFyaWVzL2xhbmd1YWdlLWNoYW5nZXIvbGFuZ3VhZ2UtY2hhbmdlci9sYW5ndWFnZS1jaGFuZ2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWdDLE1BQU0sZUFBZSxDQUFDO0FBSXhFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJEQUEyRCxDQUFDO0FBQ2xHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzFELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOzs7OztBQWtCbEUsTUFBTSxPQUFPLHdCQUF5QixTQUFRLHFCQUFxQjtJQWlCakUsWUFDa0IsR0FBeUIsRUFDekIsUUFBbUIsRUFDbkIsVUFBc0I7UUFFdEMsS0FBSyxDQUFDLEdBQUcsRUFBRSxRQUFRLEVBQUUsVUFBVSxDQUFDLENBQUE7UUFKaEIsUUFBRyxHQUFILEdBQUcsQ0FBc0I7UUFDekIsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBbEJ4QyxjQUFTLEdBQStCO1lBQ3RDO2dCQUNFLElBQUksRUFBRSxnQkFBZ0IsQ0FBQywyQkFBMkI7Z0JBQ2xELGFBQWEsRUFBRSxnQkFBZ0IsQ0FBQyxtQ0FBbUM7Z0JBQ25FLFNBQVMsRUFBRSxhQUFhLENBQUMsZ0JBQWdCO2FBQzFDO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLGdCQUFnQixDQUFDLDJCQUEyQjtnQkFDbEQsYUFBYSxFQUFFLGdCQUFnQixDQUFDLGdDQUFnQztnQkFDaEUsU0FBUyxFQUFFLGFBQWEsQ0FBQyxlQUFlO2FBQ3pDO1NBQ0YsQ0FBQztRQVdBLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUNyQixJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDM0IsSUFBSSxDQUFDLEtBQUssSUFBSSxFQUFFO2dCQUNkLElBQUksQ0FBQyxXQUFXLEdBQUcsZ0JBQWdCLENBQUMsMkJBQTJCLENBQUE7YUFDaEU7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLFdBQVcsR0FBRyxnQkFBZ0IsQ0FBQywyQkFBMkIsQ0FBQTthQUNoRTtRQUNILENBQUMsQ0FBQyxDQUNILENBQUE7SUFDSCxDQUFDO0lBRUQsZUFBZTtRQUNiOztVQUVFO1FBQ0YsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBUSxFQUFFLEVBQUU7WUFDckU7O2VBRUc7WUFDSCxJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRTtnQkFDeEUsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7YUFDMUI7UUFDSCxDQUFDLENBQUMsQ0FBQTtRQUVGLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDakQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxlQUFlLEVBQUUsU0FBUyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQy9FLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNO1lBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzdGLENBQUM7SUFFRCxZQUFZO1FBQ1YsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUE7SUFDdEMsQ0FBQztJQUVELGVBQWUsQ0FBQyxJQUE4QjtRQUM1QyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxnQkFBZ0IsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUM3RixJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUVyQyxJQUFJLENBQUMsQ0FBQyxZQUFZLEVBQUU7WUFDakIsWUFBd0IsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ2pFO0lBRUgsQ0FBQzs4R0FqRVUsd0JBQXdCO2tHQUF4Qix3QkFBd0IsdUdDMUJyQyw2cUJBYUEsb25DRE9JLFlBQVksdUpBQ1osYUFBYTs7MkZBS0osd0JBQXdCO2tCQVZwQyxTQUFTOytCQUNFLHNCQUFzQixjQUNwQixJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixhQUFhO3FCQUNkIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkRlc3Ryb3ksIE9uSW5pdCwgUmVuZGVyZXIyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBEb21TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZG9tLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBNdWx0aUxhbmd1YWdlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL211bHRpLWxhbmd1YWdlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBCYXNlRHJvcGRvd25Db21wb25lbnQgfSBmcm9tICcuLi8uLi9iYXNlLWRyb3Bkb3duL2Jhc2UtZHJvcGRvd24vYmFzZS1kcm9wZG93bi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBFbnVtVHJhbnNsYXRlS2V5IH0gZnJvbSBcImFscGhhLWdsb2JhbC1jb25zdGFudHNcIjtcclxuaW1wb3J0IHsgRW51bUljb25DbGFzcyB9IGZyb20gJy4uLy4uLy4uL2VudW0vRW51bUljb25DbGFzcyc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVBpcGUgfSBmcm9tICcuLi8uLi8uLi9hcHAtcGlwZXMvdHJhbnNsYXRlLnBpcGUnO1xyXG5cclxuaW50ZXJmYWNlIElMYW5ndWFnZUNoYW5nZXJNZW51SXRlbSB7XHJcbiAgbGFuZzogRW51bVRyYW5zbGF0ZUtleSxcclxuICB0cmFuc2xhdGVDb2RlOiBFbnVtVHJhbnNsYXRlS2V5O1xyXG4gIGljb25DbGFzczogRW51bUljb25DbGFzcztcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtbGFuZ3VhZ2UtY2hhbmdlcicsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBUcmFuc2xhdGVQaXBlXHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vbGFuZ3VhZ2UtY2hhbmdlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vbGFuZ3VhZ2UtY2hhbmdlci5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTGFuZ3VhZ2VDaGFuZ2VyQ29tcG9uZW50IGV4dGVuZHMgQmFzZURyb3Bkb3duQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG5cclxuICBsYW5ndWFnZXM6IElMYW5ndWFnZUNoYW5nZXJNZW51SXRlbVtdID0gW1xyXG4gICAge1xyXG4gICAgICBsYW5nOiBFbnVtVHJhbnNsYXRlS2V5LlVJX0xBTkdVQUdFX0NIQU5HRVJfTUVOVV9WSSxcclxuICAgICAgdHJhbnNsYXRlQ29kZTogRW51bVRyYW5zbGF0ZUtleS5VSV9MQU5HVUFHRV9DSEFOR0VSX01FTlVfVklFVE5BTUVTRSxcclxuICAgICAgaWNvbkNsYXNzOiBFbnVtSWNvbkNsYXNzLkZMQUdfT0ZfVklFVE5BTUVcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIGxhbmc6IEVudW1UcmFuc2xhdGVLZXkuVUlfTEFOR1VBR0VfQ0hBTkdFUl9NRU5VX0VOLFxyXG4gICAgICB0cmFuc2xhdGVDb2RlOiBFbnVtVHJhbnNsYXRlS2V5LlVJX0xBTkdVQUdFX0NIQU5HRVJfTUVOVV9FTkdMSVNILFxyXG4gICAgICBpY29uQ2xhc3M6IEVudW1JY29uQ2xhc3MuRkxBR19PRl9FTkdMQU5EXHJcbiAgICB9XHJcbiAgXTtcclxuXHJcbiAgY3VycmVudExhbmchOiBFbnVtVHJhbnNsYXRlS2V5O1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBvdmVycmlkZSBtbHM6IE11bHRpTGFuZ3VhZ2VTZXJ2aWNlLFxyXG4gICAgcHVibGljIG92ZXJyaWRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXHJcbiAgICBwdWJsaWMgb3ZlcnJpZGUgZG9tU2VydmljZTogRG9tU2VydmljZSxcclxuICApIHtcclxuICAgIHN1cGVyKG1scywgcmVuZGVyZXIsIGRvbVNlcnZpY2UpXHJcblxyXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICAgIHRoaXMubWxzLmxhbmckLnN1YnNjcmliZSh4ID0+IHtcclxuICAgICAgICBpZiAoeCA9PT0gJ3ZpJykge1xyXG4gICAgICAgICAgdGhpcy5jdXJyZW50TGFuZyA9IEVudW1UcmFuc2xhdGVLZXkuVUlfTEFOR1VBR0VfQ0hBTkdFUl9NRU5VX1ZJXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuY3VycmVudExhbmcgPSBFbnVtVHJhbnNsYXRlS2V5LlVJX0xBTkdVQUdFX0NIQU5HRVJfTUVOVV9FTlxyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgIClcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIC8qKlxyXG4gICAgKiBUaGlzIGV2ZW50cyBnZXQgY2FsbGVkIGJ5IGFsbCBjbGlja3Mgb24gdGhlIHBhZ2VcclxuICAgICovXHJcbiAgICB0aGlzLmxpc3RlbmVyRm4gPSB0aGlzLnJlbmRlcmVyLmxpc3Rlbignd2luZG93JywgJ2NsaWNrJywgKGU6IEV2ZW50KSA9PiB7XHJcbiAgICAgIC8qXHJcbiAgICAgICAqIGhhbmRsZSBjbGljayBvdXRzaWRlXHJcbiAgICAgICAqL1xyXG4gICAgICBpZiAodGhpcy5jb250YWluZXIgJiYgISEhdGhpcy5jb250YWluZXIubmF0aXZlRWxlbWVudC5jb250YWlucyhlLnRhcmdldCkpIHtcclxuICAgICAgICB0aGlzLmV4cGFuZFN0YXRlID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH0pXHJcblxyXG4gICAgY29uc3QgbWF4WkluZGV4ID0gdGhpcy5kb21TZXJ2aWNlLmdldE1heFpJbmRleCgpO1xyXG4gICAgdGhpcy5jb250YWluZXIubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1tYXgtei1pbmRleCcsIG1heFpJbmRleCArIDEpO1xyXG4gICAgaWYgKCEhdGhpcy5oZWlnaHQpIHRoaXMuY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0taGVpZ2h0JywgdGhpcy5oZWlnaHQpO1xyXG4gIH1cclxuXHJcbiAgb25CbG9ja0NsaWNrKCk6IHZvaWQge1xyXG4gICAgdGhpcy5leHBhbmRTdGF0ZSA9ICF0aGlzLmV4cGFuZFN0YXRlXHJcbiAgfVxyXG4gIFxyXG4gIG9uTWVudUl0ZW1DbGljayhpdGVtOiBJTGFuZ3VhZ2VDaGFuZ2VyTWVudUl0ZW0pOiB2b2lkIHtcclxuICAgIHRoaXMubWxzLmxhbmckLm5leHQoaXRlbS5sYW5nID09PSBFbnVtVHJhbnNsYXRlS2V5LlVJX0xBTkdVQUdFX0NIQU5HRVJfTUVOVV9WSSA/ICd2aScgOiAnZW4nKVxyXG4gICAgdGhpcy5leHBhbmRTdGF0ZSA9ICF0aGlzLmV4cGFuZFN0YXRlO1xyXG5cclxuICAgIGlmICghIWxvY2FsU3RvcmFnZSkge1xyXG4gICAgICAobG9jYWxTdG9yYWdlIGFzIFN0b3JhZ2UpLnNldEl0ZW0oXCJsYW5nXCIsIHRoaXMubWxzLmxhbmckLnZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxufVxyXG4iLCI8ZGl2ICNjb250YWluZXIgY2xhc3M9XCJhcHAtbGFuZ3VhZ2UtY2hhbmdlci1jb250YWluZXJcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJibG9jayBkLWZsZXggZC1mbGV4LWNlbnRlclwiIChjbGljayk9XCJvbkJsb2NrQ2xpY2soKVwiPlxyXG4gICAgICAgIDwhLS0gPHNwYW4+e3sgY3VycmVudExhbmcgfCB0cmFuc2xhdGU6IGxhbmcgfX08L3NwYW4+IC0tPlxyXG4gICAgICAgIDxpbWcgW3NyY109XCJ0aGlzLmN1cnJlbnRMYW5nID09ICdVSV9MQU5HVUFHRV9DSEFOR0VSX01FTlVfVkknID8gJy4uLy4uLy4uL2Fzc2V0cy9pY29uL3ZpZXRuYW0tbGFuZy5zdmcnIDogJy4uLy4uLy4uL2Fzc2V0cy9pY29uL2VuZ2xhbmQtbGFuZy5zdmcnXCI+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJkcm9wZG93blwiIFtjbGFzcy5vcGVuXT1cImV4cGFuZFN0YXRlXCI+XHJcbiAgICAgICAgPHVsPlxyXG4gICAgICAgICAgICA8bGkgKm5nRm9yPVwibGV0IGl0ZW0gb2YgbGFuZ3VhZ2VzXCIgKGNsaWNrKT1cIm9uTWVudUl0ZW1DbGljayhpdGVtKVwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+e3sgaXRlbS50cmFuc2xhdGVDb2RlIHwgdHJhbnNsYXRlOiBsYW5nIH19PC9zcGFuPlxyXG4gICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgIDwvdWw+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
@@ -29,33 +29,16 @@ export class AppInitializationService {
|
|
|
29
29
|
this.ssoFailed = false;
|
|
30
30
|
}
|
|
31
31
|
appInitialize() {
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
return value
|
|
41
|
-
})
|
|
42
|
-
} else {
|
|
43
|
-
newO = {}
|
|
44
|
-
for (origKey in o) {
|
|
45
|
-
if (o.hasOwnProperty(origKey)) {
|
|
46
|
-
newKey = (origKey.charAt(0).toLowerCase() + origKey.slice(1) || origKey).toString()
|
|
47
|
-
value = o[origKey]
|
|
48
|
-
if (value instanceof Array || (value !== null && value.constructor === Object)) {
|
|
49
|
-
value = toCamel(value)
|
|
32
|
+
try {
|
|
33
|
+
if (!localStorage) {
|
|
34
|
+
const lang = localStorage.getItem("lang");
|
|
35
|
+
if (!!lang) {
|
|
36
|
+
this.mls.lang$.next(JSON.parse(lang));
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
this.mls.lang$.next("en");
|
|
50
40
|
}
|
|
51
|
-
(newO as any)[newKey] = value
|
|
52
|
-
}
|
|
53
41
|
}
|
|
54
|
-
}
|
|
55
|
-
return newO
|
|
56
|
-
}
|
|
57
|
-
*/
|
|
58
|
-
try {
|
|
59
42
|
fetch('../../assets/app.config.json').then(res => res.json()).then(({ APP_TYPE, BASE_URL, BASE_URL_FOR_STATISTIC, GOLIVE_URL, DEBUG_ENABLED, LOGO_LOGIN, LOGO_HEADER, HOME_BACKGROUND_IMAGE, OAUTH2_OIDC_ENABLED, OAUTH2_OIDC_CLIENT_ID, OAUTH2_OIDC_LOGIN_URI, OAUTH2_OIDC_REDIRECT_URI, OAUTH2_OIDC_SCOPE, SAML2ADFS_ENABLED, SAML2ADFS_IDP, SAML2ADFS_IDENTIFIER, SAML2ADFS_WA_SIGNIN, SAML2ADFS_WA_SIGNOUT, SAML2ADFS_WREPLY, HANGFIRE_PATH, STATIC_FOLDER, AVATAR_FOLDER, }) => {
|
|
60
43
|
this.appConfigService.APP_TYPE = APP_TYPE;
|
|
61
44
|
this.appConfigService.BASE_URL = BASE_URL;
|
|
@@ -256,4 +239,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
|
|
|
256
239
|
providedIn: 'root'
|
|
257
240
|
}]
|
|
258
241
|
}], ctorParameters: () => [{ type: i1.AuthService }, { type: i2.MultiLanguageService }, { type: i3.LayoutService }, { type: i4.OrganizationService }, { type: i5.RoutingService }, { type: i6.AppConfigService }, { type: i7.AppService }, { type: i8.GrpcService }] });
|
|
259
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLWluaXRpYWxpemF0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaGlzdGFmZi1hbHBoYS9zcmMvbGliL2FwcC9zZXJ2aWNlcy9hcHAtaW5pdGlhbGl6YXRpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3RELE9BQU8sRUFBRSxlQUFlLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQWdCLE1BQU0sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQVdsRixPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7Ozs7Ozs7QUFNN0MsTUFBTSxPQUFPLHdCQUF3QjtJQWFuQyxZQUNVLFdBQXdCLEVBQ3hCLEdBQXlCLEVBQ3pCLGFBQTRCLEVBQzVCLG1CQUF3QyxFQUN4QyxjQUE4QixFQUM5QixnQkFBa0MsRUFDbEMsVUFBc0IsRUFDdEIsV0FBd0I7UUFQeEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsUUFBRyxHQUFILEdBQUcsQ0FBc0I7UUFDekIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4QyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBbkJsQyxrQkFBYSxHQUFHLElBQUksZUFBZSxDQUFVLElBQUksQ0FBQyxDQUFDO1FBQ25ELG1CQUFjLEdBQUcsSUFBSSxlQUFlLENBQVUsSUFBSSxDQUFDLENBQUM7UUFDcEQsa0JBQWEsR0FBbUIsRUFBRSxDQUFDO1FBRW5DLHVCQUFrQixHQUFZLEtBQUssQ0FBQztRQUNwQyxtQkFBYyxHQUFZLEtBQUss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RUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFBO1NBQzdEO1FBQUMsT0FBTyxDQUFDLEVBQUU7WUFDVixPQUFPLENBQUMsR0FBRyxDQUFDLCtCQUErQixFQUFFLENBQUMsQ0FBQyxDQUFBO1NBQ2hEO2dCQUFTO1lBQ1IsT0FBTyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQTtTQUN2QjtJQUVILENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQTtJQUMvQyxDQUFDOzhHQXBVVSx3QkFBd0I7a0hBQXhCLHdCQUF3QixjQUZ2QixNQUFNOzsyRkFFUCx3QkFBd0I7a0JBSHBDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgemlwLCBjYXRjaEVycm9yLCBvZiwgU3Vic2NyaXB0aW9uLCBmaWx0ZXIgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuL2F1dGguc2VydmljZSc7XHJcbmltcG9ydCB7IE11bHRpTGFuZ3VhZ2VTZXJ2aWNlIH0gZnJvbSAnLi9tdWx0aS1sYW5ndWFnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTGF5b3V0U2VydmljZSB9IGZyb20gJy4vbGF5b3V0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBcHBDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi9hcHAtY29uZmlnLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBJRm9ybWF0ZWRSZXNwb25zZSB9IGZyb20gJy4uL2ludGVyZmFjZXMvSUZvcm1hdGVkUmVzcG9uc2UnO1xyXG5pbXBvcnQgeyBJQXV0aERhdGEgfSBmcm9tICcuLi9pbnRlcmZhY2VzL0lBdXRoRGF0YSc7XHJcbmltcG9ydCB7IFJvdXRpbmdTZXJ2aWNlIH0gZnJvbSAnLi9yb3V0aW5nLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBPcmdhbml6YXRpb25TZXJ2aWNlIH0gZnJvbSAnLi9vcmdhbml6YXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7IElFdmVyeVRyZWVTdGF0dXMgfSBmcm9tICcuLi9saWJyYXJpZXMvc2VydmljZXMvcmVjdXJzaXZlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBcHBTZXJ2aWNlIH0gZnJvbSAnLi9hcHAuc2VydmljZSc7XHJcbmltcG9ydCB7IGFwaSB9IGZyb20gJ2FscGhhLWdsb2JhbC1jb25zdGFudHMnO1xyXG5pbXBvcnQgeyBHcnBjU2VydmljZSB9IGZyb20gJy4vZ3JwYy5zZXJ2aWNlJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEFwcEluaXRpYWxpemF0aW9uU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcbiBcclxuICBpbml0aWFsaXppbmckID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPih0cnVlKTtcclxuICBzc29Qcm9jZXNzaW5nJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4odHJ1ZSk7XHJcbiAgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuXHJcbiAgcHJpbWFyeUluaXRpYWxpemVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgc3RvcmVTZXNzaW9uT2s6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgcGVuZGluZ0F1dGhEYXRhJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8SUF1dGhEYXRhIHwgbnVsbD4obnVsbCk7XHJcblxyXG4gIHNzb0ZhaWxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBtbHM6IE11bHRpTGFuZ3VhZ2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBsYXlvdXRTZXJ2aWNlOiBMYXlvdXRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBvcmdhbml6YXRpb25TZXJ2aWNlOiBPcmdhbml6YXRpb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByb3V0aW5nU2VydmljZTogUm91dGluZ1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIGFwcENvbmZpZ1NlcnZpY2U6IEFwcENvbmZpZ1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIGFwcFNlcnZpY2U6IEFwcFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGdycGNTZXJ2aWNlOiBHcnBjU2VydmljZSxcclxuICApIHtcclxuXHJcbiAgfVxyXG5cclxuICBhcHBJbml0aWFsaXplKCk6IHZvaWQge1xyXG5cclxuICAgIC8qXHJcbiAgICBjb25zdCB0b0NhbWVsID0gKG86IGFueSk6IGFueSA9PiB7XHJcbiAgICAgIHZhciBuZXdPLCBvcmlnS2V5LCBuZXdLZXksIHZhbHVlXHJcbiAgICAgIGlmIChvIGluc3RhbmNlb2YgQXJyYXkpIHtcclxuICAgICAgICByZXR1cm4gby5tYXAoZnVuY3Rpb24gKHZhbHVlKSB7XHJcbiAgICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSBcIm9iamVjdFwiKSB7XHJcbiAgICAgICAgICAgIHZhbHVlID0gdG9DYW1lbCh2YWx1ZSlcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHJldHVybiB2YWx1ZVxyXG4gICAgICAgIH0pXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgbmV3TyA9IHt9XHJcbiAgICAgICAgZm9yIChvcmlnS2V5IGluIG8pIHtcclxuICAgICAgICAgIGlmIChvLmhhc093blByb3BlcnR5KG9yaWdLZXkpKSB7XHJcbiAgICAgICAgICAgIG5ld0tleSA9IChvcmlnS2V5LmNoYXJBdCgwKS50b0xvd2VyQ2FzZSgpICsgb3JpZ0tleS5zbGljZSgxKSB8fCBvcmlnS2V5KS50b1N0cmluZygpXHJcbiAgICAgICAgICAgIHZhbHVlID0gb1tvcmlnS2V5XVxyXG4gICAgICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBBcnJheSB8fCAodmFsdWUgIT09IG51bGwgJiYgdmFsdWUuY29uc3RydWN0b3IgPT09IE9iamVjdCkpIHtcclxuICAgICAgICAgICAgICB2YWx1ZSA9IHRvQ2FtZWwodmFsdWUpXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgKG5ld08gYXMgYW55KVtuZXdLZXldID0gdmFsdWVcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIG5ld09cclxuICAgIH1cclxuICAgICovXHJcblxyXG4gICAgdHJ5IHtcclxuXHJcbiAgICAgIGZldGNoKCcuLi8uLi9hc3NldHMvYXBwLmNvbmZpZy5qc29uJykudGhlbihyZXMgPT4gcmVzLmpzb24oKSkudGhlbigoe1xyXG5cclxuICAgICAgICBBUFBfVFlQRSxcclxuICAgICAgICBCQVNFX1VSTCxcclxuICAgICAgICBCQVNFX1VSTF9GT1JfU1RBVElTVElDLFxyXG4gICAgICAgIEdPTElWRV9VUkwsXHJcbiAgICAgICAgREVCVUdfRU5BQkxFRCxcclxuXHJcbiAgICAgICAgTE9HT19MT0dJTixcclxuICAgICAgICBMT0dPX0hFQURFUixcclxuICAgICAgICBIT01FX0JBQ0tHUk9VTkRfSU1BR0UsIFxyXG5cclxuICAgICAgICBPQVVUSDJfT0lEQ19FTkFCTEVELFxyXG4gICAgICAgIE9BVVRIMl9PSURDX0NMSUVOVF9JRCxcclxuICAgICAgICBPQVVUSDJfT0lEQ19MT0dJTl9VUkksXHJcbiAgICAgICAgT0FVVEgyX09JRENfUkVESVJFQ1RfVVJJLFxyXG4gICAgICAgIE9BVVRIMl9PSURDX1NDT1BFLFxyXG5cclxuICAgICAgICBTQU1MMkFERlNfRU5BQkxFRCwgXHJcbiAgICAgICAgU0FNTDJBREZTX0lEUCwgXHJcbiAgICAgICAgU0FNTDJBREZTX0lERU5USUZJRVIsXHJcbiAgICAgICAgU0FNTDJBREZTX1dBX1NJR05JTixcclxuICAgICAgICBTQU1MMkFERlNfV0FfU0lHTk9VVCxcclxuICAgICAgICBTQU1MMkFERlNfV1JFUExZLFxyXG5cclxuICAgICAgICBIQU5HRklSRV9QQVRILFxyXG4gICAgICAgIFNUQVRJQ19GT0xERVIsXHJcbiAgICAgICAgQVZBVEFSX0ZPTERFUixcclxuXHJcbiAgICAgIH0pID0+IHtcclxuXHJcbiAgICAgICAgdGhpcy5hcHBDb25maWdTZXJ2aWNlLkFQUF9UWVBFID0gQVBQX1RZUEU7XHJcbiAgICAgICAgdGhpcy5hcHBDb25maWdTZXJ2aWNlLkJBU0VfVVJMID0gQkFTRV9VUkw7XHJcbiAgICAgICAgdGhpcy5hcHBDb25maWdTZXJ2aWNlLkJBU0VfVVJMX0ZPUl9TVEFUSVNUSUMgPSBCQVNFX1VSTF9GT1JfU1RBVElTVElDO1xyXG4gICAgICAgIHRoaXMuYXBwQ29uZmlnU2VydmljZS5HT0xJVkVfVVJMID0gR09MSVZFX1VSTDtcclxuICAgICAgICB0aGlzLmFwcENvbmZpZ1NlcnZpY2UuREVCVUdfRU5BQkxFRCA9IERFQlVHX0VOQUJMRUQ7XHJcblxyXG4gICAgICAgIHRoaXMuYXBwQ29uZmlnU2VydmljZS5MT0dPX0xPR0lOID0gTE9HT19MT0dJTjtcclxuICAgICAgICB0aGlzLmFwcENvbmZpZ1NlcnZpY2UuTE9HT19IRUFERVIgPSBMT0dPX0hFQURFUjtcclxuICAgICAgICB0aGlzLmFwcENvbmZpZ1NlcnZpY2UuSE9NRV9CQUNLR1JPVU5EX0lNQUdFID0gSE9NRV9CQUNLR1JPVU5EX0lNQUdFO1xyXG5cclxuICAgICAgICB0aGlzLmFwcENvbmZpZ1NlcnZpY2UuT0FVVEgyX09JRENfRU5BQkxFRCA9IE9BVVRIMl9PSURDX0VOQUJMRUQ7XHJcbiAgICAgICAgdGhpcy5hcHBDb25maWdTZXJ2aWNlLk9BVVRIMl9PSURDX0NMSUVOVF9JRCA9IE9BVVRIMl9PSURDX0NMSUVOVF9JRDtcclxuICAgICAgICB0aGlzLmFwcENvbmZpZ1NlcnZpY2UuT0FVVEgyX09JRENfTE9HSU5fVVJJID0gT0FVVEgyX09JRENfTE9HSU5fVVJJO1xyXG4gICAgICAgIHRoaXMuYXBwQ29uZmlnU2VydmljZS5PQVVUSDJfT0lEQ19SRURJUkVDVF9VUkkgPSBPQVVUSDJfT0lEQ19SRURJUkVDVF9VUkk7XHJcbiAgICAgICAgdGhpcy5hcHBDb25maWdTZXJ2aWNlLk9BVVRIMl9PSURDX1NDT1BFID0gT0FVVEgyX09JRENfU0NPUEU7XHJcblxyXG4gICAgICAgIHRoaXMuYXBwQ29uZmlnU2VydmljZS5TQU1MMkFERlNfRU5BQkxFRCA9IFNBTUwyQURGU19FTkFCTEVEO1xyXG4gICAgICAgIHRoaXMuYXBwQ29uZmlnU2VydmljZS5TQU1MMkFERlNfSURQID0gU0FNTDJBREZTX0lEUDtcclxuICAgICAgICB0aGlzLmFwcENvbmZpZ1NlcnZpY2UuU0FNTDJBREZTX0lERU5USUZJRVIgPSBTQU1MMkFERlNfSURFTlRJRklFUjtcclxuICAgICAgICB0aGlzLmFwcENvbmZpZ1NlcnZpY2UuU0FNTDJBREZTX1dBX1NJR05JTiA9IFNBTUwyQURGU19XQV9TSUdOSU47XHJcbiAgICAgICAgdGhpcy5hcHBDb25maWdTZXJ2aWNlLlNBTUwyQURGU19XQV9TSUdOT1VUID0gU0FNTDJBREZTX1dBX1NJR05PVVQ7XHJcbiAgICAgICAgdGhpcy5hcHBDb25maWdTZXJ2aWNlLlNBTUwyQURGU19XUkVQTFkgPSBTQU1MMkFERlNfV1JFUExZO1xyXG5cclxuICAgICAgICB0aGlzLmFwcENvbmZpZ1NlcnZpY2UuSEFOR0ZJUkVfUEFUSCA9IEhBTkdGSVJFX1BBVEg7XHJcbiAgICAgICAgdGhpcy5hcHBDb25maWdTZXJ2aWNlLlNUQVRJQ19GT0xERVIgPSBTVEFUSUNfRk9MREVSO1xyXG4gICAgICAgIHRoaXMuYXBwQ29uZmlnU2VydmljZS5BVkFUQVJfRk9MREVSID0gQVZBVEFSX0ZPTERFUjtcclxuXHJcbiAgICAgICAgY29uc3QgcGFyYW1zID0gKG5ldyBVUkwod2luZG93LmxvY2F0aW9uLmhyZWYpKS5zZWFyY2hQYXJhbXM7XHJcbiAgICAgICAgY29uc3QgbG9jYWwgPSBwYXJhbXMuZ2V0KFwibG9jYWxcIik7XHJcblxyXG4gICAgICAgIGlmIChTQU1MMkFERlNfRU5BQkxFRCAmJiAhbG9jYWwpIHtcclxuICAgICAgICAgIGlmICghdGhpcy5zc29GYWlsZWQpIHtcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgY29uc3QgdG9rZW4gPSBwYXJhbXMuZ2V0KFwidG9rZW5cIik7XHJcbiAgICAgICAgICAgICAgaWYgKHRva2VuICE9PSBudWxsKSB7XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICBcclxuICAgICAgICAgICAgICAgICAgdGhpcy5hcHBTZXJ2aWNlLmdldChhcGkuU1lTX1NIT1JUX0xJVkVEX1RPS0VOX0xPR0lOICsgXCI/dG9rZW49XCIgKyB0b2tlbikuc3Vic2NyaWJlKHggPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh4Lm9rICYmIHguc3RhdHVzID09PSAyMDAgJiYgeC5ib2R5Py5zdGF0dXNDb2RlID09PSAyMDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGJvZHk6IElGb3JtYXRlZFJlc3BvbnNlID0geC5ib2R5XHJcbiAgICAgICAgICAgICAgICAgICAgICBpZiAoYm9keS5zdGF0dXNDb2RlID09PSAyMDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wZW5kaW5nQXV0aERhdGEkLm5leHQoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIC4uLmJvZHkuaW5uZXJCb2R5LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2luVGltZTogbmV3IERhdGUoKS5nZXRUaW1lKClcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy5zc29GYWlsZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNzb1Byb2Nlc3NpbmckLm5leHQoZmFsc2UpO1xyXG4gICAgXHJcbiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICBpZiAoISFsb2NhbFN0b3JhZ2UpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGVmdGJhclJlZHVjZWRTdHJpbmcgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnbGVmdGJhclJlZHVjZWQnKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGVmdGJhclJlZHVjZWQgPSBKU09OLnBhcnNlKGxlZnRiYXJSZWR1Y2VkU3RyaW5nISlcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sYXlvdXRTZXJ2aWNlLmxlZnRiYXJSZWR1Y2VkJC5uZXh0KCEhbGVmdGJhclJlZHVjZWQpO1xyXG4gICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJvdXRpbmdIaXN0b3J5U3RyaW5nID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3JvdXRpbmdIaXN0b3J5Jyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghIXJvdXRpbmdIaXN0b3J5U3RyaW5nKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgcm91dGluZ0hpc3RvcnkgPSBKU09OLnBhcnNlKHJvdXRpbmdIaXN0b3J5U3RyaW5nKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJvdXRpbmdTZXJ2aWNlLnJvdXRpbmdIaXN0b3J5JC5uZXh0KHJvdXRpbmdIaXN0b3J5KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvcmVPcmdUcmVlU3RhdHVzU3RyaW5nID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJjb3JlT3JnVHJlZVN0YXR1c1wiKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNvcmVPcmdUcmVlU3RhdHVzU3RyaW5nKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2F2ZWRPYmplY3Q6IElFdmVyeVRyZWVTdGF0dXMgPSBKU09OLnBhcnNlKGNvcmVPcmdUcmVlU3RhdHVzU3RyaW5nKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9yZ2FuaXphdGlvblNlcnZpY2Uuc3RhdHVzJC5uZXh0KHNhdmVkT2JqZWN0KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH0sIDIwMClcclxuICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgIClcclxuICAgIFxyXG4gICAgXHJcbiAgICAgICAgICAgICAgfSBlbHNlIHtcclxuXHJcbiAgICAgICAgICAgICAgICAvLyBBTFdBWVMgUkVESVJFQ1QgVE8gVEhFIEFOR1VMQVIgQVBQTElDQVRJT04gTE9HSU4gUEFHRSBJRiBOTyBTRVNTSU9OIEZPVU5EICg/bG9jYWw9MSlcclxuICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gYCR7dGhpcy5hcHBDb25maWdTZXJ2aWNlLlNBTUwyQURGU19JREVOVElGSUVSfT9sb2NhbD0xYDtcclxuXHJcbiAgICAgICAgICAgICAgICAvKlxyXG5cclxuICAgICAgICAgICAgICAgIC8vSUYgVEhFIEFOR1VMQVIgQVBQTElDQVRJT04gTE9HSU4gUEFHRSBJUyBOT1QgTUFOREFUT1JZID0+IENBTEwgU0FNTDIuMCBJZFBcclxuXHJcbiAgICAgICAgICAgICAgICBjb25zdCBjb2RlVmVyaWZpZXIgPSB0aGlzLmF1dGhTZXJ2aWNlLmdlbmVyYXRlUmFuZG9tQ29kZVZlcmlmaWVyKDQzKTtcclxuICAgICAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKFwiY29kZVZlcmlmaWVyXCIsIGNvZGVWZXJpZmllcik7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmF1dGhTZXJ2aWNlLmdlbmVyYXRlQ29kZUNoYWxsZW5nZUZyb21WZXJpZmllcihjb2RlVmVyaWZpZXIpLnRoZW4oY29kZUNoYWxsZW5nZSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGF1dGhvcml6YXRpb25VcmwgPSBgJHt0aGlzLmFwcENvbmZpZ1NlcnZpY2UuU0FNTDJBREZTX0lEUH0/YCArXHJcbiAgICAgICAgICAgICAgICAgICAgYHd0cmVhbG09JHt0aGlzLmFwcENvbmZpZ1NlcnZpY2UuU0FNTDJBREZTX0lERU5USUZJRVJ9YCArXHJcbiAgICAgICAgICAgICAgICAgICAgYCZ3YT0ke3RoaXMuYXBwQ29uZmlnU2VydmljZS5TQU1MMkFERlNfV0FfU0lHTklOIHx8ICd3c2lnbmluMS4wJ31gICsgXHJcbiAgICAgICAgICAgICAgICAgICAgYCZ3cmVwbHk9JHt0aGlzLmFwcENvbmZpZ1NlcnZpY2UuQkFTRV9VUkx9JHt0aGlzLmFwcENvbmZpZ1NlcnZpY2UuU0FNTDJBREZTX1dSRVBMWX1gICsgXHJcbiAgICAgICAgICAgICAgICAgICAgYCZ3Y3R4PSR7Y29kZUNoYWxsZW5nZX1gXHJcbiAgICAgICAgICAgICAgICAgIGlmIChpc0Rldk1vZGUoKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGFsZXJ0KGF1dGhvcml6YXRpb25VcmwpO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IGF1dGhvcml6YXRpb25Vcmw7XHJcblxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAqL1xyXG5cclxuXHJcbiAgICAgICAgICAgICAgfVxyXG4gIFxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgIFxyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5zc29Qcm9jZXNzaW5nJC5uZXh0KGZhbHNlKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxldCBib2R5MTogSUZvcm1hdGVkUmVzcG9uc2U7XHJcbiAgICAgICAgbGV0IGJvZHkyOiBJRm9ybWF0ZWRSZXNwb25zZTtcclxuICAgICAgICBsZXQgYm9keTM6IElGb3JtYXRlZFJlc3BvbnNlO1xyXG4gICAgICAgIGxldCBib2R5NDogSUZvcm1hdGVkUmVzcG9uc2U7XHJcblxyXG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICAgICAgdGhpcy5zc29Qcm9jZXNzaW5nJC5waXBlKFxyXG4gICAgICAgICAgICBmaWx0ZXIoeCA9PiAheClcclxuICAgICAgICAgICkuc3Vic2NyaWJlKF8gPT4ge1xyXG5cclxuICAgICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICAgICAgICAgICAgemlwKFtcclxuICAgICAgICAgICAgICAgIHRoaXMubWxzLnJlYWRBbGxNaW5pKCksXHJcbiAgICAgICAgICAgICAgICB0aGlzLnJvdXRpbmdTZXJ2aWNlLnJlYWRBbGxGdW5jdGlvbldpdGhBbGxBY3Rpb25zKCksXHJcbiAgICAgICAgICAgICAgICB0aGlzLnJvdXRpbmdTZXJ2aWNlLmdldElnbm9yZVBhdGhzKCksXHJcbiAgICAgICAgICAgICAgICB0aGlzLmFwcFNlcnZpY2UuZ2V0KGFwaS5QT1JUQUxfUk9VVEVfUkVBRF9BTExfTUlOSSlcclxuICAgICAgICAgICAgICBdKS5waXBlKFxyXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcih2YWwgPT4gb2YoYFRoZSBhcHAgY2F1Z2h0OiAke3ZhbH1gKSlcclxuICAgICAgICAgICAgICApLnN1YnNjcmliZShyZXNwb25zZXMgPT4ge1xyXG5cclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiYXBwSW5pdGlhbGl6ZSgpIHppcCgpIGRvbmVcIilcclxuXHJcbiAgICAgICAgICAgICAgICBjb25zdCB4MSA9IHJlc3BvbnNlc1swXTtcclxuICAgICAgICAgICAgICAgIGlmICh4MS5vayAmJiB4MS5zdGF0dXMgPT09IDIwMCkge1xyXG4gICAgICAgICAgICAgICAgICBib2R5MSA9IHgxLmJvZHlcclxuICAgICAgICAgICAgICAgICAgaWYgKGJvZHkxLnN0YXR1c0NvZGUgPT09IDIwMCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubWxzLmRhdGEkLm5leHQoYm9keTEuaW5uZXJCb2R5KTtcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGNvbnN0IHgyID0gcmVzcG9uc2VzWzFdO1xyXG4gICAgICAgICAgICAgICAgaWYgKHgyLm9rICYmIHgyLnN0YXR1cyA9PT0gMjAwKSB7XHJcbiAgICAgICAgICAgICAgICAgIGJvZHkyID0geDIuYm9keVxyXG4gICAgICAgICAgICAgICAgICBpZiAoYm9keTIuc3RhdHVzQ29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yb3V0aW5nU2VydmljZS5mdWxsRnVuY3Rpb25zJC5uZXh0KGJvZHkyLmlubmVyQm9keSk7XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBjb25zdCB4MyA9IHJlc3BvbnNlc1syXTtcclxuICAgICAgICAgICAgICAgIGlmICh4My5vayAmJiB4My5zdGF0dXMgPT09IDIwMCkge1xyXG4gICAgICAgICAgICAgICAgICBib2R5MyA9IHgzLmJvZHlcclxuICAgICAgICAgICAgICAgICAgaWYgKGJvZHkzLnN0YXR1c0NvZGUgPT09IDIwMCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucm91dGluZ1NlcnZpY2UuaWdub3JlZFBhdGhzJC5uZXh0KGJvZHkzLmlubmVyQm9keSk7XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBjb25zdCB4NCA9IHJlc3BvbnNlc1szXTtcclxuICAgICAgICAgICAgICAgIGlmICh4NC5vayAmJiB4NC5zdGF0dXMgPT09IDIwMCkge1xyXG4gICAgICAgICAgICAgICAgICBib2R5NCA9IHg0LmJvZHlcclxuICAgICAgICAgICAgICAgICAgaWYgKGJvZHk0LnN0YXR1c0NvZGUgPT09IDIwMCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucm91dGluZ1NlcnZpY2UucG9ydGFsUm91dGVzJC5uZXh0KGJvZHk0LmlubmVyQm9keSk7XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBpZiAoYm9keTE/LnN0YXR1c0NvZGUgPT09IDIwMCAmJiBib2R5Mj8uc3RhdHVzQ29kZSA9PT0gMjAwICYmIGJvZHkzPy5zdGF0dXNDb2RlID09PSAyMDApIHtcclxuXHJcbiAgICAgICAgICAgICAgICAgIHRoaXMucHJpbWFyeUluaXRpYWxpemVkID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgICAgICAgICAgIGlmICghIU9BVVRIMl9PSURDX0VOQUJMRUQgJiYgISF0aGlzLnBlbmRpbmdBdXRoRGF0YSQudmFsdWUpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnN0b3JlU2Vzc2lvbk9rID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmF1dGhTZXJ2aWNlLmRhdGEkLm5leHQodGhpcy5wZW5kaW5nQXV0aERhdGEkLnZhbHVlKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnBlbmRpbmdBdXRoRGF0YSQubmV4dChudWxsKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmF1dGhTZXJ2aWNlLmF1dGhlbnRpY2F0ZWQkLm5leHQodHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbml0aWFsaXppbmckLm5leHQoZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYXV0aFNlcnZpY2UudHJ5UmVzdG9yZVNlc3Npb24oKVxyXG4gICAgICAgICAgICAgICAgICAgICAgLnN1YnNjcmliZSh4ID0+IHtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh4Lm9rICYmIHguc3RhdHVzID09PSAyMDAgJiYgeC5ib2R5Py5zdGF0dXNDb2RlID09PSAyMDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBib2R5OiBJRm9ybWF0ZWRSZXNwb25zZSA9IHguYm9keVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChib2R5LnN0YXR1c0NvZGUgPT09IDIwMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbmV3QXV0aERhdGE6IElBdXRoRGF0YSA9IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uYm9keS5pbm5lckJvZHksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2luVGltZTogbmV3IERhdGUoKS5nZXRUaW1lKClcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3RvcmVTZXNzaW9uT2sgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hdXRoU2VydmljZS5kYXRhJC5uZXh0KG5ld0F1dGhEYXRhKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghIWxvY2FsU3RvcmFnZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGVmdGJhclJlZHVjZWRTdHJpbmcgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnbGVmdGJhclJlZHVjZWQnKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxlZnRiYXJSZWR1Y2VkID0gSlNPTi5wYXJzZShsZWZ0YmFyUmVkdWNlZFN0cmluZyEpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxheW91dFNlcnZpY2UubGVmdGJhclJlZHVjZWQkLm5leHQoISFsZWZ0YmFyUmVkdWNlZCk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgcm91dGluZ0hpc3RvcnlTdHJpbmcgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgncm91dGluZ0hpc3RvcnknKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghIXJvdXRpbmdIaXN0b3J5U3RyaW5nKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJvdXRpbmdIaXN0b3J5ID0gSlNPTi5wYXJzZShyb3V0aW5nSGlzdG9yeVN0cmluZyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucm91dGluZ1NlcnZpY2Uucm91dGluZ0hpc3RvcnkkLm5leHQocm91dGluZ0hpc3RvcnkpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvcmVPcmdUcmVlU3RhdHVzU3RyaW5nID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJjb3JlT3JnVHJlZVN0YXR1c1wiKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjb3JlT3JnVHJlZVN0YXR1c1N0cmluZykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzYXZlZE9iamVjdDogSUV2ZXJ5VHJlZVN0YXR1cyA9IEpTT04ucGFyc2UoY29yZU9yZ1RyZWVTdGF0dXNTdHJpbmcpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9yZ2FuaXphdGlvblNlcnZpY2Uuc3RhdHVzJC5uZXh0KHNhdmVkT2JqZWN0KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pbml0aWFsaXppbmckLm5leHQoZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9LCAyMDApXHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICApXHJcblxyXG5cclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgKVxyXG5cclxuICAgICAgfSkuY2F0Y2goZSA9PiBjb25zb2xlLmxvZyhcImZldGNoIGFwcC5jb25maWcuanNvbiBlcnJvclwiLCBlKSlcclxuICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgY29uc29sZS5sb2coXCJhcHBJbml0aWFsaXplKCkgemlwKCkgZXJyb3I6IFwiLCBlKVxyXG4gICAgfSBmaW5hbGx5IHtcclxuICAgICAgY29uc29sZS5sb2coXCJmaW5hbGx5XCIpXHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMubWFwKHggPT4geD8udW5zdWJzY3JpYmUoKSlcclxuICB9XHJcblxyXG59XHJcbiJdfQ==
|
|
242
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLWluaXRpYWxpemF0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaGlzdGFmZi1hbHBoYS9zcmMvbGliL2FwcC9zZXJ2aWNlcy9hcHAtaW5pdGlhbGl6YXRpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3RELE9BQU8sRUFBRSxlQUFlLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQWdCLE1BQU0sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQVdsRixPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7Ozs7Ozs7QUFNN0MsTUFBTSxPQUFPLHdCQUF3QjtJQWFuQyxZQUNVLFdBQXdCLEVBQ3hCLEdBQXlCLEVBQ3pCLGFBQTRCLEVBQzVCLG1CQUF3QyxFQUN4QyxjQUE4QixFQUM5QixnQkFBa0MsRUFDbEMsVUFBc0IsRUFDdEIsV0FBd0I7UUFQeEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsUUFBRyxHQUFILEdBQUcsQ0FBc0I7UUFDekIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4QyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBbkJsQyxrQkFBYSxHQUFHLElBQUksZUFBZSxDQUFVLElBQUksQ0FBQyxDQUFDO1FBQ25ELG1CQUFjLEdBQUcsSUFBSSxlQUFlLENBQVUsSUFBSSxDQUFDLENBQUM7UUFDcEQsa0JBQWEsR0FBbUIsRUFBRSxDQUFDO1FBRW5DLHVCQUFrQixHQUFZLEtBQUssQ0FBQztRQUNwQyxtQkFBYyxHQUFZLEtBQUss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O3lDQUNGO3dDQUNELElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO29DQUNqQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUE7Z0NBRVQsQ0FBQyxDQUFDLENBQUE7NkJBQ0w7eUJBQ0Y7b0JBRUgsQ0FBQyxDQUFDLENBQ0gsQ0FBQTtnQkFHSCxDQUFDLENBQUMsQ0FDSCxDQUFBO1lBRUgsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyw2QkFBNkIsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFBO1NBQzdEO1FBQUMsT0FBTyxDQUFDLEVBQUU7WUFDVixPQUFPLENBQUMsR0FBRyxDQUFDLCtCQUErQixFQUFFLENBQUMsQ0FBQyxDQUFBO1NBQ2hEO2dCQUFTO1lBQ1IsT0FBTyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQTtTQUN2QjtJQUVILENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQTtJQUMvQyxDQUFDOzhHQWxUVSx3QkFBd0I7a0hBQXhCLHdCQUF3QixjQUZ2QixNQUFNOzsyRkFFUCx3QkFBd0I7a0JBSHBDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgemlwLCBjYXRjaEVycm9yLCBvZiwgU3Vic2NyaXB0aW9uLCBmaWx0ZXIgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuL2F1dGguc2VydmljZSc7XHJcbmltcG9ydCB7IE11bHRpTGFuZ3VhZ2VTZXJ2aWNlIH0gZnJvbSAnLi9tdWx0aS1sYW5ndWFnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTGF5b3V0U2VydmljZSB9IGZyb20gJy4vbGF5b3V0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBcHBDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi9hcHAtY29uZmlnLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBJRm9ybWF0ZWRSZXNwb25zZSB9IGZyb20gJy4uL2ludGVyZmFjZXMvSUZvcm1hdGVkUmVzcG9uc2UnO1xyXG5pbXBvcnQgeyBJQXV0aERhdGEgfSBmcm9tICcuLi9pbnRlcmZhY2VzL0lBdXRoRGF0YSc7XHJcbmltcG9ydCB7IFJvdXRpbmdTZXJ2aWNlIH0gZnJvbSAnLi9yb3V0aW5nLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBPcmdhbml6YXRpb25TZXJ2aWNlIH0gZnJvbSAnLi9vcmdhbml6YXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7IElFdmVyeVRyZWVTdGF0dXMgfSBmcm9tICcuLi9saWJyYXJpZXMvc2VydmljZXMvcmVjdXJzaXZlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBcHBTZXJ2aWNlIH0gZnJvbSAnLi9hcHAuc2VydmljZSc7XHJcbmltcG9ydCB7IGFwaSB9IGZyb20gJ2FscGhhLWdsb2JhbC1jb25zdGFudHMnO1xyXG5pbXBvcnQgeyBHcnBjU2VydmljZSB9IGZyb20gJy4vZ3JwYy5zZXJ2aWNlJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEFwcEluaXRpYWxpemF0aW9uU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcbiBcclxuICBpbml0aWFsaXppbmckID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPih0cnVlKTtcclxuICBzc29Qcm9jZXNzaW5nJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4odHJ1ZSk7XHJcbiAgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuXHJcbiAgcHJpbWFyeUluaXRpYWxpemVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgc3RvcmVTZXNzaW9uT2s6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgcGVuZGluZ0F1dGhEYXRhJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8SUF1dGhEYXRhIHwgbnVsbD4obnVsbCk7XHJcblxyXG4gIHNzb0ZhaWxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBtbHM6IE11bHRpTGFuZ3VhZ2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBsYXlvdXRTZXJ2aWNlOiBMYXlvdXRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBvcmdhbml6YXRpb25TZXJ2aWNlOiBPcmdhbml6YXRpb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByb3V0aW5nU2VydmljZTogUm91dGluZ1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIGFwcENvbmZpZ1NlcnZpY2U6IEFwcENvbmZpZ1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIGFwcFNlcnZpY2U6IEFwcFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGdycGNTZXJ2aWNlOiBHcnBjU2VydmljZSxcclxuICApIHtcclxuXHJcbiAgfVxyXG5cclxuICBhcHBJbml0aWFsaXplKCk6IHZvaWQge1xyXG5cclxuICAgIHRyeSB7XHJcblxyXG4gICAgICBpZiAoIWxvY2FsU3RvcmFnZSkge1xyXG4gICAgICAgIGNvbnN0IGxhbmcgPSAobG9jYWxTdG9yYWdlIGFzIFN0b3JhZ2UpLmdldEl0ZW0oXCJsYW5nXCIpO1xyXG4gICAgICAgIGlmICghIWxhbmcpIHtcclxuICAgICAgICAgIHRoaXMubWxzLmxhbmckLm5leHQoSlNPTi5wYXJzZShsYW5nKSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMubWxzLmxhbmckLm5leHQoXCJlblwiKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGZldGNoKCcuLi8uLi9hc3NldHMvYXBwLmNvbmZpZy5qc29uJykudGhlbihyZXMgPT4gcmVzLmpzb24oKSkudGhlbigoe1xyXG5cclxuICAgICAgICBBUFBfVFlQRSxcclxuICAgICAgICBCQVNFX1VSTCxcclxuICAgICAgICBCQVNFX1VSTF9GT1JfU1RBVElTVElDLFxyXG4gICAgICAgIEdPTElWRV9VUkwsXHJcbiAgICAgICAgREVCVUdfRU5BQkxFRCxcclxuXHJcbiAgICAgICAgTE9HT19MT0dJTixcclxuICAgICAgICBMT0dPX0hFQURFUixcclxuICAgICAgICBIT01FX0JBQ0tHUk9VTkRfSU1BR0UsIFxyXG5cclxuICAgICAgICBPQVVUSDJfT0lEQ19FTkFCTEVELFxyXG4gICAgICAgIE9BVVRIMl9PSURDX0NMSUVOVF9JRCxcclxuICAgICAgICBPQVVUSDJfT0lEQ19MT0dJTl9VUkksXHJcbiAgICAgICAgT0FVVEgyX09JRENfUkVESVJFQ1RfVVJJLFxyXG4gICAgICAgIE9BVVRIMl9PSURDX1NDT1BFLFxyXG5cclxuICAgICAgICBTQU1MMkFERlNfRU5BQkxFRCwgXHJcbiAgICAgICAgU0FNTDJBREZTX0lEUCwgXHJcbiAgICAgICAgU0FNTDJBREZTX0lERU5USUZJRVIsXHJcbiAgICAgICAgU0FNTDJBREZTX1dBX1NJR05JTixcclxuICAgICAgICBTQU1MMkFERlNfV0FfU0lHTk9VVCxcclxuICAgICAgICBTQU1MMkFERlNfV1JFUExZLFxyXG5cclxuICAgICAgICBIQU5HRklSRV9QQVRILFxyXG4gICAgICAgIFNUQVRJQ19GT0xERVIsXHJcbiAgICAgICAgQVZBVEFSX0ZPTERFUixcclxuXHJcbiAgICAgIH0pID0+IHtcclxuXHJcbiAgICAgICAgdGhpcy5hcHBDb25maWdTZXJ2aWNlLkFQUF9UWVBFID0gQVBQX1RZUEU7XHJcbiAgICAgICAgdGhpcy5hcHBDb25maWdTZXJ2aWNlLkJBU0VfVVJMID0gQkFTRV9VUkw7XHJcbiAgICAgICAgdGhpcy5hcHBDb25maWdTZXJ2aWNlLkJBU0VfVVJMX0ZPUl9TVEFUSVNUSUMgPSBCQVNFX1VSTF9GT1JfU1RBVElTVElDO1xyXG4gICAgICAgIHRoaXMuYXBwQ29uZmlnU2VydmljZS5HT0xJVkVfVVJMID0gR09MSVZFX1VSTDtcclxuICAgICAgICB0aGlzLmFwcENvbmZpZ1NlcnZpY2UuREVCVUdfRU5BQkxFRCA9IERFQlVHX0VOQUJMRUQ7XHJcblxyXG4gICAgICAgIHRoaXMuYXBwQ29uZmlnU2VydmljZS5MT0dPX0xPR0lOID0gTE9HT19MT0dJTjtcclxuICAgICAgICB0aGlzLmFwcENvbmZpZ1NlcnZpY2UuTE9HT19IRUFERVIgPSBMT0dPX0hFQURFUjtcclxuICAgICAgICB0aGlzLmFwcENvbmZpZ1NlcnZpY2UuSE9NRV9CQUNLR1JPVU5EX0lNQUdFID0gSE9NRV9CQUNLR1JPVU5EX0lNQUdFO1xyXG5cclxuICAgICAgICB0aGlzLmFwcENvbmZpZ1NlcnZpY2UuT0FVVEgyX09JRENfRU5BQkxFRCA9IE9BVVRIMl9PSURDX0VOQUJMRUQ7XHJcbiAgICAgICAgdGhpcy5hcHBDb25maWdTZXJ2aWNlLk9BVVRIMl9PSURDX0NMSUVOVF9JRCA9IE9BVVRIMl9PSURDX0NMSUVOVF9JRDtcclxuICAgICAgICB0aGlzLmFwcENvbmZpZ1NlcnZpY2UuT0FVVEgyX09JRENfTE9HSU5fVVJJID0gT0FVVEgyX09JRENfTE9HSU5fVVJJO1xyXG4gICAgICAgIHRoaXMuYXBwQ29uZmlnU2VydmljZS5PQVVUSDJfT0lEQ19SRURJUkVDVF9VUkkgPSBPQVVUSDJfT0lEQ19SRURJUkVDVF9VUkk7XHJcbiAgICAgICAgdGhpcy5hcHBDb25maWdTZXJ2aWNlLk9BVVRIMl9PSURDX1NDT1BFID0gT0FVVEgyX09JRENfU0NPUEU7XHJcblxyXG4gICAgICAgIHRoaXMuYXBwQ29uZmlnU2VydmljZS5TQU1MMkFERlNfRU5BQkxFRCA9IFNBTUwyQURGU19FTkFCTEVEO1xyXG4gICAgICAgIHRoaXMuYXBwQ29uZmlnU2VydmljZS5TQU1MMkFERlNfSURQID0gU0FNTDJBREZTX0lEUDtcclxuICAgICAgICB0aGlzLmFwcENvbmZpZ1NlcnZpY2UuU0FNTDJBREZTX0lERU5USUZJRVIgPSBTQU1MMkFERlNfSURFTlRJRklFUjtcclxuICAgICAgICB0aGlzLmFwcENvbmZpZ1NlcnZpY2UuU0FNTDJBREZTX1dBX1NJR05JTiA9IFNBTUwyQURGU19XQV9TSUdOSU47XHJcbiAgICAgICAgdGhpcy5hcHBDb25maWdTZXJ2aWNlLlNBTUwyQURGU19XQV9TSUdOT1VUID0gU0FNTDJBREZTX1dBX1NJR05PVVQ7XHJcbiAgICAgICAgdGhpcy5hcHBDb25maWdTZXJ2aWNlLlNBTUwyQURGU19XUkVQTFkgPSBTQU1MMkFERlNfV1JFUExZO1xyXG5cclxuICAgICAgICB0aGlzLmFwcENvbmZpZ1NlcnZpY2UuSEFOR0ZJUkVfUEFUSCA9IEhBTkdGSVJFX1BBVEg7XHJcbiAgICAgICAgdGhpcy5hcHBDb25maWdTZXJ2aWNlLlNUQVRJQ19GT0xERVIgPSBTVEFUSUNfRk9MREVSO1xyXG4gICAgICAgIHRoaXMuYXBwQ29uZmlnU2VydmljZS5BVkFUQVJfRk9MREVSID0gQVZBVEFSX0ZPTERFUjtcclxuXHJcbiAgICAgICAgY29uc3QgcGFyYW1zID0gKG5ldyBVUkwod2luZG93LmxvY2F0aW9uLmhyZWYpKS5zZWFyY2hQYXJhbXM7XHJcbiAgICAgICAgY29uc3QgbG9jYWwgPSBwYXJhbXMuZ2V0KFwibG9jYWxcIik7XHJcblxyXG4gICAgICAgIGlmIChTQU1MMkFERlNfRU5BQkxFRCAmJiAhbG9jYWwpIHtcclxuICAgICAgICAgIGlmICghdGhpcy5zc29GYWlsZWQpIHtcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgY29uc3QgdG9rZW4gPSBwYXJhbXMuZ2V0KFwidG9rZW5cIik7XHJcbiAgICAgICAgICAgICAgaWYgKHRva2VuICE9PSBudWxsKSB7XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICBcclxuICAgICAgICAgICAgICAgICAgdGhpcy5hcHBTZXJ2aWNlLmdldChhcGkuU1lTX1NIT1JUX0xJVkVEX1RPS0VOX0xPR0lOICsgXCI/dG9rZW49XCIgKyB0b2tlbikuc3Vic2NyaWJlKHggPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh4Lm9rICYmIHguc3RhdHVzID09PSAyMDAgJiYgeC5ib2R5Py5zdGF0dXNDb2RlID09PSAyMDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGJvZHk6IElGb3JtYXRlZFJlc3BvbnNlID0geC5ib2R5XHJcbiAgICAgICAgICAgICAgICAgICAgICBpZiAoYm9keS5zdGF0dXNDb2RlID09PSAyMDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wZW5kaW5nQXV0aERhdGEkLm5leHQoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIC4uLmJvZHkuaW5uZXJCb2R5LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2luVGltZTogbmV3IERhdGUoKS5nZXRUaW1lKClcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy5zc29GYWlsZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNzb1Byb2Nlc3NpbmckLm5leHQoZmFsc2UpO1xyXG4gICAgXHJcbiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICBpZiAoISFsb2NhbFN0b3JhZ2UpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGVmdGJhclJlZHVjZWRTdHJpbmcgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnbGVmdGJhclJlZHVjZWQnKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGVmdGJhclJlZHVjZWQgPSBKU09OLnBhcnNlKGxlZnRiYXJSZWR1Y2VkU3RyaW5nISlcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sYXlvdXRTZXJ2aWNlLmxlZnRiYXJSZWR1Y2VkJC5uZXh0KCEhbGVmdGJhclJlZHVjZWQpO1xyXG4gICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJvdXRpbmdIaXN0b3J5U3RyaW5nID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3JvdXRpbmdIaXN0b3J5Jyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghIXJvdXRpbmdIaXN0b3J5U3RyaW5nKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgcm91dGluZ0hpc3RvcnkgPSBKU09OLnBhcnNlKHJvdXRpbmdIaXN0b3J5U3RyaW5nKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJvdXRpbmdTZXJ2aWNlLnJvdXRpbmdIaXN0b3J5JC5uZXh0KHJvdXRpbmdIaXN0b3J5KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvcmVPcmdUcmVlU3RhdHVzU3RyaW5nID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJjb3JlT3JnVHJlZVN0YXR1c1wiKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNvcmVPcmdUcmVlU3RhdHVzU3RyaW5nKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2F2ZWRPYmplY3Q6IElFdmVyeVRyZWVTdGF0dXMgPSBKU09OLnBhcnNlKGNvcmVPcmdUcmVlU3RhdHVzU3RyaW5nKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9yZ2FuaXphdGlvblNlcnZpY2Uuc3RhdHVzJC5uZXh0KHNhdmVkT2JqZWN0KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH0sIDIwMClcclxuICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgIClcclxuICAgIFxyXG4gICAgXHJcbiAgICAgICAgICAgICAgfSBlbHNlIHtcclxuXHJcbiAgICAgICAgICAgICAgICAvLyBBTFdBWVMgUkVESVJFQ1QgVE8gVEhFIEFOR1VMQVIgQVBQTElDQVRJT04gTE9HSU4gUEFHRSBJRiBOTyBTRVNTSU9OIEZPVU5EICg/bG9jYWw9MSlcclxuICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gYCR7dGhpcy5hcHBDb25maWdTZXJ2aWNlLlNBTUwyQURGU19JREVOVElGSUVSfT9sb2NhbD0xYDtcclxuXHJcbiAgICAgICAgICAgICAgICAvKlxyXG5cclxuICAgICAgICAgICAgICAgIC8vSUYgVEhFIEFOR1VMQVIgQVBQTElDQVRJT04gTE9HSU4gUEFHRSBJUyBOT1QgTUFOREFUT1JZID0+IENBTEwgU0FNTDIuMCBJZFBcclxuXHJcbiAgICAgICAgICAgICAgICBjb25zdCBjb2RlVmVyaWZpZXIgPSB0aGlzLmF1dGhTZXJ2aWNlLmdlbmVyYXRlUmFuZG9tQ29kZVZlcmlmaWVyKDQzKTtcclxuICAgICAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKFwiY29kZVZlcmlmaWVyXCIsIGNvZGVWZXJpZmllcik7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmF1dGhTZXJ2aWNlLmdlbmVyYXRlQ29kZUNoYWxsZW5nZUZyb21WZXJpZmllcihjb2RlVmVyaWZpZXIpLnRoZW4oY29kZUNoYWxsZW5nZSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGF1dGhvcml6YXRpb25VcmwgPSBgJHt0aGlzLmFwcENvbmZpZ1NlcnZpY2UuU0FNTDJBREZTX0lEUH0/YCArXHJcbiAgICAgICAgICAgICAgICAgICAgYHd0cmVhbG09JHt0aGlzLmFwcENvbmZpZ1NlcnZpY2UuU0FNTDJBREZTX0lERU5USUZJRVJ9YCArXHJcbiAgICAgICAgICAgICAgICAgICAgYCZ3YT0ke3RoaXMuYXBwQ29uZmlnU2VydmljZS5TQU1MMkFERlNfV0FfU0lHTklOIHx8ICd3c2lnbmluMS4wJ31gICsgXHJcbiAgICAgICAgICAgICAgICAgICAgYCZ3cmVwbHk9JHt0aGlzLmFwcENvbmZpZ1NlcnZpY2UuQkFTRV9VUkx9JHt0aGlzLmFwcENvbmZpZ1NlcnZpY2UuU0FNTDJBREZTX1dSRVBMWX1gICsgXHJcbiAgICAgICAgICAgICAgICAgICAgYCZ3Y3R4PSR7Y29kZUNoYWxsZW5nZX1gXHJcbiAgICAgICAgICAgICAgICAgIGlmIChpc0Rldk1vZGUoKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGFsZXJ0KGF1dGhvcml6YXRpb25VcmwpO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IGF1dGhvcml6YXRpb25Vcmw7XHJcblxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAqL1xyXG5cclxuXHJcbiAgICAgICAgICAgICAgfVxyXG4gIFxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgIFxyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5zc29Qcm9jZXNzaW5nJC5uZXh0KGZhbHNlKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxldCBib2R5MTogSUZvcm1hdGVkUmVzcG9uc2U7XHJcbiAgICAgICAgbGV0IGJvZHkyOiBJRm9ybWF0ZWRSZXNwb25zZTtcclxuICAgICAgICBsZXQgYm9keTM6IElGb3JtYXRlZFJlc3BvbnNlO1xyXG4gICAgICAgIGxldCBib2R5NDogSUZvcm1hdGVkUmVzcG9uc2U7XHJcblxyXG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICAgICAgdGhpcy5zc29Qcm9jZXNzaW5nJC5waXBlKFxyXG4gICAgICAgICAgICBmaWx0ZXIoeCA9PiAheClcclxuICAgICAgICAgICkuc3Vic2NyaWJlKF8gPT4ge1xyXG5cclxuICAgICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICAgICAgICAgICAgemlwKFtcclxuICAgICAgICAgICAgICAgIHRoaXMubWxzLnJlYWRBbGxNaW5pKCksXHJcbiAgICAgICAgICAgICAgICB0aGlzLnJvdXRpbmdTZXJ2aWNlLnJlYWRBbGxGdW5jdGlvbldpdGhBbGxBY3Rpb25zKCksXHJcbiAgICAgICAgICAgICAgICB0aGlzLnJvdXRpbmdTZXJ2aWNlLmdldElnbm9yZVBhdGhzKCksXHJcbiAgICAgICAgICAgICAgICB0aGlzLmFwcFNlcnZpY2UuZ2V0KGFwaS5QT1JUQUxfUk9VVEVfUkVBRF9BTExfTUlOSSlcclxuICAgICAgICAgICAgICBdKS5waXBlKFxyXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcih2YWwgPT4gb2YoYFRoZSBhcHAgY2F1Z2h0OiAke3ZhbH1gKSlcclxuICAgICAgICAgICAgICApLnN1YnNjcmliZShyZXNwb25zZXMgPT4ge1xyXG5cclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiYXBwSW5pdGlhbGl6ZSgpIHppcCgpIGRvbmVcIilcclxuXHJcbiAgICAgICAgICAgICAgICBjb25zdCB4MSA9IHJlc3BvbnNlc1swXTtcclxuICAgICAgICAgICAgICAgIGlmICh4MS5vayAmJiB4MS5zdGF0dXMgPT09IDIwMCkge1xyXG4gICAgICAgICAgICAgICAgICBib2R5MSA9IHgxLmJvZHlcclxuICAgICAgICAgICAgICAgICAgaWYgKGJvZHkxLnN0YXR1c0NvZGUgPT09IDIwMCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubWxzLmRhdGEkLm5leHQoYm9keTEuaW5uZXJCb2R5KTtcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGNvbnN0IHgyID0gcmVzcG9uc2VzWzFdO1xyXG4gICAgICAgICAgICAgICAgaWYgKHgyLm9rICYmIHgyLnN0YXR1cyA9PT0gMjAwKSB7XHJcbiAgICAgICAgICAgICAgICAgIGJvZHkyID0geDIuYm9keVxyXG4gICAgICAgICAgICAgICAgICBpZiAoYm9keTIuc3RhdHVzQ29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yb3V0aW5nU2VydmljZS5mdWxsRnVuY3Rpb25zJC5uZXh0KGJvZHkyLmlubmVyQm9keSk7XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBjb25zdCB4MyA9IHJlc3BvbnNlc1syXTtcclxuICAgICAgICAgICAgICAgIGlmICh4My5vayAmJiB4My5zdGF0dXMgPT09IDIwMCkge1xyXG4gICAgICAgICAgICAgICAgICBib2R5MyA9IHgzLmJvZHlcclxuICAgICAgICAgICAgICAgICAgaWYgKGJvZHkzLnN0YXR1c0NvZGUgPT09IDIwMCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucm91dGluZ1NlcnZpY2UuaWdub3JlZFBhdGhzJC5uZXh0KGJvZHkzLmlubmVyQm9keSk7XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBjb25zdCB4NCA9IHJlc3BvbnNlc1szXTtcclxuICAgICAgICAgICAgICAgIGlmICh4NC5vayAmJiB4NC5zdGF0dXMgPT09IDIwMCkge1xyXG4gICAgICAgICAgICAgICAgICBib2R5NCA9IHg0LmJvZHlcclxuICAgICAgICAgICAgICAgICAgaWYgKGJvZHk0LnN0YXR1c0NvZGUgPT09IDIwMCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucm91dGluZ1NlcnZpY2UucG9ydGFsUm91dGVzJC5uZXh0KGJvZHk0LmlubmVyQm9keSk7XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBpZiAoYm9keTE/LnN0YXR1c0NvZGUgPT09IDIwMCAmJiBib2R5Mj8uc3RhdHVzQ29kZSA9PT0gMjAwICYmIGJvZHkzPy5zdGF0dXNDb2RlID09PSAyMDApIHtcclxuXHJcbiAgICAgICAgICAgICAgICAgIHRoaXMucHJpbWFyeUluaXRpYWxpemVkID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgICAgICAgICAgIGlmICghIU9BVVRIMl9PSURDX0VOQUJMRUQgJiYgISF0aGlzLnBlbmRpbmdBdXRoRGF0YSQudmFsdWUpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnN0b3JlU2Vzc2lvbk9rID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmF1dGhTZXJ2aWNlLmRhdGEkLm5leHQodGhpcy5wZW5kaW5nQXV0aERhdGEkLnZhbHVlKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnBlbmRpbmdBdXRoRGF0YSQubmV4dChudWxsKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmF1dGhTZXJ2aWNlLmF1dGhlbnRpY2F0ZWQkLm5leHQodHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbml0aWFsaXppbmckLm5leHQoZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYXV0aFNlcnZpY2UudHJ5UmVzdG9yZVNlc3Npb24oKVxyXG4gICAgICAgICAgICAgICAgICAgICAgLnN1YnNjcmliZSh4ID0+IHtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh4Lm9rICYmIHguc3RhdHVzID09PSAyMDAgJiYgeC5ib2R5Py5zdGF0dXNDb2RlID09PSAyMDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBib2R5OiBJRm9ybWF0ZWRSZXNwb25zZSA9IHguYm9keVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChib2R5LnN0YXR1c0NvZGUgPT09IDIwMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbmV3QXV0aERhdGE6IElBdXRoRGF0YSA9IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uYm9keS5pbm5lckJvZHksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2luVGltZTogbmV3IERhdGUoKS5nZXRUaW1lKClcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3RvcmVTZXNzaW9uT2sgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hdXRoU2VydmljZS5kYXRhJC5uZXh0KG5ld0F1dGhEYXRhKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghIWxvY2FsU3RvcmFnZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGVmdGJhclJlZHVjZWRTdHJpbmcgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnbGVmdGJhclJlZHVjZWQnKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxlZnRiYXJSZWR1Y2VkID0gSlNPTi5wYXJzZShsZWZ0YmFyUmVkdWNlZFN0cmluZyEpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxheW91dFNlcnZpY2UubGVmdGJhclJlZHVjZWQkLm5leHQoISFsZWZ0YmFyUmVkdWNlZCk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgcm91dGluZ0hpc3RvcnlTdHJpbmcgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgncm91dGluZ0hpc3RvcnknKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghIXJvdXRpbmdIaXN0b3J5U3RyaW5nKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJvdXRpbmdIaXN0b3J5ID0gSlNPTi5wYXJzZShyb3V0aW5nSGlzdG9yeVN0cmluZyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucm91dGluZ1NlcnZpY2Uucm91dGluZ0hpc3RvcnkkLm5leHQocm91dGluZ0hpc3RvcnkpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvcmVPcmdUcmVlU3RhdHVzU3RyaW5nID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJjb3JlT3JnVHJlZVN0YXR1c1wiKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjb3JlT3JnVHJlZVN0YXR1c1N0cmluZykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzYXZlZE9iamVjdDogSUV2ZXJ5VHJlZVN0YXR1cyA9IEpTT04ucGFyc2UoY29yZU9yZ1RyZWVTdGF0dXNTdHJpbmcpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9yZ2FuaXphdGlvblNlcnZpY2Uuc3RhdHVzJC5uZXh0KHNhdmVkT2JqZWN0KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pbml0aWFsaXppbmckLm5leHQoZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9LCAyMDApXHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICApXHJcblxyXG5cclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgKVxyXG5cclxuICAgICAgfSkuY2F0Y2goZSA9PiBjb25zb2xlLmxvZyhcImZldGNoIGFwcC5jb25maWcuanNvbiBlcnJvclwiLCBlKSlcclxuICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgY29uc29sZS5sb2coXCJhcHBJbml0aWFsaXplKCkgemlwKCkgZXJyb3I6IFwiLCBlKVxyXG4gICAgfSBmaW5hbGx5IHtcclxuICAgICAgY29uc29sZS5sb2coXCJmaW5hbGx5XCIpXHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMubWFwKHggPT4geD8udW5zdWJzY3JpYmUoKSlcclxuICB9XHJcblxyXG59XHJcbiJdfQ==
|
|
@@ -2467,33 +2467,16 @@ class AppInitializationService {
|
|
|
2467
2467
|
this.ssoFailed = false;
|
|
2468
2468
|
}
|
|
2469
2469
|
appInitialize() {
|
|
2470
|
-
|
|
2471
|
-
|
|
2472
|
-
|
|
2473
|
-
|
|
2474
|
-
|
|
2475
|
-
|
|
2476
|
-
|
|
2477
|
-
|
|
2478
|
-
return value
|
|
2479
|
-
})
|
|
2480
|
-
} else {
|
|
2481
|
-
newO = {}
|
|
2482
|
-
for (origKey in o) {
|
|
2483
|
-
if (o.hasOwnProperty(origKey)) {
|
|
2484
|
-
newKey = (origKey.charAt(0).toLowerCase() + origKey.slice(1) || origKey).toString()
|
|
2485
|
-
value = o[origKey]
|
|
2486
|
-
if (value instanceof Array || (value !== null && value.constructor === Object)) {
|
|
2487
|
-
value = toCamel(value)
|
|
2470
|
+
try {
|
|
2471
|
+
if (!localStorage) {
|
|
2472
|
+
const lang = localStorage.getItem("lang");
|
|
2473
|
+
if (!!lang) {
|
|
2474
|
+
this.mls.lang$.next(JSON.parse(lang));
|
|
2475
|
+
}
|
|
2476
|
+
else {
|
|
2477
|
+
this.mls.lang$.next("en");
|
|
2488
2478
|
}
|
|
2489
|
-
(newO as any)[newKey] = value
|
|
2490
|
-
}
|
|
2491
2479
|
}
|
|
2492
|
-
}
|
|
2493
|
-
return newO
|
|
2494
|
-
}
|
|
2495
|
-
*/
|
|
2496
|
-
try {
|
|
2497
2480
|
fetch('../../assets/app.config.json').then(res => res.json()).then(({ APP_TYPE, BASE_URL, BASE_URL_FOR_STATISTIC, GOLIVE_URL, DEBUG_ENABLED, LOGO_LOGIN, LOGO_HEADER, HOME_BACKGROUND_IMAGE, OAUTH2_OIDC_ENABLED, OAUTH2_OIDC_CLIENT_ID, OAUTH2_OIDC_LOGIN_URI, OAUTH2_OIDC_REDIRECT_URI, OAUTH2_OIDC_SCOPE, SAML2ADFS_ENABLED, SAML2ADFS_IDP, SAML2ADFS_IDENTIFIER, SAML2ADFS_WA_SIGNIN, SAML2ADFS_WA_SIGNOUT, SAML2ADFS_WREPLY, HANGFIRE_PATH, STATIC_FOLDER, AVATAR_FOLDER, }) => {
|
|
2498
2481
|
this.appConfigService.APP_TYPE = APP_TYPE;
|
|
2499
2482
|
this.appConfigService.BASE_URL = BASE_URL;
|
|
@@ -22763,6 +22746,9 @@ class LanguageChangerComponent extends BaseDropdownComponent {
|
|
|
22763
22746
|
onMenuItemClick(item) {
|
|
22764
22747
|
this.mls.lang$.next(item.lang === EnumTranslateKey.UI_LANGUAGE_CHANGER_MENU_VI ? 'vi' : 'en');
|
|
22765
22748
|
this.expandState = !this.expandState;
|
|
22749
|
+
if (!!localStorage) {
|
|
22750
|
+
localStorage.setItem("lang", this.mls.lang$.value);
|
|
22751
|
+
}
|
|
22766
22752
|
}
|
|
22767
22753
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: LanguageChangerComponent, deps: [{ token: MultiLanguageService }, { token: i0.Renderer2 }, { token: DomService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
22768
22754
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.3", type: LanguageChangerComponent, isStandalone: true, selector: "app-language-changer", usesInheritance: true, ngImport: i0, template: "<div #container class=\"app-language-changer-container\">\r\n <div class=\"block d-flex d-flex-center\" (click)=\"onBlockClick()\">\r\n <!-- <span>{{ currentLang | translate: lang }}</span> -->\r\n <img [src]=\"this.currentLang == 'UI_LANGUAGE_CHANGER_MENU_VI' ? '../../../assets/icon/vietnam-lang.svg' : '../../../assets/icon/england-lang.svg'\">\r\n </div>\r\n <div class=\"dropdown\" [class.open]=\"expandState\">\r\n <ul>\r\n <li *ngFor=\"let item of languages\" (click)=\"onMenuItemClick(item)\">\r\n <span>{{ item.translateCode | translate: lang }}</span>\r\n </li>\r\n </ul>\r\n </div>\r\n</div>\r\n", styles: [".app-language-changer-container{position:relative}.app-language-changer-container>.block{cursor:pointer;padding:5px;background-color:var(--color-bg-core-table-highlighted);border-radius:5px;color:#fff;height:30px}.app-language-changer-container>.dropdown{position:absolute;width:var(--size-left-bar-full-width);top:var(--size-form-control-height);right:0;height:0px;overflow:hidden;transition:height .5s ease-out;color:var(--color-menu-level-1)}.app-language-changer-container>.dropdown>ul{background-color:var(--color-bg-menu-level-2)}.app-language-changer-container>.dropdown>ul>li{height:var(--size-form-control-height);cursor:pointer;display:flex;align-items:center}.app-language-changer-container>.dropdown>ul>li>i{margin-right:var(--size-layout-block-cell-spacing)}.app-language-changer-container>.dropdown.open{display:block;background-color:var(--color-bg-block);padding:var(--size-layout-block-cell-spacing);height:calc(var(--size-form-control-height) * 2 + var(--size-layout-block-cell-spacing) * 2);transition:height .5s ease-out;box-shadow:var(--decoration-box-shadow)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
|