@genexus/genexus-ide-ui 0.0.62 → 0.0.63
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.
- package/dist/cjs/{ch-tree-x_3.cjs.entry.js → ch-checkbox_4.cjs.entry.js} +277 -71
- package/dist/cjs/ch-next-data-modeling-render.cjs.entry.js +242 -0
- package/dist/cjs/{ch-next-data-modeling-item.cjs.entry.js → ch-next-data-modeling_2.cjs.entry.js} +20 -1
- package/dist/cjs/ch-tree-view-render-wrapper.cjs.entry.js +160 -0
- package/dist/cjs/genexus-ide-ui.cjs.js +1 -1
- package/dist/cjs/gx-ide-kb-manager-export.cjs.entry.js +41 -39
- package/dist/cjs/gx-ide-kb-manager-import.cjs.entry.js +23 -11
- package/dist/cjs/gx-ide-test.cjs.entry.js +107 -122
- package/dist/cjs/gxg-color-picker.cjs.entry.js +2 -2
- package/dist/cjs/gxg-title-editable.cjs.entry.js +11 -4
- package/dist/cjs/{gxg-tree_2.cjs.entry.js → gxg-tree-item.cjs.entry.js} +0 -212
- package/dist/cjs/gxg-tree-view.cjs.entry.js +165 -0
- package/dist/cjs/gxg-tree.cjs.entry.js +218 -0
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/collection-manifest.json +5 -3
- package/dist/collection/components/_test/test.css +5 -0
- package/dist/collection/components/_test/test.js +109 -220
- package/dist/collection/components/kb-manager-export/helpers.js +7 -23
- package/dist/collection/components/kb-manager-export/kb-manager-export.css +20 -0
- package/dist/collection/components/kb-manager-export/kb-manager-export.js +42 -22
- package/dist/collection/components/kb-manager-import/gx-ide-assets/kb-manager-import/langs/kb-manager-import.lang.en.json +1 -0
- package/dist/collection/components/kb-manager-import/kb-manager-import.js +23 -11
- package/dist/components/ch-next-data-modeling-item.js +1 -457
- package/dist/components/ch-next-data-modeling-render.js +295 -0
- package/dist/components/ch-next-data-modeling.js +1 -27
- package/dist/components/ch-tree-view-item.js +6 -0
- package/dist/components/ch-tree-view-render-wrapper.js +224 -0
- package/dist/components/ch-tree-view-render.js +6 -0
- package/dist/components/ch-tree-view.js +6 -0
- package/dist/components/gx-ide-kb-manager-export.js +75 -73
- package/dist/components/gx-ide-kb-manager-import.js +38 -20
- package/dist/components/gx-ide-references.js +21 -15
- package/dist/components/gx-ide-test.js +120 -160
- package/dist/components/gxg-color-picker.js +2 -2
- package/dist/components/gxg-title-editable.js +12 -4
- package/dist/components/gxg-tree-item.js +614 -1
- package/dist/components/gxg-tree-view.js +2 -2
- package/dist/components/gxg-tree.js +236 -1
- package/dist/components/index.js +5 -3
- package/dist/components/next-data-modeling-item.js +466 -0
- package/dist/{esm/ch-next-data-modeling.entry.js → components/next-data-modeling.js} +21 -7
- package/dist/components/{tree-x-list-item.js → tree-view-item.js} +9 -9
- package/dist/components/{ch-test-tree-x.js → tree-view-render.js} +168 -28
- package/dist/components/tree-view.js +410 -435
- package/dist/components/tree-view2.js +226 -0
- package/dist/esm/{ch-tree-x_3.entry.js → ch-checkbox_4.entry.js} +275 -70
- package/dist/esm/ch-next-data-modeling-render.entry.js +238 -0
- package/dist/esm/{ch-next-data-modeling-item.entry.js → ch-next-data-modeling_2.entry.js} +21 -3
- package/dist/esm/ch-tree-view-render-wrapper.entry.js +156 -0
- package/dist/esm/genexus-ide-ui.js +1 -1
- package/dist/esm/gx-ide-kb-manager-export.entry.js +41 -39
- package/dist/esm/gx-ide-kb-manager-import.entry.js +23 -11
- package/dist/esm/gx-ide-test.entry.js +108 -123
- package/dist/esm/gxg-color-picker.entry.js +2 -2
- package/dist/esm/gxg-title-editable.entry.js +11 -4
- package/dist/{components/gxg-tree-item2.js → esm/gxg-tree-item.entry.js} +9 -79
- package/dist/esm/gxg-tree-view.entry.js +161 -0
- package/dist/{components/gxg-tree2.js → esm/gxg-tree.entry.js} +8 -32
- package/dist/esm/loader.js +1 -1
- package/dist/genexus-ide-ui/genexus-ide-ui.css +1 -1
- package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
- package/dist/genexus-ide-ui/gx-ide-assets/kb-manager-import/langs/kb-manager-import.lang.en.json +1 -0
- package/dist/genexus-ide-ui/p-13177896.entry.js +1 -0
- package/dist/genexus-ide-ui/p-19fef562.entry.js +1 -0
- package/dist/genexus-ide-ui/p-2781b92a.entry.js +1 -0
- package/dist/genexus-ide-ui/p-2c17e71d.entry.js +1 -0
- package/dist/genexus-ide-ui/p-40a57a36.entry.js +1 -0
- package/dist/genexus-ide-ui/p-636d02fa.entry.js +1 -0
- package/dist/genexus-ide-ui/p-7b63be93.entry.js +1 -0
- package/dist/genexus-ide-ui/p-8a7c4561.entry.js +1 -0
- package/dist/genexus-ide-ui/p-a2cb0e6b.entry.js +1 -0
- package/dist/genexus-ide-ui/p-a9c8b373.entry.js +1 -0
- package/dist/genexus-ide-ui/p-b819706e.entry.js +1 -0
- package/dist/genexus-ide-ui/p-bacd879c.entry.js +1 -0
- package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/next/data-modeling-render/next-data-modeling-render.css +3 -0
- package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/renders/tree-view/tree-view-render.css +3 -0
- package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/test/test-tree-view/tree-view-render-wrapper.css +0 -0
- package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/tree-view/tree-view/tree-view.css +45 -0
- package/dist/node_modules/@genexus/gemini/dist/collection/components/title-editable/title-editable.css +17 -3
- package/dist/node_modules/@genexus/gemini/dist/collection/components/tree-view/tree-view.css +5 -2
- package/dist/types/common/helpers.d.ts +2 -2
- package/dist/types/components/_test/test.d.ts +3 -35
- package/dist/types/components/kb-manager-export/helpers.d.ts +4 -4
- package/dist/types/components/kb-manager-export/kb-manager-export.d.ts +10 -5
- package/dist/types/components/kb-manager-import/helpers.d.ts +3 -3
- package/dist/types/components/kb-manager-import/kb-manager-import.d.ts +7 -6
- package/dist/types/components/references/helpers.d.ts +2 -2
- package/dist/types/components/references/references.d.ts +3 -3
- package/dist/types/components.d.ts +3 -60
- package/package.json +3 -3
- package/dist/cjs/ch-checkbox.cjs.entry.js +0 -93
- package/dist/cjs/ch-next-data-modeling.cjs.entry.js +0 -19
- package/dist/cjs/ch-test-tree-x.cjs.entry.js +0 -458
- package/dist/components/ch-tree-x-list-item.js +0 -6
- package/dist/components/ch-tree-x.js +0 -6
- package/dist/components/tree-x.js +0 -504
- package/dist/esm/ch-checkbox.entry.js +0 -89
- package/dist/esm/ch-test-tree-x.entry.js +0 -454
- package/dist/esm/gxg-tree_2.entry.js +0 -757
- package/dist/genexus-ide-ui/p-092ccacd.entry.js +0 -1
- package/dist/genexus-ide-ui/p-1ad68b23.entry.js +0 -3
- package/dist/genexus-ide-ui/p-3442d19a.entry.js +0 -1
- package/dist/genexus-ide-ui/p-39968306.entry.js +0 -1
- package/dist/genexus-ide-ui/p-5755f985.entry.js +0 -1
- package/dist/genexus-ide-ui/p-85597097.entry.js +0 -1
- package/dist/genexus-ide-ui/p-9e530c7d.entry.js +0 -1
- package/dist/genexus-ide-ui/p-ad5040e4.entry.js +0 -1
- package/dist/genexus-ide-ui/p-aeb3b032.entry.js +0 -1
- package/dist/genexus-ide-ui/p-c53522c9.entry.js +0 -1
- package/dist/genexus-ide-ui/p-d104f9a4.entry.js +0 -1
- package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/test/test-tree-x.css +0 -3
- package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/tree-view/tree-x/tree-x.css +0 -45
- /package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/tree-view/{tree-x-list-item/tree-x-list-item.css → tree-view-item/tree-view-item.css} +0 -0
|
@@ -1,64 +1,32 @@
|
|
|
1
1
|
/* STENCIL IMPORTS */
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
import {
|
|
3
|
+
// Host,
|
|
4
|
+
h } from "@stencil/core";
|
|
5
5
|
/* CUSTOM IMPORTS */
|
|
6
6
|
export class GxIdeTest {
|
|
7
7
|
constructor() {
|
|
8
|
+
/* THIS IS A COMPONENT FOR TESTING PURPOSES. DO WHATEVER YOU WANT.*/
|
|
9
|
+
/*
|
|
10
|
+
INDEX:
|
|
11
|
+
1.OWN PROPERTIES
|
|
12
|
+
2.REFERENCE TO ELEMENTS
|
|
13
|
+
3.STATE() VARIABLES
|
|
14
|
+
4.PUBLIC PROPERTY API | WATCH'S
|
|
15
|
+
5.EVENTS (EMIT)
|
|
16
|
+
6.COMPONENT LIFECYCLE METHODS
|
|
17
|
+
7.LISTENERS
|
|
18
|
+
8.PUBLIC METHODS API
|
|
19
|
+
9.LOCAL METHODS
|
|
20
|
+
10.RENDER() FUNCTION
|
|
21
|
+
*/
|
|
22
|
+
// 1.OWN PROPERTIES //
|
|
8
23
|
this.renderedFirstTime = false;
|
|
24
|
+
// 7.LISTENERS //
|
|
9
25
|
// 8.PUBLIC METHODS API //
|
|
10
26
|
// 9.LOCAL METHODS //
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
this.tree.toggleItems(["number-1-1-2"], false);
|
|
27
|
+
this.checkAllHandler = () => {
|
|
28
|
+
this.treeViewEl.updateAllItemsProperties({ checked: true });
|
|
14
29
|
};
|
|
15
|
-
this.openTreeNodeHandler = () => {
|
|
16
|
-
this.tree.toggleItems(["number-1-1-2"], true);
|
|
17
|
-
};
|
|
18
|
-
this.toggleTreeNodeHandler = () => {
|
|
19
|
-
this.tree.toggleItems(["number-1-1-2"]);
|
|
20
|
-
};
|
|
21
|
-
this.getSelectedItemsHandler = () => {
|
|
22
|
-
(async () => {
|
|
23
|
-
const selected = await this.tree.getSelectedItems();
|
|
24
|
-
console.log(selected);
|
|
25
|
-
})();
|
|
26
|
-
};
|
|
27
|
-
this.getCheckedItemsHandler = () => {
|
|
28
|
-
(async () => {
|
|
29
|
-
const checked = await this.tree.getCheckedItems();
|
|
30
|
-
console.log(checked);
|
|
31
|
-
})();
|
|
32
|
-
};
|
|
33
|
-
this.deleteNodeHandler = () => {
|
|
34
|
-
this.treeModel = [];
|
|
35
|
-
};
|
|
36
|
-
/* Update model test*/
|
|
37
|
-
// private showTree = () => {
|
|
38
|
-
// this.treeModel = [];
|
|
39
|
-
// };
|
|
40
|
-
// private updateTree = () => {
|
|
41
|
-
// this.treeModel = [];
|
|
42
|
-
// };
|
|
43
|
-
this.treeItemStateChangedHandler = (e) => {
|
|
44
|
-
// const event = e.detail.emittedBy;
|
|
45
|
-
const nodeData = e.detail.itemData;
|
|
46
|
-
const nodeId = e.detail.itemData.id;
|
|
47
|
-
if (nodeData.lazy) {
|
|
48
|
-
this.updateLazyCallback(nodeId).then(children => {
|
|
49
|
-
if (children === null || children === void 0 ? void 0 : children.length) {
|
|
50
|
-
const updatedTreeModel = updateTreeModel(this.treeModel, { id: nodeId, label: nodeData.label, items: children }, nodeId);
|
|
51
|
-
this.treeModel = updatedTreeModel;
|
|
52
|
-
}
|
|
53
|
-
});
|
|
54
|
-
}
|
|
55
|
-
};
|
|
56
|
-
this.treeModel = undefined;
|
|
57
|
-
this.lazyNode = undefined;
|
|
58
|
-
this.updateLazyCallback = undefined;
|
|
59
|
-
this.newNode = undefined;
|
|
60
|
-
this.testUpdateNode = false;
|
|
61
|
-
this.lazyLoadTreeItemsCallback = undefined;
|
|
62
30
|
}
|
|
63
31
|
// 6.COMPONENT LIFECYCLE METHODS //
|
|
64
32
|
componentDidRender() {
|
|
@@ -67,33 +35,97 @@ export class GxIdeTest {
|
|
|
67
35
|
this.renderedFirstTime = true;
|
|
68
36
|
}
|
|
69
37
|
}
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
38
|
+
componentDidLoad() {
|
|
39
|
+
this.treeViewEl.treeModel = [
|
|
40
|
+
{
|
|
41
|
+
id: "number-1",
|
|
42
|
+
caption: "number-1 label (always editable)",
|
|
43
|
+
class: "tree-view-item tree-view-item--success",
|
|
44
|
+
leaf: false,
|
|
45
|
+
leftImgSrc: "./objects/datastore",
|
|
46
|
+
editable: true,
|
|
47
|
+
checkbox: true,
|
|
48
|
+
items: [
|
|
49
|
+
{
|
|
50
|
+
id: "number-1-1",
|
|
51
|
+
caption: "number-1-1 (always editable)",
|
|
52
|
+
leaf: false,
|
|
53
|
+
leftImgSrc: "/build/ch-icon-assets/patterns",
|
|
54
|
+
editable: true,
|
|
55
|
+
checkbox: true,
|
|
56
|
+
items: [
|
|
57
|
+
{
|
|
58
|
+
id: "number-1-1-1",
|
|
59
|
+
caption: "number-1-1-1",
|
|
60
|
+
leaf: true,
|
|
61
|
+
checkbox: true,
|
|
62
|
+
leftImgSrc: "./objects/knowledge-base"
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
id: "number-1-1-2",
|
|
66
|
+
caption: "number-1-1-2",
|
|
67
|
+
leaf: false,
|
|
68
|
+
checkbox: true,
|
|
69
|
+
leftImgSrc: "./objects/knowledge-base",
|
|
70
|
+
items: [
|
|
71
|
+
{
|
|
72
|
+
id: "number-1-1-2-1",
|
|
73
|
+
caption: "number-1-1-2-1 (lazy, drag disabled)",
|
|
74
|
+
leaf: false,
|
|
75
|
+
leftImgSrc: "./objects/knowledge-base",
|
|
76
|
+
lazy: true,
|
|
77
|
+
checkbox: true,
|
|
78
|
+
dragDisabled: true,
|
|
79
|
+
toggleCheckboxes: true
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
id: "number-1-1-2-2",
|
|
83
|
+
caption: "number-1-1-2-2",
|
|
84
|
+
leaf: true,
|
|
85
|
+
checkbox: true,
|
|
86
|
+
leftImgSrc: "/build/ch-icon-assets/java"
|
|
87
|
+
}
|
|
88
|
+
]
|
|
89
|
+
}
|
|
90
|
+
]
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
id: "number-1-2",
|
|
94
|
+
caption: "number-1-2",
|
|
95
|
+
leaf: true,
|
|
96
|
+
checkbox: true,
|
|
97
|
+
leftImgSrc: "./objects/knowledge-base"
|
|
98
|
+
}
|
|
99
|
+
]
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
id: "number-2",
|
|
103
|
+
caption: "number-2",
|
|
104
|
+
class: "tree-view-item tree-view-item--custom-image",
|
|
105
|
+
checkbox: true,
|
|
106
|
+
leaf: false,
|
|
107
|
+
items: [
|
|
108
|
+
{
|
|
109
|
+
id: "number-2-1",
|
|
110
|
+
caption: "number-2-1",
|
|
111
|
+
leaf: true,
|
|
112
|
+
checkbox: true,
|
|
113
|
+
leftImgSrc: "/build/ch-icon-assets/java"
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
id: "number-2-2",
|
|
117
|
+
caption: "number-2-2",
|
|
118
|
+
leaf: true,
|
|
119
|
+
checkbox: true,
|
|
120
|
+
leftImgSrc: "./objects/knowledge-base"
|
|
121
|
+
}
|
|
122
|
+
]
|
|
123
|
+
}
|
|
124
|
+
];
|
|
85
125
|
}
|
|
86
126
|
// 10.RENDER() FUNCTION //
|
|
87
127
|
render() {
|
|
88
|
-
|
|
89
|
-
return (h(Host, null, h("gxg-tree", { checked: true, checkbox: true, multiSelection: true, ref: (el) => (this.tree = el) }, renderTreeItems(this.treeModel)), ",", h("div", { class: "tree-buttons" }, h("gxg-button", { type: "outlined", onClick: this.closeTreeNodeHandler }, "Close 1-1-2"), h("gxg-button", { type: "outlined", onClick: this.openTreeNodeHandler }, "Open 1-1-2"), h("gxg-button", { type: "outlined", onClick: this.toggleTreeNodeHandler }, "Toggle 1-1-2"), h("gxg-button", { type: "outlined", onClick: this.getSelectedItemsHandler }, "Get Selected Items"), h("gxg-button", { type: "outlined", onClick: this.getCheckedItemsHandler }, "Get Checked Items"), h("gxg-button", { type: "outlined", onClick: this.deleteNodeHandler }, "Delete Tree"))));
|
|
90
|
-
}
|
|
91
|
-
else if (this.testUpdateNode) {
|
|
92
|
-
return (h(Host, null, h("gxg-tree", { checked: true, checkbox: true, multiSelection: true, ref: (el) => (this.tree = el), onTreeItemStateChanged: this.treeItemStateChangedHandler }, renderTreeItems(this.treeModel))));
|
|
93
|
-
}
|
|
94
|
-
else {
|
|
95
|
-
return h("slot", null);
|
|
96
|
-
}
|
|
128
|
+
return (h("div", null, h("div", { class: "tree-container" }, h("gxg-tree-view", { ref: el => (this.treeViewEl = el) })), h("label", null, "Check item", h("input", { type: "checkbox", name: "", id: "check-all", onInput: this.checkAllHandler }))));
|
|
97
129
|
}
|
|
98
130
|
static get is() { return "gx-ide-test"; }
|
|
99
131
|
static get encapsulation() { return "shadow"; }
|
|
@@ -107,134 +139,6 @@ export class GxIdeTest {
|
|
|
107
139
|
"$": ["test.css"]
|
|
108
140
|
};
|
|
109
141
|
}
|
|
110
|
-
static get properties() {
|
|
111
|
-
return {
|
|
112
|
-
"treeModel": {
|
|
113
|
-
"type": "unknown",
|
|
114
|
-
"mutable": true,
|
|
115
|
-
"complexType": {
|
|
116
|
-
"original": "GxgTreeItemData[]",
|
|
117
|
-
"resolved": "GxgTreeItemData[]",
|
|
118
|
-
"references": {
|
|
119
|
-
"GxgTreeItemData": {
|
|
120
|
-
"location": "import",
|
|
121
|
-
"path": "@genexus/gemini/dist/types/components/tree-item/gxg-tree-item"
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
},
|
|
125
|
-
"required": false,
|
|
126
|
-
"optional": false,
|
|
127
|
-
"docs": {
|
|
128
|
-
"tags": [],
|
|
129
|
-
"text": "The model for a gxg-tree"
|
|
130
|
-
}
|
|
131
|
-
},
|
|
132
|
-
"lazyNode": {
|
|
133
|
-
"type": "unknown",
|
|
134
|
-
"mutable": false,
|
|
135
|
-
"complexType": {
|
|
136
|
-
"original": "GxgTreeItemData[]",
|
|
137
|
-
"resolved": "GxgTreeItemData[]",
|
|
138
|
-
"references": {
|
|
139
|
-
"GxgTreeItemData": {
|
|
140
|
-
"location": "import",
|
|
141
|
-
"path": "@genexus/gemini/dist/types/components/tree-item/gxg-tree-item"
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
},
|
|
145
|
-
"required": false,
|
|
146
|
-
"optional": false,
|
|
147
|
-
"docs": {
|
|
148
|
-
"tags": [],
|
|
149
|
-
"text": "A new lazy node"
|
|
150
|
-
}
|
|
151
|
-
},
|
|
152
|
-
"updateLazyCallback": {
|
|
153
|
-
"type": "unknown",
|
|
154
|
-
"mutable": false,
|
|
155
|
-
"complexType": {
|
|
156
|
-
"original": "(\n id: string\n ) => Promise<GxgTreeItemData[]>",
|
|
157
|
-
"resolved": "(id: string) => Promise<GxgTreeItemData[]>",
|
|
158
|
-
"references": {
|
|
159
|
-
"Promise": {
|
|
160
|
-
"location": "global"
|
|
161
|
-
},
|
|
162
|
-
"GxgTreeItemData": {
|
|
163
|
-
"location": "import",
|
|
164
|
-
"path": "@genexus/gemini/dist/types/components/tree-item/gxg-tree-item"
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
},
|
|
168
|
-
"required": false,
|
|
169
|
-
"optional": false,
|
|
170
|
-
"docs": {
|
|
171
|
-
"tags": [],
|
|
172
|
-
"text": "A new lazy node"
|
|
173
|
-
}
|
|
174
|
-
},
|
|
175
|
-
"newNode": {
|
|
176
|
-
"type": "unknown",
|
|
177
|
-
"mutable": true,
|
|
178
|
-
"complexType": {
|
|
179
|
-
"original": "GxgTreeItemData[]",
|
|
180
|
-
"resolved": "GxgTreeItemData[]",
|
|
181
|
-
"references": {
|
|
182
|
-
"GxgTreeItemData": {
|
|
183
|
-
"location": "import",
|
|
184
|
-
"path": "@genexus/gemini/dist/types/components/tree-item/gxg-tree-item"
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
},
|
|
188
|
-
"required": false,
|
|
189
|
-
"optional": false,
|
|
190
|
-
"docs": {
|
|
191
|
-
"tags": [],
|
|
192
|
-
"text": "The new tree node to update"
|
|
193
|
-
}
|
|
194
|
-
},
|
|
195
|
-
"testUpdateNode": {
|
|
196
|
-
"type": "boolean",
|
|
197
|
-
"mutable": false,
|
|
198
|
-
"complexType": {
|
|
199
|
-
"original": "false",
|
|
200
|
-
"resolved": "boolean",
|
|
201
|
-
"references": {}
|
|
202
|
-
},
|
|
203
|
-
"required": false,
|
|
204
|
-
"optional": false,
|
|
205
|
-
"docs": {
|
|
206
|
-
"tags": [],
|
|
207
|
-
"text": "Update tree model test"
|
|
208
|
-
},
|
|
209
|
-
"attribute": "test-update-node",
|
|
210
|
-
"reflect": false,
|
|
211
|
-
"defaultValue": "false"
|
|
212
|
-
},
|
|
213
|
-
"lazyLoadTreeItemsCallback": {
|
|
214
|
-
"type": "unknown",
|
|
215
|
-
"mutable": false,
|
|
216
|
-
"complexType": {
|
|
217
|
-
"original": "(\n treeItemId: string\n ) => Promise<GxgTreeItemData[]>",
|
|
218
|
-
"resolved": "(treeItemId: string) => Promise<GxgTreeItemData[]>",
|
|
219
|
-
"references": {
|
|
220
|
-
"Promise": {
|
|
221
|
-
"location": "global"
|
|
222
|
-
},
|
|
223
|
-
"GxgTreeItemData": {
|
|
224
|
-
"location": "import",
|
|
225
|
-
"path": "@genexus/gemini/dist/types/components/tree-item/gxg-tree-item"
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
},
|
|
229
|
-
"required": false,
|
|
230
|
-
"optional": false,
|
|
231
|
-
"docs": {
|
|
232
|
-
"tags": [],
|
|
233
|
-
"text": "A callback that returns a Promise with the new tree model"
|
|
234
|
-
}
|
|
235
|
-
}
|
|
236
|
-
};
|
|
237
|
-
}
|
|
238
142
|
static get events() {
|
|
239
143
|
return [{
|
|
240
144
|
"method": "componentDidRenderFirstTime",
|
|
@@ -256,19 +160,4 @@ export class GxIdeTest {
|
|
|
256
160
|
}
|
|
257
161
|
}];
|
|
258
162
|
}
|
|
259
|
-
static get listeners() {
|
|
260
|
-
return [{
|
|
261
|
-
"name": "loadLazyChildren",
|
|
262
|
-
"method": "loadLazyChildrenHandler",
|
|
263
|
-
"target": undefined,
|
|
264
|
-
"capture": false,
|
|
265
|
-
"passive": false
|
|
266
|
-
}, {
|
|
267
|
-
"name": "treeItemStateChanged",
|
|
268
|
-
"method": "treeItemStateChanged",
|
|
269
|
-
"target": undefined,
|
|
270
|
-
"capture": false,
|
|
271
|
-
"passive": false
|
|
272
|
-
}];
|
|
273
|
-
}
|
|
274
163
|
}
|
|
@@ -7,21 +7,10 @@ INDEX:
|
|
|
7
7
|
5. findObjectInTree
|
|
8
8
|
6. findPropertyInTree
|
|
9
9
|
7. convertPropertyToTreeItem
|
|
10
|
-
8.
|
|
10
|
+
8. updateTreeModelWithObjects
|
|
11
11
|
9. convertKbPropertiesDataToTreeItemData
|
|
12
12
|
10. clearKbPropertiesFromTree
|
|
13
13
|
*/
|
|
14
|
-
/* 1.1 getIcon (for objects)*/
|
|
15
|
-
const getObjectIcon = (typeId, objectTypes) => {
|
|
16
|
-
// The object icon has to be retrieved from the ObjetTypes array, by matching the ObjectData typeId with the ObjectType id.
|
|
17
|
-
const objectType = objectTypes.find(objectType => objectType.id === typeId);
|
|
18
|
-
if (objectType) {
|
|
19
|
-
return objectType.icon;
|
|
20
|
-
}
|
|
21
|
-
else {
|
|
22
|
-
return undefined;
|
|
23
|
-
}
|
|
24
|
-
};
|
|
25
14
|
/* 1.2 getIcon (for properties)*/
|
|
26
15
|
const getPropertyIcon = (typeId, kbPropertiesTypes) => {
|
|
27
16
|
// The object icon has to be retrieved from the ObjetTypes array, by matching the ObjectData typeId with the ObjectType id.
|
|
@@ -48,17 +37,11 @@ const convertObjectTypeToTreeItem = (objectType) => ({
|
|
|
48
37
|
const convertObjectToTreeItem = (object, objectTypes) => ({
|
|
49
38
|
caption: object.name,
|
|
50
39
|
id: object.id,
|
|
51
|
-
leftImgSrc:
|
|
40
|
+
leftImgSrc: objectTypes.get(object.typeId).icon,
|
|
52
41
|
checkbox: true,
|
|
53
42
|
class: "object tree-view-item",
|
|
54
43
|
leaf: true
|
|
55
44
|
});
|
|
56
|
-
/* 4. getObjectType*/
|
|
57
|
-
const getObjectType = (object, objectTypes) => {
|
|
58
|
-
return objectTypes.find(objectType => {
|
|
59
|
-
return objectType.id === object.typeId;
|
|
60
|
-
});
|
|
61
|
-
};
|
|
62
45
|
/* 5. findObjectInTree*/
|
|
63
46
|
const findObjectInTree = (object, actualTreeState) => {
|
|
64
47
|
var _a;
|
|
@@ -99,12 +82,13 @@ const convertPropertyToTreeItem = (property, kbPropertiesTypes) => ({
|
|
|
99
82
|
caption: property.name,
|
|
100
83
|
id: property.id,
|
|
101
84
|
leftImgSrc: getPropertyIcon(property.typeId, kbPropertiesTypes),
|
|
102
|
-
checkbox: true,
|
|
85
|
+
// checkbox: true,
|
|
103
86
|
class: "property tree-view-item",
|
|
87
|
+
metadata: "property",
|
|
104
88
|
leaf: true
|
|
105
89
|
});
|
|
106
|
-
/* 8.
|
|
107
|
-
export const
|
|
90
|
+
/* 8. updateTreeModelWithObjects*/
|
|
91
|
+
export const updateTreeModelWithObjects = (objects, objectTypes, actualTreeState) => {
|
|
108
92
|
const updatedTreeData = [...actualTreeState];
|
|
109
93
|
if (!objects) {
|
|
110
94
|
// nothing to do
|
|
@@ -119,7 +103,7 @@ export const convertObjectDataToTreeItemData = (objects, objectTypes, actualTree
|
|
|
119
103
|
// if the objectType tree node exists, insert inside.
|
|
120
104
|
// if the objectType tree node does not exists, create object type node first.
|
|
121
105
|
if (objectTreeItemInfo.objectTypeIndex === -1) {
|
|
122
|
-
const objectType =
|
|
106
|
+
const objectType = objectTypes.get(object.typeId);
|
|
123
107
|
if (objectType !== undefined) {
|
|
124
108
|
const objectTypeTreeItem = convertObjectTypeToTreeItem(objectType);
|
|
125
109
|
objectTreeItemInfo.objectTypeIndex =
|
|
@@ -202,6 +202,13 @@ gxg-tabs {
|
|
|
202
202
|
align-items: center;
|
|
203
203
|
justify-content: center;
|
|
204
204
|
}
|
|
205
|
+
.tree-container .tree-view-item.object-type {
|
|
206
|
+
animation-duration: 200ms;
|
|
207
|
+
animation-fill-mode: forwards;
|
|
208
|
+
}
|
|
209
|
+
.tree-container--export-all .tree-view-item.object-type {
|
|
210
|
+
animation-name: toggleTreeObjectsVisibility;
|
|
211
|
+
}
|
|
205
212
|
.tree-container .gx-ide-message {
|
|
206
213
|
padding: 100px 0;
|
|
207
214
|
}
|
|
@@ -211,4 +218,17 @@ gxg-tabs {
|
|
|
211
218
|
display: grid;
|
|
212
219
|
gap: var(--gx-ide-grid-column-gap);
|
|
213
220
|
grid-template-columns: 100px 100px;
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
@keyframes toggleTreeObjectsVisibility {
|
|
224
|
+
0% {
|
|
225
|
+
opacity: 1;
|
|
226
|
+
}
|
|
227
|
+
95% {
|
|
228
|
+
opacity: 0;
|
|
229
|
+
}
|
|
230
|
+
100% {
|
|
231
|
+
opacity: 0;
|
|
232
|
+
display: none;
|
|
233
|
+
}
|
|
214
234
|
}
|
|
@@ -3,18 +3,20 @@ import { Host, h } from "@stencil/core";
|
|
|
3
3
|
/* CUSTOM IMPORTS */
|
|
4
4
|
import { Locale } from "../../common/locale";
|
|
5
5
|
import { config } from "../../common/config";
|
|
6
|
-
import {
|
|
6
|
+
import { updateTreeModelWithObjects, convertKbPropertiesDataToTreeItemData, clearKbPropertiesFromTree } from "./helpers";
|
|
7
|
+
const KB_PROPERTIES = "properties";
|
|
7
8
|
export class GxIdeKbManagerExport {
|
|
8
9
|
constructor() {
|
|
9
10
|
this.checkedObjectsIds = [];
|
|
10
11
|
this.checkedPropertiesIds = [];
|
|
11
12
|
this.renderedFirstTime = false;
|
|
13
|
+
this.flattenedObjectTypes = new Map();
|
|
12
14
|
// 7.LISTENERS //
|
|
13
15
|
// 8.PUBLIC METHODS API //
|
|
14
16
|
// 9.LOCAL METHODS //
|
|
15
17
|
this.evaluateObjects = () => {
|
|
16
18
|
var _a;
|
|
17
|
-
this.noObjects = !!(((_a = this.
|
|
19
|
+
this.noObjects = !!(((_a = this.treeModel) === null || _a === void 0 ? void 0 : _a.length) === 0 || !this.treeModel);
|
|
18
20
|
};
|
|
19
21
|
this.optionsCallbackHandler = () => {
|
|
20
22
|
if (this.optionsCallback) {
|
|
@@ -31,14 +33,14 @@ export class GxIdeKbManagerExport {
|
|
|
31
33
|
}
|
|
32
34
|
else {
|
|
33
35
|
// 'convertObjectDataToTreeItemData' can be used for converting KBPropertiesData as well, because the two types share the same properties
|
|
34
|
-
const
|
|
35
|
-
this.
|
|
36
|
+
const newTreeModel = convertKbPropertiesDataToTreeItemData(kBPropertiesData, this.kbPropertiesTypes, this.treeModel);
|
|
37
|
+
this.treeModel = newTreeModel;
|
|
36
38
|
}
|
|
37
39
|
}
|
|
38
40
|
else if (!checked) {
|
|
39
41
|
// previous properties (if any) should be removed
|
|
40
|
-
const objectsWithoutProperties = clearKbPropertiesFromTree(this.
|
|
41
|
-
this.
|
|
42
|
+
const objectsWithoutProperties = clearKbPropertiesFromTree(this.treeModel);
|
|
43
|
+
this.treeModel = objectsWithoutProperties;
|
|
42
44
|
}
|
|
43
45
|
};
|
|
44
46
|
this.addObjectsCallbackHandler = async () => {
|
|
@@ -58,9 +60,9 @@ export class GxIdeKbManagerExport {
|
|
|
58
60
|
*/
|
|
59
61
|
this.updateObjects = (objects) => {
|
|
60
62
|
if (objects.length) {
|
|
61
|
-
const
|
|
62
|
-
|
|
63
|
-
this.
|
|
63
|
+
const newTreeModel = updateTreeModelWithObjects(objects, this.flattenedObjectTypes, this.treeModel);
|
|
64
|
+
console.log(JSON.stringify(newTreeModel, undefined, 2));
|
|
65
|
+
this.treeModel = newTreeModel;
|
|
64
66
|
}
|
|
65
67
|
};
|
|
66
68
|
/*
|
|
@@ -108,12 +110,17 @@ export class GxIdeKbManagerExport {
|
|
|
108
110
|
};
|
|
109
111
|
this.clearButtonHandler = () => {
|
|
110
112
|
/* revisar*/
|
|
113
|
+
console.log("clear button clicked");
|
|
111
114
|
this.objectsTreeEl.updateAllItemsProperties({ checked: false });
|
|
112
115
|
};
|
|
116
|
+
this.exportAllChangedHandler = (event) => {
|
|
117
|
+
this.exportAllIsChecked = event.detail.value;
|
|
118
|
+
};
|
|
119
|
+
this.exportAllIsChecked = false;
|
|
113
120
|
this.fileName = "";
|
|
114
121
|
this.exportFilePathName = undefined;
|
|
115
122
|
this.noObjects = undefined;
|
|
116
|
-
this.
|
|
123
|
+
this.treeModel = [];
|
|
117
124
|
this.dummyInitialTree = undefined;
|
|
118
125
|
this.kbPropertiesTypes = undefined;
|
|
119
126
|
this.objectTypes = undefined;
|
|
@@ -125,17 +132,21 @@ export class GxIdeKbManagerExport {
|
|
|
125
132
|
this.exportCallback = undefined;
|
|
126
133
|
this.cancelCallback = undefined;
|
|
127
134
|
}
|
|
128
|
-
|
|
135
|
+
watchtreeModelHandler(newState) {
|
|
129
136
|
this.noObjects = !!(newState.length === 0 || !newState);
|
|
130
137
|
}
|
|
131
138
|
watchDummyInitialTreeHandler(newTree) {
|
|
132
|
-
this.
|
|
139
|
+
this.treeModel = newTree;
|
|
140
|
+
}
|
|
141
|
+
watchObjectTypeslHandler(newState) {
|
|
142
|
+
this.flattenObjectTypes(newState);
|
|
133
143
|
}
|
|
134
144
|
// 6.COMPONENT LIFECYCLE EVENTS //
|
|
135
145
|
async componentWillLoad() {
|
|
136
146
|
this._componentLocale = await Locale.getComponentStrings(this.el);
|
|
137
147
|
this.componentDidLoadEvent.emit(true);
|
|
138
148
|
this.evaluateObjects();
|
|
149
|
+
this.flattenObjectTypes(this.objectTypes);
|
|
139
150
|
}
|
|
140
151
|
componentDidRender() {
|
|
141
152
|
if (!this.renderedFirstTime) {
|
|
@@ -143,18 +154,23 @@ export class GxIdeKbManagerExport {
|
|
|
143
154
|
this.renderedFirstTime = true;
|
|
144
155
|
}
|
|
145
156
|
}
|
|
157
|
+
flattenObjectTypes(newState) {
|
|
158
|
+
newState.forEach(objectType => {
|
|
159
|
+
this.flattenedObjectTypes.set(objectType.id, objectType);
|
|
160
|
+
});
|
|
161
|
+
}
|
|
146
162
|
// 10.RENDER() FUNCTION //
|
|
147
163
|
render() {
|
|
148
164
|
return (h(Host, { class: "gx-ide-component" }, h("div", { class: "gx-ide-main-wrapper" }, h("gx-ide-container", { noContentPadding: true, noHeadingPadding: true, headingPaddingTop: true, containerTitle: this._componentLocale.componentName, slimmerFooter: config.gxIdeContainer.slimmerFooter }, h("header", { slot: "header", class: "header" }, h("div", { class: "header__top" }, h("gx-ide-directory-selector", { class: { "select-file-input": true }, value: this.exportFilePathName, part: "xpz-file", label: this._componentLocale.header.exportFileName, ref: el => (this.fileNameEl = el), selectDirectoryCallback: this.exportFileDirectoryCallback }), h("gxg-button-group", { class: "export-cancel-buttons-group", "default-selected-btn-id": "responsive-tablet-btn" }, h("button", { id: "export-kb-btn", part: "export-btn", onClick: this.exportCallbackHandler }, this._componentLocale.header.exportButton), h("button", { id: "cancel-kb-export-btn", part: "cancel-button", onClick: this.cancelCallbackHandler }, this._componentLocale.header.cancelButton)), h("gxg-button", { type: "secondary-icon-only", icon: "gemini-tools/settings", part: "select-kb-btn", class: { "options-btn": true }, onClick: this.optionsCallbackHandler }, this._componentLocale.header.optionsButton)), h("div", { class: "header__bottom" }, h("div", { class: { "checkboxes-wrapper": true } }, h("gxg-form-checkbox", { label: this._componentLocale.main.addKnowledgeBaseDescription, onChange: this.addKBPropertiesCallbackHandler, part: "add-kb-checkbox" }), h("gxg-form-checkbox", { label: this._componentLocale.main.exportAll, part: "export-all-checkbox", ref: el => (this.exportAllCheckboxEl =
|
|
149
|
-
el) })))), h("div", { class: {
|
|
165
|
+
el), onChange: this.exportAllChangedHandler })))), h("div", { class: {
|
|
150
166
|
"tree-container": true,
|
|
151
167
|
"tree-container--empty": this.noObjects
|
|
168
|
+
// "tree-container--export-all": this.exportAllIsChecked
|
|
152
169
|
} }, !this.noObjects ? (
|
|
153
170
|
/* objects tree */
|
|
154
|
-
h("
|
|
171
|
+
h("ch-tree-view-render", { treeModel: this.treeModel, dragDisabled: true, dropDisabled: true, toggleCheckboxes: true, checked: true, checkbox: true, filter: KB_PROPERTIES, filterType: this.exportAllIsChecked ? "metadata" : "none", onCheckedItemsChange: this.objectsTreeCheckedItemsChangedHandler, ref: el => (this.objectsTreeEl = el) })) : (h("gxg-text", { textAlign: config.gxgMessage.common.textAlign, padding: config.gxgMessage.common.textAlign, type: config.gxgMessage.common.type, maxWidth: config.gxgMessage.common.maxWidth, class: "gx-ide-message gx-ide-message--short", part: "referenced-by-empty-status-message" }, "There are no Objects to display. ", h("br", null), h("gxg-text", { type: "text-link-no-line", textAlign: "center", onClick: this.addObjectsCallbackHandler }, "Begin by adding some.")))), h("gxg-button", { type: "secondary-text-only", part: "export-button", class: { "cancel-btn": true }, slot: "footer-start", onClick: this.clearButtonHandler }, this._componentLocale.footer.clearButton), h("div", { class: { "footer-right-wrapper": true }, slot: "footer-end" }, h("gxg-button", { onClick: this.addReferencesCallbackHandler, type: "outlined-text-icon", icon: "general/references", part: "export-button", class: { "cancel-btn": true }, disabled: this.exportAllIsChecked }, this._componentLocale.footer.referencesButton), h("gxg-button", { type: "primary-text-icon", icon: "menus/new-object", part: "export-button", class: { "cancel-btn": true }, onClick: this.addObjectsCallbackHandler, disabled: this.exportAllIsChecked, grabAttention: this.noObjects }, this._componentLocale.footer.addButton))))));
|
|
155
172
|
}
|
|
156
173
|
static get is() { return "gx-ide-kb-manager-export"; }
|
|
157
|
-
static get encapsulation() { return "shadow"; }
|
|
158
174
|
static get originalStyleUrls() {
|
|
159
175
|
return {
|
|
160
176
|
"$": ["kb-manager-export.scss"]
|
|
@@ -172,12 +188,12 @@ export class GxIdeKbManagerExport {
|
|
|
172
188
|
"type": "unknown",
|
|
173
189
|
"mutable": false,
|
|
174
190
|
"complexType": {
|
|
175
|
-
"original": "
|
|
176
|
-
"resolved": "
|
|
191
|
+
"original": "TreeViewItemModel[]",
|
|
192
|
+
"resolved": "TreeViewItemModel[]",
|
|
177
193
|
"references": {
|
|
178
|
-
"
|
|
194
|
+
"TreeViewItemModel": {
|
|
179
195
|
"location": "import",
|
|
180
|
-
"path": "@genexus/chameleon-controls-library/dist/types/components/tree-view/tree-
|
|
196
|
+
"path": "@genexus/chameleon-controls-library/dist/types/components/tree-view/tree-view/types"
|
|
181
197
|
}
|
|
182
198
|
}
|
|
183
199
|
},
|
|
@@ -381,10 +397,11 @@ export class GxIdeKbManagerExport {
|
|
|
381
397
|
}
|
|
382
398
|
static get states() {
|
|
383
399
|
return {
|
|
400
|
+
"exportAllIsChecked": {},
|
|
384
401
|
"fileName": {},
|
|
385
402
|
"exportFilePathName": {},
|
|
386
403
|
"noObjects": {},
|
|
387
|
-
"
|
|
404
|
+
"treeModel": {}
|
|
388
405
|
};
|
|
389
406
|
}
|
|
390
407
|
static get events() {
|
|
@@ -423,11 +440,14 @@ export class GxIdeKbManagerExport {
|
|
|
423
440
|
static get elementRef() { return "el"; }
|
|
424
441
|
static get watchers() {
|
|
425
442
|
return [{
|
|
426
|
-
"propName": "
|
|
427
|
-
"methodName": "
|
|
443
|
+
"propName": "treeModel",
|
|
444
|
+
"methodName": "watchtreeModelHandler"
|
|
428
445
|
}, {
|
|
429
446
|
"propName": "dummyInitialTree",
|
|
430
447
|
"methodName": "watchDummyInitialTreeHandler"
|
|
448
|
+
}, {
|
|
449
|
+
"propName": "objectTypes",
|
|
450
|
+
"methodName": "watchObjectTypeslHandler"
|
|
431
451
|
}];
|
|
432
452
|
}
|
|
433
453
|
}
|