@yelon/bis 15.0.0-beta.7 → 15.1.0-18de49a5

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.
@@ -1,10 +1,10 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { Component, ChangeDetectionStrategy, HostListener, Injectable, Inject, Input, Optional, NgModule, APP_INITIALIZER } from '@angular/core';
3
- import { forkJoin, map, Subject, takeUntil, of, mergeMap, mergeAll, BehaviorSubject, throwError, filter, take, switchMap, catchError } from 'rxjs';
4
- import * as i1$3 from '@yelon/util';
5
- import { WINDOW, log as log$1, deepCopy, YunzaiConfigService } from '@yelon/util';
3
+ import { Subject, takeUntil, of, catchError, forkJoin, map, mergeMap, mergeAll, BehaviorSubject, throwError, filter, take, switchMap } from 'rxjs';
4
+ import * as i1$4 from '@yelon/util';
5
+ import { WINDOW, hasFavicon, setFavicon, log as log$1, deepCopy, YunzaiConfigService } from '@yelon/util';
6
6
  import * as i1$5 from '@yelon/theme/layout-default';
7
- import * as i1$4 from '@yelon/cache';
7
+ import * as i1$3 from '@yelon/cache';
8
8
  import { CacheService } from '@yelon/cache';
9
9
  import * as i3$3 from '@yelon/socket';
10
10
  import * as i4$1 from '@angular/common';
@@ -20,16 +20,25 @@ import * as i9 from 'ng-zorro-antd/avatar';
20
20
  import * as i1 from 'ng-zorro-antd/modal';
21
21
  import * as i1$1 from 'ng-zorro-antd/message';
22
22
  import * as i1$2 from '@yelon/theme';
23
- import { zh_CN as zh_CN$1, zh_TW as zh_TW$1, en_US as en_US$1, YunzaiI18nBaseService, YUNZAI_I18N_TOKEN, _HttpClient } from '@yelon/theme';
23
+ import { zh_CN as zh_CN$1, zh_TW as zh_TW$1, en_US as en_US$1, el_GR as el_GR$1, es_ES as es_ES$1, fr_FR as fr_FR$1, hr_HR as hr_HR$1, it_IT as it_IT$1, ko_KR as ko_KR$1, pl_PL as pl_PL$1, sl_SI as sl_SI$1, tr_TR as tr_TR$1, YunzaiI18nBaseService, YUNZAI_I18N_TOKEN, _HttpClient } from '@yelon/theme';
24
24
  import screenfull from 'screenfull';
25
25
  import { __decorate } from 'tslib';
26
26
  import { InputBoolean } from '@yelon/util/decorator';
27
27
  import ngEn from '@angular/common/locales/en';
28
+ import { zhCN, zhTW, enUS, el, es, fr, hr, it, ko, pl, sl, tr } from 'date-fns/locale';
29
+ import * as i2 from 'ng-zorro-antd/i18n';
30
+ import { zh_CN, zh_TW, en_US, el_GR, es_ES, fr_FR, hr_HR, it_IT, ko_KR, pl_PL, sl_SI, tr_TR } from 'ng-zorro-antd/i18n';
31
+ import ngElGr from '@angular/common/locales/el';
32
+ import ngEsEs from '@angular/common/locales/es';
33
+ import ngFr from '@angular/common/locales/fr';
34
+ import ngHr from '@angular/common/locales/hr';
35
+ import ngIt from '@angular/common/locales/it';
36
+ import ngKo from '@angular/common/locales/ko';
37
+ import ngPl from '@angular/common/locales/pl';
38
+ import ngSl from '@angular/common/locales/sl';
39
+ import ngTr from '@angular/common/locales/tr';
28
40
  import ngZh from '@angular/common/locales/zh';
29
41
  import ngZhTw from '@angular/common/locales/zh-Hant';
30
- import { zhCN, zhTW, enUS } from 'date-fns/locale';
31
- import * as i2 from 'ng-zorro-antd/i18n';
32
- import { zh_CN, zh_TW, en_US } from 'ng-zorro-antd/i18n';
33
42
  import * as i3$1 from '@angular/cdk/platform';
34
43
  import * as i4 from '@yelon/util/config';
35
44
  import { YunzaiConfigService as YunzaiConfigService$1 } from '@yelon/util/config';
@@ -76,7 +85,7 @@ class YunzaiClearStorageComponent {
76
85
  YunzaiClearStorageComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: YunzaiClearStorageComponent, deps: [{ token: i1.NzModalService }, { token: i1$1.NzMessageService }], target: i0.ɵɵFactoryTarget.Component });
77
86
  YunzaiClearStorageComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.4", type: YunzaiClearStorageComponent, selector: "yunzai-clearstorage", host: { listeners: { "click": "_click()" }, properties: { "class.d-block": "true" } }, ngImport: i0, template: `
78
87
  <i nz-icon nzType="tool"></i>
79
- {{ 'menu.clear.local.storage' | i18n }}
88
+ {{ 'storage.clear' | i18n }}
80
89
  `, isInline: true, dependencies: [{ kind: "directive", type: i3.ɵNzTransitionPatchDirective, selector: "[nz-button], nz-button-group, [nz-icon], [nz-menu-item], [nz-submenu], nz-select-top-control, nz-select-placeholder, nz-input-group", inputs: ["hidden"] }, { kind: "directive", type: i8.NzIconDirective, selector: "[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { kind: "pipe", type: i1$2.I18nPipe, name: "i18n" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
81
90
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: YunzaiClearStorageComponent, decorators: [{
82
91
  type: Component,
@@ -84,7 +93,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImpor
84
93
  selector: 'yunzai-clearstorage',
85
94
  template: `
86
95
  <i nz-icon nzType="tool"></i>
87
- {{ 'menu.clear.local.storage' | i18n }}
96
+ {{ 'storage.clear' | i18n }}
88
97
  `,
89
98
  host: {
90
99
  '[class.d-block]': 'true'
@@ -112,7 +121,7 @@ class YunzaiFullScreenComponent {
112
121
  YunzaiFullScreenComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: YunzaiFullScreenComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
113
122
  YunzaiFullScreenComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.4", type: YunzaiFullScreenComponent, selector: "yunzai-fullscreen", host: { listeners: { "window:resize": "_resize()", "click": "_click()" }, properties: { "class.d-block": "true" } }, ngImport: i0, template: `
114
123
  <i nz-icon [nzType]="status ? 'fullscreen-exit' : 'fullscreen'"></i>
115
- {{ (status ? 'menu.fullscreen.exit' : 'menu.fullscreen') | i18n }}
124
+ {{ (status ? 'exitFullscreen' : 'fullscreen') | i18n }}
116
125
  `, isInline: true, dependencies: [{ kind: "directive", type: i3.ɵNzTransitionPatchDirective, selector: "[nz-button], nz-button-group, [nz-icon], [nz-menu-item], [nz-submenu], nz-select-top-control, nz-select-placeholder, nz-input-group", inputs: ["hidden"] }, { kind: "directive", type: i8.NzIconDirective, selector: "[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { kind: "pipe", type: i1$2.I18nPipe, name: "i18n" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
117
126
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: YunzaiFullScreenComponent, decorators: [{
118
127
  type: Component,
@@ -120,7 +129,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImpor
120
129
  selector: 'yunzai-fullscreen',
121
130
  template: `
122
131
  <i nz-icon [nzType]="status ? 'fullscreen-exit' : 'fullscreen'"></i>
123
- {{ (status ? 'menu.fullscreen.exit' : 'menu.fullscreen') | i18n }}
132
+ {{ (status ? 'exitFullscreen' : 'fullscreen') | i18n }}
124
133
  `,
125
134
  host: {
126
135
  '[class.d-block]': 'true'
@@ -135,8 +144,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImpor
135
144
  args: ['click']
136
145
  }] } });
137
146
 
138
- const DEFAULT = 'zh-CN';
139
- const LANGS = {
147
+ const BUSINESS_DEFAULT_CONFIG = {
148
+ baseUrl: '/backstage',
149
+ systemCode: 'portal',
150
+ loginForm: null,
151
+ refreshTokenEnabled: true,
152
+ refreshTokenType: 're-request'
153
+ };
154
+ function mergeBisConfig(srv) {
155
+ return srv.merge('bis', BUSINESS_DEFAULT_CONFIG);
156
+ }
157
+
158
+ const YUNZAI_LANGS = {
140
159
  'zh-CN': {
141
160
  text: '简体中文',
142
161
  ng: ngZh,
@@ -160,23 +179,100 @@ const LANGS = {
160
179
  date: enUS,
161
180
  yelon: en_US$1,
162
181
  abbr: '🇬🇧'
182
+ },
183
+ 'el-GR': {
184
+ text: 'Ελληνικά',
185
+ ng: ngElGr,
186
+ zorro: el_GR,
187
+ date: el,
188
+ yelon: el_GR$1,
189
+ abbr: '🇬🇷'
190
+ },
191
+ 'es-ES': {
192
+ text: 'Español',
193
+ ng: ngEsEs,
194
+ zorro: es_ES,
195
+ date: es,
196
+ yelon: es_ES$1,
197
+ abbr: '🇪🇸'
198
+ },
199
+ 'fr-FR': {
200
+ text: 'Français',
201
+ ng: ngFr,
202
+ zorro: fr_FR,
203
+ date: fr,
204
+ yelon: fr_FR$1,
205
+ abbr: '🇫🇷'
206
+ },
207
+ 'hr-HR': {
208
+ text: 'Hrvatski',
209
+ ng: ngHr,
210
+ zorro: hr_HR,
211
+ date: hr,
212
+ yelon: hr_HR$1,
213
+ abbr: '🇭🇷'
214
+ },
215
+ 'it-IT': {
216
+ text: 'Italiano',
217
+ ng: ngIt,
218
+ zorro: it_IT,
219
+ date: it,
220
+ yelon: it_IT$1,
221
+ abbr: '🇮🇹'
222
+ },
223
+ 'ko-KR': {
224
+ text: '한국어',
225
+ ng: ngKo,
226
+ zorro: ko_KR,
227
+ date: ko,
228
+ yelon: ko_KR$1,
229
+ abbr: '🇰🇷'
230
+ },
231
+ 'pl-PL': {
232
+ text: 'Polski',
233
+ ng: ngPl,
234
+ zorro: pl_PL,
235
+ date: pl,
236
+ yelon: pl_PL$1,
237
+ abbr: '🇵🇱'
238
+ },
239
+ 'sl-SI': {
240
+ text: 'Slovenščina',
241
+ ng: ngSl,
242
+ zorro: sl_SI,
243
+ date: sl,
244
+ yelon: sl_SI$1,
245
+ abbr: '🇸🇮'
246
+ },
247
+ 'tr-TR': {
248
+ text: 'Türkçe',
249
+ ng: ngTr,
250
+ zorro: tr_TR,
251
+ date: tr,
252
+ yelon: tr_TR$1,
253
+ abbr: '🇹🇷'
163
254
  }
164
255
  };
256
+
257
+ const DEFAULT = 'zh-CN';
165
258
  class YunzaiI18NService extends YunzaiI18nBaseService {
166
- constructor(http, settings, nzI18nService, yelonLocaleService, platform, cogSrv) {
259
+ constructor(http, settings, nzI18nService, yelonLocaleService, platform, cogSrv, cacheService) {
167
260
  super(cogSrv);
168
261
  this.http = http;
169
262
  this.settings = settings;
170
263
  this.nzI18nService = nzI18nService;
171
264
  this.yelonLocaleService = yelonLocaleService;
172
265
  this.platform = platform;
266
+ this.cacheService = cacheService;
173
267
  this._defaultLang = DEFAULT;
174
- this._langs = Object.keys(LANGS).map(code => {
175
- const item = LANGS[code];
176
- return { code, text: item.text, abbr: item.abbr };
177
- });
268
+ this.destroy$ = new Subject();
178
269
  const defaultLang = this.getDefaultLang();
179
- this._defaultLang = this._langs.findIndex(w => w.code === defaultLang) === -1 ? DEFAULT : defaultLang;
270
+ this.bis = mergeBisConfig(cogSrv);
271
+ this.getLangs()
272
+ .pipe(takeUntil(this.destroy$))
273
+ .subscribe(langs => {
274
+ this._defaultLang = langs.findIndex(w => w.code === defaultLang) === -1 ? DEFAULT : defaultLang;
275
+ });
180
276
  }
181
277
  getDefaultLang() {
182
278
  if (!this.platform.isBrowser) {
@@ -190,35 +286,70 @@ class YunzaiI18NService extends YunzaiI18nBaseService {
190
286
  return arr.length <= 1 ? res : `${arr[0]}-${arr[1].toUpperCase()}`;
191
287
  }
192
288
  loadLangData(lang) {
193
- return this.http.get(`assets/tmp/i18n/${lang}.json`);
289
+ const key = `_yz_lang_${lang}`;
290
+ if (this.cacheService.getNone(key)) {
291
+ return of(this.cacheService.get(key));
292
+ }
293
+ else {
294
+ if (ngDevMode) {
295
+ return this.http.get(`assets/tmp/i18n/${lang}.json`);
296
+ }
297
+ else {
298
+ return this.http
299
+ .get(`${this.bis.baseUrl}/i18n/api/v2/${lang}?_allow_anonymous`)
300
+ .pipe(catchError(() => this.http.get(`assets/tmp/i18n/${lang}.json`)));
301
+ }
302
+ }
194
303
  }
195
304
  use(lang, data) {
196
305
  if (this._currentLang === lang)
197
306
  return;
307
+ const key = `_yz_lang_${lang}`;
308
+ this.cacheService.set(key, data);
309
+ this.cacheService.set(this.cacheDefaultKey, lang);
198
310
  this._data = this.flatData(data, []);
199
- const item = LANGS[lang];
200
- registerLocaleData(item.ng);
201
- this.nzI18nService.setLocale(item.zorro);
202
- this.nzI18nService.setDateLocale(item.date);
203
- this.yelonLocaleService.setLocale(item.yelon);
204
- this._currentLang = lang;
205
- this._change$.next(lang);
311
+ const item = YUNZAI_LANGS[lang];
312
+ if (item) {
313
+ registerLocaleData(item.ng);
314
+ this.nzI18nService.setLocale(item.zorro);
315
+ this.nzI18nService.setDateLocale(item.date);
316
+ this.yelonLocaleService.setLocale(item.yelon);
317
+ this._currentLang = lang;
318
+ this._change$.next(lang);
319
+ }
320
+ else {
321
+ registerLocaleData(ngEn);
322
+ this.nzI18nService.setLocale(en_US);
323
+ this.nzI18nService.setDateLocale(enUS);
324
+ this.yelonLocaleService.setLocale(en_US$1);
325
+ this._currentLang = lang;
326
+ this._change$.next(lang);
327
+ }
206
328
  }
207
329
  getLangs() {
208
- return this._langs;
330
+ const langs = Object.keys(YUNZAI_LANGS).map(code => {
331
+ const item = YUNZAI_LANGS[code];
332
+ return { code, text: item.text, abbr: item.abbr, icon: undefined };
333
+ });
334
+ if (ngDevMode) {
335
+ return of(langs);
336
+ }
337
+ else {
338
+ return this.http.get(`${this.bis.baseUrl}/i18n/api/v2/list?_allow_anonymous`).pipe(catchError(() => of(langs)));
339
+ }
340
+ }
341
+ ngOnDestroy() {
342
+ this.destroy$.complete();
209
343
  }
210
344
  }
211
- YunzaiI18NService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: YunzaiI18NService, deps: [{ token: i1$2._HttpClient }, { token: i1$2.SettingsService }, { token: i2.NzI18nService }, { token: i1$2.YelonLocaleService }, { token: i3$1.Platform }, { token: i4.YunzaiConfigService }], target: i0.ɵɵFactoryTarget.Injectable });
345
+ YunzaiI18NService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: YunzaiI18NService, deps: [{ token: i1$2._HttpClient }, { token: i1$2.SettingsService }, { token: i2.NzI18nService }, { token: i1$2.YelonLocaleService }, { token: i3$1.Platform }, { token: i4.YunzaiConfigService }, { token: i1$3.CacheService }], target: i0.ɵɵFactoryTarget.Injectable });
212
346
  YunzaiI18NService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: YunzaiI18NService, providedIn: 'root' });
213
347
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: YunzaiI18NService, decorators: [{
214
348
  type: Injectable,
215
349
  args: [{ providedIn: 'root' }]
216
- }], ctorParameters: function () { return [{ type: i1$2._HttpClient }, { type: i1$2.SettingsService }, { type: i2.NzI18nService }, { type: i1$2.YelonLocaleService }, { type: i3$1.Platform }, { type: i4.YunzaiConfigService }]; } });
350
+ }], ctorParameters: function () { return [{ type: i1$2._HttpClient }, { type: i1$2.SettingsService }, { type: i2.NzI18nService }, { type: i1$2.YelonLocaleService }, { type: i3$1.Platform }, { type: i4.YunzaiConfigService }, { type: i1$3.CacheService }]; } });
217
351
 
218
352
  class YunzaiI18NComponent {
219
- get langs() {
220
- return this.i18n.getLangs();
221
- }
222
353
  get curLangCode() {
223
354
  return this.settings.layout.lang;
224
355
  }
@@ -226,8 +357,16 @@ class YunzaiI18NComponent {
226
357
  this.settings = settings;
227
358
  this.i18n = i18n;
228
359
  this.doc = doc;
360
+ this.destroy$ = new Subject();
229
361
  /** Whether to display language text */
230
362
  this.showLangText = true;
363
+ this.langs = [];
364
+ this.i18n
365
+ .getLangs()
366
+ .pipe(takeUntil(this.destroy$))
367
+ .subscribe(langs => {
368
+ this.langs = langs;
369
+ });
231
370
  }
232
371
  change(lang) {
233
372
  const spinEl = this.doc.createElement('div');
@@ -240,12 +379,15 @@ class YunzaiI18NComponent {
240
379
  setTimeout(() => this.doc.location.reload());
241
380
  });
242
381
  }
382
+ ngOnDestroy() {
383
+ this.destroy$.complete();
384
+ }
243
385
  }
244
386
  YunzaiI18NComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: YunzaiI18NComponent, deps: [{ token: i1$2.SettingsService }, { token: YUNZAI_I18N_TOKEN }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Component });
245
387
  YunzaiI18NComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.4", type: YunzaiI18NComponent, selector: "yunzai-i18n", inputs: { showLangText: "showLangText" }, ngImport: i0, template: `
246
388
  <div *ngIf="showLangText" nz-dropdown [nzDropdownMenu]="langMenu" nzPlacement="bottomRight">
247
389
  <i nz-icon nzType="global"></i>
248
- {{ 'menu.lang' | i18n }}
390
+ {{ 'lang.nav' | i18n }}
249
391
  <i nz-icon nzType="down"></i>
250
392
  </div>
251
393
  <i
@@ -264,7 +406,12 @@ YunzaiI18NComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", ve
264
406
  [nzSelected]="item.code === curLangCode"
265
407
  (click)="change(item.code)"
266
408
  >
267
- <span role="img" [attr.aria-label]="item.text" class="pr-xs">{{ item.abbr }}</span>
409
+ <template *ngIf="!item.icon">
410
+ <span role="img" [attr.aria-label]="item.text" class="pr-xs">{{ item.abbr }}</span>
411
+ </template>
412
+ <template *ngIf="item.icon">
413
+ <img [src]="'data:image/png;base64,' + item.icon" [alt]="item.abbr" class="pr-xs" />
414
+ </template>
268
415
  {{ item.text }}
269
416
  </li>
270
417
  </ul>
@@ -280,7 +427,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImpor
280
427
  template: `
281
428
  <div *ngIf="showLangText" nz-dropdown [nzDropdownMenu]="langMenu" nzPlacement="bottomRight">
282
429
  <i nz-icon nzType="global"></i>
283
- {{ 'menu.lang' | i18n }}
430
+ {{ 'lang.nav' | i18n }}
284
431
  <i nz-icon nzType="down"></i>
285
432
  </div>
286
433
  <i
@@ -299,7 +446,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImpor
299
446
  [nzSelected]="item.code === curLangCode"
300
447
  (click)="change(item.code)"
301
448
  >
302
- <span role="img" [attr.aria-label]="item.text" class="pr-xs">{{ item.abbr }}</span>
449
+ <template *ngIf="!item.icon">
450
+ <span role="img" [attr.aria-label]="item.text" class="pr-xs">{{ item.abbr }}</span>
451
+ </template>
452
+ <template *ngIf="item.icon">
453
+ <img [src]="'data:image/png;base64,' + item.icon" [alt]="item.abbr" class="pr-xs" />
454
+ </template>
303
455
  {{ item.text }}
304
456
  </li>
305
457
  </ul>
@@ -330,25 +482,25 @@ class YunzaiNotifyComponent {
330
482
  key: 'msg',
331
483
  title: this.y18n.fanyi('notify.message'),
332
484
  list: [],
333
- emptyText: this.y18n.fanyi('notify.message.emptyText'),
485
+ emptyText: this.y18n.fanyi('notify.message.empty'),
334
486
  emptyImage: './assets/tmp/img/message.svg',
335
- clearText: this.y18n.fanyi('notify.message.clearText')
487
+ clearText: this.y18n.fanyi('notify.message.clear')
336
488
  },
337
489
  {
338
490
  key: 'todo',
339
491
  title: this.y18n.fanyi('notify.todo'),
340
492
  list: [],
341
- emptyText: this.y18n.fanyi('notify.todo.emptyText'),
493
+ emptyText: this.y18n.fanyi('notify.todo.empty'),
342
494
  emptyImage: './assets/tmp/img/todo.svg',
343
- clearText: this.y18n.fanyi('notify.todo.clearText')
495
+ clearText: this.y18n.fanyi('notify.todo.clear')
344
496
  },
345
497
  {
346
498
  key: 'notice',
347
499
  title: this.y18n.fanyi('notify.notice'),
348
500
  list: [],
349
- emptyText: this.y18n.fanyi('notify.notice.emptyText'),
501
+ emptyText: this.y18n.fanyi('notify.notice.empty'),
350
502
  emptyImage: './assets/tmp/img/notice.svg',
351
- clearText: this.y18n.fanyi('notify.notice.clearText')
503
+ clearText: this.y18n.fanyi('notify.notice.clear')
352
504
  }
353
505
  ];
354
506
  this.loading = false;
@@ -668,17 +820,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImpor
668
820
  type: Input
669
821
  }] } });
670
822
 
671
- const BUSINESS_DEFAULT_CONFIG = {
672
- baseUrl: '/backstage',
673
- systemCode: 'portal',
674
- loginForm: null,
675
- refreshTokenEnabled: true,
676
- refreshTokenType: 're-request'
677
- };
678
- function mergeBisConfig(srv) {
679
- return srv.merge('bis', BUSINESS_DEFAULT_CONFIG);
680
- }
681
-
682
823
  class YunzaiUserComponent {
683
824
  constructor(injector, msg, tokenService,
684
825
  // @ts-ignore
@@ -716,7 +857,7 @@ class YunzaiUserComponent {
716
857
  }
717
858
  }
718
859
  }
719
- YunzaiUserComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: YunzaiUserComponent, deps: [{ token: i0.Injector }, { token: i1$1.NzMessageService }, { token: YA_SERVICE_TOKEN }, { token: i1$3.YunzaiConfigService }, { token: i1$4.CacheService }], target: i0.ɵɵFactoryTarget.Component });
860
+ YunzaiUserComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: YunzaiUserComponent, deps: [{ token: i0.Injector }, { token: i1$1.NzMessageService }, { token: YA_SERVICE_TOKEN }, { token: i1$4.YunzaiConfigService }, { token: i1$3.CacheService }], target: i0.ɵɵFactoryTarget.Component });
720
861
  YunzaiUserComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.4", type: YunzaiUserComponent, selector: "yunzai-user", ngImport: i0, template: `
721
862
  <div
722
863
  class="yunzai-default__nav-item d-flex align-items-center px-sm"
@@ -738,7 +879,7 @@ YunzaiUserComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", ve
738
879
  <li nz-menu-divider></li>
739
880
  <div nz-menu-item (click)="logout()">
740
881
  <i nz-icon nzType="logout" class="mr-sm"></i>
741
- {{ 'menu.account.logout' | i18n }}
882
+ {{ 'logout' | i18n }}
742
883
  </div>
743
884
  </div>
744
885
  </nz-dropdown-menu>
@@ -768,7 +909,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImpor
768
909
  <li nz-menu-divider></li>
769
910
  <div nz-menu-item (click)="logout()">
770
911
  <i nz-icon nzType="logout" class="mr-sm"></i>
771
- {{ 'menu.account.logout' | i18n }}
912
+ {{ 'logout' | i18n }}
772
913
  </div>
773
914
  </div>
774
915
  </nz-dropdown-menu>
@@ -778,14 +919,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImpor
778
919
  }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1$1.NzMessageService }, { type: undefined, decorators: [{
779
920
  type: Inject,
780
921
  args: [YA_SERVICE_TOKEN]
781
- }] }, { type: i1$3.YunzaiConfigService }, { type: i1$4.CacheService }]; } });
782
-
783
- var TopicType;
784
- (function (TopicType) {
785
- TopicType[TopicType["FULL"] = 0] = "FULL";
786
- TopicType[TopicType["OWN"] = 1] = "OWN";
787
- TopicType[TopicType["EVERY"] = 2] = "EVERY";
788
- })(TopicType || (TopicType = {}));
922
+ }] }, { type: i1$4.YunzaiConfigService }, { type: i1$3.CacheService }]; } });
789
923
 
790
924
  class LayoutNavApplicationComponent {
791
925
  constructor(cacheService, i18n, http, inject) {
@@ -793,10 +927,9 @@ class LayoutNavApplicationComponent {
793
927
  this.i18n = i18n;
794
928
  this.http = http;
795
929
  this.inject = inject;
796
- this.TopicType = TopicType;
797
930
  this.state = {
798
931
  active: false,
799
- type: TopicType.FULL,
932
+ type: 'all',
800
933
  topic: undefined,
801
934
  topics: [],
802
935
  list: [],
@@ -805,18 +938,32 @@ class LayoutNavApplicationComponent {
805
938
  };
806
939
  }
807
940
  ngOnInit() {
808
- this.state.list = this.state.topics = this.cacheService.get('_yz_header', { mode: 'none' });
941
+ this.fetchAllTopic();
942
+ this.attachNav('all');
809
943
  }
810
- initTopic(type) {
811
- this.state.search = null;
812
- this.state.list = this.cacheService.get('_yz_header', { mode: 'none' });
944
+ fetchAllTopic() {
945
+ this.state.topics = this.cacheService.get('_yz_header', { mode: 'none' });
946
+ }
947
+ attachNav(type, topic) {
813
948
  this.state.type = type;
949
+ this.clearSearch();
950
+ if (type === 'all') {
951
+ this.displayAllNav();
952
+ }
953
+ if (type === 'mine') {
954
+ this.displayMineNav();
955
+ }
956
+ if (type === 'other' && topic) {
957
+ this.displayOtherNav(topic);
958
+ }
814
959
  }
815
- full() {
816
- this.initTopic(TopicType.FULL);
960
+ clearSearch() {
961
+ this.state.search = null;
962
+ }
963
+ displayAllNav() {
964
+ this.state.list = this.cacheService.get('_yz_header', { mode: 'none' });
817
965
  }
818
- own() {
819
- this.initTopic(TopicType.OWN);
966
+ displayMineNav() {
820
967
  const temp = this.cacheService.get('_yz_header', { mode: 'none' });
821
968
  this.state.list = temp
822
969
  .filter((topic) => {
@@ -829,11 +976,10 @@ class LayoutNavApplicationComponent {
829
976
  return topic.children.length > 0;
830
977
  });
831
978
  }
832
- every(e) {
833
- this.initTopic(TopicType.EVERY);
834
- this.state.topic = e;
979
+ displayOtherNav(topic) {
980
+ this.state.topic = topic;
835
981
  const temp = this.cacheService.get('_yz_header', { mode: 'none' });
836
- this.state.list = [...temp.filter(t => t.key === e.key)[0].children];
982
+ this.state.list = temp.filter(t => t.key === topic.key)[0].children;
837
983
  }
838
984
  diffChange(flag) {
839
985
  if (flag) {
@@ -895,9 +1041,9 @@ class LayoutNavApplicationComponent {
895
1041
  this.state.destroy$.complete();
896
1042
  }
897
1043
  }
898
- LayoutNavApplicationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: LayoutNavApplicationComponent, deps: [{ token: i1$4.CacheService }, { token: YunzaiI18NService }, { token: i1$2._HttpClient }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
1044
+ LayoutNavApplicationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: LayoutNavApplicationComponent, deps: [{ token: i1$3.CacheService }, { token: YunzaiI18NService }, { token: i1$2._HttpClient }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
899
1045
  LayoutNavApplicationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.4", type: LayoutNavApplicationComponent, selector: "layout-nav-application", ngImport: i0, template: `
900
- <!-- template start-->
1046
+ <!-- search start-->
901
1047
  <ng-template #search>
902
1048
  <div nz-row class="yz-application-list-search">
903
1049
  <nz-input-group [nzPrefix]="prefixTemplate">
@@ -914,45 +1060,50 @@ LayoutNavApplicationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "1
914
1060
  </nz-input-group>
915
1061
  </div>
916
1062
  </ng-template>
1063
+ <!-- search end -->
1064
+
1065
+ <!-- right menu start -->
917
1066
  <ng-template #ld>
918
1067
  <div class="yz-application-list">
919
1068
  <ul>
920
- <li *ngFor="let d of state.list">
921
- <h5>{{ d.name }}</h5>
922
- <a href="javascript:;" *ngFor="let cd of d.children" (click)="open(cd)">{{ cd.name }}</a>
1069
+ <li *ngFor="let topic of state.list">
1070
+ <h5>{{ topic.name | i18n }}</h5>
1071
+ <a href="javascript:;" *ngFor="let nav of topic.children" (click)="open(nav)">{{ nav.name | i18n }}</a>
923
1072
  </li>
924
1073
  </ul>
925
1074
  </div>
926
1075
  </ng-template>
927
- <!-- template end-->
1076
+ <!-- right menu end -->
928
1077
 
929
1078
  <!-- button start-->
930
- <div class="yunzai-default__nav-item" (click)="diffChange()"> {{ 'application.button' | i18n }}</div>
1079
+ <div class="yunzai-default__nav-item" (click)="diffChange()"> {{ 'mode.nav' | i18n }}</div>
931
1080
  <!-- button end-->
932
1081
 
933
1082
  <!-- header start-->
934
1083
  <div class="yz-application" nz-row *ngIf="state.active">
935
1084
  <div nz-col [nzSpan]="3" class="yz-application-topic">
936
- <div class="yz-application-text" (click)="full()">{{ 'application.all' | i18n }}</div>
937
- <div class="yz-application-text" (click)="own()">{{ 'application.mine' | i18n }}</div>
938
- <div class="yz-application-text" *ngFor="let d of state.topics" (click)="every(d)">{{ d.name }}</div>
1085
+ <div class="yz-application-text" (click)="attachNav('all')">{{ 'mode.nav.all' | i18n }}</div>
1086
+ <div class="yz-application-text" (click)="attachNav('mine')">{{ 'mode.nav.mine' | i18n }}</div>
1087
+ <div class="yz-application-text" *ngFor="let nav of state.topics" (click)="attachNav('other', nav)">{{
1088
+ nav.name | i18n
1089
+ }}</div>
939
1090
  </div>
940
1091
  <div nz-col [nzSpan]="21" [ngSwitch]="state.topic" class="yz-application-container">
941
- <div *ngSwitchCase="TopicType.FULL">
1092
+ <div *ngIf="state.type === 'all'">
942
1093
  <ng-template [ngTemplateOutlet]="search"></ng-template>
943
1094
  <ng-template [ngTemplateOutlet]="ld"></ng-template>
944
1095
  </div>
945
- <div *ngSwitchCase="TopicType.OWN">
1096
+ <div *ngIf="state.type === 'mine'">
946
1097
  <ng-template [ngTemplateOutlet]="search"></ng-template>
947
1098
  <ng-template [ngTemplateOutlet]="ld"></ng-template>
948
1099
  </div>
949
- <div *ngSwitchCase="TopicType.EVERY" class="yz-application-list">
1100
+ <div *ngIf="state.type === 'other'" class="yz-application-list">
950
1101
  <div class="yz-application-list-item">
951
1102
  <ul>
952
- <li *ngFor="let d of state.list" (click)="open(d)">
1103
+ <li *ngFor="let nav of state.list" (click)="open(nav)">
953
1104
  <a href="javascript:;">
954
- <h4>{{ d.name }}</h4>
955
- <p>{{ d.intro }}</p>
1105
+ <h4>{{ nav.name | i18n }}</h4>
1106
+ <p>{{ nav.intro | i18n }}</p>
956
1107
  </a>
957
1108
  </li>
958
1109
  </ul>
@@ -961,13 +1112,13 @@ LayoutNavApplicationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "1
961
1112
  </div>
962
1113
  </div>
963
1114
  <!-- header end-->
964
- `, isInline: true, dependencies: [{ kind: "directive", type: i4$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i4$1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i4$1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.ɵNzTransitionPatchDirective, selector: "[nz-button], nz-button-group, [nz-icon], [nz-menu-item], [nz-submenu], nz-select-top-control, nz-select-placeholder, nz-input-group", inputs: ["hidden"] }, { kind: "directive", type: i7$1.NzColDirective, selector: "[nz-col],nz-col,nz-form-control,nz-form-label", inputs: ["nzFlex", "nzSpan", "nzOrder", "nzOffset", "nzPush", "nzPull", "nzXs", "nzSm", "nzMd", "nzLg", "nzXl", "nzXXl"], exportAs: ["nzCol"] }, { kind: "directive", type: i7$1.NzRowDirective, selector: "[nz-row],nz-row,nz-form-item", inputs: ["nzAlign", "nzJustify", "nzGutter"], exportAs: ["nzRow"] }, { kind: "directive", type: i8.NzIconDirective, selector: "[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { kind: "directive", type: i9$1.NzInputDirective, selector: "input[nz-input],textarea[nz-input]", inputs: ["nzBorderless", "nzSize", "nzStatus", "disabled"], exportAs: ["nzInput"] }, { kind: "component", type: i9$1.NzInputGroupComponent, selector: "nz-input-group", inputs: ["nzAddOnBeforeIcon", "nzAddOnAfterIcon", "nzPrefixIcon", "nzSuffixIcon", "nzAddOnBefore", "nzAddOnAfter", "nzPrefix", "nzStatus", "nzSuffix", "nzSize", "nzSearch", "nzCompact"], exportAs: ["nzInputGroup"] }, { kind: "directive", type: i9$1.NzInputGroupWhitSuffixOrPrefixDirective, selector: "nz-input-group[nzSuffix], nz-input-group[nzPrefix]" }, { kind: "pipe", type: i1$2.I18nPipe, name: "i18n" }] });
1115
+ `, isInline: true, dependencies: [{ kind: "directive", type: i4$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i4$1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.ɵNzTransitionPatchDirective, selector: "[nz-button], nz-button-group, [nz-icon], [nz-menu-item], [nz-submenu], nz-select-top-control, nz-select-placeholder, nz-input-group", inputs: ["hidden"] }, { kind: "directive", type: i7$1.NzColDirective, selector: "[nz-col],nz-col,nz-form-control,nz-form-label", inputs: ["nzFlex", "nzSpan", "nzOrder", "nzOffset", "nzPush", "nzPull", "nzXs", "nzSm", "nzMd", "nzLg", "nzXl", "nzXXl"], exportAs: ["nzCol"] }, { kind: "directive", type: i7$1.NzRowDirective, selector: "[nz-row],nz-row,nz-form-item", inputs: ["nzAlign", "nzJustify", "nzGutter"], exportAs: ["nzRow"] }, { kind: "directive", type: i8.NzIconDirective, selector: "[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { kind: "directive", type: i9$1.NzInputDirective, selector: "input[nz-input],textarea[nz-input]", inputs: ["nzBorderless", "nzSize", "nzStatus", "disabled"], exportAs: ["nzInput"] }, { kind: "component", type: i9$1.NzInputGroupComponent, selector: "nz-input-group", inputs: ["nzAddOnBeforeIcon", "nzAddOnAfterIcon", "nzPrefixIcon", "nzSuffixIcon", "nzAddOnBefore", "nzAddOnAfter", "nzPrefix", "nzStatus", "nzSuffix", "nzSize", "nzSearch", "nzCompact"], exportAs: ["nzInputGroup"] }, { kind: "directive", type: i9$1.NzInputGroupWhitSuffixOrPrefixDirective, selector: "nz-input-group[nzSuffix], nz-input-group[nzPrefix]" }, { kind: "pipe", type: i1$2.I18nPipe, name: "i18n" }] });
965
1116
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: LayoutNavApplicationComponent, decorators: [{
966
1117
  type: Component,
967
1118
  args: [{
968
1119
  selector: `layout-nav-application`,
969
1120
  template: `
970
- <!-- template start-->
1121
+ <!-- search start-->
971
1122
  <ng-template #search>
972
1123
  <div nz-row class="yz-application-list-search">
973
1124
  <nz-input-group [nzPrefix]="prefixTemplate">
@@ -984,45 +1135,50 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImpor
984
1135
  </nz-input-group>
985
1136
  </div>
986
1137
  </ng-template>
1138
+ <!-- search end -->
1139
+
1140
+ <!-- right menu start -->
987
1141
  <ng-template #ld>
988
1142
  <div class="yz-application-list">
989
1143
  <ul>
990
- <li *ngFor="let d of state.list">
991
- <h5>{{ d.name }}</h5>
992
- <a href="javascript:;" *ngFor="let cd of d.children" (click)="open(cd)">{{ cd.name }}</a>
1144
+ <li *ngFor="let topic of state.list">
1145
+ <h5>{{ topic.name | i18n }}</h5>
1146
+ <a href="javascript:;" *ngFor="let nav of topic.children" (click)="open(nav)">{{ nav.name | i18n }}</a>
993
1147
  </li>
994
1148
  </ul>
995
1149
  </div>
996
1150
  </ng-template>
997
- <!-- template end-->
1151
+ <!-- right menu end -->
998
1152
 
999
1153
  <!-- button start-->
1000
- <div class="yunzai-default__nav-item" (click)="diffChange()"> {{ 'application.button' | i18n }}</div>
1154
+ <div class="yunzai-default__nav-item" (click)="diffChange()"> {{ 'mode.nav' | i18n }}</div>
1001
1155
  <!-- button end-->
1002
1156
 
1003
1157
  <!-- header start-->
1004
1158
  <div class="yz-application" nz-row *ngIf="state.active">
1005
1159
  <div nz-col [nzSpan]="3" class="yz-application-topic">
1006
- <div class="yz-application-text" (click)="full()">{{ 'application.all' | i18n }}</div>
1007
- <div class="yz-application-text" (click)="own()">{{ 'application.mine' | i18n }}</div>
1008
- <div class="yz-application-text" *ngFor="let d of state.topics" (click)="every(d)">{{ d.name }}</div>
1160
+ <div class="yz-application-text" (click)="attachNav('all')">{{ 'mode.nav.all' | i18n }}</div>
1161
+ <div class="yz-application-text" (click)="attachNav('mine')">{{ 'mode.nav.mine' | i18n }}</div>
1162
+ <div class="yz-application-text" *ngFor="let nav of state.topics" (click)="attachNav('other', nav)">{{
1163
+ nav.name | i18n
1164
+ }}</div>
1009
1165
  </div>
1010
1166
  <div nz-col [nzSpan]="21" [ngSwitch]="state.topic" class="yz-application-container">
1011
- <div *ngSwitchCase="TopicType.FULL">
1167
+ <div *ngIf="state.type === 'all'">
1012
1168
  <ng-template [ngTemplateOutlet]="search"></ng-template>
1013
1169
  <ng-template [ngTemplateOutlet]="ld"></ng-template>
1014
1170
  </div>
1015
- <div *ngSwitchCase="TopicType.OWN">
1171
+ <div *ngIf="state.type === 'mine'">
1016
1172
  <ng-template [ngTemplateOutlet]="search"></ng-template>
1017
1173
  <ng-template [ngTemplateOutlet]="ld"></ng-template>
1018
1174
  </div>
1019
- <div *ngSwitchCase="TopicType.EVERY" class="yz-application-list">
1175
+ <div *ngIf="state.type === 'other'" class="yz-application-list">
1020
1176
  <div class="yz-application-list-item">
1021
1177
  <ul>
1022
- <li *ngFor="let d of state.list" (click)="open(d)">
1178
+ <li *ngFor="let nav of state.list" (click)="open(nav)">
1023
1179
  <a href="javascript:;">
1024
- <h4>{{ d.name }}</h4>
1025
- <p>{{ d.intro }}</p>
1180
+ <h4>{{ nav.name | i18n }}</h4>
1181
+ <p>{{ nav.intro | i18n }}</p>
1026
1182
  </a>
1027
1183
  </li>
1028
1184
  </ul>
@@ -1033,7 +1189,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImpor
1033
1189
  <!-- header end-->
1034
1190
  `
1035
1191
  }]
1036
- }], ctorParameters: function () { return [{ type: i1$4.CacheService }, { type: YunzaiI18NService }, { type: i1$2._HttpClient }, { type: i0.Injector }]; } });
1192
+ }], ctorParameters: function () { return [{ type: i1$3.CacheService }, { type: YunzaiI18NService }, { type: i1$2._HttpClient }, { type: i0.Injector }]; } });
1037
1193
 
1038
1194
  class LayoutNavGroupComponent {
1039
1195
  constructor(inject, cacheService, http) {
@@ -1077,7 +1233,7 @@ class LayoutNavGroupComponent {
1077
1233
  this.state.destroy$.complete();
1078
1234
  }
1079
1235
  }
1080
- LayoutNavGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: LayoutNavGroupComponent, deps: [{ token: i0.Injector }, { token: i1$4.CacheService }, { token: i1$2._HttpClient }], target: i0.ɵɵFactoryTarget.Component });
1236
+ LayoutNavGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: LayoutNavGroupComponent, deps: [{ token: i0.Injector }, { token: i1$3.CacheService }, { token: i1$2._HttpClient }], target: i0.ɵɵFactoryTarget.Component });
1081
1237
  LayoutNavGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.4", type: LayoutNavGroupComponent, selector: "layout-nav-group", ngImport: i0, template: `
1082
1238
  <div class="yz-application-group">
1083
1239
  <nz-tabset>
@@ -1141,7 +1297,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImpor
1141
1297
  </div>
1142
1298
  `
1143
1299
  }]
1144
- }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1$4.CacheService }, { type: i1$2._HttpClient }]; } });
1300
+ }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1$3.CacheService }, { type: i1$2._HttpClient }]; } });
1145
1301
 
1146
1302
  class LayoutNavTileComponent {
1147
1303
  constructor() { }
@@ -1212,12 +1368,27 @@ class YunzaiLayoutBasicComponent {
1212
1368
  }
1213
1369
  ngOnInit() {
1214
1370
  this.initLogo();
1371
+ this.initFavicon();
1215
1372
  this.initNavType();
1216
1373
  this.initAside();
1217
1374
  this.addLayoutDisplayListener();
1218
1375
  this.stompService.listen();
1219
1376
  this.toIndex();
1220
1377
  }
1378
+ initFavicon() {
1379
+ console.log('init favicon');
1380
+ const projectInfo = this.cacheService.get('_yz_project_info', { mode: 'none' });
1381
+ if (projectInfo.faviconUrl) {
1382
+ hasFavicon(projectInfo.faviconUrl).then((has) => {
1383
+ if (has) {
1384
+ setFavicon(projectInfo.faviconUrl);
1385
+ }
1386
+ else {
1387
+ setFavicon('./assets/favicon.ico');
1388
+ }
1389
+ });
1390
+ }
1391
+ }
1221
1392
  initAside() {
1222
1393
  const aside = this.cacheService.get('_yz_current', { mode: 'none' });
1223
1394
  this.state.aside = { ...aside };
@@ -1268,7 +1439,7 @@ class YunzaiLayoutBasicComponent {
1268
1439
  this.state.destroy$.complete();
1269
1440
  }
1270
1441
  }
1271
- YunzaiLayoutBasicComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: YunzaiLayoutBasicComponent, deps: [{ token: i1$5.LayoutDisplayService }, { token: i1$4.CacheService }, { token: i3$3.StompService }, { token: WINDOW }], target: i0.ɵɵFactoryTarget.Component });
1442
+ YunzaiLayoutBasicComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: YunzaiLayoutBasicComponent, deps: [{ token: i1$5.LayoutDisplayService }, { token: i1$3.CacheService }, { token: i3$3.StompService }, { token: WINDOW }], target: i0.ɵɵFactoryTarget.Component });
1272
1443
  YunzaiLayoutBasicComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.4", type: YunzaiLayoutBasicComponent, selector: "yz-layout-basic", ngImport: i0, template: `<layout-default
1273
1444
  [options]="options"
1274
1445
  [asideUser]="asideUserTpl"
@@ -1306,20 +1477,20 @@ YunzaiLayoutBasicComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0
1306
1477
  <nz-dropdown-menu #settingsMenu="nzDropdownMenu">
1307
1478
  <div nz-menu style="width: 200px;">
1308
1479
  <div nz-menu-item>
1309
- {{ 'menu.application.mode' | i18n }}
1480
+ {{ 'mode.nav' | i18n }}
1310
1481
  </div>
1311
1482
 
1312
1483
  <div nz-menu-item (click)="onNavTypeChange(NavType.APPLICATION)">
1313
1484
  <i nz-icon nzType="appstore" class="mr-sm"></i>
1314
- {{ 'menu.application.application' | i18n }}
1485
+ {{ 'mode.nav.application' | i18n }}
1315
1486
  </div>
1316
1487
  <div nz-menu-item (click)="onNavTypeChange(NavType.GROUP)">
1317
1488
  <i nz-icon nzType="group" class="mr-sm"></i>
1318
- {{ 'menu.application.group' | i18n }}
1489
+ {{ 'mode.nav.group' | i18n }}
1319
1490
  </div>
1320
1491
  <div nz-menu-item (click)="onNavTypeChange(NavType.TILE)">
1321
1492
  <i nz-icon nzType="appstore" class="mr-sm"></i>
1322
- {{ 'menu.application.tile' | i18n }}
1493
+ {{ 'mode.nav.tile' | i18n }}
1323
1494
  </div>
1324
1495
  <div nz-menu-item> <yunzai-fullscreen></yunzai-fullscreen> </div>
1325
1496
  <div nz-menu-item> <yunzai-clearstorage></yunzai-clearstorage> </div>
@@ -1336,13 +1507,13 @@ YunzaiLayoutBasicComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0
1336
1507
  <div nz-dropdown nzTrigger="click" [nzDropdownMenu]="userMenu" class="yunzai-default__aside-user">
1337
1508
  <nz-avatar class="yunzai-default__aside-user-avatar" [nzSrc]="aside.icon"></nz-avatar>
1338
1509
  <div class="yunzai-default__aside-user-info">
1339
- <strong>{{ aside.name }}</strong>
1340
- <p class="mb0">{{ aside.intro }}</p>
1510
+ <strong>{{ aside.name | i18n }}</strong>
1511
+ <p class="mb0">{{ aside.intro | i18n }}</p>
1341
1512
  </div>
1342
1513
  </div>
1343
1514
  <nz-dropdown-menu #userMenu="nzDropdownMenu">
1344
1515
  <ul nz-menu>
1345
- <li nz-menu-item routerLink="/">{{ 'menu.backtohome' | i18n }}</li>
1516
+ <li nz-menu-item routerLink="/">{{ 'back.home' | i18n }}</li>
1346
1517
  </ul>
1347
1518
  </nz-dropdown-menu>
1348
1519
  </ng-template>
@@ -1394,20 +1565,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImpor
1394
1565
  <nz-dropdown-menu #settingsMenu="nzDropdownMenu">
1395
1566
  <div nz-menu style="width: 200px;">
1396
1567
  <div nz-menu-item>
1397
- {{ 'menu.application.mode' | i18n }}
1568
+ {{ 'mode.nav' | i18n }}
1398
1569
  </div>
1399
1570
 
1400
1571
  <div nz-menu-item (click)="onNavTypeChange(NavType.APPLICATION)">
1401
1572
  <i nz-icon nzType="appstore" class="mr-sm"></i>
1402
- {{ 'menu.application.application' | i18n }}
1573
+ {{ 'mode.nav.application' | i18n }}
1403
1574
  </div>
1404
1575
  <div nz-menu-item (click)="onNavTypeChange(NavType.GROUP)">
1405
1576
  <i nz-icon nzType="group" class="mr-sm"></i>
1406
- {{ 'menu.application.group' | i18n }}
1577
+ {{ 'mode.nav.group' | i18n }}
1407
1578
  </div>
1408
1579
  <div nz-menu-item (click)="onNavTypeChange(NavType.TILE)">
1409
1580
  <i nz-icon nzType="appstore" class="mr-sm"></i>
1410
- {{ 'menu.application.tile' | i18n }}
1581
+ {{ 'mode.nav.tile' | i18n }}
1411
1582
  </div>
1412
1583
  <div nz-menu-item> <yunzai-fullscreen></yunzai-fullscreen> </div>
1413
1584
  <div nz-menu-item> <yunzai-clearstorage></yunzai-clearstorage> </div>
@@ -1424,13 +1595,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImpor
1424
1595
  <div nz-dropdown nzTrigger="click" [nzDropdownMenu]="userMenu" class="yunzai-default__aside-user">
1425
1596
  <nz-avatar class="yunzai-default__aside-user-avatar" [nzSrc]="aside.icon"></nz-avatar>
1426
1597
  <div class="yunzai-default__aside-user-info">
1427
- <strong>{{ aside.name }}</strong>
1428
- <p class="mb0">{{ aside.intro }}</p>
1598
+ <strong>{{ aside.name | i18n }}</strong>
1599
+ <p class="mb0">{{ aside.intro | i18n }}</p>
1429
1600
  </div>
1430
1601
  </div>
1431
1602
  <nz-dropdown-menu #userMenu="nzDropdownMenu">
1432
1603
  <ul nz-menu>
1433
- <li nz-menu-item routerLink="/">{{ 'menu.backtohome' | i18n }}</li>
1604
+ <li nz-menu-item routerLink="/">{{ 'back.home' | i18n }}</li>
1434
1605
  </ul>
1435
1606
  </nz-dropdown-menu>
1436
1607
  </ng-template>
@@ -1442,7 +1613,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImpor
1442
1613
  <router-outlet></router-outlet>
1443
1614
  </ng-template> `
1444
1615
  }]
1445
- }], ctorParameters: function () { return [{ type: i1$5.LayoutDisplayService }, { type: i1$4.CacheService }, { type: i3$3.StompService }, { type: undefined, decorators: [{
1616
+ }], ctorParameters: function () { return [{ type: i1$5.LayoutDisplayService }, { type: i1$3.CacheService }, { type: i3$3.StompService }, { type: undefined, decorators: [{
1446
1617
  type: Inject,
1447
1618
  args: [WINDOW]
1448
1619
  }] }]; } });
@@ -1538,14 +1709,14 @@ class ActGuard {
1538
1709
  });
1539
1710
  }
1540
1711
  }
1541
- ActGuard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: ActGuard, deps: [{ token: i1$3.YunzaiConfigService }, { token: i1$4.CacheService }, { token: i1$3.PathToRegexpService }, { token: i5$1.Router }], target: i0.ɵɵFactoryTarget.Injectable });
1712
+ ActGuard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: ActGuard, deps: [{ token: i1$4.YunzaiConfigService }, { token: i1$3.CacheService }, { token: i1$4.PathToRegexpService }, { token: i5$1.Router }], target: i0.ɵɵFactoryTarget.Injectable });
1542
1713
  ActGuard.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: ActGuard, providedIn: 'root' });
1543
1714
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: ActGuard, decorators: [{
1544
1715
  type: Injectable,
1545
1716
  args: [{
1546
1717
  providedIn: 'root'
1547
1718
  }]
1548
- }], ctorParameters: function () { return [{ type: i1$3.YunzaiConfigService }, { type: i1$4.CacheService }, { type: i1$3.PathToRegexpService }, { type: i5$1.Router }]; } });
1719
+ }], ctorParameters: function () { return [{ type: i1$4.YunzaiConfigService }, { type: i1$3.CacheService }, { type: i1$4.PathToRegexpService }, { type: i5$1.Router }]; } });
1549
1720
 
1550
1721
  class YunzaiAuthService {
1551
1722
  constructor(injector) {
@@ -1867,6 +2038,8 @@ class YunzaiDefaultInterceptor {
1867
2038
  if (url.includes('.json') && url.includes('assets')) {
1868
2039
  url = req.url;
1869
2040
  }
2041
+ if (url.includes('i18n'))
2042
+ return next.handle(req);
1870
2043
  // 加入语言头
1871
2044
  const newReq = req.clone({ url, setHeaders: this.getAdditionalHeaders(req.headers) });
1872
2045
  return next.handle(newReq).pipe(mergeMap(ev => {
@@ -2762,7 +2935,9 @@ class YunzaiStartupService {
2762
2935
  }
2763
2936
  load() {
2764
2937
  log$1('startup.service: ', 'load');
2765
- const defaultLang = this.i18n.defaultLang;
2938
+ let defaultLang = this.cacheService.getNone(this.i18n.cacheDefaultKey);
2939
+ if (!defaultLang)
2940
+ defaultLang = this.i18n.defaultLang;
2766
2941
  return this.i18n.loadLangData(defaultLang).pipe(mergeMap(langData => {
2767
2942
  log$1('startup.service: ', 'set i18n, defaultLang->', defaultLang, ' langData->', langData);
2768
2943
  this.i18n.use(defaultLang, langData);
@@ -2832,7 +3007,7 @@ class YunzaiStartupService {
2832
3007
  }
2833
3008
  }
2834
3009
  }
2835
- YunzaiStartupService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: YunzaiStartupService, deps: [{ token: i8.NzIconService }, { token: i1$2.MenuService }, { token: YUNZAI_I18N_TOKEN }, { token: WINDOW }, { token: i1$2.SettingsService }, { token: i3$4.ACLService }, { token: i1$2.TitleService }, { token: YunzaiAuthService }, { token: i1$4.CacheService }, { token: i1$3.YunzaiConfigService }], target: i0.ɵɵFactoryTarget.Injectable });
3010
+ YunzaiStartupService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: YunzaiStartupService, deps: [{ token: i8.NzIconService }, { token: i1$2.MenuService }, { token: YUNZAI_I18N_TOKEN }, { token: WINDOW }, { token: i1$2.SettingsService }, { token: i3$4.ACLService }, { token: i1$2.TitleService }, { token: YunzaiAuthService }, { token: i1$3.CacheService }, { token: i1$4.YunzaiConfigService }], target: i0.ɵɵFactoryTarget.Injectable });
2836
3011
  YunzaiStartupService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: YunzaiStartupService });
2837
3012
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: YunzaiStartupService, decorators: [{
2838
3013
  type: Injectable
@@ -2842,7 +3017,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImpor
2842
3017
  }] }, { type: undefined, decorators: [{
2843
3018
  type: Inject,
2844
3019
  args: [WINDOW]
2845
- }] }, { type: i1$2.SettingsService }, { type: i3$4.ACLService }, { type: i1$2.TitleService }, { type: YunzaiAuthService }, { type: i1$4.CacheService }, { type: i1$3.YunzaiConfigService }]; } });
3020
+ }] }, { type: i1$2.SettingsService }, { type: i3$4.ACLService }, { type: i1$2.TitleService }, { type: YunzaiAuthService }, { type: i1$3.CacheService }, { type: i1$4.YunzaiConfigService }]; } });
2846
3021
  function mapYzSideToYelonMenu(menus) {
2847
3022
  menus.forEach(menu => {
2848
3023
  menu.badgeDot = menu.badge_dot || null;
@@ -2891,5 +3066,5 @@ const YUNZAI_APPINIT_PROVIDES = [
2891
3066
  * Generated bundle index. Do not edit.
2892
3067
  */
2893
3068
 
2894
- export { ActGuard, BUSINESS_DEFAULT_CONFIG, LayoutNavApplicationComponent, LayoutNavGroupComponent, LayoutNavTileComponent, NavType, TopicType, YUNZAI_APPINIT_PROVIDES, YUNZAI_APPINIT_PROVIDES as YZ_APPINIT_PROVIDES, YunzaiAuthService, YunzaiClearStorageComponent, YunzaiDefaultInterceptor, YunzaiFullScreenComponent, YunzaiI18NComponent, YunzaiI18NService, YunzaiLayoutBasicComponent, YunzaiLayoutModule, YunzaiNotifyComponent, YunzaiStartupService, YunzaiStartupServiceFactory, YunzaiThemBtnComponent, YunzaiUserComponent, YunzaiAuthService as YzAuthService, YunzaiDefaultInterceptor as YzDefaultInterceptor, YunzaiI18NService as YzI18NService, YunzaiLayoutBasicComponent as YzLayoutBasicComponent, YunzaiStartupService as YzStartupService, YunzaiStartupServiceFactory as YzStartupServiceFactory, generateAbility, mapYzSideToYelonMenu, mergeBisConfig };
3069
+ export { ActGuard, BUSINESS_DEFAULT_CONFIG, LayoutNavApplicationComponent, LayoutNavGroupComponent, LayoutNavTileComponent, NavType, YUNZAI_APPINIT_PROVIDES, YUNZAI_LANGS, YUNZAI_APPINIT_PROVIDES as YZ_APPINIT_PROVIDES, YunzaiAuthService, YunzaiClearStorageComponent, YunzaiDefaultInterceptor, YunzaiFullScreenComponent, YunzaiI18NComponent, YunzaiI18NService, YunzaiLayoutBasicComponent, YunzaiLayoutModule, YunzaiNotifyComponent, YunzaiStartupService, YunzaiStartupServiceFactory, YunzaiThemBtnComponent, YunzaiUserComponent, YunzaiAuthService as YzAuthService, YunzaiDefaultInterceptor as YzDefaultInterceptor, YunzaiI18NService as YzI18NService, YunzaiLayoutBasicComponent as YzLayoutBasicComponent, YunzaiStartupService as YzStartupService, YunzaiStartupServiceFactory as YzStartupServiceFactory, generateAbility, mapYzSideToYelonMenu, mergeBisConfig };
2895
3070
  //# sourceMappingURL=layout.mjs.map