@yelon/bis 15.1.0 → 15.1.1-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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,72 @@ 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/language/${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, image: undefined };
333
+ });
334
+ if (ngDevMode) {
335
+ return of(langs);
336
+ }
337
+ else {
338
+ return this.http
339
+ .get(`${this.bis.baseUrl}/i18n/api/v2/language?_allow_anonymous`)
340
+ .pipe(catchError(() => of(langs)));
341
+ }
342
+ }
343
+ ngOnDestroy() {
344
+ this.destroy$.complete();
209
345
  }
210
346
  }
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 });
347
+ 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
348
  YunzaiI18NService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: YunzaiI18NService, providedIn: 'root' });
213
349
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: YunzaiI18NService, decorators: [{
214
350
  type: Injectable,
215
351
  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 }]; } });
352
+ }], 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
353
 
218
354
  class YunzaiI18NComponent {
219
- get langs() {
220
- return this.i18n.getLangs();
221
- }
222
355
  get curLangCode() {
223
356
  return this.settings.layout.lang;
224
357
  }
@@ -226,8 +359,16 @@ class YunzaiI18NComponent {
226
359
  this.settings = settings;
227
360
  this.i18n = i18n;
228
361
  this.doc = doc;
362
+ this.destroy$ = new Subject();
229
363
  /** Whether to display language text */
230
364
  this.showLangText = true;
365
+ this.langs = [];
366
+ this.i18n
367
+ .getLangs()
368
+ .pipe(takeUntil(this.destroy$))
369
+ .subscribe(langs => {
370
+ this.langs = langs;
371
+ });
231
372
  }
232
373
  change(lang) {
233
374
  const spinEl = this.doc.createElement('div');
@@ -240,12 +381,15 @@ class YunzaiI18NComponent {
240
381
  setTimeout(() => this.doc.location.reload());
241
382
  });
242
383
  }
384
+ ngOnDestroy() {
385
+ this.destroy$.complete();
386
+ }
243
387
  }
244
388
  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
389
  YunzaiI18NComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.4", type: YunzaiI18NComponent, selector: "yunzai-i18n", inputs: { showLangText: "showLangText" }, ngImport: i0, template: `
246
390
  <div *ngIf="showLangText" nz-dropdown [nzDropdownMenu]="langMenu" nzPlacement="bottomRight">
247
391
  <i nz-icon nzType="global"></i>
248
- {{ 'menu.lang' | i18n }}
392
+ {{ 'lang.nav' | i18n }}
249
393
  <i nz-icon nzType="down"></i>
250
394
  </div>
251
395
  <i
@@ -264,7 +408,12 @@ YunzaiI18NComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", ve
264
408
  [nzSelected]="item.code === curLangCode"
265
409
  (click)="change(item.code)"
266
410
  >
267
- <span role="img" [attr.aria-label]="item.text" class="pr-xs">{{ item.abbr }}</span>
411
+ <template *ngIf="!item.icon">
412
+ <span role="img" [attr.aria-label]="item.text" class="pr-xs">{{ item.abbr }}</span>
413
+ </template>
414
+ <template *ngIf="item.icon">
415
+ <img [src]="'data:image/png;base64,' + item.icon" [alt]="item.abbr" class="pr-xs" />
416
+ </template>
268
417
  {{ item.text }}
269
418
  </li>
270
419
  </ul>
@@ -280,7 +429,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImpor
280
429
  template: `
281
430
  <div *ngIf="showLangText" nz-dropdown [nzDropdownMenu]="langMenu" nzPlacement="bottomRight">
282
431
  <i nz-icon nzType="global"></i>
283
- {{ 'menu.lang' | i18n }}
432
+ {{ 'lang.nav' | i18n }}
284
433
  <i nz-icon nzType="down"></i>
285
434
  </div>
286
435
  <i
@@ -299,7 +448,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImpor
299
448
  [nzSelected]="item.code === curLangCode"
300
449
  (click)="change(item.code)"
301
450
  >
302
- <span role="img" [attr.aria-label]="item.text" class="pr-xs">{{ item.abbr }}</span>
451
+ <template *ngIf="!item.icon">
452
+ <span role="img" [attr.aria-label]="item.text" class="pr-xs">{{ item.abbr }}</span>
453
+ </template>
454
+ <template *ngIf="item.icon">
455
+ <img [src]="'data:image/png;base64,' + item.icon" [alt]="item.abbr" class="pr-xs" />
456
+ </template>
303
457
  {{ item.text }}
304
458
  </li>
305
459
  </ul>
@@ -332,25 +486,25 @@ class YunzaiNotifyComponent {
332
486
  key: 'msg',
333
487
  title: this.y18n.fanyi('notify.message'),
334
488
  list: [],
335
- emptyText: this.y18n.fanyi('notify.message.emptyText'),
489
+ emptyText: this.y18n.fanyi('notify.message.empty'),
336
490
  emptyImage: './assets/tmp/img/message.svg',
337
- clearText: this.y18n.fanyi('notify.message.clearText')
491
+ clearText: this.y18n.fanyi('notify.message.clear')
338
492
  },
339
493
  {
340
494
  key: 'todo',
341
495
  title: this.y18n.fanyi('notify.todo'),
342
496
  list: [],
343
- emptyText: this.y18n.fanyi('notify.todo.emptyText'),
497
+ emptyText: this.y18n.fanyi('notify.todo.empty'),
344
498
  emptyImage: './assets/tmp/img/todo.svg',
345
- clearText: this.y18n.fanyi('notify.todo.clearText')
499
+ clearText: this.y18n.fanyi('notify.todo.clear')
346
500
  },
347
501
  {
348
502
  key: 'notice',
349
503
  title: this.y18n.fanyi('notify.notice'),
350
504
  list: [],
351
- emptyText: this.y18n.fanyi('notify.notice.emptyText'),
505
+ emptyText: this.y18n.fanyi('notify.notice.empty'),
352
506
  emptyImage: './assets/tmp/img/notice.svg',
353
- clearText: this.y18n.fanyi('notify.notice.clearText')
507
+ clearText: this.y18n.fanyi('notify.notice.clear')
354
508
  }
355
509
  ];
356
510
  this.loading = false;
@@ -659,17 +813,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImpor
659
813
  type: Input
660
814
  }] } });
661
815
 
662
- const BUSINESS_DEFAULT_CONFIG = {
663
- baseUrl: '/backstage',
664
- systemCode: 'portal',
665
- loginForm: null,
666
- refreshTokenEnabled: true,
667
- refreshTokenType: 're-request'
668
- };
669
- function mergeBisConfig(srv) {
670
- return srv.merge('bis', BUSINESS_DEFAULT_CONFIG);
671
- }
672
-
673
816
  class YunzaiUserComponent {
674
817
  constructor(injector, msg, tokenService,
675
818
  // @ts-ignore
@@ -707,7 +850,7 @@ class YunzaiUserComponent {
707
850
  }
708
851
  }
709
852
  }
710
- 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 });
853
+ 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 });
711
854
  YunzaiUserComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.4", type: YunzaiUserComponent, selector: "yunzai-user", ngImport: i0, template: `
712
855
  <div
713
856
  class="yunzai-default__nav-item d-flex align-items-center px-sm"
@@ -729,7 +872,7 @@ YunzaiUserComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", ve
729
872
  <li nz-menu-divider></li>
730
873
  <div nz-menu-item (click)="logout()">
731
874
  <i nz-icon nzType="logout" class="mr-sm"></i>
732
- {{ 'menu.account.logout' | i18n }}
875
+ {{ 'logout' | i18n }}
733
876
  </div>
734
877
  </div>
735
878
  </nz-dropdown-menu>
@@ -759,7 +902,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImpor
759
902
  <li nz-menu-divider></li>
760
903
  <div nz-menu-item (click)="logout()">
761
904
  <i nz-icon nzType="logout" class="mr-sm"></i>
762
- {{ 'menu.account.logout' | i18n }}
905
+ {{ 'logout' | i18n }}
763
906
  </div>
764
907
  </div>
765
908
  </nz-dropdown-menu>
@@ -770,26 +913,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImpor
770
913
  return [{ type: i0.Injector }, { type: i1$1.NzMessageService }, { type: undefined, decorators: [{
771
914
  type: Inject,
772
915
  args: [YA_SERVICE_TOKEN]
773
- }] }, { type: i1$3.YunzaiConfigService }, { type: i1$4.CacheService }];
916
+ }] }, { type: i1$4.YunzaiConfigService }, { type: i1$3.CacheService }];
774
917
  } });
775
918
 
776
- var TopicType;
777
- (function (TopicType) {
778
- TopicType[TopicType["FULL"] = 0] = "FULL";
779
- TopicType[TopicType["OWN"] = 1] = "OWN";
780
- TopicType[TopicType["EVERY"] = 2] = "EVERY";
781
- })(TopicType || (TopicType = {}));
782
-
783
919
  class LayoutNavApplicationComponent {
784
920
  constructor(cacheService, i18n, http, inject) {
785
921
  this.cacheService = cacheService;
786
922
  this.i18n = i18n;
787
923
  this.http = http;
788
924
  this.inject = inject;
789
- this.TopicType = TopicType;
790
925
  this.state = {
791
926
  active: false,
792
- type: TopicType.FULL,
927
+ type: 'all',
793
928
  topic: undefined,
794
929
  topics: [],
795
930
  list: [],
@@ -798,18 +933,32 @@ class LayoutNavApplicationComponent {
798
933
  };
799
934
  }
800
935
  ngOnInit() {
801
- this.state.list = this.state.topics = this.cacheService.get('_yz_header', { mode: 'none' });
936
+ this.fetchAllTopic();
937
+ this.attachNav('all');
802
938
  }
803
- initTopic(type) {
804
- this.state.search = null;
805
- this.state.list = this.cacheService.get('_yz_header', { mode: 'none' });
939
+ fetchAllTopic() {
940
+ this.state.topics = this.cacheService.get('_yz_header', { mode: 'none' });
941
+ }
942
+ attachNav(type, topic) {
806
943
  this.state.type = type;
944
+ this.clearSearch();
945
+ if (type === 'all') {
946
+ this.displayAllNav();
947
+ }
948
+ if (type === 'mine') {
949
+ this.displayMineNav();
950
+ }
951
+ if (type === 'other' && topic) {
952
+ this.displayOtherNav(topic);
953
+ }
807
954
  }
808
- full() {
809
- this.initTopic(TopicType.FULL);
955
+ clearSearch() {
956
+ this.state.search = null;
957
+ }
958
+ displayAllNav() {
959
+ this.state.list = this.cacheService.get('_yz_header', { mode: 'none' });
810
960
  }
811
- own() {
812
- this.initTopic(TopicType.OWN);
961
+ displayMineNav() {
813
962
  const temp = this.cacheService.get('_yz_header', { mode: 'none' });
814
963
  this.state.list = temp
815
964
  .filter((topic) => {
@@ -822,11 +971,10 @@ class LayoutNavApplicationComponent {
822
971
  return topic.children.length > 0;
823
972
  });
824
973
  }
825
- every(e) {
826
- this.initTopic(TopicType.EVERY);
827
- this.state.topic = e;
974
+ displayOtherNav(topic) {
975
+ this.state.topic = topic;
828
976
  const temp = this.cacheService.get('_yz_header', { mode: 'none' });
829
- this.state.list = [...temp.filter(t => t.key === e.key)[0].children];
977
+ this.state.list = temp.filter(t => t.key === topic.key)[0].children;
830
978
  }
831
979
  diffChange(flag) {
832
980
  if (flag) {
@@ -888,9 +1036,9 @@ class LayoutNavApplicationComponent {
888
1036
  this.state.destroy$.complete();
889
1037
  }
890
1038
  }
891
- 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 });
1039
+ 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 });
892
1040
  LayoutNavApplicationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.4", type: LayoutNavApplicationComponent, selector: "layout-nav-application", ngImport: i0, template: `
893
- <!-- template start-->
1041
+ <!-- search start-->
894
1042
  <ng-template #search>
895
1043
  <div nz-row class="yz-application-list-search">
896
1044
  <nz-input-group [nzPrefix]="prefixTemplate">
@@ -907,45 +1055,50 @@ LayoutNavApplicationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "1
907
1055
  </nz-input-group>
908
1056
  </div>
909
1057
  </ng-template>
1058
+ <!-- search end -->
1059
+
1060
+ <!-- right menu start -->
910
1061
  <ng-template #ld>
911
1062
  <div class="yz-application-list">
912
1063
  <ul>
913
- <li *ngFor="let d of state.list">
914
- <h5>{{ d.name }}</h5>
915
- <a href="javascript:;" *ngFor="let cd of d.children" (click)="open(cd)">{{ cd.name }}</a>
1064
+ <li *ngFor="let topic of state.list">
1065
+ <h5>{{ topic.name | i18n }}</h5>
1066
+ <a href="javascript:;" *ngFor="let nav of topic.children" (click)="open(nav)">{{ nav.name | i18n }}</a>
916
1067
  </li>
917
1068
  </ul>
918
1069
  </div>
919
1070
  </ng-template>
920
- <!-- template end-->
1071
+ <!-- right menu end -->
921
1072
 
922
1073
  <!-- button start-->
923
- <div class="yunzai-default__nav-item" (click)="diffChange()"> {{ 'application.button' | i18n }}</div>
1074
+ <div class="yunzai-default__nav-item" (click)="diffChange()"> {{ 'mode.nav' | i18n }}</div>
924
1075
  <!-- button end-->
925
1076
 
926
1077
  <!-- header start-->
927
1078
  <div class="yz-application" nz-row *ngIf="state.active">
928
1079
  <div nz-col [nzSpan]="3" class="yz-application-topic">
929
- <div class="yz-application-text" (click)="full()">{{ 'application.all' | i18n }}</div>
930
- <div class="yz-application-text" (click)="own()">{{ 'application.mine' | i18n }}</div>
931
- <div class="yz-application-text" *ngFor="let d of state.topics" (click)="every(d)">{{ d.name }}</div>
1080
+ <div class="yz-application-text" (click)="attachNav('all')">{{ 'mode.nav.all' | i18n }}</div>
1081
+ <div class="yz-application-text" (click)="attachNav('mine')">{{ 'mode.nav.mine' | i18n }}</div>
1082
+ <div class="yz-application-text" *ngFor="let nav of state.topics" (click)="attachNav('other', nav)">{{
1083
+ nav.name | i18n
1084
+ }}</div>
932
1085
  </div>
933
1086
  <div nz-col [nzSpan]="21" [ngSwitch]="state.topic" class="yz-application-container">
934
- <div *ngSwitchCase="TopicType.FULL">
1087
+ <div *ngIf="state.type === 'all'">
935
1088
  <ng-template [ngTemplateOutlet]="search"></ng-template>
936
1089
  <ng-template [ngTemplateOutlet]="ld"></ng-template>
937
1090
  </div>
938
- <div *ngSwitchCase="TopicType.OWN">
1091
+ <div *ngIf="state.type === 'mine'">
939
1092
  <ng-template [ngTemplateOutlet]="search"></ng-template>
940
1093
  <ng-template [ngTemplateOutlet]="ld"></ng-template>
941
1094
  </div>
942
- <div *ngSwitchCase="TopicType.EVERY" class="yz-application-list">
1095
+ <div *ngIf="state.type === 'other'" class="yz-application-list">
943
1096
  <div class="yz-application-list-item">
944
1097
  <ul>
945
- <li *ngFor="let d of state.list" (click)="open(d)">
1098
+ <li *ngFor="let nav of state.list" (click)="open(nav)">
946
1099
  <a href="javascript:;">
947
- <h4>{{ d.name }}</h4>
948
- <p>{{ d.intro }}</p>
1100
+ <h4>{{ nav.name | i18n }}</h4>
1101
+ <p>{{ nav.intro | i18n }}</p>
949
1102
  </a>
950
1103
  </li>
951
1104
  </ul>
@@ -954,13 +1107,13 @@ LayoutNavApplicationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "1
954
1107
  </div>
955
1108
  </div>
956
1109
  <!-- header end-->
957
- `, 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" }] });
1110
+ `, 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" }] });
958
1111
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: LayoutNavApplicationComponent, decorators: [{
959
1112
  type: Component,
960
1113
  args: [{
961
1114
  selector: `layout-nav-application`,
962
1115
  template: `
963
- <!-- template start-->
1116
+ <!-- search start-->
964
1117
  <ng-template #search>
965
1118
  <div nz-row class="yz-application-list-search">
966
1119
  <nz-input-group [nzPrefix]="prefixTemplate">
@@ -977,45 +1130,50 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImpor
977
1130
  </nz-input-group>
978
1131
  </div>
979
1132
  </ng-template>
1133
+ <!-- search end -->
1134
+
1135
+ <!-- right menu start -->
980
1136
  <ng-template #ld>
981
1137
  <div class="yz-application-list">
982
1138
  <ul>
983
- <li *ngFor="let d of state.list">
984
- <h5>{{ d.name }}</h5>
985
- <a href="javascript:;" *ngFor="let cd of d.children" (click)="open(cd)">{{ cd.name }}</a>
1139
+ <li *ngFor="let topic of state.list">
1140
+ <h5>{{ topic.name | i18n }}</h5>
1141
+ <a href="javascript:;" *ngFor="let nav of topic.children" (click)="open(nav)">{{ nav.name | i18n }}</a>
986
1142
  </li>
987
1143
  </ul>
988
1144
  </div>
989
1145
  </ng-template>
990
- <!-- template end-->
1146
+ <!-- right menu end -->
991
1147
 
992
1148
  <!-- button start-->
993
- <div class="yunzai-default__nav-item" (click)="diffChange()"> {{ 'application.button' | i18n }}</div>
1149
+ <div class="yunzai-default__nav-item" (click)="diffChange()"> {{ 'mode.nav' | i18n }}</div>
994
1150
  <!-- button end-->
995
1151
 
996
1152
  <!-- header start-->
997
1153
  <div class="yz-application" nz-row *ngIf="state.active">
998
1154
  <div nz-col [nzSpan]="3" class="yz-application-topic">
999
- <div class="yz-application-text" (click)="full()">{{ 'application.all' | i18n }}</div>
1000
- <div class="yz-application-text" (click)="own()">{{ 'application.mine' | i18n }}</div>
1001
- <div class="yz-application-text" *ngFor="let d of state.topics" (click)="every(d)">{{ d.name }}</div>
1155
+ <div class="yz-application-text" (click)="attachNav('all')">{{ 'mode.nav.all' | i18n }}</div>
1156
+ <div class="yz-application-text" (click)="attachNav('mine')">{{ 'mode.nav.mine' | i18n }}</div>
1157
+ <div class="yz-application-text" *ngFor="let nav of state.topics" (click)="attachNav('other', nav)">{{
1158
+ nav.name | i18n
1159
+ }}</div>
1002
1160
  </div>
1003
1161
  <div nz-col [nzSpan]="21" [ngSwitch]="state.topic" class="yz-application-container">
1004
- <div *ngSwitchCase="TopicType.FULL">
1162
+ <div *ngIf="state.type === 'all'">
1005
1163
  <ng-template [ngTemplateOutlet]="search"></ng-template>
1006
1164
  <ng-template [ngTemplateOutlet]="ld"></ng-template>
1007
1165
  </div>
1008
- <div *ngSwitchCase="TopicType.OWN">
1166
+ <div *ngIf="state.type === 'mine'">
1009
1167
  <ng-template [ngTemplateOutlet]="search"></ng-template>
1010
1168
  <ng-template [ngTemplateOutlet]="ld"></ng-template>
1011
1169
  </div>
1012
- <div *ngSwitchCase="TopicType.EVERY" class="yz-application-list">
1170
+ <div *ngIf="state.type === 'other'" class="yz-application-list">
1013
1171
  <div class="yz-application-list-item">
1014
1172
  <ul>
1015
- <li *ngFor="let d of state.list" (click)="open(d)">
1173
+ <li *ngFor="let nav of state.list" (click)="open(nav)">
1016
1174
  <a href="javascript:;">
1017
- <h4>{{ d.name }}</h4>
1018
- <p>{{ d.intro }}</p>
1175
+ <h4>{{ nav.name | i18n }}</h4>
1176
+ <p>{{ nav.intro | i18n }}</p>
1019
1177
  </a>
1020
1178
  </li>
1021
1179
  </ul>
@@ -1026,7 +1184,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImpor
1026
1184
  <!-- header end-->
1027
1185
  `
1028
1186
  }]
1029
- }], ctorParameters: function () { return [{ type: i1$4.CacheService }, { type: YunzaiI18NService }, { type: i1$2._HttpClient }, { type: i0.Injector }]; } });
1187
+ }], ctorParameters: function () { return [{ type: i1$3.CacheService }, { type: YunzaiI18NService }, { type: i1$2._HttpClient }, { type: i0.Injector }]; } });
1030
1188
 
1031
1189
  class LayoutNavGroupComponent {
1032
1190
  constructor(inject, cacheService, http) {
@@ -1070,7 +1228,7 @@ class LayoutNavGroupComponent {
1070
1228
  this.state.destroy$.complete();
1071
1229
  }
1072
1230
  }
1073
- 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 });
1231
+ 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 });
1074
1232
  LayoutNavGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.4", type: LayoutNavGroupComponent, selector: "layout-nav-group", ngImport: i0, template: `
1075
1233
  <div class="yz-application-group">
1076
1234
  <nz-tabset>
@@ -1134,7 +1292,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImpor
1134
1292
  </div>
1135
1293
  `
1136
1294
  }]
1137
- }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1$4.CacheService }, { type: i1$2._HttpClient }]; } });
1295
+ }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1$3.CacheService }, { type: i1$2._HttpClient }]; } });
1138
1296
 
1139
1297
  class LayoutNavTileComponent {
1140
1298
  constructor() { }
@@ -1199,12 +1357,27 @@ class YunzaiLayoutBasicComponent {
1199
1357
  }
1200
1358
  ngOnInit() {
1201
1359
  this.initLogo();
1360
+ this.initFavicon();
1202
1361
  this.initNavType();
1203
1362
  this.initAside();
1204
1363
  this.addLayoutDisplayListener();
1205
1364
  this.stompService.listen();
1206
1365
  this.toIndex();
1207
1366
  }
1367
+ initFavicon() {
1368
+ console.log('init favicon');
1369
+ const projectInfo = this.cacheService.get('_yz_project_info', { mode: 'none' });
1370
+ if (projectInfo.faviconUrl) {
1371
+ hasFavicon(projectInfo.faviconUrl).then((has) => {
1372
+ if (has) {
1373
+ setFavicon(projectInfo.faviconUrl);
1374
+ }
1375
+ else {
1376
+ setFavicon('./assets/favicon.ico');
1377
+ }
1378
+ });
1379
+ }
1380
+ }
1208
1381
  initAside() {
1209
1382
  const aside = this.cacheService.get('_yz_current', { mode: 'none' });
1210
1383
  this.state.aside = Object.assign({}, aside);
@@ -1256,7 +1429,7 @@ class YunzaiLayoutBasicComponent {
1256
1429
  this.state.destroy$.complete();
1257
1430
  }
1258
1431
  }
1259
- 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 });
1432
+ 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 });
1260
1433
  YunzaiLayoutBasicComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.4", type: YunzaiLayoutBasicComponent, selector: "yz-layout-basic", ngImport: i0, template: `<layout-default
1261
1434
  [options]="options"
1262
1435
  [asideUser]="asideUserTpl"
@@ -1294,20 +1467,20 @@ YunzaiLayoutBasicComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0
1294
1467
  <nz-dropdown-menu #settingsMenu="nzDropdownMenu">
1295
1468
  <div nz-menu style="width: 200px;">
1296
1469
  <div nz-menu-item>
1297
- {{ 'menu.application.mode' | i18n }}
1470
+ {{ 'mode.nav' | i18n }}
1298
1471
  </div>
1299
1472
 
1300
1473
  <div nz-menu-item (click)="onNavTypeChange(NavType.APPLICATION)">
1301
1474
  <i nz-icon nzType="appstore" class="mr-sm"></i>
1302
- {{ 'menu.application.application' | i18n }}
1475
+ {{ 'mode.nav.application' | i18n }}
1303
1476
  </div>
1304
1477
  <div nz-menu-item (click)="onNavTypeChange(NavType.GROUP)">
1305
1478
  <i nz-icon nzType="group" class="mr-sm"></i>
1306
- {{ 'menu.application.group' | i18n }}
1479
+ {{ 'mode.nav.group' | i18n }}
1307
1480
  </div>
1308
1481
  <div nz-menu-item (click)="onNavTypeChange(NavType.TILE)">
1309
1482
  <i nz-icon nzType="appstore" class="mr-sm"></i>
1310
- {{ 'menu.application.tile' | i18n }}
1483
+ {{ 'mode.nav.tile' | i18n }}
1311
1484
  </div>
1312
1485
  <div nz-menu-item> <yunzai-fullscreen></yunzai-fullscreen> </div>
1313
1486
  <div nz-menu-item> <yunzai-clearstorage></yunzai-clearstorage> </div>
@@ -1324,13 +1497,13 @@ YunzaiLayoutBasicComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0
1324
1497
  <div nz-dropdown nzTrigger="click" [nzDropdownMenu]="userMenu" class="yunzai-default__aside-user">
1325
1498
  <nz-avatar class="yunzai-default__aside-user-avatar" [nzSrc]="aside.icon"></nz-avatar>
1326
1499
  <div class="yunzai-default__aside-user-info">
1327
- <strong>{{ aside.name }}</strong>
1328
- <p class="mb0">{{ aside.intro }}</p>
1500
+ <strong>{{ aside.name | i18n }}</strong>
1501
+ <p class="mb0">{{ aside.intro | i18n }}</p>
1329
1502
  </div>
1330
1503
  </div>
1331
1504
  <nz-dropdown-menu #userMenu="nzDropdownMenu">
1332
1505
  <ul nz-menu>
1333
- <li nz-menu-item routerLink="/">{{ 'menu.backtohome' | i18n }}</li>
1506
+ <li nz-menu-item routerLink="/">{{ 'back.home' | i18n }}</li>
1334
1507
  </ul>
1335
1508
  </nz-dropdown-menu>
1336
1509
  </ng-template>
@@ -1382,20 +1555,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImpor
1382
1555
  <nz-dropdown-menu #settingsMenu="nzDropdownMenu">
1383
1556
  <div nz-menu style="width: 200px;">
1384
1557
  <div nz-menu-item>
1385
- {{ 'menu.application.mode' | i18n }}
1558
+ {{ 'mode.nav' | i18n }}
1386
1559
  </div>
1387
1560
 
1388
1561
  <div nz-menu-item (click)="onNavTypeChange(NavType.APPLICATION)">
1389
1562
  <i nz-icon nzType="appstore" class="mr-sm"></i>
1390
- {{ 'menu.application.application' | i18n }}
1563
+ {{ 'mode.nav.application' | i18n }}
1391
1564
  </div>
1392
1565
  <div nz-menu-item (click)="onNavTypeChange(NavType.GROUP)">
1393
1566
  <i nz-icon nzType="group" class="mr-sm"></i>
1394
- {{ 'menu.application.group' | i18n }}
1567
+ {{ 'mode.nav.group' | i18n }}
1395
1568
  </div>
1396
1569
  <div nz-menu-item (click)="onNavTypeChange(NavType.TILE)">
1397
1570
  <i nz-icon nzType="appstore" class="mr-sm"></i>
1398
- {{ 'menu.application.tile' | i18n }}
1571
+ {{ 'mode.nav.tile' | i18n }}
1399
1572
  </div>
1400
1573
  <div nz-menu-item> <yunzai-fullscreen></yunzai-fullscreen> </div>
1401
1574
  <div nz-menu-item> <yunzai-clearstorage></yunzai-clearstorage> </div>
@@ -1412,13 +1585,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImpor
1412
1585
  <div nz-dropdown nzTrigger="click" [nzDropdownMenu]="userMenu" class="yunzai-default__aside-user">
1413
1586
  <nz-avatar class="yunzai-default__aside-user-avatar" [nzSrc]="aside.icon"></nz-avatar>
1414
1587
  <div class="yunzai-default__aside-user-info">
1415
- <strong>{{ aside.name }}</strong>
1416
- <p class="mb0">{{ aside.intro }}</p>
1588
+ <strong>{{ aside.name | i18n }}</strong>
1589
+ <p class="mb0">{{ aside.intro | i18n }}</p>
1417
1590
  </div>
1418
1591
  </div>
1419
1592
  <nz-dropdown-menu #userMenu="nzDropdownMenu">
1420
1593
  <ul nz-menu>
1421
- <li nz-menu-item routerLink="/">{{ 'menu.backtohome' | i18n }}</li>
1594
+ <li nz-menu-item routerLink="/">{{ 'back.home' | i18n }}</li>
1422
1595
  </ul>
1423
1596
  </nz-dropdown-menu>
1424
1597
  </ng-template>
@@ -1431,7 +1604,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImpor
1431
1604
  </ng-template> `
1432
1605
  }]
1433
1606
  }], ctorParameters: function () {
1434
- return [{ type: i1$5.LayoutDisplayService }, { type: i1$4.CacheService }, { type: i3$3.StompService }, { type: undefined, decorators: [{
1607
+ return [{ type: i1$5.LayoutDisplayService }, { type: i1$3.CacheService }, { type: i3$3.StompService }, { type: undefined, decorators: [{
1435
1608
  type: Inject,
1436
1609
  args: [WINDOW]
1437
1610
  }] }];
@@ -1528,14 +1701,14 @@ class ActGuard {
1528
1701
  });
1529
1702
  }
1530
1703
  }
1531
- 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 });
1704
+ 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 });
1532
1705
  ActGuard.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: ActGuard, providedIn: 'root' });
1533
1706
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: ActGuard, decorators: [{
1534
1707
  type: Injectable,
1535
1708
  args: [{
1536
1709
  providedIn: 'root'
1537
1710
  }]
1538
- }], ctorParameters: function () { return [{ type: i1$3.YunzaiConfigService }, { type: i1$4.CacheService }, { type: i1$3.PathToRegexpService }, { type: i5$1.Router }]; } });
1711
+ }], ctorParameters: function () { return [{ type: i1$4.YunzaiConfigService }, { type: i1$3.CacheService }, { type: i1$4.PathToRegexpService }, { type: i5$1.Router }]; } });
1539
1712
 
1540
1713
  class YunzaiAuthService {
1541
1714
  constructor(injector) {
@@ -1859,6 +2032,8 @@ class YunzaiDefaultInterceptor {
1859
2032
  if (url.includes('.json') && url.includes('assets')) {
1860
2033
  url = req.url;
1861
2034
  }
2035
+ if (url.includes('i18n'))
2036
+ return next.handle(req);
1862
2037
  // 加入语言头
1863
2038
  const newReq = req.clone({ url, setHeaders: this.getAdditionalHeaders(req.headers) });
1864
2039
  return next.handle(newReq).pipe(mergeMap(ev => {
@@ -2754,7 +2929,9 @@ class YunzaiStartupService {
2754
2929
  }
2755
2930
  load() {
2756
2931
  log$1('startup.service: ', 'load');
2757
- const defaultLang = this.i18n.defaultLang;
2932
+ let defaultLang = this.cacheService.getNone(this.i18n.cacheDefaultKey);
2933
+ if (!defaultLang)
2934
+ defaultLang = this.i18n.defaultLang;
2758
2935
  return this.i18n.loadLangData(defaultLang).pipe(mergeMap(langData => {
2759
2936
  log$1('startup.service: ', 'set i18n, defaultLang->', defaultLang, ' langData->', langData);
2760
2937
  this.i18n.use(defaultLang, langData);
@@ -2822,7 +2999,7 @@ class YunzaiStartupService {
2822
2999
  }
2823
3000
  }
2824
3001
  }
2825
- 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 });
3002
+ 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 });
2826
3003
  YunzaiStartupService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: YunzaiStartupService });
2827
3004
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: YunzaiStartupService, decorators: [{
2828
3005
  type: Injectable
@@ -2833,7 +3010,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImpor
2833
3010
  }] }, { type: undefined, decorators: [{
2834
3011
  type: Inject,
2835
3012
  args: [WINDOW]
2836
- }] }, { type: i1$2.SettingsService }, { type: i3$4.ACLService }, { type: i1$2.TitleService }, { type: YunzaiAuthService }, { type: i1$4.CacheService }, { type: i1$3.YunzaiConfigService }];
3013
+ }] }, { type: i1$2.SettingsService }, { type: i3$4.ACLService }, { type: i1$2.TitleService }, { type: YunzaiAuthService }, { type: i1$3.CacheService }, { type: i1$4.YunzaiConfigService }];
2837
3014
  } });
2838
3015
  function mapYzSideToYelonMenu(menus) {
2839
3016
  menus.forEach(menu => {
@@ -2883,5 +3060,5 @@ const YUNZAI_APPINIT_PROVIDES = [
2883
3060
  * Generated bundle index. Do not edit.
2884
3061
  */
2885
3062
 
2886
- 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 };
3063
+ 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 };
2887
3064
  //# sourceMappingURL=layout.mjs.map