@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
|
@@ -1,34 +1,13 @@
|
|
|
1
|
-
import { r as registerInstance,
|
|
1
|
+
import { r as registerInstance, h, H as Host, g as getElement } from './index-27c691bc.js';
|
|
2
2
|
import { L as Locale } from './locale-3c32f251.js';
|
|
3
|
-
import {
|
|
3
|
+
import { g as getIconPath } from './assets-manager-120996e9.js';
|
|
4
4
|
|
|
5
5
|
const KB_PROPERTY = "property";
|
|
6
6
|
const KB_OBJECT = "object";
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
3. convertObjectToTreeItem
|
|
12
|
-
4. getObjectType
|
|
13
|
-
5. findObjectInTree
|
|
14
|
-
6. findPropertyInTree
|
|
15
|
-
7. convertPropertyToTreeItem
|
|
16
|
-
8. updateTreeModelWithObjects
|
|
17
|
-
9. convertKbPropertiesDataToTreeItemData
|
|
18
|
-
10. clearKbPropertiesFromTree
|
|
19
|
-
*/
|
|
20
|
-
/* 1.2 getIcon (for properties)*/
|
|
21
|
-
const getPropertyIcon = (typeId, kbPropertiesTypes) => {
|
|
22
|
-
// The object icon has to be retrieved from the ObjetTypes array, by matching the ObjectData typeId with the ObjectType id.
|
|
23
|
-
const propertyType = kbPropertiesTypes.find(propertyType => propertyType.id === typeId);
|
|
24
|
-
if (propertyType) {
|
|
25
|
-
return propertyType.icon;
|
|
26
|
-
}
|
|
27
|
-
else {
|
|
28
|
-
return undefined;
|
|
29
|
-
}
|
|
30
|
-
};
|
|
31
|
-
/* 2. convertObjectTypeToTreeItem*/
|
|
7
|
+
const getPropertyIcon = (typeId, kbPropertiesTypes) =>
|
|
8
|
+
// The object icon has to be retrieved from the ObjectTypes array, by
|
|
9
|
+
// matching the ObjectData typeId with the ObjectType id
|
|
10
|
+
kbPropertiesTypes.find(propertyType => propertyType.id === typeId).icon;
|
|
32
11
|
const convertObjectTypeToTreeItem = (objectType) => ({
|
|
33
12
|
caption: objectType.name,
|
|
34
13
|
id: objectType.id,
|
|
@@ -38,7 +17,6 @@ const convertObjectTypeToTreeItem = (objectType) => ({
|
|
|
38
17
|
expanded: true,
|
|
39
18
|
items: []
|
|
40
19
|
});
|
|
41
|
-
/* 3. convertObjectToTreeItem*/
|
|
42
20
|
const convertObjectToTreeItem = (object, objectTypes) => ({
|
|
43
21
|
caption: object.name,
|
|
44
22
|
id: object.id,
|
|
@@ -47,42 +25,6 @@ const convertObjectToTreeItem = (object, objectTypes) => ({
|
|
|
47
25
|
metadata: KB_OBJECT,
|
|
48
26
|
leaf: true
|
|
49
27
|
});
|
|
50
|
-
/* 5. findObjectInTree*/
|
|
51
|
-
const findObjectInTree = (object, actualTreeState) => {
|
|
52
|
-
var _a;
|
|
53
|
-
const objectTreeItemInfo = {
|
|
54
|
-
objectExists: false,
|
|
55
|
-
objectTypeIndex: -1
|
|
56
|
-
};
|
|
57
|
-
if (actualTreeState) {
|
|
58
|
-
const objectTypeTreeItemIndex = actualTreeState.findIndex(objectTypeTreeItem => {
|
|
59
|
-
return objectTypeTreeItem.id === object.typeId;
|
|
60
|
-
});
|
|
61
|
-
if (objectTypeTreeItemIndex !== -1) {
|
|
62
|
-
objectTreeItemInfo.objectTypeIndex = objectTypeTreeItemIndex;
|
|
63
|
-
// objectType exists as a node in the actual tree.
|
|
64
|
-
// Now try to find the object
|
|
65
|
-
const objectFound = (_a = actualTreeState[objectTypeTreeItemIndex].items) === null || _a === void 0 ? void 0 : _a.find(objectTreeItem => {
|
|
66
|
-
return objectTreeItem.id === object.id;
|
|
67
|
-
});
|
|
68
|
-
if (objectFound) {
|
|
69
|
-
objectTreeItemInfo.objectExists = true;
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
return objectTreeItemInfo;
|
|
74
|
-
};
|
|
75
|
-
/* 6. findPropertyInTree */
|
|
76
|
-
const findPropertyInTree = (property, updatedTreeData) => {
|
|
77
|
-
const found = updatedTreeData.find(node => {
|
|
78
|
-
return node.id === property.id;
|
|
79
|
-
});
|
|
80
|
-
if (found) {
|
|
81
|
-
return true;
|
|
82
|
-
}
|
|
83
|
-
return false;
|
|
84
|
-
};
|
|
85
|
-
/* 7. convertPropertyToTreeItem */
|
|
86
28
|
const convertPropertyToTreeItem = (property, kbPropertiesTypes) => ({
|
|
87
29
|
caption: property.name,
|
|
88
30
|
id: property.id,
|
|
@@ -91,144 +33,245 @@ const convertPropertyToTreeItem = (property, kbPropertiesTypes) => ({
|
|
|
91
33
|
metadata: KB_PROPERTY,
|
|
92
34
|
leaf: true
|
|
93
35
|
});
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
36
|
+
/**
|
|
37
|
+
* Updates the tree model with the provided objects.
|
|
38
|
+
* Objects may already exist and are placed under their parent node.
|
|
39
|
+
* If the parent node doesn't exist (identified by typeId on ObjectTypes),
|
|
40
|
+
* it is created and added at the bottom.
|
|
41
|
+
*
|
|
42
|
+
* @param {ObjectData[] | undefined} objects - The array of objects to update.
|
|
43
|
+
* @param {Map<string, ObjectType>} objectTypesMap - A map of object types by ID.
|
|
44
|
+
* @param {Set<string>} objectsSet - A set of existing object IDs.
|
|
45
|
+
* @param {TreeViewModel} actualTreeState - The current tree state to be updated.
|
|
46
|
+
* @returns {TreeViewModel} - The updated tree view model.
|
|
47
|
+
*/
|
|
48
|
+
const updateObjectsTreeModel = (objects, objectTypesMap, objectsSet, actualTreeState) => {
|
|
97
49
|
if (!objects) {
|
|
98
|
-
|
|
99
|
-
return updatedTreeData;
|
|
50
|
+
return [...actualTreeState];
|
|
100
51
|
}
|
|
52
|
+
const updatedTreeData = [...actualTreeState];
|
|
101
53
|
objects.forEach(object => {
|
|
102
54
|
// objects that already exists in the actual actualTreeState should not be added.
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
55
|
+
if (objectsSet.has(object.id)) {
|
|
56
|
+
// object already exists
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
const objectTreeItem = convertObjectToTreeItem(object, objectTypesMap);
|
|
60
|
+
// TODO: Improve the algorithm efficiency. This check visits potentially all nodes
|
|
61
|
+
// from the TreeViewModel on each iteration. Using a Map to pre-store the TreeView
|
|
62
|
+
// nodes would improve efficiency.
|
|
63
|
+
const objectTypeTreeItemIndex = updatedTreeData.findIndex(treeItem => treeItem.id === object.typeId);
|
|
64
|
+
if (objectTypeTreeItemIndex === -1) {
|
|
65
|
+
// Create and add new object type tree item
|
|
66
|
+
const objectType = objectTypesMap.get(object.typeId);
|
|
67
|
+
if (objectType) {
|
|
68
|
+
const objectTypeTreeItem = convertObjectTypeToTreeItem(objectType);
|
|
69
|
+
objectTypeTreeItem.items.push(objectTreeItem);
|
|
70
|
+
updatedTreeData.push(objectTypeTreeItem);
|
|
116
71
|
}
|
|
117
|
-
const objectAsTreeItem = convertObjectToTreeItem(object, objectTypes);
|
|
118
|
-
// insert object in tree (under the object type tree node)
|
|
119
|
-
updatedTreeData[objectTreeItemInfo.objectTypeIndex].items.push(objectAsTreeItem);
|
|
120
72
|
}
|
|
73
|
+
else {
|
|
74
|
+
// objectType exists already. insert object as children of the object type tree item.
|
|
75
|
+
updatedTreeData[objectTypeTreeItemIndex].items.push(objectTreeItem);
|
|
76
|
+
}
|
|
77
|
+
objectsSet.add(object.id);
|
|
121
78
|
});
|
|
122
79
|
return updatedTreeData;
|
|
123
80
|
};
|
|
124
|
-
|
|
81
|
+
/**
|
|
82
|
+
* Converts an array of KB properties data into tree item data for a tree view.
|
|
83
|
+
*
|
|
84
|
+
* @param {KBPropertyData[]} properties - The array of KB property data.
|
|
85
|
+
* @param {KBPropertyType[]} kbPropertiesTypes - The array of KB property types.
|
|
86
|
+
* @param {TreeViewModel} actualTreeState - The current state of the tree.
|
|
87
|
+
* @returns {TreeViewModel} - The updated tree view item models.
|
|
88
|
+
*/
|
|
125
89
|
const convertKbPropertiesDataToTreeItemData = (properties, kbPropertiesTypes, actualTreeState) => {
|
|
126
|
-
const updatedTreeData = [...actualTreeState];
|
|
127
90
|
if (!properties) {
|
|
128
|
-
|
|
129
|
-
return updatedTreeData;
|
|
91
|
+
return [...actualTreeState];
|
|
130
92
|
}
|
|
93
|
+
const updatedTreeData = [...actualTreeState];
|
|
131
94
|
properties.forEach(property => {
|
|
132
95
|
// properties have no parent node, and they should be added at the beginning of the tree
|
|
133
|
-
const propertyAlreadyExists =
|
|
134
|
-
if (
|
|
135
|
-
|
|
136
|
-
updatedTreeData.unshift(propertyTreeItem);
|
|
96
|
+
const propertyAlreadyExists = updatedTreeData.find(node => node.id === property.id) !== undefined;
|
|
97
|
+
if (propertyAlreadyExists) {
|
|
98
|
+
return;
|
|
137
99
|
}
|
|
100
|
+
const propertyTreeItem = convertPropertyToTreeItem(property, kbPropertiesTypes);
|
|
101
|
+
updatedTreeData.unshift(propertyTreeItem);
|
|
138
102
|
});
|
|
139
103
|
return updatedTreeData;
|
|
140
104
|
};
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
const treeModelWithoutKbProperties = actualTreeState.filter(item => {
|
|
151
|
-
return !kBPropertiesDataIds.includes(item.id);
|
|
152
|
-
});
|
|
153
|
-
return treeModelWithoutKbProperties;
|
|
154
|
-
};
|
|
105
|
+
/**
|
|
106
|
+
* Removes properties from the tree model.
|
|
107
|
+
*
|
|
108
|
+
* @param {TreeViewModel} actualTreeState - The current state of the tree,
|
|
109
|
+
* containing various tree view items.
|
|
110
|
+
* @returns {TreeViewModel} - A new array of tree view items that excludes
|
|
111
|
+
* any items with metadata of type `KB_PROPERTY`.
|
|
112
|
+
*/
|
|
113
|
+
const clearKbPropertiesFromTree = (actualTreeState) => actualTreeState.filter(item => item.metadata !== KB_PROPERTY);
|
|
155
114
|
|
|
156
|
-
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%}";
|
|
115
|
+
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}";
|
|
157
116
|
|
|
117
|
+
var __classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
118
|
+
if (kind === "m")
|
|
119
|
+
throw new TypeError("Private method is not writable");
|
|
120
|
+
if (kind === "a" && !f)
|
|
121
|
+
throw new TypeError("Private accessor was defined without a setter");
|
|
122
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver))
|
|
123
|
+
throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
124
|
+
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
125
|
+
};
|
|
126
|
+
var __classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
127
|
+
if (kind === "a" && !f)
|
|
128
|
+
throw new TypeError("Private accessor was defined without a getter");
|
|
129
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver))
|
|
130
|
+
throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
131
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
132
|
+
};
|
|
133
|
+
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;
|
|
134
|
+
const FILE_ICON = getIconPath({
|
|
135
|
+
category: "gemini-tools",
|
|
136
|
+
name: "file",
|
|
137
|
+
colorType: "on-elevation"
|
|
138
|
+
});
|
|
139
|
+
const SETTINGS_ICON = getIconPath({
|
|
140
|
+
category: "gemini-tools",
|
|
141
|
+
name: "settings",
|
|
142
|
+
colorType: "primary"
|
|
143
|
+
});
|
|
144
|
+
const GENERAL_REFERENCES_ICON = getIconPath({
|
|
145
|
+
category: "window-tools",
|
|
146
|
+
name: "references",
|
|
147
|
+
colorType: "neutral"
|
|
148
|
+
});
|
|
149
|
+
const MENUS_NEW_OBJECT_ICON = getIconPath({
|
|
150
|
+
category: "menus",
|
|
151
|
+
name: "new-object",
|
|
152
|
+
colorType: "on-primary"
|
|
153
|
+
});
|
|
154
|
+
const TREE_VIEW_ICON = getIconPath({
|
|
155
|
+
category: "controls",
|
|
156
|
+
name: "treeview"
|
|
157
|
+
});
|
|
158
|
+
const CHECKBOX_CHECKED_VALUE = "true";
|
|
158
159
|
const CSS_BUNDLES = [
|
|
159
160
|
"resets/box-sizing",
|
|
160
|
-
"utils/form",
|
|
161
|
-
"utils/layout",
|
|
162
|
-
"utils/typography",
|
|
163
161
|
"components/button",
|
|
164
162
|
"components/checkbox",
|
|
165
163
|
"components/edit",
|
|
166
|
-
"components/
|
|
164
|
+
"components/icon",
|
|
165
|
+
"components/tree-view",
|
|
166
|
+
"utils/form",
|
|
167
|
+
"utils/layout",
|
|
168
|
+
"utils/typography"
|
|
167
169
|
];
|
|
168
170
|
const GxIdeKbManagerExport = class {
|
|
169
171
|
constructor(hostRef) {
|
|
170
172
|
registerInstance(this, hostRef);
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
this
|
|
174
|
-
this
|
|
175
|
-
this
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
this.addKbPropertiesIsChecked
|
|
192
|
-
|
|
193
|
-
this
|
|
194
|
-
|
|
195
|
-
else {
|
|
196
|
-
// 'convertObjectDataToTreeItemData' can be used for converting KBPropertiesData as well, because the two types share the same properties
|
|
197
|
-
const newTreeModel = convertKbPropertiesDataToTreeItemData(this.kBPropertiesData, this.kbPropertiesTypes, this.treeModel);
|
|
198
|
-
this.treeModel = newTreeModel;
|
|
173
|
+
_GxIdeKbManagerExport_instances.add(this);
|
|
174
|
+
_GxIdeKbManagerExport_addKbDescriptionEl.set(this, void 0);
|
|
175
|
+
_GxIdeKbManagerExport_componentLocale.set(this, void 0);
|
|
176
|
+
_GxIdeKbManagerExport_animateEmptyState.set(this, false);
|
|
177
|
+
_GxIdeKbManagerExport_exportAllEl.set(this, void 0);
|
|
178
|
+
_GxIdeKbManagerExport_fileNameEl.set(this, void 0);
|
|
179
|
+
_GxIdeKbManagerExport_kBPropertiesData.set(this, void 0);
|
|
180
|
+
/**
|
|
181
|
+
* Stores the object types information (name, and icon)
|
|
182
|
+
*/
|
|
183
|
+
// eslint-disable-next-line @stencil-community/own-props-must-be-private
|
|
184
|
+
_GxIdeKbManagerExport_objectTypesMap.set(this, new Map());
|
|
185
|
+
/**
|
|
186
|
+
* Stores the object's id that have been added.
|
|
187
|
+
*/
|
|
188
|
+
// eslint-disable-next-line @stencil-community/own-props-must-be-private
|
|
189
|
+
_GxIdeKbManagerExport_objectsSet.set(this, new Set());
|
|
190
|
+
_GxIdeKbManagerExport_addKBPropertiesCallbackHandler.set(this, async (e) => {
|
|
191
|
+
this.addKbPropertiesIsChecked =
|
|
192
|
+
e.detail.target.value === CHECKBOX_CHECKED_VALUE;
|
|
193
|
+
if (this.addKbPropertiesIsChecked) {
|
|
194
|
+
__classPrivateFieldSet(this, _GxIdeKbManagerExport_kBPropertiesData, await this.addKBPropertiesCallback(), "f");
|
|
195
|
+
if (__classPrivateFieldGet(this, _GxIdeKbManagerExport_kBPropertiesData, "f").length) {
|
|
196
|
+
this.objectsTreeViewModel = convertKbPropertiesDataToTreeItemData(__classPrivateFieldGet(this, _GxIdeKbManagerExport_kBPropertiesData, "f"), this.kbPropertiesTypes, this.objectsTreeViewModel);
|
|
199
197
|
}
|
|
200
198
|
}
|
|
201
|
-
else
|
|
199
|
+
else {
|
|
202
200
|
// previous properties (if any) should be removed
|
|
203
|
-
|
|
204
|
-
this.treeModel = objectsWithoutProperties;
|
|
201
|
+
this.objectsTreeViewModel = clearKbPropertiesFromTree(this.objectsTreeViewModel);
|
|
205
202
|
}
|
|
206
|
-
};
|
|
207
|
-
this
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
203
|
+
});
|
|
204
|
+
_GxIdeKbManagerExport_addObjectsCallbackHandler.set(this, async () => {
|
|
205
|
+
__classPrivateFieldGet(this, _GxIdeKbManagerExport_exportAllEl, "f").value = undefined;
|
|
206
|
+
this.exportAllIsChecked = false;
|
|
207
|
+
const addedObjects = await this.addObjectsCallback();
|
|
208
|
+
__classPrivateFieldGet(this, _GxIdeKbManagerExport_updateObjects, "f").call(this, addedObjects);
|
|
209
|
+
});
|
|
210
|
+
_GxIdeKbManagerExport_addReferencesCallbackHandler.set(this, async () => {
|
|
211
|
+
const objects = await this.addReferencesCallback(this.checkedObjectsIds);
|
|
212
|
+
__classPrivateFieldGet(this, _GxIdeKbManagerExport_updateObjects, "f").call(this, objects);
|
|
213
|
+
});
|
|
214
|
+
_GxIdeKbManagerExport_cancelCallbackHandler.set(this, async () => {
|
|
215
|
+
const cancelled = await this.cancelCallback();
|
|
216
|
+
if (cancelled) {
|
|
217
|
+
this.exportingIsInProcess = false;
|
|
218
|
+
}
|
|
219
|
+
});
|
|
220
|
+
_GxIdeKbManagerExport_clearButtonHandler.set(this, () => {
|
|
221
|
+
this.objectsTreeViewModel = [];
|
|
222
|
+
__classPrivateFieldGet(this, _GxIdeKbManagerExport_objectsSet, "f").clear();
|
|
223
|
+
__classPrivateFieldGet(this, _GxIdeKbManagerExport_addKbDescriptionEl, "f").value = undefined;
|
|
224
|
+
__classPrivateFieldGet(this, _GxIdeKbManagerExport_exportAllEl, "f").value = undefined;
|
|
225
|
+
});
|
|
226
|
+
_GxIdeKbManagerExport_evaluateContentToDisplay.set(this, () => {
|
|
227
|
+
// Nothing to display on the tree-view
|
|
228
|
+
if (!this.hasObjects && !this.exportAllIsChecked) {
|
|
229
|
+
return (h("gx-ide-empty-state", { isAnimated: __classPrivateFieldGet(this, _GxIdeKbManagerExport_animateEmptyState, "f"), stateTitle: __classPrivateFieldGet(this, _GxIdeKbManagerExport_componentLocale, "f").main.noObjectsToDisplay, key: "no-objects-empty-state" }, h("button", { class: "button-primary", onClick: __classPrivateFieldGet(this, _GxIdeKbManagerExport_addObjectsCallbackHandler, "f") }, __classPrivateFieldGet(this, _GxIdeKbManagerExport_componentLocale, "f").main.beginByADdingSomeObjects)));
|
|
211
230
|
}
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
if (this.addReferencesCallback) {
|
|
215
|
-
const objects = await this.addReferencesCallback(this.checkedObjectsIds);
|
|
216
|
-
this.updateObjects(objects);
|
|
231
|
+
else {
|
|
232
|
+
__classPrivateFieldSet(this, _GxIdeKbManagerExport_animateEmptyState, true, "f"); // improve performance if is first render
|
|
217
233
|
}
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
* Used to update objects. Objects are updated when calling the 'addObjectsCallback' or 'addReferencesCallback'
|
|
221
|
-
*/
|
|
222
|
-
this.updateObjects = (objects) => {
|
|
223
|
-
if (objects.length) {
|
|
224
|
-
const newTreeModel = updateTreeModelWithObjects(objects, this.flattenedObjectTypes, this.treeModel);
|
|
225
|
-
this.treeModel = newTreeModel;
|
|
234
|
+
if (this.exportAllIsChecked) {
|
|
235
|
+
return (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" }));
|
|
226
236
|
}
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
237
|
+
else {
|
|
238
|
+
__classPrivateFieldSet(this, _GxIdeKbManagerExport_animateEmptyState, true, "f"); // improve performance if is first render
|
|
239
|
+
}
|
|
240
|
+
return (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
|
|
241
|
+
? "none"
|
|
242
|
+
: "metadata", model: this.objectsTreeViewModel, showLines: "last", toggleCheckboxes: true, sortItemsCallback: __classPrivateFieldGet(this, _GxIdeKbManagerExport_sortTreeItems, "f"), onCheckedItemsChange: __classPrivateFieldGet(this, _GxIdeKbManagerExport_objectsTreeCheckedItemsChangedHandler, "f") }));
|
|
243
|
+
});
|
|
244
|
+
_GxIdeKbManagerExport_evaluateObjects.set(this, () => {
|
|
245
|
+
this.hasObjects =
|
|
246
|
+
this.objectsTreeViewModel && this.objectsTreeViewModel.length > 0;
|
|
247
|
+
});
|
|
248
|
+
_GxIdeKbManagerExport_evaluateTreeViewFilters.set(this, () => {
|
|
249
|
+
if (this.addKbPropertiesIsChecked && this.exportAllIsChecked) {
|
|
250
|
+
return KB_PROPERTY; // only show properties
|
|
251
|
+
}
|
|
252
|
+
if (!this.addKbPropertiesIsChecked && !this.exportAllIsChecked) {
|
|
253
|
+
return KB_OBJECT; // only show objects
|
|
254
|
+
}
|
|
255
|
+
return "none";
|
|
256
|
+
});
|
|
257
|
+
_GxIdeKbManagerExport_exportAllChangedHandler.set(this, (event) => {
|
|
258
|
+
this.exportAllIsChecked = event.detail.target.value !== "undefined";
|
|
259
|
+
});
|
|
260
|
+
_GxIdeKbManagerExport_exportCallbackHandler.set(this, async () => {
|
|
261
|
+
this.exportingIsInProcess = true;
|
|
262
|
+
const fileName = __classPrivateFieldGet(this, _GxIdeKbManagerExport_fileNameEl, "f").value;
|
|
263
|
+
const checkedKbPropertiesIds = this.addKbPropertiesIsChecked
|
|
264
|
+
? this.checkedPropertiesIds
|
|
265
|
+
: [];
|
|
266
|
+
const checkedObjectIds = this.exportAllIsChecked
|
|
267
|
+
? undefined
|
|
268
|
+
: this.checkedObjectsIds;
|
|
269
|
+
this.exportCallback(fileName, checkedKbPropertiesIds, checkedObjectIds).then(() => {
|
|
270
|
+
this.exportingIsInProcess = false;
|
|
271
|
+
});
|
|
272
|
+
// returns Promise<boolean> but no procedure was detailed on the spec.
|
|
273
|
+
});
|
|
274
|
+
_GxIdeKbManagerExport_objectsTreeCheckedItemsChangedHandler.set(this, (event) => {
|
|
232
275
|
// filter 'checked objects' and 'checked properties' ids
|
|
233
276
|
const checkedObjectsIds = [];
|
|
234
277
|
const checkedPropertiesIds = [];
|
|
@@ -243,156 +286,92 @@ const GxIdeKbManagerExport = class {
|
|
|
243
286
|
});
|
|
244
287
|
this.checkedObjectsIds = checkedObjectsIds;
|
|
245
288
|
this.checkedPropertiesIds = checkedPropertiesIds;
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
const checkedObjectIds = exportAllChecked
|
|
256
|
-
? undefined
|
|
257
|
-
: this.checkedObjectsIds;
|
|
258
|
-
this.exportCallback(fileName, checkedKbPropertiesIds, checkedObjectIds).then(() => {
|
|
259
|
-
this.exportingIsInProcess = false;
|
|
260
|
-
});
|
|
261
|
-
// returns Promise<boolean> but no procedure was detailed on the spec.
|
|
262
|
-
}
|
|
263
|
-
};
|
|
264
|
-
this.cancelCallbackHandler = async () => {
|
|
265
|
-
if (this.cancelCallback) {
|
|
266
|
-
const cancelled = await this.cancelCallback();
|
|
267
|
-
if (cancelled) {
|
|
268
|
-
this.exportingIsInProcess = false;
|
|
289
|
+
this.atLeastOnePropertyItemIsChecked = this.checkedPropertiesIds.length > 0;
|
|
290
|
+
this.atLeastOneObjectItemIsChecked = this.checkedObjectsIds.length > 0;
|
|
291
|
+
});
|
|
292
|
+
_GxIdeKbManagerExport_sortTreeItems.set(this, (subModel) => {
|
|
293
|
+
// "property" items should be added on top.
|
|
294
|
+
// else sort alphabetically by "caption" value.
|
|
295
|
+
return subModel.sort((a, b) => {
|
|
296
|
+
if (a.metadata === "property" && b.metadata !== "property") {
|
|
297
|
+
return -1;
|
|
269
298
|
}
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
this.objectsTreeEl.updateAllItemsProperties({ checked: false });
|
|
275
|
-
};
|
|
276
|
-
this.exportAllChangedHandler = (event) => {
|
|
277
|
-
this.exportAllIsChecked = event.detail.value;
|
|
278
|
-
};
|
|
279
|
-
this.evaluateTreeViewFilters = () => {
|
|
280
|
-
if (this.addKbPropertiesIsChecked && this.exportAllIsChecked) {
|
|
281
|
-
// only show properties
|
|
282
|
-
return KB_PROPERTY;
|
|
283
|
-
}
|
|
284
|
-
else if (!this.addKbPropertiesIsChecked && !this.exportAllIsChecked) {
|
|
285
|
-
// only show objects
|
|
286
|
-
return KB_OBJECT;
|
|
287
|
-
}
|
|
288
|
-
return "none"; // Applies if !this.addKbPropertiesIsChecked && this.exportAllIsChecked
|
|
289
|
-
};
|
|
290
|
-
this.evaluateContentToDisplay = () => {
|
|
291
|
-
// Nothing to display on the tree-view
|
|
292
|
-
if (this.noObjects) {
|
|
293
|
-
return this.renderMessage(true);
|
|
294
|
-
}
|
|
295
|
-
// The tree should be empty, because all filters are being applied.
|
|
296
|
-
// Display a message to prevent a white screen.
|
|
297
|
-
if (!this.addKbPropertiesIsChecked && this.exportAllIsChecked) {
|
|
298
|
-
return this.renderMessage(false);
|
|
299
|
-
}
|
|
300
|
-
return (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
|
|
301
|
-
? "none"
|
|
302
|
-
: "metadata", onCheckedItemsChange: this.objectsTreeCheckedItemsChangedHandler, ref: el => (this.objectsTreeEl = el), "show-lines": "last", class: "tree-view" }));
|
|
303
|
-
};
|
|
304
|
-
this.renderMessage = (nothingToDisplay) => {
|
|
305
|
-
return (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" }, nothingToDisplay ? ([
|
|
306
|
-
h("span", null, this._componentLocale.main.noObjectsToDisplay),
|
|
307
|
-
h("gxg-text", { type: "text-link-no-line", textAlign: "center", onClick: this.addObjectsCallbackHandler }, this._componentLocale.main.beginByADdingSomeObjects)
|
|
308
|
-
]) : (h("span", null, this._componentLocale.main.exportAllMessage))));
|
|
309
|
-
};
|
|
310
|
-
this.clearButtonDisabledConditions = () => {
|
|
311
|
-
const checkedItems = this.treeModel.filter(item => {
|
|
312
|
-
return item.checked;
|
|
299
|
+
if (b.metadata === "property" && a.metadata !== "property") {
|
|
300
|
+
return 1;
|
|
301
|
+
}
|
|
302
|
+
return a.caption.localeCompare(b.caption);
|
|
313
303
|
});
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
this.
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
304
|
+
});
|
|
305
|
+
_GxIdeKbManagerExport_renderFooter.set(this, () => {
|
|
306
|
+
const referencesButtonEnabled = this.atLeastOneObjectItemIsChecked;
|
|
307
|
+
const clearButtonEnabled = this.objectsTreeViewModel.length > 0;
|
|
308
|
+
return (h("footer", { class: "footer control-footer-with-border" }, 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), h("button", { class: "button-secondary button-icon-and-text", part: "references-button", disabled: !referencesButtonEnabled, onClick: referencesButtonEnabled && __classPrivateFieldGet(this, _GxIdeKbManagerExport_addReferencesCallbackHandler, "f") }, h("ch-image", { class: "icon-sm", disabled: !referencesButtonEnabled, src: GENERAL_REFERENCES_ICON }), __classPrivateFieldGet(this, _GxIdeKbManagerExport_componentLocale, "f").footer.addReferencesButton), h("button", {
|
|
309
|
+
// Add button
|
|
310
|
+
class: "button-primary button-icon-and-text", disabled: this.exportAllIsChecked, part: "add-button", onClick: !this.exportAllIsChecked && __classPrivateFieldGet(this, _GxIdeKbManagerExport_addObjectsCallbackHandler, "f")
|
|
311
|
+
}, h("ch-image", { class: "icon-sm", disabled: this.exportAllIsChecked, src: MENUS_NEW_OBJECT_ICON }), __classPrivateFieldGet(this, _GxIdeKbManagerExport_componentLocale, "f").footer.addButton)));
|
|
312
|
+
});
|
|
313
|
+
_GxIdeKbManagerExport_updateObjects.set(this, (objectsDataArray) => {
|
|
314
|
+
if (objectsDataArray.length) {
|
|
315
|
+
const newObjectsTreeModel = updateObjectsTreeModel(objectsDataArray, __classPrivateFieldGet(this, _GxIdeKbManagerExport_objectTypesMap, "f"), __classPrivateFieldGet(this, _GxIdeKbManagerExport_objectsSet, "f"), this.objectsTreeViewModel);
|
|
316
|
+
this.objectsTreeViewModel = newObjectsTreeModel;
|
|
317
|
+
}
|
|
318
|
+
});
|
|
323
319
|
this.addKbPropertiesIsChecked = false;
|
|
320
|
+
this.atLeastOnePropertyItemIsChecked = false;
|
|
321
|
+
this.atLeastOneObjectItemIsChecked = false;
|
|
324
322
|
this.checkedObjectsIds = [];
|
|
325
|
-
this.
|
|
326
|
-
this.
|
|
323
|
+
this.checkedPropertiesIds = [];
|
|
324
|
+
this.exportAllIsChecked = false;
|
|
327
325
|
this.exportingIsInProcess = false;
|
|
328
|
-
this.
|
|
326
|
+
this.hasObjects = undefined;
|
|
327
|
+
this.objectsTreeViewModel = [];
|
|
328
|
+
this.addKBPropertiesCallback = undefined;
|
|
329
|
+
this.addObjectsCallback = undefined;
|
|
330
|
+
this.addReferencesCallback = undefined;
|
|
331
|
+
this.cancelCallback = undefined;
|
|
332
|
+
this.exportCallback = undefined;
|
|
333
|
+
this.exportFileDirectoryCallback = undefined;
|
|
329
334
|
this.fileName = undefined;
|
|
330
|
-
this.loader = false;
|
|
331
335
|
this.kbPropertiesTypes = undefined;
|
|
336
|
+
this.loader = false;
|
|
332
337
|
this.objectTypes = undefined;
|
|
333
|
-
this.exportFileDirectoryCallback = undefined;
|
|
334
338
|
this.optionsCallback = undefined;
|
|
335
|
-
this.addKBPropertiesCallback = undefined;
|
|
336
|
-
this.addReferencesCallback = undefined;
|
|
337
|
-
this.addObjectsCallback = undefined;
|
|
338
|
-
this.exportCallback = undefined;
|
|
339
|
-
this.cancelCallback = undefined;
|
|
340
339
|
}
|
|
341
|
-
|
|
342
|
-
this.
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
this.
|
|
347
|
-
}
|
|
348
|
-
else if (!isExporting && this.loader) {
|
|
349
|
-
this.loaderEl.show = false;
|
|
340
|
+
objectsTreeViewModelChanged(newObjectsTreeViewModel) {
|
|
341
|
+
this.hasObjects =
|
|
342
|
+
newObjectsTreeViewModel && newObjectsTreeViewModel.length > 0;
|
|
343
|
+
if (!this.hasObjects) {
|
|
344
|
+
this.atLeastOnePropertyItemIsChecked = false;
|
|
345
|
+
this.atLeastOneObjectItemIsChecked = false;
|
|
350
346
|
}
|
|
351
347
|
}
|
|
352
|
-
|
|
353
|
-
this.
|
|
348
|
+
objectTypesChanged(newObjectTypesArray) {
|
|
349
|
+
__classPrivateFieldGet(this, _GxIdeKbManagerExport_instances, "m", _GxIdeKbManagerExport_objectsTypesArrayToMap).call(this, newObjectTypesArray);
|
|
354
350
|
}
|
|
355
|
-
// 6.COMPONENT LIFECYCLE EVENTS //
|
|
356
351
|
async componentWillLoad() {
|
|
357
|
-
this
|
|
358
|
-
this.
|
|
359
|
-
this.
|
|
360
|
-
this.flattenObjectTypes(this.objectTypes);
|
|
361
|
-
}
|
|
362
|
-
componentDidLoad() {
|
|
363
|
-
this.fileNameEl.focus();
|
|
352
|
+
__classPrivateFieldSet(this, _GxIdeKbManagerExport_componentLocale, await Locale.getComponentStrings(this.el), "f");
|
|
353
|
+
__classPrivateFieldGet(this, _GxIdeKbManagerExport_evaluateObjects, "f").call(this);
|
|
354
|
+
__classPrivateFieldGet(this, _GxIdeKbManagerExport_instances, "m", _GxIdeKbManagerExport_objectsTypesArrayToMap).call(this, this.objectTypes);
|
|
364
355
|
}
|
|
365
|
-
componentDidRender() {
|
|
366
|
-
if (!this.renderedFirstTime) {
|
|
367
|
-
this.componentDidRenderFirstTime.emit(this._componentLocale.componentName);
|
|
368
|
-
this.renderedFirstTime = true;
|
|
369
|
-
}
|
|
370
|
-
}
|
|
371
|
-
flattenObjectTypes(newState) {
|
|
372
|
-
newState.forEach(objectType => {
|
|
373
|
-
this.flattenedObjectTypes.set(objectType.id, objectType);
|
|
374
|
-
});
|
|
375
|
-
}
|
|
376
|
-
// 10.RENDER() FUNCTION //
|
|
377
356
|
render() {
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
this.exportAllIsChecked &&
|
|
384
|
-
!this.addKbPropertiesIsChecked)
|
|
385
|
-
// "tree-container--export-all": this.exportAllIsChecked
|
|
386
|
-
} }, this.evaluateContentToDisplay()), h("gxg-text", { type: "button-like", part: "export-button", slot: "footer-start", onClick: this.clearButtonHandler, disabled: this.clearButtonDisabledConditions() }, this._componentLocale.footer.clearButton), 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), 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 ? (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));
|
|
357
|
+
const exportButtonEnabled = this.atLeastOnePropertyItemIsChecked ||
|
|
358
|
+
this.atLeastOneObjectItemIsChecked ||
|
|
359
|
+
this.exportAllIsChecked;
|
|
360
|
+
const cancelButtonEnabled = this.exportingIsInProcess;
|
|
361
|
+
return (h(Host, { class: "spacing-body-block-start spacing-body-inline" }, h("ch-theme", { model: CSS_BUNDLES }), h("section", { class: "section field-group" }, h("header", { class: "header" }, h("div", { class: "field field-inline export-file-name" }, h("label", { class: "label", htmlFor: "xpz-file" }, __classPrivateFieldGet(this, _GxIdeKbManagerExport_componentLocale, "f").header.exportFileName), 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")) })), h("div", { class: "header__buttons-container" }, 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), 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), 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 }, h("ch-image", { class: "icon-md", src: SETTINGS_ICON }))), h("div", { class: "header__checkboxes field-group" }, 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")) }), 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")) }))), h("div", { class: "main" }, __classPrivateFieldGet(this, _GxIdeKbManagerExport_evaluateContentToDisplay, "f").call(this), this.loader && this.exportingIsInProcess && (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))));
|
|
387
362
|
}
|
|
388
363
|
static get assetsDirs() { return ["gx-ide-assets/kb-manager-export"]; }
|
|
389
364
|
get el() { return getElement(this); }
|
|
390
365
|
static get watchers() { return {
|
|
391
|
-
"
|
|
392
|
-
"
|
|
393
|
-
"objectTypes": ["watchObjectTypesHandler"]
|
|
366
|
+
"objectsTreeViewModel": ["objectsTreeViewModelChanged"],
|
|
367
|
+
"objectTypes": ["objectTypesChanged"]
|
|
394
368
|
}; }
|
|
395
369
|
};
|
|
370
|
+
_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) {
|
|
371
|
+
objectTypesArray.forEach(objectType => {
|
|
372
|
+
__classPrivateFieldGet(this, _GxIdeKbManagerExport_objectTypesMap, "f").set(objectType.id, objectType);
|
|
373
|
+
});
|
|
374
|
+
};
|
|
396
375
|
GxIdeKbManagerExport.style = kbManagerExportCss;
|
|
397
376
|
|
|
398
377
|
export { GxIdeKbManagerExport as gx_ide_kb_manager_export };
|