@genexus/genexus-ide-ui 1.0.44 → 1.0.45
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-entity-selector.cjs.entry.js +3 -1
- package/dist/cjs/gx-ide-entity-selector.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-ww-attributes.cjs.entry.js +244 -0
- package/dist/cjs/gx-ide-ww-attributes.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/_helpers/entity-selector/entity-selector.js +4 -2
- package/dist/collection/components/_helpers/entity-selector/entity-selector.js.map +1 -1
- package/dist/collection/components/ww-attributes/gx-ide-assets/ww-attributes/langs/ww-attributes.lang.en.json +30 -0
- package/dist/collection/components/ww-attributes/gx-ide-assets/ww-attributes/langs/ww-attributes.lang.ja.json +30 -0
- package/dist/collection/components/ww-attributes/gx-ide-assets/ww-attributes/langs/ww-attributes.lang.zh.json +30 -0
- package/dist/collection/components/ww-attributes/helpers.js +11 -0
- package/dist/collection/components/ww-attributes/helpers.js.map +1 -0
- package/dist/collection/components/ww-attributes/ww-attributes.css +70 -0
- package/dist/collection/components/ww-attributes/ww-attributes.js +468 -0
- package/dist/collection/components/ww-attributes/ww-attributes.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/entity-selector.js +3 -1
- package/dist/components/entity-selector.js.map +1 -1
- package/dist/components/gx-ide-ww-attributes.d.ts +11 -0
- package/dist/components/gx-ide-ww-attributes.js +294 -0
- package/dist/components/gx-ide-ww-attributes.js.map +1 -0
- package/dist/esm/genexus-ide-ui.js +1 -1
- package/dist/esm/gx-ide-entity-selector.entry.js +3 -1
- package/dist/esm/gx-ide-entity-selector.entry.js.map +1 -1
- package/dist/esm/gx-ide-ww-attributes.entry.js +240 -0
- package/dist/esm/gx-ide-ww-attributes.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/ww-attributes/langs/ww-attributes.lang.en.json +30 -0
- package/dist/genexus-ide-ui/gx-ide-assets/ww-attributes/langs/ww-attributes.lang.ja.json +30 -0
- package/dist/genexus-ide-ui/gx-ide-assets/ww-attributes/langs/ww-attributes.lang.zh.json +30 -0
- package/dist/genexus-ide-ui/{p-04d7f44c.entry.js → p-1693a2d1.entry.js} +4 -2
- package/dist/genexus-ide-ui/p-1693a2d1.entry.js.map +1 -0
- package/dist/genexus-ide-ui/p-5619120d.entry.js +341 -0
- package/dist/genexus-ide-ui/p-5619120d.entry.js.map +1 -0
- package/dist/types/components/_helpers/entity-selector/entity-selector.d.ts +1 -1
- package/dist/types/components/ww-attributes/helpers.d.ts +3 -0
- package/dist/types/components/ww-attributes/ww-attributes.d.ts +95 -0
- package/dist/types/components.d.ts +99 -12
- package/package.json +1 -1
- package/dist/genexus-ide-ui/p-04d7f44c.entry.js.map +0 -1
|
@@ -0,0 +1,468 @@
|
|
|
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 _GxIdeWWAttributes__componentLocale, _GxIdeWWAttributes_chGridEl, _GxIdeWWAttributes_contextMenuCallbackHandler, _GxIdeWWAttributes_deleteSelectionCallbackHandle, _GxIdeWWAttributes_deselectAll, _GxIdeWWAttributes_getAttributes, _GxIdeWWAttributes_listenChanges, _GxIdeWWAttributes_openSelectionCallbackHandle, _GxIdeWWAttributes_entityCallbackHandler, _GxIdeWWAttributes_entityValueChangedHandler, _GxIdeWWAttributes_renderAttributesGrid, _GxIdeWWAttributes_evaluateAttributesGridContent, _GxIdeWWAttributes_renderFilter, _GxIdeWWAttributes_selectAll, _GxIdeWWAttributes_nameInputHandler, _GxIdeWWAttributes_typeInputHandler;
|
|
18
|
+
/* eslint-disable @stencil-community/own-props-must-be-private */
|
|
19
|
+
// Stencil
|
|
20
|
+
import { Host, h } from "@stencil/core";
|
|
21
|
+
// Other Libraries
|
|
22
|
+
import { getIconPath } from "@genexus/mercury";
|
|
23
|
+
// Custom Imports
|
|
24
|
+
import { config } from "../../common/config";
|
|
25
|
+
import { Locale } from "../../common/locale";
|
|
26
|
+
import { mapOptionsToComboBoxItemModel } from "./helpers";
|
|
27
|
+
const CSS_BUNDLES = [
|
|
28
|
+
"resets/box-sizing",
|
|
29
|
+
"components/button",
|
|
30
|
+
"components/edit",
|
|
31
|
+
"components/combo-box",
|
|
32
|
+
"components/tabular-grid",
|
|
33
|
+
"components/icon",
|
|
34
|
+
"utils/form",
|
|
35
|
+
"utils/layout",
|
|
36
|
+
"utils/spacing",
|
|
37
|
+
"chameleon/scrollbar"
|
|
38
|
+
];
|
|
39
|
+
const FILTER_ICON = getIconPath({
|
|
40
|
+
category: "window-tools",
|
|
41
|
+
name: "filter",
|
|
42
|
+
colorType: "on-elevation"
|
|
43
|
+
});
|
|
44
|
+
export class GxIdeWWAttributes {
|
|
45
|
+
constructor() {
|
|
46
|
+
/**
|
|
47
|
+
* Component hard-coded strings translations.
|
|
48
|
+
*/
|
|
49
|
+
_GxIdeWWAttributes__componentLocale.set(this, void 0);
|
|
50
|
+
/* References needed to collect data */
|
|
51
|
+
_GxIdeWWAttributes_chGridEl.set(this, void 0);
|
|
52
|
+
_GxIdeWWAttributes_contextMenuCallbackHandler.set(this, (ev) => {
|
|
53
|
+
this.contextMenuCallback({
|
|
54
|
+
selection: this.selectedAttributesIds,
|
|
55
|
+
clientX: ev.clientX,
|
|
56
|
+
clientY: ev.clientY
|
|
57
|
+
});
|
|
58
|
+
});
|
|
59
|
+
_GxIdeWWAttributes_deleteSelectionCallbackHandle.set(this, () => {
|
|
60
|
+
this.deleteSelectionCallback(this.selectedAttributesIds);
|
|
61
|
+
});
|
|
62
|
+
_GxIdeWWAttributes_deselectAll.set(this, () => {
|
|
63
|
+
__classPrivateFieldGet(this, _GxIdeWWAttributes_chGridEl, "f").selectAllRows(false);
|
|
64
|
+
});
|
|
65
|
+
_GxIdeWWAttributes_getAttributes.set(this, () => {
|
|
66
|
+
var _a;
|
|
67
|
+
this.loading = true;
|
|
68
|
+
const filters = {
|
|
69
|
+
name: this.name.trim(),
|
|
70
|
+
type: this.type,
|
|
71
|
+
object: (_a = this.object) === null || _a === void 0 ? void 0 : _a.id
|
|
72
|
+
};
|
|
73
|
+
this.loadCallback(filters).then((items) => {
|
|
74
|
+
var _a;
|
|
75
|
+
this.attributes = items;
|
|
76
|
+
if (((_a = this.selectedAttributesIds) === null || _a === void 0 ? void 0 : _a.length) > 0) {
|
|
77
|
+
this.selectedAttributesIds = [];
|
|
78
|
+
__classPrivateFieldGet(this, _GxIdeWWAttributes_deselectAll, "f").call(this);
|
|
79
|
+
}
|
|
80
|
+
this.loading = false;
|
|
81
|
+
});
|
|
82
|
+
});
|
|
83
|
+
_GxIdeWWAttributes_listenChanges.set(this, () => {
|
|
84
|
+
// for grid selection
|
|
85
|
+
__classPrivateFieldGet(this, _GxIdeWWAttributes_chGridEl, "f").addEventListener("selectionChanged", (ev) => {
|
|
86
|
+
this.selectedAttributesIds = ev.detail.rowsId;
|
|
87
|
+
this.selectionChangeCallback(this.selectedAttributesIds);
|
|
88
|
+
});
|
|
89
|
+
__classPrivateFieldGet(this, _GxIdeWWAttributes_chGridEl, "f").addEventListener("contextmenu", (ev) => {
|
|
90
|
+
ev.preventDefault();
|
|
91
|
+
ev.stopPropagation();
|
|
92
|
+
__classPrivateFieldGet(this, _GxIdeWWAttributes_contextMenuCallbackHandler, "f").call(this, ev);
|
|
93
|
+
});
|
|
94
|
+
__classPrivateFieldGet(this, _GxIdeWWAttributes_chGridEl, "f").addEventListener("rowDoubleClicked", () => {
|
|
95
|
+
__classPrivateFieldGet(this, _GxIdeWWAttributes_openSelectionCallbackHandle, "f").call(this);
|
|
96
|
+
});
|
|
97
|
+
});
|
|
98
|
+
_GxIdeWWAttributes_openSelectionCallbackHandle.set(this, () => {
|
|
99
|
+
this.openSelectionCallback(this.selectedAttributesIds);
|
|
100
|
+
});
|
|
101
|
+
_GxIdeWWAttributes_entityCallbackHandler.set(this, async () => {
|
|
102
|
+
const result = await this.objectActionCallback();
|
|
103
|
+
this.object = {
|
|
104
|
+
id: result.id,
|
|
105
|
+
name: result.name,
|
|
106
|
+
iconSrc: result.iconSrc
|
|
107
|
+
};
|
|
108
|
+
return new Promise(resolve => {
|
|
109
|
+
resolve(null);
|
|
110
|
+
});
|
|
111
|
+
});
|
|
112
|
+
_GxIdeWWAttributes_entityValueChangedHandler.set(this, (event) => {
|
|
113
|
+
this.object = event.detail;
|
|
114
|
+
__classPrivateFieldGet(this, _GxIdeWWAttributes_getAttributes, "f").call(this);
|
|
115
|
+
});
|
|
116
|
+
_GxIdeWWAttributes_renderAttributesGrid.set(this, () => {
|
|
117
|
+
var _a;
|
|
118
|
+
const tabularGridEmpty = ((_a = this.attributes) === null || _a === void 0 ? void 0 : _a.length) === 0 || !this.attributes;
|
|
119
|
+
return (h("ch-tabular-grid", { class: {
|
|
120
|
+
"tabular-grid": true,
|
|
121
|
+
"tabular-grid--empty": tabularGridEmpty,
|
|
122
|
+
"main": true
|
|
123
|
+
}, ref: (el) => (__classPrivateFieldSet(this, _GxIdeWWAttributes_chGridEl, el, "f")), "row-selection-mode": "multiple", part: "ch-grid-attributes" }, h("ch-tabular-grid-columnset", { class: "tabular-grid-column-set" }, h("ch-tabular-grid-column", { "column-name": "", "column-name-position": "text", settingable: false, size: config.tabularGrid.colSize.maxContent, class: "tabular-grid-column" }), h("ch-tabular-grid-column", { "column-name": __classPrivateFieldGet(this, _GxIdeWWAttributes__componentLocale, "f").tableHead.name, "column-name-position": "text", size: config.tabularGrid.colSize.auto, class: "tabular-grid-column", settingable: false }), h("ch-tabular-grid-column", { "column-name": __classPrivateFieldGet(this, _GxIdeWWAttributes__componentLocale, "f").tableHead.type, "column-name-position": "text", class: "tabular-grid-column", size: config.tabularGrid.colSize.auto, settingable: false }), h("ch-tabular-grid-column", { "column-name": __classPrivateFieldGet(this, _GxIdeWWAttributes__componentLocale, "f").tableHead.description, "column-name-position": "text", size: config.tabularGrid.colSize.auto, class: "tabular-grid-column", settingable: false })), __classPrivateFieldGet(this, _GxIdeWWAttributes_evaluateAttributesGridContent, "f").call(this)));
|
|
124
|
+
});
|
|
125
|
+
_GxIdeWWAttributes_evaluateAttributesGridContent.set(this, () => {
|
|
126
|
+
if (this.loading) {
|
|
127
|
+
return (h("ch-tabular-grid-rowset", { class: "tabular-grid-rowset" }, h("ch-tabular-grid-rowset-empty", null, h("gx-ide-loader", { loaderTitle: __classPrivateFieldGet(this, _GxIdeWWAttributes__componentLocale, "f").loader.title, description: __classPrivateFieldGet(this, _GxIdeWWAttributes__componentLocale, "f").loader.description, show: true }))));
|
|
128
|
+
}
|
|
129
|
+
else if (this.attributes.length) {
|
|
130
|
+
return (h("ch-tabular-grid-rowset", { class: "tabular-grid-rowset" }, this.attributes.map((attr) => (h("ch-tabular-grid-row", { class: "tabular-grid-row", rowid: attr.id }, h("ch-tabular-grid-cell", { class: "tabular-grid-cell" }, h("ch-image", { class: "icon-sm", src: attr.icon })), h("ch-tabular-grid-cell", { class: "tabular-grid-cell" }, attr.name), h("ch-tabular-grid-cell", { class: "tabular-grid-cell" }, attr.type), h("ch-tabular-grid-cell", { class: "tabular-grid-cell" }, attr.description))))));
|
|
131
|
+
}
|
|
132
|
+
else {
|
|
133
|
+
// filter returned none
|
|
134
|
+
return (h("ch-tabular-grid-rowset", { class: "tabular-grid-rowset" }, h("ch-tabular-grid-rowset-empty", null, h("gx-ide-empty-state", { stateIconSrc: FILTER_ICON, stateTitle: __classPrivateFieldGet(this, _GxIdeWWAttributes__componentLocale, "f").emptyStateTitle, isAnimated: true }))));
|
|
135
|
+
}
|
|
136
|
+
});
|
|
137
|
+
_GxIdeWWAttributes_renderFilter.set(this, () => {
|
|
138
|
+
var _a;
|
|
139
|
+
return (h("header", { class: "header field-group control-header-with-border spacing-body" }, h("div", { class: "field field-inline name__field" }, h("label", { class: "label name__label", htmlFor: "name" }, __classPrivateFieldGet(this, _GxIdeWWAttributes__componentLocale, "f").filter.name), h("ch-edit", {
|
|
140
|
+
// Name
|
|
141
|
+
id: "name", class: "input", value: this.name, debounce: 300, onInput: __classPrivateFieldGet(this, _GxIdeWWAttributes_nameInputHandler, "f"), part: "filter-name"
|
|
142
|
+
})), h("div", { class: "field field-inline type__field" }, h("label", { class: "label", htmlFor: "type" }, __classPrivateFieldGet(this, _GxIdeWWAttributes__componentLocale, "f").filter.type), h("ch-combo-box-render", {
|
|
143
|
+
// Type
|
|
144
|
+
id: "type", class: "combo-box", disabled: !this.types, value: this.type, model: mapOptionsToComboBoxItemModel((_a = this.types) !== null && _a !== void 0 ? _a : []), part: "filter-type", onInput: __classPrivateFieldGet(this, _GxIdeWWAttributes_typeInputHandler, "f")
|
|
145
|
+
})), h("div", { class: "field field-inline object-selector__field" }, h("label", { class: "label", htmlFor: "object-selector" }, __classPrivateFieldGet(this, _GxIdeWWAttributes__componentLocale, "f").filter.object), h("gx-ide-entity-selector", {
|
|
146
|
+
// Object
|
|
147
|
+
id: "object-selector", value: this.object, labelPosition: "none", defaultValue: null, selectEntityCallback: __classPrivateFieldGet(this, _GxIdeWWAttributes_entityCallbackHandler, "f"), onValueChanged: __classPrivateFieldGet(this, _GxIdeWWAttributes_entityValueChangedHandler, "f"), part: "filter-module-folder"
|
|
148
|
+
}))));
|
|
149
|
+
});
|
|
150
|
+
_GxIdeWWAttributes_selectAll.set(this, () => {
|
|
151
|
+
__classPrivateFieldGet(this, _GxIdeWWAttributes_chGridEl, "f").selectAllRows();
|
|
152
|
+
});
|
|
153
|
+
_GxIdeWWAttributes_nameInputHandler.set(this, (e) => {
|
|
154
|
+
this.name = e.detail.trim();
|
|
155
|
+
__classPrivateFieldGet(this, _GxIdeWWAttributes_getAttributes, "f").call(this);
|
|
156
|
+
});
|
|
157
|
+
_GxIdeWWAttributes_typeInputHandler.set(this, (e) => {
|
|
158
|
+
this.type = e.detail;
|
|
159
|
+
__classPrivateFieldGet(this, _GxIdeWWAttributes_getAttributes, "f").call(this);
|
|
160
|
+
});
|
|
161
|
+
this.attributes = undefined;
|
|
162
|
+
this.selectedAttributesIds = [];
|
|
163
|
+
this.filterMore = false;
|
|
164
|
+
this.name = "";
|
|
165
|
+
this.loading = true;
|
|
166
|
+
this.object = undefined;
|
|
167
|
+
this.type = undefined;
|
|
168
|
+
this.contextMenuCallback = undefined;
|
|
169
|
+
this.deleteSelectionCallback = undefined;
|
|
170
|
+
this.loadCallback = undefined;
|
|
171
|
+
this.objectActionCallback = undefined;
|
|
172
|
+
this.objects = undefined;
|
|
173
|
+
this.openSelectionCallback = undefined;
|
|
174
|
+
this.selectionChangeCallback = undefined;
|
|
175
|
+
this.types = undefined;
|
|
176
|
+
}
|
|
177
|
+
async componentWillLoad() {
|
|
178
|
+
__classPrivateFieldSet(this, _GxIdeWWAttributes__componentLocale, await Locale.getComponentStrings(this.el), "f");
|
|
179
|
+
}
|
|
180
|
+
componentDidLoad() {
|
|
181
|
+
__classPrivateFieldGet(this, _GxIdeWWAttributes_listenChanges, "f").call(this);
|
|
182
|
+
this.type = this.types[0].id; // before #getAttributes
|
|
183
|
+
__classPrivateFieldGet(this, _GxIdeWWAttributes_getAttributes, "f").call(this);
|
|
184
|
+
}
|
|
185
|
+
keyDownHandler(eventInfo) {
|
|
186
|
+
if (document.activeElement === this.el) {
|
|
187
|
+
switch (eventInfo.key) {
|
|
188
|
+
case "Enter":
|
|
189
|
+
__classPrivateFieldGet(this, _GxIdeWWAttributes_openSelectionCallbackHandle, "f").call(this);
|
|
190
|
+
break;
|
|
191
|
+
case "Delete":
|
|
192
|
+
__classPrivateFieldGet(this, _GxIdeWWAttributes_deleteSelectionCallbackHandle, "f").call(this);
|
|
193
|
+
break;
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
/**
|
|
198
|
+
* Reloads the view, refreshing the filters and attributes table.
|
|
199
|
+
*/
|
|
200
|
+
async reload() {
|
|
201
|
+
this.name = "";
|
|
202
|
+
this.type = this.types[0].id;
|
|
203
|
+
this.object = null;
|
|
204
|
+
__classPrivateFieldGet(this, _GxIdeWWAttributes_getAttributes, "f").call(this);
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* Validate necessary data input
|
|
208
|
+
*/
|
|
209
|
+
async validate() {
|
|
210
|
+
const isValid = true;
|
|
211
|
+
return isValid;
|
|
212
|
+
}
|
|
213
|
+
render() {
|
|
214
|
+
var _a, _b;
|
|
215
|
+
const btnDisabled = !this.attributes || this.attributes.length === 0;
|
|
216
|
+
const matchingAttributesLabel = ((_a = this.attributes) === null || _a === void 0 ? void 0 : _a.length) === 1
|
|
217
|
+
? __classPrivateFieldGet(this, _GxIdeWWAttributes__componentLocale, "f").matchingAttribute
|
|
218
|
+
: __classPrivateFieldGet(this, _GxIdeWWAttributes__componentLocale, "f").matchingAttributes;
|
|
219
|
+
const attributesLength = ((_b = this.attributes) === null || _b === void 0 ? void 0 : _b.length) || 0;
|
|
220
|
+
return (h(Host, { class: "widget" }, h("ch-theme", { model: CSS_BUNDLES }), h("section", { class: "section" }, __classPrivateFieldGet(this, _GxIdeWWAttributes_renderFilter, "f").call(this), __classPrivateFieldGet(this, _GxIdeWWAttributes_renderAttributesGrid, "f").call(this), h("footer", { class: "control-footer control-footer-with-border spacing-body-block-end spacing-body-inline control-footer-space-between" }, h("p", { class: "text-body-regular-s matching-attributes" }, `${attributesLength} ${matchingAttributesLabel}`), h("button", { id: "button-select-all", class: "button-primary", onClick: __classPrivateFieldGet(this, _GxIdeWWAttributes_selectAll, "f"), disabled: btnDisabled, part: "button button--select-all" }, __classPrivateFieldGet(this, _GxIdeWWAttributes__componentLocale, "f").footer.btnSelectAll)))));
|
|
221
|
+
}
|
|
222
|
+
static get is() { return "gx-ide-ww-attributes"; }
|
|
223
|
+
static get encapsulation() { return "shadow"; }
|
|
224
|
+
static get originalStyleUrls() {
|
|
225
|
+
return {
|
|
226
|
+
"$": ["ww-attributes.scss"]
|
|
227
|
+
};
|
|
228
|
+
}
|
|
229
|
+
static get styleUrls() {
|
|
230
|
+
return {
|
|
231
|
+
"$": ["ww-attributes.css"]
|
|
232
|
+
};
|
|
233
|
+
}
|
|
234
|
+
static get assetsDirs() { return ["gx-ide-assets/ww-attributes"]; }
|
|
235
|
+
static get properties() {
|
|
236
|
+
return {
|
|
237
|
+
"contextMenuCallback": {
|
|
238
|
+
"type": "unknown",
|
|
239
|
+
"mutable": false,
|
|
240
|
+
"complexType": {
|
|
241
|
+
"original": "ContextMenuCallback",
|
|
242
|
+
"resolved": "(contextMenuInfo: ContextMenuInfo) => Promise<void>",
|
|
243
|
+
"references": {
|
|
244
|
+
"ContextMenuCallback": {
|
|
245
|
+
"location": "local",
|
|
246
|
+
"path": "/home/runner/work/genexus-ide-ui/genexus-ide-ui/src/components/ww-attributes/ww-attributes.tsx",
|
|
247
|
+
"id": "src/components/ww-attributes/ww-attributes.tsx::ContextMenuCallback"
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
},
|
|
251
|
+
"required": true,
|
|
252
|
+
"optional": false,
|
|
253
|
+
"docs": {
|
|
254
|
+
"tags": [],
|
|
255
|
+
"text": "Callback invoked when user right-clicks on the grid"
|
|
256
|
+
}
|
|
257
|
+
},
|
|
258
|
+
"deleteSelectionCallback": {
|
|
259
|
+
"type": "unknown",
|
|
260
|
+
"mutable": false,
|
|
261
|
+
"complexType": {
|
|
262
|
+
"original": "DeleteSelectionCallback",
|
|
263
|
+
"resolved": "(ids: string[]) => Promise<void>",
|
|
264
|
+
"references": {
|
|
265
|
+
"DeleteSelectionCallback": {
|
|
266
|
+
"location": "local",
|
|
267
|
+
"path": "/home/runner/work/genexus-ide-ui/genexus-ide-ui/src/components/ww-attributes/ww-attributes.tsx",
|
|
268
|
+
"id": "src/components/ww-attributes/ww-attributes.tsx::DeleteSelectionCallback"
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
},
|
|
272
|
+
"required": true,
|
|
273
|
+
"optional": false,
|
|
274
|
+
"docs": {
|
|
275
|
+
"tags": [],
|
|
276
|
+
"text": "Callback invoked when user deletes an object"
|
|
277
|
+
}
|
|
278
|
+
},
|
|
279
|
+
"loadCallback": {
|
|
280
|
+
"type": "unknown",
|
|
281
|
+
"mutable": false,
|
|
282
|
+
"complexType": {
|
|
283
|
+
"original": "LoadCallback",
|
|
284
|
+
"resolved": "(filters: AttributeFiltersData) => Promise<AttributeData[]>",
|
|
285
|
+
"references": {
|
|
286
|
+
"LoadCallback": {
|
|
287
|
+
"location": "local",
|
|
288
|
+
"path": "/home/runner/work/genexus-ide-ui/genexus-ide-ui/src/components/ww-attributes/ww-attributes.tsx",
|
|
289
|
+
"id": "src/components/ww-attributes/ww-attributes.tsx::LoadCallback"
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
},
|
|
293
|
+
"required": true,
|
|
294
|
+
"optional": false,
|
|
295
|
+
"docs": {
|
|
296
|
+
"tags": [],
|
|
297
|
+
"text": "Callback invoked when user filters the objects"
|
|
298
|
+
}
|
|
299
|
+
},
|
|
300
|
+
"objectActionCallback": {
|
|
301
|
+
"type": "unknown",
|
|
302
|
+
"mutable": false,
|
|
303
|
+
"complexType": {
|
|
304
|
+
"original": "ObjectActionCallback",
|
|
305
|
+
"resolved": "() => Promise<EntityData>",
|
|
306
|
+
"references": {
|
|
307
|
+
"ObjectActionCallback": {
|
|
308
|
+
"location": "local",
|
|
309
|
+
"path": "/home/runner/work/genexus-ide-ui/genexus-ide-ui/src/components/ww-attributes/ww-attributes.tsx",
|
|
310
|
+
"id": "src/components/ww-attributes/ww-attributes.tsx::ObjectActionCallback"
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
},
|
|
314
|
+
"required": true,
|
|
315
|
+
"optional": false,
|
|
316
|
+
"docs": {
|
|
317
|
+
"tags": [],
|
|
318
|
+
"text": "Callback invoked when user executes filter action"
|
|
319
|
+
}
|
|
320
|
+
},
|
|
321
|
+
"objects": {
|
|
322
|
+
"type": "unknown",
|
|
323
|
+
"mutable": false,
|
|
324
|
+
"complexType": {
|
|
325
|
+
"original": "GxOption[]",
|
|
326
|
+
"resolved": "GxOption[]",
|
|
327
|
+
"references": {
|
|
328
|
+
"GxOption": {
|
|
329
|
+
"location": "import",
|
|
330
|
+
"path": "../../common/types",
|
|
331
|
+
"id": "src/common/types.ts::GxOption"
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
},
|
|
335
|
+
"required": true,
|
|
336
|
+
"optional": false,
|
|
337
|
+
"docs": {
|
|
338
|
+
"tags": [],
|
|
339
|
+
"text": "Objects rendered in the object selector"
|
|
340
|
+
}
|
|
341
|
+
},
|
|
342
|
+
"openSelectionCallback": {
|
|
343
|
+
"type": "unknown",
|
|
344
|
+
"mutable": false,
|
|
345
|
+
"complexType": {
|
|
346
|
+
"original": "OpenSelectionCallback",
|
|
347
|
+
"resolved": "(ids: string[]) => Promise<void>",
|
|
348
|
+
"references": {
|
|
349
|
+
"OpenSelectionCallback": {
|
|
350
|
+
"location": "local",
|
|
351
|
+
"path": "/home/runner/work/genexus-ide-ui/genexus-ide-ui/src/components/ww-attributes/ww-attributes.tsx",
|
|
352
|
+
"id": "src/components/ww-attributes/ww-attributes.tsx::OpenSelectionCallback"
|
|
353
|
+
}
|
|
354
|
+
}
|
|
355
|
+
},
|
|
356
|
+
"required": true,
|
|
357
|
+
"optional": false,
|
|
358
|
+
"docs": {
|
|
359
|
+
"tags": [],
|
|
360
|
+
"text": "Callback invoked when user opens the selection dialog"
|
|
361
|
+
}
|
|
362
|
+
},
|
|
363
|
+
"selectionChangeCallback": {
|
|
364
|
+
"type": "unknown",
|
|
365
|
+
"mutable": false,
|
|
366
|
+
"complexType": {
|
|
367
|
+
"original": "SelectionChangeCallback",
|
|
368
|
+
"resolved": "(ids: string[]) => Promise<void>",
|
|
369
|
+
"references": {
|
|
370
|
+
"SelectionChangeCallback": {
|
|
371
|
+
"location": "local",
|
|
372
|
+
"path": "/home/runner/work/genexus-ide-ui/genexus-ide-ui/src/components/ww-attributes/ww-attributes.tsx",
|
|
373
|
+
"id": "src/components/ww-attributes/ww-attributes.tsx::SelectionChangeCallback"
|
|
374
|
+
}
|
|
375
|
+
}
|
|
376
|
+
},
|
|
377
|
+
"required": true,
|
|
378
|
+
"optional": false,
|
|
379
|
+
"docs": {
|
|
380
|
+
"tags": [],
|
|
381
|
+
"text": "Callback invoked when user selects or deselects an object"
|
|
382
|
+
}
|
|
383
|
+
},
|
|
384
|
+
"types": {
|
|
385
|
+
"type": "unknown",
|
|
386
|
+
"mutable": false,
|
|
387
|
+
"complexType": {
|
|
388
|
+
"original": "GxOption[]",
|
|
389
|
+
"resolved": "GxOption[]",
|
|
390
|
+
"references": {
|
|
391
|
+
"GxOption": {
|
|
392
|
+
"location": "import",
|
|
393
|
+
"path": "../../common/types",
|
|
394
|
+
"id": "src/common/types.ts::GxOption"
|
|
395
|
+
}
|
|
396
|
+
}
|
|
397
|
+
},
|
|
398
|
+
"required": true,
|
|
399
|
+
"optional": false,
|
|
400
|
+
"docs": {
|
|
401
|
+
"tags": [],
|
|
402
|
+
"text": "Types rendered in the filter type selector"
|
|
403
|
+
}
|
|
404
|
+
}
|
|
405
|
+
};
|
|
406
|
+
}
|
|
407
|
+
static get states() {
|
|
408
|
+
return {
|
|
409
|
+
"attributes": {},
|
|
410
|
+
"selectedAttributesIds": {},
|
|
411
|
+
"filterMore": {},
|
|
412
|
+
"name": {},
|
|
413
|
+
"loading": {},
|
|
414
|
+
"object": {},
|
|
415
|
+
"type": {}
|
|
416
|
+
};
|
|
417
|
+
}
|
|
418
|
+
static get methods() {
|
|
419
|
+
return {
|
|
420
|
+
"reload": {
|
|
421
|
+
"complexType": {
|
|
422
|
+
"signature": "() => Promise<void>",
|
|
423
|
+
"parameters": [],
|
|
424
|
+
"references": {
|
|
425
|
+
"Promise": {
|
|
426
|
+
"location": "global",
|
|
427
|
+
"id": "global::Promise"
|
|
428
|
+
}
|
|
429
|
+
},
|
|
430
|
+
"return": "Promise<void>"
|
|
431
|
+
},
|
|
432
|
+
"docs": {
|
|
433
|
+
"text": "Reloads the view, refreshing the filters and attributes table.",
|
|
434
|
+
"tags": []
|
|
435
|
+
}
|
|
436
|
+
},
|
|
437
|
+
"validate": {
|
|
438
|
+
"complexType": {
|
|
439
|
+
"signature": "() => Promise<boolean>",
|
|
440
|
+
"parameters": [],
|
|
441
|
+
"references": {
|
|
442
|
+
"Promise": {
|
|
443
|
+
"location": "global",
|
|
444
|
+
"id": "global::Promise"
|
|
445
|
+
}
|
|
446
|
+
},
|
|
447
|
+
"return": "Promise<boolean>"
|
|
448
|
+
},
|
|
449
|
+
"docs": {
|
|
450
|
+
"text": "Validate necessary data input",
|
|
451
|
+
"tags": []
|
|
452
|
+
}
|
|
453
|
+
}
|
|
454
|
+
};
|
|
455
|
+
}
|
|
456
|
+
static get elementRef() { return "el"; }
|
|
457
|
+
static get listeners() {
|
|
458
|
+
return [{
|
|
459
|
+
"name": "keydown",
|
|
460
|
+
"method": "keyDownHandler",
|
|
461
|
+
"target": undefined,
|
|
462
|
+
"capture": false,
|
|
463
|
+
"passive": true
|
|
464
|
+
}];
|
|
465
|
+
}
|
|
466
|
+
}
|
|
467
|
+
_GxIdeWWAttributes__componentLocale = new WeakMap(), _GxIdeWWAttributes_chGridEl = new WeakMap(), _GxIdeWWAttributes_contextMenuCallbackHandler = new WeakMap(), _GxIdeWWAttributes_deleteSelectionCallbackHandle = new WeakMap(), _GxIdeWWAttributes_deselectAll = new WeakMap(), _GxIdeWWAttributes_getAttributes = new WeakMap(), _GxIdeWWAttributes_listenChanges = new WeakMap(), _GxIdeWWAttributes_openSelectionCallbackHandle = new WeakMap(), _GxIdeWWAttributes_entityCallbackHandler = new WeakMap(), _GxIdeWWAttributes_entityValueChangedHandler = new WeakMap(), _GxIdeWWAttributes_renderAttributesGrid = new WeakMap(), _GxIdeWWAttributes_evaluateAttributesGridContent = new WeakMap(), _GxIdeWWAttributes_renderFilter = new WeakMap(), _GxIdeWWAttributes_selectAll = new WeakMap(), _GxIdeWWAttributes_nameInputHandler = new WeakMap(), _GxIdeWWAttributes_typeInputHandler = new WeakMap();
|
|
468
|
+
//# sourceMappingURL=ww-attributes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ww-attributes.js","sourceRoot":"","sources":["../../../src/components/ww-attributes/ww-attributes.tsx"],"names":[],"mappings":";;;;;;;;;;;;AAAA,iEAAiE;AACjE,UAAU;AACV,OAAO,EACL,SAAS,EACT,OAAO,EACP,IAAI,EACJ,MAAM,EACN,MAAM,EACN,IAAI,EACJ,KAAK,EACL,CAAC,EACF,MAAM,eAAe,CAAC;AACvB,kBAAkB;AAClB,OAAO,EAAkB,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/D,iBAAiB;AACjB,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7C,OAAO,EAAE,6BAA6B,EAAE,MAAM,WAAW,CAAC;AAK1D,MAAM,WAAW,GAAmB;IAClC,mBAAmB;IACnB,mBAAmB;IACnB,iBAAiB;IACjB,sBAAsB;IACtB,yBAAyB;IACzB,iBAAiB;IACjB,YAAY;IACZ,cAAc;IACd,eAAe;IACf,qBAAqB;CACtB,CAAC;AAEF,MAAM,WAAW,GAAG,WAAW,CAAC;IAC9B,QAAQ,EAAE,cAAc;IACxB,IAAI,EAAE,QAAQ;IACd,SAAS,EAAE,cAAc;CAC1B,CAAC,CAAC;AAQH,MAAM,OAAO,iBAAiB;;QAC5B;;WAEG;QACH,sDAAuB;QAIvB,uCAAuC;QACvC,8CAAqC;QAyHrC,wDAA8B,CAAC,EAAc,EAAQ,EAAE;YACrD,IAAI,CAAC,mBAAmB,CAAC;gBACvB,SAAS,EAAE,IAAI,CAAC,qBAAqB;gBACrC,OAAO,EAAE,EAAE,CAAC,OAAO;gBACnB,OAAO,EAAE,EAAE,CAAC,OAAO;aACpB,CAAC,CAAC;QACL,CAAC,EAAC;QAEF,2DAAiC,GAAS,EAAE;YAC1C,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QAC3D,CAAC,EAAC;QAEF,yCAAe,GAAS,EAAE;YACvB,uBAAA,IAAI,mCAAkB,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC/C,CAAC,EAAC;QAEF,2CAAiB,GAAS,EAAE;;YAC1B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACpB,MAAM,OAAO,GAAyB;gBACpC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;gBACtB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,MAAM,EAAE,MAAA,IAAI,CAAC,MAAM,0CAAE,EAAE;aACxB,CAAC;YACF,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,KAAsB,EAAE,EAAE;;gBACzD,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;gBACxB,IAAI,CAAA,MAAA,IAAI,CAAC,qBAAqB,0CAAE,MAAM,IAAG,CAAC,EAAE;oBAC1C,IAAI,CAAC,qBAAqB,GAAG,EAAE,CAAC;oBAChC,uBAAA,IAAI,sCAAa,MAAjB,IAAI,CAAe,CAAC;iBACrB;gBACD,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;YACvB,CAAC,CAAC,CAAC;QACL,CAAC,EAAC;QAEF,2CAAiB,GAAS,EAAE;YAC1B,qBAAqB;YACrB,uBAAA,IAAI,mCAAU,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,CAAC,EAAO,EAAQ,EAAE;gBACpE,IAAI,CAAC,qBAAqB,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;gBAC9C,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;YAC3D,CAAC,CAAC,CAAC;YACH,uBAAA,IAAI,mCAAU,CAAC,gBAAgB,CAAC,aAAa,EAAE,CAAC,EAAc,EAAQ,EAAE;gBACtE,EAAE,CAAC,cAAc,EAAE,CAAC;gBACpB,EAAE,CAAC,eAAe,EAAE,CAAC;gBACrB,uBAAA,IAAI,qDAA4B,MAAhC,IAAI,EAA6B,EAAE,CAAC,CAAC;YACvC,CAAC,CAAC,CAAC;YAEH,uBAAA,IAAI,mCAAU,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,GAAS,EAAE;gBAC7D,uBAAA,IAAI,sDAA6B,MAAjC,IAAI,CAA+B,CAAC;YACtC,CAAC,CAAC,CAAC;QACL,CAAC,EAAC;QAEF,yDAA+B,GAAS,EAAE;YACxC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QACzD,CAAC,EAAC;QAEF,mDAAyB,KAAK,IAAmB,EAAE;YACjD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,oBAAoB,EAAE,CAAC;YACjD,IAAI,CAAC,MAAM,GAAG;gBACZ,EAAE,EAAE,MAAM,CAAC,EAAE;gBACb,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,OAAO,EAAE,MAAM,CAAC,OAAO;aACxB,CAAC;YACF,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;gBAC3B,OAAO,CAAC,IAAI,CAAC,CAAC;YAChB,CAAC,CAAC,CAAC;QACL,CAAC,EAAC;QAEF,uDAA6B,CAC3B,KAAiD,EACjD,EAAE;YACF,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;YAC3B,uBAAA,IAAI,wCAAe,MAAnB,IAAI,CAAiB,CAAC;QACxB,CAAC,EAAC;QAEF,kDAAwB,GAAY,EAAE;;YACpC,MAAM,gBAAgB,GAAG,CAAA,MAAA,IAAI,CAAC,UAAU,0CAAE,MAAM,MAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;YAC3E,OAAO,CACL,uBACE,KAAK,EAAE;oBACL,cAAc,EAAE,IAAI;oBACpB,qBAAqB,EAAE,gBAAgB;oBACvC,MAAM,EAAE,IAAI;iBACb,EACD,GAAG,EAAE,CAAC,EAA4B,EAAE,EAAE,CAAC,CAAC,uBAAA,IAAI,+BAAa,EAAE,MAAA,CAAC,wBACzC,UAAU,EAC7B,IAAI,EAAC,oBAAoB;gBAEzB,iCAA2B,KAAK,EAAC,yBAAyB;oBACxD,6CACc,EAAE,0BACO,MAAM,EAC3B,WAAW,EAAE,KAAK,EAClB,IAAI,EAAE,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU,EAC3C,KAAK,EAAC,qBAAqB,GACH;oBAC1B,6CACe,uBAAA,IAAI,2CAAkB,CAAC,SAAS,CAAC,IAAI,0BAC7B,MAAM,EAC3B,IAAI,EAAE,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,EACrC,KAAK,EAAC,qBAAqB,EAC3B,WAAW,EAAE,KAAK,GACM;oBAC1B,6CACe,uBAAA,IAAI,2CAAkB,CAAC,SAAS,CAAC,IAAI,0BAC7B,MAAM,EAC3B,KAAK,EAAC,qBAAqB,EAC3B,IAAI,EAAE,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,EACrC,WAAW,EAAE,KAAK,GACM;oBAC1B,6CACe,uBAAA,IAAI,2CAAkB,CAAC,SAAS,CAAC,WAAW,0BACpC,MAAM,EAC3B,IAAI,EAAE,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,EACrC,KAAK,EAAC,qBAAqB,EAC3B,WAAW,EAAE,KAAK,GACM,CACA;gBAE3B,uBAAA,IAAI,wDAA+B,MAAnC,IAAI,CAAiC,CACtB,CACnB,CAAC;QACJ,CAAC,EAAC;QAEF,2DAAiC,GAAmC,EAAE;YACpE,IAAI,IAAI,CAAC,OAAO,EAAE;gBAChB,OAAO,CACL,8BAAwB,KAAK,EAAC,qBAAqB;oBACjD;wBACE,qBACE,WAAW,EAAE,uBAAA,IAAI,2CAAkB,CAAC,MAAM,CAAC,KAAK,EAChD,WAAW,EAAE,uBAAA,IAAI,2CAAkB,CAAC,MAAM,CAAC,WAAW,EACtD,IAAI,SACW,CACY,CACR,CAC1B,CAAC;aACH;iBAAM,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;gBACjC,OAAO,CACL,8BAAwB,KAAK,EAAC,qBAAqB,IAChD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAmB,EAAE,EAAE,CAAC,CAC5C,2BAAqB,KAAK,EAAC,kBAAkB,EAAC,KAAK,EAAE,IAAI,CAAC,EAAE;oBAC1D,4BAAsB,KAAK,EAAC,mBAAmB;wBAC7C,gBAAU,KAAK,EAAC,SAAS,EAAC,GAAG,EAAE,IAAI,CAAC,IAAI,GAAa,CAChC;oBACvB,4BAAsB,KAAK,EAAC,mBAAmB,IAC5C,IAAI,CAAC,IAAI,CACW;oBACvB,4BAAsB,KAAK,EAAC,mBAAmB,IAC5C,IAAI,CAAC,IAAI,CACW;oBACvB,4BAAsB,KAAK,EAAC,mBAAmB,IAC5C,IAAI,CAAC,WAAW,CACI,CACH,CACvB,CAAC,CACqB,CAC1B,CAAC;aACH;iBAAM;gBACL,uBAAuB;gBACvB,OAAO,CACL,8BAAwB,KAAK,EAAC,qBAAqB;oBACjD;wBACE,0BACE,YAAY,EAAE,WAAW,EACzB,UAAU,EAAE,uBAAA,IAAI,2CAAkB,CAAC,eAAe,EAClD,UAAU,EAAE,IAAI,GACI,CACO,CACR,CAC1B,CAAC;aACH;QACH,CAAC,EAAC;QAEF,0CAAgB,GAAY,EAAE;;YAC5B,OAAO,CACL,cAAQ,KAAK,EAAC,4DAA4D;gBACxE,WAAK,KAAK,EAAC,gCAAgC;oBACzC,aAAO,KAAK,EAAC,mBAAmB,EAAC,OAAO,EAAC,MAAM,IAC5C,uBAAA,IAAI,2CAAkB,CAAC,MAAM,CAAC,IAAI,CAC7B;oBACR;wBACE,OAAO;wBACP,EAAE,EAAC,MAAM,EACT,KAAK,EAAC,OAAO,EACb,KAAK,EAAE,IAAI,CAAC,IAAI,EAChB,QAAQ,EAAE,GAAG,EACb,OAAO,EAAE,uBAAA,IAAI,2CAAkB,EAC/B,IAAI,EAAC,aAAa,GACT,CACP;gBAEN,WAAK,KAAK,EAAC,gCAAgC;oBACzC,aAAO,KAAK,EAAC,OAAO,EAAC,OAAO,EAAC,MAAM,IAChC,uBAAA,IAAI,2CAAkB,CAAC,MAAM,CAAC,IAAI,CAC7B;oBACR;wBACE,OAAO;wBACP,EAAE,EAAC,MAAM,EACT,KAAK,EAAC,WAAW,EACjB,QAAQ,EAAE,CAAC,IAAI,CAAC,KAAK,EACrB,KAAK,EAAE,IAAI,CAAC,IAAI,EAChB,KAAK,EAAE,6BAA6B,CAAC,MAAA,IAAI,CAAC,KAAK,mCAAI,EAAE,CAAC,EACtD,IAAI,EAAC,aAAa,EAClB,OAAO,EAAE,uBAAA,IAAI,2CAAkB,GACV,CACnB;gBAcN,WAAK,KAAK,EAAC,2CAA2C;oBACpD,aAAO,KAAK,EAAC,OAAO,EAAC,OAAO,EAAC,iBAAiB,IAC3C,uBAAA,IAAI,2CAAkB,CAAC,MAAM,CAAC,MAAM,CAC/B;oBACR;wBACE,SAAS;wBACT,EAAE,EAAC,iBAAiB,EACpB,KAAK,EAAE,IAAI,CAAC,MAAM,EAClB,aAAa,EAAC,MAAM,EACpB,YAAY,EAAE,IAAI,EAClB,oBAAoB,EAAE,uBAAA,IAAI,gDAAuB,EACjD,cAAc,EAAE,uBAAA,IAAI,oDAA2B,EAC/C,IAAI,EAAC,sBAAsB,GACH,CACtB,CACC,CACV,CAAC;QACJ,CAAC,EAAC;QAEF,uCAAa,GAAS,EAAE;YACrB,uBAAA,IAAI,mCAAkB,CAAC,aAAa,EAAE,CAAC;QAC1C,CAAC,EAAC;QAEF,8CAAoB,CAAC,CAAyC,EAAE,EAAE;YAChE,IAAI,CAAC,IAAI,GAAI,CAA+B,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YAC3D,uBAAA,IAAI,wCAAe,MAAnB,IAAI,CAAiB,CAAC;QACxB,CAAC,EAAC;QAEF,8CAAoB,CAAC,CAAmC,EAAE,EAAE;YAC1D,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,MAAgB,CAAC;YAC/B,uBAAA,IAAI,wCAAe,MAAnB,IAAI,CAAiB,CAAC;QACxB,CAAC,EAAC;;qCAxWyC,EAAE;0BAKvB,KAAK;oBAKH,EAAE;uBAKE,IAAI;;;;;;;;;;;;IAoDhC,KAAK,CAAC,iBAAiB;QACrB,uBAAA,IAAI,uCAAqB,MAAM,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC,MAAA,CAAC;IACrE,CAAC;IAED,gBAAgB;QACd,uBAAA,IAAI,wCAAe,MAAnB,IAAI,CAAiB,CAAC;QACtB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,wBAAwB;QACtD,uBAAA,IAAI,wCAAe,MAAnB,IAAI,CAAiB,CAAC;IACxB,CAAC;IAGD,cAAc,CAAC,SAAwB;QACrC,IAAI,QAAQ,CAAC,aAAa,KAAK,IAAI,CAAC,EAAE,EAAE;YACtC,QAAQ,SAAS,CAAC,GAAG,EAAE;gBACrB,KAAK,OAAO;oBACV,uBAAA,IAAI,sDAA6B,MAAjC,IAAI,CAA+B,CAAC;oBACpC,MAAM;gBACR,KAAK,QAAQ;oBACX,uBAAA,IAAI,wDAA+B,MAAnC,IAAI,CAAiC,CAAC;oBACtC,MAAM;aACT;SACF;IACH,CAAC;IAED;;OAEG;IAEH,KAAK,CAAC,MAAM;QACV,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,uBAAA,IAAI,wCAAe,MAAnB,IAAI,CAAiB,CAAC;IACxB,CAAC;IAED;;OAEG;IAEH,KAAK,CAAC,QAAQ;QACZ,MAAM,OAAO,GAAG,IAAI,CAAC;QACrB,OAAO,OAAO,CAAC;IACjB,CAAC;IA6PD,MAAM;;QACJ,MAAM,WAAW,GAAG,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC;QACrE,MAAM,uBAAuB,GAC3B,CAAA,MAAA,IAAI,CAAC,UAAU,0CAAE,MAAM,MAAK,CAAC;YAC3B,CAAC,CAAC,uBAAA,IAAI,2CAAkB,CAAC,iBAAiB;YAC1C,CAAC,CAAC,uBAAA,IAAI,2CAAkB,CAAC,kBAAkB,CAAC;QAChD,MAAM,gBAAgB,GAAG,CAAA,MAAA,IAAI,CAAC,UAAU,0CAAE,MAAM,KAAI,CAAC,CAAC;QAEtD,OAAO,CACL,EAAC,IAAI,IAAC,KAAK,EAAC,QAAQ;YAClB,gBAAU,KAAK,EAAE,WAAW,GAAa;YACzC,eAAS,KAAK,EAAC,SAAS;gBACrB,uBAAA,IAAI,uCAAc,MAAlB,IAAI,CAAgB;gBAEpB,uBAAA,IAAI,+CAAsB,MAA1B,IAAI,CAAwB;gBAE7B,cAAQ,KAAK,EAAC,mHAAmH;oBAC/H,SAAG,KAAK,EAAC,yCAAyC,IAC/C,GAAG,gBAAgB,IAAI,uBAAuB,EAAE,CAC/C;oBAEJ,cACE,EAAE,EAAC,mBAAmB,EACtB,KAAK,EAAC,gBAAgB,EACtB,OAAO,EAAE,uBAAA,IAAI,oCAAW,EACxB,QAAQ,EAAE,WAAW,EACrB,IAAI,EAAC,2BAA2B,IAE/B,uBAAA,IAAI,2CAAkB,CAAC,MAAM,CAAC,YAAY,CACpC,CACF,CACD,CACL,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["/* eslint-disable @stencil-community/own-props-must-be-private */\n// Stencil\nimport {\n Component,\n Element,\n Host,\n Listen,\n Method,\n Prop,\n State,\n h\n} from \"@stencil/core\";\n// Other Libraries\nimport { MercuryBundles, getIconPath } from \"@genexus/mercury\";\n// Custom Imports\nimport { config } from \"../../common/config\";\nimport { Locale } from \"../../common/locale\";\nimport { ContextMenuInfo, EntityData, GxOption } from \"../../common/types\";\nimport { mapOptionsToComboBoxItemModel } from \"./helpers\";\nimport { ChEditCustomEvent } from \"@genexus/chameleon-controls-library\";\nimport HTMLChTabularGridRowsetElement from \"@genexus/chameleon-controls-library/dist/types/components/tabular-grid/rowset/tabular-grid-rowset\";\nimport { GxIdeEntitySelectorCustomEvent } from \"../../components\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"components/button\",\n \"components/edit\",\n \"components/combo-box\",\n \"components/tabular-grid\",\n \"components/icon\",\n \"utils/form\",\n \"utils/layout\",\n \"utils/spacing\",\n \"chameleon/scrollbar\"\n];\n\nconst FILTER_ICON = getIconPath({\n category: \"window-tools\",\n name: \"filter\",\n colorType: \"on-elevation\"\n});\n\n@Component({\n tag: \"gx-ide-ww-attributes\",\n styleUrl: \"ww-attributes.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/ww-attributes\"]\n})\nexport class GxIdeWWAttributes {\n /**\n * Component hard-coded strings translations.\n */\n #_componentLocale: any;\n\n @Element() el: HTMLGxIdeWwAttributesElement;\n\n /* References needed to collect data */\n #chGridEl!: HTMLChTabularGridElement;\n\n /**\n * Attributes rendered in the table\n */\n @State() attributes: AttributeData[];\n\n /**\n * Selected attributes in the table of attributes\n */\n @State() selectedAttributesIds: string[] = [];\n\n /**\n * Show or hide advanced filters\n */\n @State() filterMore = false;\n\n /**\n * The attribute filter name\n */\n @State() name: string = \"\";\n\n /**\n * True if loadCallback hasn't been resolved yet\n */\n @State() loading: boolean = true;\n\n /**\n * The attribute object value\n */\n @State() object: EntityData;\n\n /**\n * The attribute filter type value\n */\n @State() type: string;\n\n /**\n * Callback invoked when user right-clicks on the grid\n */\n @Prop() readonly contextMenuCallback!: ContextMenuCallback;\n\n /**\n * Callback invoked when user deletes an object\n */\n @Prop() readonly deleteSelectionCallback!: DeleteSelectionCallback;\n\n /**\n * Callback invoked when user filters the objects\n */\n @Prop() readonly loadCallback!: LoadCallback;\n\n /**\n * Callback invoked when user executes filter action\n */\n @Prop() readonly objectActionCallback!: ObjectActionCallback;\n\n /**\n * Objects rendered in the object selector\n */\n @Prop() readonly objects!: GxOption[];\n\n /**\n * Callback invoked when user opens the selection dialog\n */\n @Prop() readonly openSelectionCallback!: OpenSelectionCallback;\n\n /**\n * Callback invoked when user selects or deselects an object\n */\n @Prop() readonly selectionChangeCallback!: SelectionChangeCallback;\n\n /**\n * Types rendered in the filter type selector\n */\n @Prop() readonly types!: GxOption[];\n\n async componentWillLoad() {\n this.#_componentLocale = await Locale.getComponentStrings(this.el);\n }\n\n componentDidLoad() {\n this.#listenChanges();\n this.type = this.types[0].id; // before #getAttributes\n this.#getAttributes();\n }\n\n @Listen(\"keydown\", { passive: true })\n keyDownHandler(eventInfo: KeyboardEvent) {\n if (document.activeElement === this.el) {\n switch (eventInfo.key) {\n case \"Enter\":\n this.#openSelectionCallbackHandle();\n break;\n case \"Delete\":\n this.#deleteSelectionCallbackHandle();\n break;\n }\n }\n }\n\n /**\n * Reloads the view, refreshing the filters and attributes table.\n */\n @Method()\n async reload(): Promise<void> {\n this.name = \"\";\n this.type = this.types[0].id;\n this.object = null;\n this.#getAttributes();\n }\n\n /**\n * Validate necessary data input\n */\n @Method()\n async validate(): Promise<boolean> {\n const isValid = true;\n return isValid;\n }\n\n #contextMenuCallbackHandler = (ev: MouseEvent): void => {\n this.contextMenuCallback({\n selection: this.selectedAttributesIds,\n clientX: ev.clientX,\n clientY: ev.clientY\n });\n };\n\n #deleteSelectionCallbackHandle = (): void => {\n this.deleteSelectionCallback(this.selectedAttributesIds);\n };\n\n #deselectAll = (): void => {\n (this.#chGridEl as any).selectAllRows(false);\n };\n\n #getAttributes = (): void => {\n this.loading = true;\n const filters: AttributeFiltersData = {\n name: this.name.trim(),\n type: this.type,\n object: this.object?.id\n };\n this.loadCallback(filters).then((items: AttributeData[]) => {\n this.attributes = items;\n if (this.selectedAttributesIds?.length > 0) {\n this.selectedAttributesIds = [];\n this.#deselectAll();\n }\n this.loading = false;\n });\n };\n\n #listenChanges = (): void => {\n // for grid selection\n this.#chGridEl.addEventListener(\"selectionChanged\", (ev: any): void => {\n this.selectedAttributesIds = ev.detail.rowsId;\n this.selectionChangeCallback(this.selectedAttributesIds);\n });\n this.#chGridEl.addEventListener(\"contextmenu\", (ev: MouseEvent): void => {\n ev.preventDefault();\n ev.stopPropagation();\n this.#contextMenuCallbackHandler(ev);\n });\n\n this.#chGridEl.addEventListener(\"rowDoubleClicked\", (): void => {\n this.#openSelectionCallbackHandle();\n });\n };\n\n #openSelectionCallbackHandle = (): void => {\n this.openSelectionCallback(this.selectedAttributesIds);\n };\n\n #entityCallbackHandler = async (): Promise<null> => {\n const result = await this.objectActionCallback();\n this.object = {\n id: result.id,\n name: result.name,\n iconSrc: result.iconSrc\n };\n return new Promise(resolve => {\n resolve(null);\n });\n };\n\n #entityValueChangedHandler = (\n event: GxIdeEntitySelectorCustomEvent<EntityData>\n ) => {\n this.object = event.detail;\n this.#getAttributes();\n };\n\n #renderAttributesGrid = (): Element => {\n const tabularGridEmpty = this.attributes?.length === 0 || !this.attributes;\n return (\n <ch-tabular-grid\n class={{\n \"tabular-grid\": true,\n \"tabular-grid--empty\": tabularGridEmpty,\n \"main\": true\n }}\n ref={(el: HTMLChTabularGridElement) => (this.#chGridEl = el)}\n row-selection-mode=\"multiple\"\n part=\"ch-grid-attributes\"\n >\n <ch-tabular-grid-columnset class=\"tabular-grid-column-set\">\n <ch-tabular-grid-column\n column-name=\"\"\n column-name-position=\"text\"\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n column-name={this.#_componentLocale.tableHead.name}\n column-name-position=\"text\"\n size={config.tabularGrid.colSize.auto}\n class=\"tabular-grid-column\"\n settingable={false}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n column-name={this.#_componentLocale.tableHead.type}\n column-name-position=\"text\"\n class=\"tabular-grid-column\"\n size={config.tabularGrid.colSize.auto}\n settingable={false}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n column-name={this.#_componentLocale.tableHead.description}\n column-name-position=\"text\"\n size={config.tabularGrid.colSize.auto}\n class=\"tabular-grid-column\"\n settingable={false}\n ></ch-tabular-grid-column>\n </ch-tabular-grid-columnset>\n\n {this.#evaluateAttributesGridContent()}\n </ch-tabular-grid>\n );\n };\n\n #evaluateAttributesGridContent = (): HTMLChTabularGridRowsetElement => {\n if (this.loading) {\n return (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n <ch-tabular-grid-rowset-empty>\n <gx-ide-loader\n loaderTitle={this.#_componentLocale.loader.title}\n description={this.#_componentLocale.loader.description}\n show\n ></gx-ide-loader>\n </ch-tabular-grid-rowset-empty>\n </ch-tabular-grid-rowset>\n );\n } else if (this.attributes.length) {\n return (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n {this.attributes.map((attr: AttributeData) => (\n <ch-tabular-grid-row class=\"tabular-grid-row\" rowid={attr.id}>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n <ch-image class=\"icon-sm\" src={attr.icon}></ch-image>\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {attr.name}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {attr.type}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {attr.description}\n </ch-tabular-grid-cell>\n </ch-tabular-grid-row>\n ))}\n </ch-tabular-grid-rowset>\n );\n } else {\n // filter returned none\n return (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n <ch-tabular-grid-rowset-empty>\n <gx-ide-empty-state\n stateIconSrc={FILTER_ICON}\n stateTitle={this.#_componentLocale.emptyStateTitle}\n isAnimated={true}\n ></gx-ide-empty-state>\n </ch-tabular-grid-rowset-empty>\n </ch-tabular-grid-rowset>\n );\n }\n };\n\n #renderFilter = (): Element => {\n return (\n <header class=\"header field-group control-header-with-border spacing-body\">\n <div class=\"field field-inline name__field\">\n <label class=\"label name__label\" htmlFor=\"name\">\n {this.#_componentLocale.filter.name}\n </label>\n <ch-edit\n // Name\n id=\"name\"\n class=\"input\"\n value={this.name}\n debounce={300}\n onInput={this.#nameInputHandler}\n part=\"filter-name\"\n ></ch-edit>\n </div>\n\n <div class=\"field field-inline type__field\">\n <label class=\"label\" htmlFor=\"type\">\n {this.#_componentLocale.filter.type}\n </label>\n <ch-combo-box-render\n // Type\n id=\"type\"\n class=\"combo-box\"\n disabled={!this.types}\n value={this.type}\n model={mapOptionsToComboBoxItemModel(this.types ?? [])}\n part=\"filter-type\"\n onInput={this.#typeInputHandler}\n ></ch-combo-box-render>\n </div>\n\n {/* <button\n // TODO: Check with Design if it maes sense to have a button that toggles only one control.\n // More\n class=\"button-primary more__btn\"\n onClick={this.#showMoreFilter}\n part=\"button button--more-less\"\n >\n {this.filterMore\n ? this.#_componentLocale.filter.btnLess\n : this.#_componentLocale.filter.btnMore}\n </button> */}\n\n <div class=\"field field-inline object-selector__field\">\n <label class=\"label\" htmlFor=\"object-selector\">\n {this.#_componentLocale.filter.object}\n </label>\n <gx-ide-entity-selector\n // Object\n id=\"object-selector\"\n value={this.object}\n labelPosition=\"none\"\n defaultValue={null}\n selectEntityCallback={this.#entityCallbackHandler}\n onValueChanged={this.#entityValueChangedHandler}\n part=\"filter-module-folder\"\n ></gx-ide-entity-selector>\n </div>\n </header>\n );\n };\n\n #selectAll = (): void => {\n (this.#chGridEl as any).selectAllRows();\n };\n\n #nameInputHandler = (e: ChEditCustomEvent<string> | InputEvent) => {\n this.name = (e as ChEditCustomEvent<string>).detail.trim();\n this.#getAttributes();\n };\n\n #typeInputHandler = (e: CustomEvent<string> | InputEvent) => {\n this.type = e.detail as string;\n this.#getAttributes();\n };\n\n render(): void {\n const btnDisabled = !this.attributes || this.attributes.length === 0;\n const matchingAttributesLabel =\n this.attributes?.length === 1\n ? this.#_componentLocale.matchingAttribute\n : this.#_componentLocale.matchingAttributes;\n const attributesLength = this.attributes?.length || 0;\n\n return (\n <Host class=\"widget\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <section class=\"section\">\n {this.#renderFilter()}\n\n {this.#renderAttributesGrid()}\n\n <footer class=\"control-footer control-footer-with-border spacing-body-block-end spacing-body-inline control-footer-space-between\">\n <p class=\"text-body-regular-s matching-attributes\">\n {`${attributesLength} ${matchingAttributesLabel}`}\n </p>\n\n <button\n id=\"button-select-all\"\n class=\"button-primary\"\n onClick={this.#selectAll}\n disabled={btnDisabled}\n part=\"button button--select-all\"\n >\n {this.#_componentLocale.footer.btnSelectAll}\n </button>\n </footer>\n </section>\n </Host>\n );\n }\n}\n\nexport type ContextMenuCallback = (\n contextMenuInfo: ContextMenuInfo\n) => Promise<void>;\n\nexport type DeleteSelectionCallback = (ids: string[]) => Promise<void>;\n\nexport type LoadCallback = (\n filters: AttributeFiltersData\n) => Promise<AttributeData[]>;\n\nexport type ObjectActionCallback = () => Promise<EntityData | undefined>;\n\nexport type OpenSelectionCallback = (ids: string[]) => Promise<void>;\n\nexport type SelectionChangeCallback = (ids: string[]) => Promise<void>;\n\nexport interface AttributeData {\n id: string;\n icon: string;\n name: string;\n type: string;\n description: string;\n}\n\nexport interface AttributeFiltersData {\n name?: string;\n type?: string;\n object?: string;\n}\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-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-timer-duration\": 0,\n \"gx-ide-card\": 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-object-selector\": 0,\n \"gx-ide-references\": 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-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-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-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-timer-duration\": 0,\n \"gx-ide-card\": 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-object-selector\": 0,\n \"gx-ide-references\": 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-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-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"]}
|
|
@@ -52,7 +52,9 @@ const GxIdeEntitySelector = /*@__PURE__*/ proxyCustomElement(class GxIdeEntitySe
|
|
|
52
52
|
});
|
|
53
53
|
_GxIdeEntitySelector_btnSelectClickHandler.set(this, () => {
|
|
54
54
|
this.selectEntityCallback().then(result => {
|
|
55
|
-
|
|
55
|
+
if (result) {
|
|
56
|
+
this.value = result;
|
|
57
|
+
}
|
|
56
58
|
});
|
|
57
59
|
});
|
|
58
60
|
_GxIdeEntitySelector_buttonFocusHandler.set(this, (e) => {
|