@abp/ng.components 7.2.2 → 7.3.0-rc.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 (72) hide show
  1. package/README.md +129 -2
  2. package/chart.js/chart.component.d.ts +30 -30
  3. package/chart.js/chart.module.d.ts +8 -8
  4. package/chart.js/index.d.ts +5 -5
  5. package/chart.js/public-api.d.ts +3 -3
  6. package/chart.js/widget-utils.d.ts +1 -1
  7. package/{esm2020 → esm2022}/abp-ng.components.mjs +4 -4
  8. package/{esm2020 → esm2022}/chart.js/abp-ng.components-chart.js.mjs +4 -4
  9. package/esm2022/chart.js/chart.component.mjs +141 -0
  10. package/esm2022/chart.js/chart.module.mjs +20 -0
  11. package/{esm2020 → esm2022}/chart.js/public-api.mjs +3 -3
  12. package/{esm2020 → esm2022}/chart.js/widget-utils.mjs +10 -10
  13. package/{esm2020 → esm2022}/page/abp-ng.components-page.mjs +4 -4
  14. package/esm2022/page/page-part.directive.mjs +77 -0
  15. package/esm2022/page/page-parts.component.mjs +48 -0
  16. package/esm2022/page/page.component.mjs +56 -0
  17. package/esm2022/page/page.module.mjs +39 -0
  18. package/{esm2020 → esm2022}/page/public-api.mjs +4 -4
  19. package/{esm2020 → esm2022}/public-api.mjs +4 -4
  20. package/{esm2020 → esm2022}/tree/abp-ng.components-tree.mjs +4 -4
  21. package/esm2022/tree/lib/components/tree.component.mjs +154 -0
  22. package/{esm2020 → esm2022}/tree/lib/disable-tree-style-loading.token.mjs +2 -2
  23. package/esm2022/tree/lib/templates/expanded-icon-template.directive.mjs +17 -0
  24. package/esm2022/tree/lib/templates/tree-node-template.directive.mjs +17 -0
  25. package/esm2022/tree/lib/tree.module.mjs +26 -0
  26. package/{esm2020 → esm2022}/tree/lib/utils/nz-tree-adapter.mjs +91 -91
  27. package/{esm2020 → esm2022}/tree/public-api.mjs +6 -6
  28. package/{fesm2020 → fesm2022}/abp-ng.components-chart.js.mjs +135 -135
  29. package/fesm2022/abp-ng.components-chart.js.mjs.map +1 -0
  30. package/{fesm2020 → fesm2022}/abp-ng.components-page.mjs +187 -187
  31. package/{fesm2020 → fesm2022}/abp-ng.components-page.mjs.map +1 -1
  32. package/{fesm2020 → fesm2022}/abp-ng.components-tree.mjs +269 -269
  33. package/fesm2022/abp-ng.components-tree.mjs.map +1 -0
  34. package/{fesm2020 → fesm2022}/abp-ng.components.mjs +4 -4
  35. package/index.d.ts +5 -5
  36. package/package.json +31 -30
  37. package/page/index.d.ts +5 -5
  38. package/page/page-part.directive.d.ts +31 -31
  39. package/page/page-parts.component.d.ts +18 -18
  40. package/page/page.component.d.ts +21 -21
  41. package/page/page.module.d.ts +13 -13
  42. package/page/public-api.d.ts +4 -4
  43. package/public-api.d.ts +1 -1
  44. package/tree/index.d.ts +5 -5
  45. package/tree/lib/components/tree.component.d.ts +51 -51
  46. package/tree/lib/disable-tree-style-loading.token.d.ts +2 -2
  47. package/tree/lib/templates/expanded-icon-template.directive.d.ts +8 -8
  48. package/tree/lib/templates/tree-node-template.directive.d.ts +8 -8
  49. package/tree/lib/tree.module.d.ts +13 -13
  50. package/tree/lib/utils/nz-tree-adapter.d.ts +38 -38
  51. package/tree/public-api.d.ts +6 -6
  52. package/esm2020/chart.js/chart.component.mjs +0 -140
  53. package/esm2020/chart.js/chart.module.mjs +0 -19
  54. package/esm2020/page/page-part.directive.mjs +0 -76
  55. package/esm2020/page/page-parts.component.mjs +0 -45
  56. package/esm2020/page/page.component.mjs +0 -55
  57. package/esm2020/page/page.module.mjs +0 -38
  58. package/esm2020/tree/lib/components/tree.component.mjs +0 -153
  59. package/esm2020/tree/lib/templates/expanded-icon-template.directive.mjs +0 -16
  60. package/esm2020/tree/lib/templates/tree-node-template.directive.mjs +0 -16
  61. package/esm2020/tree/lib/tree.module.mjs +0 -25
  62. package/fesm2015/abp-ng.components-chart.js.mjs +0 -175
  63. package/fesm2015/abp-ng.components-chart.js.mjs.map +0 -1
  64. package/fesm2015/abp-ng.components-page.mjs +0 -215
  65. package/fesm2015/abp-ng.components-page.mjs.map +0 -1
  66. package/fesm2015/abp-ng.components-tree.mjs +0 -300
  67. package/fesm2015/abp-ng.components-tree.mjs.map +0 -1
  68. package/fesm2015/abp-ng.components.mjs +0 -4
  69. package/fesm2015/abp-ng.components.mjs.map +0 -1
  70. package/fesm2020/abp-ng.components-chart.js.mjs.map +0 -1
  71. package/fesm2020/abp-ng.components-tree.mjs.map +0 -1
  72. /package/{fesm2020 → fesm2022}/abp-ng.components.mjs.map +0 -0
@@ -1,92 +1,92 @@
1
- export class BaseNode {
2
- constructor(id, parentId) {
3
- this.id = id;
4
- this.parentId = parentId;
5
- }
6
- }
7
- export 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({ ...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
- }
1
+ export class BaseNode {
2
+ constructor(id, parentId) {
3
+ this.id = id;
4
+ this.parentId = parentId;
5
+ }
6
+ }
7
+ export 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({ ...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
92
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnotdHJlZS1hZGFwdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy90cmVlL3NyYy9saWIvdXRpbHMvbnotdHJlZS1hZGFwdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBZ0IsUUFBUTtJQUk1QixZQUFtQixFQUFVLEVBQVMsUUFBdUI7UUFBMUMsT0FBRSxHQUFGLEVBQUUsQ0FBUTtRQUFTLGFBQVEsR0FBUixRQUFRLENBQWU7SUFBRyxDQUFDO0NBQ2xFO0FBRUQsTUFBTSxPQUFPLFFBQTZCLFNBQVEsUUFBUTtJQWN4RCxZQUFtQixNQUFTLEVBQVUsZUFBZSxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxXQUFXLElBQUksR0FBRyxDQUFDLElBQUk7UUFDckYsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRGpCLFdBQU0sR0FBTixNQUFNLENBQUc7UUFBVSxpQkFBWSxHQUFaLFlBQVksQ0FBcUM7UUFYdkYsU0FBSSxHQUFrQixJQUFJLENBQUM7UUFDM0IsYUFBUSxHQUFrQixFQUFFLENBQUM7UUFDN0IsV0FBTSxHQUFHLElBQUksQ0FBQztRQUNkLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFDaEIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLGVBQVUsR0FBRyxJQUFJLENBQUM7UUFDbEIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixvQkFBZSxHQUFHLEtBQUssQ0FBQztRQUt0QixJQUFJLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLEtBQUssR0FBRyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDcEMsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLFdBQVc7SUFHdEIsWUFBb0IsT0FB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LElBQUksQ0FBQyxFQUFFO1FBQ2xCLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZELElBQUksSUFBSSxDQUFDLFFBQVE7WUFBRSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzdELENBQUMsQ0FBQyxDQUFDO0lBRUgsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBRUQsU0FBUyxpQkFBaUIsQ0FDeEIsSUFBUyxFQUNULE1BQU0sSUFBSSxHQUFHLEVBQXVCO0lBRXBDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsSUFBSSxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRXhELE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlTm9kZSB7XHJcbiAgbmFtZT86IHN0cmluZztcclxuICBkaXNwbGF5TmFtZT86IHN0cmluZztcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIGlkOiBzdHJpbmcsIHB1YmxpYyBwYXJlbnRJZDogc3RyaW5nIHwgbnVsbCkge31cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFRyZWVOb2RlPFQgZXh0ZW5kcyBCYXNlTm9kZT4gZXh0ZW5kcyBCYXNlTm9kZSB7XHJcbiAgdGl0bGU6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICBrZXk6IHN0cmluZztcclxuICBpY29uOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuICBjaGlsZHJlbjogVHJlZU5vZGU8VD5bXSA9IFtdO1xyXG4gIGlzTGVhZiA9IHRydWU7XHJcbiAgY2hlY2tlZCA9IGZhbHNlO1xyXG4gIHNlbGVjdGVkID0gZmFsc2U7XHJcbiAgZXhwYW5kZWQgPSBmYWxzZTtcclxuICBzZWxlY3RhYmxlID0gdHJ1ZTtcclxuICBkaXNhYmxlZCA9IGZhbHNlO1xyXG4gIGRpc2FibGVDaGVja2JveCA9IGZhbHNlO1xyXG4gIHBhcmVudE5vZGU/OiBUcmVlTm9kZTxUPiB8IG51bGw7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBlbnRpdHk6IFQsIHByaXZhdGUgbmFtZVJlc29sdmVyID0gZW50ID0+IGVudC5kaXNwbGF5TmFtZSB8fCBlbnQubmFtZSkge1xyXG4gICAgc3VwZXIoZW50aXR5LmlkLCBlbnRpdHkucGFyZW50SWQpO1xyXG4gICAgdGhpcy5rZXkgPSBlbnRpdHkuaWQ7XHJcbiAgICB0aGlzLnRpdGxlID0gbmFtZVJlc29sdmVyKGVudGl0eSk7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgVHJlZUFkYXB0ZXI8VCBleHRlbmRzIEJhc2VOb2RlID0gQmFzZU5vZGU+IHtcclxuICBwcml2YXRlIHRyZWU6IFRyZWVOb2RlPFQ+W107XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbGlzdDogVFtdID0gW10pIHtcclxuICAgIHRoaXMudHJlZSA9IGNyZWF0ZVRyZWVGcm9tTGlzdCh0aGlzLmxpc3QpO1xyXG4gIH1cclxuXHJcbiAgZ2V0TGlzdCgpIHtcclxuICAgIHJldHVybiB0aGlzLmxpc3Q7XHJcbiAgfVxyXG5cclxuICBnZXRUcmVlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMudHJlZTtcclxuICB9XHJcblxyXG4gIGhhbmRsZURyb3AoeyBrZXksIHBhcmVudE5vZGUgfTogVHJlZU5vZGU8VD4pIHtcclxuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5saXN0LmZpbmRJbmRleCgoeyBpZCB9KSA9PiBpZCA9PT0ga2V5KTtcclxuICAgIHRoaXMubGlzdFtpbmRleF0ucGFyZW50SWQgPSBwYXJlbnROb2RlID8gcGFyZW50Tm9kZS5rZXkgOiBudWxsO1xyXG4gICAgdGhpcy50cmVlID0gY3JlYXRlVHJlZUZyb21MaXN0KHRoaXMubGlzdCk7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVSZW1vdmUoeyBrZXkgfTogVHJlZU5vZGU8VD4pIHtcclxuICAgIHRoaXMudXBkYXRlVHJlZUZyb21MaXN0KHRoaXMubGlzdC5maWx0ZXIoaXRlbSA9PiBpdGVtLmlkICE9PSBrZXkpKTtcclxuICB9XHJcblxyXG4gIGhhbmRsZVVwZGF0ZSh7IGtleSwgY2hpbGRyZW4gfTogeyBrZXk6IHN0cmluZzsgY2hpbGRyZW46IFRbXSB9KSB7XHJcbiAgICAvKipcclxuICAgICAqIFdoZW4gd2UgbmVlZCB0byB1cGRhdGUgYSBub2RlIHdpdGggbmV3IGNoaWxkcmVuLCBmaXJzdCB3ZSBuZWVkIHRvIHJlbW92ZSBhbnkgZGVzY2VuZGFudCBub2Rlcy5cclxuICAgICAqIElmIHdlIHJlbW92ZSBpbW1lZGlhdGUgY2hpbGRyZW4gYW5kIGNyZWF0ZSBhIG5ldyB0cmVlLCBhbnkgb3RoZXIgZGVzY2VuZGFudCBub2RlcyB3aWxsIGJlIHJlbW92ZWRcclxuICAgICAqIGFuZCB3ZSB3b24ndCBuZWVkIHRvIHJlY3Vyc2l2ZWx5IHJlbW92ZSBzdWIgY2hpbGRyZW4uXHJcbiAgICAgKiBUaGVuLCB5b3Ugc2ltcGx5IGFkZCBiYWNrIHRoZSBuZXcgY2hpbGRyZW4gYW5kIGNyZWF0ZSBhIG5ldyB0cmVlLlxyXG4gICAgICovXHJcbiAgICBjb25zdCBsaXN0V2l0aERlc2NlbmRhbnROb2Rlc1JlbW92ZWQgPSB0aGlzLnVwZGF0ZVRyZWVGcm9tTGlzdChcclxuICAgICAgdGhpcy5saXN0LmZpbHRlcihpdGVtID0+IGl0ZW0ucGFyZW50SWQgIT09IGtleSksXHJcbiAgICApO1xyXG4gICAgdGhpcy51cGRhdGVUcmVlRnJvbUxpc3QobGlzdFdpdGhEZXNjZW5kYW50Tm9kZXNSZW1vdmVkLmNvbmNhdChjaGlsZHJlbikpO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlVHJlZUZyb21MaXN0KGxpc3Q6IFRbXSkge1xyXG4gICAgdGhpcy50cmVlID0gY3JlYXRlVHJlZUZyb21MaXN0KGxpc3QpO1xyXG4gICAgdGhpcy5saXN0ID0gY3JlYXRlTGlzdEZyb21UcmVlKHRoaXMudHJlZSk7XHJcbiAgICByZXR1cm4gdGhpcy5saXN0O1xyXG4gIH1cclxufVxyXG5cclxuLy8gVVRJTElUWSBGVU5DVElPTlNcclxuXHJcbmZ1bmN0aW9uIGNyZWF0ZVRyZWVGcm9tTGlzdDxUIGV4dGVuZHMgQmFzZU5vZGU+KGxpc3Q6IFRbXSk6IFRyZWVOb2RlPFQ+W10ge1xyXG4gIGNvbnN0IG1hcCA9IGNyZWF0ZU1hcEZyb21MaXN0KGxpc3QpO1xyXG4gIGNvbnN0IHRyZWU6IFRyZWVOb2RlPFQ+W10gPSBbXTtcclxuXHJcbiAgbGlzdC5mb3JFYWNoKHJvdyA9PiB7XHJcbiAgICBjb25zdCBwYXJlbnRJZCA9IHJvdy5wYXJlbnRJZDtcclxuICAgIGNvbnN0IG5vZGUgPSBtYXAuZ2V0KHJvdy5pZCk7XHJcbiAgICBpZiAocGFyZW50SWQpIHtcclxuICAgICAgY29uc3QgcGFyZW50ID0gbWFwLmdldChwYXJlbnRJZCk7XHJcbiAgICAgIGlmICghcGFyZW50KSByZXR1cm47XHJcbiAgICAgIHBhcmVudC5jaGlsZHJlbi5wdXNoKG5vZGUpO1xyXG4gICAgICBwYXJlbnQuaXNMZWFmID0gZmFsc2U7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0cmVlLnB1c2gobm9kZSk7XHJcbiAgICB9XHJcbiAgfSk7XHJcbiAgcmV0dXJuIHRyZWU7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGNyZWF0ZUxpc3RGcm9tVHJlZTxUIGV4dGVuZHMgQmFzZU5vZGU+KHRyZWU6IFRyZWVOb2RlPFQ+W10sIGxpc3Q6IFRbXSA9IFtdKTogVFtdIHtcclxuICB0cmVlLmZvckVhY2gobm9kZSA9PiB7XHJcbiAgICBsaXN0LnB1c2goeyAuLi5ub2RlLmVudGl0eSwgcGFyZW50SWQ6IG5vZGUucGFyZW50SWQgfSk7XHJcbiAgICBpZiAobm9kZS5jaGlsZHJlbikgY3JlYXRlTGlzdEZyb21UcmVlKG5vZGUuY2hpbGRyZW4sIGxpc3QpO1xyXG4gIH0pO1xyXG5cclxuICByZXR1cm4gbGlzdDtcclxufVxyXG5cclxuZnVuY3Rpb24gY3JlYXRlTWFwRnJvbUxpc3Q8VCBleHRlbmRzIEJhc2VOb2RlPihcclxuICBsaXN0OiBUW10sXHJcbiAgbWFwID0gbmV3IE1hcDxzdHJpbmcsIFRyZWVOb2RlPFQ+PigpLFxyXG4pOiBNYXA8c3RyaW5nLCBUcmVlTm9kZTxUPj4ge1xyXG4gIGxpc3QuZm9yRWFjaChyb3cgPT4gbWFwLnNldChyb3cuaWQsIG5ldyBUcmVlTm9kZShyb3cpKSk7XHJcblxyXG4gIHJldHVybiBtYXA7XHJcbn1cclxuIl19
@@ -1,7 +1,7 @@
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
- export * from './lib/disable-tree-style-loading.token';
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
+ export * from './lib/disable-tree-style-loading.token';
7
7
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvdHJlZS9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLDhDQUE4QyxDQUFDO0FBQzdELGNBQWMsa0RBQWtELENBQUM7QUFDakUsY0FBYyx3Q0FBd0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGliL3RyZWUubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy90cmVlLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3V0aWxzL256LXRyZWUtYWRhcHRlcic7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RlbXBsYXRlcy90cmVlLW5vZGUtdGVtcGxhdGUuZGlyZWN0aXZlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdGVtcGxhdGVzL2V4cGFuZGVkLWljb24tdGVtcGxhdGUuZGlyZWN0aXZlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvZGlzYWJsZS10cmVlLXN0eWxlLWxvYWRpbmcudG9rZW4nO1xyXG4iXX0=
@@ -2,87 +2,86 @@ 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
- if (!this.chart)
77
- return;
78
- if (changes.data?.currentValue || changes.options?.currentValue) {
79
- this.chart.destroy();
80
- this.initChart();
81
- }
82
- }
83
- }
84
- ChartComponentfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ChartComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
85
- ChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", 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: `
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
+ if (!this.chart)
77
+ return;
78
+ if (changes.data?.currentValue || changes.options?.currentValue) {
79
+ this.chart.destroy();
80
+ this.initChart();
81
+ }
82
+ }
83
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: ChartComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
84
+ static { thiscmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.1", 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: `
86
85
  <div
87
86
  style="position:relative"
88
87
  [style.width]="responsive && !width ? null : width"
@@ -95,11 +94,12 @@ ChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version
95
94
  (click)="onCanvasClick($event)"
96
95
  ></canvas>
97
96
  </div>
98
- `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
99
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ChartComponent, decorators: [{
100
- type: Component,
101
- args: [{
102
- selector: 'abp-chart',
97
+ `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
98
+ }
99
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: ChartComponent, decorators: [{
100
+ type: Component,
101
+ args: [{
102
+ selector: 'abp-chart',
103
103
  template: `
104
104
  <div
105
105
  style="position:relative"
@@ -113,61 +113,61 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
113
113
  (click)="onCanvasClick($event)"
114
114
  ></canvas>
115
115
  </div>
116
- `,
117
- changeDetection: ChangeDetectionStrategy.OnPush,
118
- exportAs: 'abpChart',
119
- }]
120
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { type: [{
121
- type: Input
122
- }], data: [{
123
- type: Input
124
- }], options: [{
125
- type: Input
126
- }], plugins: [{
127
- type: Input
128
- }], width: [{
129
- type: Input
130
- }], height: [{
131
- type: Input
132
- }], responsive: [{
133
- type: Input
134
- }], dataSelect: [{
135
- type: Output
136
- }], initialized: [{
137
- type: Output
138
- }], canvas: [{
139
- type: ViewChild,
140
- args: ['canvas']
116
+ `,
117
+ changeDetection: ChangeDetectionStrategy.OnPush,
118
+ exportAs: 'abpChart',
119
+ }]
120
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { type: [{
121
+ type: Input
122
+ }], data: [{
123
+ type: Input
124
+ }], options: [{
125
+ type: Input
126
+ }], plugins: [{
127
+ type: Input
128
+ }], width: [{
129
+ type: Input
130
+ }], height: [{
131
+ type: Input
132
+ }], responsive: [{
133
+ type: Input
134
+ }], dataSelect: [{
135
+ type: Output
136
+ }], initialized: [{
137
+ type: Output
138
+ }], canvas: [{
139
+ type: ViewChild,
140
+ args: ['canvas']
141
141
  }] } });
142
142
 
143
- class ChartModule {
144
- }
145
- ChartModulefac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ChartModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
146
- ChartModulemod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.0.4", ngImport: i0, type: ChartModule, declarations: [ChartComponent], imports: [CommonModule], exports: [ChartComponent] });
147
- ChartModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ChartModule, imports: [CommonModule] });
148
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ChartModule, decorators: [{
149
- type: NgModule,
150
- args: [{
151
- imports: [CommonModule],
152
- exports: [ChartComponent],
153
- declarations: [ChartComponent],
154
- providers: [],
155
- }]
143
+ class ChartModule {
144
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: ChartModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
145
+ static { thismod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.0.1", ngImport: i0, type: ChartModule, declarations: [ChartComponent], imports: [CommonModule], exports: [ChartComponent] }); }
146
+ static { thisinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: ChartModule, imports: [CommonModule] }); }
147
+ }
148
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: ChartModule, decorators: [{
149
+ type: NgModule,
150
+ args: [{
151
+ imports: [CommonModule],
152
+ exports: [ChartComponent],
153
+ declarations: [ChartComponent],
154
+ providers: [],
155
+ }]
156
156
  }] });
157
157
 
158
- function getRandomBackgroundColor(count) {
159
- const colors = [];
160
- for (let i = 0; i < count; i++) {
161
- const r = ((i + 5) * (i + 5) * 474) % 255;
162
- const g = ((i + 5) * (i + 5) * 1600) % 255;
163
- const b = ((i + 5) * (i + 5) * 84065) % 255;
164
- colors.push('rgba(' + r + ', ' + g + ', ' + b + ', 0.7)');
165
- }
166
- return colors;
158
+ function getRandomBackgroundColor(count) {
159
+ const colors = [];
160
+ for (let i = 0; i < count; i++) {
161
+ const r = ((i + 5) * (i + 5) * 474) % 255;
162
+ const g = ((i + 5) * (i + 5) * 1600) % 255;
163
+ const b = ((i + 5) * (i + 5) * 84065) % 255;
164
+ colors.push('rgba(' + r + ', ' + g + ', ' + b + ', 0.7)');
165
+ }
166
+ return colors;
167
167
  }
168
168
 
169
- /**
170
- * Generated bundle index. Do not edit.
169
+ /**
170
+ * Generated bundle index. Do not edit.
171
171
  */
172
172
 
173
173
  export { ChartComponent, ChartModule, getRandomBackgroundColor };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"abp-ng.components-chart.js.mjs","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: MouseEvent) {\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: number) {\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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"}