@yelon/bis 18.1.2 → 18.1.4
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/public_api.mjs +3 -1
- package/esm2022/src/startup.service.mjs +6 -3
- package/esm2022/src/website/layout-website-01.component.mjs +173 -0
- package/esm2022/src/website/layout-website-02.component.mjs +204 -0
- package/fesm2022/bis.mjs +366 -7
- package/fesm2022/bis.mjs.map +1 -1
- package/index.less +2 -0
- package/layout/style/layout-website-01.less +85 -0
- package/layout/style/layout-website-02.less +83 -0
- package/package.json +11 -11
- package/public_api.d.ts +2 -0
- package/src/website/layout-website-01.component.d.ts +26 -0
- package/src/website/layout-website-02.component.d.ts +29 -0
- package/theme-default.less +36 -0
package/esm2022/public_api.mjs
CHANGED
|
@@ -6,4 +6,6 @@ export * from './src/refresh-token';
|
|
|
6
6
|
export * from './src/startup.service';
|
|
7
7
|
export * from './src/yunzai-analysis-addon.guard';
|
|
8
8
|
export * from './src/yunzai-act.guard';
|
|
9
|
-
|
|
9
|
+
export * from './src/website/layout-website-01.component';
|
|
10
|
+
export * from './src/website/layout-website-02.component';
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2Jpcy9wdWJsaWNfYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYywyQ0FBMkMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vc3JjL3Byb3ZpZGUnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYmlzLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9oZWxwZXInO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMveXVuemFpLWRlZmF1bHQuaW50ZXJjZXB0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvcmVmcmVzaC10b2tlbic7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9zdGFydHVwLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMveXVuemFpLWFuYWx5c2lzLWFkZG9uLmd1YXJkJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL3l1bnphaS1hY3QuZ3VhcmQnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvd2Vic2l0ZS9sYXlvdXQtd2Vic2l0ZS0wMS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvd2Vic2l0ZS9sYXlvdXQtd2Vic2l0ZS0wMi5jb21wb25lbnQnO1xuIl19
|
|
@@ -32,7 +32,7 @@ export class YunzaiStartupService {
|
|
|
32
32
|
this.configService = inject(YunzaiConfigService);
|
|
33
33
|
}
|
|
34
34
|
load(param) {
|
|
35
|
-
let defaultLang = this.settingService.layout.lang || this.i18n.defaultLang;
|
|
35
|
+
let defaultLang = this.settingService.layout.lang || this.i18n.defaultLang || 'zh-CN';
|
|
36
36
|
const [setTenant] = useLocalStorageTenant();
|
|
37
37
|
const [setUser, getUser] = useLocalStorageUser();
|
|
38
38
|
const [setHeader] = useLocalStorageHeader();
|
|
@@ -41,7 +41,10 @@ export class YunzaiStartupService {
|
|
|
41
41
|
const [setCurrent] = useLocalStorageCurrent();
|
|
42
42
|
return this.token(param).pipe(mergeMap((token) => {
|
|
43
43
|
if (token === false) {
|
|
44
|
-
return this.i18n.loadLocaleData(defaultLang).pipe(
|
|
44
|
+
return this.i18n.loadLocaleData(defaultLang).pipe(map((langData) => {
|
|
45
|
+
this.i18n.use(defaultLang, langData);
|
|
46
|
+
this.settingService.setLayout('lang', defaultLang);
|
|
47
|
+
}), mergeMap(() => EMPTY));
|
|
45
48
|
}
|
|
46
49
|
this.configService.set('auth', {
|
|
47
50
|
token_send_key: 'Authorization',
|
|
@@ -199,4 +202,4 @@ export function generateAbility(menus, abilities, prefix) {
|
|
|
199
202
|
}
|
|
200
203
|
});
|
|
201
204
|
}
|
|
202
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcnR1cC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYmlzL3NyYy9zdGFydHVwLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUM5RSxPQUFPLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFdkYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUN4QyxPQUFPLEVBQWUsZ0JBQWdCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25ELE9BQU8sRUFFTCxXQUFXLEVBQ1gsZUFBZSxFQUNmLFlBQVksRUFDWixpQkFBaUIsRUFFbEIsTUFBTSxjQUFjLENBQUM7QUFDdEIsT0FBTyxFQUNMLFFBQVEsRUFDUixzQkFBc0IsRUFDdEIsMkJBQTJCLEVBQzNCLHFCQUFxQixFQUNyQiwwQkFBMEIsRUFDMUIscUJBQXFCLEVBQ3JCLG1CQUFtQixFQUNuQixNQUFNLEVBQ04sbUJBQW1CLEVBR3BCLE1BQU0sYUFBYSxDQUFDOztBQU9yQixNQUFNLFVBQVUsb0JBQW9CO0lBQ2xDLE9BQU87UUFDTCxvQkFBb0I7UUFDcEI7WUFDRSxPQUFPLEVBQUUsZUFBZTtZQUN4QixVQUFVLEVBQUUsQ0FBQyxjQUFvQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFO1lBQ2pGLElBQUksRUFBRSxDQUFDLG9CQUFvQixDQUFDO1lBQzVCLEtBQUssRUFBRSxJQUFJO1NBQ1o7S0FDRixDQUFDO0FBQ0osQ0FBQztBQUdELE1BQU0sT0FBTyxvQkFBb0I7SUFEakM7UUFFbUIsV0FBTSxHQUFHLGNBQWMsQ0FBQyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDO1FBQ3JELGdCQUFXLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ2xDLGVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDaEMsaUJBQVksR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDcEMsaUJBQVksR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUN4QyxlQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2hDLG1CQUFjLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ3pDLFNBQUksR0FBRyxNQUFNLENBQXdCLGlCQUFpQixDQUFDLENBQUM7UUFDeEQsUUFBRyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNyQixrQkFBYSxHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0tBa0o5RDtJQWhKQyxJQUFJLENBQUMsS0FBaUI7UUFDcEIsSUFBSSxXQUFXLEdBQVcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQ25GLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxxQkFBcUIsRUFBRSxDQUFDO1FBQzVDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLEdBQUcsbUJBQW1CLEVBQUUsQ0FBQztRQUNqRCxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcscUJBQXFCLEVBQUUsQ0FBQztRQUM1QyxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsMEJBQTBCLEVBQUUsQ0FBQztRQUNsRCxNQUFNLENBQUMsZUFBZSxDQUFDLEdBQUcsMkJBQTJCLEVBQUUsQ0FBQztRQUN4RCxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsc0JBQXNCLEVBQUUsQ0FBQztRQUU5QyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUMzQixRQUFRLENBQUMsQ0FBQyxLQUFnQixFQUFFLEVBQUU7WUFDNUIsSUFBSSxLQUFLLEtBQUssS0FBSyxFQUFFLENBQUM7Z0JBQ3BCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQzNFLENBQUM7WUFDRCxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUU7Z0JBQzdCLGNBQWMsRUFBRSxlQUFlO2dCQUMvQixtQkFBbUIsRUFBRSxHQUFHLEtBQUssQ0FBQyxVQUFVLG1CQUFtQjtnQkFDM0QsZ0JBQWdCLEVBQUUsUUFBUTthQUMzQixDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM3QixPQUFPLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLENBQUMsQ0FBQyxFQUNGLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDWixPQUFPLGFBQWEsQ0FBQztnQkFDbkIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDO2dCQUNqQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQztnQkFDekMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsMkJBQTJCLENBQUM7YUFDakQsQ0FBQyxDQUFDLElBQUksQ0FDTCxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFZLEVBQUUsRUFBRTtnQkFDekMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztnQkFDeEIsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDekIsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDdkIsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDekIsT0FBTyxLQUFLLENBQUMsQ0FBQztZQUNoQixDQUFDLENBQUMsQ0FDSCxDQUFDO1FBQ0osQ0FBQyxDQUFDLEVBQ0YsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUNaLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUM3QyxHQUFHLENBQUMsQ0FBQyxRQUFtQixFQUFFLEVBQUU7Z0JBQzFCLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxRQUFRLENBQUMsQ0FBQztnQkFDckMsT0FBTyxLQUFLLENBQUMsQ0FBQztZQUNoQixDQUFDLENBQUMsQ0FDSCxDQUFDO1FBQ0osQ0FBQyxDQUFDLEVBQ0YsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUNaLE1BQU0sVUFBVSxHQUFHLE9BQU8sRUFBRyxDQUFDO1lBQzlCLE1BQU0sV0FBVyxHQUFpQixRQUFRLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FDaEUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxJQUFJLENBQUMsQ0FBQyxVQUFVLEtBQUssSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQzdELENBQUM7WUFDRixNQUFNLFdBQVcsR0FBRyxXQUFXLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDdEMsSUFBSSxXQUFXLEVBQUUsQ0FBQztnQkFDaEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLEVBQUUsV0FBVyxDQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsV0FBVyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7Z0JBQ3ZGLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDO29CQUMxQixJQUFJLEVBQUUsVUFBVSxDQUFDLFFBQVE7b0JBQ3pCLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxvQkFBb0IsVUFBVSxDQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUU7b0JBQzdFLEtBQUssRUFBRSxVQUFVLENBQUMsS0FBSztpQkFDeEIsQ0FBQyxDQUFDO2dCQUNILElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxHQUFHLFdBQVcsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQywwQkFBMEIsQ0FBQztnQkFDNUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsV0FBVyxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDO2dCQUM1RixNQUFNLFNBQVMsR0FBYSxFQUFFLENBQUM7Z0JBQy9CLGVBQWUsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxFQUFFLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQztnQkFDOUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQ3hCLFVBQVUsRUFBRSxLQUFLO3FCQUNkLEdBQUcsQ0FBQyxDQUFDLElBQWUsRUFBRSxFQUFFO29CQUN2QixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7Z0JBQ3hCLENBQUMsQ0FBQztxQkFDRCxNQUFNLENBQUMsQ0FBQyxDQUFZLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQ3ZDLENBQUM7Z0JBQ0YsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBQ3pDLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsV0FBbUIsQ0FBQyxDQUFDLENBQUM7Z0JBQzVDLFVBQVUsQ0FBQztvQkFDVCxJQUFJLEVBQUUsV0FBVyxDQUFDLElBQUk7b0JBQ3RCLEtBQUssRUFBRSxXQUFXLENBQUMsS0FBSyxJQUFJLEVBQUU7b0JBQzlCLElBQUksRUFBRSxXQUFXLENBQUMsVUFBVSxJQUFJLDZCQUE2QjtpQkFDOUQsQ0FBQyxDQUFDO2dCQUNILE1BQU0sVUFBVSxHQUFHLFdBQVcsQ0FBQyxTQUFTLENBQUM7Z0JBQ3pDLElBQUksVUFBVSxFQUFFLENBQUM7b0JBQ2YsTUFBTSxJQUFJLEdBQXdCLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7b0JBQ3pELElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQzt3QkFDOUIsZUFBZSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztvQkFDckMsQ0FBQzt5QkFBTSxDQUFDO3dCQUNOLGVBQWUsQ0FBQyxlQUFlLENBQUMsQ0FBQztvQkFDbkMsQ0FBQztnQkFDSCxDQUFDO3FCQUFNLENBQUM7b0JBQ04sZUFBZSxDQUFDLGVBQWUsQ0FBQyxDQUFDO2dCQUNuQyxDQUFDO1lBQ0gsQ0FBQztZQUNELE9BQU8sRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsQ0FBQyxDQUFDLEVBQ0YsVUFBVSxDQUFDLENBQUMsS0FBZ0IsRUFBRSxFQUFFO1lBQzlCLE9BQU8sQ0FBQyxLQUFLLENBQUMsaUJBQWlCLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDeEMsT0FBTyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVELEtBQUssQ0FBQyxLQUFpQjtRQUNyQixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLENBQUM7UUFDbEQsTUFBTSxLQUFLLEdBQUcsS0FBSyxFQUFFLEtBQUssSUFBSSxTQUFTLENBQUM7UUFDeEMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQzFCLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLEVBQUUsRUFBRSxZQUFZLElBQUksS0FBSyxJQUFJLElBQUksRUFBRSxDQUFDO2dCQUMzRCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLHlDQUF5QyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUNoRyxHQUFHLENBQUMsQ0FBQyxRQUFtQixFQUFFLEVBQUU7b0JBQzFCLE9BQU8sUUFBUSxDQUFDO2dCQUNsQixDQUFDLENBQUMsQ0FDSCxDQUFDO1lBQ0osQ0FBQztZQUNELE9BQU8sRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25CLENBQUM7YUFBTSxDQUFDO1lBQ04sTUFBTSxHQUFHLEdBQUcsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDdkQsT0FBTyxJQUFJLENBQUMsVUFBVTtpQkFDbkIsR0FBRyxDQUFDLHlDQUF5QyxHQUFHLG9DQUFvQyxJQUFJLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7aUJBQzNHLElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxRQUFtQixFQUFFLEVBQUU7Z0JBQzFCLFFBQVEsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDO29CQUN6QixLQUFLLElBQUk7d0JBQ1AsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDO29CQUN2QixLQUFLLElBQUk7d0JBQ1AsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDOzRCQUNwQixpRUFBaUU7NEJBQ2pFLHlDQUF5Qzs0QkFDekMsWUFBWSxDQUFDLEtBQUssRUFBRSxDQUFDOzRCQUNyQixJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxDQUFDOzRCQUMxQixPQUFPLEtBQUssQ0FBQzt3QkFDZixDQUFDO3dCQUNELElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDO3dCQUN0QyxNQUFNLEtBQUssQ0FBQyx1REFBdUQsQ0FBQyxDQUFDO29CQUN2RTt3QkFDRSxJQUFJLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQzs0QkFDbEIsT0FBTyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7NEJBQzdCLE1BQU0sS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQzt3QkFDN0IsQ0FBQzs2QkFBTSxJQUFJLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQzs0QkFDeEIsT0FBTyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7NEJBQzVCLE1BQU0sS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQzt3QkFDNUIsQ0FBQzs2QkFBTSxDQUFDOzRCQUNOLE9BQU8sQ0FBQyxLQUFLLENBQUMsbUJBQW1CLENBQUMsQ0FBQzs0QkFDbkMsTUFBTSxLQUFLLENBQUMsb0NBQW9DLENBQUMsQ0FBQzt3QkFDcEQsQ0FBQztnQkFDTCxDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQ0gsQ0FBQztRQUNOLENBQUM7SUFDSCxDQUFDOzhHQTNKVSxvQkFBb0I7a0hBQXBCLG9CQUFvQjs7MkZBQXBCLG9CQUFvQjtrQkFEaEMsVUFBVTs7QUErSlgsTUFBTSxVQUFVLG9CQUFvQixDQUFDLEtBQW1CO0lBQ3RELEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFlLEVBQUUsRUFBRTtRQUNoQyxJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBWSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUMzRCxDQUFDO1FBQ0QsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQztRQUN2QyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDO1FBQzdDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLGFBQWEsSUFBSSxJQUFJLENBQUM7UUFDL0MsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7UUFDbEIsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbEIsb0JBQW9CLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3RDLENBQUM7SUFDSCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxNQUFNLFVBQVUsZUFBZSxDQUFDLEtBQW1CLEVBQUUsU0FBbUIsRUFBRSxNQUFjO0lBQ3RGLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7UUFDbkIsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDZCxNQUFNLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQztRQUN0QixDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sSUFBSSxFQUFFLENBQUM7UUFDZixDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFTLEVBQUUsRUFBRTtnQkFDbkMsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLE1BQU0sSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUNqQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3BCLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2xCLGVBQWUsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNwRCxDQUFDO0lBQ0gsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEFQUF9JTklUSUFMSVpFUiwgaW5qZWN0LCBJbmplY3RhYmxlLCBQcm92aWRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgY29tYmluZUxhdGVzdCwgRU1QVFksIG1hcCwgbWVyZ2VNYXAsIE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEFDTFNlcnZpY2UgfSBmcm9tICdAeWVsb24vYWNsJztcbmltcG9ydCB7IElUb2tlbk1vZGVsLCBZQV9TRVJWSUNFX1RPS0VOIH0gZnJvbSAnQHllbG9uL2F1dGgnO1xuaW1wb3J0IHsgbWVyZ2VCaXNDb25maWcgfSBmcm9tICdAeWVsb24vYmlzL2NvbmZpZyc7XG5pbXBvcnQge1xuICBNZW51LFxuICBNZW51U2VydmljZSxcbiAgU2V0dGluZ3NTZXJ2aWNlLFxuICBUaXRsZVNlcnZpY2UsXG4gIFlVTlpBSV9JMThOX1RPS0VOLFxuICBZdW56YWlIdHRwSTE4TlNlcnZpY2Vcbn0gZnJvbSAnQHllbG9uL3RoZW1lJztcbmltcG9ydCB7XG4gIGRlZXBDb3B5LFxuICB1c2VMb2NhbFN0b3JhZ2VDdXJyZW50LFxuICB1c2VMb2NhbFN0b3JhZ2VEZWZhdWx0Um91dGUsXG4gIHVzZUxvY2FsU3RvcmFnZUhlYWRlcixcbiAgdXNlTG9jYWxTdG9yYWdlUHJvamVjdEluZm8sXG4gIHVzZUxvY2FsU3RvcmFnZVRlbmFudCxcbiAgdXNlTG9jYWxTdG9yYWdlVXNlcixcbiAgV0lORE9XLFxuICBZdW56YWlDb25maWdTZXJ2aWNlLFxuICBZdW56YWlNZW51LFxuICBZdW56YWlNZW51QXR0cmlidXRlXG59IGZyb20gJ0B5ZWxvbi91dGlsJztcbmltcG9ydCB7IE56U2FmZUFueSB9IGZyb20gJ25nLXpvcnJvLWFudGQvY29yZS90eXBlcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTG9hZFBhcmFtIHtcbiAgZm9yY2U/OiBib29sZWFuO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZVl1bnphaVN0YXJ0dXAoKTogUHJvdmlkZXJbXSB7XG4gIHJldHVybiBbXG4gICAgWXVuemFpU3RhcnR1cFNlcnZpY2UsXG4gICAge1xuICAgICAgcHJvdmlkZTogQVBQX0lOSVRJQUxJWkVSLFxuICAgICAgdXNlRmFjdG9yeTogKHN0YXJ0dXBTZXJ2aWNlOiBZdW56YWlTdGFydHVwU2VydmljZSkgPT4gKCkgPT4gc3RhcnR1cFNlcnZpY2UubG9hZCgpLFxuICAgICAgZGVwczogW1l1bnphaVN0YXJ0dXBTZXJ2aWNlXSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdO1xufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgWXVuemFpU3RhcnR1cFNlcnZpY2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IGNvbmZpZyA9IG1lcmdlQmlzQ29uZmlnKGluamVjdChZdW56YWlDb25maWdTZXJ2aWNlKSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgbWVudVNlcnZpY2UgPSBpbmplY3QoTWVudVNlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IGFjbFNlcnZpY2UgPSBpbmplY3QoQUNMU2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgdGl0bGVTZXJ2aWNlID0gaW5qZWN0KFRpdGxlU2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgdG9rZW5TZXJ2aWNlID0gaW5qZWN0KFlBX1NFUlZJQ0VfVE9LRU4pO1xuICBwcml2YXRlIHJlYWRvbmx5IGh0dHBDbGllbnQgPSBpbmplY3QoSHR0cENsaWVudCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgc2V0dGluZ1NlcnZpY2UgPSBpbmplY3QoU2V0dGluZ3NTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBpMThuID0gaW5qZWN0PFl1bnphaUh0dHBJMThOU2VydmljZT4oWVVOWkFJX0kxOE5fVE9LRU4pO1xuICBwcml2YXRlIHJlYWRvbmx5IHdpbiA9IGluamVjdChXSU5ET1cpO1xuICBwcml2YXRlIHJlYWRvbmx5IGNvbmZpZ1NlcnZpY2UgPSBpbmplY3QoWXVuemFpQ29uZmlnU2VydmljZSk7XG5cbiAgbG9hZChwYXJhbT86IExvYWRQYXJhbSk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIGxldCBkZWZhdWx0TGFuZzogc3RyaW5nID0gdGhpcy5zZXR0aW5nU2VydmljZS5sYXlvdXQubGFuZyB8fCB0aGlzLmkxOG4uZGVmYXVsdExhbmc7XG4gICAgY29uc3QgW3NldFRlbmFudF0gPSB1c2VMb2NhbFN0b3JhZ2VUZW5hbnQoKTtcbiAgICBjb25zdCBbc2V0VXNlciwgZ2V0VXNlcl0gPSB1c2VMb2NhbFN0b3JhZ2VVc2VyKCk7XG4gICAgY29uc3QgW3NldEhlYWRlcl0gPSB1c2VMb2NhbFN0b3JhZ2VIZWFkZXIoKTtcbiAgICBjb25zdCBbc2V0UHJvamVjdF0gPSB1c2VMb2NhbFN0b3JhZ2VQcm9qZWN0SW5mbygpO1xuICAgIGNvbnN0IFtzZXREZWZhdWx0Um91dGVdID0gdXNlTG9jYWxTdG9yYWdlRGVmYXVsdFJvdXRlKCk7XG4gICAgY29uc3QgW3NldEN1cnJlbnRdID0gdXNlTG9jYWxTdG9yYWdlQ3VycmVudCgpO1xuXG4gICAgcmV0dXJuIHRoaXMudG9rZW4ocGFyYW0pLnBpcGUoXG4gICAgICBtZXJnZU1hcCgodG9rZW46IE56U2FmZUFueSkgPT4ge1xuICAgICAgICBpZiAodG9rZW4gPT09IGZhbHNlKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuaTE4bi5sb2FkTG9jYWxlRGF0YShkZWZhdWx0TGFuZykucGlwZShtZXJnZU1hcCgoKSA9PiBFTVBUWSkpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY29uZmlnU2VydmljZS5zZXQoJ2F1dGgnLCB7XG4gICAgICAgICAgdG9rZW5fc2VuZF9rZXk6ICdBdXRob3JpemF0aW9uJyxcbiAgICAgICAgICB0b2tlbl9zZW5kX3RlbXBsYXRlOiBgJHt0b2tlbi50b2tlbl90eXBlfSBcXCR7YWNjZXNzX3Rva2VufWAsXG4gICAgICAgICAgdG9rZW5fc2VuZF9wbGFjZTogJ2hlYWRlcidcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMudG9rZW5TZXJ2aWNlLnNldCh0b2tlbik7XG4gICAgICAgIHJldHVybiBvZih2b2lkIDApO1xuICAgICAgfSksXG4gICAgICBtZXJnZU1hcCgoKSA9PiB7XG4gICAgICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgICB0aGlzLmh0dHBDbGllbnQuZ2V0KGAvYXV0aC91c2VyYCksXG4gICAgICAgICAgdGhpcy5odHRwQ2xpZW50LmdldChgL2F1dGgvYWxsaGVhZGVyL3YyYCksXG4gICAgICAgICAgdGhpcy5odHRwQ2xpZW50LmdldChgL2FwcC1tYW5hZ2VyL3Byb2plY3QvaW5mb2ApXG4gICAgICAgIF0pLnBpcGUoXG4gICAgICAgICAgbWFwKChbdXNlciwgaGVhZGVyLCBwcm9qZWN0XTogTnpTYWZlQW55KSA9PiB7XG4gICAgICAgICAgICBzZXRVc2VyKHVzZXIucHJpbmNpcGFsKTtcbiAgICAgICAgICAgIHNldFRlbmFudCh1c2VyLnRlbmFudElkKTtcbiAgICAgICAgICAgIHNldEhlYWRlcihoZWFkZXIuZGF0YSk7XG4gICAgICAgICAgICBzZXRQcm9qZWN0KHByb2plY3QuZGF0YSk7XG4gICAgICAgICAgICByZXR1cm4gdm9pZCAwO1xuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICB9KSxcbiAgICAgIG1lcmdlTWFwKCgpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaTE4bi5sb2FkTGFuZ0RhdGEoZGVmYXVsdExhbmcpLnBpcGUoXG4gICAgICAgICAgbWFwKChsYW5nRGF0YTogTnpTYWZlQW55KSA9PiB7XG4gICAgICAgICAgICB0aGlzLmkxOG4udXNlKGRlZmF1bHRMYW5nLCBsYW5nRGF0YSk7XG4gICAgICAgICAgICByZXR1cm4gdm9pZCAwO1xuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICB9KSxcbiAgICAgIG1lcmdlTWFwKCgpID0+IHtcbiAgICAgICAgY29uc3QgeXVuemFpVXNlciA9IGdldFVzZXIoKSE7XG4gICAgICAgIGNvbnN0IHl1bnphaU1lbnVzOiBZdW56YWlNZW51W10gPSBkZWVwQ29weSh5dW56YWlVc2VyLm1lbnUpLmZpbHRlcihcbiAgICAgICAgICBtID0+IG0uc3lzdGVtQ29kZSAmJiBtLnN5c3RlbUNvZGUgPT09IHRoaXMuY29uZmlnLnN5c3RlbUNvZGVcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgY3VycmVudE1lbnUgPSB5dW56YWlNZW51cy5wb3AoKTtcbiAgICAgICAgaWYgKGN1cnJlbnRNZW51KSB7XG4gICAgICAgICAgdGhpcy5zZXR0aW5nU2VydmljZS5zZXRBcHAoeyBuYW1lOiBjdXJyZW50TWVudS50ZXh0LCBkZXNjcmlwdGlvbjogY3VycmVudE1lbnUuaW50cm8gfSk7XG4gICAgICAgICAgdGhpcy5zZXR0aW5nU2VydmljZS5zZXRVc2VyKHtcbiAgICAgICAgICAgIG5hbWU6IHl1bnphaVVzZXIucmVhbG5hbWUsXG4gICAgICAgICAgICBhdmF0YXI6IGAke3RoaXMuY29uZmlnLmJhc2VVcmx9L2ZpbGVjZW50ZXIvZmlsZS8ke3l1bnphaVVzZXIuYXZhdGFySWR9YCB8fCAnJyxcbiAgICAgICAgICAgIGVtYWlsOiB5dW56YWlVc2VyLmVtYWlsXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgdGhpcy50aXRsZVNlcnZpY2UuZGVmYXVsdCA9IGN1cnJlbnRNZW51ICYmIGN1cnJlbnRNZW51LnRleHQgPyBjdXJyZW50TWVudS50ZXh0IDogJ2RlZmF1bHQgYXBwbGljYXRpb24gbmFtZSc7XG4gICAgICAgICAgdGhpcy50aXRsZVNlcnZpY2Uuc2V0VGl0bGUoY3VycmVudE1lbnUgJiYgY3VycmVudE1lbnUudGV4dCA/IGN1cnJlbnRNZW51LnRleHQgOiAnbm8gdGl0bGUnKTtcbiAgICAgICAgICBjb25zdCBhYmlsaXRpZXM6IHN0cmluZ1tdID0gW107XG4gICAgICAgICAgZ2VuZXJhdGVBYmlsaXR5KFtjdXJyZW50TWVudV0sIGFiaWxpdGllcywgJycpO1xuICAgICAgICAgIHRoaXMuYWNsU2VydmljZS5hdHRhY2hSb2xlKFxuICAgICAgICAgICAgeXVuemFpVXNlcj8ucm9sZXNcbiAgICAgICAgICAgICAgLm1hcCgocm9sZTogTnpTYWZlQW55KSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJvbGUucm9sZVZhbHVlO1xuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAuZmlsdGVyKChhOiBOelNhZmVBbnkpID0+ICEhYSkgfHwgW11cbiAgICAgICAgICApO1xuICAgICAgICAgIHRoaXMuYWNsU2VydmljZS5hdHRhY2hBYmlsaXR5KGFiaWxpdGllcyk7XG4gICAgICAgICAgdGhpcy5tZW51U2VydmljZS5hZGQoW2N1cnJlbnRNZW51IGFzIE1lbnVdKTtcbiAgICAgICAgICBzZXRDdXJyZW50KHtcbiAgICAgICAgICAgIG5hbWU6IGN1cnJlbnRNZW51LnRleHQsXG4gICAgICAgICAgICBpbnRybzogY3VycmVudE1lbnUuaW50cm8gfHwgJycsXG4gICAgICAgICAgICBpY29uOiBjdXJyZW50TWVudS5hcHBJY29uVXJsIHx8ICcuL2Fzc2V0cy90bXAvaW1nL2F2YXRhci5qcGcnXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgY29uc3QgYXR0cmlidXRlcyA9IGN1cnJlbnRNZW51LmF0dHJpYnV0ZTtcbiAgICAgICAgICBpZiAoYXR0cmlidXRlcykge1xuICAgICAgICAgICAgY29uc3QgYXR0cjogWXVuemFpTWVudUF0dHJpYnV0ZSA9IEpTT04ucGFyc2UoYXR0cmlidXRlcyk7XG4gICAgICAgICAgICBpZiAoYXR0ciAmJiBhdHRyLmRlZmF1bHRSb3V0ZSkge1xuICAgICAgICAgICAgICBzZXREZWZhdWx0Um91dGUoYXR0ci5kZWZhdWx0Um91dGUpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgc2V0RGVmYXVsdFJvdXRlKCcvZGlzcGxheUluZGV4Jyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHNldERlZmF1bHRSb3V0ZSgnL2Rpc3BsYXlJbmRleCcpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2Yodm9pZCAwKTtcbiAgICAgIH0pLFxuICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IE56U2FmZUFueSkgPT4ge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBvY2N1cnJlZDonLCBlcnJvcik7XG4gICAgICAgIHJldHVybiBvZih2b2lkIDApO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgdG9rZW4ocGFyYW0/OiBMb2FkUGFyYW0pOiBPYnNlcnZhYmxlPElUb2tlbk1vZGVsIHwgYm9vbGVhbj4ge1xuICAgIGNvbnN0IGF1dG8gPSB0aGlzLmNvbmZpZ1NlcnZpY2UuZ2V0KCdhdXRoJyk/LmF1dG87XG4gICAgY29uc3QgZm9yY2UgPSBwYXJhbT8uZm9yY2UgfHwgdW5kZWZpbmVkO1xuICAgIGlmICh0aGlzLmNvbmZpZy5sb2dpbkZvcm0pIHtcbiAgICAgIGlmICh0aGlzLnRva2VuU2VydmljZS5nZXQoKT8uYWNjZXNzX3Rva2VuIHx8IGZvcmNlIHx8IGF1dG8pIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5wb3N0KGAvYXV0aC9vYXV0aC90b2tlbj9fYWxsb3dfYW5vbnltb3VzPXRydWVgLCB0aGlzLmNvbmZpZy5sb2dpbkZvcm0pLnBpcGUoXG4gICAgICAgICAgbWFwKChyZXNwb25zZTogTnpTYWZlQW55KSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBvZihmYWxzZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHVyaSA9IGVuY29kZVVSSUNvbXBvbmVudCh0aGlzLndpbi5sb2NhdGlvbi5ocmVmKTtcbiAgICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnRcbiAgICAgICAgLmdldChgL2Nhcy1wcm94eS9hcHAvdmFsaWRhdGVfZnVsbD9jYWxsYmFjaz0ke3VyaX0mX2FsbG93X2Fub255bW91cz10cnVlJnRpbWVzdGFtcD0ke25ldyBEYXRlKCkuZ2V0VGltZSgpfWApXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIG1hcCgocmVzcG9uc2U6IE56U2FmZUFueSkgPT4ge1xuICAgICAgICAgICAgc3dpdGNoIChyZXNwb25zZS5lcnJjb2RlKSB7XG4gICAgICAgICAgICAgIGNhc2UgMjAwMDpcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YTtcbiAgICAgICAgICAgICAgY2FzZSAyMDAxOlxuICAgICAgICAgICAgICAgIGlmICghZm9yY2UgJiYgIWF1dG8pIHtcbiAgICAgICAgICAgICAgICAgIC8vIOiHquWKqOiupOivgeS4umZhbHNl5oOF5Ya15LiL5Lya5Ye6546wOiDlkI7lj7Dlt7Lnu4/kuIvnur8s5L2G5piv55So5oi36L+b5YWl572R6aG15a2Y5YKo5LqG5LiK5qyh55qEY29va2llLFRva2Vu77yM5omA5Lul572R6aG16L+Y5piv55m75b2V54q25oCBXG4gICAgICAgICAgICAgICAgICAvLyDlnKjov5nph4zlpoLmnpwyMDAx5pe26Ieq5Yqo5riF55CG5a6i5oi356uv6L+H5pe255qEdG9rZW7ku6Xkv53or4HpobXpnaLmmL7npLrnmbvlvZXnirbmgIHmraPluLhcbiAgICAgICAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5jbGVhcigpO1xuICAgICAgICAgICAgICAgICAgdGhpcy50b2tlblNlcnZpY2UuY2xlYXIoKTtcbiAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy53aW4ubG9jYXRpb24uaHJlZiA9IHJlc3BvbnNlLm1zZztcbiAgICAgICAgICAgICAgICB0aHJvdyBFcnJvcihcIkNvb2tpZSBFcnJvcjogQ2FuJ3QgZmluZCBDYXMgQ29va2llLFNvIGp1bXAgdG8gbG9naW4hXCIpO1xuICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5kYXRhKSB7XG4gICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKHJlc3BvbnNlLmRhdGEpO1xuICAgICAgICAgICAgICAgICAgdGhyb3cgRXJyb3IocmVzcG9uc2UuZGF0YSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChyZXNwb25zZS5tc2cpIHtcbiAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IocmVzcG9uc2UubXNnKTtcbiAgICAgICAgICAgICAgICAgIHRocm93IEVycm9yKHJlc3BvbnNlLm1zZyk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ2NhcyB1bmtub3duIGVycm9yJyk7XG4gICAgICAgICAgICAgICAgICB0aHJvdyBFcnJvcignVW5rbm93biBFcnJvcjogQ2FzIGF1dGggZXhjZXB0aW9uIScpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gbWFwWXpTaWRlVG9ZZWxvbk1lbnUobWVudXM6IFl1bnphaU1lbnVbXSk6IHZvaWQge1xuICBtZW51cy5mb3JFYWNoKChtZW51OiBOelNhZmVBbnkpID0+IHtcbiAgICBpZiAobWVudS5jaGlsZHJlbiAmJiBtZW51LmhpZGVDaGlsZHJlbikge1xuICAgICAgbWVudS5jaGlsZHJlbi5mb3JFYWNoKChjOiBOelNhZmVBbnkpID0+IChjLmhpZGUgPSB0cnVlKSk7XG4gICAgfVxuICAgIG1lbnUuYmFkZ2VEb3QgPSBtZW51LmJhZGdlX2RvdCB8fCBudWxsO1xuICAgIG1lbnUuYmFkZ2VTdGF0dXMgPSBtZW51LmJhZGdlX3N0YXR1cyB8fCBudWxsO1xuICAgIG1lbnUuc2hvcnRjdXRSb290ID0gbWVudS5zaG9ydGN1dF9yb290IHx8IG51bGw7XG4gICAgbWVudS5yZXVzZSA9IHRydWU7XG4gICAgaWYgKG1lbnUuY2hpbGRyZW4pIHtcbiAgICAgIG1hcFl6U2lkZVRvWWVsb25NZW51KG1lbnUuY2hpbGRyZW4pO1xuICAgIH1cbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZW5lcmF0ZUFiaWxpdHkobWVudXM6IFl1bnphaU1lbnVbXSwgYWJpbGl0aWVzOiBzdHJpbmdbXSwgcHJlZml4OiBzdHJpbmcpOiB2b2lkIHtcbiAgbWVudXMuZm9yRWFjaChtZW51ID0+IHtcbiAgICBpZiAobWVudS5saW5rKSB7XG4gICAgICBwcmVmaXggKz0gbWVudS5saW5rO1xuICAgIH0gZWxzZSB7XG4gICAgICBwcmVmaXggKz0gJyc7XG4gICAgfVxuICAgIGlmIChtZW51Lm1lbnVBdXRocykge1xuICAgICAgbWVudS5tZW51QXV0aHMuZm9yRWFjaCgoYTogc3RyaW5nKSA9PiB7XG4gICAgICAgIGFiaWxpdGllcy5wdXNoKGAke3ByZWZpeH06JHthfWApO1xuICAgICAgICBhYmlsaXRpZXMucHVzaChhKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmIChtZW51LmNoaWxkcmVuKSB7XG4gICAgICBnZW5lcmF0ZUFiaWxpdHkobWVudS5jaGlsZHJlbiwgYWJpbGl0aWVzLCBwcmVmaXgpO1xuICAgIH1cbiAgfSk7XG59XG4iXX0=
|
|
205
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcnR1cC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYmlzL3NyYy9zdGFydHVwLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUM5RSxPQUFPLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFdkYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUN4QyxPQUFPLEVBQWUsZ0JBQWdCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25ELE9BQU8sRUFFTCxXQUFXLEVBQ1gsZUFBZSxFQUNmLFlBQVksRUFDWixpQkFBaUIsRUFFbEIsTUFBTSxjQUFjLENBQUM7QUFDdEIsT0FBTyxFQUNMLFFBQVEsRUFDUixzQkFBc0IsRUFDdEIsMkJBQTJCLEVBQzNCLHFCQUFxQixFQUNyQiwwQkFBMEIsRUFDMUIscUJBQXFCLEVBQ3JCLG1CQUFtQixFQUNuQixNQUFNLEVBQ04sbUJBQW1CLEVBR3BCLE1BQU0sYUFBYSxDQUFDOztBQU9yQixNQUFNLFVBQVUsb0JBQW9CO0lBQ2xDLE9BQU87UUFDTCxvQkFBb0I7UUFDcEI7WUFDRSxPQUFPLEVBQUUsZUFBZTtZQUN4QixVQUFVLEVBQUUsQ0FBQyxjQUFvQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFO1lBQ2pGLElBQUksRUFBRSxDQUFDLG9CQUFvQixDQUFDO1lBQzVCLEtBQUssRUFBRSxJQUFJO1NBQ1o7S0FDRixDQUFD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eyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgQVBQX0lOSVRJQUxJWkVSLCBpbmplY3QsIEluamVjdGFibGUsIFByb3ZpZGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBjb21iaW5lTGF0ZXN0LCBFTVBUWSwgbWFwLCBtZXJnZU1hcCwgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgQUNMU2VydmljZSB9IGZyb20gJ0B5ZWxvbi9hY2wnO1xuaW1wb3J0IHsgSVRva2VuTW9kZWwsIFlBX1NFUlZJQ0VfVE9LRU4gfSBmcm9tICdAeWVsb24vYXV0aCc7XG5pbXBvcnQgeyBtZXJnZUJpc0NvbmZpZyB9IGZyb20gJ0B5ZWxvbi9iaXMvY29uZmlnJztcbmltcG9ydCB7XG4gIE1lbnUsXG4gIE1lbnVTZXJ2aWNlLFxuICBTZXR0aW5nc1NlcnZpY2UsXG4gIFRpdGxlU2VydmljZSxcbiAgWVVOWkFJX0kxOE5fVE9LRU4sXG4gIFl1bnphaUh0dHBJMThOU2VydmljZVxufSBmcm9tICdAeWVsb24vdGhlbWUnO1xuaW1wb3J0IHtcbiAgZGVlcENvcHksXG4gIHVzZUxvY2FsU3RvcmFnZUN1cnJlbnQsXG4gIHVzZUxvY2FsU3RvcmFnZURlZmF1bHRSb3V0ZSxcbiAgdXNlTG9jYWxTdG9yYWdlSGVhZGVyLFxuICB1c2VMb2NhbFN0b3JhZ2VQcm9qZWN0SW5mbyxcbiAgdXNlTG9jYWxTdG9yYWdlVGVuYW50LFxuICB1c2VMb2NhbFN0b3JhZ2VVc2VyLFxuICBXSU5ET1csXG4gIFl1bnphaUNvbmZpZ1NlcnZpY2UsXG4gIFl1bnphaU1lbnUsXG4gIFl1bnphaU1lbnVBdHRyaWJ1dGVcbn0gZnJvbSAnQHllbG9uL3V0aWwnO1xuaW1wb3J0IHsgTnpTYWZlQW55IH0gZnJvbSAnbmctem9ycm8tYW50ZC9jb3JlL3R5cGVzJztcblxuZXhwb3J0IGludGVyZmFjZSBMb2FkUGFyYW0ge1xuICBmb3JjZT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlWXVuemFpU3RhcnR1cCgpOiBQcm92aWRlcltdIHtcbiAgcmV0dXJuIFtcbiAgICBZdW56YWlTdGFydHVwU2VydmljZSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBBUFBfSU5JVElBTElaRVIsXG4gICAgICB1c2VGYWN0b3J5OiAoc3RhcnR1cFNlcnZpY2U6IFl1bnphaVN0YXJ0dXBTZXJ2aWNlKSA9PiAoKSA9PiBzdGFydHVwU2VydmljZS5sb2FkKCksXG4gICAgICBkZXBzOiBbWXVuemFpU3RhcnR1cFNlcnZpY2VdLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9XG4gIF07XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBZdW56YWlTdGFydHVwU2VydmljZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgY29uZmlnID0gbWVyZ2VCaXNDb25maWcoaW5qZWN0KFl1bnphaUNvbmZpZ1NlcnZpY2UpKTtcbiAgcHJpdmF0ZSByZWFkb25seSBtZW51U2VydmljZSA9IGluamVjdChNZW51U2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgYWNsU2VydmljZSA9IGluamVjdChBQ0xTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSB0aXRsZVNlcnZpY2UgPSBpbmplY3QoVGl0bGVTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSB0b2tlblNlcnZpY2UgPSBpbmplY3QoWUFfU0VSVklDRV9UT0tFTik7XG4gIHByaXZhdGUgcmVhZG9ubHkgaHR0cENsaWVudCA9IGluamVjdChIdHRwQ2xpZW50KTtcbiAgcHJpdmF0ZSByZWFkb25seSBzZXR0aW5nU2VydmljZSA9IGluamVjdChTZXR0aW5nc1NlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IGkxOG4gPSBpbmplY3Q8WXVuemFpSHR0cEkxOE5TZXJ2aWNlPihZVU5aQUlfSTE4Tl9UT0tFTik7XG4gIHByaXZhdGUgcmVhZG9ubHkgd2luID0gaW5qZWN0KFdJTkRPVyk7XG4gIHByaXZhdGUgcmVhZG9ubHkgY29uZmlnU2VydmljZSA9IGluamVjdChZdW56YWlDb25maWdTZXJ2aWNlKTtcblxuICBsb2FkKHBhcmFtPzogTG9hZFBhcmFtKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgbGV0IGRlZmF1bHRMYW5nOiBzdHJpbmcgPSB0aGlzLnNldHRpbmdTZXJ2aWNlLmxheW91dC5sYW5nIHx8IHRoaXMuaTE4bi5kZWZhdWx0TGFuZyB8fCAnemgtQ04nO1xuICAgIGNvbnN0IFtzZXRUZW5hbnRdID0gdXNlTG9jYWxTdG9yYWdlVGVuYW50KCk7XG4gICAgY29uc3QgW3NldFVzZXIsIGdldFVzZXJdID0gdXNlTG9jYWxTdG9yYWdlVXNlcigpO1xuICAgIGNvbnN0IFtzZXRIZWFkZXJdID0gdXNlTG9jYWxTdG9yYWdlSGVhZGVyKCk7XG4gICAgY29uc3QgW3NldFByb2plY3RdID0gdXNlTG9jYWxTdG9yYWdlUHJvamVjdEluZm8oKTtcbiAgICBjb25zdCBbc2V0RGVmYXVsdFJvdXRlXSA9IHVzZUxvY2FsU3RvcmFnZURlZmF1bHRSb3V0ZSgpO1xuICAgIGNvbnN0IFtzZXRDdXJyZW50XSA9IHVzZUxvY2FsU3RvcmFnZUN1cnJlbnQoKTtcblxuICAgIHJldHVybiB0aGlzLnRva2VuKHBhcmFtKS5waXBlKFxuICAgICAgbWVyZ2VNYXAoKHRva2VuOiBOelNhZmVBbnkpID0+IHtcbiAgICAgICAgaWYgKHRva2VuID09PSBmYWxzZSkge1xuICAgICAgICAgIHJldHVybiB0aGlzLmkxOG4ubG9hZExvY2FsZURhdGEoZGVmYXVsdExhbmcpLnBpcGUoXG4gICAgICAgICAgICBtYXAoKGxhbmdEYXRhOiBOelNhZmVBbnkpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5pMThuLnVzZShkZWZhdWx0TGFuZywgbGFuZ0RhdGEpO1xuICAgICAgICAgICAgICB0aGlzLnNldHRpbmdTZXJ2aWNlLnNldExheW91dCgnbGFuZycsIGRlZmF1bHRMYW5nKTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgbWVyZ2VNYXAoKCkgPT4gRU1QVFkpXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNvbmZpZ1NlcnZpY2Uuc2V0KCdhdXRoJywge1xuICAgICAgICAgIHRva2VuX3NlbmRfa2V5OiAnQXV0aG9yaXphdGlvbicsXG4gICAgICAgICAgdG9rZW5fc2VuZF90ZW1wbGF0ZTogYCR7dG9rZW4udG9rZW5fdHlwZX0gXFwke2FjY2Vzc190b2tlbn1gLFxuICAgICAgICAgIHRva2VuX3NlbmRfcGxhY2U6ICdoZWFkZXInXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnRva2VuU2VydmljZS5zZXQodG9rZW4pO1xuICAgICAgICByZXR1cm4gb2Yodm9pZCAwKTtcbiAgICAgIH0pLFxuICAgICAgbWVyZ2VNYXAoKCkgPT4ge1xuICAgICAgICByZXR1cm4gY29tYmluZUxhdGVzdChbXG4gICAgICAgICAgdGhpcy5odHRwQ2xpZW50LmdldChgL2F1dGgvdXNlcmApLFxuICAgICAgICAgIHRoaXMuaHR0cENsaWVudC5nZXQoYC9hdXRoL2FsbGhlYWRlci92MmApLFxuICAgICAgICAgIHRoaXMuaHR0cENsaWVudC5nZXQoYC9hcHAtbWFuYWdlci9wcm9qZWN0L2luZm9gKVxuICAgICAgICBdKS5waXBlKFxuICAgICAgICAgIG1hcCgoW3VzZXIsIGhlYWRlciwgcHJvamVjdF06IE56U2FmZUFueSkgPT4ge1xuICAgICAgICAgICAgc2V0VXNlcih1c2VyLnByaW5jaXBhbCk7XG4gICAgICAgICAgICBzZXRUZW5hbnQodXNlci50ZW5hbnRJZCk7XG4gICAgICAgICAgICBzZXRIZWFkZXIoaGVhZGVyLmRhdGEpO1xuICAgICAgICAgICAgc2V0UHJvamVjdChwcm9qZWN0LmRhdGEpO1xuICAgICAgICAgICAgcmV0dXJuIHZvaWQgMDtcbiAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgfSksXG4gICAgICBtZXJnZU1hcCgoKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmkxOG4ubG9hZExhbmdEYXRhKGRlZmF1bHRMYW5nKS5waXBlKFxuICAgICAgICAgIG1hcCgobGFuZ0RhdGE6IE56U2FmZUFueSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5pMThuLnVzZShkZWZhdWx0TGFuZywgbGFuZ0RhdGEpO1xuICAgICAgICAgICAgcmV0dXJuIHZvaWQgMDtcbiAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgfSksXG4gICAgICBtZXJnZU1hcCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IHl1bnphaVVzZXIgPSBnZXRVc2VyKCkhO1xuICAgICAgICBjb25zdCB5dW56YWlNZW51czogWXVuemFpTWVudVtdID0gZGVlcENvcHkoeXVuemFpVXNlci5tZW51KS5maWx0ZXIoXG4gICAgICAgICAgbSA9PiBtLnN5c3RlbUNvZGUgJiYgbS5zeXN0ZW1Db2RlID09PSB0aGlzLmNvbmZpZy5zeXN0ZW1Db2RlXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRNZW51ID0geXVuemFpTWVudXMucG9wKCk7XG4gICAgICAgIGlmIChjdXJyZW50TWVudSkge1xuICAgICAgICAgIHRoaXMuc2V0dGluZ1NlcnZpY2Uuc2V0QXBwKHsgbmFtZTogY3VycmVudE1lbnUudGV4dCwgZGVzY3JpcHRpb246IGN1cnJlbnRNZW51LmludHJvIH0pO1xuICAgICAgICAgIHRoaXMuc2V0dGluZ1NlcnZpY2Uuc2V0VXNlcih7XG4gICAgICAgICAgICBuYW1lOiB5dW56YWlVc2VyLnJlYWxuYW1lLFxuICAgICAgICAgICAgYXZhdGFyOiBgJHt0aGlzLmNvbmZpZy5iYXNlVXJsfS9maWxlY2VudGVyL2ZpbGUvJHt5dW56YWlVc2VyLmF2YXRhcklkfWAgfHwgJycsXG4gICAgICAgICAgICBlbWFpbDogeXVuemFpVXNlci5lbWFpbFxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHRoaXMudGl0bGVTZXJ2aWNlLmRlZmF1bHQgPSBjdXJyZW50TWVudSAmJiBjdXJyZW50TWVudS50ZXh0ID8gY3VycmVudE1lbnUudGV4dCA6ICdkZWZhdWx0IGFwcGxpY2F0aW9uIG5hbWUnO1xuICAgICAgICAgIHRoaXMudGl0bGVTZXJ2aWNlLnNldFRpdGxlKGN1cnJlbnRNZW51ICYmIGN1cnJlbnRNZW51LnRleHQgPyBjdXJyZW50TWVudS50ZXh0IDogJ25vIHRpdGxlJyk7XG4gICAgICAgICAgY29uc3QgYWJpbGl0aWVzOiBzdHJpbmdbXSA9IFtdO1xuICAgICAgICAgIGdlbmVyYXRlQWJpbGl0eShbY3VycmVudE1lbnVdLCBhYmlsaXRpZXMsICcnKTtcbiAgICAgICAgICB0aGlzLmFjbFNlcnZpY2UuYXR0YWNoUm9sZShcbiAgICAgICAgICAgIHl1bnphaVVzZXI/LnJvbGVzXG4gICAgICAgICAgICAgIC5tYXAoKHJvbGU6IE56U2FmZUFueSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiByb2xlLnJvbGVWYWx1ZTtcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgLmZpbHRlcigoYTogTnpTYWZlQW55KSA9PiAhIWEpIHx8IFtdXG4gICAgICAgICAgKTtcbiAgICAgICAgICB0aGlzLmFjbFNlcnZpY2UuYXR0YWNoQWJpbGl0eShhYmlsaXRpZXMpO1xuICAgICAgICAgIHRoaXMubWVudVNlcnZpY2UuYWRkKFtjdXJyZW50TWVudSBhcyBNZW51XSk7XG4gICAgICAgICAgc2V0Q3VycmVudCh7XG4gICAgICAgICAgICBuYW1lOiBjdXJyZW50TWVudS50ZXh0LFxuICAgICAgICAgICAgaW50cm86IGN1cnJlbnRNZW51LmludHJvIHx8ICcnLFxuICAgICAgICAgICAgaWNvbjogY3VycmVudE1lbnUuYXBwSWNvblVybCB8fCAnLi9hc3NldHMvdG1wL2ltZy9hdmF0YXIuanBnJ1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIGNvbnN0IGF0dHJpYnV0ZXMgPSBjdXJyZW50TWVudS5hdHRyaWJ1dGU7XG4gICAgICAgICAgaWYgKGF0dHJpYnV0ZXMpIHtcbiAgICAgICAgICAgIGNvbnN0IGF0dHI6IFl1bnphaU1lbnVBdHRyaWJ1dGUgPSBKU09OLnBhcnNlKGF0dHJpYnV0ZXMpO1xuICAgICAgICAgICAgaWYgKGF0dHIgJiYgYXR0ci5kZWZhdWx0Um91dGUpIHtcbiAgICAgICAgICAgICAgc2V0RGVmYXVsdFJvdXRlKGF0dHIuZGVmYXVsdFJvdXRlKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHNldERlZmF1bHRSb3V0ZSgnL2Rpc3BsYXlJbmRleCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzZXREZWZhdWx0Um91dGUoJy9kaXNwbGF5SW5kZXgnKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9mKHZvaWQgMCk7XG4gICAgICB9KSxcbiAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBOelNhZmVBbnkpID0+IHtcbiAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3Igb2NjdXJyZWQ6JywgZXJyb3IpO1xuICAgICAgICByZXR1cm4gb2Yodm9pZCAwKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHRva2VuKHBhcmFtPzogTG9hZFBhcmFtKTogT2JzZXJ2YWJsZTxJVG9rZW5Nb2RlbCB8IGJvb2xlYW4+IHtcbiAgICBjb25zdCBhdXRvID0gdGhpcy5jb25maWdTZXJ2aWNlLmdldCgnYXV0aCcpPy5hdXRvO1xuICAgIGNvbnN0IGZvcmNlID0gcGFyYW0/LmZvcmNlIHx8IHVuZGVmaW5lZDtcbiAgICBpZiAodGhpcy5jb25maWcubG9naW5Gb3JtKSB7XG4gICAgICBpZiAodGhpcy50b2tlblNlcnZpY2UuZ2V0KCk/LmFjY2Vzc190b2tlbiB8fCBmb3JjZSB8fCBhdXRvKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucG9zdChgL2F1dGgvb2F1dGgvdG9rZW4/X2FsbG93X2Fub255bW91cz10cnVlYCwgdGhpcy5jb25maWcubG9naW5Gb3JtKS5waXBlKFxuICAgICAgICAgIG1hcCgocmVzcG9uc2U6IE56U2FmZUFueSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICByZXR1cm4gb2YoZmFsc2UpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCB1cmkgPSBlbmNvZGVVUklDb21wb25lbnQodGhpcy53aW4ubG9jYXRpb24uaHJlZik7XG4gICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50XG4gICAgICAgIC5nZXQoYC9jYXMtcHJveHkvYXBwL3ZhbGlkYXRlX2Z1bGw/Y2FsbGJhY2s9JHt1cml9Jl9hbGxvd19hbm9ueW1vdXM9dHJ1ZSZ0aW1lc3RhbXA9JHtuZXcgRGF0ZSgpLmdldFRpbWUoKX1gKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBtYXAoKHJlc3BvbnNlOiBOelNhZmVBbnkpID0+IHtcbiAgICAgICAgICAgIHN3aXRjaCAocmVzcG9uc2UuZXJyY29kZSkge1xuICAgICAgICAgICAgICBjYXNlIDIwMDA6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlLmRhdGE7XG4gICAgICAgICAgICAgIGNhc2UgMjAwMTpcbiAgICAgICAgICAgICAgICBpZiAoIWZvcmNlICYmICFhdXRvKSB7XG4gICAgICAgICAgICAgICAgICAvLyDoh6rliqjorqTor4HkuLpmYWxzZeaDheWGteS4i+S8muWHuueOsDog5ZCO5Y+w5bey57uP5LiL57q/LOS9huaYr+eUqOaIt+i/m+WFpee9kemhteWtmOWCqOS6huS4iuasoeeahGNvb2tpZSxUb2tlbu+8jOaJgOS7pee9kemhtei/mOaYr+eZu+W9leeKtuaAgVxuICAgICAgICAgICAgICAgICAgLy8g5Zyo6L+Z6YeM5aaC5p6cMjAwMeaXtuiHquWKqOa4heeQhuWuouaIt+err+i/h+aXtueahHRva2Vu5Lul5L+d6K+B6aG16Z2i5pi+56S655m75b2V54q25oCB5q2j5bi4XG4gICAgICAgICAgICAgICAgICBsb2NhbFN0b3JhZ2UuY2xlYXIoKTtcbiAgICAgICAgICAgICAgICAgIHRoaXMudG9rZW5TZXJ2aWNlLmNsZWFyKCk7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMud2luLmxvY2F0aW9uLmhyZWYgPSByZXNwb25zZS5tc2c7XG4gICAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoXCJDb29raWUgRXJyb3I6IENhbid0IGZpbmQgQ2FzIENvb2tpZSxTbyBqdW1wIHRvIGxvZ2luIVwiKTtcbiAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2UuZGF0YSkge1xuICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihyZXNwb25zZS5kYXRhKTtcbiAgICAgICAgICAgICAgICAgIHRocm93IEVycm9yKHJlc3BvbnNlLmRhdGEpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocmVzcG9uc2UubXNnKSB7XG4gICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKHJlc3BvbnNlLm1zZyk7XG4gICAgICAgICAgICAgICAgICB0aHJvdyBFcnJvcihyZXNwb25zZS5tc2cpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCdjYXMgdW5rbm93biBlcnJvcicpO1xuICAgICAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoJ1Vua25vd24gRXJyb3I6IENhcyBhdXRoIGV4Y2VwdGlvbiEnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1hcFl6U2lkZVRvWWVsb25NZW51KG1lbnVzOiBZdW56YWlNZW51W10pOiB2b2lkIHtcbiAgbWVudXMuZm9yRWFjaCgobWVudTogTnpTYWZlQW55KSA9PiB7XG4gICAgaWYgKG1lbnUuY2hpbGRyZW4gJiYgbWVudS5oaWRlQ2hpbGRyZW4pIHtcbiAgICAgIG1lbnUuY2hpbGRyZW4uZm9yRWFjaCgoYzogTnpTYWZlQW55KSA9PiAoYy5oaWRlID0gdHJ1ZSkpO1xuICAgIH1cbiAgICBtZW51LmJhZGdlRG90ID0gbWVudS5iYWRnZV9kb3QgfHwgbnVsbDtcbiAgICBtZW51LmJhZGdlU3RhdHVzID0gbWVudS5iYWRnZV9zdGF0dXMgfHwgbnVsbDtcbiAgICBtZW51LnNob3J0Y3V0Um9vdCA9IG1lbnUuc2hvcnRjdXRfcm9vdCB8fCBudWxsO1xuICAgIG1lbnUucmV1c2UgPSB0cnVlO1xuICAgIGlmIChtZW51LmNoaWxkcmVuKSB7XG4gICAgICBtYXBZelNpZGVUb1llbG9uTWVudShtZW51LmNoaWxkcmVuKTtcbiAgICB9XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVBYmlsaXR5KG1lbnVzOiBZdW56YWlNZW51W10sIGFiaWxpdGllczogc3RyaW5nW10sIHByZWZpeDogc3RyaW5nKTogdm9pZCB7XG4gIG1lbnVzLmZvckVhY2gobWVudSA9PiB7XG4gICAgaWYgKG1lbnUubGluaykge1xuICAgICAgcHJlZml4ICs9IG1lbnUubGluaztcbiAgICB9IGVsc2Uge1xuICAgICAgcHJlZml4ICs9ICcnO1xuICAgIH1cbiAgICBpZiAobWVudS5tZW51QXV0aHMpIHtcbiAgICAgIG1lbnUubWVudUF1dGhzLmZvckVhY2goKGE6IHN0cmluZykgPT4ge1xuICAgICAgICBhYmlsaXRpZXMucHVzaChgJHtwcmVmaXh9OiR7YX1gKTtcbiAgICAgICAgYWJpbGl0aWVzLnB1c2goYSk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAobWVudS5jaGlsZHJlbikge1xuICAgICAgZ2VuZXJhdGVBYmlsaXR5KG1lbnUuY2hpbGRyZW4sIGFiaWxpdGllcywgcHJlZml4KTtcbiAgICB9XG4gIH0pO1xufVxuIl19
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
import { NgFor, NgIf, NgTemplateOutlet } from '@angular/common';
|
|
2
|
+
import { Component, inject, Input } from '@angular/core';
|
|
3
|
+
import { RouterOutlet } from '@angular/router';
|
|
4
|
+
import { YA_SERVICE_TOKEN } from '@yelon/auth';
|
|
5
|
+
import { YunzaiStartupService } from '../startup.service';
|
|
6
|
+
import { I18nPipe } from '@yelon/theme';
|
|
7
|
+
import { useLocalStorageProjectInfo, useLocalStorageUser, WINDOW, YunzaiConfigService } from '@yelon/util';
|
|
8
|
+
import { NzDropDownModule } from 'ng-zorro-antd/dropdown';
|
|
9
|
+
import { NzI18nModule } from 'ng-zorro-antd/i18n';
|
|
10
|
+
import { NzIconModule } from 'ng-zorro-antd/icon';
|
|
11
|
+
import * as i0 from "@angular/core";
|
|
12
|
+
import * as i1 from "ng-zorro-antd/menu";
|
|
13
|
+
import * as i2 from "ng-zorro-antd/dropdown";
|
|
14
|
+
import * as i3 from "ng-zorro-antd/icon";
|
|
15
|
+
export class YunzaiLayoutWebsite01Component {
|
|
16
|
+
constructor() {
|
|
17
|
+
this.logoAlt = 'logo';
|
|
18
|
+
this.slogan = '';
|
|
19
|
+
this.tokenService = inject(YA_SERVICE_TOKEN);
|
|
20
|
+
this.configService = inject(YunzaiConfigService);
|
|
21
|
+
this.startupSrv = inject(YunzaiStartupService);
|
|
22
|
+
this.win = inject(WINDOW);
|
|
23
|
+
}
|
|
24
|
+
get _logoSrc() {
|
|
25
|
+
return this.logoSrc;
|
|
26
|
+
}
|
|
27
|
+
get _logoAlt() {
|
|
28
|
+
return this.logoAlt || 'logo';
|
|
29
|
+
}
|
|
30
|
+
get _slogan() {
|
|
31
|
+
return this.slogan || '';
|
|
32
|
+
}
|
|
33
|
+
get _contentTpl() {
|
|
34
|
+
return this.contentTpl;
|
|
35
|
+
}
|
|
36
|
+
get _username() {
|
|
37
|
+
const [_, getUser] = useLocalStorageUser();
|
|
38
|
+
return getUser()?.realname || '';
|
|
39
|
+
}
|
|
40
|
+
get isLogin() {
|
|
41
|
+
const [_, getUser] = useLocalStorageUser();
|
|
42
|
+
return !!this.tokenService.get()?.access_token && !!getUser();
|
|
43
|
+
}
|
|
44
|
+
get _links() {
|
|
45
|
+
const [_, getProjectInfo] = useLocalStorageProjectInfo();
|
|
46
|
+
return getProjectInfo()?.profileList || [];
|
|
47
|
+
}
|
|
48
|
+
login() {
|
|
49
|
+
this.startupSrv.load({ force: true }).subscribe(() => { });
|
|
50
|
+
}
|
|
51
|
+
logout() {
|
|
52
|
+
const baseUrl = this.configService.get('bis')?.baseUrl || '/backstage';
|
|
53
|
+
this.win.location.href = `${baseUrl}/cas-proxy/app/logout`;
|
|
54
|
+
}
|
|
55
|
+
to(url) {
|
|
56
|
+
if (url)
|
|
57
|
+
this.win.location.href = url;
|
|
58
|
+
}
|
|
59
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: YunzaiLayoutWebsite01Component, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
60
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.6", type: YunzaiLayoutWebsite01Component, isStandalone: true, selector: "yunzai-layout-website-01", inputs: { logoSrc: "logoSrc", logoAlt: "logoAlt", slogan: "slogan", contentTpl: "contentTpl" }, ngImport: i0, template: `
|
|
61
|
+
<div class="yz-layout-website-01">
|
|
62
|
+
<div class="yz-layout-website-01-nav__user">
|
|
63
|
+
@if (isLogin) {
|
|
64
|
+
<a
|
|
65
|
+
class="yz-layout-website-01-link"
|
|
66
|
+
nz-dropdown
|
|
67
|
+
[nzDropdownMenu]="menu"
|
|
68
|
+
[nzOverlayStyle]="{ width: '120px' }"
|
|
69
|
+
>
|
|
70
|
+
<span nz-icon nzType="user" nzTheme="outline"></span>{{ _username }}<span nz-icon nzType="down"></span>
|
|
71
|
+
</a>
|
|
72
|
+
<nz-dropdown-menu #menu="nzDropdownMenu">
|
|
73
|
+
<ul nz-menu nzSelectable>
|
|
74
|
+
@for (link of _links; track $index) {
|
|
75
|
+
<li nz-menu-item class="yz-layout-website-01-link__li" (click)="to(link.url)">{{ link.name }}</li>
|
|
76
|
+
}
|
|
77
|
+
<li nz-menu-item nzDanger class="yz-layout-website-01-link__li" (click)="logout()"
|
|
78
|
+
>{{ 'menu.account.logout' | i18n }}
|
|
79
|
+
</li>
|
|
80
|
+
</ul>
|
|
81
|
+
</nz-dropdown-menu>
|
|
82
|
+
} @else {
|
|
83
|
+
<a class="yz-layout-website-01-link" (click)="login()">
|
|
84
|
+
<span nz-icon nzType="login" nzTheme="outline"></span>{{ 'app.login.login' | i18n }}</a
|
|
85
|
+
>
|
|
86
|
+
}
|
|
87
|
+
</div>
|
|
88
|
+
|
|
89
|
+
<header class="yz-layout-website-01-nav">
|
|
90
|
+
@if (_logoSrc) {
|
|
91
|
+
<img [alt]="_logoAlt" class="yz-layout-website-01-nav__logo" [src]="_logoSrc" />
|
|
92
|
+
} @else {
|
|
93
|
+
<div class="yz-layout-website-01-nav__logo__full">LOGO</div>
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
<div class="yz-layout-website-01-nav__content">
|
|
97
|
+
<ng-template *ngTemplateOutlet="_contentTpl" />
|
|
98
|
+
</div>
|
|
99
|
+
<div class="yz-layout-website-01-nav__slogan">
|
|
100
|
+
{{ _slogan }}
|
|
101
|
+
</div>
|
|
102
|
+
</header>
|
|
103
|
+
<main class="yz-layout-website-01-container">
|
|
104
|
+
<router-outlet />
|
|
105
|
+
</main>
|
|
106
|
+
</div>
|
|
107
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "pipe", type: I18nPipe, name: "i18n" }, { kind: "ngmodule", type: NzI18nModule }, { kind: "ngmodule", type: NzDropDownModule }, { kind: "directive", type: i1.NzMenuDirective, selector: "[nz-menu]", inputs: ["nzInlineIndent", "nzTheme", "nzMode", "nzInlineCollapsed", "nzSelectable"], outputs: ["nzClick"], exportAs: ["nzMenu"] }, { kind: "component", type: i1.NzMenuItemComponent, selector: "[nz-menu-item]", inputs: ["nzPaddingLeft", "nzDisabled", "nzSelected", "nzDanger", "nzMatchRouterExact", "nzMatchRouter"], exportAs: ["nzMenuItem"] }, { kind: "directive", type: i2.NzDropDownDirective, selector: "[nz-dropdown]", inputs: ["nzDropdownMenu", "nzTrigger", "nzMatchWidthElement", "nzBackdrop", "nzClickHide", "nzDisabled", "nzVisible", "nzOverlayClassName", "nzOverlayStyle", "nzPlacement"], outputs: ["nzVisibleChange"], exportAs: ["nzDropdown"] }, { kind: "directive", type: i2.NzDropDownADirective, selector: "a[nz-dropdown]" }, { kind: "component", type: i2.NzDropdownMenuComponent, selector: "nz-dropdown-menu", exportAs: ["nzDropdownMenu"] }, { kind: "ngmodule", type: NzIconModule }, { kind: "directive", type: i3.NzIconDirective, selector: "[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
|
|
108
|
+
}
|
|
109
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: YunzaiLayoutWebsite01Component, decorators: [{
|
|
110
|
+
type: Component,
|
|
111
|
+
args: [{
|
|
112
|
+
selector: 'yunzai-layout-website-01',
|
|
113
|
+
template: `
|
|
114
|
+
<div class="yz-layout-website-01">
|
|
115
|
+
<div class="yz-layout-website-01-nav__user">
|
|
116
|
+
@if (isLogin) {
|
|
117
|
+
<a
|
|
118
|
+
class="yz-layout-website-01-link"
|
|
119
|
+
nz-dropdown
|
|
120
|
+
[nzDropdownMenu]="menu"
|
|
121
|
+
[nzOverlayStyle]="{ width: '120px' }"
|
|
122
|
+
>
|
|
123
|
+
<span nz-icon nzType="user" nzTheme="outline"></span>{{ _username }}<span nz-icon nzType="down"></span>
|
|
124
|
+
</a>
|
|
125
|
+
<nz-dropdown-menu #menu="nzDropdownMenu">
|
|
126
|
+
<ul nz-menu nzSelectable>
|
|
127
|
+
@for (link of _links; track $index) {
|
|
128
|
+
<li nz-menu-item class="yz-layout-website-01-link__li" (click)="to(link.url)">{{ link.name }}</li>
|
|
129
|
+
}
|
|
130
|
+
<li nz-menu-item nzDanger class="yz-layout-website-01-link__li" (click)="logout()"
|
|
131
|
+
>{{ 'menu.account.logout' | i18n }}
|
|
132
|
+
</li>
|
|
133
|
+
</ul>
|
|
134
|
+
</nz-dropdown-menu>
|
|
135
|
+
} @else {
|
|
136
|
+
<a class="yz-layout-website-01-link" (click)="login()">
|
|
137
|
+
<span nz-icon nzType="login" nzTheme="outline"></span>{{ 'app.login.login' | i18n }}</a
|
|
138
|
+
>
|
|
139
|
+
}
|
|
140
|
+
</div>
|
|
141
|
+
|
|
142
|
+
<header class="yz-layout-website-01-nav">
|
|
143
|
+
@if (_logoSrc) {
|
|
144
|
+
<img [alt]="_logoAlt" class="yz-layout-website-01-nav__logo" [src]="_logoSrc" />
|
|
145
|
+
} @else {
|
|
146
|
+
<div class="yz-layout-website-01-nav__logo__full">LOGO</div>
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
<div class="yz-layout-website-01-nav__content">
|
|
150
|
+
<ng-template *ngTemplateOutlet="_contentTpl" />
|
|
151
|
+
</div>
|
|
152
|
+
<div class="yz-layout-website-01-nav__slogan">
|
|
153
|
+
{{ _slogan }}
|
|
154
|
+
</div>
|
|
155
|
+
</header>
|
|
156
|
+
<main class="yz-layout-website-01-container">
|
|
157
|
+
<router-outlet />
|
|
158
|
+
</main>
|
|
159
|
+
</div>
|
|
160
|
+
`,
|
|
161
|
+
standalone: true,
|
|
162
|
+
imports: [RouterOutlet, I18nPipe, NzI18nModule, NgFor, NgIf, NzDropDownModule, NzIconModule, NgTemplateOutlet]
|
|
163
|
+
}]
|
|
164
|
+
}], propDecorators: { logoSrc: [{
|
|
165
|
+
type: Input
|
|
166
|
+
}], logoAlt: [{
|
|
167
|
+
type: Input
|
|
168
|
+
}], slogan: [{
|
|
169
|
+
type: Input
|
|
170
|
+
}], contentTpl: [{
|
|
171
|
+
type: Input
|
|
172
|
+
}] } });
|
|
173
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LXdlYnNpdGUtMDEuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYmlzL3NyYy93ZWJzaXRlL2xheW91dC13ZWJzaXRlLTAxLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBZSxNQUFNLGVBQWUsQ0FBQztBQUN0RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzFELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDeEMsT0FBTyxFQUVMLDBCQUEwQixFQUMxQixtQkFBbUIsRUFDbkIsTUFBTSxFQUNOLG1CQUFtQixFQUNwQixNQUFNLGFBQWEsQ0FBQztBQUVyQixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7OztBQXVEbEQsTUFBTSxPQUFPLDhCQUE4QjtJQXJEM0M7UUF1RFcsWUFBTyxHQUFZLE1BQU0sQ0FBQztRQUMxQixXQUFNLEdBQVksRUFBRSxDQUFDO1FBR2IsaUJBQVksR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUN4QyxrQkFBYSxHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQzVDLGVBQVUsR0FBRyxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUMxQyxRQUFHLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0tBNkN2QztJQTNDQyxJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdEIsQ0FBQztJQUVELElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLE9BQU8sSUFBSSxNQUFNLENBQUM7SUFDaEMsQ0FBQztJQUVELElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBSSxTQUFTO1FBQ1gsTUFBTSxDQUFDLENBQUMsRUFBRSxPQUFPLENBQUMsR0FBRyxtQkFBbUIsRUFBRSxDQUFDO1FBQzNDLE9BQU8sT0FBTyxFQUFFLEVBQUUsUUFBUSxJQUFJLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1QsTUFBTSxDQUFDLENBQUMsRUFBRSxPQUFPLENBQUMsR0FBRyxtQkFBbUIsRUFBRSxDQUFDO1FBQzNDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxFQUFFLEVBQUUsWUFBWSxJQUFJLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNoRSxDQUFDO0lBRUQsSUFBSSxNQUFNO1FBQ1IsTUFBTSxDQUFDLENBQUMsRUFBRSxjQUFjLENBQUMsR0FBRywwQkFBMEIsRUFBRSxDQUFDO1FBQ3pELE9BQU8sY0FBYyxFQUFFLEVBQUUsV0FBVyxJQUFJLEVBQUUsQ0FBQztJQUM3QyxDQUFDO0lBRUQsS0FBSztRQUNILElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRCxNQUFNO1FBQ0osTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsT0FBTyxJQUFJLFlBQVksQ0FBQztRQUN2RSxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEdBQUcsR0FBRyxPQUFPLHVCQUF1QixDQUFDO0lBQzdELENBQUM7SUFFRCxFQUFFLENBQUMsR0FBWTtRQUNiLElBQUksR0FBRztZQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksR0FBRyxHQUFHLENBQUM7SUFDeEMsQ0FBQzs4R0FyRFUsOEJBQThCO2tHQUE5Qiw4QkFBOEIsb0xBbkQvQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0ErQ1QsNERBRVMsWUFBWSxzSkFBRSxRQUFRLDRDQUFFLFlBQVksOEJBQWUsZ0JBQWdCLDI3QkFBRSxZQUFZLGtOQUFFLGdCQUFnQjs7MkZBRWxHLDhCQUE4QjtrQkFyRDFDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLDBCQUEwQjtvQkFDcEMsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQStDVDtvQkFDRCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxZQUFZLEVBQUUsZ0JBQWdCLENBQUM7aUJBQy9HOzhCQUVVLE9BQU87c0JBQWYsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0ZvciwgTmdJZiwgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIGluamVjdCwgSW5wdXQsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXJPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgWUFfU0VSVklDRV9UT0tFTiB9IGZyb20gJ0B5ZWxvbi9hdXRoJztcbmltcG9ydCB7IFl1bnphaVN0YXJ0dXBTZXJ2aWNlIH0gZnJvbSAnLi4vc3RhcnR1cC5zZXJ2aWNlJztcbmltcG9ydCB7IEkxOG5QaXBlIH0gZnJvbSAnQHllbG9uL3RoZW1lJztcbmltcG9ydCB7XG4gIFl1bnphaVByb2ZpbGUsXG4gIHVzZUxvY2FsU3RvcmFnZVByb2plY3RJbmZvLFxuICB1c2VMb2NhbFN0b3JhZ2VVc2VyLFxuICBXSU5ET1csXG4gIFl1bnphaUNvbmZpZ1NlcnZpY2Vcbn0gZnJvbSAnQHllbG9uL3V0aWwnO1xuaW1wb3J0IHsgTnpTYWZlQW55IH0gZnJvbSAnbmctem9ycm8tYW50ZC9jb3JlL3R5cGVzJztcbmltcG9ydCB7IE56RHJvcERvd25Nb2R1bGUgfSBmcm9tICduZy16b3Jyby1hbnRkL2Ryb3Bkb3duJztcbmltcG9ydCB7IE56STE4bk1vZHVsZSB9IGZyb20gJ25nLXpvcnJvLWFudGQvaTE4bic7XG5pbXBvcnQgeyBOekljb25Nb2R1bGUgfSBmcm9tICduZy16b3Jyby1hbnRkL2ljb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd5dW56YWktbGF5b3V0LXdlYnNpdGUtMDEnLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJ5ei1sYXlvdXQtd2Vic2l0ZS0wMVwiPlxuICAgICAgPGRpdiBjbGFzcz1cInl6LWxheW91dC13ZWJzaXRlLTAxLW5hdl9fdXNlclwiPlxuICAgICAgICBAaWYgKGlzTG9naW4pIHtcbiAgICAgICAgICA8YVxuICAgICAgICAgICAgY2xhc3M9XCJ5ei1sYXlvdXQtd2Vic2l0ZS0wMS1saW5rXCJcbiAgICAgICAgICAgIG56LWRyb3Bkb3duXG4gICAgICAgICAgICBbbnpEcm9wZG93bk1lbnVdPVwibWVudVwiXG4gICAgICAgICAgICBbbnpPdmVybGF5U3R5bGVdPVwieyB3aWR0aDogJzEyMHB4JyB9XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8c3BhbiBuei1pY29uIG56VHlwZT1cInVzZXJcIiBuelRoZW1lPVwib3V0bGluZVwiPjwvc3Bhbj57eyBfdXNlcm5hbWUgfX08c3BhbiBuei1pY29uIG56VHlwZT1cImRvd25cIj48L3NwYW4+XG4gICAgICAgICAgPC9hPlxuICAgICAgICAgIDxuei1kcm9wZG93bi1tZW51ICNtZW51PVwibnpEcm9wZG93bk1lbnVcIj5cbiAgICAgICAgICAgIDx1bCBuei1tZW51IG56U2VsZWN0YWJsZT5cbiAgICAgICAgICAgICAgQGZvciAobGluayBvZiBfbGlua3M7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgICAgIDxsaSBuei1tZW51LWl0ZW0gY2xhc3M9XCJ5ei1sYXlvdXQtd2Vic2l0ZS0wMS1saW5rX19saVwiIChjbGljayk9XCJ0byhsaW5rLnVybClcIj57eyBsaW5rLm5hbWUgfX08L2xpPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDxsaSBuei1tZW51LWl0ZW0gbnpEYW5nZXIgY2xhc3M9XCJ5ei1sYXlvdXQtd2Vic2l0ZS0wMS1saW5rX19saVwiIChjbGljayk9XCJsb2dvdXQoKVwiXG4gICAgICAgICAgICAgICAgPnt7ICdtZW51LmFjY291bnQubG9nb3V0JyB8IGkxOG4gfX1cbiAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgPC9uei1kcm9wZG93bi1tZW51PlxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICA8YSBjbGFzcz1cInl6LWxheW91dC13ZWJzaXRlLTAxLWxpbmtcIiAoY2xpY2spPVwibG9naW4oKVwiPlxuICAgICAgICAgICAgPHNwYW4gbnotaWNvbiBuelR5cGU9XCJsb2dpblwiIG56VGhlbWU9XCJvdXRsaW5lXCI+PC9zcGFuPnt7ICdhcHAubG9naW4ubG9naW4nIHwgaTE4biB9fTwvYVxuICAgICAgICAgID5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxoZWFkZXIgY2xhc3M9XCJ5ei1sYXlvdXQtd2Vic2l0ZS0wMS1uYXZcIj5cbiAgICAgICAgQGlmIChfbG9nb1NyYykge1xuICAgICAgICAgIDxpbWcgW2FsdF09XCJfbG9nb0FsdFwiIGNsYXNzPVwieXotbGF5b3V0LXdlYnNpdGUtMDEtbmF2X19sb2dvXCIgW3NyY109XCJfbG9nb1NyY1wiIC8+XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ5ei1sYXlvdXQtd2Vic2l0ZS0wMS1uYXZfX2xvZ29fX2Z1bGxcIj5MT0dPPC9kaXY+XG4gICAgICAgIH1cblxuICAgICAgICA8ZGl2IGNsYXNzPVwieXotbGF5b3V0LXdlYnNpdGUtMDEtbmF2X19jb250ZW50XCI+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlICpuZ1RlbXBsYXRlT3V0bGV0PVwiX2NvbnRlbnRUcGxcIiAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInl6LWxheW91dC13ZWJzaXRlLTAxLW5hdl9fc2xvZ2FuXCI+XG4gICAgICAgICAge3sgX3Nsb2dhbiB9fVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvaGVhZGVyPlxuICAgICAgPG1haW4gY2xhc3M9XCJ5ei1sYXlvdXQtd2Vic2l0ZS0wMS1jb250YWluZXJcIj5cbiAgICAgICAgPHJvdXRlci1vdXRsZXQgLz5cbiAgICAgIDwvbWFpbj5cbiAgICA8L2Rpdj5cbiAgYCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1JvdXRlck91dGxldCwgSTE4blBpcGUsIE56STE4bk1vZHVsZSwgTmdGb3IsIE5nSWYsIE56RHJvcERvd25Nb2R1bGUsIE56SWNvbk1vZHVsZSwgTmdUZW1wbGF0ZU91dGxldF1cbn0pXG5leHBvcnQgY2xhc3MgWXVuemFpTGF5b3V0V2Vic2l0ZTAxQ29tcG9uZW50IHtcbiAgQElucHV0KCkgbG9nb1NyYz86IHN0cmluZyB8IE56U2FmZUFueTtcbiAgQElucHV0KCkgbG9nb0FsdD86IHN0cmluZyA9ICdsb2dvJztcbiAgQElucHV0KCkgc2xvZ2FuPzogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIGNvbnRlbnRUcGw/OiBUZW1wbGF0ZVJlZjx2b2lkPiB8IE56U2FmZUFueTtcblxuICBwcml2YXRlIHJlYWRvbmx5IHRva2VuU2VydmljZSA9IGluamVjdChZQV9TRVJWSUNFX1RPS0VOKTtcbiAgcHJpdmF0ZSByZWFkb25seSBjb25maWdTZXJ2aWNlID0gaW5qZWN0KFl1bnphaUNvbmZpZ1NlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IHN0YXJ0dXBTcnYgPSBpbmplY3QoWXVuemFpU3RhcnR1cFNlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IHdpbiA9IGluamVjdChXSU5ET1cpO1xuXG4gIGdldCBfbG9nb1NyYygpOiBzdHJpbmcgfCBOelNhZmVBbnkge1xuICAgIHJldHVybiB0aGlzLmxvZ29TcmM7XG4gIH1cblxuICBnZXQgX2xvZ29BbHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5sb2dvQWx0IHx8ICdsb2dvJztcbiAgfVxuXG4gIGdldCBfc2xvZ2FuKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuc2xvZ2FuIHx8ICcnO1xuICB9XG5cbiAgZ2V0IF9jb250ZW50VHBsKCk6IFRlbXBsYXRlUmVmPHZvaWQ+IHwgTnpTYWZlQW55IHtcbiAgICByZXR1cm4gdGhpcy5jb250ZW50VHBsO1xuICB9XG5cbiAgZ2V0IF91c2VybmFtZSgpOiBzdHJpbmcge1xuICAgIGNvbnN0IFtfLCBnZXRVc2VyXSA9IHVzZUxvY2FsU3RvcmFnZVVzZXIoKTtcbiAgICByZXR1cm4gZ2V0VXNlcigpPy5yZWFsbmFtZSB8fCAnJztcbiAgfVxuXG4gIGdldCBpc0xvZ2luKCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IFtfLCBnZXRVc2VyXSA9IHVzZUxvY2FsU3RvcmFnZVVzZXIoKTtcbiAgICByZXR1cm4gISF0aGlzLnRva2VuU2VydmljZS5nZXQoKT8uYWNjZXNzX3Rva2VuICYmICEhZ2V0VXNlcigpO1xuICB9XG5cbiAgZ2V0IF9saW5rcygpOiBZdW56YWlQcm9maWxlW10ge1xuICAgIGNvbnN0IFtfLCBnZXRQcm9qZWN0SW5mb10gPSB1c2VMb2NhbFN0b3JhZ2VQcm9qZWN0SW5mbygpO1xuICAgIHJldHVybiBnZXRQcm9qZWN0SW5mbygpPy5wcm9maWxlTGlzdCB8fCBbXTtcbiAgfVxuXG4gIGxvZ2luKCk6IHZvaWQge1xuICAgIHRoaXMuc3RhcnR1cFNydi5sb2FkKHsgZm9yY2U6IHRydWUgfSkuc3Vic2NyaWJlKCgpID0+IHt9KTtcbiAgfVxuXG4gIGxvZ291dCgpOiB2b2lkIHtcbiAgICBjb25zdCBiYXNlVXJsID0gdGhpcy5jb25maWdTZXJ2aWNlLmdldCgnYmlzJyk/LmJhc2VVcmwgfHwgJy9iYWNrc3RhZ2UnO1xuICAgIHRoaXMud2luLmxvY2F0aW9uLmhyZWYgPSBgJHtiYXNlVXJsfS9jYXMtcHJveHkvYXBwL2xvZ291dGA7XG4gIH1cblxuICB0byh1cmw/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAodXJsKSB0aGlzLndpbi5sb2NhdGlvbi5ocmVmID0gdXJsO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
import { NgFor, NgIf, NgTemplateOutlet } from '@angular/common';
|
|
2
|
+
import { Component, inject, Input } from '@angular/core';
|
|
3
|
+
import { RouterOutlet } from '@angular/router';
|
|
4
|
+
import { YA_SERVICE_TOKEN } from '@yelon/auth';
|
|
5
|
+
import { YunzaiStartupService } from '../startup.service';
|
|
6
|
+
import { I18nPipe } from '@yelon/theme';
|
|
7
|
+
import { useLocalStorageProjectInfo, useLocalStorageUser, WINDOW, YunzaiConfigService } from '@yelon/util';
|
|
8
|
+
import { NzAvatarModule } from 'ng-zorro-antd/avatar';
|
|
9
|
+
import { NzDropDownModule } from 'ng-zorro-antd/dropdown';
|
|
10
|
+
import { NzI18nModule } from 'ng-zorro-antd/i18n';
|
|
11
|
+
import { NzIconModule } from 'ng-zorro-antd/icon';
|
|
12
|
+
import * as i0 from "@angular/core";
|
|
13
|
+
import * as i1 from "ng-zorro-antd/menu";
|
|
14
|
+
import * as i2 from "ng-zorro-antd/dropdown";
|
|
15
|
+
import * as i3 from "ng-zorro-antd/icon";
|
|
16
|
+
import * as i4 from "ng-zorro-antd/avatar";
|
|
17
|
+
export class YunzaiLayoutWebsite02Component {
|
|
18
|
+
constructor() {
|
|
19
|
+
this.logoAlt = 'logo';
|
|
20
|
+
this.userMenuShow = false;
|
|
21
|
+
this.tokenService = inject(YA_SERVICE_TOKEN);
|
|
22
|
+
this.configService = inject(YunzaiConfigService);
|
|
23
|
+
this.startupSrv = inject(YunzaiStartupService);
|
|
24
|
+
this.win = inject(WINDOW);
|
|
25
|
+
}
|
|
26
|
+
get _logoSrc() {
|
|
27
|
+
return this.logoSrc;
|
|
28
|
+
}
|
|
29
|
+
get _logoAlt() {
|
|
30
|
+
return this.logoAlt || 'logo';
|
|
31
|
+
}
|
|
32
|
+
get _userMenuShow() {
|
|
33
|
+
return this.userMenuShow || false;
|
|
34
|
+
}
|
|
35
|
+
get _slogan() {
|
|
36
|
+
return this.slogan;
|
|
37
|
+
}
|
|
38
|
+
get _contentTpl() {
|
|
39
|
+
return this.contentTpl;
|
|
40
|
+
}
|
|
41
|
+
get _username() {
|
|
42
|
+
const [_, getUser] = useLocalStorageUser();
|
|
43
|
+
return getUser()?.realname || '';
|
|
44
|
+
}
|
|
45
|
+
get _avatar() {
|
|
46
|
+
const [_, getUser] = useLocalStorageUser();
|
|
47
|
+
const baseUrl = this.configService.get('bis')?.baseUrl || '/backstage';
|
|
48
|
+
const avatarUrl = getUser()?.avatarId ? `${baseUrl}/filecenter/file/${getUser()?.avatarId}` : undefined;
|
|
49
|
+
return avatarUrl;
|
|
50
|
+
}
|
|
51
|
+
get isLogin() {
|
|
52
|
+
const [_, getUser] = useLocalStorageUser();
|
|
53
|
+
return !!this.tokenService.get()?.access_token && !!getUser();
|
|
54
|
+
}
|
|
55
|
+
get _links() {
|
|
56
|
+
const [_, getProjectInfo] = useLocalStorageProjectInfo();
|
|
57
|
+
return getProjectInfo()?.profileList || [];
|
|
58
|
+
}
|
|
59
|
+
login() {
|
|
60
|
+
this.startupSrv.load({ force: true }).subscribe(() => { });
|
|
61
|
+
}
|
|
62
|
+
logout() {
|
|
63
|
+
const baseUrl = this.configService.get('bis')?.baseUrl || '/backstage';
|
|
64
|
+
this.win.location.href = `${baseUrl}/cas-proxy/app/logout`;
|
|
65
|
+
}
|
|
66
|
+
to(url) {
|
|
67
|
+
if (url)
|
|
68
|
+
this.win.location.href = url;
|
|
69
|
+
}
|
|
70
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: YunzaiLayoutWebsite02Component, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
71
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.6", type: YunzaiLayoutWebsite02Component, isStandalone: true, selector: "yunzai-layout-website-02", inputs: { logoSrc: "logoSrc", logoAlt: "logoAlt", userMenuShow: "userMenuShow", slogan: "slogan", contentTpl: "contentTpl" }, ngImport: i0, template: `
|
|
72
|
+
<div class="yz-layout-website-02">
|
|
73
|
+
<header class="yz-layout-website-02-nav">
|
|
74
|
+
<div class="yz-layout-website-02-inner-content">
|
|
75
|
+
@if (_logoSrc) {
|
|
76
|
+
<img [alt]="_logoAlt" class="yz-layout-website-02-nav__logo" [src]="_logoSrc" />
|
|
77
|
+
} @else {
|
|
78
|
+
<div class="yz-layout-website-02-nav__logo__full">LOGO</div>
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
<div class="yz-layout-website-02-nav__content">
|
|
82
|
+
<ng-template *ngTemplateOutlet="_contentTpl" />
|
|
83
|
+
</div>
|
|
84
|
+
|
|
85
|
+
<div class="yz-layout-website-02-nav-right">
|
|
86
|
+
<div class="yz-layout-website-02-nav__slogan">
|
|
87
|
+
<ng-template *ngTemplateOutlet="_slogan" />
|
|
88
|
+
</div>
|
|
89
|
+
@if (isLogin) {
|
|
90
|
+
<a
|
|
91
|
+
class="yz-layout-website-02-link"
|
|
92
|
+
nz-dropdown
|
|
93
|
+
[nzDropdownMenu]="menu"
|
|
94
|
+
[nzDisabled]="!_userMenuShow"
|
|
95
|
+
[nzPlacement]="'bottomRight'"
|
|
96
|
+
>
|
|
97
|
+
<nz-avatar nzIcon="user" [nzSrc]="_avatar" /><b>欢迎访问:{{ _username }}</b>
|
|
98
|
+
<span nz-icon nzType="down" *ngIf="_userMenuShow"></span>
|
|
99
|
+
</a>
|
|
100
|
+
<nz-dropdown-menu #menu="nzDropdownMenu">
|
|
101
|
+
<ul nz-menu nzSelectable>
|
|
102
|
+
@for (link of _links; track $index) {
|
|
103
|
+
<li nz-menu-item class="yz-layout-website-02-link__li" (click)="to(link.url)">{{ link.name }}</li>
|
|
104
|
+
}
|
|
105
|
+
<li nz-menu-item nzDanger class="yz-layout-website-02-link__li" (click)="logout()">{{
|
|
106
|
+
'menu.account.logout' | i18n
|
|
107
|
+
}}</li>
|
|
108
|
+
</ul>
|
|
109
|
+
</nz-dropdown-menu>
|
|
110
|
+
} @else {
|
|
111
|
+
<a class="yz-layout-website-02-link" (click)="login()">
|
|
112
|
+
<span nz-icon nzType="login" nzTheme="outline"></span>{{ 'app.login.login' | i18n }}</a
|
|
113
|
+
>
|
|
114
|
+
}
|
|
115
|
+
</div>
|
|
116
|
+
</div>
|
|
117
|
+
</header>
|
|
118
|
+
<main class="yz-layout-website-02-container">
|
|
119
|
+
<router-outlet />
|
|
120
|
+
</main>
|
|
121
|
+
</div>
|
|
122
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "pipe", type: I18nPipe, name: "i18n" }, { kind: "ngmodule", type: NzI18nModule }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: NzDropDownModule }, { kind: "directive", type: i1.NzMenuDirective, selector: "[nz-menu]", inputs: ["nzInlineIndent", "nzTheme", "nzMode", "nzInlineCollapsed", "nzSelectable"], outputs: ["nzClick"], exportAs: ["nzMenu"] }, { kind: "component", type: i1.NzMenuItemComponent, selector: "[nz-menu-item]", inputs: ["nzPaddingLeft", "nzDisabled", "nzSelected", "nzDanger", "nzMatchRouterExact", "nzMatchRouter"], exportAs: ["nzMenuItem"] }, { kind: "directive", type: i2.NzDropDownDirective, selector: "[nz-dropdown]", inputs: ["nzDropdownMenu", "nzTrigger", "nzMatchWidthElement", "nzBackdrop", "nzClickHide", "nzDisabled", "nzVisible", "nzOverlayClassName", "nzOverlayStyle", "nzPlacement"], outputs: ["nzVisibleChange"], exportAs: ["nzDropdown"] }, { kind: "directive", type: i2.NzDropDownADirective, selector: "a[nz-dropdown]" }, { kind: "component", type: i2.NzDropdownMenuComponent, selector: "nz-dropdown-menu", exportAs: ["nzDropdownMenu"] }, { kind: "ngmodule", type: NzIconModule }, { kind: "directive", type: i3.NzIconDirective, selector: "[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: NzAvatarModule }, { kind: "component", type: i4.NzAvatarComponent, selector: "nz-avatar", inputs: ["nzShape", "nzSize", "nzGap", "nzText", "nzSrc", "nzSrcSet", "nzAlt", "nzIcon"], outputs: ["nzError"], exportAs: ["nzAvatar"] }] }); }
|
|
123
|
+
}
|
|
124
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: YunzaiLayoutWebsite02Component, decorators: [{
|
|
125
|
+
type: Component,
|
|
126
|
+
args: [{
|
|
127
|
+
selector: 'yunzai-layout-website-02',
|
|
128
|
+
template: `
|
|
129
|
+
<div class="yz-layout-website-02">
|
|
130
|
+
<header class="yz-layout-website-02-nav">
|
|
131
|
+
<div class="yz-layout-website-02-inner-content">
|
|
132
|
+
@if (_logoSrc) {
|
|
133
|
+
<img [alt]="_logoAlt" class="yz-layout-website-02-nav__logo" [src]="_logoSrc" />
|
|
134
|
+
} @else {
|
|
135
|
+
<div class="yz-layout-website-02-nav__logo__full">LOGO</div>
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
<div class="yz-layout-website-02-nav__content">
|
|
139
|
+
<ng-template *ngTemplateOutlet="_contentTpl" />
|
|
140
|
+
</div>
|
|
141
|
+
|
|
142
|
+
<div class="yz-layout-website-02-nav-right">
|
|
143
|
+
<div class="yz-layout-website-02-nav__slogan">
|
|
144
|
+
<ng-template *ngTemplateOutlet="_slogan" />
|
|
145
|
+
</div>
|
|
146
|
+
@if (isLogin) {
|
|
147
|
+
<a
|
|
148
|
+
class="yz-layout-website-02-link"
|
|
149
|
+
nz-dropdown
|
|
150
|
+
[nzDropdownMenu]="menu"
|
|
151
|
+
[nzDisabled]="!_userMenuShow"
|
|
152
|
+
[nzPlacement]="'bottomRight'"
|
|
153
|
+
>
|
|
154
|
+
<nz-avatar nzIcon="user" [nzSrc]="_avatar" /><b>欢迎访问:{{ _username }}</b>
|
|
155
|
+
<span nz-icon nzType="down" *ngIf="_userMenuShow"></span>
|
|
156
|
+
</a>
|
|
157
|
+
<nz-dropdown-menu #menu="nzDropdownMenu">
|
|
158
|
+
<ul nz-menu nzSelectable>
|
|
159
|
+
@for (link of _links; track $index) {
|
|
160
|
+
<li nz-menu-item class="yz-layout-website-02-link__li" (click)="to(link.url)">{{ link.name }}</li>
|
|
161
|
+
}
|
|
162
|
+
<li nz-menu-item nzDanger class="yz-layout-website-02-link__li" (click)="logout()">{{
|
|
163
|
+
'menu.account.logout' | i18n
|
|
164
|
+
}}</li>
|
|
165
|
+
</ul>
|
|
166
|
+
</nz-dropdown-menu>
|
|
167
|
+
} @else {
|
|
168
|
+
<a class="yz-layout-website-02-link" (click)="login()">
|
|
169
|
+
<span nz-icon nzType="login" nzTheme="outline"></span>{{ 'app.login.login' | i18n }}</a
|
|
170
|
+
>
|
|
171
|
+
}
|
|
172
|
+
</div>
|
|
173
|
+
</div>
|
|
174
|
+
</header>
|
|
175
|
+
<main class="yz-layout-website-02-container">
|
|
176
|
+
<router-outlet />
|
|
177
|
+
</main>
|
|
178
|
+
</div>
|
|
179
|
+
`,
|
|
180
|
+
standalone: true,
|
|
181
|
+
imports: [
|
|
182
|
+
RouterOutlet,
|
|
183
|
+
I18nPipe,
|
|
184
|
+
NzI18nModule,
|
|
185
|
+
NgFor,
|
|
186
|
+
NgIf,
|
|
187
|
+
NzDropDownModule,
|
|
188
|
+
NzIconModule,
|
|
189
|
+
NgTemplateOutlet,
|
|
190
|
+
NzAvatarModule
|
|
191
|
+
]
|
|
192
|
+
}]
|
|
193
|
+
}], propDecorators: { logoSrc: [{
|
|
194
|
+
type: Input
|
|
195
|
+
}], logoAlt: [{
|
|
196
|
+
type: Input
|
|
197
|
+
}], userMenuShow: [{
|
|
198
|
+
type: Input
|
|
199
|
+
}], slogan: [{
|
|
200
|
+
type: Input
|
|
201
|
+
}], contentTpl: [{
|
|
202
|
+
type: Input
|
|
203
|
+
}] } });
|
|
204
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LXdlYnNpdGUtMDIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYmlzL3NyYy93ZWJzaXRlL2xheW91dC13ZWJzaXRlLTAyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBZSxNQUFNLGVBQWUsQ0FBQztBQUN0RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzFELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDeEMsT0FBTyxFQUNMLDBCQUEwQixFQUMxQixtQkFBbUIsRUFDbkIsTUFBTSxFQUNOLG1CQUFtQixFQUVwQixNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFdEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7Ozs7O0FBcUVsRCxNQUFNLE9BQU8sOEJBQThCO0lBbkUzQztRQXFFVyxZQUFPLEdBQVksTUFBTSxDQUFDO1FBQzFCLGlCQUFZLEdBQWEsS0FBSyxDQUFDO1FBSXZCLGlCQUFZLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDeEMsa0JBQWEsR0FBRyxNQUFNLENBQUMsbUJBQW1CLENB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LFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBbURUO29CQUNELFVBQVUsRUFBRSxJQUFJO29CQUNoQixPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixRQUFRO3dCQUNSLFlBQVk7d0JBQ1osS0FBSzt3QkFDTCxJQUFJO3dCQUNKLGdCQUFnQjt3QkFDaEIsWUFBWTt3QkFDWixnQkFBZ0I7d0JBQ2hCLGNBQWM7cUJBQ2Y7aUJBQ0Y7OEJBRVUsT0FBTztzQkFBZixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdGb3IsIE5nSWYsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBpbmplY3QsIElucHV0LCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFlBX1NFUlZJQ0VfVE9LRU4gfSBmcm9tICdAeWVsb24vYXV0aCc7XG5pbXBvcnQgeyBZdW56YWlTdGFydHVwU2VydmljZSB9IGZyb20gJy4uL3N0YXJ0dXAuc2VydmljZSc7XG5pbXBvcnQgeyBJMThuUGlwZSB9IGZyb20gJ0B5ZWxvbi90aGVtZSc7XG5pbXBvcnQge1xuICB1c2VMb2NhbFN0b3JhZ2VQcm9qZWN0SW5mbyxcbiAgdXNlTG9jYWxTdG9yYWdlVXNlcixcbiAgV0lORE9XLFxuICBZdW56YWlDb25maWdTZXJ2aWNlLFxuICBZdW56YWlQcm9maWxlXG59IGZyb20gJ0B5ZWxvbi91dGlsJztcbmltcG9ydCB7IE56QXZhdGFyTW9kdWxlIH0gZnJvbSAnbmctem9ycm8tYW50ZC9hdmF0YXInO1xuaW1wb3J0IHsgTnpTYWZlQW55IH0gZnJvbSAnbmctem9ycm8tYW50ZC9jb3JlL3R5cGVzJztcbmltcG9ydCB7IE56RHJvcERvd25Nb2R1bGUgfSBmcm9tICduZy16b3Jyby1hbnRkL2Ryb3Bkb3duJztcbmltcG9ydCB7IE56STE4bk1vZHVsZSB9IGZyb20gJ25nLXpvcnJvLWFudGQvaTE4bic7XG5pbXBvcnQgeyBOekljb25Nb2R1bGUgfSBmcm9tICduZy16b3Jyby1hbnRkL2ljb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd5dW56YWktbGF5b3V0LXdlYnNpdGUtMDInLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJ5ei1sYXlvdXQtd2Vic2l0ZS0wMlwiPlxuICAgICAgPGhlYWRlciBjbGFzcz1cInl6LWxheW91dC13ZWJzaXRlLTAyLW5hdlwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwieXotbGF5b3V0LXdlYnNpdGUtMDItaW5uZXItY29udGVudFwiPlxuICAgICAgICAgIEBpZiAoX2xvZ29TcmMpIHtcbiAgICAgICAgICAgIDxpbWcgW2FsdF09XCJfbG9nb0FsdFwiIGNsYXNzPVwieXotbGF5b3V0LXdlYnNpdGUtMDItbmF2X19sb2dvXCIgW3NyY109XCJfbG9nb1NyY1wiIC8+XG4gICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwieXotbGF5b3V0LXdlYnNpdGUtMDItbmF2X19sb2dvX19mdWxsXCI+TE9HTzwvZGl2PlxuICAgICAgICAgIH1cblxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ5ei1sYXlvdXQtd2Vic2l0ZS0wMi1uYXZfX2NvbnRlbnRcIj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAqbmdUZW1wbGF0ZU91dGxldD1cIl9jb250ZW50VHBsXCIgLz5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ5ei1sYXlvdXQtd2Vic2l0ZS0wMi1uYXYtcmlnaHRcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ5ei1sYXlvdXQtd2Vic2l0ZS0wMi1uYXZfX3Nsb2dhblwiPlxuICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgKm5nVGVtcGxhdGVPdXRsZXQ9XCJfc2xvZ2FuXCIgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgQGlmIChpc0xvZ2luKSB7XG4gICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ5ei1sYXlvdXQtd2Vic2l0ZS0wMi1saW5rXCJcbiAgICAgICAgICAgICAgICBuei1kcm9wZG93blxuICAgICAgICAgICAgICAgIFtuekRyb3Bkb3duTWVudV09XCJtZW51XCJcbiAgICAgICAgICAgICAgICBbbnpEaXNhYmxlZF09XCIhX3VzZXJNZW51U2hvd1wiXG4gICAgICAgICAgICAgICAgW256UGxhY2VtZW50XT1cIidib3R0b21SaWdodCdcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPG56LWF2YXRhciBuekljb249XCJ1c2VyXCIgW256U3JjXT1cIl9hdmF0YXJcIiAvPjxiPuasoui/juiuv+mXru+8mnt7IF91c2VybmFtZSB9fTwvYj5cbiAgICAgICAgICAgICAgICA8c3BhbiBuei1pY29uIG56VHlwZT1cImRvd25cIiAqbmdJZj1cIl91c2VyTWVudVNob3dcIj48L3NwYW4+XG4gICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgPG56LWRyb3Bkb3duLW1lbnUgI21lbnU9XCJuekRyb3Bkb3duTWVudVwiPlxuICAgICAgICAgICAgICAgIDx1bCBuei1tZW51IG56U2VsZWN0YWJsZT5cbiAgICAgICAgICAgICAgICAgIEBmb3IgKGxpbmsgb2YgX2xpbmtzOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICAgICAgICAgICAgPGxpIG56LW1lbnUtaXRlbSBjbGFzcz1cInl6LWxheW91dC13ZWJzaXRlLTAyLWxpbmtfX2xpXCIgKGNsaWNrKT1cInRvKGxpbmsudXJsKVwiPnt7IGxpbmsubmFtZSB9fTwvbGk+XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICA8bGkgbnotbWVudS1pdGVtIG56RGFuZ2VyIGNsYXNzPVwieXotbGF5b3V0LXdlYnNpdGUtMDItbGlua19fbGlcIiAoY2xpY2spPVwibG9nb3V0KClcIj57e1xuICAgICAgICAgICAgICAgICAgICAnbWVudS5hY2NvdW50LmxvZ291dCcgfCBpMThuXG4gICAgICAgICAgICAgICAgICB9fTwvbGk+XG4gICAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgICAgPC9uei1kcm9wZG93bi1tZW51PlxuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgIDxhIGNsYXNzPVwieXotbGF5b3V0LXdlYnNpdGUtMDItbGlua1wiIChjbGljayk9XCJsb2dpbigpXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gbnotaWNvbiBuelR5cGU9XCJsb2dpblwiIG56VGhlbWU9XCJvdXRsaW5lXCI+PC9zcGFuPnt7ICdhcHAubG9naW4ubG9naW4nIHwgaTE4biB9fTwvYVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9oZWFkZXI+XG4gICAgICA8bWFpbiBjbGFzcz1cInl6LWxheW91dC13ZWJzaXRlLTAyLWNvbnRhaW5lclwiPlxuICAgICAgICA8cm91dGVyLW91dGxldCAvPlxuICAgICAgPC9tYWluPlxuICAgIDwvZGl2PlxuICBgLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgUm91dGVyT3V0bGV0LFxuICAgIEkxOG5QaXBlLFxuICAgIE56STE4bk1vZHVsZSxcbiAgICBOZ0ZvcixcbiAgICBOZ0lmLFxuICAgIE56RHJvcERvd25Nb2R1bGUsXG4gICAgTnpJY29uTW9kdWxlLFxuICAgIE5nVGVtcGxhdGVPdXRsZXQsXG4gICAgTnpBdmF0YXJNb2R1bGVcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBZdW56YWlMYXlvdXRXZWJzaXRlMDJDb21wb25lbnQge1xuICBASW5wdXQoKSBsb2dvU3JjPzogc3RyaW5nIHwgTnpTYWZlQW55O1xuICBASW5wdXQoKSBsb2dvQWx0Pzogc3RyaW5nID0gJ2xvZ28nO1xuICBASW5wdXQoKSB1c2VyTWVudVNob3c/OiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNsb2dhbj86IFRlbXBsYXRlUmVmPHZvaWQ+IHwgTnpTYWZlQW55O1xuICBASW5wdXQoKSBjb250ZW50VHBsPzogVGVtcGxhdGVSZWY8dm9pZD4gfCBOelNhZmVBbnk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSB0b2tlblNlcnZpY2UgPSBpbmplY3QoWUFfU0VSVklDRV9UT0tFTik7XG4gIHByaXZhdGUgcmVhZG9ubHkgY29uZmlnU2VydmljZSA9IGluamVjdChZdW56YWlDb25maWdTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBzdGFydHVwU3J2ID0gaW5qZWN0KFl1bnphaVN0YXJ0dXBTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSB3aW4gPSBpbmplY3QoV0lORE9XKTtcblxuICBnZXQgX2xvZ29TcmMoKTogc3RyaW5nIHwgTnpTYWZlQW55IHtcbiAgICByZXR1cm4gdGhpcy5sb2dvU3JjO1xuICB9XG5cbiAgZ2V0IF9sb2dvQWx0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMubG9nb0FsdCB8fCAnbG9nbyc7XG4gIH1cblxuICBnZXQgX3VzZXJNZW51U2hvdygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy51c2VyTWVudVNob3cgfHwgZmFsc2U7XG4gIH1cblxuICBnZXQgX3Nsb2dhbigpOiBUZW1wbGF0ZVJlZjx2b2lkPiB8IE56U2FmZUFueSB7XG4gICAgcmV0dXJuIHRoaXMuc2xvZ2FuO1xuICB9XG5cbiAgZ2V0IF9jb250ZW50VHBsKCk6IFRlbXBsYXRlUmVmPHZvaWQ+IHwgTnpTYWZlQW55IHtcbiAgICByZXR1cm4gdGhpcy5jb250ZW50VHBsO1xuICB9XG5cbiAgZ2V0IF91c2VybmFtZSgpOiBzdHJpbmcge1xuICAgIGNvbnN0IFtfLCBnZXRVc2VyXSA9IHVzZUxvY2FsU3RvcmFnZVVzZXIoKTtcbiAgICByZXR1cm4gZ2V0VXNlcigpPy5yZWFsbmFtZSB8fCAnJztcbiAgfVxuXG4gIGdldCBfYXZhdGFyKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgW18sIGdldFVzZXJdID0gdXNlTG9jYWxTdG9yYWdlVXNlcigpO1xuICAgIGNvbnN0IGJhc2VVcmw6IHN0cmluZyA9IHRoaXMuY29uZmlnU2VydmljZS5nZXQoJ2JpcycpPy5iYXNlVXJsIHx8ICcvYmFja3N0YWdlJztcbiAgICBjb25zdCBhdmF0YXJVcmwgPSBnZXRVc2VyKCk/LmF2YXRhcklkID8gYCR7YmFzZVVybH0vZmlsZWNlbnRlci9maWxlLyR7Z2V0VXNlcigpPy5hdmF0YXJJZH1gIDogdW5kZWZpbmVkO1xuICAgIHJldHVybiBhdmF0YXJVcmw7XG4gIH1cblxuICBnZXQgaXNMb2dpbigpOiBib29sZWFuIHtcbiAgICBjb25zdCBbXywgZ2V0VXNlcl0gPSB1c2VMb2NhbFN0b3JhZ2VVc2VyKCk7XG4gICAgcmV0dXJuICEhdGhpcy50b2tlblNlcnZpY2UuZ2V0KCk/LmFjY2Vzc190b2tlbiAmJiAhIWdldFVzZXIoKTtcbiAgfVxuXG4gIGdldCBfbGlua3MoKTogWXVuemFpUHJvZmlsZVtdIHtcbiAgICBjb25zdCBbXywgZ2V0UHJvamVjdEluZm9dID0gdXNlTG9jYWxTdG9yYWdlUHJvamVjdEluZm8oKTtcbiAgICByZXR1cm4gZ2V0UHJvamVjdEluZm8oKT8ucHJvZmlsZUxpc3QgfHwgW107XG4gIH1cblxuICBsb2dpbigpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXJ0dXBTcnYubG9hZCh7IGZvcmNlOiB0cnVlIH0pLnN1YnNjcmliZSgoKSA9PiB7fSk7XG4gIH1cblxuICBsb2dvdXQoKTogdm9pZCB7XG4gICAgY29uc3QgYmFzZVVybCA9IHRoaXMuY29uZmlnU2VydmljZS5nZXQoJ2JpcycpPy5iYXNlVXJsIHx8ICcvYmFja3N0YWdlJztcbiAgICB0aGlzLndpbi5sb2NhdGlvbi5ocmVmID0gYCR7YmFzZVVybH0vY2FzLXByb3h5L2FwcC9sb2dvdXRgO1xuICB9XG5cbiAgdG8odXJsPzogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKHVybCkgdGhpcy53aW4ubG9jYXRpb24uaHJlZiA9IHVybDtcbiAgfVxufVxuIl19
|