@delon/theme 12.1.1 → 12.2.3

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.
@@ -19,5 +19,6 @@ export * from './src/pipes/safe/html.pipe';
19
19
  export * from './src/pipes/safe/url.pipe';
20
20
  export * from './src/config';
21
21
  export * from './src/theme.module';
22
+ export * from './src/router/optional-preloader';
22
23
  export { VERSION } from './src/version';
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3RoZW1lL3B1YmxpY19hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDdkUsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sZUFBZSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgcHJlbG9hZGVyRmluaXNoZWQgfSBmcm9tICcuL3NyYy9zZXJ2aWNlcy9wcmVsb2FkZXIvcHJlbG9hZGVyJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL3NlcnZpY2VzL21lbnUvaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL3NlcnZpY2VzL21lbnUvbWVudS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL3NlcnZpY2VzL3NldHRpbmdzL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL3NlcnZpY2VzL3NldHRpbmdzL3NldHRpbmdzLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvc2VydmljZXMvcmVzcG9uc2l2ZS9yZXNwb25zaXZlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL3NlcnZpY2VzL3J0bC9ydGwuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9zZXJ2aWNlcy90aXRsZS90aXRsZS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL3NlcnZpY2VzL2kxOG4vaTE4bic7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9sb2NhbGUvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvc2VydmljZXMvbW9kYWwvbW9kYWwuaGVscGVyJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL3NlcnZpY2VzL2RyYXdlci9kcmF3ZXIuaGVscGVyJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL3NlcnZpY2VzL2h0dHAvaHR0cC5jbGllbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvc2VydmljZXMvaHR0cC9odHRwLmRlY29yYXRvcic7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9waXBlcy9kYXRlL2RhdGUucGlwZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9waXBlcy9rZXlzL2tleXMucGlwZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9waXBlcy95bi95bi5waXBlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL3BpcGVzL3NhZmUvaHRtbC5waXBlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL3BpcGVzL3NhZmUvdXJsLnBpcGUnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvY29uZmlnJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL3RoZW1lLm1vZHVsZSc7XG5leHBvcnQgeyBWRVJTSU9OIH0gZnJvbSAnLi9zcmMvdmVyc2lvbic7XG4iXX0=
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3RoZW1lL3B1YmxpY19hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDdkUsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxlQUFlLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBwcmVsb2FkZXJGaW5pc2hlZCB9IGZyb20gJy4vc3JjL3NlcnZpY2VzL3ByZWxvYWRlci9wcmVsb2FkZXInO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvc2VydmljZXMvbWVudS9pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvc2VydmljZXMvbWVudS9tZW51LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvc2VydmljZXMvc2V0dGluZ3MvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvc2VydmljZXMvc2V0dGluZ3Mvc2V0dGluZ3Muc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9zZXJ2aWNlcy9yZXNwb25zaXZlL3Jlc3BvbnNpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvc2VydmljZXMvcnRsL3J0bC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL3NlcnZpY2VzL3RpdGxlL3RpdGxlLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvc2VydmljZXMvaTE4bi9pMThuJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2xvY2FsZS9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9zZXJ2aWNlcy9tb2RhbC9tb2RhbC5oZWxwZXInO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvc2VydmljZXMvZHJhd2VyL2RyYXdlci5oZWxwZXInO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvc2VydmljZXMvaHR0cC9odHRwLmNsaWVudCc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9zZXJ2aWNlcy9odHRwL2h0dHAuZGVjb3JhdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL3BpcGVzL2RhdGUvZGF0ZS5waXBlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL3BpcGVzL2tleXMva2V5cy5waXBlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL3BpcGVzL3luL3luLnBpcGUnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvcGlwZXMvc2FmZS9odG1sLnBpcGUnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvcGlwZXMvc2FmZS91cmwucGlwZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9jb25maWcnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvdGhlbWUubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL3JvdXRlci9vcHRpb25hbC1wcmVsb2FkZXInO1xuZXhwb3J0IHsgVkVSU0lPTiB9IGZyb20gJy4vc3JjL3ZlcnNpb24nO1xuIl19
@@ -0,0 +1,23 @@
1
+ import { of } from 'rxjs';
2
+ import { catchError } from 'rxjs/operators';
3
+ /**
4
+ * Optional pre-loading module, when it's necessary to load the resource at the first page load for some lazy routes, [example](https://github.com/ng-alain/ng-alain/blob/master/src/app/routes/routes-routing.module.ts).
5
+ *
6
+ * 可选预加载模块,当需要对某些懒路由在第一次页面加载时也一并加载该资源时,[示例](https://github.com/ng-alain/ng-alain/blob/master/src/app/routes/routes-routing.module.ts)。
7
+ *
8
+ * @example
9
+ * {AT}NgModule({
10
+ * providers: [PreloadOptionalModules],
11
+ * imports: [
12
+ * RouterModule.forRoot([
13
+ * { path: '', loadChildren: null, data: { preload: true } }
14
+ * ], { preloadingStrategy: PreloadOptionalModules})]
15
+ * })
16
+ */
17
+ export class PreloadOptionalModules {
18
+ preload(route, fn) {
19
+ var _a;
20
+ return ((_a = route.data) === null || _a === void 0 ? void 0 : _a.preload) === true ? fn().pipe(catchError(() => of(null))) : of(null);
21
+ }
22
+ }
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9uYWwtcHJlbG9hZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvdGhlbWUvc3JjL3JvdXRlci9vcHRpb25hbC1wcmVsb2FkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFJNUM7Ozs7Ozs7Ozs7Ozs7R0FhRztBQUNILE1BQU0sT0FBTyxzQkFBc0I7SUFDakMsT0FBTyxDQUFDLEtBQVksRUFBRSxFQUErQjs7UUFDbkQsT0FBTyxDQUFBLE1BQUEsS0FBSyxDQUFDLElBQUksMENBQUUsT0FBTyxNQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDekYsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUHJlbG9hZGluZ1N0cmF0ZWd5LCBSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHR5cGUgeyBOelNhZmVBbnkgfSBmcm9tICduZy16b3Jyby1hbnRkL2NvcmUvdHlwZXMnO1xuXG4vKipcbiAqIE9wdGlvbmFsIHByZS1sb2FkaW5nIG1vZHVsZSwgd2hlbiBpdCdzIG5lY2Vzc2FyeSB0byBsb2FkIHRoZSByZXNvdXJjZSBhdCB0aGUgZmlyc3QgcGFnZSBsb2FkIGZvciBzb21lIGxhenkgcm91dGVzLCBbZXhhbXBsZV0oaHR0cHM6Ly9naXRodWIuY29tL25nLWFsYWluL25nLWFsYWluL2Jsb2IvbWFzdGVyL3NyYy9hcHAvcm91dGVzL3JvdXRlcy1yb3V0aW5nLm1vZHVsZS50cykuXG4gKlxuICog5Y+v6YCJ6aKE5Yqg6L295qih5Z2X77yM5b2T6ZyA6KaB5a+55p+Q5Lqb5oeS6Lev55Sx5Zyo56ys5LiA5qyh6aG16Z2i5Yqg6L295pe25Lmf5LiA5bm25Yqg6L296K+l6LWE5rqQ5pe277yMW+ekuuS+i10oaHR0cHM6Ly9naXRodWIuY29tL25nLWFsYWluL25nLWFsYWluL2Jsb2IvbWFzdGVyL3NyYy9hcHAvcm91dGVzL3JvdXRlcy1yb3V0aW5nLm1vZHVsZS50cynjgIJcbiAqXG4gKiBAZXhhbXBsZVxuICoge0FUfU5nTW9kdWxlKHtcbiAqICBwcm92aWRlcnM6IFtQcmVsb2FkT3B0aW9uYWxNb2R1bGVzXSxcbiAqICBpbXBvcnRzOiBbXG4gKiAgICBSb3V0ZXJNb2R1bGUuZm9yUm9vdChbXG4gKiAgICAgIHsgcGF0aDogJycsIGxvYWRDaGlsZHJlbjogbnVsbCwgZGF0YTogeyBwcmVsb2FkOiB0cnVlIH0gfVxuICogICAgXSwgeyBwcmVsb2FkaW5nU3RyYXRlZ3k6IFByZWxvYWRPcHRpb25hbE1vZHVsZXN9KV1cbiAqIH0pXG4gKi9cbmV4cG9ydCBjbGFzcyBQcmVsb2FkT3B0aW9uYWxNb2R1bGVzIGltcGxlbWVudHMgUHJlbG9hZGluZ1N0cmF0ZWd5IHtcbiAgcHJlbG9hZChyb3V0ZTogUm91dGUsIGZuOiAoKSA9PiBPYnNlcnZhYmxlPE56U2FmZUFueT4pOiBPYnNlcnZhYmxlPE56U2FmZUFueT4ge1xuICAgIHJldHVybiByb3V0ZS5kYXRhPy5wcmVsb2FkID09PSB0cnVlID8gZm4oKS5waXBlKGNhdGNoRXJyb3IoKCkgPT4gb2YobnVsbCkpKSA6IG9mKG51bGwpO1xuICB9XG59XG4iXX0=
@@ -1,17 +1,22 @@
1
- import { Injectable, InjectionToken } from '@angular/core';
1
+ import { inject, Injectable, InjectionToken } from '@angular/core';
2
2
  import { BehaviorSubject } from 'rxjs';
3
3
  import { filter } from 'rxjs/operators';
4
+ import { AlainConfigService } from '@delon/util/config';
4
5
  import * as i0 from "@angular/core";
6
+ import * as i1 from "@delon/util/config";
5
7
  export const ALAIN_I18N_TOKEN = new InjectionToken('alainI18nToken', {
6
8
  providedIn: 'root',
7
- factory: () => new AlainI18NServiceFake()
9
+ factory: () => new AlainI18NServiceFake(inject(AlainConfigService))
8
10
  });
9
11
  export class AlainI18nBaseService {
10
- constructor() {
12
+ constructor(cogSrv) {
11
13
  this._change$ = new BehaviorSubject(null);
12
14
  this._currentLang = '';
13
15
  this._defaultLang = '';
14
16
  this._data = {};
17
+ this.cog = cogSrv.merge('themeI18n', {
18
+ interpolation: ['{{', '}}']
19
+ });
15
20
  }
16
21
  get change() {
17
22
  return this._change$.asObservable().pipe(filter(w => w != null));
@@ -30,7 +35,8 @@ export class AlainI18nBaseService {
30
35
  if (!content)
31
36
  return path;
32
37
  if (params) {
33
- Object.keys(params).forEach(key => (content = content.replace(new RegExp(`{{${key}}}`, 'g'), `${params[key]}`)));
38
+ const interpolation = this.cog.interpolation;
39
+ Object.keys(params).forEach(key => (content = content.replace(new RegExp(`${interpolation[0]}\s?${key}\s?${interpolation[1]}`, 'g'), `${params[key]}`)));
34
40
  }
35
41
  return content;
36
42
  }
@@ -38,6 +44,9 @@ export class AlainI18nBaseService {
38
44
  AlainI18nBaseService.decorators = [
39
45
  { type: Injectable }
40
46
  ];
47
+ AlainI18nBaseService.ctorParameters = () => [
48
+ { type: AlainConfigService }
49
+ ];
41
50
  export class AlainI18NServiceFake extends AlainI18nBaseService {
42
51
  use(lang, data) {
43
52
  this._data = data;
@@ -48,8 +57,8 @@ export class AlainI18NServiceFake extends AlainI18nBaseService {
48
57
  return [];
49
58
  }
50
59
  }
51
- AlainI18NServiceFake.ɵprov = i0.ɵɵdefineInjectable({ factory: function AlainI18NServiceFake_Factory() { return new AlainI18NServiceFake(); }, token: AlainI18NServiceFake, providedIn: "root" });
60
+ AlainI18NServiceFake.ɵprov = i0.ɵɵdefineInjectable({ factory: function AlainI18NServiceFake_Factory() { return new AlainI18NServiceFake(i0.ɵɵinject(i1.AlainConfigService)); }, token: AlainI18NServiceFake, providedIn: "root" });
52
61
  AlainI18NServiceFake.decorators = [
53
62
  { type: Injectable, args: [{ providedIn: 'root' },] }
54
63
  ];
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RoZW1lL3NyYy9zZXJ2aWNlcy9pMThuL2kxOG4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0QsT0FBTyxFQUFFLGVBQWUsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUNuRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBdUR4QyxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLGNBQWMsQ0FBbUIsZ0JBQWdCLEVBQUU7SUFDckYsVUFBVSxFQUFFLE1BQU07SUFDbEIsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksb0JBQW9CLEVBQUU7Q0FDMUMsQ0FBQyxDQUFDO0FBR0gsTUFBTSxPQUFnQixvQkFBb0I7SUFEMUM7UUFFWSxhQUFRLEdBQUcsSUFBSSxlQUFlLENBQWdCLElBQUksQ0FBQyxDQUFDO1FBQ3BELGlCQUFZLEdBQVcsRUFBRSxDQUFDO1FBQzFCLGlCQUFZLEdBQVcsRUFBRSxDQUFDO1FBQzFCLFVBQUssR0FBMkIsRUFBRSxDQUFDO0lBMkIvQyxDQUFDO0lBMUJDLElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUF1QixDQUFDO0lBQ3pGLENBQUM7SUFDRCxJQUFJLFdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDM0IsQ0FBQztJQUNELElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDO0lBQ0QsSUFBSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7SUFNRCxLQUFLLENBQUMsSUFBWSxFQUFFLE1BQWdDO1FBQ2xELElBQUksT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3JDLElBQUksQ0FBQyxPQUFPO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFFMUIsSUFBSSxNQUFNLEVBQUU7WUFDVixNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxNQUFNLENBQUMsS0FBSyxHQUFHLElBQUksRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ2xIO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQzs7O1lBL0JGLFVBQVU7O0FBbUNYLE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxvQkFBb0I7SUFDNUQsR0FBRyxDQUFDLElBQVksRUFBRSxJQUE0QjtRQUM1QyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUNsQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUN6QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRUQsUUFBUTtRQUNOLE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQzs7OztZQVZGLFVBQVUsU0FBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB0eXBlIHsgTnpTYWZlQW55IH0gZnJvbSAnbmctem9ycm8tYW50ZC9jb3JlL3R5cGVzJztcblxuaW1wb3J0IHsgX0h0dHBDbGllbnQgfSBmcm9tICcuLi9odHRwL2h0dHAuY2xpZW50JztcblxuZXhwb3J0IGludGVyZmFjZSBBbGFpbkkxOE5TZXJ2aWNlIHtcbiAgW2tleTogc3RyaW5nXTogTnpTYWZlQW55O1xuXG4gIC8qKlxuICAgKiBDYWxsIGB1c2VgIHRvIHRyaWdnZXIgY2hhbmdlIG5vdGlmaWNhdGlvblxuICAgKlxuICAgKiDosIPnlKggYHVzZWAg6Kem5Y+R5Y+Y5pu06YCa55+lXG4gICAqL1xuICByZWFkb25seSBjaGFuZ2U6IE9ic2VydmFibGU8c3RyaW5nPjtcblxuICAvKipcbiAgICogR2V0IHRoZSBkZWZhdWx0IGxhbmd1YWdlXG4gICAqXG4gICAqIOiOt+WPlum7mOiupOivreiogFxuICAgKi9cbiAgcmVhZG9ubHkgZGVmYXVsdExhbmc6IHN0cmluZztcblxuICAvKipcbiAgICogR2V0IGN1cnJlbnQgbGFuZ3VhZ2VcbiAgICpcbiAgICog6I635Y+W5b2T5YmN6K+t6KiAXG4gICAqL1xuICByZWFkb25seSBjdXJyZW50TGFuZzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDaGFuZ2UgbGFuZ3VhZ2VcbiAgICpcbiAgICog5Y+Y5pu06K+t6KiAXG4gICAqXG4gICAqIEBwYXJhbSBlbWl0IOaYr+WQpuinpuWPkSBgY2hhbmdlYO+8jOm7mOiupO+8mnRydWUgOyBTaG91bGQgYmUgcmVtb3ZlZCwgcGxlYXNlIHVzZSBgY2hhbmdlYCBldmVudCBpbnN0ZWFkLlxuICAgKi9cbiAgdXNlKGxhbmc6IHN0cmluZywgZGF0YT86IFJlY29yZDxzdHJpbmcsIHN0cmluZz4pOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBSZXR1cm4gdG8gdGhlIGN1cnJlbnQgbGFuZ3VhZ2UgbGlzdFxuICAgKlxuICAgKiDov5Tlm57lvZPliY3or63oqIDliJfooahcbiAgICovXG4gIGdldExhbmdzKCk6IE56U2FmZUFueVtdO1xuXG4gIC8qKlxuICAgKiBUcmFuc2xhdGUg57+76K+RXG4gICAqXG4gICAqIEBwYXJhbSBwYXJhbXMg5qih5p2/5omA6ZyA6KaB55qE5Y+C5pWw5a+56LGhXG4gICAqIEBwYXJhbSBpc1NhZmUg5piv5ZCm6L+U5Zue5a6J5YWo5a2X56ym77yM6Ieq5Yqo6LCD55SoIGBieXBhc3NTZWN1cml0eVRydXN0SHRtbGA7IFNob3VsZCBiZSByZW1vdmVkLCBJZiB5b3UgbmVlZCBTYWZlSHRtbCBzdXBwb3J0LCBwbGVhc2UgdXNlIGB8IGh0bWxgIHBpcGUgaW5zdGVhZC5cbiAgICovXG4gIGZhbnlpKHBhdGg6IHN0cmluZywgcGFyYW1zPzogdW5rbm93bik6IHN0cmluZztcbn1cblxuZXhwb3J0IGNvbnN0IEFMQUlOX0kxOE5fVE9LRU4gPSBuZXcgSW5qZWN0aW9uVG9rZW48QWxhaW5JMThOU2VydmljZT4oJ2FsYWluSTE4blRva2VuJywge1xuICBwcm92aWRlZEluOiAncm9vdCcsXG4gIGZhY3Rvcnk6ICgpID0+IG5ldyBBbGFpbkkxOE5TZXJ2aWNlRmFrZSgpXG59KTtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFsYWluSTE4bkJhc2VTZXJ2aWNlIGltcGxlbWVudHMgQWxhaW5JMThOU2VydmljZSB7XG4gIHByb3RlY3RlZCBfY2hhbmdlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nIHwgbnVsbD4obnVsbCk7XG4gIHByb3RlY3RlZCBfY3VycmVudExhbmc6IHN0cmluZyA9ICcnO1xuICBwcm90ZWN0ZWQgX2RlZmF1bHRMYW5nOiBzdHJpbmcgPSAnJztcbiAgcHJvdGVjdGVkIF9kYXRhOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG4gIGdldCBjaGFuZ2UoKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5fY2hhbmdlJC5hc09ic2VydmFibGUoKS5waXBlKGZpbHRlcih3ID0+IHcgIT0gbnVsbCkpIGFzIE9ic2VydmFibGU8c3RyaW5nPjtcbiAgfVxuICBnZXQgZGVmYXVsdExhbmcoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fZGVmYXVsdExhbmc7XG4gIH1cbiAgZ2V0IGN1cnJlbnRMYW5nKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2N1cnJlbnRMYW5nO1xuICB9XG4gIGdldCBkYXRhKCk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLl9kYXRhO1xuICB9XG5cbiAgYWJzdHJhY3QgdXNlKGxhbmc6IHN0cmluZywgZGF0YT86IFJlY29yZDxzdHJpbmcsIHN0cmluZz4pOiB2b2lkO1xuXG4gIGFic3RyYWN0IGdldExhbmdzKCk6IE56U2FmZUFueVtdO1xuXG4gIGZhbnlpKHBhdGg6IHN0cmluZywgcGFyYW1zPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pOiBzdHJpbmcge1xuICAgIGxldCBjb250ZW50ID0gdGhpcy5fZGF0YVtwYXRoXSB8fCAnJztcbiAgICBpZiAoIWNvbnRlbnQpIHJldHVybiBwYXRoO1xuXG4gICAgaWYgKHBhcmFtcykge1xuICAgICAgT2JqZWN0LmtleXMocGFyYW1zKS5mb3JFYWNoKGtleSA9PiAoY29udGVudCA9IGNvbnRlbnQucmVwbGFjZShuZXcgUmVnRXhwKGB7eyR7a2V5fX19YCwgJ2cnKSwgYCR7cGFyYW1zW2tleV19YCkpKTtcbiAgICB9XG4gICAgcmV0dXJuIGNvbnRlbnQ7XG4gIH1cbn1cblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBBbGFpbkkxOE5TZXJ2aWNlRmFrZSBleHRlbmRzIEFsYWluSTE4bkJhc2VTZXJ2aWNlIHtcbiAgdXNlKGxhbmc6IHN0cmluZywgZGF0YTogUmVjb3JkPHN0cmluZywgc3RyaW5nPik6IHZvaWQge1xuICAgIHRoaXMuX2RhdGEgPSBkYXRhO1xuICAgIHRoaXMuX2N1cnJlbnRMYW5nID0gbGFuZztcbiAgICB0aGlzLl9jaGFuZ2UkLm5leHQobGFuZyk7XG4gIH1cblxuICBnZXRMYW5ncygpOiBOelNhZmVBbnlbXSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG59XG4iXX0=
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RoZW1lL3NyYy9zZXJ2aWNlcy9pMThuL2kxOG4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25FLE9BQU8sRUFBRSxlQUFlLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDbkQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXhDLE9BQU8sRUFBRSxrQkFBa0IsRUFBd0IsTUFBTSxvQkFBb0IsQ0FBQzs7O0FBc0Q5RSxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLGNBQWMsQ0FBbUIsZ0JBQWdCLEVBQUU7SUFDckYsVUFBVSxFQUFFLE1BQU07SUFDbEIsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksb0JBQW9CLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7Q0FDcEUsQ0FBQyxDQUFDO0FBR0gsTUFBTSxPQUFnQixvQkFBb0I7SUFtQnhDLFlBQVksTUFBMEI7UUFqQjVCLGFBQVEsR0FBRyxJQUFJLGVBQWUsQ0FBZ0IsSUFBSSxDQUFDLENBQUM7UUFDcEQsaUJBQVksR0FBVyxFQUFFLENBQUM7UUFDMUIsaUJBQVksR0FBVyxFQUFFLENBQUM7UUFDMUIsVUFBSyxHQUEyQixFQUFFLENBQUM7UUFlM0MsSUFBSSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRTtZQUNuQyxhQUFhLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDO1NBQzVCLENBQUUsQ0FBQztJQUNOLENBQUM7SUFqQkQsSUFBSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQXVCLENBQUM7SUFDekYsQ0FBQztJQUNELElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDO0lBQ0QsSUFBSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzNCLENBQUM7SUFDRCxJQUFJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQVlELEtBQUssQ0FBQyxJQUFZLEVBQUUsTUFBZ0M7UUFDbEQsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDckMsSUFBSSxDQUFDLE9BQU87WUFBRSxPQUFPLElBQUksQ0FBQztRQUUxQixJQUFJLE1BQU0sRUFBRTtZQUNWLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBZSxDQUFDO1lBQy9DLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUN6QixHQUFHLENBQUMsRUFBRSxDQUNKLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQ3hCLElBQUksTUFBTSxDQUFDLEdBQUcsYUFBYSxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUcsTUFBTSxhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFDckUsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FDakIsQ0FBQyxDQUNMLENBQUM7U0FDSDtRQUNELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7OztZQTdDRixVQUFVOzs7WUEzREYsa0JBQWtCOztBQTRHM0IsTUFBTSxPQUFPLG9CQUFxQixTQUFRLG9CQUFvQjtJQUM1RCxHQUFHLENBQUMsSUFBWSxFQUFFLElBQTRCO1FBQzVDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRCxRQUFRO1FBQ04sT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDOzs7O1lBVkYsVUFBVSxTQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSwgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBBbGFpbkNvbmZpZ1NlcnZpY2UsIEFsYWluVGhlbWVJMThuQ29uZmlnIH0gZnJvbSAnQGRlbG9uL3V0aWwvY29uZmlnJztcbmltcG9ydCB0eXBlIHsgTnpTYWZlQW55IH0gZnJvbSAnbmctem9ycm8tYW50ZC9jb3JlL3R5cGVzJztcblxuaW1wb3J0IHsgX0h0dHBDbGllbnQgfSBmcm9tICcuLi9odHRwL2h0dHAuY2xpZW50JztcblxuZXhwb3J0IGludGVyZmFjZSBBbGFpbkkxOE5TZXJ2aWNlIHtcbiAgW2tleTogc3RyaW5nXTogTnpTYWZlQW55O1xuXG4gIC8qKlxuICAgKiBDYWxsIGB1c2VgIHRvIHRyaWdnZXIgY2hhbmdlIG5vdGlmaWNhdGlvblxuICAgKlxuICAgKiDosIPnlKggYHVzZWAg6Kem5Y+R5Y+Y5pu06YCa55+lXG4gICAqL1xuICByZWFkb25seSBjaGFuZ2U6IE9ic2VydmFibGU8c3RyaW5nPjtcblxuICAvKipcbiAgICogR2V0IHRoZSBkZWZhdWx0IGxhbmd1YWdlXG4gICAqXG4gICAqIOiOt+WPlum7mOiupOivreiogFxuICAgKi9cbiAgcmVhZG9ubHkgZGVmYXVsdExhbmc6IHN0cmluZztcblxuICAvKipcbiAgICogR2V0IGN1cnJlbnQgbGFuZ3VhZ2VcbiAgICpcbiAgICog6I635Y+W5b2T5YmN6K+t6KiAXG4gICAqL1xuICByZWFkb25seSBjdXJyZW50TGFuZzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDaGFuZ2UgbGFuZ3VhZ2VcbiAgICpcbiAgICog5Y+Y5pu06K+t6KiAXG4gICAqXG4gICAqIEBwYXJhbSBlbWl0IOaYr+WQpuinpuWPkSBgY2hhbmdlYO+8jOm7mOiupO+8mnRydWUgOyBTaG91bGQgYmUgcmVtb3ZlZCwgcGxlYXNlIHVzZSBgY2hhbmdlYCBldmVudCBpbnN0ZWFkLlxuICAgKi9cbiAgdXNlKGxhbmc6IHN0cmluZywgZGF0YT86IFJlY29yZDxzdHJpbmcsIHN0cmluZz4pOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBSZXR1cm4gdG8gdGhlIGN1cnJlbnQgbGFuZ3VhZ2UgbGlzdFxuICAgKlxuICAgKiDov5Tlm57lvZPliY3or63oqIDliJfooahcbiAgICovXG4gIGdldExhbmdzKCk6IE56U2FmZUFueVtdO1xuXG4gIC8qKlxuICAgKiBUcmFuc2xhdGUg57+76K+RXG4gICAqXG4gICAqIEBwYXJhbSBwYXJhbXMg5qih5p2/5omA6ZyA6KaB55qE5Y+C5pWw5a+56LGhXG4gICAqIEBwYXJhbSBpc1NhZmUg5piv5ZCm6L+U5Zue5a6J5YWo5a2X56ym77yM6Ieq5Yqo6LCD55SoIGBieXBhc3NTZWN1cml0eVRydXN0SHRtbGA7IFNob3VsZCBiZSByZW1vdmVkLCBJZiB5b3UgbmVlZCBTYWZlSHRtbCBzdXBwb3J0LCBwbGVhc2UgdXNlIGB8IGh0bWxgIHBpcGUgaW5zdGVhZC5cbiAgICovXG4gIGZhbnlpKHBhdGg6IHN0cmluZywgcGFyYW1zPzogdW5rbm93bik6IHN0cmluZztcbn1cblxuZXhwb3J0IGNvbnN0IEFMQUlOX0kxOE5fVE9LRU4gPSBuZXcgSW5qZWN0aW9uVG9rZW48QWxhaW5JMThOU2VydmljZT4oJ2FsYWluSTE4blRva2VuJywge1xuICBwcm92aWRlZEluOiAncm9vdCcsXG4gIGZhY3Rvcnk6ICgpID0+IG5ldyBBbGFpbkkxOE5TZXJ2aWNlRmFrZShpbmplY3QoQWxhaW5Db25maWdTZXJ2aWNlKSlcbn0pO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWxhaW5JMThuQmFzZVNlcnZpY2UgaW1wbGVtZW50cyBBbGFpbkkxOE5TZXJ2aWNlIHtcbiAgcHJpdmF0ZSBjb2c6IEFsYWluVGhlbWVJMThuQ29uZmlnO1xuICBwcm90ZWN0ZWQgX2NoYW5nZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZyB8IG51bGw+KG51bGwpO1xuICBwcm90ZWN0ZWQgX2N1cnJlbnRMYW5nOiBzdHJpbmcgPSAnJztcbiAgcHJvdGVjdGVkIF9kZWZhdWx0TGFuZzogc3RyaW5nID0gJyc7XG4gIHByb3RlY3RlZCBfZGF0YTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9O1xuICBnZXQgY2hhbmdlKCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMuX2NoYW5nZSQuYXNPYnNlcnZhYmxlKCkucGlwZShmaWx0ZXIodyA9PiB3ICE9IG51bGwpKSBhcyBPYnNlcnZhYmxlPHN0cmluZz47XG4gIH1cbiAgZ2V0IGRlZmF1bHRMYW5nKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2RlZmF1bHRMYW5nO1xuICB9XG4gIGdldCBjdXJyZW50TGFuZygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9jdXJyZW50TGFuZztcbiAgfVxuICBnZXQgZGF0YSgpOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5fZGF0YTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKGNvZ1NydjogQWxhaW5Db25maWdTZXJ2aWNlKSB7XG4gICAgdGhpcy5jb2cgPSBjb2dTcnYubWVyZ2UoJ3RoZW1lSTE4bicsIHtcbiAgICAgIGludGVycG9sYXRpb246IFsne3snLCAnfX0nXVxuICAgIH0pITtcbiAgfVxuXG4gIGFic3RyYWN0IHVzZShsYW5nOiBzdHJpbmcsIGRhdGE/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+KTogdm9pZDtcblxuICBhYnN0cmFjdCBnZXRMYW5ncygpOiBOelNhZmVBbnlbXTtcblxuICBmYW55aShwYXRoOiBzdHJpbmcsIHBhcmFtcz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+KTogc3RyaW5nIHtcbiAgICBsZXQgY29udGVudCA9IHRoaXMuX2RhdGFbcGF0aF0gfHwgJyc7XG4gICAgaWYgKCFjb250ZW50KSByZXR1cm4gcGF0aDtcblxuICAgIGlmIChwYXJhbXMpIHtcbiAgICAgIGNvbnN0IGludGVycG9sYXRpb24gPSB0aGlzLmNvZy5pbnRlcnBvbGF0aW9uISE7XG4gICAgICBPYmplY3Qua2V5cyhwYXJhbXMpLmZvckVhY2goXG4gICAgICAgIGtleSA9PlxuICAgICAgICAgIChjb250ZW50ID0gY29udGVudC5yZXBsYWNlKFxuICAgICAgICAgICAgbmV3IFJlZ0V4cChgJHtpbnRlcnBvbGF0aW9uWzBdfVxccz8ke2tleX1cXHM/JHtpbnRlcnBvbGF0aW9uWzFdfWAsICdnJyksXG4gICAgICAgICAgICBgJHtwYXJhbXNba2V5XX1gXG4gICAgICAgICAgKSlcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiBjb250ZW50O1xuICB9XG59XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgQWxhaW5JMThOU2VydmljZUZha2UgZXh0ZW5kcyBBbGFpbkkxOG5CYXNlU2VydmljZSB7XG4gIHVzZShsYW5nOiBzdHJpbmcsIGRhdGE6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4pOiB2b2lkIHtcbiAgICB0aGlzLl9kYXRhID0gZGF0YTtcbiAgICB0aGlzLl9jdXJyZW50TGFuZyA9IGxhbmc7XG4gICAgdGhpcy5fY2hhbmdlJC5uZXh0KGxhbmcpO1xuICB9XG5cbiAgZ2V0TGFuZ3MoKTogTnpTYWZlQW55W10ge1xuICAgIHJldHVybiBbXTtcbiAgfVxufVxuIl19
@@ -1,3 +1,3 @@
1
1
  import { Version } from '@angular/core';
2
- export const VERSION = new Version('12.1.1');
2
+ export const VERSION = new Version('12.2.3');
3
3
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RoZW1lL3NyYy92ZXJzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFeEMsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLElBQUksT0FBTyxDQUFDLG1CQUFtQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBWZXJzaW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gbmV3IFZlcnNpb24oJzAuMC4wLVBMQUNFSE9MREVSJyk7XG4iXX0=
package/fesm2015/theme.js CHANGED
@@ -1,13 +1,13 @@
1
1
  import * as i0 from '@angular/core';
2
- import { InjectionToken, Injectable, Optional, Inject, Injector, SkipSelf, NgModule, Pipe, Version } from '@angular/core';
2
+ import { InjectionToken, inject, Injectable, Optional, Inject, Injector, SkipSelf, NgModule, Pipe, Version } from '@angular/core';
3
3
  import { BehaviorSubject, Subject, Observable, of, throwError } from 'rxjs';
4
- import { filter, share, map, delay, tap, switchMap, finalize } from 'rxjs/operators';
4
+ import { filter, share, map, delay, tap, switchMap, finalize, catchError } from 'rxjs/operators';
5
5
  import * as i2 from '@delon/acl';
6
6
  import { ACLService } from '@delon/acl';
7
- import * as i1 from '@angular/cdk/platform';
8
- import { Platform } from '@angular/cdk/platform';
9
- import * as i1$1 from '@delon/util/config';
7
+ import * as i1 from '@delon/util/config';
10
8
  import { AlainConfigService } from '@delon/util/config';
9
+ import * as i1$1 from '@angular/cdk/platform';
10
+ import { Platform } from '@angular/cdk/platform';
11
11
  import * as i1$2 from '@angular/cdk/bidi';
12
12
  import { Directionality } from '@angular/cdk/bidi';
13
13
  import * as i6 from '@angular/common';
@@ -54,14 +54,17 @@ function preloaderFinished() {
54
54
 
55
55
  const ALAIN_I18N_TOKEN = new InjectionToken('alainI18nToken', {
56
56
  providedIn: 'root',
57
- factory: () => new AlainI18NServiceFake()
57
+ factory: () => new AlainI18NServiceFake(inject(AlainConfigService))
58
58
  });
59
59
  class AlainI18nBaseService {
60
- constructor() {
60
+ constructor(cogSrv) {
61
61
  this._change$ = new BehaviorSubject(null);
62
62
  this._currentLang = '';
63
63
  this._defaultLang = '';
64
64
  this._data = {};
65
+ this.cog = cogSrv.merge('themeI18n', {
66
+ interpolation: ['{{', '}}']
67
+ });
65
68
  }
66
69
  get change() {
67
70
  return this._change$.asObservable().pipe(filter(w => w != null));
@@ -80,7 +83,8 @@ class AlainI18nBaseService {
80
83
  if (!content)
81
84
  return path;
82
85
  if (params) {
83
- Object.keys(params).forEach(key => (content = content.replace(new RegExp(`{{${key}}}`, 'g'), `${params[key]}`)));
86
+ const interpolation = this.cog.interpolation;
87
+ Object.keys(params).forEach(key => (content = content.replace(new RegExp(`${interpolation[0]}\s?${key}\s?${interpolation[1]}`, 'g'), `${params[key]}`)));
84
88
  }
85
89
  return content;
86
90
  }
@@ -88,6 +92,9 @@ class AlainI18nBaseService {
88
92
  AlainI18nBaseService.decorators = [
89
93
  { type: Injectable }
90
94
  ];
95
+ AlainI18nBaseService.ctorParameters = () => [
96
+ { type: AlainConfigService }
97
+ ];
91
98
  class AlainI18NServiceFake extends AlainI18nBaseService {
92
99
  use(lang, data) {
93
100
  this._data = data;
@@ -98,7 +105,7 @@ class AlainI18NServiceFake extends AlainI18nBaseService {
98
105
  return [];
99
106
  }
100
107
  }
101
- AlainI18NServiceFake.ɵprov = i0.ɵɵdefineInjectable({ factory: function AlainI18NServiceFake_Factory() { return new AlainI18NServiceFake(); }, token: AlainI18NServiceFake, providedIn: "root" });
108
+ AlainI18NServiceFake.ɵprov = i0.ɵɵdefineInjectable({ factory: function AlainI18NServiceFake_Factory() { return new AlainI18NServiceFake(i0.ɵɵinject(i1.AlainConfigService)); }, token: AlainI18NServiceFake, providedIn: "root" });
102
109
  AlainI18NServiceFake.decorators = [
103
110
  { type: Injectable, args: [{ providedIn: 'root' },] }
104
111
  ];
@@ -415,7 +422,7 @@ class SettingsService {
415
422
  this.notify$.next({ type: 'user', value });
416
423
  }
417
424
  }
418
- SettingsService.ɵprov = i0.ɵɵdefineInjectable({ factory: function SettingsService_Factory() { return new SettingsService(i0.ɵɵinject(i1.Platform), i0.ɵɵinject(ALAIN_SETTING_KEYS)); }, token: SettingsService, providedIn: "root" });
425
+ SettingsService.ɵprov = i0.ɵɵdefineInjectable({ factory: function SettingsService_Factory() { return new SettingsService(i0.ɵɵinject(i1$1.Platform), i0.ɵɵinject(ALAIN_SETTING_KEYS)); }, token: SettingsService, providedIn: "root" });
419
426
  SettingsService.decorators = [
420
427
  { type: Injectable, args: [{ providedIn: 'root' },] }
421
428
  ];
@@ -460,7 +467,7 @@ class ResponsiveService {
460
467
  return clsMap;
461
468
  }
462
469
  }
463
- ResponsiveService.ɵprov = i0.ɵɵdefineInjectable({ factory: function ResponsiveService_Factory() { return new ResponsiveService(i0.ɵɵinject(i1$1.AlainConfigService)); }, token: ResponsiveService, providedIn: "root" });
470
+ ResponsiveService.ɵprov = i0.ɵɵdefineInjectable({ factory: function ResponsiveService_Factory() { return new ResponsiveService(i0.ɵɵinject(i1.AlainConfigService)); }, token: ResponsiveService, providedIn: "root" });
464
471
  ResponsiveService.decorators = [
465
472
  { type: Injectable, args: [{ providedIn: 'root' },] }
466
473
  ];
@@ -550,7 +557,7 @@ class RTLService {
550
557
  });
551
558
  }
552
559
  }
553
- RTLService.ɵprov = i0.ɵɵdefineInjectable({ factory: function RTLService_Factory() { return new RTLService(i0.ɵɵinject(i1$2.Directionality), i0.ɵɵinject(SettingsService), i0.ɵɵinject(i3.NzConfigService), i0.ɵɵinject(i1$1.AlainConfigService), i0.ɵɵinject(i1.Platform), i0.ɵɵinject(i6.DOCUMENT)); }, token: RTLService, providedIn: "root" });
560
+ RTLService.ɵprov = i0.ɵɵdefineInjectable({ factory: function RTLService_Factory() { return new RTLService(i0.ɵɵinject(i1$2.Directionality), i0.ɵɵinject(SettingsService), i0.ɵɵinject(i3.NzConfigService), i0.ɵɵinject(i1.AlainConfigService), i0.ɵɵinject(i1$1.Platform), i0.ɵɵinject(i6.DOCUMENT)); }, token: RTLService, providedIn: "root" });
554
561
  RTLService.decorators = [
555
562
  { type: Injectable, args: [{ providedIn: 'root' },] }
556
563
  ];
@@ -1988,7 +1995,7 @@ class _HttpClient {
1988
1995
  delay(0), tap(() => this.push()), switchMap(() => this.http.request(method, url, options)), finalize(() => this.pop()));
1989
1996
  }
1990
1997
  }
1991
- _HttpClient.ɵprov = i0.ɵɵdefineInjectable({ factory: function _HttpClient_Factory() { return new _HttpClient(i0.ɵɵinject(i1$6.HttpClient), i0.ɵɵinject(i1$1.AlainConfigService)); }, token: _HttpClient, providedIn: "root" });
1998
+ _HttpClient.ɵprov = i0.ɵɵdefineInjectable({ factory: function _HttpClient_Factory() { return new _HttpClient(i0.ɵɵinject(i1$6.HttpClient), i0.ɵɵinject(i1.AlainConfigService)); }, token: _HttpClient, providedIn: "root" });
1992
1999
  _HttpClient.decorators = [
1993
2000
  { type: Injectable, args: [{ providedIn: 'root' },] }
1994
2001
  ];
@@ -2360,11 +2367,32 @@ AlainThemeModule.ctorParameters = () => [
2360
2367
  { type: NzIconService }
2361
2368
  ];
2362
2369
 
2363
- const VERSION = new Version('12.1.1');
2370
+ /**
2371
+ * Optional pre-loading module, when it's necessary to load the resource at the first page load for some lazy routes, [example](https://github.com/ng-alain/ng-alain/blob/master/src/app/routes/routes-routing.module.ts).
2372
+ *
2373
+ * 可选预加载模块,当需要对某些懒路由在第一次页面加载时也一并加载该资源时,[示例](https://github.com/ng-alain/ng-alain/blob/master/src/app/routes/routes-routing.module.ts)。
2374
+ *
2375
+ * @example
2376
+ * {AT}NgModule({
2377
+ * providers: [PreloadOptionalModules],
2378
+ * imports: [
2379
+ * RouterModule.forRoot([
2380
+ * { path: '', loadChildren: null, data: { preload: true } }
2381
+ * ], { preloadingStrategy: PreloadOptionalModules})]
2382
+ * })
2383
+ */
2384
+ class PreloadOptionalModules {
2385
+ preload(route, fn) {
2386
+ var _a;
2387
+ return ((_a = route.data) === null || _a === void 0 ? void 0 : _a.preload) === true ? fn().pipe(catchError(() => of(null))) : of(null);
2388
+ }
2389
+ }
2390
+
2391
+ const VERSION = new Version('12.2.3');
2364
2392
 
2365
2393
  /**
2366
2394
  * Generated bundle index. Do not edit.
2367
2395
  */
2368
2396
 
2369
- export { ALAIN_I18N_TOKEN, ALAIN_SETTING_KEYS, AlainI18NServiceFake, AlainI18nBaseService, AlainThemeModule, BaseApi, BaseHeaders, BaseUrl, Body, DELETE, DELON_LOCALE, DELON_LOCALE_SERVICE_PROVIDER, DELON_LOCALE_SERVICE_PROVIDER_FACTORY, DatePipe, DelonLocaleModule, DelonLocaleService, DrawerHelper, FORM, GET, HEAD, HTMLPipe, HTML_DIR, Headers, JSONP, KeysPipe, LTR, MenuService, ModalHelper, OPTIONS, PATCH, POST, PUT, Path, Payload, Query, REP_MAX, RTL, RTLService, RTL_DELON_COMPONENTS, RTL_DIRECTION, RTL_NZ_COMPONENTS, ResponsiveService, SettingsService, TitleService, URLPipe, VERSION, YNPipe, _HttpClient, elGR as el_GR, enUS as en_US, esES as es_ES, frFR as fr_FR, hrHR as hr_HR, jaJP as ja_JP, koKR as ko_KR, plPL as pl_PL, preloaderFinished, slSI as sl_SI, trTR as tr_TR, zhCN as zh_CN, zhTW as zh_TW, I18nPipe as ɵa };
2397
+ export { ALAIN_I18N_TOKEN, ALAIN_SETTING_KEYS, AlainI18NServiceFake, AlainI18nBaseService, AlainThemeModule, BaseApi, BaseHeaders, BaseUrl, Body, DELETE, DELON_LOCALE, DELON_LOCALE_SERVICE_PROVIDER, DELON_LOCALE_SERVICE_PROVIDER_FACTORY, DatePipe, DelonLocaleModule, DelonLocaleService, DrawerHelper, FORM, GET, HEAD, HTMLPipe, HTML_DIR, Headers, JSONP, KeysPipe, LTR, MenuService, ModalHelper, OPTIONS, PATCH, POST, PUT, Path, Payload, PreloadOptionalModules, Query, REP_MAX, RTL, RTLService, RTL_DELON_COMPONENTS, RTL_DIRECTION, RTL_NZ_COMPONENTS, ResponsiveService, SettingsService, TitleService, URLPipe, VERSION, YNPipe, _HttpClient, elGR as el_GR, enUS as en_US, esES as es_ES, frFR as fr_FR, hrHR as hr_HR, jaJP as ja_JP, koKR as ko_KR, plPL as pl_PL, preloaderFinished, slSI as sl_SI, trTR as tr_TR, zhCN as zh_CN, zhTW as zh_TW, I18nPipe as ɵa };
2370
2398
  //# sourceMappingURL=theme.js.map