@yelon/bis 17.3.2 → 18.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -21
- package/README.md +1 -1
- package/config/bis.config.d.ts +3 -3
- package/config/index.d.ts +5 -5
- package/config/public_api.d.ts +1 -1
- package/esm2022/bis.mjs +4 -4
- package/esm2022/config/bis.config.mjs +14 -14
- package/esm2022/config/config.mjs +4 -4
- package/esm2022/config/public_api.mjs +1 -1
- package/esm2022/layout/layout-basic.component.mjs +518 -508
- package/esm2022/layout/layout-nav-application.component.mjs +372 -372
- package/esm2022/layout/layout-nav-group.component.mjs +166 -162
- package/esm2022/layout/layout-nav-tile.component.mjs +14 -14
- package/esm2022/layout/layout.mjs +4 -4
- package/esm2022/layout/layout.module.mjs +53 -53
- package/esm2022/layout/public_api.mjs +5 -5
- package/esm2022/public_api.mjs +8 -8
- package/esm2022/src/bis.module.mjs +16 -16
- package/esm2022/src/helper.mjs +44 -44
- package/esm2022/src/provide.mjs +7 -7
- package/esm2022/src/refresh-token.mjs +78 -78
- package/esm2022/src/startup.service.mjs +183 -183
- package/esm2022/src/yunzai-act.guard.mjs +87 -87
- package/esm2022/src/yunzai-analysis-addon.guard.mjs +98 -98
- package/esm2022/src/yunzai-default.interceptor.mjs +62 -62
- package/esm2022/yunzai-widgets/public_api.mjs +6 -6
- package/esm2022/yunzai-widgets/yunzai-clear-storage.component.mjs +46 -46
- package/esm2022/yunzai-widgets/yunzai-fullscreen.component.mjs +46 -46
- package/esm2022/yunzai-widgets/yunzai-i18n.component.mjs +138 -138
- package/esm2022/yunzai-widgets/yunzai-notify.component.mjs +179 -179
- package/esm2022/yunzai-widgets/yunzai-user.component.mjs +119 -119
- package/esm2022/yunzai-widgets/yunzai-widget.module.mjs +61 -61
- package/esm2022/yunzai-widgets/yunzai-widgets.mjs +4 -4
- package/fesm2022/bis.mjs +559 -559
- package/fesm2022/config.mjs +21 -21
- package/fesm2022/layout.mjs +1097 -1083
- package/fesm2022/layout.mjs.map +1 -1
- package/fesm2022/yunzai-widgets.mjs +563 -563
- package/index.d.ts +5 -5
- package/index.less +1 -1
- package/layout/index.d.ts +5 -5
- package/layout/layout-basic.component.d.ts +54 -54
- package/layout/layout-nav-application.component.d.ts +26 -26
- package/layout/layout-nav-group.component.d.ts +14 -14
- package/layout/layout-nav-tile.component.d.ts +5 -5
- package/layout/layout.module.d.ts +18 -18
- package/layout/public_api.d.ts +5 -5
- package/layout/style/index.less +181 -182
- package/package.json +68 -68
- package/public_api.d.ts +8 -8
- package/src/bis.module.d.ts +8 -8
- package/src/helper.d.ts +16 -16
- package/src/provide.d.ts +2 -2
- package/src/refresh-token.d.ts +6 -6
- package/src/startup.service.d.ts +24 -24
- package/src/yunzai-act.guard.d.ts +20 -20
- package/src/yunzai-analysis-addon.guard.d.ts +26 -26
- package/src/yunzai-default.interceptor.d.ts +2 -2
- package/theme-compact.less +3 -3
- package/theme-dark.less +46 -46
- package/theme-default.less +48 -48
- package/theme-variable.less +1 -0
- package/yunzai-widgets/index.d.ts +5 -5
- package/yunzai-widgets/public_api.d.ts +6 -6
- package/yunzai-widgets/yunzai-clear-storage.component.d.ts +8 -8
- package/yunzai-widgets/yunzai-fullscreen.component.d.ts +8 -8
- package/yunzai-widgets/yunzai-i18n.component.d.ts +19 -19
- package/yunzai-widgets/yunzai-notify.component.d.ts +25 -25
- package/yunzai-widgets/yunzai-user.component.d.ts +22 -22
- package/yunzai-widgets/yunzai-widget.module.d.ts +18 -18
|
@@ -1,184 +1,184 @@
|
|
|
1
|
-
import { HttpClient } from '@angular/common/http';
|
|
2
|
-
import { APP_INITIALIZER, inject, Injectable } from '@angular/core';
|
|
3
|
-
import { combineLatest, map, mergeMap, of } from 'rxjs';
|
|
4
|
-
import { ACLService } from '@yelon/acl';
|
|
5
|
-
import { YA_SERVICE_TOKEN } from '@yelon/auth';
|
|
6
|
-
import { mergeBisConfig } from '@yelon/bis/config';
|
|
7
|
-
import { MenuService, SettingsService, TitleService, YUNZAI_I18N_TOKEN } from '@yelon/theme';
|
|
8
|
-
import { deepCopy, useLocalStorageCurrent, useLocalStorageDefaultRoute, useLocalStorageHeader, useLocalStorageProjectInfo, useLocalStorageTenant, useLocalStorageUser, WINDOW, YunzaiConfigService } from '@yelon/util';
|
|
9
|
-
import * as i0 from "@angular/core";
|
|
10
|
-
export function provideYunzaiStartup() {
|
|
11
|
-
return [
|
|
12
|
-
YunzaiStartupService,
|
|
13
|
-
{
|
|
14
|
-
provide: APP_INITIALIZER,
|
|
15
|
-
useFactory: (startupService) => () => startupService.load(),
|
|
16
|
-
deps: [YunzaiStartupService],
|
|
17
|
-
multi: true
|
|
18
|
-
}
|
|
19
|
-
];
|
|
20
|
-
}
|
|
21
|
-
export class YunzaiStartupService {
|
|
22
|
-
constructor() {
|
|
23
|
-
this.config = mergeBisConfig(inject(YunzaiConfigService));
|
|
24
|
-
this.menuService = inject(MenuService);
|
|
25
|
-
this.aclService = inject(ACLService);
|
|
26
|
-
this.titleService = inject(TitleService);
|
|
27
|
-
this.tokenService = inject(YA_SERVICE_TOKEN);
|
|
28
|
-
this.httpClient = inject(HttpClient);
|
|
29
|
-
this.settingService = inject(SettingsService);
|
|
30
|
-
this.i18n = inject(YUNZAI_I18N_TOKEN);
|
|
31
|
-
this.win = inject(WINDOW);
|
|
32
|
-
this.configService = inject(YunzaiConfigService);
|
|
33
|
-
}
|
|
34
|
-
load() {
|
|
35
|
-
let defaultLang = this.settingService.layout.lang || this.i18n.defaultLang;
|
|
36
|
-
const [setTenant] = useLocalStorageTenant();
|
|
37
|
-
const [setUser, getUser] = useLocalStorageUser();
|
|
38
|
-
const [setHeader] = useLocalStorageHeader();
|
|
39
|
-
const [setProject] = useLocalStorageProjectInfo();
|
|
40
|
-
const [setDefaultRoute] = useLocalStorageDefaultRoute();
|
|
41
|
-
const [setCurrent] = useLocalStorageCurrent();
|
|
42
|
-
return this.token().pipe(mergeMap((token) => {
|
|
43
|
-
this.configService.set('auth', {
|
|
44
|
-
token_send_key: 'Authorization',
|
|
45
|
-
token_send_template: `${token.token_type} \${access_token}`,
|
|
46
|
-
token_send_place: 'header'
|
|
47
|
-
});
|
|
48
|
-
this.tokenService.set(token);
|
|
49
|
-
return of(void 0);
|
|
50
|
-
}), mergeMap(() => {
|
|
51
|
-
return combineLatest([
|
|
52
|
-
this.httpClient.get(`/auth/user`),
|
|
53
|
-
this.httpClient.get(`/auth/allheader/v2`),
|
|
54
|
-
this.httpClient.get(`/app-manager/project/info`)
|
|
55
|
-
]).pipe(map(([user, header, project]) => {
|
|
56
|
-
setUser(user.principal);
|
|
57
|
-
setTenant(user.tenantId);
|
|
58
|
-
setHeader(header.data);
|
|
59
|
-
setProject(project.data);
|
|
60
|
-
return void 0;
|
|
61
|
-
}));
|
|
62
|
-
}), mergeMap(() => {
|
|
63
|
-
return this.i18n.loadLangData(defaultLang).pipe(map((langData) => {
|
|
64
|
-
this.i18n.use(defaultLang, langData);
|
|
65
|
-
return void 0;
|
|
66
|
-
}));
|
|
67
|
-
}), mergeMap(() => {
|
|
68
|
-
const yunzaiUser = getUser();
|
|
69
|
-
const yunzaiMenus = deepCopy(yunzaiUser.menu).filter(m => m.systemCode && m.systemCode === this.config.systemCode);
|
|
70
|
-
const currentMenu = yunzaiMenus.pop();
|
|
71
|
-
if (currentMenu) {
|
|
72
|
-
this.settingService.setApp({ name: currentMenu.text, description: currentMenu.intro });
|
|
73
|
-
this.settingService.setUser({
|
|
74
|
-
name: yunzaiUser.realname,
|
|
75
|
-
avatar: `${this.config.baseUrl}/filecenter/file/${yunzaiUser.avatarId}` || '',
|
|
76
|
-
email: yunzaiUser.email
|
|
77
|
-
});
|
|
78
|
-
this.titleService.default = currentMenu && currentMenu.text ? currentMenu.text : 'default application name';
|
|
79
|
-
this.titleService.setTitle(currentMenu && currentMenu.text ? currentMenu.text : 'no title');
|
|
80
|
-
const abilities = [];
|
|
81
|
-
generateAbility([currentMenu], abilities, '');
|
|
82
|
-
this.aclService.attachRole(yunzaiUser?.roles
|
|
83
|
-
.map((role) => {
|
|
84
|
-
return role.roleValue;
|
|
85
|
-
})
|
|
86
|
-
.filter((a) => !!a) || []);
|
|
87
|
-
this.aclService.attachAbility(abilities);
|
|
88
|
-
this.menuService.add([currentMenu]);
|
|
89
|
-
setCurrent({
|
|
90
|
-
name: currentMenu.text,
|
|
91
|
-
intro: currentMenu.intro || '',
|
|
92
|
-
icon: currentMenu.appIconUrl || './assets/tmp/img/avatar.jpg'
|
|
93
|
-
});
|
|
94
|
-
const attributes = currentMenu.attribute;
|
|
95
|
-
if (attributes) {
|
|
96
|
-
const attr = JSON.parse(attributes);
|
|
97
|
-
if (attr && attr.defaultRoute) {
|
|
98
|
-
setDefaultRoute(attr.defaultRoute);
|
|
99
|
-
}
|
|
100
|
-
else {
|
|
101
|
-
setDefaultRoute('/displayIndex');
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
else {
|
|
105
|
-
setDefaultRoute('/displayIndex');
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
return of(void 0);
|
|
109
|
-
}));
|
|
110
|
-
}
|
|
111
|
-
token() {
|
|
112
|
-
if (this.config.loginForm) {
|
|
113
|
-
return this.httpClient.post(`/auth/oauth/token?_allow_anonymous=true`, this.config.loginForm).pipe(map((response) => {
|
|
114
|
-
return response;
|
|
115
|
-
}));
|
|
116
|
-
}
|
|
117
|
-
else {
|
|
118
|
-
const uri = encodeURIComponent(this.win.location.href);
|
|
119
|
-
return this.httpClient
|
|
120
|
-
.get(`/cas-proxy/app/validate_full?callback=${uri}&_allow_anonymous=true×tamp=${new Date().getTime()}`)
|
|
121
|
-
.pipe(map((response) => {
|
|
122
|
-
switch (response.errcode) {
|
|
123
|
-
case 2000:
|
|
124
|
-
return response.data;
|
|
125
|
-
case 2001:
|
|
126
|
-
this.win.location.href = response.msg;
|
|
127
|
-
throw Error("Cookie Error: Can't find Cas Cookie,So jump to login!");
|
|
128
|
-
default:
|
|
129
|
-
if (response.data) {
|
|
130
|
-
console.error(response.data);
|
|
131
|
-
throw Error(response.data);
|
|
132
|
-
}
|
|
133
|
-
else if (response.msg) {
|
|
134
|
-
console.error(response.msg);
|
|
135
|
-
throw Error(response.msg);
|
|
136
|
-
}
|
|
137
|
-
else {
|
|
138
|
-
console.error('cas unknown error');
|
|
139
|
-
throw Error('Unknown Error: Cas auth exception!');
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
}));
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
146
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
147
|
-
}
|
|
148
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
149
|
-
type: Injectable
|
|
150
|
-
}] });
|
|
151
|
-
export function mapYzSideToYelonMenu(menus) {
|
|
152
|
-
menus.forEach(menu => {
|
|
153
|
-
if (menu.children && menu.hideChildren) {
|
|
154
|
-
menu.children.forEach(c => (c.hide = true));
|
|
155
|
-
}
|
|
156
|
-
menu.badgeDot = menu.badge_dot || null;
|
|
157
|
-
menu.badgeStatus = menu.badge_status || null;
|
|
158
|
-
menu.shortcutRoot = menu.shortcut_root || null;
|
|
159
|
-
menu.reuse = true;
|
|
160
|
-
if (menu.children) {
|
|
161
|
-
mapYzSideToYelonMenu(menu.children);
|
|
162
|
-
}
|
|
163
|
-
});
|
|
164
|
-
}
|
|
165
|
-
export function generateAbility(menus, abilities, prefix) {
|
|
166
|
-
menus.forEach(menu => {
|
|
167
|
-
if (menu.link) {
|
|
168
|
-
prefix += menu.link;
|
|
169
|
-
}
|
|
170
|
-
else {
|
|
171
|
-
prefix += '';
|
|
172
|
-
}
|
|
173
|
-
if (menu.menuAuths) {
|
|
174
|
-
menu.menuAuths.forEach((a) => {
|
|
175
|
-
abilities.push(`${prefix}:${a}`);
|
|
176
|
-
abilities.push(a);
|
|
177
|
-
});
|
|
178
|
-
}
|
|
179
|
-
if (menu.children) {
|
|
180
|
-
generateAbility(menu.children, abilities, prefix);
|
|
181
|
-
}
|
|
182
|
-
});
|
|
183
|
-
}
|
|
1
|
+
import { HttpClient } from '@angular/common/http';
|
|
2
|
+
import { APP_INITIALIZER, inject, Injectable } from '@angular/core';
|
|
3
|
+
import { combineLatest, map, mergeMap, of } from 'rxjs';
|
|
4
|
+
import { ACLService } from '@yelon/acl';
|
|
5
|
+
import { YA_SERVICE_TOKEN } from '@yelon/auth';
|
|
6
|
+
import { mergeBisConfig } from '@yelon/bis/config';
|
|
7
|
+
import { MenuService, SettingsService, TitleService, YUNZAI_I18N_TOKEN } from '@yelon/theme';
|
|
8
|
+
import { deepCopy, useLocalStorageCurrent, useLocalStorageDefaultRoute, useLocalStorageHeader, useLocalStorageProjectInfo, useLocalStorageTenant, useLocalStorageUser, WINDOW, YunzaiConfigService } from '@yelon/util';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
export function provideYunzaiStartup() {
|
|
11
|
+
return [
|
|
12
|
+
YunzaiStartupService,
|
|
13
|
+
{
|
|
14
|
+
provide: APP_INITIALIZER,
|
|
15
|
+
useFactory: (startupService) => () => startupService.load(),
|
|
16
|
+
deps: [YunzaiStartupService],
|
|
17
|
+
multi: true
|
|
18
|
+
}
|
|
19
|
+
];
|
|
20
|
+
}
|
|
21
|
+
export class YunzaiStartupService {
|
|
22
|
+
constructor() {
|
|
23
|
+
this.config = mergeBisConfig(inject(YunzaiConfigService));
|
|
24
|
+
this.menuService = inject(MenuService);
|
|
25
|
+
this.aclService = inject(ACLService);
|
|
26
|
+
this.titleService = inject(TitleService);
|
|
27
|
+
this.tokenService = inject(YA_SERVICE_TOKEN);
|
|
28
|
+
this.httpClient = inject(HttpClient);
|
|
29
|
+
this.settingService = inject(SettingsService);
|
|
30
|
+
this.i18n = inject(YUNZAI_I18N_TOKEN);
|
|
31
|
+
this.win = inject(WINDOW);
|
|
32
|
+
this.configService = inject(YunzaiConfigService);
|
|
33
|
+
}
|
|
34
|
+
load() {
|
|
35
|
+
let defaultLang = this.settingService.layout.lang || this.i18n.defaultLang;
|
|
36
|
+
const [setTenant] = useLocalStorageTenant();
|
|
37
|
+
const [setUser, getUser] = useLocalStorageUser();
|
|
38
|
+
const [setHeader] = useLocalStorageHeader();
|
|
39
|
+
const [setProject] = useLocalStorageProjectInfo();
|
|
40
|
+
const [setDefaultRoute] = useLocalStorageDefaultRoute();
|
|
41
|
+
const [setCurrent] = useLocalStorageCurrent();
|
|
42
|
+
return this.token().pipe(mergeMap((token) => {
|
|
43
|
+
this.configService.set('auth', {
|
|
44
|
+
token_send_key: 'Authorization',
|
|
45
|
+
token_send_template: `${token.token_type} \${access_token}`,
|
|
46
|
+
token_send_place: 'header'
|
|
47
|
+
});
|
|
48
|
+
this.tokenService.set(token);
|
|
49
|
+
return of(void 0);
|
|
50
|
+
}), mergeMap(() => {
|
|
51
|
+
return combineLatest([
|
|
52
|
+
this.httpClient.get(`/auth/user`),
|
|
53
|
+
this.httpClient.get(`/auth/allheader/v2`),
|
|
54
|
+
this.httpClient.get(`/app-manager/project/info`)
|
|
55
|
+
]).pipe(map(([user, header, project]) => {
|
|
56
|
+
setUser(user.principal);
|
|
57
|
+
setTenant(user.tenantId);
|
|
58
|
+
setHeader(header.data);
|
|
59
|
+
setProject(project.data);
|
|
60
|
+
return void 0;
|
|
61
|
+
}));
|
|
62
|
+
}), mergeMap(() => {
|
|
63
|
+
return this.i18n.loadLangData(defaultLang).pipe(map((langData) => {
|
|
64
|
+
this.i18n.use(defaultLang, langData);
|
|
65
|
+
return void 0;
|
|
66
|
+
}));
|
|
67
|
+
}), mergeMap(() => {
|
|
68
|
+
const yunzaiUser = getUser();
|
|
69
|
+
const yunzaiMenus = deepCopy(yunzaiUser.menu).filter(m => m.systemCode && m.systemCode === this.config.systemCode);
|
|
70
|
+
const currentMenu = yunzaiMenus.pop();
|
|
71
|
+
if (currentMenu) {
|
|
72
|
+
this.settingService.setApp({ name: currentMenu.text, description: currentMenu.intro });
|
|
73
|
+
this.settingService.setUser({
|
|
74
|
+
name: yunzaiUser.realname,
|
|
75
|
+
avatar: `${this.config.baseUrl}/filecenter/file/${yunzaiUser.avatarId}` || '',
|
|
76
|
+
email: yunzaiUser.email
|
|
77
|
+
});
|
|
78
|
+
this.titleService.default = currentMenu && currentMenu.text ? currentMenu.text : 'default application name';
|
|
79
|
+
this.titleService.setTitle(currentMenu && currentMenu.text ? currentMenu.text : 'no title');
|
|
80
|
+
const abilities = [];
|
|
81
|
+
generateAbility([currentMenu], abilities, '');
|
|
82
|
+
this.aclService.attachRole(yunzaiUser?.roles
|
|
83
|
+
.map((role) => {
|
|
84
|
+
return role.roleValue;
|
|
85
|
+
})
|
|
86
|
+
.filter((a) => !!a) || []);
|
|
87
|
+
this.aclService.attachAbility(abilities);
|
|
88
|
+
this.menuService.add([currentMenu]);
|
|
89
|
+
setCurrent({
|
|
90
|
+
name: currentMenu.text,
|
|
91
|
+
intro: currentMenu.intro || '',
|
|
92
|
+
icon: currentMenu.appIconUrl || './assets/tmp/img/avatar.jpg'
|
|
93
|
+
});
|
|
94
|
+
const attributes = currentMenu.attribute;
|
|
95
|
+
if (attributes) {
|
|
96
|
+
const attr = JSON.parse(attributes);
|
|
97
|
+
if (attr && attr.defaultRoute) {
|
|
98
|
+
setDefaultRoute(attr.defaultRoute);
|
|
99
|
+
}
|
|
100
|
+
else {
|
|
101
|
+
setDefaultRoute('/displayIndex');
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
setDefaultRoute('/displayIndex');
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
return of(void 0);
|
|
109
|
+
}));
|
|
110
|
+
}
|
|
111
|
+
token() {
|
|
112
|
+
if (this.config.loginForm) {
|
|
113
|
+
return this.httpClient.post(`/auth/oauth/token?_allow_anonymous=true`, this.config.loginForm).pipe(map((response) => {
|
|
114
|
+
return response;
|
|
115
|
+
}));
|
|
116
|
+
}
|
|
117
|
+
else {
|
|
118
|
+
const uri = encodeURIComponent(this.win.location.href);
|
|
119
|
+
return this.httpClient
|
|
120
|
+
.get(`/cas-proxy/app/validate_full?callback=${uri}&_allow_anonymous=true×tamp=${new Date().getTime()}`)
|
|
121
|
+
.pipe(map((response) => {
|
|
122
|
+
switch (response.errcode) {
|
|
123
|
+
case 2000:
|
|
124
|
+
return response.data;
|
|
125
|
+
case 2001:
|
|
126
|
+
this.win.location.href = response.msg;
|
|
127
|
+
throw Error("Cookie Error: Can't find Cas Cookie,So jump to login!");
|
|
128
|
+
default:
|
|
129
|
+
if (response.data) {
|
|
130
|
+
console.error(response.data);
|
|
131
|
+
throw Error(response.data);
|
|
132
|
+
}
|
|
133
|
+
else if (response.msg) {
|
|
134
|
+
console.error(response.msg);
|
|
135
|
+
throw Error(response.msg);
|
|
136
|
+
}
|
|
137
|
+
else {
|
|
138
|
+
console.error('cas unknown error');
|
|
139
|
+
throw Error('Unknown Error: Cas auth exception!');
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
}));
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: YunzaiStartupService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
146
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: YunzaiStartupService }); }
|
|
147
|
+
}
|
|
148
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: YunzaiStartupService, decorators: [{
|
|
149
|
+
type: Injectable
|
|
150
|
+
}] });
|
|
151
|
+
export function mapYzSideToYelonMenu(menus) {
|
|
152
|
+
menus.forEach(menu => {
|
|
153
|
+
if (menu.children && menu.hideChildren) {
|
|
154
|
+
menu.children.forEach(c => (c.hide = true));
|
|
155
|
+
}
|
|
156
|
+
menu.badgeDot = menu.badge_dot || null;
|
|
157
|
+
menu.badgeStatus = menu.badge_status || null;
|
|
158
|
+
menu.shortcutRoot = menu.shortcut_root || null;
|
|
159
|
+
menu.reuse = true;
|
|
160
|
+
if (menu.children) {
|
|
161
|
+
mapYzSideToYelonMenu(menu.children);
|
|
162
|
+
}
|
|
163
|
+
});
|
|
164
|
+
}
|
|
165
|
+
export function generateAbility(menus, abilities, prefix) {
|
|
166
|
+
menus.forEach(menu => {
|
|
167
|
+
if (menu.link) {
|
|
168
|
+
prefix += menu.link;
|
|
169
|
+
}
|
|
170
|
+
else {
|
|
171
|
+
prefix += '';
|
|
172
|
+
}
|
|
173
|
+
if (menu.menuAuths) {
|
|
174
|
+
menu.menuAuths.forEach((a) => {
|
|
175
|
+
abilities.push(`${prefix}:${a}`);
|
|
176
|
+
abilities.push(a);
|
|
177
|
+
});
|
|
178
|
+
}
|
|
179
|
+
if (menu.children) {
|
|
180
|
+
generateAbility(menu.children, abilities, prefix);
|
|
181
|
+
}
|
|
182
|
+
});
|
|
183
|
+
}
|
|
184
184
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcnR1cC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYmlzL3NyYy9zdGFydHVwLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUM5RSxPQUFPLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXBFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDeEMsT0FBTyxFQUFlLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBRUwsV0FBVyxFQUNYLGVBQWUsRUFDZixZQUFZLEVBQ1osaUJBQWlCLEVBRWxCLE1BQU0sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sRUFDTCxRQUFRLEVBQ1Isc0JBQXNCLEVBQ3RCLDJCQUEyQixFQUMzQixxQkFBcUIsRUFDckIsMEJBQTBCLEVBQzFCLHFCQUFxQixFQUNyQixtQkFBbUIsRUFDbkIsTUFBTSxFQUNOLG1CQUFtQixFQUdwQixNQUFNLGFBQWEsQ0FBQzs7QUFHckIsTUFBTSxVQUFVLG9CQUFvQjtJQUNsQyxPQUFPO1FBQ0wsb0JBQW9CO1FBQ3BCO1lBQ0UsT0FBTyxFQUFFLGVBQWU7WUFDeEIsVUFBVSxFQUFFLENBQUMsY0FBb0MsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRTtZQUNqRixJQUFJLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQztZQUM1QixLQUFLLEVBQUUsSUFBSTtTQUNaO0tBQ0YsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFN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LFlBQVksR0FBRyxJQUFJLENBQUMsYUFBYSxJQUFJLElBQUksQ0FBQztRQUMvQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUNsQixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNsQixvQkFBb0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDdEMsQ0FBQztJQUNILENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVELE1BQU0sVUFBVSxlQUFlLENBQUMsS0FBbUIsRUFBRSxTQUFtQixFQUFFLE1BQWM7SUFDdEYsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtRQUNuQixJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNkLE1BQU0sSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ3RCLENBQUM7YUFBTSxDQUFDO1lBQ04sTUFBTSxJQUFJLEVBQUUsQ0FBQztRQUNmLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNuQixJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQVMsRUFBRSxFQUFFO2dCQUNuQyxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsTUFBTSxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ2pDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDcEIsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbEIsZUFBZSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3BELENBQUM7SUFDSCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgQVBQX0lOSVRJQUxJWkVSLCBpbmplY3QsIEluamVjdGFibGUsIFByb3ZpZGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBtYXAsIG1lcmdlTWFwLCBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBBQ0xTZXJ2aWNlIH0gZnJvbSAnQHllbG9uL2FjbCc7XG5pbXBvcnQgeyBJVG9rZW5Nb2RlbCwgWUFfU0VSVklDRV9UT0tFTiB9IGZyb20gJ0B5ZWxvbi9hdXRoJztcbmltcG9ydCB7IG1lcmdlQmlzQ29uZmlnIH0gZnJvbSAnQHllbG9uL2Jpcy9jb25maWcnO1xuaW1wb3J0IHtcbiAgTWVudSxcbiAgTWVudVNlcnZpY2UsXG4gIFNldHRpbmdzU2VydmljZSxcbiAgVGl0bGVTZXJ2aWNlLFxuICBZVU5aQUlfSTE4Tl9UT0tFTixcbiAgWXVuemFpSHR0cEkxOE5TZXJ2aWNlXG59IGZyb20gJ0B5ZWxvbi90aGVtZSc7XG5pbXBvcnQge1xuICBkZWVwQ29weSxcbiAgdXNlTG9jYWxTdG9yYWdlQ3VycmVudCxcbiAgdXNlTG9jYWxTdG9yYWdlRGVmYXVsdFJvdXRlLFxuICB1c2VMb2NhbFN0b3JhZ2VIZWFkZXIsXG4gIHVzZUxvY2FsU3RvcmFnZVByb2plY3RJbmZvLFxuICB1c2VMb2NhbFN0b3JhZ2VUZW5hbnQsXG4gIHVzZUxvY2FsU3RvcmFnZVVzZXIsXG4gIFdJTkRPVyxcbiAgWXVuemFpQ29uZmlnU2VydmljZSxcbiAgWXVuemFpTWVudSxcbiAgWXVuemFpTWVudUF0dHJpYnV0ZVxufSBmcm9tICdAeWVsb24vdXRpbCc7XG5pbXBvcnQgeyBOelNhZmVBbnkgfSBmcm9tICduZy16b3Jyby1hbnRkL2NvcmUvdHlwZXMnO1xuXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZVl1bnphaVN0YXJ0dXAoKTogUHJvdmlkZXJbXSB7XG4gIHJldHVybiBbXG4gICAgWXVuemFpU3RhcnR1cFNlcnZpY2UsXG4gICAge1xuICAgICAgcHJvdmlkZTogQVBQX0lOSVRJQUxJWkVSLFxuICAgICAgdXNlRmFjdG9yeTogKHN0YXJ0dXBTZXJ2aWNlOiBZdW56YWlTdGFydHVwU2VydmljZSkgPT4gKCkgPT4gc3RhcnR1cFNlcnZpY2UubG9hZCgpLFxuICAgICAgZGVwczogW1l1bnphaVN0YXJ0dXBTZXJ2aWNlXSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdO1xufVxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFl1bnphaVN0YXJ0dXBTZXJ2aWNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBjb25maWcgPSBtZXJnZUJpc0NvbmZpZyhpbmplY3QoWXVuemFpQ29uZmlnU2VydmljZSkpO1xuICBwcml2YXRlIHJlYWRvbmx5IG1lbnVTZXJ2aWNlID0gaW5qZWN0KE1lbnVTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBhY2xTZXJ2aWNlID0gaW5qZWN0KEFDTFNlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IHRpdGxlU2VydmljZSA9IGluamVjdChUaXRsZVNlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IHRva2VuU2VydmljZSA9IGluamVjdChZQV9TRVJWSUNFX1RPS0VOKTtcbiAgcHJpdmF0ZSByZWFkb25seSBodHRwQ2xpZW50ID0gaW5qZWN0KEh0dHBDbGllbnQpO1xuICBwcml2YXRlIHJlYWRvbmx5IHNldHRpbmdTZXJ2aWNlID0gaW5qZWN0KFNldHRpbmdzU2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgaTE4biA9IGluamVjdDxZdW56YWlIdHRwSTE4TlNlcnZpY2U+KFlVTlpBSV9JMThOX1RPS0VOKTtcbiAgcHJpdmF0ZSByZWFkb25seSB3aW4gPSBpbmplY3QoV0lORE9XKTtcbiAgcHJpdmF0ZSByZWFkb25seSBjb25maWdTZXJ2aWNlID0gaW5qZWN0KFl1bnphaUNvbmZpZ1NlcnZpY2UpO1xuXG4gIGxvYWQoKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgbGV0IGRlZmF1bHRMYW5nOiBzdHJpbmcgPSB0aGlzLnNldHRpbmdTZXJ2aWNlLmxheW91dC5sYW5nIHx8IHRoaXMuaTE4bi5kZWZhdWx0TGFuZztcbiAgICBjb25zdCBbc2V0VGVuYW50XSA9IHVzZUxvY2FsU3RvcmFnZVRlbmFudCgpO1xuICAgIGNvbnN0IFtzZXRVc2VyLCBnZXRVc2VyXSA9IHVzZUxvY2FsU3RvcmFnZVVzZXIoKTtcbiAgICBjb25zdCBbc2V0SGVhZGVyXSA9IHVzZUxvY2FsU3RvcmFnZUhlYWRlcigpO1xuICAgIGNvbnN0IFtzZXRQcm9qZWN0XSA9IHVzZUxvY2FsU3RvcmFnZVByb2plY3RJbmZvKCk7XG4gICAgY29uc3QgW3NldERlZmF1bHRSb3V0ZV0gPSB1c2VMb2NhbFN0b3JhZ2VEZWZhdWx0Um91dGUoKTtcbiAgICBjb25zdCBbc2V0Q3VycmVudF0gPSB1c2VMb2NhbFN0b3JhZ2VDdXJyZW50KCk7XG4gICAgcmV0dXJuIHRoaXMudG9rZW4oKS5waXBlKFxuICAgICAgbWVyZ2VNYXAoKHRva2VuOiBJVG9rZW5Nb2RlbCkgPT4ge1xuICAgICAgICB0aGlzLmNvbmZpZ1NlcnZpY2Uuc2V0KCdhdXRoJywge1xuICAgICAgICAgIHRva2VuX3NlbmRfa2V5OiAnQXV0aG9yaXphdGlvbicsXG4gICAgICAgICAgdG9rZW5fc2VuZF90ZW1wbGF0ZTogYCR7dG9rZW4udG9rZW5fdHlwZX0gXFwke2FjY2Vzc190b2tlbn1gLFxuICAgICAgICAgIHRva2VuX3NlbmRfcGxhY2U6ICdoZWFkZXInXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnRva2VuU2VydmljZS5zZXQodG9rZW4pO1xuICAgICAgICByZXR1cm4gb2Yodm9pZCAwKTtcbiAgICAgIH0pLFxuICAgICAgbWVyZ2VNYXAoKCkgPT4ge1xuICAgICAgICByZXR1cm4gY29tYmluZUxhdGVzdChbXG4gICAgICAgICAgdGhpcy5odHRwQ2xpZW50LmdldChgL2F1dGgvdXNlcmApLFxuICAgICAgICAgIHRoaXMuaHR0cENsaWVudC5nZXQoYC9hdXRoL2FsbGhlYWRlci92MmApLFxuICAgICAgICAgIHRoaXMuaHR0cENsaWVudC5nZXQoYC9hcHAtbWFuYWdlci9wcm9qZWN0L2luZm9gKVxuICAgICAgICBdKS5waXBlKFxuICAgICAgICAgIG1hcCgoW3VzZXIsIGhlYWRlciwgcHJvamVjdF06IE56U2FmZUFueSkgPT4ge1xuICAgICAgICAgICAgc2V0VXNlcih1c2VyLnByaW5jaXBhbCk7XG4gICAgICAgICAgICBzZXRUZW5hbnQodXNlci50ZW5hbnRJZCk7XG4gICAgICAgICAgICBzZXRIZWFkZXIoaGVhZGVyLmRhdGEpO1xuICAgICAgICAgICAgc2V0UHJvamVjdChwcm9qZWN0LmRhdGEpO1xuICAgICAgICAgICAgcmV0dXJuIHZvaWQgMDtcbiAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgfSksXG4gICAgICBtZXJnZU1hcCgoKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmkxOG4ubG9hZExhbmdEYXRhKGRlZmF1bHRMYW5nKS5waXBlKFxuICAgICAgICAgIG1hcCgobGFuZ0RhdGE6IE56U2FmZUFueSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5pMThuLnVzZShkZWZhdWx0TGFuZywgbGFuZ0RhdGEpO1xuICAgICAgICAgICAgcmV0dXJuIHZvaWQgMDtcbiAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgfSksXG4gICAgICBtZXJnZU1hcCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IHl1bnphaVVzZXIgPSBnZXRVc2VyKCkhO1xuICAgICAgICBjb25zdCB5dW56YWlNZW51czogWXVuemFpTWVudVtdID0gZGVlcENvcHkoeXVuemFpVXNlci5tZW51KS5maWx0ZXIoXG4gICAgICAgICAgbSA9PiBtLnN5c3RlbUNvZGUgJiYgbS5zeXN0ZW1Db2RlID09PSB0aGlzLmNvbmZpZy5zeXN0ZW1Db2RlXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRNZW51ID0geXVuemFpTWVudXMucG9wKCk7XG4gICAgICAgIGlmIChjdXJyZW50TWVudSkge1xuICAgICAgICAgIHRoaXMuc2V0dGluZ1NlcnZpY2Uuc2V0QXBwKHsgbmFtZTogY3VycmVudE1lbnUudGV4dCwgZGVzY3JpcHRpb246IGN1cnJlbnRNZW51LmludHJvIH0pO1xuICAgICAgICAgIHRoaXMuc2V0dGluZ1NlcnZpY2Uuc2V0VXNlcih7XG4gICAgICAgICAgICBuYW1lOiB5dW56YWlVc2VyLnJlYWxuYW1lLFxuICAgICAgICAgICAgYXZhdGFyOiBgJHt0aGlzLmNvbmZpZy5iYXNlVXJsfS9maWxlY2VudGVyL2ZpbGUvJHt5dW56YWlVc2VyLmF2YXRhcklkfWAgfHwgJycsXG4gICAgICAgICAgICBlbWFpbDogeXVuemFpVXNlci5lbWFpbFxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHRoaXMudGl0bGVTZXJ2aWNlLmRlZmF1bHQgPSBjdXJyZW50TWVudSAmJiBjdXJyZW50TWVudS50ZXh0ID8gY3VycmVudE1lbnUudGV4dCA6ICdkZWZhdWx0IGFwcGxpY2F0aW9uIG5hbWUnO1xuICAgICAgICAgIHRoaXMudGl0bGVTZXJ2aWNlLnNldFRpdGxlKGN1cnJlbnRNZW51ICYmIGN1cnJlbnRNZW51LnRleHQgPyBjdXJyZW50TWVudS50ZXh0IDogJ25vIHRpdGxlJyk7XG4gICAgICAgICAgY29uc3QgYWJpbGl0aWVzOiBzdHJpbmdbXSA9IFtdO1xuICAgICAgICAgIGdlbmVyYXRlQWJpbGl0eShbY3VycmVudE1lbnVdLCBhYmlsaXRpZXMsICcnKTtcbiAgICAgICAgICB0aGlzLmFjbFNlcnZpY2UuYXR0YWNoUm9sZShcbiAgICAgICAgICAgIHl1bnphaVVzZXI/LnJvbGVzXG4gICAgICAgICAgICAgIC5tYXAoKHJvbGU6IE56U2FmZUFueSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiByb2xlLnJvbGVWYWx1ZTtcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgLmZpbHRlcigoYTogTnpTYWZlQW55KSA9PiAhIWEpIHx8IFtdXG4gICAgICAgICAgKTtcbiAgICAgICAgICB0aGlzLmFjbFNlcnZpY2UuYXR0YWNoQWJpbGl0eShhYmlsaXRpZXMpO1xuICAgICAgICAgIHRoaXMubWVudVNlcnZpY2UuYWRkKFtjdXJyZW50TWVudSBhcyBNZW51XSk7XG4gICAgICAgICAgc2V0Q3VycmVudCh7XG4gICAgICAgICAgICBuYW1lOiBjdXJyZW50TWVudS50ZXh0LFxuICAgICAgICAgICAgaW50cm86IGN1cnJlbnRNZW51LmludHJvIHx8ICcnLFxuICAgICAgICAgICAgaWNvbjogY3VycmVudE1lbnUuYXBwSWNvblVybCB8fCAnLi9hc3NldHMvdG1wL2ltZy9hdmF0YXIuanBnJ1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIGNvbnN0IGF0dHJpYnV0ZXMgPSBjdXJyZW50TWVudS5hdHRyaWJ1dGU7XG4gICAgICAgICAgaWYgKGF0dHJpYnV0ZXMpIHtcbiAgICAgICAgICAgIGNvbnN0IGF0dHI6IFl1bnphaU1lbnVBdHRyaWJ1dGUgPSBKU09OLnBhcnNlKGF0dHJpYnV0ZXMpO1xuICAgICAgICAgICAgaWYgKGF0dHIgJiYgYXR0ci5kZWZhdWx0Um91dGUpIHtcbiAgICAgICAgICAgICAgc2V0RGVmYXVsdFJvdXRlKGF0dHIuZGVmYXVsdFJvdXRlKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHNldERlZmF1bHRSb3V0ZSgnL2Rpc3BsYXlJbmRleCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzZXREZWZhdWx0Um91dGUoJy9kaXNwbGF5SW5kZXgnKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9mKHZvaWQgMCk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICB0b2tlbigpOiBPYnNlcnZhYmxlPElUb2tlbk1vZGVsPiB7XG4gICAgaWYgKHRoaXMuY29uZmlnLmxvZ2luRm9ybSkge1xuICAgICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5wb3N0KGAvYXV0aC9vYXV0aC90b2tlbj9fYWxsb3dfYW5vbnltb3VzPXRydWVgLCB0aGlzLmNvbmZpZy5sb2dpbkZvcm0pLnBpcGUoXG4gICAgICAgIG1hcCgocmVzcG9uc2U6IE56U2FmZUFueSkgPT4ge1xuICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHVyaSA9IGVuY29kZVVSSUNvbXBvbmVudCh0aGlzLndpbi5sb2NhdGlvbi5ocmVmKTtcbiAgICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnRcbiAgICAgICAgLmdldChgL2Nhcy1wcm94eS9hcHAvdmFsaWRhdGVfZnVsbD9jYWxsYmFjaz0ke3VyaX0mX2FsbG93X2Fub255bW91cz10cnVlJnRpbWVzdGFtcD0ke25ldyBEYXRlKCkuZ2V0VGltZSgpfWApXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIG1hcCgocmVzcG9uc2U6IE56U2FmZUFueSkgPT4ge1xuICAgICAgICAgICAgc3dpdGNoIChyZXNwb25zZS5lcnJjb2RlKSB7XG4gICAgICAgICAgICAgIGNhc2UgMjAwMDpcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YTtcbiAgICAgICAgICAgICAgY2FzZSAyMDAxOlxuICAgICAgICAgICAgICAgIHRoaXMud2luLmxvY2F0aW9uLmhyZWYgPSByZXNwb25zZS5tc2c7XG4gICAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoXCJDb29raWUgRXJyb3I6IENhbid0IGZpbmQgQ2FzIENvb2tpZSxTbyBqdW1wIHRvIGxvZ2luIVwiKTtcbiAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2UuZGF0YSkge1xuICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihyZXNwb25zZS5kYXRhKTtcbiAgICAgICAgICAgICAgICAgIHRocm93IEVycm9yKHJlc3BvbnNlLmRhdGEpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocmVzcG9uc2UubXNnKSB7XG4gICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKHJlc3BvbnNlLm1zZyk7XG4gICAgICAgICAgICAgICAgICB0aHJvdyBFcnJvcihyZXNwb25zZS5tc2cpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCdjYXMgdW5rbm93biBlcnJvcicpO1xuICAgICAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoJ1Vua25vd24gRXJyb3I6IENhcyBhdXRoIGV4Y2VwdGlvbiEnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1hcFl6U2lkZVRvWWVsb25NZW51KG1lbnVzOiBZdW56YWlNZW51W10pOiB2b2lkIHtcbiAgbWVudXMuZm9yRWFjaChtZW51ID0+IHtcbiAgICBpZiAobWVudS5jaGlsZHJlbiAmJiBtZW51LmhpZGVDaGlsZHJlbikge1xuICAgICAgbWVudS5jaGlsZHJlbi5mb3JFYWNoKGMgPT4gKGMuaGlkZSA9IHRydWUpKTtcbiAgICB9XG4gICAgbWVudS5iYWRnZURvdCA9IG1lbnUuYmFkZ2VfZG90IHx8IG51bGw7XG4gICAgbWVudS5iYWRnZVN0YXR1cyA9IG1lbnUuYmFkZ2Vfc3RhdHVzIHx8IG51bGw7XG4gICAgbWVudS5zaG9ydGN1dFJvb3QgPSBtZW51LnNob3J0Y3V0X3Jvb3QgfHwgbnVsbDtcbiAgICBtZW51LnJldXNlID0gdHJ1ZTtcbiAgICBpZiAobWVudS5jaGlsZHJlbikge1xuICAgICAgbWFwWXpTaWRlVG9ZZWxvbk1lbnUobWVudS5jaGlsZHJlbik7XG4gICAgfVxuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdlbmVyYXRlQWJpbGl0eShtZW51czogWXVuemFpTWVudVtdLCBhYmlsaXRpZXM6IHN0cmluZ1tdLCBwcmVmaXg6IHN0cmluZyk6IHZvaWQge1xuICBtZW51cy5mb3JFYWNoKG1lbnUgPT4ge1xuICAgIGlmIChtZW51LmxpbmspIHtcbiAgICAgIHByZWZpeCArPSBtZW51Lmxpbms7XG4gICAgfSBlbHNlIHtcbiAgICAgIHByZWZpeCArPSAnJztcbiAgICB9XG4gICAgaWYgKG1lbnUubWVudUF1dGhzKSB7XG4gICAgICBtZW51Lm1lbnVBdXRocy5mb3JFYWNoKChhOiBzdHJpbmcpID0+IHtcbiAgICAgICAgYWJpbGl0aWVzLnB1c2goYCR7cHJlZml4fToke2F9YCk7XG4gICAgICAgIGFiaWxpdGllcy5wdXNoKGEpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKG1lbnUuY2hpbGRyZW4pIHtcbiAgICAgIGdlbmVyYXRlQWJpbGl0eShtZW51LmNoaWxkcmVuLCBhYmlsaXRpZXMsIHByZWZpeCk7XG4gICAgfVxuICB9KTtcbn1cbiJdfQ==
|
|
@@ -1,88 +1,88 @@
|
|
|
1
|
-
import { Injectable, inject } from '@angular/core';
|
|
2
|
-
import { BUSINESS_DEFAULT_CONFIG, mergeBisConfig } from '@yelon/bis/config';
|
|
3
|
-
import { deepCopy, log, useLocalStorageUser } from '@yelon/util';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "@yelon/util";
|
|
6
|
-
import * as i2 from "@angular/router";
|
|
7
|
-
export class ActGuardService {
|
|
8
|
-
constructor(configService, pathToRegexp, router) {
|
|
9
|
-
this.configService = configService;
|
|
10
|
-
this.pathToRegexp = pathToRegexp;
|
|
11
|
-
this.router = router;
|
|
12
|
-
this.bis = BUSINESS_DEFAULT_CONFIG;
|
|
13
|
-
this.menus = [];
|
|
14
|
-
this.links = [];
|
|
15
|
-
log('act: ');
|
|
16
|
-
this.bis = mergeBisConfig(this.configService);
|
|
17
|
-
log('act: config ', this.bis);
|
|
18
|
-
const [, getUser] = useLocalStorageUser();
|
|
19
|
-
const user = getUser();
|
|
20
|
-
log('act: user ', user);
|
|
21
|
-
// @ts-ignore
|
|
22
|
-
this.menus = deepCopy(user.menu || []).filter((m) => m.systemCode && m.systemCode === this.bis.systemCode);
|
|
23
|
-
log('act: menus ', this.menus);
|
|
24
|
-
this.getAllLinks(this.menus, this.links);
|
|
25
|
-
log('act: links ', this.links);
|
|
26
|
-
}
|
|
27
|
-
process(url) {
|
|
28
|
-
log('act: can activate ', url);
|
|
29
|
-
if (this.preHandle(url)) {
|
|
30
|
-
return true;
|
|
31
|
-
}
|
|
32
|
-
log('act: can activate child prehandle success');
|
|
33
|
-
let canactivate = false;
|
|
34
|
-
this.links.forEach((link) => {
|
|
35
|
-
// path = /xxx
|
|
36
|
-
if (link === url.split('?')[0]) {
|
|
37
|
-
canactivate = true;
|
|
38
|
-
log(`act: link value ${link} equals url value ${url}`);
|
|
39
|
-
return;
|
|
40
|
-
}
|
|
41
|
-
// paht = /xxx/:xx
|
|
42
|
-
const regexp = this.pathToRegexp.stringToRegexp(link, null, null);
|
|
43
|
-
log(`act: ${link} test ${url.split('?')[0]}`);
|
|
44
|
-
if (regexp.test(url.split('?')[0])) {
|
|
45
|
-
canactivate = true;
|
|
46
|
-
log(`act: test value ${canactivate}`);
|
|
47
|
-
return;
|
|
48
|
-
}
|
|
49
|
-
});
|
|
50
|
-
if (canactivate) {
|
|
51
|
-
log(`act: test sucess`);
|
|
52
|
-
return true;
|
|
53
|
-
}
|
|
54
|
-
else {
|
|
55
|
-
log(`act: test error`);
|
|
56
|
-
this.router.navigate(['displayIndex']);
|
|
57
|
-
return false;
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
preHandle(url) {
|
|
61
|
-
return (url.includes('error') ||
|
|
62
|
-
url.includes('exception') ||
|
|
63
|
-
url.includes('displayIndex') ||
|
|
64
|
-
url === '' ||
|
|
65
|
-
url === null ||
|
|
66
|
-
url === '/' ||
|
|
67
|
-
url.includes('iframePage'));
|
|
68
|
-
}
|
|
69
|
-
getAllLinks(menu, links) {
|
|
70
|
-
menu.forEach((sider) => {
|
|
71
|
-
if (sider.link) {
|
|
72
|
-
links.push(sider.link);
|
|
73
|
-
}
|
|
74
|
-
if (sider.children && sider.children.length > 0) {
|
|
75
|
-
this.getAllLinks(sider.children, links);
|
|
76
|
-
}
|
|
77
|
-
});
|
|
78
|
-
}
|
|
79
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
80
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
81
|
-
}
|
|
82
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
83
|
-
type: Injectable,
|
|
84
|
-
args: [{ providedIn: 'root' }]
|
|
85
|
-
}], ctorParameters: () => [{ type: i1.YunzaiConfigService }, { type: i1.PathToRegexpService }, { type: i2.Router }] });
|
|
86
|
-
export const actGuardCanActive = (_, state) => inject(ActGuardService).process(state.url);
|
|
87
|
-
export const actGuardCanActiveChild = (_, state) => inject(ActGuardService).process(state.url);
|
|
1
|
+
import { Injectable, inject } from '@angular/core';
|
|
2
|
+
import { BUSINESS_DEFAULT_CONFIG, mergeBisConfig } from '@yelon/bis/config';
|
|
3
|
+
import { deepCopy, log, useLocalStorageUser } from '@yelon/util';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@yelon/util";
|
|
6
|
+
import * as i2 from "@angular/router";
|
|
7
|
+
export class ActGuardService {
|
|
8
|
+
constructor(configService, pathToRegexp, router) {
|
|
9
|
+
this.configService = configService;
|
|
10
|
+
this.pathToRegexp = pathToRegexp;
|
|
11
|
+
this.router = router;
|
|
12
|
+
this.bis = BUSINESS_DEFAULT_CONFIG;
|
|
13
|
+
this.menus = [];
|
|
14
|
+
this.links = [];
|
|
15
|
+
log('act: ');
|
|
16
|
+
this.bis = mergeBisConfig(this.configService);
|
|
17
|
+
log('act: config ', this.bis);
|
|
18
|
+
const [, getUser] = useLocalStorageUser();
|
|
19
|
+
const user = getUser();
|
|
20
|
+
log('act: user ', user);
|
|
21
|
+
// @ts-ignore
|
|
22
|
+
this.menus = deepCopy(user.menu || []).filter((m) => m.systemCode && m.systemCode === this.bis.systemCode);
|
|
23
|
+
log('act: menus ', this.menus);
|
|
24
|
+
this.getAllLinks(this.menus, this.links);
|
|
25
|
+
log('act: links ', this.links);
|
|
26
|
+
}
|
|
27
|
+
process(url) {
|
|
28
|
+
log('act: can activate ', url);
|
|
29
|
+
if (this.preHandle(url)) {
|
|
30
|
+
return true;
|
|
31
|
+
}
|
|
32
|
+
log('act: can activate child prehandle success');
|
|
33
|
+
let canactivate = false;
|
|
34
|
+
this.links.forEach((link) => {
|
|
35
|
+
// path = /xxx
|
|
36
|
+
if (link === url.split('?')[0]) {
|
|
37
|
+
canactivate = true;
|
|
38
|
+
log(`act: link value ${link} equals url value ${url}`);
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
// paht = /xxx/:xx
|
|
42
|
+
const regexp = this.pathToRegexp.stringToRegexp(link, null, null);
|
|
43
|
+
log(`act: ${link} test ${url.split('?')[0]}`);
|
|
44
|
+
if (regexp.test(url.split('?')[0])) {
|
|
45
|
+
canactivate = true;
|
|
46
|
+
log(`act: test value ${canactivate}`);
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
if (canactivate) {
|
|
51
|
+
log(`act: test sucess`);
|
|
52
|
+
return true;
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
log(`act: test error`);
|
|
56
|
+
this.router.navigate(['displayIndex']);
|
|
57
|
+
return false;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
preHandle(url) {
|
|
61
|
+
return (url.includes('error') ||
|
|
62
|
+
url.includes('exception') ||
|
|
63
|
+
url.includes('displayIndex') ||
|
|
64
|
+
url === '' ||
|
|
65
|
+
url === null ||
|
|
66
|
+
url === '/' ||
|
|
67
|
+
url.includes('iframePage'));
|
|
68
|
+
}
|
|
69
|
+
getAllLinks(menu, links) {
|
|
70
|
+
menu.forEach((sider) => {
|
|
71
|
+
if (sider.link) {
|
|
72
|
+
links.push(sider.link);
|
|
73
|
+
}
|
|
74
|
+
if (sider.children && sider.children.length > 0) {
|
|
75
|
+
this.getAllLinks(sider.children, links);
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: ActGuardService, deps: [{ token: i1.YunzaiConfigService }, { token: i1.PathToRegexpService }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
80
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: ActGuardService, providedIn: 'root' }); }
|
|
81
|
+
}
|
|
82
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: ActGuardService, decorators: [{
|
|
83
|
+
type: Injectable,
|
|
84
|
+
args: [{ providedIn: 'root' }]
|
|
85
|
+
}], ctorParameters: () => [{ type: i1.YunzaiConfigService }, { type: i1.PathToRegexpService }, { type: i2.Router }] });
|
|
86
|
+
export const actGuardCanActive = (_, state) => inject(ActGuardService).process(state.url);
|
|
87
|
+
export const actGuardCanActiveChild = (_, state) => inject(ActGuardService).process(state.url);
|
|
88
88
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieXVuemFpLWFjdC5ndWFyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2Jpcy9zcmMveXVuemFpLWFjdC5ndWFyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUduRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFNUUsT0FBTyxFQUNMLFFBQVEsRUFDUixHQUFHLEVBSUgsbUJBQW1CLEVBRXBCLE1BQU0sYUFBYSxDQUFDOzs7O0FBSXJCLE1BQU0sT0FBTyxlQUFlO0lBSzFCLFlBQ1UsYUFBa0MsRUFDbEMsWUFBaUMsRUFDakMsTUFBYztRQUZkLGtCQUFhLEdBQWIsYUFBYSxDQUFxQjtRQUNsQyxpQkFBWSxHQUFaLFlBQVksQ0FBcUI7UUFDakMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQVBoQixRQUFHLEdBQXlCLHVCQUF1QixDQUFDO1FBQ3BELFVBQUssR0FBZ0IsRUFBRSxDQUFDO1FBQ3hCLFVBQUssR0FBYSxFQUFFLENBQUM7UUFPM0IsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2IsSUFBSSxDQUFDLEdBQUcsR0FBRyxjQUFjLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzlDLEdBQUcsQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzlCLE1BQU0sQ0FBQyxFQUFFLE9BQU8sQ0FBQyxHQUFHLG1CQUFtQixFQUFFLENBQUM7UUFDMUMsTUFBTSxJQUFJLEdBQWUsT0FBTyxFQUFHLENBQUM7UUFDcEMsR0FBRyxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUN4QixhQUFhO1FBQ2IsSUFBSSxDQUFDLEtBQUssR0FBRyxRQUFRLENBQUUsSUFBSSxDQUFDLElBQWtCLElBQUksRUFBRSxDQUFDLENBQUMsTUFB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QztZQUNELElBQUksS0FBSyxDQUFDLFFBQVEsSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDaEQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQzFDLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7OEdBL0VVLGVBQWU7a0hBQWYsZUFBZSxjQURGLE1BQU07OzJGQUNuQixlQUFlO2tCQUQzQixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRTs7QUFtRmxDLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFrQixDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ3pHLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUF1QixDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDYW5BY3RpdmF0ZUNoaWxkRm4sIENhbkFjdGl2YXRlRm4sIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7IEJVU0lORVNTX0RFRkFVTFRfQ09ORklHLCBtZXJnZUJpc0NvbmZpZyB9IGZyb20gJ0B5ZWxvbi9iaXMvY29uZmlnJztcbmltcG9ydCB7IE1lbnUgfSBmcm9tICdAeWVsb24vdGhlbWUnO1xuaW1wb3J0IHtcbiAgZGVlcENvcHksXG4gIGxvZyxcbiAgWXVuemFpQnVzaW5lc3NDb25maWcsXG4gIFl1bnphaUNvbmZpZ1NlcnZpY2UsXG4gIFBhdGhUb1JlZ2V4cFNlcnZpY2UsXG4gIHVzZUxvY2FsU3RvcmFnZVVzZXIsXG4gIFl1bnphaVVzZXJcbn0gZnJvbSAnQHllbG9uL3V0aWwnO1xuaW1wb3J0IHsgTnpTYWZlQW55IH0gZnJvbSAnbmctem9ycm8tYW50ZC9jb3JlL3R5cGVzJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBBY3RHdWFyZFNlcnZpY2Uge1xuICBwcml2YXRlIGJpczogWXVuemFpQnVzaW5lc3NDb25maWcgPSBCVVNJTkVTU19ERUZBVUxUX0NPTkZJRztcbiAgcHJpdmF0ZSBtZW51czogTnpTYWZlQW55W10gPSBbXTtcbiAgcHJpdmF0ZSBsaW5rczogc3RyaW5nW10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNvbmZpZ1NlcnZpY2U6IFl1bnphaUNvbmZpZ1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBwYXRoVG9SZWdleHA6IFBhdGhUb1JlZ2V4cFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlclxuICApIHtcbiAgICBsb2coJ2FjdDogJyk7XG4gICAgdGhpcy5iaXMgPSBtZXJnZUJpc0NvbmZpZyh0aGlzLmNvbmZpZ1NlcnZpY2UpO1xuICAgIGxvZygnYWN0OiBjb25maWcgJywgdGhpcy5iaXMpO1xuICAgIGNvbnN0IFssIGdldFVzZXJdID0gdXNlTG9jYWxTdG9yYWdlVXNlcigpO1xuICAgIGNvbnN0IHVzZXI6IFl1bnphaVVzZXIgPSBnZXRVc2VyKCkhO1xuICAgIGxvZygnYWN0OiB1c2VyICcsIHVzZXIpO1xuICAgIC8vIEB0cy1pZ25vcmVcbiAgICB0aGlzLm1lbnVzID0gZGVlcENvcHkoKHVzZXIubWVudSBhcyBOelNhZmVBbnkpIHx8IFtdKS5maWx0ZXIoXG4gICAgICAobTogTWVudSkgPT4gbS5zeXN0ZW1Db2RlICYmIG0uc3lzdGVtQ29kZSA9PT0gdGhpcy5iaXMuc3lzdGVtQ29kZVxuICAgICkgYXMgTWVudVtdO1xuICAgIGxvZygnYWN0OiBtZW51cyAnLCB0aGlzLm1lbnVzKTtcbiAgICB0aGlzLmdldEFsbExpbmtzKHRoaXMubWVudXMsIHRoaXMubGlua3MpO1xuICAgIGxvZygnYWN0OiBsaW5rcyAnLCB0aGlzLmxpbmtzKTtcbiAgfVxuXG4gIHByb2Nlc3ModXJsOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBsb2coJ2FjdDogY2FuIGFjdGl2YXRlICcsIHVybCk7XG4gICAgaWYgKHRoaXMucHJlSGFuZGxlKHVybCkpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBsb2coJ2FjdDogY2FuIGFjdGl2YXRlIGNoaWxkIHByZWhhbmRsZSBzdWNjZXNzJyk7XG4gICAgbGV0IGNhbmFjdGl2YXRlID0gZmFsc2U7XG4gICAgdGhpcy5saW5rcy5mb3JFYWNoKChsaW5rOiBzdHJpbmcpID0+IHtcbiAgICAgIC8vIHBhdGggPSAveHh4XG4gICAgICBpZiAobGluayA9PT0gdXJsLnNwbGl0KCc/JylbMF0pIHtcbiAgICAgICAgY2FuYWN0aXZhdGUgPSB0cnVlO1xuICAgICAgICBsb2coYGFjdDogbGluayB2YWx1ZSAke2xpbmt9IGVxdWFscyB1cmwgdmFsdWUgJHt1cmx9YCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIC8vIHBhaHQgPSAveHh4Lzp4eFxuICAgICAgY29uc3QgcmVnZXhwOiBSZWdFeHAgPSB0aGlzLnBhdGhUb1JlZ2V4cC5zdHJpbmdUb1JlZ2V4cChsaW5rLCBudWxsLCBudWxsKTtcbiAgICAgIGxvZyhgYWN0OiAke2xpbmt9IHRlc3QgJHt1cmwuc3BsaXQoJz8nKVswXX1gKTtcbiAgICAgIGlmIChyZWdleHAudGVzdCh1cmwuc3BsaXQoJz8nKVswXSkpIHtcbiAgICAgICAgY2FuYWN0aXZhdGUgPSB0cnVlO1xuICAgICAgICBsb2coYGFjdDogdGVzdCB2YWx1ZSAke2NhbmFjdGl2YXRlfWApO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfSk7XG4gICAgaWYgKGNhbmFjdGl2YXRlKSB7XG4gICAgICBsb2coYGFjdDogdGVzdCBzdWNlc3NgKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICBsb2coYGFjdDogdGVzdCBlcnJvcmApO1xuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWydkaXNwbGF5SW5kZXgnXSk7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcHJlSGFuZGxlKHVybDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIHVybC5pbmNsdWRlcygnZXJyb3InKSB8fFxuICAgICAgdXJsLmluY2x1ZGVzKCdleGNlcHRpb24nKSB8fFxuICAgICAgdXJsLmluY2x1ZGVzKCdkaXNwbGF5SW5kZXgnKSB8fFxuICAgICAgdXJsID09PSAnJyB8fFxuICAgICAgdXJsID09PSBudWxsIHx8XG4gICAgICB1cmwgPT09ICcvJyB8fFxuICAgICAgdXJsLmluY2x1ZGVzKCdpZnJhbWVQYWdlJylcbiAgICApO1xuICB9XG5cbiAgZ2V0QWxsTGlua3MobWVudTogTWVudVtdLCBsaW5rczogc3RyaW5nW10pOiB2b2lkIHtcbiAgICBtZW51LmZvckVhY2goKHNpZGVyOiBNZW51KSA9PiB7XG4gICAgICBpZiAoc2lkZXIubGluaykge1xuICAgICAgICBsaW5rcy5wdXNoKHNpZGVyLmxpbmspO1xuICAgICAgfVxuICAgICAgaWYgKHNpZGVyLmNoaWxkcmVuICYmIHNpZGVyLmNoaWxkcmVuLmxlbmd0aCA+IDApIHtcbiAgICAgICAgdGhpcy5nZXRBbGxMaW5rcyhzaWRlci5jaGlsZHJlbiwgbGlua3MpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCBhY3RHdWFyZENhbkFjdGl2ZTogQ2FuQWN0aXZhdGVGbiA9IChfLCBzdGF0ZSkgPT4gaW5qZWN0KEFjdEd1YXJkU2VydmljZSkucHJvY2VzcyhzdGF0ZS51cmwpO1xuZXhwb3J0IGNvbnN0IGFjdEd1YXJkQ2FuQWN0aXZlQ2hpbGQ6IENhbkFjdGl2YXRlQ2hpbGRGbiA9IChfLCBzdGF0ZSkgPT4gaW5qZWN0KEFjdEd1YXJkU2VydmljZSkucHJvY2VzcyhzdGF0ZS51cmwpO1xuIl19
|