@genexus/genexus-ide-ui 1.0.4 → 1.0.5
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/genexus-ide-ui.cjs.js +1 -1
- package/dist/cjs/gx-ide-empty-state.cjs.entry.js +3 -2
- package/dist/cjs/gx-ide-empty-state.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-kb-manager-export.cjs.entry.js +272 -293
- package/dist/cjs/gx-ide-kb-manager-export.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-loader.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-loader.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-recent-news.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-recent-news.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-start-page.cjs.entry.js +4 -3
- package/dist/cjs/gx-ide-start-page.cjs.entry.js.map +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/collection-manifest.json +1 -1
- package/dist/collection/components/_helpers/empty-state/gx-ide-empty-state.css +5 -1
- package/dist/collection/components/_helpers/empty-state/gx-ide-empty-state.js +20 -1
- package/dist/collection/components/_helpers/empty-state/gx-ide-empty-state.js.map +1 -1
- package/dist/collection/components/_helpers/ide-loader/ide-loader.css +2 -2
- package/dist/collection/components/kb-manager-export/gx-ide-assets/kb-manager-export/langs/kb-manager-export.lang.en.json +3 -3
- package/dist/collection/components/kb-manager-export/gx-ide-assets/kb-manager-export/langs/kb-manager-export.lang.ja.json +4 -4
- package/dist/collection/components/kb-manager-export/helpers.js +64 -105
- package/dist/collection/components/kb-manager-export/helpers.js.map +1 -1
- package/dist/collection/components/kb-manager-export/kb-manager-export.css +19 -618
- package/dist/collection/components/kb-manager-export/kb-manager-export.js +345 -377
- package/dist/collection/components/kb-manager-export/kb-manager-export.js.map +1 -1
- package/dist/collection/components/kb-manager-export/types.js +2 -0
- package/dist/collection/components/kb-manager-export/types.js.map +1 -0
- package/dist/collection/components/start-page/recent-news.js +1 -1
- package/dist/collection/components/start-page/recent-news.js.map +1 -1
- package/dist/collection/components/start-page/start-page.js +4 -3
- package/dist/collection/components/start-page/start-page.js.map +1 -1
- package/dist/components/gx-ide-empty-state2.js +4 -2
- package/dist/components/gx-ide-empty-state2.js.map +1 -1
- package/dist/components/gx-ide-kb-manager-export.js +294 -314
- package/dist/components/gx-ide-kb-manager-export.js.map +1 -1
- package/dist/components/gx-ide-start-page.js +4 -3
- package/dist/components/gx-ide-start-page.js.map +1 -1
- package/dist/components/ide-loader.js +1 -1
- package/dist/components/ide-loader.js.map +1 -1
- package/dist/components/recent-news.js +1 -1
- package/dist/components/recent-news.js.map +1 -1
- package/dist/esm/genexus-ide-ui.js +1 -1
- package/dist/esm/gx-ide-empty-state.entry.js +3 -2
- package/dist/esm/gx-ide-empty-state.entry.js.map +1 -1
- package/dist/esm/gx-ide-kb-manager-export.entry.js +273 -294
- package/dist/esm/gx-ide-kb-manager-export.entry.js.map +1 -1
- package/dist/esm/gx-ide-loader.entry.js +1 -1
- package/dist/esm/gx-ide-loader.entry.js.map +1 -1
- package/dist/esm/gx-ide-recent-news.entry.js +1 -1
- package/dist/esm/gx-ide-recent-news.entry.js.map +1 -1
- package/dist/esm/gx-ide-start-page.entry.js +4 -3
- package/dist/esm/gx-ide-start-page.entry.js.map +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
- package/dist/genexus-ide-ui/genexus-ide-ui.esm.js.map +1 -1
- package/dist/genexus-ide-ui/gx-ide-assets/kb-manager-export/langs/kb-manager-export.lang.en.json +3 -3
- package/dist/genexus-ide-ui/gx-ide-assets/kb-manager-export/langs/kb-manager-export.lang.ja.json +4 -4
- package/dist/genexus-ide-ui/p-2cb766ce.entry.js +493 -0
- package/dist/genexus-ide-ui/p-2cb766ce.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-f924f02a.entry.js → p-64101478.entry.js} +2 -2
- package/dist/genexus-ide-ui/p-64101478.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-f220c75a.entry.js → p-885302c2.entry.js} +11 -6
- package/dist/genexus-ide-ui/p-885302c2.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-eb49e4f1.entry.js → p-8ff5da93.entry.js} +36 -31
- package/dist/genexus-ide-ui/p-8ff5da93.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-dd07e68a.entry.js → p-a6b76120.entry.js} +2 -2
- package/dist/genexus-ide-ui/p-a6b76120.entry.js.map +1 -0
- package/dist/types/components/_helpers/empty-state/gx-ide-empty-state.d.ts +4 -0
- package/dist/types/components/kb-manager-export/helpers.d.ts +33 -5
- package/dist/types/components/kb-manager-export/kb-manager-export.d.ts +36 -98
- package/dist/types/components/kb-manager-export/types.d.ts +21 -0
- package/dist/types/components.d.ts +16 -40
- package/package.json +4 -4
- package/dist/genexus-ide-ui/p-b3baa3d2.entry.js +0 -491
- package/dist/genexus-ide-ui/p-b3baa3d2.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-dd07e68a.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-eb49e4f1.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-f220c75a.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-f924f02a.entry.js.map +0 -1
|
@@ -4,35 +4,14 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
4
4
|
|
|
5
5
|
const index = require('./index-b87e3ee0.js');
|
|
6
6
|
const locale = require('./locale-bf43b87c.js');
|
|
7
|
-
const
|
|
7
|
+
const assetsManager = require('./assets-manager-64c42a1e.js');
|
|
8
8
|
|
|
9
9
|
const KB_PROPERTY = "property";
|
|
10
10
|
const KB_OBJECT = "object";
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
3. convertObjectToTreeItem
|
|
16
|
-
4. getObjectType
|
|
17
|
-
5. findObjectInTree
|
|
18
|
-
6. findPropertyInTree
|
|
19
|
-
7. convertPropertyToTreeItem
|
|
20
|
-
8. updateTreeModelWithObjects
|
|
21
|
-
9. convertKbPropertiesDataToTreeItemData
|
|
22
|
-
10. clearKbPropertiesFromTree
|
|
23
|
-
*/
|
|
24
|
-
/* 1.2 getIcon (for properties)*/
|
|
25
|
-
const getPropertyIcon = (typeId, kbPropertiesTypes) => {
|
|
26
|
-
// The object icon has to be retrieved from the ObjetTypes array, by matching the ObjectData typeId with the ObjectType id.
|
|
27
|
-
const propertyType = kbPropertiesTypes.find(propertyType => propertyType.id === typeId);
|
|
28
|
-
if (propertyType) {
|
|
29
|
-
return propertyType.icon;
|
|
30
|
-
}
|
|
31
|
-
else {
|
|
32
|
-
return undefined;
|
|
33
|
-
}
|
|
34
|
-
};
|
|
35
|
-
/* 2. convertObjectTypeToTreeItem*/
|
|
11
|
+
const getPropertyIcon = (typeId, kbPropertiesTypes) =>
|
|
12
|
+
// The object icon has to be retrieved from the ObjectTypes array, by
|
|
13
|
+
// matching the ObjectData typeId with the ObjectType id
|
|
14
|
+
kbPropertiesTypes.find(propertyType => propertyType.id === typeId).icon;
|
|
36
15
|
const convertObjectTypeToTreeItem = (objectType) => ({
|
|
37
16
|
caption: objectType.name,
|
|
38
17
|
id: objectType.id,
|
|
@@ -42,7 +21,6 @@ const convertObjectTypeToTreeItem = (objectType) => ({
|
|
|
42
21
|
expanded: true,
|
|
43
22
|
items: []
|
|
44
23
|
});
|
|
45
|
-
/* 3. convertObjectToTreeItem*/
|
|
46
24
|
const convertObjectToTreeItem = (object, objectTypes) => ({
|
|
47
25
|
caption: object.name,
|
|
48
26
|
id: object.id,
|
|
@@ -51,42 +29,6 @@ const convertObjectToTreeItem = (object, objectTypes) => ({
|
|
|
51
29
|
metadata: KB_OBJECT,
|
|
52
30
|
leaf: true
|
|
53
31
|
});
|
|
54
|
-
/* 5. findObjectInTree*/
|
|
55
|
-
const findObjectInTree = (object, actualTreeState) => {
|
|
56
|
-
var _a;
|
|
57
|
-
const objectTreeItemInfo = {
|
|
58
|
-
objectExists: false,
|
|
59
|
-
objectTypeIndex: -1
|
|
60
|
-
};
|
|
61
|
-
if (actualTreeState) {
|
|
62
|
-
const objectTypeTreeItemIndex = actualTreeState.findIndex(objectTypeTreeItem => {
|
|
63
|
-
return objectTypeTreeItem.id === object.typeId;
|
|
64
|
-
});
|
|
65
|
-
if (objectTypeTreeItemIndex !== -1) {
|
|
66
|
-
objectTreeItemInfo.objectTypeIndex = objectTypeTreeItemIndex;
|
|
67
|
-
// objectType exists as a node in the actual tree.
|
|
68
|
-
// Now try to find the object
|
|
69
|
-
const objectFound = (_a = actualTreeState[objectTypeTreeItemIndex].items) === null || _a === void 0 ? void 0 : _a.find(objectTreeItem => {
|
|
70
|
-
return objectTreeItem.id === object.id;
|
|
71
|
-
});
|
|
72
|
-
if (objectFound) {
|
|
73
|
-
objectTreeItemInfo.objectExists = true;
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
return objectTreeItemInfo;
|
|
78
|
-
};
|
|
79
|
-
/* 6. findPropertyInTree */
|
|
80
|
-
const findPropertyInTree = (property, updatedTreeData) => {
|
|
81
|
-
const found = updatedTreeData.find(node => {
|
|
82
|
-
return node.id === property.id;
|
|
83
|
-
});
|
|
84
|
-
if (found) {
|
|
85
|
-
return true;
|
|
86
|
-
}
|
|
87
|
-
return false;
|
|
88
|
-
};
|
|
89
|
-
/* 7. convertPropertyToTreeItem */
|
|
90
32
|
const convertPropertyToTreeItem = (property, kbPropertiesTypes) => ({
|
|
91
33
|
caption: property.name,
|
|
92
34
|
id: property.id,
|
|
@@ -95,144 +37,245 @@ const convertPropertyToTreeItem = (property, kbPropertiesTypes) => ({
|
|
|
95
37
|
metadata: KB_PROPERTY,
|
|
96
38
|
leaf: true
|
|
97
39
|
});
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
40
|
+
/**
|
|
41
|
+
* Updates the tree model with the provided objects.
|
|
42
|
+
* Objects may already exist and are placed under their parent node.
|
|
43
|
+
* If the parent node doesn't exist (identified by typeId on ObjectTypes),
|
|
44
|
+
* it is created and added at the bottom.
|
|
45
|
+
*
|
|
46
|
+
* @param {ObjectData[] | undefined} objects - The array of objects to update.
|
|
47
|
+
* @param {Map<string, ObjectType>} objectTypesMap - A map of object types by ID.
|
|
48
|
+
* @param {Set<string>} objectsSet - A set of existing object IDs.
|
|
49
|
+
* @param {TreeViewModel} actualTreeState - The current tree state to be updated.
|
|
50
|
+
* @returns {TreeViewModel} - The updated tree view model.
|
|
51
|
+
*/
|
|
52
|
+
const updateObjectsTreeModel = (objects, objectTypesMap, objectsSet, actualTreeState) => {
|
|
101
53
|
if (!objects) {
|
|
102
|
-
|
|
103
|
-
return updatedTreeData;
|
|
54
|
+
return [...actualTreeState];
|
|
104
55
|
}
|
|
56
|
+
const updatedTreeData = [...actualTreeState];
|
|
105
57
|
objects.forEach(object => {
|
|
106
58
|
// objects that already exists in the actual actualTreeState should not be added.
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
59
|
+
if (objectsSet.has(object.id)) {
|
|
60
|
+
// object already exists
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
const objectTreeItem = convertObjectToTreeItem(object, objectTypesMap);
|
|
64
|
+
// TODO: Improve the algorithm efficiency. This check visits potentially all nodes
|
|
65
|
+
// from the TreeViewModel on each iteration. Using a Map to pre-store the TreeView
|
|
66
|
+
// nodes would improve efficiency.
|
|
67
|
+
const objectTypeTreeItemIndex = updatedTreeData.findIndex(treeItem => treeItem.id === object.typeId);
|
|
68
|
+
if (objectTypeTreeItemIndex === -1) {
|
|
69
|
+
// Create and add new object type tree item
|
|
70
|
+
const objectType = objectTypesMap.get(object.typeId);
|
|
71
|
+
if (objectType) {
|
|
72
|
+
const objectTypeTreeItem = convertObjectTypeToTreeItem(objectType);
|
|
73
|
+
objectTypeTreeItem.items.push(objectTreeItem);
|
|
74
|
+
updatedTreeData.push(objectTypeTreeItem);
|
|
120
75
|
}
|
|
121
|
-
const objectAsTreeItem = convertObjectToTreeItem(object, objectTypes);
|
|
122
|
-
// insert object in tree (under the object type tree node)
|
|
123
|
-
updatedTreeData[objectTreeItemInfo.objectTypeIndex].items.push(objectAsTreeItem);
|
|
124
76
|
}
|
|
77
|
+
else {
|
|
78
|
+
// objectType exists already. insert object as children of the object type tree item.
|
|
79
|
+
updatedTreeData[objectTypeTreeItemIndex].items.push(objectTreeItem);
|
|
80
|
+
}
|
|
81
|
+
objectsSet.add(object.id);
|
|
125
82
|
});
|
|
126
83
|
return updatedTreeData;
|
|
127
84
|
};
|
|
128
|
-
|
|
85
|
+
/**
|
|
86
|
+
* Converts an array of KB properties data into tree item data for a tree view.
|
|
87
|
+
*
|
|
88
|
+
* @param {KBPropertyData[]} properties - The array of KB property data.
|
|
89
|
+
* @param {KBPropertyType[]} kbPropertiesTypes - The array of KB property types.
|
|
90
|
+
* @param {TreeViewModel} actualTreeState - The current state of the tree.
|
|
91
|
+
* @returns {TreeViewModel} - The updated tree view item models.
|
|
92
|
+
*/
|
|
129
93
|
const convertKbPropertiesDataToTreeItemData = (properties, kbPropertiesTypes, actualTreeState) => {
|
|
130
|
-
const updatedTreeData = [...actualTreeState];
|
|
131
94
|
if (!properties) {
|
|
132
|
-
|
|
133
|
-
return updatedTreeData;
|
|
95
|
+
return [...actualTreeState];
|
|
134
96
|
}
|
|
97
|
+
const updatedTreeData = [...actualTreeState];
|
|
135
98
|
properties.forEach(property => {
|
|
136
99
|
// properties have no parent node, and they should be added at the beginning of the tree
|
|
137
|
-
const propertyAlreadyExists =
|
|
138
|
-
if (
|
|
139
|
-
|
|
140
|
-
updatedTreeData.unshift(propertyTreeItem);
|
|
100
|
+
const propertyAlreadyExists = updatedTreeData.find(node => node.id === property.id) !== undefined;
|
|
101
|
+
if (propertyAlreadyExists) {
|
|
102
|
+
return;
|
|
141
103
|
}
|
|
104
|
+
const propertyTreeItem = convertPropertyToTreeItem(property, kbPropertiesTypes);
|
|
105
|
+
updatedTreeData.unshift(propertyTreeItem);
|
|
142
106
|
});
|
|
143
107
|
return updatedTreeData;
|
|
144
108
|
};
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
const treeModelWithoutKbProperties = actualTreeState.filter(item => {
|
|
155
|
-
return !kBPropertiesDataIds.includes(item.id);
|
|
156
|
-
});
|
|
157
|
-
return treeModelWithoutKbProperties;
|
|
158
|
-
};
|
|
109
|
+
/**
|
|
110
|
+
* Removes properties from the tree model.
|
|
111
|
+
*
|
|
112
|
+
* @param {TreeViewModel} actualTreeState - The current state of the tree,
|
|
113
|
+
* containing various tree view items.
|
|
114
|
+
* @returns {TreeViewModel} - A new array of tree view items that excludes
|
|
115
|
+
* any items with metadata of type `KB_PROPERTY`.
|
|
116
|
+
*/
|
|
117
|
+
const clearKbPropertiesFromTree = (actualTreeState) => actualTreeState.filter(item => item.metadata !== KB_PROPERTY);
|
|
159
118
|
|
|
160
|
-
const kbManagerExportCss = ":root{--ui-animaton-speed:0.2s}.gxg-title-01{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-01-font-weight);font-size:var(--ds-title-01-font-size);letter-spacing:var(--ds-base-font-letter-spacing--comfortable);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-01--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-01-font-weight);font-size:var(--ds-title-01-font-size);letter-spacing:var(--ds-base-font-letter-spacing--comfortable);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-title-02{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-02-font-weight);font-size:var(--ds-title-02-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;text-transform:uppercase;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-02--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-02-font-weight);font-size:var(--ds-title-02-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;text-transform:uppercase;line-height:var(--ds-base-font-line-height--comfortable);color:var(--color-on-primary)}.gxg-title-03{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-03-font-weight);font-size:var(--ds-title-03-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;text-transform:uppercase;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-03--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-03-font-weight);font-size:var(--ds-title-03-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;text-transform:uppercase;line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-title-04{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-04-font-weight);font-size:var(--ds-title-04-font-size);letter-spacing:var(--ds-base-font-letter-spacing--comfortable);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-04--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-04-font-weight);font-size:var(--ds-title-04-font-size);letter-spacing:var(--ds-base-font-letter-spacing--comfortable);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-title-05{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-05-font-weight);font-size:var(--ds-title-05-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-05--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-05-font-weight);font-size:var(--ds-title-05-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-text{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable)}.gxg-text--negative{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-text--gray{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--dimmed)}.gxg-quote{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);font-style:italic}.gxg-quote--negative{color:var(--ds-base-font-color--negative)}.gxg-link{line-height:unset;font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--link);text-decoration:underline;cursor:pointer;display:inline-block}.gxg-link:hover{color:var(--ds-base-font-color--link-hover)}.gxg-link:active{color:var(--ds-base-font-color--link-active)}.gxg-link-gray{line-height:unset;font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--link);text-decoration:underline;cursor:pointer;display:inline-block;color:var(--ds-base-font-color--dimmed)}.gxg-link-gray:hover{line-height:unset;font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--link);text-decoration:underline;cursor:pointer;display:inline-block;color:var(--ds-base-font-color--dimmed);filter:brightness(1.4)}.gxg-alert-error{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--error);display:inline-block}.gxg-alert-warning{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--warning);display:inline-block}.gxg-alert-success{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--success);display:inline-block}.gxg-tab--disabled{color:var(--color-primary-disabled);pointer-events:none}.gxg-tab--disabled[disabled]{color:var(--color-primary-disabled);pointer-events:none}.gxg-label{font-family:var(--ds-base-font-family-primary);font-weight:var(--gxg-label-font-weight);font-size:var(--gxg-label-font-size);color:var(--gxg-label-color);text-align:center;line-height:1.455em;display:flex;align-items:center}.gxg-label:hover{color:var(--color-primary-hover)}.gxg-label:focus{color:var(--color-primary-active)}.gxg-label:active{color:var(--color-primary-active)}.gxg-label[disabled]{color:var(--color-primary-disabled)}.gxg-label--negative{color:var(--color-on-primary)}.gxg-label--negative[disabled]{color:var(--color-on-disabled)}.gxg-scrollbar{}.gxg-scrollbar::-webkit-scrollbar{width:var(--gxg-scrollbar-width);height:var(--gxg-scrollbar-width)}.gxg-scrollbar::-webkit-scrollbar-track{background-color:var(--gxg-scrollbar-track-background);border-radius:var(--gxg-scrollbar-track-border-radius)}.gxg-scrollbar::-webkit-scrollbar-thumb{background-color:var(--gxg-scrollbar-track-thumb-background);border-radius:var(--gxg-scrollbar-track-thumb-radius)}.gxg-scrollbar::-webkit-scrollbar-thumb:hover{background-color:var(--gxg-scrollbar-track-thumb-hover-background)}.gxg-scrollbar::-webkit-scrollbar-corner{background:rgba(0, 0, 0, 0)}:host{display:grid;block-size:100%}.card-regular{background-color:var(--mer-surface__elevation--01);border:var(--mer-border__width--sm) solid var(--mer-border-color__on-elevation--01);border-radius:var(--mer-border__radius--md);padding:var(--mer-spacing--md) var(--mer-spacing--md);display:grid}.card-small{background-color:var(--mer-surface__elevation--02);border-radius:var(--mer-border__radius--sm);padding:var(--mer-spacing--sm) var(--mer-spacing--sm)}.card-small--actionable:hover{background-color:var(--mer-color__neutral-gray--600)}.card-small--actionable:active{background-color:var(--mer-color__neutral-gray--650)}.card-small:focus-visible{outline:var(--focus__outline-width) var(--focus__outline-style) var(--focus__outline-color);outline-offset:var(--focus__outline-offset)}.empty-state{block-size:100%;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:var(--mer-spacing--sm);text-align:center}.empty-state__title,.empty-state__button,.empty-state__link{max-inline-size:300px}.opacity-0{opacity:0}.opacity-1{opacity:1}.display-contents{display:contents}.gxi-hidden{display:none !important}.gxi-full-height{height:100%}.gxi-overflow-auto{overflow:auto}.gxi-display-flex{display:flex}.align-start{display:flex;align-items:start}.align-center{display:flex;align-items:center}.align-end{display:flex;align-items:end}.overflow-auto{overflow:auto}.justify-start{display:flex;justify-content:start}.justify-center{display:flex;justify-content:center}.justify-end{display:flex;justify-content:end}.grid{display:grid;grid-row-gap:var(--gx-ide-grid-row-gap);grid-column-gap:var(--gx-ide-grid-column-gap);grid-template-rows:auto}ch-grid-cell{display:flex}ch-grid{overflow:auto;height:100%}ch-grid-column{z-index:99;border-bottom:1px solid var(--mer-color__neutral-gray--800)}ch-grid-column:first-child{padding-inline-start:var(--gx-ide-container__padding) !important}ch-grid-column:last-child{padding-inline-end:var(--gx-ide-container__padding) !important}ch-grid-cell{--mer-spacing--xs:var(--gx-ide-container__padding)}.layout{display:grid;gap:var(--mer-spacing--lg);box-sizing:border-box}.layout--two-cols{grid-template-columns:1fr 1fr}.layout--space-above{padding-block-start:var(--mer-spacing--lg)}gxg-tabs{box-shadow:none}:host(.gx-ide-component){height:100% !important;display:flex !important;flex-direction:column !important}:host(:focus-within) gx-ide-top-bar::part(wrapper){background-color:var(--color-secondary-enabled)}.gx-ide-main-wrapper{color:var(--gx-ide-component-text-color);font-weight:var(--mer-font__weight--regular);font-size:var(--mer-font__size--xs);font-family:var(--mer-font-family--primary);height:100%;background-color:var(--gx-ide-component-background-color);display:flex;flex-direction:column;flex-grow:1;box-sizing:border-box}.gx-ide-main{flex-grow:1;overflow-y:auto;}.gx-ide-main::-webkit-scrollbar{width:var(--gxg-scrollbar-width);height:var(--gxg-scrollbar-width)}.gx-ide-main::-webkit-scrollbar-track{background-color:var(--gxg-scrollbar-track-background);border-radius:var(--gxg-scrollbar-track-border-radius)}.gx-ide-main::-webkit-scrollbar-thumb{background-color:var(--gxg-scrollbar-track-thumb-background);border-radius:var(--gxg-scrollbar-track-thumb-radius)}.gx-ide-main::-webkit-scrollbar-thumb:hover{background-color:var(--gxg-scrollbar-track-thumb-hover-background)}.gx-ide-main::-webkit-scrollbar-corner{background:rgba(0, 0, 0, 0)}.gx-ide-overflow{overflow-y:auto;}.gx-ide-overflow::-webkit-scrollbar{width:var(--gxg-scrollbar-width);height:var(--gxg-scrollbar-width)}.gx-ide-overflow::-webkit-scrollbar-track{background-color:var(--gxg-scrollbar-track-background);border-radius:var(--gxg-scrollbar-track-border-radius)}.gx-ide-overflow::-webkit-scrollbar-thumb{background-color:var(--gxg-scrollbar-track-thumb-background);border-radius:var(--gxg-scrollbar-track-thumb-radius)}.gx-ide-overflow::-webkit-scrollbar-thumb:hover{background-color:var(--gxg-scrollbar-track-thumb-hover-background)}.gx-ide-overflow::-webkit-scrollbar-corner{background:rgba(0, 0, 0, 0)}.tree-view-primary{font-size:var(--mer-font__size--2xs)}p{margin:0;font-size:var(--mer-font__size--xxs)}.buttons-container{display:flex;gap:var(--mer-spacing--xs)}.tree-view-container{display:flex}.header__top{border-top:1px solid var(--gx-ide-container-border-color);display:grid;padding:var(--gx-ide-container__padding) var(--gx-ide-container__padding) 0 var(--gx-ide-container__padding);gap:var(--gx-ide-grid-column-gap);grid-template-columns:1fr auto;grid-template-areas:\"select-directory export-cancel-buttons-group options-btn\"}.header__top .select-directory{grid-area:select-directory}.header__top .export-cancel-buttons-group{grid-area:export-cancel-buttons-group}.header__top .options-btn{grid-area:options-btn}.header__bottom .checkboxes-wrapper{padding:var(--gx-ide-grid-column-gap);display:flex;flex-wrap:wrap;gap:var(--gx-ide-grid-column-gap)}.header__bottom .checkboxes-wrapper .add-checkbox{display:flex}.tree-container{block-size:100%;padding:var(--tree-container-padding)}.tree-container--empty{align-items:center;justify-content:center}.tree-container .gx-ide-message{padding:100px 0}gxg-text{block-size:100%}";
|
|
119
|
+
const kbManagerExportCss = ".section{display:grid;block-size:100%;grid-template:\"export-file-name buttons-container buttons-container buttons-container\" max-content \"checkboxes checkboxes checkboxes checkboxes\" max-content \"main main main main\" 1fr \"footer footer footer footer\" max-content/1fr max-content max-content max-content}.header{display:contents}.header .export-file-name{grid-area:export-file-name}.header__buttons-container{grid-area:buttons-container;display:flex;gap:var(--mer-spacing--sm)}.header__checkboxes{grid-area:checkboxes;grid-template-columns:max-content 1fr}.main{grid-area:main;position:relative}.footer{grid-area:footer;justify-content:space-between}.footer .clear-btn{margin-inline-end:auto}";
|
|
161
120
|
|
|
121
|
+
var __classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
122
|
+
if (kind === "m")
|
|
123
|
+
throw new TypeError("Private method is not writable");
|
|
124
|
+
if (kind === "a" && !f)
|
|
125
|
+
throw new TypeError("Private accessor was defined without a setter");
|
|
126
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver))
|
|
127
|
+
throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
128
|
+
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
129
|
+
};
|
|
130
|
+
var __classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
131
|
+
if (kind === "a" && !f)
|
|
132
|
+
throw new TypeError("Private accessor was defined without a getter");
|
|
133
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver))
|
|
134
|
+
throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
135
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
136
|
+
};
|
|
137
|
+
var _GxIdeKbManagerExport_instances, _GxIdeKbManagerExport_addKbDescriptionEl, _GxIdeKbManagerExport_componentLocale, _GxIdeKbManagerExport_animateEmptyState, _GxIdeKbManagerExport_exportAllEl, _GxIdeKbManagerExport_fileNameEl, _GxIdeKbManagerExport_kBPropertiesData, _GxIdeKbManagerExport_objectTypesMap, _GxIdeKbManagerExport_objectsSet, _GxIdeKbManagerExport_addKBPropertiesCallbackHandler, _GxIdeKbManagerExport_addObjectsCallbackHandler, _GxIdeKbManagerExport_addReferencesCallbackHandler, _GxIdeKbManagerExport_cancelCallbackHandler, _GxIdeKbManagerExport_clearButtonHandler, _GxIdeKbManagerExport_evaluateContentToDisplay, _GxIdeKbManagerExport_evaluateObjects, _GxIdeKbManagerExport_evaluateTreeViewFilters, _GxIdeKbManagerExport_exportAllChangedHandler, _GxIdeKbManagerExport_exportCallbackHandler, _GxIdeKbManagerExport_objectsTypesArrayToMap, _GxIdeKbManagerExport_objectsTreeCheckedItemsChangedHandler, _GxIdeKbManagerExport_sortTreeItems, _GxIdeKbManagerExport_renderFooter, _GxIdeKbManagerExport_updateObjects;
|
|
138
|
+
const FILE_ICON = assetsManager.getIconPath({
|
|
139
|
+
category: "gemini-tools",
|
|
140
|
+
name: "file",
|
|
141
|
+
colorType: "on-elevation"
|
|
142
|
+
});
|
|
143
|
+
const SETTINGS_ICON = assetsManager.getIconPath({
|
|
144
|
+
category: "gemini-tools",
|
|
145
|
+
name: "settings",
|
|
146
|
+
colorType: "primary"
|
|
147
|
+
});
|
|
148
|
+
const GENERAL_REFERENCES_ICON = assetsManager.getIconPath({
|
|
149
|
+
category: "window-tools",
|
|
150
|
+
name: "references",
|
|
151
|
+
colorType: "neutral"
|
|
152
|
+
});
|
|
153
|
+
const MENUS_NEW_OBJECT_ICON = assetsManager.getIconPath({
|
|
154
|
+
category: "menus",
|
|
155
|
+
name: "new-object",
|
|
156
|
+
colorType: "on-primary"
|
|
157
|
+
});
|
|
158
|
+
const TREE_VIEW_ICON = assetsManager.getIconPath({
|
|
159
|
+
category: "controls",
|
|
160
|
+
name: "treeview"
|
|
161
|
+
});
|
|
162
|
+
const CHECKBOX_CHECKED_VALUE = "true";
|
|
162
163
|
const CSS_BUNDLES = [
|
|
163
164
|
"resets/box-sizing",
|
|
164
|
-
"utils/form",
|
|
165
|
-
"utils/layout",
|
|
166
|
-
"utils/typography",
|
|
167
165
|
"components/button",
|
|
168
166
|
"components/checkbox",
|
|
169
167
|
"components/edit",
|
|
170
|
-
"components/
|
|
168
|
+
"components/icon",
|
|
169
|
+
"components/tree-view",
|
|
170
|
+
"utils/form",
|
|
171
|
+
"utils/layout",
|
|
172
|
+
"utils/typography"
|
|
171
173
|
];
|
|
172
174
|
const GxIdeKbManagerExport = class {
|
|
173
175
|
constructor(hostRef) {
|
|
174
176
|
index.registerInstance(this, hostRef);
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
this
|
|
178
|
-
this
|
|
179
|
-
this
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
this.addKbPropertiesIsChecked
|
|
196
|
-
|
|
197
|
-
this
|
|
198
|
-
|
|
199
|
-
else {
|
|
200
|
-
// 'convertObjectDataToTreeItemData' can be used for converting KBPropertiesData as well, because the two types share the same properties
|
|
201
|
-
const newTreeModel = convertKbPropertiesDataToTreeItemData(this.kBPropertiesData, this.kbPropertiesTypes, this.treeModel);
|
|
202
|
-
this.treeModel = newTreeModel;
|
|
177
|
+
_GxIdeKbManagerExport_instances.add(this);
|
|
178
|
+
_GxIdeKbManagerExport_addKbDescriptionEl.set(this, void 0);
|
|
179
|
+
_GxIdeKbManagerExport_componentLocale.set(this, void 0);
|
|
180
|
+
_GxIdeKbManagerExport_animateEmptyState.set(this, false);
|
|
181
|
+
_GxIdeKbManagerExport_exportAllEl.set(this, void 0);
|
|
182
|
+
_GxIdeKbManagerExport_fileNameEl.set(this, void 0);
|
|
183
|
+
_GxIdeKbManagerExport_kBPropertiesData.set(this, void 0);
|
|
184
|
+
/**
|
|
185
|
+
* Stores the object types information (name, and icon)
|
|
186
|
+
*/
|
|
187
|
+
// eslint-disable-next-line @stencil-community/own-props-must-be-private
|
|
188
|
+
_GxIdeKbManagerExport_objectTypesMap.set(this, new Map());
|
|
189
|
+
/**
|
|
190
|
+
* Stores the object's id that have been added.
|
|
191
|
+
*/
|
|
192
|
+
// eslint-disable-next-line @stencil-community/own-props-must-be-private
|
|
193
|
+
_GxIdeKbManagerExport_objectsSet.set(this, new Set());
|
|
194
|
+
_GxIdeKbManagerExport_addKBPropertiesCallbackHandler.set(this, async (e) => {
|
|
195
|
+
this.addKbPropertiesIsChecked =
|
|
196
|
+
e.detail.target.value === CHECKBOX_CHECKED_VALUE;
|
|
197
|
+
if (this.addKbPropertiesIsChecked) {
|
|
198
|
+
__classPrivateFieldSet(this, _GxIdeKbManagerExport_kBPropertiesData, await this.addKBPropertiesCallback(), "f");
|
|
199
|
+
if (__classPrivateFieldGet(this, _GxIdeKbManagerExport_kBPropertiesData, "f").length) {
|
|
200
|
+
this.objectsTreeViewModel = convertKbPropertiesDataToTreeItemData(__classPrivateFieldGet(this, _GxIdeKbManagerExport_kBPropertiesData, "f"), this.kbPropertiesTypes, this.objectsTreeViewModel);
|
|
203
201
|
}
|
|
204
202
|
}
|
|
205
|
-
else
|
|
203
|
+
else {
|
|
206
204
|
// previous properties (if any) should be removed
|
|
207
|
-
|
|
208
|
-
this.treeModel = objectsWithoutProperties;
|
|
205
|
+
this.objectsTreeViewModel = clearKbPropertiesFromTree(this.objectsTreeViewModel);
|
|
209
206
|
}
|
|
210
|
-
};
|
|
211
|
-
this
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
207
|
+
});
|
|
208
|
+
_GxIdeKbManagerExport_addObjectsCallbackHandler.set(this, async () => {
|
|
209
|
+
__classPrivateFieldGet(this, _GxIdeKbManagerExport_exportAllEl, "f").value = undefined;
|
|
210
|
+
this.exportAllIsChecked = false;
|
|
211
|
+
const addedObjects = await this.addObjectsCallback();
|
|
212
|
+
__classPrivateFieldGet(this, _GxIdeKbManagerExport_updateObjects, "f").call(this, addedObjects);
|
|
213
|
+
});
|
|
214
|
+
_GxIdeKbManagerExport_addReferencesCallbackHandler.set(this, async () => {
|
|
215
|
+
const objects = await this.addReferencesCallback(this.checkedObjectsIds);
|
|
216
|
+
__classPrivateFieldGet(this, _GxIdeKbManagerExport_updateObjects, "f").call(this, objects);
|
|
217
|
+
});
|
|
218
|
+
_GxIdeKbManagerExport_cancelCallbackHandler.set(this, async () => {
|
|
219
|
+
const cancelled = await this.cancelCallback();
|
|
220
|
+
if (cancelled) {
|
|
221
|
+
this.exportingIsInProcess = false;
|
|
222
|
+
}
|
|
223
|
+
});
|
|
224
|
+
_GxIdeKbManagerExport_clearButtonHandler.set(this, () => {
|
|
225
|
+
this.objectsTreeViewModel = [];
|
|
226
|
+
__classPrivateFieldGet(this, _GxIdeKbManagerExport_objectsSet, "f").clear();
|
|
227
|
+
__classPrivateFieldGet(this, _GxIdeKbManagerExport_addKbDescriptionEl, "f").value = undefined;
|
|
228
|
+
__classPrivateFieldGet(this, _GxIdeKbManagerExport_exportAllEl, "f").value = undefined;
|
|
229
|
+
});
|
|
230
|
+
_GxIdeKbManagerExport_evaluateContentToDisplay.set(this, () => {
|
|
231
|
+
// Nothing to display on the tree-view
|
|
232
|
+
if (!this.hasObjects && !this.exportAllIsChecked) {
|
|
233
|
+
return (index.h("gx-ide-empty-state", { isAnimated: __classPrivateFieldGet(this, _GxIdeKbManagerExport_animateEmptyState, "f"), stateTitle: __classPrivateFieldGet(this, _GxIdeKbManagerExport_componentLocale, "f").main.noObjectsToDisplay, key: "no-objects-empty-state" }, index.h("button", { class: "button-primary", onClick: __classPrivateFieldGet(this, _GxIdeKbManagerExport_addObjectsCallbackHandler, "f") }, __classPrivateFieldGet(this, _GxIdeKbManagerExport_componentLocale, "f").main.beginByADdingSomeObjects)));
|
|
215
234
|
}
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
if (this.addReferencesCallback) {
|
|
219
|
-
const objects = await this.addReferencesCallback(this.checkedObjectsIds);
|
|
220
|
-
this.updateObjects(objects);
|
|
235
|
+
else {
|
|
236
|
+
__classPrivateFieldSet(this, _GxIdeKbManagerExport_animateEmptyState, true, "f"); // improve performance if is first render
|
|
221
237
|
}
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
* Used to update objects. Objects are updated when calling the 'addObjectsCallback' or 'addReferencesCallback'
|
|
225
|
-
*/
|
|
226
|
-
this.updateObjects = (objects) => {
|
|
227
|
-
if (objects.length) {
|
|
228
|
-
const newTreeModel = updateTreeModelWithObjects(objects, this.flattenedObjectTypes, this.treeModel);
|
|
229
|
-
this.treeModel = newTreeModel;
|
|
238
|
+
if (this.exportAllIsChecked) {
|
|
239
|
+
return (index.h("gx-ide-empty-state", { isAnimated: __classPrivateFieldGet(this, _GxIdeKbManagerExport_animateEmptyState, "f"), stateIconSrc: TREE_VIEW_ICON, stateTitle: __classPrivateFieldGet(this, _GxIdeKbManagerExport_componentLocale, "f").main.exportAllMessage, key: "exporting-all-empty-state" }));
|
|
230
240
|
}
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
241
|
+
else {
|
|
242
|
+
__classPrivateFieldSet(this, _GxIdeKbManagerExport_animateEmptyState, true, "f"); // improve performance if is first render
|
|
243
|
+
}
|
|
244
|
+
return (index.h("ch-tree-view-render", { class: "tree-view", checkbox: true, checked: true, dragDisabled: true, dropDisabled: true, filter: __classPrivateFieldGet(this, _GxIdeKbManagerExport_evaluateTreeViewFilters, "f").call(this), filterType: this.addKbPropertiesIsChecked && !this.exportAllIsChecked
|
|
245
|
+
? "none"
|
|
246
|
+
: "metadata", model: this.objectsTreeViewModel, showLines: "last", toggleCheckboxes: true, sortItemsCallback: __classPrivateFieldGet(this, _GxIdeKbManagerExport_sortTreeItems, "f"), onCheckedItemsChange: __classPrivateFieldGet(this, _GxIdeKbManagerExport_objectsTreeCheckedItemsChangedHandler, "f") }));
|
|
247
|
+
});
|
|
248
|
+
_GxIdeKbManagerExport_evaluateObjects.set(this, () => {
|
|
249
|
+
this.hasObjects =
|
|
250
|
+
this.objectsTreeViewModel && this.objectsTreeViewModel.length > 0;
|
|
251
|
+
});
|
|
252
|
+
_GxIdeKbManagerExport_evaluateTreeViewFilters.set(this, () => {
|
|
253
|
+
if (this.addKbPropertiesIsChecked && this.exportAllIsChecked) {
|
|
254
|
+
return KB_PROPERTY; // only show properties
|
|
255
|
+
}
|
|
256
|
+
if (!this.addKbPropertiesIsChecked && !this.exportAllIsChecked) {
|
|
257
|
+
return KB_OBJECT; // only show objects
|
|
258
|
+
}
|
|
259
|
+
return "none";
|
|
260
|
+
});
|
|
261
|
+
_GxIdeKbManagerExport_exportAllChangedHandler.set(this, (event) => {
|
|
262
|
+
this.exportAllIsChecked = event.detail.target.value !== "undefined";
|
|
263
|
+
});
|
|
264
|
+
_GxIdeKbManagerExport_exportCallbackHandler.set(this, async () => {
|
|
265
|
+
this.exportingIsInProcess = true;
|
|
266
|
+
const fileName = __classPrivateFieldGet(this, _GxIdeKbManagerExport_fileNameEl, "f").value;
|
|
267
|
+
const checkedKbPropertiesIds = this.addKbPropertiesIsChecked
|
|
268
|
+
? this.checkedPropertiesIds
|
|
269
|
+
: [];
|
|
270
|
+
const checkedObjectIds = this.exportAllIsChecked
|
|
271
|
+
? undefined
|
|
272
|
+
: this.checkedObjectsIds;
|
|
273
|
+
this.exportCallback(fileName, checkedKbPropertiesIds, checkedObjectIds).then(() => {
|
|
274
|
+
this.exportingIsInProcess = false;
|
|
275
|
+
});
|
|
276
|
+
// returns Promise<boolean> but no procedure was detailed on the spec.
|
|
277
|
+
});
|
|
278
|
+
_GxIdeKbManagerExport_objectsTreeCheckedItemsChangedHandler.set(this, (event) => {
|
|
236
279
|
// filter 'checked objects' and 'checked properties' ids
|
|
237
280
|
const checkedObjectsIds = [];
|
|
238
281
|
const checkedPropertiesIds = [];
|
|
@@ -247,156 +290,92 @@ const GxIdeKbManagerExport = class {
|
|
|
247
290
|
});
|
|
248
291
|
this.checkedObjectsIds = checkedObjectsIds;
|
|
249
292
|
this.checkedPropertiesIds = checkedPropertiesIds;
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
const checkedObjectIds = exportAllChecked
|
|
260
|
-
? undefined
|
|
261
|
-
: this.checkedObjectsIds;
|
|
262
|
-
this.exportCallback(fileName, checkedKbPropertiesIds, checkedObjectIds).then(() => {
|
|
263
|
-
this.exportingIsInProcess = false;
|
|
264
|
-
});
|
|
265
|
-
// returns Promise<boolean> but no procedure was detailed on the spec.
|
|
266
|
-
}
|
|
267
|
-
};
|
|
268
|
-
this.cancelCallbackHandler = async () => {
|
|
269
|
-
if (this.cancelCallback) {
|
|
270
|
-
const cancelled = await this.cancelCallback();
|
|
271
|
-
if (cancelled) {
|
|
272
|
-
this.exportingIsInProcess = false;
|
|
293
|
+
this.atLeastOnePropertyItemIsChecked = this.checkedPropertiesIds.length > 0;
|
|
294
|
+
this.atLeastOneObjectItemIsChecked = this.checkedObjectsIds.length > 0;
|
|
295
|
+
});
|
|
296
|
+
_GxIdeKbManagerExport_sortTreeItems.set(this, (subModel) => {
|
|
297
|
+
// "property" items should be added on top.
|
|
298
|
+
// else sort alphabetically by "caption" value.
|
|
299
|
+
return subModel.sort((a, b) => {
|
|
300
|
+
if (a.metadata === "property" && b.metadata !== "property") {
|
|
301
|
+
return -1;
|
|
273
302
|
}
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
this.objectsTreeEl.updateAllItemsProperties({ checked: false });
|
|
279
|
-
};
|
|
280
|
-
this.exportAllChangedHandler = (event) => {
|
|
281
|
-
this.exportAllIsChecked = event.detail.value;
|
|
282
|
-
};
|
|
283
|
-
this.evaluateTreeViewFilters = () => {
|
|
284
|
-
if (this.addKbPropertiesIsChecked && this.exportAllIsChecked) {
|
|
285
|
-
// only show properties
|
|
286
|
-
return KB_PROPERTY;
|
|
287
|
-
}
|
|
288
|
-
else if (!this.addKbPropertiesIsChecked && !this.exportAllIsChecked) {
|
|
289
|
-
// only show objects
|
|
290
|
-
return KB_OBJECT;
|
|
291
|
-
}
|
|
292
|
-
return "none"; // Applies if !this.addKbPropertiesIsChecked && this.exportAllIsChecked
|
|
293
|
-
};
|
|
294
|
-
this.evaluateContentToDisplay = () => {
|
|
295
|
-
// Nothing to display on the tree-view
|
|
296
|
-
if (this.noObjects) {
|
|
297
|
-
return this.renderMessage(true);
|
|
298
|
-
}
|
|
299
|
-
// The tree should be empty, because all filters are being applied.
|
|
300
|
-
// Display a message to prevent a white screen.
|
|
301
|
-
if (!this.addKbPropertiesIsChecked && this.exportAllIsChecked) {
|
|
302
|
-
return this.renderMessage(false);
|
|
303
|
-
}
|
|
304
|
-
return (index.h("ch-tree-view-render", { model: this.treeModel, dragDisabled: true, dropDisabled: true, toggleCheckboxes: true, checked: true, checkbox: true, filter: this.evaluateTreeViewFilters(), filterType: this.addKbPropertiesIsChecked && !this.exportAllIsChecked
|
|
305
|
-
? "none"
|
|
306
|
-
: "metadata", onCheckedItemsChange: this.objectsTreeCheckedItemsChangedHandler, ref: el => (this.objectsTreeEl = el), "show-lines": "last", class: "tree-view" }));
|
|
307
|
-
};
|
|
308
|
-
this.renderMessage = (nothingToDisplay) => {
|
|
309
|
-
return (index.h("gxg-text", { textAlign: config.config.gxgMessage.common.textAlign, padding: config.config.gxgMessage.common.textAlign, type: config.config.gxgMessage.common.type, maxWidth: config.config.gxgMessage.common.maxWidth, class: "gx-ide-message gx-ide-message--short", part: "referenced-by-empty-status-message" }, nothingToDisplay ? ([
|
|
310
|
-
index.h("span", null, this._componentLocale.main.noObjectsToDisplay),
|
|
311
|
-
index.h("gxg-text", { type: "text-link-no-line", textAlign: "center", onClick: this.addObjectsCallbackHandler }, this._componentLocale.main.beginByADdingSomeObjects)
|
|
312
|
-
]) : (index.h("span", null, this._componentLocale.main.exportAllMessage))));
|
|
313
|
-
};
|
|
314
|
-
this.clearButtonDisabledConditions = () => {
|
|
315
|
-
const checkedItems = this.treeModel.filter(item => {
|
|
316
|
-
return item.checked;
|
|
303
|
+
if (b.metadata === "property" && a.metadata !== "property") {
|
|
304
|
+
return 1;
|
|
305
|
+
}
|
|
306
|
+
return a.caption.localeCompare(b.caption);
|
|
317
307
|
});
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
this.
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
308
|
+
});
|
|
309
|
+
_GxIdeKbManagerExport_renderFooter.set(this, () => {
|
|
310
|
+
const referencesButtonEnabled = this.atLeastOneObjectItemIsChecked;
|
|
311
|
+
const clearButtonEnabled = this.objectsTreeViewModel.length > 0;
|
|
312
|
+
return (index.h("footer", { class: "footer control-footer-with-border" }, index.h("button", { class: "button-tertiary clear-btn", disabled: !clearButtonEnabled, part: "clear-button", onClick: clearButtonEnabled && __classPrivateFieldGet(this, _GxIdeKbManagerExport_clearButtonHandler, "f") }, __classPrivateFieldGet(this, _GxIdeKbManagerExport_componentLocale, "f").footer.clearButton), index.h("button", { class: "button-secondary button-icon-and-text", part: "references-button", disabled: !referencesButtonEnabled, onClick: referencesButtonEnabled && __classPrivateFieldGet(this, _GxIdeKbManagerExport_addReferencesCallbackHandler, "f") }, index.h("ch-image", { class: "icon-sm", disabled: !referencesButtonEnabled, src: GENERAL_REFERENCES_ICON }), __classPrivateFieldGet(this, _GxIdeKbManagerExport_componentLocale, "f").footer.addReferencesButton), index.h("button", {
|
|
313
|
+
// Add button
|
|
314
|
+
class: "button-primary button-icon-and-text", disabled: this.exportAllIsChecked, part: "add-button", onClick: !this.exportAllIsChecked && __classPrivateFieldGet(this, _GxIdeKbManagerExport_addObjectsCallbackHandler, "f")
|
|
315
|
+
}, index.h("ch-image", { class: "icon-sm", disabled: this.exportAllIsChecked, src: MENUS_NEW_OBJECT_ICON }), __classPrivateFieldGet(this, _GxIdeKbManagerExport_componentLocale, "f").footer.addButton)));
|
|
316
|
+
});
|
|
317
|
+
_GxIdeKbManagerExport_updateObjects.set(this, (objectsDataArray) => {
|
|
318
|
+
if (objectsDataArray.length) {
|
|
319
|
+
const newObjectsTreeModel = updateObjectsTreeModel(objectsDataArray, __classPrivateFieldGet(this, _GxIdeKbManagerExport_objectTypesMap, "f"), __classPrivateFieldGet(this, _GxIdeKbManagerExport_objectsSet, "f"), this.objectsTreeViewModel);
|
|
320
|
+
this.objectsTreeViewModel = newObjectsTreeModel;
|
|
321
|
+
}
|
|
322
|
+
});
|
|
327
323
|
this.addKbPropertiesIsChecked = false;
|
|
324
|
+
this.atLeastOnePropertyItemIsChecked = false;
|
|
325
|
+
this.atLeastOneObjectItemIsChecked = false;
|
|
328
326
|
this.checkedObjectsIds = [];
|
|
329
|
-
this.
|
|
330
|
-
this.
|
|
327
|
+
this.checkedPropertiesIds = [];
|
|
328
|
+
this.exportAllIsChecked = false;
|
|
331
329
|
this.exportingIsInProcess = false;
|
|
332
|
-
this.
|
|
330
|
+
this.hasObjects = undefined;
|
|
331
|
+
this.objectsTreeViewModel = [];
|
|
332
|
+
this.addKBPropertiesCallback = undefined;
|
|
333
|
+
this.addObjectsCallback = undefined;
|
|
334
|
+
this.addReferencesCallback = undefined;
|
|
335
|
+
this.cancelCallback = undefined;
|
|
336
|
+
this.exportCallback = undefined;
|
|
337
|
+
this.exportFileDirectoryCallback = undefined;
|
|
333
338
|
this.fileName = undefined;
|
|
334
|
-
this.loader = false;
|
|
335
339
|
this.kbPropertiesTypes = undefined;
|
|
340
|
+
this.loader = false;
|
|
336
341
|
this.objectTypes = undefined;
|
|
337
|
-
this.exportFileDirectoryCallback = undefined;
|
|
338
342
|
this.optionsCallback = undefined;
|
|
339
|
-
this.addKBPropertiesCallback = undefined;
|
|
340
|
-
this.addReferencesCallback = undefined;
|
|
341
|
-
this.addObjectsCallback = undefined;
|
|
342
|
-
this.exportCallback = undefined;
|
|
343
|
-
this.cancelCallback = undefined;
|
|
344
343
|
}
|
|
345
|
-
|
|
346
|
-
this.
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
this.
|
|
351
|
-
}
|
|
352
|
-
else if (!isExporting && this.loader) {
|
|
353
|
-
this.loaderEl.show = false;
|
|
344
|
+
objectsTreeViewModelChanged(newObjectsTreeViewModel) {
|
|
345
|
+
this.hasObjects =
|
|
346
|
+
newObjectsTreeViewModel && newObjectsTreeViewModel.length > 0;
|
|
347
|
+
if (!this.hasObjects) {
|
|
348
|
+
this.atLeastOnePropertyItemIsChecked = false;
|
|
349
|
+
this.atLeastOneObjectItemIsChecked = false;
|
|
354
350
|
}
|
|
355
351
|
}
|
|
356
|
-
|
|
357
|
-
this.
|
|
352
|
+
objectTypesChanged(newObjectTypesArray) {
|
|
353
|
+
__classPrivateFieldGet(this, _GxIdeKbManagerExport_instances, "m", _GxIdeKbManagerExport_objectsTypesArrayToMap).call(this, newObjectTypesArray);
|
|
358
354
|
}
|
|
359
|
-
// 6.COMPONENT LIFECYCLE EVENTS //
|
|
360
355
|
async componentWillLoad() {
|
|
361
|
-
this
|
|
362
|
-
this.
|
|
363
|
-
this.
|
|
364
|
-
this.flattenObjectTypes(this.objectTypes);
|
|
365
|
-
}
|
|
366
|
-
componentDidLoad() {
|
|
367
|
-
this.fileNameEl.focus();
|
|
356
|
+
__classPrivateFieldSet(this, _GxIdeKbManagerExport_componentLocale, await locale.Locale.getComponentStrings(this.el), "f");
|
|
357
|
+
__classPrivateFieldGet(this, _GxIdeKbManagerExport_evaluateObjects, "f").call(this);
|
|
358
|
+
__classPrivateFieldGet(this, _GxIdeKbManagerExport_instances, "m", _GxIdeKbManagerExport_objectsTypesArrayToMap).call(this, this.objectTypes);
|
|
368
359
|
}
|
|
369
|
-
componentDidRender() {
|
|
370
|
-
if (!this.renderedFirstTime) {
|
|
371
|
-
this.componentDidRenderFirstTime.emit(this._componentLocale.componentName);
|
|
372
|
-
this.renderedFirstTime = true;
|
|
373
|
-
}
|
|
374
|
-
}
|
|
375
|
-
flattenObjectTypes(newState) {
|
|
376
|
-
newState.forEach(objectType => {
|
|
377
|
-
this.flattenedObjectTypes.set(objectType.id, objectType);
|
|
378
|
-
});
|
|
379
|
-
}
|
|
380
|
-
// 10.RENDER() FUNCTION //
|
|
381
360
|
render() {
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
this.exportAllIsChecked &&
|
|
388
|
-
!this.addKbPropertiesIsChecked)
|
|
389
|
-
// "tree-container--export-all": this.exportAllIsChecked
|
|
390
|
-
} }, this.evaluateContentToDisplay()), index.h("gxg-text", { type: "button-like", part: "export-button", slot: "footer-start", onClick: this.clearButtonHandler, disabled: this.clearButtonDisabledConditions() }, this._componentLocale.footer.clearButton), index.h("gxg-button", { onClick: this.addReferencesCallbackHandler, type: "outlined-text-icon", icon: "general/references", part: "export-button", class: { "cancel-btn": true }, disabled: this.exportAllIsChecked, slot: "footer-end" }, this._componentLocale.footer.referencesButton), index.h("gxg-button", { type: "primary-text-icon", icon: "menus/new-object", part: "export-button", class: { "cancel-btn": true }, onClick: this.addObjectsCallbackHandler, disabled: this.exportAllIsChecked, slot: "footer-end" }, this._componentLocale.footer.addButton))), this.loader && false ? (index.h("gxg-ide-loader", { cancelLabel: this._componentLocale.loader.cancelLabel, container: this.el, loaderTitle: this._componentLocale.loader.title, ref: el => (this.loaderEl = el), cancelCallback: this.loaderCancelCallbackHandler })) : null));
|
|
361
|
+
const exportButtonEnabled = this.atLeastOnePropertyItemIsChecked ||
|
|
362
|
+
this.atLeastOneObjectItemIsChecked ||
|
|
363
|
+
this.exportAllIsChecked;
|
|
364
|
+
const cancelButtonEnabled = this.exportingIsInProcess;
|
|
365
|
+
return (index.h(index.Host, { class: "spacing-body-block-start spacing-body-inline" }, index.h("ch-theme", { model: CSS_BUNDLES }), index.h("section", { class: "section field-group" }, index.h("header", { class: "header" }, index.h("div", { class: "field field-inline export-file-name" }, index.h("label", { class: "label", htmlFor: "xpz-file" }, __classPrivateFieldGet(this, _GxIdeKbManagerExport_componentLocale, "f").header.exportFileName), index.h("ch-edit", { autoFocus: true, id: "xpz-file", class: "form-input", part: "xpz-file", value: this.fileName, startImgSrc: FILE_ICON, ref: (el) => (__classPrivateFieldSet(this, _GxIdeKbManagerExport_fileNameEl, el, "f")) })), index.h("div", { class: "header__buttons-container" }, index.h("button", { id: "export-kb-btn", class: "button-primary export-btn", part: "export-btn", disabled: !exportButtonEnabled, onClick: exportButtonEnabled && __classPrivateFieldGet(this, _GxIdeKbManagerExport_exportCallbackHandler, "f") }, __classPrivateFieldGet(this, _GxIdeKbManagerExport_componentLocale, "f").header.exportButton), index.h("button", { id: "cancel-kb-export-btn", class: "button-secondary cancel-btn", part: "cancel-button", disabled: !cancelButtonEnabled, onClick: cancelButtonEnabled && __classPrivateFieldGet(this, _GxIdeKbManagerExport_cancelCallbackHandler, "f") }, __classPrivateFieldGet(this, _GxIdeKbManagerExport_componentLocale, "f").header.cancelButton), index.h("button", { "aria-label": __classPrivateFieldGet(this, _GxIdeKbManagerExport_componentLocale, "f").header.optionsButton, title: __classPrivateFieldGet(this, _GxIdeKbManagerExport_componentLocale, "f").header.optionsButton, class: "button-tertiary button-icon-only options-btn", part: "select-kb-btn", onClick: this.optionsCallback }, index.h("ch-image", { class: "icon-md", src: SETTINGS_ICON }))), index.h("div", { class: "header__checkboxes field-group" }, index.h("ch-checkbox", { class: "checkbox add-kb-description", part: "add-kb-description", caption: __classPrivateFieldGet(this, _GxIdeKbManagerExport_componentLocale, "f").main.addKnowledgeBaseDescription, checkedValue: CHECKBOX_CHECKED_VALUE, onInput: __classPrivateFieldGet(this, _GxIdeKbManagerExport_addKBPropertiesCallbackHandler, "f"), ref: (el) => (__classPrivateFieldSet(this, _GxIdeKbManagerExport_addKbDescriptionEl, el, "f")) }), index.h("ch-checkbox", { class: "checkbox export-all", part: "export-all-checkbox", checkedValue: CHECKBOX_CHECKED_VALUE, caption: __classPrivateFieldGet(this, _GxIdeKbManagerExport_componentLocale, "f").main.exportAll, onInput: __classPrivateFieldGet(this, _GxIdeKbManagerExport_exportAllChangedHandler, "f"), ref: (el) => (__classPrivateFieldSet(this, _GxIdeKbManagerExport_exportAllEl, el, "f")) }))), index.h("div", { class: "main" }, __classPrivateFieldGet(this, _GxIdeKbManagerExport_evaluateContentToDisplay, "f").call(this), this.loader && this.exportingIsInProcess && (index.h("gx-ide-loader", { cancelLabel: __classPrivateFieldGet(this, _GxIdeKbManagerExport_componentLocale, "f").loader.cancelLabel, loaderTitle: __classPrivateFieldGet(this, _GxIdeKbManagerExport_componentLocale, "f").loader.title, cancelCallback: __classPrivateFieldGet(this, _GxIdeKbManagerExport_cancelCallbackHandler, "f"), show: true, class: "loader" }))), __classPrivateFieldGet(this, _GxIdeKbManagerExport_renderFooter, "f").call(this))));
|
|
391
366
|
}
|
|
392
367
|
static get assetsDirs() { return ["gx-ide-assets/kb-manager-export"]; }
|
|
393
368
|
get el() { return index.getElement(this); }
|
|
394
369
|
static get watchers() { return {
|
|
395
|
-
"
|
|
396
|
-
"
|
|
397
|
-
"objectTypes": ["watchObjectTypesHandler"]
|
|
370
|
+
"objectsTreeViewModel": ["objectsTreeViewModelChanged"],
|
|
371
|
+
"objectTypes": ["objectTypesChanged"]
|
|
398
372
|
}; }
|
|
399
373
|
};
|
|
374
|
+
_GxIdeKbManagerExport_addKbDescriptionEl = new WeakMap(), _GxIdeKbManagerExport_componentLocale = new WeakMap(), _GxIdeKbManagerExport_animateEmptyState = new WeakMap(), _GxIdeKbManagerExport_exportAllEl = new WeakMap(), _GxIdeKbManagerExport_fileNameEl = new WeakMap(), _GxIdeKbManagerExport_kBPropertiesData = new WeakMap(), _GxIdeKbManagerExport_objectTypesMap = new WeakMap(), _GxIdeKbManagerExport_objectsSet = new WeakMap(), _GxIdeKbManagerExport_addKBPropertiesCallbackHandler = new WeakMap(), _GxIdeKbManagerExport_addObjectsCallbackHandler = new WeakMap(), _GxIdeKbManagerExport_addReferencesCallbackHandler = new WeakMap(), _GxIdeKbManagerExport_cancelCallbackHandler = new WeakMap(), _GxIdeKbManagerExport_clearButtonHandler = new WeakMap(), _GxIdeKbManagerExport_evaluateContentToDisplay = new WeakMap(), _GxIdeKbManagerExport_evaluateObjects = new WeakMap(), _GxIdeKbManagerExport_evaluateTreeViewFilters = new WeakMap(), _GxIdeKbManagerExport_exportAllChangedHandler = new WeakMap(), _GxIdeKbManagerExport_exportCallbackHandler = new WeakMap(), _GxIdeKbManagerExport_objectsTreeCheckedItemsChangedHandler = new WeakMap(), _GxIdeKbManagerExport_sortTreeItems = new WeakMap(), _GxIdeKbManagerExport_renderFooter = new WeakMap(), _GxIdeKbManagerExport_updateObjects = new WeakMap(), _GxIdeKbManagerExport_instances = new WeakSet(), _GxIdeKbManagerExport_objectsTypesArrayToMap = function _GxIdeKbManagerExport_objectsTypesArrayToMap(objectTypesArray) {
|
|
375
|
+
objectTypesArray.forEach(objectType => {
|
|
376
|
+
__classPrivateFieldGet(this, _GxIdeKbManagerExport_objectTypesMap, "f").set(objectType.id, objectType);
|
|
377
|
+
});
|
|
378
|
+
};
|
|
400
379
|
GxIdeKbManagerExport.style = kbManagerExportCss;
|
|
401
380
|
|
|
402
381
|
exports.gx_ide_kb_manager_export = GxIdeKbManagerExport;
|