@abp/ng.components 5.0.1 → 5.0.2

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 (57) hide show
  1. package/README.md +3 -3
  2. package/abp-ng.components.d.ts +5 -5
  3. package/bundles/abp-ng.components-chart.js.umd.js +141 -141
  4. package/bundles/abp-ng.components-chart.js.umd.js.map +1 -1
  5. package/bundles/abp-ng.components-page.umd.js +542 -542
  6. package/bundles/abp-ng.components-page.umd.js.map +1 -1
  7. package/bundles/abp-ng.components-tree.umd.js +557 -557
  8. package/bundles/abp-ng.components-tree.umd.js.map +1 -1
  9. package/bundles/abp-ng.components.umd.js +2 -2
  10. package/chart.js/abp-ng.components-chart.js.d.ts +5 -5
  11. package/chart.js/chart.component.d.ts +30 -30
  12. package/chart.js/chart.module.d.ts +8 -8
  13. package/chart.js/public-api.d.ts +3 -3
  14. package/chart.js/widget-utils.d.ts +1 -1
  15. package/esm2015/abp-ng.components.js +4 -4
  16. package/esm2015/chart.js/abp-ng.components-chart.js.js +4 -4
  17. package/esm2015/chart.js/chart.component.js +141 -141
  18. package/esm2015/chart.js/chart.module.js +19 -19
  19. package/esm2015/chart.js/public-api.js +4 -4
  20. package/esm2015/chart.js/widget-utils.js +11 -11
  21. package/esm2015/page/abp-ng.components-page.js +4 -4
  22. package/esm2015/page/page-part.directive.js +79 -79
  23. package/esm2015/page/page-parts.component.js +45 -45
  24. package/esm2015/page/page.component.js +61 -61
  25. package/esm2015/page/page.module.js +38 -38
  26. package/esm2015/page/public-api.js +5 -5
  27. package/esm2015/public-api.js +5 -5
  28. package/esm2015/tree/abp-ng.components-tree.js +4 -4
  29. package/esm2015/tree/lib/components/tree.component.js +101 -101
  30. package/esm2015/tree/lib/templates/expanded-icon-template.directive.js +16 -16
  31. package/esm2015/tree/lib/templates/tree-node-template.directive.js +16 -16
  32. package/esm2015/tree/lib/tree.module.js +25 -25
  33. package/esm2015/tree/lib/utils/nz-tree-adapter.js +92 -92
  34. package/esm2015/tree/public-api.js +6 -6
  35. package/fesm2015/abp-ng.components-chart.js.js +161 -161
  36. package/fesm2015/abp-ng.components-chart.js.js.map +1 -1
  37. package/fesm2015/abp-ng.components-page.js +196 -196
  38. package/fesm2015/abp-ng.components-page.js.map +1 -1
  39. package/fesm2015/abp-ng.components-tree.js +219 -219
  40. package/fesm2015/abp-ng.components-tree.js.map +1 -1
  41. package/fesm2015/abp-ng.components.js +4 -4
  42. package/fesm2015/abp-ng.components.js.map +1 -1
  43. package/package.json +3 -3
  44. package/page/abp-ng.components-page.d.ts +5 -5
  45. package/page/page-part.directive.d.ts +31 -31
  46. package/page/page-parts.component.d.ts +18 -18
  47. package/page/page.component.d.ts +21 -21
  48. package/page/page.module.d.ts +13 -13
  49. package/page/public-api.d.ts +4 -4
  50. package/public-api.d.ts +1 -1
  51. package/tree/abp-ng.components-tree.d.ts +5 -5
  52. package/tree/lib/components/tree.component.d.ts +39 -39
  53. package/tree/lib/templates/expanded-icon-template.directive.d.ts +8 -8
  54. package/tree/lib/templates/tree-node-template.directive.d.ts +8 -8
  55. package/tree/lib/tree.module.d.ts +13 -13
  56. package/tree/lib/utils/nz-tree-adapter.d.ts +39 -39
  57. package/tree/public-api.d.ts +5 -5
@@ -1,92 +1,92 @@
1
- export class BaseNode {
2
- constructor(id, parentId) {
3
- this.id = id;
4
- this.parentId = parentId;
5
- }
6
- }
7
- class TreeNode extends BaseNode {
8
- constructor(entity, nameResolver = ent => ent.displayName || ent.name) {
9
- super(entity.id, entity.parentId);
10
- this.entity = entity;
11
- this.nameResolver = nameResolver;
12
- this.icon = null;
13
- this.children = [];
14
- this.isLeaf = true;
15
- this.checked = false;
16
- this.selected = false;
17
- this.expanded = false;
18
- this.selectable = true;
19
- this.disabled = false;
20
- this.disableCheckbox = false;
21
- this.key = entity.id;
22
- this.title = nameResolver(entity);
23
- }
24
- }
25
- export class TreeAdapter {
26
- constructor(list = []) {
27
- this.list = list;
28
- this.tree = createTreeFromList(this.list);
29
- }
30
- getList() {
31
- return this.list;
32
- }
33
- getTree() {
34
- return this.tree;
35
- }
36
- handleDrop({ key, parentNode }) {
37
- const index = this.list.findIndex(({ id }) => id === key);
38
- this.list[index].parentId = parentNode ? parentNode.key : null;
39
- this.tree = createTreeFromList(this.list);
40
- }
41
- handleRemove({ key }) {
42
- this.updateTreeFromList(this.list.filter(item => item.id !== key));
43
- }
44
- handleUpdate({ key, children }) {
45
- /**
46
- * When we need to update a node with new children, first we need to remove any descendant nodes.
47
- * If we remove immediate children and create a new tree, any other descendant nodes will be removed
48
- * and we won't need to recursively remove sub children.
49
- * Then, you simply add back the new children and create a new tree.
50
- */
51
- const listWithDescendantNodesRemoved = this.updateTreeFromList(this.list.filter(item => item.parentId !== key));
52
- this.updateTreeFromList(listWithDescendantNodesRemoved.concat(children));
53
- }
54
- updateTreeFromList(list) {
55
- this.tree = createTreeFromList(list);
56
- this.list = createListFromTree(this.tree);
57
- return this.list;
58
- }
59
- }
60
- // UTILITY FUNCTIONS
61
- function createTreeFromList(list) {
62
- const map = createMapFromList(list);
63
- const tree = [];
64
- list.forEach(row => {
65
- const parentId = row.parentId;
66
- const node = map.get(row.id);
67
- if (parentId) {
68
- const parent = map.get(parentId);
69
- if (!parent)
70
- return;
71
- parent.children.push(node);
72
- parent.isLeaf = false;
73
- }
74
- else {
75
- tree.push(node);
76
- }
77
- });
78
- return tree;
79
- }
80
- function createListFromTree(tree, list = []) {
81
- tree.forEach(node => {
82
- list.push(Object.assign(Object.assign({}, node.entity), { parentId: node.parentId }));
83
- if (node.children)
84
- createListFromTree(node.children, list);
85
- });
86
- return list;
87
- }
88
- function createMapFromList(list, map = new Map()) {
89
- list.forEach(row => map.set(row.id, new TreeNode(row)));
90
- return map;
91
- }
92
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnotdHJlZS1hZGFwdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy90cmVlL3NyYy9saWIvdXRpbHMvbnotdHJlZS1hZGFwdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBZ0IsUUFBUTtJQUk1QixZQUFtQixFQUFVLEVBQVMsUUFBdUI7UUFBMUMsT0FBRSxHQUFGLEVBQUUsQ0FBUTtRQUFTLGFBQVEsR0FBUixRQUFRLENBQWU7SUFBRyxDQUFDO0NBQ2xFO0FBRUQsTUFBTSxRQUE2QixTQUFRLFFBQVE7SUFjakQsWUFBbUIsTUFBUyxFQUFVLGVBQWUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsV0FBVyxJQUFJLEdBQUcsQ0FBQyxJQUFJO1FBQ3JGLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQURqQixXQUFNLEdBQU4sTUFBTSxDQUFHO1FBQVUsaUJBQVksR0FBWixZQUFZLENBQXFDO1FBWHZGLFNBQUksR0FBa0IsSUFBSSxDQUFDO1FBQzNCLGFBQVEsR0FBa0IsRUFBRSxDQUFDO1FBQzdCLFdBQU0sR0FBRyxJQUFJLENBQUM7UUFDZCxZQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ2hCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixlQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsb0JBQWUsR0FBRyxLQUFLLENBQUM7UUFLdEIsSUFBSSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxLQUFLLEdBQUcsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3BDLENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBTyxXQUFXO0lBR3RCLFlBQW9CLE9BQVksRUFB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LENBQUMsRUFBRTtRQUNsQixJQUFJLENBQUMsSUFBSSxpQ0FBTSxJQUFJLENBQUMsTUFBTSxLQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxJQUFHLENBQUM7UUFDdkQsSUFBSSxJQUFJLENBQUMsUUFBUTtZQUFFLGtCQUFrQixDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDN0QsQ0FBQyxDQUFDLENBQUM7SUFFSCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUM7QUFFRCxTQUFTLGlCQUFpQixDQUN4QixJQUFTLEVBQ1QsTUFBTSxJQUFJLEdBQUcsRUFBdUI7SUFFcEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxJQUFJLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFeEQsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VOb2RlIHtcclxuICBuYW1lPzogc3RyaW5nO1xyXG4gIGRpc3BsYXlOYW1lPzogc3RyaW5nO1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgaWQ6IHN0cmluZywgcHVibGljIHBhcmVudElkOiBzdHJpbmcgfCBudWxsKSB7fVxyXG59XHJcblxyXG5jbGFzcyBUcmVlTm9kZTxUIGV4dGVuZHMgQmFzZU5vZGU+IGV4dGVuZHMgQmFzZU5vZGUge1xyXG4gIHRpdGxlOiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAga2V5OiBzdHJpbmc7XHJcbiAgaWNvbjogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcbiAgY2hpbGRyZW46IFRyZWVOb2RlPFQ+W10gPSBbXTtcclxuICBpc0xlYWYgPSB0cnVlO1xyXG4gIGNoZWNrZWQgPSBmYWxzZTtcclxuICBzZWxlY3RlZCA9IGZhbHNlO1xyXG4gIGV4cGFuZGVkID0gZmFsc2U7XHJcbiAgc2VsZWN0YWJsZSA9IHRydWU7XHJcbiAgZGlzYWJsZWQgPSBmYWxzZTtcclxuICBkaXNhYmxlQ2hlY2tib3ggPSBmYWxzZTtcclxuICBwYXJlbnROb2RlPzogVHJlZU5vZGU8VD4gfCBudWxsO1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZW50aXR5OiBULCBwcml2YXRlIG5hbWVSZXNvbHZlciA9IGVudCA9PiBlbnQuZGlzcGxheU5hbWUgfHwgZW50Lm5hbWUpIHtcclxuICAgIHN1cGVyKGVudGl0eS5pZCwgZW50aXR5LnBhcmVudElkKTtcclxuICAgIHRoaXMua2V5ID0gZW50aXR5LmlkO1xyXG4gICAgdGhpcy50aXRsZSA9IG5hbWVSZXNvbHZlcihlbnRpdHkpO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFRyZWVBZGFwdGVyPFQgZXh0ZW5kcyBCYXNlTm9kZSA9IEJhc2VOb2RlPiB7XHJcbiAgcHJpdmF0ZSB0cmVlOiBUcmVlTm9kZTxUPltdO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGxpc3Q6IFRbXSA9IFtdKSB7XHJcbiAgICB0aGlzLnRyZWUgPSBjcmVhdGVUcmVlRnJvbUxpc3QodGhpcy5saXN0KTtcclxuICB9XHJcblxyXG4gIGdldExpc3QoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5saXN0O1xyXG4gIH1cclxuXHJcbiAgZ2V0VHJlZSgpIHtcclxuICAgIHJldHVybiB0aGlzLnRyZWU7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVEcm9wKHsga2V5LCBwYXJlbnROb2RlIH06IFRyZWVOb2RlPFQ+KSB7XHJcbiAgICBjb25zdCBpbmRleCA9IHRoaXMubGlzdC5maW5kSW5kZXgoKHsgaWQgfSkgPT4gaWQgPT09IGtleSk7XHJcbiAgICB0aGlzLmxpc3RbaW5kZXhdLnBhcmVudElkID0gcGFyZW50Tm9kZSA/IHBhcmVudE5vZGUua2V5IDogbnVsbDtcclxuICAgIHRoaXMudHJlZSA9IGNyZWF0ZVRyZWVGcm9tTGlzdCh0aGlzLmxpc3QpO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlUmVtb3ZlKHsga2V5IH06IFRyZWVOb2RlPFQ+KSB7XHJcbiAgICB0aGlzLnVwZGF0ZVRyZWVGcm9tTGlzdCh0aGlzLmxpc3QuZmlsdGVyKGl0ZW0gPT4gaXRlbS5pZCAhPT0ga2V5KSk7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVVcGRhdGUoeyBrZXksIGNoaWxkcmVuIH06IHsga2V5OiBzdHJpbmc7IGNoaWxkcmVuOiBUW10gfSkge1xyXG4gICAgLyoqXHJcbiAgICAgKiBXaGVuIHdlIG5lZWQgdG8gdXBkYXRlIGEgbm9kZSB3aXRoIG5ldyBjaGlsZHJlbiwgZmlyc3Qgd2UgbmVlZCB0byByZW1vdmUgYW55IGRlc2NlbmRhbnQgbm9kZXMuXHJcbiAgICAgKiBJZiB3ZSByZW1vdmUgaW1tZWRpYXRlIGNoaWxkcmVuIGFuZCBjcmVhdGUgYSBuZXcgdHJlZSwgYW55IG90aGVyIGRlc2NlbmRhbnQgbm9kZXMgd2lsbCBiZSByZW1vdmVkXHJcbiAgICAgKiBhbmQgd2Ugd29uJ3QgbmVlZCB0byByZWN1cnNpdmVseSByZW1vdmUgc3ViIGNoaWxkcmVuLlxyXG4gICAgICogVGhlbiwgeW91IHNpbXBseSBhZGQgYmFjayB0aGUgbmV3IGNoaWxkcmVuIGFuZCBjcmVhdGUgYSBuZXcgdHJlZS5cclxuICAgICAqL1xyXG4gICAgY29uc3QgbGlzdFdpdGhEZXNjZW5kYW50Tm9kZXNSZW1vdmVkID0gdGhpcy51cGRhdGVUcmVlRnJvbUxpc3QoXHJcbiAgICAgIHRoaXMubGlzdC5maWx0ZXIoaXRlbSA9PiBpdGVtLnBhcmVudElkICE9PSBrZXkpLFxyXG4gICAgKTtcclxuICAgIHRoaXMudXBkYXRlVHJlZUZyb21MaXN0KGxpc3RXaXRoRGVzY2VuZGFudE5vZGVzUmVtb3ZlZC5jb25jYXQoY2hpbGRyZW4pKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZVRyZWVGcm9tTGlzdChsaXN0OiBUW10pIHtcclxuICAgIHRoaXMudHJlZSA9IGNyZWF0ZVRyZWVGcm9tTGlzdChsaXN0KTtcclxuICAgIHRoaXMubGlzdCA9IGNyZWF0ZUxpc3RGcm9tVHJlZSh0aGlzLnRyZWUpO1xyXG4gICAgcmV0dXJuIHRoaXMubGlzdDtcclxuICB9XHJcbn1cclxuXHJcbi8vIFVUSUxJVFkgRlVOQ1RJT05TXHJcblxyXG5mdW5jdGlvbiBjcmVhdGVUcmVlRnJvbUxpc3Q8VCBleHRlbmRzIEJhc2VOb2RlPihsaXN0OiBUW10pOiBUcmVlTm9kZTxUPltdIHtcclxuICBjb25zdCBtYXAgPSBjcmVhdGVNYXBGcm9tTGlzdChsaXN0KTtcclxuICBjb25zdCB0cmVlOiBUcmVlTm9kZTxUPltdID0gW107XHJcblxyXG4gIGxpc3QuZm9yRWFjaChyb3cgPT4ge1xyXG4gICAgY29uc3QgcGFyZW50SWQgPSByb3cucGFyZW50SWQ7XHJcbiAgICBjb25zdCBub2RlID0gbWFwLmdldChyb3cuaWQpO1xyXG4gICAgaWYgKHBhcmVudElkKSB7XHJcbiAgICAgIGNvbnN0IHBhcmVudCA9IG1hcC5nZXQocGFyZW50SWQpO1xyXG4gICAgICBpZiAoIXBhcmVudCkgcmV0dXJuO1xyXG4gICAgICBwYXJlbnQuY2hpbGRyZW4ucHVzaChub2RlKTtcclxuICAgICAgcGFyZW50LmlzTGVhZiA9IGZhbHNlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdHJlZS5wdXNoKG5vZGUpO1xyXG4gICAgfVxyXG4gIH0pO1xyXG5cclxuICByZXR1cm4gdHJlZTtcclxufVxyXG5cclxuZnVuY3Rpb24gY3JlYXRlTGlzdEZyb21UcmVlPFQgZXh0ZW5kcyBCYXNlTm9kZT4odHJlZTogVHJlZU5vZGU8VD5bXSwgbGlzdDogVFtdID0gW10pOiBUW10ge1xyXG4gIHRyZWUuZm9yRWFjaChub2RlID0+IHtcclxuICAgIGxpc3QucHVzaCh7IC4uLm5vZGUuZW50aXR5LCBwYXJlbnRJZDogbm9kZS5wYXJlbnRJZCB9KTtcclxuICAgIGlmIChub2RlLmNoaWxkcmVuKSBjcmVhdGVMaXN0RnJvbVRyZWUobm9kZS5jaGlsZHJlbiwgbGlzdCk7XHJcbiAgfSk7XHJcblxyXG4gIHJldHVybiBsaXN0O1xyXG59XHJcblxyXG5mdW5jdGlvbiBjcmVhdGVNYXBGcm9tTGlzdDxUIGV4dGVuZHMgQmFzZU5vZGU+KFxyXG4gIGxpc3Q6IFRbXSxcclxuICBtYXAgPSBuZXcgTWFwPHN0cmluZywgVHJlZU5vZGU8VD4+KCksXHJcbik6IE1hcDxzdHJpbmcsIFRyZWVOb2RlPFQ+PiB7XHJcbiAgbGlzdC5mb3JFYWNoKHJvdyA9PiBtYXAuc2V0KHJvdy5pZCwgbmV3IFRyZWVOb2RlKHJvdykpKTtcclxuXHJcbiAgcmV0dXJuIG1hcDtcclxufVxyXG4iXX0=
1
+ export class BaseNode {
2
+ constructor(id, parentId) {
3
+ this.id = id;
4
+ this.parentId = parentId;
5
+ }
6
+ }
7
+ class TreeNode extends BaseNode {
8
+ constructor(entity, nameResolver = ent => ent.displayName || ent.name) {
9
+ super(entity.id, entity.parentId);
10
+ this.entity = entity;
11
+ this.nameResolver = nameResolver;
12
+ this.icon = null;
13
+ this.children = [];
14
+ this.isLeaf = true;
15
+ this.checked = false;
16
+ this.selected = false;
17
+ this.expanded = false;
18
+ this.selectable = true;
19
+ this.disabled = false;
20
+ this.disableCheckbox = false;
21
+ this.key = entity.id;
22
+ this.title = nameResolver(entity);
23
+ }
24
+ }
25
+ export class TreeAdapter {
26
+ constructor(list = []) {
27
+ this.list = list;
28
+ this.tree = createTreeFromList(this.list);
29
+ }
30
+ getList() {
31
+ return this.list;
32
+ }
33
+ getTree() {
34
+ return this.tree;
35
+ }
36
+ handleDrop({ key, parentNode }) {
37
+ const index = this.list.findIndex(({ id }) => id === key);
38
+ this.list[index].parentId = parentNode ? parentNode.key : null;
39
+ this.tree = createTreeFromList(this.list);
40
+ }
41
+ handleRemove({ key }) {
42
+ this.updateTreeFromList(this.list.filter(item => item.id !== key));
43
+ }
44
+ handleUpdate({ key, children }) {
45
+ /**
46
+ * When we need to update a node with new children, first we need to remove any descendant nodes.
47
+ * If we remove immediate children and create a new tree, any other descendant nodes will be removed
48
+ * and we won't need to recursively remove sub children.
49
+ * Then, you simply add back the new children and create a new tree.
50
+ */
51
+ const listWithDescendantNodesRemoved = this.updateTreeFromList(this.list.filter(item => item.parentId !== key));
52
+ this.updateTreeFromList(listWithDescendantNodesRemoved.concat(children));
53
+ }
54
+ updateTreeFromList(list) {
55
+ this.tree = createTreeFromList(list);
56
+ this.list = createListFromTree(this.tree);
57
+ return this.list;
58
+ }
59
+ }
60
+ // UTILITY FUNCTIONS
61
+ function createTreeFromList(list) {
62
+ const map = createMapFromList(list);
63
+ const tree = [];
64
+ list.forEach(row => {
65
+ const parentId = row.parentId;
66
+ const node = map.get(row.id);
67
+ if (parentId) {
68
+ const parent = map.get(parentId);
69
+ if (!parent)
70
+ return;
71
+ parent.children.push(node);
72
+ parent.isLeaf = false;
73
+ }
74
+ else {
75
+ tree.push(node);
76
+ }
77
+ });
78
+ return tree;
79
+ }
80
+ function createListFromTree(tree, list = []) {
81
+ tree.forEach(node => {
82
+ list.push(Object.assign(Object.assign({}, node.entity), { parentId: node.parentId }));
83
+ if (node.children)
84
+ createListFromTree(node.children, list);
85
+ });
86
+ return list;
87
+ }
88
+ function createMapFromList(list, map = new Map()) {
89
+ list.forEach(row => map.set(row.id, new TreeNode(row)));
90
+ return map;
91
+ }
92
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnotdHJlZS1hZGFwdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy90cmVlL3NyYy9saWIvdXRpbHMvbnotdHJlZS1hZGFwdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBZ0IsUUFBUTtJQUk1QixZQUFtQixFQUFVLEVBQVMsUUFBdUI7UUFBMUMsT0FBRSxHQUFGLEVBQUUsQ0FBUTtRQUFTLGFBQVEsR0FBUixRQUFRLENBQWU7SUFBRyxDQUFDO0NBQ2xFO0FBRUQsTUFBTSxRQUE2QixTQUFRLFFBQVE7SUFjakQsWUFBbUIsTUFBUyxFQUFVLGVBQWUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsV0FBVyxJQUFJLEdBQUcsQ0FBQyxJQUFJO1FBQ3JGLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQURqQixXQUFNLEdBQU4sTUFBTSxDQUFHO1FBQVUsaUJBQVksR0FBWixZQUFZLENBQXFDO1FBWHZGLFNBQUksR0FBa0IsSUFBSSxDQUFDO1FBQzNCLGFBQVEsR0FBa0IsRUFBRSxDQUFDO1FBQzdCLFdBQU0sR0FBRyxJQUFJLENBQUM7UUFDZCxZQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ2hCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixlQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsb0JBQWUsR0FBRyxLQUFLLENBQUM7UUFLdEIsSUFBSSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxLQUFLLEdBQUcsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3BDLENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBTyxXQUFXO0lBR3RCLFlBQW9CLE9BQVksRUFB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LENBQUMsRUFBRTtRQUNsQixJQUFJLENBQUMsSUFBSSxpQ0FBTSxJQUFJLENBQUMsTUFBTSxLQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxJQUFHLENBQUM7UUFDdkQsSUFBSSxJQUFJLENBQUMsUUFBUTtZQUFFLGtCQUFrQixDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDN0QsQ0FBQyxDQUFDLENBQUM7SUFFSCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUM7QUFFRCxTQUFTLGlCQUFpQixDQUN4QixJQUFTLEVBQ1QsTUFBTSxJQUFJLEdBQUcsRUFBdUI7SUFFcEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxJQUFJLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFeEQsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VOb2RlIHtcbiAgbmFtZT86IHN0cmluZztcbiAgZGlzcGxheU5hbWU/OiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IocHVibGljIGlkOiBzdHJpbmcsIHB1YmxpYyBwYXJlbnRJZDogc3RyaW5nIHwgbnVsbCkge31cbn1cblxuY2xhc3MgVHJlZU5vZGU8VCBleHRlbmRzIEJhc2VOb2RlPiBleHRlbmRzIEJhc2VOb2RlIHtcbiAgdGl0bGU6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAga2V5OiBzdHJpbmc7XG4gIGljb246IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBjaGlsZHJlbjogVHJlZU5vZGU8VD5bXSA9IFtdO1xuICBpc0xlYWYgPSB0cnVlO1xuICBjaGVja2VkID0gZmFsc2U7XG4gIHNlbGVjdGVkID0gZmFsc2U7XG4gIGV4cGFuZGVkID0gZmFsc2U7XG4gIHNlbGVjdGFibGUgPSB0cnVlO1xuICBkaXNhYmxlZCA9IGZhbHNlO1xuICBkaXNhYmxlQ2hlY2tib3ggPSBmYWxzZTtcbiAgcGFyZW50Tm9kZT86IFRyZWVOb2RlPFQ+IHwgbnVsbDtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZW50aXR5OiBULCBwcml2YXRlIG5hbWVSZXNvbHZlciA9IGVudCA9PiBlbnQuZGlzcGxheU5hbWUgfHwgZW50Lm5hbWUpIHtcbiAgICBzdXBlcihlbnRpdHkuaWQsIGVudGl0eS5wYXJlbnRJZCk7XG4gICAgdGhpcy5rZXkgPSBlbnRpdHkuaWQ7XG4gICAgdGhpcy50aXRsZSA9IG5hbWVSZXNvbHZlcihlbnRpdHkpO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBUcmVlQWRhcHRlcjxUIGV4dGVuZHMgQmFzZU5vZGUgPSBCYXNlTm9kZT4ge1xuICBwcml2YXRlIHRyZWU6IFRyZWVOb2RlPFQ+W107XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBsaXN0OiBUW10gPSBbXSkge1xuICAgIHRoaXMudHJlZSA9IGNyZWF0ZVRyZWVGcm9tTGlzdCh0aGlzLmxpc3QpO1xuICB9XG5cbiAgZ2V0TGlzdCgpIHtcbiAgICByZXR1cm4gdGhpcy5saXN0O1xuICB9XG5cbiAgZ2V0VHJlZSgpIHtcbiAgICByZXR1cm4gdGhpcy50cmVlO1xuICB9XG5cbiAgaGFuZGxlRHJvcCh7IGtleSwgcGFyZW50Tm9kZSB9OiBUcmVlTm9kZTxUPikge1xuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5saXN0LmZpbmRJbmRleCgoeyBpZCB9KSA9PiBpZCA9PT0ga2V5KTtcbiAgICB0aGlzLmxpc3RbaW5kZXhdLnBhcmVudElkID0gcGFyZW50Tm9kZSA/IHBhcmVudE5vZGUua2V5IDogbnVsbDtcbiAgICB0aGlzLnRyZWUgPSBjcmVhdGVUcmVlRnJvbUxpc3QodGhpcy5saXN0KTtcbiAgfVxuXG4gIGhhbmRsZVJlbW92ZSh7IGtleSB9OiBUcmVlTm9kZTxUPikge1xuICAgIHRoaXMudXBkYXRlVHJlZUZyb21MaXN0KHRoaXMubGlzdC5maWx0ZXIoaXRlbSA9PiBpdGVtLmlkICE9PSBrZXkpKTtcbiAgfVxuXG4gIGhhbmRsZVVwZGF0ZSh7IGtleSwgY2hpbGRyZW4gfTogeyBrZXk6IHN0cmluZzsgY2hpbGRyZW46IFRbXSB9KSB7XG4gICAgLyoqXG4gICAgICogV2hlbiB3ZSBuZWVkIHRvIHVwZGF0ZSBhIG5vZGUgd2l0aCBuZXcgY2hpbGRyZW4sIGZpcnN0IHdlIG5lZWQgdG8gcmVtb3ZlIGFueSBkZXNjZW5kYW50IG5vZGVzLlxuICAgICAqIElmIHdlIHJlbW92ZSBpbW1lZGlhdGUgY2hpbGRyZW4gYW5kIGNyZWF0ZSBhIG5ldyB0cmVlLCBhbnkgb3RoZXIgZGVzY2VuZGFudCBub2RlcyB3aWxsIGJlIHJlbW92ZWRcbiAgICAgKiBhbmQgd2Ugd29uJ3QgbmVlZCB0byByZWN1cnNpdmVseSByZW1vdmUgc3ViIGNoaWxkcmVuLlxuICAgICAqIFRoZW4sIHlvdSBzaW1wbHkgYWRkIGJhY2sgdGhlIG5ldyBjaGlsZHJlbiBhbmQgY3JlYXRlIGEgbmV3IHRyZWUuXG4gICAgICovXG4gICAgY29uc3QgbGlzdFdpdGhEZXNjZW5kYW50Tm9kZXNSZW1vdmVkID0gdGhpcy51cGRhdGVUcmVlRnJvbUxpc3QoXG4gICAgICB0aGlzLmxpc3QuZmlsdGVyKGl0ZW0gPT4gaXRlbS5wYXJlbnRJZCAhPT0ga2V5KSxcbiAgICApO1xuICAgIHRoaXMudXBkYXRlVHJlZUZyb21MaXN0KGxpc3RXaXRoRGVzY2VuZGFudE5vZGVzUmVtb3ZlZC5jb25jYXQoY2hpbGRyZW4pKTtcbiAgfVxuXG4gIHVwZGF0ZVRyZWVGcm9tTGlzdChsaXN0OiBUW10pIHtcbiAgICB0aGlzLnRyZWUgPSBjcmVhdGVUcmVlRnJvbUxpc3QobGlzdCk7XG4gICAgdGhpcy5saXN0ID0gY3JlYXRlTGlzdEZyb21UcmVlKHRoaXMudHJlZSk7XG4gICAgcmV0dXJuIHRoaXMubGlzdDtcbiAgfVxufVxuXG4vLyBVVElMSVRZIEZVTkNUSU9OU1xuXG5mdW5jdGlvbiBjcmVhdGVUcmVlRnJvbUxpc3Q8VCBleHRlbmRzIEJhc2VOb2RlPihsaXN0OiBUW10pOiBUcmVlTm9kZTxUPltdIHtcbiAgY29uc3QgbWFwID0gY3JlYXRlTWFwRnJvbUxpc3QobGlzdCk7XG4gIGNvbnN0IHRyZWU6IFRyZWVOb2RlPFQ+W10gPSBbXTtcblxuICBsaXN0LmZvckVhY2gocm93ID0+IHtcbiAgICBjb25zdCBwYXJlbnRJZCA9IHJvdy5wYXJlbnRJZDtcbiAgICBjb25zdCBub2RlID0gbWFwLmdldChyb3cuaWQpO1xuICAgIGlmIChwYXJlbnRJZCkge1xuICAgICAgY29uc3QgcGFyZW50ID0gbWFwLmdldChwYXJlbnRJZCk7XG4gICAgICBpZiAoIXBhcmVudCkgcmV0dXJuO1xuICAgICAgcGFyZW50LmNoaWxkcmVuLnB1c2gobm9kZSk7XG4gICAgICBwYXJlbnQuaXNMZWFmID0gZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRyZWUucHVzaChub2RlKTtcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiB0cmVlO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVMaXN0RnJvbVRyZWU8VCBleHRlbmRzIEJhc2VOb2RlPih0cmVlOiBUcmVlTm9kZTxUPltdLCBsaXN0OiBUW10gPSBbXSk6IFRbXSB7XG4gIHRyZWUuZm9yRWFjaChub2RlID0+IHtcbiAgICBsaXN0LnB1c2goeyAuLi5ub2RlLmVudGl0eSwgcGFyZW50SWQ6IG5vZGUucGFyZW50SWQgfSk7XG4gICAgaWYgKG5vZGUuY2hpbGRyZW4pIGNyZWF0ZUxpc3RGcm9tVHJlZShub2RlLmNoaWxkcmVuLCBsaXN0KTtcbiAgfSk7XG5cbiAgcmV0dXJuIGxpc3Q7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZU1hcEZyb21MaXN0PFQgZXh0ZW5kcyBCYXNlTm9kZT4oXG4gIGxpc3Q6IFRbXSxcbiAgbWFwID0gbmV3IE1hcDxzdHJpbmcsIFRyZWVOb2RlPFQ+PigpLFxuKTogTWFwPHN0cmluZywgVHJlZU5vZGU8VD4+IHtcbiAgbGlzdC5mb3JFYWNoKHJvdyA9PiBtYXAuc2V0KHJvdy5pZCwgbmV3IFRyZWVOb2RlKHJvdykpKTtcblxuICByZXR1cm4gbWFwO1xufVxuIl19
@@ -1,6 +1,6 @@
1
- export * from './lib/tree.module';
2
- export * from './lib/components/tree.component';
3
- export * from './lib/utils/nz-tree-adapter';
4
- export * from './lib/templates/tree-node-template.directive';
5
- export * from './lib/templates/expanded-icon-template.directive';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvdHJlZS9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLDhDQUE4QyxDQUFDO0FBQzdELGNBQWMsa0RBQWtELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xpYi90cmVlLm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvdHJlZS5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi91dGlscy9uei10cmVlLWFkYXB0ZXInO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90ZW1wbGF0ZXMvdHJlZS1ub2RlLXRlbXBsYXRlLmRpcmVjdGl2ZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RlbXBsYXRlcy9leHBhbmRlZC1pY29uLXRlbXBsYXRlLmRpcmVjdGl2ZSc7XHJcbiJdfQ==
1
+ export * from './lib/tree.module';
2
+ export * from './lib/components/tree.component';
3
+ export * from './lib/utils/nz-tree-adapter';
4
+ export * from './lib/templates/tree-node-template.directive';
5
+ export * from './lib/templates/expanded-icon-template.directive';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvdHJlZS9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLDhDQUE4QyxDQUFDO0FBQzdELGNBQWMsa0RBQWtELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xpYi90cmVlLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3RyZWUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3V0aWxzL256LXRyZWUtYWRhcHRlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi90ZW1wbGF0ZXMvdHJlZS1ub2RlLXRlbXBsYXRlLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi90ZW1wbGF0ZXMvZXhwYW5kZWQtaWNvbi10ZW1wbGF0ZS5kaXJlY3RpdmUnO1xuIl19
@@ -2,173 +2,173 @@ import * as i0 from '@angular/core';
2
2
  import { EventEmitter, Component, ChangeDetectionStrategy, Input, Output, ViewChild, NgModule } from '@angular/core';
3
3
  import { CommonModule } from '@angular/common';
4
4
 
5
- let Chart;
6
- class ChartComponent {
7
- constructor(el, cdr) {
8
- this.el = el;
9
- this.cdr = cdr;
10
- this.data = {};
11
- this.options = {};
12
- this.plugins = [];
13
- this.responsive = true;
14
- this.dataSelect = new EventEmitter();
15
- this.initialized = new EventEmitter();
16
- this.initChart = () => {
17
- const opts = this.options || {};
18
- opts.responsive = this.responsive;
19
- // allows chart to resize in responsive mode
20
- if (opts.responsive && (this.height || this.width)) {
21
- opts.maintainAspectRatio = false;
22
- }
23
- this.chart = new Chart(this.canvas.nativeElement, {
24
- type: this.type,
25
- data: this.data,
26
- options: this.options,
27
- });
28
- };
29
- this.getCanvas = () => {
30
- return this.canvas.nativeElement;
31
- };
32
- this.getBase64Image = () => {
33
- return this.chart.toBase64Image();
34
- };
35
- this.generateLegend = () => {
36
- if (this.chart) {
37
- return this.chart.generateLegend();
38
- }
39
- };
40
- this.refresh = () => {
41
- if (this.chart) {
42
- this.chart.update();
43
- this.cdr.detectChanges();
44
- }
45
- };
46
- this.reinit = () => {
47
- if (!this.chart)
48
- return;
49
- this.chart.destroy();
50
- this.initChart();
51
- };
52
- }
53
- ngAfterViewInit() {
54
- import('chart.js/auto').then(module => {
55
- Chart = module.default;
56
- this.initChart();
57
- this.initialized.emit(true);
58
- });
59
- }
60
- onCanvasClick(event) {
61
- if (this.chart) {
62
- const element = this.chart.getElementsAtEventForMode(event, 'nearest', { intersect: true }, false);
63
- const dataset = this.chart.getElementsAtEventForMode(event, 'dataset', { intersect: true }, false);
64
- if (element && element[0] && dataset) {
65
- this.dataSelect.emit({ originalEvent: event, element: element[0], dataset: dataset });
66
- }
67
- }
68
- }
69
- ngOnDestroy() {
70
- if (this.chart) {
71
- this.chart.destroy();
72
- this.chart = null;
73
- }
74
- }
75
- ngOnChanges(changes) {
76
- var _a, _b;
77
- if (!this.chart)
78
- return;
79
- if (((_a = changes.data) === null || _a === void 0 ? void 0 : _a.currentValue) || ((_b = changes.options) === null || _b === void 0 ? void 0 : _b.currentValue)) {
80
- this.chart.destroy();
81
- this.initChart();
82
- }
83
- }
84
- }
85
- ChartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ChartComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
86
- ChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: ChartComponent, selector: "abp-chart", inputs: { type: "type", data: "data", options: "options", plugins: "plugins", width: "width", height: "height", responsive: "responsive" }, outputs: { dataSelect: "dataSelect", initialized: "initialized" }, viewQueries: [{ propertyName: "canvas", first: true, predicate: ["canvas"], descendants: true }], exportAs: ["abpChart"], usesOnChanges: true, ngImport: i0, template: `
87
- <div
88
- style="position:relative"
89
- [style.width]="responsive && !width ? null : width"
90
- [style.height]="responsive && !height ? null : height"
91
- >
92
- <canvas
93
- #canvas
94
- [attr.width]="responsive && !width ? null : width"
95
- [attr.height]="responsive && !height ? null : height"
96
- (click)="onCanvasClick($event)"
97
- ></canvas>
98
- </div>
99
- `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
100
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ChartComponent, decorators: [{
101
- type: Component,
102
- args: [{
103
- selector: 'abp-chart',
104
- template: `
105
- <div
106
- style="position:relative"
107
- [style.width]="responsive && !width ? null : width"
108
- [style.height]="responsive && !height ? null : height"
109
- >
110
- <canvas
111
- #canvas
112
- [attr.width]="responsive && !width ? null : width"
113
- [attr.height]="responsive && !height ? null : height"
114
- (click)="onCanvasClick($event)"
115
- ></canvas>
116
- </div>
117
- `,
118
- changeDetection: ChangeDetectionStrategy.OnPush,
119
- exportAs: 'abpChart',
120
- }]
121
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { type: [{
122
- type: Input
123
- }], data: [{
124
- type: Input
125
- }], options: [{
126
- type: Input
127
- }], plugins: [{
128
- type: Input
129
- }], width: [{
130
- type: Input
131
- }], height: [{
132
- type: Input
133
- }], responsive: [{
134
- type: Input
135
- }], dataSelect: [{
136
- type: Output
137
- }], initialized: [{
138
- type: Output
139
- }], canvas: [{
140
- type: ViewChild,
141
- args: ['canvas']
5
+ let Chart;
6
+ class ChartComponent {
7
+ constructor(el, cdr) {
8
+ this.el = el;
9
+ this.cdr = cdr;
10
+ this.data = {};
11
+ this.options = {};
12
+ this.plugins = [];
13
+ this.responsive = true;
14
+ this.dataSelect = new EventEmitter();
15
+ this.initialized = new EventEmitter();
16
+ this.initChart = () => {
17
+ const opts = this.options || {};
18
+ opts.responsive = this.responsive;
19
+ // allows chart to resize in responsive mode
20
+ if (opts.responsive && (this.height || this.width)) {
21
+ opts.maintainAspectRatio = false;
22
+ }
23
+ this.chart = new Chart(this.canvas.nativeElement, {
24
+ type: this.type,
25
+ data: this.data,
26
+ options: this.options,
27
+ });
28
+ };
29
+ this.getCanvas = () => {
30
+ return this.canvas.nativeElement;
31
+ };
32
+ this.getBase64Image = () => {
33
+ return this.chart.toBase64Image();
34
+ };
35
+ this.generateLegend = () => {
36
+ if (this.chart) {
37
+ return this.chart.generateLegend();
38
+ }
39
+ };
40
+ this.refresh = () => {
41
+ if (this.chart) {
42
+ this.chart.update();
43
+ this.cdr.detectChanges();
44
+ }
45
+ };
46
+ this.reinit = () => {
47
+ if (!this.chart)
48
+ return;
49
+ this.chart.destroy();
50
+ this.initChart();
51
+ };
52
+ }
53
+ ngAfterViewInit() {
54
+ import('chart.js/auto').then(module => {
55
+ Chart = module.default;
56
+ this.initChart();
57
+ this.initialized.emit(true);
58
+ });
59
+ }
60
+ onCanvasClick(event) {
61
+ if (this.chart) {
62
+ const element = this.chart.getElementsAtEventForMode(event, 'nearest', { intersect: true }, false);
63
+ const dataset = this.chart.getElementsAtEventForMode(event, 'dataset', { intersect: true }, false);
64
+ if (element && element[0] && dataset) {
65
+ this.dataSelect.emit({ originalEvent: event, element: element[0], dataset: dataset });
66
+ }
67
+ }
68
+ }
69
+ ngOnDestroy() {
70
+ if (this.chart) {
71
+ this.chart.destroy();
72
+ this.chart = null;
73
+ }
74
+ }
75
+ ngOnChanges(changes) {
76
+ var _a, _b;
77
+ if (!this.chart)
78
+ return;
79
+ if (((_a = changes.data) === null || _a === void 0 ? void 0 : _a.currentValue) || ((_b = changes.options) === null || _b === void 0 ? void 0 : _b.currentValue)) {
80
+ this.chart.destroy();
81
+ this.initChart();
82
+ }
83
+ }
84
+ }
85
+ ChartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ChartComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
86
+ ChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: ChartComponent, selector: "abp-chart", inputs: { type: "type", data: "data", options: "options", plugins: "plugins", width: "width", height: "height", responsive: "responsive" }, outputs: { dataSelect: "dataSelect", initialized: "initialized" }, viewQueries: [{ propertyName: "canvas", first: true, predicate: ["canvas"], descendants: true }], exportAs: ["abpChart"], usesOnChanges: true, ngImport: i0, template: `
87
+ <div
88
+ style="position:relative"
89
+ [style.width]="responsive && !width ? null : width"
90
+ [style.height]="responsive && !height ? null : height"
91
+ >
92
+ <canvas
93
+ #canvas
94
+ [attr.width]="responsive && !width ? null : width"
95
+ [attr.height]="responsive && !height ? null : height"
96
+ (click)="onCanvasClick($event)"
97
+ ></canvas>
98
+ </div>
99
+ `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
100
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ChartComponent, decorators: [{
101
+ type: Component,
102
+ args: [{
103
+ selector: 'abp-chart',
104
+ template: `
105
+ <div
106
+ style="position:relative"
107
+ [style.width]="responsive && !width ? null : width"
108
+ [style.height]="responsive && !height ? null : height"
109
+ >
110
+ <canvas
111
+ #canvas
112
+ [attr.width]="responsive && !width ? null : width"
113
+ [attr.height]="responsive && !height ? null : height"
114
+ (click)="onCanvasClick($event)"
115
+ ></canvas>
116
+ </div>
117
+ `,
118
+ changeDetection: ChangeDetectionStrategy.OnPush,
119
+ exportAs: 'abpChart',
120
+ }]
121
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { type: [{
122
+ type: Input
123
+ }], data: [{
124
+ type: Input
125
+ }], options: [{
126
+ type: Input
127
+ }], plugins: [{
128
+ type: Input
129
+ }], width: [{
130
+ type: Input
131
+ }], height: [{
132
+ type: Input
133
+ }], responsive: [{
134
+ type: Input
135
+ }], dataSelect: [{
136
+ type: Output
137
+ }], initialized: [{
138
+ type: Output
139
+ }], canvas: [{
140
+ type: ViewChild,
141
+ args: ['canvas']
142
142
  }] } });
143
143
 
144
- class ChartModule {
145
- }
146
- ChartModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ChartModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
147
- ChartModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ChartModule, declarations: [ChartComponent], imports: [CommonModule], exports: [ChartComponent] });
148
- ChartModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ChartModule, providers: [], imports: [[CommonModule]] });
149
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ChartModule, decorators: [{
150
- type: NgModule,
151
- args: [{
152
- imports: [CommonModule],
153
- exports: [ChartComponent],
154
- declarations: [ChartComponent],
155
- providers: [],
156
- }]
144
+ class ChartModule {
145
+ }
146
+ ChartModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ChartModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
147
+ ChartModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ChartModule, declarations: [ChartComponent], imports: [CommonModule], exports: [ChartComponent] });
148
+ ChartModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ChartModule, providers: [], imports: [[CommonModule]] });
149
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ChartModule, decorators: [{
150
+ type: NgModule,
151
+ args: [{
152
+ imports: [CommonModule],
153
+ exports: [ChartComponent],
154
+ declarations: [ChartComponent],
155
+ providers: [],
156
+ }]
157
157
  }] });
158
158
 
159
- function getRandomBackgroundColor(count) {
160
- const colors = [];
161
- for (let i = 0; i < count; i++) {
162
- const r = ((i + 5) * (i + 5) * 474) % 255;
163
- const g = ((i + 5) * (i + 5) * 1600) % 255;
164
- const b = ((i + 5) * (i + 5) * 84065) % 255;
165
- colors.push('rgba(' + r + ', ' + g + ', ' + b + ', 0.7)');
166
- }
167
- return colors;
159
+ function getRandomBackgroundColor(count) {
160
+ const colors = [];
161
+ for (let i = 0; i < count; i++) {
162
+ const r = ((i + 5) * (i + 5) * 474) % 255;
163
+ const g = ((i + 5) * (i + 5) * 1600) % 255;
164
+ const b = ((i + 5) * (i + 5) * 84065) % 255;
165
+ colors.push('rgba(' + r + ', ' + g + ', ' + b + ', 0.7)');
166
+ }
167
+ return colors;
168
168
  }
169
169
 
170
- /**
171
- * Generated bundle index. Do not edit.
170
+ /**
171
+ * Generated bundle index. Do not edit.
172
172
  */
173
173
 
174
174
  export { ChartComponent, ChartModule, getRandomBackgroundColor };
@@ -1 +1 @@
1
- {"version":3,"file":"abp-ng.components-chart.js.js","sources":["../../../../packages/components/chart.js/src/chart.component.ts","../../../../packages/components/chart.js/src/chart.module.ts","../../../../packages/components/chart.js/src/widget-utils.ts","../../../../packages/components/chart.js/src/abp-ng.components-chart.js.ts"],"sourcesContent":["import {\r\n AfterViewInit,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n Output,\r\n SimpleChanges,\r\n ViewChild,\r\n} from '@angular/core';\r\n\r\nlet Chart: any;\r\n\r\n@Component({\r\n selector: 'abp-chart',\r\n template: `\r\n <div\r\n style=\"position:relative\"\r\n [style.width]=\"responsive && !width ? null : width\"\r\n [style.height]=\"responsive && !height ? null : height\"\r\n >\r\n <canvas\r\n #canvas\r\n [attr.width]=\"responsive && !width ? null : width\"\r\n [attr.height]=\"responsive && !height ? null : height\"\r\n (click)=\"onCanvasClick($event)\"\r\n ></canvas>\r\n </div>\r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n exportAs: 'abpChart',\r\n})\r\nexport class ChartComponent implements AfterViewInit, OnDestroy, OnChanges {\r\n @Input() type: string;\r\n\r\n @Input() data: any = {};\r\n\r\n @Input() options: any = {};\r\n\r\n @Input() plugins: any[] = [];\r\n\r\n @Input() width: string;\r\n\r\n @Input() height: string;\r\n\r\n @Input() responsive = true;\r\n\r\n @Output() dataSelect = new EventEmitter();\r\n\r\n @Output() initialized = new EventEmitter<boolean>();\r\n\r\n @ViewChild('canvas') canvas: ElementRef<HTMLCanvasElement>;\r\n\r\n chart: any;\r\n\r\n constructor(public el: ElementRef, private cdr: ChangeDetectorRef) {}\r\n\r\n ngAfterViewInit() {\r\n import('chart.js/auto').then(module => {\r\n Chart = module.default;\r\n this.initChart();\r\n this.initialized.emit(true);\r\n });\r\n }\r\n\r\n onCanvasClick(event) {\r\n if (this.chart) {\r\n const element = this.chart.getElementsAtEventForMode(\r\n event,\r\n 'nearest',\r\n { intersect: true },\r\n false,\r\n );\r\n const dataset = this.chart.getElementsAtEventForMode(\r\n event,\r\n 'dataset',\r\n { intersect: true },\r\n false,\r\n );\r\n\r\n if (element && element[0] && dataset) {\r\n this.dataSelect.emit({ originalEvent: event, element: element[0], dataset: dataset });\r\n }\r\n }\r\n }\r\n\r\n private initChart = () => {\r\n const opts = this.options || {};\r\n opts.responsive = this.responsive;\r\n\r\n // allows chart to resize in responsive mode\r\n if (opts.responsive && (this.height || this.width)) {\r\n opts.maintainAspectRatio = false;\r\n }\r\n\r\n this.chart = new Chart(this.canvas.nativeElement, {\r\n type: this.type as any,\r\n data: this.data,\r\n options: this.options,\r\n });\r\n };\r\n\r\n getCanvas = () => {\r\n return this.canvas.nativeElement;\r\n };\r\n\r\n getBase64Image = () => {\r\n return this.chart.toBase64Image();\r\n };\r\n\r\n generateLegend = () => {\r\n if (this.chart) {\r\n return this.chart.generateLegend();\r\n }\r\n };\r\n\r\n refresh = () => {\r\n if (this.chart) {\r\n this.chart.update();\r\n this.cdr.detectChanges();\r\n }\r\n };\r\n\r\n reinit = () => {\r\n if (!this.chart) return;\r\n this.chart.destroy();\r\n this.initChart();\r\n };\r\n\r\n ngOnDestroy() {\r\n if (this.chart) {\r\n this.chart.destroy();\r\n this.chart = null;\r\n }\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (!this.chart) return;\r\n\r\n if (changes.data?.currentValue || changes.options?.currentValue) {\r\n this.chart.destroy();\r\n this.initChart();\r\n }\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { ChartComponent } from './chart.component';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n exports: [ChartComponent],\r\n declarations: [ChartComponent],\r\n providers: [],\r\n})\r\nexport class ChartModule {}\r\n","export function getRandomBackgroundColor(count) {\r\n const colors = [];\r\n\r\n for (let i = 0; i < count; i++) {\r\n const r = ((i + 5) * (i + 5) * 474) % 255;\r\n const g = ((i + 5) * (i + 5) * 1600) % 255;\r\n const b = ((i + 5) * (i + 5) * 84065) % 255;\r\n colors.push('rgba(' + r + ', ' + g + ', ' + b + ', 0.7)');\r\n }\r\n\r\n return colors;\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"abp-ng.components-chart.js.js","sources":["../../../../packages/components/chart.js/src/chart.component.ts","../../../../packages/components/chart.js/src/chart.module.ts","../../../../packages/components/chart.js/src/widget-utils.ts","../../../../packages/components/chart.js/src/abp-ng.components-chart.js.ts"],"sourcesContent":["import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n SimpleChanges,\n ViewChild,\n} from '@angular/core';\n\nlet Chart: any;\n\n@Component({\n selector: 'abp-chart',\n template: `\n <div\n style=\"position:relative\"\n [style.width]=\"responsive && !width ? null : width\"\n [style.height]=\"responsive && !height ? null : height\"\n >\n <canvas\n #canvas\n [attr.width]=\"responsive && !width ? null : width\"\n [attr.height]=\"responsive && !height ? null : height\"\n (click)=\"onCanvasClick($event)\"\n ></canvas>\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n exportAs: 'abpChart',\n})\nexport class ChartComponent implements AfterViewInit, OnDestroy, OnChanges {\n @Input() type: string;\n\n @Input() data: any = {};\n\n @Input() options: any = {};\n\n @Input() plugins: any[] = [];\n\n @Input() width: string;\n\n @Input() height: string;\n\n @Input() responsive = true;\n\n @Output() dataSelect = new EventEmitter();\n\n @Output() initialized = new EventEmitter<boolean>();\n\n @ViewChild('canvas') canvas: ElementRef<HTMLCanvasElement>;\n\n chart: any;\n\n constructor(public el: ElementRef, private cdr: ChangeDetectorRef) {}\n\n ngAfterViewInit() {\n import('chart.js/auto').then(module => {\n Chart = module.default;\n this.initChart();\n this.initialized.emit(true);\n });\n }\n\n onCanvasClick(event) {\n if (this.chart) {\n const element = this.chart.getElementsAtEventForMode(\n event,\n 'nearest',\n { intersect: true },\n false,\n );\n const dataset = this.chart.getElementsAtEventForMode(\n event,\n 'dataset',\n { intersect: true },\n false,\n );\n\n if (element && element[0] && dataset) {\n this.dataSelect.emit({ originalEvent: event, element: element[0], dataset: dataset });\n }\n }\n }\n\n private initChart = () => {\n const opts = this.options || {};\n opts.responsive = this.responsive;\n\n // allows chart to resize in responsive mode\n if (opts.responsive && (this.height || this.width)) {\n opts.maintainAspectRatio = false;\n }\n\n this.chart = new Chart(this.canvas.nativeElement, {\n type: this.type as any,\n data: this.data,\n options: this.options,\n });\n };\n\n getCanvas = () => {\n return this.canvas.nativeElement;\n };\n\n getBase64Image = () => {\n return this.chart.toBase64Image();\n };\n\n generateLegend = () => {\n if (this.chart) {\n return this.chart.generateLegend();\n }\n };\n\n refresh = () => {\n if (this.chart) {\n this.chart.update();\n this.cdr.detectChanges();\n }\n };\n\n reinit = () => {\n if (!this.chart) return;\n this.chart.destroy();\n this.initChart();\n };\n\n ngOnDestroy() {\n if (this.chart) {\n this.chart.destroy();\n this.chart = null;\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (!this.chart) return;\n\n if (changes.data?.currentValue || changes.options?.currentValue) {\n this.chart.destroy();\n this.initChart();\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ChartComponent } from './chart.component';\n\n@NgModule({\n imports: [CommonModule],\n exports: [ChartComponent],\n declarations: [ChartComponent],\n providers: [],\n})\nexport class ChartModule {}\n","export function getRandomBackgroundColor(count) {\n const colors = [];\n\n for (let i = 0; i < count; i++) {\n const r = ((i + 5) * (i + 5) * 474) % 255;\n const g = ((i + 5) * (i + 5) * 1600) % 255;\n const b = ((i + 5) * (i + 5) * 84065) % 255;\n colors.push('rgba(' + r + ', ' + g + ', ' + b + ', 0.7)');\n }\n\n return colors;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}