@wavemaker/app-ng-runtime 11.4.0-rc.5351 → 11.4.1-next.140982

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 (41) hide show
  1. app-ng-runtime/components/basic/tree/bundles/index.umd.js +132 -236
  2. app-ng-runtime/components/basic/tree/bundles/index.umd.js.map +1 -1
  3. app-ng-runtime/components/basic/tree/esm2015/tree.component.js +135 -208
  4. app-ng-runtime/components/basic/tree/fesm2015/index.js +134 -207
  5. app-ng-runtime/components/basic/tree/fesm2015/index.js.map +1 -1
  6. app-ng-runtime/components/basic/tree/index.metadata.json +1 -1
  7. app-ng-runtime/components/basic/tree/tree.component.d.ts +25 -21
  8. app-ng-runtime/components/chart/bundles/index.umd.js +6 -1
  9. app-ng-runtime/components/chart/bundles/index.umd.js.map +1 -1
  10. app-ng-runtime/components/chart/esm2015/chart.component.js +7 -2
  11. app-ng-runtime/components/chart/fesm2015/index.js +6 -1
  12. app-ng-runtime/components/chart/fesm2015/index.js.map +1 -1
  13. app-ng-runtime/components/chart/index.metadata.json +1 -1
  14. app-ng-runtime/components/containers/tabs/bundles/index.umd.js +6 -0
  15. app-ng-runtime/components/containers/tabs/bundles/index.umd.js.map +1 -1
  16. app-ng-runtime/components/containers/tabs/esm2015/tab-pane/tab-pane.component.js +7 -1
  17. app-ng-runtime/components/containers/tabs/fesm2015/index.js +6 -0
  18. app-ng-runtime/components/containers/tabs/fesm2015/index.js.map +1 -1
  19. app-ng-runtime/components/containers/tabs/index.metadata.json +1 -1
  20. app-ng-runtime/components/containers/tabs/tab-pane/tab-pane.component.d.ts +2 -0
  21. app-ng-runtime/components/data/form/bundles/index.umd.js +9 -3
  22. app-ng-runtime/components/data/form/bundles/index.umd.js.map +1 -1
  23. app-ng-runtime/components/data/form/esm2015/form.component.js +11 -5
  24. app-ng-runtime/components/data/form/fesm2015/index.js +10 -4
  25. app-ng-runtime/components/data/form/fesm2015/index.js.map +1 -1
  26. app-ng-runtime/components/data/form/index.metadata.json +1 -1
  27. app-ng-runtime/components/data/pagination/bundles/index.umd.js +0 -1
  28. app-ng-runtime/components/data/pagination/bundles/index.umd.js.map +1 -1
  29. app-ng-runtime/components/data/pagination/esm2015/pagination.component.js +1 -2
  30. app-ng-runtime/components/data/pagination/fesm2015/index.js +0 -1
  31. app-ng-runtime/components/data/pagination/fesm2015/index.js.map +1 -1
  32. app-ng-runtime/components/data/pagination/index.metadata.json +1 -1
  33. app-ng-runtime/components/input/default/bundles/index.umd.js +15 -2
  34. app-ng-runtime/components/input/default/bundles/index.umd.js.map +1 -1
  35. app-ng-runtime/components/input/default/checkbox/checkbox.component.d.ts +5 -0
  36. app-ng-runtime/components/input/default/esm2015/checkbox/checkbox.component.js +12 -2
  37. app-ng-runtime/components/input/default/esm2015/checkbox/checkbox.props.js +5 -2
  38. app-ng-runtime/components/input/default/fesm2015/index.js +15 -2
  39. app-ng-runtime/components/input/default/fesm2015/index.js.map +1 -1
  40. app-ng-runtime/components/input/default/index.metadata.json +1 -1
  41. app-ng-runtime/package.json +1 -1
@@ -1,7 +1,7 @@
1
- import { Component, ViewEncapsulation, Injector, NgModule } from '@angular/core';
1
+ import { Component, ViewEncapsulation, Injector, Attribute, NgModule } from '@angular/core';
2
2
  import { CommonModule } from '@angular/common';
3
- import { register, PROP_STRING, PROP_ANY, PROP_NUMBER, PROP_BOOLEAN, StylableComponent, styler, APPLY_STYLES_TYPE, getOrderedDataset, provideAsWidgetRef, WmComponentsModule } from '@wm/components/base';
4
- import { getClonedObject } from '@wm/core';
3
+ import { register, PROP_STRING, PROP_ANY, PROP_NUMBER, PROP_BOOLEAN, StylableComponent, styler, APPLY_STYLES_TYPE, getOrderedDataset, getEvaluatedData, provideAsWidgetRef, WmComponentsModule } from '@wm/components/base';
4
+ import { getClonedObject, $parseEvent } from '@wm/core';
5
5
 
6
6
  const registerProps = () => {
7
7
  register('wm-tree', new Map([
@@ -26,16 +26,17 @@ const registerProps = () => {
26
26
  const WIDGET_INFO = { widgetType: 'wm-tree', hostClass: 'app-tree' };
27
27
  const defaultTreeIconClass = 'plus-minus';
28
28
  class TreeComponent extends StylableComponent {
29
- constructor(inj) {
29
+ constructor(inj, binddatavalue, bindnodelabel, bindnodeicon, bindnodechildren, bindnodeid) {
30
30
  super(inj, WIDGET_INFO);
31
+ this.binddatavalue = binddatavalue;
32
+ this.bindnodelabel = bindnodelabel;
33
+ this.bindnodeicon = bindnodeicon;
34
+ this.bindnodechildren = bindnodechildren;
35
+ this.bindnodeid = bindnodeid;
31
36
  this.setting = {
32
37
  data: {
33
38
  simpleData: {
34
39
  enable: false
35
- },
36
- key: {
37
- children: 'children',
38
- name: 'label'
39
40
  }
40
41
  },
41
42
  view: {
@@ -49,45 +50,45 @@ class TreeComponent extends StylableComponent {
49
50
  callback: {}
50
51
  };
51
52
  styler(this.nativeElement, this, APPLY_STYLES_TYPE.CONTAINER);
53
+ this.setting.view['nodeClasses'] = this.setNodeClasses;
54
+ this.setting.callback["onClick"] = this.onClick.bind(this);
55
+ this.setting.callback["onExpand"] = this.onExpand.bind(this);
56
+ this.setting.callback["onCollapse"] = this.onCollapse.bind(this);
52
57
  }
53
58
  onPropertyChange(key, nv, ov) {
54
59
  switch (key) {
55
60
  case 'dataset':
56
61
  this.nodes = this.getNodes(nv);
57
- if (this.level > 0) {
58
- this.expandTree(this.level, this.nodes, 0);
59
- }
60
62
  this.renderTree();
61
63
  break;
62
64
  case 'levels':
63
- if (nv > 0) {
64
- this.level = nv;
65
- }
65
+ this.level = nv;
66
66
  this.renderTree();
67
67
  break;
68
- case 'treeicons':
69
- this.treeicon = nv;
68
+ case 'nodeicon':
69
+ this.nodeicon = nv;
70
70
  this.renderTree();
71
71
  break;
72
72
  case 'nodelabel':
73
- this.setting.data.key.name = this.labelKey;
73
+ this.nodelabel = nv;
74
74
  this.renderTree();
75
75
  break;
76
76
  case 'nodechildren':
77
- this.setting.data.key.children = this.childrenKey;
77
+ this.nodechildren = nv;
78
78
  this.renderTree();
79
79
  break;
80
- case 'nodeicon':
81
- this.nodeicon = this.iconKey;
80
+ case 'orderby':
81
+ this.orderby = nv;
82
82
  this.renderTree();
83
83
  break;
84
- case 'orderby':
84
+ case 'treeicons':
85
+ this.treeicons = nv;
85
86
  this.renderTree();
86
87
  break;
87
88
  case 'class':
88
89
  this.treeClass = nv;
90
+ this.setTreeTemplate(this.treeClass);
89
91
  this.renderTree();
90
- break;
91
92
  default:
92
93
  super.onPropertyChange(key, nv, ov);
93
94
  break;
@@ -96,9 +97,9 @@ class TreeComponent extends StylableComponent {
96
97
  // expands the tree nodes if the property is selected.
97
98
  expandTree(level, node, childLevel) {
98
99
  node.map(childNode => {
99
- const children = this.getChildren(childNode);
100
- if (children && !("open" in childNode) && childLevel < level) {
101
- childNode["open"] = true;
100
+ const children = childNode.children;
101
+ if (children && childLevel < level) {
102
+ childNode.open = true;
102
103
  this.expandTree(level, children, childLevel + 1);
103
104
  }
104
105
  else {
@@ -109,14 +110,15 @@ class TreeComponent extends StylableComponent {
109
110
  }
110
111
  // sets the template for the tree based on the property selected.
111
112
  setTreeTemplate(value) {
112
- if (value === 'Classic') {
113
+ const classList = value.split(" ");
114
+ if (classList.includes('Classic')) {
113
115
  this.setting.check["enable"] = false;
114
116
  }
115
- else if (value === 'Checkbox') {
117
+ else if (classList.includes('Checkbox')) {
116
118
  this.setting.check["enable"] = true;
117
119
  this.setting.check["chkStyle"] = 'checkbox';
118
120
  }
119
- else if (value === 'Radio') {
121
+ else if (classList.includes('Radio')) {
120
122
  this.setting.check["enable"] = true;
121
123
  this.setting.check["chkStyle"] = 'radio';
122
124
  this.setting.check["radioType"] = "all";
@@ -148,52 +150,10 @@ class TreeComponent extends StylableComponent {
148
150
  return nodes;
149
151
  }
150
152
  // adds class to the nodes inorder to add icons to respective node.
151
- setNodeclasses(treeId, treeNode) {
153
+ setNodeClasses(treeId, treeNode) {
152
154
  return treeNode.icon ? { add: [`${treeNode.icon}`] } : '';
153
155
  }
154
156
  ;
155
- // Sets the node label with any icon if bound to
156
- setNodeData(nodes, depth, level, parentNode, type) {
157
- if (depth === 0) {
158
- nodes.map(node => {
159
- const children = this.getChildren(node);
160
- if (children) {
161
- this.setNodeData(children, depth, level, parentNode, type);
162
- }
163
- if (node.icon && this.nodelabel == 'icon') {
164
- node[type] = node.icon;
165
- }
166
- else if (node.name && this.nodelabel == 'name') {
167
- node[type] = node.name;
168
- }
169
- else {
170
- return;
171
- }
172
- });
173
- }
174
- else {
175
- nodes.map(node => {
176
- const children = this.getChildren(node);
177
- if (children && level > 1) {
178
- if (depth === level) {
179
- parentNode = node;
180
- }
181
- this.setNodeData(children, depth, level - 1, parentNode, type);
182
- }
183
- if (level === 1 && (type === "name" ? this.nodelabel.includes("label") || this.nodelabel.includes("name") : this.nodeicon.includes("label") || this.nodeicon.includes("name"))) {
184
- parentNode[type] = node.name || node.label;
185
- return;
186
- }
187
- else if (level === 1 && (node.icon !== undefined) && (type === "name" ? this.nodelabel.includes("icon") : this.nodeicon.includes("icon"))) {
188
- parentNode[type] = node.icon;
189
- return;
190
- }
191
- else {
192
- return;
193
- }
194
- });
195
- }
196
- }
197
157
  // adds tree icons to the nodes on load of the tree
198
158
  changeTreeIcons(nv) {
199
159
  let eleClose = $('ul[name="' + this.name + '"] li span.button.switch');
@@ -206,31 +166,25 @@ class TreeComponent extends StylableComponent {
206
166
  });
207
167
  });
208
168
  }
169
+ // Returns the node path
209
170
  getPath(treeNode, path) {
210
171
  if (treeNode.getParentNode() === null) {
211
- path = "/" + treeNode[this.labelKey] + path;
172
+ path = "/" + treeNode.name + path;
212
173
  }
213
174
  else {
214
- path = this.getPath(treeNode.getParentNode(), path) + "/" + treeNode[this.labelKey];
175
+ path = this.getPath(treeNode.getParentNode(), path) + "/" + treeNode.name;
215
176
  }
216
177
  return path;
217
178
  }
218
179
  // binds the click event to all nodes to open the child nodes
219
180
  onClick(event, treeId, treeNode, clickFlag) {
220
181
  if (this.nodeclick === "expand") {
221
- var nodes = this.treeObj.getSelectedNodes();
182
+ var nodes = this.zTree.getSelectedNodes();
222
183
  if (nodes.length > 0) {
223
184
  this.expandNode(nodes[0], !nodes[0].open, true);
224
185
  }
225
186
  }
226
- let path = this.getPath(treeNode, "");
227
- const eventParams = {
228
- '$event': event,
229
- "$item": treeNode,
230
- "$path": path
231
- };
232
- this.setSelectedItem(treeNode);
233
- this.invokeEventCallback('select', eventParams);
187
+ this.selectNode(event, treeNode);
234
188
  }
235
189
  // Adds tree icon classes to child nodes when expanded
236
190
  onExpand(event, treeId, treeNode) {
@@ -238,18 +192,18 @@ class TreeComponent extends StylableComponent {
238
192
  let path = this.getPath(treeNode, "");
239
193
  const eventParams = {
240
194
  '$event': event,
241
- "$item": treeNode,
195
+ "$item": getClonedObject(treeNode.data),
242
196
  "$path": path
243
197
  };
244
198
  this.invokeEventCallback('expand', eventParams);
245
- const children = this.getChildren(treeNode);
199
+ const children = treeNode.children;
246
200
  children === null || children === void 0 ? void 0 : children.map((el) => {
247
201
  if (el.isParent) {
248
202
  let ele = $(`#${el.tId}_switch`);
249
- $(ele).addClass(self.treeicon || defaultTreeIconClass);
203
+ $(ele).addClass(self.treeicons || defaultTreeIconClass);
250
204
  $(ele).on("click", function (e) {
251
205
  setTimeout(() => {
252
- $(ele).addClass(self.treeicon || defaultTreeIconClass);
206
+ $(ele).addClass(self.treeicons || defaultTreeIconClass);
253
207
  }, 0);
254
208
  });
255
209
  }
@@ -259,153 +213,121 @@ class TreeComponent extends StylableComponent {
259
213
  let path = this.getPath(treeNode, "");
260
214
  const eventParams = {
261
215
  '$event': event,
262
- "$item": treeNode,
216
+ "$item": getClonedObject(treeNode.data),
263
217
  "$path": path
264
218
  };
265
219
  this.invokeEventCallback('collapse', eventParams);
266
220
  }
267
- getChildren(node) {
268
- return node[this.childrenKey];
269
- }
270
- get childrenKey() {
271
- if (!this.nodechildren) {
272
- return 'children';
273
- }
274
- const depth = this.countDepth(this.nodechildren);
275
- return depth ? this.nodechildren.split('.').pop() : this.nodechildren;
276
- }
277
- get labelKey() {
278
- if (!this.nodelabel) {
279
- return 'label';
280
- }
281
- const depth = this.countDepth(this.nodelabel);
282
- return depth ? this.nodelabel.split('.').pop() : this.nodelabel;
283
- }
284
- get iconKey() {
285
- if (!this.nodeicon) {
286
- return 'icon';
287
- }
288
- const depth = this.countDepth(this.nodeicon);
289
- return depth ? this.nodeicon.split('.').pop() : this.nodeicon;
290
- }
291
- get treeObj() {
292
- return $.fn.zTree.getZTreeObj(`${this.name}`);
293
- }
294
221
  // function to support backward compatibility of objects
295
- modifyObjects(array) {
296
- array.forEach(obj => {
297
- obj.icon = obj[this.nodeicon];
298
- const children = this.getChildren(obj);
299
- if (children === null || children === void 0 ? void 0 : children.length) {
300
- this.modifyObjects(children);
222
+ constructZTreeData(data, zTreeData) {
223
+ data.forEach(node => {
224
+ const zNode = {};
225
+ const name = getEvaluatedData(node, { field: this.nodelabel, bindExpression: this.bindnodelabel }, this.viewParent) || node.label;
226
+ const icon = getEvaluatedData(node, { field: this.nodeicon, bindExpression: this.bindnodeicon }, this.viewParent) || node.icon;
227
+ const nodeId = getEvaluatedData(node, { field: this.nodeid, bindExpression: this.bindnodeid }, this.viewParent);
228
+ const children = getEvaluatedData(node, { field: this.nodechildren, bindExpression: this.bindnodechildren }, this.viewParent) || node.children;
229
+ zNode['name'] = name;
230
+ zNode['icon'] = icon;
231
+ zNode['nodeId'] = nodeId;
232
+ zNode['data'] = getClonedObject(node);
233
+ if (_.isArray(children) && children.length) {
234
+ zNode['children'] = [];
235
+ this.constructZTreeData(children, zNode['children']);
301
236
  }
237
+ zTreeData.push(zNode);
302
238
  });
303
239
  }
304
- // sets the node children property to parent nodes
305
- setNodeChildren(nodes, depth, level, parentNode) {
306
- if (depth <= 0) {
307
- return nodes;
308
- }
309
- for (let i = 0; i < nodes.length; i++) {
310
- const node = nodes[i];
311
- if (depth === level) {
312
- parentNode = nodes[i];
313
- }
314
- const children = this.getChildren(node);
315
- if (children === null || children === void 0 ? void 0 : children.length) {
316
- if (level === 1) {
317
- parentNode[this.childrenKey] = children.map(child => ({ [this.labelKey]: child[this.labelKey], [this.childrenKey]: this.getChildren(child), icon: child[this.iconKey] }));
318
- return;
319
- }
320
- else {
321
- this.setNodeChildren(children, depth, level - 1, parentNode);
322
- }
323
- }
324
- }
325
- return nodes;
326
- }
327
- countDepth(str) {
328
- const regex = /\[.*?\]/g;
329
- let matches = str.match(regex);
330
- let count = 1;
331
- if (matches === null)
332
- return count;
333
- for (let match of matches) {
334
- count++;
335
- }
336
- return count;
337
- }
338
240
  // Renders the tree on to the dom
339
241
  renderTree() {
340
- if (this.nodes) {
242
+ var _a;
243
+ this.zTreeNodes = [];
244
+ if ((_a = this.nodes) === null || _a === void 0 ? void 0 : _a.length) {
341
245
  this.nativeElement.setAttribute('id', this.name);
342
- if (this.nodeicon && this.nodeicon !== 'icon') {
343
- this.modifyObjects(this.nodes);
344
- }
345
- this.setTreeTemplate(this.treeClass);
346
- if (this.nodelabel) {
347
- let depth = 0;
348
- if (this.nodelabel.includes("children")) {
349
- depth = this.countDepth(this.nodelabel);
350
- }
351
- this.setNodeData(this.nodes, depth, depth, null, "name");
352
- }
353
- if (this.nodeicon) {
354
- let depth = 0;
355
- if (this.nodeicon.includes("children")) {
356
- depth = this.countDepth(this.nodeicon);
357
- }
358
- this.setNodeData(this.nodes, depth, depth, null, "icon");
359
- }
360
- if (this.nodechildren) {
361
- let depth = this.countDepth(this.nodechildren);
362
- if (depth > 1) {
363
- this.nodes = this.setNodeChildren(this.nodes, depth, depth, null);
364
- }
246
+ this.constructZTreeData(this.nodes, this.zTreeNodes);
247
+ if (this.level > 0) {
248
+ this.expandTree(this.level, this.zTreeNodes, 0);
365
249
  }
366
250
  }
367
- this.setting.view['nodeClasses'] = this.setNodeclasses;
368
- this.setting.callback["onClick"] = this.onClick.bind(this);
369
- this.setting.callback["onExpand"] = this.onExpand.bind(this);
370
- this.setting.callback["onCollapse"] = this.onCollapse.bind(this);
371
- let zTree = $.fn.zTree.init($('ul[name="' + this.name + '"]'), this.setting, this.nodes);
372
- $.fn.zTreeKeyboardNavigation(zTree, $('ul[name="' + this.name + '"]'), null, this.treeicon || defaultTreeIconClass);
251
+ this.zTree = $.fn.zTree.init($('ul[name="' + this.name + '"]'), this.setting, this.zTreeNodes);
252
+ $.fn.zTreeKeyboardNavigation(this.zTree, $('ul[name="' + this.name + '"]'), null, this.treeicons || defaultTreeIconClass);
253
+ this.postRenderTree();
254
+ }
255
+ setChecked(zNode, node) {
256
+ node.checked = zNode.checked;
257
+ const children = getEvaluatedData(node, { field: this.nodechildren, bindExpression: this.bindnodechildren }, this.viewParent) || node.children;
258
+ if (children === null || children === void 0 ? void 0 : children.length) {
259
+ children.forEach((node, index) => {
260
+ this.setChecked(zNode.children[index], node);
261
+ });
262
+ }
373
263
  }
374
- setSelectedItem(treeNode) {
375
- this.selecteditem = getClonedObject(treeNode) || {};
376
- this.selecteditem.path = this.getPath(treeNode, "");
377
- const deSelectElm = $(`li[treenode].selected`);
264
+ selectNode(event, node) {
265
+ const deSelectElm = $(`.app-tree[name=${this.name}] li[treenode].selected`);
378
266
  deSelectElm.removeClass('selected');
379
- const selectElm = $(`#${treeNode.tId}:has(.curSelectedNode)`);
267
+ if (!node) {
268
+ return;
269
+ }
270
+ const selectElm = $(`#${node.tId}:has(.curSelectedNode)`);
380
271
  selectElm.addClass('selected');
272
+ const classList = (this.treeClass || "").split(" ");
273
+ if (classList.includes('Checkbox') || classList.includes('Radio')) {
274
+ this.setChecked(node, node.data);
275
+ }
276
+ const path = this.getPath(node, "");
277
+ this.selecteditem = getClonedObject(node.data) || {};
278
+ this.selecteditem.path = path;
279
+ const eventParams = {
280
+ '$event': event,
281
+ "$item": getClonedObject(node.data),
282
+ "$path": path
283
+ };
284
+ //[Todo-CSP]: this data will be dynamic, can not generate function upfront
285
+ const nodeAction = node.data[this.nodeaction || 'action'];
286
+ if (nodeAction) {
287
+ $parseEvent(nodeAction)(this);
288
+ }
289
+ this.invokeEventCallback('select', eventParams);
381
290
  }
382
291
  expandNode(node, expand, eventFlag) {
383
- this.treeObj.expandNode(node, expand, false, false, eventFlag);
292
+ this.zTree.expandNode(node, expand, false, false, eventFlag);
384
293
  const el = $(`#${node.tId}_switch`);
385
- $(el).addClass(this.treeicon || defaultTreeIconClass);
294
+ $(el).addClass(this.treeicons || defaultTreeIconClass);
386
295
  }
387
- ngAfterViewInit() {
296
+ postRenderTree() {
388
297
  setTimeout(() => {
389
- this.changeTreeIcons(this.treeicon || defaultTreeIconClass);
390
- if (this.datavalue) {
391
- const nodes = this.treeObj.getNodes();
392
- let selectNode;
393
- if (this.datavalue === 'FirstNode') {
394
- if (nodes.length) {
395
- selectNode = nodes[0];
298
+ this.changeTreeIcons(this.treeicons || defaultTreeIconClass);
299
+ if (this.datavalue && !this.selecteditem) {
300
+ const nodes = this.zTree.getNodes();
301
+ let node;
302
+ if (nodes.length) {
303
+ if (this.datavalue === 'FirstNode') {
304
+ node = nodes[0];
396
305
  }
397
- }
398
- if (this.datavalue === 'LastNode') {
399
- if (nodes.length) {
400
- selectNode = nodes[nodes.length - 1];
306
+ if (this.datavalue === 'LastNode') {
307
+ node = nodes[nodes.length - 1];
401
308
  }
402
309
  }
403
- this.treeObj.selectNode(selectNode, false);
404
- this.setSelectedItem(selectNode);
405
- this.expandNode(selectNode, true, false);
310
+ if (node) {
311
+ this.zTree.selectNode(node, false);
312
+ this.selectNode(undefined, node);
313
+ this.expandNode(node, true, false);
314
+ }
406
315
  }
407
316
  }, 200);
408
317
  }
318
+ selectById(value) {
319
+ var _a;
320
+ const simpleNodes = (_a = this.zTree) === null || _a === void 0 ? void 0 : _a.transformToArray(this.zTree.getNodes());
321
+ const node = simpleNodes === null || simpleNodes === void 0 ? void 0 : simpleNodes.find(node => value === node.nodeId);
322
+ if (node) {
323
+ this.zTree.selectNode(node, false);
324
+ this.selectNode(undefined, node);
325
+ }
326
+ }
327
+ deselectById(value) {
328
+ this.selecteditem = {};
329
+ this.selectById();
330
+ }
409
331
  }
410
332
  TreeComponent.initializeProps = registerProps();
411
333
  TreeComponent.decorators = [
@@ -419,7 +341,12 @@ TreeComponent.decorators = [
419
341
  },] }
420
342
  ];
421
343
  TreeComponent.ctorParameters = () => [
422
- { type: Injector }
344
+ { type: Injector },
345
+ { type: undefined, decorators: [{ type: Attribute, args: ['datavalue.bind',] }] },
346
+ { type: undefined, decorators: [{ type: Attribute, args: ['nodelabel.bind',] }] },
347
+ { type: undefined, decorators: [{ type: Attribute, args: ['nodeicon.bind',] }] },
348
+ { type: undefined, decorators: [{ type: Attribute, args: ['nodechildren.bind',] }] },
349
+ { type: undefined, decorators: [{ type: Attribute, args: ['nodeid.bind',] }] }
423
350
  ];
424
351
 
425
352
  const components = [
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../projects/components/widgets/basic/tree/src/tree.props.ts","../../../../../projects/components/widgets/basic/tree/src/tree.component.ts","../../../../../projects/components/widgets/basic/tree/src/tree.module.ts","../../../../../projects/components/widgets/basic/tree/src/index.ts"],"sourcesContent":["import { PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register } from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-tree',\n new Map(\n [\n ['class', PROP_STRING],\n ['dataset', {value: 'node1, node2, node3', ...PROP_ANY}],\n ['datavalue', PROP_STRING],\n ['levels', {value: 0, ...PROP_NUMBER}],\n ['name', PROP_STRING],\n ['nodeaction', PROP_STRING],\n ['nodechildren', PROP_STRING],\n ['nodeclick', {value: 'none', ...PROP_STRING}],\n ['nodeicon', PROP_STRING],\n ['nodeid', PROP_STRING],\n ['nodelabel', PROP_STRING],\n ['orderby', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['treeicons', PROP_STRING]\n ]\n )\n );\n};\n","import {Component, Injector, OnInit, ViewEncapsulation } from '@angular/core';\n\n\nimport { APPLY_STYLES_TYPE, getOrderedDataset, provideAsWidgetRef, StylableComponent, styler } from '@wm/components/base';\nimport { registerProps } from './tree.props';\nimport {getClonedObject} from \"@wm/core\";\n\ndeclare const _, $;\n\nconst WIDGET_INFO = {widgetType: 'wm-tree', hostClass: 'app-tree'};\nconst defaultTreeIconClass = 'plus-minus';\n\n@Component({\n selector: 'ul[wmTree]',\n templateUrl: './tree.component.html',\n providers: [\n provideAsWidgetRef(TreeComponent)\n ],\n encapsulation: ViewEncapsulation.None\n})\nexport class TreeComponent extends StylableComponent implements OnInit {\n static initializeProps = registerProps();\n\n public selecteditem;\n private nodes;\n private level;\n private orderby;\n private nodelabel;\n private treeicon;\n private nodechildren;\n private nodeclick;\n private treeClass;\n private nodeicon;\n private name;\n private datavalue;\n\n private setting = {\n data: {\n simpleData: {\n enable: false\n },\n key: {\n children: 'children',\n name: 'label'\n }\n },\n view: {\n dblClickExpand: false,\n fontCss: {\n 'font-awesome': true\n },\n switchIcon: {\n\n },\n },\n check: {\n },\n callback: {\n }\n };\n\n constructor(\n inj: Injector\n ) {\n super(inj, WIDGET_INFO);\n styler(this.nativeElement, this, APPLY_STYLES_TYPE.CONTAINER);\n }\n\n public onPropertyChange(key: string, nv: any, ov?: any): void {\n switch (key) {\n case 'dataset':\n this.nodes = this.getNodes(nv);\n if(this.level > 0) {\n this.expandTree(this.level, this.nodes, 0);\n }\n this.renderTree();\n break;\n case 'levels':\n if (nv > 0) {\n this.level = nv;\n }\n this.renderTree();\n break;\n case 'treeicons':\n this.treeicon = nv;\n this.renderTree();\n break;\n case 'nodelabel':\n this.setting.data.key.name = this.labelKey;\n this.renderTree();\n break;\n case 'nodechildren':\n this.setting.data.key.children = this.childrenKey;\n this.renderTree();\n break;\n case 'nodeicon':\n this.nodeicon = this.iconKey;\n this.renderTree();\n break;\n case 'orderby':\n this.renderTree();\n break;\n case 'class':\n this.treeClass = nv;\n this.renderTree();\n break;\n default:\n super.onPropertyChange(key, nv, ov);\n break;\n }\n }\n\n // expands the tree nodes if the property is selected.\n private expandTree(level, node, childLevel) {\n node.map(childNode => {\n const children = this.getChildren(childNode);\n if (children && !(\"open\" in childNode) && childLevel < level) {\n childNode[\"open\"] = true;\n this.expandTree(level, children, childLevel+1);\n } else {\n childLevel = 0;\n return;\n }\n });\n }\n\n // sets the template for the tree based on the property selected.\n private setTreeTemplate(value) {\n if (value === 'Classic') {\n this.setting.check[\"enable\"] = false;\n } else if(value === 'Checkbox') {\n this.setting.check[\"enable\"] = true;\n this.setting.check[\"chkStyle\"] = 'checkbox';\n } else if (value === 'Radio') {\n this.setting.check[\"enable\"] = true;\n this.setting.check[\"chkStyle\"] = 'radio';\n this.setting.check[\"radioType\"] = \"all\";\n }\n }\n\n // extracts nodes from string format\n private getNodesFromString(value) {\n return value.split(',').map((item) => {\n return {\n 'label': item && item.trim()\n };\n });\n }\n\n // gets the nodes and orders the nodes if required\n private getNodes(newVal) {\n let nodes;\n if (_.isArray(newVal)) {\n nodes = getOrderedDataset(newVal, this.orderby);\n } else if (_.isObject(newVal)) {\n nodes = [newVal];\n } else if (_.isString(newVal) && !_.isEmpty(newVal)) {\n newVal = newVal.trim();\n if (newVal) {\n nodes = this.getNodesFromString(newVal);\n }\n }\n return nodes;\n }\n\n\n // adds class to the nodes inorder to add icons to respective node.\n private setNodeclasses(treeId, treeNode) {\n return treeNode.icon ? {add: [`${treeNode.icon}`]} : '';\n };\n\n // Sets the node label with any icon if bound to\n private setNodeData(nodes, depth, level, parentNode, type) {\n if(depth === 0) {\n nodes.map(node => {\n const children = this.getChildren(node);\n if (children) {\n this.setNodeData(children, depth, level , parentNode, type);\n }\n if (node.icon && this.nodelabel == 'icon') {\n node[type] = node.icon;\n } else if(node.name && this.nodelabel == 'name') {\n node[type] = node.name;\n } else {\n return;\n }\n })\n } else {\n nodes.map(node => {\n const children = this.getChildren(node);\n if (children && level > 1) {\n if(depth === level) {\n parentNode = node;\n }\n this.setNodeData(children, depth, level - 1, parentNode, type);\n }\n if (level === 1 && (type === \"name\" ? this.nodelabel.includes(\"label\") || this.nodelabel.includes(\"name\"): this.nodeicon.includes(\"label\") || this.nodeicon.includes(\"name\") )) {\n parentNode[type] = node.name || node.label;\n return\n } else if(level === 1 && (node.icon !== undefined) && (type === \"name\" ? this.nodelabel.includes(\"icon\") : this.nodeicon.includes(\"icon\"))) {\n parentNode[type] = node.icon;\n return;\n } else {\n return;\n }\n })\n }\n }\n\n // adds tree icons to the nodes on load of the tree\n private changeTreeIcons(nv) {\n let eleClose = $('ul[name=\"' + this.name + '\"] li span.button.switch');\n\n $(eleClose).map((idx, ele) => {\n $(ele).addClass(nv);\n $(ele).on(\"click\",function(e) {\n setTimeout(() => {\n $(ele).addClass(nv);\n }, 0);\n });\n })\n }\n\n private getPath(treeNode, path) {\n if(treeNode.getParentNode() === null) {\n path = \"/\" + treeNode[this.labelKey] + path;\n } else {\n path = this.getPath(treeNode.getParentNode(), path) + \"/\" + treeNode[this.labelKey];\n }\n return path;\n }\n\n // binds the click event to all nodes to open the child nodes\n public onClick(event, treeId, treeNode, clickFlag) {\n if(this.nodeclick === \"expand\") {\n var nodes = this.treeObj.getSelectedNodes();\n if (nodes.length>0) {\n this.expandNode(nodes[0], !nodes[0].open, true);\n }\n }\n let path = this.getPath(treeNode, \"\");\n\n const eventParams = {\n '$event' : event,\n \"$item\" : treeNode,\n \"$path\" : path\n };\n\n this.setSelectedItem(treeNode);\n this.invokeEventCallback('select', eventParams);\n }\n\n // Adds tree icon classes to child nodes when expanded\n public onExpand(event, treeId, treeNode) {\n let self = this;\n let path = this.getPath(treeNode, \"\");\n\n const eventParams = {\n '$event' : event,\n \"$item\" : treeNode,\n \"$path\" : path\n };\n this.invokeEventCallback('expand', eventParams);\n\n const children = this.getChildren(treeNode);\n children?.map((el) => {\n if (el.isParent) {\n let ele = $(`#${el.tId}_switch`);\n $(ele).addClass(self.treeicon || defaultTreeIconClass);\n $(ele).on(\"click\", function(e) {\n setTimeout(() => {\n $(ele).addClass(self.treeicon || defaultTreeIconClass);\n }, 0);\n });\n }\n });\n }\n\n public onCollapse(event, treeId, treeNode) {\n let path = this.getPath(treeNode, \"\");\n const eventParams = {\n '$event' : event,\n \"$item\" : treeNode,\n \"$path\" : path\n };\n this.invokeEventCallback('collapse', eventParams);\n }\n\n private getChildren(node) {\n return node[this.childrenKey];\n }\n get childrenKey() {\n if(!this.nodechildren) {\n return 'children';\n }\n const depth = this.countDepth(this.nodechildren);\n return depth ? this.nodechildren.split('.').pop() : this.nodechildren;\n }\n get labelKey() {\n if(!this.nodelabel) {\n return 'label';\n }\n const depth = this.countDepth(this.nodelabel);\n return depth ? this.nodelabel.split('.').pop() : this.nodelabel;\n }\n get iconKey() {\n if(!this.nodeicon) {\n return 'icon';\n }\n const depth = this.countDepth(this.nodeicon);\n return depth ? this.nodeicon.split('.').pop() : this.nodeicon;\n }\n\n get treeObj(){\n return $.fn.zTree.getZTreeObj(`${this.name}`)\n }\n\n // function to support backward compatibility of objects\n private modifyObjects(array) {\n array.forEach(obj => {\n obj.icon = obj[this.nodeicon];\n const children = this.getChildren(obj);\n if (children?.length) {\n this.modifyObjects(children);\n }\n });\n }\n\n // sets the node children property to parent nodes\n private setNodeChildren(nodes, depth, level, parentNode) {\n if (depth <= 0) {\n return nodes;\n }\n for (let i = 0; i < nodes.length; i++) {\n const node = nodes[i];\n\n if(depth === level) {\n parentNode = nodes[i];\n }\n const children = this.getChildren(node);\n if (children?.length) {\n if (level === 1) {\n parentNode[this.childrenKey] = children.map(child => ({ [this.labelKey]: child[this.labelKey], [this.childrenKey]: this.getChildren(child), icon: child[this.iconKey] }));\n return;\n } else {\n this.setNodeChildren(children, depth ,level - 1, parentNode);\n }\n }\n }\n\n return nodes;\n }\n\n private countDepth(str) {\n const regex = /\\[.*?\\]/g;\n let matches = str.match(regex);\n let count = 1;\n\n if(matches === null) return count;\n\n for (let match of matches) {\n count++;\n }\n\n return count;\n }\n\n\n // Renders the tree on to the dom\n public renderTree() {\n if(this.nodes) {\n this.nativeElement.setAttribute('id', this.name);\n if(this.nodeicon && this.nodeicon !== 'icon') {\n this.modifyObjects(this.nodes);\n }\n this.setTreeTemplate(this.treeClass);\n\n if (this.nodelabel) {\n let depth =0;\n if(this.nodelabel.includes(\"children\")) {\n depth = this.countDepth(this.nodelabel);\n }\n this.setNodeData(this.nodes, depth, depth, null, \"name\");\n }\n if(this.nodeicon) {\n let depth =0;\n if(this.nodeicon.includes(\"children\")) {\n depth = this.countDepth(this.nodeicon);\n }\n this.setNodeData(this.nodes, depth, depth, null, \"icon\");\n }\n\n if (this.nodechildren) {\n let depth = this.countDepth(this.nodechildren);\n if(depth > 1) {\n this.nodes = this.setNodeChildren(this.nodes, depth, depth, null);\n }\n }\n }\n\n\n this.setting.view['nodeClasses'] = this.setNodeclasses;\n this.setting.callback[\"onClick\"] = this.onClick.bind(this);\n this.setting.callback[\"onExpand\"] = this.onExpand.bind(this);\n this.setting.callback[\"onCollapse\"] = this.onCollapse.bind(this);\n\n let zTree = $.fn.zTree.init($('ul[name=\"' + this.name + '\"]'), this.setting, this.nodes);\n\n $.fn.zTreeKeyboardNavigation(zTree, $('ul[name=\"' + this.name + '\"]'), null, this.treeicon || defaultTreeIconClass);\n }\n\n private setSelectedItem(treeNode) {\n this.selecteditem = getClonedObject(treeNode) || {};\n this.selecteditem.path = this.getPath(treeNode, \"\");\n const deSelectElm = $(`li[treenode].selected`);\n deSelectElm.removeClass('selected');\n const selectElm = $(`#${treeNode.tId}:has(.curSelectedNode)`);\n selectElm.addClass('selected');\n }\n\n private expandNode(node, expand, eventFlag) {\n this.treeObj.expandNode(node, expand, false, false, eventFlag);\n const el = $(`#${node.tId}_switch`);\n $(el).addClass(this.treeicon || defaultTreeIconClass);\n }\n\n ngAfterViewInit(): void {\n setTimeout(() => {\n this.changeTreeIcons(this.treeicon || defaultTreeIconClass);\n\n if (this.datavalue) {\n const nodes = this.treeObj.getNodes();\n let selectNode;\n\n if (this.datavalue === 'FirstNode'){\n if (nodes.length) {\n selectNode = nodes[0];\n }\n }\n if(this.datavalue === 'LastNode') {\n if (nodes.length) {\n selectNode = nodes[nodes.length - 1]\n }\n }\n this.treeObj.selectNode(selectNode, false);\n this.setSelectedItem(selectNode);\n this.expandNode(selectNode, true, false);\n }\n\n }, 200);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { WmComponentsModule } from '@wm/components/base';\n\nimport { TreeComponent } from './tree.component';\n\nconst components = [\n TreeComponent\n];\n\n@NgModule({\n imports: [\n CommonModule,\n WmComponentsModule\n ],\n declarations: [...components],\n exports: [...components],\n entryComponents: []\n})\nexport class TreeModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n\nexport {registerProps as ɵa} from './tree.props';"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../projects/components/widgets/basic/tree/src/tree.props.ts","../../../../../projects/components/widgets/basic/tree/src/tree.component.ts","../../../../../projects/components/widgets/basic/tree/src/tree.module.ts","../../../../../projects/components/widgets/basic/tree/src/index.ts"],"sourcesContent":["import { PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register } from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-tree',\n new Map(\n [\n ['class', PROP_STRING],\n ['dataset', {value: 'node1, node2, node3', ...PROP_ANY}],\n ['datavalue', PROP_STRING],\n ['levels', {value: 0, ...PROP_NUMBER}],\n ['name', PROP_STRING],\n ['nodeaction', PROP_STRING],\n ['nodechildren', PROP_STRING],\n ['nodeclick', {value: 'none', ...PROP_STRING}],\n ['nodeicon', PROP_STRING],\n ['nodeid', PROP_STRING],\n ['nodelabel', PROP_STRING],\n ['orderby', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['treeicons', PROP_STRING]\n ]\n )\n );\n};\n","import { Attribute, Component, Injector, OnInit, ViewEncapsulation } from '@angular/core';\nimport { APPLY_STYLES_TYPE, getEvaluatedData, getOrderedDataset, provideAsWidgetRef, StylableComponent, styler } from '@wm/components/base';\nimport { registerProps } from './tree.props';\nimport { $parseEvent, getClonedObject } from \"@wm/core\";\n\ndeclare const _, $;\n\nconst WIDGET_INFO = {widgetType: 'wm-tree', hostClass: 'app-tree'};\nconst defaultTreeIconClass = 'plus-minus';\n\n@Component({\n selector: 'ul[wmTree]',\n templateUrl: './tree.component.html',\n providers: [\n provideAsWidgetRef(TreeComponent)\n ],\n encapsulation: ViewEncapsulation.None\n})\nexport class TreeComponent extends StylableComponent implements OnInit {\n static initializeProps = registerProps();\n\n private nodes: Array<any>;\n private zTreeNodes: Array<any>;\n private level;\n private treeClass;\n private name;\n private zTree;\n\n public datavalue: string;\n public treeicons: string;\n public selecteditem: any;\n public nodeid: string;\n public nodeaction: string;\n public nodeclick: string;\n public nodelabel: string;\n public nodeicon: string;\n public nodechildren: string;\n public orderby: string;\n\n private setting = {\n data: {\n simpleData: {\n enable: false\n }\n },\n view: {\n dblClickExpand: false,\n fontCss: {\n 'font-awesome': true\n },\n switchIcon: {},\n },\n check: {},\n callback: {}\n };\n\n constructor(\n inj: Injector,\n @Attribute('datavalue.bind') private binddatavalue,\n @Attribute('nodelabel.bind') private bindnodelabel,\n @Attribute('nodeicon.bind') private bindnodeicon,\n @Attribute('nodechildren.bind') private bindnodechildren,\n @Attribute('nodeid.bind') private bindnodeid\n ) {\n super(inj, WIDGET_INFO);\n styler(this.nativeElement, this, APPLY_STYLES_TYPE.CONTAINER);\n\n this.setting.view['nodeClasses'] = this.setNodeClasses;\n this.setting.callback[\"onClick\"] = this.onClick.bind(this);\n this.setting.callback[\"onExpand\"] = this.onExpand.bind(this);\n this.setting.callback[\"onCollapse\"] = this.onCollapse.bind(this);\n }\n\n public onPropertyChange(key: string, nv: any, ov?: any): void {\n switch (key) {\n case 'dataset':\n this.nodes = this.getNodes(nv);\n this.renderTree();\n break;\n case 'levels':\n this.level = nv;\n this.renderTree();\n break;\n case 'nodeicon':\n this.nodeicon = nv;\n this.renderTree();\n break;\n case 'nodelabel':\n this.nodelabel = nv;\n this.renderTree();\n break;\n case 'nodechildren':\n this.nodechildren = nv;\n this.renderTree();\n break;\n case 'orderby':\n this.orderby = nv;\n this.renderTree();\n break;\n case 'treeicons':\n this.treeicons = nv;\n this.renderTree();\n break;\n case 'class':\n this.treeClass = nv;\n this.setTreeTemplate(this.treeClass);\n this.renderTree();\n default:\n super.onPropertyChange(key, nv, ov);\n break;\n }\n }\n\n // expands the tree nodes if the property is selected.\n private expandTree(level, node, childLevel) {\n node.map(childNode => {\n const children = childNode.children;\n if (children && childLevel < level) {\n childNode.open = true;\n this.expandTree(level, children, childLevel+1);\n } else {\n childLevel = 0;\n return;\n }\n });\n }\n\n // sets the template for the tree based on the property selected.\n private setTreeTemplate(value) {\n const classList = value.split(\" \");\n if (classList.includes('Classic')) {\n this.setting.check[\"enable\"] = false;\n } else if(classList.includes('Checkbox')) {\n this.setting.check[\"enable\"] = true;\n this.setting.check[\"chkStyle\"] = 'checkbox';\n } else if (classList.includes('Radio')) {\n this.setting.check[\"enable\"] = true;\n this.setting.check[\"chkStyle\"] = 'radio';\n this.setting.check[\"radioType\"] = \"all\";\n }\n }\n\n // extracts nodes from string format\n private getNodesFromString(value) {\n return value.split(',').map((item) => {\n return {\n 'label': item && item.trim()\n };\n });\n }\n\n // gets the nodes and orders the nodes if required\n private getNodes(newVal) {\n let nodes;\n if (_.isArray(newVal)) {\n nodes = getOrderedDataset(newVal, this.orderby);\n } else if (_.isObject(newVal)) {\n nodes = [newVal];\n } else if (_.isString(newVal) && !_.isEmpty(newVal)) {\n newVal = newVal.trim();\n if (newVal) {\n nodes = this.getNodesFromString(newVal);\n }\n }\n return nodes;\n }\n\n\n // adds class to the nodes inorder to add icons to respective node.\n private setNodeClasses(treeId, treeNode) {\n return treeNode.icon ? {add: [`${treeNode.icon}`]} : '';\n };\n\n // adds tree icons to the nodes on load of the tree\n private changeTreeIcons(nv) {\n let eleClose = $('ul[name=\"' + this.name + '\"] li span.button.switch');\n\n $(eleClose).map((idx, ele) => {\n $(ele).addClass(nv);\n $(ele).on(\"click\",function(e) {\n setTimeout(() => {\n $(ele).addClass(nv);\n }, 0);\n });\n })\n }\n\n // Returns the node path\n private getPath(treeNode, path) {\n if(treeNode.getParentNode() === null) {\n path = \"/\" + treeNode.name + path;\n } else {\n path = this.getPath(treeNode.getParentNode(), path) + \"/\" + treeNode.name;\n }\n return path;\n }\n\n // binds the click event to all nodes to open the child nodes\n public onClick(event, treeId, treeNode, clickFlag) {\n if(this.nodeclick === \"expand\") {\n var nodes = this.zTree.getSelectedNodes();\n if (nodes.length>0) {\n this.expandNode(nodes[0], !nodes[0].open, true);\n }\n }\n this.selectNode(event, treeNode);\n }\n\n // Adds tree icon classes to child nodes when expanded\n public onExpand(event, treeId, treeNode) {\n let self = this;\n let path = this.getPath(treeNode, \"\");\n\n const eventParams = {\n '$event' : event,\n \"$item\" : getClonedObject(treeNode.data),\n \"$path\" : path\n };\n this.invokeEventCallback('expand', eventParams);\n\n const children = treeNode.children;\n children?.map((el) => {\n if (el.isParent) {\n let ele = $(`#${el.tId}_switch`);\n $(ele).addClass(self.treeicons || defaultTreeIconClass);\n $(ele).on(\"click\", function(e) {\n setTimeout(() => {\n $(ele).addClass(self.treeicons || defaultTreeIconClass);\n }, 0);\n });\n }\n });\n }\n\n public onCollapse(event, treeId, treeNode) {\n let path = this.getPath(treeNode, \"\");\n const eventParams = {\n '$event' : event,\n \"$item\" : getClonedObject(treeNode.data),\n \"$path\" : path\n };\n this.invokeEventCallback('collapse', eventParams);\n }\n\n // function to support backward compatibility of objects\n private constructZTreeData(data, zTreeData) {\n data.forEach(node => {\n const zNode = {};\n const name = getEvaluatedData(node, {field: this.nodelabel, bindExpression: this.bindnodelabel}, this.viewParent) || node.label;\n const icon = getEvaluatedData(node, {field: this.nodeicon, bindExpression: this.bindnodeicon}, this.viewParent) || node.icon;\n const nodeId = getEvaluatedData(node, {field: this.nodeid, bindExpression: this.bindnodeid}, this.viewParent);\n const children = getEvaluatedData(node, {field: this.nodechildren, bindExpression: this.bindnodechildren}, this.viewParent) || node.children;\n zNode['name'] = name;\n zNode['icon'] = icon;\n zNode['nodeId'] = nodeId;\n zNode['data'] = getClonedObject(node);\n if (_.isArray(children) && children.length) {\n zNode['children'] = [];\n this.constructZTreeData(children, zNode['children']);\n }\n zTreeData.push(zNode);\n });\n }\n\n // Renders the tree on to the dom\n public renderTree() {\n this.zTreeNodes = [];\n if(this.nodes?.length) {\n this.nativeElement.setAttribute('id', this.name);\n this.constructZTreeData(this.nodes, this.zTreeNodes);\n if(this.level > 0) {\n this.expandTree(this.level, this.zTreeNodes, 0);\n }\n }\n this.zTree = $.fn.zTree.init($('ul[name=\"' + this.name + '\"]'), this.setting, this.zTreeNodes);\n $.fn.zTreeKeyboardNavigation(this.zTree, $('ul[name=\"' + this.name + '\"]'), null, this.treeicons || defaultTreeIconClass);\n this.postRenderTree();\n }\n\n private setChecked(zNode, node) {\n node.checked = zNode.checked;\n const children = getEvaluatedData(node, {field: this.nodechildren, bindExpression: this.bindnodechildren}, this.viewParent) || node.children;\n if(children?.length) {\n children.forEach((node, index) => {\n this.setChecked(zNode.children[index], node);\n });\n }\n }\n\n private selectNode(event, node) {\n const deSelectElm = $(`.app-tree[name=${this.name}] li[treenode].selected`);\n deSelectElm.removeClass('selected');\n\n if(!node) {\n return;\n }\n const selectElm = $(`#${node.tId}:has(.curSelectedNode)`);\n selectElm.addClass('selected');\n\n\n const classList = (this.treeClass || \"\").split(\" \");\n if (classList.includes('Checkbox') || classList.includes('Radio')) {\n this.setChecked(node, node.data);\n }\n\n const path = this.getPath(node, \"\");\n this.selecteditem = getClonedObject(node.data) || {};\n this.selecteditem.path = path;\n\n const eventParams = {\n '$event' : event,\n \"$item\" : getClonedObject(node.data),\n \"$path\" : path\n };\n\n //[Todo-CSP]: this data will be dynamic, can not generate function upfront\n const nodeAction = node.data[this.nodeaction || 'action'];\n if (nodeAction) {\n $parseEvent(nodeAction)(this);\n }\n this.invokeEventCallback('select', eventParams);\n }\n\n private expandNode(node, expand, eventFlag) {\n this.zTree.expandNode(node, expand, false, false, eventFlag);\n const el = $(`#${node.tId}_switch`);\n $(el).addClass(this.treeicons || defaultTreeIconClass);\n }\n\n private postRenderTree() {\n setTimeout(() => {\n this.changeTreeIcons(this.treeicons || defaultTreeIconClass);\n\n if (this.datavalue && !this.selecteditem) {\n const nodes = this.zTree.getNodes();\n let node;\n if(nodes.length) {\n if (this.datavalue === 'FirstNode') {\n node = nodes[0];\n }\n if(this.datavalue === 'LastNode') {\n node = nodes[nodes.length - 1];\n }\n }\n\n if(node) {\n this.zTree.selectNode(node, false);\n this.selectNode(undefined, node);\n this.expandNode(node, true, false);\n }\n }\n }, 200);\n }\n\n private selectById(value?) {\n const simpleNodes = this.zTree?.transformToArray(this.zTree.getNodes());\n const node = simpleNodes?.find(node => value === node.nodeId);\n if(node) {\n this.zTree.selectNode(node, false);\n this.selectNode(undefined, node);\n }\n }\n private deselectById(value?) {\n this.selecteditem = {};\n this.selectById();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { WmComponentsModule } from '@wm/components/base';\n\nimport { TreeComponent } from './tree.component';\n\nconst components = [\n TreeComponent\n];\n\n@NgModule({\n imports: [\n CommonModule,\n WmComponentsModule\n ],\n declarations: [...components],\n exports: [...components],\n entryComponents: []\n})\nexport class TreeModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n\nexport {registerProps as ɵa} from './tree.props';"],"names":[],"mappings":"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"}