@ebuilding/biz-comm 2.0.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 (146) hide show
  1. package/LICENSE +0 -0
  2. package/README.md +0 -0
  3. package/components/filter/index.d.ts +1 -0
  4. package/components/filter/src/compare-filter/index.d.ts +44 -0
  5. package/components/filter/src/default/index.d.ts +41 -0
  6. package/components/filter/src/index.module.d.ts +8 -0
  7. package/components/filter/src/public_api.d.ts +3 -0
  8. package/components/lookup/index.d.ts +1 -0
  9. package/components/lookup/src/default/index.d.ts +28 -0
  10. package/components/lookup/src/index.module.d.ts +8 -0
  11. package/components/lookup/src/public_api.d.ts +2 -0
  12. package/fesm2022/components.filter.mjs +411 -0
  13. package/fesm2022/components.filter.mjs.map +1 -0
  14. package/fesm2022/components.lookup.mjs +161 -0
  15. package/fesm2022/components.lookup.mjs.map +1 -0
  16. package/fesm2022/ebuilding-biz-comm.mjs +7 -0
  17. package/fesm2022/ebuilding-biz-comm.mjs.map +1 -0
  18. package/fesm2022/other.card.mjs +419 -0
  19. package/fesm2022/other.card.mjs.map +1 -0
  20. package/fesm2022/other.control.mjs +176 -0
  21. package/fesm2022/other.control.mjs.map +1 -0
  22. package/fesm2022/other.dict.mjs +1181 -0
  23. package/fesm2022/other.dict.mjs.map +1 -0
  24. package/fesm2022/other.formula.mjs +558 -0
  25. package/fesm2022/other.formula.mjs.map +1 -0
  26. package/fesm2022/other.rule.mjs +735 -0
  27. package/fesm2022/other.rule.mjs.map +1 -0
  28. package/fesm2022/other.source.args.mjs +290 -0
  29. package/fesm2022/other.source.args.mjs.map +1 -0
  30. package/fesm2022/other.source.field-map.mjs +245 -0
  31. package/fesm2022/other.source.field-map.mjs.map +1 -0
  32. package/fesm2022/other.source.filter.mjs +295 -0
  33. package/fesm2022/other.source.filter.mjs.map +1 -0
  34. package/fesm2022/other.source.group.mjs +219 -0
  35. package/fesm2022/other.source.group.mjs.map +1 -0
  36. package/fesm2022/other.source.mjs +1485 -0
  37. package/fesm2022/other.source.mjs.map +1 -0
  38. package/fesm2022/other.source.order.mjs +243 -0
  39. package/fesm2022/other.source.order.mjs.map +1 -0
  40. package/fesm2022/other.source.table.mjs +326 -0
  41. package/fesm2022/other.source.table.mjs.map +1 -0
  42. package/fesm2022/other.tree.mjs +441 -0
  43. package/fesm2022/other.tree.mjs.map +1 -0
  44. package/fesm2022/type.formula.mjs +133 -0
  45. package/fesm2022/type.formula.mjs.map +1 -0
  46. package/fesm2022/type.lookup.mjs +256 -0
  47. package/fesm2022/type.lookup.mjs.map +1 -0
  48. package/fesm2022/type.mjs +674 -0
  49. package/fesm2022/type.mjs.map +1 -0
  50. package/fesm2022/type.tree.mjs +225 -0
  51. package/fesm2022/type.tree.mjs.map +1 -0
  52. package/index.d.ts +2 -0
  53. package/other/card/index.d.ts +1 -0
  54. package/other/card/src/card-user/index.d.ts +31 -0
  55. package/other/card/src/card.service.d.ts +28 -0
  56. package/other/card/src/components/emp/index.d.ts +13 -0
  57. package/other/card/src/default/index.d.ts +48 -0
  58. package/other/card/src/index.module.d.ts +9 -0
  59. package/other/card/src/public_api.d.ts +3 -0
  60. package/other/control/index.d.ts +1 -0
  61. package/other/control/src/dict/index.d.ts +26 -0
  62. package/other/control/src/index.module.d.ts +7 -0
  63. package/other/control/src/public_api.d.ts +2 -0
  64. package/other/dict/index.d.ts +1 -0
  65. package/other/dict/src/field/index.d.ts +45 -0
  66. package/other/dict/src/field-info/index.d.ts +38 -0
  67. package/other/dict/src/field-read/index.d.ts +26 -0
  68. package/other/dict/src/index.module.d.ts +9 -0
  69. package/other/dict/src/public_api.d.ts +4 -0
  70. package/other/formula/index.d.ts +1 -0
  71. package/other/formula/src/default/index.d.ts +33 -0
  72. package/other/formula/src/form-item/index.d.ts +32 -0
  73. package/other/formula/src/form-setting/index.d.ts +32 -0
  74. package/other/formula/src/formula.service.d.ts +20 -0
  75. package/other/formula/src/index.module.d.ts +10 -0
  76. package/other/formula/src/public_api.d.ts +5 -0
  77. package/other/formula/src/rule-event/index.d.ts +23 -0
  78. package/other/rule/index.d.ts +1 -0
  79. package/other/rule/src/index.module.d.ts +16 -0
  80. package/other/rule/src/main/index.component.d.ts +34 -0
  81. package/other/rule/src/public_api.d.ts +2 -0
  82. package/other/rule/src/rule-change/index.component.d.ts +9 -0
  83. package/other/rule/src/rule-change-boolean/index.component.d.ts +13 -0
  84. package/other/rule/src/rule-change-date/index.component.d.ts +13 -0
  85. package/other/rule/src/rule-change-item/index.component.d.ts +13 -0
  86. package/other/rule/src/rule-change-number/index.component.d.ts +13 -0
  87. package/other/rule/src/rule-change-ref/index.component.d.ts +19 -0
  88. package/other/rule/src/rule-change-text/index.component.d.ts +13 -0
  89. package/other/rule/src/rule-change-upload/index.component.d.ts +11 -0
  90. package/other/rule/src/rule-fixed/index.component.d.ts +13 -0
  91. package/other/rule/src/service/config.service.d.ts +43 -0
  92. package/other/rule/src/service/rule.service.d.ts +11 -0
  93. package/other/source/args/index.d.ts +1 -0
  94. package/other/source/args/src/basic.d.ts +49 -0
  95. package/other/source/args/src/default/index.d.ts +24 -0
  96. package/other/source/args/src/index.module.d.ts +7 -0
  97. package/other/source/args/src/public_api.d.ts +2 -0
  98. package/other/source/field-map/index.d.ts +1 -0
  99. package/other/source/field-map/src/basic.d.ts +39 -0
  100. package/other/source/field-map/src/default/index.d.ts +26 -0
  101. package/other/source/field-map/src/index.module.d.ts +7 -0
  102. package/other/source/field-map/src/public_api.d.ts +2 -0
  103. package/other/source/filter/index.d.ts +1 -0
  104. package/other/source/filter/src/basic.d.ts +45 -0
  105. package/other/source/filter/src/default/index.d.ts +26 -0
  106. package/other/source/filter/src/index.module.d.ts +8 -0
  107. package/other/source/filter/src/public_api.d.ts +3 -0
  108. package/other/source/filter/src/second/index.d.ts +30 -0
  109. package/other/source/group/index.d.ts +1 -0
  110. package/other/source/group/src/basic.d.ts +32 -0
  111. package/other/source/group/src/default/index.d.ts +26 -0
  112. package/other/source/group/src/index.module.d.ts +7 -0
  113. package/other/source/group/src/public_api.d.ts +2 -0
  114. package/other/source/index.d.ts +6 -0
  115. package/other/source/order/index.d.ts +1 -0
  116. package/other/source/order/src/basic.d.ts +39 -0
  117. package/other/source/order/src/default/index.d.ts +26 -0
  118. package/other/source/order/src/index.module.d.ts +7 -0
  119. package/other/source/order/src/public_api.d.ts +2 -0
  120. package/other/source/table/index.d.ts +1 -0
  121. package/other/source/table/src/basic.d.ts +62 -0
  122. package/other/source/table/src/default/index.d.ts +26 -0
  123. package/other/source/table/src/index.module.d.ts +7 -0
  124. package/other/source/table/src/public_api.d.ts +2 -0
  125. package/other/tree/index.d.ts +1 -0
  126. package/other/tree/src/components/form/index.d.ts +17 -0
  127. package/other/tree/src/components/tree/index.d.ts +19 -0
  128. package/other/tree/src/default/index.d.ts +18 -0
  129. package/other/tree/src/index.module.d.ts +9 -0
  130. package/other/tree/src/public_api.d.ts +4 -0
  131. package/other/tree/src/treeService.d.ts +59 -0
  132. package/package.json +96 -0
  133. package/type/formula/index.d.ts +1 -0
  134. package/type/formula/src/default/index.d.ts +19 -0
  135. package/type/formula/src/index.module.d.ts +8 -0
  136. package/type/formula/src/public_api.d.ts +2 -0
  137. package/type/index.d.ts +1 -0
  138. package/type/index.module.d.ts +11 -0
  139. package/type/lookup/index.d.ts +1 -0
  140. package/type/lookup/src/default/index.d.ts +31 -0
  141. package/type/lookup/src/index.module.d.ts +8 -0
  142. package/type/lookup/src/public_api.d.ts +2 -0
  143. package/type/tree/index.d.ts +1 -0
  144. package/type/tree/src/default/index.d.ts +31 -0
  145. package/type/tree/src/index.module.d.ts +8 -0
  146. package/type/tree/src/public_api.d.ts +2 -0
@@ -0,0 +1,441 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Injectable, Component, Input, NgModule } from '@angular/core';
3
+ import * as i3$1 from '@angular/common';
4
+ import { CommonModule } from '@angular/common';
5
+ import * as i5 from '@angular/forms';
6
+ import { FormGroup, FormsModule, ReactiveFormsModule } from '@angular/forms';
7
+ import * as i4 from 'ng-zorro-antd/spin';
8
+ import { NzSpinModule } from 'ng-zorro-antd/spin';
9
+ import * as i6 from '@kre-form/core';
10
+ import { FormlyModule } from '@kre-form/core';
11
+ import * as i7 from 'ng-zorro-antd/button';
12
+ import { NzButtonModule } from 'ng-zorro-antd/button';
13
+ import * as i10 from 'ng-zorro-antd/empty';
14
+ import { NzEmptyModule } from 'ng-zorro-antd/empty';
15
+ import * as i11 from 'ng-zorro-antd/icon';
16
+ import { NzIconModule } from 'ng-zorro-antd/icon';
17
+ import * as i1$1 from '@delon/theme';
18
+ import * as i2 from 'ng-zorro-antd/message';
19
+ import _ from 'lodash';
20
+ import { zip, of } from 'rxjs';
21
+ import * as i1 from '@angular/router';
22
+ import * as i3 from 'ng-zorro-antd/modal';
23
+ import * as i8 from 'ng-zorro-antd/core/transition-patch';
24
+ import * as i9 from 'ng-zorro-antd/core/wave';
25
+ import * as i5$1 from 'ng-zorro-antd/input';
26
+ import { NzInputModule } from 'ng-zorro-antd/input';
27
+ import * as i10$1 from 'ng-zorro-antd/tree';
28
+ import { NzTreeModule } from 'ng-zorro-antd/tree';
29
+ import * as i12 from 'ng-zorro-antd/dropdown';
30
+ import { NzDropDownModule } from 'ng-zorro-antd/dropdown';
31
+ import * as i13 from '@ebuilding/abc/empty';
32
+ import { GramDeonEmptyModule } from '@ebuilding/abc/empty';
33
+ import * as i11$1 from 'ng-zorro-antd/menu';
34
+
35
+ class TreeService {
36
+ router;
37
+ http;
38
+ modal;
39
+ msg;
40
+ loading = false;
41
+ nzExpandAll = true;
42
+ data = [];
43
+ defaultApi = null;
44
+ defaultPara = null;
45
+ defaultForm = null;
46
+ defaultModel = null;
47
+ defaultSearch = null;
48
+ searchPara = null;
49
+ selectedKey = null;
50
+ selectedKeys = [];
51
+ expandedKeys = [];
52
+ selectedItem = null;
53
+ form = new FormGroup({});
54
+ model = {};
55
+ options = {};
56
+ fields = [];
57
+ editor = true;
58
+ keyword = null;
59
+ type = null; //'tree' || 'list';
60
+ constructor(router, http, modal, msg) {
61
+ this.router = router;
62
+ this.http = http;
63
+ this.modal = modal;
64
+ this.msg = msg;
65
+ }
66
+ init(config) {
67
+ if (config) {
68
+ this.defaultApi = config.defaultApi;
69
+ if (config.defaultPara) {
70
+ this.defaultPara = config.defaultPara;
71
+ }
72
+ if (config.defaultModel) {
73
+ this.defaultModel = config.defaultModel;
74
+ }
75
+ if (config.defaultForm) {
76
+ this.defaultForm = config.defaultForm;
77
+ }
78
+ if (config.defaultSearch) {
79
+ this.defaultSearch = config.defaultSearch;
80
+ }
81
+ if (config.searchPara) {
82
+ this.searchPara = config.searchPara;
83
+ }
84
+ this.editor = true;
85
+ this.type = 'tree';
86
+ }
87
+ }
88
+ btnReload() {
89
+ if (JSON.stringify(this.model) !== '{"disFlag":false}') {
90
+ this.options?.resetModel();
91
+ }
92
+ this.model = { type: 'SINGLE', refType: 'EMP', master: true };
93
+ this.form = new FormGroup({});
94
+ this.selectedKey = null;
95
+ this.selectedKeys = [];
96
+ this.expandedKeys = [];
97
+ this.selectedItem = null;
98
+ this.editor = true;
99
+ this.keyword = null;
100
+ this.type = 'tree';
101
+ this.getDataTree();
102
+ }
103
+ btnSave() {
104
+ if (!this.form.valid) {
105
+ this.msg.warning('请检查必填项!');
106
+ return;
107
+ }
108
+ this.loading = true;
109
+ let postData = _.cloneDeep(this.model);
110
+ if (this.defaultModel) {
111
+ postData = Object.assign(postData, this.defaultModel);
112
+ }
113
+ this.http.post(this.defaultForm, postData).subscribe((res) => {
114
+ this.loading = false;
115
+ if (res && res.success == true) {
116
+ this.msg.success('保存成功!');
117
+ }
118
+ this.form = new FormGroup({});
119
+ this.options?.resetModel();
120
+ this.selectedItem = _.cloneDeep(res.result);
121
+ this.btnSearch();
122
+ }, () => {
123
+ this.loading = false;
124
+ });
125
+ }
126
+ btnSearch() {
127
+ if (this.keyword) {
128
+ this.getDataList();
129
+ }
130
+ else {
131
+ this.getDataTree();
132
+ }
133
+ }
134
+ itemClick(e) {
135
+ this.selectedItem = e;
136
+ this.getConfig();
137
+ }
138
+ getDataList() {
139
+ this.type = 'list';
140
+ this.loading = true;
141
+ let postData = { title: this.keyword };
142
+ if (this.searchPara) {
143
+ postData = Object.assign(postData, this.searchPara);
144
+ }
145
+ this.http.post(this.defaultSearch, postData).subscribe((res) => {
146
+ if (res && res.success == true) {
147
+ if (res.result && res.result.length > 0) {
148
+ this.data = [...res.result];
149
+ }
150
+ else {
151
+ {
152
+ this.data = [];
153
+ }
154
+ }
155
+ }
156
+ this.getConfig();
157
+ });
158
+ }
159
+ /**
160
+ * 获取树数据
161
+ */
162
+ getDataTree() {
163
+ this.type = 'tree';
164
+ this.loading = true;
165
+ this.http.post(this.defaultApi, this.defaultPara).subscribe((res) => {
166
+ if (res && res.success == true) {
167
+ if (res.result && res.result.length > 0) {
168
+ this.data = [...res.result];
169
+ }
170
+ else {
171
+ {
172
+ this.data = [];
173
+ }
174
+ }
175
+ this.expandedKeys = [...this.expandedKeys];
176
+ this.selectedKeys = [...this.selectedKeys];
177
+ }
178
+ this.getConfig();
179
+ });
180
+ }
181
+ getConfig() {
182
+ new Promise((resolve) => {
183
+ zip(this.getFormData(), this.getFormConfig()).subscribe(([data, config]) => {
184
+ this.model = data;
185
+ this.fields = config;
186
+ this.loading = false;
187
+ }, () => { }, () => {
188
+ resolve();
189
+ });
190
+ });
191
+ }
192
+ /**
193
+ * 获取Form 数据
194
+ * @returns
195
+ */
196
+ getFormData() {
197
+ if (this.selectedItem) {
198
+ let data = _.cloneDeep(this.selectedItem);
199
+ return of(data);
200
+ }
201
+ return of({});
202
+ }
203
+ /**
204
+ * 获取Form 配置
205
+ * @returns
206
+ */
207
+ getFormConfig() {
208
+ let config = [
209
+ {
210
+ type: 'grid',
211
+ fieldGroup: [
212
+ {
213
+ type: 'list',
214
+ props: {
215
+ cols: 8,
216
+ },
217
+ fieldGroup: [
218
+ {
219
+ type: 'text',
220
+ key: 'code',
221
+ props: { label: '编码', required: true, maxLength: 50, placeholder: '请输入编码', layout: 'upDown' },
222
+ editor: this.editor,
223
+ },
224
+ ],
225
+ },
226
+ {
227
+ type: 'list',
228
+ props: {
229
+ cols: 8,
230
+ },
231
+ fieldGroup: [
232
+ {
233
+ type: 'text',
234
+ key: 'title',
235
+ props: { label: '名称', required: true, maxLength: 50, placeholder: '请输入名称', layout: 'upDown' },
236
+ },
237
+ ],
238
+ },
239
+ {
240
+ type: 'list',
241
+ props: {
242
+ cols: 8,
243
+ },
244
+ fieldGroup: [
245
+ {
246
+ type: 'checkbox',
247
+ key: 'disFlag',
248
+ props: {
249
+ label: '是否禁用',
250
+ layout: 'upDown',
251
+ hideLabel: true,
252
+ labelPosition: 'right',
253
+ },
254
+ defaultValue: false,
255
+ },
256
+ ],
257
+ },
258
+ ],
259
+ },
260
+ {
261
+ type: 'panel',
262
+ props: {
263
+ label: '下级参数',
264
+ },
265
+ fieldGroup: [
266
+ {
267
+ type: 'repeat',
268
+ key: 'children',
269
+ fieldArray: {
270
+ fieldGroup: [
271
+ {
272
+ type: 'text',
273
+ key: 'code',
274
+ props: { label: '编码', required: true, maxLength: 50, placeholder: '请输入编码', cols: 12 },
275
+ },
276
+ {
277
+ type: 'text',
278
+ key: 'title',
279
+ props: { label: '名称', required: true, maxLength: 50, placeholder: '请输入名称', cols: 12 },
280
+ },
281
+ {
282
+ type: 'checkbox',
283
+ key: 'disFlag',
284
+ props: {
285
+ label: '是否禁用',
286
+ },
287
+ defaultValue: false,
288
+ },
289
+ ],
290
+ },
291
+ },
292
+ ],
293
+ },
294
+ ];
295
+ return of(_.cloneDeep(config));
296
+ }
297
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TreeService, deps: [{ token: i1.Router }, { token: i1$1._HttpClient }, { token: i3.NzModalService }, { token: i2.NzMessageService }], target: i0.ɵɵFactoryTarget.Injectable });
298
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TreeService });
299
+ }
300
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TreeService, decorators: [{
301
+ type: Injectable
302
+ }], ctorParameters: () => [{ type: i1.Router }, { type: i1$1._HttpClient }, { type: i3.NzModalService }, { type: i2.NzMessageService }] });
303
+
304
+ class TreeFormComponent {
305
+ http;
306
+ msg;
307
+ treeSrv;
308
+ // loading: boolean = true;
309
+ // form = new FormGroup({});
310
+ // model: any = {};
311
+ // options: DeonFormOptions = {};
312
+ // fields:FormlyFieldConfig[] = [];
313
+ // @Input() treeId: any = null;
314
+ // @Input() node: any = null;
315
+ // @Output() saveData: EventEmitter<any> = new EventEmitter();
316
+ // @Output() clearData: EventEmitter<any> = new EventEmitter();
317
+ // get editor() {
318
+ // return this.node!! ? false : true;
319
+ // }
320
+ constructor(http, msg, treeSrv) {
321
+ this.http = http;
322
+ this.msg = msg;
323
+ this.treeSrv = treeSrv;
324
+ }
325
+ ngOnInit() { }
326
+ ngAfterViewInit() { }
327
+ ngOnChanges(changes) { }
328
+ ngOnDestroy() { }
329
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TreeFormComponent, deps: [{ token: i1$1._HttpClient }, { token: i2.NzMessageService }, { token: TreeService }], target: i0.ɵɵFactoryTarget.Component });
330
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: TreeFormComponent, isStandalone: true, selector: "tree-form", usesOnChanges: true, ngImport: i0, template: "<form [formGroup]=\"treeSrv.form\" (ngSubmit)=\"treeSrv.btnSave()\">\r\n <div class=\"deon-head\">\r\n <div class=\"left\">\r\n <ul>\r\n <li *ngIf=\"treeSrv.selectedItem == null\">\u9009\u4E2D\u9879\uFF1A---</li>\r\n <li *ngIf=\"treeSrv.selectedItem!!\">\u9009\u4E2D\u9879\uFF1A{{ treeSrv.selectedItem?.title }}</li>\r\n </ul>\r\n </div>\r\n <div class=\"right\">\r\n <button nz-button nzType=\"default\" (click)=\"treeSrv.btnReload()\" type=\"button\"><i nz-icon\r\n nzType=\"reload\"></i>\u6E05\u9664\u9009\u9879</button>\r\n <button nz-button nzType=\"primary\"><i nz-icon nzType=\"save\"></i>\u4FDD\u5B58</button>\r\n </div>\r\n </div>\r\n <div class=\"deon-from\">\r\n <ng-container *ngIf=\"treeSrv.fields && treeSrv.fields.length > 0; else emptyPage\">\r\n <formly-form [model]=\"treeSrv.model\" [fields]=\"treeSrv.fields\" [options]=\"treeSrv.options\" [form]=\"treeSrv.form\">\r\n </formly-form>\r\n </ng-container>\r\n <ng-template #emptyPage>\r\n <nz-empty *ngIf=\"treeSrv.loading !== true\"></nz-empty>\r\n </ng-template>\r\n </div>\r\n</form>", styles: [":host ::ng-deep{display:flex;flex:1;flex-direction:column;width:100%;height:100%;padding:0}:host ::ng-deep form{overflow:hidden}:host ::ng-deep .deon-head{display:flex;height:auto;padding:8px 12px;border-bottom:1px solid #eaeaea}:host ::ng-deep .deon-head .left{flex:1}:host ::ng-deep .deon-head .left ul{display:flex;align-items:center;height:100%;margin:0;padding:0;list-style:none}:host ::ng-deep .repeat-table{border:0!important}:host ::ng-deep .field-panel-box{padding:0!important}:host ::ng-deep deon-nz-field-repeat{margin-bottom:0!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: FormlyModule }, { kind: "component", type: i6.FormlyForm, selector: "formly-form", inputs: ["form", "model", "fields", "options"], outputs: ["modelChange"] }, { kind: "ngmodule", type: NzButtonModule }, { kind: "component", type: i7.NzButtonComponent, selector: "button[nz-button], a[nz-button]", inputs: ["nzBlock", "nzGhost", "nzSearch", "nzLoading", "nzDanger", "disabled", "tabIndex", "nzType", "nzShape", "nzSize"], exportAs: ["nzButton"] }, { kind: "directive", type: i8.ɵNzTransitionPatchDirective, selector: "[nz-button], nz-button-group, [nz-icon], nz-icon, [nz-menu-item], [nz-submenu], nz-select-top-control, nz-select-placeholder, nz-input-group", inputs: ["hidden"] }, { kind: "directive", type: i9.NzWaveDirective, selector: "[nz-wave],button[nz-button]:not([nzType=\"link\"]):not([nzType=\"text\"])", inputs: ["nzWaveExtraNode"], exportAs: ["nzWave"] }, { kind: "ngmodule", type: NzEmptyModule }, { kind: "component", type: i10.NzEmptyComponent, selector: "nz-empty", inputs: ["nzNotFoundImage", "nzNotFoundContent", "nzNotFoundFooter"], exportAs: ["nzEmpty"] }, { kind: "ngmodule", type: NzIconModule }, { kind: "directive", type: i11.NzIconDirective, selector: "nz-icon,[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }] });
331
+ }
332
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TreeFormComponent, decorators: [{
333
+ type: Component,
334
+ args: [{ selector: 'tree-form', imports: [
335
+ CommonModule,
336
+ FormsModule,
337
+ ReactiveFormsModule,
338
+ FormlyModule,
339
+ NzButtonModule,
340
+ NzEmptyModule,
341
+ NzIconModule
342
+ ], template: "<form [formGroup]=\"treeSrv.form\" (ngSubmit)=\"treeSrv.btnSave()\">\r\n <div class=\"deon-head\">\r\n <div class=\"left\">\r\n <ul>\r\n <li *ngIf=\"treeSrv.selectedItem == null\">\u9009\u4E2D\u9879\uFF1A---</li>\r\n <li *ngIf=\"treeSrv.selectedItem!!\">\u9009\u4E2D\u9879\uFF1A{{ treeSrv.selectedItem?.title }}</li>\r\n </ul>\r\n </div>\r\n <div class=\"right\">\r\n <button nz-button nzType=\"default\" (click)=\"treeSrv.btnReload()\" type=\"button\"><i nz-icon\r\n nzType=\"reload\"></i>\u6E05\u9664\u9009\u9879</button>\r\n <button nz-button nzType=\"primary\"><i nz-icon nzType=\"save\"></i>\u4FDD\u5B58</button>\r\n </div>\r\n </div>\r\n <div class=\"deon-from\">\r\n <ng-container *ngIf=\"treeSrv.fields && treeSrv.fields.length > 0; else emptyPage\">\r\n <formly-form [model]=\"treeSrv.model\" [fields]=\"treeSrv.fields\" [options]=\"treeSrv.options\" [form]=\"treeSrv.form\">\r\n </formly-form>\r\n </ng-container>\r\n <ng-template #emptyPage>\r\n <nz-empty *ngIf=\"treeSrv.loading !== true\"></nz-empty>\r\n </ng-template>\r\n </div>\r\n</form>", styles: [":host ::ng-deep{display:flex;flex:1;flex-direction:column;width:100%;height:100%;padding:0}:host ::ng-deep form{overflow:hidden}:host ::ng-deep .deon-head{display:flex;height:auto;padding:8px 12px;border-bottom:1px solid #eaeaea}:host ::ng-deep .deon-head .left{flex:1}:host ::ng-deep .deon-head .left ul{display:flex;align-items:center;height:100%;margin:0;padding:0;list-style:none}:host ::ng-deep .repeat-table{border:0!important}:host ::ng-deep .field-panel-box{padding:0!important}:host ::ng-deep deon-nz-field-repeat{margin-bottom:0!important}\n"] }]
343
+ }], ctorParameters: () => [{ type: i1$1._HttpClient }, { type: i2.NzMessageService }, { type: TreeService }] });
344
+
345
+ class TreeInfoComponent {
346
+ msgSrv;
347
+ treeSrv;
348
+ constructor(msgSrv, treeSrv) {
349
+ this.msgSrv = msgSrv;
350
+ this.treeSrv = treeSrv;
351
+ }
352
+ keyword = null;
353
+ ngOnInit() { }
354
+ ngOnDestroy() { }
355
+ /**
356
+ * 点击树
357
+ * @param event
358
+ */
359
+ treeClick(event) {
360
+ event.node.isExpanded = !event.node.isExpanded;
361
+ this.treeSrv.selectedItem = event.node.origin;
362
+ this.treeSrv.selectedKey = event.node.key;
363
+ this.treeSrv.selectedKeys = [...[event.node.key]];
364
+ this.treeSrv.editor = false;
365
+ this.treeSrv.getConfig();
366
+ }
367
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TreeInfoComponent, deps: [{ token: i2.NzMessageService }, { token: TreeService }], target: i0.ɵɵFactoryTarget.Component });
368
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: TreeInfoComponent, isStandalone: true, selector: "tree-info", ngImport: i0, template: "<div class=\"tree-query\">\r\n <nz-input-group nzSearch [nzAddOnAfter]=\"suffixButton\">\r\n <input type=\"text\" nz-input placeholder=\"\u8BF7\u8F93\u5165\u5173\u952E\u5B57\u67E5\u8BE2\" [(ngModel)]=\"treeSrv.keyword\" />\r\n </nz-input-group>\r\n <ng-template #suffixButton>\r\n <button nz-button nzType=\"primary\" type=\"button\" nzSearch (click)=\"treeSrv.btnSearch()\"><i nz-icon nzType=\"search\"></i>\u67E5\u8BE2</button>\r\n </ng-template>\r\n</div>\r\n<div class=\"tree-content\">\r\n <ng-container *ngIf=\"treeSrv.data!! && treeSrv.data.length > 0; else tmpEmpty\">\r\n <ng-container *ngIf=\"treeSrv.type == 'tree'; else tmpList\">\r\n <nz-tree\r\n [nzData]=\"treeSrv.data\"\r\n [nzExpandAll]=\"treeSrv.nzExpandAll\"\r\n [nzExpandedKeys]=\"treeSrv.expandedKeys\"\r\n [nzSelectedKeys]=\"treeSrv.selectedKeys\"\r\n (nzClick)=\"treeClick($event)\"\r\n [nzTreeTemplate]=\"nzTreeTemplate\"\r\n >\r\n </nz-tree>\r\n <ng-template #nzTreeTemplate let-node let-origin=\"origin\">\r\n <span class=\"custom-node\">\r\n <span class=\"folder-name\">{{ node.title }}</span>\r\n <span class=\"folder-operation\" nz-dropdown [nzDropdownMenu]=\"menu\">\r\n <i nz-icon nzType=\"more\"></i>\r\n </span>\r\n\r\n <nz-dropdown-menu #menu=\"nzDropdownMenu\">\r\n <ul nz-menu nzSelectable>\r\n <li nz-menu-item nzDisabled>\u6811\u5F62\u53C2\u6570ID\uFF1A{{ node.id }}</li>\r\n </ul>\r\n </nz-dropdown-menu>\r\n </span>\r\n </ng-template>\r\n </ng-container>\r\n\r\n <ng-template #tmpList>\r\n <ul class=\"list-content\">\r\n <ng-container *ngFor=\"let item of treeSrv.data\">\r\n <li\r\n (click)=\"treeSrv.itemClick(item)\"\r\n [ngClass]=\"{ 'item-selected': treeSrv.selectedItem!! && item.id == treeSrv.selectedItem.id}\"\r\n >\r\n {{ item.title }}\r\n </li>\r\n </ng-container>\r\n </ul>\r\n </ng-template>\r\n </ng-container>\r\n</div>\r\n<ng-template #tmpEmpty>\r\n <div class=\"tree-empty\">\r\n <gram-empty state=\"empty9\"></gram-empty>\r\n </div>\r\n</ng-template>\r\n", styles: [":host ::ng-deep{display:flex;flex:1;flex-direction:column;width:100%;height:100%;padding:0}:host ::ng-deep .item-selected{color:#fff;background-color:#1177fb}:host ::ng-deep .tree-query{display:flex;width:100%;padding:8px 12px;border-bottom:1px solid #eaeaea}:host ::ng-deep .tree-query nz-input-group{width:100%}:host ::ng-deep .list-content{width:100%;margin:0;padding:0}:host ::ng-deep .list-content li{min-height:24px;margin:0 0 4px;padding:6px 10px}:host ::ng-deep .list-content li:hover{background:#d6e9ff;cursor:pointer}:host ::ng-deep .tree-content{flex:1;width:100%;padding:10px 12px;overflow-x:overlay;overflow-y:overlay}:host ::ng-deep .tree-content::-webkit-scrollbar{width:8px}:host ::ng-deep .tree-content::-webkit-scrollbar-thumb{background-color:#94949475;border-radius:7px}:host ::ng-deep .tree-content::-webkit-scrollbar-track{background-color:#fff}:host ::ng-deep .tree-content .custom-node{display:flex;width:100%;cursor:pointer}:host ::ng-deep .tree-content .custom-node .folder-name{flex:1}:host ::ng-deep .tree-content .custom-node .folder-operation{display:none;cursor:pointer}:host ::ng-deep .tree-content nz-tree-node-switcher{width:10px!important}:host ::ng-deep .tree-content .ant-tree-indent-unit{width:10px!important}:host ::ng-deep .tree-content .ant-tree-treenode{padding:4px 0}:host ::ng-deep .tree-content .ant-tree-treenode-selected{color:#fff!important;background:#1177fb!important}:host ::ng-deep .tree-content .ant-tree-treenode-selected .custom-node .folder-operation{display:block!important;color:#fff!important}:host ::ng-deep .tree-content .ant-tree-treenode-selected nz-tree-node-title{background:none;transition:none}:host ::ng-deep .tree-content nz-tree-node:hover{background:#d6e9ff}:host ::ng-deep .tree-content nz-tree-node:hover nz-tree-node-title{background:none;transition:none}:host ::ng-deep .tree-content nz-tree-node:hover .custom-node .folder-operation{display:block;color:#1177fb}:host ::ng-deep nz-tree-node-title{width:100%;cursor:pointer}:host ::ng-deep .tree-empty{display:flex;width:100%;height:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: NzInputModule }, { kind: "directive", type: i5$1.NzInputDirective, selector: "input[nz-input],textarea[nz-input]", inputs: ["nzBorderless", "nzSize", "nzStepperless", "nzStatus", "disabled"], exportAs: ["nzInput"] }, { kind: "component", type: i5$1.NzInputGroupComponent, selector: "nz-input-group", inputs: ["nzAddOnBeforeIcon", "nzAddOnAfterIcon", "nzPrefixIcon", "nzSuffixIcon", "nzAddOnBefore", "nzAddOnAfter", "nzPrefix", "nzStatus", "nzSuffix", "nzSize", "nzSearch", "nzCompact"], exportAs: ["nzInputGroup"] }, { kind: "ngmodule", type: NzButtonModule }, { kind: "component", type: i7.NzButtonComponent, selector: "button[nz-button], a[nz-button]", inputs: ["nzBlock", "nzGhost", "nzSearch", "nzLoading", "nzDanger", "disabled", "tabIndex", "nzType", "nzShape", "nzSize"], exportAs: ["nzButton"] }, { kind: "directive", type: i8.ɵNzTransitionPatchDirective, selector: "[nz-button], nz-button-group, [nz-icon], nz-icon, [nz-menu-item], [nz-submenu], nz-select-top-control, nz-select-placeholder, nz-input-group", inputs: ["hidden"] }, { kind: "directive", type: i9.NzWaveDirective, selector: "[nz-wave],button[nz-button]:not([nzType=\"link\"]):not([nzType=\"text\"])", inputs: ["nzWaveExtraNode"], exportAs: ["nzWave"] }, { kind: "ngmodule", type: NzEmptyModule }, { kind: "ngmodule", type: NzIconModule }, { kind: "directive", type: i11.NzIconDirective, selector: "nz-icon,[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { kind: "ngmodule", type: NzTreeModule }, { kind: "component", type: i10$1.NzTreeComponent, selector: "nz-tree", inputs: ["nzShowIcon", "nzHideUnMatched", "nzBlockNode", "nzExpandAll", "nzSelectMode", "nzCheckStrictly", "nzShowExpand", "nzShowLine", "nzCheckable", "nzAsyncData", "nzDraggable", "nzMultiple", "nzExpandedIcon", "nzVirtualItemSize", "nzVirtualMaxBufferPx", "nzVirtualMinBufferPx", "nzVirtualHeight", "nzTreeTemplate", "nzBeforeDrop", "nzData", "nzExpandedKeys", "nzSelectedKeys", "nzCheckedKeys", "nzSearchValue", "nzSearchFunc"], outputs: ["nzExpandedKeysChange", "nzSelectedKeysChange", "nzCheckedKeysChange", "nzSearchValueChange", "nzClick", "nzDblClick", "nzContextMenu", "nzCheckboxChange", "nzExpandChange", "nzOnDragStart", "nzOnDragEnter", "nzOnDragOver", "nzOnDragLeave", "nzOnDrop", "nzOnDragEnd"], exportAs: ["nzTree"] }, { kind: "ngmodule", type: NzDropDownModule }, { kind: "directive", type: i11$1.NzMenuDirective, selector: "[nz-menu]", inputs: ["nzInlineIndent", "nzTheme", "nzMode", "nzInlineCollapsed", "nzSelectable"], outputs: ["nzClick"], exportAs: ["nzMenu"] }, { kind: "component", type: i11$1.NzMenuItemComponent, selector: "[nz-menu-item]", inputs: ["nzPaddingLeft", "nzDisabled", "nzSelected", "nzDanger", "nzMatchRouterExact", "nzMatchRouter"], exportAs: ["nzMenuItem"] }, { kind: "directive", type: i12.NzDropDownDirective, selector: "[nz-dropdown]", inputs: ["nzDropdownMenu", "nzTrigger", "nzMatchWidthElement", "nzBackdrop", "nzClickHide", "nzDisabled", "nzVisible", "nzOverlayClassName", "nzOverlayStyle", "nzPlacement"], outputs: ["nzVisibleChange"], exportAs: ["nzDropdown"] }, { kind: "component", type: i12.NzDropdownMenuComponent, selector: "nz-dropdown-menu", exportAs: ["nzDropdownMenu"] }, { kind: "ngmodule", type: GramDeonEmptyModule }, { kind: "component", type: i13.GramDeonEmptyComponent, selector: "gram-empty", inputs: ["desc", "state"], outputs: ["emptyClick"] }] });
369
+ }
370
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TreeInfoComponent, decorators: [{
371
+ type: Component,
372
+ args: [{ selector: 'tree-info', imports: [
373
+ CommonModule,
374
+ FormsModule,
375
+ ReactiveFormsModule,
376
+ NzInputModule,
377
+ NzButtonModule,
378
+ NzEmptyModule,
379
+ NzIconModule,
380
+ NzTreeModule,
381
+ NzDropDownModule,
382
+ GramDeonEmptyModule
383
+ ], template: "<div class=\"tree-query\">\r\n <nz-input-group nzSearch [nzAddOnAfter]=\"suffixButton\">\r\n <input type=\"text\" nz-input placeholder=\"\u8BF7\u8F93\u5165\u5173\u952E\u5B57\u67E5\u8BE2\" [(ngModel)]=\"treeSrv.keyword\" />\r\n </nz-input-group>\r\n <ng-template #suffixButton>\r\n <button nz-button nzType=\"primary\" type=\"button\" nzSearch (click)=\"treeSrv.btnSearch()\"><i nz-icon nzType=\"search\"></i>\u67E5\u8BE2</button>\r\n </ng-template>\r\n</div>\r\n<div class=\"tree-content\">\r\n <ng-container *ngIf=\"treeSrv.data!! && treeSrv.data.length > 0; else tmpEmpty\">\r\n <ng-container *ngIf=\"treeSrv.type == 'tree'; else tmpList\">\r\n <nz-tree\r\n [nzData]=\"treeSrv.data\"\r\n [nzExpandAll]=\"treeSrv.nzExpandAll\"\r\n [nzExpandedKeys]=\"treeSrv.expandedKeys\"\r\n [nzSelectedKeys]=\"treeSrv.selectedKeys\"\r\n (nzClick)=\"treeClick($event)\"\r\n [nzTreeTemplate]=\"nzTreeTemplate\"\r\n >\r\n </nz-tree>\r\n <ng-template #nzTreeTemplate let-node let-origin=\"origin\">\r\n <span class=\"custom-node\">\r\n <span class=\"folder-name\">{{ node.title }}</span>\r\n <span class=\"folder-operation\" nz-dropdown [nzDropdownMenu]=\"menu\">\r\n <i nz-icon nzType=\"more\"></i>\r\n </span>\r\n\r\n <nz-dropdown-menu #menu=\"nzDropdownMenu\">\r\n <ul nz-menu nzSelectable>\r\n <li nz-menu-item nzDisabled>\u6811\u5F62\u53C2\u6570ID\uFF1A{{ node.id }}</li>\r\n </ul>\r\n </nz-dropdown-menu>\r\n </span>\r\n </ng-template>\r\n </ng-container>\r\n\r\n <ng-template #tmpList>\r\n <ul class=\"list-content\">\r\n <ng-container *ngFor=\"let item of treeSrv.data\">\r\n <li\r\n (click)=\"treeSrv.itemClick(item)\"\r\n [ngClass]=\"{ 'item-selected': treeSrv.selectedItem!! && item.id == treeSrv.selectedItem.id}\"\r\n >\r\n {{ item.title }}\r\n </li>\r\n </ng-container>\r\n </ul>\r\n </ng-template>\r\n </ng-container>\r\n</div>\r\n<ng-template #tmpEmpty>\r\n <div class=\"tree-empty\">\r\n <gram-empty state=\"empty9\"></gram-empty>\r\n </div>\r\n</ng-template>\r\n", styles: [":host ::ng-deep{display:flex;flex:1;flex-direction:column;width:100%;height:100%;padding:0}:host ::ng-deep .item-selected{color:#fff;background-color:#1177fb}:host ::ng-deep .tree-query{display:flex;width:100%;padding:8px 12px;border-bottom:1px solid #eaeaea}:host ::ng-deep .tree-query nz-input-group{width:100%}:host ::ng-deep .list-content{width:100%;margin:0;padding:0}:host ::ng-deep .list-content li{min-height:24px;margin:0 0 4px;padding:6px 10px}:host ::ng-deep .list-content li:hover{background:#d6e9ff;cursor:pointer}:host ::ng-deep .tree-content{flex:1;width:100%;padding:10px 12px;overflow-x:overlay;overflow-y:overlay}:host ::ng-deep .tree-content::-webkit-scrollbar{width:8px}:host ::ng-deep .tree-content::-webkit-scrollbar-thumb{background-color:#94949475;border-radius:7px}:host ::ng-deep .tree-content::-webkit-scrollbar-track{background-color:#fff}:host ::ng-deep .tree-content .custom-node{display:flex;width:100%;cursor:pointer}:host ::ng-deep .tree-content .custom-node .folder-name{flex:1}:host ::ng-deep .tree-content .custom-node .folder-operation{display:none;cursor:pointer}:host ::ng-deep .tree-content nz-tree-node-switcher{width:10px!important}:host ::ng-deep .tree-content .ant-tree-indent-unit{width:10px!important}:host ::ng-deep .tree-content .ant-tree-treenode{padding:4px 0}:host ::ng-deep .tree-content .ant-tree-treenode-selected{color:#fff!important;background:#1177fb!important}:host ::ng-deep .tree-content .ant-tree-treenode-selected .custom-node .folder-operation{display:block!important;color:#fff!important}:host ::ng-deep .tree-content .ant-tree-treenode-selected nz-tree-node-title{background:none;transition:none}:host ::ng-deep .tree-content nz-tree-node:hover{background:#d6e9ff}:host ::ng-deep .tree-content nz-tree-node:hover nz-tree-node-title{background:none;transition:none}:host ::ng-deep .tree-content nz-tree-node:hover .custom-node .folder-operation{display:block;color:#1177fb}:host ::ng-deep nz-tree-node-title{width:100%;cursor:pointer}:host ::ng-deep .tree-empty{display:flex;width:100%;height:100%}\n"] }]
384
+ }], ctorParameters: () => [{ type: i2.NzMessageService }, { type: TreeService }] });
385
+
386
+ class GramTreeMainComponent {
387
+ http;
388
+ msgSrv;
389
+ treeSrv;
390
+ config = null;
391
+ keyword = null;
392
+ constructor(http, msgSrv, treeSrv) {
393
+ this.http = http;
394
+ this.msgSrv = msgSrv;
395
+ this.treeSrv = treeSrv;
396
+ }
397
+ ngOnInit() { }
398
+ ngOnChanges(changes) {
399
+ if (changes['config']) {
400
+ this.treeSrv.init(this.config);
401
+ this.treeSrv.getDataTree();
402
+ }
403
+ }
404
+ ngOnDestroy() { }
405
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: GramTreeMainComponent, deps: [{ token: i1$1._HttpClient }, { token: i2.NzMessageService }, { token: TreeService }], target: i0.ɵɵFactoryTarget.Component });
406
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: GramTreeMainComponent, isStandalone: true, selector: "gram-tree", inputs: { config: "config" }, providers: [TreeService], usesOnChanges: true, ngImport: i0, template: "<nz-spin [nzSpinning]=\"treeSrv.loading\" nzTip=\"\u62FC\u547D\u52A0\u8F7D\u4E2D...\" class=\"deon-list-spin\">\r\n <div class=\"body-content\">\r\n <div class=\"body-left\"><tree-info></tree-info></div>\r\n <div class=\"body-right\"><tree-form></tree-form></div>\r\n </div>\r\n</nz-spin>\r\n", styles: [":host ::ng-deep{display:flex;flex:1;flex-direction:column;width:100%;height:100%;flex-direction:row}:host ::ng-deep .body-content{display:flex;flex:1}:host ::ng-deep .box-list{flex:1;padding:0 0 0 15px}:host ::ng-deep .box-list .tr-sel td,:host ::ng-deep .box-list .tr-sel :hover td{color:#fff!important;background:#1177fb!important}:host ::ng-deep .box-list .tr-sel td a,:host ::ng-deep .box-list .tr-sel :hover td a{color:#fff!important}:host ::ng-deep .box-list tr:hover{cursor:move}:host ::ng-deep .box-field{display:flex;flex-direction:column;width:350px;border-top:1px solid #f5f7fa}:host ::ng-deep .box-field .field-title{display:flex;width:100%;padding:8px 0 0 15px;font-size:16px}:host ::ng-deep .box-field .field-title a{position:relative}:host ::ng-deep .box-field .field-title a span{margin-right:5px}:host ::ng-deep .box-field .field-title a:after{position:absolute;bottom:-5px;left:0;width:100%;border-bottom:1px solid #1177fb;content:\"\"}:host ::ng-deep .box-field .field-content{flex:1;overflow:hidden}:host ::ng-deep .box-field .field-content .deon-from{padding:25px 10px 15px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: NzSpinModule }, { kind: "component", type: i4.NzSpinComponent, selector: "nz-spin", inputs: ["nzIndicator", "nzSize", "nzTip", "nzDelay", "nzSimple", "nzSpinning"], exportAs: ["nzSpin"] }, { kind: "component", type: TreeFormComponent, selector: "tree-form" }, { kind: "component", type: TreeInfoComponent, selector: "tree-info" }] });
407
+ }
408
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: GramTreeMainComponent, decorators: [{
409
+ type: Component,
410
+ args: [{ selector: 'gram-tree', providers: [TreeService], imports: [
411
+ CommonModule,
412
+ FormsModule,
413
+ ReactiveFormsModule,
414
+ NzSpinModule,
415
+ TreeFormComponent,
416
+ TreeInfoComponent
417
+ ], template: "<nz-spin [nzSpinning]=\"treeSrv.loading\" nzTip=\"\u62FC\u547D\u52A0\u8F7D\u4E2D...\" class=\"deon-list-spin\">\r\n <div class=\"body-content\">\r\n <div class=\"body-left\"><tree-info></tree-info></div>\r\n <div class=\"body-right\"><tree-form></tree-form></div>\r\n </div>\r\n</nz-spin>\r\n", styles: [":host ::ng-deep{display:flex;flex:1;flex-direction:column;width:100%;height:100%;flex-direction:row}:host ::ng-deep .body-content{display:flex;flex:1}:host ::ng-deep .box-list{flex:1;padding:0 0 0 15px}:host ::ng-deep .box-list .tr-sel td,:host ::ng-deep .box-list .tr-sel :hover td{color:#fff!important;background:#1177fb!important}:host ::ng-deep .box-list .tr-sel td a,:host ::ng-deep .box-list .tr-sel :hover td a{color:#fff!important}:host ::ng-deep .box-list tr:hover{cursor:move}:host ::ng-deep .box-field{display:flex;flex-direction:column;width:350px;border-top:1px solid #f5f7fa}:host ::ng-deep .box-field .field-title{display:flex;width:100%;padding:8px 0 0 15px;font-size:16px}:host ::ng-deep .box-field .field-title a{position:relative}:host ::ng-deep .box-field .field-title a span{margin-right:5px}:host ::ng-deep .box-field .field-title a:after{position:absolute;bottom:-5px;left:0;width:100%;border-bottom:1px solid #1177fb;content:\"\"}:host ::ng-deep .box-field .field-content{flex:1;overflow:hidden}:host ::ng-deep .box-field .field-content .deon-from{padding:25px 10px 15px}\n"] }]
418
+ }], ctorParameters: () => [{ type: i1$1._HttpClient }, { type: i2.NzMessageService }, { type: TreeService }], propDecorators: { config: [{
419
+ type: Input
420
+ }] } });
421
+
422
+ const components = [GramTreeMainComponent, TreeInfoComponent, TreeFormComponent];
423
+ class GramTreeModule {
424
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: GramTreeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
425
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.15", ngImport: i0, type: GramTreeModule, imports: [GramTreeMainComponent, TreeInfoComponent, TreeFormComponent], exports: [GramTreeMainComponent, TreeInfoComponent, TreeFormComponent] });
426
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: GramTreeModule, imports: [components] });
427
+ }
428
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: GramTreeModule, decorators: [{
429
+ type: NgModule,
430
+ args: [{
431
+ imports: [...components],
432
+ exports: [...components],
433
+ }]
434
+ }] });
435
+
436
+ /**
437
+ * Generated bundle index. Do not edit.
438
+ */
439
+
440
+ export { GramTreeMainComponent, GramTreeModule, TreeFormComponent, TreeInfoComponent };
441
+ //# sourceMappingURL=other.tree.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"other.tree.mjs","sources":["../../../../packages/biz-comm/other/tree/src/treeService.ts","../../../../packages/biz-comm/other/tree/src/components/form/index.ts","../../../../packages/biz-comm/other/tree/src/components/form/index.html","../../../../packages/biz-comm/other/tree/src/components/tree/index.ts","../../../../packages/biz-comm/other/tree/src/components/tree/index.html","../../../../packages/biz-comm/other/tree/src/default/index.ts","../../../../packages/biz-comm/other/tree/src/default/index.html","../../../../packages/biz-comm/other/tree/src/index.module.ts","../../../../packages/biz-comm/other/tree/other.tree.ts"],"sourcesContent":["import { Injectable, ChangeDetectorRef } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { NzMessageService } from 'ng-zorro-antd/message';\r\nimport { NzModalService } from 'ng-zorro-antd/modal';\r\nimport { _HttpClient } from '@delon/theme';\r\n\r\nimport { FormlyFormOptions, FormlyFieldConfig } from '@kre-form/core';\r\nimport _ from 'lodash';\r\nimport { of, zip } from 'rxjs';\r\n@Injectable()\r\nexport class TreeService {\r\n loading: boolean = false;\r\n nzExpandAll: boolean = true;\r\n data: any[] = [];\r\n\r\n defaultApi: any = null;\r\n defaultPara: any = null;\r\n defaultForm: any = null;\r\n defaultModel: any = null;\r\n defaultSearch: any = null;\r\n searchPara: any = null;\r\n\r\n selectedKey: any = null;\r\n selectedKeys: any[] = [];\r\n expandedKeys: any[] = [];\r\n\r\n selectedItem: any = null;\r\n\r\n form = new FormGroup({});\r\n model: any = {};\r\n options: FormlyFormOptions = {};\r\n fields: FormlyFieldConfig[] = [];\r\n editor: boolean = true;\r\n\r\n keyword: any = null;\r\n type: any = null;//'tree' || 'list';\r\n constructor(public router: Router, public http: _HttpClient, public modal: NzModalService, public msg: NzMessageService) { }\r\n\r\n init(config?: any) {\r\n if (config!!) {\r\n this.defaultApi = config.defaultApi;\r\n if (config.defaultPara!!) {\r\n this.defaultPara = config.defaultPara;\r\n }\r\n if (config.defaultModel!!) {\r\n this.defaultModel = config.defaultModel;\r\n }\r\n if (config.defaultForm!!) {\r\n this.defaultForm = config.defaultForm;\r\n }\r\n if (config.defaultSearch!!) {\r\n this.defaultSearch = config.defaultSearch;\r\n }\r\n if (config.searchPara!!) {\r\n this.searchPara = config.searchPara;\r\n }\r\n this.editor = true;\r\n this.type = 'tree';\r\n }\r\n }\r\n\r\n btnReload() {\r\n if (JSON.stringify(this.model) !== '{\"disFlag\":false}') {\r\n this.options?.resetModel();\r\n }\r\n this.model = { type: 'SINGLE', refType: 'EMP', master: true };\r\n this.form = new FormGroup({});\r\n this.selectedKey = null;\r\n this.selectedKeys = [];\r\n this.expandedKeys = [];\r\n this.selectedItem = null;\r\n this.editor = true;\r\n this.keyword = null;\r\n this.type = 'tree';\r\n this.getDataTree();\r\n }\r\n\r\n btnSave() {\r\n if (!this.form.valid) {\r\n this.msg.warning('请检查必填项!');\r\n return;\r\n }\r\n this.loading = true;\r\n let postData: any = _.cloneDeep(this.model);\r\n if (this.defaultModel!!) {\r\n postData = Object.assign(postData, this.defaultModel);\r\n }\r\n this.http.post(this.defaultForm, postData).subscribe(\r\n (res: any) => {\r\n this.loading = false;\r\n if (res && res.success == true) {\r\n this.msg.success('保存成功!');\r\n }\r\n this.form = new FormGroup({});\r\n this.options?.resetModel();\r\n this.selectedItem = _.cloneDeep(res.result);\r\n this.btnSearch();\r\n },\r\n () => {\r\n this.loading = false;\r\n },\r\n );\r\n }\r\n\r\n btnSearch() {\r\n if (this.keyword!!) {\r\n this.getDataList();\r\n } else {\r\n this.getDataTree();\r\n }\r\n }\r\n\r\n itemClick(e: any) {\r\n this.selectedItem = e;\r\n this.getConfig();\r\n }\r\n\r\n getDataList() {\r\n this.type = 'list';\r\n this.loading = true;\r\n let postData: any = { title: this.keyword };\r\n if (this.searchPara!!) {\r\n postData = Object.assign(postData, this.searchPara);\r\n }\r\n this.http.post(this.defaultSearch, postData).subscribe((res: any) => {\r\n if (res!! && res.success == true) {\r\n if (res.result!! && res.result.length > 0) {\r\n this.data = [...res.result];\r\n } else {\r\n {\r\n this.data = [];\r\n }\r\n }\r\n }\r\n this.getConfig();\r\n });\r\n }\r\n\r\n /**\r\n * 获取树数据\r\n */\r\n getDataTree() {\r\n this.type = 'tree';\r\n this.loading = true;\r\n this.http.post(this.defaultApi, this.defaultPara).subscribe((res: any) => {\r\n if (res!! && res.success == true) {\r\n if (res.result!! && res.result.length > 0) {\r\n this.data = [...res.result];\r\n } else {\r\n {\r\n this.data = [];\r\n }\r\n }\r\n this.expandedKeys = [...this.expandedKeys];\r\n this.selectedKeys = [...this.selectedKeys];\r\n }\r\n this.getConfig();\r\n });\r\n }\r\n\r\n getConfig() {\r\n new Promise((resolve: any) => {\r\n zip(this.getFormData(), this.getFormConfig()).subscribe(\r\n ([data, config]) => {\r\n this.model = data;\r\n this.fields = config;\r\n this.loading = false;\r\n },\r\n () => { },\r\n () => {\r\n resolve();\r\n },\r\n );\r\n });\r\n }\r\n\r\n /**\r\n * 获取Form 数据\r\n * @returns\r\n */\r\n getFormData() {\r\n if (this.selectedItem!!) {\r\n let data: any = _.cloneDeep(this.selectedItem);\r\n return of(data);\r\n }\r\n return of({});\r\n }\r\n\r\n /**\r\n * 获取Form 配置\r\n * @returns\r\n */\r\n getFormConfig() {\r\n let config: FormlyFieldConfig[] = [\r\n {\r\n type: 'grid',\r\n fieldGroup: [\r\n {\r\n type: 'list',\r\n props: {\r\n cols: 8,\r\n },\r\n fieldGroup: [\r\n {\r\n type: 'text',\r\n key: 'code',\r\n props: { label: '编码', required: true, maxLength: 50, placeholder: '请输入编码', layout: 'upDown' },\r\n editor: this.editor,\r\n },\r\n ],\r\n },\r\n {\r\n type: 'list',\r\n props: {\r\n cols: 8,\r\n },\r\n fieldGroup: [\r\n {\r\n type: 'text',\r\n key: 'title',\r\n props: { label: '名称', required: true, maxLength: 50, placeholder: '请输入名称', layout: 'upDown' },\r\n },\r\n ],\r\n },\r\n {\r\n type: 'list',\r\n props: {\r\n cols: 8,\r\n },\r\n fieldGroup: [\r\n {\r\n type: 'checkbox',\r\n key: 'disFlag',\r\n props: {\r\n label: '是否禁用',\r\n layout: 'upDown',\r\n hideLabel: true,\r\n labelPosition: 'right',\r\n },\r\n defaultValue: false,\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n {\r\n type: 'panel',\r\n props: {\r\n label: '下级参数',\r\n },\r\n fieldGroup: [\r\n {\r\n type: 'repeat',\r\n key: 'children',\r\n fieldArray: {\r\n fieldGroup: [\r\n {\r\n type: 'text',\r\n key: 'code',\r\n props: { label: '编码', required: true, maxLength: 50, placeholder: '请输入编码', cols: 12 },\r\n },\r\n {\r\n type: 'text',\r\n key: 'title',\r\n props: { label: '名称', required: true, maxLength: 50, placeholder: '请输入名称', cols: 12 },\r\n },\r\n {\r\n type: 'checkbox',\r\n key: 'disFlag',\r\n props: {\r\n label: '是否禁用',\r\n },\r\n defaultValue: false,\r\n },\r\n ],\r\n },\r\n },\r\n ],\r\n },\r\n ];\r\n\r\n return of(_.cloneDeep(config));\r\n }\r\n}\r\n","import { Component, OnInit, AfterViewInit, Input, Output, EventEmitter, OnChanges, SimpleChanges } from '@angular/core';\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\r\nimport { _HttpClient } from '@delon/theme';\r\nimport { FormlyModule } from '@kre-form/core';\r\nimport { NzButtonModule } from 'ng-zorro-antd/button';\r\nimport { NzEmptyModule } from 'ng-zorro-antd/empty';\r\nimport { NzIconModule } from 'ng-zorro-antd/icon';\r\nimport { NzMessageService } from 'ng-zorro-antd/message';\r\n\r\nimport { TreeService } from '../../treeService';\r\n\r\n@Component({\r\n selector: 'tree-form',\r\n templateUrl: './index.html',\r\n styleUrls: ['./index.less'],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n FormlyModule,\r\n NzButtonModule,\r\n NzEmptyModule,\r\n NzIconModule\r\n ]\r\n})\r\nexport class TreeFormComponent implements OnInit {\r\n // loading: boolean = true;\r\n // form = new FormGroup({});\r\n // model: any = {};\r\n // options: DeonFormOptions = {};\r\n // fields:FormlyFieldConfig[] = [];\r\n // @Input() treeId: any = null;\r\n // @Input() node: any = null;\r\n // @Output() saveData: EventEmitter<any> = new EventEmitter();\r\n // @Output() clearData: EventEmitter<any> = new EventEmitter();\r\n\r\n // get editor() {\r\n // return this.node!! ? false : true;\r\n // }\r\n\r\n constructor(public http: _HttpClient, public msg: NzMessageService, public treeSrv: TreeService) { }\r\n\r\n ngOnInit(): void { }\r\n\r\n ngAfterViewInit(): void { }\r\n\r\n ngOnChanges(changes: SimpleChanges): void { }\r\n\r\n ngOnDestroy() { }\r\n}\r\n","<form [formGroup]=\"treeSrv.form\" (ngSubmit)=\"treeSrv.btnSave()\">\r\n <div class=\"deon-head\">\r\n <div class=\"left\">\r\n <ul>\r\n <li *ngIf=\"treeSrv.selectedItem == null\">选中项:---</li>\r\n <li *ngIf=\"treeSrv.selectedItem!!\">选中项:{{ treeSrv.selectedItem?.title }}</li>\r\n </ul>\r\n </div>\r\n <div class=\"right\">\r\n <button nz-button nzType=\"default\" (click)=\"treeSrv.btnReload()\" type=\"button\"><i nz-icon\r\n nzType=\"reload\"></i>清除选项</button>\r\n <button nz-button nzType=\"primary\"><i nz-icon nzType=\"save\"></i>保存</button>\r\n </div>\r\n </div>\r\n <div class=\"deon-from\">\r\n <ng-container *ngIf=\"treeSrv.fields && treeSrv.fields.length > 0; else emptyPage\">\r\n <formly-form [model]=\"treeSrv.model\" [fields]=\"treeSrv.fields\" [options]=\"treeSrv.options\" [form]=\"treeSrv.form\">\r\n </formly-form>\r\n </ng-container>\r\n <ng-template #emptyPage>\r\n <nz-empty *ngIf=\"treeSrv.loading !== true\"></nz-empty>\r\n </ng-template>\r\n </div>\r\n</form>","import { Component, OnInit, Input } from '@angular/core';\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\r\nimport { _HttpClient } from '@delon/theme';\r\nimport { NzInputModule } from 'ng-zorro-antd/input';\r\nimport { NzButtonModule } from 'ng-zorro-antd/button';\r\nimport { NzEmptyModule } from 'ng-zorro-antd/empty';\r\nimport { NzIconModule } from 'ng-zorro-antd/icon';\r\nimport { NzTreeModule } from 'ng-zorro-antd/tree';\r\nimport { NzDropDownModule } from 'ng-zorro-antd/dropdown';\r\nimport { NzMessageService } from 'ng-zorro-antd/message';\r\n\r\nimport { GramDeonEmptyModule } from '@ebuilding/abc/empty';\r\nimport { TreeService } from '../../treeService';\r\n\r\n\r\n@Component({\r\n selector: 'tree-info',\r\n templateUrl: './index.html',\r\n styleUrls: ['./index.less'],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n NzInputModule,\r\n NzButtonModule,\r\n NzEmptyModule,\r\n NzIconModule,\r\n NzTreeModule,\r\n NzDropDownModule,\r\n GramDeonEmptyModule\r\n ]\r\n})\r\nexport class TreeInfoComponent implements OnInit {\r\n constructor(public msgSrv: NzMessageService, public treeSrv: TreeService) { }\r\n keyword: any = null;\r\n ngOnInit(): void { }\r\n\r\n ngOnDestroy() { }\r\n\r\n /**\r\n * 点击树\r\n * @param event\r\n */\r\n treeClick(event: any) {\r\n event.node.isExpanded = !event.node.isExpanded;\r\n this.treeSrv.selectedItem = event.node.origin;\r\n this.treeSrv.selectedKey = event.node.key;\r\n this.treeSrv.selectedKeys = [...[event.node.key]];\r\n this.treeSrv.editor = false;\r\n this.treeSrv.getConfig();\r\n }\r\n}\r\n","<div class=\"tree-query\">\r\n <nz-input-group nzSearch [nzAddOnAfter]=\"suffixButton\">\r\n <input type=\"text\" nz-input placeholder=\"请输入关键字查询\" [(ngModel)]=\"treeSrv.keyword\" />\r\n </nz-input-group>\r\n <ng-template #suffixButton>\r\n <button nz-button nzType=\"primary\" type=\"button\" nzSearch (click)=\"treeSrv.btnSearch()\"><i nz-icon nzType=\"search\"></i>查询</button>\r\n </ng-template>\r\n</div>\r\n<div class=\"tree-content\">\r\n <ng-container *ngIf=\"treeSrv.data!! && treeSrv.data.length > 0; else tmpEmpty\">\r\n <ng-container *ngIf=\"treeSrv.type == 'tree'; else tmpList\">\r\n <nz-tree\r\n [nzData]=\"treeSrv.data\"\r\n [nzExpandAll]=\"treeSrv.nzExpandAll\"\r\n [nzExpandedKeys]=\"treeSrv.expandedKeys\"\r\n [nzSelectedKeys]=\"treeSrv.selectedKeys\"\r\n (nzClick)=\"treeClick($event)\"\r\n [nzTreeTemplate]=\"nzTreeTemplate\"\r\n >\r\n </nz-tree>\r\n <ng-template #nzTreeTemplate let-node let-origin=\"origin\">\r\n <span class=\"custom-node\">\r\n <span class=\"folder-name\">{{ node.title }}</span>\r\n <span class=\"folder-operation\" nz-dropdown [nzDropdownMenu]=\"menu\">\r\n <i nz-icon nzType=\"more\"></i>\r\n </span>\r\n\r\n <nz-dropdown-menu #menu=\"nzDropdownMenu\">\r\n <ul nz-menu nzSelectable>\r\n <li nz-menu-item nzDisabled>树形参数ID:{{ node.id }}</li>\r\n </ul>\r\n </nz-dropdown-menu>\r\n </span>\r\n </ng-template>\r\n </ng-container>\r\n\r\n <ng-template #tmpList>\r\n <ul class=\"list-content\">\r\n <ng-container *ngFor=\"let item of treeSrv.data\">\r\n <li\r\n (click)=\"treeSrv.itemClick(item)\"\r\n [ngClass]=\"{ 'item-selected': treeSrv.selectedItem!! && item.id == treeSrv.selectedItem.id}\"\r\n >\r\n {{ item.title }}\r\n </li>\r\n </ng-container>\r\n </ul>\r\n </ng-template>\r\n </ng-container>\r\n</div>\r\n<ng-template #tmpEmpty>\r\n <div class=\"tree-empty\">\r\n <gram-empty state=\"empty9\"></gram-empty>\r\n </div>\r\n</ng-template>\r\n","import { Component, OnInit, Input, OnChanges, SimpleChanges } from '@angular/core';\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\r\nimport { _HttpClient } from '@delon/theme';\r\nimport { NzSpinModule } from 'ng-zorro-antd/spin';\r\nimport { NzMessageService } from 'ng-zorro-antd/message';\r\n\r\nimport { TreeFormComponent } from \"../components/form\";\r\nimport { TreeInfoComponent } from \"../components/tree\";\r\nimport { TreeService } from '../treeService';\r\n\r\n@Component({\r\n selector: 'gram-tree',\r\n templateUrl: './index.html',\r\n styleUrls: ['./index.less'],\r\n providers: [TreeService],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n NzSpinModule,\r\n TreeFormComponent,\r\n TreeInfoComponent\r\n ]\r\n})\r\nexport class GramTreeMainComponent implements OnInit, OnChanges {\r\n @Input() config: any = null;\r\n keyword: any = null;\r\n constructor(public http: _HttpClient, public msgSrv: NzMessageService, public treeSrv: TreeService) { }\r\n\r\n ngOnInit(): void { }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['config']) {\r\n this.treeSrv.init(this.config);\r\n this.treeSrv.getDataTree();\r\n }\r\n }\r\n\r\n ngOnDestroy() { }\r\n}\r\n","<nz-spin [nzSpinning]=\"treeSrv.loading\" nzTip=\"拼命加载中...\" class=\"deon-list-spin\">\r\n <div class=\"body-content\">\r\n <div class=\"body-left\"><tree-info></tree-info></div>\r\n <div class=\"body-right\"><tree-form></tree-form></div>\r\n </div>\r\n</nz-spin>\r\n","import { NgModule } from '@angular/core';\r\nimport { GramTreeMainComponent } from './default/index';\r\nimport { TreeInfoComponent } from './components/tree/index';\r\nimport { TreeFormComponent } from './components/form/index';\r\n\r\nconst components: any[] = [GramTreeMainComponent, TreeInfoComponent, TreeFormComponent];\r\n\r\n@NgModule({\r\n imports: [...components],\r\n exports: [...components],\r\n})\r\nexport class GramTreeModule { }\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2","i4","i1","i3.TreeService","i2.TreeService","i6","i7","i8","i10","i11"],"mappings":"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"}