@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.
- package/dist/cjs/genexus-ide-ui.cjs.js +1 -1
- package/dist/cjs/{gx-ide-container_2.cjs.entry.js → gx-ide-container_3.cjs.entry.js} +53 -127
- package/dist/cjs/gx-ide-container_3.cjs.entry.js.map +1 -0
- package/dist/cjs/gx-ide-data-selector.cjs.entry.js +175 -0
- package/dist/cjs/gx-ide-data-selector.cjs.entry.js.map +1 -0
- package/dist/cjs/gxg-form-checkbox.cjs.entry.js +151 -0
- package/dist/cjs/gxg-form-checkbox.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/data-selector/data-selector.css +261 -0
- package/dist/collection/components/data-selector/data-selector.js +441 -0
- package/dist/collection/components/data-selector/data-selector.js.map +1 -0
- package/dist/collection/components/data-selector/gx-ide-assets/data-selector/langs/data-selector.lang.en.json +23 -0
- package/dist/collection/components/data-selector/gx-ide-assets/data-selector/langs/data-selector.lang.ja.json +3 -0
- package/dist/collection/components/data-selector/gx-ide-assets/data-selector/langs/data-selector.lang.zh.json +3 -0
- package/dist/collection/components/data-selector/gx-ide-assets/data-selector/shortcuts.json +15 -0
- package/dist/components/gx-ide-data-selector.d.ts +11 -0
- package/dist/components/gx-ide-data-selector.js +347 -0
- package/dist/components/gx-ide-data-selector.js.map +1 -0
- package/dist/esm/genexus-ide-ui.js +1 -1
- package/dist/esm/{gx-ide-container_2.entry.js → gx-ide-container_3.entry.js} +53 -128
- package/dist/esm/gx-ide-container_3.entry.js.map +1 -0
- package/dist/esm/gx-ide-data-selector.entry.js +171 -0
- package/dist/esm/gx-ide-data-selector.entry.js.map +1 -0
- package/dist/esm/gxg-form-checkbox.entry.js +147 -0
- package/dist/esm/gxg-form-checkbox.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/data-selector/langs/data-selector.lang.en.json +23 -0
- package/dist/genexus-ide-ui/gx-ide-assets/data-selector/langs/data-selector.lang.ja.json +3 -0
- package/dist/genexus-ide-ui/gx-ide-assets/data-selector/langs/data-selector.lang.zh.json +3 -0
- package/dist/genexus-ide-ui/gx-ide-assets/data-selector/shortcuts.json +15 -0
- package/dist/genexus-ide-ui/{p-9b96b515.entry.js → p-40f21d2d.entry.js} +116 -192
- package/dist/genexus-ide-ui/p-40f21d2d.entry.js.map +1 -0
- package/dist/genexus-ide-ui/p-75f0ba9d.entry.js +273 -0
- package/dist/genexus-ide-ui/p-75f0ba9d.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-219d7b29.entry.js → p-eeb35622.entry.js} +165 -89
- package/dist/genexus-ide-ui/p-eeb35622.entry.js.map +1 -0
- package/dist/types/components/data-selector/data-selector.d.ts +109 -0
- package/dist/types/components.d.ts +159 -40
- package/package.json +1 -1
- package/dist/cjs/gx-ide-container_2.cjs.entry.js.map +0 -1
- package/dist/cjs/gx-ide-title_2.cjs.entry.js +0 -77
- package/dist/cjs/gx-ide-title_2.cjs.entry.js.map +0 -1
- package/dist/esm/gx-ide-container_2.entry.js.map +0 -1
- package/dist/esm/gx-ide-title_2.entry.js +0 -72
- package/dist/esm/gx-ide-title_2.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-219d7b29.entry.js.map +0 -1
- 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}
|