@ebuilding/dialog 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 (103) hide show
  1. package/LICENSE +0 -0
  2. package/README.md +0 -0
  3. package/basic/index.d.ts +1 -0
  4. package/basic/src/default/index.d.ts +42 -0
  5. package/basic/src/epage/index.d.ts +52 -0
  6. package/basic/src/index.module.d.ts +8 -0
  7. package/basic/src/public_api.d.ts +3 -0
  8. package/common/list/index.d.ts +1 -0
  9. package/common/list/src/component/card/index.d.ts +18 -0
  10. package/common/list/src/component/table/index.d.ts +18 -0
  11. package/common/list/src/component/table-tree/index.d.ts +16 -0
  12. package/common/list/src/default/index.d.ts +30 -0
  13. package/common/list/src/index.module.d.ts +10 -0
  14. package/common/list/src/public_api.d.ts +2 -0
  15. package/common/list/src/service/list.service.d.ts +38 -0
  16. package/common/list-tree/index.d.ts +1 -0
  17. package/common/list-tree/src/component/list/index.d.ts +16 -0
  18. package/common/list-tree/src/component/tree/index.d.ts +15 -0
  19. package/common/list-tree/src/default/index.d.ts +26 -0
  20. package/common/list-tree/src/index.module.d.ts +10 -0
  21. package/common/list-tree/src/main/index.d.ts +16 -0
  22. package/common/list-tree/src/public_api.d.ts +3 -0
  23. package/common/list-tree/src/service/tree.service.d.ts +61 -0
  24. package/common/page.service/index.d.ts +127 -0
  25. package/default/index.d.ts +1 -0
  26. package/default/src/index.module.d.ts +8 -0
  27. package/default/src/main/index.d.ts +18 -0
  28. package/default/src/public_api.d.ts +2 -0
  29. package/default/src/service/dialog.service.d.ts +14 -0
  30. package/default/src/tag/index.d.ts +14 -0
  31. package/dict/index.d.ts +1 -0
  32. package/dict/src/components/etable/index.d.ts +20 -0
  33. package/dict/src/components/eview/index.d.ts +20 -0
  34. package/dict/src/default/index.d.ts +21 -0
  35. package/dict/src/index.module.d.ts +9 -0
  36. package/dict/src/public_api.d.ts +2 -0
  37. package/emp/index.d.ts +1 -0
  38. package/emp/src/default/index.d.ts +16 -0
  39. package/emp/src/index.module.d.ts +9 -0
  40. package/emp/src/list/index.d.ts +22 -0
  41. package/emp/src/org/index.d.ts +45 -0
  42. package/emp/src/public_api.d.ts +2 -0
  43. package/epage/index.d.ts +1 -0
  44. package/epage/src/default/index.d.ts +61 -0
  45. package/epage/src/index.module.d.ts +7 -0
  46. package/epage/src/public_api.d.ts +2 -0
  47. package/fesm2022/basic.mjs +407 -0
  48. package/fesm2022/basic.mjs.map +1 -0
  49. package/fesm2022/common.list-tree.mjs +475 -0
  50. package/fesm2022/common.list-tree.mjs.map +1 -0
  51. package/fesm2022/common.list.mjs +315 -0
  52. package/fesm2022/common.list.mjs.map +1 -0
  53. package/fesm2022/default.mjs +168 -0
  54. package/fesm2022/default.mjs.map +1 -0
  55. package/fesm2022/dict.mjs +203 -0
  56. package/fesm2022/dict.mjs.map +1 -0
  57. package/fesm2022/ebuilding-dialog.mjs +6 -0
  58. package/fesm2022/ebuilding-dialog.mjs.map +1 -0
  59. package/fesm2022/emp.mjs +240 -0
  60. package/fesm2022/emp.mjs.map +1 -0
  61. package/fesm2022/epage.mjs +320 -0
  62. package/fesm2022/epage.mjs.map +1 -0
  63. package/fesm2022/list.mjs +150 -0
  64. package/fesm2022/list.mjs.map +1 -0
  65. package/fesm2022/org.mjs +139 -0
  66. package/fesm2022/org.mjs.map +1 -0
  67. package/fesm2022/page.service.mjs +701 -0
  68. package/fesm2022/page.service.mjs.map +1 -0
  69. package/fesm2022/position.mjs +316 -0
  70. package/fesm2022/position.mjs.map +1 -0
  71. package/fesm2022/ref.mjs +319 -0
  72. package/fesm2022/ref.mjs.map +1 -0
  73. package/fesm2022/tree.mjs +165 -0
  74. package/fesm2022/tree.mjs.map +1 -0
  75. package/index.d.ts +1 -0
  76. package/list/index.d.ts +1 -0
  77. package/list/src/default/index.d.ts +26 -0
  78. package/list/src/index.module.d.ts +7 -0
  79. package/list/src/public_api.d.ts +2 -0
  80. package/org/index.d.ts +1 -0
  81. package/org/src/default/index.d.ts +19 -0
  82. package/org/src/index.module.d.ts +8 -0
  83. package/org/src/info/index.d.ts +21 -0
  84. package/org/src/public_api.d.ts +2 -0
  85. package/package.json +72 -0
  86. package/position/index.d.ts +1 -0
  87. package/position/src/default/index.d.ts +18 -0
  88. package/position/src/index.module.d.ts +10 -0
  89. package/position/src/list/index.d.ts +22 -0
  90. package/position/src/org/index.d.ts +45 -0
  91. package/position/src/public_api.d.ts +2 -0
  92. package/position/src/service.d.ts +5 -0
  93. package/position/src/tree/index.d.ts +26 -0
  94. package/ref/index.d.ts +1 -0
  95. package/ref/src/default/index.d.ts +38 -0
  96. package/ref/src/index.module.d.ts +8 -0
  97. package/ref/src/main/index.d.ts +37 -0
  98. package/ref/src/public_api.d.ts +3 -0
  99. package/tree/index.d.ts +1 -0
  100. package/tree/src/default/index.d.ts +23 -0
  101. package/tree/src/index.module.d.ts +8 -0
  102. package/tree/src/page-tree/index.d.ts +29 -0
  103. package/tree/src/public_api.d.ts +3 -0
@@ -0,0 +1,475 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Directive, EventEmitter, Output, Component, Input, NgModule } from '@angular/core';
3
+ import * as i3 from '@angular/common';
4
+ import { CommonModule } from '@angular/common';
5
+ import * as i3$1 from '@angular/forms';
6
+ import { FormsModule } from '@angular/forms';
7
+ import * as i4$1 from 'ng-zorro-antd/input';
8
+ import { NzInputModule } from 'ng-zorro-antd/input';
9
+ import * as i5$1 from 'ng-zorro-antd/button';
10
+ import { NzButtonModule } from 'ng-zorro-antd/button';
11
+ import * as i8 from 'ng-zorro-antd/tag';
12
+ import { NzTagModule } from 'ng-zorro-antd/tag';
13
+ import * as i9 from 'ng-zorro-antd/spin';
14
+ import { NzSpinModule } from 'ng-zorro-antd/spin';
15
+ import * as i5 from 'ng-zorro-antd/checkbox';
16
+ import { NzCheckboxModule } from 'ng-zorro-antd/checkbox';
17
+ import * as i6 from '@ebuilding/abc/empty';
18
+ import { GramDeonEmptyModule } from '@ebuilding/abc/empty';
19
+ import * as i1$1 from 'ng-zorro-antd/message';
20
+ import _ from 'lodash';
21
+ import * as i1 from '@delon/theme';
22
+ import * as i4 from '@ebuilding/abc/tree';
23
+ import { GramDeonTreeModule } from '@ebuilding/abc/tree';
24
+ import * as i6$1 from 'ng-zorro-antd/core/transition-patch';
25
+ import * as i7 from 'ng-zorro-antd/core/wave';
26
+
27
+ class TreeService {
28
+ http;
29
+ loading = false;
30
+ pageId = null;
31
+ selectTag = true;
32
+ contentType = null; //'list' || 'tree';
33
+ selectType = null; //'single' || 'multiple';
34
+ selectKey = null;
35
+ primary = { key: 'id', name: 'name', vlaue: '' };
36
+ /**
37
+ * 搜索关键字
38
+ */
39
+ keyword = null;
40
+ /**
41
+ * 选中集合
42
+ */
43
+ selectData = [];
44
+ /**
45
+ * 页面数据集合
46
+ */
47
+ data = [];
48
+ /**
49
+ * 页面数据集合 只有当selectType='multiple' 并且 contentType='list' 时起作用
50
+ */
51
+ listData = [];
52
+ treeAPI = null;
53
+ listAPI = null;
54
+ constructor(http) {
55
+ this.http = http;
56
+ }
57
+ /**
58
+ * 初始化
59
+ */
60
+ pageInit(config) {
61
+ if (config) {
62
+ this.pageId = config?.pageId;
63
+ /**
64
+ * 选项类型
65
+ */
66
+ if (config.selectType) {
67
+ this.selectType = config.selectType;
68
+ }
69
+ else {
70
+ this.selectType = 'single';
71
+ }
72
+ /**
73
+ * 列表参数
74
+ */
75
+ if (config.listAPI) {
76
+ this.listAPI = _.cloneDeep(config.listAPI);
77
+ }
78
+ /**
79
+ * Tree参数
80
+ */
81
+ if (config.treeAPI) {
82
+ this.treeAPI = _.cloneDeep(config.treeAPI);
83
+ }
84
+ if (this.selectData && this.selectData.length == 1) {
85
+ if (this.selectType == 'single') {
86
+ this.selectKey = this.selectData[0]['id'];
87
+ }
88
+ }
89
+ if (config.selectTag != undefined && config.selectTag != null) {
90
+ this.selectTag = config.selectTag;
91
+ }
92
+ }
93
+ }
94
+ /**
95
+ * 搜索按钮事件
96
+ */
97
+ btnSearch() {
98
+ if (this.keyword) {
99
+ this.contentType = 'list';
100
+ this.getPageListData();
101
+ }
102
+ else {
103
+ this.contentType = 'tree';
104
+ this.getPageTreeData();
105
+ }
106
+ }
107
+ /**
108
+ * 移除某一项选中
109
+ * @param e
110
+ */
111
+ btnClose(e, i) {
112
+ this.selectData = this.selectData.filter((item, index) => {
113
+ return index !== e;
114
+ });
115
+ this.selectKey = null;
116
+ this.listDataChecked(i);
117
+ }
118
+ /**
119
+ * 清空选中项
120
+ */
121
+ btnCloseAll() {
122
+ this.selectData = [];
123
+ this.selectKey = null;
124
+ this.listDataCheckedAll();
125
+ }
126
+ /**
127
+ * 根据条件搜索
128
+ */
129
+ getPageListData() {
130
+ if (this.listAPI && this.listAPI.url) {
131
+ this.loading = true;
132
+ let postData = { pageId: this.pageId, keyword: this.keyword };
133
+ if (this.listAPI.param) {
134
+ postData = Object.assign(postData, this.listAPI.param);
135
+ }
136
+ this.http.post(this.listAPI.url, postData).subscribe((res) => {
137
+ if (res && res.success == true) {
138
+ let arr = [];
139
+ if (res.result?.treeData) {
140
+ arr = res.result?.treeData;
141
+ }
142
+ if (arr && arr.length > 0) {
143
+ if (this.selectType == 'multiple') {
144
+ this.createListData(arr);
145
+ }
146
+ else {
147
+ this.data = [...arr];
148
+ }
149
+ }
150
+ else {
151
+ {
152
+ this.data = [];
153
+ }
154
+ }
155
+ }
156
+ this.loading = false;
157
+ });
158
+ }
159
+ }
160
+ /**
161
+ * 获取Tree数据
162
+ */
163
+ getPageTreeData() {
164
+ if (this.treeAPI && this.treeAPI.url) {
165
+ this.data = [];
166
+ this.loading = true;
167
+ let postData = {};
168
+ if (this.treeAPI.param) {
169
+ postData = Object.assign(postData, this.treeAPI.param);
170
+ }
171
+ this.http.post(this.treeAPI.url, postData).subscribe((res) => {
172
+ if (res && res.success == true) {
173
+ if (res.result?.treeData && res.result?.treeData?.length > 0) {
174
+ this.data = res.result?.treeData;
175
+ }
176
+ else {
177
+ {
178
+ this.data = [];
179
+ }
180
+ }
181
+ }
182
+ this.loading = false;
183
+ });
184
+ }
185
+ }
186
+ listDataChecked(i) {
187
+ if (this.selectType == 'multiple' && this.contentType == 'list') {
188
+ this.listData.forEach((item) => {
189
+ if (item.value == i.id) {
190
+ item.checked = false;
191
+ }
192
+ });
193
+ }
194
+ }
195
+ listDataCheckedAll() {
196
+ if (this.selectType == 'multiple' && this.contentType == 'list') {
197
+ this.listData.forEach((item) => {
198
+ item.checked = false;
199
+ });
200
+ }
201
+ }
202
+ createListData(result) {
203
+ if (result && result.length > 0) {
204
+ let array = [];
205
+ result.forEach((item) => {
206
+ let obj = {
207
+ label: item.title,
208
+ value: item.key,
209
+ checked: false,
210
+ };
211
+ if (this.selectData && this.selectData.length > 0) {
212
+ if (this.selectData.some((v) => {
213
+ return v.id == item.key;
214
+ })) {
215
+ obj.checked = true;
216
+ }
217
+ }
218
+ array.push(obj);
219
+ });
220
+ this.listData = _.cloneDeep(array);
221
+ }
222
+ }
223
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TreeService, deps: [{ token: i1._HttpClient }], target: i0.ɵɵFactoryTarget.Directive });
224
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: TreeService, isStandalone: true, ngImport: i0 });
225
+ }
226
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TreeService, decorators: [{
227
+ type: Directive
228
+ }], ctorParameters: () => [{ type: i1._HttpClient }] });
229
+
230
+ class ListInfoComponent {
231
+ msgSrv;
232
+ treeSrv;
233
+ itemSelected = new EventEmitter();
234
+ constructor(msgSrv, treeSrv) {
235
+ this.msgSrv = msgSrv;
236
+ this.treeSrv = treeSrv;
237
+ }
238
+ ngOnInit() { }
239
+ ngOnDestroy() { }
240
+ itemChange() {
241
+ let arrCheck = [];
242
+ let arrFind = [];
243
+ let listCheck = this.treeSrv.listData.filter((item) => {
244
+ return item.checked == true;
245
+ });
246
+ if (listCheck && listCheck.length > 0) {
247
+ arrCheck = listCheck.map((item) => {
248
+ return {
249
+ id: item.value,
250
+ name: item.label,
251
+ };
252
+ });
253
+ }
254
+ if (this.treeSrv.selectData && this.treeSrv.selectData.length > 0) {
255
+ this.treeSrv.selectData.forEach((item) => {
256
+ if (!this.treeSrv.listData.some((v) => {
257
+ return item.id == v.value;
258
+ })) {
259
+ arrFind.push({
260
+ id: item.id,
261
+ name: item.name,
262
+ });
263
+ }
264
+ });
265
+ }
266
+ this.treeSrv.selectData = [...arrFind, ...arrCheck];
267
+ this.itemSelected.emit(listCheck);
268
+ }
269
+ itemClick(e) {
270
+ this.treeSrv.selectKey = e.id;
271
+ this.treeSrv.selectData = [
272
+ {
273
+ id: e.id,
274
+ name: e.title,
275
+ },
276
+ ];
277
+ this.itemSelected.emit([
278
+ {
279
+ id: e.id,
280
+ name: e.title,
281
+ },
282
+ ]);
283
+ }
284
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: ListInfoComponent, deps: [{ token: i1$1.NzMessageService }, { token: TreeService }], target: i0.ɵɵFactoryTarget.Component });
285
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: ListInfoComponent, isStandalone: true, selector: "list-info", outputs: { itemSelected: "itemSelected" }, ngImport: i0, template: "<ng-container *ngIf=\"treeSrv.selectType=='multiple';else tmpSingle\">\r\n <ng-container *ngIf=\"treeSrv.listData!! && treeSrv.listData.length>0;else tmpEmpty\">\r\n <nz-checkbox-group [(ngModel)]=\"treeSrv.listData\" (ngModelChange)=\"itemChange()\"></nz-checkbox-group>\r\n </ng-container>\r\n</ng-container>\r\n\r\n<ng-template #tmpSingle>\r\n <ng-container *ngIf=\"treeSrv.data!! && treeSrv.data.length>0;else tmpEmpty\">\r\n <ul class=\"list-content\">\r\n <ng-container *ngFor=\"let item of treeSrv.data\">\r\n <li (click)=\"itemClick(item)\" [ngClass]=\"{ 'item-selected': treeSrv.selectKey!! && treeSrv.selectKey ==item.id}\">\r\n {{ item.title }}\r\n </li>\r\n </ng-container>\r\n </ul>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #tmpEmpty>\r\n <div class=\"list-empty\" *ngIf=\"treeSrv.loading==false\">\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 .list-empty{margin:auto}:host ::ng-deep .list-content{padding:0}:host ::ng-deep li{min-height:24px;margin:0 0 4px;padding:6px 10px;cursor:pointer}:host ::ng-deep li:hover{background:#d6e9ff;cursor:pointer}:host ::ng-deep .item-selected{color:#fff;background-color:#1177fb}:host ::ng-deep nz-checkbox-group{display:flex;flex-direction:column}:host ::ng-deep nz-checkbox-group .ant-checkbox-group-item{flex:1;min-height:24px;padding:6px 10px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: NzCheckboxModule }, { kind: "component", type: i5.NzCheckboxGroupComponent, selector: "nz-checkbox-group", inputs: ["nzName", "nzDisabled", "nzOptions"], exportAs: ["nzCheckboxGroup"] }, { kind: "ngmodule", type: GramDeonEmptyModule }, { kind: "component", type: i6.GramDeonEmptyComponent, selector: "gram-empty", inputs: ["desc", "state"], outputs: ["emptyClick"] }] });
286
+ }
287
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: ListInfoComponent, decorators: [{
288
+ type: Component,
289
+ args: [{ selector: 'list-info', imports: [
290
+ CommonModule,
291
+ FormsModule,
292
+ NzCheckboxModule,
293
+ GramDeonEmptyModule
294
+ ], template: "<ng-container *ngIf=\"treeSrv.selectType=='multiple';else tmpSingle\">\r\n <ng-container *ngIf=\"treeSrv.listData!! && treeSrv.listData.length>0;else tmpEmpty\">\r\n <nz-checkbox-group [(ngModel)]=\"treeSrv.listData\" (ngModelChange)=\"itemChange()\"></nz-checkbox-group>\r\n </ng-container>\r\n</ng-container>\r\n\r\n<ng-template #tmpSingle>\r\n <ng-container *ngIf=\"treeSrv.data!! && treeSrv.data.length>0;else tmpEmpty\">\r\n <ul class=\"list-content\">\r\n <ng-container *ngFor=\"let item of treeSrv.data\">\r\n <li (click)=\"itemClick(item)\" [ngClass]=\"{ 'item-selected': treeSrv.selectKey!! && treeSrv.selectKey ==item.id}\">\r\n {{ item.title }}\r\n </li>\r\n </ng-container>\r\n </ul>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #tmpEmpty>\r\n <div class=\"list-empty\" *ngIf=\"treeSrv.loading==false\">\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 .list-empty{margin:auto}:host ::ng-deep .list-content{padding:0}:host ::ng-deep li{min-height:24px;margin:0 0 4px;padding:6px 10px;cursor:pointer}:host ::ng-deep li:hover{background:#d6e9ff;cursor:pointer}:host ::ng-deep .item-selected{color:#fff;background-color:#1177fb}:host ::ng-deep nz-checkbox-group{display:flex;flex-direction:column}:host ::ng-deep nz-checkbox-group .ant-checkbox-group-item{flex:1;min-height:24px;padding:6px 10px}\n"] }]
295
+ }], ctorParameters: () => [{ type: i1$1.NzMessageService }, { type: TreeService }], propDecorators: { itemSelected: [{
296
+ type: Output
297
+ }] } });
298
+
299
+ class TreeInfoComponent {
300
+ msgSrv;
301
+ treeSrv;
302
+ itemSelected = new EventEmitter();
303
+ constructor(msgSrv, treeSrv) {
304
+ this.msgSrv = msgSrv;
305
+ this.treeSrv = treeSrv;
306
+ }
307
+ ngOnInit() { }
308
+ ngOnDestroy() { }
309
+ treeChangeEvent(type, e) {
310
+ if (type == 'click' && this.treeSrv.selectType == 'single') {
311
+ if (e.checkData && e.checkData.length > 0) {
312
+ this.treeSrv.selectKey = e.checkData[0]['id'];
313
+ }
314
+ }
315
+ this.treeSrv.selectData = e.checkData;
316
+ this.itemSelected.emit(e.checkData);
317
+ }
318
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TreeInfoComponent, deps: [{ token: i1$1.NzMessageService }, { token: TreeService }], target: i0.ɵɵFactoryTarget.Component });
319
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: TreeInfoComponent, isStandalone: true, selector: "tree-info", outputs: { itemSelected: "itemSelected" }, ngImport: i0, template: "<ng-container *ngIf=\"treeSrv.data!! && treeSrv.data.length>0\">\r\n <gram-tree [data]=\"treeSrv.data\" [selectType]=\"treeSrv.selectType\" [selectData]=\"treeSrv.selectData\" [loading]=\"false\"\r\n [primary]=\"treeSrv.primary\" (treeChangeEvent)=\"treeChangeEvent('click',$event)\">\r\n </gram-tree>\r\n</ng-container>", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: GramDeonTreeModule }, { kind: "component", type: i4.GramDeonTreeComponent, selector: "gram-tree", inputs: ["showTag", "selectType", "expandAll", "selectData", "data", "loading", "primary"], outputs: ["treeChangeEvent"] }] });
320
+ }
321
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TreeInfoComponent, decorators: [{
322
+ type: Component,
323
+ args: [{ selector: 'tree-info', imports: [
324
+ CommonModule,
325
+ GramDeonTreeModule
326
+ ], template: "<ng-container *ngIf=\"treeSrv.data!! && treeSrv.data.length>0\">\r\n <gram-tree [data]=\"treeSrv.data\" [selectType]=\"treeSrv.selectType\" [selectData]=\"treeSrv.selectData\" [loading]=\"false\"\r\n [primary]=\"treeSrv.primary\" (treeChangeEvent)=\"treeChangeEvent('click',$event)\">\r\n </gram-tree>\r\n</ng-container>" }]
327
+ }], ctorParameters: () => [{ type: i1$1.NzMessageService }, { type: TreeService }], propDecorators: { itemSelected: [{
328
+ type: Output
329
+ }] } });
330
+
331
+ class TreeContentComponent {
332
+ treeSrv;
333
+ set config(value) {
334
+ this.treeSrv.contentType = 'tree';
335
+ if (value && value.selectData && Array.isArray(value.selectData)) {
336
+ this.treeSrv.selectData = value.selectData;
337
+ }
338
+ this.treeSrv.pageInit(value);
339
+ this.treeSrv.getPageTreeData();
340
+ }
341
+ get selectData() {
342
+ return this.treeSrv.selectData;
343
+ }
344
+ tagData = null;
345
+ itemSelected = new EventEmitter();
346
+ constructor(treeSrv) {
347
+ this.treeSrv = treeSrv;
348
+ }
349
+ ngOnInit() { }
350
+ ngAfterViewInit() { }
351
+ ngOnChanges(change) {
352
+ if (change['tagData']) {
353
+ if (this.tagData) {
354
+ if (this.tagData.selectData) {
355
+ this.treeSrv.selectData = this.tagData.selectData;
356
+ }
357
+ }
358
+ }
359
+ }
360
+ itemClick(e) {
361
+ this.itemSelected.emit(this.treeSrv.selectData);
362
+ }
363
+ /**
364
+ * 移除某一项选中
365
+ * @param e
366
+ */
367
+ btnClose(e, i) {
368
+ this.treeSrv.selectData = this.selectData.filter((item, index) => {
369
+ return index !== e;
370
+ });
371
+ this.treeSrv.selectKey = null;
372
+ this.treeSrv.listDataChecked(i);
373
+ this.itemSelected.emit(this.treeSrv.selectData);
374
+ }
375
+ /**
376
+ * 清空选中项
377
+ */
378
+ btnCloseAll() {
379
+ this.treeSrv.selectData = [];
380
+ this.treeSrv.selectKey = null;
381
+ this.treeSrv.listDataCheckedAll();
382
+ this.itemSelected.emit(this.treeSrv.selectData);
383
+ }
384
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TreeContentComponent, deps: [{ token: TreeService }], target: i0.ɵɵFactoryTarget.Component });
385
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: TreeContentComponent, isStandalone: true, selector: "tree-content", inputs: { config: "config", tagData: "tagData" }, outputs: { itemSelected: "itemSelected" }, providers: [TreeService], usesOnChanges: true, ngImport: i0, template: "<div class=\"query-content\">\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\r\n nzType=\"search\"></i>\u67E5\u8BE2</button>\r\n </ng-template>\r\n</div>\r\n<div class=\"body-content\">\r\n <nz-spin [nzSpinning]=\"treeSrv.loading\" class=\"deon-list-spin\">\r\n <ng-container *ngIf=\"treeSrv.contentType=='tree';else tmpList\">\r\n <tree-info (itemSelected)=\"itemClick($event)\"></tree-info>\r\n </ng-container>\r\n <ng-template #tmpList>\r\n <list-info (itemSelected)=\"itemClick($event)\"></list-info>\r\n </ng-template>\r\n </nz-spin>\r\n</div>\r\n<div class=\"select-content\" *ngIf=\"treeSrv.selectTag==true\">\r\n <div class=\"tag-header\">\r\n <label>\u5DF2\u9009<span>({{ treeSrv.selectData.length }})</span></label>\r\n <button nz-button nzType=\"default\" nzSize=\"small\" (click)=\"btnCloseAll()\">\u6E05\u7A7A</button>\r\n </div>\r\n <div class=\"tag-content\">\r\n <ng-container *ngFor=\"let item of treeSrv.selectData;let i=index\">\r\n <nz-tag nzMode=\"closeable\" (nzOnClose)=\"btnClose(i,item)\">{{item[\"name\"]}}</nz-tag>\r\n </ng-container>\r\n </div>\r\n</div>", styles: [":host ::ng-deep{display:flex;flex:1;flex-direction:column;width:100%;height:100%;padding:0}:host ::ng-deep .query-content{margin-bottom:10px}:host ::ng-deep .query-content nz-input-group{width:50%}:host ::ng-deep .body-content{display:inline-block;flex:1;overflow-x:overlay;overflow-y:overlay}:host ::ng-deep .body-content::-webkit-scrollbar{width:8px}:host ::ng-deep .body-content::-webkit-scrollbar-thumb{background-color:#94949475;border-radius:7px}:host ::ng-deep .body-content::-webkit-scrollbar-track{background-color:#fff}:host ::ng-deep .select-content{display:inline-block;width:100%;height:90px;margin:10px 0 0;border:1px solid #eaeaea;border-radius:4px}:host ::ng-deep .select-content .tag-header{padding:5px 8px 8px;border-bottom:1px solid #eaeaea}:host ::ng-deep .select-content .tag-header button{float:right}:host ::ng-deep .select-content .tag-content{height:45px;padding:8px 8px 0;overflow-x:overlay;overflow-y:overlay}:host ::ng-deep .select-content .tag-content::-webkit-scrollbar{width:8px}:host ::ng-deep .select-content .tag-content::-webkit-scrollbar-thumb{background-color:#94949475;border-radius:7px}:host ::ng-deep .select-content .tag-content::-webkit-scrollbar-track{background-color:#fff}:host ::ng-deep .select-content .ant-tag{margin-bottom:8px;border:1px solid #eaeaea}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3$1.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: i3$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: NzInputModule }, { kind: "directive", type: i4$1.NzInputDirective, selector: "input[nz-input],textarea[nz-input]", inputs: ["nzBorderless", "nzSize", "nzStepperless", "nzStatus", "disabled"], exportAs: ["nzInput"] }, { kind: "component", type: i4$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: i5$1.NzButtonComponent, selector: "button[nz-button], a[nz-button]", inputs: ["nzBlock", "nzGhost", "nzSearch", "nzLoading", "nzDanger", "disabled", "tabIndex", "nzType", "nzShape", "nzSize"], exportAs: ["nzButton"] }, { kind: "directive", type: i6$1.ɵ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: i7.NzWaveDirective, selector: "[nz-wave],button[nz-button]:not([nzType=\"link\"]):not([nzType=\"text\"])", inputs: ["nzWaveExtraNode"], exportAs: ["nzWave"] }, { kind: "ngmodule", type: NzTagModule }, { kind: "component", type: i8.NzTagComponent, selector: "nz-tag", inputs: ["nzMode", "nzColor", "nzChecked", "nzBordered"], outputs: ["nzOnClose", "nzCheckedChange"], exportAs: ["nzTag"] }, { kind: "ngmodule", type: NzSpinModule }, { kind: "component", type: i9.NzSpinComponent, selector: "nz-spin", inputs: ["nzIndicator", "nzSize", "nzTip", "nzDelay", "nzSimple", "nzSpinning"], exportAs: ["nzSpin"] }, { kind: "component", type: ListInfoComponent, selector: "list-info", outputs: ["itemSelected"] }, { kind: "component", type: TreeInfoComponent, selector: "tree-info", outputs: ["itemSelected"] }] });
386
+ }
387
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TreeContentComponent, decorators: [{
388
+ type: Component,
389
+ args: [{ selector: 'tree-content', providers: [TreeService], imports: [
390
+ CommonModule,
391
+ FormsModule,
392
+ NzInputModule,
393
+ NzButtonModule,
394
+ NzTagModule,
395
+ NzSpinModule,
396
+ ListInfoComponent,
397
+ TreeInfoComponent
398
+ ], template: "<div class=\"query-content\">\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\r\n nzType=\"search\"></i>\u67E5\u8BE2</button>\r\n </ng-template>\r\n</div>\r\n<div class=\"body-content\">\r\n <nz-spin [nzSpinning]=\"treeSrv.loading\" class=\"deon-list-spin\">\r\n <ng-container *ngIf=\"treeSrv.contentType=='tree';else tmpList\">\r\n <tree-info (itemSelected)=\"itemClick($event)\"></tree-info>\r\n </ng-container>\r\n <ng-template #tmpList>\r\n <list-info (itemSelected)=\"itemClick($event)\"></list-info>\r\n </ng-template>\r\n </nz-spin>\r\n</div>\r\n<div class=\"select-content\" *ngIf=\"treeSrv.selectTag==true\">\r\n <div class=\"tag-header\">\r\n <label>\u5DF2\u9009<span>({{ treeSrv.selectData.length }})</span></label>\r\n <button nz-button nzType=\"default\" nzSize=\"small\" (click)=\"btnCloseAll()\">\u6E05\u7A7A</button>\r\n </div>\r\n <div class=\"tag-content\">\r\n <ng-container *ngFor=\"let item of treeSrv.selectData;let i=index\">\r\n <nz-tag nzMode=\"closeable\" (nzOnClose)=\"btnClose(i,item)\">{{item[\"name\"]}}</nz-tag>\r\n </ng-container>\r\n </div>\r\n</div>", styles: [":host ::ng-deep{display:flex;flex:1;flex-direction:column;width:100%;height:100%;padding:0}:host ::ng-deep .query-content{margin-bottom:10px}:host ::ng-deep .query-content nz-input-group{width:50%}:host ::ng-deep .body-content{display:inline-block;flex:1;overflow-x:overlay;overflow-y:overlay}:host ::ng-deep .body-content::-webkit-scrollbar{width:8px}:host ::ng-deep .body-content::-webkit-scrollbar-thumb{background-color:#94949475;border-radius:7px}:host ::ng-deep .body-content::-webkit-scrollbar-track{background-color:#fff}:host ::ng-deep .select-content{display:inline-block;width:100%;height:90px;margin:10px 0 0;border:1px solid #eaeaea;border-radius:4px}:host ::ng-deep .select-content .tag-header{padding:5px 8px 8px;border-bottom:1px solid #eaeaea}:host ::ng-deep .select-content .tag-header button{float:right}:host ::ng-deep .select-content .tag-content{height:45px;padding:8px 8px 0;overflow-x:overlay;overflow-y:overlay}:host ::ng-deep .select-content .tag-content::-webkit-scrollbar{width:8px}:host ::ng-deep .select-content .tag-content::-webkit-scrollbar-thumb{background-color:#94949475;border-radius:7px}:host ::ng-deep .select-content .tag-content::-webkit-scrollbar-track{background-color:#fff}:host ::ng-deep .select-content .ant-tag{margin-bottom:8px;border:1px solid #eaeaea}\n"] }]
399
+ }], ctorParameters: () => [{ type: TreeService }], propDecorators: { config: [{
400
+ type: Input
401
+ }], tagData: [{
402
+ type: Input
403
+ }], itemSelected: [{
404
+ type: Output
405
+ }] } });
406
+
407
+ class TreeMainComponent {
408
+ treeSrv;
409
+ set config(value) {
410
+ this.treeSrv.contentType = 'tree';
411
+ value.selectType = 'single'; //'multiple'; //'single';
412
+ this.treeSrv.pageInit(value);
413
+ this.treeSrv.getPageTreeData();
414
+ }
415
+ random = null;
416
+ itemClick = new EventEmitter();
417
+ constructor(treeSrv) {
418
+ this.treeSrv = treeSrv;
419
+ }
420
+ ngOnInit() { }
421
+ ngAfterViewInit() { }
422
+ ngOnChanges(change) {
423
+ if (change['random']) {
424
+ if (this.random) {
425
+ this.treeSrv.getPageTreeData();
426
+ }
427
+ }
428
+ }
429
+ selectedChange(e) {
430
+ this.itemClick.emit(e);
431
+ }
432
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TreeMainComponent, deps: [{ token: TreeService }], target: i0.ɵɵFactoryTarget.Component });
433
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: TreeMainComponent, isStandalone: true, selector: "tree-main", inputs: { config: "config", random: "random" }, outputs: { itemClick: "itemClick" }, providers: [TreeService], usesOnChanges: true, ngImport: i0, template: "<div class=\"query-content\">\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\r\n nzType=\"search\"></i>\u67E5\u8BE2</button>\r\n </ng-template>\r\n</div>\r\n<div class=\"body-content\">\r\n <nz-spin [nzSpinning]=\"treeSrv.loading\" class=\"deon-list-spin\">\r\n <ng-container *ngIf=\"treeSrv.contentType=='tree';else tmpList\">\r\n <tree-info (itemSelected)=\"selectedChange($event)\"></tree-info>\r\n </ng-container>\r\n <ng-template #tmpList>\r\n <list-info (itemSelected)=\"selectedChange($event)\"></list-info>\r\n </ng-template>\r\n </nz-spin>\r\n</div>", styles: [":host ::ng-deep{display:flex;flex:1;flex-direction:column;width:100%;height:100%;padding:0}:host ::ng-deep .query-content{margin-bottom:10px;padding:10px 12px;border-bottom:1px solid #eaeaea}:host ::ng-deep .query-content nz-input-group{width:100%}:host ::ng-deep .body-content{display:inline-block;flex:1;overflow-x:overlay;overflow-y:overlay}:host ::ng-deep .body-content::-webkit-scrollbar{width:8px}:host ::ng-deep .body-content::-webkit-scrollbar-thumb{background-color:#94949475;border-radius:7px}:host ::ng-deep .body-content::-webkit-scrollbar-track{background-color:#fff}:host ::ng-deep .body-content .tree-item{padding-top:0}:host ::ng-deep .body-content list-info{padding:0 10px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3$1.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: i3$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: NzInputModule }, { kind: "directive", type: i4$1.NzInputDirective, selector: "input[nz-input],textarea[nz-input]", inputs: ["nzBorderless", "nzSize", "nzStepperless", "nzStatus", "disabled"], exportAs: ["nzInput"] }, { kind: "component", type: i4$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: i5$1.NzButtonComponent, selector: "button[nz-button], a[nz-button]", inputs: ["nzBlock", "nzGhost", "nzSearch", "nzLoading", "nzDanger", "disabled", "tabIndex", "nzType", "nzShape", "nzSize"], exportAs: ["nzButton"] }, { kind: "directive", type: i6$1.ɵ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: i7.NzWaveDirective, selector: "[nz-wave],button[nz-button]:not([nzType=\"link\"]):not([nzType=\"text\"])", inputs: ["nzWaveExtraNode"], exportAs: ["nzWave"] }, { kind: "ngmodule", type: NzTagModule }, { kind: "ngmodule", type: NzSpinModule }, { kind: "component", type: i9.NzSpinComponent, selector: "nz-spin", inputs: ["nzIndicator", "nzSize", "nzTip", "nzDelay", "nzSimple", "nzSpinning"], exportAs: ["nzSpin"] }, { kind: "component", type: ListInfoComponent, selector: "list-info", outputs: ["itemSelected"] }, { kind: "component", type: TreeInfoComponent, selector: "tree-info", outputs: ["itemSelected"] }] });
434
+ }
435
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TreeMainComponent, decorators: [{
436
+ type: Component,
437
+ args: [{ selector: 'tree-main', providers: [TreeService], imports: [
438
+ CommonModule,
439
+ FormsModule,
440
+ NzInputModule,
441
+ NzButtonModule,
442
+ NzTagModule,
443
+ NzSpinModule,
444
+ ListInfoComponent,
445
+ TreeInfoComponent
446
+ ], template: "<div class=\"query-content\">\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\r\n nzType=\"search\"></i>\u67E5\u8BE2</button>\r\n </ng-template>\r\n</div>\r\n<div class=\"body-content\">\r\n <nz-spin [nzSpinning]=\"treeSrv.loading\" class=\"deon-list-spin\">\r\n <ng-container *ngIf=\"treeSrv.contentType=='tree';else tmpList\">\r\n <tree-info (itemSelected)=\"selectedChange($event)\"></tree-info>\r\n </ng-container>\r\n <ng-template #tmpList>\r\n <list-info (itemSelected)=\"selectedChange($event)\"></list-info>\r\n </ng-template>\r\n </nz-spin>\r\n</div>", styles: [":host ::ng-deep{display:flex;flex:1;flex-direction:column;width:100%;height:100%;padding:0}:host ::ng-deep .query-content{margin-bottom:10px;padding:10px 12px;border-bottom:1px solid #eaeaea}:host ::ng-deep .query-content nz-input-group{width:100%}:host ::ng-deep .body-content{display:inline-block;flex:1;overflow-x:overlay;overflow-y:overlay}:host ::ng-deep .body-content::-webkit-scrollbar{width:8px}:host ::ng-deep .body-content::-webkit-scrollbar-thumb{background-color:#94949475;border-radius:7px}:host ::ng-deep .body-content::-webkit-scrollbar-track{background-color:#fff}:host ::ng-deep .body-content .tree-item{padding-top:0}:host ::ng-deep .body-content list-info{padding:0 10px}\n"] }]
447
+ }], ctorParameters: () => [{ type: TreeService }], propDecorators: { config: [{
448
+ type: Input
449
+ }], random: [{
450
+ type: Input
451
+ }], itemClick: [{
452
+ type: Output
453
+ }] } });
454
+
455
+ const COMPONENTS = [TreeContentComponent, TreeMainComponent];
456
+ const COMPONENTS_NOROUNT = [ListInfoComponent, TreeInfoComponent];
457
+ class TreeContentModule {
458
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TreeContentModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
459
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.15", ngImport: i0, type: TreeContentModule, imports: [TreeContentComponent, TreeMainComponent, ListInfoComponent, TreeInfoComponent], exports: [TreeContentComponent, TreeMainComponent] });
460
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TreeContentModule, imports: [COMPONENTS, COMPONENTS_NOROUNT] });
461
+ }
462
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TreeContentModule, decorators: [{
463
+ type: NgModule,
464
+ args: [{
465
+ imports: [...COMPONENTS, ...COMPONENTS_NOROUNT],
466
+ exports: [...COMPONENTS],
467
+ }]
468
+ }] });
469
+
470
+ /**
471
+ * Generated bundle index. Do not edit.
472
+ */
473
+
474
+ export { TreeContentComponent, TreeContentModule, TreeMainComponent };
475
+ //# sourceMappingURL=common.list-tree.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.list-tree.mjs","sources":["../../../../packages/dialog/common/list-tree/src/service/tree.service.ts","../../../../packages/dialog/common/list-tree/src/component/list/index.ts","../../../../packages/dialog/common/list-tree/src/component/list/index.html","../../../../packages/dialog/common/list-tree/src/component/tree/index.ts","../../../../packages/dialog/common/list-tree/src/component/tree/index.html","../../../../packages/dialog/common/list-tree/src/default/index.ts","../../../../packages/dialog/common/list-tree/src/default/index.html","../../../../packages/dialog/common/list-tree/src/main/index.ts","../../../../packages/dialog/common/list-tree/src/main/index.html","../../../../packages/dialog/common/list-tree/src/index.module.ts","../../../../packages/dialog/common/list-tree/common.list-tree.ts"],"sourcesContent":["import { Directive } from '@angular/core';\r\nimport { _HttpClient } from '@delon/theme';\r\nimport _ from 'lodash';\r\n\r\n@Directive()\r\nexport class TreeService {\r\n loading: boolean = false;\r\n pageId: any = null;\r\n selectTag: boolean = true;\r\n contentType: any = null;//'list' || 'tree';\r\n selectType: any = null;//'single' || 'multiple';\r\n selectKey: any = null;\r\n primary: any = { key: 'id', name: 'name', vlaue: '' };\r\n\r\n /**\r\n * 搜索关键字\r\n */\r\n keyword: any = null;\r\n\r\n /**\r\n * 选中集合\r\n */\r\n selectData: any[] = [];\r\n\r\n /**\r\n * 页面数据集合\r\n */\r\n data: any[] = [];\r\n\r\n /**\r\n * 页面数据集合 只有当selectType='multiple' 并且 contentType='list' 时起作用\r\n */\r\n listData: any[] = [];\r\n\r\n treeAPI: any = null;\r\n listAPI: any = null;\r\n\r\n constructor(public http: _HttpClient) {}\r\n\r\n /**\r\n * 初始化\r\n */\r\n pageInit(config?: any) {\r\n if (config!!) {\r\n this.pageId = config?.pageId;\r\n /**\r\n * 选项类型\r\n */\r\n if (config.selectType!!) {\r\n this.selectType = config.selectType;\r\n } else {\r\n this.selectType = 'single';\r\n }\r\n\r\n /**\r\n * 列表参数\r\n */\r\n if (config.listAPI!!) {\r\n this.listAPI = _.cloneDeep(config.listAPI);\r\n }\r\n\r\n /**\r\n * Tree参数\r\n */\r\n if (config.treeAPI!!) {\r\n this.treeAPI = _.cloneDeep(config.treeAPI);\r\n }\r\n\r\n if (this.selectData!! && this.selectData.length == 1) {\r\n if (this.selectType == 'single') {\r\n this.selectKey = this.selectData[0]['id'];\r\n }\r\n }\r\n if (config.selectTag != undefined && config.selectTag != null) {\r\n this.selectTag = config.selectTag;\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * 搜索按钮事件\r\n */\r\n btnSearch() {\r\n if (this.keyword!!) {\r\n this.contentType = 'list';\r\n this.getPageListData();\r\n } else {\r\n this.contentType = 'tree';\r\n this.getPageTreeData();\r\n }\r\n }\r\n\r\n /**\r\n * 移除某一项选中\r\n * @param e\r\n */\r\n btnClose(e: any, i: any) {\r\n this.selectData = this.selectData.filter((item: any, index: number) => {\r\n return index !== e;\r\n });\r\n this.selectKey = null;\r\n this.listDataChecked(i);\r\n }\r\n\r\n /**\r\n * 清空选中项\r\n */\r\n btnCloseAll() {\r\n this.selectData = [];\r\n this.selectKey = null;\r\n this.listDataCheckedAll();\r\n }\r\n\r\n /**\r\n * 根据条件搜索\r\n */\r\n getPageListData() {\r\n if (this.listAPI!! && this.listAPI.url!!) {\r\n this.loading = true;\r\n let postData: any = { pageId: this.pageId, keyword: this.keyword };\r\n if (this.listAPI.param!!) {\r\n postData = Object.assign(postData, this.listAPI.param);\r\n }\r\n this.http.post(this.listAPI.url, postData).subscribe((res: any) => {\r\n if (res!! && res.success == true) {\r\n let arr: any[] = [];\r\n if (res.result?.treeData) {\r\n arr = res.result?.treeData;\r\n }\r\n if (arr && arr.length > 0) {\r\n if (this.selectType == 'multiple') {\r\n this.createListData(arr);\r\n } else {\r\n this.data = [...arr];\r\n }\r\n } else {\r\n {\r\n this.data = [];\r\n }\r\n }\r\n }\r\n this.loading = false;\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * 获取Tree数据\r\n */\r\n getPageTreeData() {\r\n if (this.treeAPI!! && this.treeAPI.url!!) {\r\n this.data = [];\r\n this.loading = true;\r\n let postData: any = {};\r\n if (this.treeAPI.param!!) {\r\n postData = Object.assign(postData, this.treeAPI.param);\r\n }\r\n this.http.post(this.treeAPI.url, postData).subscribe((res: any) => {\r\n if (res!! && res.success == true) {\r\n if (res.result?.treeData!! && res.result?.treeData?.length > 0) {\r\n this.data = res.result?.treeData;\r\n } else {\r\n {\r\n this.data = [];\r\n }\r\n }\r\n }\r\n this.loading = false;\r\n });\r\n }\r\n }\r\n\r\n listDataChecked(i: any) {\r\n if (this.selectType == 'multiple' && this.contentType == 'list') {\r\n this.listData.forEach((item: any) => {\r\n if (item.value == i.id) {\r\n item.checked = false;\r\n }\r\n });\r\n }\r\n }\r\n\r\n listDataCheckedAll() {\r\n if (this.selectType == 'multiple' && this.contentType == 'list') {\r\n this.listData.forEach((item: any) => {\r\n item.checked = false;\r\n });\r\n }\r\n }\r\n\r\n createListData(result: any) {\r\n if (result!! && result.length > 0) {\r\n let array: any[] = [];\r\n result.forEach((item: any) => {\r\n let obj: any = {\r\n label: item.title,\r\n value: item.key,\r\n checked: false,\r\n };\r\n if (this.selectData!! && this.selectData.length > 0) {\r\n if (\r\n this.selectData.some((v: any) => {\r\n return v.id == item.key;\r\n })\r\n ) {\r\n obj.checked = true;\r\n }\r\n }\r\n array.push(obj);\r\n });\r\n\r\n this.listData = _.cloneDeep(array);\r\n }\r\n }\r\n}\r\n","import { Component, OnInit, Output, EventEmitter } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { _HttpClient } from '@delon/theme';\r\nimport { NzCheckboxModule } from 'ng-zorro-antd/checkbox';\r\nimport { NzMessageService } from 'ng-zorro-antd/message';\r\n\r\nimport { GramDeonEmptyModule } from '@ebuilding/abc/empty';\r\nimport { TreeService } from '../../service/tree.service';\r\n\r\n@Component({\r\n selector: 'list-info',\r\n templateUrl: './index.html',\r\n styleUrls: ['./index.less'],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n NzCheckboxModule,\r\n GramDeonEmptyModule\r\n ]\r\n})\r\nexport class ListInfoComponent implements OnInit {\r\n @Output() itemSelected: EventEmitter<any> = new EventEmitter();\r\n constructor(public msgSrv: NzMessageService, public treeSrv: TreeService) { }\r\n\r\n ngOnInit(): void { }\r\n\r\n ngOnDestroy() { }\r\n\r\n itemChange() {\r\n let arrCheck: any[] = [];\r\n let arrFind: any[] = [];\r\n let listCheck: any[] = this.treeSrv.listData.filter((item: any) => {\r\n return item.checked == true;\r\n });\r\n if (listCheck!! && listCheck.length > 0) {\r\n arrCheck = listCheck.map((item: any) => {\r\n return {\r\n id: item.value,\r\n name: item.label,\r\n };\r\n });\r\n }\r\n\r\n if (this.treeSrv.selectData!! && this.treeSrv.selectData.length > 0) {\r\n this.treeSrv.selectData.forEach((item: any) => {\r\n if (\r\n !this.treeSrv.listData.some((v: any) => {\r\n return item.id == v.value;\r\n })\r\n ) {\r\n arrFind.push({\r\n id: item.id,\r\n name: item.name,\r\n });\r\n }\r\n });\r\n }\r\n this.treeSrv.selectData = [...arrFind, ...arrCheck];\r\n this.itemSelected.emit(listCheck);\r\n }\r\n\r\n itemClick(e: any) {\r\n this.treeSrv.selectKey = e.id;\r\n this.treeSrv.selectData = [\r\n {\r\n id: e.id,\r\n name: e.title,\r\n },\r\n ];\r\n this.itemSelected.emit([\r\n {\r\n id: e.id,\r\n name: e.title,\r\n },\r\n ]);\r\n }\r\n}\r\n","<ng-container *ngIf=\"treeSrv.selectType=='multiple';else tmpSingle\">\r\n <ng-container *ngIf=\"treeSrv.listData!! && treeSrv.listData.length>0;else tmpEmpty\">\r\n <nz-checkbox-group [(ngModel)]=\"treeSrv.listData\" (ngModelChange)=\"itemChange()\"></nz-checkbox-group>\r\n </ng-container>\r\n</ng-container>\r\n\r\n<ng-template #tmpSingle>\r\n <ng-container *ngIf=\"treeSrv.data!! && treeSrv.data.length>0;else tmpEmpty\">\r\n <ul class=\"list-content\">\r\n <ng-container *ngFor=\"let item of treeSrv.data\">\r\n <li (click)=\"itemClick(item)\" [ngClass]=\"{ 'item-selected': treeSrv.selectKey!! && treeSrv.selectKey ==item.id}\">\r\n {{ item.title }}\r\n </li>\r\n </ng-container>\r\n </ul>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #tmpEmpty>\r\n <div class=\"list-empty\" *ngIf=\"treeSrv.loading==false\">\r\n <gram-empty state=\"empty9\"></gram-empty>\r\n </div>\r\n</ng-template>\r\n","import { Component, OnInit, Output, EventEmitter } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { _HttpClient } from '@delon/theme';\r\nimport { NzMessageService } from 'ng-zorro-antd/message';\r\n\r\nimport { GramDeonTreeModule } from '@ebuilding/abc/tree';\r\nimport { TreeService } from '../../service/tree.service';\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 GramDeonTreeModule\r\n ]\r\n})\r\nexport class TreeInfoComponent implements OnInit {\r\n @Output() itemSelected: EventEmitter<any> = new EventEmitter();\r\n constructor(public msgSrv: NzMessageService, public treeSrv: TreeService) { }\r\n\r\n ngOnInit(): void { }\r\n\r\n ngOnDestroy() { }\r\n\r\n treeChangeEvent(type: any, e: any) {\r\n if (type == 'click' && this.treeSrv.selectType == 'single') {\r\n if (e.checkData!! && e.checkData.length > 0) {\r\n this.treeSrv.selectKey = e.checkData[0]['id'];\r\n }\r\n }\r\n this.treeSrv.selectData = e.checkData;\r\n this.itemSelected.emit(e.checkData);\r\n }\r\n}\r\n","<ng-container *ngIf=\"treeSrv.data!! && treeSrv.data.length>0\">\r\n <gram-tree [data]=\"treeSrv.data\" [selectType]=\"treeSrv.selectType\" [selectData]=\"treeSrv.selectData\" [loading]=\"false\"\r\n [primary]=\"treeSrv.primary\" (treeChangeEvent)=\"treeChangeEvent('click',$event)\">\r\n </gram-tree>\r\n</ng-container>","import { Component, OnInit, OnChanges, AfterViewInit, EventEmitter, Input, Output } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { NzInputModule } from 'ng-zorro-antd/input';\r\nimport { NzButtonModule } from 'ng-zorro-antd/button';\r\nimport { NzTagModule } from 'ng-zorro-antd/tag';\r\nimport { NzSpinModule } from 'ng-zorro-antd/spin';\r\n\r\nimport { ListInfoComponent } from \"../component/list\";\r\nimport { TreeInfoComponent } from \"../component/tree\";\r\nimport { TreeService } from '../service/tree.service';\r\n\r\n@Component({\r\n selector: 'tree-content',\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 NzInputModule,\r\n NzButtonModule,\r\n NzTagModule,\r\n NzSpinModule,\r\n ListInfoComponent,\r\n TreeInfoComponent\r\n ]\r\n})\r\nexport class TreeContentComponent implements OnInit, AfterViewInit, OnChanges {\r\n @Input()\r\n set config(value: any) {\r\n this.treeSrv.contentType = 'tree';\r\n if (value!! && value.selectData!! && Array.isArray(value.selectData)) {\r\n this.treeSrv.selectData = value.selectData;\r\n }\r\n this.treeSrv.pageInit(value);\r\n this.treeSrv.getPageTreeData();\r\n }\r\n\r\n get selectData() {\r\n return this.treeSrv.selectData;\r\n }\r\n\r\n @Input() tagData: any = null;\r\n @Output() itemSelected: EventEmitter<any> = new EventEmitter();\r\n\r\n constructor(public treeSrv: TreeService) { }\r\n\r\n ngOnInit() { }\r\n\r\n ngAfterViewInit() { }\r\n\r\n ngOnChanges(change: any) {\r\n if (change['tagData']) {\r\n if (this.tagData!!) {\r\n if (this.tagData.selectData!!) {\r\n this.treeSrv.selectData = this.tagData.selectData;\r\n }\r\n }\r\n }\r\n }\r\n\r\n itemClick(e: any) {\r\n this.itemSelected.emit(this.treeSrv.selectData);\r\n }\r\n\r\n /**\r\n * 移除某一项选中\r\n * @param e\r\n */\r\n btnClose(e: any, i: any) {\r\n this.treeSrv.selectData = this.selectData.filter((item: any, index: number) => {\r\n return index !== e;\r\n });\r\n this.treeSrv.selectKey = null;\r\n this.treeSrv.listDataChecked(i);\r\n this.itemSelected.emit(this.treeSrv.selectData);\r\n }\r\n\r\n /**\r\n * 清空选中项\r\n */\r\n btnCloseAll() {\r\n this.treeSrv.selectData = [];\r\n this.treeSrv.selectKey = null;\r\n this.treeSrv.listDataCheckedAll();\r\n this.itemSelected.emit(this.treeSrv.selectData);\r\n }\r\n}\r\n","<div class=\"query-content\">\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\r\n nzType=\"search\"></i>查询</button>\r\n </ng-template>\r\n</div>\r\n<div class=\"body-content\">\r\n <nz-spin [nzSpinning]=\"treeSrv.loading\" class=\"deon-list-spin\">\r\n <ng-container *ngIf=\"treeSrv.contentType=='tree';else tmpList\">\r\n <tree-info (itemSelected)=\"itemClick($event)\"></tree-info>\r\n </ng-container>\r\n <ng-template #tmpList>\r\n <list-info (itemSelected)=\"itemClick($event)\"></list-info>\r\n </ng-template>\r\n </nz-spin>\r\n</div>\r\n<div class=\"select-content\" *ngIf=\"treeSrv.selectTag==true\">\r\n <div class=\"tag-header\">\r\n <label>已选<span>({{ treeSrv.selectData.length }})</span></label>\r\n <button nz-button nzType=\"default\" nzSize=\"small\" (click)=\"btnCloseAll()\">清空</button>\r\n </div>\r\n <div class=\"tag-content\">\r\n <ng-container *ngFor=\"let item of treeSrv.selectData;let i=index\">\r\n <nz-tag nzMode=\"closeable\" (nzOnClose)=\"btnClose(i,item)\">{{item[\"name\"]}}</nz-tag>\r\n </ng-container>\r\n </div>\r\n</div>","import { Component, OnInit, OnChanges, AfterViewInit, Input, Output, EventEmitter } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { NzInputModule } from 'ng-zorro-antd/input';\r\nimport { NzButtonModule } from 'ng-zorro-antd/button';\r\nimport { NzTagModule } from 'ng-zorro-antd/tag';\r\nimport { NzSpinModule } from 'ng-zorro-antd/spin';\r\n\r\nimport { ListInfoComponent } from \"../component/list\";\r\nimport { TreeInfoComponent } from \"../component/tree\";\r\nimport { TreeService } from '../service/tree.service';\r\n\r\n@Component({\r\n selector: 'tree-main',\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 NzInputModule,\r\n NzButtonModule,\r\n NzTagModule,\r\n NzSpinModule,\r\n ListInfoComponent,\r\n TreeInfoComponent\r\n ]\r\n})\r\nexport class TreeMainComponent implements OnInit, AfterViewInit, OnChanges {\r\n @Input()\r\n set config(value: any) {\r\n this.treeSrv.contentType = 'tree';\r\n value.selectType = 'single'; //'multiple'; //'single';\r\n this.treeSrv.pageInit(value);\r\n this.treeSrv.getPageTreeData();\r\n }\r\n\r\n @Input() random: any = null;\r\n\r\n @Output() itemClick: EventEmitter<any> = new EventEmitter();\r\n\r\n constructor(public treeSrv: TreeService) { }\r\n\r\n ngOnInit() { }\r\n\r\n ngAfterViewInit() { }\r\n\r\n ngOnChanges(change: any) {\r\n if (change['random']) {\r\n if (this.random!!) {\r\n this.treeSrv.getPageTreeData();\r\n }\r\n }\r\n }\r\n\r\n selectedChange(e: any) {\r\n this.itemClick.emit(e);\r\n }\r\n}\r\n","<div class=\"query-content\">\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\r\n nzType=\"search\"></i>查询</button>\r\n </ng-template>\r\n</div>\r\n<div class=\"body-content\">\r\n <nz-spin [nzSpinning]=\"treeSrv.loading\" class=\"deon-list-spin\">\r\n <ng-container *ngIf=\"treeSrv.contentType=='tree';else tmpList\">\r\n <tree-info (itemSelected)=\"selectedChange($event)\"></tree-info>\r\n </ng-container>\r\n <ng-template #tmpList>\r\n <list-info (itemSelected)=\"selectedChange($event)\"></list-info>\r\n </ng-template>\r\n </nz-spin>\r\n</div>","import { NgModule } from '@angular/core';\r\nimport { TreeContentComponent } from './default/index';\r\nimport { TreeMainComponent } from './main/index';\r\nimport { ListInfoComponent } from './component/list/index';\r\nimport { TreeInfoComponent } from './component/tree/index';\r\n\r\nconst COMPONENTS: any[] = [TreeContentComponent,TreeMainComponent];\r\n\r\nconst COMPONENTS_NOROUNT: any = [ListInfoComponent, TreeInfoComponent]; \r\n\r\n@NgModule({\r\n imports: [...COMPONENTS,...COMPONENTS_NOROUNT],\r\n exports: [...COMPONENTS],\r\n})\r\nexport class TreeContentModule { }\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2.TreeService","i4","i1.TreeService","i2","i5","i6","i8"],"mappings":"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"}