@yelon/bis 12.0.13 → 12.0.17

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.
Files changed (76) hide show
  1. package/LICENSE +21 -21
  2. package/bis.d.ts +4 -4
  3. package/bundles/bis.umd.js +7 -7
  4. package/bundles/layout.umd.js +2570 -1631
  5. package/bundles/layout.umd.js.map +1 -1
  6. package/bundles/shared.umd.js +1226 -1229
  7. package/bundles/shared.umd.js.map +1 -1
  8. package/esm2015/bis.js +4 -4
  9. package/esm2015/layout/act.guard.js +115 -0
  10. package/esm2015/layout/bis.config.js +10 -10
  11. package/esm2015/layout/contact/contact.component.js +434 -0
  12. package/esm2015/layout/contact/contact.service.js +150 -0
  13. package/esm2015/layout/layout.js +8 -6
  14. package/esm2015/layout/layout.module.js +47 -35
  15. package/esm2015/layout/path-to-regexp.service.js +237 -0
  16. package/esm2015/layout/public_api.js +15 -11
  17. package/esm2015/layout/stomp.config.js +19 -19
  18. package/esm2015/layout/widgets/index.js +7 -7
  19. package/esm2015/layout/widgets/yz.application.component.js +132 -132
  20. package/esm2015/layout/widgets/yz.clear-storage.component.js +35 -35
  21. package/esm2015/layout/widgets/yz.fullscreen.component.js +32 -32
  22. package/esm2015/layout/widgets/yz.i18n.component.js +50 -50
  23. package/esm2015/layout/widgets/yz.notify.component.js +143 -143
  24. package/esm2015/layout/widgets/yz.them-btn.component.js +106 -106
  25. package/esm2015/layout/widgets/yz.user.component.js +57 -57
  26. package/esm2015/layout/yz.auth.service.js +157 -157
  27. package/esm2015/layout/yz.basic.component.js +40 -40
  28. package/esm2015/layout/yz.default.interceptor.js +203 -203
  29. package/esm2015/layout/yz.i18n.service.js +102 -104
  30. package/esm2015/layout/yz.startup.service.js +137 -137
  31. package/esm2015/layout/yz.stomp.service.js +90 -90
  32. package/esm2015/public_api.js +1 -1
  33. package/esm2015/shared/public_api.js +4 -4
  34. package/esm2015/shared/shared-yelon.module.js +107 -107
  35. package/esm2015/shared/shared-zorro.module.js +81 -79
  36. package/esm2015/shared/shared.js +4 -4
  37. package/esm2015/shared/shared.module.js +22 -16
  38. package/esm2015/shared/style-icons.js +795 -795
  39. package/fesm2015/bis.js +2 -2
  40. package/fesm2015/layout.js +2148 -1221
  41. package/fesm2015/layout.js.map +1 -1
  42. package/fesm2015/shared.js +909 -901
  43. package/fesm2015/shared.js.map +1 -1
  44. package/layout/act.guard.d.ts +20 -0
  45. package/layout/bis.config.d.ts +3 -3
  46. package/layout/contact/contact.component.d.ts +166 -0
  47. package/layout/contact/contact.service.d.ts +115 -0
  48. package/layout/layout.d.ts +7 -5
  49. package/layout/layout.metadata.json +1 -1
  50. package/layout/layout.module.d.ts +2 -2
  51. package/layout/path-to-regexp.service.d.ts +23 -0
  52. package/layout/public_api.d.ts +12 -10
  53. package/layout/stomp.config.d.ts +3 -3
  54. package/layout/widgets/index.d.ts +7 -7
  55. package/layout/widgets/yz.application.component.d.ts +45 -45
  56. package/layout/widgets/yz.clear-storage.component.d.ts +8 -8
  57. package/layout/widgets/yz.fullscreen.component.d.ts +6 -6
  58. package/layout/widgets/yz.i18n.component.d.ts +19 -19
  59. package/layout/widgets/yz.notify.component.d.ts +25 -25
  60. package/layout/widgets/yz.them-btn.component.d.ts +29 -29
  61. package/layout/widgets/yz.user.component.d.ts +25 -25
  62. package/layout/yz.auth.service.d.ts +19 -19
  63. package/layout/yz.basic.component.d.ts +15 -15
  64. package/layout/yz.default.interceptor.d.ts +26 -26
  65. package/layout/yz.i18n.service.d.ts +24 -24
  66. package/layout/yz.startup.service.d.ts +31 -31
  67. package/layout/yz.stomp.service.d.ts +39 -39
  68. package/package.json +10 -10
  69. package/public_api.d.ts +2 -2
  70. package/shared/public_api.d.ts +4 -4
  71. package/shared/shared-yelon.module.d.ts +3 -3
  72. package/shared/shared-zorro.module.d.ts +2 -2
  73. package/shared/shared.d.ts +4 -4
  74. package/shared/shared.metadata.json +1 -1
  75. package/shared/shared.module.d.ts +2 -2
  76. package/shared/style-icons.d.ts +1 -1
@@ -1,104 +1,102 @@
1
- // 请参考:https://ng.yunzainfo.com/docs/i18n
2
- import { Platform } from '@angular/cdk/platform';
3
- import { registerLocaleData } from '@angular/common';
4
- import ngEn from '@angular/common/locales/en';
5
- import ngZh from '@angular/common/locales/zh';
6
- import ngZhTw from '@angular/common/locales/zh-Hant';
7
- import { Injectable } from '@angular/core';
8
- import { enUS as dfEn, zhCN as dfZhCn, zhTW as dfZhTw } from 'date-fns/locale';
9
- import { en_US as zorroEnUS, NzI18nService, zh_CN as zorroZhCN, zh_TW as zorroZhTW } from 'ng-zorro-antd/i18n';
10
- import { YelonLocaleService, en_US as yelonEnUS, SettingsService, zh_CN as yelonZhCn, zh_TW as yelonZhTw, _HttpClient, YunzaiI18nBaseService } from '@yelon/theme';
11
- import { YunzaiConfigService } from '@yelon/util/config';
12
- import * as i0 from "@angular/core";
13
- import * as i1 from "@yelon/theme";
14
- import * as i2 from "ng-zorro-antd/i18n";
15
- import * as i3 from "@angular/cdk/platform";
16
- import * as i4 from "@yelon/util/config";
17
- const DEFAULT = 'zh-CN';
18
- const LANGS = {
19
- 'zh-CN': {
20
- text: '简体中文',
21
- ng: ngZh,
22
- zorro: zorroZhCN,
23
- date: dfZhCn,
24
- yelon: yelonZhCn,
25
- abbr: '🇨🇳'
26
- },
27
- 'zh-TW': {
28
- text: '繁体中文',
29
- ng: ngZhTw,
30
- zorro: zorroZhTW,
31
- date: dfZhTw,
32
- yelon: yelonZhTw,
33
- abbr: '🇭🇰'
34
- },
35
- 'en-US': {
36
- text: 'English',
37
- ng: ngEn,
38
- zorro: zorroEnUS,
39
- date: dfEn,
40
- yelon: yelonEnUS,
41
- abbr: '🇬🇧'
42
- }
43
- };
44
- export class YzI18NService extends YunzaiI18nBaseService {
45
- constructor(http, settings, nzI18nService, yelonLocaleService, platform, cogSrv) {
46
- super(cogSrv);
47
- this.http = http;
48
- this.settings = settings;
49
- this.nzI18nService = nzI18nService;
50
- this.yelonLocaleService = yelonLocaleService;
51
- this.platform = platform;
52
- this._defaultLang = DEFAULT;
53
- this._langs = Object.keys(LANGS).map(code => {
54
- const item = LANGS[code];
55
- return { code, text: item.text, abbr: item.abbr };
56
- });
57
- const defaultLang = this.getDefaultLang();
58
- if (this._langs.findIndex(w => w.code === defaultLang)) {
59
- this._defaultLang = defaultLang;
60
- }
61
- }
62
- getDefaultLang() {
63
- if (!this.platform.isBrowser) {
64
- return DEFAULT;
65
- }
66
- if (this.settings.layout.lang) {
67
- return this.settings.layout.lang;
68
- }
69
- let res = (navigator.languages ? navigator.languages[0] : null) || navigator.language;
70
- const arr = res.split('-');
71
- return arr.length <= 1 ? res : `${arr[0]}-${arr[1].toUpperCase()}`;
72
- }
73
- loadLangData(lang) {
74
- return this.http.get(`assets/tmp/i18n/${lang}.json`);
75
- }
76
- use(lang, data) {
77
- if (this._currentLang === lang)
78
- return;
79
- this._data = data;
80
- const item = LANGS[lang];
81
- registerLocaleData(item.ng);
82
- this.nzI18nService.setLocale(item.zorro);
83
- this.nzI18nService.setDateLocale(item.date);
84
- this.yelonLocaleService.setLocale(item.yelon);
85
- this._currentLang = lang;
86
- this._change$.next(lang);
87
- }
88
- getLangs() {
89
- return this._langs;
90
- }
91
- }
92
- YzI18NService.ɵprov = i0.ɵɵdefineInjectable({ factory: function YzI18NService_Factory() { return new YzI18NService(i0.ɵɵinject(i1._HttpClient), i0.ɵɵinject(i1.SettingsService), i0.ɵɵinject(i2.NzI18nService), i0.ɵɵinject(i1.YelonLocaleService), i0.ɵɵinject(i3.Platform), i0.ɵɵinject(i4.YunzaiConfigService)); }, token: YzI18NService, providedIn: "root" });
93
- YzI18NService.decorators = [
94
- { type: Injectable, args: [{ providedIn: 'root' },] }
95
- ];
96
- YzI18NService.ctorParameters = () => [
97
- { type: _HttpClient },
98
- { type: SettingsService },
99
- { type: NzI18nService },
100
- { type: YelonLocaleService },
101
- { type: Platform },
102
- { type: YunzaiConfigService }
103
- ];
104
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieXouaTE4bi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYmlzL2xheW91dC95ei5pMThuLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEseUNBQXlDO0FBQ3pDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRCxPQUFPLElBQUksTUFBTSw0QkFBNEIsQ0FBQztBQUM5QyxPQUFPLElBQUksTUFBTSw0QkFBNEIsQ0FBQztBQUM5QyxPQUFPLE1BQU0sTUFBTSxpQ0FBaUMsQ0FBQztBQUNyRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzNDLE9BQU8sRUFBRSxJQUFJLElBQUksSUFBSSxFQUFFLElBQUksSUFBSSxNQUFNLEVBQUUsSUFBSSxJQUFJLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRy9FLE9BQU8sRUFBRSxLQUFLLElBQUksU0FBUyxFQUFFLGFBQWEsRUFBRSxLQUFLLElBQUksU0FBUyxFQUFFLEtBQUssSUFBSSxTQUFTLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUUvRyxPQUFPLEVBQ0wsa0JBQWtCLEVBQ2xCLEtBQUssSUFBSSxTQUFTLEVBQ2xCLGVBQWUsRUFDZixLQUFLLElBQUksU0FBUyxFQUNsQixLQUFLLElBQUksU0FBUyxFQUNsQixXQUFXLEVBQ1gscUJBQXFCLEVBQ3RCLE1BQU0sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7Ozs7QUFXekQsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDO0FBQ3hCLE1BQU0sS0FBSyxHQUFzQztJQUMvQyxPQUFPLEVBQUU7UUFDUCxJQUFJLEVBQUUsTUFBTTtRQUNaLEVBQUUsRUFBRSxJQUFJO1FBQ1IsS0FBSyxFQUFFLFNB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WUFBRSxPQUFPO1FBRXZDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBRWxCLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6QixrQkFBa0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDNUIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM1QyxJQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5QyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUV6QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRUQsUUFBUTtRQUNOLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDOzs7O1lBekRGLFVBQVUsU0FBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUU7OztZQTFDaEMsV0FBVztZQUhYLGVBQWU7WUFMWSxhQUFhO1lBR3hDLGtCQUFrQjtZQWRYLFFBQVE7WUFzQlIsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiLy8g6K+35Y+C6ICD77yaaHR0cHM6Ly9uZy55dW56YWluZm8uY29tL2RvY3MvaTE4blxuaW1wb3J0IHsgUGxhdGZvcm0gfSBmcm9tICdAYW5ndWxhci9jZGsvcGxhdGZvcm0nO1xuaW1wb3J0IHsgcmVnaXN0ZXJMb2NhbGVEYXRhIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCBuZ0VuIGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9sb2NhbGVzL2VuJztcbmltcG9ydCBuZ1poIGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9sb2NhbGVzL3poJztcbmltcG9ydCBuZ1poVHcgZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2xvY2FsZXMvemgtSGFudCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IGVuVVMgYXMgZGZFbiwgemhDTiBhcyBkZlpoQ24sIHpoVFcgYXMgZGZaaFR3IH0gZnJvbSAnZGF0ZS1mbnMvbG9jYWxlJztcblxuaW1wb3J0IHsgTnpTYWZlQW55IH0gZnJvbSAnbmctem9ycm8tYW50ZC9jb3JlL3R5cGVzJztcbmltcG9ydCB7IGVuX1VTIGFzIHpvcnJvRW5VUywgTnpJMThuU2VydmljZSwgemhfQ04gYXMgem9ycm9aaENOLCB6aF9UVyBhcyB6b3Jyb1poVFcgfSBmcm9tICduZy16b3Jyby1hbnRkL2kxOG4nO1xuXG5pbXBvcnQge1xuICBZZWxvbkxvY2FsZVNlcnZpY2UsXG4gIGVuX1VTIGFzIHllbG9uRW5VUyxcbiAgU2V0dGluZ3NTZXJ2aWNlLFxuICB6aF9DTiBhcyB5ZWxvblpoQ24sXG4gIHpoX1RXIGFzIHllbG9uWmhUdyxcbiAgX0h0dHBDbGllbnQsXG4gIFl1bnphaUkxOG5CYXNlU2VydmljZVxufSBmcm9tICdAeWVsb24vdGhlbWUnO1xuaW1wb3J0IHsgWXVuemFpQ29uZmlnU2VydmljZSB9IGZyb20gJ0B5ZWxvbi91dGlsL2NvbmZpZyc7XG5cbmludGVyZmFjZSBMYW5nQ29uZmlnRGF0YSB7XG4gIGFiYnI6IHN0cmluZztcbiAgdGV4dDogc3RyaW5nO1xuICBuZzogTnpTYWZlQW55O1xuICB6b3JybzogTnpTYWZlQW55O1xuICBkYXRlOiBOelNhZmVBbnk7XG4gIHllbG9uOiBOelNhZmVBbnk7XG59XG5cbmNvbnN0IERFRkFVTFQgPSAnemgtQ04nO1xuY29uc3QgTEFOR1M6IHsgW2tleTogc3RyaW5nXTogTGFuZ0NvbmZpZ0RhdGEgfSA9IHtcbiAgJ3poLUNOJzoge1xuICAgIHRleHQ6ICfnroDkvZPkuK3mlocnLFxuICAgIG5nOiBuZ1poLFxuICAgIHpvcnJvOiB6b3Jyb1poQ04sXG4gICAgZGF0ZTogZGZaaENuLFxuICAgIHllbG9uOiB5ZWxvblpoQ24sXG4gICAgYWJicjogJ/Cfh6jwn4ezJ1xuICB9LFxuICAnemgtVFcnOiB7XG4gICAgdGV4dDogJ+e5geS9k+S4reaWhycsXG4gICAgbmc6IG5nWmhUdyxcbiAgICB6b3Jybzogem9ycm9aaFRXLFxuICAgIGRhdGU6IGRmWmhUdyxcbiAgICB5ZWxvbjogeWVsb25aaFR3LFxuICAgIGFiYnI6ICfwn4et8J+HsCdcbiAgfSxcbiAgJ2VuLVVTJzoge1xuICAgIHRleHQ6ICdFbmdsaXNoJyxcbiAgICBuZzogbmdFbixcbiAgICB6b3Jybzogem9ycm9FblVTLFxuICAgIGRhdGU6IGRmRW4sXG4gICAgeWVsb246IHllbG9uRW5VUyxcbiAgICBhYmJyOiAn8J+HrPCfh6cnXG4gIH1cbn07XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgWXpJMThOU2VydmljZSBleHRlbmRzIFl1bnphaUkxOG5CYXNlU2VydmljZSB7XG4gIHByb3RlY3RlZCBfZGVmYXVsdExhbmcgPSBERUZBVUxUO1xuICBwcml2YXRlIF9sYW5ncyA9IE9iamVjdC5rZXlzKExBTkdTKS5tYXAoY29kZSA9PiB7XG4gICAgY29uc3QgaXRlbSA9IExBTkdTW2NvZGVdO1xuICAgIHJldHVybiB7IGNvZGUsIHRleHQ6IGl0ZW0udGV4dCwgYWJicjogaXRlbS5hYmJyIH07XG4gIH0pO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgaHR0cDogX0h0dHBDbGllbnQsXG4gICAgcHJpdmF0ZSBzZXR0aW5nczogU2V0dGluZ3NTZXJ2aWNlLFxuICAgIHByaXZhdGUgbnpJMThuU2VydmljZTogTnpJMThuU2VydmljZSxcbiAgICBwcml2YXRlIHllbG9uTG9jYWxlU2VydmljZTogWWVsb25Mb2NhbGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcGxhdGZvcm06IFBsYXRmb3JtLFxuICAgIGNvZ1NydjogWXVuemFpQ29uZmlnU2VydmljZVxuICApIHtcbiAgICBzdXBlcihjb2dTcnYpO1xuXG4gICAgY29uc3QgZGVmYXVsdExhbmcgPSB0aGlzLmdldERlZmF1bHRMYW5nKCk7XG4gICAgaWYgKHRoaXMuX2xhbmdzLmZpbmRJbmRleCh3ID0+IHcuY29kZSA9PT0gZGVmYXVsdExhbmcpKSB7XG4gICAgICB0aGlzLl9kZWZhdWx0TGFuZyA9IGRlZmF1bHRMYW5nO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0RGVmYXVsdExhbmcoKTogc3RyaW5nIHtcbiAgICBpZiAoIXRoaXMucGxhdGZvcm0uaXNCcm93c2VyKSB7XG4gICAgICByZXR1cm4gREVGQVVMVDtcbiAgICB9XG4gICAgaWYgKHRoaXMuc2V0dGluZ3MubGF5b3V0LmxhbmcpIHtcbiAgICAgIHJldHVybiB0aGlzLnNldHRpbmdzLmxheW91dC5sYW5nO1xuICAgIH1cbiAgICBsZXQgcmVzID0gKG5hdmlnYXRvci5sYW5ndWFnZXMgPyBuYXZpZ2F0b3IubGFuZ3VhZ2VzWzBdIDogbnVsbCkgfHwgbmF2aWdhdG9yLmxhbmd1YWdlO1xuICAgIGNvbnN0IGFyciA9IHJlcy5zcGxpdCgnLScpO1xuICAgIHJldHVybiBhcnIubGVuZ3RoIDw9IDEgPyByZXMgOiBgJHthcnJbMF19LSR7YXJyWzFdLnRvVXBwZXJDYXNlKCl9YDtcbiAgfVxuXG4gIGxvYWRMYW5nRGF0YShsYW5nOiBzdHJpbmcpOiBPYnNlcnZhYmxlPE56U2FmZUFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGBhc3NldHMvdG1wL2kxOG4vJHtsYW5nfS5qc29uYCk7XG4gIH1cblxuICB1c2UobGFuZzogc3RyaW5nLCBkYXRhOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX2N1cnJlbnRMYW5nID09PSBsYW5nKSByZXR1cm47XG5cbiAgICB0aGlzLl9kYXRhID0gZGF0YTtcblxuICAgIGNvbnN0IGl0ZW0gPSBMQU5HU1tsYW5nXTtcbiAgICByZWdpc3RlckxvY2FsZURhdGEoaXRlbS5uZyk7XG4gICAgdGhpcy5uekkxOG5TZXJ2aWNlLnNldExvY2FsZShpdGVtLnpvcnJvKTtcbiAgICB0aGlzLm56STE4blNlcnZpY2Uuc2V0RGF0ZUxvY2FsZShpdGVtLmRhdGUpO1xuICAgIHRoaXMueWVsb25Mb2NhbGVTZXJ2aWNlLnNldExvY2FsZShpdGVtLnllbG9uKTtcbiAgICB0aGlzLl9jdXJyZW50TGFuZyA9IGxhbmc7XG5cbiAgICB0aGlzLl9jaGFuZ2UkLm5leHQobGFuZyk7XG4gIH1cblxuICBnZXRMYW5ncygpOiBBcnJheTx7IGNvZGU6IHN0cmluZzsgdGV4dDogc3RyaW5nOyBhYmJyOiBzdHJpbmcgfT4ge1xuICAgIHJldHVybiB0aGlzLl9sYW5ncztcbiAgfVxufVxuIl19
1
+ // 请参考:https://ng.yunzainfo.com/docs/i18n
2
+ import { Platform } from '@angular/cdk/platform';
3
+ import { registerLocaleData } from '@angular/common';
4
+ import ngEn from '@angular/common/locales/en';
5
+ import ngZh from '@angular/common/locales/zh';
6
+ import ngZhTw from '@angular/common/locales/zh-Hant';
7
+ import { Injectable } from '@angular/core';
8
+ import { enUS as dfEn, zhCN as dfZhCn, zhTW as dfZhTw } from 'date-fns/locale';
9
+ import { YelonLocaleService, en_US as yelonEnUS, SettingsService, zh_CN as yelonZhCn, zh_TW as yelonZhTw, _HttpClient, YunzaiI18nBaseService } from '@yelon/theme';
10
+ import { YunzaiConfigService } from '@yelon/util/config';
11
+ import { en_US as zorroEnUS, NzI18nService, zh_CN as zorroZhCN, zh_TW as zorroZhTW } from 'ng-zorro-antd/i18n';
12
+ import * as i0 from "@angular/core";
13
+ import * as i1 from "@yelon/theme";
14
+ import * as i2 from "ng-zorro-antd/i18n";
15
+ import * as i3 from "@angular/cdk/platform";
16
+ import * as i4 from "@yelon/util/config";
17
+ const DEFAULT = 'zh-CN';
18
+ const LANGS = {
19
+ 'zh-CN': {
20
+ text: '简体中文',
21
+ ng: ngZh,
22
+ zorro: zorroZhCN,
23
+ date: dfZhCn,
24
+ yelon: yelonZhCn,
25
+ abbr: '🇨🇳'
26
+ },
27
+ 'zh-TW': {
28
+ text: '繁体中文',
29
+ ng: ngZhTw,
30
+ zorro: zorroZhTW,
31
+ date: dfZhTw,
32
+ yelon: yelonZhTw,
33
+ abbr: '🇭🇰'
34
+ },
35
+ 'en-US': {
36
+ text: 'English',
37
+ ng: ngEn,
38
+ zorro: zorroEnUS,
39
+ date: dfEn,
40
+ yelon: yelonEnUS,
41
+ abbr: '🇬🇧'
42
+ }
43
+ };
44
+ export class YzI18NService extends YunzaiI18nBaseService {
45
+ constructor(http, settings, nzI18nService, yelonLocaleService, platform, cogSrv) {
46
+ super(cogSrv);
47
+ this.http = http;
48
+ this.settings = settings;
49
+ this.nzI18nService = nzI18nService;
50
+ this.yelonLocaleService = yelonLocaleService;
51
+ this.platform = platform;
52
+ this._defaultLang = DEFAULT;
53
+ this._langs = Object.keys(LANGS).map(code => {
54
+ const item = LANGS[code];
55
+ return { code, text: item.text, abbr: item.abbr };
56
+ });
57
+ const defaultLang = this.getDefaultLang();
58
+ this._defaultLang = this._langs.findIndex(w => w.code === defaultLang) === -1 ? DEFAULT : defaultLang;
59
+ }
60
+ getDefaultLang() {
61
+ if (!this.platform.isBrowser) {
62
+ return DEFAULT;
63
+ }
64
+ if (this.settings.layout.lang) {
65
+ return this.settings.layout.lang;
66
+ }
67
+ let res = (navigator.languages ? navigator.languages[0] : null) || navigator.language;
68
+ const arr = res.split('-');
69
+ return arr.length <= 1 ? res : `${arr[0]}-${arr[1].toUpperCase()}`;
70
+ }
71
+ loadLangData(lang) {
72
+ return this.http.get(`assets/tmp/i18n/${lang}.json`);
73
+ }
74
+ use(lang, data) {
75
+ if (this._currentLang === lang)
76
+ return;
77
+ this._data = this.flatData(data, []);
78
+ const item = LANGS[lang];
79
+ registerLocaleData(item.ng);
80
+ this.nzI18nService.setLocale(item.zorro);
81
+ this.nzI18nService.setDateLocale(item.date);
82
+ this.yelonLocaleService.setLocale(item.yelon);
83
+ this._currentLang = lang;
84
+ this._change$.next(lang);
85
+ }
86
+ getLangs() {
87
+ return this._langs;
88
+ }
89
+ }
90
+ YzI18NService.ɵprov = i0.ɵɵdefineInjectable({ factory: function YzI18NService_Factory() { return new YzI18NService(i0.ɵɵinject(i1._HttpClient), i0.ɵɵinject(i1.SettingsService), i0.ɵɵinject(i2.NzI18nService), i0.ɵɵinject(i1.YelonLocaleService), i0.ɵɵinject(i3.Platform), i0.ɵɵinject(i4.YunzaiConfigService)); }, token: YzI18NService, providedIn: "root" });
91
+ YzI18NService.decorators = [
92
+ { type: Injectable, args: [{ providedIn: 'root' },] }
93
+ ];
94
+ YzI18NService.ctorParameters = () => [
95
+ { type: _HttpClient },
96
+ { type: SettingsService },
97
+ { type: NzI18nService },
98
+ { type: YelonLocaleService },
99
+ { type: Platform },
100
+ { type: YunzaiConfigService }
101
+ ];
102
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieXouaTE4bi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYmlzL2xheW91dC95ei5pMThuLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEseUNBQXlDO0FBQ3pDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRCxPQUFPLElBQUksTUFBTSw0QkFBNEIsQ0FBQztBQUM5QyxPQUFPLElBQUksTUFBTSw0QkFBNEIsQ0FBQztBQUM5QyxPQUFPLE1BQU0sTUFBTSxpQ0FBaUMsQ0FBQztBQUNyRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzNDLE9BQU8sRUFBRSxJQUFJLElBQUksSUFBSSxFQUFFLElBQUksSUFBSSxNQUFNLEVBQUUsSUFBSSxJQUFJLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9FLE9BQU8sRUFDTCxrQkFBa0IsRUFDbEIsS0FBSyxJQUFJLFNBQVMsRUFDbEIsZUFBZSxFQUNmLEtBQUssSUFBSSxTQUFTLEVBQ2xCLEtBQUssSUFBSSxTQUFTLEVBQ2xCLFdBQVcsRUFDWCxxQkFBcUIsRUFDdEIsTUFBTSxjQUFjLENBQUM7QUFDdEIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFekQsT0FBTyxFQUFFLEtBQUssSUFBSSxTQUFTLEVBQUUsYUFBYSxFQUFFLEtBQUssSUFBSSxTQUFTLEVBQUUsS0FBSyxJQUFJLFNBQVMsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7Ozs7QUFXL0csTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDO0FBQ3hCLE1BQU0sS0FBSyxHQUFzQztJQUMvQyxPQUFPLEVBQUU7UUFDUCxJQUFJLEVBQUUsTUFBTTtRQUNaLEVBQUUsRUFBRSxJQUFJO1FBQ1IsS0FBSyxFQUFFLFNBQVM7UUFDaEIsSUFBSSxFQUFFLE1BQU07UUFDWixLQUFLLEVBQUUsU0FBUztRQUNoQixJQUFJLEVBQUUsTUFBTTtLQUNiO0lBQ0QsT0FBTyxFQUFFO1FBQ1AsSUFBSSxFQUFFLE1BQU07UUFDWixFQUFFLEVBQUUsTUFBTTtRQUNWLEtBQUssRUFBRSxTQUFTO1FBQ2hCLElBQUksRUFBRSxNQUFNO1FBQ1osS0FBSyxFQUFFLFNBQVM7UUFDaEIsSUFBSSxFQUFFLE1BQU07S0FDYjtJQUNELE9BQU8sRUFBRTtRQUNQLElBQUksRUFBRSxTQUFTO1FBQ2YsRUFBRSxFQUFFLElBQUk7UUFDUixLQUFLLEVBQUUsU0FBUztRQUNoQixJQUFJLEVBQUUsSUFBSTtRQUNWLEtBQUssRUFBRSxTQUFTO1FBQ2hCLElBQUksRUFBRSxNQUFNO0tBQ2I7Q0FDRixDQUFDO0FBR0YsTUFBTSxPQUFPLGFBQWMsU0FBUSxxQkFBcUI7SUFPdEQsWUFDVSxJQUFpQixFQUNqQixRQUF5QixFQUN6QixhQUE0QixFQUM1QixrQkFBc0MsRUFDdEMsUUFBa0IsRUFDMUIsTUFBMkI7UUFFM0IsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBUE4sU0FBSSxHQUFKLElBQUksQ0FBYTtRQUNqQixhQUFRLEdBQVIsUUFBUSxDQUFpQjtRQUN6QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1Qix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3RDLGFBQVEsR0FBUixRQUFRLENBQVU7UUFYbEIsaUJBQVksR0FBRyxPQUFPLENBQUM7UUFDekIsV0FBTSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQzdDLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN6QixPQUFPLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDcEQsQ0FBQyxDQUFDLENBQUM7UUFXRCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDMUMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDO0lBQ3hHLENBQUM7SUFFTyxjQUFjO1FBQ3BCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRTtZQUM1QixPQUFPLE9BQU8sQ0FBQztTQUNoQjtRQUNELElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFO1lBQzdCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO1NBQ2xDO1FBQ0QsSUFBSSxHQUFHLEdBQUcsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxTQUFTLENBQUMsUUFBUSxDQUFDO1FBQ3RGLE1BQU0sR0FBRyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDM0IsT0FBTyxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQztJQUNyRSxDQUFDO0lBRUQsWUFBWSxDQUFDLElBQVk7UUFDdkIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsSUFBSSxPQUFPLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUQsR0FBRyxDQUFDLElBQVksRUFBRSxJQUE2QjtRQUM3QyxJQUFJLElBQUksQ0FBQyxZQUFZLEtBQUssSUFBSTtZQUFFLE9BQU87UUFFdkMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVyQyxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekIsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzVCLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6QyxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDNUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFFekIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVELFFBQVE7UUFDTixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQzs7OztZQXRERixVQUFVLFNBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFOzs7WUE1Q2hDLFdBQVc7WUFIWCxlQUFlO1lBUVksYUFBYTtZQVZ4QyxrQkFBa0I7WUFYWCxRQUFRO1lBbUJSLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbIi8vIOivt+WPguiAg++8mmh0dHBzOi8vbmcueXVuemFpbmZvLmNvbS9kb2NzL2kxOG5cbmltcG9ydCB7IFBsYXRmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BsYXRmb3JtJztcbmltcG9ydCB7IHJlZ2lzdGVyTG9jYWxlRGF0YSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgbmdFbiBmcm9tICdAYW5ndWxhci9jb21tb24vbG9jYWxlcy9lbic7XG5pbXBvcnQgbmdaaCBmcm9tICdAYW5ndWxhci9jb21tb24vbG9jYWxlcy96aCc7XG5pbXBvcnQgbmdaaFR3IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9sb2NhbGVzL3poLUhhbnQnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBlblVTIGFzIGRmRW4sIHpoQ04gYXMgZGZaaENuLCB6aFRXIGFzIGRmWmhUdyB9IGZyb20gJ2RhdGUtZm5zL2xvY2FsZSc7XG5cbmltcG9ydCB7XG4gIFllbG9uTG9jYWxlU2VydmljZSxcbiAgZW5fVVMgYXMgeWVsb25FblVTLFxuICBTZXR0aW5nc1NlcnZpY2UsXG4gIHpoX0NOIGFzIHllbG9uWmhDbixcbiAgemhfVFcgYXMgeWVsb25aaFR3LFxuICBfSHR0cENsaWVudCxcbiAgWXVuemFpSTE4bkJhc2VTZXJ2aWNlXG59IGZyb20gJ0B5ZWxvbi90aGVtZSc7XG5pbXBvcnQgeyBZdW56YWlDb25maWdTZXJ2aWNlIH0gZnJvbSAnQHllbG9uL3V0aWwvY29uZmlnJztcbmltcG9ydCB7IE56U2FmZUFueSB9IGZyb20gJ25nLXpvcnJvLWFudGQvY29yZS90eXBlcyc7XG5pbXBvcnQgeyBlbl9VUyBhcyB6b3Jyb0VuVVMsIE56STE4blNlcnZpY2UsIHpoX0NOIGFzIHpvcnJvWmhDTiwgemhfVFcgYXMgem9ycm9aaFRXIH0gZnJvbSAnbmctem9ycm8tYW50ZC9pMThuJztcblxuaW50ZXJmYWNlIExhbmdDb25maWdEYXRhIHtcbiAgYWJicjogc3RyaW5nO1xuICB0ZXh0OiBzdHJpbmc7XG4gIG5nOiBOelNhZmVBbnk7XG4gIHpvcnJvOiBOelNhZmVBbnk7XG4gIGRhdGU6IE56U2FmZUFueTtcbiAgeWVsb246IE56U2FmZUFueTtcbn1cblxuY29uc3QgREVGQVVMVCA9ICd6aC1DTic7XG5jb25zdCBMQU5HUzogeyBba2V5OiBzdHJpbmddOiBMYW5nQ29uZmlnRGF0YSB9ID0ge1xuICAnemgtQ04nOiB7XG4gICAgdGV4dDogJ+eugOS9k+S4reaWhycsXG4gICAgbmc6IG5nWmgsXG4gICAgem9ycm86IHpvcnJvWmhDTixcbiAgICBkYXRlOiBkZlpoQ24sXG4gICAgeWVsb246IHllbG9uWmhDbixcbiAgICBhYmJyOiAn8J+HqPCfh7MnXG4gIH0sXG4gICd6aC1UVyc6IHtcbiAgICB0ZXh0OiAn57mB5L2T5Lit5paHJyxcbiAgICBuZzogbmdaaFR3LFxuICAgIHpvcnJvOiB6b3Jyb1poVFcsXG4gICAgZGF0ZTogZGZaaFR3LFxuICAgIHllbG9uOiB5ZWxvblpoVHcsXG4gICAgYWJicjogJ/Cfh63wn4ewJ1xuICB9LFxuICAnZW4tVVMnOiB7XG4gICAgdGV4dDogJ0VuZ2xpc2gnLFxuICAgIG5nOiBuZ0VuLFxuICAgIHpvcnJvOiB6b3Jyb0VuVVMsXG4gICAgZGF0ZTogZGZFbixcbiAgICB5ZWxvbjogeWVsb25FblVTLFxuICAgIGFiYnI6ICfwn4es8J+HpydcbiAgfVxufTtcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBZekkxOE5TZXJ2aWNlIGV4dGVuZHMgWXVuemFpSTE4bkJhc2VTZXJ2aWNlIHtcbiAgcHJvdGVjdGVkIF9kZWZhdWx0TGFuZyA9IERFRkFVTFQ7XG4gIHByaXZhdGUgX2xhbmdzID0gT2JqZWN0LmtleXMoTEFOR1MpLm1hcChjb2RlID0+IHtcbiAgICBjb25zdCBpdGVtID0gTEFOR1NbY29kZV07XG4gICAgcmV0dXJuIHsgY29kZSwgdGV4dDogaXRlbS50ZXh0LCBhYmJyOiBpdGVtLmFiYnIgfTtcbiAgfSk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBodHRwOiBfSHR0cENsaWVudCxcbiAgICBwcml2YXRlIHNldHRpbmdzOiBTZXR0aW5nc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBuekkxOG5TZXJ2aWNlOiBOekkxOG5TZXJ2aWNlLFxuICAgIHByaXZhdGUgeWVsb25Mb2NhbGVTZXJ2aWNlOiBZZWxvbkxvY2FsZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwbGF0Zm9ybTogUGxhdGZvcm0sXG4gICAgY29nU3J2OiBZdW56YWlDb25maWdTZXJ2aWNlXG4gICkge1xuICAgIHN1cGVyKGNvZ1Nydik7XG4gICAgY29uc3QgZGVmYXVsdExhbmcgPSB0aGlzLmdldERlZmF1bHRMYW5nKCk7XG4gICAgdGhpcy5fZGVmYXVsdExhbmcgPSB0aGlzLl9sYW5ncy5maW5kSW5kZXgodyA9PiB3LmNvZGUgPT09IGRlZmF1bHRMYW5nKSA9PT0gLTEgPyBERUZBVUxUIDogZGVmYXVsdExhbmc7XG4gIH1cblxuICBwcml2YXRlIGdldERlZmF1bHRMYW5nKCk6IHN0cmluZyB7XG4gICAgaWYgKCF0aGlzLnBsYXRmb3JtLmlzQnJvd3Nlcikge1xuICAgICAgcmV0dXJuIERFRkFVTFQ7XG4gICAgfVxuICAgIGlmICh0aGlzLnNldHRpbmdzLmxheW91dC5sYW5nKSB7XG4gICAgICByZXR1cm4gdGhpcy5zZXR0aW5ncy5sYXlvdXQubGFuZztcbiAgICB9XG4gICAgbGV0IHJlcyA9IChuYXZpZ2F0b3IubGFuZ3VhZ2VzID8gbmF2aWdhdG9yLmxhbmd1YWdlc1swXSA6IG51bGwpIHx8IG5hdmlnYXRvci5sYW5ndWFnZTtcbiAgICBjb25zdCBhcnIgPSByZXMuc3BsaXQoJy0nKTtcbiAgICByZXR1cm4gYXJyLmxlbmd0aCA8PSAxID8gcmVzIDogYCR7YXJyWzBdfS0ke2FyclsxXS50b1VwcGVyQ2FzZSgpfWA7XG4gIH1cblxuICBsb2FkTGFuZ0RhdGEobGFuZzogc3RyaW5nKTogT2JzZXJ2YWJsZTxOelNhZmVBbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgYXNzZXRzL3RtcC9pMThuLyR7bGFuZ30uanNvbmApO1xuICB9XG5cbiAgdXNlKGxhbmc6IHN0cmluZywgZGF0YTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fY3VycmVudExhbmcgPT09IGxhbmcpIHJldHVybjtcblxuICAgIHRoaXMuX2RhdGEgPSB0aGlzLmZsYXREYXRhKGRhdGEsIFtdKTtcblxuICAgIGNvbnN0IGl0ZW0gPSBMQU5HU1tsYW5nXTtcbiAgICByZWdpc3RlckxvY2FsZURhdGEoaXRlbS5uZyk7XG4gICAgdGhpcy5uekkxOG5TZXJ2aWNlLnNldExvY2FsZShpdGVtLnpvcnJvKTtcbiAgICB0aGlzLm56STE4blNlcnZpY2Uuc2V0RGF0ZUxvY2FsZShpdGVtLmRhdGUpO1xuICAgIHRoaXMueWVsb25Mb2NhbGVTZXJ2aWNlLnNldExvY2FsZShpdGVtLnllbG9uKTtcbiAgICB0aGlzLl9jdXJyZW50TGFuZyA9IGxhbmc7XG5cbiAgICB0aGlzLl9jaGFuZ2UkLm5leHQobGFuZyk7XG4gIH1cblxuICBnZXRMYW5ncygpOiBBcnJheTx7IGNvZGU6IHN0cmluZzsgdGV4dDogc3RyaW5nOyBhYmJyOiBzdHJpbmcgfT4ge1xuICAgIHJldHVybiB0aGlzLl9sYW5ncztcbiAgfVxufVxuIl19
@@ -1,138 +1,138 @@
1
- import { APP_INITIALIZER, Inject, Injectable } from '@angular/core';
2
- import { of } from 'rxjs';
3
- import { mergeMap } from 'rxjs/operators';
4
- import { NzIconService } from 'ng-zorro-antd/icon';
5
- import { ACLService } from '@yelon/acl';
6
- import { ICONS } from '@yelon/bis/shared';
7
- import { CacheService } from '@yelon/cache';
8
- import { MenuService, SettingsService, TitleService, YUNZAI_I18N_TOKEN } from '@yelon/theme';
9
- import { deepCopy, log, YunzaiConfigService } from '@yelon/util';
10
- import { BUSINESS_DEFAULT_CONFIG, mergeBisConfig } from './bis.config';
11
- import { YzAuthService } from './yz.auth.service';
12
- import { YzI18NService } from './yz.i18n.service';
13
- export function mapYzSideToYelonMenu(menus) {
14
- menus.forEach(menu => {
15
- menu.badgeDot = menu.badge_dot || null;
16
- menu.badgeStatus = menu.badge_status || null;
17
- menu.shortcutRoot = menu.shortcut_root || null;
18
- menu.reuse = true;
19
- if (menu.children) {
20
- mapYzSideToYelonMenu(menu.children);
21
- }
22
- });
23
- }
24
- export function generateAbility(menus, abilities, prefix) {
25
- menus.forEach(menu => {
26
- if (menu.link) {
27
- prefix += menu.link;
28
- }
29
- else {
30
- prefix += '';
31
- }
32
- if (menu.menuAuths) {
33
- menu.menuAuths.forEach((a) => {
34
- abilities.push(`${prefix}:${a}`);
35
- abilities.push(a);
36
- });
37
- }
38
- if (menu.children) {
39
- generateAbility(menu.children, abilities, prefix);
40
- }
41
- });
42
- }
43
- export class YzStartupService {
44
- constructor(iconSrv, menuService, i18n, settingService, aclService, titleService, yzAuthService, cacheService, configService) {
45
- this.menuService = menuService;
46
- this.i18n = i18n;
47
- this.settingService = settingService;
48
- this.aclService = aclService;
49
- this.titleService = titleService;
50
- this.yzAuthService = yzAuthService;
51
- this.cacheService = cacheService;
52
- this.configService = configService;
53
- this.bis = BUSINESS_DEFAULT_CONFIG;
54
- this.bis = mergeBisConfig(this.configService);
55
- iconSrv.addIcon(...ICONS);
56
- }
57
- load() {
58
- log('startup.service: ', 'load');
59
- const defaultLang = this.i18n.defaultLang;
60
- return this.i18n.loadLangData(defaultLang).pipe(mergeMap(langData => {
61
- log('startup.service: ', 'set i18n, defaultLang->', defaultLang, ' langData->', langData);
62
- this.i18n.use(defaultLang, langData);
63
- return of(null);
64
- }), mergeMap(() => {
65
- return this.yzAuthService.login();
66
- }), mergeMap(v => {
67
- // preloader finish
68
- this.systemInit();
69
- log('startup.service: preloader finish');
70
- const win = window;
71
- if (win && win.appBootstrap) {
72
- win.appBootstrap();
73
- }
74
- return of(v);
75
- }));
76
- }
77
- systemInit() {
78
- log('startup.service: system init');
79
- // user
80
- const user = this.cacheService.get('_yz_user', { mode: 'none' });
81
- // menu
82
- const ms = deepCopy(user.menu).filter((m) => m.systemCode && m.systemCode === this.bis.systemCode);
83
- mapYzSideToYelonMenu(ms);
84
- const currentMenu = ms.pop();
85
- this.menuService.add([currentMenu]);
86
- // logo app
87
- this.settingService.setApp({ name: currentMenu.text, description: currentMenu.intro });
88
- this.settingService.setUser({
89
- name: user.realname || 'no name',
90
- avatar: `${this.bis.baseUrl}/filecenter/file/${user.avatarId}` || '',
91
- email: user.email || 'no email'
92
- });
93
- // title
94
- this.titleService.default = currentMenu.text || 'default application name';
95
- this.titleService.setTitle(currentMenu.text || 'no title');
96
- // acl
97
- const abilities = [];
98
- generateAbility([currentMenu], abilities, '');
99
- this.aclService.attachRole((user === null || user === void 0 ? void 0 : user.roles.map((role) => {
100
- return role.roleValue;
101
- }).filter((a) => !!a)) || []);
102
- this.aclService.attachAbility(abilities);
103
- // cache current
104
- this.cacheService.set('_yz_current', {
105
- text: currentMenu.text,
106
- intro: currentMenu.intro,
107
- icon: currentMenu.appIconUrl
108
- });
109
- }
110
- }
111
- YzStartupService.decorators = [
112
- { type: Injectable }
113
- ];
114
- YzStartupService.ctorParameters = () => [
115
- { type: NzIconService },
116
- { type: MenuService },
117
- { type: YzI18NService, decorators: [{ type: Inject, args: [YUNZAI_I18N_TOKEN,] }] },
118
- { type: SettingsService },
119
- { type: ACLService },
120
- { type: TitleService },
121
- { type: YzAuthService },
122
- { type: CacheService },
123
- { type: YunzaiConfigService }
124
- ];
125
- export function YzStartupServiceFactory(startupService) {
126
- return () => startupService.load();
127
- }
128
- //@ts-ignore
129
- export const YZ_APPINIT_PROVIDES = [
130
- YzStartupService,
131
- {
132
- provide: APP_INITIALIZER,
133
- useFactory: YzStartupServiceFactory,
134
- deps: [YzStartupService],
135
- multi: true
136
- }
137
- ];
1
+ import { APP_INITIALIZER, Inject, Injectable } from '@angular/core';
2
+ import { of } from 'rxjs';
3
+ import { mergeMap } from 'rxjs/operators';
4
+ import { NzIconService } from 'ng-zorro-antd/icon';
5
+ import { ACLService } from '@yelon/acl';
6
+ import { ICONS } from '@yelon/bis/shared';
7
+ import { CacheService } from '@yelon/cache';
8
+ import { MenuService, SettingsService, TitleService, YUNZAI_I18N_TOKEN } from '@yelon/theme';
9
+ import { deepCopy, log, YunzaiConfigService } from '@yelon/util';
10
+ import { BUSINESS_DEFAULT_CONFIG, mergeBisConfig } from './bis.config';
11
+ import { YzAuthService } from './yz.auth.service';
12
+ import { YzI18NService } from './yz.i18n.service';
13
+ export function mapYzSideToYelonMenu(menus) {
14
+ menus.forEach(menu => {
15
+ menu.badgeDot = menu.badge_dot || null;
16
+ menu.badgeStatus = menu.badge_status || null;
17
+ menu.shortcutRoot = menu.shortcut_root || null;
18
+ menu.reuse = true;
19
+ if (menu.children) {
20
+ mapYzSideToYelonMenu(menu.children);
21
+ }
22
+ });
23
+ }
24
+ export function generateAbility(menus, abilities, prefix) {
25
+ menus.forEach(menu => {
26
+ if (menu.link) {
27
+ prefix += menu.link;
28
+ }
29
+ else {
30
+ prefix += '';
31
+ }
32
+ if (menu.menuAuths) {
33
+ menu.menuAuths.forEach((a) => {
34
+ abilities.push(`${prefix}:${a}`);
35
+ abilities.push(a);
36
+ });
37
+ }
38
+ if (menu.children) {
39
+ generateAbility(menu.children, abilities, prefix);
40
+ }
41
+ });
42
+ }
43
+ export class YzStartupService {
44
+ constructor(iconSrv, menuService, i18n, settingService, aclService, titleService, yzAuthService, cacheService, configService) {
45
+ this.menuService = menuService;
46
+ this.i18n = i18n;
47
+ this.settingService = settingService;
48
+ this.aclService = aclService;
49
+ this.titleService = titleService;
50
+ this.yzAuthService = yzAuthService;
51
+ this.cacheService = cacheService;
52
+ this.configService = configService;
53
+ this.bis = BUSINESS_DEFAULT_CONFIG;
54
+ this.bis = mergeBisConfig(this.configService);
55
+ iconSrv.addIcon(...ICONS);
56
+ }
57
+ load() {
58
+ log('startup.service: ', 'load');
59
+ const defaultLang = this.i18n.defaultLang;
60
+ return this.i18n.loadLangData(defaultLang).pipe(mergeMap(langData => {
61
+ log('startup.service: ', 'set i18n, defaultLang->', defaultLang, ' langData->', langData);
62
+ this.i18n.use(defaultLang, langData);
63
+ return of(null);
64
+ }), mergeMap(() => {
65
+ return this.yzAuthService.login();
66
+ }), mergeMap(v => {
67
+ // preloader finish
68
+ this.systemInit();
69
+ log('startup.service: preloader finish');
70
+ const win = window;
71
+ if (win && win.appBootstrap) {
72
+ win.appBootstrap();
73
+ }
74
+ return of(v);
75
+ }));
76
+ }
77
+ systemInit() {
78
+ log('startup.service: system init');
79
+ // user
80
+ const user = this.cacheService.get('_yz_user', { mode: 'none' });
81
+ // menu
82
+ const ms = deepCopy(user.menu).filter((m) => m.systemCode && m.systemCode === this.bis.systemCode);
83
+ mapYzSideToYelonMenu(ms);
84
+ const currentMenu = ms.pop();
85
+ this.menuService.add([currentMenu]);
86
+ // logo app
87
+ this.settingService.setApp({ name: currentMenu.text, description: currentMenu.intro });
88
+ this.settingService.setUser({
89
+ name: user.realname || 'no name',
90
+ avatar: `${this.bis.baseUrl}/filecenter/file/${user.avatarId}` || '',
91
+ email: user.email || 'no email'
92
+ });
93
+ // title
94
+ this.titleService.default = currentMenu.text || 'default application name';
95
+ this.titleService.setTitle(currentMenu.text || 'no title');
96
+ // acl
97
+ const abilities = [];
98
+ generateAbility([currentMenu], abilities, '');
99
+ this.aclService.attachRole((user === null || user === void 0 ? void 0 : user.roles.map((role) => {
100
+ return role.roleValue;
101
+ }).filter((a) => !!a)) || []);
102
+ this.aclService.attachAbility(abilities);
103
+ // cache current
104
+ this.cacheService.set('_yz_current', {
105
+ text: currentMenu.text,
106
+ intro: currentMenu.intro,
107
+ icon: currentMenu.appIconUrl
108
+ });
109
+ }
110
+ }
111
+ YzStartupService.decorators = [
112
+ { type: Injectable }
113
+ ];
114
+ YzStartupService.ctorParameters = () => [
115
+ { type: NzIconService },
116
+ { type: MenuService },
117
+ { type: YzI18NService, decorators: [{ type: Inject, args: [YUNZAI_I18N_TOKEN,] }] },
118
+ { type: SettingsService },
119
+ { type: ACLService },
120
+ { type: TitleService },
121
+ { type: YzAuthService },
122
+ { type: CacheService },
123
+ { type: YunzaiConfigService }
124
+ ];
125
+ export function YzStartupServiceFactory(startupService) {
126
+ return () => startupService.load();
127
+ }
128
+ //@ts-ignore
129
+ export const YZ_APPINIT_PROVIDES = [
130
+ YzStartupService,
131
+ {
132
+ provide: APP_INITIALIZER,
133
+ useFactory: YzStartupServiceFactory,
134
+ deps: [YzStartupService],
135
+ multi: true
136
+ }
137
+ ];
138
138
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieXouc3RhcnR1cC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYmlzL2xheW91dC95ei5zdGFydHVwLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BFLE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRzFDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMxQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzVDLE9BQU8sRUFBUSxXQUFXLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBUSxpQkFBaUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN6RyxPQUFPLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBd0IsbUJBQW1CLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFdkYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLGNBQWMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN2RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRWxELE1BQU0sVUFBVSxvQkFBb0IsQ0FBQyxLQUFhO0lBQ2hELEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7UUFDbkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQztRQUN2QyxJQUFJLENBQUMsV0FBVyxHQUFHLElB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QUFDLGlCQUFpQjtZQTlDRCxlQUFlO1lBSGxDLFVBQVU7WUFHMEIsWUFBWTtZQUloRCxhQUFhO1lBTGIsWUFBWTtZQUV5QixtQkFBbUI7O0FBNkhqRSxNQUFNLFVBQVUsdUJBQXVCLENBQUMsY0FBZ0M7SUFDdEUsT0FBTyxHQUFHLEVBQUUsQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUM7QUFDckMsQ0FBQztBQUVELFlBQVk7QUFDWixNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRztJQUNqQyxnQkFBZ0I7SUFDaEI7UUFDRSxPQUFPLEVBQUUsZUFBZTtRQUN4QixVQUFVLEVBQUUsdUJBQXVCO1FBQ25DLElBQUksRUFBRSxDQUFDLGdCQUFnQixDQUFDO1FBQ3hCLEtBQUssRUFBRSxJQUFJO0tBQ1o7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVBQX0lOSVRJQUxJWkVSLCBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtZXJnZU1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgTnpTYWZlQW55IH0gZnJvbSAnbmctem9ycm8tYW50ZC9jb3JlL3R5cGVzJztcbmltcG9ydCB7IE56SWNvblNlcnZpY2UgfSBmcm9tICduZy16b3Jyby1hbnRkL2ljb24nO1xuXG5pbXBvcnQgeyBBQ0xTZXJ2aWNlIH0gZnJvbSAnQHllbG9uL2FjbCc7XG5pbXBvcnQgeyBJQ09OUyB9IGZyb20gJ0B5ZWxvbi9iaXMvc2hhcmVkJztcbmltcG9ydCB7IENhY2hlU2VydmljZSB9IGZyb20gJ0B5ZWxvbi9jYWNoZSc7XG5pbXBvcnQgeyBNZW51LCBNZW51U2VydmljZSwgU2V0dGluZ3NTZXJ2aWNlLCBUaXRsZVNlcnZpY2UsIFVzZXIsIFlVTlpBSV9JMThOX1RPS0VOIH0gZnJvbSAnQHllbG9uL3RoZW1lJztcbmltcG9ydCB7IGRlZXBDb3B5LCBsb2csIFl1bnphaUJ1c2luZXNzQ29uZmlnLCBZdW56YWlDb25maWdTZXJ2aWNlIH0gZnJvbSAnQHllbG9uL3V0aWwnO1xuXG5pbXBvcnQgeyBCVVNJTkVTU19ERUZBVUxUX0NPTkZJRywgbWVyZ2VCaXNDb25maWcgfSBmcm9tICcuL2Jpcy5jb25maWcnO1xuaW1wb3J0IHsgWXpBdXRoU2VydmljZSB9IGZyb20gJy4veXouYXV0aC5zZXJ2aWNlJztcbmltcG9ydCB7IFl6STE4TlNlcnZpY2UgfSBmcm9tICcuL3l6LmkxOG4uc2VydmljZSc7XG5cbmV4cG9ydCBmdW5jdGlvbiBtYXBZelNpZGVUb1llbG9uTWVudShtZW51czogTWVudVtdKSB7XG4gIG1lbnVzLmZvckVhY2gobWVudSA9PiB7XG4gICAgbWVudS5iYWRnZURvdCA9IG1lbnUuYmFkZ2VfZG90IHx8IG51bGw7XG4gICAgbWVudS5iYWRnZVN0YXR1cyA9IG1lbnUuYmFkZ2Vfc3RhdHVzIHx8IG51bGw7XG4gICAgbWVudS5zaG9ydGN1dFJvb3QgPSBtZW51LnNob3J0Y3V0X3Jvb3QgfHwgbnVsbDtcbiAgICBtZW51LnJldXNlID0gdHJ1ZTtcbiAgICBpZiAobWVudS5jaGlsZHJlbikge1xuICAgICAgbWFwWXpTaWRlVG9ZZWxvbk1lbnUobWVudS5jaGlsZHJlbik7XG4gICAgfVxuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdlbmVyYXRlQWJpbGl0eShtZW51czogTWVudVtdLCBhYmlsaXRpZXM6IHN0cmluZ1tdLCBwcmVmaXg6IHN0cmluZyk6IHZvaWQge1xuICBtZW51cy5mb3JFYWNoKG1lbnUgPT4ge1xuICAgIGlmIChtZW51LmxpbmspIHtcbiAgICAgIHByZWZpeCArPSBtZW51Lmxpbms7XG4gICAgfSBlbHNlIHtcbiAgICAgIHByZWZpeCArPSAnJztcbiAgICB9XG4gICAgaWYgKG1lbnUubWVudUF1dGhzKSB7XG4gICAgICBtZW51Lm1lbnVBdXRocy5mb3JFYWNoKChhOiBzdHJpbmcpID0+IHtcbiAgICAgICAgYWJpbGl0aWVzLnB1c2goYCR7cHJlZml4fToke2F9YCk7XG4gICAgICAgIGFiaWxpdGllcy5wdXNoKGEpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKG1lbnUuY2hpbGRyZW4pIHtcbiAgICAgIGdlbmVyYXRlQWJpbGl0eShtZW51LmNoaWxkcmVuLCBhYmlsaXRpZXMsIHByZWZpeCk7XG4gICAgfVxuICB9KTtcbn1cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFl6U3RhcnR1cFNlcnZpY2Uge1xuICBwcml2YXRlIGJpczogWXVuemFpQnVzaW5lc3NDb25maWcgPSBCVVNJTkVTU19ERUZBVUxUX0NPTkZJRztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBpY29uU3J2OiBOekljb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgbWVudVNlcnZpY2U6IE1lbnVTZXJ2aWNlLFxuICAgIEBJbmplY3QoWVVOWkFJX0kxOE5fVE9LRU4pIHByaXZhdGUgaTE4bjogWXpJMThOU2VydmljZSxcbiAgICBwcml2YXRlIHNldHRpbmdTZXJ2aWNlOiBTZXR0aW5nc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBhY2xTZXJ2aWNlOiBBQ0xTZXJ2aWNlLFxuICAgIHByaXZhdGUgdGl0bGVTZXJ2aWNlOiBUaXRsZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSB5ekF1dGhTZXJ2aWNlOiBZekF1dGhTZXJ2aWNlLFxuICAgIHByaXZhdGUgY2FjaGVTZXJ2aWNlOiBDYWNoZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb25maWdTZXJ2aWNlOiBZdW56YWlDb25maWdTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMuYmlzID0gbWVyZ2VCaXNDb25maWcodGhpcy5jb25maWdTZXJ2aWNlKTtcbiAgICBpY29uU3J2LmFkZEljb24oLi4uSUNPTlMpO1xuICB9XG5cbiAgbG9hZCgpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICBsb2coJ3N0YXJ0dXAuc2VydmljZTogJywgJ2xvYWQnKTtcbiAgICBjb25zdCBkZWZhdWx0TGFuZyA9IHRoaXMuaTE4bi5kZWZhdWx0TGFuZztcbiAgICByZXR1cm4gdGhpcy5pMThuLmxvYWRMYW5nRGF0YShkZWZhdWx0TGFuZykucGlwZShcbiAgICAgIG1lcmdlTWFwKGxhbmdEYXRhID0+IHtcbiAgICAgICAgbG9nKCdzdGFydHVwLnNlcnZpY2U6ICcsICdzZXQgaTE4biwgZGVmYXVsdExhbmctPicsIGRlZmF1bHRMYW5nLCAnIGxhbmdEYXRhLT4nLCBsYW5nRGF0YSk7XG4gICAgICAgIHRoaXMuaTE4bi51c2UoZGVmYXVsdExhbmcsIGxhbmdEYXRhKTtcbiAgICAgICAgcmV0dXJuIG9mKG51bGwpO1xuICAgICAgfSksXG4gICAgICBtZXJnZU1hcCgoKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLnl6QXV0aFNlcnZpY2UubG9naW4oKTtcbiAgICAgIH0pLFxuICAgICAgbWVyZ2VNYXAodiA9PiB7XG4gICAgICAgIC8vIHByZWxvYWRlciBmaW5pc2hcbiAgICAgICAgdGhpcy5zeXN0ZW1Jbml0KCk7XG4gICAgICAgIGxvZygnc3RhcnR1cC5zZXJ2aWNlOiBwcmVsb2FkZXIgZmluaXNoJyk7XG4gICAgICAgIGNvbnN0IHdpbiA9IHdpbmRvdyBhcyBOelNhZmVBbnk7XG4gICAgICAgIGlmICh3aW4gJiYgd2luLmFwcEJvb3RzdHJhcCkge1xuICAgICAgICAgIHdpbi5hcHBCb290c3RyYXAoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2Yodik7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBzeXN0ZW1Jbml0KCk6IHZvaWQge1xuICAgIGxvZygnc3RhcnR1cC5zZXJ2aWNlOiBzeXN0ZW0gaW5pdCcpO1xuICAgIC8vIHVzZXJcbiAgICBjb25zdCB1c2VyOiBVc2VyID0gdGhpcy5jYWNoZVNlcnZpY2UuZ2V0KCdfeXpfdXNlcicsIHsgbW9kZTogJ25vbmUnIH0pO1xuICAgIC8vIG1lbnVcbiAgICBjb25zdCBtcyA9IGRlZXBDb3B5KHVzZXIubWVudSkuZmlsdGVyKChtOiBNZW51KSA9PiBtLnN5c3RlbUNvZGUgJiYgbS5zeXN0ZW1Db2RlID09PSB0aGlzLmJpcy5zeXN0ZW1Db2RlKSBhcyBNZW51W107XG4gICAgbWFwWXpTaWRlVG9ZZWxvbk1lbnUobXMpO1xuICAgIGNvbnN0IGN1cnJlbnRNZW51ID0gbXMucG9wKCkhO1xuICAgIHRoaXMubWVudVNlcnZpY2UuYWRkKFtjdXJyZW50TWVudV0pO1xuXG4gICAgLy8gbG9nbyBhcHBcbiAgICB0aGlzLnNldHRpbmdTZXJ2aWNlLnNldEFwcCh7IG5hbWU6IGN1cnJlbnRNZW51LnRleHQsIGRlc2NyaXB0aW9uOiBjdXJyZW50TWVudS5pbnRybyB9KTtcbiAgICB0aGlzLnNldHRpbmdTZXJ2aWNlLnNldFVzZXIoe1xuICAgICAgbmFtZTogdXNlci5yZWFsbmFtZSB8fCAnbm8gbmFtZScsXG4gICAgICBhdmF0YXI6IGAke3RoaXMuYmlzLmJhc2VVcmx9L2ZpbGVjZW50ZXIvZmlsZS8ke3VzZXIuYXZhdGFySWR9YCB8fCAnJyxcbiAgICAgIGVtYWlsOiB1c2VyLmVtYWlsIHx8ICdubyBlbWFpbCdcbiAgICB9KTtcblxuICAgIC8vIHRpdGxlXG4gICAgdGhpcy50aXRsZVNlcnZpY2UuZGVmYXVsdCA9IGN1cnJlbnRNZW51LnRleHQgfHwgJ2RlZmF1bHQgYXBwbGljYXRpb24gbmFtZSc7XG4gICAgdGhpcy50aXRsZVNlcnZpY2Uuc2V0VGl0bGUoY3VycmVudE1lbnUudGV4dCB8fCAnbm8gdGl0bGUnKTtcblxuICAgIC8vIGFjbFxuICAgIGNvbnN0IGFiaWxpdGllczogc3RyaW5nW10gPSBbXTtcbiAgICBnZW5lcmF0ZUFiaWxpdHkoW2N1cnJlbnRNZW51XSwgYWJpbGl0aWVzLCAnJyk7XG4gICAgdGhpcy5hY2xTZXJ2aWNlLmF0dGFjaFJvbGUoXG4gICAgICB1c2VyPy5yb2xlc1xuICAgICAgICAubWFwKChyb2xlOiBOelNhZmVBbnkpID0+IHtcbiAgICAgICAgICByZXR1cm4gcm9sZS5yb2xlVmFsdWU7XG4gICAgICAgIH0pXG4gICAgICAgIC5maWx0ZXIoKGE6IE56U2FmZUFueSkgPT4gISFhKSB8fCBbXVxuICAgICk7XG4gICAgdGhpcy5hY2xTZXJ2aWNlLmF0dGFjaEFiaWxpdHkoYWJpbGl0aWVzKTtcblxuICAgIC8vIGNhY2hlIGN1cnJlbnRcbiAgICB0aGlzLmNhY2hlU2VydmljZS5zZXQoJ195el9jdXJyZW50Jywge1xuICAgICAgdGV4dDogY3VycmVudE1lbnUudGV4dCxcbiAgICAgIGludHJvOiBjdXJyZW50TWVudS5pbnRybyxcbiAgICAgIGljb246IGN1cnJlbnRNZW51LmFwcEljb25VcmxcbiAgICB9KTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gWXpTdGFydHVwU2VydmljZUZhY3Rvcnkoc3RhcnR1cFNlcnZpY2U6IFl6U3RhcnR1cFNlcnZpY2UpOiAoKSA9PiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgcmV0dXJuICgpID0+IHN0YXJ0dXBTZXJ2aWNlLmxvYWQoKTtcbn1cblxuLy9AdHMtaWdub3JlXG5leHBvcnQgY29uc3QgWVpfQVBQSU5JVF9QUk9WSURFUyA9IFtcbiAgWXpTdGFydHVwU2VydmljZSxcbiAge1xuICAgIHByb3ZpZGU6IEFQUF9JTklUSUFMSVpFUixcbiAgICB1c2VGYWN0b3J5OiBZelN0YXJ0dXBTZXJ2aWNlRmFjdG9yeSxcbiAgICBkZXBzOiBbWXpTdGFydHVwU2VydmljZV0sXG4gICAgbXVsdGk6IHRydWVcbiAgfVxuXTtcbiJdfQ==