@genexus/genexus-ide-ui 0.0.98 → 0.0.99

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.
Files changed (50) hide show
  1. package/dist/cjs/genexus-ide-ui.cjs.js +1 -1
  2. package/dist/cjs/{gx-ide-container_2.cjs.entry.js → gx-ide-container_3.cjs.entry.js} +53 -127
  3. package/dist/cjs/gx-ide-container_3.cjs.entry.js.map +1 -0
  4. package/dist/cjs/gx-ide-data-selector.cjs.entry.js +175 -0
  5. package/dist/cjs/gx-ide-data-selector.cjs.entry.js.map +1 -0
  6. package/dist/cjs/gxg-form-checkbox.cjs.entry.js +151 -0
  7. package/dist/cjs/gxg-form-checkbox.cjs.entry.js.map +1 -0
  8. package/dist/cjs/loader.cjs.js +1 -1
  9. package/dist/collection/collection-manifest.json +1 -0
  10. package/dist/collection/components/data-selector/data-selector.css +261 -0
  11. package/dist/collection/components/data-selector/data-selector.js +441 -0
  12. package/dist/collection/components/data-selector/data-selector.js.map +1 -0
  13. package/dist/collection/components/data-selector/gx-ide-assets/data-selector/langs/data-selector.lang.en.json +23 -0
  14. package/dist/collection/components/data-selector/gx-ide-assets/data-selector/langs/data-selector.lang.ja.json +3 -0
  15. package/dist/collection/components/data-selector/gx-ide-assets/data-selector/langs/data-selector.lang.zh.json +3 -0
  16. package/dist/collection/components/data-selector/gx-ide-assets/data-selector/shortcuts.json +15 -0
  17. package/dist/components/gx-ide-data-selector.d.ts +11 -0
  18. package/dist/components/gx-ide-data-selector.js +347 -0
  19. package/dist/components/gx-ide-data-selector.js.map +1 -0
  20. package/dist/esm/genexus-ide-ui.js +1 -1
  21. package/dist/esm/{gx-ide-container_2.entry.js → gx-ide-container_3.entry.js} +53 -128
  22. package/dist/esm/gx-ide-container_3.entry.js.map +1 -0
  23. package/dist/esm/gx-ide-data-selector.entry.js +171 -0
  24. package/dist/esm/gx-ide-data-selector.entry.js.map +1 -0
  25. package/dist/esm/gxg-form-checkbox.entry.js +147 -0
  26. package/dist/esm/gxg-form-checkbox.entry.js.map +1 -0
  27. package/dist/esm/loader.js +1 -1
  28. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
  29. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js.map +1 -1
  30. package/dist/genexus-ide-ui/gx-ide-assets/data-selector/langs/data-selector.lang.en.json +23 -0
  31. package/dist/genexus-ide-ui/gx-ide-assets/data-selector/langs/data-selector.lang.ja.json +3 -0
  32. package/dist/genexus-ide-ui/gx-ide-assets/data-selector/langs/data-selector.lang.zh.json +3 -0
  33. package/dist/genexus-ide-ui/gx-ide-assets/data-selector/shortcuts.json +15 -0
  34. package/dist/genexus-ide-ui/{p-9b96b515.entry.js → p-40f21d2d.entry.js} +116 -192
  35. package/dist/genexus-ide-ui/p-40f21d2d.entry.js.map +1 -0
  36. package/dist/genexus-ide-ui/p-75f0ba9d.entry.js +273 -0
  37. package/dist/genexus-ide-ui/p-75f0ba9d.entry.js.map +1 -0
  38. package/dist/genexus-ide-ui/{p-219d7b29.entry.js → p-eeb35622.entry.js} +165 -89
  39. package/dist/genexus-ide-ui/p-eeb35622.entry.js.map +1 -0
  40. package/dist/types/components/data-selector/data-selector.d.ts +109 -0
  41. package/dist/types/components.d.ts +159 -40
  42. package/package.json +1 -1
  43. package/dist/cjs/gx-ide-container_2.cjs.entry.js.map +0 -1
  44. package/dist/cjs/gx-ide-title_2.cjs.entry.js +0 -77
  45. package/dist/cjs/gx-ide-title_2.cjs.entry.js.map +0 -1
  46. package/dist/esm/gx-ide-container_2.entry.js.map +0 -1
  47. package/dist/esm/gx-ide-title_2.entry.js +0 -72
  48. package/dist/esm/gx-ide-title_2.entry.js.map +0 -1
  49. package/dist/genexus-ide-ui/p-219d7b29.entry.js.map +0 -1
  50. package/dist/genexus-ide-ui/p-9b96b515.entry.js.map +0 -1
@@ -0,0 +1,347 @@
1
+ import { proxyCustomElement, HTMLElement, createEvent, getAssetPath, h, Host } from '@stencil/core/internal/client';
2
+ import { L as Locale } from './locale.js';
3
+ import { c as config } from './config.js';
4
+ import { g as gridCommon } from './grid.js';
5
+ import { d as defineCustomElement$p } from './ch-grid2.js';
6
+ import { d as defineCustomElement$o } from './ch-grid-column2.js';
7
+ import { d as defineCustomElement$n } from './ch-grid-column-resize2.js';
8
+ import { d as defineCustomElement$m } from './ch-grid-column-settings2.js';
9
+ import { d as defineCustomElement$l } from './ch-grid-columnset2.js';
10
+ import { d as defineCustomElement$k } from './ch-grid-settings2.js';
11
+ import { d as defineCustomElement$j } from './ch-grid-settings-columns2.js';
12
+ import { d as defineCustomElement$i } from './icon.js';
13
+ import { d as defineCustomElement$h } from './ch-shortcuts2.js';
14
+ import { d as defineCustomElement$g } from './ch-window2.js';
15
+ import { d as defineCustomElement$f } from './ch-window-close2.js';
16
+ import { d as defineCustomElement$e } from './container.js';
17
+ import { d as defineCustomElement$d } from './entity-selector.js';
18
+ import { d as defineCustomElement$c } from './title2.js';
19
+ import { d as defineCustomElement$b } from './button.js';
20
+ import { d as defineCustomElement$a } from './form-text.js';
21
+ import { d as defineCustomElement$9 } from './gxg-grid2.js';
22
+ import { d as defineCustomElement$8 } from './icon2.js';
23
+ import { d as defineCustomElement$7 } from './ide-loader.js';
24
+ import { d as defineCustomElement$6 } from './gxg-label2.js';
25
+ import { d as defineCustomElement$5 } from './shortcuts.js';
26
+ import { d as defineCustomElement$4 } from './text.js';
27
+ import { d as defineCustomElement$3 } from './title.js';
28
+ import { d as defineCustomElement$2 } from './tooltip.js';
29
+
30
+ const dataSelectorCss = ".gxi-hidden{display:none !important}.gxi-full-height{height:100%}.gxi-overflow-auto{overflow:auto}.gxi-display-flex{display:flex}.align-start{display:flex;align-items:start}.align-center{display:flex;align-items:center}.align-end{display:flex;align-items:end}.overflow-auto{overflow:auto}.justify-start{display:flex;justify-content:start}.justify-center{display:flex;justify-content:center}.justify-end{display:flex;justify-content:end}.grid{display:grid;grid-row-gap:var(--gx-ide-grid-row-gap);grid-column-gap:var(--gx-ide-grid-column-gap);grid-template-rows:auto}ch-grid-cell{display:flex}ch-grid{overflow:auto;height:100%}ch-grid-column{z-index:99;border-bottom:1px solid var(--mer-color__neutral-gray--800)}ch-grid-column:first-child{padding-inline-start:var(--gx-ide-container__padding) !important}ch-grid-column:last-child{padding-inline-end:var(--gx-ide-container__padding) !important}ch-grid-cell{--mer-spacing--xs:var(--gx-ide-container__padding)}.layout{display:grid;gap:var(--mer-spacing--lg);box-sizing:border-box}.layout--two-cols{grid-template-columns:1fr 1fr}.layout--space-above{padding-block-start:var(--mer-spacing--lg)}gxg-tabs{box-shadow:none}:host(.gx-ide-component){height:100% !important;display:flex !important;flex-direction:column !important}:host(:focus-within) gx-ide-top-bar::part(wrapper){background-color:var(--color-secondary-enabled)}.gx-ide-main-wrapper{color:var(--gx-ide-component-text-color);font-weight:var(--mer-font__weight--regular);font-size:var(--mer-font__size--xs);font-family:var(--mer-font-family--primary);height:100%;background-color:var(--gx-ide-component-background-color);display:flex;flex-direction:column;flex-grow:1;box-sizing:border-box}.gx-ide-main{flex-grow:1;overflow-y:auto;}.gx-ide-main::-webkit-scrollbar{width:6px;height:6px}.gx-ide-main::-webkit-scrollbar-track{background-color:var(--gray-02);border-radius:10px}.gx-ide-main::-webkit-scrollbar-thumb{background:var(--gray-05);border-radius:10px}.gx-ide-main::-webkit-scrollbar-thumb:hover{background:var(--gray-04);cursor:pointer}.gx-ide-main .gxg-scroll{display:block;overflow-y:auto;padding-inline-end:2px}.gx-ide-overflow{overflow-y:auto;}.gx-ide-overflow::-webkit-scrollbar{width:6px;height:6px}.gx-ide-overflow::-webkit-scrollbar-track{background-color:var(--gray-02);border-radius:10px}.gx-ide-overflow::-webkit-scrollbar-thumb{background:var(--gray-05);border-radius:10px}.gx-ide-overflow::-webkit-scrollbar-thumb:hover{background:var(--gray-04);cursor:pointer}.gx-ide-overflow .gxg-scroll{display:block;overflow-y:auto;padding-inline-end:2px}.tree-container{display:flex;height:100%;width:100%;box-sizing:border-box}:host{display:block;border:1px solid var(--gxg-border-color--regular);background-color:var(--color-background)}.filter-grid{display:grid;padding:var(--spacing-comp-03);row-gap:var(--gx-ide-grid-row-gap);column-gap:var(--gx-ide-grid-column-gap);border-block-start:1px solid var(--gx-ide-container-border-color);border-block-end:1px solid var(--gx-ide-container-border-color);grid-template-areas:\"pattern-label pattern-input pattern-input pattern-input\" \"object-label object-input object-input object-input\"}.filter-grid .pattern-label{grid-area:pattern-label}.filter-grid .pattern-input{grid-area:pattern-input}.filter-grid .object-label{grid-area:object-label}.filter-grid .object-input{grid-area:object-input}.filter-grid--no-title{border-top:0}.grid-container{height:100%}ch-grid-cell{--spacing-comp-02:var(--spacing-comp-03)}.objects-count{display:flex;justify-content:space-around}.objects-count>*{flex:1;padding:var(--spacing-comp-01)}.objects-count>:not(:last-child){border-inline-end:1px solid var(--gx-ide-container-border-color)}";
31
+
32
+ const GxIdeDataSelector$1 = /*@__PURE__*/ proxyCustomElement(class GxIdeDataSelector extends HTMLElement {
33
+ constructor() {
34
+ super();
35
+ this.__registerHost();
36
+ this.__attachShadow();
37
+ this.componentDidRenderFirstTime = createEvent(this, "componentDidRenderFirstTime", 7);
38
+ this.componentDidLoadEvent = createEvent(this, "componentDidLoadEvent", 7);
39
+ this.renderedFirstTime = false;
40
+ this.shortcutsSrc = getAssetPath(`./gx-ide-assets/object-selector/shortcuts.json`);
41
+ // 9.LOCAL METHODS //
42
+ this.loaderCancelCallbackHandler = async () => {
43
+ this.cancelCallbackHandler();
44
+ };
45
+ this.getObjects = () => {
46
+ var _a, _b, _c;
47
+ const filters = {
48
+ pattern: (_a = this.filterPatternEl) === null || _a === void 0 ? void 0 : _a.value,
49
+ object: (_c = (_b = this.filterObjectEl) === null || _b === void 0 ? void 0 : _b.value) === null || _c === void 0 ? void 0 : _c.id
50
+ };
51
+ if (this.loadItemsCallback) {
52
+ if (this.loader) {
53
+ this.loaderEl.show = true;
54
+ }
55
+ this.loadItemsCallback(filters).then((items) => {
56
+ if (items) {
57
+ this.objects = items;
58
+ }
59
+ this.selectedObjectsIds = [];
60
+ this.deselectAll();
61
+ if (this.loader) {
62
+ this.loaderEl.show = false;
63
+ }
64
+ });
65
+ }
66
+ };
67
+ this.editCallbackHandler = (e) => {
68
+ e.stopPropagation();
69
+ if (this.selectedObjectsIds[0]) {
70
+ this.editCallback(this.selectedObjectsIds[0]);
71
+ this.getObjects();
72
+ }
73
+ };
74
+ this.confirmCallbackHandler = (e) => {
75
+ e.stopPropagation();
76
+ this.confirmCallback(this.selectedObjectsIds);
77
+ };
78
+ this.cancelCallbackHandler = () => {
79
+ this.cancelCallback();
80
+ };
81
+ this.deselectAll = () => {
82
+ this.chGridEl.selectAllRows(false);
83
+ };
84
+ this.newVariableCallbackHandler = () => {
85
+ this.newVariableCallback();
86
+ this.getObjects();
87
+ };
88
+ this.listenChanges = async () => {
89
+ /* pattern*/
90
+ this.filterPatternEl.addEventListener("valueChanged", () => {
91
+ this.getObjects();
92
+ });
93
+ /* object*/
94
+ this.filterObjectEl.addEventListener("valueChanged", () => {
95
+ this.getObjects();
96
+ });
97
+ // for grid selection
98
+ this.chGridEl.addEventListener("selectionChanged", (ev) => {
99
+ this.selectedObjectsIds = ev.detail.rowsId;
100
+ });
101
+ };
102
+ this.chGridKeyDownHandler = (e) => {
103
+ if (e.key === "Enter") {
104
+ this.confirmCallbackHandler(e);
105
+ }
106
+ };
107
+ this.hostKeyPressHandler = (e) => {
108
+ // just prevent keypress propagation
109
+ if (e.key === "Enter") {
110
+ e.stopPropagation();
111
+ }
112
+ };
113
+ // 9.LOCAL METHODS -> RENDER//
114
+ this.renderFilter = () => {
115
+ return (h("div", { part: "filters-container", class: {
116
+ "filter-grid": true,
117
+ "filter-grid--no-title": !this.displayTitle
118
+ }, slot: "header" }, h("gxg-label", { labelPosition: "start", class: "pattern-label", noMargin: true }, this._componentLocale.filter.pattern), h("gxg-form-text", { ref: (el) => (this.filterPatternEl = el), class: "pattern-input", part: "filter-pattern", debounce: true }), h("gxg-label", { labelPosition: "start", class: "object-label", noMargin: true }, this._componentLocale.filter.object), h("gx-ide-entity-selector", { selectEntityCallback: this.selectObjectCallback, ref: (el) => (this.filterObjectEl = el), class: "object-input" })));
119
+ };
120
+ this.renderObjects = () => {
121
+ return (h("gxg-grid", { "ellipsis-cell-wrapper": true, noBorder: true }, h("ch-grid", { rowSelectionMode: this.selectionType, ref: (el) => (this.chGridEl = el), onKeyDown: this.chGridKeyDownHandler, part: "ch-grid-objects" }, h("ch-grid-columnset", null, h("ch-grid-column", { "column-name-position": "text", settingable: false, size: gridCommon.colSize.minContent }), h("ch-grid-column", { "column-name": this._componentLocale.tableHead.name, "column-name-position": "text", settingable: false, size: gridCommon.colSize.auto }), h("ch-grid-column", { "column-name": this._componentLocale.tableHead.dataType, "column-name-position": "text", settingable: false, size: gridCommon.colSize.auto }), h("ch-grid-column", { "column-name": this._componentLocale.tableHead.description, "column-name-position": "text", settingable: false, size: gridCommon.colSize.auto })), this.objects
122
+ .sort((a, b) => {
123
+ const nameA = a.name.toLowerCase(), nameB = b.name.toLowerCase();
124
+ if (nameA < nameB) {
125
+ return -1;
126
+ }
127
+ if (nameA > nameB) {
128
+ return 1;
129
+ }
130
+ return 0;
131
+ })
132
+ .map((obj) => (h("ch-grid-row", { rowid: obj.id, onDblClick: this.confirmCallbackHandler }, h("ch-grid-cell", null, h("span", { class: "cell-wrapper" }, h("gxg-icon", { type: obj.type === "attribute"
133
+ ? "objects/attribute"
134
+ : "objects-parts/variables", color: "auto", size: "small" }))), h("ch-grid-cell", null, h("span", { class: "cell-wrapper" }, " ", obj.name, " ")), h("ch-grid-cell", null, h("span", { class: "cell-wrapper" }, obj.dataType)), h("ch-grid-cell", null, h("span", { class: "cell-wrapper" }, obj.description))))))));
135
+ };
136
+ this.objects = [];
137
+ this.selectedObjectsIds = [];
138
+ this.displayTitle = false;
139
+ this.loader = false;
140
+ this.selectionType = "multiple";
141
+ this.selectObjectCallback = undefined;
142
+ this.editCallback = undefined;
143
+ this.cancelCallback = undefined;
144
+ this.loadItemsCallback = undefined;
145
+ this.newVariableCallback = undefined;
146
+ this.confirmCallback = undefined;
147
+ }
148
+ // 6.COMPONENT LIFECYCLE EVENTS //
149
+ async componentWillLoad() {
150
+ this._componentLocale = await Locale.getComponentStrings(this.el);
151
+ this.componentDidLoadEvent.emit(true);
152
+ }
153
+ componentDidLoad() {
154
+ this.listenChanges();
155
+ this.loaderEl.container = this.chGridEl;
156
+ this.getObjects();
157
+ this.filterPatternEl.focus();
158
+ }
159
+ componentDidRender() {
160
+ if (!this.renderedFirstTime) {
161
+ this.componentDidRenderFirstTime.emit(this._componentLocale.componentName);
162
+ this.renderedFirstTime = true;
163
+ }
164
+ }
165
+ // 7.LISTENERS //
166
+ // 8.PUBLIC METHODS API //
167
+ /**
168
+ * Suspends or reactivates the shortcuts
169
+ */
170
+ async suspendShortcuts(suspendShortcuts) {
171
+ if (suspendShortcuts) {
172
+ this.gxgShortcutsEl.suspend = true;
173
+ }
174
+ else {
175
+ this.gxgShortcutsEl.suspend = false;
176
+ }
177
+ }
178
+ /**
179
+ * Validate necessary data input
180
+ */
181
+ async validate() {
182
+ const isValid = true;
183
+ return isValid;
184
+ }
185
+ // 10.RENDER() FUNCTION //
186
+ render() {
187
+ return (h(Host, { class: "gx-ide-component", onKeyPress: this.hostKeyPressHandler }, h("div", { class: "gx-ide-main-wrapper" }, h("gx-ide-container", { containerTitle: this.displayTitle ? this._componentLocale.componentName : null, noContentPadding: true, noAboveFooterPadding: true, noHeadingPadding: true, headingPaddingTop: true, noHeadingBorder: true, slimmerFooter: config.gxIdeContainer.slimmerFooter }, this.renderFilter(), this.renderObjects(), h("gxg-button", { type: "outlined", onClick: this.cancelCallbackHandler, part: "gxg-button gxg-button--cancel", slot: "footer-end" }, this._componentLocale.footer.btnCancel), h("gxg-button", { type: "primary-text-only", onClick: this.confirmCallbackHandler, part: "gxg-button gxg-button--ok", slot: "footer-end" }, this._componentLocale.footer.btnConfirm), h("gxg-button", { type: "primary-text-only", onClick: this.newVariableCallbackHandler, part: "gxg-button gxg-button--new", slot: "footer-start" }, this._componentLocale.footer.btnNew), h("gxg-button", { type: "primary-text-only", onClick: this.editCallbackHandler, part: "gxg-button gxg-button--edit", slot: "footer-start" }, this._componentLocale.footer.btnEdit))), h("gxg-shortcuts", { src: this.shortcutsSrc, ref: (el) => (this.gxgShortcutsEl = el) }), this.loader ? (h("gxg-ide-loader", { cancelLabel: this._componentLocale.loader.cancelLabel, loaderTitle: this._componentLocale.loader.title, ref: el => (this.loaderEl = el), cancelCallback: this.loaderCancelCallbackHandler })) : null));
188
+ }
189
+ static get delegatesFocus() { return true; }
190
+ static get assetsDirs() { return ["gx-ide-assets/data-selector"]; }
191
+ get el() { return this; }
192
+ static get style() { return dataSelectorCss; }
193
+ }, [17, "gx-ide-data-selector", {
194
+ "displayTitle": [4, "display-title"],
195
+ "loader": [4],
196
+ "selectionType": [1, "selection-type"],
197
+ "selectObjectCallback": [16],
198
+ "editCallback": [16],
199
+ "cancelCallback": [16],
200
+ "loadItemsCallback": [16],
201
+ "newVariableCallback": [16],
202
+ "confirmCallback": [16],
203
+ "objects": [32],
204
+ "selectedObjectsIds": [32],
205
+ "suspendShortcuts": [64],
206
+ "validate": [64]
207
+ }]);
208
+ function defineCustomElement$1() {
209
+ if (typeof customElements === "undefined") {
210
+ return;
211
+ }
212
+ const components = ["gx-ide-data-selector", "ch-grid", "ch-grid-column", "ch-grid-column-resize", "ch-grid-column-settings", "ch-grid-columnset", "ch-grid-settings", "ch-grid-settings-columns", "ch-icon", "ch-shortcuts", "ch-window", "ch-window-close", "gx-ide-container", "gx-ide-entity-selector", "gx-ide-title", "gxg-button", "gxg-form-text", "gxg-grid", "gxg-icon", "gxg-ide-loader", "gxg-label", "gxg-shortcuts", "gxg-text", "gxg-title", "gxg-tooltip"];
213
+ components.forEach(tagName => { switch (tagName) {
214
+ case "gx-ide-data-selector":
215
+ if (!customElements.get(tagName)) {
216
+ customElements.define(tagName, GxIdeDataSelector$1);
217
+ }
218
+ break;
219
+ case "ch-grid":
220
+ if (!customElements.get(tagName)) {
221
+ defineCustomElement$p();
222
+ }
223
+ break;
224
+ case "ch-grid-column":
225
+ if (!customElements.get(tagName)) {
226
+ defineCustomElement$o();
227
+ }
228
+ break;
229
+ case "ch-grid-column-resize":
230
+ if (!customElements.get(tagName)) {
231
+ defineCustomElement$n();
232
+ }
233
+ break;
234
+ case "ch-grid-column-settings":
235
+ if (!customElements.get(tagName)) {
236
+ defineCustomElement$m();
237
+ }
238
+ break;
239
+ case "ch-grid-columnset":
240
+ if (!customElements.get(tagName)) {
241
+ defineCustomElement$l();
242
+ }
243
+ break;
244
+ case "ch-grid-settings":
245
+ if (!customElements.get(tagName)) {
246
+ defineCustomElement$k();
247
+ }
248
+ break;
249
+ case "ch-grid-settings-columns":
250
+ if (!customElements.get(tagName)) {
251
+ defineCustomElement$j();
252
+ }
253
+ break;
254
+ case "ch-icon":
255
+ if (!customElements.get(tagName)) {
256
+ defineCustomElement$i();
257
+ }
258
+ break;
259
+ case "ch-shortcuts":
260
+ if (!customElements.get(tagName)) {
261
+ defineCustomElement$h();
262
+ }
263
+ break;
264
+ case "ch-window":
265
+ if (!customElements.get(tagName)) {
266
+ defineCustomElement$g();
267
+ }
268
+ break;
269
+ case "ch-window-close":
270
+ if (!customElements.get(tagName)) {
271
+ defineCustomElement$f();
272
+ }
273
+ break;
274
+ case "gx-ide-container":
275
+ if (!customElements.get(tagName)) {
276
+ defineCustomElement$e();
277
+ }
278
+ break;
279
+ case "gx-ide-entity-selector":
280
+ if (!customElements.get(tagName)) {
281
+ defineCustomElement$d();
282
+ }
283
+ break;
284
+ case "gx-ide-title":
285
+ if (!customElements.get(tagName)) {
286
+ defineCustomElement$c();
287
+ }
288
+ break;
289
+ case "gxg-button":
290
+ if (!customElements.get(tagName)) {
291
+ defineCustomElement$b();
292
+ }
293
+ break;
294
+ case "gxg-form-text":
295
+ if (!customElements.get(tagName)) {
296
+ defineCustomElement$a();
297
+ }
298
+ break;
299
+ case "gxg-grid":
300
+ if (!customElements.get(tagName)) {
301
+ defineCustomElement$9();
302
+ }
303
+ break;
304
+ case "gxg-icon":
305
+ if (!customElements.get(tagName)) {
306
+ defineCustomElement$8();
307
+ }
308
+ break;
309
+ case "gxg-ide-loader":
310
+ if (!customElements.get(tagName)) {
311
+ defineCustomElement$7();
312
+ }
313
+ break;
314
+ case "gxg-label":
315
+ if (!customElements.get(tagName)) {
316
+ defineCustomElement$6();
317
+ }
318
+ break;
319
+ case "gxg-shortcuts":
320
+ if (!customElements.get(tagName)) {
321
+ defineCustomElement$5();
322
+ }
323
+ break;
324
+ case "gxg-text":
325
+ if (!customElements.get(tagName)) {
326
+ defineCustomElement$4();
327
+ }
328
+ break;
329
+ case "gxg-title":
330
+ if (!customElements.get(tagName)) {
331
+ defineCustomElement$3();
332
+ }
333
+ break;
334
+ case "gxg-tooltip":
335
+ if (!customElements.get(tagName)) {
336
+ defineCustomElement$2();
337
+ }
338
+ break;
339
+ } });
340
+ }
341
+
342
+ const GxIdeDataSelector = GxIdeDataSelector$1;
343
+ const defineCustomElement = defineCustomElement$1;
344
+
345
+ export { GxIdeDataSelector, defineCustomElement };
346
+
347
+ //# sourceMappingURL=gx-ide-data-selector.js.map
@@ -0,0 +1 @@
1
+ {"file":"gx-ide-data-selector.js","mappings":"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","names":["GxIdeDataSelector"],"sources":["src/components/data-selector/data-selector.scss?tag=gx-ide-data-selector&encapsulation=shadow","src/components/data-selector/data-selector.tsx"],"sourcesContent":["@import \"../../global/gx-ide-common.scss\";\n@import \"../../global/gx-ide-mixins.scss\";\n\n:host {\n display: block;\n border: 1px solid var(--gxg-border-color--regular);\n background-color: var(--color-background);\n}\n\n/* Filters */\n.filter-grid {\n display: grid;\n padding: var(--spacing-comp-03);\n row-gap: var(--gx-ide-grid-row-gap);\n column-gap: var(--gx-ide-grid-column-gap);\n border-block-start: 1px solid var(--gx-ide-container-border-color);\n border-block-end: 1px solid var(--gx-ide-container-border-color);\n\n grid-template-areas:\n \"pattern-label pattern-input pattern-input pattern-input\"\n \"object-label object-input object-input object-input\";\n\n .pattern-label {\n grid-area: pattern-label;\n }\n .pattern-input {\n grid-area: pattern-input;\n }\n .object-label {\n grid-area: object-label;\n }\n .object-input {\n grid-area: object-input;\n }\n\n &--no-title {\n border-top: 0;\n }\n}\n\n/*gxg-grid*/\n.grid-container {\n height: 100%;\n}\nch-grid-cell {\n --spacing-comp-02: var(--spacing-comp-03);\n}\n/* Objects Table */\n.objects-count {\n display: flex;\n justify-content: space-around;\n > * {\n flex: 1;\n padding: var(--spacing-comp-01);\n }\n > :not(:last-child) {\n border-inline-end: 1px solid var(--gx-ide-container-border-color);\n }\n}\n","/* STENCIL IMPORTS */\nimport {\n Component,\n Host,\n h,\n Prop,\n Element,\n Event,\n EventEmitter,\n State,\n Method,\n getAssetPath\n} from \"@stencil/core\";\n/* OTHER LIBRARIES IMPORTS */\n/* CUSTOM IMPORTS */\nimport { Locale } from \"../../common/locale\";\nimport { config } from \"../../common/config\";\n\nimport { EntityData } from \"../../common/types\";\nimport { gridCommon } from \"../../common/grid\";\n\n@Component({\n tag: \"gx-ide-data-selector\",\n styleUrl: \"data-selector.scss\",\n shadow: { delegatesFocus: true },\n assetsDirs: [\"gx-ide-assets/data-selector\"]\n})\nexport class GxIdeDataSelector {\n /*\nINDEX:\n1.OWN PROPERTIES\n2.REFERENCE TO ELEMENTS\n3.STATE() VARIABLES\n4.PUBLIC PROPERTY API | WATCH'S\n5.EVENTS (EMIT)\n6.COMPONENT LIFECYCLE EVENTS\n7.LISTENERS\n8.PUBLIC METHODS API\n9.LOCAL METHODS\n10.RENDER() FUNCTION\n*/\n\n // 1.OWN PROPERTIES //\n\n /**\n * The component hard-coded strings translations.\n */\n private _componentLocale: any;\n private renderedFirstTime = false;\n private shortcutsSrc = getAssetPath(\n `./gx-ide-assets/object-selector/shortcuts.json`\n );\n\n // 2. REFERENCE TO ELEMENTS //\n\n @Element() el: HTMLGxIdeDataSelectorElement;\n\n /* References needed to collect data */\n private filterPatternEl!: HTMLGxgFormTextElement;\n private filterObjectEl!: HTMLGxIdeEntitySelectorElement;\n private chGridEl!: HTMLChGridElement;\n private gxgShortcutsEl: HTMLGxgShortcutsElement;\n private loaderEl!: HTMLGxgIdeLoaderElement;\n\n // 3.STATE() VARIABLES //\n\n /**\n * The objects rendered in the table\n */\n @State() objects: ItemData[] = [];\n\n /**\n * The selected objects in the table of objects\n */\n @State() selectedObjectsIds: string[] = [];\n\n // 4.PUBLIC PROPERTY API //\n\n /**\n * If true it displays the component title on the header\n */\n @Prop() readonly displayTitle = false;\n\n /**\n * If true, it will display a loader when needed.\n */\n @Prop() readonly loader = false;\n\n /**\n * Single if multiple object selection is not allowed. Default is multiple\n */\n @Prop() readonly selectionType: \"single\" | \"multiple\" = \"multiple\";\n\n /**\n * Callback invoked when the action is executed in the Object filter. It returns the information of the selected object (id and name) or 'undefined' if it was canceled.\n */\n @Prop() readonly selectObjectCallback: SelectObjectCallback;\n\n /**\n * Callback invoked when user press edit button. Receives the first selected element id as parameter\n */\n @Prop() readonly editCallback: EditCallback;\n\n /**\n * Callback invoked when the user wishes to cancel the selection of objects.\n */\n @Prop() readonly cancelCallback!: CancelCallback;\n\n /**\n * Callback invoked when the component needs to reload the list of attributes.\n */\n @Prop() readonly loadItemsCallback!: LoadItemsCallback;\n\n /**\n * Callback invoked when the user presses the 'New' button.\n */\n @Prop() readonly newVariableCallback!: NewVariableCallback;\n\n /**\n * Callback invoked when the user presses the 'OK' button\n */\n @Prop() readonly confirmCallback!: ConfirmCallback;\n\n // 5.EVENTS (EMIT) //\n\n /**\n * This event is emitted once just after the component is fully loaded and the first render() occurs\n */\n @Event() componentDidRenderFirstTime: EventEmitter<boolean>;\n\n /**\n * This event is emitted once just after the component is fully loaded and the first render() occurs.\n */\n @Event() componentDidLoadEvent: EventEmitter<boolean>;\n\n // 6.COMPONENT LIFECYCLE EVENTS //\n\n async componentWillLoad() {\n this._componentLocale = await Locale.getComponentStrings(this.el);\n this.componentDidLoadEvent.emit(true);\n }\n\n componentDidLoad() {\n this.listenChanges();\n this.loaderEl.container = this.chGridEl;\n this.getObjects();\n this.filterPatternEl.focus();\n }\n\n componentDidRender() {\n if (!this.renderedFirstTime) {\n this.componentDidRenderFirstTime.emit(\n this._componentLocale.componentName\n );\n this.renderedFirstTime = true;\n }\n }\n\n // 7.LISTENERS //\n\n // 8.PUBLIC METHODS API //\n /**\n * Suspends or reactivates the shortcuts\n */\n @Method()\n async suspendShortcuts(suspendShortcuts: boolean) {\n if (suspendShortcuts) {\n this.gxgShortcutsEl.suspend = true;\n } else {\n this.gxgShortcutsEl.suspend = false;\n }\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 // 9.LOCAL METHODS //\n\n private loaderCancelCallbackHandler = async () => {\n this.cancelCallbackHandler();\n };\n\n private getObjects = (): void => {\n const filters: FiltersData = {\n pattern: this.filterPatternEl?.value,\n object: this.filterObjectEl?.value?.id\n };\n if (this.loadItemsCallback) {\n if (this.loader) {\n this.loaderEl.show = true;\n }\n this.loadItemsCallback(filters).then((items: ItemData[]) => {\n if (items) {\n this.objects = items;\n }\n this.selectedObjectsIds = [];\n this.deselectAll();\n if (this.loader) {\n this.loaderEl.show = false;\n }\n });\n }\n };\n\n private editCallbackHandler = (e: MouseEvent): void => {\n e.stopPropagation();\n if (this.selectedObjectsIds[0]) {\n this.editCallback(this.selectedObjectsIds[0]);\n this.getObjects();\n }\n };\n\n private confirmCallbackHandler = (e: MouseEvent | KeyboardEvent): void => {\n e.stopPropagation();\n this.confirmCallback(this.selectedObjectsIds);\n };\n\n private cancelCallbackHandler = (): void => {\n this.cancelCallback();\n };\n\n private deselectAll = (): void => {\n (this.chGridEl as any).selectAllRows(false);\n };\n\n private newVariableCallbackHandler = (): void => {\n this.newVariableCallback();\n this.getObjects();\n };\n\n private listenChanges = async (): Promise<void> => {\n /* pattern*/\n this.filterPatternEl.addEventListener(\"valueChanged\", () => {\n this.getObjects();\n });\n\n /* object*/\n this.filterObjectEl.addEventListener(\"valueChanged\", () => {\n this.getObjects();\n });\n // for grid selection\n this.chGridEl.addEventListener(\"selectionChanged\", (ev: any): void => {\n this.selectedObjectsIds = ev.detail.rowsId;\n });\n };\n\n private chGridKeyDownHandler = (e: KeyboardEvent) => {\n if (e.key === \"Enter\") {\n this.confirmCallbackHandler(e);\n }\n };\n\n private hostKeyPressHandler = (e: KeyboardEvent) => {\n // just prevent keypress propagation\n if (e.key === \"Enter\") {\n e.stopPropagation();\n }\n };\n\n // 9.LOCAL METHODS -> RENDER//\n\n private renderFilter = (): Element => {\n return (\n <div\n part=\"filters-container\"\n class={{\n \"filter-grid\": true,\n \"filter-grid--no-title\": !this.displayTitle\n }}\n slot=\"header\"\n >\n <gxg-label labelPosition=\"start\" class=\"pattern-label\" noMargin>\n {this._componentLocale.filter.pattern}\n </gxg-label>\n <gxg-form-text\n ref={(el: HTMLGxgFormTextElement) =>\n (this.filterPatternEl = el as HTMLGxgFormTextElement)\n }\n class=\"pattern-input\"\n part=\"filter-pattern\"\n debounce\n ></gxg-form-text>\n\n <gxg-label labelPosition=\"start\" class=\"object-label\" noMargin>\n {this._componentLocale.filter.object}\n </gxg-label>\n <gx-ide-entity-selector\n selectEntityCallback={this.selectObjectCallback}\n ref={(el: HTMLGxIdeEntitySelectorElement) =>\n (this.filterObjectEl = el as HTMLGxIdeEntitySelectorElement)\n }\n class=\"object-input\"\n ></gx-ide-entity-selector>\n </div>\n );\n };\n\n private renderObjects = (): Element => {\n return (\n <gxg-grid ellipsis-cell-wrapper noBorder>\n <ch-grid\n rowSelectionMode={this.selectionType}\n ref={(el: HTMLChGridElement) => (this.chGridEl = el)}\n onKeyDown={this.chGridKeyDownHandler}\n part=\"ch-grid-objects\"\n >\n <ch-grid-columnset>\n <ch-grid-column\n column-name-position=\"text\"\n settingable={false}\n size={gridCommon.colSize.minContent}\n ></ch-grid-column>\n <ch-grid-column\n column-name={this._componentLocale.tableHead.name}\n column-name-position=\"text\"\n settingable={false}\n size={gridCommon.colSize.auto}\n ></ch-grid-column>\n <ch-grid-column\n column-name={this._componentLocale.tableHead.dataType}\n column-name-position=\"text\"\n settingable={false}\n size={gridCommon.colSize.auto}\n ></ch-grid-column>\n\n <ch-grid-column\n column-name={this._componentLocale.tableHead.description}\n column-name-position=\"text\"\n settingable={false}\n size={gridCommon.colSize.auto}\n ></ch-grid-column>\n </ch-grid-columnset>\n {this.objects\n .sort((a, b) => {\n const nameA = a.name.toLowerCase(),\n nameB = b.name.toLowerCase();\n if (nameA < nameB) {\n return -1;\n }\n if (nameA > nameB) {\n return 1;\n }\n return 0;\n })\n .map((obj: ItemData) => (\n <ch-grid-row\n rowid={obj.id}\n onDblClick={this.confirmCallbackHandler}\n >\n <ch-grid-cell>\n <span class=\"cell-wrapper\">\n <gxg-icon\n type={\n obj.type === \"attribute\"\n ? \"objects/attribute\"\n : \"objects-parts/variables\"\n }\n color=\"auto\"\n size=\"small\"\n ></gxg-icon>\n </span>\n </ch-grid-cell>\n <ch-grid-cell>\n <span class=\"cell-wrapper\"> {obj.name} </span>\n </ch-grid-cell>\n <ch-grid-cell>\n <span class=\"cell-wrapper\">{obj.dataType}</span>\n </ch-grid-cell>\n\n <ch-grid-cell>\n <span class=\"cell-wrapper\">{obj.description}</span>\n </ch-grid-cell>\n </ch-grid-row>\n ))}\n </ch-grid>\n </gxg-grid>\n );\n };\n\n // 10.RENDER() FUNCTION //\n\n render(): void {\n return (\n <Host class=\"gx-ide-component\" onKeyPress={this.hostKeyPressHandler}>\n <div class=\"gx-ide-main-wrapper\">\n <gx-ide-container\n containerTitle={\n this.displayTitle ? this._componentLocale.componentName : null\n }\n noContentPadding\n noAboveFooterPadding\n noHeadingPadding\n headingPaddingTop\n noHeadingBorder\n slimmerFooter={config.gxIdeContainer.slimmerFooter}\n >\n {this.renderFilter()}\n {this.renderObjects()}\n\n {/* footer */}\n {/* button cancel */}\n <gxg-button\n type=\"outlined\"\n onClick={this.cancelCallbackHandler}\n part=\"gxg-button gxg-button--cancel\"\n slot=\"footer-end\"\n >\n {this._componentLocale.footer.btnCancel}\n </gxg-button>\n {/* button confirm */}\n <gxg-button\n type=\"primary-text-only\"\n onClick={this.confirmCallbackHandler}\n part=\"gxg-button gxg-button--ok\"\n slot=\"footer-end\"\n >\n {this._componentLocale.footer.btnConfirm}\n </gxg-button>\n {/* button new... */}\n <gxg-button\n type=\"primary-text-only\"\n onClick={this.newVariableCallbackHandler}\n part=\"gxg-button gxg-button--new\"\n slot=\"footer-start\"\n >\n {this._componentLocale.footer.btnNew}\n </gxg-button>\n {/* button edit */}\n <gxg-button\n type=\"primary-text-only\"\n onClick={this.editCallbackHandler}\n part=\"gxg-button gxg-button--edit\"\n slot=\"footer-start\"\n >\n {this._componentLocale.footer.btnEdit}\n </gxg-button>\n </gx-ide-container>\n </div>\n <gxg-shortcuts\n src={this.shortcutsSrc}\n ref={(el: HTMLGxgShortcutsElement) =>\n (this.gxgShortcutsEl = el as HTMLGxgShortcutsElement)\n }\n ></gxg-shortcuts>\n {/* loader*/}\n {this.loader ? (\n <gxg-ide-loader\n cancelLabel={this._componentLocale.loader.cancelLabel}\n loaderTitle={this._componentLocale.loader.title}\n ref={el => (this.loaderEl = el as HTMLGxgIdeLoaderElement)}\n cancelCallback={this.loaderCancelCallbackHandler}\n ></gxg-ide-loader>\n ) : null}\n </Host>\n );\n }\n}\n\nexport type NewVariableCallback = () => Promise<void>;\n\nexport type CancelCallback = () => Promise<void>;\n\nexport type SelectObjectCallback = () => Promise<EntityData | undefined>;\n\nexport type EditCallback = (id: string) => Promise<boolean>;\n\nexport type ConfirmCallback = (ids: string[]) => Promise<void>;\n\nexport type LoadItemsCallback = (filters: FiltersData) => Promise<ItemData[]>;\n\nexport type FiltersData = {\n pattern?: string;\n object?: string;\n};\n\nexport type ItemData = {\n type: \"variable\" | \"attribute\";\n id: string;\n name: string;\n dataType: string;\n description: string;\n};\n"],"version":3}