@delon/abc 16.2.0 → 16.3.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 (187) hide show
  1. package/avatar-list/avatar-list.component.d.ts +3 -4
  2. package/cell/cell-host.directive.d.ts +13 -0
  3. package/cell/cell.component.d.ts +45 -0
  4. package/cell/cell.module.d.ts +17 -0
  5. package/cell/cell.service.d.ts +23 -0
  6. package/cell/cell.types.d.ts +238 -0
  7. package/cell/index.d.ts +5 -0
  8. package/cell/style/index.less +63 -0
  9. package/error-collect/error-collect.component.d.ts +2 -3
  10. package/esm2022/auto-focus/auto-focus.directive.mjs +3 -3
  11. package/esm2022/auto-focus/auto-focus.module.mjs +4 -4
  12. package/esm2022/avatar-list/avatar-list-item.component.mjs +5 -5
  13. package/esm2022/avatar-list/avatar-list.component.mjs +9 -12
  14. package/esm2022/avatar-list/avatar-list.module.mjs +4 -4
  15. package/esm2022/cell/cell-host.directive.mjs +34 -0
  16. package/esm2022/cell/cell.component.mjs +270 -0
  17. package/esm2022/cell/cell.mjs +5 -0
  18. package/esm2022/cell/cell.module.mjs +54 -0
  19. package/esm2022/cell/cell.service.mjs +168 -0
  20. package/esm2022/cell/cell.types.mjs +2 -0
  21. package/esm2022/cell/index.mjs +6 -0
  22. package/esm2022/count-down/count-down.component.mjs +5 -5
  23. package/esm2022/count-down/count-down.module.mjs +4 -4
  24. package/esm2022/date-picker/date-picker.module.mjs +4 -4
  25. package/esm2022/date-picker/range-shortcut.component.mjs +3 -3
  26. package/esm2022/date-picker/range.directive.mjs +3 -3
  27. package/esm2022/down-file/down-file.directive.mjs +3 -3
  28. package/esm2022/down-file/down-file.module.mjs +4 -4
  29. package/esm2022/ellipsis/ellipsis.component.mjs +5 -5
  30. package/esm2022/ellipsis/ellipsis.module.mjs +4 -4
  31. package/esm2022/error-collect/error-collect.component.mjs +11 -13
  32. package/esm2022/error-collect/error-collect.module.mjs +4 -4
  33. package/esm2022/exception/exception.component.mjs +14 -14
  34. package/esm2022/exception/exception.module.mjs +4 -4
  35. package/esm2022/footer-toolbar/footer-toolbar.component.mjs +5 -5
  36. package/esm2022/footer-toolbar/footer-toolbar.module.mjs +4 -4
  37. package/esm2022/full-content/full-content-toggle.directive.mjs +3 -3
  38. package/esm2022/full-content/full-content.component.mjs +12 -14
  39. package/esm2022/full-content/full-content.module.mjs +4 -4
  40. package/esm2022/full-content/full-content.service.mjs +3 -3
  41. package/esm2022/global-footer/global-footer-item.component.mjs +5 -5
  42. package/esm2022/global-footer/global-footer.component.mjs +12 -14
  43. package/esm2022/global-footer/global-footer.module.mjs +4 -4
  44. package/esm2022/hotkey/hotkey.directive.mjs +3 -3
  45. package/esm2022/hotkey/hotkey.module.mjs +4 -4
  46. package/esm2022/let/let.directive.mjs +3 -3
  47. package/esm2022/let/let.module.mjs +4 -4
  48. package/esm2022/loading/loading.component.mjs +5 -5
  49. package/esm2022/loading/loading.module.mjs +4 -4
  50. package/esm2022/loading/loading.service.mjs +3 -3
  51. package/esm2022/lodop/lodop.module.mjs +4 -4
  52. package/esm2022/lodop/lodop.service.mjs +3 -3
  53. package/esm2022/media/media.component.mjs +11 -13
  54. package/esm2022/media/media.module.mjs +4 -4
  55. package/esm2022/media/media.service.mjs +3 -3
  56. package/esm2022/notice-icon/notice-icon-tab.component.mjs +5 -5
  57. package/esm2022/notice-icon/notice-icon.component.mjs +5 -5
  58. package/esm2022/notice-icon/notice-icon.module.mjs +4 -4
  59. package/esm2022/observers/observer-size.mjs +10 -10
  60. package/esm2022/onboarding/onboarding.component.mjs +3 -3
  61. package/esm2022/onboarding/onboarding.module.mjs +4 -4
  62. package/esm2022/onboarding/onboarding.service.mjs +3 -3
  63. package/esm2022/page-header/page-header.component.mjs +16 -16
  64. package/esm2022/page-header/page-header.module.mjs +27 -6
  65. package/esm2022/pdf/pdf.component.mjs +14 -16
  66. package/esm2022/pdf/pdf.module.mjs +4 -4
  67. package/esm2022/pdf/pdf.types.mjs +2 -1
  68. package/esm2022/qr/qr.component.mjs +3 -3
  69. package/esm2022/qr/qr.module.mjs +4 -4
  70. package/esm2022/quick-menu/quick-menu.component.mjs +5 -5
  71. package/esm2022/quick-menu/quick-menu.module.mjs +4 -4
  72. package/esm2022/result/result.component.mjs +12 -14
  73. package/esm2022/result/result.module.mjs +4 -4
  74. package/esm2022/reuse-tab/public_api.mjs +2 -1
  75. package/esm2022/reuse-tab/reuse-tab-context-menu.component.mjs +3 -3
  76. package/esm2022/reuse-tab/reuse-tab-context.component.mjs +3 -3
  77. package/esm2022/reuse-tab/reuse-tab-context.directive.mjs +3 -3
  78. package/esm2022/reuse-tab/reuse-tab-context.service.mjs +3 -3
  79. package/esm2022/reuse-tab/reuse-tab.component.mjs +12 -16
  80. package/esm2022/reuse-tab/reuse-tab.module.mjs +4 -4
  81. package/esm2022/reuse-tab/reuse-tab.service.mjs +3 -3
  82. package/esm2022/se/se-container.component.mjs +10 -10
  83. package/esm2022/se/se.component.mjs +13 -15
  84. package/esm2022/se/se.module.mjs +4 -4
  85. package/esm2022/sg/sg-container.component.mjs +5 -5
  86. package/esm2022/sg/sg.component.mjs +5 -5
  87. package/esm2022/sg/sg.module.mjs +4 -4
  88. package/esm2022/st/st-column-source.mjs +8 -4
  89. package/esm2022/st/st-data-source.mjs +14 -7
  90. package/esm2022/st/st-export.mjs +3 -3
  91. package/esm2022/st/st-filter.component.mjs +12 -12
  92. package/esm2022/st/st-row.directive.mjs +6 -6
  93. package/esm2022/st/st-widget-host.directive.mjs +3 -3
  94. package/esm2022/st/st-widget.mjs +3 -3
  95. package/esm2022/st/st.component.mjs +83 -97
  96. package/esm2022/st/st.interfaces.mjs +1 -1
  97. package/esm2022/st/st.module.mjs +9 -5
  98. package/esm2022/st/st.types.mjs +1 -1
  99. package/esm2022/sv/sv-container.component.mjs +22 -12
  100. package/esm2022/sv/sv-value.component.mjs +6 -6
  101. package/esm2022/sv/sv.component.mjs +12 -9
  102. package/esm2022/sv/sv.module.mjs +4 -4
  103. package/esm2022/tag-select/tag-select.component.mjs +10 -14
  104. package/esm2022/tag-select/tag-select.module.mjs +4 -4
  105. package/esm2022/xlsx/xlsx.directive.mjs +3 -3
  106. package/esm2022/xlsx/xlsx.module.mjs +4 -4
  107. package/esm2022/xlsx/xlsx.service.mjs +3 -3
  108. package/esm2022/zip/zip.module.mjs +4 -4
  109. package/esm2022/zip/zip.service.mjs +3 -3
  110. package/exception/exception.component.d.ts +2 -3
  111. package/fesm2022/auto-focus.mjs +7 -7
  112. package/fesm2022/avatar-list.mjs +16 -19
  113. package/fesm2022/avatar-list.mjs.map +1 -1
  114. package/fesm2022/cell.mjs +521 -0
  115. package/fesm2022/cell.mjs.map +1 -0
  116. package/fesm2022/chart-observer-size.mjs +10 -10
  117. package/fesm2022/count-down.mjs +8 -8
  118. package/fesm2022/count-down.mjs.map +1 -1
  119. package/fesm2022/date-picker.mjs +10 -10
  120. package/fesm2022/down-file.mjs +7 -7
  121. package/fesm2022/ellipsis.mjs +8 -8
  122. package/fesm2022/ellipsis.mjs.map +1 -1
  123. package/fesm2022/error-collect.mjs +14 -16
  124. package/fesm2022/error-collect.mjs.map +1 -1
  125. package/fesm2022/exception.mjs +17 -17
  126. package/fesm2022/exception.mjs.map +1 -1
  127. package/fesm2022/footer-toolbar.mjs +8 -8
  128. package/fesm2022/footer-toolbar.mjs.map +1 -1
  129. package/fesm2022/full-content.mjs +21 -23
  130. package/fesm2022/full-content.mjs.map +1 -1
  131. package/fesm2022/global-footer.mjs +19 -21
  132. package/fesm2022/global-footer.mjs.map +1 -1
  133. package/fesm2022/hotkey.mjs +7 -7
  134. package/fesm2022/let.mjs +7 -7
  135. package/fesm2022/loading.mjs +11 -11
  136. package/fesm2022/loading.mjs.map +1 -1
  137. package/fesm2022/lodop.mjs +7 -7
  138. package/fesm2022/media.mjs +17 -19
  139. package/fesm2022/media.mjs.map +1 -1
  140. package/fesm2022/notice-icon.mjs +12 -12
  141. package/fesm2022/notice-icon.mjs.map +1 -1
  142. package/fesm2022/onboarding.mjs +10 -10
  143. package/fesm2022/page-header.mjs +41 -20
  144. package/fesm2022/page-header.mjs.map +1 -1
  145. package/fesm2022/pdf.mjs +18 -19
  146. package/fesm2022/pdf.mjs.map +1 -1
  147. package/fesm2022/qr.mjs +7 -7
  148. package/fesm2022/quick-menu.mjs +8 -8
  149. package/fesm2022/quick-menu.mjs.map +1 -1
  150. package/fesm2022/result.mjs +15 -17
  151. package/fesm2022/result.mjs.map +1 -1
  152. package/fesm2022/reuse-tab.mjs +31 -35
  153. package/fesm2022/reuse-tab.mjs.map +1 -1
  154. package/fesm2022/se.mjs +25 -27
  155. package/fesm2022/se.mjs.map +1 -1
  156. package/fesm2022/sg.mjs +12 -12
  157. package/fesm2022/sg.mjs.map +1 -1
  158. package/fesm2022/st.mjs +134 -133
  159. package/fesm2022/st.mjs.map +1 -1
  160. package/fesm2022/sv.mjs +41 -28
  161. package/fesm2022/sv.mjs.map +1 -1
  162. package/fesm2022/tag-select.mjs +13 -17
  163. package/fesm2022/tag-select.mjs.map +1 -1
  164. package/fesm2022/xlsx.mjs +10 -10
  165. package/fesm2022/zip.mjs +7 -7
  166. package/global-footer/global-footer.component.d.ts +6 -6
  167. package/index.less +1 -0
  168. package/package.json +10 -5
  169. package/page-header/page-header.component.d.ts +5 -5
  170. package/page-header/page-header.module.d.ts +2 -1
  171. package/page-header/style/index.less +1 -0
  172. package/pdf/pdf.component.d.ts +6 -5
  173. package/pdf/pdf.types.d.ts +2 -1
  174. package/result/result.component.d.ts +6 -6
  175. package/reuse-tab/public_api.d.ts +1 -0
  176. package/reuse-tab/reuse-tab.component.d.ts +2 -3
  177. package/se/se.component.d.ts +2 -3
  178. package/st/st-data-source.d.ts +1 -1
  179. package/st/st.component.d.ts +7 -7
  180. package/st/st.interfaces.d.ts +22 -2
  181. package/st/st.module.d.ts +17 -16
  182. package/st/st.types.d.ts +3 -0
  183. package/sv/style/index.less +36 -0
  184. package/sv/sv-container.component.d.ts +7 -2
  185. package/sv/sv.component.d.ts +3 -3
  186. package/tag-select/tag-select.component.d.ts +2 -3
  187. package/theme-default.less +11 -0
@@ -7,11 +7,11 @@ import { AvatarListComponent } from './avatar-list.component';
7
7
  import * as i0 from "@angular/core";
8
8
  const COMPONENTS = [AvatarListComponent, AvatarListItemComponent];
9
9
  export class AvatarListModule {
10
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: AvatarListModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
11
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.6", ngImport: i0, type: AvatarListModule, declarations: [AvatarListComponent, AvatarListItemComponent], imports: [CommonModule, NzAvatarModule, NzToolTipModule], exports: [AvatarListComponent, AvatarListItemComponent] }); }
12
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: AvatarListModule, imports: [CommonModule, NzAvatarModule, NzToolTipModule] }); }
10
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: AvatarListModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
11
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.3", ngImport: i0, type: AvatarListModule, declarations: [AvatarListComponent, AvatarListItemComponent], imports: [CommonModule, NzAvatarModule, NzToolTipModule], exports: [AvatarListComponent, AvatarListItemComponent] }); }
12
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: AvatarListModule, imports: [CommonModule, NzAvatarModule, NzToolTipModule] }); }
13
13
  }
14
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: AvatarListModule, decorators: [{
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: AvatarListModule, decorators: [{
15
15
  type: NgModule,
16
16
  args: [{
17
17
  imports: [CommonModule, NzAvatarModule, NzToolTipModule],
@@ -0,0 +1,34 @@
1
+ import { Directive, Input } from '@angular/core';
2
+ import { warn } from '@delon/util/other';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "./cell.service";
5
+ export class CellHostDirective {
6
+ constructor(srv, viewContainerRef) {
7
+ this.srv = srv;
8
+ this.viewContainerRef = viewContainerRef;
9
+ }
10
+ ngOnInit() {
11
+ const widget = this.data.options.widget;
12
+ const componentType = this.srv.getWidget(widget.key)?.ref;
13
+ if (componentType == null) {
14
+ if (typeof ngDevMode === 'undefined' || ngDevMode) {
15
+ warn(`cell: No widget for type "${widget.key}"`);
16
+ }
17
+ return;
18
+ }
19
+ this.viewContainerRef.clear();
20
+ const componentRef = this.viewContainerRef.createComponent(componentType);
21
+ componentRef.instance.data = this.data;
22
+ }
23
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: CellHostDirective, deps: [{ token: i1.CellService }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive }); }
24
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.3", type: CellHostDirective, selector: "[cell-widget-host]", inputs: { data: "data" }, ngImport: i0 }); }
25
+ }
26
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: CellHostDirective, decorators: [{
27
+ type: Directive,
28
+ args: [{
29
+ selector: '[cell-widget-host]'
30
+ }]
31
+ }], ctorParameters: function () { return [{ type: i1.CellService }, { type: i0.ViewContainerRef }]; }, propDecorators: { data: [{
32
+ type: Input
33
+ }] } });
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC1ob3N0LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FiYy9jZWxsL2NlbGwtaG9zdC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQWtDLE1BQU0sZUFBZSxDQUFDO0FBRWpGLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7O0FBUXpDLE1BQU0sT0FBTyxpQkFBaUI7SUFHNUIsWUFDVSxHQUFnQixFQUNoQixnQkFBa0M7UUFEbEMsUUFBRyxHQUFILEdBQUcsQ0FBYTtRQUNoQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO0lBQ3pDLENBQUM7SUFFSixRQUFRO1FBQ04sTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFRLENBQUMsTUFBTyxDQUFDO1FBQzFDLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxHQUFJLENBQUMsRUFBRSxHQUFvQixDQUFDO1FBQzVFLElBQUksYUFBYSxJQUFJLElBQUksRUFBRTtZQUN6QixJQUFJLE9BQU8sU0FBUyxLQUFLLFdBQVcsSUFBSSxTQUFTLEVBQUU7Z0JBQ2pELElBQUksQ0FBQyw2QkFBNkIsTUFBTSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUM7YUFDbEQ7WUFDRCxPQUFPO1NBQ1I7UUFFRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDOUIsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN6RSxZQUFZLENBQUMsUUFBcUMsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztJQUN2RSxDQUFDOzhHQXJCVSxpQkFBaUI7a0dBQWpCLGlCQUFpQjs7MkZBQWpCLGlCQUFpQjtrQkFIN0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsb0JBQW9CO2lCQUMvQjtpSUFFVSxJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIElucHV0LCBPbkluaXQsIFR5cGUsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgd2FybiB9IGZyb20gJ0BkZWxvbi91dGlsL290aGVyJztcblxuaW1wb3J0IHsgQ2VsbFNlcnZpY2UgfSBmcm9tICcuL2NlbGwuc2VydmljZSc7XG5pbXBvcnQgeyBDZWxsV2lkZ2V0RGF0YSB9IGZyb20gJy4vY2VsbC50eXBlcyc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tjZWxsLXdpZGdldC1ob3N0XSdcbn0pXG5leHBvcnQgY2xhc3MgQ2VsbEhvc3REaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBkYXRhITogQ2VsbFdpZGdldERhdGE7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBzcnY6IENlbGxTZXJ2aWNlLFxuICAgIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZlxuICApIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgY29uc3Qgd2lkZ2V0ID0gdGhpcy5kYXRhLm9wdGlvbnMhLndpZGdldCE7XG4gICAgY29uc3QgY29tcG9uZW50VHlwZSA9IHRoaXMuc3J2LmdldFdpZGdldCh3aWRnZXQua2V5ISk/LnJlZiBhcyBUeXBlPHVua25vd24+O1xuICAgIGlmIChjb21wb25lbnRUeXBlID09IG51bGwpIHtcbiAgICAgIGlmICh0eXBlb2YgbmdEZXZNb2RlID09PSAndW5kZWZpbmVkJyB8fCBuZ0Rldk1vZGUpIHtcbiAgICAgICAgd2FybihgY2VsbDogTm8gd2lkZ2V0IGZvciB0eXBlIFwiJHt3aWRnZXQua2V5fVwiYCk7XG4gICAgICB9XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy52aWV3Q29udGFpbmVyUmVmLmNsZWFyKCk7XG4gICAgY29uc3QgY29tcG9uZW50UmVmID0gdGhpcy52aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudChjb21wb25lbnRUeXBlKTtcbiAgICAoY29tcG9uZW50UmVmLmluc3RhbmNlIGFzIHsgZGF0YTogQ2VsbFdpZGdldERhdGEgfSkuZGF0YSA9IHRoaXMuZGF0YTtcbiAgfVxufVxuIl19
@@ -0,0 +1,270 @@
1
+ import { __decorate } from "tslib";
2
+ import { ChangeDetectionStrategy, Component, EventEmitter, Inject, Input, Output, ViewEncapsulation } from '@angular/core';
3
+ import { updateHostClass } from '@delon/util/browser';
4
+ import { InputBoolean } from '@delon/util/decorator';
5
+ import { WINDOW } from '@delon/util/token';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "./cell.service";
8
+ import * as i2 from "@angular/router";
9
+ import * as i3 from "ng-zorro-antd/image";
10
+ import * as i4 from "@angular/common";
11
+ import * as i5 from "@angular/forms";
12
+ import * as i6 from "ng-zorro-antd/checkbox";
13
+ import * as i7 from "ng-zorro-antd/radio";
14
+ import * as i8 from "ng-zorro-antd/badge";
15
+ import * as i9 from "ng-zorro-antd/tag";
16
+ import * as i10 from "ng-zorro-antd/tooltip";
17
+ import * as i11 from "ng-zorro-antd/icon";
18
+ import * as i12 from "./cell-host.directive";
19
+ export class CellComponent {
20
+ get safeOpt() {
21
+ return this.res?.options ?? {};
22
+ }
23
+ get isText() {
24
+ return this.res?.safeHtml === 'text';
25
+ }
26
+ get hostData() {
27
+ return {
28
+ value: this.value,
29
+ options: this.srv.fixOptions(this.options)
30
+ };
31
+ }
32
+ constructor(srv, router, cdr, el, renderer, imgSrv,
33
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
34
+ win) {
35
+ this.srv = srv;
36
+ this.router = router;
37
+ this.cdr = cdr;
38
+ this.el = el;
39
+ this.renderer = renderer;
40
+ this.imgSrv = imgSrv;
41
+ this.win = win;
42
+ this.showDefault = false;
43
+ this.valueChange = new EventEmitter();
44
+ this.loading = false;
45
+ this.disabled = false;
46
+ }
47
+ updateValue() {
48
+ this.destroy$?.unsubscribe();
49
+ this.destroy$ = this.srv.get(this.value, this.options).subscribe(res => {
50
+ this.res = res;
51
+ this.showDefault = this.value == this.safeOpt.default.condition;
52
+ this._text = res.result?.text ?? '';
53
+ this._unit = res.result?.unit ?? this.safeOpt?.unit;
54
+ this.cdr.detectChanges();
55
+ this.setClass();
56
+ });
57
+ }
58
+ setClass() {
59
+ const { el, renderer } = this;
60
+ const { renderType, size } = this.safeOpt;
61
+ updateHostClass(el.nativeElement, renderer, {
62
+ [`cell`]: true,
63
+ [`cell__${renderType}`]: renderType != null,
64
+ [`cell__${size}`]: size != null,
65
+ [`cell__has-unit`]: this._unit,
66
+ [`cell__has-default`]: this.showDefault,
67
+ [`cell__disabled`]: this.disabled
68
+ });
69
+ el.nativeElement.dataset.type = this.safeOpt.type;
70
+ }
71
+ ngOnChanges(changes) {
72
+ // Do not call updateValue when only updating loading, disabled
73
+ if (Object.keys(changes).every(k => ['loading', 'disabled'].includes(k))) {
74
+ this.setClass();
75
+ }
76
+ else {
77
+ this.updateValue();
78
+ }
79
+ }
80
+ change(value) {
81
+ this.value = value;
82
+ this.valueChange.emit(value);
83
+ }
84
+ _link(e) {
85
+ e.preventDefault();
86
+ e.stopPropagation();
87
+ if (this.disabled)
88
+ return;
89
+ const link = this.safeOpt.link;
90
+ const url = link?.url;
91
+ if (url == null)
92
+ return;
93
+ if (/https?:\/\//g.test(url)) {
94
+ this.win.open(url, link?.target);
95
+ }
96
+ else {
97
+ this.router.navigateByUrl(url);
98
+ }
99
+ }
100
+ _showImg(img) {
101
+ const config = this.safeOpt.img;
102
+ if (config == null || config.big == null)
103
+ return;
104
+ let idx = -1;
105
+ const list = this._text.map((p, index) => {
106
+ if (idx === -1 && p === img)
107
+ idx = index;
108
+ return typeof config.big === 'function' ? config.big(p) : p;
109
+ });
110
+ this.imgSrv
111
+ .preview(list.map(p => ({ src: p })), config.previewOptions)
112
+ .switchTo(idx);
113
+ }
114
+ ngOnDestroy() {
115
+ this.destroy$?.unsubscribe();
116
+ }
117
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: CellComponent, deps: [{ token: i1.CellService }, { token: i2.Router }, { token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i3.NzImageService }, { token: WINDOW }], target: i0.ɵɵFactoryTarget.Component }); }
118
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.3", type: CellComponent, selector: "cell, [cell]", inputs: { value: "value", options: "options", loading: "loading", disabled: "disabled" }, outputs: { valueChange: "valueChange" }, exportAs: ["cell"], usesOnChanges: true, ngImport: i0, template: `
119
+ <ng-template #text>
120
+ <ng-container [ngSwitch]="safeOpt.type">
121
+ <label
122
+ *ngSwitchCase="'checkbox'"
123
+ nz-checkbox
124
+ [nzDisabled]="disabled"
125
+ [ngModel]="value"
126
+ (ngModelChange)="change($event)"
127
+ >
128
+ {{ safeOpt.checkbox?.label }}
129
+ </label>
130
+ <label
131
+ *ngSwitchCase="'radio'"
132
+ nz-radio
133
+ [nzDisabled]="disabled"
134
+ [ngModel]="value"
135
+ (ngModelChange)="change($event)"
136
+ >
137
+ {{ safeOpt.radio?.label }}
138
+ </label>
139
+ <a
140
+ *ngSwitchCase="'link'"
141
+ (click)="_link($event)"
142
+ [attr.target]="safeOpt.link?.target"
143
+ [attr.title]="value"
144
+ [innerHTML]="_text"
145
+ ></a>
146
+ <nz-tag *ngSwitchCase="'tag'" [nzColor]="res?.result?.color">
147
+ <span [innerHTML]="_text"></span>
148
+ </nz-tag>
149
+ <nz-badge *ngSwitchCase="'badge'" [nzStatus]="res?.result?.color" nzText="{{ _text }}" />
150
+ <ng-template *ngSwitchCase="'widget'" cell-widget-host [data]="hostData" />
151
+ <ng-container *ngSwitchCase="'img'">
152
+ <img
153
+ *ngFor="let i of $any(_text)"
154
+ [attr.src]="i"
155
+ [attr.height]="safeOpt.img?.size"
156
+ [attr.width]="safeOpt.img?.size"
157
+ (click)="_showImg(i)"
158
+ class="img"
159
+ [class.point]="safeOpt.img?.big"
160
+ />
161
+ </ng-container>
162
+ <ng-container *ngSwitchDefault>
163
+ <span *ngIf="!isText" [innerHTML]="_text" [attr.title]="value"></span>
164
+ <span *ngIf="isText" [innerText]="_text" [attr.title]="value"></span>
165
+ <span *ngIf="_unit" class="unit">{{ _unit }}</span>
166
+ </ng-container>
167
+ </ng-container>
168
+ </ng-template>
169
+ <ng-template #textWrap>
170
+ <ng-container *ngIf="showDefault">{{ safeOpt.default?.text }}</ng-container>
171
+ <ng-container *ngIf="!showDefault">
172
+ <span *ngIf="safeOpt.tooltip; else text" [nz-tooltip]="safeOpt.tooltip">
173
+ <ng-template [ngTemplateOutlet]="text" />
174
+ </span>
175
+ </ng-container>
176
+ </ng-template>
177
+ <span *ngIf="loading; else textWrap" nz-icon nzType="loading"></span>
178
+ `, isInline: true, dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i4.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i4.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i4.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i6.NzCheckboxComponent, selector: "[nz-checkbox]", inputs: ["nzValue", "nzAutoFocus", "nzDisabled", "nzIndeterminate", "nzChecked", "nzId"], outputs: ["nzCheckedChange"], exportAs: ["nzCheckbox"] }, { kind: "component", type: i7.NzRadioComponent, selector: "[nz-radio],[nz-radio-button]", inputs: ["nzValue", "nzDisabled", "nzAutoFocus"], exportAs: ["nzRadio"] }, { kind: "component", type: i8.NzBadgeComponent, selector: "nz-badge", inputs: ["nzShowZero", "nzShowDot", "nzStandalone", "nzDot", "nzOverflowCount", "nzColor", "nzStyle", "nzText", "nzTitle", "nzStatus", "nzCount", "nzOffset", "nzSize"], exportAs: ["nzBadge"] }, { kind: "component", type: i9.NzTagComponent, selector: "nz-tag", inputs: ["nzMode", "nzColor", "nzChecked"], outputs: ["nzOnClose", "nzCheckedChange"], exportAs: ["nzTag"] }, { kind: "directive", type: i10.NzTooltipDirective, selector: "[nz-tooltip]", inputs: ["nzTooltipTitle", "nzTooltipTitleContext", "nz-tooltip", "nzTooltipTrigger", "nzTooltipPlacement", "nzTooltipOrigin", "nzTooltipVisible", "nzTooltipMouseEnterDelay", "nzTooltipMouseLeaveDelay", "nzTooltipOverlayClassName", "nzTooltipOverlayStyle", "nzTooltipArrowPointAtCenter", "nzTooltipColor"], outputs: ["nzTooltipVisibleChange"], exportAs: ["nzTooltip"] }, { kind: "directive", type: i11.NzIconDirective, selector: "[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { kind: "directive", type: i12.CellHostDirective, selector: "[cell-widget-host]", inputs: ["data"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
179
+ }
180
+ __decorate([
181
+ InputBoolean()
182
+ ], CellComponent.prototype, "loading", void 0);
183
+ __decorate([
184
+ InputBoolean()
185
+ ], CellComponent.prototype, "disabled", void 0);
186
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: CellComponent, decorators: [{
187
+ type: Component,
188
+ args: [{
189
+ selector: 'cell, [cell]',
190
+ template: `
191
+ <ng-template #text>
192
+ <ng-container [ngSwitch]="safeOpt.type">
193
+ <label
194
+ *ngSwitchCase="'checkbox'"
195
+ nz-checkbox
196
+ [nzDisabled]="disabled"
197
+ [ngModel]="value"
198
+ (ngModelChange)="change($event)"
199
+ >
200
+ {{ safeOpt.checkbox?.label }}
201
+ </label>
202
+ <label
203
+ *ngSwitchCase="'radio'"
204
+ nz-radio
205
+ [nzDisabled]="disabled"
206
+ [ngModel]="value"
207
+ (ngModelChange)="change($event)"
208
+ >
209
+ {{ safeOpt.radio?.label }}
210
+ </label>
211
+ <a
212
+ *ngSwitchCase="'link'"
213
+ (click)="_link($event)"
214
+ [attr.target]="safeOpt.link?.target"
215
+ [attr.title]="value"
216
+ [innerHTML]="_text"
217
+ ></a>
218
+ <nz-tag *ngSwitchCase="'tag'" [nzColor]="res?.result?.color">
219
+ <span [innerHTML]="_text"></span>
220
+ </nz-tag>
221
+ <nz-badge *ngSwitchCase="'badge'" [nzStatus]="res?.result?.color" nzText="{{ _text }}" />
222
+ <ng-template *ngSwitchCase="'widget'" cell-widget-host [data]="hostData" />
223
+ <ng-container *ngSwitchCase="'img'">
224
+ <img
225
+ *ngFor="let i of $any(_text)"
226
+ [attr.src]="i"
227
+ [attr.height]="safeOpt.img?.size"
228
+ [attr.width]="safeOpt.img?.size"
229
+ (click)="_showImg(i)"
230
+ class="img"
231
+ [class.point]="safeOpt.img?.big"
232
+ />
233
+ </ng-container>
234
+ <ng-container *ngSwitchDefault>
235
+ <span *ngIf="!isText" [innerHTML]="_text" [attr.title]="value"></span>
236
+ <span *ngIf="isText" [innerText]="_text" [attr.title]="value"></span>
237
+ <span *ngIf="_unit" class="unit">{{ _unit }}</span>
238
+ </ng-container>
239
+ </ng-container>
240
+ </ng-template>
241
+ <ng-template #textWrap>
242
+ <ng-container *ngIf="showDefault">{{ safeOpt.default?.text }}</ng-container>
243
+ <ng-container *ngIf="!showDefault">
244
+ <span *ngIf="safeOpt.tooltip; else text" [nz-tooltip]="safeOpt.tooltip">
245
+ <ng-template [ngTemplateOutlet]="text" />
246
+ </span>
247
+ </ng-container>
248
+ </ng-template>
249
+ <span *ngIf="loading; else textWrap" nz-icon nzType="loading"></span>
250
+ `,
251
+ exportAs: 'cell',
252
+ preserveWhitespaces: false,
253
+ changeDetection: ChangeDetectionStrategy.OnPush,
254
+ encapsulation: ViewEncapsulation.None
255
+ }]
256
+ }], ctorParameters: function () { return [{ type: i1.CellService }, { type: i2.Router }, { type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i3.NzImageService }, { type: undefined, decorators: [{
257
+ type: Inject,
258
+ args: [WINDOW]
259
+ }] }]; }, propDecorators: { value: [{
260
+ type: Input
261
+ }], valueChange: [{
262
+ type: Output
263
+ }], options: [{
264
+ type: Input
265
+ }], loading: [{
266
+ type: Input
267
+ }], disabled: [{
268
+ type: Input
269
+ }] } });
270
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hYmMvY2VsbC9jZWxsLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUV2QixTQUFTLEVBRVQsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBR0wsTUFBTSxFQUdOLGlCQUFpQixFQUNsQixNQUFNLGVBQWUsQ0FBQztBQUt2QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFnQixZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7Ozs7Ozs7Ozs7Ozs7O0FBMkUzQyxNQUFNLE9BQU8sYUFBYTtJQWlCeEIsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsR0FBRyxFQUFFLE9BQU8sSUFBSSxFQUFFLENBQUM7SUFDakMsQ0FBQztJQUVELElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLEdBQUcsRUFBRSxRQUFRLEtBQUssTUFBTSxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDVixPQUFPO1lBQ0wsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO1lBQ2pCLE9BQU8sRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO1NBQzNDLENBQUM7SUFDSixDQUFDO0lBRUQsWUFDVSxHQUFnQixFQUNoQixNQUFjLEVBQ2QsR0FBc0IsRUFDdEIsRUFBMkIsRUFDM0IsUUFBbUIsRUFDbkIsTUFBc0I7SUFDOUIsOERBQThEO0lBQ3RDLEdBQVE7UUFQeEIsUUFBRyxHQUFILEdBQUcsQ0FBYTtRQUNoQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDdEIsT0FBRSxH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QUN0QyxNQUFNLENBQUMsY0FBYyxDQUN0QjthQUNBLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNuQixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxRQUFRLEVBQUUsV0FBVyxFQUFFLENBQUM7SUFDL0IsQ0FBQzs4R0F2SFUsYUFBYSxxTEF3Q2QsTUFBTTtrR0F4Q0wsYUFBYSxnT0FsRWQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTREVDs7QUFvQndCO0lBQWYsWUFBWSxFQUFFOzhDQUFpQjtBQUNoQjtJQUFmLFlBQVksRUFBRTsrQ0FBa0I7MkZBZi9CLGFBQWE7a0JBcEV6QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxjQUFjO29CQUN4QixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTREVDtvQkFDRCxRQUFRLEVBQUUsTUFBTTtvQkFDaEIsbUJBQW1CLEVBQUUsS0FBSztvQkFDMUIsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2lCQUN0Qzs7MEJBeUNJLE1BQU07MkJBQUMsTUFBTTs0Q0E3QlAsS0FBSztzQkFBYixLQUFLO2dCQUNhLFdBQVc7c0JBQTdCLE1BQU07Z0JBQ0UsT0FBTztzQkFBZixLQUFLO2dCQUNtQixPQUFPO3NCQUEvQixLQUFLO2dCQUNtQixRQUFRO3NCQUFoQyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5qZWN0LFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE91dHB1dCxcbiAgUmVuZGVyZXIyLFxuICBTaW1wbGVDaGFuZ2UsXG4gIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHR5cGUgeyBTYWZlVmFsdWUgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgdXBkYXRlSG9zdENsYXNzIH0gZnJvbSAnQGRlbG9uL3V0aWwvYnJvd3Nlcic7XG5pbXBvcnQgeyBCb29sZWFuSW5wdXQsIElucHV0Qm9vbGVhbiB9IGZyb20gJ0BkZWxvbi91dGlsL2RlY29yYXRvcic7XG5pbXBvcnQgeyBXSU5ET1cgfSBmcm9tICdAZGVsb24vdXRpbC90b2tlbic7XG5pbXBvcnQgdHlwZSB7IE56U2FmZUFueSB9IGZyb20gJ25nLXpvcnJvLWFudGQvY29yZS90eXBlcyc7XG5pbXBvcnQgeyBOekltYWdlLCBOekltYWdlU2VydmljZSB9IGZyb20gJ25nLXpvcnJvLWFudGQvaW1hZ2UnO1xuXG5pbXBvcnQgeyBDZWxsU2VydmljZSB9IGZyb20gJy4vY2VsbC5zZXJ2aWNlJztcbmltcG9ydCB0eXBlIHsgQ2VsbERlZmF1bHRUZXh0LCBDZWxsT3B0aW9ucywgQ2VsbFRleHRSZXN1bHQsIENlbGxWYWx1ZSwgQ2VsbFdpZGdldERhdGEgfSBmcm9tICcuL2NlbGwudHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjZWxsLCBbY2VsbF0nLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxuZy10ZW1wbGF0ZSAjdGV4dD5cbiAgICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cInNhZmVPcHQudHlwZVwiPlxuICAgICAgICA8bGFiZWxcbiAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ2NoZWNrYm94J1wiXG4gICAgICAgICAgbnotY2hlY2tib3hcbiAgICAgICAgICBbbnpEaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgW25nTW9kZWxdPVwidmFsdWVcIlxuICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cImNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IHNhZmVPcHQuY2hlY2tib3g/LmxhYmVsIH19XG4gICAgICAgIDwvbGFiZWw+XG4gICAgICAgIDxsYWJlbFxuICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCIncmFkaW8nXCJcbiAgICAgICAgICBuei1yYWRpb1xuICAgICAgICAgIFtuekRpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICBbbmdNb2RlbF09XCJ2YWx1ZVwiXG4gICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwiY2hhbmdlKCRldmVudClcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgc2FmZU9wdC5yYWRpbz8ubGFiZWwgfX1cbiAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgPGFcbiAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ2xpbmsnXCJcbiAgICAgICAgICAoY2xpY2spPVwiX2xpbmsoJGV2ZW50KVwiXG4gICAgICAgICAgW2F0dHIudGFyZ2V0XT1cInNhZmVPcHQubGluaz8udGFyZ2V0XCJcbiAgICAgICAgICBbYXR0ci50aXRsZV09XCJ2YWx1ZVwiXG4gICAgICAgICAgW2lubmVySFRNTF09XCJfdGV4dFwiXG4gICAgICAgID48L2E+XG4gICAgICAgIDxuei10YWcgKm5nU3dpdGNoQ2FzZT1cIid0YWcnXCIgW256Q29sb3JdPVwicmVzPy5yZXN1bHQ/LmNvbG9yXCI+XG4gICAgICAgICAgPHNwYW4gW2lubmVySFRNTF09XCJfdGV4dFwiPjwvc3Bhbj5cbiAgICAgICAgPC9uei10YWc+XG4gICAgICAgIDxuei1iYWRnZSAqbmdTd2l0Y2hDYXNlPVwiJ2JhZGdlJ1wiIFtuelN0YXR1c109XCJyZXM/LnJlc3VsdD8uY29sb3JcIiBuelRleHQ9XCJ7eyBfdGV4dCB9fVwiIC8+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAqbmdTd2l0Y2hDYXNlPVwiJ3dpZGdldCdcIiBjZWxsLXdpZGdldC1ob3N0IFtkYXRhXT1cImhvc3REYXRhXCIgLz5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2ltZydcIj5cbiAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgaSBvZiAkYW55KF90ZXh0KVwiXG4gICAgICAgICAgICBbYXR0ci5zcmNdPVwiaVwiXG4gICAgICAgICAgICBbYXR0ci5oZWlnaHRdPVwic2FmZU9wdC5pbWc/LnNpemVcIlxuICAgICAgICAgICAgW2F0dHIud2lkdGhdPVwic2FmZU9wdC5pbWc/LnNpemVcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIl9zaG93SW1nKGkpXCJcbiAgICAgICAgICAgIGNsYXNzPVwiaW1nXCJcbiAgICAgICAgICAgIFtjbGFzcy5wb2ludF09XCJzYWZlT3B0LmltZz8uYmlnXCJcbiAgICAgICAgICAvPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hEZWZhdWx0PlxuICAgICAgICAgIDxzcGFuICpuZ0lmPVwiIWlzVGV4dFwiIFtpbm5lckhUTUxdPVwiX3RleHRcIiBbYXR0ci50aXRsZV09XCJ2YWx1ZVwiPjwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiAqbmdJZj1cImlzVGV4dFwiIFtpbm5lclRleHRdPVwiX3RleHRcIiBbYXR0ci50aXRsZV09XCJ2YWx1ZVwiPjwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiAqbmdJZj1cIl91bml0XCIgY2xhc3M9XCJ1bml0XCI+e3sgX3VuaXQgfX08L3NwYW4+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGUgI3RleHRXcmFwPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNob3dEZWZhdWx0XCI+e3sgc2FmZU9wdC5kZWZhdWx0Py50ZXh0IH19PC9uZy1jb250YWluZXI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXNob3dEZWZhdWx0XCI+XG4gICAgICAgIDxzcGFuICpuZ0lmPVwic2FmZU9wdC50b29sdGlwOyBlbHNlIHRleHRcIiBbbnotdG9vbHRpcF09XCJzYWZlT3B0LnRvb2x0aXBcIj5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwidGV4dFwiIC8+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPHNwYW4gKm5nSWY9XCJsb2FkaW5nOyBlbHNlIHRleHRXcmFwXCIgbnotaWNvbiBuelR5cGU9XCJsb2FkaW5nXCI+PC9zcGFuPlxuICBgLFxuICBleHBvcnRBczogJ2NlbGwnLFxuICBwcmVzZXJ2ZVdoaXRlc3BhY2VzOiBmYWxzZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgQ2VsbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX2xvYWRpbmc6IEJvb2xlYW5JbnB1dDtcbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX2Rpc2FibGVkOiBCb29sZWFuSW5wdXQ7XG5cbiAgcHJpdmF0ZSBkZXN0cm95JD86IFN1YnNjcmlwdGlvbjtcblxuICBfdGV4dCE6IHN0cmluZyB8IFNhZmVWYWx1ZSB8IHN0cmluZ1tdIHwgbnVtYmVyO1xuICBfdW5pdD86IHN0cmluZztcbiAgcmVzPzogQ2VsbFRleHRSZXN1bHQ7XG4gIHNob3dEZWZhdWx0ID0gZmFsc2U7XG5cbiAgQElucHV0KCkgdmFsdWU/OiBDZWxsVmFsdWU7XG4gIEBPdXRwdXQoKSByZWFkb25seSB2YWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8TnpTYWZlQW55PigpO1xuICBASW5wdXQoKSBvcHRpb25zPzogQ2VsbE9wdGlvbnM7XG4gIEBJbnB1dCgpIEBJbnB1dEJvb2xlYW4oKSBsb2FkaW5nID0gZmFsc2U7XG4gIEBJbnB1dCgpIEBJbnB1dEJvb2xlYW4oKSBkaXNhYmxlZCA9IGZhbHNlO1xuXG4gIGdldCBzYWZlT3B0KCk6IENlbGxPcHRpb25zIHtcbiAgICByZXR1cm4gdGhpcy5yZXM/Lm9wdGlvbnMgPz8ge307XG4gIH1cblxuICBnZXQgaXNUZXh0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnJlcz8uc2FmZUh0bWwgPT09ICd0ZXh0JztcbiAgfVxuXG4gIGdldCBob3N0RGF0YSgpOiBDZWxsV2lkZ2V0RGF0YSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHZhbHVlOiB0aGlzLnZhbHVlLFxuICAgICAgb3B0aW9uczogdGhpcy5zcnYuZml4T3B0aW9ucyh0aGlzLm9wdGlvbnMpXG4gICAgfTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgc3J2OiBDZWxsU2VydmljZSxcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIGVsOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgcHJpdmF0ZSBpbWdTcnY6IE56SW1hZ2VTZXJ2aWNlLFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgQEluamVjdChXSU5ET1cpIHByaXZhdGUgd2luOiBhbnlcbiAgKSB7fVxuXG4gIHByaXZhdGUgdXBkYXRlVmFsdWUoKTogdm9pZCB7XG4gICAgdGhpcy5kZXN0cm95JD8udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLmRlc3Ryb3kkID0gdGhpcy5zcnYuZ2V0KHRoaXMudmFsdWUsIHRoaXMub3B0aW9ucykuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICB0aGlzLnJlcyA9IHJlcztcbiAgICAgIHRoaXMuc2hvd0RlZmF1bHQgPSB0aGlzLnZhbHVlID09ICh0aGlzLnNhZmVPcHQuZGVmYXVsdCBhcyBDZWxsRGVmYXVsdFRleHQpLmNvbmRpdGlvbjtcbiAgICAgIHRoaXMuX3RleHQgPSByZXMucmVzdWx0Py50ZXh0ID8/ICcnO1xuICAgICAgdGhpcy5fdW5pdCA9IHJlcy5yZXN1bHQ/LnVuaXQgPz8gdGhpcy5zYWZlT3B0Py51bml0O1xuICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgdGhpcy5zZXRDbGFzcygpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRDbGFzcygpOiB2b2lkIHtcbiAgICBjb25zdCB7IGVsLCByZW5kZXJlciB9ID0gdGhpcztcbiAgICBjb25zdCB7IHJlbmRlclR5cGUsIHNpemUgfSA9IHRoaXMuc2FmZU9wdDtcbiAgICB1cGRhdGVIb3N0Q2xhc3MoZWwubmF0aXZlRWxlbWVudCwgcmVuZGVyZXIsIHtcbiAgICAgIFtgY2VsbGBdOiB0cnVlLFxuICAgICAgW2BjZWxsX18ke3JlbmRlclR5cGV9YF06IHJlbmRlclR5cGUgIT0gbnVsbCxcbiAgICAgIFtgY2VsbF9fJHtzaXplfWBdOiBzaXplICE9IG51bGwsXG4gICAgICBbYGNlbGxfX2hhcy11bml0YF06IHRoaXMuX3VuaXQsXG4gICAgICBbYGNlbGxfX2hhcy1kZWZhdWx0YF06IHRoaXMuc2hvd0RlZmF1bHQsXG4gICAgICBbYGNlbGxfX2Rpc2FibGVkYF06IHRoaXMuZGlzYWJsZWRcbiAgICB9KTtcbiAgICBlbC5uYXRpdmVFbGVtZW50LmRhdGFzZXQudHlwZSA9IHRoaXMuc2FmZU9wdC50eXBlO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogeyBbcCBpbiBrZXlvZiBDZWxsQ29tcG9uZW50XT86IFNpbXBsZUNoYW5nZSB9KTogdm9pZCB7XG4gICAgLy8gRG8gbm90IGNhbGwgdXBkYXRlVmFsdWUgd2hlbiBvbmx5IHVwZGF0aW5nIGxvYWRpbmcsIGRpc2FibGVkXG4gICAgaWYgKE9iamVjdC5rZXlzKGNoYW5nZXMpLmV2ZXJ5KGsgPT4gWydsb2FkaW5nJywgJ2Rpc2FibGVkJ10uaW5jbHVkZXMoaykpKSB7XG4gICAgICB0aGlzLnNldENsYXNzKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudXBkYXRlVmFsdWUoKTtcbiAgICB9XG4gIH1cblxuICBjaGFuZ2UodmFsdWU6IE56U2FmZUFueSk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodmFsdWUpO1xuICB9XG5cbiAgX2xpbmsoZTogRXZlbnQpOiB2b2lkIHtcbiAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgIGlmICh0aGlzLmRpc2FibGVkKSByZXR1cm47XG5cbiAgICBjb25zdCBsaW5rID0gdGhpcy5zYWZlT3B0Lmxpbms7XG4gICAgY29uc3QgdXJsID0gbGluaz8udXJsO1xuICAgIGlmICh1cmwgPT0gbnVsbCkgcmV0dXJuO1xuXG4gICAgaWYgKC9odHRwcz86XFwvXFwvL2cudGVzdCh1cmwpKSB7XG4gICAgICAodGhpcy53aW4gYXMgV2luZG93KS5vcGVuKHVybCwgbGluaz8udGFyZ2V0KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCh1cmwpO1xuICAgIH1cbiAgfVxuXG4gIF9zaG93SW1nKGltZzogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgY29uZmlnID0gdGhpcy5zYWZlT3B0LmltZztcbiAgICBpZiAoY29uZmlnID09IG51bGwgfHwgY29uZmlnLmJpZyA9PSBudWxsKSByZXR1cm47XG5cbiAgICBsZXQgaWR4ID0gLTE7XG4gICAgY29uc3QgbGlzdCA9ICh0aGlzLl90ZXh0IGFzIHN0cmluZ1tdKS5tYXAoKHAsIGluZGV4KSA9PiB7XG4gICAgICBpZiAoaWR4ID09PSAtMSAmJiBwID09PSBpbWcpIGlkeCA9IGluZGV4O1xuICAgICAgcmV0dXJuIHR5cGVvZiBjb25maWcuYmlnID09PSAnZnVuY3Rpb24nID8gY29uZmlnLmJpZyhwKSA6IHA7XG4gICAgfSk7XG4gICAgdGhpcy5pbWdTcnZcbiAgICAgIC5wcmV2aWV3KFxuICAgICAgICBsaXN0Lm1hcChwID0+ICh7IHNyYzogcCB9KSBhcyBOekltYWdlKSxcbiAgICAgICAgY29uZmlnLnByZXZpZXdPcHRpb25zXG4gICAgICApXG4gICAgICAuc3dpdGNoVG8oaWR4KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGVzdHJveSQ/LnVuc3Vic2NyaWJlKCk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FiYy9jZWxsL2NlbGwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0=
@@ -0,0 +1,54 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { NgModule } from '@angular/core';
3
+ import { FormsModule } from '@angular/forms';
4
+ import { NzBadgeModule } from 'ng-zorro-antd/badge';
5
+ import { NzCheckboxModule } from 'ng-zorro-antd/checkbox';
6
+ import { NzImageModule } from 'ng-zorro-antd/experimental/image';
7
+ import { NzIconModule } from 'ng-zorro-antd/icon';
8
+ import { NzRadioModule } from 'ng-zorro-antd/radio';
9
+ import { NzTagModule } from 'ng-zorro-antd/tag';
10
+ import { NzToolTipModule } from 'ng-zorro-antd/tooltip';
11
+ import { CellHostDirective } from './cell-host.directive';
12
+ import { CellComponent } from './cell.component';
13
+ import * as i0 from "@angular/core";
14
+ const COMPS = [CellComponent];
15
+ export class CellModule {
16
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: CellModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
17
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.3", ngImport: i0, type: CellModule, declarations: [CellComponent, CellHostDirective], imports: [CommonModule,
18
+ FormsModule,
19
+ NzCheckboxModule,
20
+ NzRadioModule,
21
+ NzBadgeModule,
22
+ NzTagModule,
23
+ NzToolTipModule,
24
+ NzIconModule,
25
+ NzImageModule], exports: [CellComponent] }); }
26
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: CellModule, imports: [CommonModule,
27
+ FormsModule,
28
+ NzCheckboxModule,
29
+ NzRadioModule,
30
+ NzBadgeModule,
31
+ NzTagModule,
32
+ NzToolTipModule,
33
+ NzIconModule,
34
+ NzImageModule] }); }
35
+ }
36
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: CellModule, decorators: [{
37
+ type: NgModule,
38
+ args: [{
39
+ imports: [
40
+ CommonModule,
41
+ FormsModule,
42
+ NzCheckboxModule,
43
+ NzRadioModule,
44
+ NzBadgeModule,
45
+ NzTagModule,
46
+ NzToolTipModule,
47
+ NzIconModule,
48
+ NzImageModule
49
+ ],
50
+ declarations: [...COMPS, CellHostDirective],
51
+ exports: COMPS
52
+ }]
53
+ }] });
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hYmMvY2VsbC9jZWxsLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzFELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNqRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFeEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDOztBQUVqRCxNQUFNLEtBQUssR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0FBaUI5QixNQUFNLE9BQU8sVUFBVTs4R0FBVixVQUFVOytHQUFWLFVBQVUsaUJBakJSLGFBQWEsRUFjRCxpQkFBaUIsYUFWeEMsWUFBWTtZQUNaLFdBQVc7WUFDWCxnQkFBZ0I7WUFDaEIsYUFBYTtZQUNiLGFBQWE7WUFDYixXQUFXO1lBQ1gsZUFBZTtZQUNmLFlBQVk7WUFDWixhQUFhLGFBWkYsYUFBYTsrR0FpQmYsVUFBVSxZQWJuQixZQUFZO1lBQ1osV0FBVztZQUNYLGdCQUFnQjtZQUNoQixhQUFhO1lBQ2IsYUFBYTtZQUNiLFdBQVc7WUFDWCxlQUFlO1lBQ2YsWUFBWTtZQUNaLGFBQWE7OzJGQUtKLFVBQVU7a0JBZnRCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxnQkFBZ0I7d0JBQ2hCLGFBQWE7d0JBQ2IsYUFBYTt3QkFDYixXQUFXO3dCQUNYLGVBQWU7d0JBQ2YsWUFBWTt3QkFDWixhQUFhO3FCQUNkO29CQUNELFlBQVksRUFBRSxDQUFDLEdBQUcsS0FBSyxFQUFFLGlCQUFpQixDQUFDO29CQUMzQyxPQUFPLEVBQUUsS0FBSztpQkFDZiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IE56QmFkZ2VNb2R1bGUgfSBmcm9tICduZy16b3Jyby1hbnRkL2JhZGdlJztcbmltcG9ydCB7IE56Q2hlY2tib3hNb2R1bGUgfSBmcm9tICduZy16b3Jyby1hbnRkL2NoZWNrYm94JztcbmltcG9ydCB7IE56SW1hZ2VNb2R1bGUgfSBmcm9tICduZy16b3Jyby1hbnRkL2V4cGVyaW1lbnRhbC9pbWFnZSc7XG5pbXBvcnQgeyBOekljb25Nb2R1bGUgfSBmcm9tICduZy16b3Jyby1hbnRkL2ljb24nO1xuaW1wb3J0IHsgTnpSYWRpb01vZHVsZSB9IGZyb20gJ25nLXpvcnJvLWFudGQvcmFkaW8nO1xuaW1wb3J0IHsgTnpUYWdNb2R1bGUgfSBmcm9tICduZy16b3Jyby1hbnRkL3RhZyc7XG5pbXBvcnQgeyBOelRvb2xUaXBNb2R1bGUgfSBmcm9tICduZy16b3Jyby1hbnRkL3Rvb2x0aXAnO1xuXG5pbXBvcnQgeyBDZWxsSG9zdERpcmVjdGl2ZSB9IGZyb20gJy4vY2VsbC1ob3N0LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBDZWxsQ29tcG9uZW50IH0gZnJvbSAnLi9jZWxsLmNvbXBvbmVudCc7XG5cbmNvbnN0IENPTVBTID0gW0NlbGxDb21wb25lbnRdO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIE56Q2hlY2tib3hNb2R1bGUsXG4gICAgTnpSYWRpb01vZHVsZSxcbiAgICBOekJhZGdlTW9kdWxlLFxuICAgIE56VGFnTW9kdWxlLFxuICAgIE56VG9vbFRpcE1vZHVsZSxcbiAgICBOekljb25Nb2R1bGUsXG4gICAgTnpJbWFnZU1vZHVsZVxuICBdLFxuICBkZWNsYXJhdGlvbnM6IFsuLi5DT01QUywgQ2VsbEhvc3REaXJlY3RpdmVdLFxuICBleHBvcnRzOiBDT01QU1xufSlcbmV4cG9ydCBjbGFzcyBDZWxsTW9kdWxlIHt9XG4iXX0=
@@ -0,0 +1,168 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { map, of } from 'rxjs';
3
+ import { yn } from '@delon/theme';
4
+ import { formatDate } from '@delon/util/date-time';
5
+ import { formatMask } from '@delon/util/format';
6
+ import { deepMerge } from '@delon/util/other';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@delon/util/config";
9
+ import * as i2 from "ng-zorro-antd/i18n";
10
+ import * as i3 from "@delon/util/format";
11
+ import * as i4 from "@angular/platform-browser";
12
+ export class CellService {
13
+ constructor(configSrv, nzI18n, currency, dom) {
14
+ this.nzI18n = nzI18n;
15
+ this.currency = currency;
16
+ this.dom = dom;
17
+ this.widgets = {
18
+ date: {
19
+ type: 'fn',
20
+ ref: (value, opt) => {
21
+ return { text: formatDate(value, opt.date.format, this.nzI18n.getDateLocale()) };
22
+ }
23
+ },
24
+ mega: {
25
+ type: 'fn',
26
+ ref: (value, opt) => {
27
+ const res = this.currency.mega(value, opt.mega);
28
+ return { text: res.value, unit: res.unitI18n };
29
+ }
30
+ },
31
+ currency: {
32
+ type: 'fn',
33
+ ref: (value, opt) => {
34
+ return { text: this.currency.format(value, opt.currency) };
35
+ }
36
+ },
37
+ cny: {
38
+ type: 'fn',
39
+ ref: (value, opt) => {
40
+ return { text: this.currency.cny(value, opt.cny) };
41
+ }
42
+ },
43
+ boolean: {
44
+ type: 'fn',
45
+ ref: (value, opt) => {
46
+ return { text: this.dom.bypassSecurityTrustHtml(yn(value, opt.boolean)) };
47
+ }
48
+ },
49
+ img: {
50
+ type: 'fn',
51
+ ref: value => {
52
+ return { text: Array.isArray(value) ? value : [value] };
53
+ }
54
+ }
55
+ };
56
+ this.globalOptions = configSrv.merge('cell', {
57
+ date: { format: 'yyyy-MM-dd HH:mm:ss' },
58
+ img: { size: 32 },
59
+ default: { text: '-' }
60
+ });
61
+ }
62
+ registerWidget(key, widget) {
63
+ this.widgets[key] = { type: 'widget', ref: widget };
64
+ }
65
+ getWidget(key) {
66
+ return this.widgets[key];
67
+ }
68
+ genType(value, options) {
69
+ if (options.type != null)
70
+ return options.type;
71
+ const typeOf = typeof value;
72
+ // When is timestamp
73
+ if (typeOf === 'number' && /^[0-9]{13}$/g.test(value))
74
+ return 'date';
75
+ if (value instanceof Date || options.date != null)
76
+ return 'date';
77
+ // Auto detection
78
+ if (options.widget != null)
79
+ return 'widget';
80
+ else if (options.mega != null)
81
+ return 'mega';
82
+ else if (options.currency != null)
83
+ return 'currency';
84
+ else if (options.cny != null)
85
+ return 'cny';
86
+ else if (options.img != null)
87
+ return 'img';
88
+ else if (options.link != null)
89
+ return 'link';
90
+ else if (options.html != null)
91
+ return 'html';
92
+ else if (options.badge != null)
93
+ return 'badge';
94
+ else if (options.tag != null)
95
+ return 'tag';
96
+ else if (options.checkbox != null)
97
+ return 'checkbox';
98
+ else if (options.radio != null)
99
+ return 'radio';
100
+ else if (options.enum != null)
101
+ return 'enum';
102
+ else if (typeOf === 'number')
103
+ return 'number';
104
+ else if (typeOf === 'boolean' || options.boolean != null)
105
+ return 'boolean';
106
+ else
107
+ return 'string';
108
+ }
109
+ fixOptions(options) {
110
+ return deepMerge({}, this.globalOptions, options);
111
+ }
112
+ get(value, options) {
113
+ const type = this.genType(value, { ...options });
114
+ const opt = this.fixOptions(options);
115
+ opt.type = type;
116
+ const isSafeHtml = typeof value === 'object' &&
117
+ typeof value?.getTypeName === 'function' &&
118
+ value?.getTypeName() != null;
119
+ let res = {
120
+ result: typeof value === 'object' && !isSafeHtml
121
+ ? value
122
+ : { text: value == null ? '' : isSafeHtml ? value : `${value}` },
123
+ options: opt
124
+ };
125
+ const widget = this.widgets[type];
126
+ if (widget?.type === 'fn') {
127
+ res.result = widget.ref(value, opt);
128
+ }
129
+ return (typeof value === 'function' ? value(value, opt) : of(res.result)).pipe(map(text => {
130
+ res.result = text;
131
+ let dictData;
132
+ switch (type) {
133
+ case 'badge':
134
+ dictData = (opt.badge?.data ?? {})[value];
135
+ res.result = { color: 'default', ...dictData };
136
+ break;
137
+ case 'tag':
138
+ dictData = (opt.tag?.data ?? {})[value];
139
+ res.result = dictData;
140
+ break;
141
+ case 'enum':
142
+ res.result = { text: (opt.enum ?? {})[value] };
143
+ break;
144
+ case 'html':
145
+ res.safeHtml = opt.html?.safe;
146
+ break;
147
+ case 'string':
148
+ if (isSafeHtml)
149
+ res.safeHtml = 'safeHtml';
150
+ break;
151
+ }
152
+ if ((type === 'badge' || type === 'tag') && dictData?.tooltip != null) {
153
+ res.options.tooltip = dictData.tooltip;
154
+ }
155
+ if (opt.mask != null) {
156
+ res.result.text = formatMask(res.result.text, opt.mask);
157
+ }
158
+ return res;
159
+ }));
160
+ }
161
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: CellService, deps: [{ token: i1.AlainConfigService }, { token: i2.NzI18nService }, { token: i3.CurrencyService }, { token: i4.DomSanitizer }], target: i0.ɵɵFactoryTarget.Injectable }); }
162
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: CellService, providedIn: 'root' }); }
163
+ }
164
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: CellService, decorators: [{
165
+ type: Injectable,
166
+ args: [{ providedIn: 'root' }]
167
+ }], ctorParameters: function () { return [{ type: i1.AlainConfigService }, { type: i2.NzI18nService }, { type: i3.CurrencyService }, { type: i4.DomSanitizer }]; } });
168
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYWJjL2NlbGwvY2VsbC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQVEsTUFBTSxlQUFlLENBQUM7QUFFakQsT0FBTyxFQUFFLEdBQUcsRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFM0MsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUVsQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbkQsT0FBTyxFQUFtQixVQUFVLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7Ozs7OztBQWU5QyxNQUFNLE9BQU8sV0FBVztJQTBDdEIsWUFDRSxTQUE2QixFQUNyQixNQUFxQixFQUNyQixRQUF5QixFQUN6QixHQUFpQjtRQUZqQixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQ3JCLGFBQVEsR0FBUixRQUFRLENBQWlCO1FBQ3pCLFFBQUcsR0FBSCxHQUFHLENBQWM7UUE1Q25CLFlBQU8sR0FBa0M7WUFDL0MsSUFBSSxFQUFFO2dCQUNKLElBQUksRUFBRSxJQUFJO2dCQUNWLEdBQUcsRUFBRSxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBRTtvQkFDbEIsT0FBTyxFQUFFLElBQUksRUFBRSxVQUFVLENBQUMsS0FBZSxFQUFFLEdBQUcsQ0FBQyxJQUFLLENBQUMsTUFBTyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFLENBQUMsRUFBRSxDQUFDO2dCQUMvRixDQUFDO2FBQ0Y7WUFDRCxJQUFJLEVBQUU7Z0JBQ0osSUFBSSxFQUFFLElBQUk7Z0JBQ1YsR0FBRyxFQUFFLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxFQUFFO29CQUNsQixNQUFNLEdBQUcs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Q0FBQyxJQUFJLEdBQUcsVUFBVSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBYyxFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUNuRTtZQUNELE9BQU8sR0FBRyxDQUFDO1FBQ2IsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7OEdBbkpVLFdBQVc7a0hBQVgsV0FBVyxjQURFLE1BQU07OzJGQUNuQixXQUFXO2tCQUR2QixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERvbVNhbml0aXplciB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgbWFwLCBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyB5biB9IGZyb20gJ0BkZWxvbi90aGVtZSc7XG5pbXBvcnQgeyBBbGFpbkNlbGxDb25maWcsIEFsYWluQ29uZmlnU2VydmljZSB9IGZyb20gJ0BkZWxvbi91dGlsL2NvbmZpZyc7XG5pbXBvcnQgeyBmb3JtYXREYXRlIH0gZnJvbSAnQGRlbG9uL3V0aWwvZGF0ZS10aW1lJztcbmltcG9ydCB7IEN1cnJlbmN5U2VydmljZSwgZm9ybWF0TWFzayB9IGZyb20gJ0BkZWxvbi91dGlsL2Zvcm1hdCc7XG5pbXBvcnQgeyBkZWVwTWVyZ2UgfSBmcm9tICdAZGVsb24vdXRpbC9vdGhlcic7XG5pbXBvcnQgdHlwZSB7IE56U2FmZUFueSB9IGZyb20gJ25nLXpvcnJvLWFudGQvY29yZS90eXBlcyc7XG5pbXBvcnQgeyBOekkxOG5TZXJ2aWNlIH0gZnJvbSAnbmctem9ycm8tYW50ZC9pMThuJztcblxuaW1wb3J0IHR5cGUge1xuICBDZWxsRnVWYWx1ZSxcbiAgQ2VsbE9wdGlvbnMsXG4gIENlbGxUZXh0UmVzdWx0LFxuICBDZWxsVGV4dFVuaXQsXG4gIENlbGxUeXBlLFxuICBDZWxsV2lkZ2V0LFxuICBDZWxsV2lkZ2V0Rm5cbn0gZnJvbSAnLi9jZWxsLnR5cGVzJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBDZWxsU2VydmljZSB7XG4gIHByaXZhdGUgZ2xvYmFsT3B0aW9ucyE6IEFsYWluQ2VsbENvbmZpZztcbiAgcHJpdmF0ZSB3aWRnZXRzOiB7IFtrZXk6IHN0cmluZ106IENlbGxXaWRnZXQgfSA9IHtcbiAgICBkYXRlOiB7XG4gICAgICB0eXBlOiAnZm4nLFxuICAgICAgcmVmOiAodmFsdWUsIG9wdCkgPT4ge1xuICAgICAgICByZXR1cm4geyB0ZXh0OiBmb3JtYXREYXRlKHZhbHVlIGFzIHN0cmluZywgb3B0LmRhdGUhLmZvcm1hdCEsIHRoaXMubnpJMThuLmdldERhdGVMb2NhbGUoKSkgfTtcbiAgICAgIH1cbiAgICB9LFxuICAgIG1lZ2E6IHtcbiAgICAgIHR5cGU6ICdmbicsXG4gICAgICByZWY6ICh2YWx1ZSwgb3B0KSA9PiB7XG4gICAgICAgIGNvbnN0IHJlcyA9IHRoaXMuY3VycmVuY3kubWVnYSh2YWx1ZSBhcyBudW1iZXIsIG9wdC5tZWdhKTtcbiAgICAgICAgcmV0dXJuIHsgdGV4dDogcmVzLnZhbHVlLCB1bml0OiByZXMudW5pdEkxOG4gfTtcbiAgICAgIH1cbiAgICB9LFxuICAgIGN1cnJlbmN5OiB7XG4gICAgICB0eXBlOiAnZm4nLFxuICAgICAgcmVmOiAodmFsdWUsIG9wdCkgPT4ge1xuICAgICAgICByZXR1cm4geyB0ZXh0OiB0aGlzLmN1cnJlbmN5LmZvcm1hdCh2YWx1ZSBhcyBudW1iZXIsIG9wdC5jdXJyZW5jeSkgfTtcbiAgICAgIH1cbiAgICB9LFxuICAgIGNueToge1xuICAgICAgdHlwZTogJ2ZuJyxcbiAgICAgIHJlZjogKHZhbHVlLCBvcHQpID0+IHtcbiAgICAgICAgcmV0dXJuIHsgdGV4dDogdGhpcy5jdXJyZW5jeS5jbnkodmFsdWUgYXMgbnVtYmVyLCBvcHQuY255KSB9O1xuICAgICAgfVxuICAgIH0sXG4gICAgYm9vbGVhbjoge1xuICAgICAgdHlwZTogJ2ZuJyxcbiAgICAgIHJlZjogKHZhbHVlLCBvcHQpID0+IHtcbiAgICAgICAgcmV0dXJuIHsgdGV4dDogdGhpcy5kb20uYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwoeW4odmFsdWUgYXMgYm9vbGVhbiwgb3B0LmJvb2xlYW4pKSB9O1xuICAgICAgfVxuICAgIH0sXG4gICAgaW1nOiB7XG4gICAgICB0eXBlOiAnZm4nLFxuICAgICAgcmVmOiB2YWx1ZSA9PiB7XG4gICAgICAgIHJldHVybiB7IHRleHQ6IEFycmF5LmlzQXJyYXkodmFsdWUpID8gdmFsdWUgOiBbdmFsdWVdIH07XG4gICAgICB9XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGNvbmZpZ1NydjogQWxhaW5Db25maWdTZXJ2aWNlLFxuICAgIHByaXZhdGUgbnpJMThuOiBOekkxOG5TZXJ2aWNlLFxuICAgIHByaXZhdGUgY3VycmVuY3k6IEN1cnJlbmN5U2VydmljZSxcbiAgICBwcml2YXRlIGRvbTogRG9tU2FuaXRpemVyXG4gICkge1xuICAgIHRoaXMuZ2xvYmFsT3B0aW9ucyA9IGNvbmZpZ1Nydi5tZXJnZSgnY2VsbCcsIHtcbiAgICAgIGRhdGU6IHsgZm9ybWF0OiAneXl5eS1NTS1kZCBISDptbTpzcycgfSxcbiAgICAgIGltZzogeyBzaXplOiAzMiB9LFxuICAgICAgZGVmYXVsdDogeyB0ZXh0OiAnLScgfVxuICAgIH0pITtcbiAgfVxuXG4gIHJlZ2lzdGVyV2lkZ2V0KGtleTogc3RyaW5nLCB3aWRnZXQ6IFR5cGU8dW5rbm93bj4pOiB2b2lkIHtcbiAgICB0aGlzLndpZGdldHNba2V5XSA9IHsgdHlwZTogJ3dpZGdldCcsIHJlZjogd2lkZ2V0IH07XG4gIH1cblxuICBnZXRXaWRnZXQoa2V5OiBzdHJpbmcpOiBDZWxsV2lkZ2V0IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy53aWRnZXRzW2tleV07XG4gIH1cblxuICBwcml2YXRlIGdlblR5cGUodmFsdWU6IHVua25vd24sIG9wdGlvbnM6IENlbGxPcHRpb25zKTogQ2VsbFR5cGUge1xuICAgIGlmIChvcHRpb25zLnR5cGUgIT0gbnVsbCkgcmV0dXJuIG9wdGlvbnMudHlwZTtcblxuICAgIGNvbnN0IHR5cGVPZiA9IHR5cGVvZiB2YWx1ZTtcbiAgICAvLyBXaGVuIGlzIHRpbWVzdGFtcFxuICAgIGlmICh0eXBlT2YgPT09ICdudW1iZXInICYmIC9eWzAtOV17MTN9JC9nLnRlc3QodmFsdWUgYXMgc3RyaW5nKSkgcmV0dXJuICdkYXRlJztcbiAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBEYXRlIHx8IG9wdGlvbnMuZGF0ZSAhPSBudWxsKSByZXR1cm4gJ2RhdGUnO1xuXG4gICAgLy8gQXV0byBkZXRlY3Rpb25cbiAgICBpZiAob3B0aW9ucy53aWRnZXQgIT0gbnVsbCkgcmV0dXJuICd3aWRnZXQnO1xuICAgIGVsc2UgaWYgKG9wdGlvbnMubWVnYSAhPSBudWxsKSByZXR1cm4gJ21lZ2EnO1xuICAgIGVsc2UgaWYgKG9wdGlvbnMuY3VycmVuY3kgIT0gbnVsbCkgcmV0dXJuICdjdXJyZW5jeSc7XG4gICAgZWxzZSBpZiAob3B0aW9ucy5jbnkgIT0gbnVsbCkgcmV0dXJuICdjbnknO1xuICAgIGVsc2UgaWYgKG9wdGlvbnMuaW1nICE9IG51bGwpIHJldHVybiAnaW1nJztcbiAgICBlbHNlIGlmIChvcHRpb25zLmxpbmsgIT0gbnVsbCkgcmV0dXJuICdsaW5rJztcbiAgICBlbHNlIGlmIChvcHRpb25zLmh0bWwgIT0gbnVsbCkgcmV0dXJuICdodG1sJztcbiAgICBlbHNlIGlmIChvcHRpb25zLmJhZGdlICE9IG51bGwpIHJldHVybiAnYmFkZ2UnO1xuICAgIGVsc2UgaWYgKG9wdGlvbnMudGFnICE9IG51bGwpIHJldHVybiAndGFnJztcbiAgICBlbHNlIGlmIChvcHRpb25zLmNoZWNrYm94ICE9IG51bGwpIHJldHVybiAnY2hlY2tib3gnO1xuICAgIGVsc2UgaWYgKG9wdGlvbnMucmFkaW8gIT0gbnVsbCkgcmV0dXJuICdyYWRpbyc7XG4gICAgZWxzZSBpZiAob3B0aW9ucy5lbnVtICE9IG51bGwpIHJldHVybiAnZW51bSc7XG4gICAgZWxzZSBpZiAodHlwZU9mID09PSAnbnVtYmVyJykgcmV0dXJuICdudW1iZXInO1xuICAgIGVsc2UgaWYgKHR5cGVPZiA9PT0gJ2Jvb2xlYW4nIHx8IG9wdGlvbnMuYm9vbGVhbiAhPSBudWxsKSByZXR1cm4gJ2Jvb2xlYW4nO1xuICAgIGVsc2UgcmV0dXJuICdzdHJpbmcnO1xuICB9XG5cbiAgZml4T3B0aW9ucyhvcHRpb25zPzogQ2VsbE9wdGlvbnMpOiBDZWxsT3B0aW9ucyB7XG4gICAgcmV0dXJuIGRlZXBNZXJnZSh7fSwgdGhpcy5nbG9iYWxPcHRpb25zLCBvcHRpb25zKTtcbiAgfVxuXG4gIGdldCh2YWx1ZTogdW5rbm93biwgb3B0aW9ucz86IENlbGxPcHRpb25zKTogT2JzZXJ2YWJsZTxDZWxsVGV4dFJlc3VsdD4ge1xuICAgIGNvbnN0IHR5cGUgPSB0aGlzLmdlblR5cGUodmFsdWUsIHsgLi4ub3B0aW9ucyB9KTtcbiAgICBjb25zdCBvcHQgPSB0aGlzLmZpeE9wdGlvbnMob3B0aW9ucyk7XG4gICAgb3B0LnR5cGUgPSB0eXBlO1xuICAgIGNvbnN0IGlzU2FmZUh0bWwgPVxuICAgICAgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJlxuICAgICAgdHlwZW9mICh2YWx1ZSBhcyBOelNhZmVBbnkpPy5nZXRUeXBlTmFtZSA9PT0gJ2Z1bmN0aW9uJyAmJlxuICAgICAgKHZhbHVlIGFzIE56U2FmZUFueSk/LmdldFR5cGVOYW1lKCkgIT0gbnVsbDtcblxuICAgIGxldCByZXM6IENlbGxUZXh0UmVzdWx0ID0ge1xuICAgICAgcmVzdWx0OlxuICAgICAgICB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmICFpc1NhZmVIdG1sXG4gICAgICAgICAgPyAodmFsdWUgYXMgQ2VsbFRleHRVbml0KVxuICAgICAgICAgIDogeyB0ZXh0OiB2YWx1ZSA9PSBudWxsID8gJycgOiBpc1NhZmVIdG1sID8gdmFsdWUgOiBgJHt2YWx1ZX1gIH0sXG4gICAgICBvcHRpb25zOiBvcHRcbiAgICB9O1xuXG4gICAgY29uc3Qgd2lkZ2V0ID0gdGhpcy53aWRnZXRzW3R5cGVdO1xuICAgIGlmICh3aWRnZXQ/LnR5cGUgPT09ICdmbicpIHtcbiAgICAgIHJlcy5yZXN1bHQgPSAod2lkZ2V0LnJlZiBhcyBDZWxsV2lkZ2V0Rm4pKHZhbHVlLCBvcHQpO1xuICAgIH1cblxuICAgIHJldHVybiAodHlwZW9mIHZhbHVlID09PSAnZnVuY3Rpb24nID8gKHZhbHVlIGFzIENlbGxGdVZhbHVlKSh2YWx1ZSwgb3B0KSA6IG9mKHJlcy5yZXN1bHQpKS5waXBlKFxuICAgICAgbWFwKHRleHQgPT4ge1xuICAgICAgICByZXMucmVzdWx0ID0gdGV4dDtcbiAgICAgICAgbGV0IGRpY3REYXRhOiB7IHRvb2x0aXA/OiBzdHJpbmcgfSB8IHVuZGVmaW5lZDtcbiAgICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgICAgY2FzZSAnYmFkZ2UnOlxuICAgICAgICAgICAgZGljdERhdGEgPSAob3B0LmJhZGdlPy5kYXRhID8/IHt9KVt2YWx1ZSBhcyBzdHJpbmddO1xuICAgICAgICAgICAgcmVzLnJlc3VsdCA9IHsgY29sb3I6ICdkZWZhdWx0JywgLi4uZGljdERhdGEgfTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgJ3RhZyc6XG4gICAgICAgICAgICBkaWN0RGF0YSA9IChvcHQudGFnPy5kYXRhID8/IHt9KVt2YWx1ZSBhcyBzdHJpbmddO1xuICAgICAgICAgICAgcmVzLnJlc3VsdCA9IGRpY3REYXRhIGFzIENlbGxUZXh0VW5pdDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgJ2VudW0nOlxuICAgICAgICAgICAgcmVzLnJlc3VsdCA9IHsgdGV4dDogKG9wdC5lbnVtID8/IHt9KVt2YWx1ZSBhcyBzdHJpbmddIH07XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlICdodG1sJzpcbiAgICAgICAgICAgIHJlcy5zYWZlSHRtbCA9IG9wdC5odG1sPy5zYWZlO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAnc3RyaW5nJzpcbiAgICAgICAgICAgIGlmIChpc1NhZmVIdG1sKSByZXMuc2FmZUh0bWwgPSAnc2FmZUh0bWwnO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCh0eXBlID09PSAnYmFkZ2UnIHx8IHR5cGUgPT09ICd0YWcnKSAmJiBkaWN0RGF0YT8udG9vbHRpcCAhPSBudWxsKSB7XG4gICAgICAgICAgcmVzLm9wdGlvbnMudG9vbHRpcCA9IGRpY3REYXRhLnRvb2x0aXA7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG9wdC5tYXNrICE9IG51bGwpIHtcbiAgICAgICAgICByZXMucmVzdWx0LnRleHQgPSBmb3JtYXRNYXNrKHJlcy5yZXN1bHQudGV4dCBhcyBzdHJpbmcsIG9wdC5tYXNrKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzO1xuICAgICAgfSlcbiAgICApO1xuICB9XG59XG4iXX0=