@wavemaker/app-ng-runtime 11.4.0-next.140429 → 11.4.0-next.140433

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 (78) hide show
  1. app-ng-runtime/build-task/basic/tree/tree.build.d.ts +1 -2
  2. app-ng-runtime/build-task/bundles/index.umd.js +5 -7
  3. app-ng-runtime/build-task/bundles/index.umd.js.map +1 -1
  4. app-ng-runtime/build-task/esm2015/basic/tree/tree.build.js +3 -4
  5. app-ng-runtime/build-task/fesm2015/index.js +5 -7
  6. app-ng-runtime/build-task/fesm2015/index.js.map +1 -1
  7. app-ng-runtime/components/base/bundles/index.umd.js +1 -1
  8. app-ng-runtime/components/base/bundles/index.umd.js.map +1 -1
  9. app-ng-runtime/components/base/esm2015/widgets/common/dialog/dialog.service.js +3 -3
  10. app-ng-runtime/components/base/fesm2015/index.js +2 -2
  11. app-ng-runtime/components/base/fesm2015/index.js.map +1 -1
  12. app-ng-runtime/components/basic/tree/bundles/index.umd.js +271 -255
  13. app-ng-runtime/components/basic/tree/bundles/index.umd.js.map +1 -1
  14. app-ng-runtime/components/basic/tree/esm2015/public_api.js +2 -2
  15. app-ng-runtime/components/basic/tree/esm2015/tree.component.js +314 -0
  16. app-ng-runtime/components/basic/tree/esm2015/tree.module.js +3 -3
  17. app-ng-runtime/components/basic/tree/fesm2015/index.js +251 -247
  18. app-ng-runtime/components/basic/tree/fesm2015/index.js.map +1 -1
  19. app-ng-runtime/components/basic/tree/index.metadata.json +1 -1
  20. app-ng-runtime/components/basic/tree/public_api.d.ts +1 -1
  21. app-ng-runtime/components/basic/tree/tree.component.d.ts +33 -0
  22. app-ng-runtime/components/containers/tabs/bundles/index.umd.js +39 -23
  23. app-ng-runtime/components/containers/tabs/bundles/index.umd.js.map +1 -1
  24. app-ng-runtime/components/containers/tabs/esm2015/tab-pane/tab-pane.component.js +8 -1
  25. app-ng-runtime/components/containers/tabs/esm2015/tabs.animator.js +33 -13
  26. app-ng-runtime/components/containers/tabs/fesm2015/index.js +40 -13
  27. app-ng-runtime/components/containers/tabs/fesm2015/index.js.map +1 -1
  28. app-ng-runtime/components/containers/tabs/tabs.animator.d.ts +5 -1
  29. app-ng-runtime/components/data/list/bundles/index.umd.js +24 -39
  30. app-ng-runtime/components/data/list/bundles/index.umd.js.map +1 -1
  31. app-ng-runtime/components/data/list/esm2015/list.component.js +24 -39
  32. app-ng-runtime/components/data/list/fesm2015/index.js +23 -38
  33. app-ng-runtime/components/data/list/fesm2015/index.js.map +1 -1
  34. app-ng-runtime/components/data/list/index.metadata.json +1 -1
  35. app-ng-runtime/components/data/pagination/bundles/index.umd.js +21 -4
  36. app-ng-runtime/components/data/pagination/bundles/index.umd.js.map +1 -1
  37. app-ng-runtime/components/data/pagination/esm2015/pagination.component.js +22 -5
  38. app-ng-runtime/components/data/pagination/fesm2015/index.js +21 -4
  39. app-ng-runtime/components/data/pagination/fesm2015/index.js.map +1 -1
  40. app-ng-runtime/components/data/pagination/index.metadata.json +1 -1
  41. app-ng-runtime/components/data/pagination/pagination.component.d.ts +1 -0
  42. app-ng-runtime/components/data/table/bundles/index.umd.js +11 -4
  43. app-ng-runtime/components/data/table/bundles/index.umd.js.map +1 -1
  44. app-ng-runtime/components/data/table/esm2015/table.component.js +12 -5
  45. app-ng-runtime/components/data/table/fesm2015/index.js +11 -4
  46. app-ng-runtime/components/data/table/fesm2015/index.js.map +1 -1
  47. app-ng-runtime/components/data/table/index.metadata.json +1 -1
  48. app-ng-runtime/components/dialogs/default/base-dialog.d.ts +1 -0
  49. app-ng-runtime/components/dialogs/default/bundles/index.umd.js +11 -3
  50. app-ng-runtime/components/dialogs/default/bundles/index.umd.js.map +1 -1
  51. app-ng-runtime/components/dialogs/default/esm2015/base-dialog.js +12 -5
  52. app-ng-runtime/components/dialogs/default/fesm2015/index.js +11 -4
  53. app-ng-runtime/components/dialogs/default/fesm2015/index.js.map +1 -1
  54. app-ng-runtime/components/dialogs/default/index.metadata.json +1 -1
  55. app-ng-runtime/components/input/epoch/bundles/index.umd.js +27 -8
  56. app-ng-runtime/components/input/epoch/bundles/index.umd.js.map +1 -1
  57. app-ng-runtime/components/input/epoch/date-time/date-time-picker.component.d.ts +1 -0
  58. app-ng-runtime/components/input/epoch/esm2015/date-time/date-time-picker.component.js +31 -11
  59. app-ng-runtime/components/input/epoch/fesm2015/index.js +30 -10
  60. app-ng-runtime/components/input/epoch/fesm2015/index.js.map +1 -1
  61. app-ng-runtime/components/input/epoch/index.metadata.json +1 -1
  62. app-ng-runtime/mobile/components/page/default/bundles/index.umd.js +24 -6
  63. app-ng-runtime/mobile/components/page/default/bundles/index.umd.js.map +1 -1
  64. app-ng-runtime/mobile/components/page/default/esm2015/page.directive.js +20 -3
  65. app-ng-runtime/mobile/components/page/default/fesm2015/index.js +19 -2
  66. app-ng-runtime/mobile/components/page/default/fesm2015/index.js.map +1 -1
  67. app-ng-runtime/mobile/components/page/default/index.metadata.json +1 -1
  68. app-ng-runtime/mobile/components/page/default/page.directive.d.ts +4 -1
  69. app-ng-runtime/package.json +1 -1
  70. app-ng-runtime/variables/bundles/index.umd.js +10 -0
  71. app-ng-runtime/variables/bundles/index.umd.js.map +1 -1
  72. app-ng-runtime/variables/esm2015/service/variables.service.js +8 -1
  73. app-ng-runtime/variables/fesm2015/index.js +7 -1
  74. app-ng-runtime/variables/fesm2015/index.js.map +1 -1
  75. app-ng-runtime/variables/index.metadata.json +1 -1
  76. app-ng-runtime/variables/service/variables.service.d.ts +4 -0
  77. app-ng-runtime/components/basic/tree/esm2015/tree.directive.js +0 -310
  78. app-ng-runtime/components/basic/tree/tree.directive.d.ts +0 -35
@@ -1,8 +1,8 @@
1
1
  (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/common'), require('@wm/components/base'), require('@wm/core')) :
3
- typeof define === 'function' && define.amd ? define('@wm/components/basic/tree', ['exports', '@angular/core', '@angular/common', '@wm/components/base', '@wm/core'], factory) :
4
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.wm = global.wm || {}, global.wm.components = global.wm.components || {}, global.wm.components.basic = global.wm.components.basic || {}, global.wm.components.basic.tree = {}), global.ng.core, global.ng.common, global.wm.components.base, global.wm.core));
5
- })(this, (function (exports, core$1, common, base, core) { 'use strict';
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/common'), require('@wm/components/base')) :
3
+ typeof define === 'function' && define.amd ? define('@wm/components/basic/tree', ['exports', '@angular/core', '@angular/common', '@wm/components/base'], factory) :
4
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.wm = global.wm || {}, global.wm.components = global.wm.components || {}, global.wm.components.basic = global.wm.components.basic || {}, global.wm.components.basic.tree = {}), global.ng.core, global.ng.common, global.wm.components.base));
5
+ })(this, (function (exports, core, common, base) { 'use strict';
6
6
 
7
7
  /*! *****************************************************************************
8
8
  Copyright (c) Microsoft Corporation.
@@ -342,321 +342,337 @@
342
342
  ]));
343
343
  };
344
344
 
345
- var defaultTreeIconClass = 'plus-minus';
346
- var ICON_CLASSES = {
347
- 'folder': {
348
- 'expanded': 'wi-folder-open',
349
- 'collapsed': 'wi-folder'
350
- },
351
- 'circle-plus-minus': {
352
- 'expanded': 'wi-remove-circle-outline',
353
- 'collapsed': 'wi-add-circle-outline'
354
- },
355
- 'chevron': {
356
- 'expanded': 'wi-keyboard-arrow-down',
357
- 'collapsed': 'wi-keyboard-arrow-right'
358
- },
359
- 'menu': {
360
- 'expanded': 'wi-arrow-down',
361
- 'collapsed': 'wi-arrow-right'
362
- },
363
- 'triangle': {
364
- 'expanded': 'wi-arrow-drop-down-circle',
365
- 'collapsed': 'wi-play-circle-filled'
366
- },
367
- 'expand-collapse': {
368
- 'expanded': 'wi-expand-less',
369
- 'collapsed': 'wi-expand-more'
370
- },
371
- 'plus-minus': {
372
- 'expanded': 'wi-minus',
373
- 'collapsed': 'wi-plus'
374
- }
375
- };
376
345
  var WIDGET_INFO = { widgetType: 'wm-tree', hostClass: 'app-tree' };
377
- var TreeDirective = /** @class */ (function (_super) {
378
- __extends(TreeDirective, _super);
379
- function TreeDirective(inj, binddatavalue, bindnodelabel, bindnodeicon, bindnodechildren, bindnodeid) {
346
+ var defaultTreeIconClass = 'plus-minus';
347
+ var TreeComponent = /** @class */ (function (_super) {
348
+ __extends(TreeComponent, _super);
349
+ function TreeComponent(inj) {
380
350
  var _this = _super.call(this, inj, WIDGET_INFO) || this;
381
- _this.binddatavalue = binddatavalue;
382
- _this.bindnodelabel = bindnodelabel;
383
- _this.bindnodeicon = bindnodeicon;
384
- _this.bindnodechildren = bindnodechildren;
385
- _this.bindnodeid = bindnodeid;
351
+ _this.setting = {
352
+ data: {
353
+ simpleData: {
354
+ enable: true
355
+ },
356
+ },
357
+ view: {
358
+ dblClickExpand: false,
359
+ fontCss: {
360
+ 'font-awesome': true
361
+ },
362
+ switchIcon: {},
363
+ },
364
+ check: {},
365
+ callback: {}
366
+ };
386
367
  base.styler(_this.nativeElement, _this, base.APPLY_STYLES_TYPE.CONTAINER);
387
- _this.bindEvents();
388
368
  return _this;
389
369
  }
390
- TreeDirective.prototype.onPropertyChange = function (key, nv, ov) {
370
+ TreeComponent.prototype.onPropertyChange = function (key, nv, ov) {
391
371
  switch (key) {
392
372
  case 'dataset':
393
373
  this.nodes = this.getNodes(nv);
394
- this._selectNode = undefined;
374
+ if (this.level > 0) {
375
+ this.expandTree(this.level, this.nodes, 0);
376
+ }
395
377
  this.renderTree();
396
378
  break;
397
- case 'nodeicon':
379
+ case 'levels':
380
+ if (nv > 0) {
381
+ this.level = nv;
382
+ }
383
+ break;
384
+ case 'treeicons':
385
+ this.treeicon = nv;
386
+ break;
398
387
  case 'nodelabel':
399
- case 'nodechildren':
388
+ this.nodelabel = nv;
389
+ break;
390
+ case 'icon':
391
+ this.nodeicon = nv;
400
392
  case 'orderby':
401
393
  this.renderTree();
402
394
  break;
403
- case 'treeicons':
404
- this.changeTreeIcons(nv, ov);
405
- break;
406
- case 'datavalue':
407
- this.selectById(nv);
395
+ case 'class':
396
+ this.treeClass = nv;
408
397
  break;
409
398
  default:
410
399
  _super.prototype.onPropertyChange.call(this, key, nv, ov);
400
+ break;
411
401
  }
412
402
  };
413
- TreeDirective.prototype.constructNodes = function (nodes, parent, levels, deep, _evalDataValue) {
403
+ // expands the tree nodes if the property is selected.
404
+ TreeComponent.prototype.expandTree = function (level, node, childLevel) {
414
405
  var _this = this;
415
- var $ul = $('<ul></ul>');
416
- var _iconClses = ICON_CLASSES[this.treeicons || defaultTreeIconClass];
417
- var _expr = (this.binddatavalue || this.datavalue);
418
- var _iconCls, _cls;
419
- _cls = levels > 0 ? ' expanded ' : ' collapsed ';
420
- _iconCls = _cls + (levels > 0 ? _iconClses.expanded : _iconClses.collapsed);
421
- deep = deep || 0;
422
- parent.append($ul);
423
- nodes.forEach(function (node, idx) {
424
- var $li = $('<li></li>'), $iconNode = $('<i></i>'), nodeLabel = base.getEvaluatedData(node, { field: _this.nodelabel, bindExpression: _this.bindnodelabel }, _this.viewParent) || node.label, nodeIcon = base.getEvaluatedData(node, { field: _this.nodeicon, bindExpression: _this.bindnodeicon }, _this.viewParent) || node.icon, nodeChildren = base.getEvaluatedData(node, { field: _this.nodechildren, bindExpression: _this.bindnodechildren }, _this.viewParent) || node.children;
425
- var nodeIdValue = base.getEvaluatedData(node, { field: _this.nodeid, bindExpression: _this.bindnodeid }, _this.viewParent);
426
- if (nodeIdValue === undefined) {
427
- nodeIdValue = node.children;
428
- }
429
- var isNodeMatched = false, expandCollapseIcon;
430
- $li.data('nodedata', node)
431
- .append($iconNode)
432
- .append("<span class=\"title\">" + nodeLabel + "</span>")
433
- .appendTo($ul);
434
- // if datavalue(ie, expr) is provided select the tree node accordingly
435
- // if datavalue === 'FirstNode' -- select the FirstNode at level 0
436
- // if datavalue === 'LastNode' -- select the LastNode at level 0
437
- // if datavalue is a bind expression evaluate the expression for each node of the tree till the condition is satisfied.
438
- // if node identifier is present then verify the datavalue is bound expr or static value and compare with the node model
439
- if (_this.bindnodeid || _this.nodeid) {
440
- isNodeMatched = _this.binddatavalue ? nodeIdValue === _evalDataValue : nodeIdValue === _expr;
441
- if (nodeIdValue !== undefined) {
442
- $li.attr('id', nodeIdValue);
443
- }
444
- }
445
- else if (_this.binddatavalue) { // evaluate the expression only if it is bound (useExpression)
446
- isNodeMatched = !!core.$parseExpr(_expr)(_this, node);
447
- }
448
- // Perform LastNode check only at level 0.(ie, deep = 0);
449
- if (!_this._selectNode) {
450
- if ((_expr === 'FirstNode' && idx === 0)
451
- || (!deep && _expr === 'LastNode' && idx === nodes.length - 1)
452
- || isNodeMatched) {
453
- // save a reference of the node to be selected in `_selectNode`
454
- _this._selectNode = $li;
455
- _this.datavalue = nodeIdValue;
456
- }
457
- }
458
- if (nodeIcon) {
459
- $iconNode.addClass(nodeIcon);
460
- }
461
- if (nodeChildren && nodeChildren.length) { // parent node
462
- $li.addClass("parent-node " + _cls);
463
- expandCollapseIcon = $("<i class=\"wi " + _iconCls + "\"></i>");
464
- if (nodeIcon) {
465
- $iconNode.addClass(nodeIcon);
466
- }
467
- $li.prepend(expandCollapseIcon);
468
- _this.constructNodes(nodeChildren, $li, levels - 1, deep + 1, _evalDataValue);
406
+ node.map(function (childNode) {
407
+ if ("children" in childNode && !("open" in childNode) && childLevel < level) {
408
+ childNode["open"] = true;
409
+ _this.expandTree(level, childNode.children, childLevel + 1);
469
410
  }
470
411
  else {
471
- if (!nodeIcon) {
472
- $iconNode.addClass('leaf-node');
473
- }
474
- $li.addClass('leaf-node');
412
+ childLevel = 0;
413
+ return;
475
414
  }
476
415
  });
477
416
  };
478
- TreeDirective.prototype.getNodesFromString = function (value) {
417
+ // sets the template for the tree based on the property selected.
418
+ TreeComponent.prototype.setTreeTemplate = function (value) {
419
+ if (value === 'Classic') {
420
+ this.setting.check["enable"] = false;
421
+ }
422
+ else if (value === 'Checkbox') {
423
+ this.setting.check["enable"] = true;
424
+ this.setting.check["chkStyle"] = 'checkbox';
425
+ }
426
+ else if (value === 'Radio') {
427
+ this.setting.check["enable"] = true;
428
+ this.setting.check["chkStyle"] = 'radio';
429
+ this.setting.check["radioType"] = "all";
430
+ }
431
+ };
432
+ // extracts nodes from string format
433
+ TreeComponent.prototype.getNodesFromString = function (value) {
479
434
  return value.split(',').map(function (item) {
480
435
  return {
481
- 'label': item && item.trim()
436
+ 'name': item && item.trim()
482
437
  };
483
438
  });
484
439
  };
485
- TreeDirective.prototype.getNodes = function (newVal) {
440
+ // gets the nodes and orders the nodes if required
441
+ TreeComponent.prototype.getNodes = function (newVal) {
486
442
  var nodes;
487
- if (_.isString(newVal) && !_.isEmpty(newVal)) {
443
+ if (_.isArray(newVal)) {
444
+ nodes = base.getOrderedDataset(newVal, this.orderby);
445
+ }
446
+ else if (_.isObject(newVal)) {
447
+ nodes = [newVal];
448
+ }
449
+ else if (_.isString(newVal) && !_.isEmpty(newVal)) {
488
450
  newVal = newVal.trim();
489
451
  if (newVal) {
490
452
  nodes = this.getNodesFromString(newVal);
491
453
  }
492
454
  }
493
- else if (_.isArray(newVal)) {
494
- newVal = base.getOrderedDataset(newVal, this.orderby);
495
- nodes = newVal;
496
- }
497
- else if (_.isObject(newVal)) {
498
- nodes = [newVal];
499
- }
500
455
  return nodes;
501
456
  };
502
- TreeDirective.prototype.changeTreeIcons = function (nv, ov) {
503
- var $el = $(this.nativeElement);
504
- nv = nv || defaultTreeIconClass;
505
- ov = ov || defaultTreeIconClass;
506
- $el.find('i.expanded').removeClass(ICON_CLASSES[ov].expanded).addClass(ICON_CLASSES[nv].expanded);
507
- $el.find('i.collapsed').removeClass(ICON_CLASSES[ov].collapsed).addClass(ICON_CLASSES[nv].collapsed);
457
+ // adds class to the nodes inorder to add icons to respective node.
458
+ TreeComponent.prototype.setNodeclasses = function (treeId, treeNode) {
459
+ return treeNode.icon ? { add: ["" + treeNode.icon] } : '';
508
460
  };
509
- TreeDirective.prototype.toggleExpandCollapseNode = function ($event, $i, $li) {
510
- var treeIcons = ICON_CLASSES[this.treeicons || defaultTreeIconClass];
511
- var $liPath = this.findSelectedNodeParent($li);
512
- var path = '';
513
- // construct the path of the node
514
- $liPath
515
- .each(function (i, el) {
516
- var current = $(el).children('.title').text();
517
- path = "/" + (current + path);
518
- });
519
- var eventParams = {
520
- '$event': $event,
521
- "$item": $li.data('nodedata'),
522
- "$path": path
523
- };
524
- if ($i.hasClass('collapsed')) {
525
- $i.removeClass("collapsed " + treeIcons.collapsed).addClass("expanded " + treeIcons.expanded);
526
- $li.removeClass('collapsed').addClass('expanded');
527
- this.invokeEventCallback('expand', eventParams);
461
+ ;
462
+ // Sets the node label with any icon if bound to
463
+ TreeComponent.prototype.setNodeData = function (nodes, depth, level, parentNode, type) {
464
+ var _this = this;
465
+ if (depth === 0) {
466
+ nodes.map(function (node) {
467
+ if (node.children) {
468
+ _this.setNodeData(node.children, depth, level, parentNode, type);
469
+ }
470
+ if (node.icon && _this.nodelabel == 'icon') {
471
+ node[type] = node.icon;
472
+ }
473
+ else if (node.name && _this.nodelabel == 'name') {
474
+ node[type] = node.name;
475
+ }
476
+ else {
477
+ return;
478
+ }
479
+ });
528
480
  }
529
- else if ($i.hasClass('expanded')) {
530
- $i.removeClass("expanded " + treeIcons.expanded).addClass("collapsed " + treeIcons.collapsed);
531
- $li.removeClass('expanded').addClass('collapsed');
532
- this.invokeEventCallback('collapse', eventParams);
481
+ else {
482
+ nodes.map(function (node) {
483
+ if (node.children && level > 1) {
484
+ if (depth === level) {
485
+ parentNode = node;
486
+ }
487
+ _this.setNodeData(node.children, depth, level - 1, parentNode, type);
488
+ }
489
+ if (level === 1 && (type === "name" ? _this.nodelabel.includes("label") || _this.nodelabel.includes("name") : _this.nodeicon.includes("label") || _this.nodeicon.includes("name"))) {
490
+ parentNode[type] = node.name || node.label;
491
+ return;
492
+ }
493
+ else if (level === 1 && (node.icon !== undefined) && (type === "name" ? _this.nodelabel.includes("icon") : _this.nodeicon.includes("icon"))) {
494
+ parentNode[type] = node.icon;
495
+ return;
496
+ }
497
+ else {
498
+ return;
499
+ }
500
+ });
533
501
  }
534
502
  };
535
- TreeDirective.prototype.renderTree = function (forceRender) {
536
- var _this = this;
537
- var docFrag, $li, $liPath, data, path = '';
538
- var levels = +this.nativeElement.getAttribute('levels') || 0, $el = $(this.nativeElement);
539
- $el.empty();
540
- if (forceRender) {
541
- this._selectNode = undefined;
503
+ // adds tree icons to the nodes on load of the tree
504
+ TreeComponent.prototype.changeTreeIcons = function (nv) {
505
+ var eleClose = $('ul[name="' + this.name + '"] li span.button.switch');
506
+ $(eleClose).map(function (idx, ele) {
507
+ $(ele).addClass(nv);
508
+ $(ele).on("click", function (e) {
509
+ setTimeout(function () {
510
+ $(ele).addClass(nv);
511
+ }, 0);
512
+ });
513
+ });
514
+ };
515
+ TreeComponent.prototype.getPath = function (treeNode, path) {
516
+ if (treeNode.getParentNode() === null) {
517
+ path = "/" + treeNode.name + path;
542
518
  }
543
- if (this.nodes && this.nodes.length) {
544
- docFrag = document.createDocumentFragment();
545
- this.constructNodes(this.nodes, $(docFrag), levels, 0, this.datavalue);
546
- $el.append(docFrag);
519
+ else {
520
+ path = this.getPath(treeNode.getParentNode(), path) + "/" + treeNode.name;
547
521
  }
548
- if (this._selectNode) {
549
- $li = this._selectNode;
550
- $li.addClass('selected');
551
- data = $li.data('nodedata');
552
- $liPath = this.findSelectedNodeParent($li);
553
- if (!$liPath.length) {
554
- $liPath = $li;
522
+ return path;
523
+ };
524
+ // binds the click event to all nodes to open the child nodes
525
+ TreeComponent.prototype.onClick = function (event, treeId, treeNode, clickFlag) {
526
+ var treeObj = $.fn.zTree.getZTreeObj("" + this.name);
527
+ if (this.nodeclick === 'expand') {
528
+ treeObj.expandNode(treeNode, treeNode.open ? false : true, false, true);
529
+ this.changeTreeIcons(this.treeicon || defaultTreeIconClass);
530
+ var path = this.getPath(treeNode, "");
531
+ var eventParams = {
532
+ '$event': event,
533
+ "$item": treeNode,
534
+ "$path": path
535
+ };
536
+ this.invokeEventCallback('select', eventParams);
537
+ if (treeNode.open) {
538
+ // this.invokeEventCallback('expand', eventParams);
539
+ }
540
+ else {
541
+ this.invokeEventCallback('collapse', eventParams);
555
542
  }
556
- $liPath
557
- .each(function (i, el) {
558
- var $current = $(el), $i = $current.children('i.collapsed'), $title = $current.children('.title');
559
- _this.toggleExpandCollapseNode(undefined, $i, $current);
560
- path = "/" + ($title.text() + path);
561
- });
562
- this.selecteditem = core.getClonedObject(data) || {};
563
- this.selecteditem.path = path;
564
- this.invokeEventCallback('select', { $event: undefined, $item: data, $path: path });
565
- core.$appDigest();
566
543
  }
567
544
  };
568
- TreeDirective.prototype.selectNode = function (evt, value) {
545
+ // Adds tree icon classes to child nodes when expanded
546
+ TreeComponent.prototype.onExpand = function (event, treeId, treeNode) {
547
+ var self = this;
548
+ treeNode.children ? treeNode.children.map(function (el) {
549
+ if (el.isParent) {
550
+ var ele_1 = $("#" + el.tId + "_switch");
551
+ $(ele_1).addClass(self.treeicon || defaultTreeIconClass);
552
+ $(ele_1).on("click", function (e) {
553
+ setTimeout(function () {
554
+ $(ele_1).addClass(self.treeicon || defaultTreeIconClass);
555
+ }, 0);
556
+ });
557
+ }
558
+ }) : '';
559
+ };
560
+ // function to support backward compatibility of objects
561
+ TreeComponent.prototype.modifyObjects = function (array) {
569
562
  var _this = this;
570
- var target = evt && $(evt.target), $el = $(this.nativeElement), $li = _.isObject(value) ? value : $el.find("li[id=\"" + value + "\"]").first();
571
- var data, path = '', $liPath, nodeAction;
572
- $el.find('.selected').removeClass('selected');
573
- if (!$li.length) {
574
- return;
575
- }
576
- $li.addClass('selected');
577
- data = $li.data('nodedata');
578
- nodeAction = data[this.nodeaction || 'action'];
579
- // if the selectNode is initiated by click event then use the nativeElement target from event
580
- $liPath = target ? target.parents('.app-tree li') : this.findSelectedNodeParent($li);
581
- // construct the path of the node
582
- $liPath
583
- .each(function (i, el) {
584
- var current = $(el).children('.title').text();
585
- path = "/" + (current + path);
586
- });
587
- // expand the current node till the viewParent level which is collapsed
588
- $li.parentsUntil($el, 'li.parent-node.collapsed')
589
- .each(function (index, el) {
590
- var $current = $(el), $i = $current.children('i.collapsed');
591
- _this.toggleExpandCollapseNode(undefined, $i, $current);
563
+ array.forEach(function (obj) {
564
+ if (obj.label !== undefined) {
565
+ obj.name = obj.label;
566
+ delete obj.label;
567
+ }
568
+ if (obj.children !== undefined) {
569
+ _this.modifyObjects(obj.children);
570
+ }
592
571
  });
593
- this.selecteditem = core.getClonedObject(data) || {};
594
- this.selecteditem.path = path;
595
- if (target) {
596
- if (this.nodeid || this.bindnodeid) {
597
- this.datavalue = base.getEvaluatedData(data, { field: this.nodeid, bindExpression: this.bindnodeid }, this.viewParent);
572
+ return array;
573
+ };
574
+ // sets the node children property to parent nodes
575
+ TreeComponent.prototype.setNodeChildren = function (nodes, depth, level, parentNode) {
576
+ if (depth <= 0) {
577
+ return nodes;
578
+ }
579
+ for (var i = 0; i < nodes.length; i++) {
580
+ var node = nodes[i];
581
+ if (depth === level) {
582
+ parentNode = nodes[i];
598
583
  }
599
- else {
600
- this.datavalue = core.getClonedObject(data) || {};
584
+ if (node.children && node.children.length > 0) {
585
+ if (level === 1) {
586
+ parentNode.children = node.children.map(function (child) { return ({ name: child.name, children: child === null || child === void 0 ? void 0 : child.children }); });
587
+ return;
588
+ }
589
+ else {
590
+ this.setNodeChildren(node.children, depth, level - 1, parentNode);
591
+ }
601
592
  }
602
593
  }
603
- else {
604
- this.datavalue = value;
594
+ return nodes;
595
+ };
596
+ TreeComponent.prototype.countDepth = function (str) {
597
+ var e_1, _a;
598
+ var regex = /\[.*?\]/g;
599
+ var matches = str.match(regex);
600
+ var count = 1;
601
+ if (matches === null)
602
+ return count;
603
+ try {
604
+ for (var matches_1 = __values(matches), matches_1_1 = matches_1.next(); !matches_1_1.done; matches_1_1 = matches_1.next()) {
605
+ var match = matches_1_1.value;
606
+ count++;
607
+ }
605
608
  }
606
- //[Todo-CSP]: this data will be dynamic, can not generate function upfront
607
- if (nodeAction) {
608
- core.$parseEvent(nodeAction)(this);
609
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
610
+ finally {
611
+ try {
612
+ if (matches_1_1 && !matches_1_1.done && (_a = matches_1.return)) _a.call(matches_1);
613
+ }
614
+ finally { if (e_1) throw e_1.error; }
609
615
  }
610
- this.invokeEventCallback('select', { $event: evt, $item: data, $path: path });
611
- core.$appDigest();
616
+ return count;
612
617
  };
613
- // click event is added on the host nativeElement
614
- TreeDirective.prototype.bindEvents = function () {
615
- var _this = this;
616
- $(this.nativeElement).on('click', function (evt) {
617
- var target = $(evt.target), li = target.closest('li'), $i = target.is('i') ? target : target.siblings('i.collapsed,i.expanded');
618
- evt.stopPropagation();
619
- if (target.is('span.title')) { // select the node only if it is nodelabel
620
- _this.selecteditem = {};
621
- _this.selectNode(evt, li);
618
+ // Renders the tree on to the dom
619
+ TreeComponent.prototype.renderTree = function () {
620
+ if (this.nodes) {
621
+ this.nativeElement.setAttribute('id', this.name);
622
+ this.nodes = this.modifyObjects(this.nodes);
623
+ this.setTreeTemplate(this.treeClass);
624
+ if (this.nodelabel) {
625
+ var depth = 0;
626
+ if (this.nodelabel.includes("children")) {
627
+ depth = this.countDepth(this.nodelabel);
628
+ }
629
+ this.setNodeData(this.nodes, depth, depth, null, "name");
622
630
  }
623
- if (target.is('i') || (target.is('span.title') && _this.nodeclick === 'expand')) {
624
- _this.toggleExpandCollapseNode(evt, $i, li);
631
+ if (this.nodeicon) {
632
+ var depth = 0;
633
+ if (this.nodeicon.includes("children")) {
634
+ depth = this.countDepth(this.nodeicon);
635
+ }
636
+ this.setNodeData(this.nodes, depth, depth, null, "icon");
625
637
  }
626
- });
627
- };
628
- TreeDirective.prototype.findSelectedNodeParent = function ($li) {
629
- return $li.find('> span.title').parents('.app-tree li');
630
- };
631
- TreeDirective.prototype.selectById = function (value) {
632
- this.selectNode(undefined, value);
638
+ if (this.nodechildren) {
639
+ var depth = this.countDepth(this.nodechildren);
640
+ if (depth > 1) {
641
+ this.nodes = this.setNodeChildren(this.nodes, depth, depth, null);
642
+ }
643
+ }
644
+ }
645
+ this.setting.view['nodeClasses'] = this.setNodeclasses;
646
+ this.setting.callback["onClick"] = this.onClick.bind(this);
647
+ this.setting.callback["onExpand"] = this.onExpand.bind(this);
648
+ var zTree = $.fn.zTree.init($('ul[name="' + this.name + '"]'), this.setting, this.nodes);
649
+ $.fn.zTreeKeyboardNavigation(zTree, $('ul[name="' + this.name + '"]'), null, this.treeicon || defaultTreeIconClass);
633
650
  };
634
- TreeDirective.prototype.deselectById = function (value) {
635
- this.selecteditem = {};
636
- this.selectById();
651
+ TreeComponent.prototype.ngAfterViewInit = function () {
652
+ var _this = this;
653
+ setTimeout(function () {
654
+ _this.changeTreeIcons(_this.treeicon || defaultTreeIconClass);
655
+ }, 200);
637
656
  };
638
- return TreeDirective;
657
+ return TreeComponent;
639
658
  }(base.StylableComponent));
640
- TreeDirective.initializeProps = registerProps();
641
- TreeDirective.decorators = [
642
- { type: core$1.Directive, args: [{
643
- selector: 'div[wmTree]',
659
+ TreeComponent.initializeProps = registerProps();
660
+ TreeComponent.decorators = [
661
+ { type: core.Component, args: [{
662
+ selector: 'ul[wmTree]',
663
+ template: "<ul #wmTree class=\"ztree\" id=\"ztree\"></ul> ",
644
664
  providers: [
645
- base.provideAsWidgetRef(TreeDirective)
646
- ]
665
+ base.provideAsWidgetRef(TreeComponent)
666
+ ],
667
+ encapsulation: core.ViewEncapsulation.None
647
668
  },] }
648
669
  ];
649
- TreeDirective.ctorParameters = function () { return [
650
- { type: core$1.Injector },
651
- { type: undefined, decorators: [{ type: core$1.Attribute, args: ['datavalue.bind',] }] },
652
- { type: undefined, decorators: [{ type: core$1.Attribute, args: ['nodelabel.bind',] }] },
653
- { type: undefined, decorators: [{ type: core$1.Attribute, args: ['nodeicon.bind',] }] },
654
- { type: undefined, decorators: [{ type: core$1.Attribute, args: ['nodechildren.bind',] }] },
655
- { type: undefined, decorators: [{ type: core$1.Attribute, args: ['nodeid.bind',] }] }
670
+ TreeComponent.ctorParameters = function () { return [
671
+ { type: core.Injector }
656
672
  ]; };
657
673
 
658
674
  var components = [
659
- TreeDirective
675
+ TreeComponent
660
676
  ];
661
677
  var TreeModule = /** @class */ (function () {
662
678
  function TreeModule() {
@@ -664,7 +680,7 @@
664
680
  return TreeModule;
665
681
  }());
666
682
  TreeModule.decorators = [
667
- { type: core$1.NgModule, args: [{
683
+ { type: core.NgModule, args: [{
668
684
  imports: [
669
685
  common.CommonModule,
670
686
  base.WmComponentsModule
@@ -679,7 +695,7 @@
679
695
  * Generated bundle index. Do not edit.
680
696
  */
681
697
 
682
- exports.TreeDirective = TreeDirective;
698
+ exports.TreeComponent = TreeComponent;
683
699
  exports.TreeModule = TreeModule;
684
700
  exports["ɵa"] = registerProps;
685
701