@delon/theme 12.4.2 → 13.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (219) hide show
  1. package/compact.css +1278 -750
  2. package/compact.min.css +1 -1
  3. package/dark.css +1325 -797
  4. package/dark.min.css +1 -1
  5. package/default.css +1286 -758
  6. package/default.min.css +1 -1
  7. package/{esm2015/layout-blank/layout-blank.js → esm2020/layout-blank/layout-blank.mjs} +0 -0
  8. package/{esm2015/layout-blank/public_api.js → esm2020/layout-blank/public_api.mjs} +0 -0
  9. package/{esm2015/layout-default/layout-default.js → esm2020/layout-default/layout-default.mjs} +0 -0
  10. package/esm2020/layout-default/layout-header-item-trigger.directive.mjs +16 -0
  11. package/esm2020/layout-default/layout-header-item.component.mjs +33 -0
  12. package/esm2020/layout-default/layout-header.component.mjs +123 -0
  13. package/esm2020/layout-default/layout-nav.component.mjs +307 -0
  14. package/esm2020/layout-default/layout.component.mjs +132 -0
  15. package/esm2020/layout-default/layout.module.mjs +69 -0
  16. package/{esm2015/layout-default/public_api.js → esm2020/layout-default/public_api.mjs} +0 -0
  17. package/{esm2015/layout-default/types.js → esm2020/layout-default/types.mjs} +0 -0
  18. package/esm2020/public_api.mjs +25 -0
  19. package/{esm2015/setting-drawer/public_api.js → esm2020/setting-drawer/public_api.mjs} +0 -0
  20. package/esm2020/setting-drawer/setting-drawer-item.component.mjs +35 -0
  21. package/esm2020/setting-drawer/setting-drawer.component.mjs +192 -0
  22. package/{esm2015/setting-drawer/setting-drawer.js → esm2020/setting-drawer/setting-drawer.mjs} +0 -0
  23. package/esm2020/setting-drawer/setting-drawer.module.mjs +68 -0
  24. package/{esm2015/setting-drawer/setting-drawer.types.js → esm2020/setting-drawer/setting-drawer.types.mjs} +0 -0
  25. package/{esm2015/src/config.js → esm2020/src/config.mjs} +0 -0
  26. package/{esm2015/src/locale/index.js → esm2020/src/locale/index.mjs} +0 -0
  27. package/{esm2015/src/locale/languages/el-GR.js → esm2020/src/locale/languages/el-GR.mjs} +0 -0
  28. package/{esm2015/src/locale/languages/en-US.js → esm2020/src/locale/languages/en-US.mjs} +0 -0
  29. package/{esm2015/src/locale/languages/es-ES.js → esm2020/src/locale/languages/es-ES.mjs} +0 -0
  30. package/{esm2015/src/locale/languages/fr-FR.js → esm2020/src/locale/languages/fr-FR.mjs} +0 -0
  31. package/{esm2015/src/locale/languages/hr-HR.js → esm2020/src/locale/languages/hr-HR.mjs} +0 -0
  32. package/{esm2015/src/locale/languages/it-IT.js → esm2020/src/locale/languages/it-IT.mjs} +0 -0
  33. package/{esm2015/src/locale/languages/ja-JP.js → esm2020/src/locale/languages/ja-JP.mjs} +0 -0
  34. package/{esm2015/src/locale/languages/ko-KR.js → esm2020/src/locale/languages/ko-KR.mjs} +0 -0
  35. package/{esm2015/src/locale/languages/pl-PL.js → esm2020/src/locale/languages/pl-PL.mjs} +0 -0
  36. package/{esm2015/src/locale/languages/sl-SI.js → esm2020/src/locale/languages/sl-SI.mjs} +0 -0
  37. package/{esm2015/src/locale/languages/tr-TR.js → esm2020/src/locale/languages/tr-TR.mjs} +0 -0
  38. package/{esm2015/src/locale/languages/zh-CN.js → esm2020/src/locale/languages/zh-CN.mjs} +0 -0
  39. package/{esm2015/src/locale/languages/zh-TW.js → esm2020/src/locale/languages/zh-TW.mjs} +0 -0
  40. package/esm2020/src/locale/locale.module.mjs +17 -0
  41. package/esm2020/src/locale/locale.service.mjs +45 -0
  42. package/{esm2015/src/locale/locale.tokens.js → esm2020/src/locale/locale.tokens.mjs} +0 -0
  43. package/{esm2015/src/locale/locale.types.js → esm2020/src/locale/locale.types.mjs} +0 -0
  44. package/{esm2015/src/locale/public_api.js → esm2020/src/locale/public_api.mjs} +0 -0
  45. package/esm2020/src/pipes/date/date.pipe.mjs +24 -0
  46. package/esm2020/src/pipes/keys/keys.pipe.mjs +21 -0
  47. package/esm2020/src/pipes/safe/html.pipe.mjs +18 -0
  48. package/esm2020/src/pipes/safe/url.pipe.mjs +18 -0
  49. package/esm2020/src/pipes/yn/yn.pipe.mjs +38 -0
  50. package/esm2020/src/router/optional-preloader.mjs +22 -0
  51. package/esm2020/src/services/drawer/drawer.helper.mjs +91 -0
  52. package/esm2020/src/services/http/http.client.mjs +154 -0
  53. package/esm2020/src/services/http/http.decorator.mjs +215 -0
  54. package/esm2020/src/services/i18n/i18n.mjs +97 -0
  55. package/esm2020/src/services/i18n/i18n.pipe.mjs +21 -0
  56. package/{esm2015/src/services/menu/interface.js → esm2020/src/services/menu/interface.mjs} +0 -0
  57. package/esm2020/src/services/menu/menu.service.mjs +252 -0
  58. package/esm2020/src/services/modal/modal.helper.mjs +106 -0
  59. package/{esm2015/src/services/preloader/preloader.js → esm2020/src/services/preloader/preloader.mjs} +0 -0
  60. package/esm2020/src/services/responsive/responsive.mjs +46 -0
  61. package/esm2020/src/services/rtl/rtl.service.mjs +101 -0
  62. package/esm2020/src/services/settings/settings.service.mjs +100 -0
  63. package/{esm2015/src/services/settings/types.js → esm2020/src/services/settings/types.mjs} +0 -0
  64. package/esm2020/src/services/title/title.service.mjs +124 -0
  65. package/esm2020/src/theme.module.mjs +76 -0
  66. package/{esm2015/src/version.js → esm2020/src/version.mjs} +1 -1
  67. package/{esm2015/theme-btn/public_api.js → esm2020/theme-btn/public_api.mjs} +0 -0
  68. package/esm2020/theme-btn/theme-btn.component.mjs +106 -0
  69. package/esm2020/theme-btn/theme-btn.mjs +5 -0
  70. package/esm2020/theme-btn/theme-btn.module.mjs +32 -0
  71. package/esm2020/theme.mjs +5 -0
  72. package/fesm2015/{layout-blank.js → layout-blank.mjs} +1 -1
  73. package/fesm2015/layout-blank.mjs.map +1 -0
  74. package/fesm2015/layout-default.mjs +654 -0
  75. package/fesm2015/layout-default.mjs.map +1 -0
  76. package/fesm2015/setting-drawer.mjs +487 -0
  77. package/fesm2015/setting-drawer.mjs.map +1 -0
  78. package/fesm2015/theme-btn.mjs +144 -0
  79. package/fesm2015/theme-btn.mjs.map +1 -0
  80. package/fesm2015/{theme.js → theme.mjs} +226 -188
  81. package/fesm2015/theme.mjs.map +1 -0
  82. package/fesm2020/layout-blank.mjs +7 -0
  83. package/fesm2020/layout-blank.mjs.map +1 -0
  84. package/fesm2020/layout-default.mjs +654 -0
  85. package/fesm2020/layout-default.mjs.map +1 -0
  86. package/fesm2020/setting-drawer.mjs +482 -0
  87. package/fesm2020/setting-drawer.mjs.map +1 -0
  88. package/fesm2020/theme-btn.mjs +141 -0
  89. package/fesm2020/theme-btn.mjs.map +1 -0
  90. package/fesm2020/theme.mjs +2575 -0
  91. package/fesm2020/theme.mjs.map +1 -0
  92. package/layout-blank/layout-blank.d.ts +1 -0
  93. package/layout-blank/package.json +5 -6
  94. package/layout-default/layout-default.d.ts +1 -0
  95. package/layout-default/layout-header-item-trigger.directive.d.ts +3 -0
  96. package/layout-default/layout-header-item.component.d.ts +3 -0
  97. package/layout-default/layout-header.component.d.ts +8 -5
  98. package/layout-default/layout-nav.component.d.ts +4 -1
  99. package/layout-default/layout.component.d.ts +6 -3
  100. package/layout-default/layout.module.d.ts +17 -0
  101. package/layout-default/package.json +5 -6
  102. package/layout-default/style/_aside.less +7 -10
  103. package/layout-default/style/_fixed.less +2 -0
  104. package/layout-default/style/_header.less +21 -0
  105. package/layout-default/style/_layout.less +7 -0
  106. package/layout-default/style/_progress-bar.less +6 -0
  107. package/layout-default/style/fix/_full-content.less +4 -0
  108. package/layout-default/style/widgets/_app-icons.less +3 -0
  109. package/layout-default/style/widgets/_user.less +5 -0
  110. package/package.json +55 -11
  111. package/public_api.d.ts +1 -0
  112. package/setting-drawer/package.json +5 -6
  113. package/setting-drawer/setting-drawer-item.component.d.ts +3 -0
  114. package/setting-drawer/setting-drawer.component.d.ts +3 -0
  115. package/setting-drawer/setting-drawer.d.ts +1 -0
  116. package/setting-drawer/setting-drawer.module.d.ts +18 -0
  117. package/setting-drawer/style/index.less +9 -0
  118. package/setting-drawer/style/rtl.less +1 -0
  119. package/src/locale/locale.module.d.ts +4 -0
  120. package/src/locale/locale.service.d.ts +3 -0
  121. package/src/pipes/date/date.pipe.d.ts +3 -0
  122. package/src/pipes/keys/keys.pipe.d.ts +3 -0
  123. package/src/pipes/safe/html.pipe.d.ts +3 -0
  124. package/src/pipes/safe/url.pipe.d.ts +3 -0
  125. package/src/pipes/yn/style/index.less +3 -0
  126. package/src/pipes/yn/yn.pipe.d.ts +3 -0
  127. package/src/services/drawer/drawer.helper.d.ts +3 -0
  128. package/src/services/http/http.client.d.ts +3 -0
  129. package/src/services/http/http.decorator.d.ts +3 -0
  130. package/src/services/i18n/i18n.d.ts +5 -0
  131. package/src/services/i18n/i18n.pipe.d.ts +3 -0
  132. package/src/services/menu/menu.service.d.ts +5 -0
  133. package/src/services/modal/modal.helper.d.ts +3 -0
  134. package/src/services/responsive/responsive.d.ts +3 -0
  135. package/src/services/rtl/rtl.service.d.ts +3 -0
  136. package/src/services/settings/settings.service.d.ts +9 -0
  137. package/src/services/title/title.service.d.ts +3 -0
  138. package/src/theme.module.d.ts +15 -0
  139. package/system/_preloader.less +10 -0
  140. package/system/_type.less +5 -0
  141. package/system/antd/_modal.less +5 -0
  142. package/system/antd/_table.less +7 -0
  143. package/system/index.less +3 -3
  144. package/system/mixins/_freak.less +2 -2
  145. package/system/mixins/_text-truncate.less +2 -0
  146. package/system/ng/_form.less +1 -0
  147. package/system/theme-default.less +3 -1
  148. package/system/utils/_display.less +9 -0
  149. package/system/utils/_other.less +2 -0
  150. package/system/utils/_scrollbar.less +3 -0
  151. package/system/widgets/_abs.less +3 -0
  152. package/system/widgets/_half-float.less +2 -0
  153. package/system/widgets/_masonry-grid.less +2 -0
  154. package/theme-btn/package.json +6 -7
  155. package/theme-btn/style/index.less +1 -0
  156. package/theme-btn/theme-btn.component.d.ts +3 -0
  157. package/theme-btn/{layout-theme-btn.d.ts → theme-btn.d.ts} +1 -0
  158. package/theme-btn/theme-btn.module.d.ts +8 -0
  159. package/theme-compact.less +1 -1
  160. package/theme-dark.less +1 -1
  161. package/theme-default.less +1 -1
  162. package/theme.d.ts +1 -1
  163. package/bundles/layout-blank.umd.js +0 -19
  164. package/bundles/layout-blank.umd.js.map +0 -1
  165. package/bundles/layout-default.umd.js +0 -876
  166. package/bundles/layout-default.umd.js.map +0 -1
  167. package/bundles/layout-theme-btn.umd.js +0 -141
  168. package/bundles/layout-theme-btn.umd.js.map +0 -1
  169. package/bundles/setting-drawer.umd.js +0 -789
  170. package/bundles/setting-drawer.umd.js.map +0 -1
  171. package/bundles/theme.umd.js +0 -3075
  172. package/bundles/theme.umd.js.map +0 -1
  173. package/esm2015/layout-default/layout-header-item-trigger.directive.js +0 -12
  174. package/esm2015/layout-default/layout-header-item.component.js +0 -23
  175. package/esm2015/layout-default/layout-header.component.js +0 -94
  176. package/esm2015/layout-default/layout-nav.component.js +0 -306
  177. package/esm2015/layout-default/layout.component.js +0 -102
  178. package/esm2015/layout-default/layout.module.js +0 -40
  179. package/esm2015/public_api.js +0 -24
  180. package/esm2015/setting-drawer/setting-drawer-item.component.js +0 -30
  181. package/esm2015/setting-drawer/setting-drawer.component.js +0 -185
  182. package/esm2015/setting-drawer/setting-drawer.module.js +0 -39
  183. package/esm2015/src/locale/locale.module.js +0 -14
  184. package/esm2015/src/locale/locale.service.js +0 -42
  185. package/esm2015/src/pipes/date/date.pipe.js +0 -23
  186. package/esm2015/src/pipes/keys/keys.pipe.js +0 -17
  187. package/esm2015/src/pipes/safe/html.pipe.js +0 -17
  188. package/esm2015/src/pipes/safe/url.pipe.js +0 -17
  189. package/esm2015/src/pipes/yn/yn.pipe.js +0 -37
  190. package/esm2015/src/router/optional-preloader.js +0 -23
  191. package/esm2015/src/services/drawer/drawer.helper.js +0 -90
  192. package/esm2015/src/services/http/http.client.js +0 -138
  193. package/esm2015/src/services/http/http.decorator.js +0 -207
  194. package/esm2015/src/services/i18n/i18n.js +0 -96
  195. package/esm2015/src/services/i18n/i18n.pipe.js +0 -17
  196. package/esm2015/src/services/menu/menu.service.js +0 -252
  197. package/esm2015/src/services/modal/modal.helper.js +0 -105
  198. package/esm2015/src/services/responsive/responsive.js +0 -48
  199. package/esm2015/src/services/rtl/rtl.service.js +0 -110
  200. package/esm2015/src/services/settings/settings.service.js +0 -82
  201. package/esm2015/src/services/title/title.service.js +0 -125
  202. package/esm2015/src/theme.module.js +0 -67
  203. package/esm2015/theme-btn/layout-theme-btn.js +0 -5
  204. package/esm2015/theme-btn/theme-btn.component.js +0 -103
  205. package/esm2015/theme-btn/theme-btn.module.js +0 -22
  206. package/esm2015/theme.js +0 -6
  207. package/fesm2015/layout-blank.js.map +0 -1
  208. package/fesm2015/layout-default.js +0 -561
  209. package/fesm2015/layout-default.js.map +0 -1
  210. package/fesm2015/layout-theme-btn.js +0 -129
  211. package/fesm2015/layout-theme-btn.js.map +0 -1
  212. package/fesm2015/setting-drawer.js +0 -448
  213. package/fesm2015/setting-drawer.js.map +0 -1
  214. package/fesm2015/theme.js.map +0 -1
  215. package/layout-blank/layout-blank.metadata.json +0 -1
  216. package/layout-default/layout-default.metadata.json +0 -1
  217. package/setting-drawer/setting-drawer.metadata.json +0 -1
  218. package/theme-btn/layout-theme-btn.metadata.json +0 -1
  219. package/theme.metadata.json +0 -1
@@ -0,0 +1,132 @@
1
+ import { DOCUMENT } from '@angular/common';
2
+ import { Component, ContentChildren, Inject, Input } from '@angular/core';
3
+ import { NavigationCancel, NavigationEnd, NavigationError, RouteConfigLoadEnd, RouteConfigLoadStart } from '@angular/router';
4
+ import { Subject } from 'rxjs';
5
+ import { takeUntil } from 'rxjs/operators';
6
+ import { updateHostClass } from '@delon/util/browser';
7
+ import { LayoutDefaultHeaderItemComponent } from './layout-header-item.component';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "@angular/router";
10
+ import * as i2 from "ng-zorro-antd/message";
11
+ import * as i3 from "@delon/theme";
12
+ import * as i4 from "./layout-header.component";
13
+ import * as i5 from "./layout-nav.component";
14
+ import * as i6 from "@angular/common";
15
+ export class LayoutDefaultComponent {
16
+ constructor(router, msgSrv, settings, el, renderer, doc) {
17
+ this.msgSrv = msgSrv;
18
+ this.settings = settings;
19
+ this.el = el;
20
+ this.renderer = renderer;
21
+ this.doc = doc;
22
+ this.asideUser = null;
23
+ this.nav = null;
24
+ this.content = null;
25
+ this.destroy$ = new Subject();
26
+ this.isFetching = false;
27
+ router.events.pipe(takeUntil(this.destroy$)).subscribe(ev => this.processEv(ev));
28
+ }
29
+ processEv(ev) {
30
+ if (!this.isFetching && ev instanceof RouteConfigLoadStart) {
31
+ this.isFetching = true;
32
+ }
33
+ if (ev instanceof NavigationError || ev instanceof NavigationCancel) {
34
+ this.isFetching = false;
35
+ const err = this.customError === null ? null : this.customError ?? `Could not load ${ev.url} route`;
36
+ if (err && ev instanceof NavigationError) {
37
+ this.msgSrv.error(err, { nzDuration: 1000 * 3 });
38
+ }
39
+ return;
40
+ }
41
+ if (!(ev instanceof NavigationEnd || ev instanceof RouteConfigLoadEnd)) {
42
+ return;
43
+ }
44
+ if (this.isFetching) {
45
+ setTimeout(() => {
46
+ this.isFetching = false;
47
+ }, 100);
48
+ }
49
+ }
50
+ setClass() {
51
+ const { el, doc, renderer, settings } = this;
52
+ const layout = settings.layout;
53
+ updateHostClass(el.nativeElement, renderer, {
54
+ ['alain-default']: true,
55
+ [`alain-default__fixed`]: layout.fixed,
56
+ [`alain-default__collapsed`]: layout.collapsed,
57
+ [`alain-default__hide-aside`]: this.options.hideAside
58
+ });
59
+ doc.body.classList[layout.colorWeak ? 'add' : 'remove']('color-weak');
60
+ }
61
+ ngOnInit() {
62
+ this.options = {
63
+ logoExpanded: `./assets/logo-full.svg`,
64
+ logoCollapsed: `./assets/logo.svg`,
65
+ logoLink: `/`,
66
+ hideAside: false,
67
+ ...this.options
68
+ };
69
+ const { settings, destroy$ } = this;
70
+ settings.notify.pipe(takeUntil(destroy$)).subscribe(() => this.setClass());
71
+ this.setClass();
72
+ }
73
+ ngOnDestroy() {
74
+ this.destroy$.next();
75
+ this.destroy$.complete();
76
+ }
77
+ }
78
+ LayoutDefaultComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: LayoutDefaultComponent, deps: [{ token: i1.Router }, { token: i2.NzMessageService }, { token: i3.SettingsService }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Component });
79
+ LayoutDefaultComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.2", type: LayoutDefaultComponent, selector: "layout-default", inputs: { options: "options", asideUser: "asideUser", nav: "nav", content: "content", customError: "customError" }, queries: [{ propertyName: "headerItems", predicate: LayoutDefaultHeaderItemComponent }], exportAs: ["layoutDefault"], ngImport: i0, template: `
80
+ <div class="alain-default__progress-bar" *ngIf="isFetching"></div>
81
+ <layout-default-header [options]="options" [items]="headerItems"></layout-default-header>
82
+ <div *ngIf="!options.hideAside" class="alain-default__aside">
83
+ <div class="alain-default__aside-inner">
84
+ <ng-container *ngTemplateOutlet="asideUser"></ng-container>
85
+ <ng-container *ngTemplateOutlet="nav"></ng-container>
86
+ <layout-default-nav *ngIf="!nav" class="d-block py-lg"></layout-default-nav>
87
+ </div>
88
+ </div>
89
+ <section class="alain-default__content">
90
+ <ng-container *ngTemplateOutlet="content"></ng-container>
91
+ <ng-content></ng-content>
92
+ </section>
93
+ `, isInline: true, components: [{ type: i4.LayoutDefaultHeaderComponent, selector: "layout-default-header", inputs: ["items", "options"] }, { type: i5.LayoutDefaultNavComponent, selector: "layout-default-nav", inputs: ["disabledAcl", "autoCloseUnderPad", "recursivePath", "openStrictly", "maxLevelIcon"], outputs: ["select"] }], directives: [{ type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }] });
94
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: LayoutDefaultComponent, decorators: [{
95
+ type: Component,
96
+ args: [{
97
+ selector: 'layout-default',
98
+ exportAs: 'layoutDefault',
99
+ template: `
100
+ <div class="alain-default__progress-bar" *ngIf="isFetching"></div>
101
+ <layout-default-header [options]="options" [items]="headerItems"></layout-default-header>
102
+ <div *ngIf="!options.hideAside" class="alain-default__aside">
103
+ <div class="alain-default__aside-inner">
104
+ <ng-container *ngTemplateOutlet="asideUser"></ng-container>
105
+ <ng-container *ngTemplateOutlet="nav"></ng-container>
106
+ <layout-default-nav *ngIf="!nav" class="d-block py-lg"></layout-default-nav>
107
+ </div>
108
+ </div>
109
+ <section class="alain-default__content">
110
+ <ng-container *ngTemplateOutlet="content"></ng-container>
111
+ <ng-content></ng-content>
112
+ </section>
113
+ `
114
+ }]
115
+ }], ctorParameters: function () { return [{ type: i1.Router }, { type: i2.NzMessageService }, { type: i3.SettingsService }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: undefined, decorators: [{
116
+ type: Inject,
117
+ args: [DOCUMENT]
118
+ }] }]; }, propDecorators: { headerItems: [{
119
+ type: ContentChildren,
120
+ args: [LayoutDefaultHeaderItemComponent, { descendants: false }]
121
+ }], options: [{
122
+ type: Input
123
+ }], asideUser: [{
124
+ type: Input
125
+ }], nav: [{
126
+ type: Input
127
+ }], content: [{
128
+ type: Input
129
+ }], customError: [{
130
+ type: Input
131
+ }] } });
132
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RoZW1lL2xheW91dC1kZWZhdWx0L2xheW91dC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFDTCxTQUFTLEVBQ1QsZUFBZSxFQUVmLE1BQU0sRUFDTixLQUFLLEVBTU4sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLGdCQUFnQixFQUNoQixhQUFhLEVBQ2IsZUFBZSxFQUNmLGtCQUFrQixFQUNsQixvQkFBb0IsRUFHckIsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUczQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFJdEQsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7Ozs7Ozs7O0FBc0JsRixNQUFNLE9BQU8sc0JBQXNCO0lBYWpDLFlBQ0UsTUFBYyxFQUNOLE1BQXdCLEVBQ3hCLFFBQXlCLEVBQ3pCLEVBQWMsRUFDZCxRQUFtQixFQUNELEdBQWM7UUFKaEMsV0FBTSxHQUFOLE1BQU0sQ0FBa0I7UUFDeEIsYUFBUSxHQUFSLFFBQVEsQ0FBaUI7UUFDekIsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQUNkLGFBQVEsR0FBUixRQUFRLENBQVc7UUFDRCxRQUFHLEdBQUgsR0FBRyxDQUFXO1FBZGpDLGNBQVMsR0FBNkIsSUFBSSxDQUFDO1FBQzNDLFFBQUcsR0FBNkIsSUFBSSxDQUFDO1FBQ3JDLFlBQU8sR0FBNkIsSUFBSSxDQUFDO1FBRzFDLGFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBQ3ZDLGVBQVUsR0FB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LFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMzQixDQUFDOzttSEEzRVUsc0JBQXNCLDBKQW1CdkIsUUFBUTt1R0FuQlAsc0JBQXNCLHNNQUNoQixnQ0FBZ0MsMERBakJ2Qzs7Ozs7Ozs7Ozs7Ozs7R0FjVDsyRkFFVSxzQkFBc0I7a0JBbkJsQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLFFBQVEsRUFBRSxlQUFlO29CQUN6QixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7O0dBY1Q7aUJBQ0Y7OzBCQW9CSSxNQUFNOzJCQUFDLFFBQVE7NENBakJsQixXQUFXO3NCQURWLGVBQWU7dUJBQUMsZ0NBQWdDLEVBQUUsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFO2dCQUdoRSxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxHQUFHO3NCQUFYLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgRWxlbWVudFJlZixcbiAgSW5qZWN0LFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIFF1ZXJ5TGlzdCxcbiAgUmVuZGVyZXIyLFxuICBUZW1wbGF0ZVJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIE5hdmlnYXRpb25DYW5jZWwsXG4gIE5hdmlnYXRpb25FbmQsXG4gIE5hdmlnYXRpb25FcnJvcixcbiAgUm91dGVDb25maWdMb2FkRW5kLFxuICBSb3V0ZUNvbmZpZ0xvYWRTdGFydCxcbiAgUm91dGVyLFxuICBFdmVudFxufSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBTZXR0aW5nc1NlcnZpY2UgfSBmcm9tICdAZGVsb24vdGhlbWUnO1xuaW1wb3J0IHsgdXBkYXRlSG9zdENsYXNzIH0gZnJvbSAnQGRlbG9uL3V0aWwvYnJvd3Nlcic7XG5pbXBvcnQgdHlwZSB7IE56U2FmZUFueSB9IGZyb20gJ25nLXpvcnJvLWFudGQvY29yZS90eXBlcyc7XG5pbXBvcnQgeyBOek1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAnbmctem9ycm8tYW50ZC9tZXNzYWdlJztcblxuaW1wb3J0IHsgTGF5b3V0RGVmYXVsdEhlYWRlckl0ZW1Db21wb25lbnQgfSBmcm9tICcuL2xheW91dC1oZWFkZXItaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTGF5b3V0RGVmYXVsdE9wdGlvbnMgfSBmcm9tICcuL3R5cGVzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGF5b3V0LWRlZmF1bHQnLFxuICBleHBvcnRBczogJ2xheW91dERlZmF1bHQnLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJhbGFpbi1kZWZhdWx0X19wcm9ncmVzcy1iYXJcIiAqbmdJZj1cImlzRmV0Y2hpbmdcIj48L2Rpdj5cbiAgICA8bGF5b3V0LWRlZmF1bHQtaGVhZGVyIFtvcHRpb25zXT1cIm9wdGlvbnNcIiBbaXRlbXNdPVwiaGVhZGVySXRlbXNcIj48L2xheW91dC1kZWZhdWx0LWhlYWRlcj5cbiAgICA8ZGl2ICpuZ0lmPVwiIW9wdGlvbnMuaGlkZUFzaWRlXCIgY2xhc3M9XCJhbGFpbi1kZWZhdWx0X19hc2lkZVwiPlxuICAgICAgPGRpdiBjbGFzcz1cImFsYWluLWRlZmF1bHRfX2FzaWRlLWlubmVyXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJhc2lkZVVzZXJcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIm5hdlwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8bGF5b3V0LWRlZmF1bHQtbmF2ICpuZ0lmPVwiIW5hdlwiIGNsYXNzPVwiZC1ibG9jayBweS1sZ1wiPjwvbGF5b3V0LWRlZmF1bHQtbmF2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPHNlY3Rpb24gY2xhc3M9XCJhbGFpbi1kZWZhdWx0X19jb250ZW50XCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29udGVudFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIDwvc2VjdGlvbj5cbiAgYFxufSlcbmV4cG9ydCBjbGFzcyBMYXlvdXREZWZhdWx0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBAQ29udGVudENoaWxkcmVuKExheW91dERlZmF1bHRIZWFkZXJJdGVtQ29tcG9uZW50LCB7IGRlc2NlbmRhbnRzOiBmYWxzZSB9KVxuICBoZWFkZXJJdGVtcyE6IFF1ZXJ5TGlzdDxMYXlvdXREZWZhdWx0SGVhZGVySXRlbUNvbXBvbmVudD47XG5cbiAgQElucHV0KCkgb3B0aW9ucyE6IExheW91dERlZmF1bHRPcHRpb25zO1xuICBASW5wdXQoKSBhc2lkZVVzZXI6IFRlbXBsYXRlUmVmPHZvaWQ+IHwgbnVsbCA9IG51bGw7XG4gIEBJbnB1dCgpIG5hdjogVGVtcGxhdGVSZWY8dm9pZD4gfCBudWxsID0gbnVsbDtcbiAgQElucHV0KCkgY29udGVudDogVGVtcGxhdGVSZWY8dm9pZD4gfCBudWxsID0gbnVsbDtcbiAgQElucHV0KCkgY3VzdG9tRXJyb3I/OiBzdHJpbmcgfCBudWxsO1xuXG4gIHByaXZhdGUgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBpc0ZldGNoaW5nID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSBtc2dTcnY6IE56TWVzc2FnZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzZXR0aW5nczogU2V0dGluZ3NTZXJ2aWNlLFxuICAgIHByaXZhdGUgZWw6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgZG9jOiBOelNhZmVBbnlcbiAgKSB7XG4gICAgcm91dGVyLmV2ZW50cy5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKGV2ID0+IHRoaXMucHJvY2Vzc0V2KGV2KSk7XG4gIH1cblxuICBwcm9jZXNzRXYoZXY6IEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmlzRmV0Y2hpbmcgJiYgZXYgaW5zdGFuY2VvZiBSb3V0ZUNvbmZpZ0xvYWRTdGFydCkge1xuICAgICAgdGhpcy5pc0ZldGNoaW5nID0gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKGV2IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVycm9yIHx8IGV2IGluc3RhbmNlb2YgTmF2aWdhdGlvbkNhbmNlbCkge1xuICAgICAgdGhpcy5pc0ZldGNoaW5nID0gZmFsc2U7XG4gICAgICBjb25zdCBlcnIgPSB0aGlzLmN1c3RvbUVycm9yID09PSBudWxsID8gbnVsbCA6IHRoaXMuY3VzdG9tRXJyb3IgPz8gYENvdWxkIG5vdCBsb2FkICR7ZXYudXJsfSByb3V0ZWA7XG4gICAgICBpZiAoZXJyICYmIGV2IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVycm9yKSB7XG4gICAgICAgIHRoaXMubXNnU3J2LmVycm9yKGVyciwgeyBuekR1cmF0aW9uOiAxMDAwICogMyB9KTtcbiAgICAgIH1cbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKCEoZXYgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kIHx8IGV2IGluc3RhbmNlb2YgUm91dGVDb25maWdMb2FkRW5kKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodGhpcy5pc0ZldGNoaW5nKSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5pc0ZldGNoaW5nID0gZmFsc2U7XG4gICAgICB9LCAxMDApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0Q2xhc3MoKTogdm9pZCB7XG4gICAgY29uc3QgeyBlbCwgZG9jLCByZW5kZXJlciwgc2V0dGluZ3MgfSA9IHRoaXM7XG4gICAgY29uc3QgbGF5b3V0ID0gc2V0dGluZ3MubGF5b3V0O1xuICAgIHVwZGF0ZUhvc3RDbGFzcyhlbC5uYXRpdmVFbGVtZW50LCByZW5kZXJlciwge1xuICAgICAgWydhbGFpbi1kZWZhdWx0J106IHRydWUsXG4gICAgICBbYGFsYWluLWRlZmF1bHRfX2ZpeGVkYF06IGxheW91dC5maXhlZCxcbiAgICAgIFtgYWxhaW4tZGVmYXVsdF9fY29sbGFwc2VkYF06IGxheW91dC5jb2xsYXBzZWQsXG4gICAgICBbYGFsYWluLWRlZmF1bHRfX2hpZGUtYXNpZGVgXTogdGhpcy5vcHRpb25zIS5oaWRlQXNpZGVcbiAgICB9KTtcblxuICAgIGRvYy5ib2R5LmNsYXNzTGlzdFtsYXlvdXQuY29sb3JXZWFrID8gJ2FkZCcgOiAncmVtb3ZlJ10oJ2NvbG9yLXdlYWsnKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMub3B0aW9ucyA9IHtcbiAgICAgIGxvZ29FeHBhbmRlZDogYC4vYXNzZXRzL2xvZ28tZnVsbC5zdmdgLFxuICAgICAgbG9nb0NvbGxhcHNlZDogYC4vYXNzZXRzL2xvZ28uc3ZnYCxcbiAgICAgIGxvZ29MaW5rOiBgL2AsXG4gICAgICBoaWRlQXNpZGU6IGZhbHNlLFxuICAgICAgLi4udGhpcy5vcHRpb25zXG4gICAgfTtcbiAgICBjb25zdCB7IHNldHRpbmdzLCBkZXN0cm95JCB9ID0gdGhpcztcbiAgICBzZXR0aW5ncy5ub3RpZnkucGlwZSh0YWtlVW50aWwoZGVzdHJveSQpKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5zZXRDbGFzcygpKTtcbiAgICB0aGlzLnNldENsYXNzKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,69 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { NgModule } from '@angular/core';
3
+ import { RouterModule } from '@angular/router';
4
+ import { NzAvatarModule } from 'ng-zorro-antd/avatar';
5
+ import { NzBadgeModule } from 'ng-zorro-antd/badge';
6
+ import { NzDropDownModule } from 'ng-zorro-antd/dropdown';
7
+ import { NzIconModule } from 'ng-zorro-antd/icon';
8
+ import { NzMessageModule } from 'ng-zorro-antd/message';
9
+ import { NzToolTipModule } from 'ng-zorro-antd/tooltip';
10
+ import { LayoutDefaultHeaderItemTriggerDirective } from './layout-header-item-trigger.directive';
11
+ import { LayoutDefaultHeaderItemComponent } from './layout-header-item.component';
12
+ import { LayoutDefaultHeaderComponent } from './layout-header.component';
13
+ import { LayoutDefaultNavComponent } from './layout-nav.component';
14
+ import { LayoutDefaultComponent } from './layout.component';
15
+ import * as i0 from "@angular/core";
16
+ const COMPONENTS = [
17
+ LayoutDefaultComponent,
18
+ LayoutDefaultNavComponent,
19
+ LayoutDefaultHeaderComponent,
20
+ LayoutDefaultHeaderItemComponent,
21
+ LayoutDefaultHeaderItemTriggerDirective
22
+ ];
23
+ export class LayoutDefaultModule {
24
+ }
25
+ LayoutDefaultModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: LayoutDefaultModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
26
+ LayoutDefaultModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: LayoutDefaultModule, declarations: [LayoutDefaultComponent,
27
+ LayoutDefaultNavComponent,
28
+ LayoutDefaultHeaderComponent,
29
+ LayoutDefaultHeaderItemComponent,
30
+ LayoutDefaultHeaderItemTriggerDirective], imports: [CommonModule,
31
+ RouterModule,
32
+ NzToolTipModule,
33
+ NzIconModule,
34
+ NzAvatarModule,
35
+ NzDropDownModule,
36
+ NzMessageModule,
37
+ NzBadgeModule], exports: [LayoutDefaultComponent,
38
+ LayoutDefaultNavComponent,
39
+ LayoutDefaultHeaderComponent,
40
+ LayoutDefaultHeaderItemComponent,
41
+ LayoutDefaultHeaderItemTriggerDirective] });
42
+ LayoutDefaultModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: LayoutDefaultModule, imports: [[
43
+ CommonModule,
44
+ RouterModule,
45
+ NzToolTipModule,
46
+ NzIconModule,
47
+ NzAvatarModule,
48
+ NzDropDownModule,
49
+ NzMessageModule,
50
+ NzBadgeModule
51
+ ]] });
52
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: LayoutDefaultModule, decorators: [{
53
+ type: NgModule,
54
+ args: [{
55
+ imports: [
56
+ CommonModule,
57
+ RouterModule,
58
+ NzToolTipModule,
59
+ NzIconModule,
60
+ NzAvatarModule,
61
+ NzDropDownModule,
62
+ NzMessageModule,
63
+ NzBadgeModule
64
+ ],
65
+ declarations: COMPONENTS,
66
+ exports: COMPONENTS
67
+ }]
68
+ }] });
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RoZW1lL2xheW91dC1kZWZhdWx0L2xheW91dC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFeEQsT0FBTyxFQUFFLHVDQUF1QyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDakcsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbEYsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDekUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDbkUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7O0FBRTVELE1BQU0sVUFBVSxHQUFHO0lBQ2pCLHNCQUFzQjtJQUN0Qix5QkFBeUI7SUFDekIsNEJBQTRCO0lBQzVCLGdDQUFnQztJQUNoQyx1Q0FBdUM7Q0FDeEMsQ0FBQztBQWdCRixNQUFNLE9BQU8sbUJBQW1COztnSEFBbkIsbUJBQW1CO2lIQUFuQixtQkFBbUIsaUJBckI5QixzQkFBc0I7UUFDdEIseUJBQXlCO1FBQ3pCLDRCQUE0QjtRQUM1QixnQ0FBZ0M7UUFDaEMsdUNBQXVDLGFBS3JDLFlBQVk7UUFDWixZQUFZO1FBQ1osZUFBZTtRQUNmLFlBQVk7UUFDWixjQUFjO1FBQ2QsZ0JBQWdCO1FBQ2hCLGVBQWU7UUFDZixhQUFhLGFBaEJmLHNCQUFzQjtRQUN0Qix5QkFBeUI7UUFDekIsNEJBQTRCO1FBQzVCLGdDQUFnQztRQUNoQyx1Q0FBdUM7aUhBaUI1QixtQkFBbUIsWUFickI7WUFDUCxZQUFZO1lBQ1osWUFBWTtZQUNaLGVBQWU7WUFDZixZQUFZO1lBQ1osY0FBYztZQUNkLGdCQUFnQjtZQUNoQixlQUFlO1lBQ2YsYUFBYTtTQUNkOzJGQUlVLG1CQUFtQjtrQkFkL0IsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixZQUFZO3dCQUNaLGVBQWU7d0JBQ2YsWUFBWTt3QkFDWixjQUFjO3dCQUNkLGdCQUFnQjt3QkFDaEIsZUFBZTt3QkFDZixhQUFhO3FCQUNkO29CQUNELFlBQVksRUFBRSxVQUFVO29CQUN4QixPQUFPLEVBQUUsVUFBVTtpQkFDcEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7IE56QXZhdGFyTW9kdWxlIH0gZnJvbSAnbmctem9ycm8tYW50ZC9hdmF0YXInO1xuaW1wb3J0IHsgTnpCYWRnZU1vZHVsZSB9IGZyb20gJ25nLXpvcnJvLWFudGQvYmFkZ2UnO1xuaW1wb3J0IHsgTnpEcm9wRG93bk1vZHVsZSB9IGZyb20gJ25nLXpvcnJvLWFudGQvZHJvcGRvd24nO1xuaW1wb3J0IHsgTnpJY29uTW9kdWxlIH0gZnJvbSAnbmctem9ycm8tYW50ZC9pY29uJztcbmltcG9ydCB7IE56TWVzc2FnZU1vZHVsZSB9IGZyb20gJ25nLXpvcnJvLWFudGQvbWVzc2FnZSc7XG5pbXBvcnQgeyBOelRvb2xUaXBNb2R1bGUgfSBmcm9tICduZy16b3Jyby1hbnRkL3Rvb2x0aXAnO1xuXG5pbXBvcnQgeyBMYXlvdXREZWZhdWx0SGVhZGVySXRlbVRyaWdnZXJEaXJlY3RpdmUgfSBmcm9tICcuL2xheW91dC1oZWFkZXItaXRlbS10cmlnZ2VyLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBMYXlvdXREZWZhdWx0SGVhZGVySXRlbUNvbXBvbmVudCB9IGZyb20gJy4vbGF5b3V0LWhlYWRlci1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMYXlvdXREZWZhdWx0SGVhZGVyQ29tcG9uZW50IH0gZnJvbSAnLi9sYXlvdXQtaGVhZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMYXlvdXREZWZhdWx0TmF2Q29tcG9uZW50IH0gZnJvbSAnLi9sYXlvdXQtbmF2LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMYXlvdXREZWZhdWx0Q29tcG9uZW50IH0gZnJvbSAnLi9sYXlvdXQuY29tcG9uZW50JztcblxuY29uc3QgQ09NUE9ORU5UUyA9IFtcbiAgTGF5b3V0RGVmYXVsdENvbXBvbmVudCxcbiAgTGF5b3V0RGVmYXVsdE5hdkNvbXBvbmVudCxcbiAgTGF5b3V0RGVmYXVsdEhlYWRlckNvbXBvbmVudCxcbiAgTGF5b3V0RGVmYXVsdEhlYWRlckl0ZW1Db21wb25lbnQsXG4gIExheW91dERlZmF1bHRIZWFkZXJJdGVtVHJpZ2dlckRpcmVjdGl2ZVxuXTtcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBSb3V0ZXJNb2R1bGUsXG4gICAgTnpUb29sVGlwTW9kdWxlLFxuICAgIE56SWNvbk1vZHVsZSxcbiAgICBOekF2YXRhck1vZHVsZSxcbiAgICBOekRyb3BEb3duTW9kdWxlLFxuICAgIE56TWVzc2FnZU1vZHVsZSxcbiAgICBOekJhZGdlTW9kdWxlXG4gIF0sXG4gIGRlY2xhcmF0aW9uczogQ09NUE9ORU5UUyxcbiAgZXhwb3J0czogQ09NUE9ORU5UU1xufSlcbmV4cG9ydCBjbGFzcyBMYXlvdXREZWZhdWx0TW9kdWxlIHt9XG4iXX0=
@@ -0,0 +1,25 @@
1
+ export { preloaderFinished } from './src/services/preloader/preloader';
2
+ export * from './src/services/menu/interface';
3
+ export * from './src/services/menu/menu.service';
4
+ export * from './src/services/settings/types';
5
+ export * from './src/services/settings/settings.service';
6
+ export * from './src/services/responsive/responsive';
7
+ export * from './src/services/rtl/rtl.service';
8
+ export * from './src/services/title/title.service';
9
+ export * from './src/services/i18n/i18n';
10
+ export * from './src/services/i18n/i18n.pipe';
11
+ export * from './src/locale/index';
12
+ export * from './src/services/modal/modal.helper';
13
+ export * from './src/services/drawer/drawer.helper';
14
+ export * from './src/services/http/http.client';
15
+ export * from './src/services/http/http.decorator';
16
+ export * from './src/pipes/date/date.pipe';
17
+ export * from './src/pipes/keys/keys.pipe';
18
+ export * from './src/pipes/yn/yn.pipe';
19
+ export * from './src/pipes/safe/html.pipe';
20
+ export * from './src/pipes/safe/url.pipe';
21
+ export * from './src/config';
22
+ export * from './src/theme.module';
23
+ export * from './src/router/optional-preloader';
24
+ export { VERSION } from './src/version';
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3RoZW1lL3B1YmxpY19hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDdkUsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGVBQWUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IHByZWxvYWRlckZpbmlzaGVkIH0gZnJvbSAnLi9zcmMvc2VydmljZXMvcHJlbG9hZGVyL3ByZWxvYWRlcic7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9zZXJ2aWNlcy9tZW51L2ludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9zZXJ2aWNlcy9tZW51L21lbnUuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9zZXJ2aWNlcy9zZXR0aW5ncy90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9zZXJ2aWNlcy9zZXR0aW5ncy9zZXR0aW5ncy5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL3NlcnZpY2VzL3Jlc3BvbnNpdmUvcmVzcG9uc2l2ZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9zZXJ2aWNlcy9ydGwvcnRsLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvc2VydmljZXMvdGl0bGUvdGl0bGUuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9zZXJ2aWNlcy9pMThuL2kxOG4nO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvc2VydmljZXMvaTE4bi9pMThuLnBpcGUnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvbG9jYWxlL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL3NlcnZpY2VzL21vZGFsL21vZGFsLmhlbHBlcic7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9zZXJ2aWNlcy9kcmF3ZXIvZHJhd2VyLmhlbHBlcic7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9zZXJ2aWNlcy9odHRwL2h0dHAuY2xpZW50JztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL3NlcnZpY2VzL2h0dHAvaHR0cC5kZWNvcmF0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvcGlwZXMvZGF0ZS9kYXRlLnBpcGUnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvcGlwZXMva2V5cy9rZXlzLnBpcGUnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvcGlwZXMveW4veW4ucGlwZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9waXBlcy9zYWZlL2h0bWwucGlwZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9waXBlcy9zYWZlL3VybC5waXBlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2NvbmZpZyc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy90aGVtZS5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvcm91dGVyL29wdGlvbmFsLXByZWxvYWRlcic7XG5leHBvcnQgeyBWRVJTSU9OIH0gZnJvbSAnLi9zcmMvdmVyc2lvbic7XG4iXX0=
@@ -0,0 +1,35 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "ng-zorro-antd/input-number";
4
+ import * as i2 from "ng-zorro-antd/switch";
5
+ import * as i3 from "@angular/common";
6
+ import * as i4 from "ng-zorro-antd/input";
7
+ import * as i5 from "@angular/forms";
8
+ import * as i6 from "ng-zorro-antd/drawer";
9
+ export class SettingDrawerItemComponent {
10
+ constructor() {
11
+ this.i = {};
12
+ this.pxVal = 0;
13
+ this.format = (value) => `${value} px`;
14
+ }
15
+ set data(val) {
16
+ this.i = val;
17
+ if (val.type === 'px') {
18
+ this.pxVal = +val.value.replace('px', '');
19
+ }
20
+ }
21
+ pxChange(val) {
22
+ this.i.value = `${val}px`;
23
+ }
24
+ }
25
+ SettingDrawerItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: SettingDrawerItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
26
+ SettingDrawerItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.2", type: SettingDrawerItemComponent, selector: "setting-drawer-item", inputs: { data: "data" }, host: { properties: { "class.setting-drawer__body-item": "true" } }, ngImport: i0, template: "<span>\n {{ i.label }}\n <span class=\"pl-sm text-grey\">{{ i.tip }}</span>\n</span>\n<div [ngSwitch]=\"i.type\">\n <ng-container *ngSwitchCase=\"'color'\">\n <input\n nz-input\n type=\"color\"\n style=\"min-width: 88px\"\n [(ngModel)]=\"i.value\"\n [ngModelOptions]=\"{ standalone: true }\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"'input'\">\n <input nz-input style=\"min-width: 88px\" [(ngModel)]=\"i.value\" [ngModelOptions]=\"{ standalone: true }\" />\n </ng-container>\n <ng-container *ngSwitchCase=\"'px'\">\n <nz-input-number\n [(ngModel)]=\"pxVal\"\n (ngModelChange)=\"pxChange($event)\"\n [nzMin]=\"i.min\"\n [nzMax]=\"i.max\"\n [nzStep]=\"i.step || 2\"\n [nzFormatter]=\"format\"\n ></nz-input-number>\n </ng-container>\n <ng-container *ngSwitchCase=\"'switch'\">\n <nz-switch nzSize=\"small\" [(ngModel)]=\"i.value\" [ngModelOptions]=\"{ standalone: true }\"></nz-switch>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <ng-template nzDrawerContent></ng-template>\n </ng-container>\n</div>\n", components: [{ type: i1.NzInputNumberComponent, selector: "nz-input-number", inputs: ["nzSize", "nzMin", "nzMax", "nzParser", "nzPrecision", "nzPrecisionMode", "nzPlaceHolder", "nzStep", "nzInputMode", "nzId", "nzDisabled", "nzAutoFocus", "nzFormatter"], outputs: ["nzBlur", "nzFocus"], exportAs: ["nzInputNumber"] }, { type: i2.NzSwitchComponent, selector: "nz-switch", inputs: ["nzLoading", "nzDisabled", "nzControl", "nzCheckedChildren", "nzUnCheckedChildren", "nzSize"], exportAs: ["nzSwitch"] }], directives: [{ type: i3.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i3.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i4.NzInputDirective, selector: "input[nz-input],textarea[nz-input]", inputs: ["nzBorderless", "nzSize", "disabled"], exportAs: ["nzInput"] }, { 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]" }, { type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i3.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { type: i6.NzDrawerContentDirective, selector: "[nzDrawerContent]", exportAs: ["nzDrawerContent"] }] });
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: SettingDrawerItemComponent, decorators: [{
28
+ type: Component,
29
+ args: [{ selector: 'setting-drawer-item', host: {
30
+ '[class.setting-drawer__body-item]': 'true'
31
+ }, template: "<span>\n {{ i.label }}\n <span class=\"pl-sm text-grey\">{{ i.tip }}</span>\n</span>\n<div [ngSwitch]=\"i.type\">\n <ng-container *ngSwitchCase=\"'color'\">\n <input\n nz-input\n type=\"color\"\n style=\"min-width: 88px\"\n [(ngModel)]=\"i.value\"\n [ngModelOptions]=\"{ standalone: true }\"\n />\n </ng-container>\n <ng-container *ngSwitchCase=\"'input'\">\n <input nz-input style=\"min-width: 88px\" [(ngModel)]=\"i.value\" [ngModelOptions]=\"{ standalone: true }\" />\n </ng-container>\n <ng-container *ngSwitchCase=\"'px'\">\n <nz-input-number\n [(ngModel)]=\"pxVal\"\n (ngModelChange)=\"pxChange($event)\"\n [nzMin]=\"i.min\"\n [nzMax]=\"i.max\"\n [nzStep]=\"i.step || 2\"\n [nzFormatter]=\"format\"\n ></nz-input-number>\n </ng-container>\n <ng-container *ngSwitchCase=\"'switch'\">\n <nz-switch nzSize=\"small\" [(ngModel)]=\"i.value\" [ngModelOptions]=\"{ standalone: true }\"></nz-switch>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <ng-template nzDrawerContent></ng-template>\n </ng-container>\n</div>\n" }]
32
+ }], propDecorators: { data: [{
33
+ type: Input
34
+ }] } });
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZy1kcmF3ZXItaXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy90aGVtZS9zZXR0aW5nLWRyYXdlci9zZXR0aW5nLWRyYXdlci1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RoZW1lL3NldHRpbmctZHJhd2VyL3NldHRpbmctZHJhd2VyLWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7O0FBV2pELE1BQU0sT0FBTywwQkFBMEI7SUFQdkM7UUFRRSxNQUFDLEdBQWMsRUFBRSxDQUFDO1FBVWxCLFVBQUssR0FBRyxDQUFDLENBQUM7UUFNVixXQUFNLEdBQUcsQ0FBQyxLQUFhLEVBQVUsRUFBRSxDQUFDLEdBQUcsS0FBSyxLQUFLLENBQUM7S0FDbkQ7SUFmQyxJQUNJLElBQUksQ0FBQyxHQUFjO1FBQ3JCLElBQUksQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDO1FBQ2IsSUFBSSxHQUFHLENBQUMsSUFBSSxLQUFLLElBQUksRUFBRTtZQUNyQixJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1NBQzNDO0lBQ0gsQ0FBQztJQUlELFFBQVEsQ0FBQyxHQUFXO1FBQ2xCLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUM7SUFDNUIsQ0FBQzs7dUhBZlUsMEJBQTBCOzJHQUExQiwwQkFBMEIsMEpDWHZDLHlsQ0FrQ0E7MkZEdkJhLDBCQUEwQjtrQkFQdEMsU0FBUzsrQkFDRSxxQkFBcUIsUUFFekI7d0JBQ0osbUNBQW1DLEVBQUUsTUFBTTtxQkFDNUM7OEJBTUcsSUFBSTtzQkFEUCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgdHlwZSB7IE56U2FmZUFueSB9IGZyb20gJ25nLXpvcnJvLWFudGQvY29yZS90eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NldHRpbmctZHJhd2VyLWl0ZW0nLFxuICB0ZW1wbGF0ZVVybDogJy4vc2V0dGluZy1kcmF3ZXItaXRlbS5jb21wb25lbnQuaHRtbCcsXG4gIGhvc3Q6IHtcbiAgICAnW2NsYXNzLnNldHRpbmctZHJhd2VyX19ib2R5LWl0ZW1dJzogJ3RydWUnXG4gIH1cbn0pXG5leHBvcnQgY2xhc3MgU2V0dGluZ0RyYXdlckl0ZW1Db21wb25lbnQge1xuICBpOiBOelNhZmVBbnkgPSB7fTtcblxuICBASW5wdXQoKVxuICBzZXQgZGF0YSh2YWw6IE56U2FmZUFueSkge1xuICAgIHRoaXMuaSA9IHZhbDtcbiAgICBpZiAodmFsLnR5cGUgPT09ICdweCcpIHtcbiAgICAgIHRoaXMucHhWYWwgPSArdmFsLnZhbHVlLnJlcGxhY2UoJ3B4JywgJycpO1xuICAgIH1cbiAgfVxuXG4gIHB4VmFsID0gMDtcblxuICBweENoYW5nZSh2YWw6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMuaS52YWx1ZSA9IGAke3ZhbH1weGA7XG4gIH1cblxuICBmb3JtYXQgPSAodmFsdWU6IG51bWJlcik6IHN0cmluZyA9PiBgJHt2YWx1ZX0gcHhgO1xufVxuIiwiPHNwYW4+XG4gIHt7IGkubGFiZWwgfX1cbiAgPHNwYW4gY2xhc3M9XCJwbC1zbSB0ZXh0LWdyZXlcIj57eyBpLnRpcCB9fTwvc3Bhbj5cbjwvc3Bhbj5cbjxkaXYgW25nU3dpdGNoXT1cImkudHlwZVwiPlxuICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInY29sb3InXCI+XG4gICAgPGlucHV0XG4gICAgICBuei1pbnB1dFxuICAgICAgdHlwZT1cImNvbG9yXCJcbiAgICAgIHN0eWxlPVwibWluLXdpZHRoOiA4OHB4XCJcbiAgICAgIFsobmdNb2RlbCldPVwiaS52YWx1ZVwiXG4gICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxuICAgIC8+XG4gIDwvbmctY29udGFpbmVyPlxuICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInaW5wdXQnXCI+XG4gICAgPGlucHV0IG56LWlucHV0IHN0eWxlPVwibWluLXdpZHRoOiA4OHB4XCIgWyhuZ01vZGVsKV09XCJpLnZhbHVlXCIgW25nTW9kZWxPcHRpb25zXT1cInsgc3RhbmRhbG9uZTogdHJ1ZSB9XCIgLz5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidweCdcIj5cbiAgICA8bnotaW5wdXQtbnVtYmVyXG4gICAgICBbKG5nTW9kZWwpXT1cInB4VmFsXCJcbiAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInB4Q2hhbmdlKCRldmVudClcIlxuICAgICAgW256TWluXT1cImkubWluXCJcbiAgICAgIFtuek1heF09XCJpLm1heFwiXG4gICAgICBbbnpTdGVwXT1cImkuc3RlcCB8fCAyXCJcbiAgICAgIFtuekZvcm1hdHRlcl09XCJmb3JtYXRcIlxuICAgID48L256LWlucHV0LW51bWJlcj5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidzd2l0Y2gnXCI+XG4gICAgPG56LXN3aXRjaCBuelNpemU9XCJzbWFsbFwiIFsobmdNb2RlbCldPVwiaS52YWx1ZVwiIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiPjwvbnotc3dpdGNoPlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hEZWZhdWx0PlxuICAgIDxuZy10ZW1wbGF0ZSBuekRyYXdlckNvbnRlbnQ+PC9uZy10ZW1wbGF0ZT5cbiAgPC9uZy1jb250YWluZXI+XG48L2Rpdj5cbiJdfQ==
@@ -0,0 +1,192 @@
1
+ import { __decorate } from "tslib";
2
+ import { DOCUMENT } from '@angular/common';
3
+ import { ChangeDetectionStrategy, Component, Inject, Input, isDevMode, Optional } from '@angular/core';
4
+ import { Subject } from 'rxjs';
5
+ import { takeUntil } from 'rxjs/operators';
6
+ import { copy } from '@delon/util/browser';
7
+ import { InputBoolean, ZoneOutside } from '@delon/util/decorator';
8
+ import { deepCopy } from '@delon/util/other';
9
+ import { ALAINDEFAULTVAR, DEFAULT_COLORS, DEFAULT_VARS } from './setting-drawer.types';
10
+ import * as i0 from "@angular/core";
11
+ import * as i1 from "ng-zorro-antd/message";
12
+ import * as i2 from "@delon/theme";
13
+ import * as i3 from "@delon/util/other";
14
+ import * as i4 from "@angular/cdk/bidi";
15
+ import * as i5 from "ng-zorro-antd/drawer";
16
+ import * as i6 from "ng-zorro-antd/divider";
17
+ import * as i7 from "ng-zorro-antd/tabs";
18
+ import * as i8 from "./setting-drawer-item.component";
19
+ import * as i9 from "ng-zorro-antd/switch";
20
+ import * as i10 from "ng-zorro-antd/button";
21
+ import * as i11 from "ng-zorro-antd/alert";
22
+ import * as i12 from "@angular/common";
23
+ import * as i13 from "ng-zorro-antd/tooltip";
24
+ import * as i14 from "ng-zorro-antd/icon";
25
+ import * as i15 from "ng-zorro-antd/core/transition-patch";
26
+ import * as i16 from "@angular/forms";
27
+ import * as i17 from "ng-zorro-antd/core/wave";
28
+ export class SettingDrawerComponent {
29
+ constructor(cdr, msg, settingSrv, lazy, ngZone, doc, directionality) {
30
+ this.cdr = cdr;
31
+ this.msg = msg;
32
+ this.settingSrv = settingSrv;
33
+ this.lazy = lazy;
34
+ this.ngZone = ngZone;
35
+ this.doc = doc;
36
+ this.directionality = directionality;
37
+ this.autoApplyColor = true;
38
+ this.compilingText = 'Compiling...';
39
+ this.devTips = `When the color can't be switched, you need to run it once: npm run color-less`;
40
+ this.loadedLess = false;
41
+ this.destroy$ = new Subject();
42
+ this.dir = 'ltr';
43
+ this.isDev = isDevMode();
44
+ this.collapse = false;
45
+ this.data = {};
46
+ this.colors = DEFAULT_COLORS;
47
+ this.color = this.cachedData['@primary-color'] || this.DEFAULT_PRIMARY;
48
+ this.resetData(this.cachedData, false);
49
+ }
50
+ get layout() {
51
+ return this.settingSrv.layout;
52
+ }
53
+ get cachedData() {
54
+ return this.settingSrv.layout[ALAINDEFAULTVAR] || {};
55
+ }
56
+ get DEFAULT_PRIMARY() {
57
+ return DEFAULT_VARS['primary-color'].default;
58
+ }
59
+ ngOnInit() {
60
+ this.dir = this.directionality.value;
61
+ this.directionality.change?.pipe(takeUntil(this.destroy$)).subscribe((direction) => {
62
+ this.dir = direction;
63
+ });
64
+ if (this.autoApplyColor && this.color !== this.DEFAULT_PRIMARY) {
65
+ this.changeColor(this.color);
66
+ this.runLess();
67
+ }
68
+ }
69
+ async loadLess() {
70
+ if (this.loadedLess) {
71
+ return Promise.resolve();
72
+ }
73
+ return this.lazy
74
+ .loadStyle('./assets/color.less', 'stylesheet/less')
75
+ .then(() => {
76
+ const lessConfigNode = this.doc.createElement('script');
77
+ lessConfigNode.innerHTML = `
78
+ window.less = {
79
+ async: true,
80
+ env: 'production',
81
+ javascriptEnabled: true
82
+ };
83
+ `;
84
+ this.doc.body.appendChild(lessConfigNode);
85
+ })
86
+ .then(() => this.lazy.loadScript('https://gw.alipayobjects.com/os/lib/less.js/3.8.1/less.min.js'))
87
+ .then(() => {
88
+ this.loadedLess = true;
89
+ });
90
+ }
91
+ genVars() {
92
+ const { data, color, validKeys } = this;
93
+ const vars = {
94
+ [`@primary-color`]: color
95
+ };
96
+ validKeys.filter(key => key !== 'primary-color').forEach(key => (vars[`@${key}`] = data[key].value));
97
+ this.setLayout(ALAINDEFAULTVAR, vars);
98
+ return vars;
99
+ }
100
+ runLess() {
101
+ const { ngZone, msg, cdr } = this;
102
+ const msgId = msg.loading(this.compilingText, { nzDuration: 0 }).messageId;
103
+ setTimeout(() => {
104
+ this.loadLess().then(() => {
105
+ window.less.modifyVars(this.genVars()).then(() => {
106
+ msg.success('成功');
107
+ msg.remove(msgId);
108
+ ngZone.run(() => cdr.detectChanges());
109
+ });
110
+ });
111
+ }, 200);
112
+ }
113
+ toggle() {
114
+ this.collapse = !this.collapse;
115
+ }
116
+ changeColor(color) {
117
+ this.color = color;
118
+ Object.keys(DEFAULT_VARS)
119
+ .filter(key => DEFAULT_VARS[key].default === '@primary-color')
120
+ .forEach(key => delete this.cachedData[`@${key}`]);
121
+ this.resetData(this.cachedData, false);
122
+ }
123
+ setLayout(name, value) {
124
+ this.settingSrv.setLayout(name, value);
125
+ }
126
+ resetData(nowData, run = true) {
127
+ nowData = nowData || {};
128
+ const data = deepCopy(DEFAULT_VARS);
129
+ Object.keys(data).forEach(key => {
130
+ const value = nowData[`@${key}`] || data[key].default || '';
131
+ data[key].value = value === `@primary-color` ? this.color : value;
132
+ });
133
+ this.data = data;
134
+ if (run) {
135
+ this.cdr.detectChanges();
136
+ this.runLess();
137
+ }
138
+ }
139
+ get validKeys() {
140
+ return Object.keys(this.data).filter(key => this.data[key].value !== this.data[key].default);
141
+ }
142
+ apply() {
143
+ this.runLess();
144
+ }
145
+ reset() {
146
+ this.color = this.DEFAULT_PRIMARY;
147
+ this.settingSrv.setLayout(ALAINDEFAULTVAR, {});
148
+ this.resetData({});
149
+ }
150
+ copyVar() {
151
+ const vars = this.genVars();
152
+ const copyContent = Object.keys(vars)
153
+ .map(key => `${key}: ${vars[key]};`)
154
+ .join('\n');
155
+ copy(copyContent);
156
+ this.msg.success('Copy success');
157
+ }
158
+ ngOnDestroy() {
159
+ this.destroy$.next();
160
+ this.destroy$.complete();
161
+ }
162
+ }
163
+ SettingDrawerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: SettingDrawerComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.NzMessageService }, { token: i2.SettingsService }, { token: i3.LazyService }, { token: i0.NgZone }, { token: DOCUMENT }, { token: i4.Directionality, optional: true }], target: i0.ɵɵFactoryTarget.Component });
164
+ SettingDrawerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.2", type: SettingDrawerComponent, selector: "setting-drawer", inputs: { autoApplyColor: "autoApplyColor", compilingText: "compilingText", devTips: "devTips" }, host: { properties: { "class.setting-drawer": "true", "class.setting-drawer-rtl": "dir === 'rtl'" } }, ngImport: i0, template: "<nz-drawer\n [nzVisible]=\"collapse\"\n [nzPlacement]=\"dir === 'rtl' ? 'left' : 'right'\"\n [nzWidth]=\"500\"\n (nzOnClose)=\"toggle()\"\n>\n <div *nzDrawerContent class=\"setting-drawer__content\">\n <div class=\"setting-drawer__body setting-drawer__theme\">\n <h3 class=\"setting-drawer__title\">\u4E3B\u9898\u8272</h3>\n <span\n *ngFor=\"let c of colors\"\n [style]=\"{ 'background-color': c.color }\"\n (click)=\"changeColor(c.color)\"\n nz-tooltip\n [nzTooltipTitle]=\"c.key\"\n class=\"setting-drawer__theme-tag\"\n >\n <i *ngIf=\"color === c.color\" nz-icon nzType=\"check\"></i>\n </span>\n </div>\n <nz-divider></nz-divider>\n <div class=\"setting-drawer__body\">\n <h3 class=\"setting-drawer__title\">\u8BBE\u7F6E</h3>\n <nz-tabset>\n <nz-tab nzTitle=\"\u9876\u90E8\">\n <div class=\"setting-drawer__body\">\n <setting-drawer-item [data]=\"data['alain-default-header-hg']\"></setting-drawer-item>\n <setting-drawer-item [data]=\"data['alain-default-header-bg']\"></setting-drawer-item>\n <setting-drawer-item [data]=\"data['alain-default-header-padding']\"></setting-drawer-item>\n </div>\n </nz-tab>\n <nz-tab nzTitle=\"\u4FA7\u8FB9\u680F\">\n <setting-drawer-item [data]=\"data['alain-default-aside-wd']\"></setting-drawer-item>\n <setting-drawer-item [data]=\"data['alain-default-aside-bg']\"></setting-drawer-item>\n <setting-drawer-item [data]=\"data['alain-default-aside-collapsed-wd']\"></setting-drawer-item>\n <setting-drawer-item [data]=\"data['alain-default-aside-nav-padding-top-bottom']\"></setting-drawer-item>\n </nz-tab>\n <nz-tab nzTitle=\"\u5185\u5BB9\">\n <setting-drawer-item [data]=\"data['alain-default-content-bg']\"></setting-drawer-item>\n <setting-drawer-item [data]=\"data['alain-default-content-heading-bg']\"></setting-drawer-item>\n <setting-drawer-item [data]=\"data['alain-default-content-heading-border']\"></setting-drawer-item>\n <setting-drawer-item [data]=\"data['alain-default-content-padding']\"></setting-drawer-item>\n </nz-tab>\n <nz-tab nzTitle=\"\u5176\u5B83\">\n <setting-drawer-item [data]=\"data['form-state-visual-feedback-enabled']\"></setting-drawer-item>\n <setting-drawer-item [data]=\"data['preserve-white-spaces-enabled']\"></setting-drawer-item>\n <setting-drawer-item [data]=\"data['nz-table-img-radius']\"></setting-drawer-item>\n <setting-drawer-item [data]=\"data['nz-table-img-margin-right']\"></setting-drawer-item>\n <setting-drawer-item [data]=\"data['nz-table-img-max-width']\"></setting-drawer-item>\n <setting-drawer-item [data]=\"data['nz-table-img-max-height']\"></setting-drawer-item>\n </nz-tab>\n </nz-tabset>\n </div>\n <nz-divider></nz-divider>\n <div class=\"setting-drawer__body\">\n <div class=\"setting-drawer__body-item\">\n \u56FA\u5B9A\u5934\u548C\u4FA7\u8FB9\u680F\n <nz-switch\n nzSize=\"small\"\n [(ngModel)]=\"layout.fixed\"\n (ngModelChange)=\"setLayout('fixed', layout.fixed)\"\n ></nz-switch>\n </div>\n <div class=\"setting-drawer__body-item\">\n \u8272\u5F31\u6A21\u5F0F\n <nz-switch\n nzSize=\"small\"\n [(ngModel)]=\"layout.colorWeak\"\n (ngModelChange)=\"setLayout('colorWeak', layout.colorWeak)\"\n ></nz-switch>\n </div>\n </div>\n <nz-divider></nz-divider>\n <button (click)=\"apply()\" type=\"button\" nz-button nzType=\"primary\">\u9884\u89C8</button>\n <button (click)=\"reset()\" type=\"button\" nz-button>\u91CD\u7F6E</button>\n <button (click)=\"copyVar()\" type=\"button\" nz-button>\u62F7\u8D1D</button>\n <nz-alert\n class=\"mt-md\"\n nzType=\"warning\"\n nzMessage=\"\u914D\u7F6E\u680F\u53EA\u5728\u5F00\u53D1\u73AF\u5883\u7528\u4E8E\u9884\u89C8\uFF0C\u751F\u4EA7\u73AF\u5883\u4E0D\u4F1A\u5C55\u73B0\uFF0C\u8BF7\u62F7\u8D1D\u540E\u624B\u52A8\u4FEE\u6539\u53C2\u6570\u914D\u7F6E\u6587\u4EF6 src/styles/theme.less\"\n ></nz-alert>\n </div>\n</nz-drawer>\n<div\n class=\"setting-drawer__handle\"\n [ngClass]=\"{ 'setting-drawer__handle-opened': collapse }\"\n (click)=\"toggle()\"\n nz-tooltip\n [nzTooltipTitle]=\"isDev ? devTips : null\"\n>\n <i nz-icon [nzType]=\"!collapse ? 'setting' : 'close'\" class=\"setting-drawer__handle-icon\"></i>\n</div>\n", components: [{ type: i5.NzDrawerComponent, selector: "nz-drawer", inputs: ["nzContent", "nzCloseIcon", "nzClosable", "nzMaskClosable", "nzMask", "nzCloseOnNavigation", "nzNoAnimation", "nzKeyboard", "nzTitle", "nzFooter", "nzPlacement", "nzMaskStyle", "nzBodyStyle", "nzWrapClassName", "nzWidth", "nzHeight", "nzZIndex", "nzOffsetX", "nzOffsetY", "nzVisible"], outputs: ["nzOnViewInit", "nzOnClose", "nzVisibleChange"], exportAs: ["nzDrawer"] }, { type: i6.NzDividerComponent, selector: "nz-divider", inputs: ["nzText", "nzType", "nzOrientation", "nzDashed", "nzPlain"], exportAs: ["nzDivider"] }, { type: i7.NzTabSetComponent, selector: "nz-tabset", inputs: ["nzSelectedIndex", "nzTabPosition", "nzTabBarExtraContent", "nzCanDeactivate", "nzAddIcon", "nzTabBarStyle", "nzType", "nzSize", "nzAnimated", "nzTabBarGutter", "nzHideAdd", "nzCentered", "nzHideAll", "nzLinkRouter", "nzLinkExact"], outputs: ["nzSelectChange", "nzSelectedIndexChange", "nzTabListScroll", "nzClose", "nzAdd"], exportAs: ["nzTabset"] }, { type: i7.NzTabComponent, selector: "nz-tab", inputs: ["nzTitle", "nzClosable", "nzCloseIcon", "nzDisabled", "nzForceRender"], outputs: ["nzSelect", "nzDeselect", "nzClick", "nzContextmenu"], exportAs: ["nzTab"] }, { type: i8.SettingDrawerItemComponent, selector: "setting-drawer-item", inputs: ["data"] }, { type: i9.NzSwitchComponent, selector: "nz-switch", inputs: ["nzLoading", "nzDisabled", "nzControl", "nzCheckedChildren", "nzUnCheckedChildren", "nzSize"], exportAs: ["nzSwitch"] }, { type: i10.NzButtonComponent, selector: "button[nz-button], a[nz-button]", inputs: ["nzBlock", "nzGhost", "nzSearch", "nzLoading", "nzDanger", "disabled", "tabIndex", "nzType", "nzShape", "nzSize"], exportAs: ["nzButton"] }, { type: i11.NzAlertComponent, selector: "nz-alert", inputs: ["nzCloseText", "nzIconType", "nzMessage", "nzDescription", "nzType", "nzCloseable", "nzShowIcon", "nzBanner", "nzNoAnimation"], outputs: ["nzOnClose"], exportAs: ["nzAlert"] }], directives: [{ type: i5.NzDrawerContentDirective, selector: "[nzDrawerContent]", exportAs: ["nzDrawerContent"] }, { type: i12.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i13.NzTooltipDirective, selector: "[nz-tooltip]", inputs: ["nzTooltipTitle", "nzTooltipTitleContext", "nz-tooltip", "nzTooltipTrigger", "nzTooltipPlacement", "nzTooltipOrigin", "nzTooltipVisible", "nzTooltipMouseEnterDelay", "nzTooltipMouseLeaveDelay", "nzTooltipOverlayClassName", "nzTooltipOverlayStyle", "nzTooltipArrowPointAtCenter", "nzTooltipColor"], outputs: ["nzTooltipVisibleChange"], exportAs: ["nzTooltip"] }, { type: i12.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i14.NzIconDirective, selector: "[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { type: i15.ɵ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"] }, { type: i16.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i16.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i17.NzWaveDirective, selector: "[nz-wave],button[nz-button]:not([nzType=\"link\"]):not([nzType=\"text\"])", inputs: ["nzWaveExtraNode"], exportAs: ["nzWave"] }, { type: i12.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
165
+ __decorate([
166
+ InputBoolean()
167
+ ], SettingDrawerComponent.prototype, "autoApplyColor", void 0);
168
+ __decorate([
169
+ ZoneOutside()
170
+ ], SettingDrawerComponent.prototype, "loadLess", null);
171
+ __decorate([
172
+ ZoneOutside()
173
+ ], SettingDrawerComponent.prototype, "runLess", null);
174
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: SettingDrawerComponent, decorators: [{
175
+ type: Component,
176
+ args: [{ selector: 'setting-drawer', host: {
177
+ '[class.setting-drawer]': 'true',
178
+ '[class.setting-drawer-rtl]': `dir === 'rtl'`
179
+ }, changeDetection: ChangeDetectionStrategy.OnPush, template: "<nz-drawer\n [nzVisible]=\"collapse\"\n [nzPlacement]=\"dir === 'rtl' ? 'left' : 'right'\"\n [nzWidth]=\"500\"\n (nzOnClose)=\"toggle()\"\n>\n <div *nzDrawerContent class=\"setting-drawer__content\">\n <div class=\"setting-drawer__body setting-drawer__theme\">\n <h3 class=\"setting-drawer__title\">\u4E3B\u9898\u8272</h3>\n <span\n *ngFor=\"let c of colors\"\n [style]=\"{ 'background-color': c.color }\"\n (click)=\"changeColor(c.color)\"\n nz-tooltip\n [nzTooltipTitle]=\"c.key\"\n class=\"setting-drawer__theme-tag\"\n >\n <i *ngIf=\"color === c.color\" nz-icon nzType=\"check\"></i>\n </span>\n </div>\n <nz-divider></nz-divider>\n <div class=\"setting-drawer__body\">\n <h3 class=\"setting-drawer__title\">\u8BBE\u7F6E</h3>\n <nz-tabset>\n <nz-tab nzTitle=\"\u9876\u90E8\">\n <div class=\"setting-drawer__body\">\n <setting-drawer-item [data]=\"data['alain-default-header-hg']\"></setting-drawer-item>\n <setting-drawer-item [data]=\"data['alain-default-header-bg']\"></setting-drawer-item>\n <setting-drawer-item [data]=\"data['alain-default-header-padding']\"></setting-drawer-item>\n </div>\n </nz-tab>\n <nz-tab nzTitle=\"\u4FA7\u8FB9\u680F\">\n <setting-drawer-item [data]=\"data['alain-default-aside-wd']\"></setting-drawer-item>\n <setting-drawer-item [data]=\"data['alain-default-aside-bg']\"></setting-drawer-item>\n <setting-drawer-item [data]=\"data['alain-default-aside-collapsed-wd']\"></setting-drawer-item>\n <setting-drawer-item [data]=\"data['alain-default-aside-nav-padding-top-bottom']\"></setting-drawer-item>\n </nz-tab>\n <nz-tab nzTitle=\"\u5185\u5BB9\">\n <setting-drawer-item [data]=\"data['alain-default-content-bg']\"></setting-drawer-item>\n <setting-drawer-item [data]=\"data['alain-default-content-heading-bg']\"></setting-drawer-item>\n <setting-drawer-item [data]=\"data['alain-default-content-heading-border']\"></setting-drawer-item>\n <setting-drawer-item [data]=\"data['alain-default-content-padding']\"></setting-drawer-item>\n </nz-tab>\n <nz-tab nzTitle=\"\u5176\u5B83\">\n <setting-drawer-item [data]=\"data['form-state-visual-feedback-enabled']\"></setting-drawer-item>\n <setting-drawer-item [data]=\"data['preserve-white-spaces-enabled']\"></setting-drawer-item>\n <setting-drawer-item [data]=\"data['nz-table-img-radius']\"></setting-drawer-item>\n <setting-drawer-item [data]=\"data['nz-table-img-margin-right']\"></setting-drawer-item>\n <setting-drawer-item [data]=\"data['nz-table-img-max-width']\"></setting-drawer-item>\n <setting-drawer-item [data]=\"data['nz-table-img-max-height']\"></setting-drawer-item>\n </nz-tab>\n </nz-tabset>\n </div>\n <nz-divider></nz-divider>\n <div class=\"setting-drawer__body\">\n <div class=\"setting-drawer__body-item\">\n \u56FA\u5B9A\u5934\u548C\u4FA7\u8FB9\u680F\n <nz-switch\n nzSize=\"small\"\n [(ngModel)]=\"layout.fixed\"\n (ngModelChange)=\"setLayout('fixed', layout.fixed)\"\n ></nz-switch>\n </div>\n <div class=\"setting-drawer__body-item\">\n \u8272\u5F31\u6A21\u5F0F\n <nz-switch\n nzSize=\"small\"\n [(ngModel)]=\"layout.colorWeak\"\n (ngModelChange)=\"setLayout('colorWeak', layout.colorWeak)\"\n ></nz-switch>\n </div>\n </div>\n <nz-divider></nz-divider>\n <button (click)=\"apply()\" type=\"button\" nz-button nzType=\"primary\">\u9884\u89C8</button>\n <button (click)=\"reset()\" type=\"button\" nz-button>\u91CD\u7F6E</button>\n <button (click)=\"copyVar()\" type=\"button\" nz-button>\u62F7\u8D1D</button>\n <nz-alert\n class=\"mt-md\"\n nzType=\"warning\"\n nzMessage=\"\u914D\u7F6E\u680F\u53EA\u5728\u5F00\u53D1\u73AF\u5883\u7528\u4E8E\u9884\u89C8\uFF0C\u751F\u4EA7\u73AF\u5883\u4E0D\u4F1A\u5C55\u73B0\uFF0C\u8BF7\u62F7\u8D1D\u540E\u624B\u52A8\u4FEE\u6539\u53C2\u6570\u914D\u7F6E\u6587\u4EF6 src/styles/theme.less\"\n ></nz-alert>\n </div>\n</nz-drawer>\n<div\n class=\"setting-drawer__handle\"\n [ngClass]=\"{ 'setting-drawer__handle-opened': collapse }\"\n (click)=\"toggle()\"\n nz-tooltip\n [nzTooltipTitle]=\"isDev ? devTips : null\"\n>\n <i nz-icon [nzType]=\"!collapse ? 'setting' : 'close'\" class=\"setting-drawer__handle-icon\"></i>\n</div>\n" }]
180
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.NzMessageService }, { type: i2.SettingsService }, { type: i3.LazyService }, { type: i0.NgZone }, { type: undefined, decorators: [{
181
+ type: Inject,
182
+ args: [DOCUMENT]
183
+ }] }, { type: i4.Directionality, decorators: [{
184
+ type: Optional
185
+ }] }]; }, propDecorators: { autoApplyColor: [{
186
+ type: Input
187
+ }], compilingText: [{
188
+ type: Input
189
+ }], devTips: [{
190
+ type: Input
191
+ }], loadLess: [], runLess: [] } });
192
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZy1kcmF3ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvdGhlbWUvc2V0dGluZy1kcmF3ZXIvc2V0dGluZy1kcmF3ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvdGhlbWUvc2V0dGluZy1kcmF3ZXIvc2V0dGluZy1kcmF3ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQ0wsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxNQUFNLEVBQ04sS0FBSyxFQUNMLFNBQVMsRUFJVCxRQUFRLEVBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHM0MsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFFBQVEsRUFBZSxNQUFNLG1CQUFtQixDQUFDO0FBSTFELE9BQU8sRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBV3ZGLE1BQU0sT0FBTyxzQkFBc0I7SUFpQmpDLFlBQ1UsR0FBc0IsRUFDdEIsR0FBcUIsRUFDckIsVUFBMkIsRUFDM0IsSUFBaUIsRUFDakIsTUFBYyxFQUNJLEdBQWMsRUFDcEIsY0FBOEI7UUFOMUMsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDdEIsUUFBRyxHQUFILEdBQUcsQ0FBa0I7UUFDckIsZUFBVSxHQUFWLFVBQVUsQ0FBaUI7UUFDM0IsU0FBSSxHQUFKLElBQUksQ0FBYTtRQUNqQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ0ksUUFBRyxHQUFILEdBQUcsQ0FBVztRQUNwQixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUF2QjNCLG1CQUFjLEdBQUcsSUFBSSxDQUFDO1FBQ3RDLGtCQUFhLEdBQUcsY0FBYyxDQUFDO1FBQy9CLFlBQU8sR0FBRywrRUFBK0UsQ0FBQztRQUUzRixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ25CLGFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBQ3ZDLFFBQUcsR0FBYyxLQUFLLENBQUM7UUFDdkIsVUFBSyxHQUFHLFNBQVMsRUFBRSxDQUFDO1FBQ3BCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFJakIsU0FBSSxHQUFjLEVBQUUsQ0FBQztRQUVyQixXQUFNLEdBQUcsY0FBYyxDQUFDO1FBV3RCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLElBQUksQ0FBQyxlQUFlLENBQUM7UUFDdkUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFsQkQsSUFBSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQztJQUNoQyxDQUFDO0lBa0JELElBQVksVUFBVTtRQUNwQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN2RCxDQUFDO0lBRUQsSUFBWSxlQUFlO1FBQ3pCLE9BQU8sWUFBWSxDQUFDLGVBQWUsQ0FBQyxDQUFDLE9BQU8sQ0FBQztJQUMvQyxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUM7UUFDckMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxTQUFvQixFQUFFLEVBQUU7WUFDNUYsSUFBSSxDQUFDLEdBQUcsR0FBRyxTQUFTLENBQUM7UUFDdkIsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLElBQUksQ0FBQyxjQUFjLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsZUFBZSxFQUFFO1lBQzlELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzdCLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztTQUNoQjtJQUNILENBQUM7SUFHTyxLQUFLLENBQUMsUUFBUTtRQUNwQixJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDbkIsT0FBTyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7U0FDMUI7UUFDRCxPQUFPLElBQUksQ0FBQyxJQUFJO2FBQ2IsU0FBUyxDQUFDLHFCQUFxQixFQUFFLGlCQUFpQixDQUFDO2FBQ25ELElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDVCxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN4RCxjQUFjLENBQUMsU0FBUyxHQUFHOzs7Ozs7U0FNMUIsQ0FBQztZQUNGLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUM1QyxDQUFDLENBQUM7YUFDRCxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsK0RBQStELENBQUMsQ0FBQzthQUNqRyxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ1QsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7UUFDekIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU8sT0FBTztRQUNiLE1BQU0sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxHQUFHLElBQUksQ0FBQztRQUN4QyxNQUFNLElBQUksR0FBOEI7WUFDdEMsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLEtBQUs7U0FDMUIsQ0FBQztRQUNGLFNBQVMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssZUFBZSxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3JHLElBQUksQ0FBQyxTQUFTLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3RDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUdPLE9BQU87UUFDYixNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUM7UUFDbEMsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLEVBQUUsVUFBVSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQzNFLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRTtnQkFDdkIsTUFBb0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7b0JBQzlELEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ2xCLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQ2xCLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUM7Z0JBQ3hDLENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDVixDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ2pDLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBYTtRQUN2QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQzthQUN0QixNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxLQUFLLGdCQUFnQixDQUFDO2FBQzdELE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNyRCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELFNBQVMsQ0FBQyxJQUFZLEVBQUUsS0FBZ0I7UUFDdEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFTyxTQUFTLENBQUMsT0FBc0MsRUFBRSxNQUFlLElBQUk7UUFDM0UsT0FBTyxHQUFHLE9BQU8sSUFBSSxFQUFFLENBQUM7UUFDeEIsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3BDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQzlCLE1BQU0sS0FBSyxHQUFHLE9BQVEsQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUM7WUFDN0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssR0FBRyxLQUFLLEtBQUssZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUNwRSxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksR0FBRyxFQUFFO1lBQ1AsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7U0FDaEI7SUFDSCxDQUFDO0lBRUQsSUFBWSxTQUFTO1FBQ25CLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMvRixDQUFDO0lBRUQsS0FBSztRQUNILElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBRUQsS0FBSztRQUNILElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQztRQUNsQyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxlQUFlLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDL0MsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBRUQsT0FBTztRQUNMLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUM1QixNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQzthQUNsQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEdBQUcsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQzthQUNuQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDZCxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDM0IsQ0FBQzs7bUhBMUpVLHNCQUFzQixtS0F1QnZCLFFBQVE7dUdBdkJQLHNCQUFzQiwrUENuQ25DLDA5SUE0RkE7QUR4RDJCO0lBQWYsWUFBWSxFQUFFOzhEQUF1QjtBQWlEL0M7SUFEQyxXQUFXLEVBQUU7c0RBc0JiO0FBYUQ7SUFEQyxXQUFXLEVBQUU7cURBYWI7MkZBaEdVLHNCQUFzQjtrQkFUbEMsU0FBUzsrQkFDRSxnQkFBZ0IsUUFFcEI7d0JBQ0osd0JBQXdCLEVBQUUsTUFBTTt3QkFDaEMsNEJBQTRCLEVBQUUsZUFBZTtxQkFDOUMsbUJBQ2dCLHVCQUF1QixDQUFDLE1BQU07OzBCQXlCNUMsTUFBTTsyQkFBQyxRQUFROzswQkFDZixRQUFROzRDQXZCYyxjQUFjO3NCQUF0QyxLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQStDUSxRQUFRLE1Ba0NkLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3Rpb24sIERpcmVjdGlvbmFsaXR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2JpZGknO1xuaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEluamVjdCxcbiAgSW5wdXQsXG4gIGlzRGV2TW9kZSxcbiAgTmdab25lLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3B0aW9uYWxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IExheW91dCwgU2V0dGluZ3NTZXJ2aWNlIH0gZnJvbSAnQGRlbG9uL3RoZW1lJztcbmltcG9ydCB7IGNvcHkgfSBmcm9tICdAZGVsb24vdXRpbC9icm93c2VyJztcbmltcG9ydCB7IElucHV0Qm9vbGVhbiwgWm9uZU91dHNpZGUgfSBmcm9tICdAZGVsb24vdXRpbC9kZWNvcmF0b3InO1xuaW1wb3J0IHsgZGVlcENvcHksIExhenlTZXJ2aWNlIH0gZnJvbSAnQGRlbG9uL3V0aWwvb3RoZXInO1xuaW1wb3J0IHR5cGUgeyBOelNhZmVBbnkgfSBmcm9tICduZy16b3Jyby1hbnRkL2NvcmUvdHlwZXMnO1xuaW1wb3J0IHsgTnpNZXNzYWdlU2VydmljZSB9IGZyb20gJ25nLXpvcnJvLWFudGQvbWVzc2FnZSc7XG5cbmltcG9ydCB7IEFMQUlOREVGQVVMVFZBUiwgREVGQVVMVF9DT0xPUlMsIERFRkFVTFRfVkFSUyB9IGZyb20gJy4vc2V0dGluZy1kcmF3ZXIudHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzZXR0aW5nLWRyYXdlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9zZXR0aW5nLWRyYXdlci5jb21wb25lbnQuaHRtbCcsXG4gIGhvc3Q6IHtcbiAgICAnW2NsYXNzLnNldHRpbmctZHJhd2VyXSc6ICd0cnVlJyxcbiAgICAnW2NsYXNzLnNldHRpbmctZHJhd2VyLXJ0bF0nOiBgZGlyID09PSAncnRsJ2BcbiAgfSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgU2V0dGluZ0RyYXdlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KCkgQElucHV0Qm9vbGVhbigpIGF1dG9BcHBseUNvbG9yID0gdHJ1ZTtcbiAgQElucHV0KCkgY29tcGlsaW5nVGV4dCA9ICdDb21waWxpbmcuLi4nO1xuICBASW5wdXQoKSBkZXZUaXBzID0gYFdoZW4gdGhlIGNvbG9yIGNhbid0IGJlIHN3aXRjaGVkLCB5b3UgbmVlZCB0byBydW4gaXQgb25jZTogbnBtIHJ1biBjb2xvci1sZXNzYDtcblxuICBwcml2YXRlIGxvYWRlZExlc3MgPSBmYWxzZTtcbiAgcHJpdmF0ZSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIGRpcjogRGlyZWN0aW9uID0gJ2x0cic7XG4gIGlzRGV2ID0gaXNEZXZNb2RlKCk7XG4gIGNvbGxhcHNlID0gZmFsc2U7XG4gIGdldCBsYXlvdXQoKTogTGF5b3V0IHtcbiAgICByZXR1cm4gdGhpcy5zZXR0aW5nU3J2LmxheW91dDtcbiAgfVxuICBkYXRhOiBOelNhZmVBbnkgPSB7fTtcbiAgY29sb3I6IHN0cmluZztcbiAgY29sb3JzID0gREVGQVVMVF9DT0xPUlM7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgbXNnOiBOek1lc3NhZ2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgc2V0dGluZ1NydjogU2V0dGluZ3NTZXJ2aWNlLFxuICAgIHByaXZhdGUgbGF6eTogTGF6eVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSxcbiAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIGRvYzogTnpTYWZlQW55LFxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgZGlyZWN0aW9uYWxpdHk6IERpcmVjdGlvbmFsaXR5XG4gICkge1xuICAgIHRoaXMuY29sb3IgPSB0aGlzLmNhY2hlZERhdGFbJ0BwcmltYXJ5LWNvbG9yJ10gfHwgdGhpcy5ERUZBVUxUX1BSSU1BUlk7XG4gICAgdGhpcy5yZXNldERhdGEodGhpcy5jYWNoZWREYXRhLCBmYWxzZSk7XG4gIH1cblxuICBwcml2YXRlIGdldCBjYWNoZWREYXRhKCk6IHsgW2tleTogc3RyaW5nXTogTnpTYWZlQW55IH0ge1xuICAgIHJldHVybiB0aGlzLnNldHRpbmdTcnYubGF5b3V0W0FMQUlOREVGQVVMVFZBUl0gfHwge307XG4gIH1cblxuICBwcml2YXRlIGdldCBERUZBVUxUX1BSSU1BUlkoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gREVGQVVMVF9WQVJTWydwcmltYXJ5LWNvbG9yJ10uZGVmYXVsdDtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZGlyID0gdGhpcy5kaXJlY3Rpb25hbGl0eS52YWx1ZTtcbiAgICB0aGlzLmRpcmVjdGlvbmFsaXR5LmNoYW5nZT8ucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoZGlyZWN0aW9uOiBEaXJlY3Rpb24pID0+IHtcbiAgICAgIHRoaXMuZGlyID0gZGlyZWN0aW9uO1xuICAgIH0pO1xuICAgIGlmICh0aGlzLmF1dG9BcHBseUNvbG9yICYmIHRoaXMuY29sb3IgIT09IHRoaXMuREVGQVVMVF9QUklNQVJZKSB7XG4gICAgICB0aGlzLmNoYW5nZUNvbG9yKHRoaXMuY29sb3IpO1xuICAgICAgdGhpcy5ydW5MZXNzKCk7XG4gICAgfVxuICB9XG5cbiAgQFpvbmVPdXRzaWRlKClcbiAgcHJpdmF0ZSBhc3luYyBsb2FkTGVzcygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAodGhpcy5sb2FkZWRMZXNzKSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmxhenlcbiAgICAgIC5sb2FkU3R5bGUoJy4vYXNzZXRzL2NvbG9yLmxlc3MnLCAnc3R5bGVzaGVldC9sZXNzJylcbiAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgY29uc3QgbGVzc0NvbmZpZ05vZGUgPSB0aGlzLmRvYy5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTtcbiAgICAgICAgbGVzc0NvbmZpZ05vZGUuaW5uZXJIVE1MID0gYFxuICAgICAgICAgIHdpbmRvdy5sZXNzID0ge1xuICAgICAgICAgICAgYXN5bmM6IHRydWUsXG4gICAgICAgICAgICBlbnY6ICdwcm9kdWN0aW9uJyxcbiAgICAgICAgICAgIGphdmFzY3JpcHRFbmFibGVkOiB0cnVlXG4gICAgICAgICAgfTtcbiAgICAgICAgYDtcbiAgICAgICAgdGhpcy5kb2MuYm9keS5hcHBlbmRDaGlsZChsZXNzQ29uZmlnTm9kZSk7XG4gICAgICB9KVxuICAgICAgLnRoZW4oKCkgPT4gdGhpcy5sYXp5LmxvYWRTY3JpcHQoJ2h0dHBzOi8vZ3cuYWxpcGF5b2JqZWN0cy5jb20vb3MvbGliL2xlc3MuanMvMy44LjEvbGVzcy5taW4uanMnKSlcbiAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgdGhpcy5sb2FkZWRMZXNzID0gdHJ1ZTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZW5WYXJzKCk6IE56U2FmZUFueSB7XG4gICAgY29uc3QgeyBkYXRhLCBjb2xvciwgdmFsaWRLZXlzIH0gPSB0aGlzO1xuICAgIGNvbnN0IHZhcnM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7XG4gICAgICBbYEBwcmltYXJ5LWNvbG9yYF06IGNvbG9yXG4gICAgfTtcbiAgICB2YWxpZEtleXMuZmlsdGVyKGtleSA9PiBrZXkgIT09ICdwcmltYXJ5LWNvbG9yJykuZm9yRWFjaChrZXkgPT4gKHZhcnNbYEAke2tleX1gXSA9IGRhdGFba2V5XS52YWx1ZSkpO1xuICAgIHRoaXMuc2V0TGF5b3V0KEFMQUlOREVGQVVMVFZBUiwgdmFycyk7XG4gICAgcmV0dXJuIHZhcnM7XG4gIH1cblxuICBAWm9uZU91dHNpZGUoKVxuICBwcml2YXRlIHJ1bkxlc3MoKTogdm9pZCB7XG4gICAgY29uc3QgeyBuZ1pvbmUsIG1zZywgY2RyIH0gPSB0aGlzO1xuICAgIGNvbnN0IG1zZ0lkID0gbXNnLmxvYWRpbmcodGhpcy5jb21waWxpbmdUZXh0LCB7IG56RHVyYXRpb246IDAgfSkubWVzc2FnZUlkO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5sb2FkTGVzcygpLnRoZW4oKCkgPT4ge1xuICAgICAgICAod2luZG93IGFzIE56U2FmZUFueSkubGVzcy5tb2RpZnlWYXJzKHRoaXMuZ2VuVmFycygpKS50aGVuKCgpID0+IHtcbiAgICAgICAgICBtc2cuc3VjY2Vzcygn5oiQ5YqfJyk7XG4gICAgICAgICAgbXNnLnJlbW92ZShtc2dJZCk7XG4gICAgICAgICAgbmdab25lLnJ1bigoKSA9PiBjZHIuZGV0ZWN0Q2hhbmdlcygpKTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9LCAyMDApO1xuICB9XG5cbiAgdG9nZ2xlKCk6IHZvaWQge1xuICAgIHRoaXMuY29sbGFwc2UgPSAhdGhpcy5jb2xsYXBzZTtcbiAgfVxuXG4gIGNoYW5nZUNvbG9yKGNvbG9yOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmNvbG9yID0gY29sb3I7XG4gICAgT2JqZWN0LmtleXMoREVGQVVMVF9WQVJTKVxuICAgICAgLmZpbHRlcihrZXkgPT4gREVGQVVMVF9WQVJTW2tleV0uZGVmYXVsdCA9PT0gJ0BwcmltYXJ5LWNvbG9yJylcbiAgICAgIC5mb3JFYWNoKGtleSA9PiBkZWxldGUgdGhpcy5jYWNoZWREYXRhW2BAJHtrZXl9YF0pO1xuICAgIHRoaXMucmVzZXREYXRhKHRoaXMuY2FjaGVkRGF0YSwgZmFsc2UpO1xuICB9XG5cbiAgc2V0TGF5b3V0KG5hbWU6IHN0cmluZywgdmFsdWU6IE56U2FmZUFueSk6IHZvaWQge1xuICAgIHRoaXMuc2V0dGluZ1Nydi5zZXRMYXlvdXQobmFtZSwgdmFsdWUpO1xuICB9XG5cbiAgcHJpdmF0ZSByZXNldERhdGEobm93RGF0YT86IHsgW2tleTogc3RyaW5nXTogTnpTYWZlQW55IH0sIHJ1bjogYm9vbGVhbiA9IHRydWUpOiB2b2lkIHtcbiAgICBub3dEYXRhID0gbm93RGF0YSB8fCB7fTtcbiAgICBjb25zdCBkYXRhID0gZGVlcENvcHkoREVGQVVMVF9WQVJTKTtcbiAgICBPYmplY3Qua2V5cyhkYXRhKS5mb3JFYWNoKGtleSA9PiB7XG4gICAgICBjb25zdCB2YWx1ZSA9IG5vd0RhdGEhW2BAJHtrZXl9YF0gfHwgZGF0YVtrZXldLmRlZmF1bHQgfHwgJyc7XG4gICAgICBkYXRhW2tleV0udmFsdWUgPSB2YWx1ZSA9PT0gYEBwcmltYXJ5LWNvbG9yYCA/IHRoaXMuY29sb3IgOiB2YWx1ZTtcbiAgICB9KTtcbiAgICB0aGlzLmRhdGEgPSBkYXRhO1xuICAgIGlmIChydW4pIHtcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIHRoaXMucnVuTGVzcygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0IHZhbGlkS2V5cygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKHRoaXMuZGF0YSkuZmlsdGVyKGtleSA9PiB0aGlzLmRhdGFba2V5XS52YWx1ZSAhPT0gdGhpcy5kYXRhW2tleV0uZGVmYXVsdCk7XG4gIH1cblxuICBhcHBseSgpOiB2b2lkIHtcbiAgICB0aGlzLnJ1bkxlc3MoKTtcbiAgfVxuXG4gIHJlc2V0KCk6IHZvaWQge1xuICAgIHRoaXMuY29sb3IgPSB0aGlzLkRFRkFVTFRfUFJJTUFSWTtcbiAgICB0aGlzLnNldHRpbmdTcnYuc2V0TGF5b3V0KEFMQUlOREVGQVVMVFZBUiwge30pO1xuICAgIHRoaXMucmVzZXREYXRhKHt9KTtcbiAgfVxuXG4gIGNvcHlWYXIoKTogdm9pZCB7XG4gICAgY29uc3QgdmFycyA9IHRoaXMuZ2VuVmFycygpO1xuICAgIGNvbnN0IGNvcHlDb250ZW50ID0gT2JqZWN0LmtleXModmFycylcbiAgICAgIC5tYXAoa2V5ID0+IGAke2tleX06ICR7dmFyc1trZXldfTtgKVxuICAgICAgLmpvaW4oJ1xcbicpO1xuICAgIGNvcHkoY29weUNvbnRlbnQpO1xuICAgIHRoaXMubXNnLnN1Y2Nlc3MoJ0NvcHkgc3VjY2VzcycpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICB9XG59XG4iLCI8bnotZHJhd2VyXG4gIFtuelZpc2libGVdPVwiY29sbGFwc2VcIlxuICBbbnpQbGFjZW1lbnRdPVwiZGlyID09PSAncnRsJyA/ICdsZWZ0JyA6ICdyaWdodCdcIlxuICBbbnpXaWR0aF09XCI1MDBcIlxuICAobnpPbkNsb3NlKT1cInRvZ2dsZSgpXCJcbj5cbiAgPGRpdiAqbnpEcmF3ZXJDb250ZW50IGNsYXNzPVwic2V0dGluZy1kcmF3ZXJfX2NvbnRlbnRcIj5cbiAgICA8ZGl2IGNsYXNzPVwic2V0dGluZy1kcmF3ZXJfX2JvZHkgc2V0dGluZy1kcmF3ZXJfX3RoZW1lXCI+XG4gICAgICA8aDMgY2xhc3M9XCJzZXR0aW5nLWRyYXdlcl9fdGl0bGVcIj7kuLvpopjoibI8L2gzPlxuICAgICAgPHNwYW5cbiAgICAgICAgKm5nRm9yPVwibGV0IGMgb2YgY29sb3JzXCJcbiAgICAgICAgW3N0eWxlXT1cInsgJ2JhY2tncm91bmQtY29sb3InOiBjLmNvbG9yIH1cIlxuICAgICAgICAoY2xpY2spPVwiY2hhbmdlQ29sb3IoYy5jb2xvcilcIlxuICAgICAgICBuei10b29sdGlwXG4gICAgICAgIFtuelRvb2x0aXBUaXRsZV09XCJjLmtleVwiXG4gICAgICAgIGNsYXNzPVwic2V0dGluZy1kcmF3ZXJfX3RoZW1lLXRhZ1wiXG4gICAgICA+XG4gICAgICAgIDxpICpuZ0lmPVwiY29sb3IgPT09IGMuY29sb3JcIiBuei1pY29uIG56VHlwZT1cImNoZWNrXCI+PC9pPlxuICAgICAgPC9zcGFuPlxuICAgIDwvZGl2PlxuICAgIDxuei1kaXZpZGVyPjwvbnotZGl2aWRlcj5cbiAgICA8ZGl2IGNsYXNzPVwic2V0dGluZy1kcmF3ZXJfX2JvZHlcIj5cbiAgICAgIDxoMyBjbGFzcz1cInNldHRpbmctZHJhd2VyX190aXRsZVwiPuiuvue9rjwvaDM+XG4gICAgICA8bnotdGFic2V0PlxuICAgICAgICA8bnotdGFiIG56VGl0bGU9XCLpobbpg6hcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2V0dGluZy1kcmF3ZXJfX2JvZHlcIj5cbiAgICAgICAgICAgIDxzZXR0aW5nLWRyYXdlci1pdGVtIFtkYXRhXT1cImRhdGFbJ2FsYWluLWRlZmF1bHQtaGVhZGVyLWhnJ11cIj48L3NldHRpbmctZHJhd2VyLWl0ZW0+XG4gICAgICAgICAgICA8c2V0dGluZy1kcmF3ZXItaXRlbSBbZGF0YV09XCJkYXRhWydhbGFpbi1kZWZhdWx0LWhlYWRlci1iZyddXCI+PC9zZXR0aW5nLWRyYXdlci1pdGVtPlxuICAgICAgICAgICAgPHNldHRpbmctZHJhd2VyLWl0ZW0gW2RhdGFdPVwiZGF0YVsnYWxhaW4tZGVmYXVsdC1oZWFkZXItcGFkZGluZyddXCI+PC9zZXR0aW5nLWRyYXdlci1pdGVtPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L256LXRhYj5cbiAgICAgICAgPG56LXRhYiBuelRpdGxlPVwi5L6n6L655qCPXCI+XG4gICAgICAgICAgPHNldHRpbmctZHJhd2VyLWl0ZW0gW2RhdGFdPVwiZGF0YVsnYWxhaW4tZGVmYXVsdC1hc2lkZS13ZCddXCI+PC9zZXR0aW5nLWRyYXdlci1pdGVtPlxuICAgICAgICAgIDxzZXR0aW5nLWRyYXdlci1pdGVtIFtkYXRhXT1cImRhdGFbJ2FsYWluLWRlZmF1bHQtYXNpZGUtYmcnXVwiPjwvc2V0dGluZy1kcmF3ZXItaXRlbT5cbiAgICAgICAgICA8c2V0dGluZy1kcmF3ZXItaXRlbSBbZGF0YV09XCJkYXRhWydhbGFpbi1kZWZhdWx0LWFzaWRlLWNvbGxhcHNlZC13ZCddXCI+PC9zZXR0aW5nLWRyYXdlci1pdGVtPlxuICAgICAgICAgIDxzZXR0aW5nLWRyYXdlci1pdGVtIFtkYXRhXT1cImRhdGFbJ2FsYWluLWRlZmF1bHQtYXNpZGUtbmF2LXBhZGRpbmctdG9wLWJvdHRvbSddXCI+PC9zZXR0aW5nLWRyYXdlci1pdGVtPlxuICAgICAgICA8L256LXRhYj5cbiAgICAgICAgPG56LXRhYiBuelRpdGxlPVwi5YaF5a65XCI+XG4gICAgICAgICAgPHNldHRpbmctZHJhd2VyLWl0ZW0gW2RhdGFdPVwiZGF0YVsnYWxhaW4tZGVmYXVsdC1jb250ZW50LWJnJ11cIj48L3NldHRpbmctZHJhd2VyLWl0ZW0+XG4gICAgICAgICAgPHNldHRpbmctZHJhd2VyLWl0ZW0gW2RhdGFdPVwiZGF0YVsnYWxhaW4tZGVmYXVsdC1jb250ZW50LWhlYWRpbmctYmcnXVwiPjwvc2V0dGluZy1kcmF3ZXItaXRlbT5cbiAgICAgICAgICA8c2V0dGluZy1kcmF3ZXItaXRlbSBbZGF0YV09XCJkYXRhWydhbGFpbi1kZWZhdWx0LWNvbnRlbnQtaGVhZGluZy1ib3JkZXInXVwiPjwvc2V0dGluZy1kcmF3ZXItaXRlbT5cbiAgICAgICAgICA8c2V0dGluZy1kcmF3ZXItaXRlbSBbZGF0YV09XCJkYXRhWydhbGFpbi1kZWZhdWx0LWNvbnRlbnQtcGFkZGluZyddXCI+PC9zZXR0aW5nLWRyYXdlci1pdGVtPlxuICAgICAgICA8L256LXRhYj5cbiAgICAgICAgPG56LXRhYiBuelRpdGxlPVwi5YW25a6DXCI+XG4gICAgICAgICAgPHNldHRpbmctZHJhd2VyLWl0ZW0gW2RhdGFdPVwiZGF0YVsnZm9ybS1zdGF0ZS12aXN1YWwtZmVlZGJhY2stZW5hYmxlZCddXCI+PC9zZXR0aW5nLWRyYXdlci1pdGVtPlxuICAgICAgICAgIDxzZXR0aW5nLWRyYXdlci1pdGVtIFtkYXRhXT1cImRhdGFbJ3ByZXNlcnZlLXdoaXRlLXNwYWNlcy1lbmFibGVkJ11cIj48L3NldHRpbmctZHJhd2VyLWl0ZW0+XG4gICAgICAgICAgPHNldHRpbmctZHJhd2VyLWl0ZW0gW2RhdGFdPVwiZGF0YVsnbnotdGFibGUtaW1nLXJhZGl1cyddXCI+PC9zZXR0aW5nLWRyYXdlci1pdGVtPlxuICAgICAgICAgIDxzZXR0aW5nLWRyYXdlci1pdGVtIFtkYXRhXT1cImRhdGFbJ256LXRhYmxlLWltZy1tYXJnaW4tcmlnaHQnXVwiPjwvc2V0dGluZy1kcmF3ZXItaXRlbT5cbiAgICAgICAgICA8c2V0dGluZy1kcmF3ZXItaXRlbSBbZGF0YV09XCJkYXRhWyduei10YWJsZS1pbWctbWF4LXdpZHRoJ11cIj48L3NldHRpbmctZHJhd2VyLWl0ZW0+XG4gICAgICAgICAgPHNldHRpbmctZHJhd2VyLWl0ZW0gW2RhdGFdPVwiZGF0YVsnbnotdGFibGUtaW1nLW1heC1oZWlnaHQnXVwiPjwvc2V0dGluZy1kcmF3ZXItaXRlbT5cbiAgICAgICAgPC9uei10YWI+XG4gICAgICA8L256LXRhYnNldD5cbiAgICA8L2Rpdj5cbiAgICA8bnotZGl2aWRlcj48L256LWRpdmlkZXI+XG4gICAgPGRpdiBjbGFzcz1cInNldHRpbmctZHJhd2VyX19ib2R5XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwic2V0dGluZy1kcmF3ZXJfX2JvZHktaXRlbVwiPlxuICAgICAgICDlm7rlrprlpLTlkozkvqfovrnmoI9cbiAgICAgICAgPG56LXN3aXRjaFxuICAgICAgICAgIG56U2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cImxheW91dC5maXhlZFwiXG4gICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwic2V0TGF5b3V0KCdmaXhlZCcsIGxheW91dC5maXhlZClcIlxuICAgICAgICA+PC9uei1zd2l0Y2g+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJzZXR0aW5nLWRyYXdlcl9fYm9keS1pdGVtXCI+XG4gICAgICAgIOiJsuW8seaooeW8j1xuICAgICAgICA8bnotc3dpdGNoXG4gICAgICAgICAgbnpTaXplPVwic21hbGxcIlxuICAgICAgICAgIFsobmdNb2RlbCldPVwibGF5b3V0LmNvbG9yV2Vha1wiXG4gICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwic2V0TGF5b3V0KCdjb2xvcldlYWsnLCBsYXlvdXQuY29sb3JXZWFrKVwiXG4gICAgICAgID48L256LXN3aXRjaD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxuei1kaXZpZGVyPjwvbnotZGl2aWRlcj5cbiAgICA8YnV0dG9uIChjbGljayk9XCJhcHBseSgpXCIgdHlwZT1cImJ1dHRvblwiIG56LWJ1dHRvbiBuelR5cGU9XCJwcmltYXJ5XCI+6aKE6KeIPC9idXR0b24+XG4gICAgPGJ1dHRvbiAoY2xpY2spPVwicmVzZXQoKVwiIHR5cGU9XCJidXR0b25cIiBuei1idXR0b24+6YeN572uPC9idXR0b24+XG4gICAgPGJ1dHRvbiAoY2xpY2spPVwiY29weVZhcigpXCIgdHlwZT1cImJ1dHRvblwiIG56LWJ1dHRvbj7mi7fotJ08L2J1dHRvbj5cbiAgICA8bnotYWxlcnRcbiAgICAgIGNsYXNzPVwibXQtbWRcIlxuICAgICAgbnpUeXBlPVwid2FybmluZ1wiXG4gICAgICBuek1lc3NhZ2U9XCLphY3nva7moI/lj6rlnKjlvIDlj5Hnjq/looPnlKjkuo7pooTop4jvvIznlJ/kuqfnjq/looPkuI3kvJrlsZXnjrDvvIzor7fmi7fotJ3lkI7miYvliqjkv67mlLnlj4LmlbDphY3nva7mlofku7Ygc3JjL3N0eWxlcy90aGVtZS5sZXNzXCJcbiAgICA+PC9uei1hbGVydD5cbiAgPC9kaXY+XG48L256LWRyYXdlcj5cbjxkaXZcbiAgY2xhc3M9XCJzZXR0aW5nLWRyYXdlcl9faGFuZGxlXCJcbiAgW25nQ2xhc3NdPVwieyAnc2V0dGluZy1kcmF3ZXJfX2hhbmRsZS1vcGVuZWQnOiBjb2xsYXBzZSB9XCJcbiAgKGNsaWNrKT1cInRvZ2dsZSgpXCJcbiAgbnotdG9vbHRpcFxuICBbbnpUb29sdGlwVGl0bGVdPVwiaXNEZXYgPyBkZXZUaXBzIDogbnVsbFwiXG4+XG4gIDxpIG56LWljb24gW256VHlwZV09XCIhY29sbGFwc2UgPyAnc2V0dGluZycgOiAnY2xvc2UnXCIgY2xhc3M9XCJzZXR0aW5nLWRyYXdlcl9faGFuZGxlLWljb25cIj48L2k+XG48L2Rpdj5cbiJdfQ==