@genexus/genexus-ide-ui 1.0.75 → 1.1.0
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-open-api-import.cjs.entry.js +199 -0
- package/dist/cjs/gx-ide-open-api-import.cjs.entry.js.map +1 -0
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/collection-manifest.json +1 -0
- package/dist/collection/components/open-api-import/gx-ide-assets/open-api-import/langs/open-api-import.lang.en.json +24 -0
- package/dist/collection/components/open-api-import/gx-ide-assets/open-api-import/langs/open-api-import.lang.ja.json +24 -0
- package/dist/collection/components/open-api-import/gx-ide-assets/open-api-import/langs/open-api-import.lang.zh.json +24 -0
- package/dist/collection/components/open-api-import/helpers.js +18 -0
- package/dist/collection/components/open-api-import/helpers.js.map +1 -0
- package/dist/collection/components/open-api-import/open-api-import.css +87 -0
- package/dist/collection/components/open-api-import/open-api-import.js +368 -0
- package/dist/collection/components/open-api-import/open-api-import.js.map +1 -0
- package/dist/collection/testing/locale.e2e.js +1 -0
- package/dist/collection/testing/locale.e2e.js.map +1 -1
- package/dist/components/gx-ide-open-api-import.d.ts +11 -0
- package/dist/components/gx-ide-open-api-import.js +235 -0
- package/dist/components/gx-ide-open-api-import.js.map +1 -0
- package/dist/esm/genexus-ide-ui.js +1 -1
- package/dist/esm/gx-ide-open-api-import.entry.js +195 -0
- package/dist/esm/gx-ide-open-api-import.entry.js.map +1 -0
- 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/open-api-import/langs/open-api-import.lang.en.json +24 -0
- package/dist/genexus-ide-ui/gx-ide-assets/open-api-import/langs/open-api-import.lang.ja.json +24 -0
- package/dist/genexus-ide-ui/gx-ide-assets/open-api-import/langs/open-api-import.lang.zh.json +24 -0
- package/dist/genexus-ide-ui/p-fecc50e4.entry.js +321 -0
- package/dist/genexus-ide-ui/p-fecc50e4.entry.js.map +1 -0
- package/dist/types/components/open-api-import/helpers.d.ts +3 -0
- package/dist/types/components/open-api-import/open-api-import.d.ts +63 -0
- package/dist/types/components.d.ts +110 -24
- package/package.json +1 -1
|
@@ -0,0 +1,368 @@
|
|
|
1
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
2
|
+
if (kind === "a" && !f)
|
|
3
|
+
throw new TypeError("Private accessor was defined without a getter");
|
|
4
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver))
|
|
5
|
+
throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
6
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
7
|
+
};
|
|
8
|
+
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
9
|
+
if (kind === "m")
|
|
10
|
+
throw new TypeError("Private method is not writable");
|
|
11
|
+
if (kind === "a" && !f)
|
|
12
|
+
throw new TypeError("Private accessor was defined without a setter");
|
|
13
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver))
|
|
14
|
+
throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
15
|
+
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
16
|
+
};
|
|
17
|
+
var _GxIdeOpenAPIImport__componentLocale, _GxIdeOpenAPIImport_renderedFirstTime, _GxIdeOpenAPIImport_shortcutsSrc, _GxIdeOpenAPIImport_chShortcutsEl, _GxIdeOpenAPIImport_fileInputHiddenEl, _GxIdeOpenAPIImport_parentEl, _GxIdeOpenAPIImport_objectsTreeEl, _GxIdeOpenAPIImport_cancelImportHandler, _GxIdeOpenAPIImport_handleImport, _GxIdeOpenAPIImport_objectsTreeCheckedItemsChangedHandler, _GxIdeOpenAPIImport_handleSelectAll, _GxIdeOpenAPIImport_objectTreeClickedHandler, _GxIdeOpenAPIImport_removeFileSelection, _GxIdeOpenAPIImport_selectFileInputChangedHandler, _GxIdeOpenAPIImport_selectFileInputHandler, _GxIdeOpenAPIImport_renderFooter;
|
|
18
|
+
/* STENCIL IMPORTS */
|
|
19
|
+
import { Host, h, getAssetPath } from "@stencil/core";
|
|
20
|
+
/* OTHER LIBRARIES IMPORTS */
|
|
21
|
+
/* CUSTOM IMPORTS */
|
|
22
|
+
import { Locale } from "../../common/locale";
|
|
23
|
+
import { getIconPath } from "@genexus/mercury";
|
|
24
|
+
import { convertActionToTreeViewItem } from "./helpers";
|
|
25
|
+
const CSS_BUNDLES = [
|
|
26
|
+
"resets/box-sizing",
|
|
27
|
+
"components/button",
|
|
28
|
+
"components/checkbox",
|
|
29
|
+
"components/edit",
|
|
30
|
+
"components/icon",
|
|
31
|
+
"components/tree-view",
|
|
32
|
+
"components/list-box",
|
|
33
|
+
"utils/form",
|
|
34
|
+
"utils/layout",
|
|
35
|
+
"utils/spacing",
|
|
36
|
+
"utils/typography"
|
|
37
|
+
];
|
|
38
|
+
const FILE_ICON = getIconPath({
|
|
39
|
+
category: "gemini-tools",
|
|
40
|
+
name: "file",
|
|
41
|
+
colorType: "on-elevation"
|
|
42
|
+
});
|
|
43
|
+
const MENU_DELETE = getIconPath({
|
|
44
|
+
category: "menus",
|
|
45
|
+
name: "delete",
|
|
46
|
+
colorType: "primary"
|
|
47
|
+
});
|
|
48
|
+
const CHECKBOX_ALL_CHECKED_VALUE = "allChecked";
|
|
49
|
+
const CHECKBOX_ALL_UNCHECKED_VALUE = "allUnchecked";
|
|
50
|
+
export class GxIdeOpenAPIImport {
|
|
51
|
+
constructor() {
|
|
52
|
+
_GxIdeOpenAPIImport__componentLocale.set(this, void 0);
|
|
53
|
+
_GxIdeOpenAPIImport_renderedFirstTime.set(this, false);
|
|
54
|
+
_GxIdeOpenAPIImport_shortcutsSrc.set(this, getAssetPath(`./gx-ide-assets/new-object/shortcuts.json`));
|
|
55
|
+
_GxIdeOpenAPIImport_chShortcutsEl.set(this, void 0);
|
|
56
|
+
_GxIdeOpenAPIImport_fileInputHiddenEl.set(this, void 0);
|
|
57
|
+
_GxIdeOpenAPIImport_parentEl.set(this, void 0);
|
|
58
|
+
_GxIdeOpenAPIImport_objectsTreeEl.set(this, void 0);
|
|
59
|
+
// 9.LOCAL METHODS //
|
|
60
|
+
_GxIdeOpenAPIImport_cancelImportHandler.set(this, () => {
|
|
61
|
+
if (this.cancelCallback) {
|
|
62
|
+
this.cancelCallback();
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
_GxIdeOpenAPIImport_handleImport.set(this, async () => {
|
|
66
|
+
await this.importCallback(this.selectedOperations);
|
|
67
|
+
});
|
|
68
|
+
_GxIdeOpenAPIImport_objectsTreeCheckedItemsChangedHandler.set(this, (event) => {
|
|
69
|
+
if (event.detail.size === 0) {
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
const allItems = event.detail;
|
|
73
|
+
const checkedItems = [...allItems.values()].filter(node => node.item.checked);
|
|
74
|
+
this.selectedOperations = checkedItems.map(item => item.item.id);
|
|
75
|
+
// Evaluate "Select All" checkbox state (siguiendo el patrón de kb-manager-import)
|
|
76
|
+
if (allItems.size === checkedItems.length) {
|
|
77
|
+
this.selectAllCheckboxValue = CHECKBOX_ALL_CHECKED_VALUE;
|
|
78
|
+
this.selectAllCheckboxIndeterminate = false;
|
|
79
|
+
}
|
|
80
|
+
else if (checkedItems.length === 0) {
|
|
81
|
+
this.selectAllCheckboxValue = CHECKBOX_ALL_UNCHECKED_VALUE;
|
|
82
|
+
this.selectAllCheckboxIndeterminate = false;
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
this.selectAllCheckboxIndeterminate = true;
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
_GxIdeOpenAPIImport_handleSelectAll.set(this, (event) => {
|
|
89
|
+
if ("detail" in event && __classPrivateFieldGet(this, _GxIdeOpenAPIImport_objectsTreeEl, "f")) {
|
|
90
|
+
const checked = event.detail ===
|
|
91
|
+
CHECKBOX_ALL_CHECKED_VALUE;
|
|
92
|
+
// Usar updateAllItemsProperties como en kb-manager-import
|
|
93
|
+
__classPrivateFieldGet(this, _GxIdeOpenAPIImport_objectsTreeEl, "f").updateAllItemsProperties({ checked: checked });
|
|
94
|
+
this.selectedOperations = checked ? this.operations.map(op => op.id) : [];
|
|
95
|
+
this.selectAllCheckboxValue = checked
|
|
96
|
+
? CHECKBOX_ALL_CHECKED_VALUE
|
|
97
|
+
: CHECKBOX_ALL_UNCHECKED_VALUE;
|
|
98
|
+
this.selectAllCheckboxIndeterminate = false;
|
|
99
|
+
}
|
|
100
|
+
});
|
|
101
|
+
_GxIdeOpenAPIImport_objectTreeClickedHandler.set(this, (event) => {
|
|
102
|
+
var _a;
|
|
103
|
+
this.selectedOperationForDescription = (_a = this.operations.filter(op => { var _a; return op.id === ((_a = event.detail[0]) === null || _a === void 0 ? void 0 : _a.item.id); })[0]) === null || _a === void 0 ? void 0 : _a.description;
|
|
104
|
+
});
|
|
105
|
+
_GxIdeOpenAPIImport_removeFileSelection.set(this, () => {
|
|
106
|
+
this.selectedFile = null;
|
|
107
|
+
__classPrivateFieldGet(this, _GxIdeOpenAPIImport_fileInputHiddenEl, "f").value = null;
|
|
108
|
+
this.operations = [];
|
|
109
|
+
this.actionListItems = [];
|
|
110
|
+
this.selectedOperationForDescription = null;
|
|
111
|
+
});
|
|
112
|
+
_GxIdeOpenAPIImport_selectFileInputChangedHandler.set(this, async (event) => {
|
|
113
|
+
var _a;
|
|
114
|
+
const target = event.target;
|
|
115
|
+
if (((_a = target.files) === null || _a === void 0 ? void 0 : _a.length) > 0) {
|
|
116
|
+
this.selectedFile = target.files[0];
|
|
117
|
+
this.operations = await this.loadCallback(this.selectedFile, __classPrivateFieldGet(this, _GxIdeOpenAPIImport_parentEl, "f").value.id);
|
|
118
|
+
this.actionListItems = convertActionToTreeViewItem(this.operations);
|
|
119
|
+
}
|
|
120
|
+
});
|
|
121
|
+
_GxIdeOpenAPIImport_selectFileInputHandler.set(this, () => {
|
|
122
|
+
__classPrivateFieldGet(this, _GxIdeOpenAPIImport_fileInputHiddenEl, "f").click();
|
|
123
|
+
});
|
|
124
|
+
_GxIdeOpenAPIImport_renderFooter.set(this, () => {
|
|
125
|
+
var _a;
|
|
126
|
+
return (h("footer", { class: "control-footer control-footer-space-between spacing-body-block-end spacing-body-inline" }, h("div", { class: "buttons-spacer" }, h("ch-checkbox", { id: "select-all-checkbox", class: "checkbox", checkedValue: CHECKBOX_ALL_CHECKED_VALUE, unCheckedValue: CHECKBOX_ALL_UNCHECKED_VALUE, caption: __classPrivateFieldGet(this, _GxIdeOpenAPIImport__componentLocale, "f").main.selectAll, value: this.selectAllCheckboxValue, indeterminate: this.selectAllCheckboxIndeterminate, onInput: __classPrivateFieldGet(this, _GxIdeOpenAPIImport_handleSelectAll, "f"), disabled: this.importingIsInProcess || !((_a = this.operations) === null || _a === void 0 ? void 0 : _a.length), part: "select-all-checkbox" })), h("div", { class: "buttons-spacer" }, h("button", { class: "button-secondary", slot: "footer-end", part: "button-cancel", onClick: __classPrivateFieldGet(this, _GxIdeOpenAPIImport_cancelImportHandler, "f") }, __classPrivateFieldGet(this, _GxIdeOpenAPIImport__componentLocale, "f").footer.cancel), h("button", { class: "button-primary", slot: "footer-end", part: "button-confirm", onClick: __classPrivateFieldGet(this, _GxIdeOpenAPIImport_handleImport, "f") }, __classPrivateFieldGet(this, _GxIdeOpenAPIImport__componentLocale, "f").footer.import))));
|
|
127
|
+
});
|
|
128
|
+
this.actionListItems = [];
|
|
129
|
+
this.importingIsInProcess = false;
|
|
130
|
+
this.operations = [];
|
|
131
|
+
this.selectedFile = undefined;
|
|
132
|
+
this.selectedOperationForDescription = undefined;
|
|
133
|
+
this.selectedOperations = [];
|
|
134
|
+
this.selectAllCheckboxValue = undefined;
|
|
135
|
+
this.selectAllCheckboxIndeterminate = false;
|
|
136
|
+
this.defaultParent = undefined;
|
|
137
|
+
this.displayTitle = false;
|
|
138
|
+
this.cancelCallback = undefined;
|
|
139
|
+
this.importCallback = undefined;
|
|
140
|
+
this.loadCallback = undefined;
|
|
141
|
+
this.selectParentCallback = undefined;
|
|
142
|
+
}
|
|
143
|
+
componentDidRender() {
|
|
144
|
+
if (!__classPrivateFieldGet(this, _GxIdeOpenAPIImport_renderedFirstTime, "f")) {
|
|
145
|
+
this.componentDidRenderFirstTime.emit(__classPrivateFieldGet(this, _GxIdeOpenAPIImport__componentLocale, "f").componentName);
|
|
146
|
+
__classPrivateFieldSet(this, _GxIdeOpenAPIImport_renderedFirstTime, true, "f");
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
async componentWillLoad() {
|
|
150
|
+
__classPrivateFieldSet(this, _GxIdeOpenAPIImport__componentLocale, await Locale.getComponentStrings(this.el), "f");
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Suspends or reactivates the shortcuts
|
|
154
|
+
*/
|
|
155
|
+
async suspendShortcuts(suspendShortcuts) {
|
|
156
|
+
if (suspendShortcuts) {
|
|
157
|
+
__classPrivateFieldGet(this, _GxIdeOpenAPIImport_chShortcutsEl, "f").suspend = true;
|
|
158
|
+
}
|
|
159
|
+
else {
|
|
160
|
+
__classPrivateFieldGet(this, _GxIdeOpenAPIImport_chShortcutsEl, "f").suspend = false;
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
render() {
|
|
164
|
+
var _a;
|
|
165
|
+
return (h(Host, { class: "widget" }, h("ch-theme", { model: CSS_BUNDLES }), h("ch-shortcuts", { src: __classPrivateFieldGet(this, _GxIdeOpenAPIImport_shortcutsSrc, "f"), ref: (el) => (__classPrivateFieldSet(this, _GxIdeOpenAPIImport_chShortcutsEl, el, "f")) }), h("section", null, h("header", { class: "header control-header-with-border space-body spacing-body-inline spacing-body-block-start", role: "banner" }, h("div", { class: "field-group header__field-group" }, h("div", { class: "import-file-label" }, h("div", { class: "field field-block" }, h("label", { class: "label", htmlFor: "file-name" }, __classPrivateFieldGet(this, _GxIdeOpenAPIImport__componentLocale, "f").header.fileNameLabel))), h("div", { class: "input-file" }, h("div", { class: "field input-file" }, h("ch-edit", { autoFocus: true, id: "file-name", class: "input file", part: "file-name", type: "text", readonly: true, value: (_a = this.selectedFile) === null || _a === void 0 ? void 0 : _a.name, placeholder: __classPrivateFieldGet(this, _GxIdeOpenAPIImport__componentLocale, "f").header.fileNamePlaceholder, startImgSrc: FILE_ICON }), h("input", { hidden: true, type: "file", accept: ".json, .yaml", onChange: __classPrivateFieldGet(this, _GxIdeOpenAPIImport_selectFileInputChangedHandler, "f"), ref: (el) => (__classPrivateFieldSet(this, _GxIdeOpenAPIImport_fileInputHiddenEl, el, "f")) })), h("div", { class: "cancel-btn " }, h("button", { "aria-label": __classPrivateFieldGet(this, _GxIdeOpenAPIImport__componentLocale, "f").header.removeFileSelection, title: __classPrivateFieldGet(this, _GxIdeOpenAPIImport__componentLocale, "f").header.removeFileSelection, id: "reset-all-button", class: "button-tertiary button-icon-only", part: "reset-all-button", onClick: __classPrivateFieldGet(this, _GxIdeOpenAPIImport_removeFileSelection, "f") }, h("ch-image", { class: "icon-md", src: MENU_DELETE })))), h("div", { class: "header__buttons-container" }, h("button", { id: "select-file-load-button", class: "button-primary", part: "select-file-load-button", onClick: __classPrivateFieldGet(this, _GxIdeOpenAPIImport_selectFileInputHandler, "f"), disabled: this.importingIsInProcess }, __classPrivateFieldGet(this, _GxIdeOpenAPIImport__componentLocale, "f").header.selectFileButton)), h("div", { class: "module-folder-label" }, h("div", { class: "field field-block" }, h("label", { class: "label" }, __classPrivateFieldGet(this, _GxIdeOpenAPIImport__componentLocale, "f").header.moduleFolderLabel))), h("div", { class: "field module-folder-name " }, h("gx-ide-entity-selector", { value: this.defaultParent, defaultValue: this.defaultParent, selectEntityCallback: this.selectParentCallback, labelPosition: "none", ref: (el) => (__classPrivateFieldSet(this, _GxIdeOpenAPIImport_parentEl, el, "f")), class: "module-folder" })))), h("main", { class: "main" }, h("div", { class: "section-grid" }, h("h2", { id: "operations-title", class: "control-header control-header-with-border control-header__operations subtitle-regular-xs text-align-center spacing-body-inline" }, __classPrivateFieldGet(this, _GxIdeOpenAPIImport__componentLocale, "f").main.operations), h("div", { class: "list-wrapper field-group spacing-body-block-start spacing-body-inline scrollable", role: "region", "aria-labelledby": "operations-title" }, h("ch-tree-view-render", { class: "tree-view tree-operations", model: this.actionListItems, "show-lines": "last", onCheckedItemsChange: __classPrivateFieldGet(this, _GxIdeOpenAPIImport_objectsTreeCheckedItemsChangedHandler, "f"), onSelectedItemsChange: __classPrivateFieldGet(this, _GxIdeOpenAPIImport_objectTreeClickedHandler, "f"), ref: el => (__classPrivateFieldSet(this, _GxIdeOpenAPIImport_objectsTreeEl, el, "f")) })), h("h2", { id: "description-title", class: "control-header control-header-with-border control-header__description subtitle-regular-xs text-align-center spacing-body-inline" }, __classPrivateFieldGet(this, _GxIdeOpenAPIImport__componentLocale, "f").main.procedureDescription), h("div", { class: "procedure-description field-group spacing-body-block-start spacing-body-inline scrollable", role: "region", "aria-labelledby": "description-title" }, this.selectedOperationForDescription))), __classPrivateFieldGet(this, _GxIdeOpenAPIImport_renderFooter, "f").call(this))));
|
|
166
|
+
}
|
|
167
|
+
static get is() { return "gx-ide-open-api-import"; }
|
|
168
|
+
static get encapsulation() { return "shadow"; }
|
|
169
|
+
static get originalStyleUrls() {
|
|
170
|
+
return {
|
|
171
|
+
"$": ["open-api-import.scss"]
|
|
172
|
+
};
|
|
173
|
+
}
|
|
174
|
+
static get styleUrls() {
|
|
175
|
+
return {
|
|
176
|
+
"$": ["open-api-import.css"]
|
|
177
|
+
};
|
|
178
|
+
}
|
|
179
|
+
static get assetsDirs() { return ["gx-ide-assets/open-api-import"]; }
|
|
180
|
+
static get properties() {
|
|
181
|
+
return {
|
|
182
|
+
"defaultParent": {
|
|
183
|
+
"type": "unknown",
|
|
184
|
+
"mutable": false,
|
|
185
|
+
"complexType": {
|
|
186
|
+
"original": "EntityData",
|
|
187
|
+
"resolved": "{ id: string; name: string; iconSrc?: string; }",
|
|
188
|
+
"references": {
|
|
189
|
+
"EntityData": {
|
|
190
|
+
"location": "import",
|
|
191
|
+
"path": "../../common/types",
|
|
192
|
+
"id": "src/common/types.ts::EntityData"
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
},
|
|
196
|
+
"required": false,
|
|
197
|
+
"optional": false,
|
|
198
|
+
"docs": {
|
|
199
|
+
"tags": [],
|
|
200
|
+
"text": "Default value for the Module/Folder field."
|
|
201
|
+
}
|
|
202
|
+
},
|
|
203
|
+
"displayTitle": {
|
|
204
|
+
"type": "boolean",
|
|
205
|
+
"mutable": false,
|
|
206
|
+
"complexType": {
|
|
207
|
+
"original": "false",
|
|
208
|
+
"resolved": "boolean",
|
|
209
|
+
"references": {}
|
|
210
|
+
},
|
|
211
|
+
"required": false,
|
|
212
|
+
"optional": false,
|
|
213
|
+
"docs": {
|
|
214
|
+
"tags": [],
|
|
215
|
+
"text": "If true it displays the component title on the header"
|
|
216
|
+
},
|
|
217
|
+
"attribute": "display-title",
|
|
218
|
+
"reflect": false,
|
|
219
|
+
"defaultValue": "false"
|
|
220
|
+
},
|
|
221
|
+
"cancelCallback": {
|
|
222
|
+
"type": "unknown",
|
|
223
|
+
"mutable": false,
|
|
224
|
+
"complexType": {
|
|
225
|
+
"original": "CancelCallback",
|
|
226
|
+
"resolved": "() => Promise<void>",
|
|
227
|
+
"references": {
|
|
228
|
+
"CancelCallback": {
|
|
229
|
+
"location": "local",
|
|
230
|
+
"path": "/home/runner/work/genexus-ide-ui/genexus-ide-ui/src/components/open-api-import/open-api-import.tsx",
|
|
231
|
+
"id": "src/components/open-api-import/open-api-import.tsx::CancelCallback"
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
},
|
|
235
|
+
"required": false,
|
|
236
|
+
"optional": false,
|
|
237
|
+
"docs": {
|
|
238
|
+
"tags": [],
|
|
239
|
+
"text": "Callback invoked when the user wants to cancel the export process."
|
|
240
|
+
}
|
|
241
|
+
},
|
|
242
|
+
"importCallback": {
|
|
243
|
+
"type": "unknown",
|
|
244
|
+
"mutable": false,
|
|
245
|
+
"complexType": {
|
|
246
|
+
"original": "ImportCallback",
|
|
247
|
+
"resolved": "(operationIds: string[]) => Promise<boolean>",
|
|
248
|
+
"references": {
|
|
249
|
+
"ImportCallback": {
|
|
250
|
+
"location": "local",
|
|
251
|
+
"path": "/home/runner/work/genexus-ide-ui/genexus-ide-ui/src/components/open-api-import/open-api-import.tsx",
|
|
252
|
+
"id": "src/components/open-api-import/open-api-import.tsx::ImportCallback"
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
},
|
|
256
|
+
"required": false,
|
|
257
|
+
"optional": false,
|
|
258
|
+
"docs": {
|
|
259
|
+
"tags": [],
|
|
260
|
+
"text": "Callback invoked when the user wants to initiate the import process."
|
|
261
|
+
}
|
|
262
|
+
},
|
|
263
|
+
"loadCallback": {
|
|
264
|
+
"type": "unknown",
|
|
265
|
+
"mutable": false,
|
|
266
|
+
"complexType": {
|
|
267
|
+
"original": "LoadCallback",
|
|
268
|
+
"resolved": "(source: string | File, parentId: string) => Promise<ApiOperationData[]>",
|
|
269
|
+
"references": {
|
|
270
|
+
"LoadCallback": {
|
|
271
|
+
"location": "local",
|
|
272
|
+
"path": "/home/runner/work/genexus-ide-ui/genexus-ide-ui/src/components/open-api-import/open-api-import.tsx",
|
|
273
|
+
"id": "src/components/open-api-import/open-api-import.tsx::LoadCallback"
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
},
|
|
277
|
+
"required": false,
|
|
278
|
+
"optional": false,
|
|
279
|
+
"docs": {
|
|
280
|
+
"tags": [],
|
|
281
|
+
"text": "Callback invoked must be loaded the content for an specification API"
|
|
282
|
+
}
|
|
283
|
+
},
|
|
284
|
+
"selectParentCallback": {
|
|
285
|
+
"type": "unknown",
|
|
286
|
+
"mutable": false,
|
|
287
|
+
"complexType": {
|
|
288
|
+
"original": "SelectParentCallback",
|
|
289
|
+
"resolved": "() => Promise<EntityData>",
|
|
290
|
+
"references": {
|
|
291
|
+
"SelectParentCallback": {
|
|
292
|
+
"location": "local",
|
|
293
|
+
"path": "/home/runner/work/genexus-ide-ui/genexus-ide-ui/src/components/open-api-import/open-api-import.tsx",
|
|
294
|
+
"id": "src/components/open-api-import/open-api-import.tsx::SelectParentCallback"
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
},
|
|
298
|
+
"required": false,
|
|
299
|
+
"optional": false,
|
|
300
|
+
"docs": {
|
|
301
|
+
"tags": [],
|
|
302
|
+
"text": "Callback invoked when action is executed on Module/Folder filter (button '...')."
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
};
|
|
306
|
+
}
|
|
307
|
+
static get states() {
|
|
308
|
+
return {
|
|
309
|
+
"actionListItems": {},
|
|
310
|
+
"importingIsInProcess": {},
|
|
311
|
+
"operations": {},
|
|
312
|
+
"selectedFile": {},
|
|
313
|
+
"selectedOperationForDescription": {},
|
|
314
|
+
"selectedOperations": {},
|
|
315
|
+
"selectAllCheckboxValue": {},
|
|
316
|
+
"selectAllCheckboxIndeterminate": {}
|
|
317
|
+
};
|
|
318
|
+
}
|
|
319
|
+
static get events() {
|
|
320
|
+
return [{
|
|
321
|
+
"method": "componentDidRenderFirstTime",
|
|
322
|
+
"name": "componentDidRenderFirstTime",
|
|
323
|
+
"bubbles": true,
|
|
324
|
+
"cancelable": true,
|
|
325
|
+
"composed": true,
|
|
326
|
+
"docs": {
|
|
327
|
+
"tags": [{
|
|
328
|
+
"name": "description",
|
|
329
|
+
"text": "Gets fired when the component has rendered for the first time."
|
|
330
|
+
}],
|
|
331
|
+
"text": ""
|
|
332
|
+
},
|
|
333
|
+
"complexType": {
|
|
334
|
+
"original": "string",
|
|
335
|
+
"resolved": "string",
|
|
336
|
+
"references": {}
|
|
337
|
+
}
|
|
338
|
+
}];
|
|
339
|
+
}
|
|
340
|
+
static get methods() {
|
|
341
|
+
return {
|
|
342
|
+
"suspendShortcuts": {
|
|
343
|
+
"complexType": {
|
|
344
|
+
"signature": "(suspendShortcuts: boolean) => Promise<void>",
|
|
345
|
+
"parameters": [{
|
|
346
|
+
"name": "suspendShortcuts",
|
|
347
|
+
"type": "boolean",
|
|
348
|
+
"docs": ""
|
|
349
|
+
}],
|
|
350
|
+
"references": {
|
|
351
|
+
"Promise": {
|
|
352
|
+
"location": "global",
|
|
353
|
+
"id": "global::Promise"
|
|
354
|
+
}
|
|
355
|
+
},
|
|
356
|
+
"return": "Promise<void>"
|
|
357
|
+
},
|
|
358
|
+
"docs": {
|
|
359
|
+
"text": "Suspends or reactivates the shortcuts",
|
|
360
|
+
"tags": []
|
|
361
|
+
}
|
|
362
|
+
}
|
|
363
|
+
};
|
|
364
|
+
}
|
|
365
|
+
static get elementRef() { return "el"; }
|
|
366
|
+
}
|
|
367
|
+
_GxIdeOpenAPIImport__componentLocale = new WeakMap(), _GxIdeOpenAPIImport_renderedFirstTime = new WeakMap(), _GxIdeOpenAPIImport_shortcutsSrc = new WeakMap(), _GxIdeOpenAPIImport_chShortcutsEl = new WeakMap(), _GxIdeOpenAPIImport_fileInputHiddenEl = new WeakMap(), _GxIdeOpenAPIImport_parentEl = new WeakMap(), _GxIdeOpenAPIImport_objectsTreeEl = new WeakMap(), _GxIdeOpenAPIImport_cancelImportHandler = new WeakMap(), _GxIdeOpenAPIImport_handleImport = new WeakMap(), _GxIdeOpenAPIImport_objectsTreeCheckedItemsChangedHandler = new WeakMap(), _GxIdeOpenAPIImport_handleSelectAll = new WeakMap(), _GxIdeOpenAPIImport_objectTreeClickedHandler = new WeakMap(), _GxIdeOpenAPIImport_removeFileSelection = new WeakMap(), _GxIdeOpenAPIImport_selectFileInputChangedHandler = new WeakMap(), _GxIdeOpenAPIImport_selectFileInputHandler = new WeakMap(), _GxIdeOpenAPIImport_renderFooter = new WeakMap();
|
|
368
|
+
//# sourceMappingURL=open-api-import.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"open-api-import.js","sourceRoot":"","sources":["../../../src/components/open-api-import/open-api-import.tsx"],"names":[],"mappings":"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","sourcesContent":["/* STENCIL IMPORTS */\nimport {\n Component,\n Host,\n h,\n Prop,\n Element,\n Event,\n EventEmitter,\n State,\n getAssetPath,\n Method\n} from \"@stencil/core\";\n/* OTHER LIBRARIES IMPORTS */\n/* CUSTOM IMPORTS */\nimport { Locale } from \"../../common/locale\";\nimport { EntityData } from \"../../common/types\";\nimport { getIconPath, MercuryBundles } from \"@genexus/mercury\";\nimport {\n TreeViewItemModel,\n TreeViewItemModelExtended,\n ChCheckboxCustomEvent\n} from \"@genexus/chameleon-controls-library\";\nimport { convertActionToTreeViewItem } from \"./helpers\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"components/button\",\n \"components/checkbox\",\n \"components/edit\",\n \"components/icon\",\n \"components/tree-view\",\n \"components/list-box\",\n \"utils/form\",\n \"utils/layout\",\n \"utils/spacing\",\n \"utils/typography\"\n];\n\nconst FILE_ICON = getIconPath({\n category: \"gemini-tools\",\n name: \"file\",\n colorType: \"on-elevation\"\n});\n\nconst MENU_DELETE = getIconPath({\n category: \"menus\",\n name: \"delete\",\n colorType: \"primary\"\n});\n\nconst CHECKBOX_ALL_CHECKED_VALUE = \"allChecked\";\nconst CHECKBOX_ALL_UNCHECKED_VALUE = \"allUnchecked\";\n\n@Component({\n tag: \"gx-ide-open-api-import\",\n styleUrl: \"open-api-import.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/open-api-import\"]\n})\nexport class GxIdeOpenAPIImport {\n #_componentLocale: any;\n #renderedFirstTime = false;\n #shortcutsSrc = getAssetPath(`./gx-ide-assets/new-object/shortcuts.json`);\n\n @Element() el: HTMLGxIdeOpenApiImportElement;\n\n #chShortcutsEl: HTMLChShortcutsElement;\n #fileInputHiddenEl!: HTMLInputElement;\n #parentEl!: HTMLGxIdeEntitySelectorElement;\n\n @State() actionListItems: TreeViewItemModel[] = [];\n @State() importingIsInProcess = false;\n @State() operations: ApiOperationData[] = [];\n @State() selectedFile: File;\n @State() selectedOperationForDescription: string;\n @State() selectedOperations: string[] = [];\n @State() selectAllCheckboxValue: string;\n @State() selectAllCheckboxIndeterminate: boolean = false;\n\n /**\n * Default value for the Module/Folder field.\n */\n @Prop() readonly defaultParent: EntityData;\n\n /**\n * If true it displays the component title on the header\n */\n @Prop() readonly displayTitle = false;\n\n /**\n * Callback invoked when the user wants to cancel the export process.\n */\n @Prop() readonly cancelCallback: CancelCallback;\n\n /**\n * Callback invoked when the user wants to initiate the import process.\n */\n @Prop() readonly importCallback: ImportCallback;\n\n /**\n * Callback invoked must be loaded the content for an specification API\n */\n @Prop() readonly loadCallback: LoadCallback;\n\n /**\n * Callback invoked when action is executed on Module/Folder filter (button '...').\n */\n @Prop() readonly selectParentCallback: SelectParentCallback;\n\n /**\n * @description Gets fired when the component has rendered for the first time.\n */\n @Event() componentDidRenderFirstTime: EventEmitter<string>;\n\n #objectsTreeEl!: HTMLChTreeViewRenderElement;\n\n componentDidRender() {\n if (!this.#renderedFirstTime) {\n this.componentDidRenderFirstTime.emit(\n this.#_componentLocale.componentName\n );\n this.#renderedFirstTime = true;\n }\n }\n\n async componentWillLoad() {\n this.#_componentLocale = await Locale.getComponentStrings(this.el);\n }\n\n /**\n * Suspends or reactivates the shortcuts\n */\n @Method()\n async suspendShortcuts(suspendShortcuts: boolean) {\n if (suspendShortcuts) {\n this.#chShortcutsEl.suspend = true;\n } else {\n this.#chShortcutsEl.suspend = false;\n }\n }\n\n // 9.LOCAL METHODS //\n #cancelImportHandler = () => {\n if (this.cancelCallback) {\n this.cancelCallback();\n }\n };\n\n #handleImport = async () => {\n await this.importCallback(this.selectedOperations);\n };\n\n #objectsTreeCheckedItemsChangedHandler = (\n event: CustomEvent<Map<string, TreeViewItemModelExtended>>\n ) => {\n if (event.detail.size === 0) {\n return;\n }\n const allItems = event.detail;\n const checkedItems = [...allItems.values()].filter(\n node => node.item.checked\n );\n this.selectedOperations = checkedItems.map(item => item.item.id);\n\n // Evaluate \"Select All\" checkbox state (siguiendo el patrón de kb-manager-import)\n if (allItems.size === checkedItems.length) {\n this.selectAllCheckboxValue = CHECKBOX_ALL_CHECKED_VALUE;\n this.selectAllCheckboxIndeterminate = false;\n } else if (checkedItems.length === 0) {\n this.selectAllCheckboxValue = CHECKBOX_ALL_UNCHECKED_VALUE;\n this.selectAllCheckboxIndeterminate = false;\n } else {\n this.selectAllCheckboxIndeterminate = true;\n }\n };\n\n #handleSelectAll = (event: ChCheckboxCustomEvent<string> | InputEvent) => {\n if (\"detail\" in event && this.#objectsTreeEl) {\n const checked =\n (event as ChCheckboxCustomEvent<string>).detail ===\n CHECKBOX_ALL_CHECKED_VALUE;\n // Usar updateAllItemsProperties como en kb-manager-import\n this.#objectsTreeEl.updateAllItemsProperties({ checked: checked });\n this.selectedOperations = checked ? this.operations.map(op => op.id) : [];\n this.selectAllCheckboxValue = checked\n ? CHECKBOX_ALL_CHECKED_VALUE\n : CHECKBOX_ALL_UNCHECKED_VALUE;\n this.selectAllCheckboxIndeterminate = false;\n }\n };\n\n #objectTreeClickedHandler = (\n event: CustomEvent<TreeViewItemModelExtended[]>\n ) => {\n this.selectedOperationForDescription = this.operations.filter(\n op => op.id === event.detail[0]?.item.id\n )[0]?.description;\n };\n\n #removeFileSelection = () => {\n this.selectedFile = null;\n this.#fileInputHiddenEl.value = null;\n this.operations = [];\n this.actionListItems = [];\n this.selectedOperationForDescription = null;\n };\n\n #selectFileInputChangedHandler = async (event: InputEvent) => {\n const target = event.target as HTMLInputElement;\n if (target.files?.length > 0) {\n this.selectedFile = target.files[0];\n this.operations = await this.loadCallback(\n this.selectedFile,\n this.#parentEl.value.id\n );\n this.actionListItems = convertActionToTreeViewItem(this.operations);\n }\n };\n\n #selectFileInputHandler = () => {\n this.#fileInputHiddenEl.click();\n };\n\n #renderFooter = (): HTMLElement => {\n return (\n <footer class=\"control-footer control-footer-space-between spacing-body-block-end spacing-body-inline\">\n <div class=\"buttons-spacer\">\n <ch-checkbox\n id=\"select-all-checkbox\"\n class=\"checkbox\"\n checkedValue={CHECKBOX_ALL_CHECKED_VALUE}\n unCheckedValue={CHECKBOX_ALL_UNCHECKED_VALUE}\n caption={this.#_componentLocale.main.selectAll}\n value={this.selectAllCheckboxValue}\n indeterminate={this.selectAllCheckboxIndeterminate}\n onInput={this.#handleSelectAll}\n disabled={this.importingIsInProcess || !this.operations?.length}\n part=\"select-all-checkbox\"\n ></ch-checkbox>\n </div>\n <div class=\"buttons-spacer\">\n <button\n class=\"button-secondary\"\n slot=\"footer-end\"\n part=\"button-cancel\"\n onClick={this.#cancelImportHandler}\n >\n {this.#_componentLocale.footer.cancel}\n </button>\n\n <button\n class=\"button-primary\"\n slot=\"footer-end\"\n part=\"button-confirm\"\n onClick={this.#handleImport}\n >\n {this.#_componentLocale.footer.import}\n </button>\n </div>\n </footer>\n );\n };\n\n render() {\n return (\n <Host class=\"widget\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <ch-shortcuts\n src={this.#shortcutsSrc}\n ref={(el: HTMLChShortcutsElement) =>\n (this.#chShortcutsEl = el as HTMLChShortcutsElement)\n }\n ></ch-shortcuts>\n <section>\n <header\n class=\"header control-header-with-border space-body spacing-body-inline spacing-body-block-start\"\n role=\"banner\"\n >\n <div class=\"field-group header__field-group\">\n <div class=\"import-file-label\">\n <div class=\"field field-block\">\n <label class=\"label\" htmlFor=\"file-name\">\n {this.#_componentLocale.header.fileNameLabel}\n </label>\n </div>\n </div>\n <div class=\"input-file\">\n <div class=\"field input-file\">\n <ch-edit\n autoFocus\n id=\"file-name\"\n class=\"input file\"\n part=\"file-name\"\n type=\"text\"\n readonly\n value={this.selectedFile?.name}\n placeholder={\n this.#_componentLocale.header.fileNamePlaceholder\n }\n startImgSrc={FILE_ICON}\n ></ch-edit>\n <input\n hidden\n type=\"file\"\n accept=\".json, .yaml\"\n onChange={this.#selectFileInputChangedHandler}\n ref={(el: HTMLInputElement) =>\n (this.#fileInputHiddenEl = el as HTMLInputElement)\n }\n />\n </div>\n <div class=\"cancel-btn \">\n <button\n aria-label={\n this.#_componentLocale.header.removeFileSelection\n }\n title={this.#_componentLocale.header.removeFileSelection}\n id=\"reset-all-button\"\n class=\"button-tertiary button-icon-only\"\n part=\"reset-all-button\"\n onClick={this.#removeFileSelection}\n >\n <ch-image class=\"icon-md\" src={MENU_DELETE}></ch-image>\n </button>\n </div>\n </div>\n\n <div class=\"header__buttons-container\">\n <button\n id=\"select-file-load-button\"\n class=\"button-primary\"\n part=\"select-file-load-button\"\n onClick={this.#selectFileInputHandler}\n disabled={this.importingIsInProcess}\n >\n {this.#_componentLocale.header.selectFileButton}\n </button>\n </div>\n <div class=\"module-folder-label\">\n <div class=\"field field-block\">\n <label class=\"label\">\n {this.#_componentLocale.header.moduleFolderLabel}\n </label>\n </div>\n </div>\n <div class=\"field module-folder-name \">\n <gx-ide-entity-selector\n value={this.defaultParent}\n defaultValue={this.defaultParent}\n selectEntityCallback={this.selectParentCallback}\n labelPosition=\"none\"\n ref={(el: HTMLGxIdeEntitySelectorElement) =>\n (this.#parentEl = el as HTMLGxIdeEntitySelectorElement)\n }\n class=\"module-folder\"\n ></gx-ide-entity-selector>\n </div>\n </div>\n </header>\n\n <main class=\"main\">\n <div class=\"section-grid\">\n <h2\n id=\"operations-title\"\n class=\"control-header control-header-with-border control-header__operations subtitle-regular-xs text-align-center spacing-body-inline\"\n >\n {this.#_componentLocale.main.operations}\n </h2>\n\n <div\n class=\"list-wrapper field-group spacing-body-block-start spacing-body-inline scrollable\"\n role=\"region\"\n aria-labelledby=\"operations-title\"\n >\n <ch-tree-view-render\n class=\"tree-view tree-operations\"\n model={this.actionListItems}\n show-lines=\"last\"\n onCheckedItemsChange={\n this.#objectsTreeCheckedItemsChangedHandler\n }\n onSelectedItemsChange={this.#objectTreeClickedHandler}\n ref={el =>\n (this.#objectsTreeEl = el as HTMLChTreeViewRenderElement)\n }\n ></ch-tree-view-render>\n </div>\n\n <h2\n id=\"description-title\"\n class=\"control-header control-header-with-border control-header__description subtitle-regular-xs text-align-center spacing-body-inline\"\n >\n {this.#_componentLocale.main.procedureDescription}\n </h2>\n\n <div\n class=\"procedure-description field-group spacing-body-block-start spacing-body-inline scrollable\"\n role=\"region\"\n aria-labelledby=\"description-title\"\n >\n {this.selectedOperationForDescription}\n </div>\n </div>\n </main>\n {this.#renderFooter()}\n </section>\n </Host>\n );\n }\n}\n\nexport type ApiOperationData = {\n id: string;\n name: string;\n description: string;\n};\nexport type SelectionEventDetail = {\n itemId: string;\n itemValue: string;\n};\n\nexport type CancelCallback = () => Promise<void>;\nexport type ImportCallback = (operationIds: string[]) => Promise<boolean>;\nexport type SelectParentCallback = () => Promise<EntityData | undefined>;\nexport type LoadCallback = (\n source: string | File,\n parentId: string\n) => Promise<ApiOperationData[]>;\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"locale.e2e.js","sourceRoot":"","sources":["../../src/testing/locale.e2e.ts"],"names":[],"mappings":"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","sourcesContent":["import { E2EPage, newE2EPage } from \"@stencil/core/testing\";\nimport { GeneXusIdeUIControlsTagName } from \"../common/types\";\nimport { haveSameStructure } from \"./same-structure.e2e\";\n\nconst COMPONENT_PREFIX = \"gx-ide-\";\nconst languages: { name: string; attr: string }[] = [\n { name: \"chinese\", attr: \"zh\" },\n { name: \"english\", attr: \"en\" },\n { name: \"japanese\", attr: \"ja\" }\n];\n\nconst testLocale = (componentNameWithPrefix: GeneXusIdeUIControlsTagName) => {\n describe(`[locale][${componentNameWithPrefix}]`, () => {\n let page: E2EPage;\n const componentName = componentNameWithPrefix.replace(COMPONENT_PREFIX, \"\");\n\n // This implementation is a WA since we can't evaluate JS classes in the page.\n // TODO: Implement the locale utility as a function, which can be evaluated\n // in the page\n const getTranslations = () =>\n page.evaluate(component => {\n const ASSETS_FOLDER = \"gx-ide-assets/\";\n const DEFAULT_LANGUAGE = \"en\";\n const LANGS_FOLDER = \"langs/\";\n const LANG_PREFIX = \".lang.\";\n const LANG_EXTENSION = \".json\";\n const lang =\n document\n .getElementsByTagName(\"html\")[0]\n .getAttribute(\"lang\")\n ?.valueOf() ?? DEFAULT_LANGUAGE;\n const folder = `${component}/`;\n\n const path =\n `/build/${ASSETS_FOLDER}${folder}${LANGS_FOLDER}${component}${LANG_PREFIX}${lang}${LANG_EXTENSION}` as const;\n\n return new Promise(resolve => {\n fetch(path)\n .then(async langFile => {\n if (langFile.ok) {\n const fileObject = await langFile.json();\n resolve(fileObject);\n } else {\n resolve(undefined);\n }\n })\n .catch(() => resolve(undefined));\n });\n }, componentName);\n\n beforeEach(async () => {\n page = await newE2EPage({\n failOnConsoleError: true,\n html: \"\" // Necessary\n });\n });\n\n it(\"should work without specifying the language (lang attr) in the browser\", async () => {\n const languageFile: any | undefined = await getTranslations();\n expect(languageFile).toBeTruthy();\n });\n\n it(\"should default to english language when there is no language (lang attr) in the browser\", async () => {\n const languageFile: any | undefined = await getTranslations();\n expect(languageFile).toBeTruthy();\n\n await page.evaluate(() =>\n document.documentElement.setAttribute(\"lang\", \"en\")\n );\n\n const languageEnglishFile: any | undefined = await getTranslations();\n expect(languageEnglishFile).toBeTruthy();\n expect(languageFile).toEqual(languageEnglishFile);\n });\n\n languages.forEach(language => {\n it(`should work with ${language.name} language`, async () => {\n await page.evaluate(\n (attr: string) => document.documentElement.setAttribute(\"lang\", attr),\n language.attr\n );\n const languageFile: any | undefined = await getTranslations();\n expect(languageFile).toBeTruthy();\n });\n });\n\n for (let index = 0; index < languages.length - 1; index++) {\n const language1 = languages[index];\n const language2 = languages[index + 1];\n\n // TODO: Complete all translations. At this moment, Japanese and Chinese\n // translations have missing literals\n it(`should translate the same literals (${language1.name} and ${language2.name})`, async () => {\n await page.evaluate(\n (attr: string) => document.documentElement.setAttribute(\"lang\", attr),\n language1.attr\n );\n const language1File: any | undefined = await getTranslations();\n\n await page.evaluate(\n (attr: string) => document.documentElement.setAttribute(\"lang\", attr),\n language2.attr\n );\n const language2File: any | undefined = await getTranslations();\n\n expect(language1File).toBeTruthy();\n expect(language2File).toBeTruthy();\n expect(haveSameStructure(language1File, language2File)).toBe(true);\n });\n }\n });\n};\n\n// TypeScript does not have a built-in type to exhaust a list with union types\nconst allGeneXusIdeUIComponents: { [key in GeneXusIdeUIControlsTagName]: 0 } = {\n \"gx-ide-about\": 0,\n \"gx-ide-ai-assistant\": 0,\n \"gx-ide-ai-message\": 0,\n \"gx-ide-bpm-app-declaration\": 0,\n \"gx-ide-bpm-assign-roles\": 0,\n \"gx-ide-bpm-import-files\": 0,\n \"gx-ide-bpm-import-gxpm\": 0,\n \"gx-ide-bpm-objects-selector\": 0,\n \"gx-ide-bpm-sync-gam-roles\": 0,\n \"gx-ide-bpm-task-documents\": 0,\n \"gx-ide-bpm-timer-duration\": 0,\n \"gx-ide-card\": 0,\n \"gx-ide-chat-container\": 0,\n \"gx-ide-sc-chat-container\": 0,\n \"gx-ide-connect-gx-server\": 0,\n \"gx-ide-container\": 0,\n \"gx-ide-create-kb-from-server\": 0,\n \"gx-ide-current-user-info\": 0,\n \"gx-ide-dashboard-home\": 0,\n \"gx-ide-data-selector\": 0,\n \"gx-ide-data-type-selector\": 0,\n \"gx-ide-design-import\": 0,\n \"gx-ide-directory-selector\": 0,\n \"gx-ide-edit-module-server\": 0,\n \"gx-ide-empty-state\": 0,\n \"gx-ide-entity-selector\": 0,\n \"gx-ide-gam-installation-settings\": 0,\n \"gx-ide-kb-manager-export\": 0,\n \"gx-ide-kb-manager-import\": 0,\n \"gx-ide-list-selector\": 0,\n \"gx-ide-list-selector-item\": 0,\n \"gx-ide-loader\": 0,\n \"gx-ide-manage-module-references\": 0,\n \"gx-ide-manage-module-references-v2\": 0,\n \"gx-ide-new-environment\": 0,\n \"gx-ide-new-kb\": 0,\n \"gx-ide-new-object\": 0,\n \"gx-ide-new-version\": 0,\n \"gx-ide-object-selector\": 0,\n \"gx-ide-references\": 0,\n \"gx-ide-select-kb-items\": 0,\n \"gx-ide-select-user-team\": 0,\n \"gx-ide-sign-in\": 0,\n \"gx-ide-sign-in-team\": 0,\n \"gx-ide-share-kb\": 0,\n \"gx-ide-start-page\": 0,\n \"gx-ide-status-buttons\": 0,\n \"gx-ide-switch-panel\": 0,\n \"gx-ide-switcher\": 0,\n \"gx-ide-team-dev-commit\": 0,\n \"gx-ide-team-dev-select-recent-comment\": 0,\n \"gx-ide-team-dev-update\": 0,\n \"gx-ide-team-dev-update-partial-selection\": 0,\n \"gx-ide-team-dev-update-to-revision\": 0,\n \"gx-ide-template\": 0,\n \"gx-ide-test\": 0,\n \"gx-ide-title\": 0,\n \"gx-ide-top-bar\": 0,\n \"gx-ide-wf-settings\": 0,\n \"gx-ide-ww-images\": 0,\n \"gx-ide-ww-attributes\": 0,\n \"gx-ide-ww-files\": 0,\n \"gx-ide-navigation-report\": 0,\n \"gx-ide-splash\": 0,\n \"gx-ide-welcome-page\": 0,\n \"gx-ide-bpm-export-xpdl\": 0\n};\n\nconst componentsWithoutTranslations = new Set<GeneXusIdeUIControlsTagName>([\n \"gx-ide-ai-message\",\n \"gx-ide-chat-container\",\n \"gx-ide-container\",\n \"gx-ide-sc-chat-container\",\n \"gx-ide-directory-selector\",\n \"gx-ide-empty-state\",\n \"gx-ide-list-selector\",\n \"gx-ide-list-selector-item\",\n \"gx-ide-loader\",\n \"gx-ide-switch-panel\",\n \"gx-ide-switcher\",\n \"gx-ide-test\",\n \"gx-ide-title\",\n \"gx-ide-top-bar\"\n]);\n\nconst componentsWithTranslations = Object.keys(\n allGeneXusIdeUIComponents\n).filter(\n component =>\n !componentsWithoutTranslations.has(component as GeneXusIdeUIControlsTagName)\n);\n\ncomponentsWithTranslations.forEach(testLocale);\n"]}
|
|
1
|
+
{"version":3,"file":"locale.e2e.js","sourceRoot":"","sources":["../../src/testing/locale.e2e.ts"],"names":[],"mappings":"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","sourcesContent":["import { E2EPage, newE2EPage } from \"@stencil/core/testing\";\nimport { GeneXusIdeUIControlsTagName } from \"../common/types\";\nimport { haveSameStructure } from \"./same-structure.e2e\";\n\nconst COMPONENT_PREFIX = \"gx-ide-\";\nconst languages: { name: string; attr: string }[] = [\n { name: \"chinese\", attr: \"zh\" },\n { name: \"english\", attr: \"en\" },\n { name: \"japanese\", attr: \"ja\" }\n];\n\nconst testLocale = (componentNameWithPrefix: GeneXusIdeUIControlsTagName) => {\n describe(`[locale][${componentNameWithPrefix}]`, () => {\n let page: E2EPage;\n const componentName = componentNameWithPrefix.replace(COMPONENT_PREFIX, \"\");\n\n // This implementation is a WA since we can't evaluate JS classes in the page.\n // TODO: Implement the locale utility as a function, which can be evaluated\n // in the page\n const getTranslations = () =>\n page.evaluate(component => {\n const ASSETS_FOLDER = \"gx-ide-assets/\";\n const DEFAULT_LANGUAGE = \"en\";\n const LANGS_FOLDER = \"langs/\";\n const LANG_PREFIX = \".lang.\";\n const LANG_EXTENSION = \".json\";\n const lang =\n document\n .getElementsByTagName(\"html\")[0]\n .getAttribute(\"lang\")\n ?.valueOf() ?? DEFAULT_LANGUAGE;\n const folder = `${component}/`;\n\n const path =\n `/build/${ASSETS_FOLDER}${folder}${LANGS_FOLDER}${component}${LANG_PREFIX}${lang}${LANG_EXTENSION}` as const;\n\n return new Promise(resolve => {\n fetch(path)\n .then(async langFile => {\n if (langFile.ok) {\n const fileObject = await langFile.json();\n resolve(fileObject);\n } else {\n resolve(undefined);\n }\n })\n .catch(() => resolve(undefined));\n });\n }, componentName);\n\n beforeEach(async () => {\n page = await newE2EPage({\n failOnConsoleError: true,\n html: \"\" // Necessary\n });\n });\n\n it(\"should work without specifying the language (lang attr) in the browser\", async () => {\n const languageFile: any | undefined = await getTranslations();\n expect(languageFile).toBeTruthy();\n });\n\n it(\"should default to english language when there is no language (lang attr) in the browser\", async () => {\n const languageFile: any | undefined = await getTranslations();\n expect(languageFile).toBeTruthy();\n\n await page.evaluate(() =>\n document.documentElement.setAttribute(\"lang\", \"en\")\n );\n\n const languageEnglishFile: any | undefined = await getTranslations();\n expect(languageEnglishFile).toBeTruthy();\n expect(languageFile).toEqual(languageEnglishFile);\n });\n\n languages.forEach(language => {\n it(`should work with ${language.name} language`, async () => {\n await page.evaluate(\n (attr: string) => document.documentElement.setAttribute(\"lang\", attr),\n language.attr\n );\n const languageFile: any | undefined = await getTranslations();\n expect(languageFile).toBeTruthy();\n });\n });\n\n for (let index = 0; index < languages.length - 1; index++) {\n const language1 = languages[index];\n const language2 = languages[index + 1];\n\n // TODO: Complete all translations. At this moment, Japanese and Chinese\n // translations have missing literals\n it(`should translate the same literals (${language1.name} and ${language2.name})`, async () => {\n await page.evaluate(\n (attr: string) => document.documentElement.setAttribute(\"lang\", attr),\n language1.attr\n );\n const language1File: any | undefined = await getTranslations();\n\n await page.evaluate(\n (attr: string) => document.documentElement.setAttribute(\"lang\", attr),\n language2.attr\n );\n const language2File: any | undefined = await getTranslations();\n\n expect(language1File).toBeTruthy();\n expect(language2File).toBeTruthy();\n expect(haveSameStructure(language1File, language2File)).toBe(true);\n });\n }\n });\n};\n\n// TypeScript does not have a built-in type to exhaust a list with union types\nconst allGeneXusIdeUIComponents: { [key in GeneXusIdeUIControlsTagName]: 0 } = {\n \"gx-ide-about\": 0,\n \"gx-ide-ai-assistant\": 0,\n \"gx-ide-ai-message\": 0,\n \"gx-ide-bpm-app-declaration\": 0,\n \"gx-ide-bpm-assign-roles\": 0,\n \"gx-ide-bpm-import-files\": 0,\n \"gx-ide-bpm-import-gxpm\": 0,\n \"gx-ide-bpm-objects-selector\": 0,\n \"gx-ide-bpm-sync-gam-roles\": 0,\n \"gx-ide-bpm-task-documents\": 0,\n \"gx-ide-bpm-timer-duration\": 0,\n \"gx-ide-card\": 0,\n \"gx-ide-chat-container\": 0,\n \"gx-ide-sc-chat-container\": 0,\n \"gx-ide-connect-gx-server\": 0,\n \"gx-ide-container\": 0,\n \"gx-ide-create-kb-from-server\": 0,\n \"gx-ide-current-user-info\": 0,\n \"gx-ide-dashboard-home\": 0,\n \"gx-ide-data-selector\": 0,\n \"gx-ide-data-type-selector\": 0,\n \"gx-ide-design-import\": 0,\n \"gx-ide-directory-selector\": 0,\n \"gx-ide-edit-module-server\": 0,\n \"gx-ide-empty-state\": 0,\n \"gx-ide-entity-selector\": 0,\n \"gx-ide-gam-installation-settings\": 0,\n \"gx-ide-kb-manager-export\": 0,\n \"gx-ide-kb-manager-import\": 0,\n \"gx-ide-list-selector\": 0,\n \"gx-ide-list-selector-item\": 0,\n \"gx-ide-loader\": 0,\n \"gx-ide-manage-module-references\": 0,\n \"gx-ide-manage-module-references-v2\": 0,\n \"gx-ide-new-environment\": 0,\n \"gx-ide-new-kb\": 0,\n \"gx-ide-new-object\": 0,\n \"gx-ide-new-version\": 0,\n \"gx-ide-object-selector\": 0,\n \"gx-ide-open-api-import\": 0,\n \"gx-ide-references\": 0,\n \"gx-ide-select-kb-items\": 0,\n \"gx-ide-select-user-team\": 0,\n \"gx-ide-sign-in\": 0,\n \"gx-ide-sign-in-team\": 0,\n \"gx-ide-share-kb\": 0,\n \"gx-ide-start-page\": 0,\n \"gx-ide-status-buttons\": 0,\n \"gx-ide-switch-panel\": 0,\n \"gx-ide-switcher\": 0,\n \"gx-ide-team-dev-commit\": 0,\n \"gx-ide-team-dev-select-recent-comment\": 0,\n \"gx-ide-team-dev-update\": 0,\n \"gx-ide-team-dev-update-partial-selection\": 0,\n \"gx-ide-team-dev-update-to-revision\": 0,\n \"gx-ide-template\": 0,\n \"gx-ide-test\": 0,\n \"gx-ide-title\": 0,\n \"gx-ide-top-bar\": 0,\n \"gx-ide-wf-settings\": 0,\n \"gx-ide-ww-images\": 0,\n \"gx-ide-ww-attributes\": 0,\n \"gx-ide-ww-files\": 0,\n \"gx-ide-navigation-report\": 0,\n \"gx-ide-splash\": 0,\n \"gx-ide-welcome-page\": 0,\n \"gx-ide-bpm-export-xpdl\": 0\n};\n\nconst componentsWithoutTranslations = new Set<GeneXusIdeUIControlsTagName>([\n \"gx-ide-ai-message\",\n \"gx-ide-chat-container\",\n \"gx-ide-container\",\n \"gx-ide-sc-chat-container\",\n \"gx-ide-directory-selector\",\n \"gx-ide-empty-state\",\n \"gx-ide-list-selector\",\n \"gx-ide-list-selector-item\",\n \"gx-ide-loader\",\n \"gx-ide-switch-panel\",\n \"gx-ide-switcher\",\n \"gx-ide-test\",\n \"gx-ide-title\",\n \"gx-ide-top-bar\"\n]);\n\nconst componentsWithTranslations = Object.keys(\n allGeneXusIdeUIComponents\n).filter(\n component =>\n !componentsWithoutTranslations.has(component as GeneXusIdeUIControlsTagName)\n);\n\ncomponentsWithTranslations.forEach(testLocale);\n"]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Components, JSX } from "../types/components";
|
|
2
|
+
|
|
3
|
+
interface GxIdeOpenApiImport extends Components.GxIdeOpenApiImport, HTMLElement {}
|
|
4
|
+
export const GxIdeOpenApiImport: {
|
|
5
|
+
prototype: GxIdeOpenApiImport;
|
|
6
|
+
new (): GxIdeOpenApiImport;
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Used to define this component and all nested components recursively.
|
|
10
|
+
*/
|
|
11
|
+
export const defineCustomElement: () => void;
|