@delon/theme 12.4.2 → 13.1.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/compact.css +1278 -750
- package/compact.min.css +1 -1
- package/dark.css +1325 -797
- package/dark.min.css +1 -1
- package/default.css +1286 -758
- package/default.min.css +1 -1
- package/{esm2015/layout-blank/layout-blank.js → esm2020/layout-blank/layout-blank.mjs} +0 -0
- package/{esm2015/layout-blank/public_api.js → esm2020/layout-blank/public_api.mjs} +0 -0
- package/{esm2015/layout-default/layout-default.js → esm2020/layout-default/layout-default.mjs} +0 -0
- package/esm2020/layout-default/layout-header-item-trigger.directive.mjs +16 -0
- package/esm2020/layout-default/layout-header-item.component.mjs +33 -0
- package/esm2020/layout-default/layout-header.component.mjs +123 -0
- package/esm2020/layout-default/layout-nav.component.mjs +307 -0
- package/esm2020/layout-default/layout.component.mjs +132 -0
- package/esm2020/layout-default/layout.module.mjs +69 -0
- package/{esm2015/layout-default/public_api.js → esm2020/layout-default/public_api.mjs} +0 -0
- package/{esm2015/layout-default/types.js → esm2020/layout-default/types.mjs} +0 -0
- package/esm2020/public_api.mjs +25 -0
- package/{esm2015/setting-drawer/public_api.js → esm2020/setting-drawer/public_api.mjs} +0 -0
- package/esm2020/setting-drawer/setting-drawer-item.component.mjs +35 -0
- package/esm2020/setting-drawer/setting-drawer.component.mjs +192 -0
- package/{esm2015/setting-drawer/setting-drawer.js → esm2020/setting-drawer/setting-drawer.mjs} +0 -0
- package/esm2020/setting-drawer/setting-drawer.module.mjs +68 -0
- package/{esm2015/setting-drawer/setting-drawer.types.js → esm2020/setting-drawer/setting-drawer.types.mjs} +0 -0
- package/{esm2015/src/config.js → esm2020/src/config.mjs} +0 -0
- package/{esm2015/src/locale/index.js → esm2020/src/locale/index.mjs} +0 -0
- package/{esm2015/src/locale/languages/el-GR.js → esm2020/src/locale/languages/el-GR.mjs} +0 -0
- package/{esm2015/src/locale/languages/en-US.js → esm2020/src/locale/languages/en-US.mjs} +0 -0
- package/{esm2015/src/locale/languages/es-ES.js → esm2020/src/locale/languages/es-ES.mjs} +0 -0
- package/{esm2015/src/locale/languages/fr-FR.js → esm2020/src/locale/languages/fr-FR.mjs} +0 -0
- package/{esm2015/src/locale/languages/hr-HR.js → esm2020/src/locale/languages/hr-HR.mjs} +0 -0
- package/{esm2015/src/locale/languages/it-IT.js → esm2020/src/locale/languages/it-IT.mjs} +0 -0
- package/{esm2015/src/locale/languages/ja-JP.js → esm2020/src/locale/languages/ja-JP.mjs} +0 -0
- package/{esm2015/src/locale/languages/ko-KR.js → esm2020/src/locale/languages/ko-KR.mjs} +0 -0
- package/{esm2015/src/locale/languages/pl-PL.js → esm2020/src/locale/languages/pl-PL.mjs} +0 -0
- package/{esm2015/src/locale/languages/sl-SI.js → esm2020/src/locale/languages/sl-SI.mjs} +0 -0
- package/{esm2015/src/locale/languages/tr-TR.js → esm2020/src/locale/languages/tr-TR.mjs} +0 -0
- package/{esm2015/src/locale/languages/zh-CN.js → esm2020/src/locale/languages/zh-CN.mjs} +0 -0
- package/{esm2015/src/locale/languages/zh-TW.js → esm2020/src/locale/languages/zh-TW.mjs} +0 -0
- package/esm2020/src/locale/locale.module.mjs +17 -0
- package/esm2020/src/locale/locale.service.mjs +45 -0
- package/{esm2015/src/locale/locale.tokens.js → esm2020/src/locale/locale.tokens.mjs} +0 -0
- package/{esm2015/src/locale/locale.types.js → esm2020/src/locale/locale.types.mjs} +0 -0
- package/{esm2015/src/locale/public_api.js → esm2020/src/locale/public_api.mjs} +0 -0
- package/esm2020/src/pipes/date/date.pipe.mjs +24 -0
- package/esm2020/src/pipes/keys/keys.pipe.mjs +21 -0
- package/esm2020/src/pipes/safe/html.pipe.mjs +18 -0
- package/esm2020/src/pipes/safe/url.pipe.mjs +18 -0
- package/esm2020/src/pipes/yn/yn.pipe.mjs +38 -0
- package/esm2020/src/router/optional-preloader.mjs +22 -0
- package/esm2020/src/services/drawer/drawer.helper.mjs +91 -0
- package/esm2020/src/services/http/http.client.mjs +154 -0
- package/esm2020/src/services/http/http.decorator.mjs +215 -0
- package/esm2020/src/services/i18n/i18n.mjs +97 -0
- package/esm2020/src/services/i18n/i18n.pipe.mjs +21 -0
- package/{esm2015/src/services/menu/interface.js → esm2020/src/services/menu/interface.mjs} +0 -0
- package/esm2020/src/services/menu/menu.service.mjs +252 -0
- package/esm2020/src/services/modal/modal.helper.mjs +106 -0
- package/{esm2015/src/services/preloader/preloader.js → esm2020/src/services/preloader/preloader.mjs} +0 -0
- package/esm2020/src/services/responsive/responsive.mjs +46 -0
- package/esm2020/src/services/rtl/rtl.service.mjs +101 -0
- package/esm2020/src/services/settings/settings.service.mjs +100 -0
- package/{esm2015/src/services/settings/types.js → esm2020/src/services/settings/types.mjs} +0 -0
- package/esm2020/src/services/title/title.service.mjs +124 -0
- package/esm2020/src/theme.module.mjs +76 -0
- package/{esm2015/src/version.js → esm2020/src/version.mjs} +1 -1
- package/{esm2015/theme-btn/public_api.js → esm2020/theme-btn/public_api.mjs} +0 -0
- package/esm2020/theme-btn/theme-btn.component.mjs +106 -0
- package/esm2020/theme-btn/theme-btn.mjs +5 -0
- package/esm2020/theme-btn/theme-btn.module.mjs +32 -0
- package/esm2020/theme.mjs +5 -0
- package/fesm2015/{layout-blank.js → layout-blank.mjs} +1 -1
- package/fesm2015/layout-blank.mjs.map +1 -0
- package/fesm2015/layout-default.mjs +654 -0
- package/fesm2015/layout-default.mjs.map +1 -0
- package/fesm2015/setting-drawer.mjs +487 -0
- package/fesm2015/setting-drawer.mjs.map +1 -0
- package/fesm2015/theme-btn.mjs +144 -0
- package/fesm2015/theme-btn.mjs.map +1 -0
- package/fesm2015/{theme.js → theme.mjs} +226 -188
- package/fesm2015/theme.mjs.map +1 -0
- package/fesm2020/layout-blank.mjs +7 -0
- package/fesm2020/layout-blank.mjs.map +1 -0
- package/fesm2020/layout-default.mjs +654 -0
- package/fesm2020/layout-default.mjs.map +1 -0
- package/fesm2020/setting-drawer.mjs +482 -0
- package/fesm2020/setting-drawer.mjs.map +1 -0
- package/fesm2020/theme-btn.mjs +141 -0
- package/fesm2020/theme-btn.mjs.map +1 -0
- package/fesm2020/theme.mjs +2575 -0
- package/fesm2020/theme.mjs.map +1 -0
- package/layout-blank/layout-blank.d.ts +1 -0
- package/layout-blank/package.json +5 -6
- package/layout-default/layout-default.d.ts +1 -0
- package/layout-default/layout-header-item-trigger.directive.d.ts +3 -0
- package/layout-default/layout-header-item.component.d.ts +3 -0
- package/layout-default/layout-header.component.d.ts +8 -5
- package/layout-default/layout-nav.component.d.ts +4 -1
- package/layout-default/layout.component.d.ts +6 -3
- package/layout-default/layout.module.d.ts +17 -0
- package/layout-default/package.json +5 -6
- package/layout-default/style/_aside.less +7 -10
- package/layout-default/style/_fixed.less +2 -0
- package/layout-default/style/_header.less +21 -0
- package/layout-default/style/_layout.less +7 -0
- package/layout-default/style/_progress-bar.less +6 -0
- package/layout-default/style/fix/_full-content.less +4 -0
- package/layout-default/style/widgets/_app-icons.less +3 -0
- package/layout-default/style/widgets/_user.less +5 -0
- package/package.json +55 -11
- package/public_api.d.ts +1 -0
- package/setting-drawer/package.json +5 -6
- package/setting-drawer/setting-drawer-item.component.d.ts +3 -0
- package/setting-drawer/setting-drawer.component.d.ts +3 -0
- package/setting-drawer/setting-drawer.d.ts +1 -0
- package/setting-drawer/setting-drawer.module.d.ts +18 -0
- package/setting-drawer/style/index.less +9 -0
- package/setting-drawer/style/rtl.less +1 -0
- package/src/locale/locale.module.d.ts +4 -0
- package/src/locale/locale.service.d.ts +3 -0
- package/src/pipes/date/date.pipe.d.ts +3 -0
- package/src/pipes/keys/keys.pipe.d.ts +3 -0
- package/src/pipes/safe/html.pipe.d.ts +3 -0
- package/src/pipes/safe/url.pipe.d.ts +3 -0
- package/src/pipes/yn/style/index.less +3 -0
- package/src/pipes/yn/yn.pipe.d.ts +3 -0
- package/src/services/drawer/drawer.helper.d.ts +3 -0
- package/src/services/http/http.client.d.ts +3 -0
- package/src/services/http/http.decorator.d.ts +3 -0
- package/src/services/i18n/i18n.d.ts +5 -0
- package/src/services/i18n/i18n.pipe.d.ts +3 -0
- package/src/services/menu/menu.service.d.ts +5 -0
- package/src/services/modal/modal.helper.d.ts +3 -0
- package/src/services/responsive/responsive.d.ts +3 -0
- package/src/services/rtl/rtl.service.d.ts +3 -0
- package/src/services/settings/settings.service.d.ts +9 -0
- package/src/services/title/title.service.d.ts +3 -0
- package/src/theme.module.d.ts +15 -0
- package/system/_preloader.less +10 -0
- package/system/_type.less +5 -0
- package/system/antd/_modal.less +5 -0
- package/system/antd/_table.less +7 -0
- package/system/index.less +3 -3
- package/system/mixins/_freak.less +2 -2
- package/system/mixins/_text-truncate.less +2 -0
- package/system/ng/_form.less +1 -0
- package/system/theme-default.less +3 -1
- package/system/utils/_display.less +9 -0
- package/system/utils/_other.less +2 -0
- package/system/utils/_scrollbar.less +3 -0
- package/system/widgets/_abs.less +3 -0
- package/system/widgets/_half-float.less +2 -0
- package/system/widgets/_masonry-grid.less +2 -0
- package/theme-btn/package.json +6 -7
- package/theme-btn/style/index.less +1 -0
- package/theme-btn/theme-btn.component.d.ts +3 -0
- package/theme-btn/{layout-theme-btn.d.ts → theme-btn.d.ts} +1 -0
- package/theme-btn/theme-btn.module.d.ts +8 -0
- package/theme-compact.less +1 -1
- package/theme-dark.less +1 -1
- package/theme-default.less +1 -1
- package/theme.d.ts +1 -1
- package/bundles/layout-blank.umd.js +0 -19
- package/bundles/layout-blank.umd.js.map +0 -1
- package/bundles/layout-default.umd.js +0 -876
- package/bundles/layout-default.umd.js.map +0 -1
- package/bundles/layout-theme-btn.umd.js +0 -141
- package/bundles/layout-theme-btn.umd.js.map +0 -1
- package/bundles/setting-drawer.umd.js +0 -789
- package/bundles/setting-drawer.umd.js.map +0 -1
- package/bundles/theme.umd.js +0 -3075
- package/bundles/theme.umd.js.map +0 -1
- package/esm2015/layout-default/layout-header-item-trigger.directive.js +0 -12
- package/esm2015/layout-default/layout-header-item.component.js +0 -23
- package/esm2015/layout-default/layout-header.component.js +0 -94
- package/esm2015/layout-default/layout-nav.component.js +0 -306
- package/esm2015/layout-default/layout.component.js +0 -102
- package/esm2015/layout-default/layout.module.js +0 -40
- package/esm2015/public_api.js +0 -24
- package/esm2015/setting-drawer/setting-drawer-item.component.js +0 -30
- package/esm2015/setting-drawer/setting-drawer.component.js +0 -185
- package/esm2015/setting-drawer/setting-drawer.module.js +0 -39
- package/esm2015/src/locale/locale.module.js +0 -14
- package/esm2015/src/locale/locale.service.js +0 -42
- package/esm2015/src/pipes/date/date.pipe.js +0 -23
- package/esm2015/src/pipes/keys/keys.pipe.js +0 -17
- package/esm2015/src/pipes/safe/html.pipe.js +0 -17
- package/esm2015/src/pipes/safe/url.pipe.js +0 -17
- package/esm2015/src/pipes/yn/yn.pipe.js +0 -37
- package/esm2015/src/router/optional-preloader.js +0 -23
- package/esm2015/src/services/drawer/drawer.helper.js +0 -90
- package/esm2015/src/services/http/http.client.js +0 -138
- package/esm2015/src/services/http/http.decorator.js +0 -207
- package/esm2015/src/services/i18n/i18n.js +0 -96
- package/esm2015/src/services/i18n/i18n.pipe.js +0 -17
- package/esm2015/src/services/menu/menu.service.js +0 -252
- package/esm2015/src/services/modal/modal.helper.js +0 -105
- package/esm2015/src/services/responsive/responsive.js +0 -48
- package/esm2015/src/services/rtl/rtl.service.js +0 -110
- package/esm2015/src/services/settings/settings.service.js +0 -82
- package/esm2015/src/services/title/title.service.js +0 -125
- package/esm2015/src/theme.module.js +0 -67
- package/esm2015/theme-btn/layout-theme-btn.js +0 -5
- package/esm2015/theme-btn/theme-btn.component.js +0 -103
- package/esm2015/theme-btn/theme-btn.module.js +0 -22
- package/esm2015/theme.js +0 -6
- package/fesm2015/layout-blank.js.map +0 -1
- package/fesm2015/layout-default.js +0 -561
- package/fesm2015/layout-default.js.map +0 -1
- package/fesm2015/layout-theme-btn.js +0 -129
- package/fesm2015/layout-theme-btn.js.map +0 -1
- package/fesm2015/setting-drawer.js +0 -448
- package/fesm2015/setting-drawer.js.map +0 -1
- package/fesm2015/theme.js.map +0 -1
- package/layout-blank/layout-blank.metadata.json +0 -1
- package/layout-default/layout-default.metadata.json +0 -1
- package/setting-drawer/setting-drawer.metadata.json +0 -1
- package/theme-btn/layout-theme-btn.metadata.json +0 -1
- package/theme.metadata.json +0 -1
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
import { inject, Injectable, InjectionToken } from '@angular/core';
|
|
2
|
-
import { BehaviorSubject } from 'rxjs';
|
|
3
|
-
import { filter } from 'rxjs/operators';
|
|
4
|
-
import { AlainConfigService } from '@delon/util/config';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "@delon/util/config";
|
|
7
|
-
export const ALAIN_I18N_TOKEN = new InjectionToken('alainI18nToken', {
|
|
8
|
-
providedIn: 'root',
|
|
9
|
-
factory: () => new AlainI18NServiceFake(inject(AlainConfigService))
|
|
10
|
-
});
|
|
11
|
-
export class AlainI18nBaseService {
|
|
12
|
-
constructor(cogSrv) {
|
|
13
|
-
this._change$ = new BehaviorSubject(null);
|
|
14
|
-
this._currentLang = '';
|
|
15
|
-
this._defaultLang = '';
|
|
16
|
-
this._data = {};
|
|
17
|
-
this.cog = cogSrv.merge('themeI18n', {
|
|
18
|
-
interpolation: ['{{', '}}']
|
|
19
|
-
});
|
|
20
|
-
}
|
|
21
|
-
get change() {
|
|
22
|
-
return this._change$.asObservable().pipe(filter(w => w != null));
|
|
23
|
-
}
|
|
24
|
-
get defaultLang() {
|
|
25
|
-
return this._defaultLang;
|
|
26
|
-
}
|
|
27
|
-
get currentLang() {
|
|
28
|
-
return this._currentLang;
|
|
29
|
-
}
|
|
30
|
-
get data() {
|
|
31
|
-
return this._data;
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* Flattened data source
|
|
35
|
-
*
|
|
36
|
-
* @example
|
|
37
|
-
* {
|
|
38
|
-
* "name": "Name",
|
|
39
|
-
* "sys": {
|
|
40
|
-
* "": "System",
|
|
41
|
-
* "title": "Title"
|
|
42
|
-
* }
|
|
43
|
-
* }
|
|
44
|
-
* =>
|
|
45
|
-
* {
|
|
46
|
-
* "name": "Name",
|
|
47
|
-
* "sys": "System",
|
|
48
|
-
* "sys.title": "Title"
|
|
49
|
-
* }
|
|
50
|
-
*/
|
|
51
|
-
flatData(data, parentKey) {
|
|
52
|
-
const res = {};
|
|
53
|
-
for (const key of Object.keys(data)) {
|
|
54
|
-
const value = data[key];
|
|
55
|
-
if (typeof value === 'object') {
|
|
56
|
-
const child = this.flatData(value, parentKey.concat(key));
|
|
57
|
-
Object.keys(child).forEach(childKey => (res[childKey] = child[childKey]));
|
|
58
|
-
}
|
|
59
|
-
else {
|
|
60
|
-
res[(key ? parentKey.concat(key) : parentKey).join('.')] = `${value}`;
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
return res;
|
|
64
|
-
}
|
|
65
|
-
fanyi(path, params) {
|
|
66
|
-
let content = this._data[path] || '';
|
|
67
|
-
if (!content)
|
|
68
|
-
return path;
|
|
69
|
-
if (params) {
|
|
70
|
-
const interpolation = this.cog.interpolation;
|
|
71
|
-
Object.keys(params).forEach(key => (content = content.replace(new RegExp(`${interpolation[0]}\s?${key}\s?${interpolation[1]}`, 'g'), `${params[key]}`)));
|
|
72
|
-
}
|
|
73
|
-
return content;
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
AlainI18nBaseService.decorators = [
|
|
77
|
-
{ type: Injectable }
|
|
78
|
-
];
|
|
79
|
-
AlainI18nBaseService.ctorParameters = () => [
|
|
80
|
-
{ type: AlainConfigService }
|
|
81
|
-
];
|
|
82
|
-
export class AlainI18NServiceFake extends AlainI18nBaseService {
|
|
83
|
-
use(lang, data) {
|
|
84
|
-
this._data = this.flatData(data, []);
|
|
85
|
-
this._currentLang = lang;
|
|
86
|
-
this._change$.next(lang);
|
|
87
|
-
}
|
|
88
|
-
getLangs() {
|
|
89
|
-
return [];
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
AlainI18NServiceFake.ɵprov = i0.ɵɵdefineInjectable({ factory: function AlainI18NServiceFake_Factory() { return new AlainI18NServiceFake(i0.ɵɵinject(i1.AlainConfigService)); }, token: AlainI18NServiceFake, providedIn: "root" });
|
|
93
|
-
AlainI18NServiceFake.decorators = [
|
|
94
|
-
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
95
|
-
];
|
|
96
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RoZW1lL3NyYy9zZXJ2aWNlcy9pMThuL2kxOG4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25FLE9BQU8sRUFBRSxlQUFlLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDbkQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXhDLE9BQU8sRUFBRSxrQkFBa0IsRUFBd0IsTUFBTSxvQkFBb0IsQ0FBQzs7O0FBc0Q5RSxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLGNBQWMsQ0FBbUIsZ0JBQWdCLEVBQUU7SUFDckYsVUFBVSxFQUFFLE1BQU07SUFDbEIsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksb0JBQW9CLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7Q0FDcEUsQ0FBQyxDQUFDO0FBR0gsTUFBTSxPQUFnQixvQkFBb0I7SUFtQnhDLFlBQVksTUFBMEI7UUFqQjVCLGFBQVEsR0FBRyxJQUFJLGVBQWUsQ0FBZ0IsSUFBSSxDQUFDLENBQUM7UUFDcEQsaUJBQVksR0FBVyxFQUFFLENBQUM7UUFDMUIsaUJBQVksR0FBVyxFQUFFLENBQUM7UUFDMUIsVUFBSyxHQUEyQixFQUFFLENBQUM7UUFlM0MsSUFBSSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRTtZQUNuQyxhQUFhLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDO1NBQzVCLENBQUUsQ0FBQztJQUNOLENBQUM7SUFqQkQsSUFBSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQXVCLENBQUM7SUFDekYsQ0FBQztJQUNELElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDO0lBQ0QsSUFBSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzNCLENBQUM7SUFDRCxJQUFJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQVFEOzs7Ozs7Ozs7Ozs7Ozs7OztPQWlCRztJQUNILFFBQVEsQ0FBQyxJQUE2QixFQUFFLFNBQW1CO1FBQ3pELE1BQU0sR0FBRyxHQUEyQixFQUFFLENBQUM7UUFDdkMsS0FBSyxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ25DLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN4QixJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtnQkFDN0IsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFnQyxFQUFFLFNBQVMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztnQkFDckYsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQzNFO2lCQUFNO2dCQUNMLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsR0FBRyxLQUFLLEVBQUUsQ0FBQzthQUN2RTtTQUNGO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBTUQsS0FBSyxDQUFDLElBQVksRUFBRSxNQUFnQztRQUNsRCxJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyQyxJQUFJLENBQUMsT0FBTztZQUFFLE9BQU8sSUFBSSxDQUFDO1FBRTFCLElBQUksTUFBTSxFQUFFO1lBQ1YsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFlLENBQUM7WUFDL0MsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQ3pCLEdBQUcsQ0FBQyxFQUFFLENBQ0osQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FDeEIsSUFBSSxNQUFNLENBQUMsR0FBRyxhQUFhLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxNQUFNLGFBQWEsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUNyRSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUNqQixDQUFDLENBQ0wsQ0FBQztTQUNIO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQzs7O1lBN0VGLFVBQVU7OztZQTNERixrQkFBa0I7O0FBNEkzQixNQUFNLE9BQU8sb0JBQXFCLFNBQVEsb0JBQW9CO0lBQzVELEdBQUcsQ0FBQyxJQUFZLEVBQUUsSUFBNkI7UUFDN0MsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNyQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUN6QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRUQsUUFBUTtRQUNOLE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQzs7OztZQVZGLFVBQVUsU0FBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUsIEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgQWxhaW5Db25maWdTZXJ2aWNlLCBBbGFpblRoZW1lSTE4bkNvbmZpZyB9IGZyb20gJ0BkZWxvbi91dGlsL2NvbmZpZyc7XG5pbXBvcnQgdHlwZSB7IE56U2FmZUFueSB9IGZyb20gJ25nLXpvcnJvLWFudGQvY29yZS90eXBlcyc7XG5cbmltcG9ydCB7IF9IdHRwQ2xpZW50IH0gZnJvbSAnLi4vaHR0cC9odHRwLmNsaWVudCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWxhaW5JMThOU2VydmljZSB7XG4gIFtrZXk6IHN0cmluZ106IE56U2FmZUFueTtcblxuICAvKipcbiAgICogQ2FsbCBgdXNlYCB0byB0cmlnZ2VyIGNoYW5nZSBub3RpZmljYXRpb25cbiAgICpcbiAgICog6LCD55SoIGB1c2VgIOinpuWPkeWPmOabtOmAmuefpVxuICAgKi9cbiAgcmVhZG9ubHkgY2hhbmdlOiBPYnNlcnZhYmxlPHN0cmluZz47XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgZGVmYXVsdCBsYW5ndWFnZVxuICAgKlxuICAgKiDojrflj5bpu5jorqTor63oqIBcbiAgICovXG4gIHJlYWRvbmx5IGRlZmF1bHRMYW5nOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEdldCBjdXJyZW50IGxhbmd1YWdlXG4gICAqXG4gICAqIOiOt+WPluW9k+WJjeivreiogFxuICAgKi9cbiAgcmVhZG9ubHkgY3VycmVudExhbmc6IHN0cmluZztcblxuICAvKipcbiAgICogQ2hhbmdlIGxhbmd1YWdlXG4gICAqXG4gICAqIOWPmOabtOivreiogFxuICAgKlxuICAgKiBAcGFyYW0gZW1pdCDmmK/lkKbop6blj5EgYGNoYW5nZWDvvIzpu5jorqTvvJp0cnVlIDsgU2hvdWxkIGJlIHJlbW92ZWQsIHBsZWFzZSB1c2UgYGNoYW5nZWAgZXZlbnQgaW5zdGVhZC5cbiAgICovXG4gIHVzZShsYW5nOiBzdHJpbmcsIGRhdGE/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPik6IHZvaWQ7XG5cbiAgLyoqXG4gICAqIFJldHVybiB0byB0aGUgY3VycmVudCBsYW5ndWFnZSBsaXN0XG4gICAqXG4gICAqIOi/lOWbnuW9k+WJjeivreiogOWIl+ihqFxuICAgKi9cbiAgZ2V0TGFuZ3MoKTogTnpTYWZlQW55W107XG5cbiAgLyoqXG4gICAqIFRyYW5zbGF0ZSDnv7vor5FcbiAgICpcbiAgICogQHBhcmFtIHBhcmFtcyDmqKHmnb/miYDpnIDopoHnmoTlj4LmlbDlr7nosaFcbiAgICogQHBhcmFtIGlzU2FmZSDmmK/lkKbov5Tlm57lronlhajlrZfnrKbvvIzoh6rliqjosIPnlKggYGJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sYDsgU2hvdWxkIGJlIHJlbW92ZWQsIElmIHlvdSBuZWVkIFNhZmVIdG1sIHN1cHBvcnQsIHBsZWFzZSB1c2UgYHwgaHRtbGAgcGlwZSBpbnN0ZWFkLlxuICAgKi9cbiAgZmFueWkocGF0aDogc3RyaW5nLCBwYXJhbXM/OiB1bmtub3duKTogc3RyaW5nO1xufVxuXG5leHBvcnQgY29uc3QgQUxBSU5fSTE4Tl9UT0tFTiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxBbGFpbkkxOE5TZXJ2aWNlPignYWxhaW5JMThuVG9rZW4nLCB7XG4gIHByb3ZpZGVkSW46ICdyb290JyxcbiAgZmFjdG9yeTogKCkgPT4gbmV3IEFsYWluSTE4TlNlcnZpY2VGYWtlKGluamVjdChBbGFpbkNvbmZpZ1NlcnZpY2UpKVxufSk7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBbGFpbkkxOG5CYXNlU2VydmljZSBpbXBsZW1lbnRzIEFsYWluSTE4TlNlcnZpY2Uge1xuICBwcml2YXRlIGNvZzogQWxhaW5UaGVtZUkxOG5Db25maWc7XG4gIHByb3RlY3RlZCBfY2hhbmdlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nIHwgbnVsbD4obnVsbCk7XG4gIHByb3RlY3RlZCBfY3VycmVudExhbmc6IHN0cmluZyA9ICcnO1xuICBwcm90ZWN0ZWQgX2RlZmF1bHRMYW5nOiBzdHJpbmcgPSAnJztcbiAgcHJvdGVjdGVkIF9kYXRhOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG4gIGdldCBjaGFuZ2UoKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5fY2hhbmdlJC5hc09ic2VydmFibGUoKS5waXBlKGZpbHRlcih3ID0+IHcgIT0gbnVsbCkpIGFzIE9ic2VydmFibGU8c3RyaW5nPjtcbiAgfVxuICBnZXQgZGVmYXVsdExhbmcoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fZGVmYXVsdExhbmc7XG4gIH1cbiAgZ2V0IGN1cnJlbnRMYW5nKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2N1cnJlbnRMYW5nO1xuICB9XG4gIGdldCBkYXRhKCk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLl9kYXRhO1xuICB9XG5cbiAgY29uc3RydWN0b3IoY29nU3J2OiBBbGFpbkNvbmZpZ1NlcnZpY2UpIHtcbiAgICB0aGlzLmNvZyA9IGNvZ1Nydi5tZXJnZSgndGhlbWVJMThuJywge1xuICAgICAgaW50ZXJwb2xhdGlvbjogWyd7eycsICd9fSddXG4gICAgfSkhO1xuICB9XG5cbiAgLyoqXG4gICAqIEZsYXR0ZW5lZCBkYXRhIHNvdXJjZVxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiB7XG4gICAqICAgXCJuYW1lXCI6IFwiTmFtZVwiLFxuICAgKiAgIFwic3lzXCI6IHtcbiAgICogICAgIFwiXCI6IFwiU3lzdGVtXCIsXG4gICAqICAgICBcInRpdGxlXCI6IFwiVGl0bGVcIlxuICAgKiAgIH1cbiAgICogfVxuICAgKiA9PlxuICAgKiB7XG4gICAqICAgXCJuYW1lXCI6IFwiTmFtZVwiLFxuICAgKiAgIFwic3lzXCI6IFwiU3lzdGVtXCIsXG4gICAqICAgXCJzeXMudGl0bGVcIjogXCJUaXRsZVwiXG4gICAqIH1cbiAgICovXG4gIGZsYXREYXRhKGRhdGE6IFJlY29yZDxzdHJpbmcsIHVua25vd24+LCBwYXJlbnRLZXk6IHN0cmluZ1tdKTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB7XG4gICAgY29uc3QgcmVzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG4gICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMoZGF0YSkpIHtcbiAgICAgIGNvbnN0IHZhbHVlID0gZGF0YVtrZXldO1xuICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgY29uc3QgY2hpbGQgPSB0aGlzLmZsYXREYXRhKHZhbHVlIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+LCBwYXJlbnRLZXkuY29uY2F0KGtleSkpO1xuICAgICAgICBPYmplY3Qua2V5cyhjaGlsZCkuZm9yRWFjaChjaGlsZEtleSA9PiAocmVzW2NoaWxkS2V5XSA9IGNoaWxkW2NoaWxkS2V5XSkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzWyhrZXkgPyBwYXJlbnRLZXkuY29uY2F0KGtleSkgOiBwYXJlbnRLZXkpLmpvaW4oJy4nKV0gPSBgJHt2YWx1ZX1gO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzO1xuICB9XG5cbiAgYWJzdHJhY3QgdXNlKGxhbmc6IHN0cmluZywgZGF0YT86IFJlY29yZDxzdHJpbmcsIHVua25vd24+KTogdm9pZDtcblxuICBhYnN0cmFjdCBnZXRMYW5ncygpOiBOelNhZmVBbnlbXTtcblxuICBmYW55aShwYXRoOiBzdHJpbmcsIHBhcmFtcz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+KTogc3RyaW5nIHtcbiAgICBsZXQgY29udGVudCA9IHRoaXMuX2RhdGFbcGF0aF0gfHwgJyc7XG4gICAgaWYgKCFjb250ZW50KSByZXR1cm4gcGF0aDtcblxuICAgIGlmIChwYXJhbXMpIHtcbiAgICAgIGNvbnN0IGludGVycG9sYXRpb24gPSB0aGlzLmNvZy5pbnRlcnBvbGF0aW9uISE7XG4gICAgICBPYmplY3Qua2V5cyhwYXJhbXMpLmZvckVhY2goXG4gICAgICAgIGtleSA9PlxuICAgICAgICAgIChjb250ZW50ID0gY29udGVudC5yZXBsYWNlKFxuICAgICAgICAgICAgbmV3IFJlZ0V4cChgJHtpbnRlcnBvbGF0aW9uWzBdfVxccz8ke2tleX1cXHM/JHtpbnRlcnBvbGF0aW9uWzFdfWAsICdnJyksXG4gICAgICAgICAgICBgJHtwYXJhbXNba2V5XX1gXG4gICAgICAgICAgKSlcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiBjb250ZW50O1xuICB9XG59XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgQWxhaW5JMThOU2VydmljZUZha2UgZXh0ZW5kcyBBbGFpbkkxOG5CYXNlU2VydmljZSB7XG4gIHVzZShsYW5nOiBzdHJpbmcsIGRhdGE6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KTogdm9pZCB7XG4gICAgdGhpcy5fZGF0YSA9IHRoaXMuZmxhdERhdGEoZGF0YSwgW10pO1xuICAgIHRoaXMuX2N1cnJlbnRMYW5nID0gbGFuZztcbiAgICB0aGlzLl9jaGFuZ2UkLm5leHQobGFuZyk7XG4gIH1cblxuICBnZXRMYW5ncygpOiBOelNhZmVBbnlbXSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG59XG4iXX0=
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { Inject, Pipe } from '@angular/core';
|
|
2
|
-
import { ALAIN_I18N_TOKEN } from './i18n';
|
|
3
|
-
export class I18nPipe {
|
|
4
|
-
constructor(i18n) {
|
|
5
|
-
this.i18n = i18n;
|
|
6
|
-
}
|
|
7
|
-
transform(key, params) {
|
|
8
|
-
return this.i18n.fanyi(key, params);
|
|
9
|
-
}
|
|
10
|
-
}
|
|
11
|
-
I18nPipe.decorators = [
|
|
12
|
-
{ type: Pipe, args: [{ name: 'i18n' },] }
|
|
13
|
-
];
|
|
14
|
-
I18nPipe.ctorParameters = () => [
|
|
15
|
-
{ type: undefined, decorators: [{ type: Inject, args: [ALAIN_I18N_TOKEN,] }] }
|
|
16
|
-
];
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvdGhlbWUvc3JjL3NlcnZpY2VzL2kxOG4vaTE4bi5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUU1RCxPQUFPLEVBQW9CLGdCQUFnQixFQUFFLE1BQU0sUUFBUSxDQUFDO0FBRzVELE1BQU0sT0FBTyxRQUFRO0lBQ25CLFlBQThDLElBQXNCO1FBQXRCLFNBQUksR0FBSixJQUFJLENBQWtCO0lBQUcsQ0FBQztJQUV4RSxTQUFTLENBQUMsR0FBVyxFQUFFLE1BQWdDO1FBQ3JELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3RDLENBQUM7OztZQU5GLElBQUksU0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUU7Ozs0Q0FFUCxNQUFNLFNBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEFsYWluSTE4TlNlcnZpY2UsIEFMQUlOX0kxOE5fVE9LRU4gfSBmcm9tICcuL2kxOG4nO1xuXG5AUGlwZSh7IG5hbWU6ICdpMThuJyB9KVxuZXhwb3J0IGNsYXNzIEkxOG5QaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoQUxBSU5fSTE4Tl9UT0tFTikgcHJpdmF0ZSBpMThuOiBBbGFpbkkxOE5TZXJ2aWNlKSB7fVxuXG4gIHRyYW5zZm9ybShrZXk6IHN0cmluZywgcGFyYW1zPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmkxOG4uZmFueWkoa2V5LCBwYXJhbXMpO1xuICB9XG59XG4iXX0=
|
|
@@ -1,252 +0,0 @@
|
|
|
1
|
-
import { Inject, Injectable, Optional } from '@angular/core';
|
|
2
|
-
import { BehaviorSubject } from 'rxjs';
|
|
3
|
-
import { share } from 'rxjs/operators';
|
|
4
|
-
import { ACLService } from '@delon/acl';
|
|
5
|
-
import { ALAIN_I18N_TOKEN } from '../i18n/i18n';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "../i18n/i18n";
|
|
8
|
-
import * as i2 from "@delon/acl";
|
|
9
|
-
/**
|
|
10
|
-
* 菜单服务,[在线文档](https://ng-alain.com/theme/menu)
|
|
11
|
-
*/
|
|
12
|
-
export class MenuService {
|
|
13
|
-
constructor(i18nSrv, aclService) {
|
|
14
|
-
this.i18nSrv = i18nSrv;
|
|
15
|
-
this.aclService = aclService;
|
|
16
|
-
this._change$ = new BehaviorSubject([]);
|
|
17
|
-
this.data = [];
|
|
18
|
-
this.i18n$ = this.i18nSrv.change.subscribe(() => this.resume());
|
|
19
|
-
}
|
|
20
|
-
get change() {
|
|
21
|
-
return this._change$.pipe(share());
|
|
22
|
-
}
|
|
23
|
-
visit(data, callback) {
|
|
24
|
-
const inFn = (list, parentMenu, depth) => {
|
|
25
|
-
for (const item of list) {
|
|
26
|
-
callback(item, parentMenu, depth);
|
|
27
|
-
if (item.children && item.children.length > 0) {
|
|
28
|
-
inFn(item.children, item, depth + 1);
|
|
29
|
-
}
|
|
30
|
-
else {
|
|
31
|
-
item.children = [];
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
};
|
|
35
|
-
inFn(data, null, 0);
|
|
36
|
-
}
|
|
37
|
-
add(items) {
|
|
38
|
-
this.data = items;
|
|
39
|
-
this.resume();
|
|
40
|
-
}
|
|
41
|
-
fixItem(item) {
|
|
42
|
-
item._aclResult = true;
|
|
43
|
-
if (!item.link)
|
|
44
|
-
item.link = '';
|
|
45
|
-
if (!item.externalLink)
|
|
46
|
-
item.externalLink = '';
|
|
47
|
-
// badge
|
|
48
|
-
if (item.badge) {
|
|
49
|
-
if (item.badgeDot !== true) {
|
|
50
|
-
item.badgeDot = false;
|
|
51
|
-
}
|
|
52
|
-
if (!item.badgeStatus) {
|
|
53
|
-
item.badgeStatus = 'error';
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
if (!Array.isArray(item.children)) {
|
|
57
|
-
item.children = [];
|
|
58
|
-
}
|
|
59
|
-
// icon
|
|
60
|
-
if (typeof item.icon === 'string') {
|
|
61
|
-
let type = 'class';
|
|
62
|
-
let value = item.icon;
|
|
63
|
-
// compatible `anticon anticon-user`
|
|
64
|
-
if (~item.icon.indexOf(`anticon-`)) {
|
|
65
|
-
type = 'icon';
|
|
66
|
-
value = value.split('-').slice(1).join('-');
|
|
67
|
-
}
|
|
68
|
-
else if (/^https?:\/\//.test(item.icon)) {
|
|
69
|
-
type = 'img';
|
|
70
|
-
}
|
|
71
|
-
item.icon = { type, value };
|
|
72
|
-
}
|
|
73
|
-
if (item.icon != null) {
|
|
74
|
-
item.icon = Object.assign({ theme: 'outline', spin: false }, item.icon);
|
|
75
|
-
}
|
|
76
|
-
item.text = item.i18n && this.i18nSrv ? this.i18nSrv.fanyi(item.i18n) : item.text;
|
|
77
|
-
// group
|
|
78
|
-
item.group = item.group !== false;
|
|
79
|
-
// hidden
|
|
80
|
-
item._hidden = typeof item.hide === 'undefined' ? false : item.hide;
|
|
81
|
-
// disabled
|
|
82
|
-
item.disabled = typeof item.disabled === 'undefined' ? false : item.disabled;
|
|
83
|
-
// acl
|
|
84
|
-
item._aclResult = item.acl && this.aclService ? this.aclService.can(item.acl) : true;
|
|
85
|
-
}
|
|
86
|
-
/**
|
|
87
|
-
* 重置菜单,可能I18N、用户权限变动时需要调用刷新
|
|
88
|
-
*/
|
|
89
|
-
resume(callback) {
|
|
90
|
-
let i = 1;
|
|
91
|
-
const shortcuts = [];
|
|
92
|
-
this.visit(this.data, (item, parent, depth) => {
|
|
93
|
-
item._id = i++;
|
|
94
|
-
item._parent = parent;
|
|
95
|
-
item._depth = depth;
|
|
96
|
-
this.fixItem(item);
|
|
97
|
-
// shortcut
|
|
98
|
-
if (parent && item.shortcut === true && parent.shortcutRoot !== true) {
|
|
99
|
-
shortcuts.push(item);
|
|
100
|
-
}
|
|
101
|
-
if (callback)
|
|
102
|
-
callback(item, parent, depth);
|
|
103
|
-
});
|
|
104
|
-
this.loadShortcut(shortcuts);
|
|
105
|
-
this._change$.next(this.data);
|
|
106
|
-
}
|
|
107
|
-
/**
|
|
108
|
-
* 加载快捷菜单,加载位置规则如下:
|
|
109
|
-
* 1、统一在下标0的节点下(即【主导航】节点下方)
|
|
110
|
-
* 1、若 children 存在 【shortcutRoot: true】则最优先【推荐】这种方式
|
|
111
|
-
* 2、否则查找带有【dashboard】字样链接,若存在则在此菜单的下方创建快捷入口
|
|
112
|
-
* 3、否则放在0节点位置
|
|
113
|
-
*/
|
|
114
|
-
loadShortcut(shortcuts) {
|
|
115
|
-
if (shortcuts.length === 0 || this.data.length === 0) {
|
|
116
|
-
return;
|
|
117
|
-
}
|
|
118
|
-
const ls = this.data[0].children;
|
|
119
|
-
let pos = ls.findIndex(w => w.shortcutRoot === true);
|
|
120
|
-
if (pos === -1) {
|
|
121
|
-
pos = ls.findIndex(w => w.link.includes('dashboard'));
|
|
122
|
-
pos = (pos !== -1 ? pos : -1) + 1;
|
|
123
|
-
const shortcutMenu = {
|
|
124
|
-
text: '快捷菜单',
|
|
125
|
-
i18n: 'shortcut',
|
|
126
|
-
icon: 'icon-rocket',
|
|
127
|
-
children: []
|
|
128
|
-
};
|
|
129
|
-
this.data[0].children.splice(pos, 0, shortcutMenu);
|
|
130
|
-
}
|
|
131
|
-
let _data = this.data[0].children[pos];
|
|
132
|
-
if (_data.i18n && this.i18nSrv)
|
|
133
|
-
_data.text = this.i18nSrv.fanyi(_data.i18n);
|
|
134
|
-
_data = Object.assign(_data, {
|
|
135
|
-
shortcutRoot: true,
|
|
136
|
-
_id: -1,
|
|
137
|
-
_parent: null,
|
|
138
|
-
_depth: 1
|
|
139
|
-
});
|
|
140
|
-
_data.children = shortcuts.map(i => {
|
|
141
|
-
i._depth = 2;
|
|
142
|
-
i._parent = _data;
|
|
143
|
-
return i;
|
|
144
|
-
});
|
|
145
|
-
}
|
|
146
|
-
get menus() {
|
|
147
|
-
return this.data;
|
|
148
|
-
}
|
|
149
|
-
/**
|
|
150
|
-
* 清空菜单
|
|
151
|
-
*/
|
|
152
|
-
clear() {
|
|
153
|
-
this.data = [];
|
|
154
|
-
this._change$.next(this.data);
|
|
155
|
-
}
|
|
156
|
-
getHit(data, url, recursive = false, cb = null) {
|
|
157
|
-
let item = null;
|
|
158
|
-
while (!item && url) {
|
|
159
|
-
this.visit(data, i => {
|
|
160
|
-
if (cb) {
|
|
161
|
-
cb(i);
|
|
162
|
-
}
|
|
163
|
-
if (i.link != null && i.link === url) {
|
|
164
|
-
item = i;
|
|
165
|
-
}
|
|
166
|
-
});
|
|
167
|
-
if (!recursive)
|
|
168
|
-
break;
|
|
169
|
-
if (/[?;]/g.test(url)) {
|
|
170
|
-
url = url.split(/[?;]/g)[0];
|
|
171
|
-
}
|
|
172
|
-
else {
|
|
173
|
-
url = url.split('/').slice(0, -1).join('/');
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
return item;
|
|
177
|
-
}
|
|
178
|
-
/**
|
|
179
|
-
* 根据URL设置菜单 `_open` 属性
|
|
180
|
-
* - 若 `recursive: true` 则会自动向上递归查找
|
|
181
|
-
* - 菜单数据源包含 `/ware`,则 `/ware/1` 也视为 `/ware` 项
|
|
182
|
-
*/
|
|
183
|
-
openedByUrl(url, recursive = false) {
|
|
184
|
-
if (!url)
|
|
185
|
-
return;
|
|
186
|
-
let findItem = this.getHit(this.data, url, recursive, (i) => {
|
|
187
|
-
i._selected = false;
|
|
188
|
-
i._open = false;
|
|
189
|
-
});
|
|
190
|
-
if (findItem == null)
|
|
191
|
-
return;
|
|
192
|
-
do {
|
|
193
|
-
findItem._selected = true;
|
|
194
|
-
findItem._open = true;
|
|
195
|
-
findItem = findItem._parent;
|
|
196
|
-
} while (findItem);
|
|
197
|
-
}
|
|
198
|
-
/**
|
|
199
|
-
* 根据url获取菜单列表
|
|
200
|
-
* - 若 `recursive: true` 则会自动向上递归查找
|
|
201
|
-
* - 菜单数据源包含 `/ware`,则 `/ware/1` 也视为 `/ware` 项
|
|
202
|
-
*/
|
|
203
|
-
getPathByUrl(url, recursive = false) {
|
|
204
|
-
const ret = [];
|
|
205
|
-
let item = this.getHit(this.data, url, recursive);
|
|
206
|
-
if (!item)
|
|
207
|
-
return ret;
|
|
208
|
-
do {
|
|
209
|
-
ret.splice(0, 0, item);
|
|
210
|
-
item = item._parent;
|
|
211
|
-
} while (item);
|
|
212
|
-
return ret;
|
|
213
|
-
}
|
|
214
|
-
/**
|
|
215
|
-
* Get menu based on `key`
|
|
216
|
-
*/
|
|
217
|
-
getItem(key) {
|
|
218
|
-
let res = null;
|
|
219
|
-
this.visit(this.data, item => {
|
|
220
|
-
if (res == null && item.key === key) {
|
|
221
|
-
res = item;
|
|
222
|
-
}
|
|
223
|
-
});
|
|
224
|
-
return res;
|
|
225
|
-
}
|
|
226
|
-
/**
|
|
227
|
-
* Set menu based on `key`
|
|
228
|
-
*/
|
|
229
|
-
setItem(key, value) {
|
|
230
|
-
const item = this.getItem(key);
|
|
231
|
-
if (item == null)
|
|
232
|
-
return;
|
|
233
|
-
Object.keys(value).forEach(k => {
|
|
234
|
-
item[k] = value[k];
|
|
235
|
-
});
|
|
236
|
-
this.fixItem(item);
|
|
237
|
-
this._change$.next(this.data);
|
|
238
|
-
}
|
|
239
|
-
ngOnDestroy() {
|
|
240
|
-
this._change$.unsubscribe();
|
|
241
|
-
this.i18n$.unsubscribe();
|
|
242
|
-
}
|
|
243
|
-
}
|
|
244
|
-
MenuService.ɵprov = i0.ɵɵdefineInjectable({ factory: function MenuService_Factory() { return new MenuService(i0.ɵɵinject(i1.ALAIN_I18N_TOKEN, 8), i0.ɵɵinject(i2.ACLService, 8)); }, token: MenuService, providedIn: "root" });
|
|
245
|
-
MenuService.decorators = [
|
|
246
|
-
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
247
|
-
];
|
|
248
|
-
MenuService.ctorParameters = () => [
|
|
249
|
-
{ type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [ALAIN_I18N_TOKEN,] }] },
|
|
250
|
-
{ type: ACLService, decorators: [{ type: Optional }] }
|
|
251
|
-
];
|
|
252
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvdGhlbWUvc3JjL3NlcnZpY2VzL21lbnUvbWVudS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFhLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4RSxPQUFPLEVBQUUsZUFBZSxFQUE0QixNQUFNLE1BQU0sQ0FBQztBQUNqRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdkMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUd4QyxPQUFPLEVBQW9CLGdCQUFnQixFQUFFLE1BQU0sY0FBYyxDQUFDOzs7O0FBR2xFOztHQUVHO0FBRUgsTUFBTSxPQUFPLFdBQVc7SUFNdEIsWUFHVSxPQUF5QixFQUNiLFVBQXNCO1FBRGxDLFlBQU8sR0FBUCxPQUFPLENBQWtCO1FBQ2IsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQVRwQyxhQUFRLEdBQTRCLElBQUksZUFBZSxDQUFTLEVBQUUsQ0FBQyxDQUFDO1FBR3BFLFNBQUksR0FBVyxFQUFFLENBQUM7UUFReEIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVELElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsS0FBSyxDQUFDLElBQVksRUFBRSxRQUF3RTtRQUMxRixNQUFNLElBQUksR0FBRyxDQUFDLElBQVksRUFBRSxVQUF1QixFQUFFLEtBQWEsRUFBUSxFQUFFO1lBQzFFLEtBQUssTUFBTSxJQUFJLElBQUksSUFBSSxFQUFFO2dCQUN2QixRQUFRLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FBQztnQkFDbEMsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtvQkFDN0MsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQztpQkFDdEM7cUJBQU07b0JBQ0wsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7aUJBQ3BCO2FBQ0Y7UUFDSCxDQUFDLENBQUM7UUFFRixJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN0QixDQUFDO0lBRUQsR0FBRyxDQUFDLEtBQWE7UUFDZixJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztRQUNsQixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDaEIsQ0FBQztJQUVPLE9BQU8sQ0FBQyxJQUFlO1FBQzdCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1FBRXZCLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSTtZQUFFLElBQUksQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQy9CLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWTtZQUFFLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDO1FBRS9DLFFBQVE7UUFDUixJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDZCxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssSUFBSSxFQUFFO2dCQUMxQixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQzthQUN2QjtZQUNELElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO2dCQUNyQixJQUFJLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQzthQUM1QjtTQUNGO1FBRUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ2pDLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO1NBQ3BCO1FBRUQsT0FBTztRQUNQLElBQUksT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLFFBQVEsRUFBRTtZQUNqQyxJQUFJLElBQUksR0FBRyxPQUFPLENBQUM7WUFDbkIsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztZQUN0QixvQ0FBb0M7WUFDcEMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxFQUFFO2dCQUNsQyxJQUFJLEdBQUcsTUFBTSxDQUFDO2dCQUNkLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDN0M7aUJBQU0sSUFBSSxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDekMsSUFBSSxHQUFHLEtBQUssQ0FBQzthQUNkO1lBQ0QsSUFBSSxDQUFDLElBQUksR0FBRyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQWUsQ0FBQztTQUMxQztRQUNELElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLEVBQUU7WUFDckIsSUFBSSxDQUFDLElBQUksbUJBQUssS0FBSyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsS0FBSyxJQUFNLElBQUksQ0FBQyxJQUFpQixDQUFFLENBQUM7U0FDM0U7UUFFRCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBRWxGLFFBQVE7UUFDUixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLEtBQUssS0FBSyxDQUFDO1FBRWxDLFNBQVM7UUFDVCxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxXQUFXLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztRQUVwRSxXQUFXO1FBQ1gsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLElBQUksQ0FBQyxRQUFRLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7UUFFN0UsTUFBTTtRQUNOLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUN2RixDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsUUFBeUU7UUFDOUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ1YsTUFBTSxTQUFTLEdBQVcsRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLElBQWUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEVBQUU7WUFDdkQsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNmLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1lBQ3BCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFbkIsV0FBVztZQUNYLElBQUksTUFBTSxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssSUFBSSxJQUFJLE1BQU0sQ0FBQyxZQUFZLEtBQUssSUFBSSxFQUFFO2dCQUNwRSxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ3RCO1lBRUQsSUFBSSxRQUFRO2dCQUFFLFFBQVEsQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzlDLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM3QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNLLFlBQVksQ0FBQyxTQUFzQjtRQUN6QyxJQUFJLFNBQVMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUNwRCxPQUFPO1NBQ1I7UUFFRCxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQXVCLENBQUM7UUFDaEQsSUFBSSxHQUFHLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxZQUFZLEtBQUssSUFBSSxDQUFDLENBQUM7UUFDckQsSUFBSSxHQUFHLEtBQUssQ0FBQyxDQUFDLEVBQUU7WUFDZCxHQUFHLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFLLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7WUFDdkQsR0FBRyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2xDLE1BQU0sWUFBWSxHQUFHO2dCQUNuQixJQUFJLEVBQUUsTUFBTTtnQkFDWixJQUFJLEVBQUUsVUFBVTtnQkFDaEIsSUFBSSxFQUFFLGFBQWE7Z0JBQ25CLFFBQVEsRUFBRSxFQUFFO2FBQ0EsQ0FBQztZQUNmLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLFlBQVksQ0FBQyxDQUFDO1NBQ3JEO1FBQ0QsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDeEMsSUFBSSxLQUFLLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxPQUFPO1lBQUUsS0FBSyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDNUUsS0FBSyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFO1lBQzNCLFlBQVksRUFBRSxJQUFJO1lBQ2xCLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDUCxPQUFPLEVBQUUsSUFBSTtZQUNiLE1BQU0sRUFBRSxDQUFDO1NBQ0csQ0FBQyxDQUFDO1FBQ2hCLEtBQUssQ0FBQyxRQUFRLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNqQyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztZQUNiLENBQUMsQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1lBQ2xCLE9BQU8sQ0FBQyxDQUFDO1FBQ1gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ25CLENBQUM7SUFFRDs7T0FFRztJQUNILEtBQUs7UUFDSCxJQUFJLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUNmLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsTUFBTSxDQUFDLElBQVksRUFBRSxHQUFXLEVBQUUsWUFBcUIsS0FBSyxFQUFFLEtBQWlDLElBQUk7UUFDakcsSUFBSSxJQUFJLEdBQWdCLElBQUksQ0FBQztRQUU3QixPQUFPLENBQUMsSUFBSSxJQUFJLEdBQUcsRUFBRTtZQUNuQixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRTtnQkFDbkIsSUFBSSxFQUFFLEVBQUU7b0JBQ04sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUNQO2dCQUNELElBQUksQ0FBQyxDQUFDLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxHQUFHLEVBQUU7b0JBQ3BDLElBQUksR0FBRyxDQUFDLENBQUM7aUJBQ1Y7WUFDSCxDQUFDLENBQUMsQ0FBQztZQUVILElBQUksQ0FBQyxTQUFTO2dCQUFFLE1BQU07WUFFdEIsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUNyQixHQUFHLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUM3QjtpQkFBTTtnQkFDTCxHQUFHLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQzdDO1NBQ0Y7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsV0FBVyxDQUFDLEdBQWtCLEVBQUUsWUFBcUIsS0FBSztRQUN4RCxJQUFJLENBQUMsR0FBRztZQUFFLE9BQU87UUFFakIsSUFBSSxRQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFZLEVBQUUsRUFBRTtZQUNyRSxDQUFDLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztZQUNwQixDQUFDLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNsQixDQUFDLENBQWMsQ0FBQztRQUNoQixJQUFJLFFBQVEsSUFBSSxJQUFJO1lBQUUsT0FBTztRQUU3QixHQUFHO1lBQ0QsUUFBUSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7WUFDMUIsUUFBUSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7WUFDdEIsUUFBUSxHQUFHLFFBQVEsQ0FBQyxPQUFRLENBQUM7U0FDOUIsUUFBUSxRQUFRLEVBQUU7SUFDckIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxZQUFZLENBQUMsR0FBVyxFQUFFLFlBQXFCLEtBQUs7UUFDbEQsTUFBTSxHQUFHLEdBQVcsRUFBRSxDQUFDO1FBQ3ZCLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsU0FBUyxDQUFjLENBQUM7UUFFL0QsSUFBSSxDQUFDLElBQUk7WUFBRSxPQUFPLEdBQUcsQ0FBQztRQUV0QixHQUFHO1lBQ0QsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ3ZCLElBQUksR0FBRyxJQUFJLENBQUMsT0FBUSxDQUFDO1NBQ3RCLFFBQVEsSUFBSSxFQUFFO1FBRWYsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRUQ7O09BRUc7SUFDSCxPQUFPLENBQUMsR0FBVztRQUNqQixJQUFJLEdBQUcsR0FBZ0IsSUFBSSxDQUFDO1FBQzVCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRTtZQUMzQixJQUFJLEdBQUcsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLEdBQUcsS0FBSyxHQUFHLEVBQUU7Z0JBQ25DLEdBQUcsR0FBRyxJQUFJLENBQUM7YUFDWjtRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRUQ7O09BRUc7SUFDSCxPQUFPLENBQUMsR0FBVyxFQUFFLEtBQVc7UUFDOUIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMvQixJQUFJLElBQUksSUFBSSxJQUFJO1lBQUUsT0FBTztRQUV6QixNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUM3QixJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3JCLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVuQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQzVCLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDM0IsQ0FBQzs7OztZQXhRRixVQUFVLFNBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFOzs7NENBUTdCLFFBQVEsWUFDUixNQUFNLFNBQUMsZ0JBQWdCO1lBbEJuQixVQUFVLHVCQW9CZCxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBPbkRlc3Ryb3ksIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgc2hhcmUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IEFDTFNlcnZpY2UgfSBmcm9tICdAZGVsb24vYWNsJztcbmltcG9ydCB0eXBlIHsgTnpTYWZlQW55IH0gZnJvbSAnbmctem9ycm8tYW50ZC9jb3JlL3R5cGVzJztcblxuaW1wb3J0IHsgQWxhaW5JMThOU2VydmljZSwgQUxBSU5fSTE4Tl9UT0tFTiB9IGZyb20gJy4uL2kxOG4vaTE4bic7XG5pbXBvcnQgeyBNZW51LCBNZW51SWNvbiwgTWVudUlubmVyIH0gZnJvbSAnLi9pbnRlcmZhY2UnO1xuXG4vKipcbiAqIOiPnOWNleacjeWKoe+8jFvlnKjnur/mlofmoaNdKGh0dHBzOi8vbmctYWxhaW4uY29tL3RoZW1lL21lbnUpXG4gKi9cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgTWVudVNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBwcml2YXRlIF9jaGFuZ2UkOiBCZWhhdmlvclN1YmplY3Q8TWVudVtdPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TWVudVtdPihbXSk7XG4gIHByaXZhdGUgaTE4biQ6IFN1YnNjcmlwdGlvbjtcblxuICBwcml2YXRlIGRhdGE6IE1lbnVbXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBPcHRpb25hbCgpXG4gICAgQEluamVjdChBTEFJTl9JMThOX1RPS0VOKVxuICAgIHByaXZhdGUgaTE4blNydjogQWxhaW5JMThOU2VydmljZSxcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIGFjbFNlcnZpY2U6IEFDTFNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5pMThuJCA9IHRoaXMuaTE4blNydi5jaGFuZ2Uuc3Vic2NyaWJlKCgpID0+IHRoaXMucmVzdW1lKCkpO1xuICB9XG5cbiAgZ2V0IGNoYW5nZSgpOiBPYnNlcnZhYmxlPE1lbnVbXT4ge1xuICAgIHJldHVybiB0aGlzLl9jaGFuZ2UkLnBpcGUoc2hhcmUoKSk7XG4gIH1cblxuICB2aXNpdChkYXRhOiBNZW51W10sIGNhbGxiYWNrOiAoaXRlbTogTWVudSwgcGFyZW50TWVudW06IE1lbnUgfCBudWxsLCBkZXB0aD86IG51bWJlcikgPT4gdm9pZCk6IHZvaWQge1xuICAgIGNvbnN0IGluRm4gPSAobGlzdDogTWVudVtdLCBwYXJlbnRNZW51OiBNZW51IHwgbnVsbCwgZGVwdGg6IG51bWJlcik6IHZvaWQgPT4ge1xuICAgICAgZm9yIChjb25zdCBpdGVtIG9mIGxpc3QpIHtcbiAgICAgICAgY2FsbGJhY2soaXRlbSwgcGFyZW50TWVudSwgZGVwdGgpO1xuICAgICAgICBpZiAoaXRlbS5jaGlsZHJlbiAmJiBpdGVtLmNoaWxkcmVuLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBpbkZuKGl0ZW0uY2hpbGRyZW4sIGl0ZW0sIGRlcHRoICsgMSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaXRlbS5jaGlsZHJlbiA9IFtdO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcblxuICAgIGluRm4oZGF0YSwgbnVsbCwgMCk7XG4gIH1cblxuICBhZGQoaXRlbXM6IE1lbnVbXSk6IHZvaWQge1xuICAgIHRoaXMuZGF0YSA9IGl0ZW1zO1xuICAgIHRoaXMucmVzdW1lKCk7XG4gIH1cblxuICBwcml2YXRlIGZpeEl0ZW0oaXRlbTogTWVudUlubmVyKTogdm9pZCB7XG4gICAgaXRlbS5fYWNsUmVzdWx0ID0gdHJ1ZTtcblxuICAgIGlmICghaXRlbS5saW5rKSBpdGVtLmxpbmsgPSAnJztcbiAgICBpZiAoIWl0ZW0uZXh0ZXJuYWxMaW5rKSBpdGVtLmV4dGVybmFsTGluayA9ICcnO1xuXG4gICAgLy8gYmFkZ2VcbiAgICBpZiAoaXRlbS5iYWRnZSkge1xuICAgICAgaWYgKGl0ZW0uYmFkZ2VEb3QgIT09IHRydWUpIHtcbiAgICAgICAgaXRlbS5iYWRnZURvdCA9IGZhbHNlO1xuICAgICAgfVxuICAgICAgaWYgKCFpdGVtLmJhZGdlU3RhdHVzKSB7XG4gICAgICAgIGl0ZW0uYmFkZ2VTdGF0dXMgPSAnZXJyb3InO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICghQXJyYXkuaXNBcnJheShpdGVtLmNoaWxkcmVuKSkge1xuICAgICAgaXRlbS5jaGlsZHJlbiA9IFtdO1xuICAgIH1cblxuICAgIC8vIGljb25cbiAgICBpZiAodHlwZW9mIGl0ZW0uaWNvbiA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGxldCB0eXBlID0gJ2NsYXNzJztcbiAgICAgIGxldCB2YWx1ZSA9IGl0ZW0uaWNvbjtcbiAgICAgIC8vIGNvbXBhdGlibGUgYGFudGljb24gYW50aWNvbi11c2VyYFxuICAgICAgaWYgKH5pdGVtLmljb24uaW5kZXhPZihgYW50aWNvbi1gKSkge1xuICAgICAgICB0eXBlID0gJ2ljb24nO1xuICAgICAgICB2YWx1ZSA9IHZhbHVlLnNwbGl0KCctJykuc2xpY2UoMSkuam9pbignLScpO1xuICAgICAgfSBlbHNlIGlmICgvXmh0dHBzPzpcXC9cXC8vLnRlc3QoaXRlbS5pY29uKSkge1xuICAgICAgICB0eXBlID0gJ2ltZyc7XG4gICAgICB9XG4gICAgICBpdGVtLmljb24gPSB7IHR5cGUsIHZhbHVlIH0gYXMgTnpTYWZlQW55O1xuICAgIH1cbiAgICBpZiAoaXRlbS5pY29uICE9IG51bGwpIHtcbiAgICAgIGl0ZW0uaWNvbiA9IHsgdGhlbWU6ICdvdXRsaW5lJywgc3BpbjogZmFsc2UsIC4uLihpdGVtLmljb24gYXMgTWVudUljb24pIH07XG4gICAgfVxuXG4gICAgaXRlbS50ZXh0ID0gaXRlbS5pMThuICYmIHRoaXMuaTE4blNydiA/IHRoaXMuaTE4blNydi5mYW55aShpdGVtLmkxOG4pIDogaXRlbS50ZXh0O1xuXG4gICAgLy8gZ3JvdXBcbiAgICBpdGVtLmdyb3VwID0gaXRlbS5ncm91cCAhPT0gZmFsc2U7XG5cbiAgICAvLyBoaWRkZW5cbiAgICBpdGVtLl9oaWRkZW4gPSB0eXBlb2YgaXRlbS5oaWRlID09PSAndW5kZWZpbmVkJyA/IGZhbHNlIDogaXRlbS5oaWRlO1xuXG4gICAgLy8gZGlzYWJsZWRcbiAgICBpdGVtLmRpc2FibGVkID0gdHlwZW9mIGl0ZW0uZGlzYWJsZWQgPT09ICd1bmRlZmluZWQnID8gZmFsc2UgOiBpdGVtLmRpc2FibGVkO1xuXG4gICAgLy8gYWNsXG4gICAgaXRlbS5fYWNsUmVzdWx0ID0gaXRlbS5hY2wgJiYgdGhpcy5hY2xTZXJ2aWNlID8gdGhpcy5hY2xTZXJ2aWNlLmNhbihpdGVtLmFjbCkgOiB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIOmHjee9ruiPnOWNle+8jOWPr+iDvUkxOE7jgIHnlKjmiLfmnYPpmZDlj5jliqjml7bpnIDopoHosIPnlKjliLfmlrBcbiAgICovXG4gIHJlc3VtZShjYWxsYmFjaz86IChpdGVtOiBNZW51LCBwYXJlbnRNZW51bTogTWVudSB8IG51bGwsIGRlcHRoPzogbnVtYmVyKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgbGV0IGkgPSAxO1xuICAgIGNvbnN0IHNob3J0Y3V0czogTWVudVtdID0gW107XG4gICAgdGhpcy52aXNpdCh0aGlzLmRhdGEsIChpdGVtOiBNZW51SW5uZXIsIHBhcmVudCwgZGVwdGgpID0+IHtcbiAgICAgIGl0ZW0uX2lkID0gaSsrO1xuICAgICAgaXRlbS5fcGFyZW50ID0gcGFyZW50O1xuICAgICAgaXRlbS5fZGVwdGggPSBkZXB0aDtcbiAgICAgIHRoaXMuZml4SXRlbShpdGVtKTtcblxuICAgICAgLy8gc2hvcnRjdXRcbiAgICAgIGlmIChwYXJlbnQgJiYgaXRlbS5zaG9ydGN1dCA9PT0gdHJ1ZSAmJiBwYXJlbnQuc2hvcnRjdXRSb290ICE9PSB0cnVlKSB7XG4gICAgICAgIHNob3J0Y3V0cy5wdXNoKGl0ZW0pO1xuICAgICAgfVxuXG4gICAgICBpZiAoY2FsbGJhY2spIGNhbGxiYWNrKGl0ZW0sIHBhcmVudCwgZGVwdGgpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5sb2FkU2hvcnRjdXQoc2hvcnRjdXRzKTtcbiAgICB0aGlzLl9jaGFuZ2UkLm5leHQodGhpcy5kYXRhKTtcbiAgfVxuXG4gIC8qKlxuICAgKiDliqDovb3lv6vmjbfoj5zljZXvvIzliqDovb3kvY3nva7op4TliJnlpoLkuIvvvJpcbiAgICogMeOAgee7n+S4gOWcqOS4i+aghzDnmoToioLngrnkuIvvvIjljbPjgJDkuLvlr7zoiKrjgJHoioLngrnkuIvmlrnvvIlcbiAgICogICAgICAx44CB6IulIGNoaWxkcmVuIOWtmOWcqCDjgJBzaG9ydGN1dFJvb3Q6IHRydWXjgJHliJnmnIDkvJjlhYjjgJDmjqjojZDjgJHov5nnp43mlrnlvI9cbiAgICogICAgICAy44CB5ZCm5YiZ5p+l5om+5bim5pyJ44CQZGFzaGJvYXJk44CR5a2X5qC36ZO+5o6l77yM6Iul5a2Y5Zyo5YiZ5Zyo5q2k6I+c5Y2V55qE5LiL5pa55Yib5bu65b+r5o235YWl5Y+jXG4gICAqICAgICAgM+OAgeWQpuWImeaUvuWcqDDoioLngrnkvY3nva5cbiAgICovXG4gIHByaXZhdGUgbG9hZFNob3J0Y3V0KHNob3J0Y3V0czogTWVudUlubmVyW10pOiB2b2lkIHtcbiAgICBpZiAoc2hvcnRjdXRzLmxlbmd0aCA9PT0gMCB8fCB0aGlzLmRhdGEubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgbHMgPSB0aGlzLmRhdGFbMF0uY2hpbGRyZW4gYXMgTWVudUlubmVyW107XG4gICAgbGV0IHBvcyA9IGxzLmZpbmRJbmRleCh3ID0+IHcuc2hvcnRjdXRSb290ID09PSB0cnVlKTtcbiAgICBpZiAocG9zID09PSAtMSkge1xuICAgICAgcG9zID0gbHMuZmluZEluZGV4KHcgPT4gdy5saW5rIS5pbmNsdWRlcygnZGFzaGJvYXJkJykpO1xuICAgICAgcG9zID0gKHBvcyAhPT0gLTEgPyBwb3MgOiAtMSkgKyAxO1xuICAgICAgY29uc3Qgc2hvcnRjdXRNZW51ID0ge1xuICAgICAgICB0ZXh0OiAn5b+r5o236I+c5Y2VJyxcbiAgICAgICAgaTE4bjogJ3Nob3J0Y3V0JyxcbiAgICAgICAgaWNvbjogJ2ljb24tcm9ja2V0JyxcbiAgICAgICAgY2hpbGRyZW46IFtdXG4gICAgICB9IGFzIE1lbnVJbm5lcjtcbiAgICAgIHRoaXMuZGF0YVswXS5jaGlsZHJlbiEuc3BsaWNlKHBvcywgMCwgc2hvcnRjdXRNZW51KTtcbiAgICB9XG4gICAgbGV0IF9kYXRhID0gdGhpcy5kYXRhWzBdLmNoaWxkcmVuIVtwb3NdO1xuICAgIGlmIChfZGF0YS5pMThuICYmIHRoaXMuaTE4blNydikgX2RhdGEudGV4dCA9IHRoaXMuaTE4blNydi5mYW55aShfZGF0YS5pMThuKTtcbiAgICBfZGF0YSA9IE9iamVjdC5hc3NpZ24oX2RhdGEsIHtcbiAgICAgIHNob3J0Y3V0Um9vdDogdHJ1ZSxcbiAgICAgIF9pZDogLTEsXG4gICAgICBfcGFyZW50OiBudWxsLFxuICAgICAgX2RlcHRoOiAxXG4gICAgfSBhcyBNZW51SW5uZXIpO1xuICAgIF9kYXRhLmNoaWxkcmVuID0gc2hvcnRjdXRzLm1hcChpID0+IHtcbiAgICAgIGkuX2RlcHRoID0gMjtcbiAgICAgIGkuX3BhcmVudCA9IF9kYXRhO1xuICAgICAgcmV0dXJuIGk7XG4gICAgfSk7XG4gIH1cblxuICBnZXQgbWVudXMoKTogTWVudVtdIHtcbiAgICByZXR1cm4gdGhpcy5kYXRhO1xuICB9XG5cbiAgLyoqXG4gICAqIOa4heepuuiPnOWNlVxuICAgKi9cbiAgY2xlYXIoKTogdm9pZCB7XG4gICAgdGhpcy5kYXRhID0gW107XG4gICAgdGhpcy5fY2hhbmdlJC5uZXh0KHRoaXMuZGF0YSk7XG4gIH1cblxuICBnZXRIaXQoZGF0YTogTWVudVtdLCB1cmw6IHN0cmluZywgcmVjdXJzaXZlOiBib29sZWFuID0gZmFsc2UsIGNiOiAoKGk6IE1lbnUpID0+IHZvaWQpIHwgbnVsbCA9IG51bGwpOiBNZW51IHwgbnVsbCB7XG4gICAgbGV0IGl0ZW06IE1lbnUgfCBudWxsID0gbnVsbDtcblxuICAgIHdoaWxlICghaXRlbSAmJiB1cmwpIHtcbiAgICAgIHRoaXMudmlzaXQoZGF0YSwgaSA9PiB7XG4gICAgICAgIGlmIChjYikge1xuICAgICAgICAgIGNiKGkpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpLmxpbmsgIT0gbnVsbCAmJiBpLmxpbmsgPT09IHVybCkge1xuICAgICAgICAgIGl0ZW0gPSBpO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgaWYgKCFyZWN1cnNpdmUpIGJyZWFrO1xuXG4gICAgICBpZiAoL1s/O10vZy50ZXN0KHVybCkpIHtcbiAgICAgICAgdXJsID0gdXJsLnNwbGl0KC9bPztdL2cpWzBdO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdXJsID0gdXJsLnNwbGl0KCcvJykuc2xpY2UoMCwgLTEpLmpvaW4oJy8nKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gaXRlbTtcbiAgfVxuXG4gIC8qKlxuICAgKiDmoLnmja5VUkzorr7nva7oj5zljZUgYF9vcGVuYCDlsZ7mgKdcbiAgICogLSDoi6UgYHJlY3Vyc2l2ZTogdHJ1ZWAg5YiZ5Lya6Ieq5Yqo5ZCR5LiK6YCS5b2S5p+l5om+XG4gICAqICAtIOiPnOWNleaVsOaNrua6kOWMheWQqyBgL3dhcmVg77yM5YiZIGAvd2FyZS8xYCDkuZ/op4bkuLogYC93YXJlYCDpoblcbiAgICovXG4gIG9wZW5lZEJ5VXJsKHVybDogc3RyaW5nIHwgbnVsbCwgcmVjdXJzaXZlOiBib29sZWFuID0gZmFsc2UpOiB2b2lkIHtcbiAgICBpZiAoIXVybCkgcmV0dXJuO1xuXG4gICAgbGV0IGZpbmRJdGVtID0gdGhpcy5nZXRIaXQodGhpcy5kYXRhLCB1cmwsIHJlY3Vyc2l2ZSwgKGk6IE1lbnVJbm5lcikgPT4ge1xuICAgICAgaS5fc2VsZWN0ZWQgPSBmYWxzZTtcbiAgICAgIGkuX29wZW4gPSBmYWxzZTtcbiAgICB9KSBhcyBNZW51SW5uZXI7XG4gICAgaWYgKGZpbmRJdGVtID09IG51bGwpIHJldHVybjtcblxuICAgIGRvIHtcbiAgICAgIGZpbmRJdGVtLl9zZWxlY3RlZCA9IHRydWU7XG4gICAgICBmaW5kSXRlbS5fb3BlbiA9IHRydWU7XG4gICAgICBmaW5kSXRlbSA9IGZpbmRJdGVtLl9wYXJlbnQhO1xuICAgIH0gd2hpbGUgKGZpbmRJdGVtKTtcbiAgfVxuXG4gIC8qKlxuICAgKiDmoLnmja51cmzojrflj5boj5zljZXliJfooahcbiAgICogLSDoi6UgYHJlY3Vyc2l2ZTogdHJ1ZWAg5YiZ5Lya6Ieq5Yqo5ZCR5LiK6YCS5b2S5p+l5om+XG4gICAqICAtIOiPnOWNleaVsOaNrua6kOWMheWQqyBgL3dhcmVg77yM5YiZIGAvd2FyZS8xYCDkuZ/op4bkuLogYC93YXJlYCDpoblcbiAgICovXG4gIGdldFBhdGhCeVVybCh1cmw6IHN0cmluZywgcmVjdXJzaXZlOiBib29sZWFuID0gZmFsc2UpOiBNZW51W10ge1xuICAgIGNvbnN0IHJldDogTWVudVtdID0gW107XG4gICAgbGV0IGl0ZW0gPSB0aGlzLmdldEhpdCh0aGlzLmRhdGEsIHVybCwgcmVjdXJzaXZlKSBhcyBNZW51SW5uZXI7XG5cbiAgICBpZiAoIWl0ZW0pIHJldHVybiByZXQ7XG5cbiAgICBkbyB7XG4gICAgICByZXQuc3BsaWNlKDAsIDAsIGl0ZW0pO1xuICAgICAgaXRlbSA9IGl0ZW0uX3BhcmVudCE7XG4gICAgfSB3aGlsZSAoaXRlbSk7XG5cbiAgICByZXR1cm4gcmV0O1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBtZW51IGJhc2VkIG9uIGBrZXlgXG4gICAqL1xuICBnZXRJdGVtKGtleTogc3RyaW5nKTogTWVudSB8IG51bGwge1xuICAgIGxldCByZXM6IE1lbnUgfCBudWxsID0gbnVsbDtcbiAgICB0aGlzLnZpc2l0KHRoaXMuZGF0YSwgaXRlbSA9PiB7XG4gICAgICBpZiAocmVzID09IG51bGwgJiYgaXRlbS5rZXkgPT09IGtleSkge1xuICAgICAgICByZXMgPSBpdGVtO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiByZXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0IG1lbnUgYmFzZWQgb24gYGtleWBcbiAgICovXG4gIHNldEl0ZW0oa2V5OiBzdHJpbmcsIHZhbHVlOiBNZW51KTogdm9pZCB7XG4gICAgY29uc3QgaXRlbSA9IHRoaXMuZ2V0SXRlbShrZXkpO1xuICAgIGlmIChpdGVtID09IG51bGwpIHJldHVybjtcblxuICAgIE9iamVjdC5rZXlzKHZhbHVlKS5mb3JFYWNoKGsgPT4ge1xuICAgICAgaXRlbVtrXSA9IHZhbHVlW2tdO1xuICAgIH0pO1xuICAgIHRoaXMuZml4SXRlbShpdGVtKTtcblxuICAgIHRoaXMuX2NoYW5nZSQubmV4dCh0aGlzLmRhdGEpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fY2hhbmdlJC51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuaTE4biQudW5zdWJzY3JpYmUoKTtcbiAgfVxufVxuIl19
|
|
@@ -1,105 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { Observable } from 'rxjs';
|
|
3
|
-
import { deepMerge } from '@delon/util/other';
|
|
4
|
-
import { NzModalService } from 'ng-zorro-antd/modal';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "ng-zorro-antd/modal";
|
|
7
|
-
/**
|
|
8
|
-
* 对话框辅助类
|
|
9
|
-
*/
|
|
10
|
-
export class ModalHelper {
|
|
11
|
-
constructor(srv) {
|
|
12
|
-
this.srv = srv;
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* 构建一个对话框
|
|
16
|
-
*
|
|
17
|
-
* @param comp 组件
|
|
18
|
-
* @param params 组件参数
|
|
19
|
-
* @param options 额外参数
|
|
20
|
-
*
|
|
21
|
-
* @example
|
|
22
|
-
* this.modalHelper.create(FormEditComponent, { i }).subscribe(res => this.load());
|
|
23
|
-
* // 对于组件的成功&关闭的处理说明
|
|
24
|
-
* // 成功,其中 `nzModalRef` 指目标组件在构造函数 `NzModalRef` 变量名
|
|
25
|
-
* this.nzModalRef.close(data);
|
|
26
|
-
* this.nzModalRef.close();
|
|
27
|
-
* // 关闭
|
|
28
|
-
* this.nzModalRef.destroy();
|
|
29
|
-
*/
|
|
30
|
-
create(comp, params, options) {
|
|
31
|
-
options = deepMerge({
|
|
32
|
-
size: 'lg',
|
|
33
|
-
exact: true,
|
|
34
|
-
includeTabs: false
|
|
35
|
-
}, options);
|
|
36
|
-
return new Observable((observer) => {
|
|
37
|
-
const { size, includeTabs, modalOptions } = options;
|
|
38
|
-
let cls = '';
|
|
39
|
-
let width = '';
|
|
40
|
-
if (size) {
|
|
41
|
-
if (typeof size === 'number') {
|
|
42
|
-
width = `${size}px`;
|
|
43
|
-
}
|
|
44
|
-
else {
|
|
45
|
-
cls = `modal-${size}`;
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
if (includeTabs) {
|
|
49
|
-
cls += ' modal-include-tabs';
|
|
50
|
-
}
|
|
51
|
-
if (modalOptions && modalOptions.nzWrapClassName) {
|
|
52
|
-
cls += ` ${modalOptions.nzWrapClassName}`;
|
|
53
|
-
delete modalOptions.nzWrapClassName;
|
|
54
|
-
}
|
|
55
|
-
const defaultOptions = {
|
|
56
|
-
nzWrapClassName: cls,
|
|
57
|
-
nzContent: comp,
|
|
58
|
-
nzWidth: width ? width : undefined,
|
|
59
|
-
nzFooter: null,
|
|
60
|
-
nzComponentParams: params
|
|
61
|
-
};
|
|
62
|
-
const subject = this.srv.create(Object.assign(Object.assign({}, defaultOptions), modalOptions));
|
|
63
|
-
const afterClose$ = subject.afterClose.subscribe((res) => {
|
|
64
|
-
if (options.exact === true) {
|
|
65
|
-
if (res != null) {
|
|
66
|
-
observer.next(res);
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
else {
|
|
70
|
-
observer.next(res);
|
|
71
|
-
}
|
|
72
|
-
observer.complete();
|
|
73
|
-
afterClose$.unsubscribe();
|
|
74
|
-
});
|
|
75
|
-
});
|
|
76
|
-
}
|
|
77
|
-
/**
|
|
78
|
-
* 构建静态框,点击蒙层不允许关闭
|
|
79
|
-
*
|
|
80
|
-
* @param comp 组件
|
|
81
|
-
* @param params 组件参数
|
|
82
|
-
* @param options 额外参数
|
|
83
|
-
*
|
|
84
|
-
* @example
|
|
85
|
-
* this.modalHelper.open(FormEditComponent, { i }).subscribe(res => this.load());
|
|
86
|
-
* // 对于组件的成功&关闭的处理说明
|
|
87
|
-
* // 成功,其中 `nzModalRef` 指目标组件在构造函数 `NzModalRef` 变量名
|
|
88
|
-
* this.nzModalRef.close(data);
|
|
89
|
-
* this.nzModalRef.close();
|
|
90
|
-
* // 关闭
|
|
91
|
-
* this.nzModalRef.destroy();
|
|
92
|
-
*/
|
|
93
|
-
createStatic(comp, params, options) {
|
|
94
|
-
const modalOptions = Object.assign({ nzMaskClosable: false }, (options && options.modalOptions));
|
|
95
|
-
return this.create(comp, params, Object.assign(Object.assign({}, options), { modalOptions }));
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
ModalHelper.ɵprov = i0.ɵɵdefineInjectable({ factory: function ModalHelper_Factory() { return new ModalHelper(i0.ɵɵinject(i1.NzModalService)); }, token: ModalHelper, providedIn: "root" });
|
|
99
|
-
ModalHelper.decorators = [
|
|
100
|
-
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
101
|
-
];
|
|
102
|
-
ModalHelper.ctorParameters = () => [
|
|
103
|
-
{ type: NzModalService }
|
|
104
|
-
];
|
|
105
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvdGhlbWUvc3JjL3NlcnZpY2VzL21vZGFsL21vZGFsLmhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUUsVUFBVSxFQUFZLE1BQU0sTUFBTSxDQUFDO0FBRTVDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUU5QyxPQUFPLEVBQWdCLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7QUFhbkU7O0dBRUc7QUFFSCxNQUFNLE9BQU8sV0FBVztJQUN0QixZQUFvQixHQUFtQjtRQUFuQixRQUFHLEdBQUgsR0FBRyxDQUFnQjtJQUFHLENBQUM7SUFFM0M7Ozs7Ozs7Ozs7Ozs7OztPQWVHO0lBQ0gsTUFBTSxDQUNKLElBQThDLEVBQzlDLE1BQWtCLEVBQ2xCLE9BQTRCO1FBRTVCLE9BQU8sR0FBRyxTQUFTLENBQ2pCO1lBQ0UsSUFBSSxFQUFFLElBQUk7WUFDVixLQUFLLEVBQUUsSUFBSTtZQUNYLFdBQVcsRUFBRSxLQUFLO1NBQ25CLEVBQ0QsT0FBTyxDQUNSLENBQUM7UUFDRixPQUFPLElBQUksVUFBVSxDQUFDLENBQUMsUUFBNkIsRUFBRSxFQUFFO1lBQ3RELE1BQU0sRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxHQUFHLE9BQTZCLENBQUM7WUFDMUUsSUFBSSxHQUFHLEdBQUcsRUFBRSxDQUFDO1lBQ2IsSUFBSSxLQUFLLEdBQUcsRUFBRSxDQUFDO1lBQ2YsSUFBSSxJQUFJLEVBQUU7Z0JBQ1IsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLEVBQUU7b0JBQzVCLEtBQUssR0FBRyxHQUFHLElBQUksSUFBSSxDQUFDO2lCQUNyQjtxQkFBTTtvQkFDTCxHQUFHLEdBQUcsU0FBUyxJQUFJLEVBQUUsQ0FBQztpQkFDdkI7YUFDRjtZQUNELElBQUksV0FBVyxFQUFFO2dCQUNmLEdBQUcsSUFBSSxxQkFBcUIsQ0FBQzthQUM5QjtZQUNELElBQUksWUFBWSxJQUFJLFlBQVksQ0FBQyxlQUFlLEVBQUU7Z0JBQ2hELEdBQUcsSUFBSSxJQUFJLFlBQVksQ0FBQyxlQUFlLEVBQUUsQ0FBQztnQkFDMUMsT0FBTyxZQUFZLENBQUMsZUFBZSxDQUFDO2FBQ3JDO1lBQ0QsTUFBTSxjQUFjLEdBQWlCO2dCQUNuQyxlQUFlLEVBQUUsR0FBRztnQkFDcEIsU0FBUyxFQUFFLElBQUk7Z0JBQ2YsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxTQUFTO2dCQUNsQyxRQUFRLEVBQUUsSUFBSTtnQkFDZCxpQkFBaUIsRUFBRSxNQUFNO2FBQzFCLENBQUM7WUFDRixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0saUNBQU0sY0FBYyxHQUFLLFlBQVksRUFBRyxDQUFDO1lBQ3hFLE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBYyxFQUFFLEVBQUU7Z0JBQ2xFLElBQUksT0FBUSxDQUFDLEtBQUssS0FBSyxJQUFJLEVBQUU7b0JBQzNCLElBQUksR0FBRyxJQUFJLElBQUksRUFBRTt3QkFDZixRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO3FCQUNwQjtpQkFDRjtxQkFBTTtvQkFDTCxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2lCQUNwQjtnQkFDRCxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ3BCLFdBQVcsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUM1QixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7Ozs7T0FlRztJQUNILFlBQVksQ0FDVixJQUE4QyxFQUM5QyxNQUFrQixFQUNsQixPQUE0QjtRQUU1QixNQUFNLFlBQVksbUJBQ2hCLGNBQWMsRUFBRSxLQUFLLElBQ2xCLENBQUMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FDckMsQ0FBQztRQUNGLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxrQ0FBTyxPQUFPLEtBQUUsWUFBWSxJQUFHLENBQUM7SUFDakUsQ0FBQzs7OztZQW5HRixVQUFVLFNBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFOzs7WUFoQlgsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIFRlbXBsYXRlUmVmLCBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBPYnNlcnZlciB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBkZWVwTWVyZ2UgfSBmcm9tICdAZGVsb24vdXRpbC9vdGhlcic7XG5pbXBvcnQgdHlwZSB7IE56U2FmZUFueSB9IGZyb20gJ25nLXpvcnJvLWFudGQvY29yZS90eXBlcyc7XG5pbXBvcnQgeyBNb2RhbE9wdGlvbnMsIE56TW9kYWxTZXJ2aWNlIH0gZnJvbSAnbmctem9ycm8tYW50ZC9tb2RhbCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTW9kYWxIZWxwZXJPcHRpb25zIHtcbiAgLyoqIOWkp+Wwj++8m+S+i+Wmgu+8mmxn44CBNjAw77yM6buY6K6k77yaYGxnYCAqL1xuICBzaXplPzogJ3NtJyB8ICdtZCcgfCAnbGcnIHwgJ3hsJyB8ICcnIHwgbnVtYmVyO1xuICAvKiog5a+56K+d5qGGIFtNb2RhbE9wdGlvbnNdKGh0dHBzOi8vZ2l0aHViLmNvbS9ORy1aT1JSTy9uZy16b3Jyby1hbnRkL2Jsb2IvbWFzdGVyL2NvbXBvbmVudHMvbW9kYWwvbW9kYWwtdHlwZXMudHMpIOWPguaVsCAqL1xuICBtb2RhbE9wdGlvbnM/OiBNb2RhbE9wdGlvbnM7XG4gIC8qKiDmmK/lkKbnsr7lh4bvvIjpu5jorqTvvJpgdHJ1ZWDvvInvvIzoi6Xov5Tlm57lgLzpnZ7nqbrlgLzvvIhgbnVsbGDmiJZgdW5kZWZpbmVkYO+8ieinhuS4uuaIkOWKn++8jOWQpuWImeinhuS4uumUmeivryAqL1xuICBleGFjdD86IGJvb2xlYW47XG4gIC8qKiDmmK/lkKbljIXoo7nmoIfnrb7pobXvvIzkv67lpI3mqKHmgIHljIXlkKvmoIfnrb7pl7Tot53pl67popggKi9cbiAgaW5jbHVkZVRhYnM/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIOWvueivneahhui+heWKqeexu1xuICovXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIE1vZGFsSGVscGVyIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzcnY6IE56TW9kYWxTZXJ2aWNlKSB7fVxuXG4gIC8qKlxuICAgKiDmnoTlu7rkuIDkuKrlr7nor53moYZcbiAgICpcbiAgICogQHBhcmFtIGNvbXAg57uE5Lu2XG4gICAqIEBwYXJhbSBwYXJhbXMg57uE5Lu25Y+C5pWwXG4gICAqIEBwYXJhbSBvcHRpb25zIOmineWkluWPguaVsFxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiB0aGlzLm1vZGFsSGVscGVyLmNyZWF0ZShGb3JtRWRpdENvbXBvbmVudCwgeyBpIH0pLnN1YnNjcmliZShyZXMgPT4gdGhpcy5sb2FkKCkpO1xuICAgKiAvLyDlr7nkuo7nu4Tku7bnmoTmiJDlip8m5YWz6Zet55qE5aSE55CG6K+05piOXG4gICAqIC8vIOaIkOWKn++8jOWFtuS4rSBgbnpNb2RhbFJlZmAg5oyH55uu5qCH57uE5Lu25Zyo5p6E6YCg5Ye95pWwIGBOek1vZGFsUmVmYCDlj5jph4/lkI1cbiAgICogdGhpcy5uek1vZGFsUmVmLmNsb3NlKGRhdGEpO1xuICAgKiB0aGlzLm56TW9kYWxSZWYuY2xvc2UoKTtcbiAgICogLy8g5YWz6ZetXG4gICAqIHRoaXMubnpNb2RhbFJlZi5kZXN0cm95KCk7XG4gICAqL1xuICBjcmVhdGUoXG4gICAgY29tcDogVGVtcGxhdGVSZWY8TnpTYWZlQW55PiB8IFR5cGU8TnpTYWZlQW55PixcbiAgICBwYXJhbXM/OiBOelNhZmVBbnksXG4gICAgb3B0aW9ucz86IE1vZGFsSGVscGVyT3B0aW9uc1xuICApOiBPYnNlcnZhYmxlPE56U2FmZUFueT4ge1xuICAgIG9wdGlvbnMgPSBkZWVwTWVyZ2UoXG4gICAgICB7XG4gICAgICAgIHNpemU6ICdsZycsXG4gICAgICAgIGV4YWN0OiB0cnVlLFxuICAgICAgICBpbmNsdWRlVGFiczogZmFsc2VcbiAgICAgIH0sXG4gICAgICBvcHRpb25zXG4gICAgKTtcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGUoKG9ic2VydmVyOiBPYnNlcnZlcjxOelNhZmVBbnk+KSA9PiB7XG4gICAgICBjb25zdCB7IHNpemUsIGluY2x1ZGVUYWJzLCBtb2RhbE9wdGlvbnMgfSA9IG9wdGlvbnMgYXMgTW9kYWxIZWxwZXJPcHRpb25zO1xuICAgICAgbGV0IGNscyA9ICcnO1xuICAgICAgbGV0IHdpZHRoID0gJyc7XG4gICAgICBpZiAoc2l6ZSkge1xuICAgICAgICBpZiAodHlwZW9mIHNpemUgPT09ICdudW1iZXInKSB7XG4gICAgICAgICAgd2lkdGggPSBgJHtzaXplfXB4YDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjbHMgPSBgbW9kYWwtJHtzaXplfWA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChpbmNsdWRlVGFicykge1xuICAgICAgICBjbHMgKz0gJyBtb2RhbC1pbmNsdWRlLXRhYnMnO1xuICAgICAgfVxuICAgICAgaWYgKG1vZGFsT3B0aW9ucyAmJiBtb2RhbE9wdGlvbnMubnpXcmFwQ2xhc3NOYW1lKSB7XG4gICAgICAgIGNscyArPSBgICR7bW9kYWxPcHRpb25zLm56V3JhcENsYXNzTmFtZX1gO1xuICAgICAgICBkZWxldGUgbW9kYWxPcHRpb25zLm56V3JhcENsYXNzTmFtZTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGRlZmF1bHRPcHRpb25zOiBNb2RhbE9wdGlvbnMgPSB7XG4gICAgICAgIG56V3JhcENsYXNzTmFtZTogY2xzLFxuICAgICAgICBuekNvbnRlbnQ6IGNvbXAsXG4gICAgICAgIG56V2lkdGg6IHdpZHRoID8gd2lkdGggOiB1bmRlZmluZWQsXG4gICAgICAgIG56Rm9vdGVyOiBudWxsLFxuICAgICAgICBuekNvbXBvbmVudFBhcmFtczogcGFyYW1zXG4gICAgICB9O1xuICAgICAgY29uc3Qgc3ViamVjdCA9IHRoaXMuc3J2LmNyZWF0ZSh7IC4uLmRlZmF1bHRPcHRpb25zLCAuLi5tb2RhbE9wdGlvbnMgfSk7XG4gICAgICBjb25zdCBhZnRlckNsb3NlJCA9IHN1YmplY3QuYWZ0ZXJDbG9zZS5zdWJzY3JpYmUoKHJlczogTnpTYWZlQW55KSA9PiB7XG4gICAgICAgIGlmIChvcHRpb25zIS5leGFjdCA9PT0gdHJ1ZSkge1xuICAgICAgICAgIGlmIChyZXMgIT0gbnVsbCkge1xuICAgICAgICAgICAgb2JzZXJ2ZXIubmV4dChyZXMpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBvYnNlcnZlci5uZXh0KHJlcyk7XG4gICAgICAgIH1cbiAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgICAgYWZ0ZXJDbG9zZSQudW5zdWJzY3JpYmUoKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIOaehOW7uumdmeaAgeahhu+8jOeCueWHu+iSmeWxguS4jeWFgeiuuOWFs+mXrVxuICAgKlxuICAgKiBAcGFyYW0gY29tcCDnu4Tku7ZcbiAgICogQHBhcmFtIHBhcmFtcyDnu4Tku7blj4LmlbBcbiAgICogQHBhcmFtIG9wdGlvbnMg6aKd5aSW5Y+C5pWwXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIHRoaXMubW9kYWxIZWxwZXIub3BlbihGb3JtRWRpdENvbXBvbmVudCwgeyBpIH0pLnN1YnNjcmliZShyZXMgPT4gdGhpcy5sb2FkKCkpO1xuICAgKiAvLyDlr7nkuo7nu4Tku7bnmoTmiJDlip8m5YWz6Zet55qE5aSE55CG6K+05piOXG4gICAqIC8vIOaIkOWKn++8jOWFtuS4rSBgbnpNb2RhbFJlZmAg5oyH55uu5qCH57uE5Lu25Zyo5p6E6YCg5Ye95pWwIGBOek1vZGFsUmVmYCDlj5jph4/lkI1cbiAgICogdGhpcy5uek1vZGFsUmVmLmNsb3NlKGRhdGEpO1xuICAgKiB0aGlzLm56TW9kYWxSZWYuY2xvc2UoKTtcbiAgICogLy8g5YWz6ZetXG4gICAqIHRoaXMubnpNb2RhbFJlZi5kZXN0cm95KCk7XG4gICAqL1xuICBjcmVhdGVTdGF0aWMoXG4gICAgY29tcDogVGVtcGxhdGVSZWY8TnpTYWZlQW55PiB8IFR5cGU8TnpTYWZlQW55PixcbiAgICBwYXJhbXM/OiBOelNhZmVBbnksXG4gICAgb3B0aW9ucz86IE1vZGFsSGVscGVyT3B0aW9uc1xuICApOiBPYnNlcnZhYmxlPE56U2FmZUFueT4ge1xuICAgIGNvbnN0IG1vZGFsT3B0aW9ucyA9IHtcbiAgICAgIG56TWFza0Nsb3NhYmxlOiBmYWxzZSxcbiAgICAgIC4uLihvcHRpb25zICYmIG9wdGlvbnMubW9kYWxPcHRpb25zKVxuICAgIH07XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlKGNvbXAsIHBhcmFtcywgeyAuLi5vcHRpb25zLCBtb2RhbE9wdGlvbnMgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { AlainConfigService } from '@delon/util/config';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "@delon/util/config";
|
|
5
|
-
export const REP_MAX = 6;
|
|
6
|
-
export class ResponsiveService {
|
|
7
|
-
constructor(cogSrv) {
|
|
8
|
-
this.cog = cogSrv.merge('themeResponsive', {
|
|
9
|
-
rules: {
|
|
10
|
-
1: { xs: 24 },
|
|
11
|
-
2: { xs: 24, sm: 12 },
|
|
12
|
-
3: { xs: 24, sm: 12, md: 8 },
|
|
13
|
-
4: { xs: 24, sm: 12, md: 8, lg: 6 },
|
|
14
|
-
5: { xs: 24, sm: 12, md: 8, lg: 6, xl: 4 },
|
|
15
|
-
6: { xs: 24, sm: 12, md: 8, lg: 6, xl: 4, xxl: 2 }
|
|
16
|
-
}
|
|
17
|
-
});
|
|
18
|
-
if (Object.keys(this.cog.rules)
|
|
19
|
-
.map(i => +i)
|
|
20
|
-
.some((i) => i < 1 || i > REP_MAX)) {
|
|
21
|
-
throw new Error(`[theme] the responseive rule index value range must be 1-${REP_MAX}`);
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
genCls(count) {
|
|
25
|
-
const rule = this.cog.rules[count > REP_MAX ? REP_MAX : Math.max(count, 1)];
|
|
26
|
-
const antColClass = 'ant-col';
|
|
27
|
-
const clsMap = [`${antColClass}-xs-${rule.xs}`];
|
|
28
|
-
if (rule.sm)
|
|
29
|
-
clsMap.push(`${antColClass}-sm-${rule.sm}`);
|
|
30
|
-
if (rule.md)
|
|
31
|
-
clsMap.push(`${antColClass}-md-${rule.md}`);
|
|
32
|
-
if (rule.lg)
|
|
33
|
-
clsMap.push(`${antColClass}-lg-${rule.lg}`);
|
|
34
|
-
if (rule.xl)
|
|
35
|
-
clsMap.push(`${antColClass}-xl-${rule.xl}`);
|
|
36
|
-
if (rule.xxl)
|
|
37
|
-
clsMap.push(`${antColClass}-xxl-${rule.xxl}`);
|
|
38
|
-
return clsMap;
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
ResponsiveService.ɵprov = i0.ɵɵdefineInjectable({ factory: function ResponsiveService_Factory() { return new ResponsiveService(i0.ɵɵinject(i1.AlainConfigService)); }, token: ResponsiveService, providedIn: "root" });
|
|
42
|
-
ResponsiveService.decorators = [
|
|
43
|
-
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
44
|
-
];
|
|
45
|
-
ResponsiveService.ctorParameters = () => [
|
|
46
|
-
{ type: AlainConfigService }
|
|
47
|
-
];
|
|
48
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzcG9uc2l2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RoZW1lL3NyYy9zZXJ2aWNlcy9yZXNwb25zaXZlL3Jlc3BvbnNpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsa0JBQWtCLEVBQThCLE1BQU0sb0JBQW9CLENBQUM7OztBQUVwRixNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsQ0FBQyxDQUFDO0FBS3pCLE1BQU0sT0FBTyxpQkFBaUI7SUFFNUIsWUFBWSxNQUEwQjtRQUNwQyxJQUFJLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsaUJBQWlCLEVBQUU7WUFDekMsS0FBSyxFQUFFO2dCQUNMLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUU7Z0JBQ2IsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFO2dCQUNyQixDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRTtnQkFDNUIsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRTtnQkFDbkMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFO2dCQUMxQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTthQUNuRDtTQUNGLENBQUUsQ0FBQztRQUNKLElBQ0UsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQzthQUN4QixHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNaLElBQUksQ0FBQyxDQUFDLENBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsT0FBTyxDQUFDLEVBQzVDO1lBQ0EsTUFBTSxJQUFJLEtBQUssQ0FBQyw0REFBNEQsT0FBTyxFQUFFLENBQUMsQ0FBQztTQUN4RjtJQUNILENBQUM7SUFFRCxNQUFNLENBQUMsS0FBYTtRQUNsQixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDNUUsTUFBTSxXQUFXLEdBQUcsU0FBUyxDQUFDO1FBQzlCLE1BQU0sTUFBTSxHQUFHLENBQUMsR0FBRyxXQUFXLE9BQU8sSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDaEQsSUFBSSxJQUFJLENBQUMsRUFBRTtZQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxXQUFXLE9BQU8sSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDekQsSUFBSSxJQUFJLENBQUMsRUFBRTtZQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxXQUFXLE9BQU8sSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDekQsSUFBSSxJQUFJLENBQUMsRUFBRTtZQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxXQUFXLE9BQU8sSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDekQsSUFBSSxJQUFJLENBQUMsRUFBRTtZQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxXQUFXLE9BQU8sSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDekQsSUFBSSxJQUFJLENBQUMsR0FBRztZQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxXQUFXLFFBQVEsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDNUQsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQzs7OztZQWpDRixVQUFVLFNBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFOzs7WUFOekIsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBBbGFpbkNvbmZpZ1NlcnZpY2UsIEFsYWluVGhlbWVSZXNwb25zaXZlQ29uZmlnIH0gZnJvbSAnQGRlbG9uL3V0aWwvY29uZmlnJztcblxuZXhwb3J0IGNvbnN0IFJFUF9NQVggPSA2O1xuXG5leHBvcnQgdHlwZSBSRVBfVFlQRSA9IDEgfCAyIHwgMyB8IDQgfCA1IHwgNjtcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBSZXNwb25zaXZlU2VydmljZSB7XG4gIHByaXZhdGUgY29nOiBBbGFpblRoZW1lUmVzcG9uc2l2ZUNvbmZpZztcbiAgY29uc3RydWN0b3IoY29nU3J2OiBBbGFpbkNvbmZpZ1NlcnZpY2UpIHtcbiAgICB0aGlzLmNvZyA9IGNvZ1Nydi5tZXJnZSgndGhlbWVSZXNwb25zaXZlJywge1xuICAgICAgcnVsZXM6IHtcbiAgICAgICAgMTogeyB4czogMjQgfSxcbiAgICAgICAgMjogeyB4czogMjQsIHNtOiAxMiB9LFxuICAgICAgICAzOiB7IHhzOiAyNCwgc206IDEyLCBtZDogOCB9LFxuICAgICAgICA0OiB7IHhzOiAyNCwgc206IDEyLCBtZDogOCwgbGc6IDYgfSxcbiAgICAgICAgNTogeyB4czogMjQsIHNtOiAxMiwgbWQ6IDgsIGxnOiA2LCB4bDogNCB9LFxuICAgICAgICA2OiB7IHhzOiAyNCwgc206IDEyLCBtZDogOCwgbGc6IDYsIHhsOiA0LCB4eGw6IDIgfVxuICAgICAgfVxuICAgIH0pITtcbiAgICBpZiAoXG4gICAgICBPYmplY3Qua2V5cyh0aGlzLmNvZy5ydWxlcylcbiAgICAgICAgLm1hcChpID0+ICtpKVxuICAgICAgICAuc29tZSgoaTogbnVtYmVyKSA9PiBpIDwgMSB8fCBpID4gUkVQX01BWClcbiAgICApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgW3RoZW1lXSB0aGUgcmVzcG9uc2VpdmUgcnVsZSBpbmRleCB2YWx1ZSByYW5nZSBtdXN0IGJlIDEtJHtSRVBfTUFYfWApO1xuICAgIH1cbiAgfVxuXG4gIGdlbkNscyhjb3VudDogbnVtYmVyKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IHJ1bGUgPSB0aGlzLmNvZy5ydWxlc1tjb3VudCA+IFJFUF9NQVggPyBSRVBfTUFYIDogTWF0aC5tYXgoY291bnQsIDEpXTtcbiAgICBjb25zdCBhbnRDb2xDbGFzcyA9ICdhbnQtY29sJztcbiAgICBjb25zdCBjbHNNYXAgPSBbYCR7YW50Q29sQ2xhc3N9LXhzLSR7cnVsZS54c31gXTtcbiAgICBpZiAocnVsZS5zbSkgY2xzTWFwLnB1c2goYCR7YW50Q29sQ2xhc3N9LXNtLSR7cnVsZS5zbX1gKTtcbiAgICBpZiAocnVsZS5tZCkgY2xzTWFwLnB1c2goYCR7YW50Q29sQ2xhc3N9LW1kLSR7cnVsZS5tZH1gKTtcbiAgICBpZiAocnVsZS5sZykgY2xzTWFwLnB1c2goYCR7YW50Q29sQ2xhc3N9LWxnLSR7cnVsZS5sZ31gKTtcbiAgICBpZiAocnVsZS54bCkgY2xzTWFwLnB1c2goYCR7YW50Q29sQ2xhc3N9LXhsLSR7cnVsZS54bH1gKTtcbiAgICBpZiAocnVsZS54eGwpIGNsc01hcC5wdXNoKGAke2FudENvbENsYXNzfS14eGwtJHtydWxlLnh4bH1gKTtcbiAgICByZXR1cm4gY2xzTWFwO1xuICB9XG59XG4iXX0=
|